{"version":3,"file":"shared-lib.CQF4Pyv0.mjs","names":["useRef","useState","style","_Fragment"],"sources":["https:/framerusercontent.com/modules/d8Wo14SsGxkFYtXZDkG9/i674mSioEv9QKi5923vN/MagicBlendCursor_Sajad.js","https:/framerusercontent.com/modules/kAVYbvIPzBjAEFzjdw8J/qJv50rYSjHuyH7eG8FL6/siteMetadata.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{startTransition,useState,useEffect,useRef}from\"react\";import{createPortal}from\"react-dom\";import{motion,useMotionValue,useSpring}from\"framer-motion\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function MagicBlendCursor({presetTheme=\"Original Invert\",opacity=1,hoverScale=1.5,damping=30,stiffness=300,mass=.5,style}){const containerRef=useRef(null);const[cursorSize,setCursorSize]=useState({w:100,h:100});const cursorSizeRef=useRef({w:100,h:100});const mouseX=useMotionValue(-1e3);const mouseY=useMotionValue(-1e3);const springX=useSpring(mouseX,{damping,stiffness,mass});const springY=useSpring(mouseY,{damping,stiffness,mass});const[isHovered,setIsHovered]=useState(false);const[isMounted,setIsMounted]=useState(false);const[isTouchDevice,setIsTouchDevice]=useState(false);const isCanvas=RenderTarget.current()===RenderTarget.canvas;let cursorColor=\"transparent\";let backdropFilterStyle=\"none\";let mixBlendModeStyle=\"normal\";switch(presetTheme){case\"Monochrome\":cursorColor=\"rgba(255, 255, 255, 0.5)\";backdropFilterStyle=\"invert(100%) grayscale(100%) contrast(1.2)\";break;case\"Sunset\":cursorColor=\"rgba(255, 107, 53, 0.7)\";backdropFilterStyle=\"invert(100%) grayscale(100%) contrast(1.2)\";break;case\"Forest\":cursorColor=\"rgba(46, 204, 113, 0.6)\";backdropFilterStyle=\"invert(100%) grayscale(100%) contrast(1.2)\";break;case\"Ocean\":cursorColor=\"rgba(52, 152, 219, 0.6)\";backdropFilterStyle=\"invert(100%) grayscale(100%) contrast(1.2)\";break;case\"Neon Pink\":cursorColor=\"rgba(255, 0, 255, 0.6)\";backdropFilterStyle=\"invert(100%) grayscale(100%) contrast(1.2)\";break;case\"Cyber Blue\":cursorColor=\"rgba(0, 229, 255, 0.6)\";backdropFilterStyle=\"invert(100%) grayscale(100%) contrast(1.2)\";break;case\"Original Invert\":default:cursorColor=\"#FFFFFF\";mixBlendModeStyle=\"difference\";backdropFilterStyle=\"none\";break;}useEffect(()=>{setIsMounted(true);if(!containerRef.current)return;const observer=new ResizeObserver(entries=>{for(let entry of entries){const w=entry.contentRect.width||entry.target.clientWidth||20;const h=entry.contentRect.height||entry.target.clientHeight||20;if(w>0&&h>0){cursorSizeRef.current={w,h};setCursorSize({w,h});}}});observer.observe(containerRef.current);return()=>observer.disconnect();},[]);useEffect(()=>{const touch=window.matchMedia(\"(pointer: coarse)\").matches||navigator.maxTouchPoints>0;setIsTouchDevice(touch);if(!touch){const style=document.createElement(\"style\");style.innerHTML=`\n            * {\n                cursor: none !important;\n            }\n        `;document.head.appendChild(style);return()=>{document.head.removeChild(style);};}},[]);useEffect(()=>{if(isCanvas)return;const updateMousePosition=e=>{mouseX.set(e.clientX-cursorSizeRef.current.w/2);mouseY.set(e.clientY-cursorSizeRef.current.h/2);};const checkHoverState=e=>{const target=e.target;if(!target)return;const isClickable=target.tagName===\"A\"||target.tagName===\"BUTTON\"||target.closest(\"a\")!==null||target.closest(\"button\")!==null||window.getComputedStyle(target).cursor===\"pointer\";startTransition(()=>{setIsHovered(isClickable);});};window.addEventListener(\"mousemove\",updateMousePosition);window.addEventListener(\"mouseover\",checkHoverState);return()=>{window.removeEventListener(\"mousemove\",updateMousePosition);window.removeEventListener(\"mouseover\",checkHoverState);};},[isCanvas,mouseX,mouseY]);if(isCanvas){return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{...style,backgroundColor:presetTheme===\"Original Invert\"?\"#000\":\"rgba(128, 128, 128, 0.2)\",opacity:opacity,display:\"flex\",justifyContent:\"center\",alignItems:\"center\",border:\"2px dashed rgba(0,0,0,0.2)\",borderRadius:\"50%\"}});}if(isTouchDevice){return null;}const activeCursor=/*#__PURE__*/_jsx(motion.div,{animate:{scale:isHovered?hoverScale:1},transition:{scale:{type:\"spring\",damping:20,stiffness:300}},style:{x:springX,y:springY,position:\"fixed\",top:0,left:0,width:cursorSize.w,height:cursorSize.h,borderRadius:\"50%\",backgroundColor:cursorColor,opacity:opacity,pointerEvents:\"none\",zIndex:99999,willChange:\"transform\",mixBlendMode:mixBlendModeStyle,backdropFilter:backdropFilterStyle!==\"none\"?backdropFilterStyle:undefined,WebkitBackdropFilter:backdropFilterStyle!==\"none\"?backdropFilterStyle:undefined}});return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{...style,visibility:\"hidden\",pointerEvents:\"none\"}}),isMounted&&!isCanvas?/*#__PURE__*/createPortal(activeCursor,document.body):null]});}MagicBlendCursor.displayName=\"Magic Blend Cursor\";addPropertyControls(MagicBlendCursor,{presetTheme:{type:ControlType.Enum,title:\"Theme\",description:\"Select the cursor's visual style.\",options:[\"Original Invert\",\"Monochrome\",\"Neon Pink\",\"Cyber Blue\",\"Sunset\",\"Forest\",\"Ocean\"],defaultValue:\"Original Invert\"},opacity:{type:ControlType.Number,title:\"Opacity\",description:\"Base opacity level.\",defaultValue:1,min:0,max:1,step:.1},hoverScale:{type:ControlType.Number,title:\"Hover Scale\",description:\"Scale multiplier on hover.\",defaultValue:1.5,min:1,max:5,step:.1},damping:{type:ControlType.Number,title:\"Damping\",description:\"Spring animation damping.\",defaultValue:30,min:0,max:100},stiffness:{type:ControlType.Number,title:\"Stiffness\",description:\"Spring animation stiffness.\",defaultValue:300,min:0,max:1e3},mass:{type:ControlType.Number,title:\"Mass\",description:\"Spring animation mass.\",defaultValue:.5,min:.1,max:2,step:.1}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MagicBlendCursor\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MagicBlendCursor_Sajad.map","// Generated by Framer (53eda0e)\nexport default function metadata(params,activeLocale){return{description:\"Sajad Amini is an Iranian-American artist, designer, and educator based in Chicago.\",favicon:\"https://framerusercontent.com/assets/Am09KaCpE1xZi3YlqOmuUYg9MrE.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/Tp12fsfnSXHG8fjyXAfbejBfw.jpg\",title:\"Sajad Amini Studio\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}