{"version":3,"file":"PortraitHalo.DmClQB9H.mjs","names":["useRef","useState","__esmMin","init_npm_react_18_3_1","init_ssg_sandbox_shims","window","te","_e","ce","de","init_framer_B1b760uK","ControlType","useIsStaticRenderer","addPropertyControls","PortraitHalo","props","isStaticRenderer","rootRef","groupRef","isInView","setIsInView","reducedMotion","setReducedMotion","rafRef","elapsedRef","lastTimeRef","observer","entries","media","onChange","shouldAnimate","animate","group","tick","time","delta","cycle","duration","mirrored","rotation","scale","style","color","init_PortraitHalo","init_jsx_runtime"],"sources":["https:/framerusercontent.com/modules/qpU4B4QY4NU57j5VRKfp/dljVrRBzwfgtYqEXyBy6/PortraitHalo.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{useEffect,useRef,useState,startTransition}from\"react\";/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight fixed\n */export default function PortraitHalo(props){const{color=\"#B6FF2E\",strokeWidth=1,duration=14,animate=true,style}=props;const isStaticRenderer=useIsStaticRenderer();const rootRef=useRef(null);const groupRef=useRef(null);const[isInView,setIsInView]=useState(true);const[reducedMotion,setReducedMotion]=useState(null);const rafRef=useRef(null);const elapsedRef=useRef(0);const lastTimeRef=useRef(0);useEffect(()=>{if(typeof window===\"undefined\"||!rootRef.current)return;const observer=new IntersectionObserver(entries=>{startTransition(()=>setIsInView(entries[0]?.isIntersecting??false));},{threshold:.05});observer.observe(rootRef.current);return()=>observer.disconnect();},[]);useEffect(()=>{if(typeof window===\"undefined\")return;const media=window.matchMedia(\"(prefers-reduced-motion: reduce)\");const onChange=()=>{startTransition(()=>setReducedMotion(media.matches));};onChange();media.addEventListener(\"change\",onChange);return()=>media.removeEventListener(\"change\",onChange);},[]);const shouldAnimate=animate&&reducedMotion===false&&!isStaticRenderer&&isInView;useEffect(()=>{const group=groupRef.current;if(!group)return;if(!shouldAnimate){group.setAttribute(\"transform\",\"rotate(0 200 140) scale(1)\");if(typeof window!==\"undefined\"&&rafRef.current!==null){window.cancelAnimationFrame(rafRef.current);rafRef.current=null;}lastTimeRef.current=0;return;}const tick=time=>{if(!lastTimeRef.current)lastTimeRef.current=time;const delta=time-lastTimeRef.current;lastTimeRef.current=time;elapsedRef.current+=delta;const cycle=elapsedRef.current/Math.max(1e3,duration*1e3)*Math.PI*2;const mirrored=.5-.5*Math.cos(cycle);const rotation=-3+6*mirrored;const scale=1+.01*mirrored;group.setAttribute(\"transform\",`rotate(${rotation} 200 140) scale(${scale})`);if(typeof window!==\"undefined\"){rafRef.current=window.requestAnimationFrame(tick);}};if(typeof window!==\"undefined\"){if(rafRef.current!==null)window.cancelAnimationFrame(rafRef.current);rafRef.current=window.requestAnimationFrame(tick);}return()=>{if(typeof window!==\"undefined\"&&rafRef.current!==null){window.cancelAnimationFrame(rafRef.current);rafRef.current=null;}lastTimeRef.current=0;};},[duration,shouldAnimate]);return /*#__PURE__*/_jsx(\"div\",{ref:rootRef,\"aria-hidden\":true,style:{position:\"relative\",width:\"100%\",height:\"100%\",...style},children:/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 400 280\",width:\"100%\",height:\"100%\",preserveAspectRatio:\"xMidYMid meet\",style:{overflow:\"visible\"},children:/*#__PURE__*/_jsx(\"g\",{ref:groupRef,children:/*#__PURE__*/_jsx(\"path\",{d:\"M180 230 C35 45 100 -30 235 45 C390 125 415 265 290 230 C240 215 205 180 180 230\",fill:\"none\",stroke:color,strokeWidth:strokeWidth,strokeLinecap:\"round\",strokeLinejoin:\"round\",opacity:.92})})})});}addPropertyControls(PortraitHalo,{color:{type:ControlType.Color,defaultValue:\"#B6FF2E\",title:\"Color\"},strokeWidth:{type:ControlType.Number,title:\"Stroke\",min:.5,max:4,step:.1,defaultValue:1},duration:{type:ControlType.Number,title:\"Duration\",min:6,max:30,step:.5,unit:\"s\",defaultValue:14},animate:{type:ControlType.Boolean,title:\"Animate\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PortraitHalo\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PortraitHalo.map"],"mappings":"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"}