{"version":3,"file":"Magnetic.CNLRiChn.mjs","names":["__legacyOverrideHOC_DataObserverContext"],"sources":["https:/framerusercontent.com/modules/XZeEPdC7OdtQPKJhqy8L/QMIaxmqJthjp3L83jLOj/Magnetic.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useMotionValue,useSpring}from\"framer-motion\";import{useEffect,useRef,useCallback}from\"react\";export function Followcursor({damping=100,stiffness=1e3,effectRange=2,intensity=5,actionableArea=30,style}){const x=useMotionValue(0);const y=useMotionValue(0);const springX=useSpring(x,{damping,stiffness});const springY=useSpring(y,{damping,stiffness});const ref=useRef(null);const handleMouseMove=useCallback(event=>{if(!ref.current)return;const element=ref.current;const rect=element.getBoundingClientRect();const mouseX=event.clientX;const mouseY=event.clientY;const isWithinBounds=mouseX>=rect.left-actionableArea&&mouseX<=rect.right+actionableArea&&mouseY>=rect.top-actionableArea&&mouseY<=rect.bottom+actionableArea;if(isWithinBounds){const displacementX=mouseX-(rect.left+rect.width/2);const displacementY=mouseY-(rect.top+rect.height/2);const normalizedX=displacementX/(rect.width/2)*effectRange*intensity;const normalizedY=displacementY/(rect.height/2)*effectRange*intensity;// Use requestAnimationFrame to update motion values\nrequestAnimationFrame(()=>{x.set(normalizedX);y.set(normalizedY);});}else{// Reset position if mouse is out of bounds\nrequestAnimationFrame(()=>{x.set(0);y.set(0);});}},[actionableArea,effectRange,intensity,x,y]);useEffect(()=>{window.addEventListener(\"mousemove\",handleMouseMove);return()=>{window.removeEventListener(\"mousemove\",handleMouseMove);};},[handleMouseMove]);return{ref:ref,style:{x:springX,y:springY,...style}};}import{useContext as __legacyOverrideHOC_useContext}from\"react\";import{DataObserverContext as __legacyOverrideHOC_DataObserverContext}from\"framer\";export function withFollowcursor(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...Followcursor(props)});};}withFollowcursor.displayName=\"Followcursor\";\nexport const __FramerMetadata__ = {\"exports\":{\"Followcursor\":{\"type\":\"override\",\"name\":\"Followcursor\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withFollowcursor\":{\"type\":\"reactHoc\",\"name\":\"withFollowcursor\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Magnetic.map"],"mappings":"2WAAsJ,SAAS,EAAa,CAAC,UAAQ,IAAI,YAAU,IAAI,cAAY,EAAE,YAAU,EAAE,iBAAe,GAAG,QAAM,CAAC,CAA0K,IAAnK,EAAE,EAAe,EAAE,CAAO,EAAE,EAAe,EAAE,CAAO,EAAQ,EAAU,EAAE,CAAC,UAAQ,WAAU,EAAC,CAAO,EAAQ,EAAU,EAAE,CAAC,UAAQ,WAAU,EAAC,CAAO,EAAI,EAAO,KAAK,CAAO,EAAgB,EAAY,GAAO,CAAC,IAAI,EAAI,QAAQ,OAAkI,IAArH,EAAQ,EAAI,QAAc,EAAK,EAAQ,uBAAuB,CAAO,EAAO,EAAM,QAAc,EAAO,EAAM,QAAc,EAAe,GAAQ,EAAK,KAAK,GAAgB,GAAQ,EAAK,MAAM,GAAgB,GAAQ,EAAK,IAAI,GAAgB,GAAQ,EAAK,OAAO,EAAe,GAAG,EAAe,CAA8K,IAAvK,EAAc,GAAQ,EAAK,KAAK,EAAK,MAAM,GAAS,EAAc,GAAQ,EAAK,IAAI,EAAK,OAAO,GAAS,EAAY,GAAe,EAAK,MAAM,GAAG,EAAY,EAAgB,EAAY,GAAe,EAAK,OAAO,GAAG,EAAY,EAC1/B,sBAAsB,IAAI,CAAoB,AAAnB,EAAE,IAAI,EAAY,CAAC,EAAE,IAAI,EAAY,AAAE,EAAC,AAAE,MACrE,sBAAsB,IAAI,CAAU,AAAT,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,AAAE,EAAC,AAAG,EAAC,CAAC,EAAe,EAAY,EAAU,EAAE,CAAE,EAAC,CAA+J,MAA9J,GAAU,KAAK,EAAO,iBAAiB,YAAY,EAAgB,CAAO,IAAI,CAAC,EAAO,oBAAoB,YAAY,EAAgB,AAAE,GAAG,CAAC,CAAgB,EAAC,CAAO,CAAK,MAAI,MAAM,CAAC,EAAE,EAAQ,EAAE,EAAQ,GAAG,CAAM,CAAC,CAAE,CAA0J,SAAS,EAAiB,EAAE,CAAC,MAAO,CAAA,IAAQ,EAA+BA,EAAwC,CAAQ,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,EAAa,EAAM,AAAC,EAAC,CAAI,cAAA,AAEjlB,IAJpC,GAA2C,IAAoD,IAAgD,CAEoO,GAAmF,CAA+K,EAAiB,YAAY"}