{"version":3,"file":"Glow_Border.DP-RpEkf.mjs","names":[],"sources":["https:/framerusercontent.com/modules/REGsm0IjCNj01YxirrwF/OY57oSJupuw5XSPpkfzI/Glow_Border.js"],"sourcesContent":["// Glow Border (Apple TV style): on hover, a thin border lights up around the element, brightest\n// near the cursor, and the content zooms in slightly. Media cards also lean toward the cursor,\n// drop a soft shadow, and get a light sheen over the image. Media wrappers have 3px padding so\n// the ring sits just outside the image; the image lives in a child frame named \"Media\".\n// Work cards also open with a transition when clicked: the image slowly grows from the card to\n// the whole window while fading to black, the project page loads behind the black, and its\n// Project Hero fades the black away once the page is ready.\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef,useEffect}from\"react\";// ---- Card expand (shared with Project_Hero.tsx through window.__txfwExpand) ----\nconst OVERLAY_ID=\"txfw-expand-overlay\";const DURATION=1600;const HOLD=250;const EASE=\"cubic-bezier(0.45, 0, 0.15, 1)\";const GIVE_UP_AFTER=4e3;function isProjectLink(anchor){if(anchor.target===\"_blank\")return false;const url=new URL(anchor.href,window.location.href);return url.origin===window.location.origin&&/^\\/work\\/[^/]+\\/?$/.test(url.pathname)&&url.pathname!==window.location.pathname;}// Copy what the card is showing right now: the hover clip if it's playing, else the thumbnail.\nfunction cloneMedia(media){const video=Array.from(media.querySelectorAll(\"video\")).find(v=>!v.paused&&v.readyState>=2);const base={position:\"absolute\",inset:\"0\",width:\"100%\",height:\"100%\",objectFit:\"cover\",display:\"block\"};if(video){const copy=document.createElement(\"video\");copy.src=video.currentSrc||video.src;copy.muted=true;copy.loop=true;copy.playsInline=true;copy.currentTime=video.currentTime;Object.assign(copy.style,base,{objectPosition:getComputedStyle(video).objectPosition});copy.play().catch(()=>{});return{node:copy,videoTime:video.currentTime};}const images=Array.from(media.querySelectorAll(\"img\"));const img=images.sort((a,b)=>b.clientWidth*b.clientHeight-a.clientWidth*a.clientHeight)[0];const copy=document.createElement(\"img\");if(img){copy.src=img.currentSrc||img.src;Object.assign(copy.style,base,{objectPosition:getComputedStyle(img).objectPosition});}return{node:copy,videoTime:null};}function expand(source,anchor){document.getElementById(OVERLAY_ID)?.remove();const media=source.querySelector('[data-framer-name=\"Media\"]')||source;const rect=media.getBoundingClientRect();const radius=getComputedStyle(media).borderTopLeftRadius||\"10px\";const{node,videoTime}=cloneMedia(media);// Full-screen layer: a black wash over the page, and the card copy growing on top of it.\nconst overlay=document.createElement(\"div\");overlay.id=OVERLAY_ID;Object.assign(overlay.style,{position:\"fixed\",inset:\"0\",zIndex:\"2147483000\",pointerEvents:\"none\"});const wash=document.createElement(\"div\");Object.assign(wash.style,{position:\"absolute\",inset:\"0\",background:\"#010103\",opacity:\"0\"});const card=document.createElement(\"div\");Object.assign(card.style,{position:\"absolute\",left:`${rect.left}px`,top:`${rect.top}px`,width:`${rect.width}px`,height:`${rect.height}px`,borderRadius:radius,overflow:\"hidden\",background:\"#010103\"});card.appendChild(node);overlay.append(wash,card);document.body.appendChild(overlay);const timing={duration:DURATION,easing:EASE,fill:\"forwards\"};const grow=card.animate([{left:`${rect.left}px`,top:`${rect.top}px`,width:`${rect.width}px`,height:`${rect.height}px`,borderRadius:radius},{left:\"0px\",top:\"0px\",width:\"100vw\",height:\"100vh\",borderRadius:\"0px\"}],timing);// The page and the picture both fade to black as it grows.\nwash.animate([{opacity:0},{opacity:1}],{duration:DURATION,easing:\"ease-in\",fill:\"forwards\"});node.animate([{opacity:1},{opacity:1,offset:.35},{opacity:0}],{duration:DURATION,easing:\"ease-in\",fill:\"forwards\"});grow.onfinish=()=>{Object.assign(card.style,{left:\"0px\",top:\"0px\",width:\"100vw\",height:\"100vh\",borderRadius:\"0px\"});// A beat of black, then open the page underneath (client-side, so this layer survives).\nwindow.setTimeout(()=>{const timer=window.setTimeout(()=>releaseOverlay(),GIVE_UP_AFTER);window.__txfwExpand={overlay,videoTime,fromClick:true,timer};window.__txfwExpandBypass=true;try{anchor.click();}finally{window.__txfwExpandBypass=false;}},HOLD);};}function onClick(event){if(window.__txfwExpandBypass||event.defaultPrevented)return;if(event.button!==0||event.metaKey||event.ctrlKey||event.shiftKey||event.altKey)return;if(window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches)return;const target=event.target;const anchor=target?.closest?.(\"a[href]\");if(!anchor||!isProjectLink(anchor))return;const source=anchor.querySelector(\".txfw-expand\");if(!source)return;event.preventDefault();event.stopPropagation();event.stopImmediatePropagation();expand(source,anchor);}/** Installs the click handler once per page load. Call from any card override. */function useProjectExpand(){useEffect(()=>{if(typeof window===\"undefined\"||window.__txfwExpandInstalled)return;window.__txfwExpandInstalled=true;document.addEventListener(\"click\",onClick,true);},[]);}/** Fade the full-screen card copy away, revealing the page beneath it. */function releaseOverlay(fade=1e3){if(typeof window===\"undefined\")return;const state=window.__txfwExpand;window.__txfwExpand=null;if(state)window.clearTimeout(state.timer);const overlay=state?.overlay||document.getElementById(OVERLAY_ID);if(!overlay)return;const animation=overlay.animate([{opacity:1},{opacity:0}],{duration:fade,easing:\"ease\",fill:\"forwards\"});animation.onfinish=()=>overlay.remove();}// ---- Glow ----\nconst STYLE_ID=\"txfw-glow-border\";const CSS=`\n.txfw-glow { --gx: 50%; --gy: 50%; }\n.txfw-glow::before {\n    content: \"\";\n    position: absolute;\n    inset: 0;\n    z-index: 3;\n    border-radius: inherit;\n    padding: 1.5px;\n    pointer-events: none;\n    opacity: 0;\n    transition: opacity 0.45s ease;\n    background: radial-gradient(240px circle at var(--gx) var(--gy), var(--glow-hot), var(--glow-base) 75%);\n    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);\n    -webkit-mask-composite: xor;\n    mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);\n}\n.txfw-glow:hover::before { opacity: 1; }\n.txfw-glow-dark { --glow-hot: rgba(1, 1, 3, 0.8); --glow-base: rgba(1, 1, 3, 0.16); }\n.txfw-glow-ink { --glow-hot: rgba(1, 1, 3, 0.9); --glow-base: rgba(1, 1, 3, 0.18); }\n.txfw-glow-cream { --glow-hot: rgba(246, 243, 236, 0.95); --glow-base: rgba(246, 243, 236, 0.25); }\n\n.txfw-sheen::after {\n    content: \"\";\n    position: absolute;\n    inset: 3px;\n    z-index: 2;\n    border-radius: 10px;\n    pointer-events: none;\n    opacity: 0;\n    transition: opacity 0.45s ease;\n    mix-blend-mode: soft-light;\n    background: radial-gradient(560px circle at calc(var(--gx) - 3px) calc(var(--gy) - 3px), rgba(255, 255, 255, 0.55), rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0) 75%);\n}\n.txfw-sheen:hover::after { opacity: 1; }\n\n.txfw-tilt {\n    transform: perspective(1100px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) !important;\n    transition: transform 0.6s cubic-bezier(0.2, 0.7, 0.2, 1), box-shadow 0.6s ease;\n    will-change: transform;\n}\n.txfw-tilt.txfw-lift:hover { box-shadow: 0 24px 40px -24px rgba(1, 1, 3, 0.45); }\n\n.txfw-zoom > [data-framer-name=\"Media\"] > * { transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1); }\n.txfw-zoom:hover > [data-framer-name=\"Media\"] > * { transform: scale(1.03); }\n.txfw-nudge > * { transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1); }\n.txfw-nudge:hover > * { transform: scale(1.03); }\n\n@media (hover: none) { .txfw-glow::before, .txfw-sheen::after { display: none; } .txfw-tilt.txfw-lift:hover { box-shadow: none; } }\n@media (prefers-reduced-motion: reduce) {\n    .txfw-tilt { transform: none !important; }\n    .txfw-zoom:hover > [data-framer-name=\"Media\"] > *, .txfw-nudge:hover > * { transform: none; }\n}\n`;function useGlowStyles(){useEffect(()=>{if(typeof document===\"undefined\")return;let style=document.getElementById(STYLE_ID);if(!style){style=document.createElement(\"style\");style.id=STYLE_ID;document.head.appendChild(style);}if(style.textContent!==CSS)style.textContent=CSS;},[]);}const MAX_TILT_X=2.4;const MAX_TILT_Y=3;function glow(options){return Component=>{const Glow=/*#__PURE__*/forwardRef((props,ref)=>{useGlowStyles();useProjectExpand();// Buttons glow in their own border color, so one override works on cream and on black.\nconst onPointerEnter=event=>{const el=event.currentTarget;const css=getComputedStyle(el);const color=css.getPropertyValue(\"--border-color\").trim()||(parseFloat(css.borderTopWidth)>0?css.borderTopColor:\"\");const match=color.match(/rgba?\\(([^)]+)\\)/);if(match){const[r,g,b]=match[1].split(\",\").map(v=>v.trim());el.style.setProperty(\"--glow-hot\",`rgba(${r}, ${g}, ${b}, 0.9)`);el.style.setProperty(\"--glow-base\",`rgba(${r}, ${g}, ${b}, 0.3)`);}props.onPointerEnter?.(event);};const onPointerMove=event=>{const el=event.currentTarget;const rect=el.getBoundingClientRect();const x=event.clientX-rect.left;const y=event.clientY-rect.top;el.style.setProperty(\"--gx\",`${x}px`);el.style.setProperty(\"--gy\",`${y}px`);if(options.tilt&&rect.width>0&&rect.height>0){const px=x/rect.width-.5;const py=y/rect.height-.5;el.style.setProperty(\"--rx\",`${(-py*2*MAX_TILT_X).toFixed(2)}deg`);el.style.setProperty(\"--ry\",`${(px*2*MAX_TILT_Y).toFixed(2)}deg`);}props.onPointerMove?.(event);};const onPointerLeave=event=>{if(options.tilt){event.currentTarget.style.setProperty(\"--rx\",\"0deg\");event.currentTarget.style.setProperty(\"--ry\",\"0deg\");}props.onPointerLeave?.(event);};const className=[props.className,options.ring?\"txfw-glow\":\"\",options.ring?`txfw-glow-${options.tone}`:\"\",options.ring?options.zoom?\"txfw-zoom\":\"txfw-nudge\":\"\",options.sheen?\"txfw-sheen\":\"\",options.tilt?\"txfw-tilt\":\"\",options.lift?\"txfw-lift\":\"\",options.expand?\"txfw-expand\":\"\"].filter(Boolean).join(\" \");return /*#__PURE__*/_jsx(Component,{...props,ref:ref,className:className,onPointerEnter:onPointerEnter,onPointerMove:onPointerMove,onPointerLeave:onPointerLeave});});Glow.displayName=\"GlowBorder\";return Glow;};}/** Work cards: ring just outside the image, light sheen, slight zoom, lean toward the cursor with a soft shadow; grows to full screen on click. */export function withGlowMedia(Component){return glow({tone:\"ink\",ring:true,zoom:true,sheen:true,tilt:true,lift:true,expand:true})(Component);}/** Journal tile image: ring, sheen and zoom only; the whole tile tilts via withTiltCard. */export function withGlowMediaFlat(Component){return glow({tone:\"ink\",ring:true,zoom:true,sheen:true,tilt:false,lift:false})(Component);}/** Whole card leans toward the cursor (journal tiles, where the title sits over the image). */export function withTiltCard(Component){return glow({tone:\"ink\",ring:false,zoom:false,sheen:false,tilt:true,lift:false})(Component);}/** Outlined buttons on cream. */export function withGlowButton(Component){return glow({tone:\"dark\",ring:true,zoom:false,sheen:false,tilt:false,lift:false})(Component);}/** Outlined buttons on black panels. */export function withGlowButtonOnDark(Component){return glow({tone:\"cream\",ring:true,zoom:false,sheen:false,tilt:false,lift:false})(Component);}\nexport const __FramerMetadata__ = {\"exports\":{\"withGlowMediaFlat\":{\"type\":\"reactHoc\",\"name\":\"withGlowMediaFlat\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withTiltCard\":{\"type\":\"reactHoc\",\"name\":\"withTiltCard\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withGlowButton\":{\"type\":\"reactHoc\",\"name\":\"withGlowButton\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withGlowButtonOnDark\":{\"type\":\"reactHoc\",\"name\":\"withGlowButtonOnDark\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withGlowMedia\":{\"type\":\"reactHoc\",\"name\":\"withGlowMedia\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Glow_Border.map"],"mappings":"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"}