{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/4E1IQTcDeiko2DY8jEFH/LOVH1Dx2GIVRatPWGGW8/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": "gIAAAA,IAA+L,SAASC,EAAoBC,EAAM,CAAC,GAAK,CAAC,cAAAC,EAAc,WAAAC,EAAW,SAAAC,EAAS,YAAAC,EAAY,aAAAC,EAAa,cAAAC,EAAc,OAAAC,CAAM,EAAEP,EAAYQ,EAAK,OAAaC,EAAO,GAAGL,EAAY,EAAQM,EAAc,EAAE,KAAK,GAAGD,EAAaE,EAAiBD,GAAe,EAAEJ,EAAc,KAAWM,EAAcP,EAAa,QAAQ,OAAaQ,EAAkB,CAAC,MAAML,EAAK,OAAOA,CAAI,EAAQM,EAASC,EAAa,EAAQC,EAAiBC,EAAO,IAAI,EAAE,OAAMC,EAAU,IAAI,CAAC,IAAMC,EAAS,IAAI,qBAAqBC,GAAS,CAACA,EAAQ,QAAQC,GAAO,CAAIA,EAAM,eAAgBP,EAAS,MAAM,CAAC,iBAAiBH,CAAgB,CAAC,EAAWJ,GAAQO,EAAS,MAAM,CAAC,iBAAiBJ,CAAa,CAAC,CAAG,CAAC,CAAE,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,OAAGM,EAAW,SAASG,EAAS,QAAQH,EAAW,OAAO,EAAS,IAAI,CAAIA,EAAW,SAASG,EAAS,UAAUH,EAAW,OAAO,CAAG,CAAE,EAAE,CAACF,EAASH,EAAiBD,EAAcH,CAAM,CAAC,EAAsBe,EAAK,MAAM,CAAC,MAAMT,EAAkB,IAAIG,EAAW,SAAsBO,EAAM,MAAM,CAAC,MAAMf,EAAK,OAAOA,EAAK,QAAQ,cAAc,SAAS,CAAcc,EAAK,SAAS,CAAC,GAAG,KAAK,GAAG,KAAK,EAAEb,EAAO,KAAK,OAAO,OAAOP,EAAW,YAAYE,CAAW,CAAC,EAAekB,EAAKE,EAAO,OAAO,CAAC,GAAG,KAAK,GAAG,KAAK,EAAEf,EAAO,KAAK,OAAO,OAAOR,EAAc,YAAYG,EAAY,gBAAgB,GAAGM,CAAa,IAAIA,CAAa,GAAG,cAAcE,EAAc,QAAQ,CAAC,iBAAiBF,CAAa,EAAE,QAAQI,EAAS,WAAW,CAAC,SAASX,EAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAACJ,EAAoB,aAAa,CAAC,cAAc,UAAU,WAAW,UAAU,SAAS,EAAE,YAAY,EAAE,aAAa,GAAM,cAAc,IAAI,OAAO,EAAK,EAAE0B,EAAoB1B,EAAoB,CAAC,cAAc,CAAC,KAAK2B,EAAY,MAAM,MAAM,iBAAiB,aAAa3B,EAAoB,aAAa,aAAa,EAAE,WAAW,CAAC,KAAK2B,EAAY,MAAM,MAAM,cAAc,aAAa3B,EAAoB,aAAa,UAAU,EAAE,SAAS,CAAC,KAAK2B,EAAY,OAAO,MAAM,qBAAqB,aAAa3B,EAAoB,aAAa,SAAS,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE,EAAE,YAAY,CAAC,KAAK2B,EAAY,OAAO,MAAM,eAAe,aAAa3B,EAAoB,aAAa,YAAY,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,EAAE,aAAa,CAAC,KAAK2B,EAAY,QAAQ,MAAM,eAAe,aAAa3B,EAAoB,aAAa,YAAY,EAAE,cAAc,CAAC,KAAK2B,EAAY,OAAO,MAAM,iBAAiB,aAAa3B,EAAoB,aAAa,cAAc,IAAI,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK2B,EAAY,QAAQ,MAAM,mBAAmB,aAAa3B,EAAoB,aAAa,MAAM,CAAC,CAAC",
  "names": ["init_ssg_sandbox_shims", "CircularProgressBar", "props", "progressColor", "trackColor", "duration", "strokeWidth", "cornerRadius", "endPercentage", "replay", "size", "radius", "circumference", "targetDashoffset", "strokeLinecap", "svgContainerStyle", "controls", "useAnimation", "elementRef", "pe", "ue", "observer", "entries", "entry", "p", "u", "motion", "addPropertyControls", "ControlType"]
}
