{"version":3,"file":"TelemetryCounter.CIvx1Caq.mjs","names":["useState","useRef"],"sources":["https:/framerusercontent.com/modules/7DrNVmRU9A0TjzOv8WPH/INuKHUBMMqcK7vH51eKu/TelemetryCounter.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";/**\n * GRANDSTAND — Telemetry Counter\n * Counts up to a value when scrolled into view. Tabular mono digits.\n */export default function TelemetryCounter(props){const{value,decimals,prefix,suffix,duration,fontSize,color,weight,grouping}=props;const isPreview=RenderTarget.current()===RenderTarget.preview;const[display,setDisplay]=useState(isPreview?0:value);const ref=useRef(null);const started=useRef(false);useEffect(()=>{if(!isPreview){setDisplay(value);return;}const node=ref.current;if(!node)return;const observer=new IntersectionObserver(entries=>{entries.forEach(entry=>{if(!entry.isIntersecting||started.current)return;started.current=true;const start=performance.now();const tick=now=>{const t=Math.min((now-start)/(duration*1e3),1);const eased=1-Math.pow(1-t,3);setDisplay(value*eased);if(t<1)requestAnimationFrame(tick);};requestAnimationFrame(tick);});},{threshold:.4});observer.observe(node);return()=>observer.disconnect();},[isPreview,value,duration]);const formatted=prefix+display.toLocaleString(\"en-US\",{minimumFractionDigits:decimals,maximumFractionDigits:decimals,useGrouping:grouping})+suffix;return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{fontFamily:\"'JetBrains Mono', 'Courier New', monospace\",fontWeight:weight,fontSize,lineHeight:1.1,color,fontVariantNumeric:\"tabular-nums\",whiteSpace:\"nowrap\"},children:formatted});}TelemetryCounter.defaultProps={value:372,decimals:0,prefix:\"\",suffix:\"\",duration:1.6,fontSize:44,weight:500,color:\"#F4F2ED\",grouping:true};addPropertyControls(TelemetryCounter,{value:{type:ControlType.Number,title:\"Value\",defaultValue:372,min:0,max:1e6,step:1,displayStepper:false},decimals:{type:ControlType.Number,title:\"Decimals\",defaultValue:0,min:0,max:2,step:1},prefix:{type:ControlType.String,title:\"Prefix\",defaultValue:\"\"},suffix:{type:ControlType.String,title:\"Suffix\",defaultValue:\"\"},duration:{type:ControlType.Number,title:\"Duration\",defaultValue:1.6,min:.2,max:6,step:.1,unit:\"s\"},fontSize:{type:ControlType.Number,title:\"Size\",defaultValue:44,min:10,max:200,step:1},weight:{type:ControlType.Enum,title:\"Weight\",options:[400,500,600,700],optionTitles:[\"400\",\"500\",\"600\",\"700\"],defaultValue:500},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#F4F2ED\"},grouping:{type:ControlType.Boolean,title:\"Thousands sep.\",defaultValue:true}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TelemetryCounter\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TelemetryCounter.map"],"mappings":"+LAGG,SAAwB,EAAiB,EAAM,CAAC,GAAK,CAAC,QAAM,WAAS,SAAO,SAAO,WAAS,WAAS,QAAM,SAAO,YAAU,EAAY,EAAU,EAAa,QAAQ,IAAI,EAAa,QAAa,CAAC,EAAQ,GAAYA,EAAS,EAAU,EAAE,CAAK,EAAQ,EAAIC,EAAO,IAAI,EAAQ,EAAQA,EAAO,EAAK,EAAE,MAAc,CAAC,GAAG,CAAC,EAAU,CAAC,EAAW,CAAK,EAAE,MAAO,CAAC,IAAM,EAAK,EAAI,QAAQ,GAAG,CAAC,EAAK,OAAO,IAAM,EAAS,IAAI,qBAAqB,GAAS,CAAC,EAAQ,QAAQ,GAAO,CAAC,GAAG,CAAC,EAAM,gBAAgB,EAAQ,QAAQ,OAAO,EAAQ,QAAQ,GAAK,IAAM,EAAM,YAAY,IAAI,EAAQ,EAAK,GAAK,CAAC,IAAM,EAAE,KAAK,KAAK,EAAI,IAAQ,EAAS,KAAK,CAAC,EAAQ,EAAM,GAAW,EAAE,IAAE,EAAG,EAAW,EAAM,CAAK,EAAK,EAAE,GAAE,sBAAsB,CAAI,CAAE,EAAE,sBAAsB,CAAI,CAAE,CAAC,CAAE,EAAE,CAAC,UAAU,EAAE,CAAC,EAAyB,OAAvB,EAAS,QAAQ,CAAI,MAAY,EAAS,WAAW,CAAE,EAAE,CAAC,EAAU,EAAM,CAAQ,CAAC,EAAE,IAAM,EAAU,EAAO,EAAQ,eAAe,QAAQ,CAAC,sBAAsB,EAAS,sBAAsB,EAAS,YAAY,CAAQ,CAAC,EAAE,EAAO,OAAoB,EAAK,MAAM,CAAK,MAAI,MAAM,CAAC,WAAW,6CAA6C,WAAW,EAAO,WAAS,WAAW,IAAI,QAAM,mBAAmB,eAAe,WAAW,QAAQ,EAAE,SAAS,CAAS,CAAC,CAAE,iBAHtqC,IAA6C,IAAiE,EAGyjC,EAAiB,aAAa,CAAC,MAAM,IAAI,SAAS,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,IAAI,SAAS,GAAG,OAAO,IAAI,MAAM,UAAU,SAAS,EAAI,EAAE,EAAoB,EAAiB,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,IAAI,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,eAAe,EAAK,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,EAAE,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,EAAE,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,IAAI,IAAI,GAAG,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,aAAa,GAAG,IAAI,GAAG,IAAI,IAAI,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,EAAY,KAAK,MAAM,SAAS,QAAQ,CAAC,IAAI,IAAI,IAAI,GAAG,EAAE,aAAa,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,aAAa,GAAG,EAAE,MAAM,CAAC,KAAK,EAAY,MAAM,MAAM,QAAQ,aAAa,SAAS,EAAE,SAAS,CAAC,KAAK,EAAY,QAAQ,MAAM,iBAAiB,aAAa,EAAI,CAAC,CAAC"}