@sbb-esta/lyne-elements-dev 5.0.0-next-dev.1777034079 → 5.0.0-next-dev.1777038043

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.
Files changed (37) hide show
  1. package/core/styles/core.scss +24 -0
  2. package/core.css +66 -0
  3. package/custom-elements.json +592 -592
  4. package/development/navigation/common/navigation-action-common.js +1 -1
  5. package/development/navigation/navigation/navigation.component.js +1 -1
  6. package/development/navigation/navigation-list/navigation-list.component.js +1 -1
  7. package/development/navigation/navigation-marker/navigation-marker.component.js +1 -1
  8. package/development/navigation/navigation-section/navigation-section.component.js +1 -1
  9. package/development/navigation-action-common-BsrmO4QQ.js +92 -0
  10. package/development/navigation-list.component-CQ4q671G.js +90 -0
  11. package/development/navigation-marker.component-D7ks8vbC.js +121 -0
  12. package/development/navigation-section.component-t36xyaq4.js +346 -0
  13. package/development/navigation.component-Djm0PFOA.js +315 -0
  14. package/development/navigation.js +5 -5
  15. package/development/navigation.pure.js +5 -5
  16. package/navigation/common/navigation-action-common.js +1 -1
  17. package/navigation/navigation/navigation.component.js +1 -1
  18. package/navigation/navigation-list/navigation-list.component.js +1 -1
  19. package/navigation/navigation-marker/navigation-marker.component.js +1 -1
  20. package/navigation/navigation-section/navigation-section.component.js +1 -1
  21. package/navigation-action-common-XvWVU7Zk.js +66 -0
  22. package/{navigation-list.component-DSJx3LwB.js → navigation-list.component-BX-kv06z.js} +1 -1
  23. package/{navigation-marker.component-xmkTtMap.js → navigation-marker.component-iSodFQRj.js} +1 -1
  24. package/{navigation-section.component-CUrICmbc.js → navigation-section.component-K4Pa53K7.js} +1 -1
  25. package/{navigation.component-CR4vG3vH.js → navigation.component-BFejmwjr.js} +1 -1
  26. package/navigation.js +5 -5
  27. package/navigation.pure.js +5 -5
  28. package/off-brand-theme.css +66 -0
  29. package/package.json +2 -2
  30. package/safety-theme.css +66 -0
  31. package/standard-theme.css +66 -0
  32. package/development/navigation-action-common-DREsZcc7.js +0 -92
  33. package/development/navigation-list.component-3kQyQ-yJ.js +0 -90
  34. package/development/navigation-marker.component-DyWfazQL.js +0 -121
  35. package/development/navigation-section.component-DyPWGns2.js +0 -346
  36. package/development/navigation.component-CZ2P2xfh.js +0 -315
  37. package/navigation-action-common-D3rE0ZNS.js +0 -66
