{"version":3,"file":"Counter1.DC6eeUIG.mjs","names":["Counter","useState","useRef","CounterStyles","Counter","useState","useRef","CounterStyles","useState","useRef"],"sources":["https:/framerusercontent.com/modules/tOVpku1OaxDi8XuYuWcO/sAISQ7gmfHZJfbQeRbCw/Counter1_1.js","https:/framerusercontent.com/modules/TKTuvWlQjyl39ehNmWd9/9hjqetmdJI2hxQmCo5JH/Counter1_3.js","https:/framerusercontent.com/modules/4r0mLuBCC6qtSnvSewo0/sALhwfsJVgvjUkZAjvTQ/Counter1.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useEffect,useRef}from\"react\";import{motion}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";const CounterStyles={container:{display:\"flex\",justifyContent:\"center\",alignItems:\"center\"}};export function Counter(props){const{start,end,speed,gapSize,prefixText,suffixText,prefixFont,suffixFont,prefixColor,suffixColor,loop,decimalSeparatorType,textSize,selectedFont,textColor,startOnViewport,restartOnViewport,incrementType,duration}=props;const[count,setCount]=useState(start);const[isVisible,setIsVisible]=useState(false);const containerRef=useRef(null);// Ref to track current count value for loop reset in cleanup without being a dep\nconst countRef=useRef(start);useEffect(()=>{const observer=new IntersectionObserver(entries=>{const entry=entries[0];setIsVisible(entry.isIntersecting);});if(containerRef.current){observer.observe(containerRef.current);}return()=>{if(containerRef.current){observer.unobserve(containerRef.current);}};},[]);useEffect(()=>{const updateCount=()=>{const totalSteps=Math.ceil(duration/speed);const increment=(end-start)/totalSteps;setCount(prevCount=>{const nextCount=parseFloat((prevCount+increment).toFixed(incrementType===\"integer\"?0:1));const result=nextCount>=end?end:nextCount;countRef.current=result;return result;});};// Only run when visible — prevents setInterval firing before user scrolls to counter\n// NOTE: `count` intentionally excluded from deps — using functional setCount updater\n// avoids stale closures while preventing the interval from being torn down every tick.\n// countRef tracks the live value for the loop reset in cleanup.\nif(isVisible&&start!==end){const intervalId=setInterval(updateCount,speed);return()=>{clearInterval(intervalId);if(loop&&countRef.current>=end)setCount(start);};}else if(!isVisible&&startOnViewport){setCount(start);countRef.current=start;}},[start,end,loop,isVisible,speed,startOnViewport,incrementType,duration]);useEffect(()=>{if(restartOnViewport&&isVisible){setCount(start);countRef.current=start;}},[isVisible,restartOnViewport,start]);const formatNumber=number=>{if(decimalSeparatorType===\"comma\"){return number.toLocaleString(\"en-US\");}else if(decimalSeparatorType===\"period\"){return number.toLocaleString(\"en-US\").replace(/,/g,\".\");}else{return number.toFixed(incrementType===\"integer\"?0:1);}};return /*#__PURE__*/_jsxs(motion.div,{ref:containerRef,style:{...CounterStyles.container,gap:`${gapSize}px`,flexDirection:\"row\",alignItems:\"center\",fontSize:`${textSize}px`,fontFamily:selectedFont.fontFamily,fontWeight:selectedFont.fontWeight,color:textColor},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:prefixFont.fontFamily,fontWeight:prefixFont.fontWeight,color:prefixColor},children:prefixText}),/*#__PURE__*/_jsx(\"span\",{children:formatNumber(count)}),/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:suffixFont.fontFamily,fontWeight:suffixFont.fontWeight,color:suffixColor},children:suffixText})]});}Counter.defaultProps={start:0,end:100,speed:50,duration:2e3,prefixText:\"\",suffixText:\"\",loop:false,decimalSeparatorType:\"comma\",textSize:36,selectedFont:{fontFamily:\"Inter\",fontWeight:500,systemFont:true},textColor:\"#D3D3D3\",startOnViewport:true,incrementType:\"integer\",restartOnViewport:false};addPropertyControls(Counter,{startOnViewport:{type:ControlType.Boolean,title:\"Viewport\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},restartOnViewport:{type:ControlType.Boolean,title:\"Replay\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"},selectedFont:{title:\"Font\",type:ControlType.Font,defaultValue:{fontFamily:\"Inter\",fontWeight:500,systemFont:true}},textSize:{title:\"Font Size\",type:ControlType.Number,min:8,max:240,step:1},textColor:{type:ControlType.Color,title:\"Font Color\"},start:{type:ControlType.Number,title:\"Start Number\",defaultValue:0,displayStepper:true},end:{type:ControlType.Number,title:\"End Number\",defaultValue:9500,displayStepper:true},decimalSeparatorType:{type:ControlType.Enum,title:\"Separator\",defaultValue:\"comma\",options:[\"comma\",\"period\",\"none\"],optionTitles:[\"Comma (1,000)\",\"Decimal (1.000)\",\"None\"]},incrementType:{type:ControlType.Enum,title:\"Increment Type\",defaultValue:\"integer\",options:[\"integer\",\"decimal\"],optionTitles:[\"Integer\",\"Decimal\"]},prefixText:{type:ControlType.String,title:\"Prefix\",defaultValue:\"\"},prefixFont:{title:\"Prefix Font\",type:ControlType.Font,defaultValue:{fontFamily:\"Inter\",fontWeight:500,systemFont:true}},prefixColor:{type:ControlType.Color,title:\"Prefix Color\"},suffixText:{type:ControlType.String,title:\"Suffix\",defaultValue:\"\"},suffixFont:{title:\"Suffix Font\",type:ControlType.Font,defaultValue:{fontFamily:\"Inter\",fontWeight:500,systemFont:true}},suffixColor:{type:ControlType.Color,title:\"Suffix Color\"},gapSize:{type:ControlType.Number,title:\"Gap Size\",defaultValue:4,min:0,max:100,step:4},speed:{type:ControlType.Number,title:\"Speed (ms)\",defaultValue:50,min:10,max:2e3,step:10},duration:{type:ControlType.Number,title:\"Duration (ms)\",defaultValue:3e3,min:100,max:1e4,step:100},loop:{type:ControlType.Boolean,title:\"Loop Animation\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"[Built by Asif Kabir](https://www.youtube.com/channel/UCujbStV-Rp-QGfiHOKA9AvA)\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"Counter\":{\"type\":\"reactComponent\",\"name\":\"Counter\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Counter1_1.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useEffect,useRef}from\"react\";import{motion}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";const CounterStyles={container:{display:\"flex\",justifyContent:\"center\",alignItems:\"center\"}};export function Counter(props){const{start,end,speed,gapSize,prefixText,suffixText,prefixFont,suffixFont,prefixColor,suffixColor,loop,decimalSeparatorType,textSize,selectedFont,textColor,startOnViewport,restartOnViewport,incrementType}=props;const[count,setCount]=useState(start);const[isVisible,setIsVisible]=useState(false);const containerRef=useRef(null);useEffect(()=>{const observer=new IntersectionObserver(entries=>{const entry=entries[0];setIsVisible(entry.isIntersecting);});if(containerRef.current){observer.observe(containerRef.current);}return()=>{if(containerRef.current){observer.unobserve(containerRef.current);}};},[]);useEffect(()=>{const updateCount=()=>{const increment=incrementType===\"integer\"?1:.1;setCount(prevCount=>{const nextCount=parseFloat((prevCount+increment).toFixed(2));return nextCount>=end?end:nextCount;});};// Only run when visible — prevents setInterval firing before user scrolls to counter\n// NOTE: `count` intentionally excluded from deps — using functional setCount updater\n// avoids stale closures while preventing the interval from being torn down every tick\nif(isVisible&&start!==end){const intervalId=setInterval(updateCount,speed);return()=>clearInterval(intervalId);}else if(!isVisible&&startOnViewport){setCount(start);}},[start,end,loop,isVisible,speed,startOnViewport,incrementType]);useEffect(()=>{if(restartOnViewport&&isVisible){setCount(start);}},[isVisible,restartOnViewport,start]);const formatNumber=number=>{if(decimalSeparatorType===\"comma\"){return number.toLocaleString(\"en-US\");}else if(decimalSeparatorType===\"period\"){return number.toLocaleString(\"en-US\").replace(/,/g,\".\");}else{return number.toFixed(incrementType===\"integer\"?0:1);}};return /*#__PURE__*/_jsxs(motion.div,{ref:containerRef,style:{...CounterStyles.container,gap:`${gapSize}px`,flexDirection:\"row\",alignItems:\"center\",fontSize:`${textSize}px`,fontFamily:selectedFont.fontFamily,fontWeight:selectedFont.fontWeight,color:textColor},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:prefixFont.fontFamily,fontWeight:prefixFont.fontWeight,color:prefixColor},children:prefixText}),/*#__PURE__*/_jsx(\"span\",{children:formatNumber(count)}),/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:suffixFont.fontFamily,fontWeight:suffixFont.fontWeight,color:suffixColor},children:suffixText})]});}Counter.defaultProps={start:0,end:100,speed:100,prefixText:\"\",suffixText:\"\",loop:false,decimalSeparatorType:\"comma\",textSize:36,selectedFont:{fontFamily:\"Inter\",fontWeight:500,systemFont:true},textColor:\"#D3D3D3\",startOnViewport:true,incrementType:\"integer\"};addPropertyControls(Counter,{startOnViewport:{type:ControlType.Boolean,title:\"Viewport\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},restartOnViewport:{type:ControlType.Boolean,title:\"Replay\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"},selectedFont:{title:\"Font\",type:ControlType.Font,defaultValue:{fontFamily:\"Inter\",fontWeight:500,systemFont:true}},textSize:{title:\"Font Size\",type:ControlType.Number,min:8,max:240,step:1},textColor:{type:ControlType.Color,title:\"Font Color\"},start:{type:ControlType.Number,title:\"Start Number\",defaultValue:0,displayStepper:true},end:{type:ControlType.Number,title:\"End Number\",defaultValue:10,displayStepper:true},decimalSeparatorType:{type:ControlType.Enum,title:\"Separator\",defaultValue:\"comma\",options:[\"comma\",\"period\",\"none\"],optionTitles:[\"Comma (1,000)\",\"Decimal (1.000)\",\"None\"]},incrementType:{type:ControlType.Enum,title:\"Increment Type\",defaultValue:\"integer\",options:[\"integer\",\"decimal\"],optionTitles:[\"Integer\",\"Decimal\"]},prefixText:{type:ControlType.String,title:\"Prefix\",defaultValue:\"\"},prefixFont:{title:\"Prefix Font\",type:ControlType.Font,defaultValue:{fontFamily:\"Inter\",fontWeight:500,systemFont:true}},prefixColor:{type:ControlType.Color,title:\"Prefix Color\"},suffixText:{type:ControlType.String,title:\"Suffix\",defaultValue:\"\"},suffixFont:{title:\"Suffix Font\",type:ControlType.Font,defaultValue:{fontFamily:\"Inter\",fontWeight:500,systemFont:true}},suffixColor:{type:ControlType.Color,title:\"Suffix Color\"},gapSize:{type:ControlType.Number,title:\"Gap Size\",defaultValue:4,min:0,max:100,step:4},speed:{type:ControlType.Number,title:\"Speed (ms)\",defaultValue:100,min:0,max:2e3,step:10},loop:{type:ControlType.Boolean,title:\"Loop Animation\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"[Built by Asif Kabir](https://www.youtube.com/channel/UCujbStV-Rp-QGfiHOKA9AvA)\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"Counter\":{\"type\":\"reactComponent\",\"name\":\"Counter\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Counter1_3.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useEffect,useRef}from\"react\";import{motion}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";const CounterStyles={container:{display:\"flex\",justifyContent:\"center\",alignItems:\"center\"}};export function Counter(props){const{start,end,speed,gapSize,prefixText,suffixText,prefixFont,suffixFont,prefixColor,suffixColor,loop,decimalSeparatorType,textSize,selectedFont,textColor,startOnViewport,restartOnViewport,incrementType}=props;const[count,setCount]=useState(start);const[isVisible,setIsVisible]=useState(false);const containerRef=useRef(null);useEffect(()=>{const observer=new IntersectionObserver(entries=>{const entry=entries[0];setIsVisible(entry.isIntersecting);});if(containerRef.current){observer.observe(containerRef.current);}return()=>{if(containerRef.current){observer.unobserve(containerRef.current);}};},[]);useEffect(()=>{const updateCount=()=>{const increment=incrementType===\"integer\"?1:.1;setCount(prevCount=>{const nextCount=parseFloat((prevCount+increment).toFixed(2));return nextCount>=end?end:nextCount;});};// Only run when visible — prevents setInterval firing before user scrolls to counter\n// NOTE: `count` intentionally excluded from deps — using functional setCount updater\n// avoids stale closures while preventing the interval from being torn down every tick\nif(isVisible&&start!==end){const intervalId=setInterval(updateCount,speed);return()=>clearInterval(intervalId);}else if(!isVisible&&startOnViewport){setCount(start);}},[start,end,loop,isVisible,speed,startOnViewport,incrementType]);useEffect(()=>{if(restartOnViewport&&isVisible){setCount(start);}},[isVisible,restartOnViewport,start]);const formatNumber=number=>{if(decimalSeparatorType===\"comma\"){return number.toLocaleString(\"en-US\");}else if(decimalSeparatorType===\"period\"){return number.toLocaleString(\"en-US\").replace(/,/g,\".\");}else{return number.toFixed(incrementType===\"integer\"?0:1);}};return /*#__PURE__*/_jsxs(motion.div,{ref:containerRef,style:{...CounterStyles.container,gap:`${gapSize}px`,flexDirection:\"row\",alignItems:\"center\",fontSize:`${textSize}px`,fontFamily:selectedFont.fontFamily,fontWeight:selectedFont.fontWeight,color:textColor},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:prefixFont.fontFamily,fontWeight:prefixFont.fontWeight,color:prefixColor},children:prefixText}),/*#__PURE__*/_jsx(\"span\",{children:formatNumber(count)}),/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:suffixFont.fontFamily,fontWeight:suffixFont.fontWeight,color:suffixColor},children:suffixText})]});}Counter.defaultProps={start:0,end:100,speed:100,prefixText:\"\",suffixText:\"\",loop:false,decimalSeparatorType:\"comma\",textSize:36,selectedFont:{fontFamily:\"Inter\",fontWeight:500,systemFont:true},textColor:\"#D3D3D3\",startOnViewport:true,incrementType:\"integer\"};addPropertyControls(Counter,{startOnViewport:{type:ControlType.Boolean,title:\"Viewport\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},restartOnViewport:{type:ControlType.Boolean,title:\"Replay\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"},selectedFont:{title:\"Font\",type:ControlType.Font,defaultValue:{fontFamily:\"Inter\",fontWeight:500,systemFont:true}},textSize:{title:\"Font Size\",type:ControlType.Number,min:8,max:240,step:1},textColor:{type:ControlType.Color,title:\"Font Color\"},start:{type:ControlType.Number,title:\"Start Number\",defaultValue:0,displayStepper:true},end:{type:ControlType.Number,title:\"End Number\",defaultValue:10,displayStepper:true},decimalSeparatorType:{type:ControlType.Enum,title:\"Separator\",defaultValue:\"comma\",options:[\"comma\",\"period\",\"none\"],optionTitles:[\"Comma (1,000)\",\"Decimal (1.000)\",\"None\"]},incrementType:{type:ControlType.Enum,title:\"Increment Type\",defaultValue:\"integer\",options:[\"integer\",\"decimal\"],optionTitles:[\"Integer\",\"Decimal\"]},prefixText:{type:ControlType.String,title:\"Prefix\",defaultValue:\"\"},prefixFont:{title:\"Prefix Font\",type:ControlType.Font,defaultValue:{fontFamily:\"Inter\",fontWeight:500,systemFont:true}},prefixColor:{type:ControlType.Color,title:\"Prefix Color\"},suffixText:{type:ControlType.String,title:\"Suffix\",defaultValue:\"\"},suffixFont:{title:\"Suffix Font\",type:ControlType.Font,defaultValue:{fontFamily:\"Inter\",fontWeight:500,systemFont:true}},suffixColor:{type:ControlType.Color,title:\"Suffix Color\"},gapSize:{type:ControlType.Number,title:\"Gap Size\",defaultValue:4,min:0,max:100,step:4},speed:{type:ControlType.Number,title:\"Speed (ms)\",defaultValue:100,min:0,max:2e3,step:10},loop:{type:ControlType.Boolean,title:\"Loop Animation\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"[Built by Asif Kabir](https://www.youtube.com/channel/UCujbStV-Rp-QGfiHOKA9AvA)\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"Counter\":{\"type\":\"reactComponent\",\"name\":\"Counter\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Counter1.map"],"mappings":"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"}