{"version":3,"file":"WithLoadSafeScrollNav.ChObETCS.mjs","names":["useRef","useState","useCallback","useMemo","MotionComponent"],"sources":["https:/framerusercontent.com/modules/nhVseljAfImkhnxomPRl/Ko0wJSYhfUNiLALxDpJ6/WithLoadSafeScrollNav.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef,startTransition,useCallback,useEffect,useMemo,useRef,useState}from\"react\";import{useIsStaticRenderer}from\"framer\";export function withLoadSafeScrollNav(Component){return /*#__PURE__*/forwardRef(function LoadSafeScrollNavOverride(props,ref){const isStatic=useIsStaticRenderer();const localRef=useRef(null);const activatedRef=useRef(false);const touchStartedRef=useRef(false);const lastYRef=useRef(0);const accumulatedDeltaRef=useRef(0);const[isActivated,setIsActivated]=useState(false);const[isHidden,setIsHidden]=useState(false);const[navHeight,setNavHeight]=useState(72);const[reducedMotion,setReducedMotion]=useState(false);const setMergedRef=useCallback(node=>{localRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref&&typeof ref===\"object\"){ref.current=node;}},[ref]);const measureHeight=useCallback(()=>{const node=localRef.current;if(node){const measured=node.getBoundingClientRect().height;if(measured>0){startTransition(()=>setNavHeight(measured));return;}}const styleHeight=props?.style?.height;if(typeof styleHeight===\"number\"&&styleHeight>0){startTransition(()=>setNavHeight(styleHeight));}else if(typeof styleHeight===\"string\"){const parsed=Number.parseFloat(styleHeight);if(!Number.isNaN(parsed)&&parsed>0){startTransition(()=>setNavHeight(parsed));}}},[props?.style?.height]);const activateScrollBehavior=useCallback(()=>{if(activatedRef.current)return;activatedRef.current=true;if(typeof window!==\"undefined\"){lastYRef.current=window.scrollY||window.pageYOffset||0;}accumulatedDeltaRef.current=0;startTransition(()=>setIsActivated(true));},[]);useEffect(()=>{if(typeof window!==\"undefined\"){lastYRef.current=window.scrollY||window.pageYOffset||0;}else{lastYRef.current=0;}startTransition(()=>setIsHidden(false));if(typeof window!==\"undefined\"){const media=window.matchMedia(\"(prefers-reduced-motion: reduce)\");const updateReduced=()=>{startTransition(()=>setReducedMotion(media.matches));};updateReduced();media.addEventListener?.(\"change\",updateReduced);return()=>{media.removeEventListener?.(\"change\",updateReduced);};}},[]);useEffect(()=>{if(typeof window===\"undefined\")return;if(isStatic)return;measureHeight();const onResize=()=>{measureHeight();};const onWheel=()=>{activateScrollBehavior();};const onTouchStart=()=>{touchStartedRef.current=true;};const onTouchMove=()=>{if(touchStartedRef.current){activateScrollBehavior();}};const onTouchEnd=()=>{touchStartedRef.current=false;};const validKeys=new Set([\"PageUp\",\"PageDown\",\"Home\",\"End\",\"ArrowUp\",\"ArrowDown\",\" \"]);const onKeyDown=event=>{if(event.altKey||event.ctrlKey||event.metaKey)return;if(validKeys.has(event.key)){activateScrollBehavior();}};const threshold=10;const onScroll=()=>{const y=window.scrollY||window.pageYOffset||0;if(y<=0){accumulatedDeltaRef.current=0;lastYRef.current=0;startTransition(()=>setIsHidden(false));return;}if(!activatedRef.current){lastYRef.current=y;return;}const delta=y-lastYRef.current;if(Math.abs(delta)<1)return;const acc=accumulatedDeltaRef.current;if(acc>0&&delta<0||acc<0&&delta>0){accumulatedDeltaRef.current=0;}accumulatedDeltaRef.current+=delta;if(accumulatedDeltaRef.current>threshold){startTransition(()=>setIsHidden(true));accumulatedDeltaRef.current=threshold;}else if(accumulatedDeltaRef.current<-threshold){startTransition(()=>setIsHidden(false));accumulatedDeltaRef.current=-threshold;}lastYRef.current=y;};window.addEventListener(\"resize\",onResize);window.addEventListener(\"wheel\",onWheel,{passive:true});window.addEventListener(\"touchstart\",onTouchStart,{passive:true});window.addEventListener(\"touchmove\",onTouchMove,{passive:true});window.addEventListener(\"touchend\",onTouchEnd,{passive:true});window.addEventListener(\"touchcancel\",onTouchEnd,{passive:true});window.addEventListener(\"keydown\",onKeyDown);window.addEventListener(\"scroll\",onScroll,{passive:true});return()=>{window.removeEventListener(\"resize\",onResize);window.removeEventListener(\"wheel\",onWheel);window.removeEventListener(\"touchstart\",onTouchStart);window.removeEventListener(\"touchmove\",onTouchMove);window.removeEventListener(\"touchend\",onTouchEnd);window.removeEventListener(\"touchcancel\",onTouchEnd);window.removeEventListener(\"keydown\",onKeyDown);window.removeEventListener(\"scroll\",onScroll);};},[activateScrollBehavior,isStatic,measureHeight]);const animateY=useMemo(()=>{if(!isActivated)return 0;return isHidden?-navHeight:0;},[isActivated,isHidden,navHeight]);const transition=useMemo(()=>{if(reducedMotion)return{duration:0};return{type:\"spring\",stiffness:420,damping:38,mass:.9};},[reducedMotion]);const mergedProps={...props,initial:false,animate:{y:animateY,opacity:1},transition};const MotionComponent=Component;return /*#__PURE__*/_jsx(MotionComponent,{ref:setMergedRef,...mergedProps});});}\nexport const __FramerMetadata__ = {\"exports\":{\"withLoadSafeScrollNav\":{\"type\":\"reactHoc\",\"name\":\"withLoadSafeScrollNav\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./WithLoadSafeScrollNav.map"],"mappings":"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"}