@@ -0,0 +1,315 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { html, isServer, unsafeCSS } from "lit";
3
+ import { property, state } from "lit/decorators.js";
4
+ import { SbbEscapableOverlayController, SbbFocusTrapController, SbbInertController, SbbLanguageController, SbbOpenCloseBaseElement, SbbScrollHandler, SbbUpdateSchedulerMixin, boxSizingStyles, forceType, i18nCloseNavigation, idReference, isEventOnElement, isZeroAnimationDuration, removeAriaOverlayTriggerProperties, setAriaOverlayTriggerProperties } from "./core.js";
5
+ import { SbbTransparentButtonElement } from "./button.pure.js";
6
+ import { ResizeController } from "@lit-labs/observers/resize-controller.js";
7
+ import { ref } from "lit/directives/ref.js";
8
+ //#region src/elements/navigation/navigation/navigation.scss?inline
9
+ var navigation_default = ":host {\n --sbb-navigation-animation-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-3x)\n );\n --sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);\n display: none;\n position: fixed;\n inset: var(--sbb-navigation-inset);\n z-index: var(--sbb-navigation-z-index, var(--sbb-overlay-default-z-index));\n overflow: hidden;\n}\n@media (min-width: calc(64rem)) {\n :host {\n --sbb-navigation-animation-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-6x)\n );\n --sbb-navigation-width: calc(100% + var(--sbb-layout-base-offset-responsive));\n }\n}\n\n:host(:is(:is(:state(state-opening),[state--state-opening]), :is(:state(state-opened),[state--state-opened]), :is(:state(state-closing),[state--state-closing]))) {\n display: block;\n}\n\n:host(:is(:state(state-opened),[state--state-opened])) {\n --sbb-navigation-animation-easing: ease-out;\n}\n\n:host(:is(:is(:state(state-opened),[state--state-opened]), :is(:state(state-opening),[state--state-opening]))) {\n --sbb-navigation-backdrop-visibility: visible;\n --sbb-navigation-backdrop-pointer-events: all;\n}\n\n:host(:not(:is(:state(state-closed),[state--state-closed]))) {\n --sbb-navigation-inset: 0;\n --sbb-navigation-translate: none;\n}\n\n:host(:is(:state(state-closing),[state--state-closing])) {\n --sbb-navigation-backdrop-animation-name: backdrop-close;\n}\n\n:host(:is(:state(has-open-navigation-section),[state--has-open-navigation-section])) {\n --sbb-navigation-content-translate: -100% 0;\n}\n@media (min-width: calc(64rem)) {\n :host(:is(:state(has-open-navigation-section),[state--has-open-navigation-section])) {\n --sbb-navigation-expanded-width: 100dvw;\n --sbb-navigation-content-translate: 0;\n }\n}\n\n:host(:is(:state(resize-disable-animation),[state--resize-disable-animation])) {\n --sbb-disable-animation-duration: 0s;\n}\n\n.sbb-navigation__container {\n display: grid;\n gap: var(--sbb-grid-base-gutter-responsive);\n grid-template-columns: repeat(var(--sbb-grid-base-columns), 1fr);\n padding-inline: 0;\n pointer-events: none;\n translate: var(--sbb-navigation-translate);\n}\n@media (min-width: calc(64rem)) {\n .sbb-navigation__container {\n padding-inline: var(--sbb-layout-base-offset-responsive);\n }\n .sbb-navigation__container::before {\n transition-duration: var(--sbb-navigation-animation-duration);\n transition-timing-function: var(--sbb-navigation-animation-easing);\n transition-property: visibility;\n animation-name: var(--sbb-navigation-backdrop-animation-name);\n animation-duration: var(--sbb-navigation-animation-duration);\n animation-timing-function: var(--sbb-navigation-animation-easing);\n content: \"\";\n visibility: var(--sbb-navigation-backdrop-visibility, hidden);\n pointer-events: var(--sbb-navigation-backdrop-pointer-events, none);\n position: fixed;\n inset: var(--sbb-navigation-inset);\n background-color: var(--sbb-navigation-backdrop-color);\n }\n}\n\n.sbb-navigation {\n transition-duration: var(--sbb-navigation-animation-duration);\n transition-timing-function: var(--sbb-navigation-animation-easing);\n transition-property: width;\n display: none;\n width: var(--sbb-navigation-width);\n grid-column: var(--sbb-navigation-grid-column);\n padding: 0;\n margin: 0;\n position: relative;\n inset-inline-start: var(--sbb-navigation-inline-start, 0);\n inset-block-start: 0;\n border: none;\n pointer-events: none;\n height: var(--sbb-navigation-height);\n color: var(--sbb-navigation-color);\n background-color: var(--sbb-navigation-background-color);\n}\n.sbb-navigation::before {\n transition-duration: var(--sbb-navigation-animation-duration);\n transition-timing-function: var(--sbb-navigation-animation-easing);\n transition-property: width;\n content: \"\";\n position: absolute;\n width: var(--sbb-navigation-expanded-width);\n height: var(--sbb-navigation-height);\n background-color: var(--sbb-navigation-background-color);\n}\n:host(:is(:is(:state(state-opening),[state--state-opening]), :is(:state(state-opened),[state--state-opened]), :is(:state(state-closing),[state--state-closing]))) .sbb-navigation {\n display: block;\n pointer-events: all;\n animation-name: open;\n animation-duration: var(--sbb-navigation-animation-duration);\n animation-timing-function: var(--sbb-navigation-animation-easing);\n}\n:host(:is(:state(state-closing),[state--state-closing])) .sbb-navigation {\n pointer-events: none;\n animation-name: close;\n}\n@media (forced-colors: active) {\n .sbb-navigation {\n outline: var(--sbb-border-width-1x) solid CanvasText;\n }\n}\n\n.sbb-navigation__wrapper {\n outline: none;\n}\n\n.sbb-navigation__header {\n transition-duration: var(--sbb-navigation-animation-duration);\n transition-timing-function: var(--sbb-navigation-animation-easing);\n transition-property: width;\n display: flex;\n justify-content: flex-end;\n position: absolute;\n width: var(--sbb-navigation-expanded-width);\n pointer-events: none;\n padding: var(--sbb-spacing-responsive-xs);\n z-index: calc(var(--sbb-navigation-z-index, var(--sbb-overlay-default-z-index)) + 1);\n}\n\n.sbb-navigation__close {\n pointer-events: all;\n}\n\n.sbb-navigation__content {\n transition-duration: var(--sbb-navigation-animation-duration);\n transition-timing-function: var(--sbb-navigation-animation-easing);\n transition-property: translate;\n --sbb-scrollbar-width: var(--sbb-spacing-fixed-3x);\n --sbb-scrollbar-thumb-width: 0.125rem;\n --sbb-scrollbar-thumb-width-hover: 0.25rem;\n --sbb-scrollbar-width-firefox: thin;\n --sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-white) 30%, transparent);\n --sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-white) 60%, transparent);\n --sbb-scrollbar-track-color: transparent;\n}\n.sbb-navigation__content::-webkit-scrollbar {\n width: var(--sbb-scrollbar-width);\n height: var(--sbb-scrollbar-width);\n background-color: var(--sbb-scrollbar-track-color, transparent);\n}\n.sbb-navigation__content::-webkit-scrollbar-corner {\n background-color: var(--sbb-scrollbar-track-color, transparent);\n}\n.sbb-navigation__content::-webkit-scrollbar-thumb {\n background-color: var(--sbb-scrollbar-color, currentcolor);\n border: calc(0.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;\n border-radius: var(--sbb-border-radius-4x);\n background-clip: padding-box;\n}\n.sbb-navigation__content::-webkit-scrollbar-thumb:hover {\n background-color: var(--sbb-scrollbar-color-hover, currentcolor);\n border-width: calc(0.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)));\n}\n.sbb-navigation__content::-webkit-scrollbar-button, .sbb-navigation__content::-webkit-scrollbar-corner {\n display: none;\n}\n@supports not selector(::-webkit-scrollbar) {\n .sbb-navigation__content {\n scrollbar-width: var(--sbb-scrollbar-width-firefox);\n scrollbar-color: var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent);\n }\n}\n.sbb-navigation__content {\n display: flex;\n flex-direction: column;\n gap: var(--sbb-navigation-content-gap);\n position: relative;\n height: var(--sbb-navigation-height);\n padding-inline: var(--sbb-navigation-padding-inline);\n padding-block: var(--sbb-navigation-padding-block-start) var(--sbb-navigation-padding-block-end);\n overflow-y: auto;\n translate: var(--sbb-navigation-content-translate);\n}\n\n::slotted(:first-child) {\n margin-block-start: var(--sbb-navigation-list-margin-block-start);\n}\n\n@keyframes open {\n from {\n translate: -100% 0;\n }\n to {\n translate: 0;\n }\n}\n@keyframes close {\n from {\n translate: 0;\n }\n to {\n translate: -100% 0;\n }\n}\n@keyframes backdrop-open {\n from {\n background-color: transparent;\n }\n}\n@keyframes backdrop-close {\n to {\n background-color: transparent;\n }\n}";
10
+ //#endregion
11
+ //#region src/elements/navigation/navigation/navigation.component.ts
12
+ var DEBOUNCE_TIME = 150;
13
+ /**
14
+ * It displays a navigation menu, wrapping one or more `sbb-navigation-*` components.
15
+ *
16
+ * @slot - Use the unnamed slot to add `sbb-navigation-button`/`sbb-navigation-link` elements into the sbb-navigation menu.
17
+ * @cssprop [--sbb-navigation-z-index=var(--sbb-overlay-default-z-index)] - To specify a custom stack order,
18
+ * the `z-index` can be overridden by defining this CSS variable. The default `z-index` of the
19
+ * component is set to `var(--sbb-overlay-default-z-index)` with a value of `1000`.
20
+ */
21
+ var SbbNavigationElement = (() => {
22
+ let _classSuper = SbbUpdateSchedulerMixin(SbbOpenCloseBaseElement);
23
+ let _trigger_decorators;
24
+ let _trigger_initializers = [];
25
+ let _trigger_extraInitializers = [];
26
+ let _accessibilityCloseLabel_decorators;
27
+ let _accessibilityCloseLabel_initializers = [];
28
+ let _accessibilityCloseLabel_extraInitializers = [];
29
+ let __activeNavigationSection_decorators;
30
+ let __activeNavigationSection_initializers = [];
31
+ let __activeNavigationSection_extraInitializers = [];
32
+ return class SbbNavigationElement extends _classSuper {
33
+ static {
34
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
35
+ _trigger_decorators = [idReference(), property()];
36
+ _accessibilityCloseLabel_decorators = [forceType(), property({ attribute: "accessibility-close-label" })];
37
+ __activeNavigationSection_decorators = [state()];
38
+ __esDecorate(this, null, _trigger_decorators, {
39
+ kind: "accessor",
40
+ name: "trigger",
41
+ static: false,
42
+ private: false,
43
+ access: {
44
+ has: (obj) => "trigger" in obj,
45
+ get: (obj) => obj.trigger,
46
+ set: (obj, value) => {
47
+ obj.trigger = value;
48
+ }
49
+ },
50
+ metadata: _metadata
51
+ }, _trigger_initializers, _trigger_extraInitializers);
52
+ __esDecorate(this, null, _accessibilityCloseLabel_decorators, {
53
+ kind: "accessor",
54
+ name: "accessibilityCloseLabel",
55
+ static: false,
56
+ private: false,
57
+ access: {
58
+ has: (obj) => "accessibilityCloseLabel" in obj,
59
+ get: (obj) => obj.accessibilityCloseLabel,
60
+ set: (obj, value) => {
61
+ obj.accessibilityCloseLabel = value;
62
+ }
63
+ },
64
+ metadata: _metadata
65
+ }, _accessibilityCloseLabel_initializers, _accessibilityCloseLabel_extraInitializers);
66
+ __esDecorate(this, null, __activeNavigationSection_decorators, {
67
+ kind: "accessor",
68
+ name: "_activeNavigationSection",
69
+ static: false,
70
+ private: false,
71
+ access: {
72
+ has: (obj) => "_activeNavigationSection" in obj,
73
+ get: (obj) => obj._activeNavigationSection,
74
+ set: (obj, value) => {
75
+ obj._activeNavigationSection = value;
76
+ }
77
+ },
78
+ metadata: _metadata
79
+ }, __activeNavigationSection_initializers, __activeNavigationSection_extraInitializers);
80
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, {
81
+ enumerable: true,
82
+ configurable: true,
83
+ writable: true,
84
+ value: _metadata
85
+ });
86
+ }
87
+ static {
88
+ this.elementName = "sbb-navigation";
89
+ }
90
+ static {
91
+ this.elementDependencies = [SbbTransparentButtonElement];
92
+ }
93
+ static {
94
+ this.role = "navigation";
95
+ }
96
+ static {
97
+ this.styles = [boxSizingStyles, unsafeCSS(navigation_default)];
98
+ }
99
+ #trigger_accessor_storage;
100
+ /**
101
+ * The element that will trigger the navigation.
102
+ *
103
+ * For attribute usage, provide an id reference.
104
+ */
105
+ get trigger() {
106
+ return this.#trigger_accessor_storage;
107
+ }
108
+ set trigger(value) {
109
+ this.#trigger_accessor_storage = value;
110
+ }
111
+ #accessibilityCloseLabel_accessor_storage;
112
+ /** This will be forwarded as aria-label to the close button element. */
113
+ get accessibilityCloseLabel() {
114
+ return this.#accessibilityCloseLabel_accessor_storage;
115
+ }
116
+ set accessibilityCloseLabel(value) {
117
+ this.#accessibilityCloseLabel_accessor_storage = value;
118
+ }
119
+ #_activeNavigationSection_accessor_storage;
120
+ /** Whether a navigation section is displayed. */
121
+ get _activeNavigationSection() {
122
+ return this.#_activeNavigationSection_accessor_storage;
123
+ }
124
+ set _activeNavigationSection(value) {
125
+ this.#_activeNavigationSection_accessor_storage = value;
126
+ }
127
+ /** Returns the active navigation section element. */
128
+ get activeNavigationSection() {
129
+ return this._activeNavigationSection;
130
+ }
131
+ /** Returns the close button element. */
132
+ get closeButton() {
133
+ return this.shadowRoot?.querySelector("#sbb-navigation-close-button") ?? null;
134
+ }
135
+ /** Returns the navigation content element. */
136
+ get navigationContent() {
137
+ return this.shadowRoot?.querySelector(".sbb-navigation__content") ?? null;
138
+ }
139
+ constructor() {
140
+ super();
141
+ this.#trigger_accessor_storage = __runInitializers(this, _trigger_initializers, null);
142
+ this.#accessibilityCloseLabel_accessor_storage = (__runInitializers(this, _trigger_extraInitializers), __runInitializers(this, _accessibilityCloseLabel_initializers, ""));
143
+ this.#_activeNavigationSection_accessor_storage = (__runInitializers(this, _accessibilityCloseLabel_extraInitializers), __runInitializers(this, __activeNavigationSection_initializers, null));
144
+ this._navigation = __runInitializers(this, __activeNavigationSection_extraInitializers);
145
+ this._triggerElement = null;
146
+ this._language = new SbbLanguageController(this);
147
+ this._inertController = new SbbInertController(this);
148
+ this._escapableOverlayController = new SbbEscapableOverlayController(this);
149
+ this._focusTrapController = new SbbFocusTrapController(this);
150
+ this._scrollHandler = new SbbScrollHandler();
151
+ this._isPointerDownEventOnNavigation = false;
152
+ this._resizeObserverTimeout = null;
153
+ this._navigationResizeObserver = new ResizeController(this, {
154
+ skipInitial: true,
155
+ callback: () => this._onNavigationResize()
156
+ });
157
+ this._pointerDownListener = (event) => {
158
+ this._isPointerDownEventOnNavigation = isEventOnElement(this._navigation, event) || isEventOnElement(this.querySelector("sbb-navigation-section:is(:state(state-opened),[state--state-opened])")?.shadowRoot?.querySelector("nav.sbb-navigation-section"), event);
159
+ };
160
+ this._closeOnBackdropClick = (event) => {
161
+ if (!this._isPointerDownEventOnNavigation && !isEventOnElement(this._navigation, event)) this.close();
162
+ };
163
+ this.addEventListener?.("click", (event) => this._handleNavigationClose(event));
164
+ this.addEventListener?.("pointerup", (event) => this._closeOnBackdropClick(event));
165
+ this.addEventListener?.("pointerdown", (event) => this._pointerDownListener(event));
166
+ this.addEventListener?.("ɵnavigationsectionopening", (event) => {
167
+ this._activeNavigationSection = event.target;
168
+ this.toggleState("has-open-navigation-section", !!this._activeNavigationSection);
169
+ }, { capture: true });
170
+ this.addEventListener?.("ɵnavigationsectionclosing", (event) => {
171
+ if (this._activeNavigationSection === event.target) {
172
+ this._activeNavigationSection = null;
173
+ this.internals.states.delete("has-open-navigation-section");
174
+ }
175
+ }, { capture: true });
176
+ }
177
+ /** Opens the navigation. */
178
+ open() {
179
+ if (this.state !== "closed" || !this.hasUpdated || !this.dispatchBeforeOpenEvent()) return;
180
+ this.showPopover?.();
181
+ this.state = "opening";
182
+ this._checkActiveActions();
183
+ this._checkActiveSection();
184
+ this.startUpdate();
185
+ this._scrollHandler.disableScroll();
186
+ if (this._triggerElement) this._triggerElement.ariaExpanded = "true";
187
+ if (this._isZeroAnimationDuration()) this._handleOpening();
188
+ }
189
+ _checkActiveSection() {
190
+ this.querySelector("sbb-navigation-button.sbb-active")?.connectedSection?.open();
191
+ }
192
+ _checkActiveActions() {
193
+ Array.from(this.querySelectorAll(":is(sbb-navigation-button, sbb-navigation-link).sbb-active"))?.forEach((action) => action.marker?.select(action));
194
+ }
195
+ /** Closes the navigation. */
196
+ close() {
197
+ if (this.state !== "opened" || !this.dispatchBeforeCloseEvent()) return;
198
+ this.state = "closing";
199
+ this.startUpdate();
200
+ if (this._triggerElement) this._triggerElement.ariaExpanded = "false";
201
+ if (this._isZeroAnimationDuration()) this._handleClosing();
202
+ }
203
+ _isZeroAnimationDuration() {
204
+ return isZeroAnimationDuration(this, "--sbb-navigation-animation-duration");
205
+ }
206
+ _handleClosing() {
207
+ this.state = "closed";
208
+ this.hidePopover?.();
209
+ this.navigationContent?.scrollTo(0, 0);
210
+ this._inertController.deactivate();
211
+ this._triggerElement?.focus();
212
+ this._escapableOverlayController.disconnect();
213
+ this.dispatchCloseEvent();
214
+ this._navigationResizeObserver.unobserve(this);
215
+ this._resetMarkers();
216
+ this._focusTrapController.enabled = false;
217
+ this._scrollHandler.enableScroll();
218
+ this.completeUpdate();
219
+ }
220
+ _handleOpening() {
221
+ this.state = "opened";
222
+ this._navigationResizeObserver.observe(this);
223
+ this._inertController.activate();
224
+ this._escapableOverlayController.connect();
225
+ this._focusTrapController.focusInitialElement();
226
+ this._focusTrapController.enabled = true;
227
+ this.completeUpdate();
228
+ this.dispatchOpenEvent();
229
+ }
230
+ _configureTrigger() {
231
+ if (this.trigger === this._triggerElement) return;
232
+ this._triggerAbortController?.abort();
233
+ removeAriaOverlayTriggerProperties(this._triggerElement);
234
+ this._triggerElement = this.trigger;
235
+ if (!this._triggerElement) return;
236
+ setAriaOverlayTriggerProperties(this, this._triggerElement, "menu", this.state);
237
+ this._triggerAbortController = new AbortController();
238
+ this._triggerElement.addEventListener("click", () => this.open(), { signal: this._triggerAbortController.signal });
239
+ }
240
+ _onAnimationEnd(event) {
241
+ if (event.animationName === "open" && this.state === "opening") this._handleOpening();
242
+ else if (event.animationName === "close" && this.state === "closing") this._handleClosing();
243
+ }
244
+ _resetMarkers() {
245
+ Array.from(this.querySelectorAll(":is(sbb-navigation-button, sbb-navigation-link):is(:state(action-active),[state--action-active]):not(.sbb-active)"))?.forEach((action) => action.marker?.reset());
246
+ }
247
+ _handleNavigationClose(event) {
248
+ if (event.composedPath().filter((el) => el instanceof window.HTMLElement).some((el) => this._isCloseElement(el))) this.close();
249
+ }
250
+ _isCloseElement(element) {
251
+ return element.nodeName === "A" || element.hasAttribute("sbb-navigation-close") && !element.hasAttribute("disabled");
252
+ }
253
+ _onNavigationResize() {
254
+ if (this.state !== "opened") return;
255
+ if (this._resizeObserverTimeout) clearTimeout(this._resizeObserverTimeout);
256
+ this.internals.states.add("resize-disable-animation");
257
+ this._resizeObserverTimeout = setTimeout(() => this.internals.states.delete("resize-disable-animation"), DEBOUNCE_TIME);
258
+ }
259
+ connectedCallback() {
260
+ super.connectedCallback();
261
+ this.popover = "manual";
262
+ if (this.hasUpdated) this._configureTrigger();
263
+ }
264
+ disconnectedCallback() {
265
+ super.disconnectedCallback();
266
+ this._triggerElement = null;
267
+ this._triggerAbortController?.abort();
268
+ this._scrollHandler.enableScroll();
269
+ }
270
+ requestUpdate(name, oldValue, options) {
271
+ super.requestUpdate(name, oldValue, options);
272
+ if (!isServer && (!name || name === "trigger") && this.hasUpdated) this._configureTrigger();
273
+ }
274
+ firstUpdated(changedProperties) {
275
+ super.firstUpdated(changedProperties);
276
+ this._configureTrigger();
277
+ }
278
+ render() {
279
+ const closeButton = html`
280
+ <sbb-transparent-button
281
+ id="sbb-navigation-close-button"
282
+ class="sbb-navigation__close"
283
+ aria-label=${this.accessibilityCloseLabel || i18nCloseNavigation[this._language.current]}
284
+ aria-controls="sbb-navigation-overlay"
285
+ negative
286
+ size="m"
287
+ icon-name="cross-small"
288
+ sbb-navigation-close
289
+ ></sbb-transparent-button>
290
+ `;
291
+ return html`
292
+ <div class="sbb-navigation__container">
293
+ <div
294
+ id="sbb-navigation-overlay"
295
+ @animationend=${this._onAnimationEnd}
296
+ class="sbb-navigation"
297
+ ${ref((navigationRef) => this._navigation = navigationRef)}
298
+ >
299
+ <div class="sbb-navigation__header">${closeButton}</div>
300
+ <div class="sbb-navigation__wrapper">
301
+ <div class="sbb-navigation__content">
302
+ <slot></slot>
303
+ </div>
304
+ </div>
305
+ </div>
306
+ <slot name="navigation-section"></slot>
307
+ </div>
308
+ `;
309
+ }
310
+ };
311
+ })();
312
+ //#endregion
313
+ export { SbbNavigationElement as t };
314
+
315
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5jb21wb25lbnQtRGptMFBGT0EuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG5AbWl4aW4gdHJhbnNpdGlvbigkcHJvcGVydGllcy4uLikge1xuICB0cmFuc2l0aW9uOiB7XG4gICAgZHVyYXRpb246IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1hbmltYXRpb24tZWFzaW5nKTtcbiAgICBwcm9wZXJ0eTogJHByb3BlcnRpZXM7XG4gIH1cbn1cblxuOmhvc3Qge1xuICAtLXNiYi1uYXZpZ2F0aW9uLWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tM3gpXG4gICk7XG4gIC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3I6IHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yLWRhcmspO1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWluc2V0KTtcbiAgei1pbmRleDogdmFyKC0tc2JiLW5hdmlnYXRpb24tei1pbmRleCwgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KSk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tNngpXG4gICAgKTtcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLXdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS1zYmItbGF5b3V0LWJhc2Utb2Zmc2V0LXJlc3BvbnNpdmUpKTtcbiAgfVxufVxuXG46aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtb3BlbmVkKSwgOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5lZCkpIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1hbmltYXRpb24tZWFzaW5nOiBlYXNlLW91dDtcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuZWQpLCA6c3RhdGUoc3RhdGUtb3BlbmluZykpKSB7XG4gIC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgLS1zYmItbmF2aWdhdGlvbi1iYWNrZHJvcC1wb2ludGVyLWV2ZW50czogYWxsO1xufVxuXG46aG9zdCg6bm90KDpzdGF0ZShzdGF0ZS1jbG9zZWQpKSkge1xuICAtLXNiYi1uYXZpZ2F0aW9uLWluc2V0OiAwO1xuICAtLXNiYi1uYXZpZ2F0aW9uLXRyYW5zbGF0ZTogbm9uZTtcbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSB7XG4gIC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtYW5pbWF0aW9uLW5hbWU6IGJhY2tkcm9wLWNsb3NlO1xufVxuXG46aG9zdCg6c3RhdGUoaGFzLW9wZW4tbmF2aWdhdGlvbi1zZWN0aW9uKSkge1xuICAtLXNiYi1uYXZpZ2F0aW9uLWNvbnRlbnQtdHJhbnNsYXRlOiAtMTAwJSAwO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogJ2xhcmdlJykge1xuICAgIC0tc2JiLW5hdmlnYXRpb24tZXhwYW5kZWQtd2lkdGg6IDEwMGR2dztcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLWNvbnRlbnQtdHJhbnNsYXRlOiAwO1xuICB9XG59XG5cbjpob3N0KDpzdGF0ZShyZXNpemUtZGlzYWJsZS1hbmltYXRpb24pKSB7XG4gIEBpbmNsdWRlIHNiYi5kaXNhYmxlLWFuaW1hdGlvbjtcbn1cblxuLnNiYi1uYXZpZ2F0aW9uX19jb250YWluZXIge1xuICBAaW5jbHVkZSBzYmIuZ3JpZC1iYXNlO1xuXG4gIHBhZGRpbmctaW5saW5lOiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNsYXRlOiB2YXIoLS1zYmItbmF2aWdhdGlvbi10cmFuc2xhdGUpO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogbGFyZ2UpIHtcbiAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLWxheW91dC1iYXNlLW9mZnNldC1yZXNwb25zaXZlKTtcblxuICAgIC8vIE5hdmlnYXRpb24gYmFja2Ryb3AgKG5vdCB2aXNpYmxlIG9uIG1vYmlsZSlcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih2aXNpYmlsaXR5KTtcblxuICAgICAgYW5pbWF0aW9uOiB7XG4gICAgICAgIG5hbWU6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWJhY2tkcm9wLWFuaW1hdGlvbi1uYW1lKTtcbiAgICAgICAgZHVyYXRpb246IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgdmlzaWJpbGl0eTogdmFyKC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtdmlzaWJpbGl0eSwgaGlkZGVuKTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1iYWNrZHJvcC1wb2ludGVyLWV2ZW50cywgbm9uZSk7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICBpbnNldDogdmFyKC0tc2JiLW5hdmlnYXRpb24taW5zZXQpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG4uc2JiLW5hdmlnYXRpb24ge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKHdpZHRoKTtcblxuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogdmFyKC0tc2JiLW5hdmlnYXRpb24td2lkdGgpO1xuICBncmlkLWNvbHVtbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tZ3JpZC1jb2x1bW4pO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1pbmxpbmUtc3RhcnQsIDApO1xuICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgYm9yZGVyOiBub25lO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1oZWlnaHQpO1xuICBjb2xvcjogdmFyKC0tc2JiLW5hdmlnYXRpb24tY29sb3IpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1iYWNrZ3JvdW5kLWNvbG9yKTtcblxuICAmOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24od2lkdGgpO1xuXG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1leHBhbmRlZC13aWR0aCk7XG4gICAgaGVpZ2h0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1oZWlnaHQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWJhY2tncm91bmQtY29sb3IpO1xuICB9XG5cbiAgOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpICYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICBhbmltYXRpb246IHtcbiAgICAgIG5hbWU6IG9wZW47XG4gICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgfVxuICB9XG5cbiAgOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSAmIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBhbmltYXRpb24tbmFtZTogY2xvc2U7XG4gIH1cblxuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgb3V0bGluZTogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0xeCkgc29saWQgQ2FudmFzVGV4dDtcbiAgfVxufVxuXG4uc2JiLW5hdmlnYXRpb25fX3dyYXBwZXIge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4uc2JiLW5hdmlnYXRpb25fX2hlYWRlciB7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24od2lkdGgpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWV4cGFuZGVkLXdpZHRoKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHBhZGRpbmc6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteHMpO1xuICB6LWluZGV4OiBjYWxjKHZhcigtLXNiYi1uYXZpZ2F0aW9uLXotaW5kZXgsIHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCkpICsgMSk7XG59XG5cbi5zYmItbmF2aWdhdGlvbl9fY2xvc2Uge1xuICBwb2ludGVyLWV2ZW50czogYWxsO1xufVxuXG4uc2JiLW5hdmlnYXRpb25fX2NvbnRlbnQge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zbGF0ZSk7XG4gIEBpbmNsdWRlIHNiYi5zY3JvbGxiYXIoJG5lZ2F0aXZlOiB0cnVlKTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWNvbnRlbnQtZ2FwKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWhlaWdodCk7XG4gIHBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1wYWRkaW5nLWlubGluZSk7XG4gIHBhZGRpbmctYmxvY2s6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXBhZGRpbmctYmxvY2stc3RhcnQpIHZhcigtLXNiYi1uYXZpZ2F0aW9uLXBhZGRpbmctYmxvY2stZW5kKTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgdHJhbnNsYXRlOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1jb250ZW50LXRyYW5zbGF0ZSk7XG59XG5cbjo6c2xvdHRlZCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1saXN0LW1hcmdpbi1ibG9jay1zdGFydCk7XG59XG5cbkBrZXlmcmFtZXMgb3BlbiB7XG4gIGZyb20ge1xuICAgIHRyYW5zbGF0ZTogLTEwMCUgMDtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2xhdGU6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBjbG9zZSB7XG4gIGZyb20ge1xuICAgIHRyYW5zbGF0ZTogMDtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2xhdGU6IC0xMDAlIDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBiYWNrZHJvcC1vcGVuIHtcbiAgZnJvbSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBiYWNrZHJvcC1jbG9zZSB7XG4gIHRvIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuIiwiaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHksIHN0YXRlIH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcblxuaW1wb3J0IHsgU2JiVHJhbnNwYXJlbnRCdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uLnB1cmUudHMnO1xuaW1wb3J0IHtcbiAgYm94U2l6aW5nU3R5bGVzLFxuICBmb3JjZVR5cGUsXG4gIGkxOG5DbG9zZU5hdmlnYXRpb24sXG4gIGlkUmVmZXJlbmNlLFxuICBpc0V2ZW50T25FbGVtZW50LFxuICBpc1plcm9BbmltYXRpb25EdXJhdGlvbixcbiAgcmVtb3ZlQXJpYU92ZXJsYXlUcmlnZ2VyUHJvcGVydGllcyxcbiAgdHlwZSBTYmJFbGVtZW50VHlwZSxcbiAgU2JiRXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIsXG4gIFNiYkZvY3VzVHJhcENvbnRyb2xsZXIsXG4gIFNiYkluZXJ0Q29udHJvbGxlcixcbiAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLFxuICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCxcbiAgU2JiU2Nyb2xsSGFuZGxlcixcbiAgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW4sXG4gIHNldEFyaWFPdmVybGF5VHJpZ2dlclByb3BlcnRpZXMsXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tYnV0dG9uL25hdmlnYXRpb24tYnV0dG9uLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tbGluay9uYXZpZ2F0aW9uLWxpbmsuY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1zZWN0aW9uL25hdmlnYXRpb24tc2VjdGlvbi5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9uYXZpZ2F0aW9uLnNjc3M/aW5saW5lJztcblxuY29uc3QgREVCT1VOQ0VfVElNRSA9IDE1MDtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIG5hdmlnYXRpb24gbWVudSwgd3JhcHBpbmcgb25lIG9yIG1vcmUgYHNiYi1uYXZpZ2F0aW9uLSpgIGNvbXBvbmVudHMuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYHNiYi1uYXZpZ2F0aW9uLWJ1dHRvbmAvYHNiYi1uYXZpZ2F0aW9uLWxpbmtgIGVsZW1lbnRzIGludG8gdGhlIHNiYi1uYXZpZ2F0aW9uIG1lbnUuXG4gKiBAY3NzcHJvcCBbLS1zYmItbmF2aWdhdGlvbi16LWluZGV4PXZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCldIC0gVG8gc3BlY2lmeSBhIGN1c3RvbSBzdGFjayBvcmRlcixcbiAqIHRoZSBgei1pbmRleGAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgdGhpcyBDU1MgdmFyaWFibGUuIFRoZSBkZWZhdWx0IGB6LWluZGV4YCBvZiB0aGVcbiAqIGNvbXBvbmVudCBpcyBzZXQgdG8gYHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleClgIHdpdGggYSB2YWx1ZSBvZiBgMTAwMGAuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJOYXZpZ2F0aW9uRWxlbWVudCBleHRlbmRzIFNiYlVwZGF0ZVNjaGVkdWxlck1peGluKFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItbmF2aWdhdGlvbic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtTYmJUcmFuc3BhcmVudEJ1dHRvbkVsZW1lbnRdO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAnbmF2aWdhdGlvbic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgbmF2aWdhdGlvbi5cbiAgICpcbiAgICogRm9yIGF0dHJpYnV0ZSB1c2FnZSwgcHJvdmlkZSBhbiBpZCByZWZlcmVuY2UuXG4gICAqL1xuICBAaWRSZWZlcmVuY2UoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgdHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBjbG9zZSBidXR0b24gZWxlbWVudC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktY2xvc2UtbGFiZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIFdoZXRoZXIgYSBuYXZpZ2F0aW9uIHNlY3Rpb24gaXMgZGlzcGxheWVkLiAqL1xuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbjogU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFJldHVybnMgdGhlIGFjdGl2ZSBuYXZpZ2F0aW9uIHNlY3Rpb24gZWxlbWVudC4gKi9cbiAgcHVibGljIGdldCBhY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbigpOiBTYmJOYXZpZ2F0aW9uU2VjdGlvbkVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlTmF2aWdhdGlvblNlY3Rpb247XG4gIH1cblxuICAvKiogUmV0dXJucyB0aGUgY2xvc2UgYnV0dG9uIGVsZW1lbnQuICovXG4gIHB1YmxpYyBnZXQgY2xvc2VCdXR0b24oKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcjc2JiLW5hdmlnYXRpb24tY2xvc2UtYnV0dG9uJykgPz8gbnVsbDtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSBuYXZpZ2F0aW9uIGNvbnRlbnQgZWxlbWVudC4gKi9cbiAgcHVibGljIGdldCBuYXZpZ2F0aW9uQ29udGVudCgpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5zYmItbmF2aWdhdGlvbl9fY29udGVudCcpID8/IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9uYXZpZ2F0aW9uITogSFRNTERpdkVsZW1lbnQ7XG4gIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF90cmlnZ2VyQWJvcnRDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2luZXJ0Q29udHJvbGxlciA9IG5ldyBTYmJJbmVydENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyID0gbmV3IFNiYkVzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9mb2N1c1RyYXBDb250cm9sbGVyID0gbmV3IFNiYkZvY3VzVHJhcENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX3Njcm9sbEhhbmRsZXIgPSBuZXcgU2JiU2Nyb2xsSGFuZGxlcigpO1xuICBwcml2YXRlIF9pc1BvaW50ZXJEb3duRXZlbnRPbk5hdmlnYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXJUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9uYXZpZ2F0aW9uUmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplQ29udHJvbGxlcih0aGlzLCB7XG4gICAgc2tpcEluaXRpYWw6IHRydWUsXG4gICAgY2FsbGJhY2s6ICgpID0+IHRoaXMuX29uTmF2aWdhdGlvblJlc2l6ZSgpLFxuICB9KTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoZXZlbnQpID0+IHRoaXMuX2hhbmRsZU5hdmlnYXRpb25DbG9zZShldmVudCkpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdwb2ludGVydXAnLCAoZXZlbnQpID0+IHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrKGV2ZW50KSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3BvaW50ZXJkb3duJywgKGV2ZW50KSA9PiB0aGlzLl9wb2ludGVyRG93bkxpc3RlbmVyKGV2ZW50KSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAnybVuYXZpZ2F0aW9uc2VjdGlvbm9wZW5pbmcnLFxuICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZU5hdmlnYXRpb25TZWN0aW9uID0gZXZlbnQudGFyZ2V0IGFzIFNiYk5hdmlnYXRpb25TZWN0aW9uRWxlbWVudDtcbiAgICAgICAgdGhpcy50b2dnbGVTdGF0ZSgnaGFzLW9wZW4tbmF2aWdhdGlvbi1zZWN0aW9uJywgISF0aGlzLl9hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbik7XG4gICAgICB9LFxuICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICfJtW5hdmlnYXRpb25zZWN0aW9uY2xvc2luZycsXG4gICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2FjdGl2ZU5hdmlnYXRpb25TZWN0aW9uID09PSBldmVudC50YXJnZXQpIHtcbiAgICAgICAgICB0aGlzLl9hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbiA9IG51bGw7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnaGFzLW9wZW4tbmF2aWdhdGlvbi1zZWN0aW9uJyk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqIE9wZW5zIHRoZSBuYXZpZ2F0aW9uLiAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCcgfHwgIXRoaXMuaGFzVXBkYXRlZCB8fCAhdGhpcy5kaXNwYXRjaEJlZm9yZU9wZW5FdmVudCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zaG93UG9wb3Zlcj8uKCk7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuaW5nJztcbiAgICB0aGlzLl9jaGVja0FjdGl2ZUFjdGlvbnMoKTtcbiAgICB0aGlzLl9jaGVja0FjdGl2ZVNlY3Rpb24oKTtcbiAgICB0aGlzLnN0YXJ0VXBkYXRlKCk7XG5cbiAgICAvLyBEaXNhYmxlIHNjcm9sbGluZyBmb3IgY29udGVudCBiZWxvdyB0aGUgbmF2aWdhdGlvblxuICAgIHRoaXMuX3Njcm9sbEhhbmRsZXIuZGlzYWJsZVNjcm9sbCgpO1xuICAgIGlmICh0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYUV4cGFuZGVkID0gJ3RydWUnO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBvcGVuZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tBY3RpdmVTZWN0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZUFjdGlvbiA9IHRoaXMucXVlcnlTZWxlY3RvcihcbiAgICAgICdzYmItbmF2aWdhdGlvbi1idXR0b24uc2JiLWFjdGl2ZScsXG4gICAgKSBhcyBTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudDtcbiAgICBhY3RpdmVBY3Rpb24/LmNvbm5lY3RlZFNlY3Rpb24/Lm9wZW4oKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrQWN0aXZlQWN0aW9ucygpOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmVBY3Rpb25zID0gQXJyYXkuZnJvbShcbiAgICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbCgnOmlzKHNiYi1uYXZpZ2F0aW9uLWJ1dHRvbiwgc2JiLW5hdmlnYXRpb24tbGluaykuc2JiLWFjdGl2ZScpLFxuICAgICkgYXMgKFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IHwgU2JiTmF2aWdhdGlvbkxpbmtFbGVtZW50KVtdO1xuICAgIGFjdGl2ZUFjdGlvbnM/LmZvckVhY2goKGFjdGlvbikgPT4gYWN0aW9uLm1hcmtlcj8uc2VsZWN0KGFjdGlvbikpO1xuICB9XG5cbiAgLyoqIENsb3NlcyB0aGUgbmF2aWdhdGlvbi4gKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmVkJyB8fCAhdGhpcy5kaXNwYXRjaEJlZm9yZUNsb3NlRXZlbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2luZyc7XG4gICAgdGhpcy5zdGFydFVwZGF0ZSgpO1xuICAgIGlmICh0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYUV4cGFuZGVkID0gJ2ZhbHNlJztcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgY2xvc2VkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1plcm9BbmltYXRpb25EdXJhdGlvbih0aGlzLCAnLS1zYmItbmF2aWdhdGlvbi1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMuaGlkZVBvcG92ZXI/LigpO1xuICAgIHRoaXMubmF2aWdhdGlvbkNvbnRlbnQ/LnNjcm9sbFRvKDAsIDApO1xuICAgIHRoaXMuX2luZXJ0Q29udHJvbGxlci5kZWFjdGl2YXRlKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgdGhpcy5fZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KCk7XG4gICAgdGhpcy5fbmF2aWdhdGlvblJlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZSh0aGlzKTtcbiAgICB0aGlzLl9yZXNldE1hcmtlcnMoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSBmYWxzZTtcblxuICAgIC8vIEVuYWJsZSBzY3JvbGxpbmcgZm9yIGNvbnRlbnQgYmVsb3cgdGhlIG5hdmlnYXRpb25cbiAgICB0aGlzLl9zY3JvbGxIYW5kbGVyLmVuYWJsZVNjcm9sbCgpO1xuICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIHRoaXMuX25hdmlnYXRpb25SZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMpO1xuICAgIHRoaXMuX2luZXJ0Q29udHJvbGxlci5hY3RpdmF0ZSgpO1xuICAgIHRoaXMuX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLmNvbm5lY3QoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmZvY3VzSW5pdGlhbEVsZW1lbnQoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgICB0aGlzLmRpc3BhdGNoT3BlbkV2ZW50KCk7XG4gIH1cblxuICAvLyBSZW1vdmVzIHRyaWdnZXIgY2xpY2sgbGlzdGVuZXIgb24gdHJpZ2dlciBjaGFuZ2UuXG4gIC8vIENoZWNrIGlmIHRoZSB0cmlnZ2VyIGlzIHZhbGlkIGFuZCBhdHRhY2ggY2xpY2sgZXZlbnQgbGlzdGVuZXJzLlxuICBwcml2YXRlIF9jb25maWd1cmVUcmlnZ2VyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRyaWdnZXIgPT09IHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzKHRoaXMuX3RyaWdnZXJFbGVtZW50KTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IHRoaXMudHJpZ2dlcjtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzKHRoaXMsIHRoaXMuX3RyaWdnZXJFbGVtZW50LCAnbWVudScsIHRoaXMuc3RhdGUpO1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLm9wZW4oKSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEluIHJhcmUgY2FzZXMgaXQgY2FuIGJlIHRoYXQgdGhlIGFuaW1hdGlvbkVuZCBldmVudCBpcyB0cmlnZ2VyZWQgdHdpY2UuXG4gIC8vIFRvIGF2b2lkIGVudGVyaW5nIGEgY29ycnVwdCBzdGF0ZSwgZXhpdCB3aGVuIHN0YXRlIGlzIG5vdCBleHBlY3RlZC5cbiAgcHJpdmF0ZSBfb25BbmltYXRpb25FbmQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdvcGVuJyAmJiB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZScgJiYgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVzZXRNYXJrZXJzKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZUFjdGlvbnMgPSBBcnJheS5mcm9tKFxuICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAnOmlzKHNiYi1uYXZpZ2F0aW9uLWJ1dHRvbiwgc2JiLW5hdmlnYXRpb24tbGluayk6c3RhdGUoYWN0aW9uLWFjdGl2ZSk6bm90KC5zYmItYWN0aXZlKScsXG4gICAgICApLFxuICAgICkgYXMgKFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IHwgU2JiTmF2aWdhdGlvbkxpbmtFbGVtZW50KVtdO1xuICAgIGFjdGl2ZUFjdGlvbnM/LmZvckVhY2goKGFjdGlvbikgPT4gYWN0aW9uLm1hcmtlcj8ucmVzZXQoKSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVOYXZpZ2F0aW9uQ2xvc2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgY29tcG9zZWRQYXRoRWxlbWVudHMgPSBldmVudFxuICAgICAgLmNvbXBvc2VkUGF0aCgpXG4gICAgICAuZmlsdGVyKChlbCkgPT4gZWwgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQpO1xuICAgIGlmIChjb21wb3NlZFBhdGhFbGVtZW50cy5zb21lKChlbCkgPT4gdGhpcy5faXNDbG9zZUVsZW1lbnQoZWwgYXMgSFRNTEVsZW1lbnQpKSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzQ2xvc2VFbGVtZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGVsZW1lbnQubm9kZU5hbWUgPT09ICdBJyB8fFxuICAgICAgKGVsZW1lbnQuaGFzQXR0cmlidXRlKCdzYmItbmF2aWdhdGlvbi1jbG9zZScpICYmICFlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSlcbiAgICApO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHBvaW50ZXJkb3duIGV2ZW50IHRhcmdldCBpcyB0cmlnZ2VyZWQgb24gdGhlIG5hdmlnYXRpb24uXG4gIHByaXZhdGUgX3BvaW50ZXJEb3duTGlzdGVuZXIgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uTmF2aWdhdGlvbiA9XG4gICAgICBpc0V2ZW50T25FbGVtZW50KHRoaXMuX25hdmlnYXRpb24sIGV2ZW50KSB8fFxuICAgICAgaXNFdmVudE9uRWxlbWVudChcbiAgICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKCdzYmItbmF2aWdhdGlvbi1zZWN0aW9uOnN0YXRlKHN0YXRlLW9wZW5lZCknKT8uc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAnbmF2LnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24nLFxuICAgICAgICApIGFzIEhUTUxFbGVtZW50LFxuICAgICAgICBldmVudCxcbiAgICAgICk7XG4gIH07XG5cbiAgLy8gQ2xvc2UgbmF2aWdhdGlvbiBvbiBiYWNrZHJvcCBjbGljay5cbiAgcHJpdmF0ZSBfY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmICghdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25OYXZpZ2F0aW9uICYmICFpc0V2ZW50T25FbGVtZW50KHRoaXMuX25hdmlnYXRpb24sIGV2ZW50KSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9vbk5hdmlnYXRpb25SZXNpemUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCk7XG4gICAgfVxuXG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgncmVzaXplLWRpc2FibGUtYW5pbWF0aW9uJyk7XG5cbiAgICAvLyBEaXNhYmxlIHRoZSBhbmltYXRpb24gd2hlbiByZXNpemluZyB0aGUgbmF2aWdhdGlvbiB0byBhdm9pZCBzdHJhbmdlIGhlaWdodCB0cmFuc2l0aW9uIGVmZmVjdHMuXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXJUaW1lb3V0ID0gc2V0VGltZW91dChcbiAgICAgICgpID0+IHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ3Jlc2l6ZS1kaXNhYmxlLWFuaW1hdGlvbicpLFxuICAgICAgREVCT1VOQ0VfVElNRSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5wb3BvdmVyID0gJ21hbnVhbCc7XG4gICAgaWYgKHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5fY29uZmlndXJlVHJpZ2dlcigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gbnVsbDtcbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX3Njcm9sbEhhbmRsZXIuZW5hYmxlU2Nyb2xsKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcblxuICAgIGlmICghaXNTZXJ2ZXIgJiYgKCFuYW1lIHx8IG5hbWUgPT09ICd0cmlnZ2VyJykgJiYgdGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVUcmlnZ2VyKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIHRoaXMuX2NvbmZpZ3VyZVRyaWdnZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGNsb3NlQnV0dG9uID0gaHRtbGBcbiAgICAgIDxzYmItdHJhbnNwYXJlbnQtYnV0dG9uXG4gICAgICAgIGlkPVwic2JiLW5hdmlnYXRpb24tY2xvc2UtYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJzYmItbmF2aWdhdGlvbl9fY2xvc2VcIlxuICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbCB8fCBpMThuQ2xvc2VOYXZpZ2F0aW9uW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICBhcmlhLWNvbnRyb2xzPVwic2JiLW5hdmlnYXRpb24tb3ZlcmxheVwiXG4gICAgICAgIG5lZ2F0aXZlXG4gICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgaWNvbi1uYW1lPVwiY3Jvc3Mtc21hbGxcIlxuICAgICAgICBzYmItbmF2aWdhdGlvbi1jbG9zZVxuICAgICAgPjwvc2JiLXRyYW5zcGFyZW50LWJ1dHRvbj5cbiAgICBgO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb25fX2NvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgaWQ9XCJzYmItbmF2aWdhdGlvbi1vdmVybGF5XCJcbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7dGhpcy5fb25BbmltYXRpb25FbmR9XG4gICAgICAgICAgY2xhc3M9XCJzYmItbmF2aWdhdGlvblwiXG4gICAgICAgICAgJHtyZWYoKG5hdmlnYXRpb25SZWY/OiBFbGVtZW50KSA9PiAodGhpcy5fbmF2aWdhdGlvbiA9IG5hdmlnYXRpb25SZWYgYXMgSFRNTERpdkVsZW1lbnQpKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbmF2aWdhdGlvbl9faGVhZGVyXCI+JHtjbG9zZUJ1dHRvbn08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb25fX3dyYXBwZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbmF2aWdhdGlvbl9fY29udGVudFwiPlxuICAgICAgICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzbG90IG5hbWU9XCJuYXZpZ2F0aW9uLXNlY3Rpb25cIj48L3Nsb3Q+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItbmF2aWdhdGlvbic6IFNiYk5hdmlnYXRpb25FbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FDc0NBLElBQU0sZ0JBQWdCOzs7Ozs7Ozs7SUFVVCw4QkFBb0I7bUJBQVMsd0JBQXdCLHdCQUF3Qjs7Ozs7Ozs7OztjQUE3RSw2QkFBNkIsWUFBZ0Q7OzswQkFXdkYsYUFBYSxFQUNiLFVBQVUsQ0FBQTswQ0FJVixXQUFXLEVBQ1gsU0FBUyxFQUFFLFdBQVcsNkJBQTZCLENBQUMsQ0FBQTsyQ0FJcEQsT0FBTyxDQUFBO0FBUlIsZ0JBQUEsTUFBQSxNQUFBLHFCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsYUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFPLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBUCxVQUFPOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsdUJBQUEsMkJBQUE7QUFLdkIsZ0JBQUEsTUFBQSxNQUFBLHFDQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsNkJBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBdUIsTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUF2QiwwQkFBdUI7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSx1Q0FBQSwyQ0FBQTtBQUc5QixnQkFBQSxNQUFBLE1BQUEsc0NBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSw4QkFBQTtLQUFBLE1BQUEsUUFBQSxJQUFpQjtLQUF3QixNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQXhCLDJCQUF3Qjs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLHdDQUFBLDRDQUFBOzs7Ozs7Ozs7QUFwQmxCLFFBQUEsY0FBc0I7OztBQUMvQixRQUFBLHNCQUF3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
@@ -1,10 +1,10 @@
1
- import { t as SbbNavigationActionCommonElementMixin } from "./navigation-action-common-DREsZcc7.js";
1
+ import { t as SbbNavigationActionCommonElementMixin } from "./navigation-action-common-BsrmO4QQ.js";
2
2
  import { SbbNavigationButtonElement } from "./navigation/navigation-button/navigation-button.component.js";
