/*! @flowpoweruser/attributes · navbar-breakpoint v1.2.1 (Paket v1.7.1) · Apache-2.0 · (c) 2026 FlowPowerUser · https://www.flowpoweruser.com/attributes */ (()=>{"use strict";const i="FlowPowerUser";if(window[i]&&!Array.isArray(window[i]))return;const s=Array.isArray(window[i])?window[i].slice():[],a=new Map,t=Object.create(null);function f(n,r,o){try{n(r)}catch(e){console.error(`[FPU] R\xFCckruf f\xFCr "${o}" ist gescheitert:`,e)}}function c(n){if(!Array.isArray(n))return;const[r,o]=n;if(typeof r!="string"||typeof o!="function")return;const e=t[r];if(e){f(o,e.api,r);return}a.has(r)||a.set(r,[]),a.get(r).push(o)}const d={solutions:t,push(...n){for(const r of n)c(r);return 0},restart(n){const r=n?[t[n]]:Object.values(t);for(const o of r)o?.restart()},destroy(n){const r=n?[t[n]]:Object.values(t);for(const o of r)o?.destroy()}};function w(n,r){const o={version:r.version,api:r.api,restart(){r.abraeumen(),r.starten(),o.api=r.api},destroy(){r.abraeumen()}};o.loading=Promise.resolve(r.api),t[n]=o;const e=a.get(n);if(e){a.delete(n);for(const p of e)f(p,r.api,n)}}window.__fpu={anmelden:w},window[i]=d;for(const n of s)c(n)})(); (()=>{"use strict";const T="1.2.1",g="[FPU Navbar Breakpoint]",V="fpu-navbar-element",v="fpu-navbar-breakpoint",q="fpu-navbar-styling",M="fpu-navbar-logging",p="fpu-navbar-uid",X="fpu-navbar-stil",m={tablet:991,"mobile-landscape":767,mobile:479},B="tablet",x=320,S=2560;function _(e){if(typeof e!="string")return null;const n=e.trim().toLowerCase().replace(/px$/,"").trim();if(!/^\d+$/.test(n))return null;const t=Number.parseInt(n,10);return!Number.isFinite(t)||tS?null:t}function A(e){if(typeof e!="string")return B;const n=e.trim().toLowerCase();return Object.hasOwn(m,n)?n:B}function R(e){const n=m[A(e)];return Object.values(m).filter(t=>t>=n).sort((t,i)=>i-t)}function z(e,n){for(const t of n)if(E(e,t))return t;return null}function E(e,n){return typeof e!="string"||/(^|\s)not(\s|\()/i.test(e)?!1:new RegExp(`max-width\\s*:\\s*${n}px`).test(e)}function k(e,n,t,i=n){const u=`(min-width:${i}.02px)`,r=`screen and (max-width:${t}px) and ${u}`,o=typeof e=="string"?e.trim():"";if(!o)return r;const h=y(o).map(b=>b.trim()).filter(b=>E(b,n)).map(b=>b.replace(new RegExp(`max-width\\s*:\\s*${n}px`,"g"),`max-width:${t}px`).replace(/\(\s*min-width\s*:\s*[\d.]+px\s*\)\s*and\s*/gi,"").replace(/\s*and\s*\(\s*min-width\s*:\s*[\d.]+px\s*\)/gi,"").trim()+` and ${u}`);return h.length?h.join(","):r}function y(e){if(typeof e!="string")return[];const n=[];let t=0,i="",u=0;for(let r=0;r{const r=u.trim();if(!r)return"";if(C.test(r))return i;const o=r.match(H);return o?`${r.slice(0,o.index)}${t}${o[0].trim()}`:`${r}${t}`}).filter(Boolean).join(",")}let w=!1,I=0;const d=[];function Y(e){return e.classList.contains("w-nav")?e:e.closest(".w-nav")||e.querySelector(".w-nav")}function Z(e){let n="";for(const t of e)t.startsWith("--")&&(n+=`${t}:${e.getPropertyValue(t)};`);return n}function O(e){const n=y(e);return n.length>0&&n.every(t=>C.test(t.trim()))}function P(e){return globalThis.CSSKeyframesRule&&e instanceof globalThis.CSSKeyframesRule||globalThis.CSSPageRule&&e instanceof globalThis.CSSPageRule||globalThis.CSSFontFaceRule&&e instanceof globalThis.CSSFontFaceRule}function U(e){if(e.media)return`@media ${e.conditionText||e.media.mediaText}`;const n=typeof e.cssText=="string"?e.cssText:"",t=n.indexOf("{"),i=t>0?n.slice(0,t).trim():"";return i.startsWith("@")?i:""}function J(e,n,t){const i=n[0],u=[],r=new Set;let o=0,h=0;const b=(l,c)=>{const s=u[u.length-1];s&&s.query===l?s.teile.push(c):u.push({query:l,teile:[c]}),o++},L=(l,c,s)=>{for(const a of l)if(!P(a)){if(a.selectorText&&a.style){const f=F(a.selectorText,e);if(!f)continue;const G=O(a.selectorText)?Z(a.style):a.style.cssText;if(!G)continue;let N=`${f}{${G}}`;for(let W=s.length-1;W>=0;W--)N=`${s[W]}{${N}}`;b(c,N);continue}if(a.cssRules){const f=U(a);L(a.cssRules,c,f?[...s,f]:s)}}},K=(l,c=[])=>{for(const s of l){if(s.styleSheet){if(r.has(s.styleSheet))continue;r.add(s.styleSheet);try{j(s.media?.mediaText||"",s.styleSheet.cssRules,c)}catch{h++}continue}if(s.media){const a=s.conditionText||s.media.mediaText,f=z(a,n);if(f!==null){L(s.cssRules,k(a,f,t,i),c);continue}}if(s.cssRules&&!s.selectorText&&!P(s)){const a=U(s);K(s.cssRules,a?[...c,a]:c)}}},j=(l,c,s=[])=>{const a=z(l,n);if(a!==null){L(c,k(l,a,t,i),s);return}const f=l.trim().toLowerCase();f&&f!=="all"&&f!=="screen"||K(c,s)};for(const l of document.styleSheets){if(r.has(l)||l.disabled)continue;r.add(l);let c;try{c=l.cssRules}catch{h++;continue}j(l.media?.mediaText||"",c)}let Q="";for(const{query:l,teile:c}of u)Q+=`@media ${l}{${c.join("")}}`;return{css:Q,anzahl:o,gesperrt:h}}class ee{constructor(n,t,i){this.nav=n,this.breakpoint=t,this.quelle=i,this.uid=String(++I),this.nav.setAttribute(p,this.uid),this.stil=document.createElement("style"),this.stil.setAttribute(X,this.uid),document.head.appendChild(this.stil),this.aktiv=!0,this.aufbauen()}aufbauen(){const{css:n,anzahl:t,gesperrt:i}=J(this.uid,R(this.quelle),this.breakpoint);this.stil.textContent=n,this.regelAnzahl=t,this.gesperrteBlaetter=i,this.blaetter=document.styleSheets.length,t===0&&console.warn(`${g} Bis zum ${this.quelle}-Breakpoint (${m[this.quelle]} px) wurde kein Styling gefunden \u2014 es bleibt alles beim Alten.`)}destroy(){this.nav.removeAttribute(p),this.stil.remove(),this.aktiv=!1}}function $(){if(w)return;w=!0;const e=document.querySelectorAll(`[${V}="navbar"]`);let n=!1;for(const t of e){t.getAttribute(M)==="true"&&(n=!0);const i=Y(t);if(!i){console.warn(`${g} Keine Webflow-Navbar (.w-nav) gefunden \u2014 Attribut sitzt falsch.`);continue}if(i.hasAttribute(p))continue;const u=t.getAttribute(v)||i.getAttribute(v),r=_(u??"");if(r===null){console.warn(`${g} ${v}="${u??""}" ist unbrauchbar \u2014 erlaubt sind ${x}\u2013${S}. Webflows eigener Punkt bleibt.`);continue}const o=A(t.getAttribute(q)||i.getAttribute(q)),h=R(o)[0];if(r<=h){console.warn(`${g} ${r} px liegt nicht \xFCber dem ${o}-Breakpoint (${h} px). F\xFCr einen fr\xFCheren Umschaltpunkt die Einstellung an der Navbar selbst nutzen.`);continue}d.push(new ee(i,r,o))}if(n&&d.length>0)for(const t of d)console.info(`${g} v${T} \xB7 ${t.quelle} (${m[t.quelle]} px) \u2192 ${t.breakpoint} px, ${t.regelAnzahl} Regeln \xFCbernommen`+(t.gesperrteBlaetter?`, ${t.gesperrteBlaetter} fremde Stylesheets nicht lesbar`:""));window.__fpu?.anmelden?.("navbar-breakpoint",{version:T,api:window.fpuNavbarBreakpoint,starten:$,abraeumen:()=>window.fpuNavbarBreakpoint.destroyAll()})}window.fpuNavbarBreakpoint={version:T,instanzen:d,init:$,refresh(){for(const e of d)e.aktiv&&e.aufbauen()},__pure:{breakpointLesen:_,quelleLesen:A,istQuellQuery:E,queryUmschreiben:k,listeTeilen:y,selektorBegrenzen:F,istWurzelRegel:O,quellenKette:R,quelleDerQuery:z,QUELLEN:m,MIN:x,MAX:S},destroyAll(){for(const e of d)e.destroy();d.length=0,w=!1,I=0}},(window.Webflow=window.Webflow||[]).push($);const D=()=>{if(w)return;!document.querySelector('script[src*="webflow"]')&&Array.isArray(window.Webflow)&&$()};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",D,{once:!0}):setTimeout(D,0),window.addEventListener("load",()=>{if(!w&&Array.isArray(window.Webflow)){$();return}for(const e of d)e.aktiv&&e.blaetter!==document.styleSheets.length&&e.aufbauen()},{once:!0})})(); //# sourceMappingURL=navbar-breakpoint.js.map