@nextrap/nte-nav 1.1.40 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -1,370 +1,218 @@
1
- import { isBiggerThanBreakpoint as Et, Debouncer as he, waitForDomContentLoaded as V, SlotTool as Lt } from "@nextrap/nt-framework";
2
- import { nextrap_element as pe } from "@nextrap/nte-core";
3
- import "@nextrap/nte-offcanvas";
4
- import { Listen as X, waitForLoad as Wt, sleep as J, EventBindingsMixin as ve, LoggingMixin as ue, create_element as fe } from "@trunkjs/browser-utils";
5
- import { html as q, unsafeCSS as K, LitElement as nt } from "lit";
6
- import { customElement as Q, property as O, state as Z } from "lit/decorators.js";
7
- import { createRef as Ct, ref as Ot } from "lit/directives/ref.js";
8
- import { styleMap as _e } from "lit/directives/style-map.js";
9
- import "@nextrap/nte-burger";
10
- const ge = ":host{--container-width: var(--nt-container-width);--text-color: var(--nt-text);--hover-color: var(--nt-primary);--hover-text-color: var(--nt-text-on-primary);--transition: .2s ease-in-out;--submenu-bg: var(--nt-light);--submenu-text-color: var(--nt-text);--submenu-hover-text-color: var(--nt-primary);--justify-content: center;--sidemenu-bg: var(--nt-primary-subtle);--justify-sidebar-burger: flex-end;--height: auto;--default-alpha: .7;height:var(--height);display:block}nav{height:100%}#main{height:100%}#burger-wrapper{padding:15px}#text{padding-right:10px}#burger-default{cursor:pointer}#burger-default slot::slotted(span){color:rgb(from var(--text-color) r g b/var(--default-alpha));transition:color var(--transition)}#burger-default nte-burger{--color: rgb(from var(--text-color) r g b / var(--default-alpha))}#burger-default:hover slot::slotted(span){color:rgb(from var(--text-color) r g b/1)}#burger-default:hover nte-burger{--color: rgb(from var(--text-color) r g b / 1)}";
11
- var be = Object.create, st = Object.defineProperty, me = Object.getOwnPropertyDescriptor, Bt = (e, t) => (t = Symbol[e]) ? t : Symbol.for("Symbol." + e), I = (e) => {
1
+ import { nextrap_element as oe } from "@nextrap/nt-core";
2
+ import { html as m, unsafeCSS as le, nothing as j } from "lit";
3
+ import { customElement as ue, property as f, state as ee } from "lit/decorators.js";
4
+ import { ifDefined as S } from "lit/directives/if-defined.js";
5
+ const Ce = "*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;width:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit;background:none;border:none;outline:none}dialog{color:inherit;background:transparent;border:none}a,i{color:inherit;text-decoration:none}ul,ol{list-style:none}table{border-collapse:collapse;border-spacing:0}slot{display:contents}:host{--nte-nav-flow: row;--nte-nav-align: stretch;--nte-nav-justify: flex-start;--nte-nav-gap: 0;--nte-nav-item-gap: .5rem;--nte-nav-submenu-gap: .25rem;--nte-nav-submenu-min-inline-size: 12rem;--nte-nav-submenu-inline-size: max(100%, var(--nte-nav-submenu-min-inline-size));--nte-nav-submenu-max-block-size: min(70vh, 32rem);--nte-nav-submenu-position: absolute;--nte-nav-submenu-inset-block-start: 100%;--nte-nav-submenu-inset-inline-start: 0;--nte-nav-nested-submenu-inset-block-start: 0;--nte-nav-nested-submenu-inset-inline-start: 100%;--nte-nav-submenu-position-area: block-end span-inline-end;--nte-nav-nested-submenu-position-area: inline-end span-block-end;--nte-nav-submenu-enter-transform: translateY(-.35rem);--nte-nav-nested-submenu-enter-transform: translateX(-.35rem);--nte-nav-transition-duration: .16s;display:block;inline-size:fit-content;max-inline-size:100%}#nav{display:block}#list{display:flex;flex-flow:var(--nte-nav-flow) nowrap;align-items:var(--nte-nav-align);justify-content:var(--nte-nav-justify);gap:var(--nte-nav-gap);min-inline-size:0}#list>slot{display:contents}";
6
+ var Ie = Object.create, F = Object.defineProperty, Ne = Object.getOwnPropertyDescriptor, de = (e, t) => (t = Symbol[e]) ? t : Symbol.for("Symbol." + e), C = (e) => {
12
7
  throw TypeError(e);
13
- }, we = (e, t, i) => t in e ? st(e, t, { enumerable: !0, configurable: !0, writable: !0, value: i }) : e[t] = i, zt = (e, t) => st(e, "name", { value: t, configurable: !0 }), ye = (e) => [, , , be((e == null ? void 0 : e[Bt("metadata")]) ?? null)], It = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"], F = (e) => e !== void 0 && typeof e != "function" ? I("Function expected") : e, Se = (e, t, i, s, a) => ({ kind: It[e], name: t, metadata: s, addInitializer: (n) => i._ ? I("Already initialized") : a.push(F(n || null)) }), $e = (e, t) => we(t, Bt("metadata"), e[3]), b = (e, t, i, s) => {
14
- for (var a = 0, n = e[t >> 1], h = n && n.length; a < h; a++) t & 1 ? n[a].call(i) : s = n[a].call(i, s);
15
- return s;
16
- }, z = (e, t, i, s, a, n) => {
17
- var h, o, w, p, _, r = t & 7, g = !!(t & 8), d = !!(t & 16), f = r > 3 ? e.length + 1 : r ? g ? 1 : 2 : 0, E = It[r + 5], C = r > 3 && (e[f - 1] = []), D = e[f] || (e[f] = []), c = r && (!d && !g && (a = a.prototype), r < 5 && (r > 3 || !d) && me(r < 4 ? a : { get [i]() {
18
- return N(this, n);
19
- }, set [i](l) {
20
- return U(this, n, l);
21
- } }, i));
22
- r ? d && r < 4 && zt(n, (r > 2 ? "set " : r > 1 ? "get " : "") + i) : zt(a, i);
23
- for (var y = s.length - 1; y >= 0; y--)
24
- p = Se(r, i, w = {}, e[3], D), r && (p.static = g, p.private = d, _ = p.access = { has: d ? (l) => ke(a, l) : (l) => i in l }, r ^ 3 && (_.get = d ? (l) => (r ^ 1 ? N : xe)(l, a, r ^ 4 ? n : c.get) : (l) => l[i]), r > 2 && (_.set = d ? (l, S) => U(l, a, S, r ^ 4 ? n : c.set) : (l, S) => l[i] = S)), o = (0, s[y])(r ? r < 4 ? d ? n : c[E] : r > 4 ? void 0 : { get: c.get, set: c.set } : a, p), w._ = 1, r ^ 4 || o === void 0 ? F(o) && (r > 4 ? C.unshift(o) : r ? d ? n = o : c[E] = o : a = o) : typeof o != "object" || o === null ? I("Object expected") : (F(h = o.get) && (c.get = h), F(h = o.set) && (c.set = h), F(h = o.init) && C.unshift(h));
25
- return r || $e(e, a), c && st(a, i, c), d ? r ^ 4 ? n : c : a;
26
- }, ot = (e, t, i) => t.has(e) || I("Cannot " + i), ke = (e, t) => Object(t) !== t ? I('Cannot use the "in" operator on this value') : e.has(t), N = (e, t, i) => (ot(e, t, "read from private field"), i ? i.call(e) : t.get(e)), M = (e, t, i) => t.has(e) ? I("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(e) : t.set(e, i), U = (e, t, i, s) => (ot(e, t, "write to private field"), s ? s.call(e, i) : t.set(e, i), i), xe = (e, t, i) => (ot(e, t, "access private method"), i), Rt, At, Dt, Ft, Yt, Gt, Ut, tt, qt, v, lt, dt, ct, ht, pt, k;
27
- const Ee = {
28
- eventBinding: !0,
29
- logging: !0
30
- };
31
- qt = [Q("nte-nav")];
32
- class $ extends (tt = pe(Ee), Ut = [O({ type: String, reflect: !0 })], Gt = [O({ type: String, reflect: !0 })], Yt = [O({ type: String, reflect: !0, attribute: "transfer-to" })], Ft = [O({ type: String, reflect: !1, attribute: "data-group-name" })], Dt = [Z()], At = [X("click", { target: "host" })], Rt = [X("click", { target: "window" })], tt) {
8
+ }, Le = (e, t, n) => t in e ? F(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n, te = (e, t) => F(e, "name", { value: t, configurable: !0 }), Pe = (e) => [, , , Ie((e == null ? void 0 : e[de("metadata")]) ?? null)], ce = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"], O = (e) => e !== void 0 && typeof e != "function" ? C("Function expected") : e, Oe = (e, t, n, o, r) => ({ kind: ce[e], name: t, metadata: o, addInitializer: (a) => n._ ? C("Already initialized") : r.push(O(a || null)) }), Ae = (e, t) => Le(t, de("metadata"), e[3]), T = (e, t, n, o) => {
9
+ for (var r = 0, a = e[t >> 1], v = a && a.length; r < v; r++) t & 1 ? a[r].call(n) : o = a[r].call(n, o);
10
+ return o;
11
+ }, ve = (e, t, n, o, r, a) => {
12
+ var v, l, N, b, y, i = t & 7, k = !!(t & 8), c = !!(t & 16), w = i > 3 ? e.length + 1 : i ? k ? 1 : 2 : 0, L = ce[i + 5], P = i > 3 && (e[w - 1] = []), E = e[w] || (e[w] = []), d = i && (!c && !k && (r = r.prototype), i < 5 && (i > 3 || !c) && Ne(i < 4 ? r : { get [n]() {
13
+ return ne(this, a);
14
+ }, set [n](u) {
15
+ return ie(this, a, u);
16
+ } }, n));
17
+ i ? c && i < 4 && te(a, (i > 2 ? "set " : i > 1 ? "get " : "") + n) : te(r, n);
18
+ for (var $ = o.length - 1; $ >= 0; $--)
19
+ b = Oe(i, n, N = {}, e[3], E), i && (b.static = k, b.private = c, y = b.access = { has: c ? (u) => Me(r, u) : (u) => n in u }, i ^ 3 && (y.get = c ? (u) => (i ^ 1 ? ne : Te)(u, r, i ^ 4 ? a : d.get) : (u) => u[n]), i > 2 && (y.set = c ? (u, x) => ie(u, r, x, i ^ 4 ? a : d.set) : (u, x) => u[n] = x)), l = (0, o[$])(i ? i < 4 ? c ? a : d[L] : i > 4 ? void 0 : { get: d.get, set: d.set } : r, b), N._ = 1, i ^ 4 || l === void 0 ? O(l) && (i > 4 ? P.unshift(l) : i ? c ? a = l : d[L] = l : r = l) : typeof l != "object" || l === null ? C("Object expected") : (O(v = l.get) && (d.get = v), O(v = l.set) && (d.set = v), O(v = l.init) && P.unshift(v));
20
+ return i || Ae(e, r), d && F(r, n, d), c ? i ^ 4 ? a : d : r;
21
+ }, B = (e, t, n) => t.has(e) || C("Cannot " + n), Me = (e, t) => Object(t) !== t ? C('Cannot use the "in" operator on this value') : e.has(t), ne = (e, t, n) => (B(e, t, "read from private field"), n ? n.call(e) : t.get(e)), Ee = (e, t, n) => t.has(e) ? C("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(e) : t.set(e, n), ie = (e, t, n, o) => (B(e, t, "write to private field"), o ? o.call(e, n) : t.set(e, n), n), Te = (e, t, n) => (B(e, t, "access private method"), n), pe, W, me, z, V;
22
+ me = [ue("nte-nav")];
23
+ class M extends (W = oe(), pe = [f({ type: String, reflect: !0, attribute: "aria-label" })], W) {
33
24
  constructor() {
34
- super(), b(v, 5, this), M(this, lt, b(v, 8, this, "slave")), b(v, 11, this), M(this, dt, b(v, 12, this, "99999px")), b(v, 15, this), M(this, ct, b(v, 16, this, "")), b(v, 19, this), M(this, ht, b(v, 20, this, "")), b(v, 23, this), M(this, pt, b(v, 24, this, !1)), b(v, 27, this), M(this, k, null);
35
- }
36
- handleClickOnSubmenu(t) {
37
- var s;
38
- const i = (s = t.target) == null ? void 0 : s.closest("li:has(ul)");
39
- N(this, k) && (N(this, k).classList.remove("is-open"), U(this, k, null)), i && (U(this, k, i), i.classList.add("is-open"));
40
- }
41
- handleClickOutside(t) {
42
- if (!N(this, k))
43
- return;
44
- N(this, k).contains(t.target) || (N(this, k).classList.remove("is-open"), U(this, k, null));
45
- }
46
- getOffcanvas() {
47
- return this.transferTo ? document.querySelector(this.transferTo) : null;
48
- }
49
- getOffcanvasNav() {
50
- const t = this.getOffcanvas();
51
- return t ? t.querySelector("nte-nav") : null;
25
+ super(...arguments), Ee(this, V, T(z, 8, this, "")), T(z, 11, this);
52
26
  }
53
27
  render() {
54
- return q` <nav>
55
- <div id="burger-wrapper" ?hidden=${!this._isTransferred}>
56
- <slot
57
- name="burger"
58
- open
59
- aria-haspopup="true"
60
- id="burger"
61
- class="burger"
62
- @click=${() => {
63
- var t;
64
- return (t = this.getOffcanvas()) == null ? void 0 : t.open();
65
- }}
66
- >
67
- <!-- fallback icon -->
68
- ${this._isTransferred ? q`<div id="burger-default" style="display:flex; align-items: center; justify-content: center;">
69
- <div id="text" part="menutext"><slot name="menu-text"></slot></div>
70
- <nte-burger
71
- part="burger"
72
- aria-label="Menu"
73
- role="button"
74
- aria-haspopup="menu"
75
- aria-controls="main-menu"
76
- data-group-name="${this.dataGroupName}"
77
- id="open-burger"
78
- onclick="this.open = true"
79
- ></nte-burger>
80
- </div>` : ""}
81
- </slot>
82
- </div>
83
-
84
- <div class="nt-nav-links" id="main" part="main">
85
- <slot id="main-slot"></slot>
86
- </div>
87
- </nav>`;
28
+ return super.render(), m`
29
+ <nav id="nav" part="nav" aria-label=${S(this.ariaLabel || void 0)}>
30
+ <div id="list" part="list" role="list">
31
+ <slot @slotchange=${this._onSlotChange}></slot>
32
+ </div>
33
+ </nav>
34
+ `;
88
35
  }
89
- transferToElement(t) {
90
- var a;
91
- const i = (a = this.shadowRoot) == null ? void 0 : a.querySelector("#main-slot");
92
- if (i === null)
93
- return;
94
- Array.from(i.assignedElements({ flatten: !0 })).forEach((n) => {
95
- n instanceof HTMLElement && t.appendChild(n);
36
+ _onSlotChange(t) {
37
+ const o = t.currentTarget.assignedElements({ flatten: !0 }).filter((a) => a.matches("nte-nav-item")), r = getComputedStyle(this).getPropertyValue("--nte-nav-flow").trim() === "column";
38
+ o.forEach((a) => {
39
+ const v = Array.from(a.children).some((l) => l.matches("nte-nav-item"));
40
+ a.toggleAttribute("submenu-popover", v && !r);
96
41
  });
97
42
  }
98
- updated(t) {
99
- var i, s;
100
- super.updated(t), this._isTransferred ? this.transferToElement(
101
- this.getOffcanvasNav() ?? (() => {
102
- throw new Error("No offcanvas nav found");
103
- })()
104
- ) : ((i = this.getOffcanvasNav()) == null || i.transferToElement(this), (s = this.getOffcanvas()) == null || s.close());
105
- }
106
- firstUpdated(t) {
107
- super.firstUpdated(t);
108
- const i = this.classList;
109
- !i.contains("nav-vertical") && !i.contains("nav-horizontal") && i.add(this.closest("nte-offcanvas") === null ? "nav-horizontal" : "nav-vertical");
110
- }
111
- updateTransferState() {
112
- Et(this.breakpoint) ? this._isTransferred = !1 : this._isTransferred = !0;
113
- }
114
- async connectedCallback() {
115
- super.connectedCallback(), this.mode !== "slave" && (this.transferTo !== "" && (this._isTransferred = !1, this.breakpoint !== "" && (Et(this.breakpoint) || (this._isTransferred = !0), window.addEventListener("breakpoint-changed", (t) => {
116
- this.updateTransferState();
117
- }))), await Wt(), this.updateTransferState(), await J(3e3), this.updateTransferState());
118
- }
119
43
  }
120
- v = ye(tt);
121
- lt = /* @__PURE__ */ new WeakMap();
122
- dt = /* @__PURE__ */ new WeakMap();
123
- ct = /* @__PURE__ */ new WeakMap();
124
- ht = /* @__PURE__ */ new WeakMap();
125
- pt = /* @__PURE__ */ new WeakMap();
126
- k = /* @__PURE__ */ new WeakMap();
127
- z(v, 4, "mode", Ut, $, lt);
128
- z(v, 4, "breakpoint", Gt, $, dt);
129
- z(v, 4, "transferTo", Yt, $, ct);
130
- z(v, 4, "dataGroupName", Ft, $, ht);
131
- z(v, 4, "_isTransferred", Dt, $, pt);
132
- z(v, 1, "handleClickOnSubmenu", At, $);
133
- z(v, 1, "handleClickOutside", Rt, $);
134
- $ = z(v, 0, "NteNav", qt, $);
135
- $.styles = [K(ge)];
136
- b(v, 1, $);
137
- const Ce = "*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;width:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit;background:none;border:none;outline:none}a,i{color:inherit;text-decoration:none}ul,ol{list-style:none}table{border-collapse:collapse;border-spacing:0}slot{display:contents}:host{--bg: transparent;--spacer-bg: transparent;--container-width: var(--nt-container-width, 100%);--brand-height: 80px;--spacer-height: 80px;width:100vw;margin:0}:host(a){height:85px;width:auto}#wrapper{position:relative;left:0;top:0;right:0;width:100%}#spacer{position:relative;top:0;left:0;width:100%;transition:height .3s ease-in-out;height:var(--spacer-height);background-color:var(--spacer-bg)}#navbar{position:absolute;top:0;width:100vw;height:auto;background-color:var(--bg);z-index:1000}#main{width:100vw;display:block}";
138
- var Oe = Object.create, vt = Object.defineProperty, ze = Object.getOwnPropertyDescriptor, jt = (e, t) => (t = Symbol[e]) ? t : Symbol.for("Symbol." + e), R = (e) => {
44
+ z = Pe(W);
45
+ V = /* @__PURE__ */ new WeakMap();
46
+ ve(z, 4, "ariaLabel", pe, M, V);
47
+ M = ve(z, 0, "NteNav", me, M);
48
+ M.styles = [le(Ce)];
49
+ T(z, 1, M);
50
+ const We = "*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;width:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit;background:none;border:none;outline:none}dialog{color:inherit;background:transparent;border:none}a,i{color:inherit;text-decoration:none}ul,ol{list-style:none}table{border-collapse:collapse;border-spacing:0}slot{display:contents}slot.slot-empty{display:none!important}:host{--order: 0;display:block;position:relative;order:var(--order);min-inline-size:0}#link,#text,#disclosure,#toggle{display:flex;align-items:center}#item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;min-block-size:100%}#details{display:contents}#link,#text,#disclosure{flex:1 1 auto;min-inline-size:0;gap:var(--nte-nav-item-gap)}#label{min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#link,#text,#disclosure{grid-column:1/-1;grid-row:1}#item:has(#toggle)>#link{grid-column:1}#toggle{grid-column:2;grid-row:1;flex:0 0 auto;justify-content:center}#disclosure,#toggle{anchor-name:--nte-nav-submenu-anchor;list-style:none}#disclosure::-webkit-details-marker,#toggle::-webkit-details-marker{display:none}#icon:has(>slot.slot-empty){display:none!important}#icon,#indicator{flex:0 0 auto}#indicator{inline-size:1em;block-size:1em;transition:transform var(--nte-nav-transition-duration) ease}#details[open] #indicator,#item:has(#submenu:popover-open) #indicator{transform:rotate(180deg)}#submenu{z-index:10;display:grid;grid-column:1/-1;grid-row:2;grid-template-rows:0fr;inline-size:var(--nte-nav-submenu-inline-size);min-inline-size:var(--nte-nav-submenu-min-inline-size);max-block-size:var(--nte-nav-submenu-max-block-size);margin:0;padding:0;overflow:hidden;position:var(--nte-nav-submenu-position);inset-block-start:var(--nte-nav-submenu-inset-block-start);inset-inline-start:var(--nte-nav-submenu-inset-inline-start);opacity:0;transform:var(--nte-nav-submenu-enter-transform);visibility:hidden;pointer-events:none;transition:grid-template-rows var(--nte-nav-transition-duration) ease,opacity var(--nte-nav-transition-duration) ease,transform var(--nte-nav-transition-duration) ease,visibility var(--nte-nav-transition-duration) allow-discrete}#details[open] #submenu{grid-template-rows:1fr;margin-block-start:var(--nte-nav-submenu-gap);opacity:1;transform:none;visibility:visible;pointer-events:auto}#submenu[popover]{inline-size:max-content;max-inline-size:calc(100vw - 2rem);margin:var(--nte-nav-submenu-gap) 0 0;overflow:hidden;position:fixed;position-anchor:--nte-nav-submenu-anchor;position-area:var(--nte-nav-submenu-position-area);position-try-fallbacks:flip-block,flip-inline;inset:auto;transition:opacity var(--nte-nav-transition-duration) ease,transform var(--nte-nav-transition-duration) ease,display var(--nte-nav-transition-duration) allow-discrete,overlay var(--nte-nav-transition-duration) allow-discrete}@supports (inline-size: anchor-size(inline)){#submenu[popover]{inline-size:max(anchor-size(inline),var(--nte-nav-submenu-min-inline-size))}}#submenu[popover]:not(:popover-open){display:none}#submenu[popover]:popover-open{display:grid;grid-template-rows:1fr;opacity:1;transform:none;visibility:visible;pointer-events:auto}@starting-style{#submenu[popover]:popover-open{opacity:0;transform:var(--nte-nav-submenu-enter-transform)}}#submenu-inner{min-block-size:0;overflow:auto}#submenu slot{display:flex;flex-direction:column;align-items:stretch}#submenu slot::slotted(nte-nav-item){--nte-nav-submenu-inset-block-start: var(--nte-nav-nested-submenu-inset-block-start);--nte-nav-submenu-inset-inline-start: var(--nte-nav-nested-submenu-inset-inline-start);--nte-nav-submenu-position-area: var(--nte-nav-nested-submenu-position-area);--nte-nav-submenu-enter-transform: var(--nte-nav-nested-submenu-enter-transform)}@media(prefers-reduced-motion:reduce){#indicator,#submenu{transition-duration:.01ms}}";
51
+ var De = Object.create, G = Object.defineProperty, Fe = Object.getOwnPropertyDescriptor, he = (e, t) => (t = Symbol[e]) ? t : Symbol.for("Symbol." + e), I = (e) => {
139
52
  throw TypeError(e);
140
- }, Te = (e, t, i) => t in e ? vt(e, t, { enumerable: !0, configurable: !0, writable: !0, value: i }) : e[t] = i, Tt = (e, t) => vt(e, "name", { value: t, configurable: !0 }), Ne = (e) => [, , , Oe((e == null ? void 0 : e[jt("metadata")]) ?? null)], Ht = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"], Y = (e) => e !== void 0 && typeof e != "function" ? R("Function expected") : e, Pe = (e, t, i, s, a) => ({ kind: Ht[e], name: t, metadata: s, addInitializer: (n) => i._ ? R("Already initialized") : a.push(Y(n || null)) }), Me = (e, t) => Te(t, jt("metadata"), e[3]), et = (e, t, i, s) => {
141
- for (var a = 0, n = e[t >> 1], h = n && n.length; a < h; a++) t & 1 ? n[a].call(i) : s = n[a].call(i, s);
142
- return s;
143
- }, Jt = (e, t, i, s, a, n) => {
144
- var h, o, w, p, _, r = t & 7, g = !!(t & 8), d = !!(t & 16), f = r > 3 ? e.length + 1 : r ? g ? 1 : 2 : 0, E = Ht[r + 5], C = r > 3 && (e[f - 1] = []), D = e[f] || (e[f] = []), c = r && (!d && !g && (a = a.prototype), r < 5 && (r > 3 || !d) && ze(r < 4 ? a : { get [i]() {
145
- return Nt(this, n);
146
- }, set [i](l) {
147
- return Pt(this, n, l);
148
- } }, i));
149
- r ? d && r < 4 && Tt(n, (r > 2 ? "set " : r > 1 ? "get " : "") + i) : Tt(a, i);
150
- for (var y = s.length - 1; y >= 0; y--)
151
- p = Pe(r, i, w = {}, e[3], D), r && (p.static = g, p.private = d, _ = p.access = { has: d ? (l) => Le(a, l) : (l) => i in l }, r ^ 3 && (_.get = d ? (l) => (r ^ 1 ? Nt : Be)(l, a, r ^ 4 ? n : c.get) : (l) => l[i]), r > 2 && (_.set = d ? (l, S) => Pt(l, a, S, r ^ 4 ? n : c.set) : (l, S) => l[i] = S)), o = (0, s[y])(r ? r < 4 ? d ? n : c[E] : r > 4 ? void 0 : { get: c.get, set: c.set } : a, p), w._ = 1, r ^ 4 || o === void 0 ? Y(o) && (r > 4 ? C.unshift(o) : r ? d ? n = o : c[E] = o : a = o) : typeof o != "object" || o === null ? R("Object expected") : (Y(h = o.get) && (c.get = h), Y(h = o.set) && (c.set = h), Y(h = o.init) && C.unshift(h));
152
- return r || Me(e, a), c && vt(a, i, c), d ? r ^ 4 ? n : c : a;
153
- }, ut = (e, t, i) => t.has(e) || R("Cannot " + i), Le = (e, t) => Object(t) !== t ? R('Cannot use the "in" operator on this value') : e.has(t), Nt = (e, t, i) => (ut(e, t, "read from private field"), i ? i.call(e) : t.get(e)), We = (e, t, i) => t.has(e) ? R("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(e) : t.set(e, i), Pt = (e, t, i, s) => (ut(e, t, "write to private field"), s ? s.call(e, i) : t.set(e, i), i), Be = (e, t, i) => (ut(e, t, "access private method"), i), Kt, it, Qt, B, ft;
154
- Qt = [Q("nte-navbar")];
155
- class j extends (it = nt, Kt = [O({ type: Number, attribute: "scroll-threshold", reflect: !0 })], it) {
53
+ }, Be = (e, t, n) => t in e ? G(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n, re = (e, t) => G(e, "name", { value: t, configurable: !0 }), Ve = (e) => [, , , De((e == null ? void 0 : e[he("metadata")]) ?? null)], be = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"], A = (e) => e !== void 0 && typeof e != "function" ? I("Function expected") : e, Ge = (e, t, n, o, r) => ({ kind: be[e], name: t, metadata: o, addInitializer: (a) => n._ ? I("Already initialized") : r.push(A(a || null)) }), He = (e, t) => Be(t, he("metadata"), e[3]), p = (e, t, n, o) => {
54
+ for (var r = 0, a = e[t >> 1], v = a && a.length; r < v; r++) t & 1 ? a[r].call(n) : o = a[r].call(n, o);
55
+ return o;
56
+ }, _ = (e, t, n, o, r, a) => {
57
+ var v, l, N, b, y, i = t & 7, k = !!(t & 8), c = !!(t & 16), w = i > 3 ? e.length + 1 : i ? k ? 1 : 2 : 0, L = be[i + 5], P = i > 3 && (e[w - 1] = []), E = e[w] || (e[w] = []), d = i && (!c && !k && (r = r.prototype), i < 5 && (i > 3 || !c) && Fe(i < 4 ? r : { get [n]() {
58
+ return ae(this, a);
59
+ }, set [n](u) {
60
+ return se(this, a, u);
61
+ } }, n));
62
+ i ? c && i < 4 && re(a, (i > 2 ? "set " : i > 1 ? "get " : "") + n) : re(r, n);
63
+ for (var $ = o.length - 1; $ >= 0; $--)
64
+ b = Ge(i, n, N = {}, e[3], E), i && (b.static = k, b.private = c, y = b.access = { has: c ? (u) => Ue(r, u) : (u) => n in u }, i ^ 3 && (y.get = c ? (u) => (i ^ 1 ? ae : Xe)(u, r, i ^ 4 ? a : d.get) : (u) => u[n]), i > 2 && (y.set = c ? (u, x) => se(u, r, x, i ^ 4 ? a : d.set) : (u, x) => u[n] = x)), l = (0, o[$])(i ? i < 4 ? c ? a : d[L] : i > 4 ? void 0 : { get: d.get, set: d.set } : r, b), N._ = 1, i ^ 4 || l === void 0 ? A(l) && (i > 4 ? P.unshift(l) : i ? c ? a = l : d[L] = l : r = l) : typeof l != "object" || l === null ? I("Object expected") : (A(v = l.get) && (d.get = v), A(v = l.set) && (d.set = v), A(v = l.init) && P.unshift(v));
65
+ return i || He(e, r), d && G(r, n, d), c ? i ^ 4 ? a : d : r;
66
+ }, H = (e, t, n) => t.has(e) || I("Cannot " + n), Ue = (e, t) => Object(t) !== t ? I('Cannot use the "in" operator on this value') : e.has(t), ae = (e, t, n) => (H(e, t, "read from private field"), n ? n.call(e) : t.get(e)), g = (e, t, n) => t.has(e) ? I("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(e) : t.set(e, n), se = (e, t, n, o) => (H(e, t, "write to private field"), o ? o.call(e, n) : t.set(e, n), n), Xe = (e, t, n) => (H(e, t, "access private method"), n), _e, ge, fe, ye, ke, we, $e, xe, Se, D, ze, s, U, X, Y, q, J, K, Q, R, Z;
67
+ ze = [ue("nte-nav-item")];
68
+ class h extends (D = oe({ slotVisibility: !0 }), Se = [f({ type: String, reflect: !0 })], xe = [f({ type: String, reflect: !0 })], $e = [f({ type: String, reflect: !0 })], we = [f({ type: String })], ke = [f({ type: String, reflect: !0 })], ye = [f({ type: Boolean, reflect: !0, attribute: "submenu-popover" })], fe = [f({ type: String, attribute: "submenu-label" })], ge = [ee()], _e = [ee()], D) {
156
69
  constructor() {
157
- super(), this.navbarRef = Ct(), this.spacerRef = Ct(), We(this, ft, et(B, 8, this, 0)), et(B, 11, this), this._lastScrollY = window.scrollY, this._scrollUpPixels = 0, this._debouncer = void 0, this._debouncer = new he(100, 300), document.addEventListener(
158
- "scroll",
159
- async () => {
160
- this.updateScrollState();
161
- },
162
- { passive: !0 }
163
- );
164
- }
165
- static get is() {
166
- return "nte-navbar";
167
- }
168
- updateScrollState() {
169
- const t = window.scrollY;
170
- t > 1 ? this.classList.add("is-scrolled") : this.classList.remove("is-scrolled"), t < this._lastScrollY ? (this._scrollUpPixels += this._lastScrollY - t, this._scrollUpPixels > 10 && t < this.scrollThreshold && this.classList.add("is-scrolling-up")) : (this._scrollUpPixels = 0, this.classList.remove("is-scrolling-up")), t > this.scrollThreshold ? this.classList.add("is-below-threshold") : this.classList.remove("is-below-threshold"), this._lastScrollY = t;
70
+ super(...arguments), g(this, U, p(s, 8, this, "")), p(s, 11, this), g(this, X, p(s, 12, this, "")), p(s, 15, this), g(this, Y, p(s, 16, this, "")), p(s, 19, this), g(this, q, p(s, 20, this, "")), p(s, 23, this), g(this, J, p(s, 24, this, "")), p(s, 27, this), g(this, K, p(s, 28, this, !1)), p(s, 31, this), g(this, Q, p(s, 32, this, "Untermenü")), p(s, 35, this), g(this, R, p(s, 36, this, !1)), p(s, 39, this), g(this, Z, p(s, 40, this, "")), p(s, 43, this);
171
71
  }
172
- async connectedCallback() {
173
- this.updateScrollState(), await V(), super.connectedCallback();
174
- }
175
- // Adjust the spacer height on every render
176
- async updated(t) {
177
- await V(), super.updated(t);
72
+ connectedCallback() {
73
+ super.connectedCallback(), this.hasAttribute("role") || this.setAttribute("role", "listitem"), this._assignNestedItems();
178
74
  }
179
- firstUpdated(t) {
180
- Lt.observeEmptySlots(this);
75
+ disconnectedCallback() {
76
+ super.disconnectedCallback();
181
77
  }
182
78
  render() {
183
- return q`
184
- <div id="wrapper" part="wrapper">
185
- <div id="spacer" part="spacer" ${Ot(this.spacerRef)}></div>
186
- <div id="navbar" part="navbar" ${Ot(this.navbarRef)}>
187
- <div id="brand" part="brand">
188
- <slot name="brand"></slot>
189
- </div>
190
- <div id="main">
191
- <slot></slot>
192
- </div>
193
- </div>
79
+ super.render();
80
+ const t = this._renderLabel();
81
+ return m`
82
+ <div id="item" part="item">
83
+ ${this._hasSubmenu ? this.submenuPopover ? m`
84
+ ${this.href ? this._renderLink(t) : j}
85
+ ${this.href ? this._renderIconOnlyPopoverControl() : this._renderLabelPopoverControl(t)}
86
+ ${this._renderSubmenu()}
87
+ ` : m`
88
+ ${this.href ? this._renderLink(t) : j}
89
+ <details id="details" part="details">
90
+ ${this.href ? this._renderIconOnlyDisclosure() : this._renderLabelDisclosure(t)}
91
+ ${this._renderSubmenu()}
92
+ </details>
93
+ ` : this.href ? this._renderLink(t) : m`<span id="text" part="text">${t}</span>`}
194
94
  </div>
195
95
  `;
196
96
  }
197
- }
198
- B = Ne(it);
199
- ft = /* @__PURE__ */ new WeakMap();
200
- Jt(B, 4, "scrollThreshold", Kt, j, ft);
201
- j = Jt(B, 0, "NteNavbar", Qt, j);
202
- j.styles = [K(Ce)];
203
- et(B, 1, j);
204
- const Ie = "*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;width:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit;background:none;border:none;outline:none}a,i{color:inherit;text-decoration:none}ul,ol{list-style:none}table{border-collapse:collapse;border-spacing:0}slot{display:contents}:host{--container-width: var(--nt-container-width, 100%);--background: transparent;--text-color: var(--nt-text);--height: auto;--brand-height: 80px;display:block;height:100%;width:100vw}:host(.hide-on-scroll){transition:max-height .3s ease-in-out;max-height:100px}:host(.hide-on-scroll.is-scrolled){max-height:0;overflow:hidden}:host(.brand-center) #container{justify-content:space-between;position:relative}:host(.brand-center) #container #brand{justify-content:center;width:100%}:host(.brand-center) #container #nav{position:absolute;right:0;top:0;bottom:0}#main{height:var(--height);transition:height .2s ease-in-out;overflow:visible;width:100%;display:flex;background:var(--background)}#container{width:var(--container-width);margin:0 auto;display:flex}#container #brand:has(slot[empty]){display:none}#container #brand{min-width:0;flex-shrink:1;width:auto;align-items:start;display:flex;height:100%;justify-items:center}#container #nav{display:flex;flex-grow:1;justify-content:end;align-items:center;gap:1rem}";
205
- var Re = Object.create, _t = Object.defineProperty, Ae = Object.getOwnPropertyDescriptor, Vt = (e, t) => (t = Symbol[e]) ? t : Symbol.for("Symbol." + e), Xt = (e) => {
206
- throw TypeError(e);
207
- }, De = (e, t, i) => t in e ? _t(e, t, { enumerable: !0, configurable: !0, writable: !0, value: i }) : e[t] = i, Fe = (e, t) => _t(e, "name", { value: t, configurable: !0 }), Ye = (e) => [, , , Re((e == null ? void 0 : e[Vt("metadata")]) ?? null)], Ge = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"], Zt = (e) => e !== void 0 && typeof e != "function" ? Xt("Function expected") : e, Ue = (e, t, i, s, a) => ({ kind: Ge[e], name: t, metadata: s, addInitializer: (n) => i._ ? Xt("Already initialized") : a.push(Zt(n || null)) }), qe = (e, t) => De(t, Vt("metadata"), e[3]), je = (e, t, i, s) => {
208
- for (var a = 0, n = e[t >> 1], h = n && n.length; a < h; a++) n[a].call(i);
209
- return s;
210
- }, He = (e, t, i, s, a, n) => {
211
- var h, o, w, p = t & 7, _ = !1, r = 0, g = e[r] || (e[r] = []), d = p && (a = a.prototype, p < 5 && (p > 3 || !_) && Ae(a, i));
212
- Fe(a, i);
213
- for (var f = s.length - 1; f >= 0; f--)
214
- w = Ue(p, i, o = {}, e[3], g), h = (0, s[f])(a, w), o._ = 1, Zt(h) && (a = h);
215
- return qe(e, a), d && _t(a, i, d), _ ? p ^ 4 ? n : d : a;
216
- }, te, gt, ee;
217
- te = [Q("nte-navbar-line")];
218
- const xt = class xt extends (ee = nt) {
219
- constructor() {
220
- super(...arguments), this._isScrolled = !1;
97
+ _renderLink(t) {
98
+ return m`
99
+ <a
100
+ id="link"
101
+ part="link"
102
+ href=${this.href}
103
+ target=${S(this.target || void 0)}
104
+ rel=${S(this.rel || void 0)}
105
+ download=${S(this.hasAttribute("download") ? this.download : void 0)}
106
+ aria-current=${S(this.current || void 0)}
107
+ >
108
+ ${t}
109
+ </a>
110
+ `;
221
111
  }
222
- static get is() {
223
- return "nte-navbar-line";
112
+ _renderLabel() {
113
+ return m`
114
+ <span id="icon" part="icon">
115
+ <slot name="icon"></slot>
116
+ </span>
117
+ <span id="label" part="label">
118
+ <slot @slotchange=${this._onLabelSlotChange}></slot>
119
+ </span>
120
+ `;
224
121
  }
225
- updateScrollState() {
226
- const t = window.scrollY;
227
- t > 1 && !this._isScrolled ? (this.classList.add("is-scrolled"), this._isScrolled = !0) : t <= 1 && this._isScrolled && (this.classList.remove("is-scrolled"), this._isScrolled = !1);
122
+ _renderIconOnlyDisclosure() {
123
+ return m`
124
+ <summary id="toggle" part="toggle" aria-label=${this._submenuAccessibleName()}>
125
+ ${this._renderIndicator()}
126
+ </summary>
127
+ `;
228
128
  }
229
- connectedCallback() {
230
- super.connectedCallback(), window.addEventListener("scroll", () => this.updateScrollState(), { passive: !0 });
129
+ _renderLabelDisclosure(t) {
130
+ return m` <summary id="disclosure" part="disclosure">${t} ${this._renderIndicator()}</summary> `;
131
+ }
132
+ _renderIconOnlyPopoverControl() {
133
+ return m`
134
+ <button
135
+ id="toggle"
136
+ type="button"
137
+ part="toggle"
138
+ popovertarget="submenu"
139
+ aria-label=${this._submenuAccessibleName()}
140
+ >
141
+ ${this._renderIndicator()}
142
+ </button>
143
+ `;
231
144
  }
232
- async firstUpdated(t) {
233
- Lt.observeEmptySlots(this), this.updateScrollState();
145
+ _renderLabelPopoverControl(t) {
146
+ return m`
147
+ <button id="disclosure" type="button" part="disclosure" popovertarget="submenu">
148
+ ${t} ${this._renderIndicator()}
149
+ </button>
150
+ `;
234
151
  }
235
- render() {
236
- return q`
237
- <div id="main" part="main">
238
- <div id="container" part="container">
239
- <div id="brand" part="brand">
240
- <slot name="brand"></slot>
241
- </div>
242
- <div id="nav" part="nav">
243
- <slot></slot>
244
- </div>
152
+ _renderSubmenu() {
153
+ return m`
154
+ <div
155
+ id="submenu"
156
+ part="submenu"
157
+ role="list"
158
+ aria-label=${this._submenuAccessibleName()}
159
+ popover=${S(this.submenuPopover ? "auto" : void 0)}
160
+ >
161
+ <div id="submenu-inner" part="submenu-inner">
162
+ <slot name="submenu" @slotchange=${this._onSubmenuSlotChange}></slot>
245
163
  </div>
246
164
  </div>
247
165
  `;
248
166
  }
249
- };
250
- xt.styles = [K(Ie)];
251
- let H = xt;
252
- gt = Ye(ee);
253
- H = He(gt, 0, "NteNavbarLine", te, H);
254
- je(gt, 1, H);
255
- const Je = ":host{display:block;--animation-duration: .3s;--auto-aspect-ratio: unset;aspect-ratio:var(--auto-aspect-ratio);height:auto;width:auto}.wrapper{--orig-top: 0;--orig-left: 0;--orig-width: 0;--orig-height: 0;--self-top: 0;--self-left: 0;--self-width: 100%;--self-height: 100%;display:inline-block;width:var(--self-width);height:var(--self-height);object-fit:contain;overflow:visible;position:fixed;opacity:0}.wrapper.initialized{opacity:1}.wrapper{top:var(--self-top);left:var(--self-left);transition:all var(--animation-duration) ease-in-out}.wrapper.inactive{z-index:99999;top:calc(var(--orig-top));left:calc(var(--orig-left));width:var(--orig-width);height:var(--orig-height)}.wrapper.inactive.done{z-index:inherit;visibility:hidden}.wrapper>slot{display:contents}.wrapper ::slotted(*){width:100%;height:100%;object-fit:contain;transition:all .3s ease-in-out}";
256
- var Ke = Object.create, bt = Object.defineProperty, Qe = Object.getOwnPropertyDescriptor, ie = (e, t) => (t = Symbol[e]) ? t : Symbol.for("Symbol." + e), A = (e) => {
257
- throw TypeError(e);
258
- }, Ve = (e, t, i) => t in e ? bt(e, t, { enumerable: !0, configurable: !0, writable: !0, value: i }) : e[t] = i, Mt = (e, t) => bt(e, "name", { value: t, configurable: !0 }), Xe = (e) => [, , , Ke((e == null ? void 0 : e[ie("metadata")]) ?? null)], re = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"], G = (e) => e !== void 0 && typeof e != "function" ? A("Function expected") : e, Ze = (e, t, i, s, a) => ({ kind: re[e], name: t, metadata: s, addInitializer: (n) => i._ ? A("Already initialized") : a.push(G(n || null)) }), ti = (e, t) => Ve(t, ie("metadata"), e[3]), m = (e, t, i, s) => {
259
- for (var a = 0, n = e[t >> 1], h = n && n.length; a < h; a++) t & 1 ? n[a].call(i) : s = n[a].call(i, s);
260
- return s;
261
- }, P = (e, t, i, s, a, n) => {
262
- var h, o, w, p, _, r = t & 7, g = !!(t & 8), d = !!(t & 16), f = r > 3 ? e.length + 1 : r ? g ? 1 : 2 : 0, E = re[r + 5], C = r > 3 && (e[f - 1] = []), D = e[f] || (e[f] = []), c = r && (!d && !g && (a = a.prototype), r < 5 && (r > 3 || !d) && Qe(r < 4 ? a : { get [i]() {
263
- return W(this, n);
264
- }, set [i](l) {
265
- return rt(this, n, l);
266
- } }, i));
267
- r ? d && r < 4 && Mt(n, (r > 2 ? "set " : r > 1 ? "get " : "") + i) : Mt(a, i);
268
- for (var y = s.length - 1; y >= 0; y--)
269
- p = Ze(r, i, w = {}, e[3], D), r && (p.static = g, p.private = d, _ = p.access = { has: d ? (l) => ei(a, l) : (l) => i in l }, r ^ 3 && (_.get = d ? (l) => (r ^ 1 ? W : ii)(l, a, r ^ 4 ? n : c.get) : (l) => l[i]), r > 2 && (_.set = d ? (l, S) => rt(l, a, S, r ^ 4 ? n : c.set) : (l, S) => l[i] = S)), o = (0, s[y])(r ? r < 4 ? d ? n : c[E] : r > 4 ? void 0 : { get: c.get, set: c.set } : a, p), w._ = 1, r ^ 4 || o === void 0 ? G(o) && (r > 4 ? C.unshift(o) : r ? d ? n = o : c[E] = o : a = o) : typeof o != "object" || o === null ? A("Object expected") : (G(h = o.get) && (c.get = h), G(h = o.set) && (c.set = h), G(h = o.init) && C.unshift(h));
270
- return r || ti(e, a), c && bt(a, i, c), d ? r ^ 4 ? n : c : a;
271
- }, mt = (e, t, i) => t.has(e) || A("Cannot " + i), ei = (e, t) => Object(t) !== t ? A('Cannot use the "in" operator on this value') : e.has(t), W = (e, t, i) => (mt(e, t, "read from private field"), i ? i.call(e) : t.get(e)), L = (e, t, i) => t.has(e) ? A("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(e) : t.set(e, i), rt = (e, t, i, s) => (mt(e, t, "write to private field"), s ? s.call(e, i) : t.set(e, i), i), ii = (e, t, i) => (mt(e, t, "access private method"), i), ae, ne, se, oe, le, de, at, ce, u, wt, yt, St, $t, kt, T;
272
- ce = [Q("nte-nav-brand-relocator")];
273
- class x extends (at = ve(ue(nt)), de = [O({ type: String, reflect: !0 })], le = [O({ type: Boolean, reflect: !0 })], oe = [O({ type: String, reflect: !0 })], se = [Z()], ne = [Z()], ae = [X("scroll", { target: "window", options: { passive: !0 } })], at) {
274
- constructor() {
275
- super(...arguments), m(u, 5, this), L(this, wt, m(u, 8, this, ".brand-image")), m(u, 11, this), L(this, yt, m(u, 12, this, null)), m(u, 15, this), L(this, St, m(u, 16, this, "auto")), m(u, 19, this), L(this, $t, m(u, 20, this, !1)), m(u, 23, this), L(this, kt, m(u, 24, this, !1)), m(u, 27, this), L(this, T, null);
276
- }
277
- onScroll() {
278
- if (this.mode !== "auto") {
279
- this.log("Mode is not auto, skipping scroll handling");
280
- return;
281
- }
282
- const t = window.scrollY <= 2;
283
- t !== this.active && (this.active = t);
284
- }
285
- onanimationEnd() {
286
- this.log("Animation ended - finalizing state"), this.active || (this.brandElement.style.visibility = "visible", this.done = !0);
287
- }
288
- get brandElement() {
289
- return W(this, T) || (rt(this, T, document.querySelector(this.brandSelector)), W(this, T) || this.warn(`Brand element not found using selector: ${this.brandSelector}`)), W(this, T);
290
- }
291
- render() {
292
- var a;
293
- const t = (a = this.brandElement) == null ? void 0 : a.getBoundingClientRect();
294
- if (!t)
295
- return null;
296
- const i = this.getBoundingClientRect(), s = {
297
- "--orig-top": t.top + "px",
298
- "--orig-left": t.left + "px",
299
- "--orig-width": t.width + "px",
300
- "--orig-height": t.height + "px",
301
- "--self-top": i.top + "px",
302
- "--self-left": i.left + "px",
303
- "--self-width": i.width + "px",
304
- "--self-height": i.height + "px"
305
- };
306
- return q`<div
307
- class="wrapper ${this.active ? "" : "inactive"} ${this.done ? "done" : ""} ${this.initialized ? "initialized" : ""}"
308
- style=${_e(s)}
309
- @transitionend=${() => this.onanimationEnd()}
310
- >
311
- <slot></slot>
312
- </div>`;
167
+ _renderIndicator() {
168
+ return m`
169
+ <svg id="indicator" part="indicator" aria-hidden="true" viewBox="0 0 16 16">
170
+ <path d="m3 6 5 5 5-5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-width="2" />
171
+ </svg>
172
+ `;
313
173
  }
314
- update(t) {
315
- var i;
316
- t.has("active") && this.active === !0 && ((i = W(this, T)) == null || i.style.setProperty("visibility", "hidden"), this.done = !1), super.update(t);
174
+ _submenuAccessibleName() {
175
+ return this._labelText ? `${this.submenuLabel}: ${this._labelText}` : this.submenuLabel;
317
176
  }
318
- get ghostElement() {
319
- return this.querySelector("img");
177
+ _onLabelSlotChange(t) {
178
+ const o = t.currentTarget.assignedNodes({ flatten: !0 });
179
+ this._assignNestedItems(), this._labelText = o.filter((r) => !(r instanceof HTMLElement && r.matches("nte-nav-item"))).map((r) => {
180
+ var a;
181
+ return ((a = r.textContent) == null ? void 0 : a.trim()) ?? "";
182
+ }).filter(Boolean).join(" ");
320
183
  }
321
- async firstUpdated() {
322
- var i, s, a;
323
- if (this.brandElement === null) {
324
- this.warn(`Brand element not found using selector: ${this.brandSelector}`);
325
- return;
326
- }
327
- for (this.log("Waiting for Ghost element loading...", this.ghostElement), await Wt(this.ghostElement), await J(10); !((i = this.ghostElement) != null && i.naturalWidth); )
328
- this.log("Waiting for Ghost element to have naturalWidth...", this.ghostElement), await J(100);
329
- for (; this.brandElement && !this.brandElement.getBoundingClientRect().width; )
330
- this.log("Waiting for Brand element to have width...", this.brandElement), await J(100);
331
- const t = ((s = this.ghostElement) == null ? void 0 : s.naturalWidth) / ((a = this.ghostElement) == null ? void 0 : a.naturalHeight);
332
- this.log("Setting Aspect ratio:", t), this.style.setProperty("--auto-aspect-ratio", t.toString()), this.log("Brand element is now loaded:", this.brandElement), this.initialized = !0, this.onScroll();
184
+ _onSubmenuSlotChange(t) {
185
+ const n = t.currentTarget;
186
+ this._hasSubmenu = n.assignedElements({ flatten: !0 }).some((o) => o.matches("nte-nav-item"));
333
187
  }
334
- async connectedCallback() {
335
- if (await V(), this.ghostElement === null) {
336
- const t = this.brandElement;
337
- if (this.log("first connectedCallback() on Brand element:", t), !t) {
338
- this.warn(`Brand element not found using selector: ${this.brandSelector}`);
339
- return;
340
- }
341
- if (!this.hasChildNodes()) {
342
- const i = fe("img", { src: t.getAttribute("src") });
343
- this.appendChild(i), this.onScroll();
344
- }
345
- }
346
- super.connectedCallback();
188
+ _assignNestedItems() {
189
+ const t = Array.from(this.children).filter((n) => n.matches("nte-nav-item"));
190
+ t.forEach((n) => n.setAttribute("slot", "submenu")), this._hasSubmenu = t.length > 0;
347
191
  }
348
192
  }
349
- u = Xe(at);
350
- wt = /* @__PURE__ */ new WeakMap();
351
- yt = /* @__PURE__ */ new WeakMap();
352
- St = /* @__PURE__ */ new WeakMap();
353
- $t = /* @__PURE__ */ new WeakMap();
354
- kt = /* @__PURE__ */ new WeakMap();
355
- T = /* @__PURE__ */ new WeakMap();
356
- P(u, 4, "brandSelector", de, x, wt);
357
- P(u, 4, "active", le, x, yt);
358
- P(u, 4, "mode", oe, x, St);
359
- P(u, 4, "done", se, x, $t);
360
- P(u, 4, "initialized", ne, x, kt);
361
- P(u, 1, "onScroll", ae, x);
362
- x = P(u, 0, "NteNavBrandRelocator", ce, x);
363
- x.styles = [K(Je)];
364
- m(u, 1, x);
365
- console.log("Loading nte-nav...");
193
+ s = Ve(D);
194
+ U = /* @__PURE__ */ new WeakMap();
195
+ X = /* @__PURE__ */ new WeakMap();
196
+ Y = /* @__PURE__ */ new WeakMap();
197
+ q = /* @__PURE__ */ new WeakMap();
198
+ J = /* @__PURE__ */ new WeakMap();
199
+ K = /* @__PURE__ */ new WeakMap();
200
+ Q = /* @__PURE__ */ new WeakMap();
201
+ R = /* @__PURE__ */ new WeakMap();
202
+ Z = /* @__PURE__ */ new WeakMap();
203
+ _(s, 4, "href", Se, h, U);
204
+ _(s, 4, "target", xe, h, X);
205
+ _(s, 4, "rel", $e, h, Y);
206
+ _(s, 4, "download", we, h, q);
207
+ _(s, 4, "current", ke, h, J);
208
+ _(s, 4, "submenuPopover", ye, h, K);
209
+ _(s, 4, "submenuLabel", fe, h, Q);
210
+ _(s, 4, "_hasSubmenu", ge, h, R);
211
+ _(s, 4, "_labelText", _e, h, Z);
212
+ h = _(s, 0, "NteNavItem", ze, h);
213
+ h.styles = [le(We)];
214
+ p(s, 1, h);
366
215
  export {
367
- $ as NteNav,
368
- x as NteNavBrandRelocator,
369
- j as NteNavbar
216
+ M as NteNav,
217
+ h as NteNavItem
370
218
  };