3
3
  import { SbbNavigationLinkElement } from "./navigation/navigation-link/navigation-link.component.js";
4
- import { t as SbbNavigationListElement } from "./navigation-list.component-3kQyQ-yJ.js";
5
- import { t as SbbNavigationMarkerElement } from "./navigation-marker.component-DyWfazQL.js";
6
- import { t as SbbNavigationSectionElement } from "./navigation-section.component-DyPWGns2.js";
7
- import { t as SbbNavigationElement } from "./navigation.component-CZ2P2xfh.js";
4
+ import { t as SbbNavigationListElement } from "./navigation-list.component-CQ4q671G.js";
5
+ import { t as SbbNavigationMarkerElement } from "./navigation-marker.component-D7ks8vbC.js";
6
+ import { t as SbbNavigationSectionElement } from "./navigation-section.component-t36xyaq4.js";
7
+ import { t as SbbNavigationElement } from "./navigation.component-Djm0PFOA.js";
8
8
  import "./navigation.pure.js";
9
9
  //#region src/elements/navigation.ts
10
10
  /** @entrypoint */
@@ -1,8 +1,8 @@
1
- import { t as SbbNavigationActionCommonElementMixin } from "./navigation-action-common-DREsZcc7.js";
1
+ import { t as SbbNavigationActionCommonElementMixin } from "./navigation-action-common-BsrmO4QQ.js";
2
2
  import { SbbNavigationButtonElement } from "./navigation/navigation-button/navigation-button.component.js";
