{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/sIxZFVxIOBdfeANYhkj2/lGu9VayhxpYD2v9lbKlh/AnimatedCounter.js"],
  "sourcesContent": ["/*\n * Animated Counter by framer.today\n * v1.0.1\n *\n * hi@framer.today\n * _joerl on \uD835\uDD4F\n *\n * Full terms here \u21B4\n * https://framer.today/license\n *\n */import{jsx as _jsx}from\"react/jsx-runtime\";import{animate,motion,useInView}from\"framer-motion\";import{useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";/**\n * @framerDisableUnlink\n */export default function AnimatedCounter(props){const{from,to,duration,decimalPlaces,decimalSeparator,font:{fontFamily,fontWeight,fontSize,lineHeight,letterSpacing,textAlign},color,playOnLoad,once,animationType}=props;const ref=useRef(null);const isCanvas=RenderTarget.current()===RenderTarget.canvas;const ariaLabel=`Counter ends at ${to}`;// Pass 'once' to useInView\nconst isInView=useInView(ref,{once});const[hasAnimated,setHasAnimated]=useState(false);const[displayValue,setDisplayValue]=useState(()=>formatNumber(from));function formatNumber(value){let formattedNumber=value.toFixed(decimalPlaces).replace(\".\",decimalSeparator);return formattedNumber;}useEffect(()=>{// Determine if animation should play\nif(!isCanvas&&(playOnLoad||isInView)&&!hasAnimated){const animationControl=animate(from,to,{duration,ease:animationType===\"smooth\"?\"easeInOut\":\"linear\",onUpdate:latest=>{setDisplayValue(formatNumber(latest));},onComplete:()=>{if(once){setHasAnimated(true);}}});return()=>animationControl.stop();}},[from,to,duration,decimalPlaces,decimalSeparator,playOnLoad,isInView,animationType,once,hasAnimated]);return /*#__PURE__*/_jsx(motion.div,{ref:ref,initial:{opacity:isCanvas?1:0},whileInView:{opacity:1},style:{fontFamily,fontWeight,fontSize,lineHeight,letterSpacing,textAlign,color,fontVariantNumeric:\"tabular-nums\",userSelect:\"none\"},\"aria-label\":ariaLabel,children:isCanvas?formatNumber(to):displayValue});}AnimatedCounter.defaultProps={from:0,to:24,duration:5,decimalPlaces:0,decimalSeparator:\".\",font:{fontFamily:\"Manrope\",fontWeight:\"400\",fontSize:40,lineHeight:\"1.5em\",letterSpacing:\"normal\",textAlign:\"left\"},color:\"#FFF\",playOnLoad:true,once:true,animationType:\"smooth\"};addPropertyControls(AnimatedCounter,{from:{type:ControlType.Number,title:\"From\",defaultValue:0,min:0,step:.1,displayStepper:true},to:{type:ControlType.Number,title:\"To\",defaultValue:16,min:0,step:.1,displayStepper:true},animationType:{type:ControlType.Enum,title:\"Animation Type\",defaultValue:\"smooth\",options:[\"smooth\",\"linear\"],optionTitles:[\"Smooth\",\"Linear\"]},duration:{type:ControlType.Number,title:\"Duration\",defaultValue:2.5,min:0,step:.1,displayStepper:true},decimalPlaces:{type:ControlType.Number,displayStepper:true,title:\"Decimal Places\",defaultValue:0,min:0,max:2,step:1},decimalSeparator:{type:ControlType.Enum,title:\"\u21B3 Separator\",defaultValue:\".\",options:[\".\",\",\"],optionTitles:[\".\",\",\"],hidden:({decimalPlaces})=>decimalPlaces===0},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultValue:{fontFamily:\"Manrope\",fontWeight:\"400\",fontSize:64,lineHeight:\"1.5em\",letterSpacing:\"Medium\",textAlign:\"left\"},displayFontSize:true,displayTextAlignment:false,defaultFontType:\"monospace\"},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#FFF\"},once:{type:ControlType.Boolean,title:\"Once\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},playOnLoad:{type:ControlType.Boolean,title:\"Play on Load\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\",description:`\n        \n        *from framer.today*\n [License](https://framer.today/license)\n    `}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"AnimatedCounter\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./AnimatedCounter.map"],
  "mappings": "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",
  "names": ["AnimatedCounter", "props", "from", "to", "duration", "decimalPlaces", "decimalSeparator", "fontFamily", "fontWeight", "fontSize", "lineHeight", "letterSpacing", "textAlign", "color", "playOnLoad", "once", "animationType", "ref", "pe", "isCanvas", "RenderTarget", "ariaLabel", "isInView", "useInView", "hasAnimated", "setHasAnimated", "ye", "displayValue", "setDisplayValue", "formatNumber", "value", "ue", "animationControl", "animate", "latest", "p", "motion", "addPropertyControls", "ControlType"]
}
