@visma-swno/vsn-navigation 1.2.0-beta.11 → 1.2.0-beta.12

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.
@@ -192,38 +192,38 @@ function g(e) {
192
192
  function _(e) {
193
193
  return "items" in e;
194
194
  }
195
- var v = class e extends Error {
195
+ var de = class e extends Error {
196
196
  constructor(t) {
197
197
  super(t), this.name = "SearchError", Object.setPrototypeOf(this, e.prototype);
198
198
  }
199
- }, de = ie("activeId"), y = "lit-localize-status", b = (e, ...t) => ({
199
+ }, fe = ie("activeId"), v = "lit-localize-status", y = (e, ...t) => ({
200
200
  strTag: !0,
201
201
  strings: e,
202
202
  values: t
203
- }), fe = (e) => typeof e != "string" && "strTag" in e, pe = (e, t, n) => {
203
+ }), pe = (e) => typeof e != "string" && "strTag" in e, me = (e, t, n) => {
204
204
  let r = e[0];
205
205
  for (let i = 1; i < e.length; i++) r += t[n ? n[i - 1] : i - 1], r += e[i];
206
206
  return r;
207
- }, me = ((e) => fe(e) ? pe(e.strings, e.values) : e), x = me, he = !1;
208
- function ge(e) {
209
- if (he) throw Error("lit-localize can only be configured once");
210
- x = e, he = !0;
207
+ }, he = ((e) => pe(e) ? me(e.strings, e.values) : e), b = he, ge = !1;
208
+ function _e(e) {
209
+ if (ge) throw Error("lit-localize can only be configured once");
210
+ b = e, ge = !0;
211
211
  }
212
212
  //#endregion
213
213
  //#region node_modules/@lit/localize/internal/localized-controller.js
214
- var _e = class {
214
+ var ve = class {
215
215
  constructor(e) {
216
216
  this.__litLocalizeEventHandler = (e) => {
217
217
  e.detail.status === "ready" && this.host.requestUpdate();
218
218
  }, this.host = e;
219
219
  }
220
220
  hostConnected() {
221
- window.addEventListener(y, this.__litLocalizeEventHandler);
221
+ window.addEventListener(v, this.__litLocalizeEventHandler);
222
222
  }
223
223
  hostDisconnected() {
224
- window.removeEventListener(y, this.__litLocalizeEventHandler);
224
+ window.removeEventListener(v, this.__litLocalizeEventHandler);
225
225
  }
226
- }, ve = (e) => e.addController(new _e(e)), S = () => (e, t) => (e.addInitializer(ve), e), ye = class {
226
+ }, ye = (e) => e.addController(new ve(e)), x = () => (e, t) => (e.addInitializer(ye), e), be = class {
227
227
  constructor() {
228
228
  this.settled = !1, this.promise = new Promise((e, t) => {
229
229
  this._resolve = e, this._reject = t;
@@ -235,67 +235,67 @@ var _e = class {
235
235
  reject(e) {
236
236
  this.settled = !0, this._reject(e);
237
237
  }
238
- }, C = [];
239
- for (let e = 0; e < 256; e++) C[e] = (e >> 4 & 15).toString(16) + (e & 15).toString(16);
240
- function be(e) {
238
+ }, S = [];
239
+ for (let e = 0; e < 256; e++) S[e] = (e >> 4 & 15).toString(16) + (e & 15).toString(16);
240
+ function xe(e) {
241
241
  let t = 0, n = 8997, r = 0, i = 33826, a = 0, o = 40164, s = 0, c = 52210;
242
242
  for (let l = 0; l < e.length; l++) n ^= e.charCodeAt(l), t = n * 435, r = i * 435, a = o * 435, s = c * 435, a += n << 8, s += i << 8, r += t >>> 16, n = t & 65535, a += r >>> 16, i = r & 65535, c = s + (a >>> 16) & 65535, o = a & 65535;
243
- return C[c >> 8] + C[c & 255] + C[o >> 8] + C[o & 255] + C[i >> 8] + C[i & 255] + C[n >> 8] + C[n & 255];
243
+ return S[c >> 8] + S[c & 255] + S[o >> 8] + S[o & 255] + S[i >> 8] + S[i & 255] + S[n >> 8] + S[n & 255];
244
244
  }
245
- var xe = "h", Se = "s";
246
- function Ce(e, t) {
247
- return (t ? xe : Se) + be(typeof e == "string" ? e : e.join(""));
245
+ var Se = "h", Ce = "s";
246
+ function we(e, t) {
247
+ return (t ? Se : Ce) + xe(typeof e == "string" ? e : e.join(""));
248
248
  }
249
249
  //#endregion
250
250
  //#region node_modules/@lit/localize/internal/runtime-msg.js
251
- var we = /* @__PURE__ */ new WeakMap(), Te = /* @__PURE__ */ new Map();
252
- function Ee(e, t, n) {
251
+ var Te = /* @__PURE__ */ new WeakMap(), Ee = /* @__PURE__ */ new Map();
252
+ function De(e, t, n) {
253
253
  if (e) {
254
- let r = e[n?.id ?? De(t)];
254
+ let r = e[n?.id ?? Oe(t)];
255
255
  if (r) {
256
256
  if (typeof r == "string") return r;
257
- if ("strTag" in r) return pe(r.strings, t.values, r.values);
257
+ if ("strTag" in r) return me(r.strings, t.values, r.values);
258
258
  {
259
- let e = we.get(r);
260
- return e === void 0 && (e = r.values, we.set(r, e)), {
259
+ let e = Te.get(r);
260
+ return e === void 0 && (e = r.values, Te.set(r, e)), {
261
261
  ...r,
262
262
  values: e.map((e) => t.values[e])
263
263
  };
264
264
  }
265
265
  }
266
266
  }
267
- return me(t);
267
+ return he(t);
268
268
  }
269
- function De(e) {
270
- let t = typeof e == "string" ? e : e.strings, n = Te.get(t);
271
- return n === void 0 && (n = Ce(t, typeof e != "string" && !("strTag" in e)), Te.set(t, n)), n;
269
+ function Oe(e) {
270
+ let t = typeof e == "string" ? e : e.strings, n = Ee.get(t);
271
+ return n === void 0 && (n = we(t, typeof e != "string" && !("strTag" in e)), Ee.set(t, n)), n;
272
272
  }
273
273
  //#endregion
274
274
  //#region node_modules/@lit/localize/init/runtime.js
275
- function w(e) {
276
- window.dispatchEvent(new CustomEvent(y, { detail: e }));
275
+ function C(e) {
276
+ window.dispatchEvent(new CustomEvent(v, { detail: e }));
277
277
  }
278
- var T = "", E, Oe, D, ke, Ae, O = new ye();
278
+ var w = "", T, ke, E, D, Ae, O = new be();
279
279
  O.resolve();
280
- var k = 0, je = (e) => (ge(((e, t) => Ee(Ae, e, t))), T = Oe = e.sourceLocale, D = new Set(e.targetLocales), D.add(e.sourceLocale), ke = e.loadLocale, {
280
+ var k = 0, je = (e) => (_e(((e, t) => De(Ae, e, t))), w = ke = e.sourceLocale, E = new Set(e.targetLocales), E.add(e.sourceLocale), D = e.loadLocale, {
281
281
  getLocale: Me,
282
282
  setLocale: Ne
283
- }), Me = () => T, Ne = (e) => {
284
- if (e === (E ?? T)) return O.promise;
285
- if (!D || !ke) throw Error("Internal error");
286
- if (!D.has(e)) throw Error("Invalid locale code");
283
+ }), Me = () => w, Ne = (e) => {
284
+ if (e === (T ?? w)) return O.promise;
285
+ if (!E || !D) throw Error("Internal error");
286
+ if (!E.has(e)) throw Error("Invalid locale code");
287
287
  k++;
288
288
  let t = k;
289
- return E = e, O.settled && (O = new ye()), w({
289
+ return T = e, O.settled && (O = new be()), C({
290
290
  status: "loading",
291
291
  loadingLocale: e
292
- }), (e === Oe ? Promise.resolve({ templates: void 0 }) : ke(e)).then((n) => {
293
- k === t && (T = e, E = void 0, Ae = n.templates, w({
292
+ }), (e === ke ? Promise.resolve({ templates: void 0 }) : D(e)).then((n) => {
293
+ k === t && (w = e, T = void 0, Ae = n.templates, C({
294
294
  status: "ready",
295
295
  readyLocale: e
296
296
  }), O.resolve());
297
297
  }, (n) => {
298
- k === t && (w({
298
+ k === t && (C({
299
299
  status: "error",
300
300
  errorLocale: e,
301
301
  errorMessage: n.toString()
@@ -305,7 +305,7 @@ var k = 0, je = (e) => (ge(((e, t) => Ee(Ae, e, t))), T = Oe = e.sourceLocale, D
305
305
  if (typeof navigator > "u") return !1;
306
306
  let e = navigator.userAgentData?.platform ?? navigator.platform ?? "";
307
307
  return /mac/i.test(e);
308
- }, Fe = (e) => !e.shiftKey && !e.altKey && (Pe() ? e.metaKey && !e.ctrlKey : e.ctrlKey && !e.metaKey), A = (e) => e.shiftKey || e.altKey || e.ctrlKey || e.metaKey, j = (e) => !A(e), Ie = () => x("Choose a service"), Le = () => x("Search"), Re = () => Pe() ? "Cmd+K" : "CTRL+K", ze = (e) => x(b`Type at least ${e} characters to search`), Be = () => x("Menu items"), Ve = (e) => x(b`Load ${e} more`), He = () => x("VSN"), Ue = "survicate-sdk", We = "ui-components-feedback", Ge = (e) => `https://survey.survicate.com/workspaces/${e}/web_surveys.js`;
308
+ }, Fe = (e) => !e.shiftKey && !e.altKey && (Pe() ? e.metaKey && !e.ctrlKey : e.ctrlKey && !e.metaKey), A = (e) => e.shiftKey || e.altKey || e.ctrlKey || e.metaKey, j = (e) => !A(e), Ie = () => b("Choose a service"), Le = () => b("Search"), Re = () => Pe() ? "Cmd+K" : "CTRL+K", ze = (e) => b(y`Type at least ${e} characters to search`), Be = () => b("Menu items"), Ve = (e) => b(y`Load ${e} more`), He = () => b("VSN"), Ue = "survicate-sdk", We = "ui-components-feedback", Ge = (e) => `https://survey.survicate.com/workspaces/${e}/web_surveys.js`;
309
309
  //#endregion
310
310
  //#region src/shared/icons.ts
311
311
  function M(e, t = 24, r) {
@@ -519,7 +519,7 @@ var F, I = class extends e {
519
519
  }
520
520
  };
521
521
  P([s({ attribute: !1 })], I.prototype, "tree", void 0), P([s({ type: Number })], I.prototype, "level", void 0), P([ue({
522
- context: de,
522
+ context: fe,
523
523
  subscribe: !0
524
524
  }), l()], I.prototype, "_currentActiveId", void 0), P([l()], I.prototype, "_isActive", void 0), P([l()], I.prototype, "_isExpanded", void 0), P([l()], I.prototype, "_showTooltip", void 0), P([l()], I.prototype, "_tooltipPos", void 0), P([c(".ga-side-navigation__item-label")], I.prototype, "_labelEl", void 0), I = F = P([o("vsn-menu-item")], I);
525
525
  //#endregion
@@ -551,7 +551,7 @@ var L = class extends e {
551
551
  <vsn-menu-item .tree=${e}></vsn-menu-item>`;
552
552
  }
553
553
  };
554
- P([s({ attribute: !1 })], L.prototype, "items", void 0), P([le({ context: de }), l()], L.prototype, "_currentActiveId", void 0), P([s()], L.prototype, "currentItem", void 0), L = P([o("vsn-menu")], L);
554
+ P([s({ attribute: !1 })], L.prototype, "items", void 0), P([le({ context: fe }), l()], L.prototype, "_currentActiveId", void 0), P([s()], L.prototype, "currentItem", void 0), L = P([o("vsn-menu")], L);
555
555
  //#endregion
556
556
  //#region src/components/vsn-side-bar/vsn-menu/vsn-menu-button.ts
557
557
  var R = class extends e {
@@ -715,11 +715,6 @@ var ut = class {
715
715
  t instanceof HTMLElement && t.classList.contains("ga-side-navigation__footer-dropdown-item") && (e.preventDefault(), t.click());
716
716
  return;
717
717
  }
718
- if (j(e) && e.key === "Tab") {
719
- let t = Array.from(this.host.querySelectorAll(".ga-side-navigation__footer-dropdown-item")), n = t[t.length - 1];
720
- n && e.target === n && (this.host.expanded = !1);
721
- return;
722
- }
723
718
  if (A(e) || e.key !== "ArrowDown" && e.key !== "ArrowUp") return;
724
719
  e.preventDefault();
725
720
  let t = this.host.querySelector(".ga-side-navigation__footer-dropdown");
@@ -767,13 +762,32 @@ function pt(e, t, n, r) {
767
762
  return n && i.set("client_id", n), `${e}${t}?${i}`;
768
763
  }
769
764
  //#endregion
770
- //#region src/components/vsn-side-bar/vsn-footer/vsn-footer.ts
771
- var mt = {
765
+ //#region src/components/controllers/focus-trapping-controller.ts
766
+ var mt = class {
767
+ constructor(e, t, n = void 0) {
768
+ this._rootElement = null, this._onKeyDown = (e) => {
769
+ if (e.defaultPrevented || e.key !== "Tab" || e.ctrlKey || e.altKey || e.metaKey || !this._appliesCallback() || this._rootElement == null) return;
770
+ let t = Array.from(this._rootElement.querySelectorAll("a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex=\"-1\"])"));
771
+ if (t.length === 0) return;
772
+ let n = t[0], r = t[t.length - 1], i = this._host.shadowRoot;
773
+ i ??= this._host.getRootNode(), i ??= document, e.shiftKey ? i.activeElement === n && (r.focus(), e.preventDefault()) : i.activeElement === r && (n.focus(), e.preventDefault());
774
+ }, this._host = e, this._appliesCallback = t, this._rootSelector = n, e.addController(this);
775
+ }
776
+ hostConnected() {
777
+ this._rootSelector ? this._rootElement = this._host.renderRoot.querySelector(this._rootSelector) : this._rootElement = this._host.renderRoot, this._rootElement != null && this._rootElement.addEventListener("keydown", this._onKeyDown);
778
+ }
779
+ hostDisconnected() {
780
+ this._rootElement != null && this._rootElement.removeEventListener("keydown", this._onKeyDown);
781
+ }
782
+ hostUpdated() {
783
+ this._rootElement == null && this._rootSelector && (this._rootElement = this._host.renderRoot.querySelector(this._rootSelector), this._rootElement != null && this._rootElement.addEventListener("keydown", this._onKeyDown));
784
+ }
785
+ }, ht = {
772
786
  profile: et,
773
787
  logout: tt
774
- }, ht = () => ({
775
- profile: x("My profile"),
776
- logout: x("Log out")
788
+ }, gt = () => ({
789
+ profile: b("My profile"),
790
+ logout: b("Log out")
777
791
  }), z = class extends e {
778
792
  createRenderRoot() {
779
793
  return this;
@@ -781,18 +795,18 @@ var mt = {
781
795
  get _items() {
782
796
  return [{
783
797
  id: "profile",
784
- label: ht().profile,
798
+ label: gt().profile,
785
799
  url: this.myProfileUrl
786
800
  }, {
787
801
  id: "logout",
788
- label: ht().logout,
802
+ label: gt().logout,
789
803
  url: "/logout"
790
804
  }];
791
805
  }
792
806
  constructor() {
793
807
  super(), this.expanded = !1, this._avatarFailed = !1, this._keyboard = new ut(this), new dt(this, [".ga-side-navigation__footer-dropdown", ".ga-side-navigation__user"], () => {
794
808
  this.expanded = !1;
795
- });
809
+ }), new mt(this, () => this.expanded);
796
810
  }
797
811
  willUpdate(e) {
798
812
  (e.has("user") || e.has("profilePictureBaseUrl")) && (this._avatarFailed = !1);
@@ -841,7 +855,7 @@ var mt = {
841
855
  ${this._items.map((e) => {
842
856
  let t = n`
843
857
  <span class="ga-side-navigation__footer-dropdown-icon">
844
- ${M(mt[e.id], 16)}
858
+ ${M(ht[e.id], 16)}
845
859
  </span>
846
860
  <span class="ga-side-navigation__footer-dropdown-title">
847
861
  ${e.label}
@@ -904,10 +918,10 @@ var mt = {
904
918
  P([s({ attribute: !1 })], z.prototype, "user", void 0), P([s()], z.prototype, "profilePictureBaseUrl", void 0), P([s()], z.prototype, "myProfileUrl", void 0), P([s({
905
919
  type: Boolean,
906
920
  reflect: !0
907
- })], z.prototype, "expanded", void 0), P([l()], z.prototype, "_avatarFailed", void 0), z = P([S(), o("vsn-footer")], z);
921
+ })], z.prototype, "expanded", void 0), P([l()], z.prototype, "_avatarFailed", void 0), z = P([x(), o("vsn-footer")], z);
908
922
  //#endregion
909
923
  //#region src/components/vsn-side-bar/vsn-header/vsn-header.keyboard.ts
910
- var gt = class {
924
+ var _t = class {
911
925
  constructor(e) {
912
926
  this.onSwitcherKeydown = (e) => {
913
927
  if (!e.defaultPrevented) {
@@ -945,28 +959,13 @@ var gt = class {
945
959
  t instanceof HTMLElement && t.classList.contains("ga-side-navigation__switcher-dropdown-item") && (e.preventDefault(), t.click());
946
960
  return;
947
961
  }
948
- if (j(e) && e.key === "Tab") {
949
- let t = Array.from(this.querySelectorAll(".ga-side-navigation__switcher-dropdown-item")), n = t[t.length - 1];
950
- n && e.target === n && this.dispatchEvent(new CustomEvent("tab-exit", {
951
- bubbles: !0,
952
- composed: !0
953
- }));
954
- return;
955
- }
956
962
  if (A(e) || e.key !== "ArrowDown" && e.key !== "ArrowUp") return;
957
963
  e.preventDefault();
958
964
  let t = Array.from(this.querySelectorAll(".ga-side-navigation__switcher-dropdown-item"));
959
965
  if (t.length === 0) return;
960
966
  let n = this.getRootNode().activeElement, r = n instanceof HTMLElement ? t.indexOf(n) : -1;
961
967
  if (e.key === "ArrowUp") {
962
- if (r <= 0) {
963
- this.dispatchEvent(new CustomEvent("focus-switcher", {
964
- bubbles: !0,
965
- composed: !0
966
- }));
967
- return;
968
- }
969
- t[r - 1].focus();
968
+ r < 0 ? t[0].focus() : r > 0 && t[r - 1].focus();
970
969
  return;
971
970
  }
972
971
  r === -1 ? t[0].focus() : r < t.length - 1 && t[r + 1].focus();
@@ -990,7 +989,7 @@ var gt = class {
990
989
  <div class="ga-side-navigation__switcher-dropdown vsn-switcher-dropdown--loading"
991
990
  role="status"
992
991
  aria-busy="true"
993
- aria-label=${x("Loading modules")}>
992
+ aria-label=${b("Loading modules")}>
994
993
  <span class="vsn-spinner"></span>
995
994
  </div>
996
995
  ` : n`
@@ -1012,7 +1011,7 @@ var gt = class {
1012
1011
  `;
1013
1012
  }
1014
1013
  };
1015
- P([s({ attribute: !1 })], B.prototype, "items", void 0), P([s({ type: Boolean })], B.prototype, "loading", void 0), P([s({ attribute: !1 })], B.prototype, "maxHeight", void 0), B = P([S(), o("vsn-switcher-menu")], B);
1014
+ P([s({ attribute: !1 })], B.prototype, "items", void 0), P([s({ type: Boolean })], B.prototype, "loading", void 0), P([s({ attribute: !1 })], B.prototype, "maxHeight", void 0), B = P([x(), o("vsn-switcher-menu")], B);
1016
1015
  //#endregion
1017
1016
  //#region src/components/vsn-side-bar/vsn-search/vsn-search.ts
1018
1017
  var V = class extends e {
@@ -1060,7 +1059,7 @@ var V = class extends e {
1060
1059
  <button
1061
1060
  type="button"
1062
1061
  class="vsn-search__trigger"
1063
- aria-label=${x("Search")}
1062
+ aria-label=${b("Search")}
1064
1063
  ?disabled=${!this._canSearch}
1065
1064
  @click=${this._emitSearch}>
1066
1065
  ${M(at, 24)}
@@ -1085,11 +1084,11 @@ var V = class extends e {
1085
1084
  `;
1086
1085
  }
1087
1086
  _spinner() {
1088
- return n`<span class="vsn-spinner" role="status" aria-label=${x("Searching")}></span>`;
1087
+ return n`<span class="vsn-spinner" role="status" aria-label=${b("Searching")}></span>`;
1089
1088
  }
1090
1089
  _clearButton() {
1091
1090
  return n`
1092
- <button class="vsn-search__clear" aria-label=${x("Clear search")}
1091
+ <button class="vsn-search__clear" aria-label=${b("Clear search")}
1093
1092
  @click=${this._emitSearchCleared}>
1094
1093
  ${M(ot, 16)}
1095
1094
  </button>
@@ -1099,7 +1098,7 @@ var V = class extends e {
1099
1098
  return n`<kbd class="ga-side-navigation__search-shortcut">${this.shortcut}</kbd>`;
1100
1099
  }
1101
1100
  };
1102
- P([s()], V.prototype, "shortcut", void 0), P([s()], V.prototype, "value", void 0), P([s({ type: Boolean })], V.prototype, "loading", void 0), V = P([S(), o("vsn-search")], V);
1101
+ P([s()], V.prototype, "shortcut", void 0), P([s()], V.prototype, "value", void 0), P([s({ type: Boolean })], V.prototype, "loading", void 0), V = P([x(), o("vsn-search")], V);
1103
1102
  //#endregion
1104
1103
  //#region src/components/vsn-side-bar/vsn-header/vsn-header.ts
1105
1104
  var H = class extends e {
@@ -1107,9 +1106,17 @@ var H = class extends e {
1107
1106
  return this;
1108
1107
  }
1109
1108
  constructor() {
1110
- super(), this.modules = [], this.modulesLoading = !1, this.hasMenu = !1, this.moduleSwitcherMaxHeight = 0, this.searchValue = "", this.searchLoading = !1, this.expanded = !1, this._keyboard = new gt(this), new dt(this, [".ga-side-navigation__switcher-dropdown", ".ga-side-navigation__switcher"], () => {
1109
+ super(), this.modules = [], this.modulesLoading = !1, this.hasMenu = !1, this.moduleSwitcherMaxHeight = 0, this.searchValue = "", this.searchLoading = !1, this.expanded = !1, this._keyboard = new _t(this), new dt(this, [".ga-side-navigation__switcher-dropdown", ".ga-side-navigation__switcher"], () => {
1111
1110
  this.canClose && (this.expanded = !1);
1112
- });
1111
+ }), new mt(this, () => this.expanded, ".vsn-switcher-anchor");
1112
+ }
1113
+ focus() {
1114
+ let e = this.querySelector("vsn-search");
1115
+ if (e) {
1116
+ e.focus();
1117
+ return;
1118
+ }
1119
+ e = this.querySelector(".ga-side-navigation__switcher"), e && e.focus();
1113
1120
  }
1114
1121
  render() {
1115
1122
  let e = this._state;
@@ -1136,9 +1143,7 @@ var H = class extends e {
1136
1143
  .loading=${e.kind === "loading"}
1137
1144
  .maxHeight=${this.moduleSwitcherMaxHeight}
1138
1145
  @item-select=${this._onItemSelect}
1139
- @close-request=${this._onCloseRequest}
1140
- @focus-switcher=${this._onFocusSwitcher}
1141
- @tab-exit=${this._onTabExit}>
1146
+ @close-request=${this._onCloseRequest}>
1142
1147
  </vsn-switcher-menu>`)}
1143
1148
  </div>
1144
1149
 
@@ -1200,20 +1205,14 @@ var H = class extends e {
1200
1205
  this.querySelector(".ga-side-navigation__switcher")?.focus();
1201
1206
  }));
1202
1207
  }
1203
- _onFocusSwitcher() {
1204
- this.querySelector(".ga-side-navigation__switcher")?.focus();
1205
- }
1206
- _onTabExit() {
1207
- this.canClose && (this.expanded = !1);
1208
- }
1209
1208
  };
1210
1209
  P([s({ attribute: !1 })], H.prototype, "modules", void 0), P([s()], H.prototype, "activeModuleId", void 0), P([s()], H.prototype, "activeModuleLabel", void 0), P([s({ type: Boolean })], H.prototype, "modulesLoading", void 0), P([s({ type: Boolean })], H.prototype, "hasMenu", void 0), P([s({ attribute: !1 })], H.prototype, "moduleSwitcherMaxHeight", void 0), P([s({ attribute: !1 })], H.prototype, "search", void 0), P([s()], H.prototype, "searchValue", void 0), P([s({ type: Boolean })], H.prototype, "searchLoading", void 0), P([s({
1211
1210
  type: Boolean,
1212
1211
  reflect: !0
1213
- })], H.prototype, "expanded", void 0), H = P([S(), o("vsn-header")], H);
1212
+ })], H.prototype, "expanded", void 0), H = P([x(), o("vsn-header")], H);
1214
1213
  //#endregion
1215
1214
  //#region src/components/vsn-side-bar/vsn-search-results/vsn-search-results.keyboard.ts
1216
- var _t = class {
1215
+ var vt = class {
1217
1216
  constructor(e) {
1218
1217
  this.onResultsKeydown = (e) => {
1219
1218
  if (e.defaultPrevented || A(e) || e.key !== "ArrowDown" && e.key !== "ArrowUp") return;
@@ -1229,7 +1228,7 @@ var _t = class {
1229
1228
  hostConnected() {}
1230
1229
  }, U = class extends e {
1231
1230
  constructor(...e) {
1232
- super(...e), this.loadingMore = !1, this._keyboard = new _t(this);
1231
+ super(...e), this.loadingMore = !1, this._keyboard = new vt(this);
1233
1232
  }
1234
1233
  createRenderRoot() {
1235
1234
  return this;
@@ -1240,10 +1239,10 @@ var _t = class {
1240
1239
  _emptyState() {
1241
1240
  return n`
1242
1241
  <div class="vsn-search-results__empty" role="status" aria-live="polite">
1243
- <div class="vsn-search-results__empty-title">${x("No results found")}</div>
1244
- <div class="vsn-search-results__empty-message">${x("We couldn't find any matches.")}</div>
1245
- <div class="vsn-search-results__empty-hint">${x("Try different keywords or check spelling.")}</div>
1246
- <div class="vsn-search-results__empty-support">${x("Need help? Contact support.")}</div>
1242
+ <div class="vsn-search-results__empty-title">${b("No results found")}</div>
1243
+ <div class="vsn-search-results__empty-message">${b("We couldn't find any matches.")}</div>
1244
+ <div class="vsn-search-results__empty-hint">${b("Try different keywords or check spelling.")}</div>
1245
+ <div class="vsn-search-results__empty-support">${b("Need help? Contact support.")}</div>
1247
1246
  </div>
1248
1247
  `;
1249
1248
  }
@@ -1260,7 +1259,7 @@ var _t = class {
1260
1259
  <div class="ga-side-navigation__body h-full ga-scroll"
1261
1260
  @keydown=${this._keyboard.onResultsKeydown}>
1262
1261
  <div class="ga-side-navigation__search-results-title">
1263
- ${x(t === 1 ? b`${t} result` : b`${t} results`)}
1262
+ ${b(t === 1 ? y`${t} result` : y`${t} results`)}
1264
1263
  </div>
1265
1264
  ${e.map((e) => this._resultRow(e))}
1266
1265
  ${u(this.nextCursor, () => n`
@@ -1304,16 +1303,16 @@ var _t = class {
1304
1303
  }));
1305
1304
  }
1306
1305
  };
1307
- P([s({ attribute: !1 })], U.prototype, "results", void 0), P([s()], U.prototype, "errorMessage", void 0), P([s()], U.prototype, "nextCursor", void 0), P([s({ type: Boolean })], U.prototype, "loadingMore", void 0), U = P([S(), o("vsn-search-results")], U);
1306
+ P([s({ attribute: !1 })], U.prototype, "results", void 0), P([s()], U.prototype, "errorMessage", void 0), P([s()], U.prototype, "nextCursor", void 0), P([s({ type: Boolean })], U.prototype, "loadingMore", void 0), U = P([x(), o("vsn-search-results")], U);
1308
1307
  //#endregion
1309
1308
  //#region src/components/vsn-side-bar/vsn-template/vsn-template.ts
1310
- var vt = [
1309
+ var yt = [
1311
1310
  160,
1312
1311
  96,
1313
1312
  144,
1314
1313
  192,
1315
1314
  160
1316
- ], yt = class extends e {
1315
+ ], bt = class extends e {
1317
1316
  createRenderRoot() {
1318
1317
  return this;
1319
1318
  }
@@ -1322,8 +1321,8 @@ var vt = [
1322
1321
  <div class="ga-side-navigation__body h-full"
1323
1322
  role="status"
1324
1323
  aria-busy="true"
1325
- aria-label=${x("Loading results")}>
1326
- ${vt.map((e) => n`
1324
+ aria-label=${b("Loading results")}>
1325
+ ${yt.map((e) => n`
1327
1326
  <div class="vsn-template__row">
1328
1327
  <div class="vsn-template__bar" style="width: ${e}px"></div>
1329
1328
  </div>
@@ -1332,10 +1331,10 @@ var vt = [
1332
1331
  `;
1333
1332
  }
1334
1333
  };
1335
- yt = P([S(), o("vsn-template")], yt);
1334
+ bt = P([x(), o("vsn-template")], bt);
1336
1335
  //#endregion
1337
1336
  //#region src/components/vsn-side-bar/vsn-error-state/vsn-error-state.ts
1338
- var bt = class extends e {
1337
+ var xt = class extends e {
1339
1338
  createRenderRoot() {
1340
1339
  return this;
1341
1340
  }
@@ -1343,23 +1342,23 @@ var bt = class extends e {
1343
1342
  return n`
1344
1343
  <div class="vsn-error-state" role="alert" aria-live="assertive">
1345
1344
  <div class="vsn-error-state__icon">${M(st, 24)}</div>
1346
- <div class="vsn-error-state__title">${x("Loading error")}</div>
1347
- <div class="vsn-error-state__message">${x("We're unable to load the menu.")}</div>
1348
- <div class="vsn-error-state__hint">${x("Please check your internet connection and try again.")}</div>
1349
- <div class="vsn-error-state__support">${x("If the issue persists, reload the page or contact support.")}</div>
1345
+ <div class="vsn-error-state__title">${b("Loading error")}</div>
1346
+ <div class="vsn-error-state__message">${b("We're unable to load the menu.")}</div>
1347
+ <div class="vsn-error-state__hint">${b("Please check your internet connection and try again.")}</div>
1348
+ <div class="vsn-error-state__support">${b("If the issue persists, reload the page or contact support.")}</div>
1350
1349
  </div>
1351
1350
  `;
1352
1351
  }
1353
1352
  };
1354
- bt = P([S(), o("vsn-error-state")], bt);
1353
+ xt = P([x(), o("vsn-error-state")], xt);
1355
1354
  //#endregion
1356
1355
  //#region src/components/vsn-side-bar/vsn-search-scopes/vsn-search-scopes.ts
1357
- var W, G = class extends e {
1356
+ var St, W = class extends e {
1358
1357
  static {
1359
- W = this;
1358
+ St = this;
1360
1359
  }
1361
1360
  constructor(...e) {
1362
- super(...e), this.scopes = [], this.selectedScopeId = "", this._name = `vsn-search-scope-${++W._counter}`;
1361
+ super(...e), this.scopes = [], this.selectedScopeId = "", this._name = `vsn-search-scope-${++St._counter}`;
1363
1362
  }
1364
1363
  createRenderRoot() {
1365
1364
  return this;
@@ -1369,7 +1368,7 @@ var W, G = class extends e {
1369
1368
  }
1370
1369
  render() {
1371
1370
  return this.scopes.length <= 1 ? n`` : n`
1372
- <div class="ga-radio-group" role="radiogroup" aria-label=${x("Search scope")}>
1371
+ <div class="ga-radio-group" role="radiogroup" aria-label=${b("Search scope")}>
1373
1372
  ${this.scopes.map((e) => this._renderScope(e))}
1374
1373
  </div>
1375
1374
  `;
@@ -1398,25 +1397,25 @@ var W, G = class extends e {
1398
1397
  }));
1399
1398
  }
1400
1399
  };
1401
- P([s({ attribute: !1 })], G.prototype, "scopes", void 0), P([s()], G.prototype, "selectedScopeId", void 0), G = W = P([S(), o("vsn-search-scopes")], G);
1400
+ P([s({ attribute: !1 })], W.prototype, "scopes", void 0), P([s()], W.prototype, "selectedScopeId", void 0), W = St = P([x(), o("vsn-search-scopes")], W);
1402
1401
  //#endregion
1403
1402
  //#region src/shared/lang/locale-codes.ts
1404
- var xt = "en", St = [
1403
+ var Ct = "en", wt = [
1405
1404
  "da",
1406
1405
  "fi",
1407
1406
  "nl",
1408
1407
  "no",
1409
1408
  "sv"
1410
- ], Ct = /* @__PURE__ */ p({ templates: () => wt }), wt = {
1409
+ ], Tt = /* @__PURE__ */ p({ templates: () => Et }), Et = {
1411
1410
  s09a45db408570a7a: "Min profil",
1412
1411
  s119f9875b7d4cdfc: "Har du brug for hjælp? Kontakt support.",
1413
- s1228605ee65ddefa: b`${0} resultat`,
1414
- s2bb33291ef8ae3d4: b`Indtast mindst ${0} tegn for at søge`,
1412
+ s1228605ee65ddefa: y`${0} resultat`,
1413
+ s2bb33291ef8ae3d4: y`Indtast mindst ${0} tegn for at søge`,
1415
1414
  s2be8f715fbd00dcb: "Vi fandt ingen matchende resultater.",
1416
1415
  s301876182accccad: " › ",
1417
1416
  s3112f1ca236c8a61: "Indlæsningsfejl",
1418
1417
  s352719d86112de9a: "Hjælp",
1419
- s387a4a41718122cb: b`${0} resultater`,
1418
+ s387a4a41718122cb: y`${0} resultater`,
1420
1419
  s3fb7db4771812f0c: "Hvis problemet fortsætter, genindlæs siden eller kontakt support.",
1421
1420
  s4b0c6b66b4efd7d8: "Vælg en tjeneste",
1422
1421
  s5be3c6d61cd9182f: "Notifikationer",
@@ -1437,16 +1436,16 @@ var xt = "en", St = [
1437
1436
  sfbf31f663cef6cc2: "Prøv andre søgeord eller tjek stavningen.",
1438
1437
  s7c510419ea376840: "VSN",
1439
1438
  s38385cd359b17f7a: "Loading modules"
1440
- }, Tt = /* @__PURE__ */ p({ templates: () => Et }), Et = {
1439
+ }, Dt = /* @__PURE__ */ p({ templates: () => Ot }), Ot = {
1441
1440
  s09a45db408570a7a: "Oma profiili",
1442
1441
  s119f9875b7d4cdfc: "Tarvitsetko apua? Ota yhteyttä tukeen.",
1443
- s1228605ee65ddefa: b`${0} tulos`,
1444
- s2bb33291ef8ae3d4: b`Kirjoita vähintään ${0} merkkiä hakua varten`,
1442
+ s1228605ee65ddefa: y`${0} tulos`,
1443
+ s2bb33291ef8ae3d4: y`Kirjoita vähintään ${0} merkkiä hakua varten`,
1445
1444
  s2be8f715fbd00dcb: "Emme löytäneet osumia.",
1446
1445
  s301876182accccad: " › ",
1447
1446
  s3112f1ca236c8a61: "Latausvirhe",
1448
1447
  s352719d86112de9a: "Ohje",
1449
- s387a4a41718122cb: b`${0} tulosta`,
1448
+ s387a4a41718122cb: y`${0} tulosta`,
1450
1449
  s3fb7db4771812f0c: "Jos ongelma jatkuu, lataa sivu uudelleen tai ota yhteyttä tukeen.",
1451
1450
  s4b0c6b66b4efd7d8: "Valitse palvelu",
1452
1451
  s5be3c6d61cd9182f: "Ilmoitukset",
@@ -1467,16 +1466,16 @@ var xt = "en", St = [
1467
1466
  sfbf31f663cef6cc2: "Kokeile eri hakusanoja tai tarkista kirjoitusasu.",
1468
1467
  s7c510419ea376840: "VSN",
1469
1468
  s38385cd359b17f7a: "Loading modules"
1470
- }, Dt = /* @__PURE__ */ p({ templates: () => Ot }), Ot = {
1469
+ }, kt = /* @__PURE__ */ p({ templates: () => At }), At = {
1471
1470
  s09a45db408570a7a: "Mijn profiel",
1472
1471
  s119f9875b7d4cdfc: "Hulp nodig? Neem contact op met ondersteuning.",
1473
- s1228605ee65ddefa: b`${0} resultaat`,
1474
- s2bb33291ef8ae3d4: b`Typ minimaal ${0} tekens om te zoeken`,
1472
+ s1228605ee65ddefa: y`${0} resultaat`,
1473
+ s2bb33291ef8ae3d4: y`Typ minimaal ${0} tekens om te zoeken`,
1475
1474
  s2be8f715fbd00dcb: "We konden geen overeenkomsten vinden.",
1476
1475
  s301876182accccad: " › ",
1477
1476
  s3112f1ca236c8a61: "Laadingsfout",
1478
1477
  s352719d86112de9a: "Hulp",
1479
- s387a4a41718122cb: b`${0} resultaten`,
1478
+ s387a4a41718122cb: y`${0} resultaten`,
1480
1479
  s3fb7db4771812f0c: "Als het probleem aanhoudt, laad de pagina opnieuw of neem contact op met ondersteuning.",
1481
1480
  s4b0c6b66b4efd7d8: "Kies een service",
1482
1481
  s5be3c6d61cd9182f: "Meldingen",
@@ -1497,16 +1496,16 @@ var xt = "en", St = [
1497
1496
  sfbf31f663cef6cc2: "Probeer andere zoekwoorden of controleer de spelling.",
1498
1497
  s7c510419ea376840: "VSN",
1499
1498
  s38385cd359b17f7a: "Loading modules"
1500
- }, kt = /* @__PURE__ */ p({ templates: () => At }), At = {
1499
+ }, jt = /* @__PURE__ */ p({ templates: () => Mt }), Mt = {
1501
1500
  s09a45db408570a7a: "Min profil",
1502
1501
  s119f9875b7d4cdfc: "Trenger du hjelp? Kontakt støtte.",
1503
- s1228605ee65ddefa: b`${0} resultat`,
1504
- s2bb33291ef8ae3d4: b`Skriv inn minst ${0} tegn for å søke`,
1502
+ s1228605ee65ddefa: y`${0} resultat`,
1503
+ s2bb33291ef8ae3d4: y`Skriv inn minst ${0} tegn for å søke`,
1505
1504
  s2be8f715fbd00dcb: "Vi fant ingen treff.",
1506
1505
  s301876182accccad: " › ",
1507
1506
  s3112f1ca236c8a61: "Lastingsfeil",
1508
1507
  s352719d86112de9a: "Hjelp",
1509
- s387a4a41718122cb: b`${0} resultater`,
1508
+ s387a4a41718122cb: y`${0} resultater`,
1510
1509
  s3fb7db4771812f0c: "Hvis problemet vedvarer, last inn siden på nytt eller kontakt støtte.",
1511
1510
  s4b0c6b66b4efd7d8: "Velg en tjeneste",
1512
1511
  s5be3c6d61cd9182f: "Varsler",
@@ -1527,16 +1526,16 @@ var xt = "en", St = [
1527
1526
  sfbf31f663cef6cc2: "Prøv andre søkeord eller sjekk stavemåten.",
1528
1527
  s7c510419ea376840: "VSN",
1529
1528
  s38385cd359b17f7a: "Loading modules"
1530
- }, jt = /* @__PURE__ */ p({ templates: () => Mt }), Mt = {
1529
+ }, Nt = /* @__PURE__ */ p({ templates: () => Pt }), Pt = {
1531
1530
  s09a45db408570a7a: "Min profil",
1532
1531
  s119f9875b7d4cdfc: "Behöver du hjälp? Kontakta support.",
1533
- s1228605ee65ddefa: b`${0} resultat`,
1534
- s2bb33291ef8ae3d4: b`Skriv minst ${0} tecken för att söka`,
1532
+ s1228605ee65ddefa: y`${0} resultat`,
1533
+ s2bb33291ef8ae3d4: y`Skriv minst ${0} tecken för att söka`,
1535
1534
  s2be8f715fbd00dcb: "Vi hittade inga matchningar.",
1536
1535
  s301876182accccad: " › ",
1537
1536
  s3112f1ca236c8a61: "Laddningsfel",
1538
1537
  s352719d86112de9a: "Hjälp",
1539
- s387a4a41718122cb: b`${0} resultat`,
1538
+ s387a4a41718122cb: y`${0} resultat`,
1540
1539
  s3fb7db4771812f0c: "Om problemet kvarstår, ladda om sidan eller kontakta support.",
1541
1540
  s4b0c6b66b4efd7d8: "Välj en tjänst",
1542
1541
  s5be3c6d61cd9182f: "Aviseringar",
@@ -1557,17 +1556,17 @@ var xt = "en", St = [
1557
1556
  sfbf31f663cef6cc2: "Prova andra sökord eller kontrollera stavningen.",
1558
1557
  s7c510419ea376840: "VSN",
1559
1558
  s38385cd359b17f7a: "Loading modules"
1560
- }, Nt = {
1561
- da: Ct,
1562
- fi: Tt,
1563
- nl: Dt,
1564
- no: kt,
1565
- sv: jt
1566
- }, { getLocale: Pt, setLocale: Ft } = je({
1567
- sourceLocale: xt,
1568
- targetLocales: St,
1569
- loadLocale: (e) => Nt[e] ? Promise.resolve(Nt[e]) : Promise.reject(/* @__PURE__ */ Error(`Unknown locale: ${e}`))
1570
- }), It = t`
1559
+ }, Ft = {
1560
+ da: Tt,
1561
+ fi: Dt,
1562
+ nl: kt,
1563
+ no: jt,
1564
+ sv: Nt
1565
+ }, { getLocale: It, setLocale: Lt } = je({
1566
+ sourceLocale: Ct,
1567
+ targetLocales: wt,
1568
+ loadLocale: (e) => Ft[e] ? Promise.resolve(Ft[e]) : Promise.reject(/* @__PURE__ */ Error(`Unknown locale: ${e}`))
1569
+ }), Rt = t`
1571
1570
  @layer components {
1572
1571
  vsn-footer {
1573
1572
  display: block;
@@ -1608,7 +1607,7 @@ var xt = "en", St = [
1608
1607
  justify-content: center;
1609
1608
  }
1610
1609
  }
1611
- `, Lt = t`
1610
+ `, zt = t`
1612
1611
  @layer components {
1613
1612
  .vsn-switcher-anchor {
1614
1613
  position: relative;
@@ -1622,7 +1621,7 @@ var xt = "en", St = [
1622
1621
  z-index: 10;
1623
1622
  }
1624
1623
  }
1625
- `, Rt = t`
1624
+ `, Bt = t`
1626
1625
  .vsn-search__trigger,
1627
1626
  .vsn-search__clear {
1628
1627
  display: inline-flex;
@@ -1671,7 +1670,7 @@ var xt = "en", St = [
1671
1670
  .ga-side-navigation__search input::placeholder {
1672
1671
  color: var(--ga-color-text-disable-selected);
1673
1672
  }
1674
- `, zt = t`
1673
+ `, Vt = t`
1675
1674
  .vsn-search-results__empty {
1676
1675
  display: flex;
1677
1676
  flex-direction: column;
@@ -1740,7 +1739,7 @@ var xt = "en", St = [
1740
1739
  cursor: not-allowed;
1741
1740
  opacity: 0.5;
1742
1741
  }
1743
- `, Bt = t`
1742
+ `, Ht = t`
1744
1743
  @layer components {
1745
1744
  vsn-search-scopes {
1746
1745
  display: block;
@@ -1761,7 +1760,7 @@ var xt = "en", St = [
1761
1760
  text-overflow: ellipsis;
1762
1761
  }
1763
1762
  }
1764
- `, Vt = t`
1763
+ `, Ut = t`
1765
1764
  .vsn-template__row {
1766
1765
  display: flex;
1767
1766
  flex-direction: column;
@@ -1776,7 +1775,7 @@ var xt = "en", St = [
1776
1775
  background: var(--ga-color-miscellaneous-skeleton-element, #F2F3F5);
1777
1776
  flex-shrink: 0;
1778
1777
  }
1779
- `, Ht = t`
1778
+ `, Wt = t`
1780
1779
  .vsn-error-state {
1781
1780
  display: flex;
1782
1781
  flex-direction: column;
@@ -1815,7 +1814,7 @@ var xt = "en", St = [
1815
1814
  font-weight: 400;
1816
1815
  color: var(--ga-color-text-on-disabled);
1817
1816
  }
1818
- `, Ut = t`
1817
+ `, Gt = t`
1819
1818
  .vsn-spinner {
1820
1819
  display: inline-block;
1821
1820
  flex-shrink: 0;
@@ -1835,7 +1834,7 @@ var xt = "en", St = [
1835
1834
  @keyframes vsn-spin {
1836
1835
  to { transform: rotate(360deg); }
1837
1836
  }
1838
- `, Wt = class {
1837
+ `, Kt = class {
1839
1838
  constructor(e, t, n) {
1840
1839
  this._onHostClick = (e) => {
1841
1840
  let t = this._host.renderRoot.querySelector(this._clickedSelector);
@@ -1848,14 +1847,14 @@ var xt = "en", St = [
1848
1847
  hostDisconnected() {
1849
1848
  this._host.removeEventListener("click", this._onHostClick);
1850
1849
  }
1851
- }, Gt = "button:not([disabled]), a[href], [tabindex]:not([tabindex=\"-1\"])", Kt = class {
1850
+ }, qt = "button:not([disabled]), a[href], [tabindex]:not([tabindex=\"-1\"])", Jt = class {
1852
1851
  constructor(e) {
1853
1852
  this.onKeydown = (e) => {
1854
1853
  if (e.defaultPrevented || A(e) || e.key !== "ArrowDown" && e.key !== "ArrowUp") return;
1855
1854
  let t = this.host.renderRoot.querySelector("slot[name=\"nav-footer\"]");
1856
1855
  if (!t) return;
1857
1856
  let n = [];
1858
- for (let e of t.assignedElements({ flatten: !0 })) e.matches(Gt) && n.push(e), n.push(...Array.from(e.querySelectorAll(Gt)));
1857
+ for (let e of t.assignedElements({ flatten: !0 })) e.matches(qt) && n.push(e), n.push(...Array.from(e.querySelectorAll(qt)));
1859
1858
  if (n.length === 0) return;
1860
1859
  let r = e.composedPath()[0];
1861
1860
  if (!(r instanceof HTMLElement)) return;
@@ -1867,24 +1866,38 @@ var xt = "en", St = [
1867
1866
  }, this.host = e, e.addController(this);
1868
1867
  }
1869
1868
  hostConnected() {}
1870
- }, K = t`
1869
+ }, G = t`
1871
1870
  .ga-scroll {
1872
1871
  scrollbar-color: var(--ga-color-text-disabled) var(--ga-color-surface-page);
1873
1872
  scrollbar-width: thin;
1874
1873
  }
1875
- `, q = class extends e {
1874
+ `, Yt = t`
1875
+ @layer components {
1876
+ .ga-side-navigation__item:focus-visible::after {
1877
+ position: absolute;
1878
+ inset: 3px;
1879
+ border-radius: calc(var(--ga-radius) * var(--ga-base-scaling-factor, 1));
1880
+ border-style: var(--tw-border-style);
1881
+ border-width: 2px;
1882
+ border-color: var(--ga-color-border-focus);
1883
+ --tw-content: '';
1884
+ content: var(--tw-content);
1885
+ }
1886
+ }
1887
+ `, K = class extends e {
1876
1888
  static {
1877
1889
  this.styles = [
1878
1890
  h,
1879
- K,
1880
- Lt,
1881
- It,
1882
- Rt,
1891
+ G,
1883
1892
  zt,
1893
+ Yt,
1894
+ Rt,
1884
1895
  Bt,
1885
1896
  Vt,
1886
1897
  Ht,
1887
1898
  Ut,
1899
+ Wt,
1900
+ Gt,
1888
1901
  t`
1889
1902
  :host {
1890
1903
  position: absolute;
@@ -1899,7 +1912,7 @@ var xt = "en", St = [
1899
1912
  ];
1900
1913
  }
1901
1914
  constructor() {
1902
- super(), this.modules = [], this.modulesLoading = !1, this.lang = "en", this.error = !1, this.open = !1, this._searchQuery = "", this._searchLoading = !1, this._activeScopeId = "menu", this._searchLoadingMore = !1, this._moduleSwitcherMaxHeight = 0, this._navFooterKeyboard = new Kt(this), this._onNavigate = (e) => {
1915
+ super(), this.modules = [], this.modulesLoading = !1, this.lang = "en", this.error = !1, this.open = !1, this._searchQuery = "", this._searchLoading = !1, this._activeScopeId = "menu", this._searchLoadingMore = !1, this._moduleSwitcherMaxHeight = 0, this._navFooterKeyboard = new Jt(this), this._onNavigate = (e) => {
1903
1916
  this._searchQuery = "", this._searchResults = void 0, this.dispatchEvent(new CustomEvent("vsn-side-bar-close", {
1904
1917
  bubbles: !0,
1905
1918
  composed: !0
@@ -1916,21 +1929,21 @@ var xt = "en", St = [
1916
1929
  }));
1917
1930
  }, this._onScopeChanged = (e) => {
1918
1931
  this._activeScopeId = e.detail.scopeId, this._runSearch(this._searchQuery, this._activeScopeId);
1919
- }, new Wt(this, ".ga-side-navigation", () => this.dispatchEvent(new CustomEvent("vsn-side-bar-close", {
1932
+ }, new Kt(this, ".ga-side-navigation", () => this.dispatchEvent(new CustomEvent("vsn-side-bar-close", {
1920
1933
  bubbles: !0,
1921
1934
  composed: !0
1922
1935
  }))), this._resizeObserver = new ResizeObserver((e) => {
1923
1936
  this._observeMenuSize(e);
1924
- }), this._resizeObserver.observe(this);
1937
+ }), this._resizeObserver.observe(this), new mt(this, () => this.open);
1925
1938
  }
1926
1939
  _observeMenuSize(e) {
1927
1940
  this._moduleSwitcherMaxHeight = Math.max(0, e[0].contentRect.height - 134);
1928
1941
  }
1929
1942
  willUpdate(e) {
1930
- e.has("lang") && Ft(this.lang).catch(console.error), e.has("open") && e.get("open") && !this.open && (this._searchQuery = "", this._activeScopeId = "menu", this._clearSearchState(), this.renderRoot.querySelector("vsn-header")?.reset(), this.renderRoot.querySelector("vsn-footer")?.reset());
1943
+ e.has("lang") && Lt(this.lang).catch(console.error), e.has("open") && e.get("open") && !this.open && (this._searchQuery = "", this._activeScopeId = "menu", this._clearSearchState(), this.renderRoot.querySelector("vsn-header")?.reset(), this.renderRoot.querySelector("vsn-footer")?.reset());
1931
1944
  }
1932
1945
  async focusSearch() {
1933
- await this.updateComplete, this.menu?.search?.enabled && this.renderRoot.querySelector("vsn-search")?.focus();
1946
+ await this.updateComplete, this.renderRoot.querySelector("vsn-header")?.focus();
1934
1947
  }
1935
1948
  _onSearchInput(e) {
1936
1949
  this._searchQuery = e.detail.value, e.detail.value === "" && this._clearSearchState();
@@ -1969,7 +1982,7 @@ var xt = "en", St = [
1969
1982
  this._searchResults = t.results, this._searchNextCursor = t.nextCursor, this._searchLoading = !1, this._searchAbort = void 0;
1970
1983
  } catch (e) {
1971
1984
  if (this._searchAbort !== r) return;
1972
- e instanceof v ? (this._searchError = e.message, this._searchResults = void 0) : console.error("Search function rejected with non-SearchError:", e), this._searchLoading = !1, this._searchAbort = void 0;
1985
+ e instanceof de ? (this._searchError = e.message, this._searchResults = void 0) : console.error("Search function rejected with non-SearchError:", e), this._searchLoading = !1, this._searchAbort = void 0;
1973
1986
  }
1974
1987
  }
1975
1988
  async _loadMore() {
@@ -1989,7 +2002,7 @@ var xt = "en", St = [
1989
2002
  this._searchResults = [...this._searchResults ?? [], ...n.results], this._searchNextCursor = n.nextCursor, this._searchLoadingMore = !1, this._searchAbort = void 0;
1990
2003
  } catch (e) {
1991
2004
  if (this._searchAbort !== t) return;
1992
- e instanceof v ? (this._searchError = e.message, this._searchResults = void 0, this._searchNextCursor = void 0) : console.error("Load-more function rejected with non-SearchError:", e), this._searchLoadingMore = !1, this._searchAbort = void 0;
2005
+ e instanceof de ? (this._searchError = e.message, this._searchResults = void 0, this._searchNextCursor = void 0) : console.error("Load-more function rejected with non-SearchError:", e), this._searchLoadingMore = !1, this._searchAbort = void 0;
1993
2006
  }
1994
2007
  }
1995
2008
  _filterTree(e) {
@@ -2099,15 +2112,15 @@ var xt = "en", St = [
2099
2112
  `;
2100
2113
  }
2101
2114
  };
2102
- P([s({ attribute: !1 })], q.prototype, "modules", void 0), P([s()], q.prototype, "activeModuleId", void 0), P([s()], q.prototype, "activeModuleLabel", void 0), P([s({ type: Boolean })], q.prototype, "modulesLoading", void 0), P([s()], q.prototype, "lang", void 0), P([s({ attribute: !1 })], q.prototype, "auth", void 0), P([s({ type: Boolean })], q.prototype, "error", void 0), P([s({
2115
+ P([s({ attribute: !1 })], K.prototype, "modules", void 0), P([s()], K.prototype, "activeModuleId", void 0), P([s()], K.prototype, "activeModuleLabel", void 0), P([s({ type: Boolean })], K.prototype, "modulesLoading", void 0), P([s()], K.prototype, "lang", void 0), P([s({ attribute: !1 })], K.prototype, "auth", void 0), P([s({ type: Boolean })], K.prototype, "error", void 0), P([s({
2103
2116
  type: Boolean,
2104
2117
  reflect: !0
2105
- })], q.prototype, "open", void 0), P([s({ attribute: !1 })], q.prototype, "menu", void 0), P([l()], q.prototype, "_searchQuery", void 0), P([l()], q.prototype, "_searchResults", void 0), P([l()], q.prototype, "_searchLoading", void 0), P([l()], q.prototype, "_activeScopeId", void 0), P([l()], q.prototype, "_searchError", void 0), P([l()], q.prototype, "_searchNextCursor", void 0), P([l()], q.prototype, "_searchLoadingMore", void 0), P([l()], q.prototype, "_moduleSwitcherMaxHeight", void 0), q = P([o("vsn-side-bar")], q);
2118
+ })], K.prototype, "open", void 0), P([s({ attribute: !1 })], K.prototype, "menu", void 0), P([l()], K.prototype, "_searchQuery", void 0), P([l()], K.prototype, "_searchResults", void 0), P([l()], K.prototype, "_searchLoading", void 0), P([l()], K.prototype, "_activeScopeId", void 0), P([l()], K.prototype, "_searchError", void 0), P([l()], K.prototype, "_searchNextCursor", void 0), P([l()], K.prototype, "_searchLoadingMore", void 0), P([l()], K.prototype, "_moduleSwitcherMaxHeight", void 0), K = P([o("vsn-side-bar")], K);
2106
2119
  //#endregion
2107
2120
  //#region src/components/vsn-top-bar/vsn-breadcrumb-menu-item.ts
2108
- var J, Y = class extends e {
2121
+ var Xt, q = class extends e {
2109
2122
  static {
2110
- J = this;
2123
+ Xt = this;
2111
2124
  }
2112
2125
  static {
2113
2126
  this._idCounter = 0;
@@ -2139,7 +2152,7 @@ var J, Y = class extends e {
2139
2152
  bubbles: !0,
2140
2153
  composed: !0
2141
2154
  }));
2142
- }, this._tooltipId = `vsn-menu-item-tooltip-${J._idCounter++}`;
2155
+ }, this._tooltipId = `vsn-menu-item-tooltip-${Xt._idCounter++}`;
2143
2156
  }
2144
2157
  createRenderRoot() {
2145
2158
  return this;
@@ -2189,10 +2202,10 @@ var J, Y = class extends e {
2189
2202
  if (this.tree && _(this.tree)) return this.tree.items.length > 0;
2190
2203
  }
2191
2204
  };
2192
- P([s({ attribute: !1 })], Y.prototype, "tree", void 0), P([s({ type: Number })], Y.prototype, "level", void 0), P([s({ type: Array })], Y.prototype, "ancestorPath", void 0), P([l()], Y.prototype, "_isExpanded", void 0), P([l()], Y.prototype, "_showTooltip", void 0), P([l()], Y.prototype, "_tooltipPos", void 0), P([c(".ga-side-navigation__item-label")], Y.prototype, "_labelEl", void 0), Y = J = P([o("vsn-breadcrumb-menu-item")], Y);
2205
+ P([s({ attribute: !1 })], q.prototype, "tree", void 0), P([s({ type: Number })], q.prototype, "level", void 0), P([s({ type: Array })], q.prototype, "ancestorPath", void 0), P([l()], q.prototype, "_isExpanded", void 0), P([l()], q.prototype, "_showTooltip", void 0), P([l()], q.prototype, "_tooltipPos", void 0), P([c(".ga-side-navigation__item-label")], q.prototype, "_labelEl", void 0), q = Xt = P([o("vsn-breadcrumb-menu-item")], q);
2193
2206
  //#endregion
2194
2207
  //#region src/components/vsn-top-bar/vsn-breadcrumb-menu.ts
2195
- var qt = class extends e {
2208
+ var Zt = class extends e {
2196
2209
  createRenderRoot() {
2197
2210
  return this;
2198
2211
  }
@@ -2212,10 +2225,10 @@ var qt = class extends e {
2212
2225
  `;
2213
2226
  }
2214
2227
  };
2215
- P([s({ attribute: !1 })], qt.prototype, "treeList", void 0), qt = P([o("vsn-breadcrumb-menu")], qt);
2228
+ P([s({ attribute: !1 })], Zt.prototype, "treeList", void 0), Zt = P([o("vsn-breadcrumb-menu")], Zt);
2216
2229
  //#endregion
2217
2230
  //#region src/components/vsn-top-bar/vsn-breadcrumbs.ts
2218
- var X = class extends e {
2231
+ var J = class extends e {
2219
2232
  constructor(...e) {
2220
2233
  super(...e), this.modules = [], this._openPopoverId = null, this._displayMode = "full", this._overflowCount = 0, this._tooltip = null, this._mqDesktop = window.matchMedia("(min-width: 1440px)"), this._mqTablet = window.matchMedia("(min-width: 768px) and (max-width: 1439px)"), this._ro = null, this._lastContainerWidth = 0, this._mounted = !1, this._handleMediaChange = () => {
2221
2234
  this._mqDesktop.matches ? (this._displayMode = "full", this._overflowCount = 0) : this._mqTablet.matches ? (this._displayMode = "overflow", this._overflowCount = 0, this._mounted && this.updateComplete.then(() => this._recalculateOverflow())) : (this._displayMode = "mobile", this._overflowCount = 0);
@@ -2236,7 +2249,7 @@ var X = class extends e {
2236
2249
  static {
2237
2250
  this.styles = [
2238
2251
  h,
2239
- K,
2252
+ G,
2240
2253
  t`
2241
2254
  /* Temporary, until breadcrumb styles are updated */
2242
2255
 
@@ -2546,7 +2559,7 @@ var X = class extends e {
2546
2559
  }
2547
2560
  render() {
2548
2561
  return n`
2549
- <nav aria-label=${x("Breadcrumb")}>
2562
+ <nav aria-label=${b("Breadcrumb")}>
2550
2563
  <div class="ga-breadcrumb">
2551
2564
  ${this._displayMode === "full" ? this._renderFullBreadcrumbs() : this._displayMode === "overflow" ? this._renderOverflowBreadcrumbs() : this._renderMobileBreadcrumbs()}
2552
2565
  </div>
@@ -2560,10 +2573,10 @@ var X = class extends e {
2560
2573
  `;
2561
2574
  }
2562
2575
  };
2563
- P([s({ attribute: !1 })], X.prototype, "tree", void 0), P([s({ type: Array })], X.prototype, "modules", void 0), P([s()], X.prototype, "activeModuleId", void 0), P([l()], X.prototype, "_openPopoverId", void 0), P([l()], X.prototype, "_displayMode", void 0), P([l()], X.prototype, "_overflowCount", void 0), P([l()], X.prototype, "_tooltip", void 0), X = P([S(), o("vsn-breadcrumbs")], X);
2576
+ P([s({ attribute: !1 })], J.prototype, "tree", void 0), P([s({ type: Array })], J.prototype, "modules", void 0), P([s()], J.prototype, "activeModuleId", void 0), P([l()], J.prototype, "_openPopoverId", void 0), P([l()], J.prototype, "_displayMode", void 0), P([l()], J.prototype, "_overflowCount", void 0), P([l()], J.prototype, "_tooltip", void 0), J = P([x(), o("vsn-breadcrumbs")], J);
2564
2577
  //#endregion
2565
2578
  //#region src/components/vsn-top-bar/vsn-ai-assistant.ts
2566
- var Jt = class extends e {
2579
+ var Qt = class extends e {
2567
2580
  createRenderRoot() {
2568
2581
  return this;
2569
2582
  }
@@ -2577,16 +2590,16 @@ var Jt = class extends e {
2577
2590
  render() {
2578
2591
  return n`
2579
2592
  <button type="button" class="ga-button ga-button--secondary ga-button--icon-only"
2580
- aria-label=${x("Open AI assistant")} @click=${this._handleClick}>
2593
+ aria-label=${b("Open AI assistant")} @click=${this._handleClick}>
2581
2594
  <span class="ga-icon">${M(Je)}</span>
2582
2595
  </button>
2583
2596
  `;
2584
2597
  }
2585
2598
  };
2586
- Jt = P([S(), o("vsn-ai-assistant")], Jt);
2599
+ Qt = P([x(), o("vsn-ai-assistant")], Qt);
2587
2600
  //#endregion
2588
2601
  //#region src/components/vsn-top-bar/vsn-feedback.ts
2589
- var Z = class extends e {
2602
+ var Y = class extends e {
2590
2603
  constructor(...e) {
2591
2604
  super(...e), this._compact = !1, this.feedback = null, this._mqMobile = window.matchMedia("(max-width: 767px)"), this._handleMediaChange = () => {
2592
2605
  this._compact = this._mqMobile.matches;
@@ -2626,21 +2639,21 @@ var Z = class extends e {
2626
2639
  render() {
2627
2640
  return this._compact ? n`
2628
2641
  <button type="button" class="ga-button ga-button--secondary ga-button--icon-only"
2629
- aria-label=${x("Send feedback")} @click=${this._handleClick}>
2642
+ aria-label=${b("Send feedback")} @click=${this._handleClick}>
2630
2643
  <span class="ga-icon">${M(Ze)}</span>
2631
2644
  </button>
2632
2645
  ` : n`
2633
- <button type="button" class="ga-button ga-button--secondary" aria-label=${x("Send feedback")}
2646
+ <button type="button" class="ga-button ga-button--secondary" aria-label=${b("Send feedback")}
2634
2647
  @click=${this._handleClick}>
2635
- ${x("Feedback")}
2648
+ ${b("Feedback")}
2636
2649
  </button>
2637
2650
  `;
2638
2651
  }
2639
2652
  };
2640
- P([l()], Z.prototype, "_compact", void 0), P([s({ attribute: !1 })], Z.prototype, "feedback", void 0), P([s({ attribute: !1 })], Z.prototype, "auth", void 0), Z = P([S(), o("vsn-feedback")], Z);
2653
+ P([l()], Y.prototype, "_compact", void 0), P([s({ attribute: !1 })], Y.prototype, "feedback", void 0), P([s({ attribute: !1 })], Y.prototype, "auth", void 0), Y = P([x(), o("vsn-feedback")], Y);
2641
2654
  //#endregion
2642
2655
  //#region src/components/vsn-top-bar/vsn-home.ts
2643
- var Yt = class extends e {
2656
+ var $t = class extends e {
2644
2657
  createRenderRoot() {
2645
2658
  return this;
2646
2659
  }
@@ -2648,7 +2661,7 @@ var Yt = class extends e {
2648
2661
  e.preventDefault(), this.landingPageUrl && this.dispatchEvent(new CustomEvent("vsn-navigate", {
2649
2662
  detail: {
2650
2663
  id: "home",
2651
- label: x("Home"),
2664
+ label: b("Home"),
2652
2665
  url: this.landingPageUrl
2653
2666
  },
2654
2667
  bubbles: !0,
@@ -2657,17 +2670,17 @@ var Yt = class extends e {
2657
2670
  }
2658
2671
  render() {
2659
2672
  return this.landingPageUrl ? n`
2660
- <a href=${this.landingPageUrl} class="ga-button ga-button--ghost ga-button--icon-only" aria-label=${x("Home")}
2673
+ <a href=${this.landingPageUrl} class="ga-button ga-button--ghost ga-button--icon-only" aria-label=${b("Home")}
2661
2674
  @click=${this._handleClick}>
2662
2675
  <span class="ga-icon">${M(Qe)}</span>
2663
2676
  </a>
2664
2677
  ` : r;
2665
2678
  }
2666
2679
  };
2667
- P([s({ attribute: "landing-page-url" })], Yt.prototype, "landingPageUrl", void 0), Yt = P([S(), o("vsn-home")], Yt);
2680
+ P([s({ attribute: "landing-page-url" })], $t.prototype, "landingPageUrl", void 0), $t = P([x(), o("vsn-home")], $t);
2668
2681
  //#endregion
2669
2682
  //#region src/components/vsn-top-bar/vsn-menu-toggle.ts
2670
- var Xt = class extends e {
2683
+ var en = class extends e {
2671
2684
  createRenderRoot() {
2672
2685
  return this;
2673
2686
  }
@@ -2689,7 +2702,7 @@ var Xt = class extends e {
2689
2702
  }
2690
2703
  render() {
2691
2704
  return n`
2692
- <button type="button" class="ga-button ga-button--secondary ga-button--icon-only" aria-label=${x("Open menu")}
2705
+ <button type="button" class="ga-button ga-button--secondary ga-button--icon-only" aria-label=${b("Open menu")}
2693
2706
  aria-describedby="vsn-menu-toggle-tooltip"
2694
2707
  @click=${this._handleClick}
2695
2708
  @mouseenter=${this._onActivate}
@@ -2704,10 +2717,10 @@ var Xt = class extends e {
2704
2717
  `;
2705
2718
  }
2706
2719
  };
2707
- P([c("div[role=\"tooltip\"]", !0)], Xt.prototype, "_tooltipElement", void 0), Xt = P([S(), o("vsn-menu-toggle")], Xt);
2720
+ P([c("div[role=\"tooltip\"]", !0)], en.prototype, "_tooltipElement", void 0), en = P([x(), o("vsn-menu-toggle")], en);
2708
2721
  //#endregion
2709
2722
  //#region src/components/vsn-top-bar/vsn-notifications.ts
2710
- var Zt = class extends e {
2723
+ var X = class extends e {
2711
2724
  constructor(...e) {
2712
2725
  super(...e), this.notificationActive = !1;
2713
2726
  }
@@ -2725,7 +2738,7 @@ var Zt = class extends e {
2725
2738
  let e = this.notificationActive ? Xe : Ye;
2726
2739
  return n`
2727
2740
  <button type="button" class="ga-button ga-button--secondary ga-button--icon-only"
2728
- aria-label=${x("Notifications")} @click=${this._handleClick}>
2741
+ aria-label=${b("Notifications")} @click=${this._handleClick}>
2729
2742
  <span class="ga-icon">${M(e)}</span>
2730
2743
  </button>
2731
2744
  `;
@@ -2735,10 +2748,10 @@ P([s({
2735
2748
  type: Boolean,
2736
2749
  attribute: "notification-active",
2737
2750
  reflect: !0
2738
- })], Zt.prototype, "notificationActive", void 0), Zt = P([S(), o("vsn-notifications")], Zt);
2751
+ })], X.prototype, "notificationActive", void 0), X = P([x(), o("vsn-notifications")], X);
2739
2752
  //#endregion
2740
2753
  //#region src/components/vsn-top-bar/vsn-help.ts
2741
- function Qt(e) {
2754
+ function tn(e) {
2742
2755
  try {
2743
2756
  let t = new URL(e);
2744
2757
  return t.protocol === "https:" || t.protocol === "http:";
@@ -2746,7 +2759,7 @@ function Qt(e) {
2746
2759
  return !1;
2747
2760
  }
2748
2761
  }
2749
- var $t = class extends e {
2762
+ var Z = class extends e {
2750
2763
  createRenderRoot() {
2751
2764
  return this;
2752
2765
  }
@@ -2758,20 +2771,20 @@ var $t = class extends e {
2758
2771
  }));
2759
2772
  }
2760
2773
  render() {
2761
- return this.helpUrl && Qt(this.helpUrl) ? n`
2774
+ return this.helpUrl && tn(this.helpUrl) ? n`
2762
2775
  <a href=${this.helpUrl} target="_blank" rel="noopener noreferrer" class="ga-button ga-button--secondary ga-button--icon-only"
2763
- aria-label=${x("Help")}>
2776
+ aria-label=${b("Help")}>
2764
2777
  <span class="ga-icon">${M($e)}</span>
2765
2778
  </a>
2766
2779
  ` : n`
2767
- <button type="button" class="ga-button ga-button--secondary ga-button--icon-only" aria-label=${x("Help")}
2780
+ <button type="button" class="ga-button ga-button--secondary ga-button--icon-only" aria-label=${b("Help")}
2768
2781
  @click=${this._handleClick}>
2769
2782
  <span class="ga-icon">${M($e)}</span>
2770
2783
  </button>
2771
2784
  `;
2772
2785
  }
2773
2786
  };
2774
- P([s({ attribute: "help-url" })], $t.prototype, "helpUrl", void 0), $t = P([S(), o("vsn-help")], $t);
2787
+ P([s({ attribute: "help-url" })], Z.prototype, "helpUrl", void 0), Z = P([x(), o("vsn-help")], Z);
2775
2788
  //#endregion
2776
2789
  //#region src/components/vsn-top-bar/vsn-top-bar.ts
2777
2790
  var Q = class extends e {
@@ -2779,7 +2792,7 @@ var Q = class extends e {
2779
2792
  super(...e), this.modules = [], this.feedback = null, this.showHelp = !1, this.showNotification = !1, this.notificationActive = !1, this.lang = "en";
2780
2793
  }
2781
2794
  willUpdate(e) {
2782
- e.has("lang") && Ft(this.lang).catch(console.error);
2795
+ e.has("lang") && Lt(this.lang).catch(console.error);
2783
2796
  }
2784
2797
  focusMenuToggle() {
2785
2798
  this.renderRoot.querySelector("vsn-menu-toggle")?.focus();
@@ -2925,7 +2938,7 @@ var $ = class extends e {
2925
2938
  static {
2926
2939
  this.styles = [
2927
2940
  h,
2928
- K,
2941
+ G,
2929
2942
  t`
2930
2943
  :host {
2931
2944
  display: flex;
@@ -3051,4 +3064,4 @@ P([s()], $.prototype, "lang", void 0), P([s({ attribute: !1 })], $.prototype, "t
3051
3064
  reflect: !0
3052
3065
  })], $.prototype, "open", void 0), P([l()], $.prototype, "_currentItem", void 0), P([l()], $.prototype, "_resolvedModules", void 0), P([l()], $.prototype, "_modulesLoading", void 0), $ = P([o("vsn-navigation")], $);
3053
3066
  //#endregion
3054
- export { v as SearchError, $ as VSNNavigation, g as isTreeLeaf, _ as isTreeParent };
3067
+ export { de as SearchError, $ as VSNNavigation, g as isTreeLeaf, _ as isTreeParent };