{"version":3,"file":"StatsCounter.D0Pfdm7l.mjs","names":["useState","useId","useRef"],"sources":["https:/framerusercontent.com/modules/PQ2DhKj0HSrBuVBZAx1v/GPVNuFqaptMOuiw056fP/StatsCounter.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{useInView}from\"framer-motion\";import{useEffect,useId,useRef,useState}from\"react\";// --- Tokens del proyecto (heredan tema claro/oscuro) ------------------------\nconst TOKEN={surface2:\"var(--token-43fe8d8d-aea3-407b-a3a7-268364ad27d1, #E9EFEE)\",heading:\"var(--token-0e0e2237-ebf7-4f68-a575-4c7aefdab192, #083032)\",caption:\"var(--token-0e0e2237-ebf7-4f68-a575-4c7aefdab192, #0B3335)\",darkGreen:\"var(--token-eaa87a11-8eb6-4126-9e70-876eaa0c6521, #083032)\",fluor:\"var(--token-9f2d5a4d-65dd-4943-b342-ab6030dcc65f, #B2F100)\",onDark:\"var(--token-2b17fa8f-036a-45da-8ce1-70bd53ecc5f8, #FFFFFF)\",green:\"var(--token-e59c6b12-489d-4858-b99a-e0437652596c, #30C58F)\"};const BRAND_DISPLAY='\"ES Klarheit Kurrent Medium\", \"ES Klarheit Kurrent\", \"ES Klarheit Grotesk\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif';const BRAND_SANS='\"ES Klarheit Grotesk\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif';/** Descompone \"+39.5\" / \"6,000+\" / \"+97%\" en prefijo, número y sufijo,\n *  conservando decimales y separador de miles. */function parseStat(raw){const s=String(raw??\"\").trim();const m=s.match(/-?[\\d.,]*\\d/);if(!m)return{prefix:s,value:0,suffix:\"\",decimals:0,grouped:false,ok:false};const numStr=m[0];const prefix=s.slice(0,m.index??0);const suffix=s.slice((m.index??0)+numStr.length);const grouped=/,/.test(numStr);const plain=numStr.replace(/,/g,\"\");const dot=plain.indexOf(\".\");const decimals=dot===-1?0:plain.length-dot-1;const value=parseFloat(plain);return{prefix,value,suffix,decimals,grouped,ok:Number.isFinite(value)};}function format(n,decimals,grouped){return n.toLocaleString(\"en-US\",{minimumFractionDigits:decimals,maximumFractionDigits:decimals,useGrouping:grouped});}// Easing suave al final (easeOutQuad). Con easeOutCubic la cola se estiraba\n// tanto que en valores sin decimales (pocos pasos enteros) el ultimo salto se\n// quedaba ~260ms congelado y se percibia como un tiron.\nconst ease=t=>1-Math.pow(1-t,2);/** Pasos visibles minimos para que la cuenta no se vea a saltos. */const MIN_STEPS=40;/**\n * Decimales con los que ANIMAMOS (no los del valor final). Un valor entero y\n * pequeno como 10 solo puede mostrar 11 valores en 1.6s, o sea un cambio cada\n * ~150ms, mientras que 6.8 muestra 69 y cambia cada ~23ms: la primera parece ir\n * mucho mas lenta. Cuando salen pocos pasos anadimos un decimal solo durante la\n * animacion; al terminar se muestra siempre el formato real del valor.\n *//**\n * En valores como \"24/7\" o \"1st\" los digitos no son una cantidad, son parte de\n * una expresion: anadir un decimal daria \"17.3/7\" o \"0.8st\". Los detectamos por\n * el sufijo (empieza por letra o por \"/\") y los dejamos sin decimal extra.\n */const NOT_A_QUANTITY=RegExp(\"^[/\\\\p{L}]\",\"u\");function animDecimalsFor(value,decimals,suffix=\"\"){if(NOT_A_QUANTITY.test(suffix))return decimals;const steps=Math.abs(value)*Math.pow(10,decimals)+1;return steps>=MIN_STEPS?decimals:decimals+1;}function AnimatedNumber({raw,duration,delay,play,animatable,style,className}){const parsed=parseStat(raw);// Arranca en el valor final para que el render estatico y la hidratacion\n// coincidan. Ya en el cliente, el efecto de abajo lo baja a 0 al montar.\nconst[n,setN]=useState(parsed.value);useEffect(()=>{if(!parsed.ok)return;if(!play){// Si va a animarse, dejamos el numero a 0 desde que monta: asi el\n// reinicio ocurre al cargar la pagina (seccion fuera de vista) y no\n// como un retroceso brusco justo al entrar en vista.\nsetN(animatable?0:parsed.value);return;}let raf=0;let start=0;let cancelled=false;const tick=ts=>{if(cancelled)return;if(!start)start=ts;const elapsed=ts-start-delay*1e3;if(elapsed<0){raf=requestAnimationFrame(tick);return;}const p=Math.min(1,elapsed/(duration*1e3));setN(parsed.value*ease(p));if(p<1)raf=requestAnimationFrame(tick);};raf=requestAnimationFrame(tick);return()=>{cancelled=true;cancelAnimationFrame(raf);};// eslint-disable-next-line react-hooks/exhaustive-deps\n},[raw,play,animatable,duration,delay]);if(!parsed.ok)return /*#__PURE__*/_jsx(\"span\",{className:className,style:style,children:raw});// No usamos cifras tabulares: el cero tabular de ES Klarheit Kurrent sale\n// barrado. Para que el numero no baile mientras cuenta, reservamos el ancho\n// con un gemelo invisible del valor final en el que cada digito es un \"0\"\n// (el digito mas ancho de la fuente). Ambos comparten celda de grid, asi\n// que el ancho lo fija el gemelo y el valor animado nunca lo desborda.\n// El gemelo se dimensiona con el formato ANIMADO, que es el mas ancho de los\n// dos; el valor final, con menos decimales, siempre cabe.\nconst animDecimals=animDecimalsFor(parsed.value,parsed.decimals,parsed.suffix);const done=n===parsed.value;const shownDecimals=done?parsed.decimals:animDecimals;const widestText=parsed.prefix+format(parsed.value,animDecimals,parsed.grouped)+parsed.suffix;const sizerText=widestText.replace(/\\d/g,\"0\");return /*#__PURE__*/_jsxs(\"span\",{className:className,style:{...style,display:\"inline-grid\"},children:[/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{gridArea:\"1 / 1\",visibility:\"hidden\",pointerEvents:\"none\"},children:sizerText}),/*#__PURE__*/_jsxs(\"span\",{style:{gridArea:\"1 / 1\"},children:[parsed.prefix,format(n,shownDecimals,parsed.grouped),parsed.suffix]})]});}/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function StatsCounter(props){const{stats=[{value:\"+97%\",caption:\"Page load improvement\"},{value:\"+39.5\",caption:\"Faster than industry standard\"},{value:\"6,000+\",caption:\"Requests handled per second\"}],showTitle=false,title=\"Numbers to crow home about\",duration=1.6,stagger=.12,styleMode=\"cards\",compact=false,numberColor=TOKEN.heading,captionColor=TOKEN.caption,cardBg=TOKEN.surface2,panelBg=TOKEN.darkGreen,dividerColor=\"rgba(255, 255, 255, 0.12)\",titleColor=TOKEN.heading,radius=16,numberFont,captionFont,titleFont,style}=props;const isPanel=styleMode===\"panel\";const isCards=styleMode===\"cards\";const isStatic=useIsStaticRenderer();const uid=useId().replace(/[^a-zA-Z0-9]/g,\"\");const cls=`smk-stats-${uid}`;const ref=useRef(null);const inView=useInView(ref,{once:true,amount:.4});const reduce=typeof window!==\"undefined\"&&window.matchMedia?.(\"(prefers-reduced-motion: reduce)\").matches;const play=inView&&!isStatic&&!reduce;// --- Responsive por CONTENEDOR (no por viewport) -----------------------\n// Las media queries de un code component no se mapean a los breakpoints de\n// Framer, así que medimos el ancho real del componente con ResizeObserver.\nconst[w,setW]=useState(0);useEffect(()=>{const el=ref.current;if(!el||typeof ResizeObserver===\"undefined\")return;const ro=new ResizeObserver(entries=>{for(const e of entries)setW(e.contentRect.width);});ro.observe(el);setW(el.clientWidth);return()=>ro.disconnect();},[]);const n=Math.max(1,stats.length);const byWidth=w===0?3:w<560?1:w<940?2:3;let cols=Math.min(n,byWidth);if(n===4)cols=Math.min(cols,2)// 4 se reparte 2×2\n;cols=Math.max(1,cols);const gap=isPanel?1:w<560?14:w<940?20:24;const padX=isCards?compact?26:40:isPanel?34:0;const padY=isCards?compact?[24,22]:[40,34]:isPanel?[36,36]:[0,0];const cellW=w>0?(w-gap*(cols-1))/cols:0;// tamaño de número: primero un tope por breakpoint (para que baje de\n// tamaño en pantallas pequeñas), luego un ajuste que garantiza que SIEMPRE\n// cabe en la celda (evita el recorte).\n// Cuenta tambien el texto ANIMADO (puede llevar un decimal extra), para que\n// el ajuste de tamano no deje el numero recortado mientras cuenta.\nconst maxChars=stats.reduce((m,s)=>{const raw=String(s.value??\"\");const p=parseStat(raw);const anim=p.ok?p.prefix+format(p.value,animDecimalsFor(p.value,p.decimals,p.suffix),p.grouped)+p.suffix:raw;return Math.max(m,raw.length,anim.length);},1);const baseNum=(w===0?72:w<560?44:w<940?56:72)*(compact?.72:1);const fitNum=cellW>0?Math.max(28,Math.min(baseNum,(cellW-2*padX-4)/(maxChars*.6))):baseNum;const num=f=>({fontFamily:BRAND_DISPLAY,fontWeight:500,letterSpacing:\"-0.02em\",lineHeight:1,whiteSpace:\"nowrap\",...f,fontSize:fitNum});const capSize=w===0?17:w<560?15:w<940?16:17;const cap=f=>({fontFamily:BRAND_SANS,fontWeight:400,lineHeight:\"1.4em\",...f,fontSize:capSize});const titleSize=w===0?52:w<640?32:w<960?42:52;return /*#__PURE__*/_jsxs(\"div\",{ref:ref,className:`smk-stats ${cls}`,style:{position:\"relative\",display:\"flex\",flexDirection:\"column\",gap:showTitle?40:0,width:\"100%\",boxSizing:\"border-box\",...style},children:[showTitle?/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:BRAND_DISPLAY,fontSize:titleSize,fontWeight:500,letterSpacing:\"-0.02em\",lineHeight:1.05,color:titleColor,...titleFont},children:title}):null,/*#__PURE__*/_jsx(\"div\",{className:\"smk-stats-grid\",style:{display:\"grid\",gridTemplateColumns:`repeat(${cols}, minmax(0, 1fr))`,gap,...isPanel?{backgroundColor:dividerColor,borderRadius:radius,overflow:\"hidden\"}:{}},children:stats.map((s,i)=>/*#__PURE__*/_jsxs(\"div\",{className:\"smk-stat-card\",style:{display:\"flex\",flexDirection:\"column\",justifyContent:\"space-between\",gap:isPanel?24:compact?18:32,padding:`${padY[0]}px ${padX}px ${padY[1]}px ${padX}px`,borderRadius:isCards?radius:0,backgroundColor:isCards?cardBg:isPanel?panelBg:\"transparent\",minHeight:isCards?compact?140:220:isPanel?168:undefined,boxSizing:\"border-box\",overflow:\"hidden\"},children:[/*#__PURE__*/_jsx(AnimatedNumber,{className:\"smk-stat-number\",raw:s.value,duration:duration,delay:i*stagger,play:play,animatable:!isStatic&&!reduce,style:num({...numberFont,color:numberColor})}),/*#__PURE__*/_jsx(\"div\",{className:\"smk-stat-caption\",style:cap({...captionFont,color:captionColor}),children:s.caption})]},i))})]});}addPropertyControls(StatsCounter,{showTitle:{type:ControlType.Boolean,title:\"Show Title\",defaultValue:false},title:{type:ControlType.String,title:\"Title\",displayTextArea:true,defaultValue:\"Numbers to crow home about\",hidden:p=>!p.showTitle},stats:{type:ControlType.Array,title:\"Stats\",maxCount:6,control:{type:ControlType.Object,controls:{value:{type:ControlType.String,title:\"Value\",defaultValue:\"+00%\"},caption:{type:ControlType.String,title:\"Caption\",defaultValue:\"Caption\"}}},defaultValue:[{value:\"+97%\",caption:\"Page load improvement\"},{value:\"+39.5\",caption:\"Faster than industry standard\"},{value:\"6,000+\",caption:\"Requests handled per second\"}]},duration:{type:ControlType.Number,title:\"Duration\",defaultValue:1.6,min:.3,max:5,step:.1,unit:\"s\"},stagger:{type:ControlType.Number,title:\"Stagger\",defaultValue:.12,min:0,max:1,step:.02,unit:\"s\"},styleMode:{type:ControlType.Enum,title:\"Style\",options:[\"cards\",\"panel\",\"plain\"],optionTitles:[\"Cards\",\"Dark Panel\",\"Plain\"],defaultValue:\"cards\",displaySegmentedControl:true},compact:{type:ControlType.Boolean,title:\"Compact\",description:\"Cards m\\xe1s peque\\xf1as: menos padding, altura y n\\xfamero\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",hidden:p=>p.styleMode!==\"cards\"},cardBg:{type:ControlType.Color,title:\"Card BG\",defaultValue:TOKEN.surface2,hidden:p=>p.styleMode!==\"cards\"},panelBg:{type:ControlType.Color,title:\"Panel BG\",defaultValue:TOKEN.darkGreen,hidden:p=>p.styleMode!==\"panel\"},dividerColor:{type:ControlType.Color,title:\"Divider\",defaultValue:\"rgba(255, 255, 255, 0.12)\",hidden:p=>p.styleMode!==\"panel\"},radius:{type:ControlType.Number,title:\"Radius\",defaultValue:16,min:0,max:40,step:1,unit:\"px\",hidden:p=>p.styleMode===\"plain\"},numberColor:{type:ControlType.Color,title:\"Number\",defaultValue:TOKEN.heading},captionColor:{type:ControlType.Color,title:\"Caption\",defaultValue:TOKEN.caption},titleColor:{type:ControlType.Color,title:\"Title Color\",defaultValue:TOKEN.heading,hidden:p=>!p.showTitle},numberFont:{type:ControlType.Font,title:\"Number Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"72px\",variant:\"Medium\",letterSpacing:\"-0.02em\",lineHeight:\"1em\"}},captionFont:{type:ControlType.Font,title:\"Caption Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"17px\",variant:\"Regular\",letterSpacing:\"0em\",lineHeight:\"1.4em\"}},titleFont:{type:ControlType.Font,title:\"Title Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"40px\",variant:\"Medium\",letterSpacing:\"-0.02em\",lineHeight:\"1.1em\"},hidden:p=>!p.showTitle}});StatsCounter.displayName=\"Stats Counter\";\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"StatsCounter\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./StatsCounter.map"],"mappings":"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"}