@nextrap/nte-nav 1.2.0 → 2.0.1

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,350 +1,218 @@
1
- import { waitForDomContentLoaded as H, isBiggerThanBreakpoint as ne, Debouncer as oe, SlotTool as Tt } from "@nextrap/nt-framework";
2
- import "@nextrap/nte-offcanvas";
3
- import { sleep as q, EventBindingsMixin as se, LoggingMixin as le, Listen as de, waitForLoad as ce, create_element as he } from "@trunkjs/browser-utils";
4
- import { html as Y, unsafeCSS as j, LitElement as J } from "lit";
5
- import { customElement as K, property as z, state as Q } from "lit/decorators.js";
6
- import { createRef as St, ref as $t } from "lit/directives/ref.js";
7
- import { styleMap as pe } from "lit/directives/style-map.js";
8
- import "@nextrap/nte-burger";
9
- const ve = ":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)}";
10
- var ue = Object.create, it = Object.defineProperty, fe = Object.getOwnPropertyDescriptor, Pt = (t, e) => (e = Symbol[t]) ? e : Symbol.for("Symbol." + t), M = (t) => {
11
- throw TypeError(t);
12
- }, _e = (t, e, i) => e in t ? it(t, e, { enumerable: !0, configurable: !0, writable: !0, value: i }) : t[e] = i, xt = (t, e) => it(t, "name", { value: e, configurable: !0 }), ge = (t) => [, , , ue((t == null ? void 0 : t[Pt("metadata")]) ?? null)], Mt = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"], A = (t) => t !== void 0 && typeof t != "function" ? M("Function expected") : t, be = (t, e, i, o, a) => ({ kind: Mt[t], name: e, metadata: o, addInitializer: (n) => i._ ? M("Already initialized") : a.push(A(n || null)) }), me = (t, e) => _e(e, Pt("metadata"), t[3]), S = (t, e, i, o) => {
13
- for (var a = 0, n = t[e >> 1], h = n && n.length; a < h; a++) e & 1 ? n[a].call(i) : o = n[a].call(i, o);
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) => {
7
+ throw TypeError(e);
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);
14
10
  return o;
