{"version":3,"file":"NumberAnimator.D1hLwsO2.mjs","names":["useState","useRef","result"],"sources":["https:/framerusercontent.com/modules/yOeR3ab2JjbOOHDQLMjC/GE7xrdP6XZKwQUNDi0R9/NumberAnimator.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useState,useRef,startTransition}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{useInView}from\"framer-motion\";/**\n * Count Up Animation\n * \n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight fixed\n */export default function NumberAnimator(props){const{targetNumber=0,startingNumber=0,duration=2,prefix=\"\",suffix=\"\",textStyleDesktop,textStyleTablet,textStyleMobile,textColor=\"#000000\",useGradient=false,gradientColor1=\"#0099FF\",gradientColor2=\"#8855FF\",gradientAngle=90,decimalPlaces=0,manualDecimalPosition=1,useManualDecimal=false,useThousandsSeparator=false,easingFunction=\"easeOutCubic\",style}=props;const[displayValue,setDisplayValue]=useState(startingNumber);const ref=useRef(null);const isInView=useInView(ref,{once:true,amount:.5});const isStatic=useIsStaticRenderer();const animationRef=useRef(null);// Easing functions\nconst easingFunctions={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>t*(2-t),easeInOutQuad:t=>t<.5?2*t*t:-1+(4-2*t)*t,easeInCubic:t=>t*t*t,easeOutCubic:t=>--t*t*t+1,easeInOutCubic:t=>t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1,easeInQuart:t=>t*t*t*t,easeOutQuart:t=>1- --t*t*t*t,easeInOutQuart:t=>t<.5?8*t*t*t*t:1-8*--t*t*t*t,easeInBack:t=>t*t*(2.7*t-1.7),easeOutBack:t=>1+--t*t*(2.7*t+1.7),easeInOutBack:t=>{const c1=1.70158;const c2=c1*1.525;return t<.5?Math.pow(2*t,2)*((c2+1)*2*t-c2)/2:(Math.pow(2*t-2,2)*((c2+1)*(t*2-2)+c2)+2)/2;},easeOutBounce:t=>{const n1=7.5625;const d1=2.75;if(t<1/d1){return n1*t*t;}else if(t<2/d1){return n1*(t-=1.5/d1)*t+.75;}else if(t<2.5/d1){return n1*(t-=2.25/d1)*t+.9375;}else{return n1*(t-=2.625/d1)*t+.984375;}}};useEffect(()=>{if(isStatic){startTransition(()=>setDisplayValue(targetNumber));return;}if(!isInView)return;let startTime=null;let frameId=null;const animate=timestamp=>{if(!startTime)startTime=timestamp;const linearProgress=Math.min((timestamp-startTime)/(duration*1e3),1);// Apply easing function\nconst easedProgress=easingFunctions[easingFunction]?easingFunctions[easingFunction](linearProgress):linearProgress;const currentValue=startingNumber+easedProgress*(targetNumber-startingNumber);startTransition(()=>setDisplayValue(currentValue));if(linearProgress<1){frameId=requestAnimationFrame(animate);}};// Clean up any existing animation\nif(animationRef.current){cancelAnimationFrame(animationRef.current);}// Start new animation\nanimationRef.current=requestAnimationFrame(animate);return()=>{if(frameId)cancelAnimationFrame(frameId);};},[targetNumber,startingNumber,duration,easingFunction,isInView,isStatic]);const formatNumber=value=>{if(useManualDecimal){const numberString=Math.round(value).toString();if(manualDecimalPosition>0&&manualDecimalPosition<numberString.length){const beforeDecimal=numberString.slice(0,-manualDecimalPosition);const afterDecimal=numberString.slice(-manualDecimalPosition);let result=`${beforeDecimal}.${afterDecimal}`;if(useThousandsSeparator){const parts=result.split(\".\");parts[0]=parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g,\".\");result=parts.join(\".\");}return result;}let result=numberString;if(useThousandsSeparator){result=result.replace(/\\B(?=(\\d{3})+(?!\\d))/g,\".\");}return result;}let result=value.toFixed(decimalPlaces);if(useThousandsSeparator){const parts=result.split(\".\");parts[0]=parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g,\".\");result=parts.join(\".\");}return result;};return /*#__PURE__*/_jsxs(\"div\",{ref:ref,style:{position:\"relative\",display:\"inline-block\",alignItems:\"flex-end\",...style},children:[/*#__PURE__*/_jsxs(\"span\",{style:{...textStyleDesktop,...useGradient?{background:`linear-gradient(${gradientAngle}deg, ${gradientColor1}, ${gradientColor2})`,WebkitBackgroundClip:\"text\",WebkitTextFillColor:\"transparent\",backgroundClip:\"text\"}:{color:textColor}},className:\"responsive-text\",children:[prefix,formatNumber(displayValue),suffix]}),/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:`\n            .responsive-text {\n              ${Object.entries(textStyleDesktop||{}).map(([key,value])=>`${key.replace(/([A-Z])/g,\"-$1\").toLowerCase()}: ${value};`).join(\" \")}\n            }\n            @media (max-width: 1024px) {\n              .responsive-text {\n                ${Object.entries(textStyleTablet||{}).map(([key,value])=>`${key.replace(/([A-Z])/g,\"-$1\").toLowerCase()}: ${value};`).join(\" \")}\n              }\n            }\n            @media (max-width: 768px) {\n              .responsive-text {\n                ${Object.entries(textStyleMobile||{}).map(([key,value])=>`${key.replace(/([A-Z])/g,\"-$1\").toLowerCase()}: ${value};`).join(\" \")}\n              }\n            }\n          `}})]});}addPropertyControls(NumberAnimator,{startingNumber:{type:ControlType.Number,title:\"Starting Number\",defaultValue:0,min:0,max:99e3,displayStepper:true},targetNumber:{type:ControlType.Number,title:\"Target Number\",defaultValue:50,min:0,max:99e3,displayStepper:true},duration:{type:ControlType.Number,title:\"Duration (s)\",defaultValue:2,min:.1,max:10,step:.1,displayStepper:true},easingFunction:{type:ControlType.Enum,title:\"Easing\",defaultValue:\"easeOutCubic\",options:[\"linear\",\"easeInQuad\",\"easeOutQuad\",\"easeInOutQuad\",\"easeInCubic\",\"easeOutCubic\",\"easeInOutCubic\",\"easeInQuart\",\"easeOutQuart\",\"easeInOutQuart\",\"easeInBack\",\"easeOutBack\",\"easeInOutBack\",\"easeOutBounce\"],optionTitles:[\"Linear\",\"Ease In Quad\",\"Ease Out Quad\",\"Ease In Out Quad\",\"Ease In Cubic\",\"Ease Out Cubic\",\"Ease In Out Cubic\",\"Ease In Quart\",\"Ease Out Quart\",\"Ease In Out Quart\",\"Ease In Back\",\"Ease Out Back\",\"Ease In Out Back\",\"Ease Out Bounce\"]},prefix:{type:ControlType.String,title:\"Prefix\",defaultValue:\"\"},suffix:{type:ControlType.String,title:\"Suffix\",defaultValue:\"\"},decimalPlaces:{type:ControlType.Number,title:\"Decimal Places\",defaultValue:0,min:0,max:6,displayStepper:true},useThousandsSeparator:{type:ControlType.Boolean,title:\"Thousands Separator\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},useGradient:{type:ControlType.Boolean,title:\"Use Gradient\",defaultValue:false,enabledTitle:\"Gradient\",disabledTitle:\"Solid\"},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#000000\",hidden:({useGradient})=>useGradient},gradientColor1:{type:ControlType.Color,title:\"Gradient Start\",defaultValue:\"#0099FF\",hidden:({useGradient})=>!useGradient},gradientColor2:{type:ControlType.Color,title:\"Gradient End\",defaultValue:\"#8855FF\",hidden:({useGradient})=>!useGradient},gradientAngle:{type:ControlType.Number,title:\"Gradient Angle\",defaultValue:90,min:0,max:360,step:1,unit:\"deg\",hidden:({useGradient})=>!useGradient},textStyleDesktop:{type:ControlType.Font,title:\"Desktop Text Style\",defaultValue:{fontSize:40,lineHeight:1.2,variant:\"Bold\",textAlign:\"center\"},controls:\"extended\",defaultFontType:\"sans-serif\"},textStyleTablet:{type:ControlType.Font,title:\"Tablet Text Style\",defaultValue:{fontSize:32,lineHeight:1.2,variant:\"Bold\",textAlign:\"center\"},controls:\"extended\",defaultFontType:\"sans-serif\"},textStyleMobile:{type:ControlType.Font,title:\"Mobile Text Style\",defaultValue:{fontSize:24,lineHeight:1.2,variant:\"Bold\",textAlign:\"center\"},controls:\"extended\",defaultFontType:\"sans-serif\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"NumberAnimator\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerSupportedLayoutWidth\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./NumberAnimator.map"],"mappings":"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"}