{"version":3,"file":"TextShimmer.CoCQnutM.mjs","names":["useRef","useState","c"],"sources":["https:/framerusercontent.com/modules/VdCw3zWe2w30bHQWy27Y/Xygm7ath9FFuO6Pgw7QC/BorderLight.js","https:/framerusercontent.com/modules/jkPmKLJHcOm8kehzkcLR/Xh921m20X753aqkjEA2w/TextShimmer.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useScroll,useTransform,motion}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function ScrollGradientBorder(props){const{radius,borderWidth,color1,color2,colorStop,cycles,baseAngle,extraShine,shineColor,shineSpeed,shineWidth}=props;const{scrollYProgress}=useScroll();const angle=useTransform(scrollYProgress,[0,1],[baseAngle,baseAngle+360*cycles]);const borderBg=useTransform(angle,a=>`linear-gradient(${a}deg, ${color1} 0%, ${color2} ${colorStop}%, ${color1} 100%)`);const shineAngle=useTransform(scrollYProgress,[0,1],[0,360*shineSpeed]);const shineBg=useTransform(shineAngle,a=>`conic-gradient(from ${a}deg, transparent 0deg, ${shineColor} ${shineWidth}deg, transparent ${shineWidth*2}deg)`);const maskStyle={WebkitMask:\"linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0)\",WebkitMaskComposite:\"xor\",maskComposite:\"exclude\",padding:borderWidth,boxSizing:\"border-box\"};return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:\"100%\",height:\"100%\",borderRadius:radius,background:\"transparent\",pointerEvents:\"none\"},children:[/*#__PURE__*/_jsx(motion.div,{style:{position:\"absolute\",inset:0,borderRadius:radius,background:borderBg,...maskStyle}}),extraShine?/*#__PURE__*/_jsx(motion.div,{style:{position:\"absolute\",inset:0,borderRadius:radius,background:shineBg,mixBlendMode:\"screen\",...maskStyle}}):null]});}ScrollGradientBorder.defaultProps={radius:12,borderWidth:1.5,color1:\"rgba(252,252,252,1)\",color2:\"rgba(146,146,146,0.2)\",colorStop:40,cycles:1,baseAngle:90,extraShine:false,shineColor:\"rgba(255,255,255,0.9)\",shineSpeed:3,shineWidth:25};addPropertyControls(ScrollGradientBorder,{radius:{title:\"Radius\",type:ControlType.Number,defaultValue:12,min:0,max:100,step:1,unit:\"px\"},borderWidth:{title:\"Border Width\",type:ControlType.Number,defaultValue:1.5,min:.5,max:20,step:.5,unit:\"px\"},color1:{title:\"Color 1\",type:ControlType.Color,defaultValue:\"rgba(252,252,252,1)\"},color2:{title:\"Color 2\",type:ControlType.Color,defaultValue:\"rgba(146,146,146,0.2)\"},colorStop:{title:\"Color Stop\",type:ControlType.Number,defaultValue:40,min:0,max:100,step:1,unit:\"%\"},cycles:{title:\"Rotations\",type:ControlType.Number,defaultValue:1,min:.25,max:20,step:.25},baseAngle:{title:\"Start Angle\",type:ControlType.Number,defaultValue:90,min:0,max:360,step:5,unit:\"deg\"},extraShine:{title:\"Shine\",type:ControlType.Boolean,defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},shineColor:{title:\"Shine Color\",type:ControlType.Color,defaultValue:\"rgba(255,255,255,0.9)\",hidden:props=>!props.extraShine},shineSpeed:{title:\"Shine Speed\",type:ControlType.Number,defaultValue:3,min:1,max:30,step:1,hidden:props=>!props.extraShine},shineWidth:{title:\"Shine Width\",type:ControlType.Number,defaultValue:25,min:5,max:90,step:5,unit:\"deg\",hidden:props=>!props.extraShine}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ScrollGradientBorder\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./BorderLight.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{useRef,useEffect,useState}from\"react\";import{motion}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";const isSpace=s=>s===\"\"||/^\\s+$/.test(s);export default function ShimmerLabel(props){const{text,loop,duration,waveWidth,blurAmount,scaleAmount,hoverTarget,hoverDelay,pressOnHover,pressScale,pressDuration,font,color,textAlign}=props;const ref=useRef(null);const timeoutRef=useRef(null);const[hovered,setHovered]=useState(false);useEffect(()=>{const node=ref.current;if(!node)return;let target=node;if(hoverTarget===\"parent\"&&node.parentElement){target=node.parentElement;}else if(hoverTarget===\"ancestor\"){let el=node.parentElement;while(el&&el.parentElement){const r=el.getBoundingClientRect();if(r.width>node.getBoundingClientRect().width){target=el;break;}el=el.parentElement;}if(!target)target=node.parentElement||node;}const onEnter=()=>{if(hoverDelay>0){timeoutRef.current=setTimeout(()=>setHovered(true),hoverDelay*1e3);}else{setHovered(true);}};const onLeave=()=>{if(timeoutRef.current){clearTimeout(timeoutRef.current);timeoutRef.current=null;}setHovered(false);};target.addEventListener(\"mouseenter\",onEnter);target.addEventListener(\"mouseleave\",onLeave);return()=>{target.removeEventListener(\"mouseenter\",onEnter);target.removeEventListener(\"mouseleave\",onLeave);if(timeoutRef.current)clearTimeout(timeoutRef.current);};},[hoverTarget,hoverDelay]);const chars=text.split(\"\");const w=Math.max(.1,waveWidth);const step=duration/w;let animIndex=-1;const containerAnimate=pressOnHover&&hovered?{scale:[1,1-pressScale,1]}:{scale:1};const containerTransition=pressOnHover&&hovered?{duration:pressDuration,ease:\"easeInOut\",times:[0,.5,1]}:{duration:.2,ease:\"easeOut\"};return /*#__PURE__*/_jsx(motion.div,{ref:ref,style:{...font,color,width:\"100%\",textAlign,whiteSpace:\"nowrap\",display:\"inline-block\",willChange:\"transform\"},animate:containerAnimate,transition:containerTransition,children:chars.map((c,i)=>{if(isSpace(c)){return /*#__PURE__*/_jsx(\"span\",{style:{whiteSpace:\"pre\"},children:c},i);}animIndex++;const delay=animIndex*step;const rest={filter:\"blur(0px)\",scale:1};let animateProps;let transition;if(!hovered){animateProps=rest;transition={duration:.25,ease:\"easeOut\"};}else if(loop){animateProps={filter:`blur(${blurAmount}px)`,scale:1-scaleAmount};transition={duration,ease:\"easeInOut\",repeat:Infinity,repeatType:\"mirror\",delay};}else{animateProps={filter:[\"blur(0px)\",`blur(${blurAmount}px)`,\"blur(0px)\"],scale:[1,1-scaleAmount,1]};transition={duration,ease:\"easeInOut\",times:[0,.5,1],delay};}return /*#__PURE__*/_jsx(motion.span,{style:{display:\"inline-block\",willChange:\"filter, transform\"},animate:animateProps,transition:transition,children:c},i);})});}ShimmerLabel.defaultProps={text:\"Get started\",loop:true,duration:.6,waveWidth:3,blurAmount:3,scaleAmount:.2,hoverTarget:\"parent\",hoverDelay:0,pressOnHover:false,pressScale:.06,pressDuration:.3,color:\"#111111\",textAlign:\"center\"};addPropertyControls(ShimmerLabel,{text:{title:\"Text\",type:ControlType.String,defaultValue:\"Get started\"},hoverTarget:{title:\"Hover On\",type:ControlType.Enum,defaultValue:\"parent\",optionTitles:[\"Self\",\"Parent\",\"Closest wrapper\"],options:[\"self\",\"parent\",\"ancestor\"]},hoverDelay:{title:\"Hover Delay\",type:ControlType.Number,defaultValue:0,min:0,max:3,step:.05,unit:\"s\"},loop:{title:\"Loop\",type:ControlType.Boolean,defaultValue:true,enabledTitle:\"While hover\",disabledTitle:\"Once\"},duration:{title:\"Speed\",type:ControlType.Number,defaultValue:.6,min:.1,max:3,step:.05,unit:\"s\"},waveWidth:{title:\"Wave Width\",type:ControlType.Number,defaultValue:3,min:.5,max:12,step:.5},blurAmount:{title:\"Blur\",type:ControlType.Number,defaultValue:3,min:0,max:12,step:.5,unit:\"px\"},scaleAmount:{title:\"Scale Down\",type:ControlType.Number,defaultValue:.2,min:0,max:.6,step:.02},pressOnHover:{title:\"Press\",type:ControlType.Boolean,defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},pressScale:{title:\"Press Scale\",type:ControlType.Number,defaultValue:.06,min:0,max:.4,step:.01,hidden:props=>!props.pressOnHover},pressDuration:{title:\"Press Speed\",type:ControlType.Number,defaultValue:.3,min:.1,max:2,step:.05,unit:\"s\",hidden:props=>!props.pressOnHover},font:{type:ControlType.Font,controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:18,variant:\"Medium\",lineHeight:\"1.4em\"}},color:{title:\"Color\",type:ControlType.Color,defaultValue:\"#111111\"},textAlign:{title:\"Align\",type:ControlType.Enum,displaySegmentedControl:true,optionTitles:[\"Left\",\"Center\",\"Right\"],options:[\"left\",\"center\",\"right\"]}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ShimmerLabel\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TextShimmer.map"],"mappings":"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"}