15
- }, W = (t, e, i, o, a, n) => {
16
- var h, s, m, p, _, r = e & 7, g = !!(e & 8), d = !!(e & 16), f = r > 3 ? t.length + 1 : r ? g ? 1 : 2 : 0, k = Mt[r + 5], E = r > 3 && (t[f - 1] = []), I = t[f] || (t[f] = []), c = r && (!d && !g && (a = a.prototype), r < 5 && (r > 3 || !d) && fe(r < 4 ? a : { get [i]() {
17
- return kt(this, n);
18
- }, set [i](l) {
19
- return Et(this, n, l);
20
- } }, i));
21
- r ? d && r < 4 && xt(n, (r > 2 ? "set " : r > 1 ? "get " : "") + i) : xt(a, i);
22
- for (var w = o.length - 1; w >= 0; w--)
23
- p = be(r, i, m = {}, t[3], I), r && (p.static = g, p.private = d, _ = p.access = { has: d ? (l) => we(a, l) : (l) => i in l }, r ^ 3 && (_.get = d ? (l) => (r ^ 1 ? kt : ye)(l, a, r ^ 4 ? n : c.get) : (l) => l[i]), r > 2 && (_.set = d ? (l, y) => Et(l, a, y, r ^ 4 ? n : c.set) : (l, y) => l[i] = y)), s = (0, o[w])(r ? r < 4 ? d ? n : c[k] : r > 4 ? void 0 : { get: c.get, set: c.set } : a, p), m._ = 1, r ^ 4 || s === void 0 ? A(s) && (r > 4 ? E.unshift(s) : r ? d ? n = s : c[k] = s : a = s) : typeof s != "object" || s === null ? M("Object expected") : (A(h = s.get) && (c.get = h), A(h = s.set) && (c.set = h), A(h = s.init) && E.unshift(h));
24
- return r || me(t, a), c && it(a, i, c), d ? r ^ 4 ? n : c : a;
25
- }, rt = (t, e, i) => e.has(t) || M("Cannot " + i), we = (t, e) => Object(e) !== e ? M('Cannot use the "in" operator on this value') : t.has(e), kt = (t, e, i) => (rt(t, e, "read from private field"), i ? i.call(t) : e.get(t)), R = (t, e, i) => e.has(t) ? M("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, i), Et = (t, e, i, o) => (rt(t, e, "write to private field"), o ? o.call(t, i) : e.set(t, i), i), ye = (t, e, i) => (rt(t, e, "access private method"), i), Wt, Lt, Bt, It, Rt, V, At, u, at, nt, ot, st, lt;
26
- At = [K("nte-nav")];
27
- class x extends (V = J, Rt = [z({ type: String, reflect: !0 })], It = [z({ type: String, reflect: !0 })], Bt = [z({ type: String, reflect: !0, attribute: "transfer-to" })], Lt = [z({ type: String, reflect: !1, attribute: "data-group-name" })], Wt = [Q()], V) {
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) {
28
24
  constructor() {
29
- super(), R(this, at, S(u, 8, this, "slave")), S(u, 11, this), R(this, nt, S(u, 12, this, "99999px")), S(u, 15, this), R(this, ot, S(u, 16, this, "")), S(u, 19, this), R(this, st, S(u, 20, this, "")), S(u, 23, this), R(this, lt, S(u, 24, this, !1)), S(u, 27, this);
30
- }
31
- getOffcanvas() {
32
- return this.transferTo ? document.querySelector(this.transferTo) : null;
33
- }
34
- getOffcanvasNav() {
35
- const e = this.getOffcanvas();
36
- return e ? e.querySelector("nte-nav") : null;
25
+ super(...arguments), Ee(this, V, T(z, 8, this, "")), T(z, 11, this);
37
26
  }
38
27
  render() {
39
- return Y` <nav>
40
- <div id="burger-wrapper" ?hidden=${!this._isTransferred}>
41
- <slot
42
- name="burger"
43
- open
44
- aria-haspopup="true"
45
- id="burger"
46
- class="burger"
47
- @click=${() => {
48
- var e;
49
- return (e = this.getOffcanvas()) == null ? void 0 : e.open();
50
- }}
51
- >
52
- <!-- fallback icon -->
53
- ${this._isTransferred ? Y`<div id="burger-default" style="display:flex; align-items: center; justify-content: center;">
54
- <div id="text"><slot name="menu-text"></slot></div>
55
- <nte-burger
56
- data-group-name="${this.dataGroupName}"
57
- id="open-burger"
58
- onclick="this.open = true"
59
- ></nte-burger>
60
- </div>` : ""}
61
- </slot>
62
- </div>
63
-
64
- <div class="nt-nav-links" id="main" part="main">
65
- <slot id="main-slot"></slot>
66
- </div>
67
- </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
+ `;
68
35
  }
69
- transferToElement(e) {
70
- var a;
71
- const i = (a = this.shadowRoot) == null ? void 0 : a.querySelector("#main-slot");
72
- if (i === null)
73
- return;
74
- Array.from(i.assignedElements({ flatten: !0 })).forEach((n) => {
75
- n instanceof HTMLElement && e.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);
76
41
  });
77
42
  }
78
- updated(e) {
79
- var i, o;
80
- super.updated(e), this._isTransferred ? this.transferToElement(
81
- this.getOffcanvasNav() ?? (() => {
82
- throw new Error("No offcanvas nav found");
83
- })()
84
- ) : ((i = this.getOffcanvasNav()) == null || i.transferToElement(this), (o = this.getOffcanvas()) == null || o.close());
85
- }
86
- firstUpdated(e) {
87
- super.firstUpdated(e);
88
- const i = this.classList;
89
- !i.contains("nav-vertical") && !i.contains("nav-horizontal") && i.add(this.closest("nte-offcanvas") === null ? "nav-horizontal" : "nav-vertical");
90
- }
91
- async connectedCallback() {
92
- await H(), super.connectedCallback();
93
- const e = () => {
94
- if (this.transferTo === "") {
95
- this._isTransferred = !1;
96
- return;
97
- }
98
- this.breakpoint !== "" && (ne(this.breakpoint) ? this._isTransferred = !1 : this._isTransferred = !0);
99
- };
100
- this.mode !== "slave" && this.breakpoint !== "" && (e(), window.addEventListener("breakpoint-changed", e), (async () => (await q(1e3), e()))());
101
- }
102
43
  }
