{"version":3,"file":"ShimmerButton.BK_sUnit.mjs","names":["useRef","useState"],"sources":["https:/framerusercontent.com/modules/ZHvbHY2QMLlPGRMK8C2W/KGtVXIS4oqXmmo01yiXF/ShimmerButton.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * PillState\n * Drop it inside any pill frame as a normal child. It takes no space and\n * gives the pill Apple-grade interaction: a precise surface tone shift on\n * hover, a barely perceptible press, and (optionally) a rare, feathered\n * line of light along the rim. Nothing about the pill itself changes.\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function PillState(props){const{hoverBackground,pressScale,mode,lightColor,interval,startDelay,duration,intensity,rimWidth,rimLength,radius,style}=props;const ref=useRef(null);const[key,setKey]=useState(0);const[armed,setArmed]=useState(false);const[box,setBox]=useState({x:0,y:0,w:0,h:0});useEffect(()=>{if(mode===\"none\")return;const ms=Math.max(2,interval)*1e3;let id;const t=setTimeout(()=>{setArmed(true);setKey(k=>k+1);id=setInterval(()=>setKey(k=>k+1),ms);},Math.max(0,startDelay)*1e3);return()=>{clearTimeout(t);if(id)clearInterval(id);};},[interval,startDelay,mode]);useEffect(()=>{const el=ref.current;if(!el)return;const wrapper=el.parentElement;const pill=wrapper?.parentElement;if(!wrapper||!pill)return;const measure=()=>{const a=el.getBoundingClientRect();const b=pill.getBoundingClientRect();setBox({x:b.left-a.left,y:b.top-a.top,w:b.width,h:b.height});};measure();const ro=new ResizeObserver(measure);ro.observe(pill);window.addEventListener(\"resize\",measure);const reduce=window.matchMedia?.(\"(prefers-reduced-motion: reduce)\").matches;const prevTransition=pill.style.transition;const prevBg=pill.style.backgroundColor;const prevTransform=pill.style.transform;pill.style.transition=`${prevTransition?prevTransition+\", \":\"\"}background-color 260ms cubic-bezier(0.25, 0.1, 0.25, 1), transform 180ms cubic-bezier(0.25, 0.1, 0.25, 1)`;const onEnter=()=>{if(hoverBackground)pill.style.backgroundColor=hoverBackground;};const onLeave=()=>{pill.style.backgroundColor=prevBg||\"\";pill.style.transform=prevTransform||\"none\";};const onDown=()=>{if(!reduce&&pressScale<1)pill.style.transform=`scale(${pressScale})`;};const onUp=()=>{pill.style.transform=prevTransform||\"none\";};pill.addEventListener(\"mouseenter\",onEnter);pill.addEventListener(\"mouseleave\",onLeave);pill.addEventListener(\"mousedown\",onDown);pill.addEventListener(\"mouseup\",onUp);pill.addEventListener(\"touchstart\",onDown,{passive:true});pill.addEventListener(\"touchend\",onUp);return()=>{ro.disconnect();window.removeEventListener(\"resize\",measure);pill.removeEventListener(\"mouseenter\",onEnter);pill.removeEventListener(\"mouseleave\",onLeave);pill.removeEventListener(\"mousedown\",onDown);pill.removeEventListener(\"mouseup\",onUp);pill.removeEventListener(\"touchstart\",onDown);pill.removeEventListener(\"touchend\",onUp);};},[hoverBackground,pressScale]);const a=Math.max(0,Math.min(1,intensity));const toRgb=c=>{if(!c)return\"88,81,175\";if(c.startsWith(\"#\")){const h=c.replace(\"#\",\"\");const n=h.length===3?h.split(\"\").map(x=>x+x).join(\"\"):h;return`${parseInt(n.slice(0,2),16)},${parseInt(n.slice(2,4),16)},${parseInt(n.slice(4,6),16)}`;}const m=c.match(/\\d+/g);return m?m.slice(0,3).join(\",\"):\"88,81,175\";};const light=toRgb(lightColor);const L=Math.max(4,Math.min(60,rimLength));const inset=rimWidth/2;const r=Math.min(radius,box.h/2);const layers=[{len:L,op:.12},{len:L*.72,op:.22},{len:L*.46,op:.38},{len:L*.22,op:.7}];const uid=\"tr\"+Math.abs(Math.round(box.w*7+box.h*13));const rim=/*#__PURE__*/_jsx(\"svg\",{\"aria-hidden\":true,width:box.w,height:box.h,style:{position:\"absolute\",left:0,top:0,overflow:\"visible\",pointerEvents:\"none\"},children:layers.map((ly,i)=>{const lead=(L-ly.len)/2;const from=L-lead;const to=from-100;const name=`${uid}_${i}`;return /*#__PURE__*/_jsxs(\"g\",{children:[/*#__PURE__*/_jsx(\"style\",{children:`@keyframes ${name} { 0% { stroke-dashoffset: ${from}; opacity: 0; } 18% { opacity: 1; } 82% { opacity: 1; } 100% { stroke-dashoffset: ${to}; opacity: 0; } }`}),/*#__PURE__*/_jsx(\"rect\",{x:inset,y:inset,width:Math.max(0,box.w-rimWidth),height:Math.max(0,box.h-rimWidth),rx:r,ry:r,fill:\"none\",stroke:`rgba(${light},${(a*ly.op).toFixed(3)})`,strokeWidth:rimWidth,strokeLinecap:\"round\",pathLength:100,strokeDasharray:`${ly.len} ${100-ly.len}`,style:{animation:armed?`${name} ${duration}s cubic-bezier(0.55, 0.05, 0.25, 1) 1 forwards`:\"none\",opacity:0}})]},i);})},\"r\"+key);return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{...style,position:\"relative\",width:0,height:0,overflow:\"visible\",pointerEvents:\"none\"},children:mode===\"rim\"&&box.w>0?/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:box.x,top:box.y,width:box.w,height:box.h,pointerEvents:\"none\"},children:rim}):null});}PillState.defaultProps={hoverBackground:\"#1c1c2b\",pressScale:.985,mode:\"none\",lightColor:\"#5851af\",interval:9,startDelay:2,duration:2.6,intensity:.6,rimWidth:1,rimLength:34,radius:999};addPropertyControls(PillState,{hoverBackground:{type:ControlType.Color,title:\"Hover fill\"},pressScale:{type:ControlType.Number,title:\"Press scale\",min:.9,max:1,step:.005},mode:{type:ControlType.Enum,title:\"Rest light\",options:[\"none\",\"rim\"],optionTitles:[\"None\",\"Rim\"]},lightColor:{type:ControlType.Color,title:\"Light color\",hidden:p=>p.mode===\"none\"},interval:{type:ControlType.Number,title:\"Every (s)\",min:2,max:30,step:.5,hidden:p=>p.mode===\"none\"},startDelay:{type:ControlType.Number,title:\"First after (s)\",min:0,max:20,step:.5,hidden:p=>p.mode===\"none\"},duration:{type:ControlType.Number,title:\"Duration (s)\",min:.6,max:5,step:.1,hidden:p=>p.mode===\"none\"},intensity:{type:ControlType.Number,title:\"Intensity\",min:0,max:1,step:.02,hidden:p=>p.mode===\"none\"},rimWidth:{type:ControlType.Number,title:\"Rim width\",min:.5,max:4,step:.5,hidden:p=>p.mode===\"none\"},rimLength:{type:ControlType.Number,title:\"Rim length %\",min:4,max:60,step:1,hidden:p=>p.mode===\"none\"},radius:{type:ControlType.Number,title:\"Radius\",min:0,max:999,hidden:p=>p.mode===\"none\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PillState\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ShimmerButton.map"],"mappings":"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"}