{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/6Xd7RvKKpyC1Tm8MLKNW/dnjmVSWpNcLp1QjhQfKN/Custom_cursor.js"],
  "sourcesContent": ["import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useState}from\"react\";import{motion,useSpring}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";export default function FluidCursor(props){const{cursorColor,smoothness,bounce,cursorImage,imageSize,borderRadius,blendingMode,hideOnMobile}=props;const cursorX=useSpring(0,{damping:bounce,stiffness:300});const cursorY=useSpring(0,{damping:bounce,stiffness:300});const[hidden,setHidden]=useState(false);const[isExpanded,setIsExpanded]=useState(false);const[isMobile,setIsMobile]=useState(window.innerWidth<=768);useEffect(()=>{const handleResize=()=>{setIsMobile(window.innerWidth<=768);};window.addEventListener(\"resize\",handleResize);const moveCursor=e=>{cursorX.set(e.clientX-window.innerWidth/2);cursorY.set(e.clientY-window.innerHeight/2);};const onMouseEnter=()=>setHidden(false);const onMouseLeave=()=>setHidden(true);const expandCursor=()=>setIsExpanded(true);const shrinkCursor=()=>setIsExpanded(false);document.addEventListener(\"mousemove\",moveCursor);document.addEventListener(\"mouseenter\",onMouseEnter);document.addEventListener(\"mouseleave\",onMouseLeave);const clickableElements=document.querySelectorAll('a, button, input[type=\"submit\"], [role=\"button\"]');clickableElements.forEach(elem=>{elem.addEventListener(\"mouseover\",expandCursor);elem.addEventListener(\"mouseout\",shrinkCursor);});return()=>{window.removeEventListener(\"resize\",handleResize);document.removeEventListener(\"mousemove\",moveCursor);document.removeEventListener(\"mouseenter\",onMouseEnter);document.removeEventListener(\"mouseleave\",onMouseLeave);clickableElements.forEach(elem=>{elem.removeEventListener(\"mouseover\",expandCursor);elem.removeEventListener(\"mouseout\",shrinkCursor);});};},[smoothness,bounce,cursorX,cursorY]);const expandedSize=isExpanded?imageSize*1.5:imageSize;const cursorStyle={position:\"fixed\",top:\"50%\",left:\"50%\",x:cursorX,y:cursorY,pointerEvents:\"none\",zIndex:9999,width:cursorImage?`${expandedSize}px`:`${expandedSize}px`,height:cursorImage?`${expandedSize}px`:`${expandedSize}px`,borderRadius:`${borderRadius}%`,transform:\"translate(-50%, -50%)\",display:hidden||hideOnMobile&&isMobile?\"none\":\"block\",backgroundColor:cursorColor,backgroundImage:cursorImage?`url(${cursorImage})`:\"none\",backgroundSize:\"cover\",backgroundRepeat:\"no-repeat\",opacity:isExpanded?.7:1,transition:isExpanded?`width ${smoothness}ms ease, height ${smoothness}ms ease, opacity ${smoothness}ms ease`:\"none\",mixBlendMode:blendingMode};return /*#__PURE__*/_jsx(motion.div,{style:cursorStyle});}FluidCursor.defaultProps={cursorColor:\"#fff\",smoothness:100,bounce:25,cursorImage:null,imageSize:24,borderRadius:50,blendingMode:\"difference\",hideOnMobile:false};addPropertyControls(FluidCursor,{cursorColor:{type:ControlType.Color,title:\"Cursor Color\"},smoothness:{type:ControlType.Number,title:\"Smoothness\",min:0,max:1e3,step:10,defaultValue:100},bounce:{type:ControlType.Number,title:\"Bounce\",min:0,max:50,step:1,defaultValue:25},cursorImage:{type:ControlType.Image,title:\"Cursor Image\"},imageSize:{type:ControlType.Number,title:\"Image Size (px)\",min:1,defaultValue:24},borderRadius:{type:ControlType.Number,title:\"Border Radius (%)\",min:0,max:100,defaultValue:50},blendingMode:{type:ControlType.Enum,title:\"Blending Mode\",options:[\"normal\",\"multiply\",\"screen\",\"overlay\",\"darken\",\"lighten\",\"color-dodge\",\"color-burn\",\"hard-light\",\"soft-light\",\"difference\",\"exclusion\",\"hue\",\"saturation\",\"color\",\"luminosity\"],defaultValue:\"difference\"},hideOnMobile:{type:ControlType.Boolean,title:\"Hide on Mobile\",enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:false}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FluidCursor\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Custom_cursor.map"],
  "mappings": "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",
  "names": ["FluidCursor", "props", "cursorColor", "smoothness", "bounce", "cursorImage", "imageSize", "borderRadius", "blendingMode", "hideOnMobile", "cursorX", "useSpring", "cursorY", "hidden", "setHidden", "ye", "isExpanded", "setIsExpanded", "isMobile", "setIsMobile", "window", "ue", "handleResize", "moveCursor", "e", "onMouseEnter", "onMouseLeave", "expandCursor", "shrinkCursor", "clickableElements", "elem", "expandedSize", "cursorStyle", "p", "motion", "addPropertyControls", "ControlType"]
}