103
- u = ge(V);
104
- at = /* @__PURE__ */ new WeakMap();
105
- nt = /* @__PURE__ */ new WeakMap();
106
- ot = /* @__PURE__ */ new WeakMap();
107
- st = /* @__PURE__ */ new WeakMap();
108
- lt = /* @__PURE__ */ new WeakMap();
109
- W(u, 4, "mode", Rt, x, at);
110
- W(u, 4, "breakpoint", It, x, nt);
111
- W(u, 4, "transferTo", Bt, x, ot);
112
- W(u, 4, "dataGroupName", Lt, x, st);
113
- W(u, 4, "_isTransferred", Wt, x, lt);
114
- x = W(u, 0, "NteNav", At, x);
115
- x.styles = [j(ve)];
116
- S(u, 1, x);
117
- const Se = "*,*: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}";
118
- var $e = Object.create, dt = Object.defineProperty, xe = Object.getOwnPropertyDescriptor, Dt = (t, e) => (e = Symbol[t]) ? e : Symbol.for("Symbol." + t), L = (t) => {
119
- throw TypeError(t);
120
- }, ke = (t, e, i) => e in t ? dt(t, e, { enumerable: !0, configurable: !0, writable: !0, value: i }) : t[e] = i, zt = (t, e) => dt(t, "name", { value: e, configurable: !0 }), Ee = (t) => [, , , $e((t == null ? void 0 : t[Dt("metadata")]) ?? null)], Ft = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"], D = (t) => t !== void 0 && typeof t != "function" ? L("Function expected") : t, ze = (t, e, i, o, a) => ({ kind: Ft[t], name: e, metadata: o, addInitializer: (n) => i._ ? L("Already initialized") : a.push(D(n || null)) }), Ce = (t, e) => ke(e, Dt("metadata"), t[3]), X = (t, e, i, o) => {
121
- for (var a = 0, n = t[e >> 1], h = n && n.length; a < h; a++) e & 1 ? n[a].call(i) : o = n[a].call(i, o);
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) => {
52
+ throw TypeError(e);
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);
122
55
  return o;
