{"version":3,"file":"CountUp.H1_dSSQa.mjs","names":["useRef","useState"],"sources":["https:/framerusercontent.com/modules/DZMSmBUEq3cchHXcjL2G/FSNkajLeOZ5j20WvF8D3/CountUp.js"],"sourcesContent":["import{jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{useRef,useEffect,useState}from\"react\";const SERIF=\"'Hanken Grotesk', sans-serif\";/**\n * Count Up — animates a number from 0 to its value the first time it scrolls into\n * view, then holds. Rendered in Hanken Grotesk (site sans). Pair with a small uppercase caption below it.\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 72\n * @framerDisableUnlink\n */export default function CountUp(props){const{value=12,decimals=0,prefix=\"\",suffix=\"+\",duration=1.5,useGrouping=true,color=\"rgb(33,33,33)\",fontSize=64,weight=500}=props;const isStatic=useIsStaticRenderer();const ref=useRef(null);const[disp,setDisp]=useState(isStatic?value:0);useEffect(()=>{if(isStatic){setDisp(value);return;}const el=ref.current;if(!el){setDisp(value);return;}let raf=0,t0=0,started=false;const ease=t=>1-Math.pow(1-t,3);const step=ts=>{if(!t0)t0=ts;const p=Math.min(1,(ts-t0)/(Math.max(.2,duration)*1e3));setDisp(value*ease(p));if(p<1)raf=requestAnimationFrame(step);};const io=new IntersectionObserver(entries=>entries.forEach(e=>{if(e.isIntersecting&&!started){started=true;raf=requestAnimationFrame(step);}}),{threshold:.45});io.observe(el);return()=>{cancelAnimationFrame(raf);io.disconnect();};},[value,duration,isStatic]);const shown=decimals>0?disp.toFixed(decimals):useGrouping?Math.round(disp).toLocaleString(\"en-US\"):String(Math.round(disp));return /*#__PURE__*/_jsxs(\"div\",{ref:ref,style:{fontFamily:SERIF,fontSize,fontWeight:weight,lineHeight:1,letterSpacing:\"-0.01em\",color,whiteSpace:\"nowrap\",...props.style},children:[prefix,shown,suffix]});}addPropertyControls(CountUp,{value:{type:ControlType.Number,title:\"Value\",defaultValue:12,min:0,max:1e6,displayStepper:true},decimals:{type:ControlType.Number,title:\"Decimals\",defaultValue:0,min:0,max:2,displayStepper:true},prefix:{type:ControlType.String,title:\"Prefix\",defaultValue:\"\"},suffix:{type:ControlType.String,title:\"Suffix\",defaultValue:\"+\"},duration:{type:ControlType.Number,title:\"Duration (s)\",defaultValue:1.5,min:.3,max:4,step:.1},useGrouping:{type:ControlType.Boolean,title:\"Grouping\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"rgb(33,33,33)\"},fontSize:{type:ControlType.Number,title:\"Font size\",defaultValue:64,min:16,max:140},weight:{type:ControlType.Number,title:\"Weight\",defaultValue:500,min:300,max:800,step:100}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CountUp\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"200\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"72\",\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CountUp.map"],"mappings":"gMAQG,SAAwB,EAAQ,EAAM,CAAC,GAAK,CAAC,QAAM,GAAG,WAAS,EAAE,SAAO,GAAG,SAAO,IAAI,WAAS,IAAI,cAAY,GAAK,QAAM,gBAAgB,WAAS,GAAG,SAAO,KAAK,EAAY,EAAS,EAAoB,EAAQ,EAAIA,EAAO,IAAI,EAAO,CAAC,EAAK,GAASC,EAAS,EAAS,EAAM,CAAC,EAAE,MAAc,CAAC,GAAG,EAAS,CAAC,EAAQ,CAAK,EAAE,MAAO,CAAC,IAAM,EAAG,EAAI,QAAQ,GAAG,CAAC,EAAG,CAAC,EAAQ,CAAK,EAAE,MAAO,CAAC,IAAI,EAAI,EAAE,EAAG,EAAE,EAAQ,GAAY,EAAK,GAAG,GAAW,EAAE,IAAE,EAAS,EAAK,GAAI,CAAC,AAAO,IAAG,EAAG,IAAM,EAAE,KAAK,IAAI,GAAG,EAAG,IAAK,KAAK,IAAI,GAAG,CAAQ,EAAE,IAAI,EAAE,EAAQ,EAAM,EAAK,CAAC,CAAC,EAAK,EAAE,IAAE,EAAI,sBAAsB,CAAI,EAAE,EAAQ,EAAG,IAAI,qBAAqB,GAAS,EAAQ,QAAQ,GAAG,CAAI,EAAE,gBAAgB,CAAC,IAAS,EAAQ,GAAK,EAAI,sBAAsB,CAAI,EAAG,CAAC,EAAE,CAAC,UAAU,GAAG,CAAC,EAAiB,OAAf,EAAG,QAAQ,CAAE,MAAY,CAAC,qBAAqB,CAAG,EAAE,EAAG,WAAW,CAAE,CAAE,EAAE,CAAC,EAAM,EAAS,CAAQ,CAAC,EAAE,IAAM,EAAM,EAAS,EAAE,EAAK,QAAQ,CAAQ,EAAE,EAAY,KAAK,MAAM,CAAI,CAAC,CAAC,eAAe,OAAO,EAAE,OAAO,KAAK,MAAM,CAAI,CAAC,EAAE,OAAoB,EAAM,MAAM,CAAK,MAAI,MAAM,CAAC,WAAW,EAAM,WAAS,WAAW,EAAO,WAAW,EAAE,cAAc,UAAU,QAAM,WAAW,SAAS,GAAG,EAAM,KAAK,EAAE,SAAS,CAAC,EAAO,EAAM,CAAM,CAAC,CAAC,CAAE,mBAR9mC,IAAwE,IAA6C,EAAO,EAAM,+BAQ6+B,EAAoB,EAAQ,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,eAAe,EAAI,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAI,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,EAAE,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,GAAG,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,aAAa,IAAI,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,CAAC,KAAK,EAAY,QAAQ,MAAM,WAAW,aAAa,GAAK,aAAa,KAAK,cAAc,KAAK,EAAE,MAAM,CAAC,KAAK,EAAY,MAAM,MAAM,QAAQ,aAAa,eAAe,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC"}