{"version":3,"file":"AdvancedNumberCounter.DmPFKPEx.mjs","names":[],"sources":["https:/framerusercontent.com/modules/Egc25ftQoUydyXRpnXLj/M7w5NB5t1ElDwlrOxFrd/AdvancedNumberCounter.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * @framerDisableUnlink\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n */export function NumberCounter({startNumber,endNumber,duration,color,font,showDecimal,decimalSeparator,direction,prefix,suffix,textAlign,padding,backgroundColor}){const[currentNumber,setCurrentNumber]=React.useState(startNumber);React.useEffect(()=>{let startTime;const animate=timestamp=>{if(!startTime)startTime=timestamp;const elapsedTime=(timestamp-startTime)/1e3// Convert to seconds\n;if(elapsedTime<=duration){const progress=elapsedTime/duration;setCurrentNumber(startNumber+(endNumber-startNumber)*progress);requestAnimationFrame(animate);}else{setCurrentNumber(endNumber)// Ensure it stops at the endNumber\n;}};requestAnimationFrame(animate);},[startNumber,endNumber,duration]);const formattedNumber=showDecimal?currentNumber.toFixed(2).replace(\".\",decimalSeparator):Math.floor(currentNumber).toLocaleString();return /*#__PURE__*/_jsxs(\"div\",{style:{...font,color,textAlign,padding,backgroundColor,display:\"flex\",flexDirection:direction===\"vertical\"?\"column\":\"row\",alignItems:\"center\",justifyContent:\"center\"},children:[prefix&&/*#__PURE__*/_jsx(\"span\",{children:prefix}),/*#__PURE__*/_jsx(\"span\",{children:formattedNumber}),suffix&&/*#__PURE__*/_jsx(\"span\",{children:suffix})]});}NumberCounter.defaultProps={startNumber:0,endNumber:100,duration:5,color:\"#000\",font:{fontSize:24,fontFamily:\"Helvetica, Arial, sans-serif\",fontWeight:\"bold\",lineHeight:\"1.5em\",letterSpacing:\"normal\",description:\"Visit Framergenie.com for more\"},showDecimal:true,decimalSeparator:\".\",direction:\"horizontal\",prefix:\"\",suffix:\"\",textAlign:\"center\",padding:\"10px\",backgroundColor:\"#FFFFFF\"};addPropertyControls(NumberCounter,{startNumber:{type:ControlType.Number,title:\"Start\",defaultValue:NumberCounter.defaultProps.startNumber},endNumber:{type:ControlType.Number,title:\"End\",defaultValue:NumberCounter.defaultProps.endNumber},duration:{type:ControlType.Number,title:\"Duration\",defaultValue:NumberCounter.defaultProps.duration,min:0,max:60},color:{type:ControlType.Color,title:\"Color\",defaultValue:NumberCounter.defaultProps.color},font:{//@ts-ignore\ntype:ControlType.Font,controls:\"extended\",displayFontSize:true,displayTextAlignment:false,defaultFontType:\"monospace\",defaultValue:{fontSize:24,lineHeight:\"1.5em\",fontFamily:\"monospace\",fontWeight:\"bold\",letterSpacing:\"normal\"}},showDecimal:{type:ControlType.Boolean,title:\"Decimal\",defaultValue:NumberCounter.defaultProps.showDecimal},decimalSeparator:{type:ControlType.String,title:\"Separator\",defaultValue:NumberCounter.defaultProps.decimalSeparator},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"horizontal\",\"vertical\"],defaultValue:NumberCounter.defaultProps.direction},textAlign:{type:ControlType.Enum,title:\"Text Align\",options:[\"left\",\"center\",\"right\"],defaultValue:NumberCounter.defaultProps.textAlign},prefix:{type:ControlType.String,title:\"Prefix\",defaultValue:NumberCounter.defaultProps.prefix},suffix:{type:ControlType.String,title:\"Suffix\",defaultValue:NumberCounter.defaultProps.suffix},padding:{type:ControlType.String,title:\"Padding\",defaultValue:NumberCounter.defaultProps.padding},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:NumberCounter.defaultProps.backgroundColor,description:\"Visit Framergenie.com for more\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"NumberCounter\":{\"type\":\"reactComponent\",\"name\":\"NumberCounter\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"* @framerSupportedLayoutWidth any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./AdvancedNumberCounter.map"],"mappings":"iRAIG,SAAgB,EAAc,CAAC,cAAY,YAAU,WAAS,QAAM,OAAK,cAAY,mBAAiB,YAAU,SAAO,SAAO,YAAU,UAAQ,kBAAgB,CAAC,CAAC,GAAK,CAAC,EAAc,EAAiB,CAAA,EAAgB,GAAa,MAAoB,CAAC,IAAI,EAAgB,EAAQ,GAAW,CAAC,AAAc,IAAU,EAAU,IAAM,GAAa,EAAU,GAAW,IAC7W,GAAG,GAAa,EAAS,CAAC,IAAM,EAAS,EAAY,EAAS,EAAiB,GAAa,EAAU,GAAa,GAAU,sBAAsB,EAAU,MAAK,EAAiB,EACjL,EAAC,sBAAsB,EAAU,EAAC,CAAC,EAAY,EAAU,EAAS,EAAE,IAAM,EAAgB,EAAY,EAAc,QAAQ,GAAG,QAAQ,IAAI,GAAkB,KAAK,MAAM,GAAe,iBAAiB,OAAoB,EAAM,MAAM,CAAC,MAAM,CAAC,GAAG,EAAK,QAAM,YAAU,UAAQ,kBAAgB,QAAQ,OAAO,cAAc,IAAY,WAAW,SAAS,MAAM,WAAW,SAAS,eAAe,SAAS,CAAC,SAAS,CAAC,GAAqB,EAAK,OAAO,CAAC,SAAS,EAAO,EAAe,EAAK,OAAO,CAAC,SAAS,EAAgB,EAAE,GAAqB,EAAK,OAAO,CAAC,SAAS,EAAO,EAAE,CAAC,CAAG,6BAAc,aAAa,CAAC,YAAY,EAAE,UAAU,IAAI,SAAS,EAAE,MAAM,OAAO,KAAK,CAAC,SAAS,GAAG,WAAW,+BAA+B,WAAW,OAAO,WAAW,QAAQ,cAAc,SAAS,YAAY,iCAAiC,CAAC,YAAY,GAAK,iBAAiB,IAAI,UAAU,aAAa,OAAO,GAAG,OAAO,GAAG,UAAU,SAAS,QAAQ,OAAO,gBAAgB,UAAU,CAAC,EAAoB,EAAc,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,EAAc,aAAa,YAAY,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,MAAM,aAAa,EAAc,aAAa,UAAU,CAAC,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,EAAc,aAAa,SAAS,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAY,MAAM,MAAM,QAAQ,aAAa,EAAc,aAAa,MAAM,CAAC,KAAK,CACj4C,KAAK,EAAY,KAAK,SAAS,WAAW,gBAAgB,GAAK,qBAAqB,GAAM,gBAAgB,YAAY,aAAa,CAAC,SAAS,GAAG,WAAW,QAAQ,WAAW,YAAY,WAAW,OAAO,cAAc,SAAS,CAAC,CAAC,YAAY,CAAC,KAAK,EAAY,QAAQ,MAAM,UAAU,aAAa,EAAc,aAAa,YAAY,CAAC,iBAAiB,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,aAAa,EAAc,aAAa,iBAAiB,CAAC,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,YAAY,QAAQ,CAAC,aAAa,WAAW,CAAC,aAAa,EAAc,aAAa,UAAU,CAAC,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,aAAa,QAAQ,CAAC,OAAO,SAAS,QAAQ,CAAC,aAAa,EAAc,aAAa,UAAU,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,EAAc,aAAa,OAAO,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,EAAc,aAAa,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,aAAa,EAAc,aAAa,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,EAAc,aAAa,gBAAgB,YAAY,iCAAiC,CAAC"}