{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/sIxZFVxIOBdfeANYhkj2/uDvKUYsz9rb9t5rJDlma/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 isInView=useInView(ref);const[displayValue,setDisplayValue]=useState(()=>formatNumber(from));const isCanvas=RenderTarget.current()===RenderTarget.canvas;const ariaLabel=`Counter ends at ${to}`;function formatNumber(value){let formattedNumber=value.toFixed(decimalPlaces).replace(\".\",decimalSeparator);return formattedNumber;}useEffect(()=>{if(!isCanvas&&(playOnLoad||isInView)){const animationControl=animate(from,to,{duration,ease:animationType===\"smooth\"?\"easeInOut\":\"linear\",onUpdate:latest=>{setDisplayValue(formatNumber(latest));}});return()=>animationControl.stop();}},[from,to,duration,decimalPlaces,decimalSeparator,playOnLoad,isInView,animationType]);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:\"InView?\",defaultValue:true,enabledTitle:\"No\",disabledTitle:\"Yes\",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", "isInView", "useInView", "displayValue", "setDisplayValue", "ye", "formatNumber", "isCanvas", "RenderTarget", "ariaLabel", "value", "ue", "animationControl", "animate", "latest", "p", "motion", "addPropertyControls", "ControlType"]
}
