{"version":3,"file":"NumberCountingUp.D-XaL83n.mjs","names":["e.useState","e.useRef","e.Component","e.createElement","useMemo","useCallback","useState","__esmMin","window","pe","te","init_ssg_sandbox_shims","init_npm_react_18_3_1","ce","init_jsx_runtime","ne","p","_e","de","addPropertyControls","init_framer_BL70qLPA","useIsStaticRenderer","ControlType","getRootId","r","n","optionsToId","createObserver","i","o","s","observe","t","a","l","h","useInView","c","u","b","f","v","e","g","y","V","init_dist","AnimatedNumber","isStaticRenderer","numericTarget","parsed","targetNumber","formatValue","decimalMode","value","finalDisplayValue","displayNumber","setDisplayNumber","hasMounted","setHasMounted","vw","setVw","onResize","effectiveFontSize","MOBILE_MAX","fontSizeMobile","TABLET_MAX","fontSizeTablet","fontSize","fontFile","loadedFont","err","inView","easeInOutCubic","startTime","animate","elapsed","timestamp","progress","displayValue","raf","color","suffix","init_NumberCountingUp"],"sources":["https:/ga.jspm.io/npm:react-intersection-observer@9.13.0/dist/index.mjs","https:/framerusercontent.com/modules/88P0NV1PCJmS2aOZ63Y7/YWsqOzxGNaELRFBWX9Bd/NumberCountingUp.js"],"sourcesContent":["import*as e from\"react\";\"use client\";var t=Object.defineProperty;var __defNormalProp=(e,i,r)=>i in e?t(e,i,{enumerable:true,configurable:true,writable:true,value:r}):e[i]=r;var __publicField=(e,t,i)=>__defNormalProp(e,typeof t!==\"symbol\"?t+\"\":t,i);var i=new Map;var r=new WeakMap;var n=0;var o=void 0;function defaultFallbackInView(e){o=e}function getRootId(e){if(!e)return\"0\";if(r.has(e))return r.get(e);n+=1;r.set(e,n.toString());return r.get(e)}function optionsToId(e){return Object.keys(e).sort().filter((t=>e[t]!==void 0)).map((t=>`${t}_${t===\"root\"?getRootId(e.root):e[t]}`)).toString()}function createObserver(e){const t=optionsToId(e);let r=i.get(t);if(!r){const n=new Map;let o;const s=new IntersectionObserver((t=>{t.forEach((t=>{var i;const r=t.isIntersecting&&o.some((e=>t.intersectionRatio>=e));e.trackVisibility&&typeof t.isVisible===\"undefined\"&&(t.isVisible=r);(i=n.get(t.target))==null?void 0:i.forEach((e=>{e(r,t)}))}))}),e);o=s.thresholds||(Array.isArray(e.threshold)?e.threshold:[e.threshold||0]);r={id:t,observer:s,elements:n};i.set(t,r)}return r}function observe(e,t,r={},n=o){if(typeof window.IntersectionObserver===\"undefined\"&&n!==void 0){const i=e.getBoundingClientRect();t(n,{isIntersecting:n,target:e,intersectionRatio:typeof r.threshold===\"number\"?r.threshold:0,time:0,boundingClientRect:i,intersectionRect:i,rootBounds:i});return()=>{}}const{id:s,observer:a,elements:l}=createObserver(r);const h=l.get(e)||[];l.has(e)||l.set(e,h);h.push(t);a.observe(e);return function unobserve(){h.splice(h.indexOf(t),1);if(h.length===0){l.delete(e);a.unobserve(e)}if(l.size===0){a.disconnect();i.delete(s)}}}function isPlainChildren(e){return typeof e.children!==\"function\"}var s=class extends e.Component{constructor(e){super(e);__publicField(this,\"node\",null);__publicField(this,\"_unobserveCb\",null);__publicField(this,\"handleNode\",(e=>{if(this.node){this.unobserve();e||this.props.triggerOnce||this.props.skip||this.setState({inView:!!this.props.initialInView,entry:void 0})}this.node=e||null;this.observeNode()}));__publicField(this,\"handleChange\",((e,t)=>{e&&this.props.triggerOnce&&this.unobserve();isPlainChildren(this.props)||this.setState({inView:e,entry:t});this.props.onChange&&this.props.onChange(e,t)}));this.state={inView:!!e.initialInView,entry:void 0}}componentDidMount(){this.unobserve();this.observeNode()}componentDidUpdate(e){if(e.rootMargin!==this.props.rootMargin||e.root!==this.props.root||e.threshold!==this.props.threshold||e.skip!==this.props.skip||e.trackVisibility!==this.props.trackVisibility||e.delay!==this.props.delay){this.unobserve();this.observeNode()}}componentWillUnmount(){this.unobserve()}observeNode(){if(!this.node||this.props.skip)return;const{threshold:e,root:t,rootMargin:i,trackVisibility:r,delay:n,fallbackInView:o}=this.props;this._unobserveCb=observe(this.node,this.handleChange,{threshold:e,root:t,rootMargin:i,trackVisibility:r,delay:n},o)}unobserve(){if(this._unobserveCb){this._unobserveCb();this._unobserveCb=null}}render(){const{children:t}=this.props;if(typeof t===\"function\"){const{inView:e,entry:i}=this.state;return t({inView:e,entry:i,ref:this.handleNode})}const{as:i,triggerOnce:r,threshold:n,root:o,rootMargin:s,onChange:a,skip:l,trackVisibility:h,delay:c,initialInView:d,fallbackInView:u,...p}=this.props;return e.createElement(i||\"div\",{ref:this.handleNode,...p},t)}};function useInView({threshold:t,delay:i,trackVisibility:r,rootMargin:n,root:o,triggerOnce:s,skip:a,initialInView:l,fallbackInView:h,onChange:c}={}){var d;const[u,p]=e.useState(null);const b=e.useRef();const[f,v]=e.useState({inView:!!l,entry:void 0});b.current=c;e.useEffect((()=>{if(a||!u)return;let e;e=observe(u,((t,i)=>{v({inView:t,entry:i});b.current&&b.current(t,i);if(i.isIntersecting&&s&&e){e();e=void 0}}),{root:o,rootMargin:n,threshold:t,trackVisibility:r,delay:i},h);return()=>{e&&e()}}),[Array.isArray(t)?t.toString():t,u,o,n,s,a,r,h,i]);const g=(d=f.entry)==null?void 0:d.target;const y=e.useRef();if(!u&&g&&!s&&!a&&y.current!==g){y.current=g;v({inView:!!l,entry:void 0})}const V=[p,f.inView,f.entry];V.ref=V[0];V.inView=V[1];V.entry=V[2];return V}export{s as InView,defaultFallbackInView,observe,useInView};\n//# sourceMappingURL=index.mjs.map\n","import{jsxs as _jsxs}from\"react/jsx-runtime\";import{startTransition,useCallback,useEffect,useMemo,useState}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{useInView}from\"react-intersection-observer\";// breakpoints (inclusive)\nconst TABLET_MAX=810;const MOBILE_MAX=390;export default function AnimatedNumber({targetNumber,fontFile,fontSize,fontSizeTablet,fontSizeMobile,decimalMode,suffix,color}){const isStaticRenderer=useIsStaticRenderer();const{ref,inView}=useInView({triggerOnce:true});const numericTarget=useMemo(()=>{const parsed=Number(targetNumber);return Number.isFinite(parsed)?parsed:0;},[targetNumber]);const formatValue=useCallback(value=>{return decimalMode===\"Decimal\"?(Math.floor(value*10)/10).toFixed(1):Math.floor(value).toString();},[decimalMode]);const finalDisplayValue=useMemo(()=>formatValue(numericTarget),[formatValue,numericTarget]);const[displayNumber,setDisplayNumber]=useState(finalDisplayValue);const[hasMounted,setHasMounted]=useState(false);// Track viewport width for responsive font sizing\nconst[vw,setVw]=useState(typeof window!==\"undefined\"?window.innerWidth:1440);useEffect(()=>{if(typeof window===\"undefined\")return;const onResize=()=>{startTransition(()=>setVw(window.innerWidth));};window.addEventListener(\"resize\",onResize);return()=>window.removeEventListener(\"resize\",onResize);},[]);// Choose font size based on breakpoints\nconst effectiveFontSize=vw<=MOBILE_MAX?fontSizeMobile:vw<=TABLET_MAX?fontSizeTablet:fontSize;// Load custom font if provided\nuseEffect(()=>{if(typeof window===\"undefined\"||typeof document===\"undefined\")return;if(!fontFile)return;const fontName=\"UploadedFont\";const fontFace=new FontFace(fontName,`url(${fontFile})`);fontFace.load().then(loadedFont=>{document.fonts.add(loadedFont);}).catch(err=>{console.error(\"Font loading failed:\",err);});},[fontFile]);useEffect(()=>{startTransition(()=>setHasMounted(true));},[]);useEffect(()=>{if(isStaticRenderer||!hasMounted||!inView){startTransition(()=>setDisplayNumber(finalDisplayValue));return;}startTransition(()=>setDisplayNumber(formatValue(0)));},[finalDisplayValue,formatValue,hasMounted,inView,isStaticRenderer]);// Animate number when in view\nuseEffect(()=>{if(isStaticRenderer||!hasMounted||!inView||typeof window===\"undefined\")return;const duration=1e3;const easeInOutCubic=t=>t<.5?4*t*t*t:1-Math.pow(-2*t+2,3)/2;const startTime=performance.now();const animate=timestamp=>{const elapsed=timestamp-startTime;const progress=Math.min(elapsed/duration,1);const eased=easeInOutCubic(progress);const value=eased*numericTarget;const displayValue=formatValue(value);startTransition(()=>setDisplayNumber(displayValue));if(progress<1)requestAnimationFrame(animate);};const raf=requestAnimationFrame(animate);return()=>cancelAnimationFrame(raf);},[formatValue,hasMounted,inView,isStaticRenderer,numericTarget]);return /*#__PURE__*/_jsxs(\"div\",{ref:ref,style:{color:color||\"#FF4D4D\",fontSize:`${effectiveFontSize}px`,lineHeight:\"0.95\",fontFamily:fontFile?\"UploadedFont\":\"inherit\",display:\"inline-block\"},children:[displayNumber,suffix]});}addPropertyControls(AnimatedNumber,{targetNumber:{type:ControlType.Number,title:\"Target Number\",defaultValue:5,min:0,max:1e3,step:.1},decimalMode:{type:ControlType.Enum,title:\"Decimal Mode\",options:[\"Decimal\",\"No Decimal\"],optionTitles:[\"Decimal\",\"No Decimal\"],defaultValue:\"Decimal\"},suffix:{type:ControlType.String,title:\"Suffix\",defaultValue:\"\",placeholder:\"e.g. %, +\"},fontFile:{type:ControlType.File,title:\"Font File\",allowedFileTypes:[\"woff\",\"woff2\"]},fontSize:{type:ControlType.Number,title:\"Font Size (Desktop)\",defaultValue:48,min:10,max:300,step:1},fontSizeTablet:{type:ControlType.Number,title:\"Font Size (≤810)\",defaultValue:40,min:8,max:300,step:1},fontSizeMobile:{type:ControlType.Number,title:\"Font Size (≤390)\",defaultValue:32,min:8,max:300,step:1},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#FF4D4D\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"AnimatedNumber\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./NumberCountingUp.map"],"mappings":"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"}