3
3
  import { SbbNavigationLinkElement } from "./navigation/navigation-link/navigation-link.component.js";
4
- import { t as SbbNavigationListElement } from "./navigation-list.component-3kQyQ-yJ.js";
5
- import { t as SbbNavigationMarkerElement } from "./navigation-marker.component-DyWfazQL.js";
6
- import { t as SbbNavigationSectionElement } from "./navigation-section.component-DyPWGns2.js";
7
- import { t as SbbNavigationElement } from "./navigation.component-CZ2P2xfh.js";
4
+ import { t as SbbNavigationListElement } from "./navigation-list.component-CQ4q671G.js";
5
+ import { t as SbbNavigationMarkerElement } from "./navigation-marker.component-D7ks8vbC.js";
6
+ import { t as SbbNavigationSectionElement } from "./navigation-section.component-t36xyaq4.js";
7
+ import { t as SbbNavigationElement } from "./navigation.component-Djm0PFOA.js";
8
8
  export { SbbNavigationActionCommonElementMixin, SbbNavigationButtonElement, SbbNavigationElement, SbbNavigationLinkElement, SbbNavigationListElement, SbbNavigationMarkerElement, SbbNavigationSectionElement };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../navigation-action-common-D3rE0ZNS.js";
1
+ import { t as e } from "../../navigation-action-common-XvWVU7Zk.js";
2
2
  export { e as SbbNavigationActionCommonElementMixin };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../navigation.component-CR4vG3vH.js";
