{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/TmB8v8lcqrH9DBr4D06C/puoySkZLx1U848zh4XNv/Light.js"],
  "sourcesContent": ["import{jsx as _jsx}from\"react/jsx-runtime\";import{useRef,useState}from\"react\";import{useEffect}from\"react\";import{useSpring,animated}from\"react-spring\";export function withCursorFollow(Component){return props=>{const ref=useRef(null);const[isHovering,setIsHovering]=useState(false);const[originalPosition,setOriginalPosition]=useState({left:0,top:0});const[centerPosition,setCenterPosition]=useState({left:0,top:0});const springProps=useSpring({left:isHovering?originalPosition.left:centerPosition.left,top:isHovering?originalPosition.top:centerPosition.top,config:{mass:1,tension:170,friction:26}});useEffect(()=>{if(!ref.current)return;const buttonRect=ref.current.getBoundingClientRect();const elementRect=ref.current.getBoundingClientRect();setCenterPosition({left:buttonRect.width/2-elementRect.width/2,top:buttonRect.height/2-elementRect.height/2});const handleMouseMove=e=>{if(!ref.current)return;if(e.target.closest(\"button\")){setIsHovering(true);const buttonRect=e.target.getBoundingClientRect();const elementRect=ref.current.getBoundingClientRect();setOriginalPosition({left:e.clientX-buttonRect.left-elementRect.width/2,top:e.clientY-buttonRect.top-elementRect.height/2});setCenterPosition({left:buttonRect.width/2-elementRect.width/2,top:buttonRect.height/2-elementRect.height/2});}else{setIsHovering(false);}};window.addEventListener(\"mousemove\",handleMouseMove);return()=>{window.removeEventListener(\"mousemove\",handleMouseMove);};},[]);return /*#__PURE__*/_jsx(animated.div,{ref:ref,style:{position:\"absolute\",pointerEvents:\"none\",left:springProps.left,top:springProps.top},children:/*#__PURE__*/_jsx(Component,{...props})});};}\nexport const __FramerMetadata__ = {\"exports\":{\"withCursorFollow\":{\"type\":\"reactHoc\",\"name\":\"withCursorFollow\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Light.map"],
  "mappings": "kJAA+J,SAASA,EAAiBC,EAAU,CAAC,OAAOC,GAAO,CAAC,IAAMC,EAAIC,EAAO,IAAI,EAAO,CAACC,EAAWC,CAAa,EAAEC,EAAS,EAAK,EAAO,CAACC,EAAiBC,CAAmB,EAAEF,EAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAO,CAACG,EAAeC,CAAiB,EAAEJ,EAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAQK,EAAYC,EAAU,CAAC,KAAKR,EAAWG,EAAiB,KAAKE,EAAe,KAAK,IAAIL,EAAWG,EAAiB,IAAIE,EAAe,IAAI,OAAO,CAAC,KAAK,EAAE,QAAQ,IAAI,SAAS,EAAE,CAAC,CAAC,EAAE,OAAAI,EAAU,IAAI,CAAC,GAAG,CAACX,EAAI,QAAQ,OAAO,IAAMY,EAAWZ,EAAI,QAAQ,sBAAsB,EAAQa,EAAYb,EAAI,QAAQ,sBAAsB,EAAEQ,EAAkB,CAAC,KAAKI,EAAW,MAAM,EAAEC,EAAY,MAAM,EAAE,IAAID,EAAW,OAAO,EAAEC,EAAY,OAAO,CAAC,CAAC,EAAE,IAAMC,EAAgB,GAAG,CAAC,GAAId,EAAI,QAAe,GAAG,EAAE,OAAO,QAAQ,QAAQ,EAAE,CAACG,EAAc,EAAI,EAAE,IAAMS,EAAW,EAAE,OAAO,sBAAsB,EAAQC,EAAYb,EAAI,QAAQ,sBAAsB,EAAEM,EAAoB,CAAC,KAAK,EAAE,QAAQM,EAAW,KAAKC,EAAY,MAAM,EAAE,IAAI,EAAE,QAAQD,EAAW,IAAIC,EAAY,OAAO,CAAC,CAAC,EAAEL,EAAkB,CAAC,KAAKI,EAAW,MAAM,EAAEC,EAAY,MAAM,EAAE,IAAID,EAAW,OAAO,EAAEC,EAAY,OAAO,CAAC,CAAC,CAAE,MAAMV,EAAc,EAAK,CAAG,EAAE,OAAAY,EAAO,iBAAiB,YAAYD,CAAe,EAAQ,IAAI,CAACC,EAAO,oBAAoB,YAAYD,CAAe,CAAE,CAAE,EAAE,CAAC,CAAC,EAAsBE,EAAKC,EAAS,IAAI,CAAC,IAAIjB,EAAI,MAAM,CAAC,SAAS,WAAW,cAAc,OAAO,KAAKS,EAAY,KAAK,IAAIA,EAAY,GAAG,EAAE,SAAsBO,EAAKlB,EAAU,CAAC,GAAGC,CAAK,CAAC,CAAC,CAAC,CAAE,CAAE",
  "names": ["withCursorFollow", "Component", "props", "ref", "pe", "isHovering", "setIsHovering", "ye", "originalPosition", "setOriginalPosition", "centerPosition", "setCenterPosition", "springProps", "useSpring", "ue", "buttonRect", "elementRect", "handleMouseMove", "window", "p", "P"]
}
