{"version":3,"file":"Progress.sxaItbEC.mjs","names":["useLayoutEffect","useEffect","Indicators"],"sources":["https:/framer.com/m/framer/useIsomorphicLayoutEffect.js@^0.2.0","https:/framer.com/m/framer/useMeasuredSize.js","https:/framerusercontent.com/modules/SP7MubjzgHx9kc6yA6xD/4JKlxlDzFv9N3u1D0AxP/Progress.js"],"sourcesContent":["import{useLayoutEffect,useEffect}from\"react\";/**\n * Swaps `useLayoutEffect` for `useEffect` on the server to avoid React warnings.\n * NOTE! The effect won't run on the server.\n */ export const useIsomorphicLayoutEffect=typeof document!==\"undefined\"?useLayoutEffect:useEffect;\nexport const __FramerMetadata__ = {\"exports\":{\"useIsomorphicLayoutEffect\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useIsomorphicLayoutEffect.map","import*as React from\"react\";import{useIsomorphicLayoutEffect}from\"https://framer.com/m/framer/useIsomorphicLayoutEffect.js@^0.2.0\";let safeResizeObserver=undefined;try{if(typeof window!==undefined){safeResizeObserver=window.ResizeObserver;}}catch(e){// happy linting!\n}class SharedObserver{//@ts-ignore\nupdateResizedElements(entries){for(const entry of entries){const callbackForElement=this.callbacks.get(entry.target);if(callbackForElement)callbackForElement(entry.contentRect);}}observeElementWithCallback(element,callback){if(!this.sharedResizeObserver)return;this.sharedResizeObserver.observe(element);this.callbacks.set(element,callback);}unobserve(element){if(!this.sharedResizeObserver)return;this.sharedResizeObserver.unobserve(element);this.callbacks.delete(element);}constructor(){this.callbacks=new WeakMap();const ResizeObserver1=safeResizeObserver;if(!ResizeObserver1)return;this.sharedResizeObserver=new ResizeObserver1(this.updateResizedElements.bind(this));}}const sharedResizeObserver=new SharedObserver();/**\n * Uses a globally shared resize observer, and returns an updated\n * size object when the element's size changes. This is the recommended way to\n * use a Resize Observer: https://github.com/WICG/resize-observer/issues/59.\n */ export function useMeasuredSize(ref,callback){const[size,setSize]=React.useState(null);function updateSize(newSize){if(!size||newSize.height!==size.height||newSize.width!==size.width){if(callback)callback(newSize);setSize({width:newSize.width,height:newSize.height});}}// On mount, immediately measure and set a size. This will defer paint until\n// no more updates are scheduled. Additionally add our element to the shared\n// ResizeObserver with a callback to perform when the element resizes.\n// Finally, remove the element from the observer when the component is unmounted.\nuseIsomorphicLayoutEffect(()=>{if(!ref.current)return;const{offsetWidth,offsetHeight}=ref.current;// Defer paint until initial size is added.\nupdateSize({width:offsetWidth,height:offsetHeight});// Resize observer will race to add the initial size, but since the size\n// is set above, it won't trigger a render on mount since it should\n// match the measured size. Future executions of the callback will\n// trigger renders if the size changes.\nsharedResizeObserver.observeElementWithCallback(ref.current,updateSize);return()=>{if(!ref.current)return;sharedResizeObserver.unobserve(ref.current);};},[]);return size;}export function useSizeChange(ref,callback){const size=React.useRef(null);const updateSize=React.useCallback(newSize=>{if(!size.current||newSize.height!==size.current.height||newSize.width!==size.current.width){size.current={width:newSize.width,height:newSize.height};if(callback)callback(size.current);}},[callback]);// On mount, immediately measure and set a size. This will defer paint until\n// no more updates are scheduled. Additionally add our element to the shared\n// ResizeObserver with a callback to perform when the element resizes.\n// Finally, remove the element from the observer when the component is unmounted.\nuseIsomorphicLayoutEffect(()=>{if(!ref.current)return;const{offsetWidth,offsetHeight}=ref.current;// Defer paint until initial size is added.\nupdateSize({width:offsetWidth,height:offsetHeight});// Resize observer will race to add the initial size, but since the size\n// is set above, it won't trigger a render on mount since it should\n// match the measured size. Future executions of the callback will\n// trigger renders if the size changes.\nsharedResizeObserver.observeElementWithCallback(ref.current,updateSize);return()=>{if(!ref.current)return;sharedResizeObserver.unobserve(ref.current);};},[callback]);return null;}\nexport const __FramerMetadata__ = {\"exports\":{\"useSizeChange\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMeasuredSize\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useMeasuredSize.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useRef,useMemo,useState}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useTransform,motionValue,motion,animate}from\"framer-motion\";import{isMotionValue,defaultEvents,useOnEnter,colorTokentoValue}from\"https://framer.com/m/framer/default-utils.js@^0.45.0\";import{useMeasuredSize}from\"https://framer.com/m/framer/useMeasuredSize.js\";var Indicators;(function(Indicators){Indicators[\"Circle\"]=\"Circle\";Indicators[\"Line\"]=\"Line\";})(Indicators||(Indicators={}));function getIndicator(indicator,props){switch(indicator){case Indicators.Circle:return(/*#__PURE__*/ _jsx(Circle,{...props}));case Indicators.Line:return(/*#__PURE__*/ _jsx(Line,{...props}));default:return(/*#__PURE__*/ _jsx(Line,{...props}));}}/**\n * PROGRESS\n *\n * @framerIntrinsicWidth 50\n * @framerIntrinsicHeight 50\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */ export function Progress(props){const{progress,progressEnd,onComplete,transition,animation,type,padding,animateFromStart,shouldAnimate,shouldAnimateTransition,onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp}=props;const isPropMotionValue=isMotionValue(progress);const didInitialMount=useRef(false);const[progressValue]=useState(()=>isPropMotionValue?progress:motionValue(progress*0.01));const lastValue=useRef(-1);const onCanvas=useMemo(()=>RenderTarget.current()===RenderTarget.canvas,[]);useOnEnter(()=>{if(shouldAnimate&&RenderTarget.current()!==RenderTarget.canvas){if(animateFromStart)progressValue.set(0);if(!onCanvas)animate(progressValue,progressEnd*0.01,animation);}});useEffect(()=>{if(!isPropMotionValue&&!onCanvas&&didInitialMount.current&&shouldAnimateTransition){animate(progressValue,progress*0.01,transition);}else if(!didInitialMount.current){didInitialMount.current=true;}else{progressValue.set(progress*0.01);}},[progress]);useEffect(()=>progressValue.onChange(()=>{if(progressValue.get()>=1&&progressValue.get()!==lastValue.current&&onComplete)onComplete();lastValue.current=progressValue.get();}),[]);return(/*#__PURE__*/ _jsx(\"div\",{onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp,style:{width:\"100%\",height:\"100%\",padding,overflow:\"hidden\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\"},children:getIndicator(type,{...props,progressValue})}));}function Circle(props){const{progressValue,strokeWidth,trackColor,progressColor,roundCap,// width,\n// height,\npadding}=props;const container=useRef();const size=useMeasuredSize(container);const width=(size===null||size===void 0?void 0:size.width)?size.width:50;const height=(size===null||size===void 0?void 0:size.height)?size.height:50;const circleSize=Math.min(width,height)-strokeWidth-padding*2;const xOffset=Math.abs(width-circleSize)/2;const yOffset=Math.abs(height-circleSize)/2;const w=circleSize;const r=w/2;const c=Math.PI*w;const dashOffset=useTransform(progressValue,[1,0],[0,c]);return(/*#__PURE__*/ _jsx(motion.div,{ref:container,style:{display:\"block\",width:\"100%\",height:\"100%\"},children:/*#__PURE__*/ _jsx(\"svg\",{style:{width:\"100%\",height:\"100%\",transformOrigin:\"50% 50%\",transform:`rotate(${roundCap?-90+3:-90}deg)`},children:/*#__PURE__*/ _jsxs(\"g\",{style:{transform:`translateX(${xOffset}px) translateY(${yOffset}px)`},children:[/*#__PURE__*/ _jsx(\"circle\",{cx:r,cy:r,r:r,fill:\"none\",stroke:colorTokentoValue(trackColor),strokeWidth:strokeWidth,strokeDasharray:c}),/*#__PURE__*/ _jsx(motion.circle,{cx:r,cy:r,r:r,fill:\"none\",stroke:colorTokentoValue(progressColor),strokeWidth:strokeWidth,strokeLinecap:roundCap?\"round\":\"butt\",strokeDasharray:c,style:{strokeDashoffset:dashOffset,transformOrigin:\"center\"}})]})})}));}function Line(props){const{progressValue,lineHeight,trackColor,progressColor,borderRadius,roundCap}=props;return(/*#__PURE__*/ _jsx(motion.div,{style:{background:colorTokentoValue(trackColor),width:\"100%\",height:lineHeight,borderRadius,overflow:\"hidden\",z:0.001},children:/*#__PURE__*/ _jsx(motion.div,{style:{width:\"100%\",height:lineHeight,scaleX:progressValue,background:colorTokentoValue(progressColor),originX:0}})}));}Progress.defaultProps={width:50,height:50,animation:{type:\"tween\",ease:[0,0,1,1],duration:1,delay:0.25},transition:{type:\"spring\",delay:0,stiffness:150,damping:20,mass:1},progressColor:\"#09F\",trackColor:\"#E5E5E5\",strokeWidth:5,shouldAnimate:true,progress:60,progressEnd:100,padding:5,strokeStyle:\"solid\",borderRadius:5,lineHeight:5,animateFromStart:false,shouldAnimateTransition:true,type:Indicators.Circle};addPropertyControls(Progress,{type:{title:\"Type\",type:ControlType.Enum,options:Object.keys(Indicators).map(i=>Indicators[i])},progress:{type:ControlType.Number,defaultValue:Progress.defaultProps.progress,unit:\"%\",min:0,max:100,title:\"Value\"},progressEnd:{type:ControlType.Number,defaultValue:Progress.defaultProps.progressEnd,unit:\"%\",min:0,max:100,title:\"Animate To\",hidden:({shouldAnimate})=>!shouldAnimate},progressColor:{type:ControlType.Color,title:\"Color\",defaultValue:Progress.defaultProps.progressColor},trackColor:{type:ControlType.Color,title:\"Track\",defaultValue:Progress.defaultProps.trackColor},shouldAnimate:{type:ControlType.Boolean,title:\"Animate\",enabledTitle:\"Yes\",disabledTitle:\"No\"},animateFromStart:{type:ControlType.Boolean,title:\"From\",enabledTitle:\"Start\",disabledTitle:\"Current\",hidden:({shouldAnimate})=>!shouldAnimate},animation:{title:\" \",type:ControlType.Transition,defaultValue:Progress.defaultProps.animation,hidden:({shouldAnimate})=>!shouldAnimate},shouldAnimateTransition:{type:ControlType.Boolean,title:\"Transition\",enabledTitle:\"Animate\",disabledTitle:\"Instant\"},transition:{title:\" \",type:ControlType.Transition,defaultValue:Progress.defaultProps.transition,hidden:({shouldAnimateTransition})=>!shouldAnimateTransition},padding:{type:ControlType.Number,title:\"Padding\",defaultValue:Progress.defaultProps.strokeWidth,displayStepper:true,min:0},strokeWidth:{type:ControlType.Number,title:\"Thickness\",defaultValue:Progress.defaultProps.strokeWidth,hidden:({type})=>type!==Indicators.Circle,displayStepper:true,min:1},lineHeight:{title:\"Thickness\",type:ControlType.Number,min:1,hidden:({type})=>type!==Indicators.Line},borderRadius:{type:ControlType.Number,title:\"Radius\",min:0,max:50,hidden:({type})=>type!==Indicators.Line},roundCap:{type:ControlType.Boolean,hidden:({type})=>type!==Indicators.Circle,title:\"Line Cap\",enabledTitle:\"Round\",disabledTitle:\"Flat\"},onComplete:{type:ControlType.EventHandler},...defaultEvents});\nexport const __FramerMetadata__ = {\"exports\":{\"Progress\":{\"type\":\"reactComponent\",\"name\":\"Progress\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"50\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicHeight\":\"50\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Progress.map"],"mappings":"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"}