1
+ import { t as e } from "../../navigation.component-BFejmwjr.js";
2
2
  export { e as SbbNavigationElement };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../navigation-list.component-DSJx3LwB.js";
1
+ import { t as e } from "../../navigation-list.component-BX-kv06z.js";
2
2
  export { e as SbbNavigationListElement };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../navigation-marker.component-xmkTtMap.js";
1
+ import { t as e } from "../../navigation-marker.component-iSodFQRj.js";
2
2
  export { e as SbbNavigationMarkerElement };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../navigation-section.component-CUrICmbc.js";
1
+ import { t as e } from "../../navigation-section.component-K4Pa53K7.js";
2
2
  export { e as SbbNavigationSectionElement };
@@ -0,0 +1,66 @@
1
+ import { __esDecorate as e, __runInitializers as t } from "tslib";
2
+ import { unsafeCSS as n } from "lit";
3
+ import { property as r } from "lit/decorators.js";
4
+ import { boxSizingStyles as i } from "./core.js";
5
+ import { html as a } from "lit/static-html.js";
6
+ import { SbbIconElement as o } from "./icon.pure.js";
7
+ //#region src/elements/navigation/common/navigation-action.scss?inline
8
+ var s = ":host{--_sbb-navigation-action-inset-inline-start: calc( (var(--sbb-size-icon-ui-small) + var(--sbb-spacing-fixed-1x)) * -1 );--_sbb-navigation-action-inset-block-start: calc(1em * (var(--sbb-typo-line-height-text) / 2));--sbb-navigation-action-transition-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-3x) );display:block;outline:none!important}:host(:is(:state(section-action),[state--section-action]):is(:state(action-active),[state--action-active]).sbb-active){--sbb-navigation-action-icon-display: block}:host(:is(:state(action-active),[state--action-active])){--sbb-navigation-action-color: var(--sbb-color-5)}@media(forced-colors:active){:host(:is(:state(action-active),[state--action-active])){--sbb-navigation-action-color: Highlight}}sbb-icon{display:var(--sbb-navigation-action-icon-display);position:absolute;inset-inline-start:var(--_sbb-navigation-action-inset-inline-start);inset-block-start:var(--_sbb-navigation-action-inset-block-start);translate:0 -50%}@media(any-hover:hover){:host(:hover){--sbb-navigation-action-color: var(--sbb-color-5)}}@media(forced-colors:active){:host(:is(:state(button),[state--button])){--sbb-navigation-action-color: ButtonText}}:host([size=l]){--sbb-navigation-action-font-size: var(--sbb-heading-font-size-4);--sbb-navigation-action-letter-spacing: var(--sbb-typo-letter-spacing-heading);--sbb-navigation-action-line-height: var(--sbb-typo-line-height-heading)}:host([size=m]),:host([size=s]){--sbb-navigation-action-line-height: var(--sbb-typo-line-height-text);--sbb-navigation-action-letter-spacing: var(--sbb-typo-letter-spacing-text)}:host([size=m]){--sbb-navigation-action-font-size: var(--sbb-text-font-size-s)}:host([size=s]){--sbb-navigation-action-font-size: var(--sbb-text-font-size-xxs)}:is(.sbb-navigation-button,.sbb-navigation-link){display:flex;position:relative;color:var(--sbb-navigation-action-color);cursor:var(--sbb-cursor-pointer);transition:color var(--sbb-navigation-action-transition-duration) ease;outline:none;text-align:left;font-size:var(--sbb-navigation-action-font-size);line-height:var(--sbb-navigation-action-line-height);letter-spacing:var(--sbb-navigation-action-letter-spacing);font-weight:700;-webkit-hyphens:auto;hyphens:auto;text-decoration:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}@media(forced-colors:active){:is(.sbb-navigation-button,.sbb-navigation-link){transition:none}}:host(:focus-visible) :is(.sbb-navigation-button,.sbb-navigation-link),:is(.sbb-navigation-button,.sbb-navigation-link):focus-visible{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);border-radius:calc(var(--sbb-border-radius-4x) - var(--sbb-focus-outline-offset))}", c = (c) => (() => {
9
+ let l = c, u, d = [], f = [];
10
+ return class extends l {
11
+ static {
12
+ let t = typeof Symbol == "function" && Symbol.metadata ? Object.create(l[Symbol.metadata] ?? null) : void 0;
13
+ u = [r({ reflect: !0 })], e(this, null, u, {
14
+ kind: "accessor",
15
+ name: "size",
16
+ static: !1,
17
+ private: !1,
18
+ access: {
19
+ has: (e) => "size" in e,
20
+ get: (e) => e.size,
21
+ set: (e, t) => {
22
+ e.size = t;
23
+ }
24
+ },
25
+ metadata: t
26
+ }, d, f), t && Object.defineProperty(this, Symbol.metadata, {
27
+ enumerable: !0,
28
+ configurable: !0,
29
+ writable: !0,
30
+ value: t
31
+ });
32
+ }
33
+ static {
34
+ this.elementDependencies = [o];
35
+ }
36
+ static {
37
+ this.styles = [i, n(s)];
38
+ }
39
+ #e;
40
+ get size() {
41
+ return this.#e;
42
+ }
43
+ set size(e) {
44
+ this.#e = e;
45
+ }
46
+ get marker() {
47
+ return this._navigationMarker;
48
+ }
49
+ get section() {
50
+ return this._navigationSection;
51
+ }
52
+ constructor(...e) {
53
+ super(...e), this.#e = t(this, d, "l"), this.connectedSection = t(this, f), this._navigationMarker = null, this._navigationSection = null, this.addEventListener?.("click", () => {
54
+ !this.matches(":is(:state(action-active),[state--action-active])") && this._navigationMarker && !this.connectedSection && this.marker?.select(this);
55
+ });
56
+ }
57
+ connectedCallback() {
58
+ super.connectedCallback(), this._navigationMarker = this.closest("sbb-navigation-marker"), this._navigationSection = this.closest("sbb-navigation-section"), this.toggleState("section-action", !!this._navigationSection);
59
+ }
60
+ renderTemplate() {
61
+ return a`<sbb-icon name="dash-small"></sbb-icon> <slot></slot>`;
62
+ }
63
+ };
64
+ })();
65
+ //#endregion
66
+ export { c as t };
@@ -3,7 +3,7 @@ import { html as n, unsafeCSS as r } from "lit";
3
3
  import { property as i } from "lit/decorators.js";
