{"version":3,"file":"ScrollToTopButton.DoMJMPSP.mjs","names":["useState","startTransition","__esmMin","te","init_npm_react_18_3_1","window","_e","c","init_jsx_runtime","ce","init_ssg_sandbox_shims","motion","AnimatePresence","init_framer_motion_DhsWWWsN","init_framer_DcxuU94H","addPropertyControls","ControlType","ScrollToTopButton","props","isVisible","setIsVisible","isHovered","setIsHovered","handleScroll","scrollTop","docHeight","scrollPercent","animationDuration","targetScroll","scrollPosition","frameSize","hoverFrameColor","frameColor","borderColor","shadow","iconSize","iconColor","init_ScrollToTopButton"],"sources":["https:/framerusercontent.com/modules/wSoJpngyWGgsRdSYH6Q1/l1TdKFLtmfR99fqHENWF/ScrollToTopButton.js"],"sourcesContent":["// Scroll to top button with customizable appearance, animation, and scroll position\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useState,useEffect,startTransition}from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{motion,AnimatePresence}from\"framer-motion\";/**\n * Scroll to Top Button\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function ScrollToTopButton(props){const{frameColor=\"#FFFFFF\",iconColor=\"#000000\",borderColor=\"#EEEEEE\",hoverFrameColor=\"#F5F5F5\",shadow=\"0 2px 8px rgba(0, 0, 0, 0.1)\",scrollPosition=0,animationDuration=.3,frameSize=48,iconSize=24,borderRadius=8,bottom=48}=props;const[isVisible,setIsVisible]=useState(false);const[isHovered,setIsHovered]=useState(false);useEffect(()=>{if(typeof window===\"undefined\")return;const handleScroll=()=>{const scrollTop=window.scrollY;const docHeight=document.documentElement.scrollHeight-window.innerHeight;const scrollPercent=docHeight>0?scrollTop/docHeight*100:0;startTransition(()=>{setIsVisible(scrollPercent>10);});};window.addEventListener(\"scroll\",handleScroll);handleScroll();return()=>window.removeEventListener(\"scroll\",handleScroll);},[]);const handleClick=()=>{if(typeof window===\"undefined\")return;const docHeight=document.documentElement.scrollHeight-window.innerHeight;const targetScroll=docHeight*(scrollPosition/100);window.scrollTo({top:targetScroll,behavior:\"smooth\"});};return /*#__PURE__*/_jsx(AnimatePresence,{children:isVisible&&/*#__PURE__*/_jsx(motion.button,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:animationDuration},onClick:handleClick,onMouseEnter:()=>startTransition(()=>setIsHovered(true)),onMouseLeave:()=>startTransition(()=>setIsHovered(false)),style:{position:\"relative\",width:frameSize,height:frameSize,backgroundColor:isHovered?hoverFrameColor:frameColor,border:`1px solid ${borderColor}`,borderRadius:borderRadius,boxShadow:shadow,bottom:bottom,cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",transition:`background-color ${animationDuration}s ease`,padding:0},\"aria-label\":\"Scroll to top\",children:/*#__PURE__*/_jsx(\"svg\",{width:iconSize,height:iconSize,viewBox:\"0 0 256 256\",fill:iconColor,xmlns:\"http://www.w3.org/2000/svg\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M213.66,165.66a8,8,0,0,1-11.32,0L128,91.31,53.66,165.66a8,8,0,0,1-11.32-11.32l80-80a8,8,0,0,1,11.32,0l80,80A8,8,0,0,1,213.66,165.66Z\"})})})});}addPropertyControls(ScrollToTopButton,{frameColor:{type:ControlType.Color,title:\"Frame Color\",defaultValue:\"#FFFFFF\"},iconColor:{type:ControlType.Color,title:\"Icon Color\",defaultValue:\"#000000\"},borderColor:{type:ControlType.Color,title:\"Border Color\",defaultValue:\"#EEEEEE\"},hoverFrameColor:{type:ControlType.Color,title:\"Hover Frame Color\",defaultValue:\"#F5F5F5\"},shadow:{type:ControlType.BoxShadow,title:\"Shadow\"},borderRadius:{type:ControlType.Number,title:\"Border Radius\",defaultValue:8,min:0,max:60,step:1,unit:\"px\"},scrollPosition:{type:ControlType.Number,title:\"Scroll Position\",defaultValue:0,min:0,max:100,step:1,unit:\"%\"},animationDuration:{type:ControlType.Number,title:\"Animation Duration\",defaultValue:.3,min:.1,max:2,step:.1,unit:\"s\"},frameSize:{type:ControlType.Number,title:\"Frame Size\",defaultValue:48,min:24,max:120,step:1,unit:\"px\",displayStepper:true},iconSize:{type:ControlType.Number,title:\"Icon Size\",defaultValue:24,min:12,max:80,step:1,unit:\"px\",displayStepper:true},bottom:{type:ControlType.Number,title:\"Bottom\",defaultValue:48,min:0,max:100,step:4,unit:\"px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ScrollToTopButton\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ScrollToTopButton.map"],"mappings":"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"}