{"version":3,"file":"LoaderCounter.CLOYguyw.mjs","names":["React.useContext","React.useMemo","React.Fragment","React.forwardRef","useRef","React.useId","sharedStyle.className","sharedStyle1.className","sharedStyle2.className","sharedStyle3.className","className","RichText","Image1","sharedStyle.css","sharedStyle1.css","sharedStyle2.css","sharedStyle3.css","sharedStyle.fonts","sharedStyle1.fonts","sharedStyle2.fonts","sharedStyle3.fonts","React.useState","React.useRef","React.useMemo"],"sources":["https:/framerusercontent.com/modules/nQcB48QHgIDSt5vpbzT5/WiloSDyBBATNm72nXOZd/NT4LtIoB5.js","https:/framerusercontent.com/modules/hd8Neixtp3i1E260u91Y/TAhymPLyBMmO79YBFo4L/LoaderCounter.js"],"sourcesContent":["// Generated by Framer (4ecd144)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFontsFromSharedStyle,getLoadingLazyAtYPosition,Image as Image1,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle3 from\"https://framerusercontent.com/modules/rlzgZ57U7n53zXSCuZfx/J17agBWkgZlwjQ1FXfWj/fQtN7OehF.js\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/rTiPS60m7MwmucKny6EF/XtLKgmHlYMRGLOp4A5eB/VvpaDKjdf.js\";import*as sharedStyle2 from\"https://framerusercontent.com/modules/KtztJ44NcHDZvNvfSg05/KcPCmHn7zHAj4plHqmo9/XCIWiQ_iJ.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/hThpQJETtsOxRth4qFmb/IM3qBNatGBRiYXy397EW/zQ_zIzpzV.js\";const cycleOrder=[\"CTpK6OkX_\",\"qrUjqZqgz\",\"qQPDRNqK3\"];const serializationHash=\"framer-aFiCg\";const variantClassNames={CTpK6OkX_:\"framer-v-1gnmex9\",qQPDRNqK3:\"framer-v-25gq1g\",qrUjqZqgz:\"framer-v-18i25p2\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const ARaM1DadY=undefined;const pbJOVwJaR=undefined;const zHRouudCN=undefined;const Yaudjbf6L=undefined;const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const toResponsiveImage=value=>{if(typeof value===\"object\"&&value!==null&&typeof value.src===\"string\"){return value;}return typeof value===\"string\"?{src:value}:undefined;};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={\"Approach Card\":\"CTpK6OkX_\",Phone:\"qQPDRNqK3\",Tablet:\"qrUjqZqgz\"};const Variants=motion.create(React.Fragment);const getProps=({height,id,image,number,text,title,width,...props})=>{return{...props,ARaM1DadY:number??props.ARaM1DadY??\"01\",pbJOVwJaR:title??props.pbJOVwJaR??\"SEASON\",variant:humanReadableVariantMap[props.variant]??props.variant??\"CTpK6OkX_\",Yaudjbf6L:image??props.Yaudjbf6L??{alt:\"\",pixelHeight:750,pixelWidth:1125,src:\"https://framerusercontent.com/images/PQ5gcXuNbHsHt1mmT5taTaSzH4.png?width=1125&height=750\",srcSet:\"https://framerusercontent.com/images/PQ5gcXuNbHsHt1mmT5taTaSzH4.png?scale-down-to=512&width=1125&height=750 512w,https://framerusercontent.com/images/PQ5gcXuNbHsHt1mmT5taTaSzH4.png?scale-down-to=1024&width=1125&height=750 1024w,https://framerusercontent.com/images/PQ5gcXuNbHsHt1mmT5taTaSzH4.png?width=1125&height=750 1125w\"},zHRouudCN:text??props.zHRouudCN??\"Cook with the moment, not against it. Let each ingredient arrive with its own character intact.\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,ARaM1DadY,pbJOVwJaR,zHRouudCN,Yaudjbf6L,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"CTpK6OkX_\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className,sharedStyle2.className,sharedStyle3.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1gnmex9\",className,classNames),\"data-border\":true,\"data-framer-name\":\"Approach Card\",layoutDependency:layoutDependency,layoutId:\"CTpK6OkX_\",ref:refBinding,style:{\"--border-bottom-width\":\"0px\",\"--border-color\":\"rgba(33, 54, 44, 0.22)\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",...style},...addPropertyOverrides({qQPDRNqK3:{\"data-framer-name\":\"Phone\"},qrUjqZqgz:{\"data-framer-name\":\"Tablet\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h5,{className:\"framer-styles-preset-7ofeyb\",\"data-styles-preset\":\"zQ_zIzpzV\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-1lwpl3i, var(--token-24f68fa8-e7e8-4980-a83c-f287f3f1e746, rgb(16, 16, 16)))\"},children:\"01\"})}),className:\"framer-1amenln\",\"data-framer-name\":\"Approach / Principle 01 / Index\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"uHgVioFyQ\",style:{\"--extracted-1lwpl3i\":\"var(--token-24f68fa8-e7e8-4980-a83c-f287f3f1e746, rgb(16, 16, 16))\",\"--framer-paragraph-spacing\":\"0px\"},text:ARaM1DadY,verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-uhtnpc\",\"data-framer-name\":\"Text Wrapper\",layoutDependency:layoutDependency,layoutId:\"R1uOZe5PL\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-1dheate\",\"data-styles-preset\":\"VvpaDKjdf\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-a0htzi, var(--token-24f68fa8-e7e8-4980-a83c-f287f3f1e746, rgb(16, 16, 16)))\"},children:\"SEASON\"})}),className:\"framer-1uqlmps\",\"data-framer-name\":\"Approach / Principle 01 / Title\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"E2CtylWl2\",style:{\"--extracted-a0htzi\":\"var(--token-24f68fa8-e7e8-4980-a83c-f287f3f1e746, rgb(16, 16, 16))\",\"--framer-paragraph-spacing\":\"0px\"},text:pbJOVwJaR,verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({qQPDRNqK3:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-1ykvcs0\",\"data-styles-preset\":\"XCIWiQ_iJ\",dir:\"auto\",style:{\"--framer-text-alignment\":\"start\",\"--framer-text-color\":\"var(--extracted-a0htzi, var(--token-24f68fa8-e7e8-4980-a83c-f287f3f1e746, rgb(16, 16, 16)))\"},children:\"SEASON\"})})}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-579xby\",\"data-styles-preset\":\"fQtN7OehF\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-24f68fa8-e7e8-4980-a83c-f287f3f1e746, rgb(16, 16, 16)))\"},children:\"Cook with the moment, not against it. Let each ingredient arrive with its own character intact.\"})}),className:\"framer-7oiqjr\",\"data-framer-name\":\"Approach / Principle 01 / Body\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"uTfGTqlVB\",style:{\"--extracted-r6o4lv\":\"var(--token-24f68fa8-e7e8-4980-a83c-f287f3f1e746, rgb(16, 16, 16))\",\"--framer-paragraph-spacing\":\"0px\",opacity:.68},text:zHRouudCN,verticalAlignment:\"top\",withExternalLayout:true})]}),/*#__PURE__*/_jsx(Image1,{background:{alt:\"\",fit:\"fill\",loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+24),pixelHeight:750,pixelWidth:1125,sizes:`min(max((${componentViewport?.width||\"100vw\"} - 24px) / 3, 1px), 331px)`,...toResponsiveImage(Yaudjbf6L)},className:\"framer-1hs99is\",\"data-framer-name\":\"Approach / Principle 01 / Image\",layoutDependency:layoutDependency,layoutId:\"MBGtRBTyk\",...addPropertyOverrides({qQPDRNqK3:{background:{alt:\"\",fit:\"fill\",loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+24+(((componentViewport?.height||200)-48-446.5)/2+182.5+64)),pixelHeight:750,pixelWidth:1125,sizes:`min(${componentViewport?.width||\"100vw\"}, 331px)`,...toResponsiveImage(Yaudjbf6L)}}},baseVariant,gestureVariant)})]})})})});});const css=[\".framer-aFiCg.framer-zf5k3b, .framer-aFiCg .framer-zf5k3b { display: block; }\",\".framer-aFiCg.framer-1gnmex9 { align-content: flex-start; align-items: flex-start; display: flex; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; overflow: var(--overflow-clip-fallback, clip); padding: 24px 0px 24px 0px; position: relative; width: 1140px; }\",\".framer-aFiCg .framer-1amenln { flex: 1 0 0px; height: auto; max-width: 300px; position: relative; white-space: pre-wrap; width: 1px; word-break: break-word; word-wrap: break-word; }\",\".framer-aFiCg .framer-uhtnpc { align-content: flex-start; align-items: flex-start; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 24px; height: min-content; justify-content: flex-start; max-width: 674px; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-aFiCg .framer-1uqlmps { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-aFiCg .framer-7oiqjr { flex: none; height: auto; max-width: 360px; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-aFiCg .framer-1hs99is { aspect-ratio: 1.655 / 1; flex: 1 0 0px; gap: 0px; height: auto; max-width: 331px; overflow: var(--overflow-clip-fallback, clip); position: relative; width: 1px; will-change: var(--framer-will-change-filter-override, filter); }\",\".framer-aFiCg.framer-v-18i25p2.framer-1gnmex9 { width: 768px; }\",\".framer-aFiCg.framer-v-18i25p2 .framer-1amenln { max-width: 154px; }\",\".framer-aFiCg.framer-v-18i25p2 .framer-uhtnpc { padding: 0px 20px 0px 0px; }\",\".framer-aFiCg.framer-v-25gq1g.framer-1gnmex9 { flex-direction: column; gap: 32px; justify-content: center; width: 350px; }\",\".framer-aFiCg.framer-v-25gq1g .framer-1amenln { flex: none; max-width: 154px; width: 100%; }\",\".framer-aFiCg.framer-v-25gq1g .framer-uhtnpc { flex: none; padding: 0px 20px 0px 0px; width: 100%; }\",\".framer-aFiCg.framer-v-25gq1g .framer-1hs99is { flex: none; width: 100%; }\",...sharedStyle.css,...sharedStyle1.css,...sharedStyle2.css,...sharedStyle3.css,'.framer-aFiCg[data-border=\"true\"]::after, .framer-aFiCg [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; corner-shape: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 248\n * @framerIntrinsicWidth 1140\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"qrUjqZqgz\":{\"layout\":[\"fixed\",\"auto\"]},\"qQPDRNqK3\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"ARaM1DadY\":\"number\",\"pbJOVwJaR\":\"title\",\"zHRouudCN\":\"text\",\"Yaudjbf6L\":\"image\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerNT4LtIoB5=withCSS(Component,css,\"framer-aFiCg\");export default FramerNT4LtIoB5;FramerNT4LtIoB5.displayName=\"Approach Card\";FramerNT4LtIoB5.defaultProps={height:248,width:1140};addPropertyControls(FramerNT4LtIoB5,{variant:{options:[\"CTpK6OkX_\",\"qrUjqZqgz\",\"qQPDRNqK3\"],optionTitles:[\"Approach Card\",\"Tablet\",\"Phone\"],title:\"Variant\",type:ControlType.Enum},ARaM1DadY:{defaultValue:\"01\",displayTextArea:false,title:\"Number\",type:ControlType.String},onARaM1DadYChange:{changes:\"ARaM1DadY\",type:ControlType.ChangeHandler},pbJOVwJaR:{defaultValue:\"SEASON\",displayTextArea:false,title:\"Title\",type:ControlType.String},onpbJOVwJaRChange:{changes:\"pbJOVwJaR\",type:ControlType.ChangeHandler},zHRouudCN:{defaultValue:\"Cook with the moment, not against it. Let each ingredient arrive with its own character intact.\",displayTextArea:false,title:\"Text\",type:ControlType.String},onzHRouudCNChange:{changes:\"zHRouudCN\",type:ControlType.ChangeHandler},Yaudjbf6L:{__defaultAssetReference:\"data:framer/asset-reference,PQ5gcXuNbHsHt1mmT5taTaSzH4.png?width=1125&height=750\",__vekterDefault:{alt:\"\",assetReference:\"data:framer/asset-reference,PQ5gcXuNbHsHt1mmT5taTaSzH4.png?width=1125&height=750\"},title:\"Image\",type:ControlType.ResponsiveImage}});addFonts(FramerNT4LtIoB5,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts),...getFontsFromSharedStyle(sharedStyle2.fonts),...getFontsFromSharedStyle(sharedStyle3.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerNT4LtIoB5\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerVariables\":\"{\\\"ARaM1DadY\\\":\\\"number\\\",\\\"pbJOVwJaR\\\":\\\"title\\\",\\\"zHRouudCN\\\":\\\"text\\\",\\\"Yaudjbf6L\\\":\\\"image\\\"}\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"qrUjqZqgz\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"qQPDRNqK3\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerIntrinsicHeight\":\"248\",\"framerContractVersion\":\"1\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicWidth\":\"1140\",\"framerColorSyntax\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./NT4LtIoB5.map","/**\n * @framerDisableUnlink\n * @framerDisplayName \"Loader Counter\"\n *//**\n * Loader Counter v1.0.0\n * Professional animated number counter with authentic loader and linear modes.\n *\n * ✨ Features:\n * • Authentic loader animation with realistic pauses and speed variations\n * • Linear counting mode for smooth, consistent animations\n * • Smart number formatting with thousands separators and abbreviations (K/M/B)\n * • Color transitions that interpolate smoothly during animation\n * • Intersection Observer for viewport-triggered animations\n * • Full accessibility support with ARIA labels and announcements\n * • Respects user motion preferences automatically\n * • High-performance RAF-based animation loop\n *\n * 🎨 Customization:\n * • Native Framer font controls with full typography support\n * • Dynamic color transitions between start and end colors\n * • Flexible prefix/suffix system with independent colors\n * • Auto-duration calculation based on number range\n * • Customizable animation delay and replay options\n *\n * 🚀 Perfect for:\n * • Loading screens with realistic progress indicators\n * • Statistics and metrics displays\n * • Achievement counters and milestones\n * • Dynamic data visualizations\n * • Marketing landing pages with animated numbers\n *\n * © 2025 Amr Rashed - All rights reserved\n * Author: Amr Rashed (https://amrrashed.com)\n * Documentation: https://loadercounter.framer.website/demo\n * Support: hello@amrrashed.com\n * License: Commercial use allowed with attribution\n */import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";// Disable unlinking to protect the component\nexport const framerDisableUnlinking=true;/* ===== UTILITIES ===== */const clamp=(value,min=0,max=1)=>Math.max(min,Math.min(max,value));// Color interpolation with support for hex and rgb\nconst parseColor=color=>{// Handle hex colors\nif(color.startsWith(\"#\")){const hex=color.slice(1);const fullHex=hex.length===3?hex.split(\"\").map(c=>c+c).join(\"\"):hex;const bigint=parseInt(fullHex,16);return{r:bigint>>16&255,g:bigint>>8&255,b:bigint&255};}// Handle rgb/rgba colors\nconst match=color.match(/rgba?\\s*\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*,\\s*([\\d.]+)/);if(match){return{r:parseInt(match[1]),g:parseInt(match[2]),b:parseInt(match[3])};}// Default to black\nreturn{r:0,g:0,b:0};};const interpolateColor=(start,end,progress)=>{const from=parseColor(start);const to=parseColor(end);const r=Math.round(from.r+(to.r-from.r)*progress);const g=Math.round(from.g+(to.g-from.g)*progress);const b=Math.round(from.b+(to.b-from.b)*progress);return`rgb(${r}, ${g}, ${b})`;};// Loader-specific easing - more dramatic speed changes\nconst loaderEase=t=>{// Very fast start (0-25%) - shoots up quickly\nif(t<.25){return 3.2*t*t;}// Steady middle (25-65%) - consistent progress\nif(t<.65){const adjusted=(t-.25)/.4;return .2+adjusted*.5;}// Slow section (65-88%) - crawling\nif(t<.88){const adjusted=(t-.65)/.23;return .7+Math.pow(adjusted,1.5)*.18;}// Extremely slow finish (88-100%) - classic loader struggle\nconst final=(t-.88)/.12;return .88+Math.pow(final,4)*.12;};// Generate random micro-pauses for authentic loader feel\nfunction generateLoaderPauses(){const pauses=[];// Add 3-5 noticeable pauses\nconst pauseCount=3+Math.floor(Math.random()*3);for(let i=0;i<pauseCount;i++){// Pauses occur between 15-85% progress\nconst center=.15+Math.random()*.7;// Longer pause duration (100-300ms relative to total duration)\nconst width=.04+Math.random()*.08;pauses.push({start:Math.max(.15,center-width/2),end:Math.min(.85,center+width/2)});}// Add one longer pause around 75-85% (the classic \"almost there\" pause)\npauses.push({start:.75+Math.random()*.05,end:.82+Math.random()*.03});return pauses;}/* ===== NUMBER FORMATTING ===== */function formatNumber(value,options){const{thousands,abbreviate,locale,decimals}=options;if(abbreviate){const absValue=Math.abs(value);let divisor=1;let suffix=\"\";let precision=0;// Determine scale based on current value, not range\nif(absValue>=1e9){divisor=1e9;suffix=\"B\";// For billions, show 2 decimals if under 10B, 1 decimal if under 100B\nif(absValue<1e10)precision=2;else if(absValue<1e11)precision=1;}else if(absValue>=1e6){divisor=1e6;suffix=\"M\";// For millions, show 2 decimals if under 10M, 1 decimal if under 100M\nif(absValue<1e7)precision=2;else if(absValue<1e8)precision=1;}else if(absValue>=1e3){divisor=1e3;suffix=\"K\";// For thousands, show 2 decimals if under 10K, 1 decimal if under 100K\nif(absValue<1e4)precision=2;else if(absValue<1e5)precision=1;}// If no abbreviation needed, show the normal number\nif(divisor===1){const fixedValue=Number(value.toFixed(decimals));if(thousands){try{return new Intl.NumberFormat(locale,{minimumFractionDigits:decimals,maximumFractionDigits:decimals,useGrouping:true}).format(fixedValue);}catch{return fixedValue.toString();}}return fixedValue.toString();}// Apply abbreviation with appropriate precision\nconst scaled=value/divisor;const factor=Math.pow(10,precision);const rounded=Math.round(scaled*factor)/factor;// Format with appropriate decimal places\nlet text;if(precision===0||Number.isInteger(rounded)){text=rounded.toFixed(0);}else{text=rounded.toFixed(precision).replace(/\\.?0+$/,\"\");}return(value<0?\"-\":\"\")+text+suffix;}const fixedValue=Number(value.toFixed(decimals));if(thousands){try{return new Intl.NumberFormat(locale,{minimumFractionDigits:decimals,maximumFractionDigits:decimals,useGrouping:true}).format(fixedValue);}catch{return new Intl.NumberFormat(\"en-US\",{minimumFractionDigits:decimals,maximumFractionDigits:decimals,useGrouping:true}).format(fixedValue);}}return fixedValue.toString();}function getDecimalPlaces(num){const str=String(num);const idx=str.indexOf(\".\");return idx>=0?Math.min(3,str.length-idx-1):0;}/* ===== ANIMATION HOOK ===== */function useCounterAnimation(config){const[value,setValue]=React.useState(config.from);const[progress,setProgress]=React.useState(0);const[isVisible,setIsVisible]=React.useState(!config.startOnView);const[isAnimating,setIsAnimating]=React.useState(false);const containerRef=React.useRef(null);const animationRef=React.useRef();const pausesRef=React.useRef([]);const lastPausedRef=React.useRef(false);// Visibility observer\nReact.useEffect(()=>{if(!config.startOnView){setIsVisible(true);return;}const observer=new IntersectionObserver(([entry])=>{if(entry.isIntersecting){setIsVisible(true);}else if(config.replay){setIsVisible(false);setValue(config.from);setProgress(0);setIsAnimating(false);}},{threshold:.1});if(containerRef.current){observer.observe(containerRef.current);}return()=>observer.disconnect();},[config.startOnView,config.replay,config.from]);// Prefer reduced motion support\nReact.useEffect(()=>{const prefersReducedMotion=window.matchMedia?.(\"(prefers-reduced-motion: reduce)\")?.matches;if(prefersReducedMotion){// Skip animation for users who prefer reduced motion\nsetValue(config.to);setProgress(1);return;}},[config.to]);// Animation loop\nReact.useEffect(()=>{if(!isVisible)return;// Check for reduced motion preference\nconst prefersReducedMotion=window.matchMedia?.(\"(prefers-reduced-motion: reduce)\")?.matches;if(prefersReducedMotion){setValue(config.to);setProgress(1);return;}// Cancel any existing animation\nif(animationRef.current){cancelAnimationFrame(animationRef.current);}// Generate pauses for loader mode\npausesRef.current=config.isLoader?generateLoaderPauses():[];lastPausedRef.current=false;setIsAnimating(true);const startTime=performance.now()+config.delay*1e3;const duration=config.duration*1e3;const range=config.to-config.from;const animate=()=>{const now=performance.now();const elapsed=now-startTime;// Handle delay\nif(elapsed<0){animationRef.current=requestAnimationFrame(animate);return;}let rawProgress=clamp(elapsed/duration);// For loader mode, apply pauses\nif(config.isLoader&&rawProgress<.95){const isPaused=pausesRef.current.some(p=>rawProgress>=p.start&&rawProgress<=p.end);if(isPaused){if(!lastPausedRef.current){// Just entered a pause, hold current value\nlastPausedRef.current=true;}// Don't update during pause\nanimationRef.current=requestAnimationFrame(animate);return;}else{lastPausedRef.current=false;}}// Apply easing\nconst easedProgress=config.isLoader?loaderEase(rawProgress):rawProgress;// Update values\nsetProgress(easedProgress);setValue(config.from+range*easedProgress);if(rawProgress<1){animationRef.current=requestAnimationFrame(animate);}else{// Ensure we end exactly at the target\nsetProgress(1);setValue(config.to);setIsAnimating(false);}};animationRef.current=requestAnimationFrame(animate);return()=>{if(animationRef.current){cancelAnimationFrame(animationRef.current);}setIsAnimating(false);};},[isVisible,config.from,config.to,config.duration,config.delay,config.isLoader]);return{containerRef,value,progress,isAnimating};}/* ===== MAIN COMPONENT ===== */export default function LoaderCounter(props){const{// Animation\nisLoader=true,from=0,to=100,duration=false,customDuration=3.2,delay=0,startOnView=true,replay=true,// Formatting\nformatThousands=false,abbreviate=false,locale=false,customLocale=\"en-US\",// Styling\nfont={fontFamily:\"Inter\",fontWeight:600,fontSize:64,letterSpacing:0,lineHeight:1.1,textAlign:\"left\"},color=\"#000000\",// Color transition\ncolorTransition=false,startColor=\"#3b82f6\",endColor=\"#ef4444\",// Affixes\nprefix=\"\",prefixColor=\"#000000\",suffix=\"\",suffixColor=\"#000000\",gap=8}=props;// Calculate auto duration based on range (longer for loader effect)\nconst calculatedDuration=React.useMemo(()=>{if(!duration){const range=Math.abs(to-from);// Loader mode: 3-4.5s for authentic loading feel\nif(isLoader){const seconds=3+Math.log10(Math.max(1,range))*.5;return clamp(seconds,3,4.5);}else{// Linear mode: faster 1-2.5s\nconst seconds=1+Math.log10(Math.max(1,range))*.4;return clamp(seconds,1,2.5);}}return customDuration;},[duration,customDuration,from,to,isLoader]);// Resolve locale\nconst resolvedLocale=React.useMemo(()=>{if(!formatThousands)return\"en-US\";if(!locale&&typeof window!==\"undefined\"){return window.navigator?.language||\"en-US\";}return customLocale||\"en-US\";},[locale,customLocale,formatThousands]);// Calculate decimal places\nconst decimals=React.useMemo(()=>{return Math.max(getDecimalPlaces(from),getDecimalPlaces(to));},[from,to]);// Use animation hook\nconst{containerRef,value,progress,isAnimating}=useCounterAnimation({from,to,duration:calculatedDuration,delay,isLoader,startOnView,replay});// Format current value\nconst displayValue=React.useMemo(()=>{return formatNumber(value,{thousands:formatThousands,abbreviate,locale:resolvedLocale,decimals,from,to});},[value,formatThousands,abbreviate,resolvedLocale,decimals,from,to]);// Calculate interpolated color\nconst currentColor=React.useMemo(()=>{if(colorTransition&&startColor&&endColor){return interpolateColor(startColor,endColor,progress);}return color;},[colorTransition,startColor,endColor,progress,color]);// Build font styles\nconst fontStyles=React.useMemo(()=>({fontFamily:font?.fontFamily||\"Inter\",fontWeight:font?.fontWeight||600,fontSize:font?.fontSize||64,letterSpacing:font?.letterSpacing||0,lineHeight:font?.lineHeight||1.1,textAlign:font?.textAlign||\"left\"}),[font]);return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,role:\"status\",\"aria-live\":\"polite\",\"aria-label\":`Counter: ${displayValue}`,style:{width:\"100%\",display:\"flex\",justifyContent:fontStyles.textAlign===\"center\"?\"center\":fontStyles.textAlign===\"right\"?\"flex-end\":\"flex-start\",...fontStyles},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"inline-flex\",alignItems:\"baseline\",gap:prefix||suffix?`${gap}px`:\"0px\",fontVariantNumeric:\"tabular-nums\",// Prevent text selection during animation for cleaner UX\nuserSelect:isAnimating?\"none\":\"auto\",// Smooth color transitions\ntransition:colorTransition?\"color 0.3s ease\":undefined},children:[prefix&&/*#__PURE__*/_jsx(\"span\",{style:{color:prefixColor},\"aria-hidden\":\"true\",children:prefix}),/*#__PURE__*/_jsx(\"span\",{style:{color:currentColor},\"data-value\":value,\"data-progress\":progress,children:displayValue}),suffix&&/*#__PURE__*/_jsx(\"span\",{style:{color:suffixColor},\"aria-hidden\":\"true\",children:suffix})]}),progress===1&&/*#__PURE__*/_jsxs(\"span\",{style:{position:\"absolute\",width:\"1px\",height:\"1px\",padding:\"0\",margin:\"-1px\",overflow:\"hidden\",clip:\"rect(0, 0, 0, 0)\",whiteSpace:\"nowrap\",borderWidth:\"0\"},\"aria-live\":\"assertive\",children:[\"Counter complete: \",prefix,displayValue,suffix]})]});}/* ===== DEFAULT PROPS ===== */LoaderCounter.defaultProps={font:{fontFamily:\"Inter\",fontWeight:600,fontSize:64,letterSpacing:0,lineHeight:1.1,textAlign:\"left\"}};/* ===== PROPERTY CONTROLS ===== */addPropertyControls(LoaderCounter,{isLoader:{type:ControlType.Boolean,title:\"Style\",defaultValue:true,enabledTitle:\"Loader\",disabledTitle:\"Linear\"},from:{type:ControlType.Number,title:\"From\",defaultValue:0,displayStepper:true},to:{type:ControlType.Number,title:\"To\",defaultValue:100,displayStepper:true},duration:{type:ControlType.Boolean,title:\"Duration\",defaultValue:false,enabledTitle:\"Custom\",disabledTitle:\"Auto\"},customDuration:{type:ControlType.Number,title:\"Seconds\",defaultValue:3.2,min:.5,max:10,step:.1,hidden:props=>!props.duration},delay:{type:ControlType.Number,title:\"Delay (s)\",defaultValue:0,min:0,max:5,step:.1,displayStepper:true},abbreviate:{type:ControlType.Boolean,title:\"Shorten\",defaultValue:false,enabledTitle:\"K/M/B\",disabledTitle:\"Full\"},formatThousands:{type:ControlType.Boolean,title:\"Format\",defaultValue:false,enabledTitle:\"1,000\",disabledTitle:\"1000\"},locale:{type:ControlType.Boolean,title:\"Locale\",defaultValue:false,enabledTitle:\"Custom\",disabledTitle:\"Auto\",hidden:props=>!props.formatThousands},customLocale:{type:ControlType.String,title:\"Code\",defaultValue:\"en-US\",placeholder:\"en-US, nl-NL, etc\",hidden:props=>!props.formatThousands||!props.locale},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",displayFontSize:true,displayTextAlignment:true},colorTransition:{type:ControlType.Boolean,title:\"Color fade\",defaultValue:false},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#000000\",hidden:props=>props.colorTransition},startColor:{type:ControlType.Color,title:\"From color\",defaultValue:\"#3b82f6\",hidden:props=>!props.colorTransition},endColor:{type:ControlType.Color,title:\"To color\",defaultValue:\"#ef4444\",hidden:props=>!props.colorTransition},prefix:{type:ControlType.String,title:\"Prefix\",defaultValue:\"\",placeholder:\"$, €, etc\"},prefixColor:{type:ControlType.Color,title:\"Prefix color\",defaultValue:\"#000000\",hidden:props=>!props.prefix},suffix:{type:ControlType.String,title:\"Suffix\",defaultValue:\"\",placeholder:\"%, pts, etc\"},suffixColor:{type:ControlType.Color,title:\"Suffix color\",defaultValue:\"#000000\",hidden:props=>!props.suffix},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:8,min:0,max:32,step:1,hidden:props=>!props.prefix&&!props.suffix},startOnView:{type:ControlType.Boolean,title:\"On view\",defaultValue:true},replay:{type:ControlType.Boolean,title:\"Replay\",defaultValue:true,hidden:props=>!props.startOnView,description:\"[Built by Amr Rashed](https://amrrashed.com)\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"LoaderCounter\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"framerDisableUnlinking\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LoaderCounter.map"],"mappings":"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"}