{"version":3,"file":"NumberCounter.qa84Ecba.mjs","names":["useState","useRef"],"sources":["https:/framer.com/m/framer/default-utils.js@^0.45.0","https:/framerusercontent.com/modules/pm0UmYcbHrg4lolBWwDs/0hoTysZ5BeIIr1DejSkj/NumberCounter.js"],"sourcesContent":["import{defaultEvents,localeOptions,fontControls,fontSizeOptions,emptyStateStyle,containerStyles,fontStack}from\"https://framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js\";import{useOnEnter,useOnExit}from\"https://framerusercontent.com/modules/D4TWeLfcxT6Tysr2BlYg/iZjmqdxVx1EOiM3k1FaW/useOnNavigationTargetChange.js\";import{useConstant}from\"https://framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js\";import{colorTokentoValue,colorFromToken}from\"https://framerusercontent.com/modules/D2Lz5CmnNVPZFFiZXalt/QaCzPbriZBfXWZIIycFI/colorFromToken.js\";import{isMotionValue}from\"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";import{useUniqueClassName,randomID}from\"https://framerusercontent.com/modules/xDiQsqBGXzmMsv7AlEVy/uhunpMiNsbXxzjlXsg1y/useUniqueClassName.js\";import{getVariantControls}from\"https://framerusercontent.com/modules/ETACN5BJyFTSo0VVDJfu/NHRqowOiXkF9UwOzczF7/variantUtils.js\";import{useIsBrowserSafari}from\"https://framerusercontent.com/modules/eMBrwoqQK7h6mEeGQUH8/GuplvPJVjmxpk9zqOTcb/isBrowser.js\";import{useMultiOnChange,useOnChange}from\"https://framerusercontent.com/modules/v9AWX2URmiYsHf7GbctE/XxKAZ9KlhWqf5x1JMyyF/useOnChange.js\";import{mstoMinAndSec,secondsToMinutes}from\"https://framerusercontent.com/modules/4zHZnO5JojN1PrIbu2jm/revv9QCWpkh8lPzi2jje/time.js\";import{useAutoMotionValue}from\"https://framerusercontent.com/modules/kNDwabfjDEb3vUxkQlZS/fSIr3AOAYbGlfSPgXpYu/useAutoMotionValue.js\";import{useFontControls}from\"https://framerusercontent.com/modules/cuQH4dmpDnV8YK1mSgQX/KqRXqunFjE6ufhpc7ZRu/useFontControls.js\";import{useRenderTarget,useIsInPreview,useIsOnCanvas}from\"https://framerusercontent.com/modules/afBE9Yx1W6bY5q32qPxe/m3q7puE2tbo1S2C0s0CT/useRenderTarget.js\";import{useControlledState}from\"https://framerusercontent.com/modules/zGkoP8tPDCkoBzMdt5uq/0zFSjxIYliHxrQQnryFX/useControlledState.js\";import{usePadding,useRadius,paddingControl,borderRadiusControl}from\"https://framerusercontent.com/modules/5SM58HxZHxjjv7aLMOgQ/WXz9i6mVki0bBCrKdqB3/propUtils.js\";import{detectAutoSizingAxis}from\"https://framerusercontent.com/modules/8CkHAZatUz1UR8jNTcfD/HwbnIAZlUmQ2oTpcLkaH/detectAutoSizingAxis.js\";export{useOnEnter,useOnExit,defaultEvents,isMotionValue,colorFromToken,colorTokentoValue,localeOptions,fontControls,fontSizeOptions,emptyStateStyle,containerStyles,fontStack,useUniqueClassName,getVariantControls,useIsBrowserSafari,randomID,useConstant,useMultiOnChange,useOnChange,usePadding,useRadius,paddingControl,borderRadiusControl,mstoMinAndSec,useFontControls,secondsToMinutes,useAutoMotionValue,useRenderTarget,useIsInPreview,useControlledState,detectAutoSizingAxis,useIsOnCanvas,};\nexport const __FramerMetadata__ = {\"exports\":{\"useConstant\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultEvents\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useUniqueClassName\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMultiOnChange\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnChange\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsOnCanvas\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnExit\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontSizeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorTokentoValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRadius\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getVariantControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorFromToken\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"usePadding\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontStack\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useControlledState\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useFontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useAutoMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"emptyStateStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsInPreview\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"detectAutoSizingAxis\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"borderRadiusControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"mstoMinAndSec\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"randomID\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"localeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnEnter\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"secondsToMinutes\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRenderTarget\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"paddingControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}","import{jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useEffect,useRef}from\"react\";import{motion,useAnimation}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";import{containerStyles,fontStack,localeOptions}from\"https://framer.com/m/framer/default-utils.js@^0.45.0\";export default function TextCounter(props){const{fontFamily,fontSize,fontWeight,color,font,targetValue,duration,locale,prefix,showPrefix,prefixPosition}=props;const[count,setCount]=useState(0);const controls=useAnimation();const ref=useRef(null);const[isVisible,setIsVisible]=useState(false);const calculateIntervalTime=currentCount=>{const slowDownStart=targetValue-10;if(currentCount>=slowDownStart){const slowProgress=(currentCount-slowDownStart+1)/(targetValue-slowDownStart);return slowProgress*slowProgress*duration*1e3/(targetValue-slowDownStart);}else{return duration*1e3/(targetValue-slowDownStart);}};useEffect(()=>{const observer=new IntersectionObserver(([entry])=>setIsVisible(entry.isIntersecting),{root:null,rootMargin:\"0px\",threshold:.1});if(ref.current)observer.observe(ref.current);return()=>{if(ref.current)observer.unobserve(ref.current);};},[]);useEffect(()=>{if(isVisible&&count<targetValue){const intervalTime=calculateIntervalTime(count);const timer=setTimeout(()=>setCount(count+1),intervalTime);return()=>clearTimeout(timer);}},[count,isVisible,targetValue]);useEffect(()=>{controls.start({opacity:1,transition:{duration:.5}});},[controls]);const componentStyle={...containerStyles,color,fontFamily:fontStack,fontWeight:500,fontSize:16,...font};return /*#__PURE__*/_jsxs(motion.div,{ref:ref,style:componentStyle,animate:controls,children:[showPrefix&&prefixPosition===\"before\"&&prefix,count.toLocaleString(locale),showPrefix&&prefixPosition===\"after\"&&prefix]});}TextCounter.defaultProps={duration:5,targetValue:1e3,color:\"#FFFFFF\",showPrefix:false,prefix:\"+\",prefixPosition:\"after\",locale:\"en\"};TextCounter.displayName=\"NumberCounter\";addPropertyControls(TextCounter,{targetValue:{title:\"Target\",type:ControlType.Number,displayStepper:true,defaultValue:TextCounter.defaultProps.targetValue},duration:{title:\"Duration\",type:ControlType.Number,displayStepper:true,step:.5,defaultValue:TextCounter.defaultProps.duration,unit:\"s\"},showPrefix:{title:\"Prefix\",type:ControlType.Boolean,enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:TextCounter.defaultProps.showPrefix},prefix:{title:\"\",type:ControlType.String,defaultValue:TextCounter.defaultProps.prefix,hidden:props=>props.showPrefix!==true},prefixPosition:{title:\"Prefix Position\",type:ControlType.Enum,options:[\"before\",\"after\"],optionTitles:[\"Before\",\"After\"],defaultValue:TextCounter.defaultProps.prefixPosition,hidden:props=>props.showPrefix!==true},color:{title:\"Color\",type:ControlType.Color,defaultValue:TextCounter.defaultProps.color},font:{type:ControlType.Font,controls:\"extended\"},locale:{title:\"Locale\",type:ControlType.Enum,options:Object.keys(localeOptions).sort(),optionTitles:Object.keys(localeOptions).sort().map(key=>localeOptions[key]),defaultValue:TextCounter.defaultProps.locale}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TextCounter\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./NumberCounter.map"],"mappings":"m0BAA6M,IAAiJ,IAAwH,IAAgJ,IAA4H,IAA+I,IAAgI,IAA6H,IAAyI,IAA0Q,IAAgI,IAA6J,IAAsI,IAAkK,ICA/xD,SAAwB,EAAY,EAAM,CAAC,GAAK,CAAC,aAAW,WAAS,aAAW,QAAM,OAAK,cAAY,WAAS,SAAO,SAAO,aAAW,kBAAgB,EAAW,CAAC,EAAM,GAAUA,EAAS,EAAE,CAAO,EAAS,GAAc,CAAO,EAAIC,EAAO,KAAK,CAAM,CAAC,EAAU,GAAcD,EAAS,GAAM,CAAO,EAAsB,GAAc,CAAC,IAAM,EAAc,EAAY,GAAG,GAAG,GAAc,EAAc,CAAC,IAAM,GAAc,EAAa,EAAc,IAAI,EAAY,GAAe,OAAO,EAAa,EAAa,EAAS,KAAK,EAAY,QAAqB,OAAO,EAAS,KAAK,EAAY,IAAkB,MAAc,CAAC,IAAM,EAAS,IAAI,sBAAsB,CAAC,KAAS,EAAa,EAAM,eAAe,CAAC,CAAC,KAAK,KAAK,WAAW,MAAM,UAAU,GAAG,CAAC,CAA8C,OAA1C,EAAI,SAAQ,EAAS,QAAQ,EAAI,QAAQ,KAAW,CAAI,EAAI,SAAQ,EAAS,UAAU,EAAI,QAAQ,GAAK,EAAE,CAAC,CAAC,MAAc,CAAC,GAAG,GAAW,EAAM,EAAY,CAAC,IAAM,EAAa,EAAsB,EAAM,CAAO,EAAM,eAAe,EAAS,EAAM,EAAE,CAAC,EAAa,CAAC,UAAU,aAAa,EAAM,GAAI,CAAC,EAAM,EAAU,EAAY,CAAC,CAAC,MAAc,CAAC,EAAS,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC,EAAG,CAAC,EAAS,CAAC,CAAC,IAAM,EAAe,CAAC,GAAG,EAAgB,QAAM,WAAW,EAAU,WAAW,IAAI,SAAS,GAAG,GAAG,EAAK,CAAC,OAAoB,EAAM,EAAO,IAAI,CAAK,MAAI,MAAM,EAAe,QAAQ,EAAS,SAAS,CAAC,GAAY,IAAiB,UAAU,EAAO,EAAM,eAAe,EAAO,CAAC,GAAY,IAAiB,SAAS,EAAO,CAAC,CAAC,kBAAzsD,IAA6C,IAA+C,IAAoD,IAA0G,CAAi9C,EAAY,aAAa,CAAC,SAAS,EAAE,YAAY,IAAI,MAAM,UAAU,WAAW,GAAM,OAAO,IAAI,eAAe,QAAQ,OAAO,KAAK,CAAC,EAAY,YAAY,gBAAgB,EAAoB,EAAY,CAAC,YAAY,CAAC,MAAM,SAAS,KAAK,EAAY,OAAO,eAAe,GAAK,aAAa,EAAY,aAAa,YAAY,CAAC,SAAS,CAAC,MAAM,WAAW,KAAK,EAAY,OAAO,eAAe,GAAK,KAAK,GAAG,aAAa,EAAY,aAAa,SAAS,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,SAAS,KAAK,EAAY,QAAQ,aAAa,OAAO,cAAc,OAAO,aAAa,EAAY,aAAa,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,EAAY,OAAO,aAAa,EAAY,aAAa,OAAO,OAAO,GAAO,EAAM,aAAa,GAAK,CAAC,eAAe,CAAC,MAAM,kBAAkB,KAAK,EAAY,KAAK,QAAQ,CAAC,SAAS,QAAQ,CAAC,aAAa,CAAC,SAAS,QAAQ,CAAC,aAAa,EAAY,aAAa,eAAe,OAAO,GAAO,EAAM,aAAa,GAAK,CAAC,MAAM,CAAC,MAAM,QAAQ,KAAK,EAAY,MAAM,aAAa,EAAY,aAAa,MAAM,CAAC,KAAK,CAAC,KAAK,EAAY,KAAK,SAAS,WAAW,CAAC,OAAO,CAAC,MAAM,SAAS,KAAK,EAAY,KAAK,QAAQ,OAAO,KAAK,EAAc,CAAC,MAAM,CAAC,aAAa,OAAO,KAAK,EAAc,CAAC,MAAM,CAAC,IAAI,GAAK,EAAc,GAAK,CAAC,aAAa,EAAY,aAAa,OAAO,CAAC,CAAC"}