{"version":3,"file":"ScrollProgressButton.ClV2Infj.mjs","names":["useState","useRef","useCallback","useMemo"],"sources":["https:/framerusercontent.com/modules/7TzBwZbZA3i7S1R1Gufr/DrN5nKJFSYqNxQBg2I82/ScrollProgressButton.js"],"sourcesContent":["// Back to Top floating action button with progress ring that fills as you scroll down the page\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useState,useCallback,useMemo,useRef,startTransition}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";/**\n * Back to Top Button with Progress Ring\n *\n * @framerIntrinsicWidth 60\n * @framerIntrinsicHeight 60\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function ScrollProgressButton(props){const{buttonColor,iconColor,ringColor,ringWidth,buttonSize,bottomOffset,rightOffset,showThreshold,visibilityMode,showShadow,enableHoverEffect,enableAnimation,animationSpeed,glowColor,enableGlow,glowIntensity,useGradientRing,useGradientGlow}=props;const[scrollProgress,setScrollProgress]=useState(0);const[isVisible,setIsVisible]=useState(false);const isStatic=useIsStaticRenderer();const shouldAlwaysShow=isStatic;const scrollTimeoutRef=useRef(null);const lastScrollProgressRef=useRef(0);const lastVisibilityRef=useRef(false);// Calculate dynamic stroke color based on scroll progress\nconst getStrokeColor=useCallback(progress=>{if(progress<.5){// Purple to Blue (0% to 50%)\nconst localProgress=progress*2;const r=Math.round(91+(59-91)*localProgress);const g=Math.round(33+(130-33)*localProgress);const b=Math.round(182+(246-182)*localProgress);return`rgb(${r}, ${g}, ${b})`;}else{// Blue to Teal (50% to 100%)\nconst localProgress=(progress-.5)*2;const r=Math.round(59+(20-59)*localProgress);const g=Math.round(130+(184-130)*localProgress);const b=Math.round(246+(166-246)*localProgress);return`rgb(${r}, ${g}, ${b})`;}},[]);const dynamicStrokeColorMemo=useMemo(()=>getStrokeColor(scrollProgress),[scrollProgress,getStrokeColor]);const glowIntensityMemo=useMemo(()=>scrollProgress*15*glowIntensity,[scrollProgress,glowIntensity]);// Determine which color to use for the ring\nconst activeRingColor=useGradientRing?dynamicStrokeColorMemo:ringColor;// Determine which color to use for the glow\nconst activeGlowColor=useGradientGlow?dynamicStrokeColorMemo:glowColor;const handleScroll=useCallback(()=>{if(typeof window===\"undefined\")return;requestAnimationFrame(()=>{// Throttle updates - only update if there's a meaningful change\nif(scrollTimeoutRef.current!==null)return;scrollTimeoutRef.current=window.setTimeout(()=>{scrollTimeoutRef.current=null;requestAnimationFrame(()=>{const scrollTop=window.scrollY;const docHeight=document.documentElement.scrollHeight-window.innerHeight;const progress=docHeight<=0?0:Math.min(Math.max(scrollTop/docHeight,0),1);const newIsVisible=scrollTop>showThreshold;// Only update state if values have meaningfully changed\nconst progressChanged=Math.abs(progress-lastScrollProgressRef.current)>.001;const visibilityChanged=newIsVisible!==lastVisibilityRef.current;if(progressChanged||visibilityChanged){lastScrollProgressRef.current=progress;lastVisibilityRef.current=newIsVisible;startTransition(()=>{if(progressChanged)setScrollProgress(progress);if(visibilityChanged)setIsVisible(newIsVisible);});}});},16)// ~60fps throttle\n;});},[showThreshold]);useEffect(()=>{if(typeof window===\"undefined\")return;if(shouldAlwaysShow)return;handleScroll();window.addEventListener(\"scroll\",handleScroll,{passive:true});return()=>{window.removeEventListener(\"scroll\",handleScroll);if(scrollTimeoutRef.current!==null){clearTimeout(scrollTimeoutRef.current);}};},[handleScroll,shouldAlwaysShow]);const scrollToTop=()=>{if(typeof window===\"undefined\")return;window.scrollTo({top:0,behavior:\"smooth\"});};const radiusMemo=useMemo(()=>(buttonSize-ringWidth)/2,[buttonSize,ringWidth]);const circumferenceMemo=useMemo(()=>2*Math.PI*radiusMemo,[radiusMemo]);const strokeDashoffsetMemo=useMemo(()=>circumferenceMemo-scrollProgress*circumferenceMemo,[circumferenceMemo,scrollProgress]);// Gap between inner circle and outer ring\nconst gap=2;const innerCircleSize=buttonSize-ringWidth*2-gap*2;const showButton=shouldAlwaysShow||visibilityMode===\"always\"||visibilityMode===\"scroll\"&&isVisible;const hideButton=visibilityMode===\"hidden\"&&!shouldAlwaysShow;const containerStyle=useMemo(()=>({position:shouldAlwaysShow?\"relative\":\"fixed\",bottom:shouldAlwaysShow?undefined:bottomOffset,right:shouldAlwaysShow?undefined:rightOffset,width:buttonSize,height:buttonSize,pointerEvents:hideButton?\"none\":\"auto\",zIndex:9999,opacity:showButton?1:0,transform:shouldAlwaysShow?undefined:showButton?\"scale(1)\":\"scale(0.8)\",transition:enableAnimation&&!shouldAlwaysShow?`opacity ${animationSpeed}s ease, transform ${animationSpeed}s ease`:\"none\",touchAction:\"manipulation\"}),[shouldAlwaysShow,bottomOffset,rightOffset,buttonSize,hideButton,showButton,enableAnimation,animationSpeed]);const buttonStyle=useMemo(()=>({position:\"relative\",width:\"100%\",height:\"100%\",borderRadius:\"50%\",backgroundColor:\"transparent\",border:\"none\",cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",transition:\"transform 0.2s ease\",WebkitTransform:\"translateZ(0)\",willChange:\"transform\",touchAction:\"manipulation\",WebkitTapHighlightColor:\"transparent\"}),[]);const innerCircleStyle=useMemo(()=>({position:\"absolute\",top:\"50%\",left:\"50%\",transform:\"translate(-50%, -50%)\",width:innerCircleSize,height:innerCircleSize,borderRadius:\"50%\",backgroundColor:buttonColor,boxShadow:showShadow?\"0 4px 12px rgba(0, 0, 0, 0.15)\":\"none\",pointerEvents:\"none\"}),[innerCircleSize,buttonColor,showShadow]);const svgStyle=useMemo(()=>({position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",transform:\"rotate(-90deg)\",filter:enableGlow?`drop-shadow(0 0 ${glowIntensityMemo}px ${activeGlowColor})`:\"none\",pointerEvents:\"none\"}),[enableGlow,glowIntensityMemo,activeGlowColor]);const circleStyle=useMemo(()=>({transition:\"stroke-dashoffset 0.1s linear\"}),[]);return /*#__PURE__*/_jsx(\"div\",{style:containerStyle,children:/*#__PURE__*/_jsxs(\"button\",{onClick:scrollToTop,style:buttonStyle,onMouseEnter:e=>{if(enableHoverEffect){e.currentTarget.style.transform=\"scale(1.05)\";}},onMouseLeave:e=>{if(enableHoverEffect){e.currentTarget.style.transform=\"scale(1)\";}},\"aria-label\":\"Back to top\",children:[/*#__PURE__*/_jsx(\"div\",{style:innerCircleStyle}),/*#__PURE__*/_jsxs(\"svg\",{width:buttonSize*.4,height:buttonSize*.4,viewBox:\"0 0 24 24\",fill:\"none\",stroke:iconColor,strokeWidth:\"2.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\",style:{position:\"relative\",zIndex:1},children:[/*#__PURE__*/_jsx(\"title\",{children:\"Arrow up\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M12 19V5M5 12l7-7 7 7\"})]}),/*#__PURE__*/_jsx(\"svg\",{style:svgStyle,children:/*#__PURE__*/_jsx(\"circle\",{cx:buttonSize/2,cy:buttonSize/2,r:radiusMemo,stroke:activeRingColor,strokeWidth:ringWidth,fill:\"none\",strokeDasharray:circumferenceMemo,strokeDashoffset:strokeDashoffsetMemo,strokeLinecap:\"round\",style:circleStyle})})]})});}addPropertyControls(ScrollProgressButton,{visibilityMode:{type:ControlType.Enum,title:\"Visibility\",description:\"Choose when the button should be visible.\",options:[\"always\",\"scroll\",\"hidden\"],optionTitles:[\"Always Show\",\"Show on Scroll\",\"Hidden\"],defaultValue:\"scroll\",displaySegmentedControl:false},showThreshold:{type:ControlType.Number,title:\"Show Threshold\",description:\"Scroll distance in pixels before the button appears.\",defaultValue:300,min:0,max:1e3,step:50,unit:\"px\",hidden:({visibilityMode})=>visibilityMode!==\"scroll\"},buttonColor:{type:ControlType.Color,title:\"Button Color\",description:\"Background color of the button.\",defaultValue:\"#FFFFFF\"},iconColor:{type:ControlType.Color,title:\"Icon Color\",description:\"Color of the arrow icon.\",defaultValue:\"#5B21B6\"},useGradientRing:{type:ControlType.Boolean,title:\"Ring Style\",description:\"Use a dynamic gradient color for the progress ring.\",defaultValue:true,enabledTitle:\"Gradient\",disabledTitle:\"Custom\"},ringColor:{type:ControlType.Color,title:\"Ring Color\",description:\"Custom color for the progress ring.\",defaultValue:\"#5B21B6\",hidden:({useGradientRing})=>useGradientRing},ringWidth:{type:ControlType.Number,title:\"Ring Width\",description:\"Thickness of the progress ring.\",defaultValue:3,min:1,max:10,step:1,unit:\"px\"},enableGlow:{type:ControlType.Boolean,title:\"Glow Effect\",description:\"Add a glow effect to the progress ring.\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},useGradientGlow:{type:ControlType.Boolean,title:\"Glow Style\",description:\"Use a dynamic gradient color for the glow effect.\",defaultValue:true,enabledTitle:\"Gradient\",disabledTitle:\"Custom\",hidden:({enableGlow})=>!enableGlow},glowColor:{type:ControlType.Color,title:\"Glow Color\",description:\"Custom color for the glow effect.\",defaultValue:\"#5B21B6\",hidden:({enableGlow,useGradientGlow})=>!enableGlow||useGradientGlow},glowIntensity:{type:ControlType.Number,title:\"Glow Intensity\",description:\"Intensity of the glow effect.\",defaultValue:1,min:.1,max:3,step:.1,hidden:({enableGlow})=>!enableGlow},buttonSize:{type:ControlType.Number,title:\"Button Size\",description:\"Diameter of the button in pixels.\",defaultValue:60,min:40,max:100,step:5,unit:\"px\"},showShadow:{type:ControlType.Boolean,title:\"Shadow\",description:\"Show a shadow behind the button.\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},enableHoverEffect:{type:ControlType.Boolean,title:\"Hover Effect\",description:\"Scale up the button on hover.\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},enableAnimation:{type:ControlType.Boolean,title:\"Animation\",description:\"Animate the button appearance and disappearance.\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},animationSpeed:{type:ControlType.Number,title:\"Animation Speed\",description:\"Duration of the appearance animation in seconds.\",defaultValue:.2,min:.1,max:1,step:.1,unit:\"s\",hidden:({enableAnimation})=>!enableAnimation},bottomOffset:{type:ControlType.Number,title:\"Bottom Offset\",description:\"Distance from the bottom of the screen.\",defaultValue:40,min:0,max:200,step:5,unit:\"px\"},rightOffset:{type:ControlType.Number,title:\"Right Offset\",description:\"Distance from the right of the screen.\",defaultValue:40,min:0,max:200,step:5,unit:\"px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ScrollProgressButton\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicWidth\":\"60\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicHeight\":\"60\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ScrollProgressButton.map"],"mappings":"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"}