{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/fFHQAxULDglPmClBm0oE/nf294qOj2I0UgYc7Z4GM/EasyCounter.js"],
  "sourcesContent": ["import{jsxs as _jsxs}from\"react/jsx-runtime\";import React,{useState,useEffect}from\"react\";import{motion}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";const CounterStyles={display:\"flex\",justifyContent:\"left\",alignItems:\"left\"};export function EasyCounter(props){const{startNumber,endNumber,speed,prefix,suffix,loop,decimalSeparator,fontSize,font,fontColor,gradientStart,gradientEnd}=props;const[count,setCount]=useState(startNumber);const[isVisible,setIsVisible]=useState(false);const ref=React.useRef(null);useEffect(()=>{const observer=new IntersectionObserver(entries=>{const entry=entries[0];setIsVisible(entry.isIntersecting);});if(ref.current){observer.observe(ref.current);}return()=>{if(ref.current){observer.unobserve(ref.current);}};},[]);useEffect(()=>{if(isVisible&&startNumber!==endNumber){const intervalId=setInterval(()=>{if(count<endNumber){setCount(prevCount=>prevCount+1);}else if(loop){setCount(startNumber);}},speed);return()=>{clearInterval(intervalId);};}},[count,startNumber,endNumber,loop,isVisible]);const formatCount=number=>{if(decimalSeparator===\"comma\"){return number.toLocaleString(\"en-US\");}else if(decimalSeparator===\"period\"){return number.toLocaleString(\"en-US\").replace(/,/g,\".\");}else{return number.toFixed(0);}};return /*#__PURE__*/_jsxs(motion.div,{ref:ref,style:{...CounterStyles,gap:`${fontSize/2}px`,flexDirection:\"row\",alignItems:\"left\",fontSize:`${fontSize}px`,fontFamily:font.fontFamily,fontWeight:font.fontWeight,background:`linear-gradient(90deg, ${gradientStart}, ${gradientEnd})`,WebkitBackgroundClip:\"text\",WebkitTextFillColor:\"transparent\"},children:[prefix,formatCount(count),suffix]});}EasyCounter.defaultProps={startNumber:0,endNumber:10,speed:100,prefix:\"\",suffix:\"\",loop:false,decimalSeparator:\"comma\",fontSize:16,font:{fontFamily:\"Arial\",fontWeight:400,systemFont:true},fontColor:\"#707070\",gradientStart:\"#ff00ff\",gradientEnd:\"#00ffff\"};addPropertyControls(EasyCounter,{font:{title:\"Font\",type:ControlType.Font,defaultValue:{fontFamily:\"figtree\",fontWeight:400,systemFont:true}},fontSize:{title:\"Font Size\",type:ControlType.Number,min:8,max:200,step:1},fontColor:{type:ControlType.Color,title:\"Font Color\"},startNumber:{type:ControlType.Number,title:\"Start Number\",defaultValue:0,displayStepper:true},endNumber:{type:ControlType.Number,title:\"End Number\",defaultValue:10,displayStepper:true},decimalSeparator:{type:ControlType.Enum,title:\"Decimal Separator\",defaultValue:\"comma\",options:[\"comma\",\"period\",\"none\"],optionTitles:[\"Comma (1,000)\",\"Period (1.000)\",\"None\"]},speed:{type:ControlType.Number,title:\"Speed (ms)\",defaultValue:100,min:0,max:1e3,step:10},prefix:{type:ControlType.String,title:\"Prefix\",defaultValue:\"\"},suffix:{type:ControlType.String,title:\"Suffix\",defaultValue:\"\"},loop:{type:ControlType.Boolean,title:\"Loop Animation\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},gradientStart:{type:ControlType.Color,title:\"Gradient Start\",defaultValue:\"#ff00ff\"},gradientEnd:{type:ControlType.Color,title:\"Gradient End\",defaultValue:\"#00ffff\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"EasyCounter\":{\"type\":\"reactComponent\",\"name\":\"EasyCounter\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./EasyCounter.map"],
  "mappings": "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",
  "names": ["CounterStyles", "EasyCounter", "props", "startNumber", "endNumber", "speed", "prefix", "suffix", "loop", "decimalSeparator", "fontSize", "font", "fontColor", "gradientStart", "gradientEnd", "count", "setCount", "ye", "isVisible", "setIsVisible", "ref", "e", "ue", "observer", "entries", "entry", "intervalId", "prevCount", "formatCount", "number", "u", "motion", "addPropertyControls", "ControlType"]
}