123
- }, Yt = (t, e, i, o, a, n) => {
124
- var h, s, m, p, _, r = e & 7, g = !!(e & 8), d = !!(e & 16), f = r > 3 ? t.length + 1 : r ? g ? 1 : 2 : 0, k = Ft[r + 5], E = r > 3 && (t[f - 1] = []), I = t[f] || (t[f] = []), c = r && (!d && !g && (a = a.prototype), r < 5 && (r > 3 || !d) && xe(r < 4 ? a : { get [i]() {
125
- return Ct(this, n);
126
- }, set [i](l) {
127
- return Ot(this, n, l);
128
- } }, i));
129
- r ? d && r < 4 && zt(n, (r > 2 ? "set " : r > 1 ? "get " : "") + i) : zt(a, i);
130
- for (var w = o.length - 1; w >= 0; w--)
131
- p = ze(r, i, m = {}, t[3], I), r && (p.static = g, p.private = d, _ = p.access = { has: d ? (l) => Oe(a, l) : (l) => i in l }, r ^ 3 && (_.get = d ? (l) => (r ^ 1 ? Ct : Te)(l, a, r ^ 4 ? n : c.get) : (l) => l[i]), r > 2 && (_.set = d ? (l, y) => Ot(l, a, y, r ^ 4 ? n : c.set) : (l, y) => l[i] = y)), s = (0, o[w])(r ? r < 4 ? d ? n : c[k] : r > 4 ? void 0 : { get: c.get, set: c.set } : a, p), m._ = 1, r ^ 4 || s === void 0 ? D(s) && (r > 4 ? E.unshift(s) : r ? d ? n = s : c[k] = s : a = s) : typeof s != "object" || s === null ? L("Object expected") : (D(h = s.get) && (c.get = h), D(h = s.set) && (c.set = h), D(h = s.init) && E.unshift(h));
132
- return r || Ce(t, a), c && dt(a, i, c), d ? r ^ 4 ? n : c : a;
133
- }, ct = (t, e, i) => e.has(t) || L("Cannot " + i), Oe = (t, e) => Object(e) !== e ? L('Cannot use the "in" operator on this value') : t.has(e), Ct = (t, e, i) => (ct(t, e, "read from private field"), i ? i.call(t) : e.get(t)), Ne = (t, e, i) => e.has(t) ? L("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, i), Ot = (t, e, i, o) => (ct(t, e, "write to private field"), o ? o.call(t, i) : e.set(t, i), i), Te = (t, e, i) => (ct(t, e, "access private method"), i), Gt, Z, Ut, P, ht;
134
- Ut = [K("nte-navbar")];
135
- class G extends (Z = J, Gt = [z({ type: Number, attribute: "scroll-threshold", reflect: !0 })], Z) {
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) {
136
69
  constructor() {
137
- super(), this.navbarRef = St(), this.spacerRef = St(), Ne(this, ht, X(P, 8, this, 0)), X(P, 11, this), this._lastScrollY = window.scrollY, this._scrollUpPixels = 0, this._debouncer = void 0, this._debouncer = new oe(100, 300), document.addEventListener(
138
- "scroll",
139
- async () => {
140
- this.updateScrollState();
141
- },
142
- { passive: !0 }
143
- );
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);
144
71
  }
145
- static get is() {
146
- return "nte-navbar";
147
- }
148
- updateScrollState() {
149
- const e = window.scrollY;
150
- e > 1 ? this.classList.add("is-scrolled") : this.classList.remove("is-scrolled"), e < this._lastScrollY ? (this._scrollUpPixels += this._lastScrollY - e, this._scrollUpPixels > 10 && e < this.scrollThreshold && this.classList.add("is-scrolling-up")) : (this._scrollUpPixels = 0, this.classList.remove("is-scrolling-up")), e > this.scrollThreshold ? this.classList.add("is-below-threshold") : this.classList.remove("is-below-threshold"), this._lastScrollY = e;
151
- }
152
- async connectedCallback() {
153
- this.updateScrollState(), await H(), super.connectedCallback();
154
- }
155
- // Adjust the spacer height on every render
156
- async updated(e) {
157
- await H(), super.updated(e);
72
+ connectedCallback() {
73
+ super.connectedCallback(), this.hasAttribute("role") || this.setAttribute("role", "listitem"), this._assignNestedItems();
158
74
  }
159
- firstUpdated(e) {
160
- Tt.observeEmptySlots(this);
75
+ disconnectedCallback() {
76
+ super.disconnectedCallback();
161
77
  }
162
78
  render() {
163
- return Y`
164
- <div id="wrapper" part="wrapper">
165
- <div id="spacer" part="spacer" ${$t(this.spacerRef)}></div>
166
- <div id="navbar" part="navbar" ${$t(this.navbarRef)}>
167
- <div id="brand" part="brand">
168
- <slot name="brand"></slot>
169
- </div>
170
- <div id="main">
171
- <slot></slot>
172
- </div>
173
- </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>`}
174
94
  </div>
175
95
  `;
176
96
  }
177
- }
178
- P = Ee(Z);
179
- ht = /* @__PURE__ */ new WeakMap();
180
- Yt(P, 4, "scrollThreshold", Gt, G, ht);
181
- G = Yt(P, 0, "NteNavbar", Ut, G);
182
- G.styles = [j(Se)];
183
- X(P, 1, G);
184
- const Pe = "*,*: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}#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}";
185
- var Me = Object.create, pt = Object.defineProperty, We = Object.getOwnPropertyDescriptor, qt = (t, e) => (e = Symbol[t]) ? e : Symbol.for("Symbol." + t), Ht = (t) => {
186
- throw TypeError(t);
187
- }, Le = (t, e, i) => e in t ? pt(t, e, { enumerable: !0, configurable: !0, writable: !0, value: i }) : t[e] = i, Be = (t, e) => pt(t, "name", { value: e, configurable: !0 }), Ie = (t) => [, , , Me((t == null ? void 0 : t[qt("metadata")]) ?? null)], Re = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"], jt = (t) => t !== void 0 && typeof t != "function" ? Ht("Function expected") : t, Ae = (t, e, i, o, a) => ({ kind: Re[t], name: e, metadata: o, addInitializer: (n) => i._ ? Ht("Already initialized") : a.push(jt(n || null)) }), De = (t, e) => Le(e, qt("metadata"), t[3]), Fe = (t, e, i, o) => {
188
- for (var a = 0, n = t[e >> 1], h = n && n.length; a < h; a++) n[a].call(i);
189
- return o;
190
- }, Ye = (t, e, i, o, a, n) => {
191
- var h, s, m, p = e & 7, _ = !1, r = 0, g = t[r] || (t[r] = []), d = p && (a = a.prototype, p < 5 && (p > 3 || !_) && We(a, i));
192
- Be(a, i);
193
- for (var f = o.length - 1; f >= 0; f--)
194
- m = Ae(p, i, s = {}, t[3], g), h = (0, o[f])(a, m), s._ = 1, jt(h) && (a = h);
195
- return De(t, a), d && pt(a, i, d), _ ? p ^ 4 ? n : d : a;
196
- }, Jt, vt, Kt;
197
- Jt = [K("nte-navbar-line")];
198
- const yt = class yt extends (Kt = J) {
199
- constructor() {
200
- 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
+ `;
201
111
  }
202
- static get is() {
203
- 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
+ `;
204
121
  }
205
- updateScrollState() {
206
- const e = window.scrollY;
207
- e > 1 && !this._isScrolled ? (this.classList.add("is-scrolled"), this._isScrolled = !0) : e <= 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
+ `;
208
128
  }
209
- connectedCallback() {
210
- 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
+ `;
211
144
  }
212
- async firstUpdated(e) {
213
- Tt.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
+ `;
214
151
  }
215
- render() {
216
- return Y`
217
- <div id="main" part="main">
218
- <div id="container" part="container">
219
- <div id="brand" part="brand">
220
- <slot name="brand"></slot>
221
- </div>
222
- <div id="nav" part="nav">
223
- <slot></slot>
224
- </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>
225
163
  </div>
226
164
  </div>
227
165
  `;
228
166
  }
229
- };
230
- yt.styles = [j(Pe)];
231
- let U = yt;
232
- vt = Ie(Kt);
233
- U = Ye(vt, 0, "NteNavbarLine", Jt, U);
234
- Fe(vt, 1, U);
235
- const Ge = ":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}";
236
- var Ue = Object.create, ut = Object.defineProperty, qe = Object.getOwnPropertyDescriptor, Qt = (t, e) => (e = Symbol[t]) ? e : Symbol.for("Symbol." + t), B = (t) => {
237
- throw TypeError(t);
238
- }, He = (t, e, i) => e in t ? ut(t, e, { enumerable: !0, configurable: !0, writable: !0, value: i }) : t[e] = i, Nt = (t, e) => ut(t, "name", { value: e, configurable: !0 }), je = (t) => [, , , Ue((t == null ? void 0 : t[Qt("metadata")]) ?? null)], Vt = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"], F = (t) => t !== void 0 && typeof t != "function" ? B("Function expected") : t, Je = (t, e, i, o, a) => ({ kind: Vt[t], name: e, metadata: o, addInitializer: (n) => i._ ? B("Already initialized") : a.push(F(n || null)) }), Ke = (t, e) => He(e, Qt("metadata"), t[3]), b = (t, e, i, o) => {
239
- for (var a = 0, n = t[e >> 1], h = n && n.length; a < h; a++) e & 1 ? n[a].call(i) : o = n[a].call(i, o);
240
- return o;
241
- }, O = (t, e, i, o, a, n) => {
242
- var h, s, m, p, _, r = e & 7, g = !!(e & 8), d = !!(e & 16), f = r > 3 ? t.length + 1 : r ? g ? 1 : 2 : 0, k = Vt[r + 5], E = r > 3 && (t[f - 1] = []), I = t[f] || (t[f] = []), c = r && (!d && !g && (a = a.prototype), r < 5 && (r > 3 || !d) && qe(r < 4 ? a : { get [i]() {
243
- return T(this, n);
244
- }, set [i](l) {
245
- return tt(this, n, l);
246
- } }, i));
247
- r ? d && r < 4 && Nt(n, (r > 2 ? "set " : r > 1 ? "get " : "") + i) : Nt(a, i);
248
- for (var w = o.length - 1; w >= 0; w--)
249
- p = Je(r, i, m = {}, t[3], I), r && (p.static = g, p.private = d, _ = p.access = { has: d ? (l) => Qe(a, l) : (l) => i in l }, r ^ 3 && (_.get = d ? (l) => (r ^ 1 ? T : Ve)(l, a, r ^ 4 ? n : c.get) : (l) => l[i]), r > 2 && (_.set = d ? (l, y) => tt(l, a, y, r ^ 4 ? n : c.set) : (l, y) => l[i] = y)), s = (0, o[w])(r ? r < 4 ? d ? n : c[k] : r > 4 ? void 0 : { get: c.get, set: c.set } : a, p), m._ = 1, r ^ 4 || s === void 0 ? F(s) && (r > 4 ? E.unshift(s) : r ? d ? n = s : c[k] = s : a = s) : typeof s != "object" || s === null ? B("Object expected") : (F(h = s.get) && (c.get = h), F(h = s.set) && (c.set = h), F(h = s.init) && E.unshift(h));
250
- return r || Ke(t, a), c && ut(a, i, c), d ? r ^ 4 ? n : c : a;
251
- }, ft = (t, e, i) => e.has(t) || B("Cannot " + i), Qe = (t, e) => Object(e) !== e ? B('Cannot use the "in" operator on this value') : t.has(e), T = (t, e, i) => (ft(t, e, "read from private field"), i ? i.call(t) : e.get(t)), N = (t, e, i) => e.has(t) ? B("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, i), tt = (t, e, i, o) => (ft(t, e, "write to private field"), o ? o.call(t, i) : e.set(t, i), i), Ve = (t, e, i) => (ft(t, e, "access private method"), i), Xt, Zt, te, ee, ie, re, et, ae, v, _t, gt, bt, mt, wt, C;
252
- ae = [K("nte-nav-brand-relocator")];
253
- class $ extends (et = se(le(J)), re = [z({ type: String, reflect: !0 })], ie = [z({ type: Boolean, reflect: !0 })], ee = [z({ type: String, reflect: !0 })], te = [Q()], Zt = [Q()], Xt = [de("scroll", { target: "window", options: { passive: !0 } })], et) {
254
- constructor() {
255
- super(...arguments), b(v, 5, this), N(this, _t, b(v, 8, this, ".brand-image")), b(v, 11, this), N(this, gt, b(v, 12, this, null)), b(v, 15, this), N(this, bt, b(v, 16, this, "auto")), b(v, 19, this), N(this, mt, b(v, 20, this, !1)), b(v, 23, this), N(this, wt, b(v, 24, this, !1)), b(v, 27, this), N(this, C, null);
256
- }
257
- onScroll() {
258
- if (this.mode !== "auto") {
259
- this.log("Mode is not auto, skipping scroll handling");
260
- return;
261
- }
262
- const e = window.scrollY <= 2;
263
- e !== this.active && (this.active = e);
264
- }
265
- onanimationEnd() {
266
- this.log("Animation ended - finalizing state"), this.active || (this.brandElement.style.visibility = "visible", this.done = !0);
267
- }
268
- get brandElement() {
269
- return T(this, C) || (tt(this, C, document.querySelector(this.brandSelector)), T(this, C) || this.warn(`Brand element not found using selector: ${this.brandSelector}`)), T(this, C);
270
- }
271
- render() {
272
- var a;
273
- const e = (a = this.brandElement) == null ? void 0 : a.getBoundingClientRect();
274
- if (!e)
275
- return null;
276
- const i = this.getBoundingClientRect(), o = {
277
- "--orig-top": e.top + "px",
278
- "--orig-left": e.left + "px",
279
- "--orig-width": e.width + "px",
280
- "--orig-height": e.height + "px",
281
- "--self-top": i.top + "px",
282
- "--self-left": i.left + "px",
283
- "--self-width": i.width + "px",
284
- "--self-height": i.height + "px"
285
- };
286
- return Y`<div
287
- class="wrapper ${this.active ? "" : "inactive"} ${this.done ? "done" : ""} ${this.initialized ? "initialized" : ""}"
288
- style=${pe(o)}
289
- @transitionend=${() => this.onanimationEnd()}
290
- >
291
- <slot></slot>
292
- </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
+ `;
293
173
  }
294
- update(e) {
295
- var i;
296
- e.has("active") && this.active === !0 && ((i = T(this, C)) == null || i.style.setProperty("visibility", "hidden"), this.done = !1), super.update(e);
174
+ _submenuAccessibleName() {
175
+ return this._labelText ? `${this.submenuLabel}: ${this._labelText}` : this.submenuLabel;
297
176
  }
298
- get ghostElement() {
299
- 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(" ");
300
183
  }
301
- async firstUpdated() {
302
- var i, o, a;
303
- if (this.brandElement === null) {
304
- this.warn(`Brand element not found using selector: ${this.brandSelector}`);
305
- return;
306
- }
307
- for (this.log("Waiting for Ghost element loading...", this.ghostElement), await ce(this.ghostElement), await q(10); !((i = this.ghostElement) != null && i.naturalWidth); )
308
- this.log("Waiting for Ghost element to have naturalWidth...", this.ghostElement), await q(100);
309
- for (; this.brandElement && !this.brandElement.getBoundingClientRect().width; )
310
- this.log("Waiting for Brand element to have width...", this.brandElement), await q(100);
311
- const e = ((o = this.ghostElement) == null ? void 0 : o.naturalWidth) / ((a = this.ghostElement) == null ? void 0 : a.naturalHeight);
312
- this.log("Setting Aspect ratio:", e), this.style.setProperty("--auto-aspect-ratio", e.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"));
313
187
  }
314
- async connectedCallback() {
315
- if (await H(), this.ghostElement === null) {
316
- const e = this.brandElement;
317
- if (this.log("first connectedCallback() on Brand element:", e), !e) {
318
- this.warn(`Brand element not found using selector: ${this.brandSelector}`);
319
- return;
320
- }
321
- if (!this.hasChildNodes()) {
322
- const i = he("img", { src: e.getAttribute("src") });
323
- this.appendChild(i), this.onScroll();
324
- }
325
- }
326
- 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;
327
191
  }
328
192
  }
329
- v = je(et);
330
- _t = /* @__PURE__ */ new WeakMap();
331
- gt = /* @__PURE__ */ new WeakMap();
332
- bt = /* @__PURE__ */ new WeakMap();
333
- mt = /* @__PURE__ */ new WeakMap();
334
- wt = /* @__PURE__ */ new WeakMap();
335
- C = /* @__PURE__ */ new WeakMap();
336
- O(v, 4, "brandSelector", re, $, _t);
337
- O(v, 4, "active", ie, $, gt);
338
- O(v, 4, "mode", ee, $, bt);
339
- O(v, 4, "done", te, $, mt);
340
- O(v, 4, "initialized", Zt, $, wt);
341
- O(v, 1, "onScroll", Xt, $);
342
- $ = O(v, 0, "NteNavBrandRelocator", ae, $);
343
- $.styles = [j(Ge)];
344
- b(v, 1, $);
345
- 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);
346
215
  export {
347
- x as NteNav,
348
- $ as NteNavBrandRelocator,
349
- G as NteNavbar
216
+ M as NteNav,
217
+ h as NteNavItem
350
218
  };
package/index.scss ADDED
@@ -0,0 +1,8 @@
1
+ @forward 'src/scss/default-style';
2
+ @forward 'src/scss/styles/bordered-style';
3
+ @forward 'src/scss/horizontal';
4
+ @forward 'src/scss/main-navigation';
5
+ @forward 'src/scss/responsive';
6
+ @forward 'src/scss/sizes';
7
+ @forward 'src/scss/sub-navigation';
8
+ @forward 'src/scss/vertical';