{"version":3,"file":"Circle_Cursor.BANzctbe.mjs","names":["useState","_Fragment"],"sources":["https:/framerusercontent.com/modules/XQeTsLzmLPvQvFJmNxa6/weXuzi1q3k4xfXMDxSIu/Circle_Cursor.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useState,useEffect}from\"react\";import{addPropertyControls,ControlType}from\"framer\";export default function CustomCursor(props){const[position,setPosition]=useState({x:0,y:0});const[hidden,setHidden]=useState(true);const[linkHovered,setLinkHovered]=useState(false);const[clicked,setClicked]=useState(false);useEffect(()=>{// Only show on desktop devices if hideOnMobile is enabled\nconst isMobile=/iPhone|iPad|iPod|Android/i.test(navigator.userAgent);if(isMobile&&props.hideOnMobile)return;// Hide default cursor\ndocument.body.style.cursor=\"none\";// Apply to all elements\nconst styleElement=document.createElement(\"style\");styleElement.innerHTML=`* { cursor: none !important; }`;document.head.appendChild(styleElement);const addEventListeners=()=>{document.addEventListener(\"mousemove\",onMouseMove);document.addEventListener(\"mouseenter\",onMouseEnter);document.addEventListener(\"mouseleave\",onMouseLeave);document.addEventListener(\"mousedown\",onMouseDown);document.addEventListener(\"mouseup\",onMouseUp);};const removeEventListeners=()=>{document.removeEventListener(\"mousemove\",onMouseMove);document.removeEventListener(\"mouseenter\",onMouseEnter);document.removeEventListener(\"mouseleave\",onMouseLeave);document.removeEventListener(\"mousedown\",onMouseDown);document.removeEventListener(\"mouseup\",onMouseUp);};const onMouseMove=e=>{setPosition({x:e.clientX,y:e.clientY});setHidden(false);};const onMouseEnter=()=>{setHidden(false);};const onMouseLeave=()=>{setHidden(true);};const onMouseDown=()=>{setClicked(true);};const onMouseUp=()=>{setClicked(false);};// Check for link hover - updated to handle Framer's dynamic content\nconst handleLinkHoverEvents=()=>{const updateLinkHover=()=>{document.querySelectorAll('a, button, [data-framer-name*=\"button\"], [role=\"button\"]').forEach(el=>{el.addEventListener(\"mouseenter\",()=>setLinkHovered(true));el.addEventListener(\"mouseleave\",()=>setLinkHovered(false));});};updateLinkHover();// Re-run when DOM changes (for dynamic Framer content)\nconst observer=new MutationObserver(updateLinkHover);observer.observe(document.body,{childList:true,subtree:true});return()=>observer.disconnect();};addEventListeners();const cleanupLinkEvents=handleLinkHoverEvents();return()=>{removeEventListeners();cleanupLinkEvents?.();// Restore default cursor on cleanup\ndocument.body.style.cursor=\"auto\";styleElement.remove();};},[props.hideOnMobile]);// Only show on desktop devices if hideOnMobile is enabled\nif(typeof window===\"undefined\")return null;const isMobile=/iPhone|iPad|iPod|Android/i.test(navigator.userAgent);if(isMobile&&props.hideOnMobile)return null;const currentScale=linkHovered?props.hoverScale:clicked?props.clickScale:1;const transitionSpeed=`${props.animationDuration}ms`;return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"fixed\",left:0,top:0,width:`${props.dotSize}px`,height:`${props.dotSize}px`,backgroundColor:props.dotColor,borderRadius:\"50%\",transform:`translate(${position.x-props.dotSize/2}px, ${position.y-props.dotSize/2}px)`,pointerEvents:\"none\",zIndex:1e4,mixBlendMode:props.blendMode,opacity:hidden?0:props.opacity,transition:`opacity ${transitionSpeed} ease`}}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"fixed\",left:0,top:0,width:`${props.ringSize}px`,height:`${props.ringSize}px`,border:`${props.ringBorderWidth}px solid ${props.ringColor}`,borderRadius:\"50%\",transform:`translate(${position.x-props.ringSize/2}px, ${position.y-props.ringSize/2}px) scale(${currentScale})`,pointerEvents:\"none\",zIndex:9999,mixBlendMode:props.blendMode,opacity:hidden?0:props.opacity,transition:`all ${transitionSpeed} ease`,backgroundColor:\"transparent\"}})]});}// Framer property controls\naddPropertyControls(CustomCursor,{dotSize:{type:ControlType.Number,defaultValue:6,min:2,max:20,step:1,displayStepper:true,title:\"Dot Size\"},dotColor:{type:ControlType.Color,defaultValue:\"#ffffff\",title:\"Dot Color\"},ringSize:{type:ControlType.Number,defaultValue:32,min:10,max:100,step:2,displayStepper:true,title:\"Ring Size\"},ringColor:{type:ControlType.Color,defaultValue:\"#ffffff\",title:\"Ring Color\"},ringBorderWidth:{type:ControlType.Number,defaultValue:1,min:1,max:5,step:1,displayStepper:true,title:\"Ring Border Width\"},hoverScale:{type:ControlType.Number,defaultValue:1.5,min:.5,max:3,step:.1,displayStepper:true,title:\"Hover Scale\"},clickScale:{type:ControlType.Number,defaultValue:.75,min:.2,max:2,step:.05,displayStepper:true,title:\"Click Scale\"},animationDuration:{type:ControlType.Number,defaultValue:200,min:50,max:1e3,step:50,displayStepper:true,title:\"Animation Duration (ms)\"},blendMode:{type:ControlType.Enum,defaultValue:\"difference\",options:[\"normal\",\"multiply\",\"screen\",\"overlay\",\"darken\",\"lighten\",\"color-dodge\",\"color-burn\",\"hard-light\",\"soft-light\",\"difference\",\"exclusion\"],optionTitles:[\"Normal\",\"Multiply\",\"Screen\",\"Overlay\",\"Darken\",\"Lighten\",\"Color Dodge\",\"Color Burn\",\"Hard Light\",\"Soft Light\",\"Difference\",\"Exclusion\"],title:\"Blend Mode\"},opacity:{type:ControlType.Number,defaultValue:1,min:0,max:1,step:.1,displayStepper:true,title:\"Opacity\"},hideOnMobile:{type:ControlType.Boolean,defaultValue:true,title:\"Hide on Mobile\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CustomCursor\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Circle_Cursor.map"],"mappings":"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"}