{"version":3,"file":"CountUpNumber.BT350Iab.mjs","names":["React.useRef","React.useState","React.useMemo","React.startTransition"],"sources":["https:/framerusercontent.com/modules/iWaf9KT4c5Mx7upgN1ZE/yzDsuV98yjj4pZZKTrPA/CountUpNumber.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function CountUpNumber(props){const{target=1,zeroPad=true,duration=1,fontSize=14,color=\"#B08968\",fontFamily=\"Switzer\",letterSpacing=\"0.08em\"}=props;const isStatic=useIsStaticRenderer();const containerRef=React.useRef(null);const[hasStarted,setHasStarted]=React.useState(false);const[value,setValue]=React.useState(isStatic?Math.max(0,Math.round(target)):0);React.useEffect(()=>{if(isStatic)return;if(typeof window===\"undefined\")return;const node=containerRef.current;if(!node||hasStarted)return;const observer=new IntersectionObserver(entries=>{const entry=entries[0];if(!entry)return;if(entry.isIntersecting&&entry.intersectionRatio>=.5){startTransition(()=>setHasStarted(true));observer.disconnect();}},{threshold:[.5]});observer.observe(node);return()=>observer.disconnect();},[hasStarted,isStatic]);React.useEffect(()=>{if(isStatic)return;if(!hasStarted)return;if(typeof window===\"undefined\")return;const finalValue=Math.max(0,Math.round(target));const durationMs=Math.max(.1,duration)*1e3;let raf=0;const startTime=performance.now();const tick=now=>{const t=Math.min(1,(now-startTime)/durationMs);const eased=1-Math.pow(1-t,3);const current=Math.round(finalValue*eased);startTransition(()=>setValue(current));if(t<1){raf=requestAnimationFrame(tick);}};raf=requestAnimationFrame(tick);return()=>cancelAnimationFrame(raf);},[duration,hasStarted,isStatic,target]);const renderedValue=isStatic?Math.max(0,Math.round(target)):value;const text=React.useMemo(()=>{const base=renderedValue.toString();return zeroPad?base.padStart(2,\"0\"):base;},[renderedValue,zeroPad]);return /*#__PURE__*/_jsx(\"span\",{ref:containerRef,style:{position:\"relative\",display:\"inline-block\",width:\"max-content\",minWidth:\"max-content\",lineHeight:1,color,fontSize,fontFamily,letterSpacing,fontVariantNumeric:\"tabular-nums\",fontFeatureSettings:'\"tnum\" 1'},children:text});}CountUpNumber.displayName=\"Count Up Number\";const startTransition=React.startTransition??(cb=>cb());addPropertyControls(CountUpNumber,{target:{type:ControlType.Number,title:\"Target\",defaultValue:1,min:0,max:9999,step:1},zeroPad:{type:ControlType.Boolean,title:\"Zero Pad\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},duration:{type:ControlType.Number,title:\"Duration\",defaultValue:1,min:.1,max:10,step:.1},fontSize:{type:ControlType.Number,title:\"Font Size\",defaultValue:14,min:8,max:72,step:1},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#B08968\"},fontFamily:{type:ControlType.String,title:\"Font Family\",defaultValue:\"Switzer\"},letterSpacing:{type:ControlType.String,title:\"Letter Sp\",defaultValue:\"0.08em\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CountUpNumber\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"auto\",\"framerSupportedLayoutHeight\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CountUpNumber.map"],"mappings":"4NAGG,SAAwB,EAAc,EAAM,CAAC,GAAK,CAAC,SAAO,EAAE,UAAQ,GAAK,WAAS,EAAE,WAAS,GAAG,QAAM,UAAU,aAAW,UAAU,gBAAc,UAAU,EAAY,EAAS,EAAoB,EAAQ,EAAaA,EAAa,IAAI,EAAO,CAAC,EAAW,GAAeC,EAAe,EAAK,EAAO,CAAC,EAAM,GAAUA,EAAe,EAAS,KAAK,IAAI,EAAE,KAAK,MAAM,CAAM,CAAC,EAAE,CAAC,EAAE,MAAoB,CAAoB,GAAhB,GAA0B,IAAS,OAAY,OAAO,IAAM,EAAK,EAAa,QAAQ,GAAG,CAAC,GAAM,EAAW,OAAO,IAAM,EAAS,IAAI,qBAAqB,GAAS,CAAC,IAAM,EAAM,EAAQ,GAAO,GAAgB,EAAM,gBAAgB,EAAM,mBAAmB,KAAI,MAAoB,EAAc,EAAI,CAAC,EAAE,EAAS,WAAW,EAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAyB,OAAvB,EAAS,QAAQ,CAAI,MAAY,EAAS,WAAW,CAAE,EAAE,CAAC,EAAW,CAAQ,CAAC,EAAE,MAAoB,CAA0C,GAAtC,GAAmB,CAAC,GAA4B,IAAS,OAAY,OAAO,IAAM,EAAW,KAAK,IAAI,EAAE,KAAK,MAAM,CAAM,CAAC,EAAQ,EAAW,KAAK,IAAI,GAAG,CAAQ,EAAE,IAAQ,EAAI,EAAQ,EAAU,YAAY,IAAI,EAAQ,EAAK,GAAK,CAAC,IAAM,EAAE,KAAK,IAAI,GAAG,EAAI,GAAW,CAAU,EAAQ,EAAM,GAAW,EAAE,IAAE,EAAS,EAAQ,KAAK,MAAM,EAAW,CAAK,EAAE,MAAoB,EAAS,CAAO,CAAC,EAAK,EAAE,IAAG,EAAI,sBAAsB,CAAI,EAAG,EAAkC,MAAhC,GAAI,sBAAsB,CAAI,MAAY,qBAAqB,CAAG,CAAE,EAAE,CAAC,EAAS,EAAW,EAAS,CAAM,CAAC,EAAE,IAAM,EAAc,EAAS,KAAK,IAAI,EAAE,KAAK,MAAM,CAAM,CAAC,EAAE,EAAY,EAAKC,MAAkB,CAAC,IAAM,EAAK,EAAc,SAAS,EAAE,OAAO,EAAQ,EAAK,SAAS,EAAE,GAAG,EAAE,CAAK,EAAE,CAAC,EAAc,CAAO,CAAC,EAAE,OAAoB,EAAK,OAAO,CAAC,IAAI,EAAa,MAAM,CAAC,SAAS,WAAW,QAAQ,eAAe,MAAM,cAAc,SAAS,cAAc,WAAW,EAAE,QAAM,WAAS,aAAW,gBAAc,mBAAmB,eAAe,oBAAoB,UAAU,EAAE,SAAS,CAAI,CAAC,CAAE,uBAH5xD,IAA4B,IAAwE,EAGyrD,EAAc,YAAY,kBAAwB,EAAgBC,IAAwB,GAAI,EAAG,GAAG,EAAoB,EAAc,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,EAAE,IAAI,EAAE,IAAI,KAAK,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAY,QAAQ,MAAM,WAAW,aAAa,GAAK,aAAa,KAAK,cAAc,KAAK,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,EAAE,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,aAAa,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,EAAY,MAAM,MAAM,QAAQ,aAAa,SAAS,EAAE,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,SAAS,EAAE,cAAc,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,aAAa,QAAQ,CAAC,CAAC"}