@sbb-esta/lyne-elements-dev 5.0.0-next-dev.1777279279 → 5.0.0-next-dev.1777284499

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.
@@ -0,0 +1,268 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { html, nothing, unsafeCSS } from "lit";
3
+ import { property } from "lit/decorators.js";
4
+ import { SbbDarkModeController, SbbLanguageController, SbbOpenCloseBaseElement, SbbReadonlyMixin, boxSizingStyles, composedPathHasAttribute, forceType, i18nCloseAlert, isZeroAnimationDuration } from "./core.js";
5
+ import { SbbTransparentButtonElement } from "./button.pure.js";
6
+ import { SbbDividerElement } from "./divider.pure.js";
7
+ import { SbbIconNameMixin } from "./icon.pure.js";
8
+ //#region src/elements/toast/toast.scss?inline
9
+ var toast_default = ":host {\n --sbb-toast-animation-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-6x)\n );\n --sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);\n display: none;\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 --sbb-toast-container-display: flex;\n display: block;\n}\n\n:host([position=bottom-left]),\n:host([position=bottom-start]) {\n --sbb-toast-horizontal-position: flex-start;\n --sbb-toast-vertical-position: flex-end;\n}\n\n:host([position=bottom-center]) {\n --sbb-toast-horizontal-position: center;\n --sbb-toast-vertical-position: flex-end;\n}\n\n:host([position=bottom-right]),\n:host([position=bottom-end]) {\n --sbb-toast-horizontal-position: flex-end;\n --sbb-toast-vertical-position: flex-end;\n}\n\n:host([position=top-left]),\n:host([position=top-start]) {\n --sbb-toast-horizontal-position: flex-start;\n --sbb-toast-vertical-position: flex-start;\n}\n\n:host([position=top-center]) {\n --sbb-toast-horizontal-position: center;\n --sbb-toast-vertical-position: flex-start;\n}\n\n:host([position=top-right]),\n:host([position=top-end]) {\n --sbb-toast-horizontal-position: flex-end;\n --sbb-toast-vertical-position: flex-start;\n}\n\n:host(:is(:state(dark),[state--dark])) {\n --sbb-focus-outline-color: var(--sbb-focus-outline-color-default);\n}\n\n.sbb-toast__overlay-container {\n position: var(--sbb-toast-container-position);\n pointer-events: none;\n inset: 0;\n display: var(--sbb-toast-container-display, none);\n justify-content: var(--sbb-toast-horizontal-position);\n align-items: var(--sbb-toast-vertical-position);\n}\n\n.sbb-toast {\n z-index: var(--sbb-toast-z-index, var(--sbb-overlay-default-z-index));\n pointer-events: auto;\n margin: var(--sbb-toast-margin);\n border-radius: var(--sbb-toast-border-radius);\n max-width: var(--sbb-toast-max-width);\n display: flex;\n color: var(--sbb-toast-text-color);\n background-color: var(--sbb-toast-background-color);\n}\n:host(:is(:state(state-opening),[state--state-opening])) .sbb-toast {\n animation-name: open;\n animation-duration: var(--sbb-toast-animation-duration);\n animation-timing-function: var(--sbb-toast-animation-timing-function);\n}\n:host(:is(:state(state-closing),[state--state-closing])) .sbb-toast {\n animation-name: close;\n animation-duration: var(--sbb-toast-animation-duration);\n animation-timing-function: var(--sbb-toast-animation-timing-function);\n}\n\n.sbb-toast-wrapper {\n display: flex;\n align-items: center;\n gap: var(--sbb-toast-gap);\n padding-block: var(--sbb-toast-padding-block);\n padding-inline: var(--sbb-toast-padding-inline);\n}\n\nslot:not([name=icon]),\n.sbb-toast__close {\n color-scheme: only light;\n}\n\n.sbb-toast__content {\n --sbb-title-font-size: var(--sbb-title-font-size-level-6-lean, var(--sbb-heading-font-size-6));\n --sbb-title-line-height: var(--sbb-typo-line-height-text);\n margin-block: var(--sbb-title-margin-block, 0);\n margin-inline: 0;\n font-family: var(--sbb-typo-font-family);\n font-weight: bold;\n font-size: var(--sbb-title-font-size);\n letter-spacing: var(--sbb-typo-letter-spacing-heading);\n line-height: var(--sbb-title-line-height, var(--sbb-typo-line-height-heading));\n flex: 1 1 0;\n}\n\n.sbb-toast__close {\n display: flex;\n align-items: center;\n}\n\n.sbb-toast__close-divider {\n padding-block: var(--sbb-toast-padding-block);\n}\n\n.sbb-toast__close-button {\n margin-inline: var(--sbb-spacing-responsive-xxxs);\n}\n\n@keyframes open {\n from {\n visibility: hidden;\n opacity: 0;\n translate: 0 var(--sbb-spacing-fixed-2x);\n }\n to {\n visibility: visible;\n opacity: 1;\n translate: 0;\n }\n}\n@keyframes close {\n from {\n visibility: visible;\n opacity: 1;\n translate: 0;\n }\n to {\n visibility: hidden;\n opacity: 0;\n translate: 0 var(--sbb-spacing-fixed-2x);\n }\n}";
10
+ //#endregion
11
+ //#region src/elements/toast/toast.component.ts
12
+ var toastRefs = /* @__PURE__ */ new Set();
13
+ /**
14
+ * It displays a toast notification.
15
+ *
16
+ * @slot - Use the unnamed slot to add content to the `sbb-toast`.
17
+ * @slot icon - Assign a custom icon via slot.
18
+ * @slot action - Provide a custom action for this toast.
19
+ * @cssprop [--sbb-toast-z-index=var(--sbb-overlay-default-z-index)] - To specify a custom stack order,
20
+ * the `z-index` can be overridden by defining this CSS variable. The default `z-index` of the
21
+ * component is set to `var(--sbb-overlay-default-z-index)` with a value of `1000`.
22
+ */
23
+ var SbbToastElement = (() => {
24
+ let _classSuper = SbbIconNameMixin(SbbReadonlyMixin(SbbOpenCloseBaseElement));
25
+ let _timeout_decorators;
26
+ let _timeout_initializers = [];
27
+ let _timeout_extraInitializers = [];
28
+ let _position_decorators;
29
+ let _position_initializers = [];
30
+ let _position_extraInitializers = [];
31
+ let _politeness_decorators;
32
+ let _politeness_initializers = [];
33
+ let _politeness_extraInitializers = [];
34
+ return class SbbToastElement extends _classSuper {
35
+ static {
36
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
37
+ _timeout_decorators = [forceType(), property({ type: Number })];
38
+ _position_decorators = [property({ reflect: true })];
39
+ _politeness_decorators = [property()];
40
+ __esDecorate(this, null, _timeout_decorators, {
41
+ kind: "accessor",
42
+ name: "timeout",
43
+ static: false,
44
+ private: false,
45
+ access: {
46
+ has: (obj) => "timeout" in obj,
47
+ get: (obj) => obj.timeout,
48
+ set: (obj, value) => {
49
+ obj.timeout = value;
50
+ }
51
+ },
52
+ metadata: _metadata
53
+ }, _timeout_initializers, _timeout_extraInitializers);
54
+ __esDecorate(this, null, _position_decorators, {
55
+ kind: "accessor",
56
+ name: "position",
57
+ static: false,
58
+ private: false,
59
+ access: {
60
+ has: (obj) => "position" in obj,
61
+ get: (obj) => obj.position,
62
+ set: (obj, value) => {
63
+ obj.position = value;
64
+ }
65
+ },
66
+ metadata: _metadata
67
+ }, _position_initializers, _position_extraInitializers);
68
+ __esDecorate(this, null, _politeness_decorators, {
69
+ kind: "accessor",
70
+ name: "politeness",
71
+ static: false,
72
+ private: false,
73
+ access: {
74
+ has: (obj) => "politeness" in obj,
75
+ get: (obj) => obj.politeness,
76
+ set: (obj, value) => {
77
+ obj.politeness = value;
78
+ }
79
+ },
80
+ metadata: _metadata
81
+ }, _politeness_initializers, _politeness_extraInitializers);
82
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, {
83
+ enumerable: true,
84
+ configurable: true,
85
+ writable: true,
86
+ value: _metadata
87
+ });
88
+ }
89
+ static {
90
+ this.elementName = "sbb-toast";
91
+ }
92
+ static {
93
+ this.elementDependencies = [SbbTransparentButtonElement, SbbDividerElement];
94
+ }
95
+ static {
96
+ this.styles = [boxSizingStyles, unsafeCSS(toast_default)];
97
+ }
98
+ #timeout_accessor_storage;
99
+ /**
100
+ * The length of time in milliseconds to wait before automatically dismissing the toast.
101
+ * If 0 (default), it stays open indefinitely.
102
+ * From accessibility perspective, it is recommended to set a timeout of at least 20 seconds.
103
+ */
104
+ get timeout() {
105
+ return this.#timeout_accessor_storage;
106
+ }
107
+ set timeout(value) {
108
+ this.#timeout_accessor_storage = value;
109
+ }
110
+ #position_accessor_storage;
111
+ /** The position where to place the toast. */
112
+ get position() {
113
+ return this.#position_accessor_storage;
114
+ }
115
+ set position(value) {
116
+ this.#position_accessor_storage = value;
117
+ }
118
+ #politeness_accessor_storage;
119
+ /**
120
+ * The ARIA politeness level.
121
+ * Check https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions#live_regions for further info
122
+ */
123
+ get politeness() {
124
+ return this.#politeness_accessor_storage;
125
+ }
126
+ set politeness(value) {
127
+ this.#politeness_accessor_storage = value;
128
+ }
129
+ constructor() {
130
+ super();
131
+ this.#timeout_accessor_storage = __runInitializers(this, _timeout_initializers, 0);
132
+ this.#position_accessor_storage = (__runInitializers(this, _timeout_extraInitializers), __runInitializers(this, _position_initializers, "bottom-center"));
133
+ this.#politeness_accessor_storage = (__runInitializers(this, _position_extraInitializers), __runInitializers(this, _politeness_initializers, "polite"));
134
+ this._closeTimeout = __runInitializers(this, _politeness_extraInitializers);
135
+ this._language = new SbbLanguageController(this);
136
+ this._darkModeController = new SbbDarkModeController(this, () => {
137
+ this._syncSlottedElements();
138
+ this.requestUpdate();
139
+ });
140
+ this.addEventListener?.("click", (e) => this._onClick(e));
141
+ }
142
+ connectedCallback() {
143
+ this.popover = "manual";
144
+ super.connectedCallback();
145
+ toastRefs.add(this);
146
+ }
147
+ disconnectedCallback() {
148
+ super.disconnectedCallback();
149
+ clearTimeout(this._closeTimeout);
150
+ toastRefs.delete(this);
151
+ }
152
+ willUpdate(changedProperties) {
153
+ super.willUpdate(changedProperties);
154
+ if (changedProperties.has("politeness")) this.internals.ariaLive = this.politeness;
155
+ }
156
+ /**
157
+ * Open the toast.
158
+ * If there are other opened toasts in the page, close them first.
159
+ */
160
+ open() {
161
+ if (this.state === "opened" || this.state === "opening" || !this.dispatchBeforeOpenEvent()) return;
162
+ this._closeOtherToasts();
163
+ this.showPopover?.();
164
+ this.state = "opening";
165
+ if (this._isZeroAnimationDuration()) this._handleOpening();
166
+ }
167
+ /**
168
+ * Close the toast.
169
+ */
170
+ close() {
171
+ if (this.state === "closed" || this.state === "closing" || !this.dispatchBeforeCloseEvent()) return;
172
+ clearTimeout(this._closeTimeout);
173
+ this.state = "closing";
174
+ if (this._isZeroAnimationDuration()) this._handleClosing();
175
+ }
176
+ _handleClosing() {
177
+ this.state = "closed";
178
+ this.hidePopover?.();
179
+ this.dispatchCloseEvent();
180
+ }
181
+ _handleOpening() {
182
+ this.state = "opened";
183
+ this.dispatchOpenEvent();
184
+ if (this.timeout) {
185
+ const global = globalThis;
186
+ const setTimeout = global[global.Zone?.__symbol__?.("setTimeout")] ?? global.setTimeout;
187
+ this._closeTimeout = setTimeout(() => this.close(), this.timeout);
188
+ }
189
+ }
190
+ _onClick(event) {
191
+ const closeElement = composedPathHasAttribute(event, "sbb-toast-close", this);
192
+ if (closeElement && !closeElement.hasAttribute("disabled")) this.close();
193
+ }
194
+ _isZeroAnimationDuration() {
195
+ return isZeroAnimationDuration(this, "--sbb-toast-animation-duration");
196
+ }
197
+ /**
198
+ * Slotted text nodes are not read correctly by screen readers on Chrome.
199
+ * To address the problem, if there is at least a root text node,
200
+ * we wrap the whole content in a <span> tag
201
+ */
202
+ _onContentSlotChange(event) {
203
+ const slotNodes = event.target.assignedNodes();
204
+ if (slotNodes.some((el) => el.nodeType === Node.TEXT_NODE)) {
205
+ const span = document.createElement("span");
206
+ this.prepend(span);
207
+ span.append(...slotNodes);
208
+ }
209
+ this._syncSlottedElements();
210
+ }
211
+ _syncSlottedElements() {
212
+ this.querySelectorAll("sbb-transparent-button, sbb-transparent-button-link").forEach((btn) => {
213
+ btn.negative = this._isLightMode();
214
+ });
215
+ this.querySelectorAll("sbb-link, sbb-link-button, sbb-link-static").forEach((link) => {
216
+ link.negative = this._isLightMode();
217
+ });
218
+ }
219
+ _onToastAnimationEnd(event) {
220
+ if (event.animationName === "open" && this.state === "opening") this._handleOpening();
221
+ else if (event.animationName === "close" && this.state === "closing") this._handleClosing();
222
+ }
223
+ /**
224
+ * Since we do not stack toasts, we force the closing on other existing opened ones
225
+ */
226
+ _closeOtherToasts() {
227
+ toastRefs.forEach((t) => {
228
+ if (t.state === "opened" || t.state === "opening") t.close();
229
+ });
230
+ }
231
+ _isLightMode() {
232
+ return !this._darkModeController.matches();
233
+ }
234
+ render() {
235
+ return html`
236
+ <div class="sbb-toast__overlay-container">
237
+ <div class="sbb-toast" @animationend=${this._onToastAnimationEnd}>
238
+ <div class="sbb-toast-wrapper">
239
+ ${this.renderIconSlot()}
240
+ <div class="sbb-toast__content">
241
+ <slot @slotchange=${this._onContentSlotChange}></slot>
242
+ </div>
243
+ <slot name="action" @slotchange=${this._syncSlottedElements}></slot>
244
+ </div>
245
+ <div class="sbb-toast__close">
246
+ <sbb-divider
247
+ class="sbb-toast__close-divider"
248
+ orientation="vertical"
249
+ ?negative=${this._isLightMode()}
250
+ ></sbb-divider>
251
+ ${!this.readOnly ? html`<sbb-transparent-button
252
+ class="sbb-toast__close-button"
253
+ icon-name="cross-small"
254
+ ?negative=${this._isLightMode()}
255
+ aria-label=${i18nCloseAlert[this._language.current]}
256
+ sbb-toast-close
257
+ ></sbb-transparent-button>` : nothing}
258
+ </div>
259
+ </div>
260
+ </div>
261
+ `;
262
+ }
263
+ };
264
+ })();
265
+ //#endregion
266
+ export { SbbToastElement as t };
267
+
268
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LUR2Vlk3enBlLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90b2FzdC90b2FzdC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90b2FzdC90b2FzdC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi10b2FzdC1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTZ4KVxuICApO1xuICAtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yOiB2YXIoLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvci1kYXJrKTtcblxuICBkaXNwbGF5OiBub25lO1xufVxuXG46aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtb3BlbmVkKSwgOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSkge1xuICAtLXNiYi10b2FzdC1jb250YWluZXItZGlzcGxheTogZmxleDtcblxuICBkaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoW3Bvc2l0aW9uPSdib3R0b20tbGVmdCddKSxcbjpob3N0KFtwb3NpdGlvbj0nYm90dG9tLXN0YXJ0J10pIHtcbiAgLS1zYmItdG9hc3QtaG9yaXpvbnRhbC1wb3NpdGlvbjogZmxleC1zdGFydDtcbiAgLS1zYmItdG9hc3QtdmVydGljYWwtcG9zaXRpb246IGZsZXgtZW5kO1xufVxuXG46aG9zdChbcG9zaXRpb249J2JvdHRvbS1jZW50ZXInXSkge1xuICAtLXNiYi10b2FzdC1ob3Jpem9udGFsLXBvc2l0aW9uOiBjZW50ZXI7XG4gIC0tc2JiLXRvYXN0LXZlcnRpY2FsLXBvc2l0aW9uOiBmbGV4LWVuZDtcbn1cblxuOmhvc3QoW3Bvc2l0aW9uPSdib3R0b20tcmlnaHQnXSksXG46aG9zdChbcG9zaXRpb249J2JvdHRvbS1lbmQnXSkge1xuICAtLXNiYi10b2FzdC1ob3Jpem9udGFsLXBvc2l0aW9uOiBmbGV4LWVuZDtcbiAgLS1zYmItdG9hc3QtdmVydGljYWwtcG9zaXRpb246IGZsZXgtZW5kO1xufVxuXG46aG9zdChbcG9zaXRpb249J3RvcC1sZWZ0J10pLFxuOmhvc3QoW3Bvc2l0aW9uPSd0b3Atc3RhcnQnXSkge1xuICAtLXNiYi10b2FzdC1ob3Jpem9udGFsLXBvc2l0aW9uOiBmbGV4LXN0YXJ0O1xuICAtLXNiYi10b2FzdC12ZXJ0aWNhbC1wb3NpdGlvbjogZmxleC1zdGFydDtcbn1cblxuOmhvc3QoW3Bvc2l0aW9uPSd0b3AtY2VudGVyJ10pIHtcbiAgLS1zYmItdG9hc3QtaG9yaXpvbnRhbC1wb3NpdGlvbjogY2VudGVyO1xuICAtLXNiYi10b2FzdC12ZXJ0aWNhbC1wb3NpdGlvbjogZmxleC1zdGFydDtcbn1cblxuOmhvc3QoW3Bvc2l0aW9uPSd0b3AtcmlnaHQnXSksXG46aG9zdChbcG9zaXRpb249J3RvcC1lbmQnXSkge1xuICAtLXNiYi10b2FzdC1ob3Jpem9udGFsLXBvc2l0aW9uOiBmbGV4LWVuZDtcbiAgLS1zYmItdG9hc3QtdmVydGljYWwtcG9zaXRpb246IGZsZXgtc3RhcnQ7XG59XG5cbjpob3N0KDpzdGF0ZShkYXJrKSkge1xuICAtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yOiB2YXIoLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvci1kZWZhdWx0KTtcbn1cblxuLnNiYi10b2FzdF9fb3ZlcmxheS1jb250YWluZXIge1xuICBwb3NpdGlvbjogdmFyKC0tc2JiLXRvYXN0LWNvbnRhaW5lci1wb3NpdGlvbik7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBpbnNldDogMDtcbiAgZGlzcGxheTogdmFyKC0tc2JiLXRvYXN0LWNvbnRhaW5lci1kaXNwbGF5LCBub25lKTtcbiAganVzdGlmeS1jb250ZW50OiB2YXIoLS1zYmItdG9hc3QtaG9yaXpvbnRhbC1wb3NpdGlvbik7XG4gIGFsaWduLWl0ZW1zOiB2YXIoLS1zYmItdG9hc3QtdmVydGljYWwtcG9zaXRpb24pO1xufVxuXG4uc2JiLXRvYXN0IHtcbiAgei1pbmRleDogdmFyKC0tc2JiLXRvYXN0LXotaW5kZXgsIHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCkpO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgbWFyZ2luOiB2YXIoLS1zYmItdG9hc3QtbWFyZ2luKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLXRvYXN0LWJvcmRlci1yYWRpdXMpO1xuICBtYXgtd2lkdGg6IHZhcigtLXNiYi10b2FzdC1tYXgtd2lkdGgpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBjb2xvcjogdmFyKC0tc2JiLXRvYXN0LXRleHQtY29sb3IpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItdG9hc3QtYmFja2dyb3VuZC1jb2xvcik7XG5cbiAgOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5pbmcpKSAmIHtcbiAgICBhbmltYXRpb246IHtcbiAgICAgIG5hbWU6IG9wZW47XG4gICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLXRvYXN0LWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgICB0aW1pbmctZnVuY3Rpb246IHZhcigtLXNiYi10b2FzdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgICB9XG4gIH1cblxuICA6aG9zdCg6c3RhdGUoc3RhdGUtY2xvc2luZykpICYge1xuICAgIGFuaW1hdGlvbjoge1xuICAgICAgbmFtZTogY2xvc2U7XG4gICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLXRvYXN0LWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgICB0aW1pbmctZnVuY3Rpb246IHZhcigtLXNiYi10b2FzdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uKTtcbiAgICB9XG4gIH1cbn1cblxuLnNiYi10b2FzdC13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zYmItdG9hc3QtZ2FwKTtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLXRvYXN0LXBhZGRpbmctYmxvY2spO1xuICBwYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLXRvYXN0LXBhZGRpbmctaW5saW5lKTtcbn1cblxuc2xvdDpub3QoW25hbWU9J2ljb24nXSksXG4uc2JiLXRvYXN0X19jbG9zZSB7XG4gIC8vIEFzIHRoZSBzbG90dGVkIGNvbnRlbnQgaXMgZGlzcGxheWVkIG9uIGEgd2hpdGUgYmFja2dyb3VuZCwgd2UgbmVlZCB0byBmb3JjZSBsaWdodCBtb2RlIGZvciB0aGVtLlxuICBjb2xvci1zY2hlbWU6IG9ubHkgbGlnaHQ7XG59XG5cbi5zYmItdG9hc3RfX2NvbnRlbnQge1xuICBAaW5jbHVkZSBzYmIudGl0bGUtNigkZXhjbHVkZS1zcGFjaW5nOiB0cnVlKTtcblxuICBmbGV4OiAxIDEgMDtcbn1cblxuLnNiYi10b2FzdF9fY2xvc2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uc2JiLXRvYXN0X19jbG9zZS1kaXZpZGVyIHtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLXRvYXN0LXBhZGRpbmctYmxvY2spO1xufVxuXG4uc2JiLXRvYXN0X19jbG9zZS1idXR0b24ge1xuICBtYXJnaW4taW5saW5lOiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXh4eHMpO1xufVxuXG5Aa2V5ZnJhbWVzIG9wZW4ge1xuICBmcm9tIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2xhdGU6IDAgdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMngpO1xuICB9XG5cbiAgdG8ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2xhdGU6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBjbG9zZSB7XG4gIGZyb20ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2xhdGU6IDA7XG4gIH1cblxuICB0byB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNsYXRlOiAwIHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KTtcbiAgfVxufVxuIiwiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgbm90aGluZyxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7XG4gIFNiYlRyYW5zcGFyZW50QnV0dG9uRWxlbWVudCxcbiAgdHlwZSBTYmJUcmFuc3BhcmVudEJ1dHRvbkxpbmtFbGVtZW50LFxufSBmcm9tICcuLi9idXR0b24ucHVyZS50cyc7XG5pbXBvcnQge1xuICBib3hTaXppbmdTdHlsZXMsXG4gIGNvbXBvc2VkUGF0aEhhc0F0dHJpYnV0ZSxcbiAgZm9yY2VUeXBlLFxuICBpMThuQ2xvc2VBbGVydCxcbiAgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24sXG4gIFNiYkRhcmtNb2RlQ29udHJvbGxlcixcbiAgdHlwZSBTYmJFbGVtZW50VHlwZSxcbiAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLFxuICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCxcbiAgU2JiUmVhZG9ubHlNaXhpbixcbn0gZnJvbSAnLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJEaXZpZGVyRWxlbWVudCB9IGZyb20gJy4uL2RpdmlkZXIucHVyZS50cyc7XG5pbXBvcnQgeyBTYmJJY29uTmFtZU1peGluIH0gZnJvbSAnLi4vaWNvbi5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiTGlua0J1dHRvbkVsZW1lbnQsIFNiYkxpbmtFbGVtZW50LCBTYmJMaW5rU3RhdGljRWxlbWVudCB9IGZyb20gJy4uL2xpbmsucHVyZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RvYXN0LnNjc3M/aW5saW5lJztcblxudHlwZSBTYmJUb2FzdFBvc2l0aW9uVmVydGljYWwgPSAndG9wJyB8ICdib3R0b20nO1xudHlwZSBTYmJUb2FzdFBvc2l0aW9uSG9yaXpvbnRhbCA9ICdsZWZ0JyB8ICdzdGFydCcgfCAnY2VudGVyJyB8ICdyaWdodCcgfCAnZW5kJztcbmV4cG9ydCB0eXBlIFNiYlRvYXN0UG9zaXRpb24gPSBgJHtTYmJUb2FzdFBvc2l0aW9uVmVydGljYWx9LSR7U2JiVG9hc3RQb3NpdGlvbkhvcml6b250YWx9YDtcblxuLy8gQSBnbG9iYWwgY29sbGVjdGlvbiBvZiBleGlzdGluZyB0b2FzdHNcbmNvbnN0IHRvYXN0UmVmcyA9IG5ldyBTZXQ8U2JiVG9hc3RFbGVtZW50PigpO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgdG9hc3Qgbm90aWZpY2F0aW9uLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIGBzYmItdG9hc3RgLlxuICogQHNsb3QgaWNvbiAtIEFzc2lnbiBhIGN1c3RvbSBpY29uIHZpYSBzbG90LlxuICogQHNsb3QgYWN0aW9uIC0gUHJvdmlkZSBhIGN1c3RvbSBhY3Rpb24gZm9yIHRoaXMgdG9hc3QuXG4gKiBAY3NzcHJvcCBbLS1zYmItdG9hc3Qtei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICovXG5leHBvcnQgY2xhc3MgU2JiVG9hc3RFbGVtZW50IGV4dGVuZHMgU2JiSWNvbk5hbWVNaXhpbihTYmJSZWFkb25seU1peGluKFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50KSkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXRvYXN0JztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBlbGVtZW50RGVwZW5kZW5jaWVzOiBTYmJFbGVtZW50VHlwZVtdID0gW1xuICAgIFNiYlRyYW5zcGFyZW50QnV0dG9uRWxlbWVudCxcbiAgICBTYmJEaXZpZGVyRWxlbWVudCxcbiAgXTtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgLyoqXG4gICAqIFRoZSBsZW5ndGggb2YgdGltZSBpbiBtaWxsaXNlY29uZHMgdG8gd2FpdCBiZWZvcmUgYXV0b21hdGljYWxseSBkaXNtaXNzaW5nIHRoZSB0b2FzdC5cbiAgICogSWYgMCAoZGVmYXVsdCksIGl0IHN0YXlzIG9wZW4gaW5kZWZpbml0ZWx5LlxuICAgKiBGcm9tIGFjY2Vzc2liaWxpdHkgcGVyc3BlY3RpdmUsIGl0IGlzIHJlY29tbWVuZGVkIHRvIHNldCBhIHRpbWVvdXQgb2YgYXQgbGVhc3QgMjAgc2Vjb25kcy5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIHRpbWVvdXQ6IG51bWJlciA9IDA7XG5cbiAgLyoqIFRoZSBwb3NpdGlvbiB3aGVyZSB0byBwbGFjZSB0aGUgdG9hc3QuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHBvc2l0aW9uOiBTYmJUb2FzdFBvc2l0aW9uID0gJ2JvdHRvbS1jZW50ZXInO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJJQSBwb2xpdGVuZXNzIGxldmVsLlxuICAgKiBDaGVjayBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BY2Nlc3NpYmlsaXR5L0FSSUEvQVJJQV9MaXZlX1JlZ2lvbnMjbGl2ZV9yZWdpb25zIGZvciBmdXJ0aGVyIGluZm9cbiAgICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyBhY2Nlc3NvciBwb2xpdGVuZXNzOiAncG9saXRlJyB8ICdhc3NlcnRpdmUnIHwgJ29mZicgPSAncG9saXRlJztcblxuICBwcml2YXRlIF9jbG9zZVRpbWVvdXQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9kYXJrTW9kZUNvbnRyb2xsZXIgPSBuZXcgU2JiRGFya01vZGVDb250cm9sbGVyKHRoaXMsICgpID0+IHtcbiAgICB0aGlzLl9zeW5jU2xvdHRlZEVsZW1lbnRzKCk7XG4gICAgdGhpcy5yZXF1ZXN0VXBkYXRlKCk7XG4gIH0pO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjbGljaycsIChlKSA9PiB0aGlzLl9vbkNsaWNrKGUpKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLnBvcG92ZXIgPSAnbWFudWFsJztcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgLy8gQWRkIHRoaXMgdG9hc3QgdG8gdGhlIGdsb2JhbCBjb2xsZWN0aW9uXG4gICAgdG9hc3RSZWZzLmFkZCh0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIGNsZWFyVGltZW91dCh0aGlzLl9jbG9zZVRpbWVvdXQpO1xuXG4gICAgLy8gUmVtb3ZlIHRoaXMgaW5zdGFuY2VcbiAgICB0b2FzdFJlZnMuZGVsZXRlKHRoaXMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdwb2xpdGVuZXNzJykpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFMaXZlID0gdGhpcy5wb2xpdGVuZXNzO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVuIHRoZSB0b2FzdC5cbiAgICogSWYgdGhlcmUgYXJlIG90aGVyIG9wZW5lZCB0b2FzdHMgaW4gdGhlIHBhZ2UsIGNsb3NlIHRoZW0gZmlyc3QuXG4gICAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ29wZW5lZCcgfHwgdGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnIHx8ICF0aGlzLmRpc3BhdGNoQmVmb3JlT3BlbkV2ZW50KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9jbG9zZU90aGVyVG9hc3RzKCk7XG4gICAgdGhpcy5zaG93UG9wb3Zlcj8uKCk7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuaW5nJztcblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBvcGVuZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlIHRoZSB0b2FzdC5cbiAgICovXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ2Nsb3NlZCcgfHwgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnIHx8ICF0aGlzLmRpc3BhdGNoQmVmb3JlQ2xvc2VFdmVudCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX2Nsb3NlVGltZW91dCk7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBjbG9zZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xvc2luZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgdGhpcy5oaWRlUG9wb3Zlcj8uKCk7XG4gICAgdGhpcy5kaXNwYXRjaENsb3NlRXZlbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIHRoaXMuZGlzcGF0Y2hPcGVuRXZlbnQoKTtcblxuICAgIC8vIFN0YXJ0IHRoZSBjb3VudGRvd24gdG8gY2xvc2UgaXRcbiAgICBpZiAodGhpcy50aW1lb3V0KSB7XG4gICAgICAvLyBXb3JrYXJvdW5kIGZvciBodHRwczovL2dpdGh1Yi5jb20vc2JiLWRlc2lnbi1zeXN0ZW1zL2x5bmUtYW5ndWxhci9pc3N1ZXMvMTkwXG4gICAgICAvLyBJZiB6b25lLmpzIGlzIGxvYWRlZCwgc2V0VGltZW91dCBpcyB3cmFwcGVkIGFuZCB0cmFja2VkIHdoaWNoIHdpbGwgbWFya1xuICAgICAgLy8gYW55dGhpbmcgaW4gQW5ndWxhciBhcyB1bnN0YWJsZSBhcyBsb25nIGFzIHNldFRpbWVvdXQgaXMgbm90IGZpbmlzaGVkLlxuICAgICAgLy8gVGhpcyBvbmx5IG5lZWRzIHRvIGJlIGZpeGVkIGluIHBsYWNlcyB3aGVyZSB3ZSBhY3R1YWxseSB3YW50IHRvIHdhaXQgYVxuICAgICAgLy8gc3BlY2lmaWMgYW1vdW50IG9mIHRpbWUgd2l0aG91dCBhbiBpbnRlcmFjdGlvbiAoZS5nLiBmb3IgdGhpcyBjYXNlKS5cbiAgICAgIGNvbnN0IGdsb2JhbCA9IGdsb2JhbFRoaXMgYXMgYW55O1xuICAgICAgY29uc3Qgc2V0VGltZW91dDogdHlwZW9mIGdsb2JhbFRoaXMuc2V0VGltZW91dCA9XG4gICAgICAgIGdsb2JhbFtnbG9iYWwuWm9uZT8uX19zeW1ib2xfXz8uKCdzZXRUaW1lb3V0JykgYXMgc3RyaW5nXSA/PyBnbG9iYWwuc2V0VGltZW91dDtcblxuICAgICAgdGhpcy5fY2xvc2VUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLmNsb3NlKCksIHRoaXMudGltZW91dCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2xvc2UgdGhlIHRvYXN0IG9uIGNsaWNrIG9mIGFueSBlbGVtZW50IHRoYXQgaGFzIHRoZSAnc2JiLXRvYXN0LWNsb3NlJyBhdHRyaWJ1dGUuXG4gIHByaXZhdGUgX29uQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgY2xvc2VFbGVtZW50ID0gY29tcG9zZWRQYXRoSGFzQXR0cmlidXRlKGV2ZW50LCAnc2JiLXRvYXN0LWNsb3NlJywgdGhpcyk7XG5cbiAgICBpZiAoY2xvc2VFbGVtZW50ICYmICFjbG9zZUVsZW1lbnQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKHRoaXMsICctLXNiYi10b2FzdC1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTbG90dGVkIHRleHQgbm9kZXMgYXJlIG5vdCByZWFkIGNvcnJlY3RseSBieSBzY3JlZW4gcmVhZGVycyBvbiBDaHJvbWUuXG4gICAqIFRvIGFkZHJlc3MgdGhlIHByb2JsZW0sIGlmIHRoZXJlIGlzIGF0IGxlYXN0IGEgcm9vdCB0ZXh0IG5vZGUsXG4gICAqIHdlIHdyYXAgdGhlIHdob2xlIGNvbnRlbnQgaW4gYSA8c3Bhbj4gdGFnXG4gICAqL1xuICBwcml2YXRlIF9vbkNvbnRlbnRTbG90Q2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHNsb3ROb2RlcyA9IChldmVudC50YXJnZXQgYXMgSFRNTFNsb3RFbGVtZW50KS5hc3NpZ25lZE5vZGVzKCk7XG5cbiAgICBpZiAoc2xvdE5vZGVzLnNvbWUoKGVsKSA9PiBlbC5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpKSB7XG4gICAgICBjb25zdCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgdGhpcy5wcmVwZW5kKHNwYW4pO1xuICAgICAgc3Bhbi5hcHBlbmQoLi4uc2xvdE5vZGVzKTtcbiAgICB9XG4gICAgdGhpcy5fc3luY1Nsb3R0ZWRFbGVtZW50cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3luY1Nsb3R0ZWRFbGVtZW50cygpOiB2b2lkIHtcbiAgICAvLyBGb3JjZSB0aGUgdmlzdWFsIHN0YXRlIG9uIHNsb3R0ZWQgYnV0dG9uc1xuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbDxTYmJUcmFuc3BhcmVudEJ1dHRvbkVsZW1lbnQgfCBTYmJUcmFuc3BhcmVudEJ1dHRvbkxpbmtFbGVtZW50PihcbiAgICAgICdzYmItdHJhbnNwYXJlbnQtYnV0dG9uLCBzYmItdHJhbnNwYXJlbnQtYnV0dG9uLWxpbmsnLFxuICAgICkuZm9yRWFjaCgoYnRuKSA9PiB7XG4gICAgICBidG4ubmVnYXRpdmUgPSB0aGlzLl9pc0xpZ2h0TW9kZSgpO1xuICAgIH0pO1xuXG4gICAgLy8gRm9yY2UgbmVnYXRpdmUgb24gc2xvdHRlZCBsaW5rc1xuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbDxTYmJMaW5rRWxlbWVudCB8IFNiYkxpbmtCdXR0b25FbGVtZW50IHwgU2JiTGlua1N0YXRpY0VsZW1lbnQ+KFxuICAgICAgJ3NiYi1saW5rLCBzYmItbGluay1idXR0b24sIHNiYi1saW5rLXN0YXRpYycsXG4gICAgKS5mb3JFYWNoKChsaW5rKSA9PiB7XG4gICAgICBsaW5rLm5lZ2F0aXZlID0gdGhpcy5faXNMaWdodE1vZGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEluIHJhcmUgY2FzZXMgaXQgY2FuIGJlIHRoYXQgdGhlIGFuaW1hdGlvbkVuZCBldmVudCBpcyB0cmlnZ2VyZWQgdHdpY2UuXG4gIC8vIFRvIGF2b2lkIGVudGVyaW5nIGEgY29ycnVwdCBzdGF0ZSwgZXhpdCB3aGVuIHN0YXRlIGlzIG5vdCBleHBlY3RlZC5cbiAgcHJpdmF0ZSBfb25Ub2FzdEFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBPbiB0b2FzdCBvcGVuZWRcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4nICYmIHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2luY2Ugd2UgZG8gbm90IHN0YWNrIHRvYXN0cywgd2UgZm9yY2UgdGhlIGNsb3Npbmcgb24gb3RoZXIgZXhpc3Rpbmcgb3BlbmVkIG9uZXNcbiAgICovXG4gIHByaXZhdGUgX2Nsb3NlT3RoZXJUb2FzdHMoKTogdm9pZCB7XG4gICAgdG9hc3RSZWZzLmZvckVhY2goKHQpID0+IHtcbiAgICAgIGlmICh0LnN0YXRlID09PSAnb3BlbmVkJyB8fCB0LnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgICAgdC5jbG9zZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNMaWdodE1vZGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLl9kYXJrTW9kZUNvbnRyb2xsZXIubWF0Y2hlcygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXRvYXN0X19vdmVybGF5LWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXRvYXN0XCIgQGFuaW1hdGlvbmVuZD0ke3RoaXMuX29uVG9hc3RBbmltYXRpb25FbmR9PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItdG9hc3Qtd3JhcHBlclwiPlxuICAgICAgICAgICAgJHt0aGlzLnJlbmRlckljb25TbG90KCl9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXRvYXN0X19jb250ZW50XCI+XG4gICAgICAgICAgICAgIDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5fb25Db250ZW50U2xvdENoYW5nZX0+PC9zbG90PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8c2xvdCBuYW1lPVwiYWN0aW9uXCIgQHNsb3RjaGFuZ2U9JHt0aGlzLl9zeW5jU2xvdHRlZEVsZW1lbnRzfT48L3Nsb3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi10b2FzdF9fY2xvc2VcIj5cbiAgICAgICAgICAgIDxzYmItZGl2aWRlclxuICAgICAgICAgICAgICBjbGFzcz1cInNiYi10b2FzdF9fY2xvc2UtZGl2aWRlclwiXG4gICAgICAgICAgICAgIG9yaWVudGF0aW9uPVwidmVydGljYWxcIlxuICAgICAgICAgICAgICA/bmVnYXRpdmU9JHt0aGlzLl9pc0xpZ2h0TW9kZSgpfVxuICAgICAgICAgICAgPjwvc2JiLWRpdmlkZXI+XG4gICAgICAgICAgICAkeyF0aGlzLnJlYWRPbmx5XG4gICAgICAgICAgICAgID8gaHRtbGA8c2JiLXRyYW5zcGFyZW50LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItdG9hc3RfX2Nsb3NlLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBpY29uLW5hbWU9XCJjcm9zcy1zbWFsbFwiXG4gICAgICAgICAgICAgICAgICA/bmVnYXRpdmU9JHt0aGlzLl9pc0xpZ2h0TW9kZSgpfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD0ke2kxOG5DbG9zZUFsZXJ0W3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICAgICAgICAgICAgc2JiLXRvYXN0LWNsb3NlXG4gICAgICAgICAgICAgICAgPjwvc2JiLXRyYW5zcGFyZW50LWJ1dHRvbj5gXG4gICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItdG9hc3QnOiBTYmJUb2FzdEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUNxQ0EsSUFBTSw0QkFBWSxJQUFJLEtBQXNCOzs7Ozs7Ozs7OztJQVkvQix5QkFBZTttQkFBUyxpQkFBaUIsaUJBQWlCLHdCQUF3QixDQUFDOzs7Ozs7Ozs7O2NBQW5GLHdCQUF3QixZQUEyRDs7OzBCQWE3RixXQUFXLEVBQ1gsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFDLENBQUE7MkJBSTFCLFNBQVMsRUFBRSxTQUFTLE1BQU0sQ0FBQyxDQUFBOzZCQU0zQixVQUFVLENBQUE7QUFUWCxnQkFBQSxNQUFBLE1BQUEscUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxhQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQU8sTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFQLFVBQU87O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSx1QkFBQSwyQkFBQTtBQUdNLGdCQUFBLE1BQUEsTUFBQSxzQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLGNBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBUSxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVIsV0FBUTs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLHdCQUFBLDRCQUFBO0FBTXpDLGdCQUFBLE1BQUEsTUFBQSx3QkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLGdCQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQVUsTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFWLGFBQVU7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSwwQkFBQSw4QkFBQTs7Ozs7Ozs7O0FBdkJOLFFBQUEsY0FBc0I7OztBQUMvQixRQUFBLHNCQUF3QyxDQUM3RCw2QkFDQSxrQkFDRDs7O0FBQ3NCLFFBQUEsU0FBeUIsQ0FBQyxpQkFBaUIsVUFBVSxjQUFNLENBQUM7O0VBU25GOzs7Ozs7RUFBQSxJQUFnQixVQUFPO0FBQUEsVUFBQSxNQUFBOztFQUF2QixJQUFnQixRQUFPLE9BQUE7QUFBQSxTQUFBLDJCQUFBOztFQUdNOztFQUFBLElBQWdCLFdBQVE7QUFBQSxVQUFBLE1BQUE7O0VBQXhCLElBQWdCLFNBQVEsT0FBQTtBQUFBLFNBQUEsNEJBQUE7O0VBTXpDOzs7OztFQUFBLElBQWdCLGFBQVU7QUFBQSxVQUFBLE1BQUE7O0VBQTFCLElBQWdCLFdBQVUsT0FBQTtBQUFBLFNBQUEsOEJBQUE7O0VBU3RDLGNBQUE7QUFDRSxVQUFPO0FBbkJPLFNBQUEsMkJBQUEsa0JBQUEsTUFBQSx1QkFBa0IsRUFBQztBQUdVLFNBQUEsNkJBQUEsa0JBQUEsTUFBQSwyQkFBQSxFQUFBLGtCQUFBLE1BQUEsd0JBQTZCLGdCQUFlO0FBTTdELFNBQUEsK0JBQUEsa0JBQUEsTUFBQSw0QkFBQSxFQUFBLGtCQUFBLE1BQUEsMEJBQTZDLFNBQVE7QUFFekUsUUFBQSxnQkFBYSxrQkFBQSxNQUFBLDhCQUFBO0FBQ2IsUUFBQSxZQUFZLElBQUksc0JBQXNCLEtBQUs7QUFDM0MsUUFBQSxzQkFBc0IsSUFBSSxzQkFBc0IsWUFBVztBQUNqRSxTQUFLLHNCQUFzQjtBQUMzQixTQUFLLGVBQWU7S0FDcEI7QUFJQSxRQUFLLG1CQUFtQixVQUFVLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQzs7RUFHM0Msb0JBQWlCO0FBQy9CLFFBQUssVUFBVTtBQUNmLFNBQU0sbUJBQW1CO0FBR3pCLGFBQVUsSUFBSSxLQUFLOztFQUdMLHVCQUFvQjtBQUNsQyxTQUFNLHNCQUFzQjtBQUM1QixnQkFBYSxLQUFLLGNBQWM7QUFHaEMsYUFBVSxPQUFPLEtBQUs7O0VBR0wsV0FBVyxtQkFBdUM7QUFDbkUsU0FBTSxXQUFXLGtCQUFrQjtBQUVuQyxPQUFJLGtCQUFrQixJQUFJLGFBQWEsQ0FDckMsTUFBSyxVQUFVLFdBQVcsS0FBSzs7Ozs7O0VBUTVCLE9BQUk7QUFDVCxPQUFJLEtBQUssVUFBVSxZQUFZLEtBQUssVUFBVSxhQUFhLENBQUMsS0FBSyx5QkFBeUIsQ0FDeEY7QUFHRixRQUFLLG1CQUFtQjtBQUN4QixRQUFLLGVBQWU7QUFDcEIsUUFBSyxRQUFRO0FBSWIsT0FBSSxLQUFLLDBCQUEwQixDQUNqQyxNQUFLLGdCQUFnQjs7Ozs7RUFPbEIsUUFBSztBQUNWLE9BQUksS0FBSyxVQUFVLFlBQVksS0FBSyxVQUFVLGFBQWEsQ0FBQyxLQUFLLDBCQUEwQixDQUN6RjtBQUdGLGdCQUFhLEtBQUssY0FBYztBQUNoQyxRQUFLLFFBQVE7QUFJYixPQUFJLEtBQUssMEJBQTBCLENBQ2pDLE1BQUssZ0JBQWdCOztFQUlqQixpQkFBYztBQUNwQixRQUFLLFFBQVE7QUFDYixRQUFLLGVBQWU7QUFDcEIsUUFBSyxvQkFBb0I7O0VBR25CLGlCQUFjO0FBQ3BCLFFBQUssUUFBUTtBQUNiLFFBQUssbUJBQW1CO0FBR3hCLE9BQUksS0FBSyxTQUFTO0lBTWhCLE1BQU0sU0FBUztJQUNmLE1BQU0sYUFDSixPQUFPLE9BQU8sTUFBTSxhQUFhLGFBQXVCLEtBQUssT0FBTztBQUV0RSxTQUFLLGdCQUFnQixpQkFBaUIsS0FBSyxPQUFPLEVBQUUsS0FBSyxRQUFROzs7RUFLN0QsU0FBUyxPQUFZO0dBQzNCLE1BQU0sZUFBZSx5QkFBeUIsT0FBTyxtQkFBbUIsS0FBSztBQUU3RSxPQUFJLGdCQUFnQixDQUFDLGFBQWEsYUFBYSxXQUFXLENBQ3hELE1BQUssT0FBTzs7RUFJUiwyQkFBd0I7QUFDOUIsVUFBTyx3QkFBd0IsTUFBTSxpQ0FBaUM7Ozs7Ozs7RUFRaEUscUJBQXFCLE9BQVk7R0FDdkMsTUFBTSxZQUFhLE1BQU0sT0FBMkIsZUFBZTtBQUVuRSxPQUFJLFVBQVUsTUFBTSxPQUFPLEdBQUcsYUFBYSxLQUFLLFVBQVUsRUFBRTtJQUMxRCxNQUFNLE9BQU8sU0FBUyxjQUFjLE9BQU87QUFDM0MsU0FBSyxRQUFRLEtBQUs7QUFDbEIsU0FBSyxPQUFPLEdBQUcsVUFBVTs7QUFFM0IsUUFBSyxzQkFBc0I7O0VBR3JCLHVCQUFvQjtBQUUxQixRQUFLLGlCQUNILHNEQUNELENBQUMsU0FBUyxRQUFPO0FBQ2hCLFFBQUksV0FBVyxLQUFLLGNBQWM7S0FDbEM7QUFHRixRQUFLLGlCQUNILDZDQUNELENBQUMsU0FBUyxTQUFRO0FBQ2pCLFNBQUssV0FBVyxLQUFLLGNBQWM7S0FDbkM7O0VBS0kscUJBQXFCLE9BQXFCO0FBRWhELE9BQUksTUFBTSxrQkFBa0IsVUFBVSxLQUFLLFVBQVUsVUFDbkQsTUFBSyxnQkFBZ0I7WUFDWixNQUFNLGtCQUFrQixXQUFXLEtBQUssVUFBVSxVQUMzRCxNQUFLLGdCQUFnQjs7Ozs7RUFPakIsb0JBQWlCO0FBQ3ZCLGFBQVUsU0FBUyxNQUFLO0FBQ3RCLFFBQUksRUFBRSxVQUFVLFlBQVksRUFBRSxVQUFVLFVBQ3RDLEdBQUUsT0FBTztLQUVYOztFQUdJLGVBQVk7QUFDbEIsVUFBTyxDQUFDLEtBQUssb0JBQW9CLFNBQVM7O0VBR3pCLFNBQU07QUFDdkIsVUFBTyxJQUFJOzsrQ0FFZ0MsS0FBSyxxQkFBb0I7O2NBRTFELEtBQUssZ0JBQWdCLENBQUE7O2tDQUVELEtBQUsscUJBQW9COzs4Q0FFYixLQUFLLHFCQUFvQjs7Ozs7OzBCQU03QyxLQUFLLGNBQWMsQ0FBQTs7Y0FFL0IsQ0FBQyxLQUFLLFdBQ0osSUFBSTs7OzhCQUdVLEtBQUssY0FBYyxDQUFBOytCQUNsQixlQUFlLEtBQUssVUFBVSxTQUFBOzs4Q0FHN0MsUUFBQSJ9
@@ -1,4 +1,4 @@
1
- import { t as SbbToastElement } from "./toast.component-D1M3OYxv.js";
1
+ import { t as SbbToastElement } from "./toast.component-DvVY7zpe.js";
2
2
  import "./toast.pure.js";
