{"version":3,"file":"AdvancedNavbar.CIsAMFa9.mjs","names":["useState","useRef","useCallback","__legacyOverrideHOC_DataObserverContext","_jsx"],"sources":["https:/framerusercontent.com/modules/RQJk9MUTeaymcNtyItDt/1ob3S0CjWSPxzRnUbAda/AdvancedNavbar.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useScroll,useMotionValueEvent}from\"framer\";import{useState,useRef,useEffect,useCallback,startTransition,forwardRef}from\"react\";export function useAdvancedNavbar(props){const{scrollY}=useScroll();const[variant,setVariant]=useState(\"Default\");const[yPos,setYPos]=useState(0);const lastScrollY=useRef(0);useEffect(()=>{const mediaQuery=window.matchMedia(\"(max-width: 809px)\");const updateBreakpoint=()=>{if(mediaQuery.matches){setVariant(scrollY.get()<=10?\"Mobile\":\"Mobile Scrolled\");}else{setVariant(scrollY.get()<=10?\"Default\":\"Scrolled\");}};updateBreakpoint();mediaQuery.addEventListener(\"change\",updateBreakpoint);return()=>mediaQuery.removeEventListener(\"change\",updateBreakpoint);},[]);useMotionValueEvent(scrollY,\"change\",latest=>{const isMobileDevice=window.matchMedia(\"(max-width: 809px)\").matches;if(isMobileDevice&&variant===\"Mobile Scrolled Open\"){if(Math.abs(latest-lastScrollY.current)>5){setVariant(\"Mobile Scrolled\");setYPos(-100);}lastScrollY.current=latest;return;}if(isMobileDevice){if(latest<=10){setVariant(\"Mobile\");setYPos(0);}else{setVariant(\"Mobile Scrolled\");if(latest>lastScrollY.current){setYPos(-100);}else{setYPos(0);}}}else{if(latest<=10){setVariant(\"Default\");setYPos(0);}else{setVariant(\"Scrolled\");if(latest>lastScrollY.current){setYPos(-100);}else{setYPos(0);}}}lastScrollY.current=latest;});return{variant:variant,animate:{y:yPos},transition:{type:\"tween\",duration:.3,ease:\"easeInOut\"},onTap(){const isMobileDevice=window.matchMedia(\"(max-width: 809px)\").matches;if(isMobileDevice){if(variant===\"Mobile Scrolled\"){setVariant(\"Mobile Scrolled Open\");}else if(variant===\"Mobile Scrolled Open\"){setVariant(\"Mobile Scrolled\");}}}};}export function withHomeLogoAccessibility(Component){return /*#__PURE__*/forwardRef((props,ref)=>{return /*#__PURE__*/_jsx(Component,{ref:ref,...props,\"aria-label\":\"Zur Startseite\"});});}export function withResponsiveAccessibilityVisibility(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const elementRef=useRef(null);const rafRef=useRef(null);const[isA11yHidden,setIsA11yHidden]=useState(false);const setRefs=useCallback(node=>{elementRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref){ref.current=node;}},[ref]);const isElementActuallyVisible=useCallback(el=>{if(typeof window===\"undefined\")return true;let current=el;let isSelf=true;while(current){if(current.hasAttribute(\"hidden\"))return false;const styles=window.getComputedStyle(current);if(styles.display===\"none\")return false;if(styles.visibility===\"hidden\"||styles.visibility===\"collapse\"){return false;}if(styles.contentVisibility===\"hidden\")return false;if(parseFloat(styles.opacity||\"1\")===0)return false;const shouldCheckRects=isSelf||styles.display!==\"contents\";if(shouldCheckRects){const rects=current.getClientRects();const rect=current.getBoundingClientRect();if(rects.length===0||rect.width<=0&&rect.height<=0){return false;}}isSelf=false;current=current.parentElement;}return true;},[]);const syncVisibility=useCallback(()=>{if(typeof window===\"undefined\")return;const el=elementRef.current;if(!el)return;const visible=isElementActuallyVisible(el);const nextHidden=!visible;startTransition(()=>{setIsA11yHidden(prev=>prev===nextHidden?prev:nextHidden);});},[isElementActuallyVisible]);const scheduleSync=useCallback(()=>{if(typeof window===\"undefined\")return;if(rafRef.current!==null){window.cancelAnimationFrame(rafRef.current);}rafRef.current=window.requestAnimationFrame(()=>{rafRef.current=null;syncVisibility();});},[syncVisibility]);useEffect(()=>{if(typeof window===\"undefined\")return;scheduleSync();const resizeObserver=new ResizeObserver(()=>scheduleSync());if(elementRef.current)resizeObserver.observe(elementRef.current);resizeObserver.observe(document.documentElement);const mutationObserver=new MutationObserver(mutations=>{for(const mutation of mutations){if(mutation.type===\"attributes\"&&(mutation.attributeName===\"style\"||mutation.attributeName===\"class\"||mutation.attributeName===\"hidden\")){scheduleSync();break;}}});if(document.body){mutationObserver.observe(document.body,{subtree:true,attributes:true,attributeFilter:[\"style\",\"class\",\"hidden\"]});}const mq=window.matchMedia(\"(min-width: 0px)\");const onWindowChange=()=>scheduleSync();window.addEventListener(\"resize\",onWindowChange);window.addEventListener(\"orientationchange\",onWindowChange);mq.addEventListener(\"change\",onWindowChange);return()=>{if(rafRef.current!==null){window.cancelAnimationFrame(rafRef.current);rafRef.current=null;}resizeObserver.disconnect();mutationObserver.disconnect();window.removeEventListener(\"resize\",onWindowChange);window.removeEventListener(\"orientationchange\",onWindowChange);mq.removeEventListener(\"change\",onWindowChange);};},[scheduleSync]);return /*#__PURE__*/_jsx(Component,{ref:setRefs,...props,\"aria-hidden\":isA11yHidden?true:undefined,inert:isA11yHidden?\"\":undefined});});}export function withGermanServiceSliderLabels(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const elementRef=useRef(null);const setRefs=useCallback(node=>{elementRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref){ref.current=node;}},[ref]);useEffect(()=>{if(typeof window===\"undefined\")return;const root=elementRef.current;if(!root)return;const prevLabel=\"Vorherige Referenz\";const nextLabel=\"N\\xe4chste Referenz\";const queryButton=selectors=>{for(const selector of selectors){const found=root.querySelector(selector);if(found instanceof HTMLButtonElement)return found;}return null;};const getButtonsByTextMatch=(matcher,source)=>{return source.find(button=>{const aria=button.getAttribute(\"aria-label\")??\"\";const title=button.getAttribute(\"title\")??\"\";const dataDir=button.getAttribute(\"data-direction\")??button.getAttribute(\"data-slide\")??button.getAttribute(\"data-action\")??\"\";const className=typeof button.className===\"string\"?button.className:\"\";return matcher.test(aria)||matcher.test(title)||matcher.test(dataDir)||matcher.test(className);});};const applyButtonA11y=(button,label)=>{if(!button)return;if(button.getAttribute(\"aria-label\")!==label){button.setAttribute(\"aria-label\",label);}if(button.getAttribute(\"title\")!==label){button.setAttribute(\"title\",label);}const images=button.querySelectorAll(\"img\");images.forEach(img=>{if(img.getAttribute(\"alt\")!==\"\"){img.setAttribute(\"alt\",\"\");}if(img.getAttribute(\"aria-hidden\")!==\"true\"){img.setAttribute(\"aria-hidden\",\"true\");}});};const syncLabels=()=>{const allButtons=Array.from(root.querySelectorAll(\"button\"));if(allButtons.length===0)return;const previousByAria=getButtonsByTextMatch(/(previous|prev)/i,allButtons);const nextByAria=getButtonsByTextMatch(/next/i,allButtons);const previousBySelector=queryButton(['[data-direction*=\"prev\" i]','[data-slide*=\"prev\" i]','[data-action*=\"prev\" i]','[class*=\"prev\" i]','[class*=\"previous\" i]','[data-testid*=\"prev\" i]']);const nextBySelector=queryButton(['[data-direction*=\"next\" i]','[data-slide*=\"next\" i]','[data-action*=\"next\" i]','[class*=\"next\" i]','[data-testid*=\"next\" i]']);let prevButton=previousByAria??previousBySelector;let nextButton=nextByAria??nextBySelector;if(!prevButton||!nextButton||prevButton===nextButton){const fallbackButtons=allButtons.slice(0,2);if(!prevButton&&fallbackButtons[0]){prevButton=fallbackButtons[0];}if(!nextButton&&fallbackButtons[1]){nextButton=fallbackButtons[1];}if(prevButton===nextButton&&fallbackButtons[1]){nextButton=fallbackButtons[1];}}applyButtonA11y(prevButton,prevLabel);applyButtonA11y(nextButton,nextLabel);};syncLabels();const mutationObserver=new MutationObserver(()=>{syncLabels();});mutationObserver.observe(root,{subtree:true,childList:true,attributes:true,attributeFilter:[\"aria-label\",\"title\",\"class\",\"style\"]});return()=>{mutationObserver.disconnect();};},[]);return /*#__PURE__*/_jsx(Component,{ref:setRefs,...props});});}import{useContext as __legacyOverrideHOC_useContext}from\"react\";import{DataObserverContext as __legacyOverrideHOC_DataObserverContext}from\"framer\";export function withuseAdvancedNavbar(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...useAdvancedNavbar(props)});};}withuseAdvancedNavbar.displayName=\"useAdvancedNavbar\";\nexport const __FramerMetadata__ = {\"exports\":{\"withuseAdvancedNavbar\":{\"type\":\"reactHoc\",\"name\":\"withuseAdvancedNavbar\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withGermanServiceSliderLabels\":{\"type\":\"reactHoc\",\"name\":\"withGermanServiceSliderLabels\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useAdvancedNavbar\":{\"type\":\"override\",\"name\":\"useAdvancedNavbar\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withHomeLogoAccessibility\":{\"type\":\"reactHoc\",\"name\":\"withHomeLogoAccessibility\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withResponsiveAccessibilityVisibility\":{\"type\":\"reactHoc\",\"name\":\"withResponsiveAccessibilityVisibility\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./AdvancedNavbar.map"],"mappings":"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"}