{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/tKrfJ0E27yWRkXTkDxA4/D9F9YWuNYsiHM8apuBy5/Grid.js", "ssg:https://framerusercontent.com/modules/2trSB8kZMcvSDRHUfsNv/i9jqXyWDNiDgoniQRyV3/withCursor.js"],
  "sourcesContent": ["import{jsx as _jsx}from\"react/jsx-runtime\";import{motion}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";/**\n * These annotations control how your component sizes\n * Learn more: https://www.framer.com/docs/guides/auto-sizing\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function Grid(props){return /*#__PURE__*/_jsx(motion.div,{animate:{scaleY:[0,1]},transition:{duration:2,ease:[.075,.82,.165,1]},style:{...props.style,transformOrigin:\"bottom left\",backgroundImage:`linear-gradient(90deg, ${props.background} 1px, transparent 1px)`,backgroundSize:`${Math.round(100/props.columns)}.01%`,marginLeft:\"-1px\",opacity:props.opacity}});}addPropertyControls(Grid,{columns:{type:ControlType.Number,defaultValue:4,min:0,max:8,step:1,displayStepper:true},opacity:{type:ControlType.Number,defaultValue:.15,min:0,max:1},background:{type:ControlType.Color,defaultValue:\"rgba(255, 255, 255, 1)\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Grid\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Grid.map", "import{jsx as _jsx}from\"react/jsx-runtime\";import{useState,useEffect,useRef}from\"react\";import{useMotionValue,useSpring}from\"framer-motion\";export function withFollowMouse(Component){return props=>{const cursorRef=useRef(null);const[size,setSize]=useState({top:0,left:0,width:0,height:0});const[mouseData,enabled,interactive,pressed]=useMousePosition();const springValue={damping:60,mass:1,stiffness:500};// const x = useSpring(mouseData.x, springValue)\n// const y = useSpring(mouseData.y, springValue)\nconst scale=useSpring(mouseData.scale,springValue);useEffect(()=>{setSize({top:window.innerHeight/2,left:window.innerWidth/2,width:cursorRef.current.offsetWidth,height:cursorRef.current.offsetHeight});},[]);return /*#__PURE__*/_jsx(Component,{...props,ref:cursorRef,animate:{opacity:enabled?1:0},style:{...props.style,position:\"fixed\",top:-size.height/2,left:-size.width/2,x:mouseData.x,y:mouseData.y,scale,pointerEvents:\"none\"}});};}function useMousePosition(){const x=useMotionValue(0);const y=useMotionValue(0);const scale=useMotionValue(1);const[enabled,setEnabled]=useState(false);const[pressed,setPressed]=useState(false);const[interactive,setInteractive]=useState(false);let moveTimer;useEffect(()=>{if(!window.matchMedia(\"(pointer: fine)\").matches){return;}const onMouseMove=e=>{var _e_target_parentNode,_e_target_parentNode1,_e_target_dataset;x.set(e.clientX);y.set(e.clientY);const velX=x.getVelocity();const velY=y.getVelocity();const s=getScale(velX,velY);const defaultScale=1-s;if(e.target.nodeName===\"BUTTON\"||e.target.nodeName===\"A\"||((_e_target_parentNode=e.target.parentNode)===null||_e_target_parentNode===void 0?void 0:_e_target_parentNode.nodeName)===\"A\"||((_e_target_parentNode1=e.target.parentNode)===null||_e_target_parentNode1===void 0?void 0:_e_target_parentNode1.nodeName)===\"BUTTON\"){setInteractive(true);scale.set(1.4);}else{setInteractive(false);scale.set(defaultScale);moveTimer=setTimeout(()=>{scale.set(1);},10);}if((_e_target_dataset=e.target.dataset)===null||_e_target_dataset===void 0?void 0:_e_target_dataset.noCursor){setEnabled(false);}else{setEnabled(true);}if(moveTimer){clearTimeout(moveTimer);}};const onMouseLeave=()=>{setEnabled(false);};const onMouseDown=()=>{setPressed(true);scale.set(.8);};const onMouseUp=()=>{setPressed(false);scale.set(1);};document.addEventListener(\"mouseleave\",onMouseLeave);document.addEventListener(\"mousemove\",onMouseMove);document.addEventListener(\"mousedown\",onMouseDown);document.addEventListener(\"mouseup\",onMouseUp);const style=document.createElement(\"style\");style.textContent=`\n            html,\n            a,\n            button:not(:disabled),\n            video {\n                cursor: none !important;\n            }\n        `;document.head.appendChild(style);return()=>{document.removeEventListener(\"mouseleave\",onMouseLeave);document.removeEventListener(\"mousemove\",onMouseMove);document.removeEventListener(\"mousedown\",onMouseDown);document.removeEventListener(\"mouseup\",onMouseUp);document.head.removeChild(style);};},[]);return[{x,y,scale},enabled,interactive,pressed];}// Function for Mouse Move Scale Change\nfunction getScale(diffX,diffY){const distance=Math.sqrt(Math.pow(diffX,2)+Math.pow(diffY,2));return Math.min(distance/4e3,.8);}\nexport const __FramerMetadata__ = {\"exports\":{\"withFollowMouse\":{\"type\":\"reactHoc\",\"name\":\"withFollowMouse\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./withCursor.map"],
  "mappings": "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",
  "names": ["Grid", "props", "p", "motion", "addPropertyControls", "ControlType", "withFollowMouse", "Component", "props", "cursorRef", "pe", "size", "setSize", "ye", "mouseData", "enabled", "interactive", "pressed", "useMousePosition", "springValue", "scale", "useSpring", "ue", "window", "p", "x", "useMotionValue", "y", "setEnabled", "setPressed", "setInteractive", "moveTimer", "onMouseMove", "e", "_e_target_parentNode", "_e_target_parentNode1", "_e_target_dataset", "velX", "velY", "defaultScale", "getScale", "onMouseLeave", "onMouseDown", "onMouseUp", "style", "diffX", "diffY", "distance"]
}
