{"version":3,"file":"NumberCounter.BZXdbFc4.mjs","names":["useRef","useState","__esmMin","te","init_npm_react_18_3_1","_e","de","p","ce","useSpring","useInView","init_framer_motion_DhsWWWsN","motion","useMotionValue","addPropertyControls","init_framer_BL70qLPA","ControlType","NumberCounter","props","ref","isInView","motionValue","startNumber","springValue","duration","displayValue","setDisplayValue","endNumber","unsubscribe","latest","formattedValue","fixed","num","decimals","separator","parts","style","font","textColor","prefix","suffix","init_NumberCounter","init_jsx_runtime"],"sources":["https:/framerusercontent.com/modules/vMmSDjOZCHZ0v1SklV6L/9zdteqOGG3n18GoQj6qi/NumberCounter.js"],"sourcesContent":["// NumberCounter component with animated number transitions, customizable start/end values, and prefix/suffix options\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useState,useRef,startTransition}from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{motion,useInView,useMotionValue,useSpring}from\"framer-motion\";/**\n * Animated NumberCounter\n * \n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 60\n * \n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function NumberCounter(props){const{startNumber=0,endNumber=100,duration=2,prefix=\"\",suffix=\"\",decimals=0,separator=true,font,textColor=\"#000000\",style}=props;const ref=useRef(null);const isInView=useInView(ref,{once:true,margin:\"-100px\"});const motionValue=useMotionValue(startNumber);const springValue=useSpring(motionValue,{duration:duration*1e3,bounce:0});const[displayValue,setDisplayValue]=useState(startNumber);useEffect(()=>{if(isInView){motionValue.set(endNumber);}},[isInView,endNumber,motionValue]);useEffect(()=>{const unsubscribe=springValue.on(\"change\",latest=>{startTransition(()=>{setDisplayValue(latest);});});return()=>unsubscribe();},[springValue]);const formatNumber=num=>{const fixed=num.toFixed(decimals);if(!separator)return fixed;const parts=fixed.split(\".\");parts[0]=parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g,\",\");return parts.join(\".\");};const formattedValue=formatNumber(displayValue);return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{...style,position:\"relative\",display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",width:\"max-content\"},children:/*#__PURE__*/_jsxs(motion.span,{style:{...font,color:textColor,whiteSpace:\"nowrap\"},children:[prefix,formattedValue,suffix]})});}addPropertyControls(NumberCounter,{startNumber:{type:ControlType.Number,title:\"Start Number\",defaultValue:0,step:1,displayStepper:true},endNumber:{type:ControlType.Number,title:\"End Number\",defaultValue:100,step:1,displayStepper:true},duration:{type:ControlType.Number,title:\"Duration\",defaultValue:2,min:.1,max:10,step:.1,unit:\"s\"},decimals:{type:ControlType.Number,title:\"Decimals\",defaultValue:0,min:0,max:4,step:1,displayStepper:true},separator:{type:ControlType.Boolean,title:\"Separator\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},prefix:{type:ControlType.String,title:\"Prefix\",defaultValue:\"\",placeholder:\"$\"},suffix:{type:ControlType.String,title:\"Suffix\",defaultValue:\"\",placeholder:\"%\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"40px\",variant:\"Bold\",letterSpacing:\"-0.04em\",lineHeight:\"1em\"}},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#000000\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"NumberCounter\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"auto\",\"framerIntrinsicHeight\":\"60\",\"framerSupportedLayoutWidth\":\"auto\",\"framerIntrinsicWidth\":\"200\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./NumberCounter.map"],"mappings":"A,kQASG,SAAwBiB,EAAc,EAAM,CAAC,GAAK,CAAC,cAAY,EAAE,YAAU,IAAI,WAAS,EAAE,SAAO,GAAG,SAAO,GAAG,WAAS,EAAE,YAAU,GAAK,OAAK,YAAU,UAAU,SAAOC,EAAYC,EAAInB,EAAO,IAAI,EAAQoB,EAASV,EAAUS,EAAI,CAAC,KAAK,GAAK,OAAO,QAAQ,CAAC,EAAQE,EAAYR,EAAeS,CAAW,EAAQC,EAAYd,EAAUY,EAAY,CAAC,SAASG,EAAS,IAAI,OAAO,CAAC,CAAC,EAAO,CAACC,EAAaC,GAAiBzB,EAASqB,CAAW,EAAEd,MAAc,CAAIY,GAAUC,EAAY,IAAIM,CAAS,CAAG,EAAE,CAACP,EAASO,EAAUN,CAAW,CAAC,EAAEb,MAAc,CAAC,IAAMoB,EAAYL,EAAY,GAAG,SAAS,GAAQ,CAACpB,MAAoB,CAACuB,EAAgBG,CAAM,CAAE,CAAC,CAAE,CAAC,EAAE,UAAUD,EAAY,CAAE,EAAE,CAACL,CAAW,CAAC,EAAqM,IAAMO,GAAtL,GAAK,CAAC,IAAMC,EAAMC,EAAI,QAAQC,CAAQ,EAAE,GAAG,CAACC,EAAU,OAAOH,EAAM,IAAMI,EAAMJ,EAAM,MAAM,GAAG,EAAyD,MAAvD,GAAM,GAAGI,EAAM,EAAE,CAAC,QAAQ,wBAAwB,GAAG,EAASA,EAAM,KAAK,GAAG,CAAE,EAAuB,CAAaV,CAAY,EAAE,MAAoB,gBAAK,MAAM,CAAK,MAAI,MAAM,CAAC,GAAGW,EAAM,SAAS,WAAW,QAAQ,cAAc,WAAW,SAAS,eAAe,SAAS,MAAM,aAAa,EAAE,SAAsB,gBAAMxB,EAAO,KAAK,CAAC,MAAM,CAAC,GAAGyB,EAAK,MAAMC,EAAU,WAAW,QAAQ,EAAE,SAAS,CAACC,EAAOT,EAAeU,CAAM,CAAC,CAAC,CAAC,CAAC,CAAE,C,8CAAC1B,EAAoBG,EAAc,CAAC,YAAY,CAAC,KAAKD,EAAY,OAAO,MAAM,eAAe,aAAa,EAAE,KAAK,EAAE,eAAe,EAAI,EAAE,UAAU,CAAC,KAAKA,EAAY,OAAO,MAAM,aAAa,aAAa,IAAI,KAAK,EAAE,eAAe,EAAI,EAAE,SAAS,CAAC,KAAKA,EAAY,OAAO,MAAM,WAAW,aAAa,EAAE,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,EAAE,SAAS,CAAC,KAAKA,EAAY,OAAO,MAAM,WAAW,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAI,EAAE,UAAU,CAAC,KAAKA,EAAY,QAAQ,MAAM,YAAY,aAAa,GAAK,aAAa,KAAK,cAAc,KAAK,EAAE,OAAO,CAAC,KAAKA,EAAY,OAAO,MAAM,SAAS,aAAa,GAAG,YAAY,GAAG,EAAE,OAAO,CAAC,KAAKA,EAAY,OAAO,MAAM,SAAS,aAAa,GAAG,YAAY,GAAG,EAAE,KAAK,CAAC,KAAKA,EAAY,KAAK,MAAM,OAAO,SAAS,WAAW,gBAAgB,aAAa,aAAa,CAAC,SAAS,OAAO,QAAQ,OAAO,cAAc,UAAU,WAAW,KAAK,CAAC,EAAE,UAAU,CAAC,KAAKA,EAAY,MAAM,MAAM,aAAa,aAAa,SAAS,CAAC,CAAC,C"}