{"version":3,"file":"Circular.B_0MdvBP.mjs","names":["React.useRef"],"sources":["https:/framerusercontent.com/modules/sOMJl8IHxTyit5aJLoQb/cucl40yaj6QWPM8MF6BH/Circular.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{motion,useAnimation}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";export function CircularProgressBar(props){const{progressColor,trackColor,duration,strokeWidth,cornerRadius,endPercentage,replay}=props;const size=\"100%\";const radius=50-strokeWidth/2;const circumference=2*Math.PI*radius;const targetDashoffset=circumference*(1-endPercentage/100);const strokeLinecap=cornerRadius?\"round\":\"butt\";const svgContainerStyle={width:size,height:size};const controls=useAnimation();const elementRef=React.useRef(null);React.useEffect(()=>{const observer=new IntersectionObserver(entries=>{entries.forEach(entry=>{if(entry.isIntersecting){controls.start({strokeDashoffset:targetDashoffset});}else if(replay){controls.start({strokeDashoffset:circumference});}});},{threshold:.5});if(elementRef.current){observer.observe(elementRef.current);}return()=>{if(elementRef.current){observer.unobserve(elementRef.current);}};},[controls,targetDashoffset,circumference,replay]);return /*#__PURE__*/_jsx(\"div\",{style:svgContainerStyle,ref:elementRef,children:/*#__PURE__*/_jsxs(\"svg\",{width:size,height:size,viewBox:\"0 0 100 100\",children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"50\",cy:\"50\",r:radius,fill:\"none\",stroke:trackColor,strokeWidth:strokeWidth}),/*#__PURE__*/_jsx(motion.circle,{cx:\"50\",cy:\"50\",r:radius,fill:\"none\",stroke:progressColor,strokeWidth:strokeWidth,strokeDasharray:`${circumference} ${circumference}`,strokeLinecap:strokeLinecap,initial:{strokeDashoffset:circumference},animate:controls,transition:{duration:duration,ease:\"linear\"}})]})});}CircularProgressBar.defaultProps={progressColor:\"#4caf50\",trackColor:\"#e0e0e0\",duration:2,strokeWidth:4,cornerRadius:false,endPercentage:100,replay:false};addPropertyControls(CircularProgressBar,{progressColor:{type:ControlType.Color,title:\"Progress Color\",defaultValue:CircularProgressBar.defaultProps.progressColor},trackColor:{type:ControlType.Color,title:\"Track Color\",defaultValue:CircularProgressBar.defaultProps.trackColor},duration:{type:ControlType.Number,title:\"Duration (Seconds)\",defaultValue:CircularProgressBar.defaultProps.duration,min:.5,max:30,step:.1},strokeWidth:{type:ControlType.Number,title:\"Stroke Width\",defaultValue:CircularProgressBar.defaultProps.strokeWidth,min:1,max:20,step:1},cornerRadius:{type:ControlType.Boolean,title:\"Rounded Ends\",defaultValue:CircularProgressBar.defaultProps.cornerRadius},endPercentage:{type:ControlType.Number,title:\"End Percentage\",defaultValue:CircularProgressBar.defaultProps.endPercentage,min:0,max:100,step:1},replay:{type:ControlType.Boolean,title:\"Replay Animation\",defaultValue:CircularProgressBar.defaultProps.replay}});\nexport const __FramerMetadata__ = {\"exports\":{\"CircularProgressBar\":{\"type\":\"reactComponent\",\"name\":\"CircularProgressBar\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Circular.map"],"mappings":"gPAAwL,SAAgB,EAAoB,EAAM,CAAC,GAAK,CAAC,gBAAc,aAAW,WAAS,cAAY,eAAa,gBAAc,UAAQ,EAAY,EAAK,OAAa,EAAO,GAAG,EAAY,EAAQ,EAAc,EAAE,KAAK,GAAG,EAAa,EAAiB,GAAe,EAAE,EAAc,KAAW,EAAc,EAAa,QAAQ,OAAa,EAAkB,CAAC,MAAM,EAAK,OAAO,CAAI,EAAQ,EAAS,EAAa,EAAQ,EAAWA,EAAa,IAAI,EAAmc,OAAjc,MAAoB,CAAC,IAAM,EAAS,IAAI,qBAAqB,GAAS,CAAC,EAAQ,QAAQ,GAAO,CAAI,EAAM,eAAgB,EAAS,MAAM,CAAC,iBAAiB,CAAgB,CAAC,EAAW,GAAQ,EAAS,MAAM,CAAC,iBAAiB,CAAa,CAAC,CAAG,CAAC,CAAE,EAAE,CAAC,UAAU,EAAE,CAAC,EAA+D,OAA1D,EAAW,SAAS,EAAS,QAAQ,EAAW,OAAO,MAAa,CAAI,EAAW,SAAS,EAAS,UAAU,EAAW,OAAO,CAAG,CAAE,EAAE,CAAC,EAAS,EAAiB,EAAc,CAAM,CAAC,EAAsB,EAAK,MAAM,CAAC,MAAM,EAAkB,IAAI,EAAW,SAAsB,EAAM,MAAM,CAAC,MAAM,EAAK,OAAO,EAAK,QAAQ,cAAc,SAAS,CAAc,EAAK,SAAS,CAAC,GAAG,KAAK,GAAG,KAAK,EAAE,EAAO,KAAK,OAAO,OAAO,EAAuB,aAAW,CAAC,EAAe,EAAK,EAAO,OAAO,CAAC,GAAG,KAAK,GAAG,KAAK,EAAE,EAAO,KAAK,OAAO,OAAO,EAA0B,cAAY,gBAAgB,GAAG,EAAc,GAAG,IAA8B,gBAAc,QAAQ,CAAC,iBAAiB,CAAa,EAAE,QAAQ,EAAS,WAAW,CAAU,WAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,iBAA3jD,IAA4B,IAA+C,IAAoD,EAA67C,EAAoB,aAAa,CAAC,cAAc,UAAU,WAAW,UAAU,SAAS,EAAE,YAAY,EAAE,aAAa,GAAM,cAAc,IAAI,OAAO,EAAK,EAAE,EAAoB,EAAoB,CAAC,cAAc,CAAC,KAAK,EAAY,MAAM,MAAM,iBAAiB,aAAa,EAAoB,aAAa,aAAa,EAAE,WAAW,CAAC,KAAK,EAAY,MAAM,MAAM,cAAc,aAAa,EAAoB,aAAa,UAAU,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,qBAAqB,aAAa,EAAoB,aAAa,SAAS,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE,EAAE,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,aAAa,EAAoB,aAAa,YAAY,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,EAAE,aAAa,CAAC,KAAK,EAAY,QAAQ,MAAM,eAAe,aAAa,EAAoB,aAAa,YAAY,EAAE,cAAc,CAAC,KAAK,EAAY,OAAO,MAAM,iBAAiB,aAAa,EAAoB,aAAa,cAAc,IAAI,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,EAAY,QAAQ,MAAM,mBAAmB,aAAa,EAAoB,aAAa,MAAM,CAAC,CAAC"}