4
4
  import { SbbElement as a, SbbNamedSlotListMixin as o, boxSizingStyles as s, forceType as c, omitEmptyConverter as l } from "./core.js";
5
5
  //#region src/elements/navigation/navigation-list/navigation-list.scss?inline
6
- var u = ":host{display:block}.sbb-navigation-list__content{list-style:none;margin:0;padding:0;font-size:inherit;display:flex;flex-direction:column;align-items:flex-start;gap:var(--sbb-spacing-fixed-2x);margin-block:var(--sbb-spacing-fixed-1x)}.sbb-navigation-list__label{--sbb-text-font-size: var(--sbb-text-font-size-xxs);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-text);letter-spacing:var(--sbb-typo-letter-spacing-text);font-size:var(--sbb-text-font-size);font-weight:700;display:block;color:var(--sbb-color-5);padding-block-end:var(--sbb-spacing-fixed-2x)}:host(:not(:is(:state(slotted-label),[state--slotted-label]),[label])) .sbb-navigation-list__label{display:none}", d = (() => {
6
+ var u = ":host{display:block}.sbb-navigation-list__content{list-style:none;margin:0;padding:0;font-size:inherit;display:flex;flex-direction:column;align-items:flex-start;gap:var(--sbb-navigation-list-gap);margin-block:var(--sbb-navigation-list-margin-block)}.sbb-navigation-list__label{display:block;color:var(--sbb-color-5);padding-block-end:var(--sbb-navigation-list-padding-block-end);font-weight:700;font-size:var(--sbb-navigation-list-font-size);letter-spacing:var(--sbb-typo-letter-spacing-text)}:host(:not(:is(:state(slotted-label),[state--slotted-label]),[label])) .sbb-navigation-list__label{display:none}", d = (() => {
7
7
  let d = o(a), f, p = [], m = [];
8
8
  return class extends d {
9
9
  static {
@@ -4,7 +4,7 @@ import { property as r } from "lit/decorators.js";
4
4
  import { SbbElement as i, SbbNamedSlotListMixin as a, boxSizingStyles as o, ɵstateController as s } from "./core.js";
5
5
  import { ResizeController as c } from "@lit-labs/observers/resize-controller.js";
6
6
  //#region src/elements/navigation/navigation-marker/navigation-marker.scss?inline
7
- var l = ":host{--sbb-navigation-action-gap: var(--sbb-spacing-responsive-xs);--sbb-navigation-marker-position-x: var(--sbb-spacing-fixed-1x);--sbb-navigation-marker-position-y: unset;--sbb-navigation-marker-width: 1.0625rem;--sbb-navigation-marker-border: var(--sbb-border-width-1x);--sbb-navigation-marker-padding-inline-start: var(--sbb-spacing-fixed-6x);--sbb-navigation-marker-typo-line-height: var(--sbb-typo-line-height-heading);--sbb-navigation-margin-inline-start: var(--sbb-spacing-fixed-3x);--sbb-navigation-marker-margin-block: calc( 1em * var(--sbb-navigation-marker-typo-line-height) / 2 - var(--sbb-navigation-marker-border) / 2 );display:block}:host([size=s]){--sbb-navigation-action-gap: var(--sbb-spacing-fixed-2x);--sbb-navigation-marker-width: .5rem;--sbb-navigation-marker-typo-line-height: var(--sbb-typo-line-height-text);--sbb-navigation-margin-inline-start: var(--sbb-spacing-fixed-2x);--sbb-navigation-marker-position-x: calc( var(--sbb-navigation-marker-padding-inline-start) - var(--sbb-spacing-fixed-2x) );--sbb-navigation-marker-padding-inline-start: calc( var(--sbb-spacing-fixed-6x) + var(--sbb-spacing-fixed-1x) )}.sbb-navigation-marker{list-style:none;margin:0;padding:0;font-size:inherit;--sbb-title-font-size: var(--sbb-title-font-size-level-4-lean, var(--sbb-heading-font-size-4));margin-block:var(--sbb-title-margin-block, 0);margin-inline:0;font-family:var(--sbb-typo-font-family);font-weight:700;font-size:var(--sbb-title-font-size);letter-spacing:var(--sbb-typo-letter-spacing-heading);line-height:var(--sbb-title-line-height, var(--sbb-typo-line-height-heading));position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:var(--sbb-navigation-action-gap);padding-inline-start:var(--sbb-navigation-marker-padding-inline-start)}.sbb-navigation-marker:before{content:\"\";position:absolute;opacity:0;inset-inline-start:var(--sbb-navigation-marker-position-x);inset-block-start:var(--sbb-navigation-marker-position-y);width:var(--sbb-navigation-marker-width);border-block-start:var(--sbb-navigation-marker-border) solid var(--sbb-color-5);margin-block:var(--sbb-navigation-marker-margin-block);transition-duration:var(--sbb-disable-animation-duration, var(--sbb-animation-duration-6x));transition-timing-function:ease;transition-property:opacity,inset-block-start}:host(:is(:state(has-active-action),[state--has-active-action])) .sbb-navigation-marker:before{opacity:1}@media(forced-colors:active){.sbb-navigation-marker:before{border-color:CanvasText}}:host([size=s]) .sbb-navigation-marker{--sbb-text-font-size: var(--sbb-text-font-size-xxs);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-text);letter-spacing:var(--sbb-typo-letter-spacing-text);font-size:var(--sbb-text-font-size);font-weight:700}::slotted(:is(sbb-navigation-button,sbb-navigation-link)){margin-inline-start:var(--sbb-navigation-margin-inline-start)}", u = (() => {
7
+ var l = ":host{--sbb-navigation-marker-margin-block: calc( 1em * var(--sbb-navigation-marker-typo-line-height) / 2 - var(--sbb-navigation-marker-border) / 2 );display:block}:host([size=l]){--sbb-navigation-marker-font-size: var(--sbb-heading-font-size-4);--sbb-navigation-marker-letter-spacing: var(--sbb-typo-letter-spacing-heading);--sbb-navigation-marker-line-height: var(--sbb-typo-line-height-heading)}:host([size=s]){--sbb-navigation-action-gap: var(--sbb-spacing-fixed-2x);--sbb-navigation-marker-width: .5rem;--sbb-navigation-marker-typo-line-height: var(--sbb-typo-line-height-text);--sbb-navigation-margin-inline-start: var(--sbb-spacing-fixed-2x);--sbb-navigation-marker-position-x: calc( var(--sbb-navigation-marker-padding-inline-start) - var(--sbb-spacing-fixed-2x) );--sbb-navigation-marker-padding-inline-start: calc( var(--sbb-spacing-fixed-6x) + var(--sbb-spacing-fixed-1x) );--sbb-navigation-marker-font-size: var(--sbb-text-font-size-xxs);--sbb-navigation-marker-letter-spacing: var(--sbb-typo-letter-spacing-text);--sbb-navigation-marker-line-height: var(--sbb-typo-line-height-text)}.sbb-navigation-marker{list-style:none;margin:0;padding:0;font-size:inherit;position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:var(--sbb-navigation-action-gap);padding-inline-start:var(--sbb-navigation-marker-padding-inline-start);font-size:var(--sbb-navigation-marker-font-size);line-height:var(--sbb-navigation-marker-line-height);letter-spacing:var(--sbb-navigation-marker-letter-spacing);font-weight:700}.sbb-navigation-marker:before{content:\"\";position:absolute;opacity:0;inset-inline-start:var(--sbb-navigation-marker-position-x);inset-block-start:var(--sbb-navigation-marker-position-y);width:var(--sbb-navigation-marker-width);border-block-start:var(--sbb-navigation-marker-border) solid var(--sbb-color-5);margin-block:var(--sbb-navigation-marker-margin-block);transition-duration:var(--sbb-disable-animation-duration, var(--sbb-animation-duration-6x));transition-timing-function:ease;transition-property:opacity,inset-block-start}:host(:is(:state(has-active-action),[state--has-active-action])) .sbb-navigation-marker:before{opacity:1}@media(forced-colors:active){.sbb-navigation-marker:before{border-color:CanvasText}}::slotted(:is(sbb-navigation-button,sbb-navigation-link)){margin-inline-start:var(--sbb-navigation-margin-inline-start)}", u = (() => {
8
8
  let u = a(i), d, f = [], p = [];
9
9
  return class extends u {
10
10
  static {
@@ -4,7 +4,7 @@ import { property as o } from "lit/decorators.js";
4
4
  import { IS_FOCUSABLE_QUERY as s, SbbFocusTrapController as c, SbbLanguageController as l, SbbMediaMatcherController as u, SbbMediaQueryBreakpointSmallAndBelow as d, SbbOpenCloseBaseElement as f, SbbUpdateSchedulerMixin as p, boxSizingStyles as m, forceType as h, i18nGoBack as g, idReference as _, isZeroAnimationDuration as v, omitEmptyConverter as y, removeAriaOverlayTriggerProperties as b, sbbInputModalityDetector as x, setAriaOverlayTriggerProperties as S, ɵstateController as C } from "./core.js";
5
5
  import { SbbTransparentButtonElement as w } from "./button.pure.js";
6
6
  //#region src/elements/navigation/navigation-section/navigation-section.scss?inline
7
- var T = ":host{--sbb-navigation-section-display: none;--sbb-navigation-section-column: 1 / -1;--sbb-navigation-section-position: fixed;--sbb-navigation-section-pointer-events: none;--sbb-navigation-section-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-3x) );--sbb-navigation-section-animation-easing: ease-out;--sbb-navigation-section-padding-inline: var(--sbb-layout-base-offset-responsive);--sbb-navigation-section-padding-block: var(--sbb-spacing-responsive-l);--sbb-navigation-section-translate: 100%;--sbb-navigation-section-content-padding-inline-start: var(--sbb-spacing-fixed-12x);--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);--sbb-navigation-section-width: 100dvw;--sbb-navigation-section-height: 100dvh;display:var(--sbb-navigation-section-display);position:var(--sbb-navigation-section-position);grid-column:var(--sbb-navigation-section-column);inset-inline-start:0;inset-block-start:0;width:var(--sbb-navigation-section-width);height:var(--sbb-navigation-section-height);z-index:var(--sbb-navigation-z-index, var(--sbb-overlay-default-z-index))}@media(min-width:64rem){:host{--sbb-navigation-section-column: 5 / 13;--sbb-navigation-section-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-4x) );--sbb-navigation-section-padding-block: var(--sbb-spacing-responsive-xl);--sbb-navigation-section-padding-inline: var(--sbb-spacing-fixed-8x) var(--sbb-layout-base-offset-responsive);--sbb-navigation-section-position: relative;--sbb-navigation-section-translate: 0;--sbb-navigation-section-content-padding-inline-start: 0;--sbb-navigation-section-width: calc( 100% + var(--sbb-layout-base-offset-responsive) + var(--sbb-grid-base-gutter-responsive) );translate:calc(var(--sbb-grid-base-gutter-responsive) * -1) 0}}@media(min-width:90rem){:host{--sbb-navigation-section-column: 6 / 17;--sbb-navigation-section-padding-block: var(--sbb-spacing-responsive-xxl) var(--sbb-spacing-responsive-l)}}:host(:is(:state(state-opened),[state--state-opened])){--sbb-navigation-section-pointer-events: all}:host(:is(:state(state-opening),[state--state-opening])){--sbb-navigation-section-position: absolute}:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-closing),[state--state-closing]))){--sbb-navigation-section-pointer-events: none}:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]),:is(:state(state-closing),[state--state-closing]))){--sbb-navigation-section-display: block}::slotted(*){padding-inline-start:var(--sbb-navigation-section-content-padding-inline-start)}::slotted(:is(:state(sbb-button),[state--sbb-button])){grid-column-start:1}.sbb-navigation-section__container{pointer-events:var(--sbb-navigation-section-pointer-events);height:var(--sbb-navigation-section-height)}.sbb-navigation-section{display:none;border:none;margin:0;width:100%;height:100%;color:var(--sbb-navigation-color, var(--sbb-color-1-negative));background-color:transparent;padding:0;overflow:hidden}:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]),:is(:state(state-closing),[state--state-closing]))) .sbb-navigation-section{display:block;animation-name:open;animation-duration:var(--sbb-navigation-section-animation-duration);animation-timing-function:var(--sbb-navigation-section-animation-easing)}:host(:is(:state(state-closing),[state--state-closing])) .sbb-navigation-section{animation-name:close}@media(forced-colors:active){.sbb-navigation-section{outline:var(--sbb-border-width-1x) solid CanvasText}}.sbb-navigation-section__wrapper{--sbb-scrollbar-width: var(--sbb-spacing-fixed-3x);--sbb-scrollbar-thumb-width: .125rem;--sbb-scrollbar-thumb-width-hover: .25rem;--sbb-scrollbar-width-firefox: thin;--sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-white) 30%, transparent);--sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-white) 60%, transparent);--sbb-scrollbar-track-color: transparent}.sbb-navigation-section__wrapper::-webkit-scrollbar{width:var(--sbb-scrollbar-width);height:var(--sbb-scrollbar-width);background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-navigation-section__wrapper::-webkit-scrollbar-corner{background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-navigation-section__wrapper::-webkit-scrollbar-thumb{background-color:var(--sbb-scrollbar-color, currentcolor);border:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;border-radius:var(--sbb-border-radius-4x);background-clip:padding-box}.sbb-navigation-section__wrapper::-webkit-scrollbar-thumb:hover{background-color:var(--sbb-scrollbar-color-hover, currentcolor);border-width:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)))}.sbb-navigation-section__wrapper::-webkit-scrollbar-button,.sbb-navigation-section__wrapper::-webkit-scrollbar-corner{display:none}@supports not selector(::-webkit-scrollbar){.sbb-navigation-section__wrapper{scrollbar-width:var(--sbb-scrollbar-width-firefox);scrollbar-color:var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent)}}.sbb-navigation-section__wrapper{height:100%;padding-block:var(--sbb-navigation-section-padding-block);outline:none;overflow-y:auto}:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-closing),[state--state-closing]))) .sbb-navigation-section__wrapper{--sbb-scrollbar-color: transparent;scrollbar-color:transparent transparent}.sbb-navigation-section__header{position:relative;display:flex;align-items:center;gap:var(--sbb-spacing-fixed-1x);margin-block-start:var(--sbb-spacing-responsive-xxl);padding-inline-start:var(--sbb-navigation-section-content-padding-inline-start)}@media(min-width:64rem){.sbb-navigation-section__header{margin-block-start:0;padding-inline-start:0}}@media(min-width:90rem){.sbb-navigation-section__header{grid-column:1/4}}.sbb-navigation-section__back{position:absolute;translate:calc((100% + var(--sbb-spacing-fixed-1x)) * -1) 0}@media(min-width:64rem){.sbb-navigation-section__back{display:none}}.sbb-navigation-section__title{margin-block:var(--sbb-title-margin-block, 0);margin-inline:0;font-family:var(--sbb-typo-font-family);font-weight:700;font-size:var(--sbb-title-font-size);letter-spacing:var(--sbb-typo-letter-spacing-heading);line-height:var(--sbb-title-line-height, var(--sbb-typo-line-height-heading));--sbb-title-font-size: var(--sbb-title-font-size-level-4-lean, var(--sbb-heading-font-size-4))}@media(min-width:64rem){.sbb-navigation-section__title{--sbb-title-font-size: var(--sbb-title-font-size-level-2-lean, var(--sbb-heading-font-size-2))}}.sbb-navigation-section__content{display:grid;grid-template-columns:1fr;gap:var(--sbb-spacing-responsive-l) var(--sbb-grid-base-gutter-responsive);padding-inline:var(--sbb-navigation-section-padding-inline)}@media(min-width:64rem){.sbb-navigation-section__content{opacity:0;translate:0 var(--sbb-spacing-fixed-3x);transition-duration:var(--sbb-navigation-section-animation-duration);transition-delay:var(--sbb-navigation-section-animation-duration);transition-timing-function:var(--sbb-navigation-section-animation-easing);transition-property:opacity,translate}:host(:is(:state(state-opened),[state--state-opened])) .sbb-navigation-section__content{opacity:1;translate:0 0}}@media(min-width:90rem){.sbb-navigation-section__content{grid-template-columns:repeat(3,1fr)}}:host(:is(:state(state-closing),[state--state-closing])) .sbb-navigation-section__content{transition-delay:0s}@keyframes open{0%{translate:var(--sbb-navigation-section-translate) 0}to{translate:0 0}}@keyframes close{0%{translate:0 0}to{translate:var(--sbb-navigation-section-translate) 0}}", E = (() => {
7
+ var T = ":host{--sbb-navigation-section-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-3x) );--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);display:var(--sbb-navigation-section-display, none);position:var(--sbb-navigation-section-position);grid-column:var(--sbb-navigation-section-column);inset-inline-start:0;inset-block-start:0;width:var(--sbb-navigation-section-width);height:var(--sbb-navigation-section-height);z-index:var(--sbb-navigation-z-index, var(--sbb-overlay-default-z-index))}@media(min-width:64rem){:host{--sbb-navigation-section-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-4x) );--sbb-navigation-section-width: calc( 100% + var(--sbb-layout-base-offset-responsive) + var(--sbb-grid-base-gutter-responsive) );translate:calc(var(--sbb-grid-base-gutter-responsive) * -1) 0}}:host(:is(:state(state-opened),[state--state-opened])){--sbb-navigation-section-pointer-events: all}:host(:is(:state(state-opening),[state--state-opening])){--sbb-navigation-section-position: absolute}:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-closing),[state--state-closing]))){--sbb-navigation-section-pointer-events: none}:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]),:is(:state(state-closing),[state--state-closing]))){--sbb-navigation-section-display: block}::slotted(*){padding-inline-start:var(--sbb-navigation-section-content-padding-inline-start)}::slotted(:is(:state(sbb-button),[state--sbb-button])){grid-column-start:1}.sbb-navigation-section__container{pointer-events:var(--sbb-navigation-section-pointer-events);height:var(--sbb-navigation-section-height)}.sbb-navigation-section{display:none;border:none;margin:0;width:100%;height:100%;color:var(--sbb-navigation-color, var(--sbb-color-1-negative));background-color:transparent;padding:0;overflow:hidden}:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]),:is(:state(state-closing),[state--state-closing]))) .sbb-navigation-section{display:block;animation-name:open;animation-duration:var(--sbb-navigation-section-animation-duration);animation-timing-function:var(--sbb-navigation-section-animation-easing)}:host(:is(:state(state-closing),[state--state-closing])) .sbb-navigation-section{animation-name:close}@media(forced-colors:active){.sbb-navigation-section{outline:var(--sbb-border-width-1x) solid CanvasText}}.sbb-navigation-section__wrapper{--sbb-scrollbar-width: var(--sbb-spacing-fixed-3x);--sbb-scrollbar-thumb-width: .125rem;--sbb-scrollbar-thumb-width-hover: .25rem;--sbb-scrollbar-width-firefox: thin;--sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-white) 30%, transparent);--sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-white) 60%, transparent);--sbb-scrollbar-track-color: transparent}.sbb-navigation-section__wrapper::-webkit-scrollbar{width:var(--sbb-scrollbar-width);height:var(--sbb-scrollbar-width);background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-navigation-section__wrapper::-webkit-scrollbar-corner{background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-navigation-section__wrapper::-webkit-scrollbar-thumb{background-color:var(--sbb-scrollbar-color, currentcolor);border:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;border-radius:var(--sbb-border-radius-4x);background-clip:padding-box}.sbb-navigation-section__wrapper::-webkit-scrollbar-thumb:hover{background-color:var(--sbb-scrollbar-color-hover, currentcolor);border-width:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)))}.sbb-navigation-section__wrapper::-webkit-scrollbar-button,.sbb-navigation-section__wrapper::-webkit-scrollbar-corner{display:none}@supports not selector(::-webkit-scrollbar){.sbb-navigation-section__wrapper{scrollbar-width:var(--sbb-scrollbar-width-firefox);scrollbar-color:var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent)}}.sbb-navigation-section__wrapper{height:100%;padding-block:var(--sbb-navigation-section-padding-block);outline:none;overflow-y:auto}:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-closing),[state--state-closing]))) .sbb-navigation-section__wrapper{--sbb-scrollbar-color: transparent;scrollbar-color:transparent transparent}.sbb-navigation-section__header{position:relative;display:flex;align-items:center;gap:var(--sbb-spacing-fixed-1x);margin-block-start:var(--sbb-spacing-responsive-xxl);padding-inline-start:var(--sbb-navigation-section-content-padding-inline-start)}@media(min-width:64rem){.sbb-navigation-section__header{margin-block-start:0;padding-inline-start:0}}@media(min-width:90rem){.sbb-navigation-section__header{grid-column:1/4}}.sbb-navigation-section__back{position:absolute;translate:calc((100% + var(--sbb-spacing-fixed-1x)) * -1) 0}@media(min-width:64rem){.sbb-navigation-section__back{display:none}}.sbb-navigation-section__title{margin-block:var(--sbb-title-margin-block, 0);margin-inline:0;font-family:var(--sbb-typo-font-family);font-weight:700;font-size:var(--sbb-title-font-size);letter-spacing:var(--sbb-typo-letter-spacing-heading);line-height:var(--sbb-title-line-height, var(--sbb-typo-line-height-heading));font-size:var(--sbb-navigation-section-font-size)}.sbb-navigation-section__content{display:grid;grid-template-columns:1fr;gap:var(--sbb-spacing-responsive-l) var(--sbb-grid-base-gutter-responsive);padding-inline:var(--sbb-navigation-section-padding-inline)}@media(min-width:64rem){.sbb-navigation-section__content{opacity:0;translate:0 var(--sbb-spacing-fixed-3x);transition-duration:var(--sbb-navigation-section-animation-duration);transition-delay:var(--sbb-navigation-section-animation-duration);transition-timing-function:var(--sbb-navigation-section-animation-easing);transition-property:opacity,translate}:host(:is(:state(state-opened),[state--state-opened])) .sbb-navigation-section__content{opacity:1;translate:0 0}}@media(min-width:90rem){.sbb-navigation-section__content{grid-template-columns:repeat(3,1fr)}}:host(:is(:state(state-closing),[state--state-closing])) .sbb-navigation-section__content{transition-delay:0s}@keyframes open{0%{translate:var(--sbb-navigation-section-translate) 0}to{translate:0 0}}@keyframes close{0%{translate:0 0}to{translate:var(--sbb-navigation-section-translate) 0}}", E = (() => {
8
8
  let E = p(f), D, O = [], k = [], A, j = [], M = [], N, P = [], F = [], I, L = [], R = [];
9
9
  return class extends E {
10
10
  static {