{"version":3,"file":"NumberAnimation.CFhSJsUy.mjs","names":["useState","useRef","startTransition","React.Fragment","useLayoutEffect","useEffect"],"sources":["https:/framerusercontent.com/modules/MwBCLcPzvYkpJthvMICf/W9YcwiFVlQkTYnN31sfn/NumberAnimation.js"],"sourcesContent":["/**\n * Odometer Counter\n * Compact slot-machine counter for Framer.\n *\n * @author Shokhnur — https://www.framer.com/@shokhnur\n *\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{startTransition,useEffect,useLayoutEffect,useRef,useState}from\"react\";import{motion,useInView,useReducedMotion}from\"framer-motion\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";// Constants\nconst DEFAULT_FONT={fontFamily:'\"Inter\", sans-serif',fontSize:48,fontWeight:700,letterSpacing:\"0px\"};const MAX_SCALED_INTEGER=Number.MAX_SAFE_INTEGER;const VISUALLY_HIDDEN={position:\"absolute\",width:1,height:1,padding:0,margin:-1,overflow:\"hidden\",clip:\"rect(0, 0, 0, 0)\",whiteSpace:\"nowrap\",border:0};// Helpers\nfunction toFiniteNumber(value,fallback){const number=typeof value===\"number\"?value:Number(value);return Number.isFinite(number)?number:fallback;}function clampNumber(value,min,max,fallback){const number=toFiniteNumber(value,fallback);return Math.min(max,Math.max(min,number));}function clampInteger(value,min,max,fallback){return Math.round(clampNumber(value,min,max,fallback));}function getSeparatorChar(separatorType){return separatorType===\"space\"?\" \":separatorType;}function getScaledInteger(value,decimals){const scale=Math.pow(10,decimals);const scaled=Math.round((Math.abs(value)+Number.EPSILON)*scale);return Math.min(MAX_SCALED_INTEGER,Math.max(0,scaled));}function getFirstSignificantIndex(value){const index=value.split(\"\").findIndex(char=>char!==\"0\");return index===-1?value.length-1:index;}function getIntegerDigitCount(firstIndex,totalLength,decimals){return Math.max(1,totalLength-firstIndex-decimals);}function getDigitModel(rawValue,totalLength,decimals){const padded=rawValue.padStart(totalLength,\"0\");const firstIndex=getFirstSignificantIndex(padded);return{padded,firstIndex,integerDigits:getIntegerDigitCount(firstIndex,totalLength,decimals)};}function isDigitActive(model,index,positionFromRight,decimals){return index>=model.firstIndex||positionFromRight<=decimals;}function getIntermediates(start,target,count,column){const list=[start];let seed=column+start*7+target*13;for(let index=0;index<count-1;index++){seed=(seed*9301+49297)%233280;list.push(Math.floor(seed/233280*10));}list.push(target);return list;}function getLineHeightParts(lineHeight){const raw=lineHeight?.toString()||\"1.2em\";const value=parseFloat(raw);const unitMatch=raw.match(/[a-zA-Z%]+/);const unit=unitMatch?unitMatch[0]:\"em\";if(!Number.isFinite(value)){return{value:1.2,unit:\"em\",css:\"1.2em\"};}if(unit===\"%\"){const percentValue=value/100;return{value:percentValue,unit:\"em\",css:`${percentValue}em`};}if(unit===\"px\"||unit===\"em\"||unit===\"rem\"){return{value,unit,css:`${value}${unit}`};}return{value,unit:\"em\",css:`${value}em`};}function groupIntegerDigits(value,separator,minDigits){if(value.length<minDigits)return value;return value.replace(/\\B(?=(\\d{3})+(?!\\d))/g,separator);}function formatValue(value,decimals,useThousands,separator,decimalSeparator,minSeparatorDigits,prefix,suffix){const scaled=getScaledInteger(value,decimals);const minLength=decimals>0?decimals+1:1;const raw=scaled.toString().padStart(minLength,\"0\");const sign=value<0?\"-\":\"\";const integer=decimals>0?raw.slice(0,-decimals)||\"0\":raw;const fraction=decimals>0?raw.slice(-decimals):\"\";const formattedInteger=useThousands?groupIntegerDigits(integer,separator,minSeparatorDigits):integer;return`${sign}${prefix}${formattedInteger}${decimals>0?`${decimalSeparator}${fraction}`:\"\"}${suffix}`;}function getResolvedColor(useCustomColor,color,fallback){return useCustomColor&&color?color:fallback;}// Layout effects warn during server rendering, so fall back to useEffect there.\nconst useIsomorphicLayoutEffect=typeof window!==\"undefined\"?useLayoutEffect:useEffect;const INSTANT={duration:0};// Component\nexport default function OdometerCounter(props){const{from=0,to=1e3,decimals=0,thousandSeparator=true,separatorType=\",\",decimalSeparator=\".\",prefix=\"$\",suffix=\"+\",font,digitColor=\"#ffffff\",customPrefixColor=false,prefixColor=\"#ffffff\",customSuffixColor=false,suffixColor=\"#ffffff\",customSeparatorColor=false,separatorColor=\"#ffffff\",duration=2.5,stagger=.1,startDelay=0,slotRevealDelay=.15,randomSlots=12,gearDecay=2.5,easing=\"Mechanical\",trigger=\"Layer in View\",digitGap=0,direction=\"Up\",minSeparatorDigits=4,edgeMask=true,style}=props;const safeDecimals=clampInteger(decimals,0,5,0);const maxInput=Math.floor(MAX_SCALED_INTEGER/Math.pow(10,safeDecimals));const safeFrom=clampNumber(from,-maxInput,maxInput,0);const safeTo=clampNumber(to,-maxInput,maxInput,1e3);const safeDuration=clampNumber(duration,0,60,2.5);const safeStagger=clampNumber(stagger,0,5,.1);const safeStartDelay=clampNumber(startDelay,0,60,0);const safeSlotRevealDelay=clampNumber(slotRevealDelay,0,5,.15);const safeRandomSlots=clampInteger(randomSlots,1,60,12);const safeGearDecay=clampNumber(gearDecay,1,10,2.5);const safeDigitGap=clampNumber(digitGap,-100,200,0);const safeMinSeparatorDigits=clampInteger(minSeparatorDigits,1,20,4);const safeSeparatorType=separatorType===\".\"||separatorType===\"'\"||separatorType===\"space\"?separatorType:\",\";const safeDirection=direction===\"Down\"?\"Down\":\"Up\";const safeEasing=easing===\"Smooth\"||easing===\"Linear\"?easing:\"Mechanical\";const safeTrigger=trigger===\"On Appear\"?\"On Appear\":\"Layer in View\";const safePrefix=String(prefix??\"\");const safeSuffix=String(suffix??\"\");const safeDecimalSeparator=String(decimalSeparator??\".\");const safeDigitColor=digitColor||\"#ffffff\";const useThousands=thousandSeparator!==false;const useEdgeMask=edgeMask!==false;const separator=getSeparatorChar(safeSeparatorType);const isStatic=RenderTarget.current()===RenderTarget.canvas;const prefersReducedMotion=useReducedMotion();const[isTriggered,setIsTriggered]=useState(false);// Server HTML and the first client render contain only the finished\n// figure as text (\"100M+\", \"30D\", \"500K+\"). The digit reel is not in\n// that HTML, so a raw fetch cannot read the `from` value. After mount,\n// the reel overlays the figure. An off-screen counter then drops to\n// `from` and rolls up in view. One already on screen stays on the\n// finished figure. Reduced motion never mounts the reel.\nconst[armed,setArmed]=useState(false);const[clientReady,setClientReady]=useState(false);const containerRef=useRef(null);const isInView=useInView(containerRef,{once:true,amount:.2});useIsomorphicLayoutEffect(()=>{if(isStatic)return;const el=containerRef.current;if(!el)return;const rect=el.getBoundingClientRect();const onScreen=rect.width>0&&rect.height>0&&rect.bottom>0&&rect.top<window.innerHeight;if(!onScreen)setArmed(true);},[isStatic]);useEffect(()=>{setClientReady(true);},[]);useEffect(()=>{if(isStatic||!armed)return;startTransition(()=>setIsTriggered(false));if(safeTrigger!==\"On Appear\"&&!(safeTrigger===\"Layer in View\"&&isInView)){return;}const timer=setTimeout(()=>startTransition(()=>setIsTriggered(true)),safeStartDelay*1e3);return()=>clearTimeout(timer);},[isStatic,armed,safeTrigger,isInView,safeStartDelay,safeFrom,safeTo,safeDecimals]);const startRaw=getScaledInteger(safeFrom,safeDecimals).toString();const targetRaw=getScaledInteger(safeTo,safeDecimals).toString();const minRequiredLength=safeDecimals>0?safeDecimals+1:1;const maxLength=Math.max(startRaw.length,targetRaw.length,minRequiredLength);const startModel=getDigitModel(startRaw,maxLength,safeDecimals);const targetModel=getDigitModel(targetRaw,maxLength,safeDecimals);const isFinalPhase=isStatic||isTriggered||!armed;const currentSign=(isFinalPhase?safeTo:safeFrom)<0?\"-\":\"\";const displayPrefix=`${currentSign}${safePrefix}`;const prefixDisplayColor=getResolvedColor(customPrefixColor===true,prefixColor,safeDigitColor);const suffixDisplayColor=getResolvedColor(customSuffixColor===true,suffixColor,safeDigitColor);const separatorDisplayColor=getResolvedColor(customSeparatorColor===true,separatorColor,safeDigitColor);const lineHeight=getLineHeightParts(font?.lineHeight);const formattedValue=formatValue(safeTo,safeDecimals,useThousands,separator,safeDecimalSeparator,safeMinSeparatorDigits,safePrefix,safeSuffix);const showReel=clientReady&&!isStatic&&prefersReducedMotion!==true;const figureStyle=showReel?VISUALLY_HIDDEN:{...DEFAULT_FONT,...font||{},lineHeight:lineHeight.css,color:safeDigitColor,fontVariantNumeric:\"tabular-nums\",whiteSpace:\"nowrap\"};const textStyle={...DEFAULT_FONT,...font||{},lineHeight:1,color:safeDigitColor,fontVariantNumeric:\"tabular-nums\",textRendering:\"optimizeLegibility\",WebkitFontSmoothing:\"antialiased\"};const cellStyle={...textStyle,height:lineHeight.css,display:\"flex\",alignItems:\"center\",justifyContent:\"center\"};const maskStyle=useEdgeMask?{WebkitMaskImage:\"linear-gradient(to bottom, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 25%, rgba(0,0,0,1) 75%, rgba(0,0,0,0) 100%)\",maskImage:\"linear-gradient(to bottom, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 25%, rgba(0,0,0,1) 75%, rgba(0,0,0,0) 100%)\"}:{};const visibilityTransition=delay=>prefersReducedMotion?{duration:0}:{delay,duration:.3};const stripTransition=positionFromRight=>prefersReducedMotion?{duration:0}:safeEasing===\"Linear\"?{delay:positionFromRight*safeStagger,duration:safeDuration,type:\"tween\",ease:\"linear\"}:{delay:positionFromRight*safeStagger,duration:safeDuration,type:\"spring\",bounce:safeEasing===\"Smooth\"?0:.22};const resolvedTextAlign=String(font?.textAlign??style?.textAlign??\"center\").toLowerCase();const rootJustifyContent=resolvedTextAlign===\"right\"||resolvedTextAlign===\"end\"?\"flex-end\":resolvedTextAlign===\"left\"||resolvedTextAlign===\"start\"?\"flex-start\":\"center\";return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,style:{...style,position:\"relative\",display:\"flex\",justifyContent:rootJustifyContent,alignItems:\"center\",textAlign:resolvedTextAlign,height:lineHeight.css,overflow:\"hidden\",...maskStyle},children:[/*#__PURE__*/_jsx(\"span\",{style:figureStyle,role:\"status\",\"aria-live\":\"polite\",\"aria-atomic\":\"true\",children:formattedValue}),showReel&&/*#__PURE__*/_jsxs(\"div\",{\"aria-hidden\":true,style:{position:\"absolute\",inset:0,display:\"flex\",justifyContent:rootJustifyContent,alignItems:\"center\"},children:[displayPrefix&&/*#__PURE__*/_jsx(\"div\",{style:{...cellStyle,color:prefixDisplayColor,marginRight:safeDigitGap},children:displayPrefix}),Array.from({length:maxLength}).map((_,index)=>{const startDigit=Number(startModel.padded[index]);const targetDigit=Number(targetModel.padded[index]);const positionFromRight=maxLength-1-index;const integerPositionFromRight=positionFromRight-safeDecimals;const startActive=isDigitActive(startModel,index,positionFromRight,safeDecimals);const targetActive=isDigitActive(targetModel,index,positionFromRight,safeDecimals);const visible=isFinalPhase?targetActive:startActive;const growing=!startActive&&targetActive;const revealDelay=growing?Math.max(0,startModel.firstIndex-index)*safeSlotRevealDelay:0;const showDecimal=safeDecimals>0&&positionFromRight===safeDecimals;const startThousands=useThousands&&startActive&&integerPositionFromRight>0&&integerPositionFromRight%3===0&&startModel.integerDigits>=safeMinSeparatorDigits;const targetThousands=useThousands&&targetActive&&integerPositionFromRight>0&&integerPositionFromRight%3===0&&targetModel.integerDigits>=safeMinSeparatorDigits;const showThousands=isFinalPhase?targetThousands:startThousands;const possibleThousands=startThousands||targetThousands;if(isStatic){return targetActive?/*#__PURE__*/_jsxs(React.Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{style:{...cellStyle,marginRight:safeDigitGap},children:targetDigit}),showDecimal&&/*#__PURE__*/_jsx(\"div\",{style:{...cellStyle,color:separatorDisplayColor,marginRight:safeDigitGap},children:safeDecimalSeparator}),targetThousands&&/*#__PURE__*/_jsx(\"div\",{style:{...cellStyle,color:separatorDisplayColor,marginRight:safeDigitGap},children:separator})]},index):null;}const slots=Math.max(1,Math.round(safeRandomSlots/Math.pow(safeGearDecay,positionFromRight)));const intermediates=getIntermediates(startDigit,targetDigit,slots,index);const strip=safeDirection===\"Down\"?[...intermediates].reverse():intermediates;const startY=safeDirection===\"Down\"?`${-1*(strip.length-1)*lineHeight.value}${lineHeight.unit}`:`0${lineHeight.unit}`;const targetY=safeDirection===\"Down\"?`0${lineHeight.unit}`:`${-1*(strip.length-1)*lineHeight.value}${lineHeight.unit}`;return /*#__PURE__*/_jsxs(React.Fragment,{children:[/*#__PURE__*/_jsx(motion.div,{initial:false,animate:{width:visible?\"auto\":0,opacity:visible?1:0,marginRight:visible?safeDigitGap:0},transition:isTriggered?visibilityTransition(revealDelay):INSTANT,style:{overflow:\"hidden\",height:lineHeight.css,display:\"flex\",flexDirection:\"column\"},children:/*#__PURE__*/_jsx(motion.div,{initial:{y:isFinalPhase?targetY:startY},animate:{y:isFinalPhase?targetY:startY},transition:isTriggered?stripTransition(positionFromRight):INSTANT,style:{display:\"flex\",flexDirection:\"column\"},children:strip.map((digit,stripIndex)=>/*#__PURE__*/_jsx(\"div\",{style:cellStyle,children:digit},stripIndex))})}),showDecimal&&/*#__PURE__*/_jsx(motion.div,{initial:false,animate:{width:visible?\"auto\":0,opacity:visible?1:0,marginRight:visible?safeDigitGap:0},transition:isTriggered?visibilityTransition(revealDelay):INSTANT,style:{...cellStyle,color:separatorDisplayColor,overflow:\"hidden\"},children:safeDecimalSeparator}),possibleThousands&&/*#__PURE__*/_jsx(motion.div,{initial:false,animate:{width:showThousands?\"auto\":0,opacity:showThousands?1:0,marginRight:showThousands?safeDigitGap:0},transition:isTriggered?visibilityTransition(revealDelay):INSTANT,style:{...cellStyle,color:separatorDisplayColor,overflow:\"hidden\"},children:separator})]},index);}),safeSuffix&&/*#__PURE__*/_jsx(\"div\",{style:{...cellStyle,color:suffixDisplayColor},children:safeSuffix})]})]});}OdometerCounter.displayName=\"OdometerCounter\";// Property Controls\naddPropertyControls(OdometerCounter,{from:{type:ControlType.Number,title:\"From\",defaultValue:0,step:1,displayStepper:true},to:{type:ControlType.Number,title:\"To\",defaultValue:1e3,step:1,displayStepper:true},decimals:{type:ControlType.Number,title:\"Decimals\",defaultValue:0,min:0,max:5,step:1,displayStepper:true},thousandSeparator:{type:ControlType.Boolean,title:\"Thousands\",defaultValue:true},separatorType:{type:ControlType.Enum,title:\"Separator\",defaultValue:\",\",options:[\",\",\".\",\"'\",\"space\"],optionTitles:[\", Comma\",\". Dot\",\"' Apostrophe\",\"Thin Space\"],hidden:props=>!props.thousandSeparator},decimalSeparator:{type:ControlType.String,title:\"Decimal\",defaultValue:\".\",hidden:props=>Math.round(props.decimals||0)===0},prefix:{type:ControlType.String,title:\"Prefix\",defaultValue:\"$\"},suffix:{type:ControlType.String,title:\"Suffix\",defaultValue:\"+\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:48,variant:\"Bold\",lineHeight:\"1.2em\",letterSpacing:\"0px\"}},digitColor:{type:ControlType.Color,title:\"Digits\",defaultValue:\"#ffffff\"},customPrefixColor:{type:ControlType.Boolean,title:\"Prefix Color\",defaultValue:false},prefixColor:{type:ControlType.Color,title:\"Prefix\",defaultValue:\"#ffffff\",hidden:props=>!props.customPrefixColor},customSuffixColor:{type:ControlType.Boolean,title:\"Suffix Color\",defaultValue:false},suffixColor:{type:ControlType.Color,title:\"Suffix\",defaultValue:\"#ffffff\",hidden:props=>!props.customSuffixColor},customSeparatorColor:{type:ControlType.Boolean,title:\"Sep Color\",defaultValue:false},separatorColor:{type:ControlType.Color,title:\"Separator\",defaultValue:\"#ffffff\",hidden:props=>!props.customSeparatorColor},duration:{type:ControlType.Number,title:\"Duration\",defaultValue:2.5,min:0,max:6,step:.1,unit:\"s\",displayStepper:true},stagger:{type:ControlType.Number,title:\"Stagger\",defaultValue:.1,min:0,max:2,step:.05,unit:\"s\",displayStepper:true},startDelay:{type:ControlType.Number,title:\"Start Delay\",defaultValue:0,min:0,max:5,step:.1,unit:\"s\",displayStepper:true},slotRevealDelay:{type:ControlType.Number,title:\"Reveal Delay\",defaultValue:.15,min:0,max:1,step:.05,unit:\"s\",displayStepper:true},randomSlots:{type:ControlType.Number,title:\"Random Slots\",defaultValue:12,min:1,max:30,step:1,displayStepper:true},gearDecay:{type:ControlType.Number,title:\"Gear Decay\",defaultValue:2.5,min:1,max:5,step:.1,displayStepper:true},easing:{type:ControlType.Enum,title:\"Easing\",defaultValue:\"Mechanical\",options:[\"Smooth\",\"Mechanical\",\"Linear\"]},trigger:{type:ControlType.Enum,title:\"Trigger\",defaultValue:\"Layer in View\",options:[\"On Appear\",\"Layer in View\"]},digitGap:{type:ControlType.Number,title:\"Digit Gap\",defaultValue:0,min:-20,max:100,step:1,unit:\"px\",displayStepper:true},direction:{type:ControlType.Enum,title:\"Direction\",defaultValue:\"Up\",options:[\"Up\",\"Down\"],displaySegmentedControl:true},minSeparatorDigits:{type:ControlType.Number,title:\"Min Sep Digits\",defaultValue:4,min:4,max:10,step:1,displayStepper:true,description:\"Set to 5+ to disable separators for 4-digit numbers like years.\",hidden:props=>!props.thousandSeparator},edgeMask:{type:ControlType.Boolean,title:\"Edge Mask\",defaultValue:true}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"OdometerCounter\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./NumberAnimation.map"],"mappings":"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"}