{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/cjyn4cwo7LXHpCdaRXYL/h7Gmjr85tUw62yCeJqiC/QiDr8NhVa.js", "ssg:https://framerusercontent.com/modules/lhAbVaak9E4wYVNHqeh3/TKjRkkMXOsKiAdEi4WzI/Grid.js", "ssg:https://framerusercontent.com/modules/A2gTkxdgckUayPO4cuur/v1EmMzKEHP6TZlAv48Hj/withCursor.js"],
  "sourcesContent": ["// Generated by Framer (5951dd1)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Martian Mono-300\",\"GF;Martian Mono-regular\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Martian Mono\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/martianmono/v3/2V08KIcADoYhV6w87xrTKjs4CYElh_VS9YA4TlTnQzaVMIE6j15dYY00u86TD75kdpF2.woff2\",weight:\"300\"},{family:\"Martian Mono\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/martianmono/v3/2V08KIcADoYhV6w87xrTKjs4CYElh_VS9YA4TlTnQzaVMIE6j15dYY1qu86TD75kdpF2.woff2\",weight:\"400\"}]}];export const css=['.framer-4Evqb .framer-styles-preset-mcv18p:not(.rich-text-wrapper), .framer-4Evqb .framer-styles-preset-mcv18p.rich-text-wrapper p { --framer-font-family: \"Martian Mono\", monospace; --framer-font-family-bold: \"Martian Mono\", monospace; --framer-font-open-type-features: normal; --framer-font-size: 10px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-weight: 300; --framer-font-weight-bold: 400; --framer-letter-spacing: 0.02em; --framer-line-height: 1.12em; --framer-paragraph-spacing: 12px; --framer-text-alignment: start; --framer-text-color: var(--token-ad9b4115-c8bf-4757-af13-005f7e571fb7, #000000); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: uppercase; }'];export const className=\"framer-4Evqb\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}", "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\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"__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 ref,ref1,ref2;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\"||((ref=e.target.parentNode)===null||ref===void 0?void 0:ref.nodeName)===\"A\"||((ref1=e.target.parentNode)===null||ref1===void 0?void 0:ref1.nodeName)===\"BUTTON\"){setInteractive(true);scale.set(1.4);}else{setInteractive(false);scale.set(defaultScale);moveTimer=setTimeout(()=>{scale.set(1);},10);}if((ref2=e.target.dataset)===null||ref2===void 0?void 0:ref2.noCursor){setEnabled(false);}else{setEnabled(true);}if(moveTimer){clearTimeout(moveTimer);}};const onMouseOut=()=>{setEnabled(false);};const onMouseDown=()=>{setPressed(true);scale.set(.8);};const onMouseUp=()=>{setPressed(false);scale.set(1);};document.addEventListener(\"mouseout\",onMouseOut);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(\"mouseout\",onMouseOut);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": ["fontStore", "fonts", "css", "className", "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", "ref", "ref1", "ref2", "velX", "velY", "defaultScale", "getScale", "onMouseOut", "onMouseDown", "onMouseUp", "style", "diffX", "diffY", "distance"]
}