3
3
  //#region src/elements/toast.ts
4
4
  /** @entrypoint */
@@ -1,2 +1,2 @@
1
- import { t as SbbToastElement } from "./toast.component-D1M3OYxv.js";
1
+ import { t as SbbToastElement } from "./toast.component-DvVY7zpe.js";
2
2
  export { SbbToastElement };
@@ -2033,6 +2033,18 @@ slot[name=error]::slotted(*) {
2033
2033
  --sbb-overlay-position-try-fallbacks:
2034
2034
  block-start span-inline-end, block-start span-inline-start, block-end,
2035
2035
  block-end span-inline-end, block-end span-inline-start;
2036
+ --sbb-toast-max-width: 25rem;
2037
+ --sbb-toast-animation-timing-function: ease;
2038
+ --sbb-toast-text-color: var(--sbb-color-3-inverted);
2039
+ --sbb-toast-background-color: var(--sbb-background-color-1-inverted);
2040
+ --sbb-toast-margin: var(--sbb-spacing-responsive-s);
2041
+ --sbb-toast-padding-block: var(--sbb-spacing-responsive-xxxs);
2042
+ --sbb-toast-padding-inline: var(--sbb-spacing-responsive-xs);
2043
+ --sbb-toast-border-radius: var(--sbb-border-radius-4x);
2044
+ --sbb-toast-container-position: fixed;
2045
+ --sbb-toast-horizontal-position: initial;
2046
+ --sbb-toast-vertical-position: initial;
2047
+ --sbb-toast-gap: var(--sbb-spacing-fixed-2x);
2036
2048
  --sbb-visual-checkbox-dimension: var(--sbb-checkbox-dimension-m);
2037
2049
  --sbb-visual-checkbox-selection-color: var(--sbb-color-primary);
2038
2050
  --sbb-visual-checkbox-selection-color-negative: var(--sbb-color-primary85);
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@sbb-esta/lyne-elements-dev",
3
- "version": "5.0.0-next-dev.1777279279",
3
+ "version": "5.0.0-next-dev.1777284499",
4
4
  "description": "Lyne Design System",
5
5
  "keywords": [
6
6
  "design system",
7
7
  "web components",
8
8
  "lit",
9
- "https://github.com/sbb-design-systems/lyne-components/commit/d9a26893276803d7f6a1cfe109c4f2b3c4248aca"
9
+ "https://github.com/sbb-design-systems/lyne-components/commit/f604ff49705e28595a914ee9d1a09974aa5aada9"
10
10
  ],
11
11
  "type": "module",
12
12
  "exports": {
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "../popover.component-nn2NRFOs.js";
1
+ import { n as e, t } from "../popover.component-BkhmysoH.js";
2
2
  export { t as SbbPopoverBaseElement, e as SbbPopoverElement };
@@ -3,13 +3,17 @@ import { html as n, isServer as r, nothing as i, unsafeCSS as a } from "lit";
3
3
  import { property as o } from "lit/decorators.js";
4
4
  import { IS_FOCUSABLE_QUERY as s, SbbEscapableOverlayController as c, SbbFocusTrapController as l, SbbLanguageController as u, SbbMediaQueryPointerCoarse as d, SbbOpenCloseBaseElement as f, boxSizingStyles as p, composedPathHasAttribute as m, forceType as h, getElementPosition as g, i18nClosePopover as _, idReference as v, isEventOnElement as y, isFakeMousedownFromScreenReader as b, isZeroAnimationDuration as x, readConfig as S, removeAriaOverlayTriggerProperties as C, sbbInputModalityDetector as w, setAriaOverlayTriggerProperties as T, ɵstateController as E } from "./core.js";
5
5
  import { SbbSecondaryButtonElement as D } from "./button.pure.js";
6
- import { ref as O } from "lit/directives/ref.js";
6
+ import { ResizeController as O } from "@lit-labs/observers/resize-controller.js";
7
+ import { ref as k } from "lit/directives/ref.js";
7
8
  //#region src/elements/popover/popover.scss?inline
8
- var k = ":host{--sbb-focus-outline-color: var(--sbb-focus-outline-color-default);--sbb-focus-outline-color: light-dark( var(--sbb-focus-outline-color-default), var(--sbb-focus-outline-color-dark) );--sbb-popover-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-4x) );--_sbb-popover-inset: 0 auto auto 0;--_sbb-popover-transform: translateY(var(--sbb-spacing-fixed-2x));--_sbb-popover-box-shadow: var(--sbb-box-shadow-level-9-hard);outline:none!important;display: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-popover-inset: 0;display:block}:host(:is(:state(position-above),[state--position-above])){--_sbb-popover-transform: translateY(calc(var(--sbb-spacing-fixed-2x) * -1))}:host(:not([hide-close-button],:is(:state(hover-trigger),[state--hover-trigger]))){--sbb-popover-min-height: calc(var(--sbb-size-element-xs) + 2 * var(--sbb-popover-padding))}.sbb-popover:after,.sbb-popover__content:before{content:\"\";position:absolute;display:block;width:var(--sbb-popover-arrow-size);height:var(--sbb-popover-arrow-size);left:var(--_sbb-popover-arrow-position-x, 0);bottom:calc(100% - var(--sbb-popover-arrow-size) / 2);background-color:var(--sbb-popover-background);border-radius:var(--sbb-border-radius-2x) 0;transform:rotate(45deg)}.sbb-popover__container{position:fixed;inset:var(--_sbb-popover-inset);pointer-events:none;z-index:var(--sbb-popover-z-index, var(--sbb-overlay-default-z-index))}.sbb-popover{display:none;position:var(--sbb-popover-position, absolute);top:var(--_sbb-popover-position-y, 0);bottom:unset;left:var(--_sbb-popover-position-x, 0);right:unset;background-color:var(--sbb-popover-background);max-width:var(--sbb-popover-max-width);width:max-content;padding:0;box-shadow:var(--_sbb-popover-box-shadow);border:none;border-radius:var(--sbb-popover-border-radius);outline:none;pointer-events:all}:host(:focus-visible) .sbb-popover{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width)}:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]),:is(:state(state-closing),[state--state-closing]))) .sbb-popover{display:block;animation-name:open;animation-duration:var(--sbb-popover-animation-duration);animation-timing-function:var(--sbb-popover-animation-easing)}:host(:is(:state(state-closing),[state--state-closing])) .sbb-popover{pointer-events:none;animation-name:close;animation-duration:var(--sbb-popover-animation-duration);animation-timing-function:var(--sbb-popover-animation-easing)}.sbb-popover:after{z-index:-1;box-shadow:var(--_sbb-popover-box-shadow)}@media(forced-colors:active){.sbb-popover:after{outline:var(--sbb-border-width-1x) solid CanvasText}}:host(:is(:state(position-above),[state--position-above])) .sbb-popover:after{top:calc(100% - var(--sbb-popover-arrow-size) / 2)}@media(forced-colors:active){.sbb-popover{outline:var(--sbb-border-width-1x) solid CanvasText}}.sbb-popover:before{content:\"\";display:block;position:absolute;inset:0;z-index:-1;background-color:transparent}:host(:is(:state(position-below),[state--position-below])) .sbb-popover:before{inset-block-start:calc(-1 * var(--sbb-spacing-fixed-6x))}:host(:is(:state(position-above),[state--position-above])) .sbb-popover:before{inset-block-end:calc(-1 * var(--sbb-spacing-fixed-6x))}.sbb-popover__content{display:flex;gap:var(--sbb-spacing-fixed-4x);border-radius:var(--sbb-popover-border-radius);padding-block:var(--sbb-popover-padding) 0;padding-inline:var(--sbb-popover-padding);outline:none;background-color:var(--sbb-popover-background);flex-direction:row-reverse;min-height:var(--sbb-popover-min-height)}:host(:is(:state(position-above),[state--position-above])) .sbb-popover__content:before{top:calc(100% - var(--sbb-popover-arrow-size) / 2)}.sbb-popover__scrollable-content{--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-black) 30%, transparent);--sbb-scrollbar-color: light-dark( color-mix(in srgb, var(--sbb-color-black) 30%, transparent), color-mix(in srgb, var(--sbb-color-white) 30%, transparent) );--sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-black) 60%, transparent);--sbb-scrollbar-color-hover: light-dark( color-mix(in srgb, var(--sbb-color-black) 60%, transparent), color-mix(in srgb, var(--sbb-color-white) 60%, transparent) );--sbb-scrollbar-track-color: transparent}.sbb-popover__scrollable-content::-webkit-scrollbar{width:var(--sbb-scrollbar-width);height:var(--sbb-scrollbar-width);background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-popover__scrollable-content::-webkit-scrollbar-corner{background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-popover__scrollable-content::-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-popover__scrollable-content::-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-popover__scrollable-content::-webkit-scrollbar-button,.sbb-popover__scrollable-content::-webkit-scrollbar-corner{display:none}@supports not selector(::-webkit-scrollbar){.sbb-popover__scrollable-content{scrollbar-width:var(--sbb-scrollbar-width-firefox);scrollbar-color:var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent)}}.sbb-popover__scrollable-content{display:block;padding-block-end:var(--sbb-popover-padding);max-height:calc(var(--_sbb-popover-max-height));overflow:auto}@keyframes open{0%{opacity:0;transform:var(--_sbb-popover-transform)}to{opacity:1;transform:translateY(0)}}@keyframes close{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:var(--_sbb-popover-transform)}}", A = 16, j = 32, M = /* @__PURE__ */ new Set(), N = r ? !1 : matchMedia(d).matches, P = (() => {
9
+ var A = ":host{--sbb-focus-outline-color: var(--sbb-focus-outline-color-default);--sbb-focus-outline-color: light-dark( var(--sbb-focus-outline-color-default), var(--sbb-focus-outline-color-dark) );--sbb-popover-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-4x) );--_sbb-popover-inset: 0 auto auto 0;--_sbb-popover-transform: translateY(var(--sbb-spacing-fixed-2x));--_sbb-popover-box-shadow: var(--sbb-box-shadow-level-9-hard);outline:none!important;display: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-popover-inset: 0;display:block}:host(:is(:state(position-above),[state--position-above])){--_sbb-popover-transform: translateY(calc(var(--sbb-spacing-fixed-2x) * -1))}:host(:not([hide-close-button],:is(:state(hover-trigger),[state--hover-trigger]))){--sbb-popover-min-height: calc(var(--sbb-size-element-xs) + 2 * var(--sbb-popover-padding))}.sbb-popover:after,.sbb-popover__content:before{content:\"\";position:absolute;display:block;width:var(--sbb-popover-arrow-size);height:var(--sbb-popover-arrow-size);left:var(--_sbb-popover-arrow-position-x, 0);bottom:calc(100% - var(--sbb-popover-arrow-size) / 2);background-color:var(--sbb-popover-background);border-radius:var(--sbb-border-radius-2x) 0;transform:rotate(45deg)}.sbb-popover__container{position:fixed;inset:var(--_sbb-popover-inset);pointer-events:none;z-index:var(--sbb-popover-z-index, var(--sbb-overlay-default-z-index))}.sbb-popover{display:none;position:var(--sbb-popover-position, absolute);top:var(--_sbb-popover-position-y, 0);bottom:unset;left:var(--_sbb-popover-position-x, 0);right:unset;background-color:var(--sbb-popover-background);max-width:var(--sbb-popover-max-width);width:max-content;padding:0;box-shadow:var(--_sbb-popover-box-shadow);border:none;border-radius:var(--sbb-popover-border-radius);outline:none;pointer-events:all}:host(:focus-visible) .sbb-popover{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width)}:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]),:is(:state(state-closing),[state--state-closing]))) .sbb-popover{display:block;animation-name:open;animation-duration:var(--sbb-popover-animation-duration);animation-timing-function:var(--sbb-popover-animation-easing)}:host(:is(:state(state-closing),[state--state-closing])) .sbb-popover{pointer-events:none;animation-name:close;animation-duration:var(--sbb-popover-animation-duration);animation-timing-function:var(--sbb-popover-animation-easing)}.sbb-popover:after{z-index:-1;box-shadow:var(--_sbb-popover-box-shadow)}@media(forced-colors:active){.sbb-popover:after{outline:var(--sbb-border-width-1x) solid CanvasText}}:host(:is(:state(position-above),[state--position-above])) .sbb-popover:after{top:calc(100% - var(--sbb-popover-arrow-size) / 2)}@media(forced-colors:active){.sbb-popover{outline:var(--sbb-border-width-1x) solid CanvasText}}.sbb-popover:before{content:\"\";display:block;position:absolute;inset:0;z-index:-1;background-color:transparent}:host(:is(:state(position-below),[state--position-below])) .sbb-popover:before{inset-block-start:calc(-1 * var(--sbb-spacing-fixed-6x))}:host(:is(:state(position-above),[state--position-above])) .sbb-popover:before{inset-block-end:calc(-1 * var(--sbb-spacing-fixed-6x))}.sbb-popover__content{display:flex;gap:var(--sbb-spacing-fixed-4x);border-radius:var(--sbb-popover-border-radius);padding-block:var(--sbb-popover-padding) 0;padding-inline:var(--sbb-popover-padding);outline:none;background-color:var(--sbb-popover-background);flex-direction:row-reverse;min-height:var(--sbb-popover-min-height)}:host(:is(:state(position-above),[state--position-above])) .sbb-popover__content:before{top:calc(100% - var(--sbb-popover-arrow-size) / 2)}.sbb-popover__scrollable-content{--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-black) 30%, transparent);--sbb-scrollbar-color: light-dark( color-mix(in srgb, var(--sbb-color-black) 30%, transparent), color-mix(in srgb, var(--sbb-color-white) 30%, transparent) );--sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-black) 60%, transparent);--sbb-scrollbar-color-hover: light-dark( color-mix(in srgb, var(--sbb-color-black) 60%, transparent), color-mix(in srgb, var(--sbb-color-white) 60%, transparent) );--sbb-scrollbar-track-color: transparent}.sbb-popover__scrollable-content::-webkit-scrollbar{width:var(--sbb-scrollbar-width);height:var(--sbb-scrollbar-width);background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-popover__scrollable-content::-webkit-scrollbar-corner{background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-popover__scrollable-content::-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-popover__scrollable-content::-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-popover__scrollable-content::-webkit-scrollbar-button,.sbb-popover__scrollable-content::-webkit-scrollbar-corner{display:none}@supports not selector(::-webkit-scrollbar){.sbb-popover__scrollable-content{scrollbar-width:var(--sbb-scrollbar-width-firefox);scrollbar-color:var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent)}}.sbb-popover__scrollable-content{display:block;padding-block-end:var(--sbb-popover-padding);max-height:calc(var(--_sbb-popover-max-height));overflow:auto}@keyframes open{0%{opacity:0;transform:var(--_sbb-popover-transform)}to{opacity:1;transform:translateY(0)}}@keyframes close{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:var(--_sbb-popover-transform)}}", j = 16, M = 32, N = /* @__PURE__ */ new Set(), P = r ? !1 : matchMedia(d).matches, F = (() => {
9
10
  let i = f, u, d = [], h = [];
10
11
  return class extends i {
11
12
  constructor() {
12
- super(...arguments), this.#e = t(this, d, null), this._nextFocusedElement = t(this, h), this._skipCloseFocus = !1, this._escapableOverlayController = new c(this), this._focusTrapController = new l(this), this._blurTimeout = null, this._pointerDownListener = (e) => {
13
+ super(...arguments), this.#e = t(this, d, null), this._nextFocusedElement = t(this, h), this._skipCloseFocus = !1, this._resizeController = new O(this, {
14
+ target: null,
15
+ callback: () => this._setPopoverPosition()
16
+ }), this._escapableOverlayController = new c(this), this._focusTrapController = new l(this), this._blurTimeout = null, this._pointerDownListener = (e) => {
13
17
  this._isPointerDownEventOnPopover = y(this.overlay, e);
14
18
  }, this._closeOnBackdropClick = (e) => {
15
19
  let t = e.composedPath();
@@ -39,7 +43,7 @@ var k = ":host{--sbb-focus-outline-color: var(--sbb-focus-outline-color-default)
39
43
  });
40
44
  }
41
45
  static {
42
- this.styles = [p, a(k)];
46
+ this.styles = [p, a(A)];
43
47
  }
44
48
  #e;
45
49
  get trigger() {
@@ -50,7 +54,7 @@ var k = ":host{--sbb-focus-outline-color: var(--sbb-focus-outline-color-default)
50
54
  }
51
55
  open() {
52
56
  if (!(this.state !== "closed" && this.state !== "closing" || !this.overlay || !this.dispatchBeforeOpenEvent())) {
53
- for (let e of M) (e.state === "opened" || e.state === "opening") && e.close();
57
+ for (let e of N) (e.state === "opened" || e.state === "opening") && e.close();
54
58
  this.showPopover?.(), this.state = "opening", this.inert = !0, this._setPopoverPosition(), this._attachWindowEvents(), this._escapableOverlayController.connect(), this._nextFocusedElement = void 0, this._skipCloseFocus = !1, this._triggerElement && (this._triggerElement.ariaExpanded = "true"), this._isZeroAnimationDuration() && this._handleOpening();
55
59
  }
56
60
  }
@@ -61,13 +65,13 @@ var k = ":host{--sbb-focus-outline-color: var(--sbb-focus-outline-color-default)
61
65
  return x(this, "--sbb-popover-animation-duration");
62
66
  }
63
67
  _handleClosing() {
64
- this.state = "closed", this.hidePopover?.(), this.overlay?.firstElementChild?.scrollTo(0, 0), this.removeAttribute("tabindex"), this._skipCloseFocus || (this._nextFocusedElement || this._triggerElement)?.focus(), this._escapableOverlayController.disconnect(), this._openStateController?.abort(), this._focusTrapController.enabled = !1, this.dispatchCloseEvent({ closeTarget: this._popoverCloseElement ?? null });
68
+ this.state = "closed", this.hidePopover?.(), this.overlay && (this._resizeController.unobserve(this.overlay), this.overlay.firstElementChild?.scrollTo(0, 0)), this.removeAttribute("tabindex"), this._skipCloseFocus || (this._nextFocusedElement || this._triggerElement)?.focus(), this._escapableOverlayController.disconnect(), this._openStateController?.abort(), this._focusTrapController.enabled = !1, this.dispatchCloseEvent({ closeTarget: this._popoverCloseElement ?? null });
65
69
  }
66
70
  _handleOpening() {
67
- this.state = "opened", this.inert = !1, this._setPopoverFocus(), this._focusTrapController.enabled = !0, this.dispatchOpenEvent();
71
+ this.state = "opened", this.inert = !1, this._setPopoverFocus(), this._focusTrapController.enabled = !0, this.overlay && this._resizeController.observe(this.overlay), this.dispatchOpenEvent();
68
72
  }
69
73
  connectedCallback() {
70
- this.popover = "manual", super.connectedCallback(), this.state = "closed", M.add(this), this.hasUpdated && this._configureTrigger();
74
+ this.popover = "manual", super.connectedCallback(), this.state = "closed", N.add(this), this.hasUpdated && this._configureTrigger();
71
75
  }
72
76
  requestUpdate(e, t, n) {
73
77
  super.requestUpdate(e, t, n), !r && (!e || e === "trigger" || e === "hoverTrigger") && this.hasUpdated && this._configureTrigger();
@@ -76,7 +80,7 @@ var k = ":host{--sbb-focus-outline-color: var(--sbb-focus-outline-color-default)
76
80
  super.firstUpdated(e), this._configureTrigger();
77
81
  }
78
82
  disconnectedCallback() {
79
- super.disconnectedCallback(), this._triggerElement = null, this._triggerAbortController?.abort(), this._openStateController?.abort(), M.delete(this), this._blurTimeout && clearTimeout(this._blurTimeout);
83
+ super.disconnectedCallback(), this._triggerElement = null, this._triggerAbortController?.abort(), this._openStateController?.abort(), N.delete(this), this._blurTimeout && clearTimeout(this._blurTimeout);
80
84
  }
81
85
  _configureTrigger() {
82
86
  if (!r) {
@@ -123,8 +127,8 @@ var k = ":host{--sbb-focus-outline-color: var(--sbb-focus-outline-color-default)
123
127
  _setPopoverPosition() {
124
128
  if (!this.overlay || !this._triggerElement) return;
125
129
  let e = g(this.overlay, this._triggerElement, this.shadowRoot.querySelector(".sbb-popover__container"), {
126
- verticalOffset: A,
127
- horizontalOffset: j,
130
+ verticalOffset: j,
131
+ horizontalOffset: M,
128
132
  centered: !0,
129
133
  responsiveHeight: !0
130
134
  }), t = e.alignment.vertical;
@@ -148,7 +152,7 @@ var k = ":host{--sbb-focus-outline-color: var(--sbb-focus-outline-color-default)
148
152
  @animationend=${this._onPopoverAnimationEnd}
149
153
  class="sbb-popover"
150
154
  role="tooltip"
151
- ${O((e) => this.overlay = e)}
155
+ ${k((e) => this.overlay = e)}
152
156
  >
153
157
  <div
154
158
  @click=${(e) => this._closeOnSbbPopoverCloseClick(e)}
@@ -161,8 +165,8 @@ var k = ":host{--sbb-focus-outline-color: var(--sbb-focus-outline-color-default)
161
165
  `;
162
166
  }
163
167
  };
164
- })(), F = (() => {
165
- let r = P, a = [], s, c = [], l = [], d, f = [], p = [], m, g, v, y = [], x = [];
168
+ })(), I = (() => {
169
+ let r = F, a = [], s, c = [], l = [], d, f = [], p = [], m, g, v, y = [], x = [];
166
170
  return class extends r {
167
171
  constructor() {
168
172
  super(...arguments), this.#e = (t(this, a), t(this, c, !1)), this.#t = (t(this, l), t(this, f, !1)), this._openDelay = t(this, p), this.#n = t(this, y, ""), this._hoverTrigger = (t(this, x), !1), this._language = new u(this), this._overlayAbortController = null, this._onTriggerMouseEnter = () => {
@@ -302,7 +306,7 @@ var k = ":host{--sbb-focus-outline-color: var(--sbb-focus-outline-color-default)
302
306
  this.#n = e;
303
307
  }
304
308
  configureTrigger(e) {
305
- let t = this.hoverTrigger && !N;
309
+ let t = this.hoverTrigger && !P;
306
310
  this.trigger === e && t === this._hoverTrigger || (this._hoverTrigger !== t && (this._hoverTrigger = t, this.toggleState("hover-trigger", this._hoverTrigger), this._registerOverlayListeners()), super.configureTrigger(e));
307
311
  }
308
312
  _registerOverlayListeners() {
@@ -343,4 +347,4 @@ var k = ":host{--sbb-focus-outline-color: var(--sbb-focus-outline-color-default)
343
347
  };
344
348
  })();
345
349
  //#endregion
346
- export { F as n, P as t };
350
+ export { I as n, F as t };
package/popover.js CHANGED
@@ -1,4 +1,4 @@
1
- import { n as e, t } from "./popover.component-nn2NRFOs.js";
1
+ import { n as e, t } from "./popover.component-BkhmysoH.js";
2
2
  import "./popover.pure.js";
3
3
  //#region src/elements/popover.ts
4
4
  e.define();
package/popover.pure.js CHANGED
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./popover.component-nn2NRFOs.js";
1
+ import { n as e, t } from "./popover.component-BkhmysoH.js";
2
2
  export { t as SbbPopoverBaseElement, e as SbbPopoverElement };
package/safety-theme.css CHANGED
@@ -2033,6 +2033,18 @@ slot[name=error]::slotted(*) {
2033
2033
  --sbb-overlay-position-try-fallbacks:
2034
2034
  block-start span-inline-end, block-start span-inline-start, block-end,
2035
2035
  block-end span-inline-end, block-end span-inline-start;
2036
+ --sbb-toast-max-width: 25rem;
2037
+ --sbb-toast-animation-timing-function: ease;
2038
+ --sbb-toast-text-color: var(--sbb-color-3-inverted);
2039
+ --sbb-toast-background-color: var(--sbb-background-color-1-inverted);
2040
+ --sbb-toast-margin: var(--sbb-spacing-responsive-s);
2041
+ --sbb-toast-padding-block: var(--sbb-spacing-responsive-xxxs);
2042
+ --sbb-toast-padding-inline: var(--sbb-spacing-responsive-xs);
2043
+ --sbb-toast-border-radius: var(--sbb-border-radius-4x);
2044
+ --sbb-toast-container-position: fixed;
2045
+ --sbb-toast-horizontal-position: initial;
2046
+ --sbb-toast-vertical-position: initial;
2047
+ --sbb-toast-gap: var(--sbb-spacing-fixed-2x);
2036
2048
  --sbb-visual-checkbox-dimension: var(--sbb-checkbox-dimension-m);
2037
2049
  --sbb-visual-checkbox-selection-color: var(--sbb-color-primary);
2038
2050
  --sbb-visual-checkbox-selection-color-negative: var(--sbb-color-primary85);
@@ -2033,6 +2033,18 @@ slot[name=error]::slotted(*) {
2033
2033
  --sbb-overlay-position-try-fallbacks:
2034
2034
  block-start span-inline-end, block-start span-inline-start, block-end,
2035
2035
  block-end span-inline-end, block-end span-inline-start;
2036
+ --sbb-toast-max-width: 25rem;
2037
+ --sbb-toast-animation-timing-function: ease;
2038
+ --sbb-toast-text-color: var(--sbb-color-3-inverted);
2039
+ --sbb-toast-background-color: var(--sbb-background-color-1-inverted);
2040
+ --sbb-toast-margin: var(--sbb-spacing-responsive-s);
2041
+ --sbb-toast-padding-block: var(--sbb-spacing-responsive-xxxs);
2042
+ --sbb-toast-padding-inline: var(--sbb-spacing-responsive-xs);
2043
+ --sbb-toast-border-radius: var(--sbb-border-radius-4x);
2044
+ --sbb-toast-container-position: fixed;
2045
+ --sbb-toast-horizontal-position: initial;
2046
+ --sbb-toast-vertical-position: initial;
2047
+ --sbb-toast-gap: var(--sbb-spacing-fixed-2x);
2036
2048
  --sbb-visual-checkbox-dimension: var(--sbb-checkbox-dimension-m);
2037
2049
  --sbb-visual-checkbox-selection-color: var(--sbb-color-primary);
2038
2050
  --sbb-visual-checkbox-selection-color-negative: var(--sbb-color-primary85);
@@ -1,2 +1,2 @@
1
- import { t as e } from "../toast.component-CXouszwJ.js";
1
+ import { t as e } from "../toast.component-2hmfUgsX.js";
2
2
  export { e as SbbToastElement };
@@ -6,7 +6,7 @@ import { SbbTransparentButtonElement as h } from "./button.pure.js";
6
6
  import { SbbDividerElement as g } from "./divider.pure.js";
7
7
  import { SbbIconNameMixin as _ } from "./icon.pure.js";
8
8
  //#region src/elements/toast/toast.scss?inline
9
- var v = ":host{--sbb-toast-max-width: 25rem;--sbb-toast-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-6x) );--sbb-toast-animation-timing-function: ease;--sbb-toast-text-color: var(--sbb-color-3-inverted);--sbb-toast-background-color: var(--sbb-background-color-1-inverted);--sbb-toast-margin: var(--sbb-spacing-responsive-s);--sbb-toast-padding-block: var(--sbb-spacing-responsive-xxxs);--sbb-toast-padding-inline: var(--sbb-spacing-responsive-xs);--sbb-toast-border-radius: var(--sbb-border-radius-4x);--sbb-toast-container-display: none;--sbb-toast-container-position: fixed;--sbb-toast-horizontal-position: initial;--sbb-toast-vertical-position: initial;--sbb-toast-gap: var(--sbb-spacing-fixed-2x);--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);display: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-toast-container-display: flex;display:block}:host([position=bottom-left]),:host([position=bottom-start]){--sbb-toast-horizontal-position: flex-start;--sbb-toast-vertical-position: flex-end}:host([position=bottom-center]){--sbb-toast-horizontal-position: center;--sbb-toast-vertical-position: flex-end}:host([position=bottom-right]),:host([position=bottom-end]){--sbb-toast-horizontal-position: flex-end;--sbb-toast-vertical-position: flex-end}:host([position=top-left]),:host([position=top-start]){--sbb-toast-horizontal-position: flex-start;--sbb-toast-vertical-position: flex-start}:host([position=top-center]){--sbb-toast-horizontal-position: center;--sbb-toast-vertical-position: flex-start}:host([position=top-right]),:host([position=top-end]){--sbb-toast-horizontal-position: flex-end;--sbb-toast-vertical-position: flex-start}:host(:is(:state(dark),[state--dark])){--sbb-focus-outline-color: var(--sbb-focus-outline-color-default)}.sbb-toast__overlay-container{position:var(--sbb-toast-container-position);pointer-events:none;inset:0;display:var(--sbb-toast-container-display);justify-content:var(--sbb-toast-horizontal-position);align-items:var(--sbb-toast-vertical-position)}.sbb-toast{z-index:var(--sbb-toast-z-index, var(--sbb-overlay-default-z-index));pointer-events:auto;margin:var(--sbb-toast-margin);border-radius:var(--sbb-toast-border-radius);max-width:var(--sbb-toast-max-width);display:flex;color:var(--sbb-toast-text-color);background-color:var(--sbb-toast-background-color)}:host(:is(:state(state-opening),[state--state-opening])) .sbb-toast{animation-name:open;animation-duration:var(--sbb-toast-animation-duration);animation-timing-function:var(--sbb-toast-animation-timing-function)}:host(:is(:state(state-closing),[state--state-closing])) .sbb-toast{animation-name:close;animation-duration:var(--sbb-toast-animation-duration);animation-timing-function:var(--sbb-toast-animation-timing-function)}.sbb-toast-wrapper{display:flex;align-items:center;gap:var(--sbb-toast-gap);padding-block:var(--sbb-toast-padding-block);padding-inline:var(--sbb-toast-padding-inline)}slot:not([name=icon]),.sbb-toast__close{color-scheme:only light}.sbb-toast__content{--sbb-title-font-size: var(--sbb-title-font-size-level-6-lean, var(--sbb-heading-font-size-6));--sbb-title-line-height: var(--sbb-typo-line-height-text);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));flex:1 1 0}.sbb-toast__close{display:flex;align-items:center}.sbb-toast__close-divider{padding-block:var(--sbb-toast-padding-block)}.sbb-toast__close-button{margin-inline:var(--sbb-spacing-responsive-xxxs)}@keyframes open{0%{visibility:hidden;opacity:0;translate:0 var(--sbb-spacing-fixed-2x)}to{visibility:visible;opacity:1;translate:0}}@keyframes close{0%{visibility:visible;opacity:1;translate:0}to{visibility:hidden;opacity:0;translate:0 var(--sbb-spacing-fixed-2x)}}", y = /* @__PURE__ */ new Set(), b = (() => {
9
+ var v = ":host{--sbb-toast-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-6x) );--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);display: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-toast-container-display: flex;display:block}:host([position=bottom-left]),:host([position=bottom-start]){--sbb-toast-horizontal-position: flex-start;--sbb-toast-vertical-position: flex-end}:host([position=bottom-center]){--sbb-toast-horizontal-position: center;--sbb-toast-vertical-position: flex-end}:host([position=bottom-right]),:host([position=bottom-end]){--sbb-toast-horizontal-position: flex-end;--sbb-toast-vertical-position: flex-end}:host([position=top-left]),:host([position=top-start]){--sbb-toast-horizontal-position: flex-start;--sbb-toast-vertical-position: flex-start}:host([position=top-center]){--sbb-toast-horizontal-position: center;--sbb-toast-vertical-position: flex-start}:host([position=top-right]),:host([position=top-end]){--sbb-toast-horizontal-position: flex-end;--sbb-toast-vertical-position: flex-start}:host(:is(:state(dark),[state--dark])){--sbb-focus-outline-color: var(--sbb-focus-outline-color-default)}.sbb-toast__overlay-container{position:var(--sbb-toast-container-position);pointer-events:none;inset:0;display:var(--sbb-toast-container-display, none);justify-content:var(--sbb-toast-horizontal-position);align-items:var(--sbb-toast-vertical-position)}.sbb-toast{z-index:var(--sbb-toast-z-index, var(--sbb-overlay-default-z-index));pointer-events:auto;margin:var(--sbb-toast-margin);border-radius:var(--sbb-toast-border-radius);max-width:var(--sbb-toast-max-width);display:flex;color:var(--sbb-toast-text-color);background-color:var(--sbb-toast-background-color)}:host(:is(:state(state-opening),[state--state-opening])) .sbb-toast{animation-name:open;animation-duration:var(--sbb-toast-animation-duration);animation-timing-function:var(--sbb-toast-animation-timing-function)}:host(:is(:state(state-closing),[state--state-closing])) .sbb-toast{animation-name:close;animation-duration:var(--sbb-toast-animation-duration);animation-timing-function:var(--sbb-toast-animation-timing-function)}.sbb-toast-wrapper{display:flex;align-items:center;gap:var(--sbb-toast-gap);padding-block:var(--sbb-toast-padding-block);padding-inline:var(--sbb-toast-padding-inline)}slot:not([name=icon]),.sbb-toast__close{color-scheme:only light}.sbb-toast__content{--sbb-title-font-size: var(--sbb-title-font-size-level-6-lean, var(--sbb-heading-font-size-6));--sbb-title-line-height: var(--sbb-typo-line-height-text);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));flex:1 1 0}.sbb-toast__close{display:flex;align-items:center}.sbb-toast__close-divider{padding-block:var(--sbb-toast-padding-block)}.sbb-toast__close-button{margin-inline:var(--sbb-spacing-responsive-xxxs)}@keyframes open{0%{visibility:hidden;opacity:0;translate:0 var(--sbb-spacing-fixed-2x)}to{visibility:visible;opacity:1;translate:0}}@keyframes close{0%{visibility:visible;opacity:1;translate:0}to{visibility:hidden;opacity:0;translate:0 var(--sbb-spacing-fixed-2x)}}", y = /* @__PURE__ */ new Set(), b = (() => {
10
10
  let b = _(l(c)), x, S = [], C = [], w, T = [], E = [], D, O = [], k = [];
11
11
  return class extends b {
12
12
  static {
package/toast.js CHANGED
@@ -1,4 +1,4 @@
1
- import { t as e } from "./toast.component-CXouszwJ.js";
1
+ import { t as e } from "./toast.component-2hmfUgsX.js";
2
2
  import "./toast.pure.js";
3
3
  //#region src/elements/toast.ts
4
4
  e.define();
package/toast.pure.js CHANGED
@@ -1,2 +1,2 @@
1
- import { t as e } from "./toast.component-CXouszwJ.js";
1
+ import { t as e } from "./toast.component-2hmfUgsX.js";
2
2
  export { e as SbbToastElement };