{"version":3,"file":"WithLumenShadow.Dfj32Ukl.mjs","names":["useRef","useState"],"sources":["https:/framerusercontent.com/modules/guo3EO0X07KwENREWZGF/yUBoLceEvUdE3M2joDc4/WithLumenShadow.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef,useEffect,useRef,useState,startTransition}from\"react\";const cursor={x:0,y:0,hasMoved:false};const targetCursor={x:0,y:0,hasMoved:false};const subscribers=new Set;let rafId=0;let listening=false;let mountCount=0;function easeOutCubic(value){return 1-Math.pow(1-value,3);}function onMouseMove(event){targetCursor.x=event.clientX;targetCursor.y=event.clientY;targetCursor.hasMoved=true;}function frameLoop(){const smoothing=.18;cursor.x+=(targetCursor.x-cursor.x)*smoothing;cursor.y+=(targetCursor.y-cursor.y)*smoothing;cursor.hasMoved=targetCursor.hasMoved;subscribers.forEach(notify=>notify());rafId=window.requestAnimationFrame(frameLoop);}function startTracking(){if(typeof window===\"undefined\"||listening)return;window.addEventListener(\"mousemove\",onMouseMove,{passive:true});listening=true;rafId=window.requestAnimationFrame(frameLoop);}function stopTracking(){if(typeof window===\"undefined\"||!listening)return;window.removeEventListener(\"mousemove\",onMouseMove);listening=false;if(rafId){window.cancelAnimationFrame(rafId);rafId=0;}}export function withLumenShadow(Component){return /*#__PURE__*/forwardRef((props,forwardedRef)=>{const localRef=useRef(null);const[textShadow,setTextShadow]=useState(\"0px 0px 8px rgba(26, 26, 26, 0)\");useEffect(()=>{if(typeof window===\"undefined\")return;mountCount+=1;startTracking();const notify=()=>{const node=localRef.current;if(!node||!cursor.hasMoved){startTransition(()=>{setTextShadow(\"0px 0px 8px rgba(26, 26, 26, 0)\");});return;}const rect=node.getBoundingClientRect();const cx=rect.left+rect.width*.5;const cy=rect.top+rect.height*.5;const dx=cx-cursor.x;const dy=cy-cursor.y;const distance=Math.hypot(dx,dy);const activationRadius=600;if(distance>=activationRadius||distance===0){startTransition(()=>{setTextShadow(\"0px 0px 8px rgba(26, 26, 26, 0)\");});return;}const proximity=Math.max(0,1-distance/activationRadius);const eased=easeOutCubic(proximity);const nx=dx/distance;const ny=dy/distance;const maxOffset=10;const offsetX=nx*maxOffset*eased;const offsetY=ny*maxOffset*eased;const blur=6+8*eased;const opacity=.12*eased;const nextShadow=`${offsetX.toFixed(2)}px ${offsetY.toFixed(2)}px ${blur.toFixed(2)}px rgba(26, 26, 26, ${opacity.toFixed(3)})`;startTransition(()=>{setTextShadow(nextShadow);});};subscribers.add(notify);return()=>{subscribers.delete(notify);mountCount-=1;if(mountCount<=0){mountCount=0;stopTracking();}};},[]);return /*#__PURE__*/_jsx(Component,{...props,ref:node=>{localRef.current=node;if(typeof forwardedRef===\"function\"){forwardedRef(node);}else if(forwardedRef&&\"current\"in forwardedRef){forwardedRef.current=node;}},style:{...props.style,textShadow,transition:\"text-shadow 100ms ease-out\",willChange:\"text-shadow\"}});});}\nexport const __FramerMetadata__ = {\"exports\":{\"withLumenShadow\":{\"type\":\"reactHoc\",\"name\":\"withLumenShadow\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./WithLumenShadow.map"],"mappings":"uJAAgR,SAAS,EAAa,EAAM,CAAC,MAAO,IAAW,EAAE,IAAM,CAAG,CAAC,SAAS,EAAY,EAAM,CAAC,EAAa,EAAE,EAAM,QAAQ,EAAa,EAAE,EAAM,QAAQ,EAAa,SAAS,EAAK,CAAC,SAAS,GAAW,CAAC,IAAM,EAAU,IAAI,EAAO,IAAI,EAAa,EAAE,EAAO,GAAG,EAAU,EAAO,IAAI,EAAa,EAAE,EAAO,GAAG,EAAU,EAAO,SAAS,EAAa,SAAS,EAAY,QAAQ,GAAQ,EAAO,CAAC,EAAE,EAAM,EAAO,sBAAsB,CAAS,CAAE,CAAC,SAAS,GAAe,CAAW,IAAS,QAAa,IAAiB,EAAO,iBAAiB,YAAY,EAAY,CAAC,QAAQ,EAAI,CAAC,EAAE,EAAU,GAAK,EAAM,EAAO,sBAAsB,CAAS,EAAE,CAAC,SAAS,GAAc,CAAW,IAAS,QAAa,CAAC,IAAiB,EAAO,oBAAoB,YAAY,CAAW,EAAE,EAAU,GAAM,AAA6C,KAAnC,EAAO,qBAAqB,CAAK,EAAQ,GAAG,CAAC,SAAgB,EAAgB,EAAU,CAAC,OAAoB,GAAY,EAAM,IAAe,CAAC,IAAM,EAASA,EAAO,IAAI,EAAO,CAAC,EAAW,GAAeC,EAAS,iCAAiC,EAA6nC,OAA3nC,MAAc,CAAC,GAAU,IAAS,OAAY,OAAO,GAAY,EAAE,EAAc,EAAE,IAAM,MAAW,CAAC,IAAM,EAAK,EAAS,QAAQ,GAAG,CAAC,GAAM,CAAC,EAAO,SAAS,CAAC,MAAoB,CAAC,EAAc,iCAAiC,CAAE,CAAC,EAAE,MAAO,CAAC,IAAM,EAAK,EAAK,sBAAsB,EAAQ,EAAG,EAAK,KAAK,EAAK,MAAM,GAAS,EAAG,EAAK,IAAI,EAAK,OAAO,GAAS,EAAG,EAAG,EAAO,EAAQ,EAAG,EAAG,EAAO,EAAQ,EAAS,KAAK,MAAM,EAAG,CAAE,EAA6B,GAAG,GAAU,KAAkB,IAAW,EAAE,CAAC,MAAoB,CAAC,EAAc,iCAAiC,CAAE,CAAC,EAAE,MAAO,CAAyD,IAAM,EAAM,EAApD,KAAK,IAAI,EAAE,EAAE,EAAS,GAAmD,CAAC,EAAQ,EAAG,EAAG,EAAe,EAAG,EAAG,EAAkC,EAAQ,EAAG,GAAU,EAAY,EAAQ,EAAG,GAAU,EAAY,EAAK,EAAE,EAAE,EAAY,EAAQ,IAAI,EAAY,EAAW,GAAG,EAAQ,QAAQ,CAAC,EAAE,KAAK,EAAQ,QAAQ,CAAC,EAAE,KAAK,EAAK,QAAQ,CAAC,EAAE,sBAAsB,EAAQ,QAAQ,CAAC,EAAE,GAAG,MAAoB,CAAC,EAAc,CAAU,CAAE,CAAC,CAAE,EAA0B,OAAxB,EAAY,IAAI,CAAM,MAAY,CAAC,EAAY,OAAO,CAAM,EAAE,IAAiB,GAAY,IAAG,EAAW,EAAE,EAAa,EAAG,CAAE,EAAE,CAAC,CAAC,EAAsB,EAAK,EAAU,CAAC,GAAG,EAAM,IAAI,GAAM,CAAC,EAAS,QAAQ,EAAQ,OAAO,GAAe,WAAY,EAAa,CAAI,EAAW,GAAc,YAAY,IAAc,EAAa,QAAQ,EAAM,EAAE,MAAM,CAAC,GAAG,EAAM,MAAM,aAAW,WAAW,6BAA6B,WAAW,aAAa,CAAC,CAAC,CAAE,CAAC,CAAE,iCAAhqF,IAAwE,EAAO,EAAO,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAK,EAAQ,EAAa,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAK,EAAQ,EAAY,IAAI,IAAQ,EAAM,EAAM,EAAU,GAAU,EAAW"}