{"version":3,"file":"StatCounter.B8a-mwil.mjs","names":["React.useRef","React.useState"],"sources":["https:/framerusercontent.com/modules/IrNUy2QTqss38OvGWrhy/4nrupEf3lWWBaGP5YXQF/PurpleGradientBackground.js","https:/framerusercontent.com/modules/ddiO0k92NubELtJly3rM/GJLxRhvafzRusu2uI5hS/StatCounter.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";export function withPlumGradient(Component){return props=>/*#__PURE__*/_jsx(Component,{...props,style:{...props.style,backgroundImage:\"radial-gradient(circle at 50% 44%, rgba(187,158,192,.17), rgba(187,158,192,0) 55%),\"+\"radial-gradient(130% 116% at 50% 42%, #5A2F68 0%, #3A1C45 44%, #23122B 76%, #160B1C 100%)\",backgroundColor:\"#160B1C\"}});}\nexport const __FramerMetadata__ = {\"exports\":{\"withPlumGradient\":{\"type\":\"reactHoc\",\"name\":\"withPlumGradient\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PurpleGradientBackground.map","// StatCounter.tsx\n// Single animated stat — number counts up when scrolled into view.\n// Use 5x in a row for the Coverage band: 28, 110+, 1,000+, 13M+, 26M+.\n//\n// Drop into Framer: Assets → Code → New File → paste.\n// Drag onto canvas, then duplicate and configure each instance via the\n// right-side property panel.\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";const TOKENS={fgOnDark:\"#FCF6F2\",fgOnDark2:\"rgba(252, 246, 242, 0.70)\",lavender:\"#BB9EC0\",fontSerif:\"'Noto Serif', Georgia, serif\",fontSans:\"Geist, ui-sans-serif, system-ui, sans-serif\"};export default function StatCounter(props){const{target=28,unit=\"\",suffix=\"\",formatComma=false,label=\"European jurisdictions\",delay=0,duration=1400,onDark=true,size=\"lg\"}=props;const numFontSize=size===\"lg\"?64:size===\"md\"?48:38;const labelFontSize=size===\"lg\"?14:size===\"md\"?12:11;const padY=size===\"lg\"?20:size===\"md\"?16:12;const ref=React.useRef(null);const[value,setValue]=React.useState(0);const[shown,setShown]=React.useState(false);React.useEffect(()=>{if(!ref.current)return;const reduce=typeof window!==\"undefined\"&&window.matchMedia&&window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;const obs=new IntersectionObserver(entries=>{entries.forEach(entry=>{if(!entry.isIntersecting)return;setShown(true);if(reduce){setValue(target);obs.disconnect();return;}const start=performance.now()+delay;const easeOut=t=>1-Math.pow(1-t,3);function tick(now){if(now<start){requestAnimationFrame(tick);return;}const t=Math.min(1,(now-start)/duration);setValue(Math.round(easeOut(t)*target));if(t<1)requestAnimationFrame(tick);}requestAnimationFrame(tick);obs.disconnect();});},{threshold:.35});obs.observe(ref.current);return()=>obs.disconnect();},[target,delay,duration]);const display=formatComma?value.toLocaleString(\"en-US\"):String(value);const fg=onDark?TOKENS.fgOnDark:\"#212121\";const fg2=onDark?TOKENS.fgOnDark2:\"#4A4A4A\";return /*#__PURE__*/_jsxs(\"div\",{ref:ref,style:{opacity:shown?1:0,transform:shown?\"none\":\"translateY(12px)\",transition:\"opacity 520ms cubic-bezier(0.2,0.8,0.2,1), transform 520ms cubic-bezier(0.2,0.8,0.2,1)\",transitionDelay:`${delay}ms`,display:\"flex\",flexDirection:\"column\",gap:8,padding:`${padY}px 0`,width:\"100%\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{fontFamily:TOKENS.fontSerif,fontWeight:400,fontSize:numFontSize,lineHeight:1.05,letterSpacing:\"-0.02em\",color:fg},children:[display,unit,suffix&&/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:TOKENS.fontSans,color:TOKENS.lavender,fontSize:\"0.55em\",verticalAlign:\"0.1em\",marginLeft:2},children:suffix})]}),/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:TOKENS.fontSans,fontSize:labelFontSize,fontWeight:400,color:fg2,letterSpacing:\"0\"},children:label})]});}StatCounter.defaultProps={target:28,unit:\"\",suffix:\"\",formatComma:false,label:\"European jurisdictions\",delay:0,duration:1400,onDark:true,size:\"lg\"};addPropertyControls(StatCounter,{target:{type:ControlType.Number,title:\"Target\",defaultValue:28,min:0,max:1e5,step:1},unit:{type:ControlType.String,title:\"Unit\",defaultValue:\"\",placeholder:\"M, K, etc.\"},suffix:{type:ControlType.String,title:\"Suffix\",defaultValue:\"\",placeholder:\"+\"},formatComma:{type:ControlType.Boolean,title:\"Comma format\",defaultValue:false},label:{type:ControlType.String,title:\"Label\",defaultValue:\"European jurisdictions\"},delay:{type:ControlType.Number,title:\"Delay (ms)\",defaultValue:0,min:0,max:2e3,step:40},duration:{type:ControlType.Number,title:\"Duration (ms)\",defaultValue:1400,min:400,max:4e3,step:100},onDark:{type:ControlType.Boolean,title:\"On dark bg\",defaultValue:true},size:{type:ControlType.Enum,title:\"Size\",defaultValue:\"lg\",options:[\"lg\",\"md\",\"sm\"],optionTitles:[\"Large (desktop)\",\"Medium (tablet)\",\"Small (mobile)\"]}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"StatCounter\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./StatCounter.map"],"mappings":"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"}