@sbb-esta/lyne-elements-dev 4.6.0-dev.1772454706 → 4.6.0-dev.1772462503

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.
@@ -68,6 +68,18 @@ $theme: 'standard' !default;
68
68
  @use '../../container/sticky-bar/sticky-bar.global' as sticky-bar with (
69
69
  $theme: $theme
70
70
  );
71
+ @use '../../dialog/dialog/dialog.global' as dialog with (
72
+ $theme: $theme
73
+ );
74
+ @use '../../dialog/dialog-close-button/dialog-close-button.global' as dialog-close-button with (
75
+ $theme: $theme
76
+ );
77
+ @use '../../dialog/dialog-content/dialog-content.global' as dialog-content with (
78
+ $theme: $theme
79
+ );
80
+ @use '../../dialog/dialog-title/dialog-title.global' as dialog-title with (
81
+ $theme: $theme
82
+ );
71
83
  @use '../../divider/divider.global' as divider with (
72
84
  $theme: $theme
73
85
  );
@@ -136,6 +148,8 @@ $theme: 'standard' !default;
136
148
  @include container.base;
137
149
  @include sticky-bar.base;
138
150
  @include clock.base;
151
+ @include dialog.base;
152
+ @include dialog-close-button.base;
139
153
  @include divider.base;
140
154
  @include expansion-panel.base;
141
155
  @include expansion-panel-content.base;
@@ -222,6 +236,7 @@ $theme: 'standard' !default;
222
236
  @include mediaqueries.mq($from: small) {
223
237
  @include sbb-css-tokens.breakpoint-small;
224
238
 
239
+ @include dialog.base-breakpoint-small;
225
240
  @include footer.base-breakpoint-small;
226
241
  }
227
242
 
@@ -231,6 +246,7 @@ $theme: 'standard' !default;
231
246
  @include button.base-breakpoint-large;
232
247
 
233
248
  @include chip-group.base-breakpoint-large;
249
+ @include dialog.base-breakpoint-large;
234
250
 
235
251
  // TODO: Remove complete block when new lean theme is complete
236
252
  // Only render the block in standard theme as fallback for CSS class usage
@@ -260,6 +276,9 @@ $theme: 'standard' !default;
260
276
 
261
277
  // Components global styles
262
278
  @include container.rules;
279
+ @include dialog-close-button.rules;
280
+ @include dialog-content.rules;
281
+ @include dialog-title.rules;
263
282
  @include tab-nav-bar.rules;
264
283
 
265
284
  // TODO: discuss where to add these classes
@@ -726,49 +745,6 @@ sbb-toggle:has(:focus-visible) {
726
745
  }
727
746
  }
728
747
 
729
- sbb-dialog-title {
730
- // Hide margin on the right side. Distance to button is defined by flex gap already.
731
- sbb-dialog:has(> sbb-dialog-close-button) > &,
732
- sbb-dialog:state(has-intermediate-element):has(> * > sbb-dialog-close-button) > * > & {
733
- padding-inline-end: 0;
734
- }
735
- }
736
-
737
- sbb-dialog-content {
738
- // If there is a title, remove top spacing for the content
739
- sbb-dialog:has(> sbb-dialog-title) > &,
740
- sbb-dialog:state(has-intermediate-element):has(> * > sbb-dialog-title) > * > & {
741
- padding-block-start: var(--sbb-spacing-fixed-1x);
742
- }
743
-
744
- // Set the negative scrollbar colors for dialog content when dialog is negative
745
- sbb-dialog[negative] > &,
746
- sbb-dialog[negative]:state(has-intermediate-element) > * > & {
747
- @include scrollbar.scrollbar-variables--color-negative;
748
- }
749
- }
750
-
751
- sbb-dialog-close-button {
752
- // If there is no dialog title, the close button should be positioned absolute
753
- sbb-dialog:not(:has(> sbb-dialog-title)) > &,
754
- sbb-dialog:state(has-intermediate-element):not(:has(> * > sbb-dialog-title)) > * > & {
755
- position: absolute;
756
- z-index: 1;
757
- }
758
-
759
- // The close button positioning needs the current dialog title size
760
- sbb-dialog:has(> sbb-dialog-title[visual-level='3']) > &,
761
- sbb-dialog:state(has-intermediate-element):has(> * > sbb-dialog-title[visual-level='3']) > * > & {
762
- --_sbb-dialog-title-size: var(--sbb-heading-font-size-3);
763
- }
764
-
765
- // The close button positioning needs the current dialog title size
766
- sbb-dialog:has(> sbb-dialog-title[visual-level='5']) > &,
767
- sbb-dialog:state(has-intermediate-element):has(> * > sbb-dialog-title[visual-level='5']) > * > & {
768
- --_sbb-dialog-title-size: var(--sbb-heading-font-size-5);
769
- }
770
- }
771
-
772
748
  sbb-notification:has(sbb-title) {
773
749
  --_sbb-notification-icon-authoritative-font-size: var(--sbb-heading-font-size-5);
774
750
  --_sbb-notification-icon-authoritative-line-height: var(--sbb-typo-line-height-heading);
package/core.css CHANGED
@@ -1412,6 +1412,27 @@
1412
1412
  --sbb-clock-seconds-hand-color: var(--sbb-color-brand);
1413
1413
  --sbb-clock-face-color: var(--sbb-color-1);
1414
1414
  --sbb-clock-background-color: var(--sbb-background-color-1);
1415
+ --sbb-dialog-padding-inline: var(--sbb-spacing-fixed-5x);
1416
+ --sbb-dialog-color: var(--sbb-color-2);
1417
+ --sbb-dialog-background-color: var(--sbb-background-color-1);
1418
+ --sbb-dialog-block-shadow: var(--sbb-box-shadow-level-9-soft);
1419
+ --sbb-dialog-color-negative: var(--sbb-color-2-negative);
1420
+ --sbb-dialog-block-shadow-negative: var(--sbb-box-shadow-level-9-soft-negative);
1421
+ --sbb-dialog-width: 100%;
1422
+ --sbb-dialog-max-width: 100%;
1423
+ --sbb-dialog-max-width-default: 55.75rem;
1424
+ --sbb-dialog-height: 100%;
1425
+ --sbb-dialog-max-height: 100%;
1426
+ --sbb-dialog-inset: 0 auto auto 0;
1427
+ --sbb-dialog-border-radius: var(--sbb-border-radius-8x);
1428
+ --sbb-dialog-animation-easing: ease;
1429
+ --sbb-dialog-pointer-events: none;
1430
+ --sbb-dialog-backdrop-visibility: hidden;
1431
+ --sbb-dialog-backdrop-pointer-events: none;
1432
+ --sbb-dialog-backdrop-color: transparent;
1433
+ --sbb-dialog-actions-border-color: var(--sbb-background-color-4);
1434
+ --sbb-dialog-close-button-inset-inline-end: var(--sbb-spacing-fixed-4x);
1435
+ --sbb-dialog-close-button-margin-inline: var(--sbb-spacing-fixed-2x) var(--sbb-spacing-fixed-4x);
1415
1436
  --sbb-divider-color: var(--sbb-background-color-4);
1416
1437
  --sbb-divider-color-negative: var(--sbb-background-color-4-negative);
1417
1438
  --sbb-divider-border-width: var(--sbb-border-width-1x);
@@ -1590,6 +1611,7 @@
1590
1611
  --sbb-layout-base-offset-responsive: var(--sbb-layout-base-offset-responsive-small);
1591
1612
  --sbb-grid-base-columns: var(--sbb-layout-base-grid-columns-small);
1592
1613
  --sbb-grid-base-gutter-responsive: var(--sbb-layout-base-grid-gutter-responsive-small);
1614
+ --sbb-dialog-padding-inline: var(--sbb-spacing-fixed-12x);
1593
1615
  --sbb-footer-clock-width: 7rem;
1594
1616
  }
1595
1617
  }
@@ -1634,6 +1656,8 @@
1634
1656
  --sbb-chip-group-margin-block: var(--_sbb-chip-group-margin-block-start-default-large) 0;
1635
1657
  --sbb-chip-group-margin-block-no-label-not-empty: 0.1875rem 0.875rem;
1636
1658
  --sbb-chip-group-margin-block-with-label-not-empty: var(--_sbb-chip-group-margin-block-start-default-large) var(--_sbb-chip-group-margin-block-start-default-large);
1659
+ --sbb-dialog-padding-inline: var(--sbb-spacing-responsive-s);
1660
+ --sbb-dialog-max-height: calc(100vh - var(--sbb-spacing-fixed-16x));
1637
1661
  }
1638
1662
  :root.sbb-lean {
1639
1663
  --sbb-title-font-size-level-6-lean: var(--sbb-typo-scale-0-875x);
@@ -1688,6 +1712,29 @@ sbb-container > [slot=image] :is(sbb-image, img):not(.sbb-figure-overlap-image)
1688
1712
  position: absolute;
1689
1713
  }
1690
1714
 
1715
+ sbb-dialog:not(:has(> sbb-dialog-title)) > sbb-dialog-close-button, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):not(:has(> * > sbb-dialog-title)) > * > sbb-dialog-close-button {
1716
+ position: absolute;
1717
+ z-index: 1;
1718
+ }
1719
+ sbb-dialog:has(> sbb-dialog-title[visual-level="3"]) > sbb-dialog-close-button, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-title[visual-level="3"]) > * > sbb-dialog-close-button {
1720
+ --_sbb-dialog-title-size: var(--sbb-heading-font-size-3);
1721
+ }
1722
+ sbb-dialog:has(> sbb-dialog-title[visual-level="5"]) > sbb-dialog-close-button, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-title[visual-level="5"]) > * > sbb-dialog-close-button {
1723
+ --_sbb-dialog-title-size: var(--sbb-heading-font-size-5);
1724
+ }
1725
+
1726
+ sbb-dialog:has(> sbb-dialog-title) > sbb-dialog-content, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-title) > * > sbb-dialog-content {
1727
+ padding-block-start: var(--sbb-spacing-fixed-1x);
1728
+ }
1729
+ sbb-dialog[negative] > sbb-dialog-content, sbb-dialog[negative]:is(:state(has-intermediate-element),[state--has-intermediate-element]) > * > sbb-dialog-content {
1730
+ --sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-white) 30%, transparent);
1731
+ --sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-white) 60%, transparent);
1732
+ }
1733
+
1734
+ sbb-dialog:has(> sbb-dialog-close-button) > sbb-dialog-title, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-close-button) > * > sbb-dialog-title {
1735
+ padding-inline-end: 0;
1736
+ }
1737
+
1691
1738
  sbb-tab-nav-bar .sbb-tab-amount {
1692
1739
  margin: 0;
1693
1740
  color: var(--sbb-tab-label-amount-color);
@@ -2144,29 +2191,6 @@ sbb-toggle:has(:focus-visible) {
2144
2191
  --sbb-option-hint-padding-block-end: var(--sbb-spacing-fixed-1x);
2145
2192
  }
2146
2193
 
2147
- sbb-dialog:has(> sbb-dialog-close-button) > sbb-dialog-title, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-close-button) > * > sbb-dialog-title {
2148
- padding-inline-end: 0;
2149
- }
2150
-
2151
- sbb-dialog:has(> sbb-dialog-title) > sbb-dialog-content, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-title) > * > sbb-dialog-content {
2152
- padding-block-start: var(--sbb-spacing-fixed-1x);
2153
- }
2154
- sbb-dialog[negative] > sbb-dialog-content, sbb-dialog[negative]:is(:state(has-intermediate-element),[state--has-intermediate-element]) > * > sbb-dialog-content {
2155
- --sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-white) 30%, transparent);
2156
- --sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-white) 60%, transparent);
2157
- }
2158
-
2159
- sbb-dialog:not(:has(> sbb-dialog-title)) > sbb-dialog-close-button, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):not(:has(> * > sbb-dialog-title)) > * > sbb-dialog-close-button {
2160
- position: absolute;
2161
- z-index: 1;
2162
- }
2163
- sbb-dialog:has(> sbb-dialog-title[visual-level="3"]) > sbb-dialog-close-button, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-title[visual-level="3"]) > * > sbb-dialog-close-button {
2164
- --_sbb-dialog-title-size: var(--sbb-heading-font-size-3);
2165
- }
2166
- sbb-dialog:has(> sbb-dialog-title[visual-level="5"]) > sbb-dialog-close-button, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-title[visual-level="5"]) > * > sbb-dialog-close-button {
2167
- --_sbb-dialog-title-size: var(--sbb-heading-font-size-5);
2168
- }
2169
-
2170
2194
  sbb-notification:has(sbb-title) {
2171
2195
  --_sbb-notification-icon-authoritative-font-size: var(--sbb-heading-font-size-5);
2172
2196
  --_sbb-notification-icon-authoritative-line-height: var(--sbb-typo-line-height-heading);
@@ -17,60 +17,31 @@ import { css } from "lit";
17
17
  import "../../screen-reader-only.js";
18
18
  import { SbbOverlayCloseEvent as SbbOverlayCloseEvent2, assignOverlayResult } from "../../overlay/overlay-base-element.js";
19
19
  const style = css`:host {
20
- --sbb-dialog-padding-inline: var(--sbb-spacing-fixed-5x);
21
- --sbb-dialog-color: var(--sbb-color-2);
22
- --sbb-dialog-background-color: var(--sbb-background-color-1);
23
- --sbb-dialog-width: 100%;
24
- --sbb-dialog-height: 100%;
25
- --sbb-dialog-max-width: 100%;
26
- --sbb-dialog-max-width-default: 55.75rem;
27
- --sbb-dialog-max-height: 100%;
28
- --sbb-dialog-inset: 0 auto auto 0;
29
- --sbb-dialog-border-radius: var(--sbb-border-radius-8x);
30
- --sbb-dialog-padding-block: var(--sbb-spacing-responsive-xs);
31
20
  --sbb-dialog-animation-duration: var(
32
21
  --sbb-disable-animation-duration,
33
22
  var(--sbb-animation-duration-6x)
34
23
  );
24
+ --sbb-dialog-padding-block: var(--sbb-spacing-responsive-xs);
35
25
  --sbb-dialog-shadow-animation-duration: var(
36
26
  --sbb-disable-animation-duration,
37
27
  var(--sbb-animation-duration-4x)
38
28
  );
39
- --sbb-dialog-animation-easing: ease;
40
- --sbb-dialog-pointer-events: none;
41
- --sbb-dialog-backdrop-visibility: hidden;
42
- --sbb-dialog-backdrop-pointer-events: none;
43
- --sbb-dialog-backdrop-color: transparent;
44
- --sbb-dialog-block-shadow: var(--sbb-box-shadow-level-9-soft);
45
- --sbb-dialog-actions-border-color: var(--sbb-background-color-4);
46
29
  display: none;
47
30
  position: fixed;
48
31
  inset: var(--sbb-dialog-inset);
49
32
  z-index: var(--sbb-dialog-z-index, var(--sbb-overlay-default-z-index));
50
33
  }
51
- @media (min-width: calc(37.5rem)) {
52
- :host {
53
- --sbb-dialog-padding-inline: var(--sbb-spacing-fixed-12x);
54
- }
55
- }
56
34
  @media (min-width: calc(64rem)) {
57
35
  :host {
58
- --sbb-dialog-padding-inline: var(--sbb-spacing-responsive-s);
59
36
  --sbb-dialog-max-width: min(
60
37
  calc(100vw - var(--sbb-spacing-fixed-30x) * 2),
61
38
  var(--sbb-dialog-max-width-default)
62
39
  );
63
- --sbb-dialog-max-height: calc(100vh - var(--sbb-spacing-fixed-16x));
64
40
  }
65
41
  }
66
42
 
67
43
  :host(:is(:state(top-shadow),[state--top-shadow])) {
68
- --sbb-dialog-block-start-box-shadow: var(--sbb-dialog-block-shadow);
69
- }
70
-
71
- :host(:is(:state(bottom-shadow),[state--bottom-shadow])) {
72
- --sbb-dialog-block-end-box-shadow: var(--sbb-dialog-block-shadow);
73
- --sbb-dialog-actions-border-color: transparent;
44
+ --sbb-dialog-block-start-box-shadow: var(--_sbb-dialog-block-shadow);
74
45
  }
75
46
 
76
47
  :host(:is(:is(:state(state-opening),[state--state-opening]), :is(:state(state-opened),[state--state-opened]), :is(:state(state-closing),[state--state-closing]))) {
@@ -92,13 +63,29 @@ const style = css`:host {
92
63
  --sbb-dialog-backdrop-color: color-mix(in srgb, var(--sbb-color-black) 50%, transparent);
93
64
  }
94
65
 
66
+ :host([backdrop=opaque]:not([negative]):is(:is(:state(state-opening),[state--state-opening]), :is(:state(state-opened),[state--state-opened]))) {
67
+ --sbb-dialog-backdrop-color: var(--sbb-background-color-3);
68
+ }
69
+
70
+ :host(:not([negative])) {
71
+ --_sbb-dialog-color: var(--sbb-dialog-color);
72
+ --_sbb-dialog-block-shadow: var(--sbb-dialog-block-shadow);
73
+ --sbb-dialog-actions-border-color: var(--sbb-background-color-4);
74
+ --sbb-dialog-background-color: var(--sbb-background-color-1);
75
+ }
76
+
95
77
  :host([negative]) {
96
- --sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);
97
- --sbb-dialog-color: var(--sbb-color-2-negative);
78
+ --_sbb-dialog-color: var(--sbb-dialog-color-negative);
79
+ --_sbb-dialog-block-shadow: var(--sbb-dialog-block-shadow-negative);
98
80
  --sbb-dialog-background-color: var(--sbb-background-color-1-negative);
99
- --sbb-dialog-backdrop-color: var(--sbb-background-color-3-negative);
100
81
  --sbb-dialog-actions-border-color: var(--sbb-background-color-4-negative);
101
- --sbb-dialog-block-shadow: var(--sbb-box-shadow-level-9-soft-negative);
82
+ --sbb-dialog-backdrop-color: var(--sbb-background-color-3-negative);
83
+ --sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);
84
+ }
85
+
86
+ :host(:is(:state(bottom-shadow),[state--bottom-shadow])) {
87
+ --sbb-dialog-block-end-box-shadow: var(--_sbb-dialog-block-shadow);
88
+ --sbb-dialog-actions-border-color: transparent;
102
89
  }
103
90
 
104
91
  :host(:not(:is(:state(state-closed),[state--state-closed]))) {
@@ -135,7 +122,7 @@ const style = css`:host {
135
122
  height: var(--sbb-dialog-height);
136
123
  max-width: var(--sbb-dialog-max-width);
137
124
  max-height: var(--sbb-dialog-max-height);
138
- color: var(--sbb-dialog-color);
125
+ color: var(--_sbb-dialog-color);
139
126
  background-color: var(--sbb-dialog-background-color);
140
127
  }
141
128
  :host(:is(:is(:state(state-opening),[state--state-opening]), :is(:state(state-opened),[state--state-opened]), :is(:state(state-closing),[state--state-closing]))) .sbb-dialog {
@@ -400,4 +387,4 @@ export {
400
387
  SbbDialogElement,
401
388
  assignOverlayResult as assignDialogResult
402
389
  };
403
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2RpYWxvZy9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXNpemVDb250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9yZXNpemUtY29udHJvbGxlci5qcyc7XG5pbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eVZhbHVlcywgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB7IGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uIH0gZnJvbSAnLi4vLi4vY29yZS9kb20udHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJPdmVybGF5Q2xvc2VFdmVudERldGFpbHMgfSBmcm9tICcuLi8uLi9jb3JlL2ludGVyZmFjZXMvb3ZlcmxheS1jbG9zZS1kZXRhaWxzLnRzJztcbmltcG9ydCB7IGJveFNpemluZ1N0eWxlcyB9IGZyb20gJy4uLy4uL2NvcmUvc3R5bGVzLnRzJztcbmltcG9ydCB7XG4gIG92ZXJsYXlSZWZzLFxuICBTYmJPdmVybGF5QmFzZUVsZW1lbnQsXG4gIFNiYk92ZXJsYXlDbG9zZUV2ZW50IGFzIFNiYkRpYWxvZ0Nsb3NlRXZlbnQsXG59IGZyb20gJy4uLy4uL292ZXJsYXkudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJEaWFsb2dDb250ZW50RWxlbWVudCB9IGZyb20gJy4uL2RpYWxvZy1jb250ZW50L2RpYWxvZy1jb250ZW50LmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2RpYWxvZy5zY3NzP2xpdCZpbmxpbmUnO1xuXG5pbXBvcnQgJy4uLy4uL3NjcmVlbi1yZWFkZXItb25seS50cyc7XG5cbmV4cG9ydCB7XG4gIGFzc2lnbk92ZXJsYXlSZXN1bHQgYXMgYXNzaWduRGlhbG9nUmVzdWx0LFxuICBTYmJPdmVybGF5Q2xvc2VFdmVudCBhcyBTYmJEaWFsb2dDbG9zZUV2ZW50LFxufSBmcm9tICcuLi8uLi9vdmVybGF5L292ZXJsYXktYmFzZS1lbGVtZW50LnRzJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYW4gaW50ZXJhY3RpdmUgb3ZlcmxheSBlbGVtZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gcHJvdmlkZSBhIGBzYmItZGlhbG9nLXRpdGxlYCwgYHNiYi1kaWFsb2ctY29udGVudGAgYW5kIGFuIG9wdGlvbmFsIGBzYmItZGlhbG9nLWFjdGlvbnNgLlxuICogQGNzc3Byb3AgWy0tc2JiLWRpYWxvZy16LWluZGV4PXZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCldIC0gVG8gc3BlY2lmeSBhIGN1c3RvbSBzdGFjayBvcmRlcixcbiAqIHRoZSBgei1pbmRleGAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgdGhpcyBDU1MgdmFyaWFibGUuIFRoZSBkZWZhdWx0IGB6LWluZGV4YCBvZiB0aGVcbiAqIGNvbXBvbmVudCBpcyBzZXQgdG8gYHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleClgIHdpdGggYSB2YWx1ZSBvZiBgMTAwMGAuXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1kaWFsb2cnKVxuY2xhc3MgU2JiRGlhbG9nRWxlbWVudCBleHRlbmRzIFNiYk92ZXJsYXlCYXNlRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHN0eWxlXTtcblxuICAvKiogQmFja2Ryb3AgY2xpY2sgYWN0aW9uLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdiYWNrZHJvcC1hY3Rpb24nIH0pIHB1YmxpYyBhY2Nlc3NvciBiYWNrZHJvcEFjdGlvbjogJ2Nsb3NlJyB8ICdub25lJyA9XG4gICAgJ2Nsb3NlJztcblxuICAvKiogQmFja2Ryb3AgZGVuc2l0eS4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYmFja2Ryb3AnLCByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBiYWNrZHJvcDpcbiAgICB8ICdvcGFxdWUnXG4gICAgfCAndHJhbnNsdWNlbnQnID0gJ29wYXF1ZSc7XG5cbiAgLy8gV2UgdXNlIGEgdGltZW91dCBhcyBhIHdvcmthcm91bmQgdG8gdGhlIFwiUmVzaXplT2JzZXJ2ZXIgbG9vcCBjb21wbGV0ZWQgd2l0aCB1bmRlbGl2ZXJlZCBub3RpZmljYXRpb25zXCIgZXJyb3IuXG4gIC8vIEZvciBtb3JlIGRldGFpbHM6XG4gIC8vIC0gaHR0cHM6Ly9naXRodWIuY29tL1dJQ0cvcmVzaXplLW9ic2VydmVyL2lzc3Vlcy8zOCNpc3N1ZWNvbW1lbnQtNDIyMTI2MDA2XG4gIC8vIC0gaHR0cHM6Ly9naXRodWIuY29tL2p1Z2dsZS9yZXNpemUtb2JzZXJ2ZXIvaXNzdWVzLzEwMyNpc3N1ZWNvbW1lbnQtMTcxMTE0ODI4NVxuICBwcml2YXRlIF9kaWFsb2dDb250ZW50UmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplQ29udHJvbGxlcih0aGlzLCB7XG4gICAgdGFyZ2V0OiBudWxsLFxuICAgIHNraXBJbml0aWFsOiB0cnVlLFxuICAgIGNhbGxiYWNrOiAoKSA9PiBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX3VwZGF0ZU92ZXJmbG93U3RhdGUoKSksXG4gIH0pO1xuXG4gIHByaXZhdGUgX2RpYWxvZ0VsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfaXNQb2ludGVyRG93bkV2ZW50T25EaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJvdGVjdGVkIGNsb3NlQXR0cmlidXRlOiBzdHJpbmcgPSAnc2JiLWRpYWxvZy1jbG9zZSc7XG4gIHByb3RlY3RlZCBvdmVycmlkZSBjbG9zZVRhZzogc3RyaW5nID0gJ3NiYi1kaWFsb2ctY2xvc2UtYnV0dG9uJztcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICAvLyBDbG9zZSBkaWFsb2cgb24gYmFja2Ryb3AgY2xpY2tcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LigncG9pbnRlcmRvd24nLCB0aGlzLl9wb2ludGVyRG93bkxpc3RlbmVyKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LigncG9pbnRlcnVwJywgdGhpcy5fY2xvc2VPbkJhY2tkcm9wQ2xpY2spO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4gdGhpcy5fdXBkYXRlT3ZlcmZsb3dTdGF0ZSgpLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLmlkIHx8PSBgc2JiLWRpYWxvZy0ke25leHRJZCsrfWA7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgfVxuXG4gIC8qKiBBbm5vdW5jZSB0aGUgYWNjZXNzaWJpbGl0eSBsYWJlbCBvciBkaWFsb2cgdGl0bGUgZm9yIHNjcmVlbiByZWFkZXJzLiAqL1xuICBwdWJsaWMgYW5ub3VuY2VUaXRsZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNldEFyaWFMaXZlUmVmQ29udGVudChcbiAgICAgIHRoaXMuYWNjZXNzaWJpbGl0eUxhYmVsIHx8IHRoaXMucXVlcnlTZWxlY3Rvcignc2JiLWRpYWxvZy10aXRsZScpPy5pbm5lclRleHQudHJpbSgpLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKHRoaXMsICctLXNiYi1kaWFsb2ctYW5pbWF0aW9uLWR1cmF0aW9uJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xvc2luZygpOiB2b2lkIHtcbiAgICBjb25zdCBjb250ZW50RWxlbWVudCA9IHRoaXMuX2NvbnRlbnRFbGVtZW50KCk7XG5cbiAgICBjb250ZW50RWxlbWVudD8uc2Nyb2xsVG8oMCwgMCk7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMuaGlkZVBvcG92ZXI/LigpO1xuXG4gICAgdGhpcy5pbmVydENvbnRyb2xsZXIuZGVhY3RpdmF0ZSgpO1xuICAgIGlmICghdGhpcy5za2lwRm9jdXNSZXN0b3JhdGlvbikge1xuICAgICAgLy8gTWFudWFsbHkgZm9jdXMgbGFzdCBmb2N1c2VkIGVsZW1lbnRcbiAgICAgIHRoaXMubGFzdEZvY3VzZWRFbGVtZW50Py5mb2N1cygpO1xuICAgIH1cbiAgICB0aGlzLm9wZW5PdmVybGF5Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLmZvY3VzVHJhcENvbnRyb2xsZXIuZW5hYmxlZCA9IGZhbHNlO1xuICAgIGlmIChjb250ZW50RWxlbWVudCkge1xuICAgICAgdGhpcy5fZGlhbG9nQ29udGVudFJlc2l6ZU9ic2VydmVyLmhvc3REaXNjb25uZWN0ZWQoKTtcbiAgICB9XG4gICAgdGhpcy5yZW1vdmVJbnN0YW5jZUZyb21HbG9iYWxDb2xsZWN0aW9uKCk7XG4gICAgLy8gRW5hYmxlIHNjcm9sbGluZyBmb3IgY29udGVudCBiZWxvdyB0aGUgZGlhbG9nIGlmIG5vIGRpYWxvZyBpcyBvcGVuXG4gICAgaWYgKCFvdmVybGF5UmVmcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2Nyb2xsSGFuZGxlci5lbmFibGVTY3JvbGwoKTtcbiAgICB9XG4gICAgdGhpcy5lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5kaXNwYXRjaENsb3NlRXZlbnQoe1xuICAgICAgcmV0dXJuVmFsdWU6IHRoaXMucmV0dXJuVmFsdWUsXG4gICAgICBjbG9zZVRhcmdldDogdGhpcy5vdmVybGF5Q2xvc2VFbGVtZW50LFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIHRoaXMuaW5lcnRDb250cm9sbGVyLmFjdGl2YXRlKCk7XG4gICAgdGhpcy5mb2N1c1RyYXBDb250cm9sbGVyLmZvY3VzSW5pdGlhbEVsZW1lbnQoKTtcbiAgICB0aGlzLmZvY3VzVHJhcENvbnRyb2xsZXIuZW5hYmxlZCA9IHRydWU7XG4gICAgLy8gVXNlIHRpbWVvdXQgdG8gcmVhZCBsYWJlbCBhZnRlciBmb2N1c2VkIGVsZW1lbnRcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuYW5ub3VuY2VUaXRsZSgpKTtcblxuICAgIGNvbnN0IGNvbnRlbnRFbGVtZW50ID0gdGhpcy5fY29udGVudEVsZW1lbnQoKTtcbiAgICBpZiAoY29udGVudEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX2RpYWxvZ0NvbnRlbnRSZXNpemVPYnNlcnZlci5vYnNlcnZlKGNvbnRlbnRFbGVtZW50KTtcbiAgICB9XG4gICAgdGhpcy5kaXNwYXRjaE9wZW5FdmVudCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgLy8gSWYgdGhlIGNvbXBvbmVudCBpcyBhbHJlYWR5IG9wZW4gb24gZmlyc3RVcGRhdGUsIGFubm91bmNlIHRoZSB0aXRsZVxuICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgdGhpcy5hbm5vdW5jZVRpdGxlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fc3luY1RpdGxlTmVnYXRpdmUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbmVnYXRpdmUnKSkge1xuICAgICAgdGhpcy5fc3luY1RpdGxlTmVnYXRpdmUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVTbG90Q2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuX3N5bmNUaXRsZU5lZ2F0aXZlKCk7XG4gICAgdGhpcy5fZGV0ZWN0SW50ZXJtZWRpYXRlRWxlbWVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3luY1RpdGxlTmVnYXRpdmUoKTogdm9pZCB7XG4gICAgY29uc3QgZGlhbG9nVGl0bGUgPSB0aGlzLnF1ZXJ5U2VsZWN0b3I/Lignc2JiLWRpYWxvZy10aXRsZScpO1xuICAgIGNvbnN0IGNsb3NlQnV0dG9uID0gdGhpcy5xdWVyeVNlbGVjdG9yPy4oJ3NiYi1kaWFsb2ctY2xvc2UtYnV0dG9uJyk7XG5cbiAgICBpZiAoZGlhbG9nVGl0bGUpIHtcbiAgICAgIGRpYWxvZ1RpdGxlLm5lZ2F0aXZlID0gdGhpcy5uZWdhdGl2ZTtcbiAgICB9XG5cbiAgICBpZiAoY2xvc2VCdXR0b24pIHtcbiAgICAgIGNsb3NlQnV0dG9uLm5lZ2F0aXZlID0gdGhpcy5uZWdhdGl2ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9kZXRlY3RJbnRlcm1lZGlhdGVFbGVtZW50KCk6IHZvaWQge1xuICAgIGNvbnN0IGhhc05vRXhwZWN0ZWREaXJlY3RDaGlsZHJlbiA9XG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICc6c2NvcGUgPiA6aXMoc2JiLWRpYWxvZy10aXRsZSwgc2JiLWRpYWxvZy1jbG9zZS1idXR0b24sIHNiYi1kaWFsb2ctY29udGVudCwgc2JiLWRpYWxvZy1hY3Rpb25zKScsXG4gICAgICApID09PSBudWxsO1xuXG4gICAgdGhpcy50b2dnbGVTdGF0ZSgnaGFzLWludGVybWVkaWF0ZS1lbGVtZW50JywgaGFzTm9FeHBlY3RlZERpcmVjdENoaWxkcmVuKTtcbiAgfVxuXG4gIC8qKiBDaGVjayBpZiB0aGUgcG9pbnRlcmRvd24gZXZlbnQgdGFyZ2V0IGlzIHRyaWdnZXJlZCBvbiB0aGUgZGlhbG9nLiAqL1xuICBwcml2YXRlIF9wb2ludGVyRG93bkxpc3RlbmVyID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAodGhpcy5iYWNrZHJvcEFjdGlvbiAhPT0gJ2Nsb3NlJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uRGlhbG9nID1cbiAgICAgICEhdGhpcy5fZGlhbG9nRWxlbWVudCAmJiBldmVudC5jb21wb3NlZFBhdGgoKS5pbmNsdWRlcyh0aGlzLl9kaWFsb2dFbGVtZW50KTtcbiAgfTtcblxuICAvKiogQ2xvc2UgZGlhbG9nIG9uIGJhY2tkcm9wIGNsaWNrLiAqL1xuICBwcml2YXRlIF9jbG9zZU9uQmFja2Ryb3BDbGljayA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5iYWNrZHJvcEFjdGlvbiA9PT0gJ2Nsb3NlJyAmJlxuICAgICAgIXRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uRGlhbG9nICYmXG4gICAgICB0aGlzLl9kaWFsb2dFbGVtZW50ICYmXG4gICAgICAhZXZlbnQuY29tcG9zZWRQYXRoKCkuaW5jbHVkZXModGhpcy5fZGlhbG9nRWxlbWVudClcbiAgICApIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfdXBkYXRlT3ZlcmZsb3dTdGF0ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBjb250ZW50RWxlbWVudCA9IHRoaXMuX2NvbnRlbnRFbGVtZW50KCk7XG4gICAgdGhpcy50b2dnbGVTdGF0ZSgndG9wLXNoYWRvdycsIChjb250ZW50RWxlbWVudD8uc2Nyb2xsVG9wID8/IDApID4gMCk7XG4gICAgdGhpcy50b2dnbGVTdGF0ZShcbiAgICAgICdib3R0b20tc2hhZG93JyxcbiAgICAgIChjb250ZW50RWxlbWVudD8uc2Nyb2xsVG9wID8/IDApICsgKGNvbnRlbnRFbGVtZW50Py5vZmZzZXRIZWlnaHQgPz8gMCkgPFxuICAgICAgICAoY29udGVudEVsZW1lbnQ/LnNjcm9sbEhlaWdodCA/PyAwKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29udGVudEVsZW1lbnQoKTogU2JiRGlhbG9nQ29udGVudEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yKCdzYmItZGlhbG9nLWNvbnRlbnQnKTtcbiAgfVxuXG4gIC8vIFRPRE86IHJlbW92ZSBwYXJhbWV0ZXIgYGRldGFpbGBcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGRpc3BhdGNoQmVmb3JlQ2xvc2VFdmVudChfZGV0YWlsPzogU2JiT3ZlcmxheUNsb3NlRXZlbnREZXRhaWxzKTogYm9vbGVhbiB7XG4gICAgLyoqIEB0eXBlIHtTYmJEaWFsb2dDbG9zZUV2ZW50fSBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGJlZ2lucyB0aGUgY2xvc2luZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuICovXG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBTYmJEaWFsb2dDbG9zZUV2ZW50KCdiZWZvcmVjbG9zZScsIHtcbiAgICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICAgICAgY2xvc2VBdHRyaWJ1dGU6IHRoaXMuY2xvc2VBdHRyaWJ1dGUsXG4gICAgICAgIGNsb3NlVGFyZ2V0OiB0aGlzLm92ZXJsYXlDbG9zZUVsZW1lbnQsXG4gICAgICAgIHJlc3VsdDogdGhpcy5yZXR1cm5WYWx1ZSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICAvLyBUT0RPOiByZW1vdmUgcGFyYW1ldGVyIGBkZXRhaWxgXG4gIHByb3RlY3RlZCBvdmVycmlkZSBkaXNwYXRjaENsb3NlRXZlbnQoX2RldGFpbD86IFNiYk92ZXJsYXlDbG9zZUV2ZW50RGV0YWlscyk6IGJvb2xlYW4ge1xuICAgIC8qKiBAdHlwZSB7U2JiRGlhbG9nQ2xvc2VFdmVudH0gRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBpcyBjbG9zZWQuICovXG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBTYmJEaWFsb2dDbG9zZUV2ZW50KCdjbG9zZScsIHtcbiAgICAgICAgY2xvc2VBdHRyaWJ1dGU6IHRoaXMuY2xvc2VBdHRyaWJ1dGUsXG4gICAgICAgIGNsb3NlVGFyZ2V0OiB0aGlzLm92ZXJsYXlDbG9zZUVsZW1lbnQsXG4gICAgICAgIHJlc3VsdDogdGhpcy5yZXR1cm5WYWx1ZSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItZGlhbG9nX19jb250YWluZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIEBhbmltYXRpb25lbmQ9JHt0aGlzLm9uT3ZlcmxheUFuaW1hdGlvbkVuZH1cbiAgICAgICAgICBjbGFzcz1cInNiYi1kaWFsb2dcIlxuICAgICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpID0+ICh0aGlzLl9kaWFsb2dFbGVtZW50ID0gZWwgYXMgSFRNTERpdkVsZW1lbnQpKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIEBjbGljaz0keyhldmVudDogRXZlbnQpID0+IHRoaXMuY2xvc2VPblNiYk92ZXJsYXlDbG9zZUNsaWNrKGV2ZW50KX1cbiAgICAgICAgICAgIGNsYXNzPVwic2JiLWRpYWxvZ19fd3JhcHBlclwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHsoKSA9PiB0aGlzLl9oYW5kbGVTbG90Q2hhbmdlKCl9Pjwvc2xvdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzYmItc2NyZWVuLXJlYWRlci1vbmx5IGFyaWEtbGl2ZT1cInBvbGl0ZVwiPjwvc2JiLXNjcmVlbi1yZWFkZXItb25seT5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZGlhbG9nJzogU2JiRGlhbG9nRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlNiYkRpYWxvZ0Nsb3NlRXZlbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXlCQSxJQUFJLFNBQVM7SUFZUCxvQkFBZ0IsTUFBQTs7MEJBRHJCLGNBQWMsWUFBWSxDQUFDOzs7O29CQUNHOzs7Ozs7O0FBQVIsRUFBQSxtQkFBUSxZQUFxQjtBQUFBLElBMkJsRCxjQUFBO0FBQ0UsWUFBQTtBQXhCMEM7QUFJUTtBQUpRLHlCQUFBLGtDQUFBLGtCQUFBLE1BQUEsOEJBQzFELE9BQU87QUFHMkQseUJBQUEsNkJBQUEsa0JBQUEsTUFBQSxpQ0FBQSxHQUFBLGtCQUFBLE1BQUEsd0JBRWhELFFBQVE7QUFNcEIsV0FBQSxnQ0FBNEIsa0JBQUEsTUFBQSwyQkFBQSxHQUFHLElBQUksaUJBQWlCLE1BQU07QUFBQSxRQUNoRSxRQUFRO0FBQUEsUUFDUixhQUFhO0FBQUEsUUFDYixVQUFVLE1BQU0sV0FBVyxNQUFNLEtBQUssc0JBQXNCO0FBQUEsTUFBQSxDQUM3RDtBQUdPLFdBQUEsOEJBQXVDO0FBQ3JDLFdBQUEsaUJBQXlCO0FBQ2hCLFdBQUEsV0FBbUI7QUF3SDlCLFdBQUEsdUJBQXVCLENBQUMsVUFBNkI7QUFDM0QsWUFBSSxLQUFLLG1CQUFtQixTQUFTO0FBQ25DO0FBQUEsUUFDRjtBQUVBLGFBQUssOEJBQ0gsQ0FBQyxDQUFDLEtBQUssa0JBQWtCLE1BQU0sZUFBZSxTQUFTLEtBQUssY0FBYztBQUFBLE1BQzlFO0FBR1EsV0FBQSx3QkFBd0IsQ0FBQyxVQUE2QjtBQUM1RCxZQUNFLEtBQUssbUJBQW1CLFdBQ3hCLENBQUMsS0FBSywrQkFDTixLQUFLLGtCQUNMLENBQUMsTUFBTSxhQUFBLEVBQWUsU0FBUyxLQUFLLGNBQWMsR0FDbEQ7QUFDQSxlQUFLLE1BQUE7QUFBQSxRQUNQO0FBQUEsTUFDRjtBQXRJRSxXQUFLLG1CQUFtQixlQUFlLEtBQUssb0JBQW9CO0FBQ2hFLFdBQUssbUJBQW1CLGFBQWEsS0FBSyxxQkFBcUI7QUFDL0QsV0FBSyxpQkFBaUIsVUFBVSxNQUFNLEtBQUssd0JBQXdCO0FBQUEsUUFDakUsU0FBUztBQUFBLFFBQ1QsU0FBUztBQUFBLE1BQUEsQ0FDVjtBQUFBLElBQ0g7QUFBQTtBQUFBLElBaEM0QyxJQUFnQixpQkFBYztBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBOUIsSUFBZ0IsZUFBYyxPQUFBO0FBQUEseUJBQUEsa0NBQUE7QUFBQSxJQUFBO0FBQUE7QUFBQSxJQUl0QixJQUFnQixXQUFRO0FBQUEsYUFBQSxtQkFBQTtBQUFBLElBQUE7QUFBQSxJQUF4QixJQUFnQixTQUFRLE9BQUE7QUFBQSx5QkFBQSw0QkFBQTtBQUFBLElBQUE7QUFBQSxJQThCNUQsb0JBQWlCO0FBQy9CLFdBQUssT0FBTyxjQUFjLFFBQVE7QUFDbEMsWUFBTSxrQkFBQTtBQUFBLElBQ1I7QUFBQTtBQUFBLElBR08sZ0JBQWE7QUFDbEIsV0FBSyxzQkFDSCxLQUFLLHNCQUFzQixLQUFLLGNBQWMsa0JBQWtCLEdBQUcsVUFBVSxNQUFNO0FBQUEsSUFFdkY7QUFBQSxJQUVVLDBCQUF1QjtBQUMvQixhQUFPLHdCQUF3QixNQUFNLGlDQUFpQztBQUFBLElBQ3hFO0FBQUEsSUFFVSxnQkFBYTtBQUNyQixZQUFNLGlCQUFpQixLQUFLLGdCQUFBO0FBRTVCLHNCQUFnQixTQUFTLEdBQUcsQ0FBQztBQUM3QixXQUFLLFFBQVE7QUFDYixXQUFLLGNBQUE7QUFFTCxXQUFLLGdCQUFnQixXQUFBO0FBQ3JCLFVBQUksQ0FBQyxLQUFLLHNCQUFzQjtBQUU5QixhQUFLLG9CQUFvQixNQUFBO0FBQUEsTUFDM0I7QUFDQSxXQUFLLHVCQUF1QixNQUFBO0FBQzVCLFdBQUssb0JBQW9CLFVBQVU7QUFDbkMsVUFBSSxnQkFBZ0I7QUFDbEIsYUFBSyw2QkFBNkIsaUJBQUE7QUFBQSxNQUNwQztBQUNBLFdBQUssbUNBQUE7QUFFTCxVQUFJLENBQUMsWUFBWSxRQUFRO0FBQ3ZCLGFBQUssY0FBYyxhQUFBO0FBQUEsTUFDckI7QUFDQSxXQUFLLDJCQUEyQixXQUFBO0FBQ2hDLFdBQUssbUJBQW1CO0FBQUEsUUFDdEIsYUFBYSxLQUFLO0FBQUEsUUFDbEIsYUFBYSxLQUFLO0FBQUEsTUFBQSxDQUNuQjtBQUFBLElBQ0g7QUFBQSxJQUVVLGdCQUFhO0FBQ3JCLFdBQUssUUFBUTtBQUNiLFdBQUssZ0JBQWdCLFNBQUE7QUFDckIsV0FBSyxvQkFBb0Isb0JBQUE7QUFDekIsV0FBSyxvQkFBb0IsVUFBVTtBQUVuQyxpQkFBVyxNQUFNLEtBQUssZUFBZTtBQUVyQyxZQUFNLGlCQUFpQixLQUFLLGdCQUFBO0FBQzVCLFVBQUksZ0JBQWdCO0FBQ2xCLGFBQUssNkJBQTZCLFFBQVEsY0FBYztBQUFBLE1BQzFEO0FBQ0EsV0FBSyxrQkFBQTtBQUFBLElBQ1A7QUFBQSxJQUVtQixhQUFhLG1CQUF1QztBQUNyRSxZQUFNLGFBQWEsaUJBQWlCO0FBR3BDLFVBQUksS0FBSyxRQUFRO0FBQ2YsYUFBSyxjQUFBO0FBQUEsTUFDUDtBQUVBLFdBQUssbUJBQUE7QUFBQSxJQUNQO0FBQUEsSUFFbUIsV0FBVyxtQkFBdUM7QUFDbkUsWUFBTSxXQUFXLGlCQUFpQjtBQUVsQyxVQUFJLGtCQUFrQixJQUFJLFVBQVUsR0FBRztBQUNyQyxhQUFLLG1CQUFBO0FBQUEsTUFDUDtBQUFBLElBQ0Y7QUFBQSxJQUVRLG9CQUFpQjtBQUN2QixXQUFLLG1CQUFBO0FBQ0wsV0FBSywyQkFBQTtBQUFBLElBQ1A7QUFBQSxJQUVRLHFCQUFrQjtBQUN4QixZQUFNLGNBQWMsS0FBSyxnQkFBZ0Isa0JBQWtCO0FBQzNELFlBQU0sY0FBYyxLQUFLLGdCQUFnQix5QkFBeUI7QUFFbEUsVUFBSSxhQUFhO0FBQ2Ysb0JBQVksV0FBVyxLQUFLO0FBQUEsTUFDOUI7QUFFQSxVQUFJLGFBQWE7QUFDZixvQkFBWSxXQUFXLEtBQUs7QUFBQSxNQUM5QjtBQUFBLElBQ0Y7QUFBQSxJQUVRLDZCQUEwQjtBQUNoQyxZQUFNLDhCQUNKLEtBQUssY0FDSCxpR0FBaUcsTUFDN0Y7QUFFUixXQUFLLFlBQVksNEJBQTRCLDJCQUEyQjtBQUFBLElBQzFFO0FBQUEsSUF3QlEsdUJBQW9CO0FBQzFCLFlBQU0saUJBQWlCLEtBQUssZ0JBQUE7QUFDNUIsV0FBSyxZQUFZLGVBQWUsZ0JBQWdCLGFBQWEsS0FBSyxDQUFDO0FBQ25FLFdBQUssWUFDSCxrQkFDQyxnQkFBZ0IsYUFBYSxNQUFNLGdCQUFnQixnQkFBZ0IsTUFDakUsZ0JBQWdCLGdCQUFnQixFQUFFO0FBQUEsSUFFekM7QUFBQSxJQUVRLGtCQUFlO0FBQ3JCLGFBQU8sS0FBSyxjQUFjLG9CQUFvQjtBQUFBLElBQ2hEO0FBQUE7QUFBQSxJQUdtQix5QkFBeUIsU0FBcUM7QUFFL0UsYUFBTyxLQUFLLGNBQ1YsSUFBSUEscUJBQW9CLGVBQWU7QUFBQSxRQUNyQyxZQUFZO0FBQUEsUUFDWixnQkFBZ0IsS0FBSztBQUFBLFFBQ3JCLGFBQWEsS0FBSztBQUFBLFFBQ2xCLFFBQVEsS0FBSztBQUFBLE1BQUEsQ0FDZCxDQUFDO0FBQUEsSUFFTjtBQUFBO0FBQUEsSUFHbUIsbUJBQW1CLFNBQXFDO0FBRXpFLGFBQU8sS0FBSyxjQUNWLElBQUlBLHFCQUFvQixTQUFTO0FBQUEsUUFDL0IsZ0JBQWdCLEtBQUs7QUFBQSxRQUNyQixhQUFhLEtBQUs7QUFBQSxRQUNsQixRQUFRLEtBQUs7QUFBQSxNQUFBLENBQ2QsQ0FBQztBQUFBLElBRU47QUFBQSxJQUVtQixTQUFNO0FBQ3ZCLGFBQU87QUFBQTtBQUFBO0FBQUEsMEJBR2UsS0FBSyxxQkFBcUI7QUFBQTtBQUFBLFlBRXhDLElBQUksQ0FBQyxPQUFrQixLQUFLLGlCQUFpQixFQUFxQixDQUFDO0FBQUE7QUFBQTtBQUFBLHFCQUcxRCxDQUFDLFVBQWlCLEtBQUssNEJBQTRCLEtBQUssQ0FBQztBQUFBO0FBQUE7QUFBQSxnQ0FHOUMsTUFBTSxLQUFLLG1CQUFtQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQU01RDtBQUFBLEtBM040QyxrREFJUTs7QUFKbkQsaUNBQUEsQ0FBQSxTQUFTLEVBQUUsV0FBVyxrQkFBQSxDQUFtQixDQUFDOzRCQUkxQyxTQUFTLEVBQUUsV0FBVyxZQUFZLFNBQVMsS0FBQSxDQUFNLENBQUM7QUFKUCxpQkFBQSxJQUFBLE1BQUEsNEJBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxrQkFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxvQkFBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQWdCLGdCQUFjLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFkLGlCQUFjO0FBQUEsSUFBQSxLQUFBLFVBQUEsVUFBQSxHQUFBLDhCQUFBLGlDQUFBO0FBSXRCLGlCQUFBLElBQUEsTUFBQSxzQkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLFlBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsY0FBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQWdCLFVBQVEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVIsV0FBUTtBQUFBLElBQUEsS0FBQSxVQUFBLFVBQUEsR0FBQSx3QkFBQSwyQkFBQTtBQVI5RSxpQkFBQSxNQUFBLG1CQUFBLEVBQUEsT0FBQSxXQUFBLEdBQUEsa0JBQUEsRUFBQSxNQUFBLFNBQUEsTUFBQSxXQUFBLE1BQUEsVUFBQSxVQUFBLEdBQUEsTUFBQSx1QkFBQTs7O1FBQ3lCLEdBQUEsU0FBeUIsQ0FBQyxpQkFBaUIsS0FBSyxHQURuRSxrQkFBQSxZQUFBLHVCQUFBLEdBQWlCOzs7In0=
390
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2RpYWxvZy9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXNpemVDb250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9yZXNpemUtY29udHJvbGxlci5qcyc7XG5pbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eVZhbHVlcywgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB7IGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uIH0gZnJvbSAnLi4vLi4vY29yZS9kb20udHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJPdmVybGF5Q2xvc2VFdmVudERldGFpbHMgfSBmcm9tICcuLi8uLi9jb3JlL2ludGVyZmFjZXMvb3ZlcmxheS1jbG9zZS1kZXRhaWxzLnRzJztcbmltcG9ydCB7IGJveFNpemluZ1N0eWxlcyB9IGZyb20gJy4uLy4uL2NvcmUvc3R5bGVzLnRzJztcbmltcG9ydCB7XG4gIG92ZXJsYXlSZWZzLFxuICBTYmJPdmVybGF5QmFzZUVsZW1lbnQsXG4gIFNiYk92ZXJsYXlDbG9zZUV2ZW50IGFzIFNiYkRpYWxvZ0Nsb3NlRXZlbnQsXG59IGZyb20gJy4uLy4uL292ZXJsYXkudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJEaWFsb2dDb250ZW50RWxlbWVudCB9IGZyb20gJy4uL2RpYWxvZy1jb250ZW50L2RpYWxvZy1jb250ZW50LmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2RpYWxvZy5zY3NzP2xpdCZpbmxpbmUnO1xuXG5pbXBvcnQgJy4uLy4uL3NjcmVlbi1yZWFkZXItb25seS50cyc7XG5cbmV4cG9ydCB7XG4gIGFzc2lnbk92ZXJsYXlSZXN1bHQgYXMgYXNzaWduRGlhbG9nUmVzdWx0LFxuICBTYmJPdmVybGF5Q2xvc2VFdmVudCBhcyBTYmJEaWFsb2dDbG9zZUV2ZW50LFxufSBmcm9tICcuLi8uLi9vdmVybGF5L292ZXJsYXktYmFzZS1lbGVtZW50LnRzJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYW4gaW50ZXJhY3RpdmUgb3ZlcmxheSBlbGVtZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gcHJvdmlkZSBhIGBzYmItZGlhbG9nLXRpdGxlYCwgYHNiYi1kaWFsb2ctY29udGVudGAgYW5kIGFuIG9wdGlvbmFsIGBzYmItZGlhbG9nLWFjdGlvbnNgLlxuICogQGNzc3Byb3AgWy0tc2JiLWRpYWxvZy16LWluZGV4PXZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCldIC0gVG8gc3BlY2lmeSBhIGN1c3RvbSBzdGFjayBvcmRlcixcbiAqIHRoZSBgei1pbmRleGAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgdGhpcyBDU1MgdmFyaWFibGUuIFRoZSBkZWZhdWx0IGB6LWluZGV4YCBvZiB0aGVcbiAqIGNvbXBvbmVudCBpcyBzZXQgdG8gYHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleClgIHdpdGggYSB2YWx1ZSBvZiBgMTAwMGAuXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1kaWFsb2cnKVxuY2xhc3MgU2JiRGlhbG9nRWxlbWVudCBleHRlbmRzIFNiYk92ZXJsYXlCYXNlRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHN0eWxlXTtcblxuICAvKiogQmFja2Ryb3AgY2xpY2sgYWN0aW9uLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdiYWNrZHJvcC1hY3Rpb24nIH0pIHB1YmxpYyBhY2Nlc3NvciBiYWNrZHJvcEFjdGlvbjogJ2Nsb3NlJyB8ICdub25lJyA9XG4gICAgJ2Nsb3NlJztcblxuICAvKiogQmFja2Ryb3AgZGVuc2l0eS4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYmFja2Ryb3AnLCByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBiYWNrZHJvcDpcbiAgICB8ICdvcGFxdWUnXG4gICAgfCAndHJhbnNsdWNlbnQnID0gJ29wYXF1ZSc7XG5cbiAgLy8gV2UgdXNlIGEgdGltZW91dCBhcyBhIHdvcmthcm91bmQgdG8gdGhlIFwiUmVzaXplT2JzZXJ2ZXIgbG9vcCBjb21wbGV0ZWQgd2l0aCB1bmRlbGl2ZXJlZCBub3RpZmljYXRpb25zXCIgZXJyb3IuXG4gIC8vIEZvciBtb3JlIGRldGFpbHM6XG4gIC8vIC0gaHR0cHM6Ly9naXRodWIuY29tL1dJQ0cvcmVzaXplLW9ic2VydmVyL2lzc3Vlcy8zOCNpc3N1ZWNvbW1lbnQtNDIyMTI2MDA2XG4gIC8vIC0gaHR0cHM6Ly9naXRodWIuY29tL2p1Z2dsZS9yZXNpemUtb2JzZXJ2ZXIvaXNzdWVzLzEwMyNpc3N1ZWNvbW1lbnQtMTcxMTE0ODI4NVxuICBwcml2YXRlIF9kaWFsb2dDb250ZW50UmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplQ29udHJvbGxlcih0aGlzLCB7XG4gICAgdGFyZ2V0OiBudWxsLFxuICAgIHNraXBJbml0aWFsOiB0cnVlLFxuICAgIGNhbGxiYWNrOiAoKSA9PiBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX3VwZGF0ZU92ZXJmbG93U3RhdGUoKSksXG4gIH0pO1xuXG4gIHByaXZhdGUgX2RpYWxvZ0VsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfaXNQb2ludGVyRG93bkV2ZW50T25EaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJvdGVjdGVkIGNsb3NlQXR0cmlidXRlOiBzdHJpbmcgPSAnc2JiLWRpYWxvZy1jbG9zZSc7XG4gIHByb3RlY3RlZCBvdmVycmlkZSBjbG9zZVRhZzogc3RyaW5nID0gJ3NiYi1kaWFsb2ctY2xvc2UtYnV0dG9uJztcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICAvLyBDbG9zZSBkaWFsb2cgb24gYmFja2Ryb3AgY2xpY2tcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LigncG9pbnRlcmRvd24nLCB0aGlzLl9wb2ludGVyRG93bkxpc3RlbmVyKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LigncG9pbnRlcnVwJywgdGhpcy5fY2xvc2VPbkJhY2tkcm9wQ2xpY2spO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4gdGhpcy5fdXBkYXRlT3ZlcmZsb3dTdGF0ZSgpLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLmlkIHx8PSBgc2JiLWRpYWxvZy0ke25leHRJZCsrfWA7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgfVxuXG4gIC8qKiBBbm5vdW5jZSB0aGUgYWNjZXNzaWJpbGl0eSBsYWJlbCBvciBkaWFsb2cgdGl0bGUgZm9yIHNjcmVlbiByZWFkZXJzLiAqL1xuICBwdWJsaWMgYW5ub3VuY2VUaXRsZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNldEFyaWFMaXZlUmVmQ29udGVudChcbiAgICAgIHRoaXMuYWNjZXNzaWJpbGl0eUxhYmVsIHx8IHRoaXMucXVlcnlTZWxlY3Rvcignc2JiLWRpYWxvZy10aXRsZScpPy5pbm5lclRleHQudHJpbSgpLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKHRoaXMsICctLXNiYi1kaWFsb2ctYW5pbWF0aW9uLWR1cmF0aW9uJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xvc2luZygpOiB2b2lkIHtcbiAgICBjb25zdCBjb250ZW50RWxlbWVudCA9IHRoaXMuX2NvbnRlbnRFbGVtZW50KCk7XG5cbiAgICBjb250ZW50RWxlbWVudD8uc2Nyb2xsVG8oMCwgMCk7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMuaGlkZVBvcG92ZXI/LigpO1xuXG4gICAgdGhpcy5pbmVydENvbnRyb2xsZXIuZGVhY3RpdmF0ZSgpO1xuICAgIGlmICghdGhpcy5za2lwRm9jdXNSZXN0b3JhdGlvbikge1xuICAgICAgLy8gTWFudWFsbHkgZm9jdXMgbGFzdCBmb2N1c2VkIGVsZW1lbnRcbiAgICAgIHRoaXMubGFzdEZvY3VzZWRFbGVtZW50Py5mb2N1cygpO1xuICAgIH1cbiAgICB0aGlzLm9wZW5PdmVybGF5Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLmZvY3VzVHJhcENvbnRyb2xsZXIuZW5hYmxlZCA9IGZhbHNlO1xuICAgIGlmIChjb250ZW50RWxlbWVudCkge1xuICAgICAgdGhpcy5fZGlhbG9nQ29udGVudFJlc2l6ZU9ic2VydmVyLmhvc3REaXNjb25uZWN0ZWQoKTtcbiAgICB9XG4gICAgdGhpcy5yZW1vdmVJbnN0YW5jZUZyb21HbG9iYWxDb2xsZWN0aW9uKCk7XG4gICAgLy8gRW5hYmxlIHNjcm9sbGluZyBmb3IgY29udGVudCBiZWxvdyB0aGUgZGlhbG9nIGlmIG5vIGRpYWxvZyBpcyBvcGVuXG4gICAgaWYgKCFvdmVybGF5UmVmcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2Nyb2xsSGFuZGxlci5lbmFibGVTY3JvbGwoKTtcbiAgICB9XG4gICAgdGhpcy5lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5kaXNwYXRjaENsb3NlRXZlbnQoe1xuICAgICAgcmV0dXJuVmFsdWU6IHRoaXMucmV0dXJuVmFsdWUsXG4gICAgICBjbG9zZVRhcmdldDogdGhpcy5vdmVybGF5Q2xvc2VFbGVtZW50LFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIHRoaXMuaW5lcnRDb250cm9sbGVyLmFjdGl2YXRlKCk7XG4gICAgdGhpcy5mb2N1c1RyYXBDb250cm9sbGVyLmZvY3VzSW5pdGlhbEVsZW1lbnQoKTtcbiAgICB0aGlzLmZvY3VzVHJhcENvbnRyb2xsZXIuZW5hYmxlZCA9IHRydWU7XG4gICAgLy8gVXNlIHRpbWVvdXQgdG8gcmVhZCBsYWJlbCBhZnRlciBmb2N1c2VkIGVsZW1lbnRcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuYW5ub3VuY2VUaXRsZSgpKTtcblxuICAgIGNvbnN0IGNvbnRlbnRFbGVtZW50ID0gdGhpcy5fY29udGVudEVsZW1lbnQoKTtcbiAgICBpZiAoY29udGVudEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX2RpYWxvZ0NvbnRlbnRSZXNpemVPYnNlcnZlci5vYnNlcnZlKGNvbnRlbnRFbGVtZW50KTtcbiAgICB9XG4gICAgdGhpcy5kaXNwYXRjaE9wZW5FdmVudCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgLy8gSWYgdGhlIGNvbXBvbmVudCBpcyBhbHJlYWR5IG9wZW4gb24gZmlyc3RVcGRhdGUsIGFubm91bmNlIHRoZSB0aXRsZVxuICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgdGhpcy5hbm5vdW5jZVRpdGxlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fc3luY1RpdGxlTmVnYXRpdmUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbmVnYXRpdmUnKSkge1xuICAgICAgdGhpcy5fc3luY1RpdGxlTmVnYXRpdmUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVTbG90Q2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuX3N5bmNUaXRsZU5lZ2F0aXZlKCk7XG4gICAgdGhpcy5fZGV0ZWN0SW50ZXJtZWRpYXRlRWxlbWVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3luY1RpdGxlTmVnYXRpdmUoKTogdm9pZCB7XG4gICAgY29uc3QgZGlhbG9nVGl0bGUgPSB0aGlzLnF1ZXJ5U2VsZWN0b3I/Lignc2JiLWRpYWxvZy10aXRsZScpO1xuICAgIGNvbnN0IGNsb3NlQnV0dG9uID0gdGhpcy5xdWVyeVNlbGVjdG9yPy4oJ3NiYi1kaWFsb2ctY2xvc2UtYnV0dG9uJyk7XG5cbiAgICBpZiAoZGlhbG9nVGl0bGUpIHtcbiAgICAgIGRpYWxvZ1RpdGxlLm5lZ2F0aXZlID0gdGhpcy5uZWdhdGl2ZTtcbiAgICB9XG5cbiAgICBpZiAoY2xvc2VCdXR0b24pIHtcbiAgICAgIGNsb3NlQnV0dG9uLm5lZ2F0aXZlID0gdGhpcy5uZWdhdGl2ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9kZXRlY3RJbnRlcm1lZGlhdGVFbGVtZW50KCk6IHZvaWQge1xuICAgIGNvbnN0IGhhc05vRXhwZWN0ZWREaXJlY3RDaGlsZHJlbiA9XG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICc6c2NvcGUgPiA6aXMoc2JiLWRpYWxvZy10aXRsZSwgc2JiLWRpYWxvZy1jbG9zZS1idXR0b24sIHNiYi1kaWFsb2ctY29udGVudCwgc2JiLWRpYWxvZy1hY3Rpb25zKScsXG4gICAgICApID09PSBudWxsO1xuXG4gICAgdGhpcy50b2dnbGVTdGF0ZSgnaGFzLWludGVybWVkaWF0ZS1lbGVtZW50JywgaGFzTm9FeHBlY3RlZERpcmVjdENoaWxkcmVuKTtcbiAgfVxuXG4gIC8qKiBDaGVjayBpZiB0aGUgcG9pbnRlcmRvd24gZXZlbnQgdGFyZ2V0IGlzIHRyaWdnZXJlZCBvbiB0aGUgZGlhbG9nLiAqL1xuICBwcml2YXRlIF9wb2ludGVyRG93bkxpc3RlbmVyID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAodGhpcy5iYWNrZHJvcEFjdGlvbiAhPT0gJ2Nsb3NlJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uRGlhbG9nID1cbiAgICAgICEhdGhpcy5fZGlhbG9nRWxlbWVudCAmJiBldmVudC5jb21wb3NlZFBhdGgoKS5pbmNsdWRlcyh0aGlzLl9kaWFsb2dFbGVtZW50KTtcbiAgfTtcblxuICAvKiogQ2xvc2UgZGlhbG9nIG9uIGJhY2tkcm9wIGNsaWNrLiAqL1xuICBwcml2YXRlIF9jbG9zZU9uQmFja2Ryb3BDbGljayA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5iYWNrZHJvcEFjdGlvbiA9PT0gJ2Nsb3NlJyAmJlxuICAgICAgIXRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uRGlhbG9nICYmXG4gICAgICB0aGlzLl9kaWFsb2dFbGVtZW50ICYmXG4gICAgICAhZXZlbnQuY29tcG9zZWRQYXRoKCkuaW5jbHVkZXModGhpcy5fZGlhbG9nRWxlbWVudClcbiAgICApIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfdXBkYXRlT3ZlcmZsb3dTdGF0ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBjb250ZW50RWxlbWVudCA9IHRoaXMuX2NvbnRlbnRFbGVtZW50KCk7XG4gICAgdGhpcy50b2dnbGVTdGF0ZSgndG9wLXNoYWRvdycsIChjb250ZW50RWxlbWVudD8uc2Nyb2xsVG9wID8/IDApID4gMCk7XG4gICAgdGhpcy50b2dnbGVTdGF0ZShcbiAgICAgICdib3R0b20tc2hhZG93JyxcbiAgICAgIChjb250ZW50RWxlbWVudD8uc2Nyb2xsVG9wID8/IDApICsgKGNvbnRlbnRFbGVtZW50Py5vZmZzZXRIZWlnaHQgPz8gMCkgPFxuICAgICAgICAoY29udGVudEVsZW1lbnQ/LnNjcm9sbEhlaWdodCA/PyAwKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29udGVudEVsZW1lbnQoKTogU2JiRGlhbG9nQ29udGVudEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yKCdzYmItZGlhbG9nLWNvbnRlbnQnKTtcbiAgfVxuXG4gIC8vIFRPRE86IHJlbW92ZSBwYXJhbWV0ZXIgYGRldGFpbGBcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGRpc3BhdGNoQmVmb3JlQ2xvc2VFdmVudChfZGV0YWlsPzogU2JiT3ZlcmxheUNsb3NlRXZlbnREZXRhaWxzKTogYm9vbGVhbiB7XG4gICAgLyoqIEB0eXBlIHtTYmJEaWFsb2dDbG9zZUV2ZW50fSBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGJlZ2lucyB0aGUgY2xvc2luZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuICovXG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBTYmJEaWFsb2dDbG9zZUV2ZW50KCdiZWZvcmVjbG9zZScsIHtcbiAgICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICAgICAgY2xvc2VBdHRyaWJ1dGU6IHRoaXMuY2xvc2VBdHRyaWJ1dGUsXG4gICAgICAgIGNsb3NlVGFyZ2V0OiB0aGlzLm92ZXJsYXlDbG9zZUVsZW1lbnQsXG4gICAgICAgIHJlc3VsdDogdGhpcy5yZXR1cm5WYWx1ZSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICAvLyBUT0RPOiByZW1vdmUgcGFyYW1ldGVyIGBkZXRhaWxgXG4gIHByb3RlY3RlZCBvdmVycmlkZSBkaXNwYXRjaENsb3NlRXZlbnQoX2RldGFpbD86IFNiYk92ZXJsYXlDbG9zZUV2ZW50RGV0YWlscyk6IGJvb2xlYW4ge1xuICAgIC8qKiBAdHlwZSB7U2JiRGlhbG9nQ2xvc2VFdmVudH0gRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBpcyBjbG9zZWQuICovXG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBTYmJEaWFsb2dDbG9zZUV2ZW50KCdjbG9zZScsIHtcbiAgICAgICAgY2xvc2VBdHRyaWJ1dGU6IHRoaXMuY2xvc2VBdHRyaWJ1dGUsXG4gICAgICAgIGNsb3NlVGFyZ2V0OiB0aGlzLm92ZXJsYXlDbG9zZUVsZW1lbnQsXG4gICAgICAgIHJlc3VsdDogdGhpcy5yZXR1cm5WYWx1ZSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItZGlhbG9nX19jb250YWluZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIEBhbmltYXRpb25lbmQ9JHt0aGlzLm9uT3ZlcmxheUFuaW1hdGlvbkVuZH1cbiAgICAgICAgICBjbGFzcz1cInNiYi1kaWFsb2dcIlxuICAgICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpID0+ICh0aGlzLl9kaWFsb2dFbGVtZW50ID0gZWwgYXMgSFRNTERpdkVsZW1lbnQpKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIEBjbGljaz0keyhldmVudDogRXZlbnQpID0+IHRoaXMuY2xvc2VPblNiYk92ZXJsYXlDbG9zZUNsaWNrKGV2ZW50KX1cbiAgICAgICAgICAgIGNsYXNzPVwic2JiLWRpYWxvZ19fd3JhcHBlclwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHsoKSA9PiB0aGlzLl9oYW5kbGVTbG90Q2hhbmdlKCl9Pjwvc2xvdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzYmItc2NyZWVuLXJlYWRlci1vbmx5IGFyaWEtbGl2ZT1cInBvbGl0ZVwiPjwvc2JiLXNjcmVlbi1yZWFkZXItb25seT5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZGlhbG9nJzogU2JiRGlhbG9nRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlNiYkRpYWxvZ0Nsb3NlRXZlbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBeUJBLElBQUksU0FBUztJQVlQLG9CQUFnQixNQUFBOzswQkFEckIsY0FBYyxZQUFZLENBQUM7Ozs7b0JBQ0c7Ozs7Ozs7QUFBUixFQUFBLG1CQUFRLFlBQXFCO0FBQUEsSUEyQmxELGNBQUE7QUFDRSxZQUFBO0FBeEIwQztBQUlRO0FBSlEseUJBQUEsa0NBQUEsa0JBQUEsTUFBQSw4QkFDMUQsT0FBTztBQUcyRCx5QkFBQSw2QkFBQSxrQkFBQSxNQUFBLGlDQUFBLEdBQUEsa0JBQUEsTUFBQSx3QkFFaEQsUUFBUTtBQU1wQixXQUFBLGdDQUE0QixrQkFB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
@@ -8,8 +8,8 @@ const style = css`:host {
8
8
  display: block;
9
9
  height: fit-content;
10
10
  grid-area: close-button;
11
- margin-inline: var(--sbb-spacing-fixed-2x) var(--sbb-spacing-fixed-4x);
12
- inset-inline-end: var(--sbb-spacing-fixed-4x);
11
+ margin-inline: var(--sbb-dialog-close-button-margin-inline);
12
+ inset-inline-end: var(--sbb-dialog-close-button-inset-inline-end);
13
13
  margin-block-start: calc(var(--sbb-dialog-padding-block) + 0.5 * (var(--sbb-typo-line-height-heading) * var(--_sbb-dialog-title-size, var(--sbb-heading-font-size-4)) - var(--sbb-size-element-xs)));
14
14
  }`;
15
15
  let SbbDialogCloseButtonElement = (() => {
@@ -1,8 +1,8 @@
1
1
  var w = (e) => {
2
2
  throw TypeError(e);
3
3
  };
4
- var y = (e, i, s) => i.has(e) || w("Cannot " + s);
5
- var g = (e, i, s) => (y(e, i, "read from private field"), s ? s.call(e) : i.get(e)), h = (e, i, s) => i.has(e) ? w("Cannot add the same private member more than once") : i instanceof WeakSet ? i.add(e) : i.set(e, s), b = (e, i, s, o) => (y(e, i, "write to private field"), o ? o.call(e, s) : i.set(e, s), s);
4
+ var x = (e, a, o) => a.has(e) || w("Cannot " + o);
5
+ var h = (e, a, o) => (x(e, a, "read from private field"), o ? o.call(e) : a.get(e)), g = (e, a, o) => a.has(e) ? w("Cannot add the same private member more than once") : a instanceof WeakSet ? a.add(e) : a.set(e, o), b = (e, a, o, s) => (x(e, a, "write to private field"), s ? s.call(e, o) : a.set(e, o), o);
6
6
  import { __esDecorate as p, __runInitializers as d } from "tslib";
7
7
  import { ResizeController as S } from "@lit-labs/observers/resize-controller.js";
8
8
  import { customElement as O, property as E } from "lit/decorators.js";
@@ -11,19 +11,19 @@ import { html as A } from "lit/static-html.js";
11
11
  import { isZeroAnimationDuration as D } from "../../core/dom.js";
12
12
  import { boxSizingStyles as z } from "../../core/styles.js";
13
13
  import { SbbOverlayBaseElement as I, overlayRefs as R, SbbOverlayCloseEvent as C } from "../../overlay.js";
14
- import { css as L } from "lit";
14
+ import { css as q } from "lit";
15
15
  import "../../screen-reader-only.js";
16
16
  import { SbbOverlayCloseEvent as X, assignOverlayResult as Y } from "../../overlay/overlay-base-element.js";
17
- const q = L`:host{--sbb-dialog-padding-inline: var(--sbb-spacing-fixed-5x);--sbb-dialog-color: var(--sbb-color-2);--sbb-dialog-background-color: var(--sbb-background-color-1);--sbb-dialog-width: 100%;--sbb-dialog-height: 100%;--sbb-dialog-max-width: 100%;--sbb-dialog-max-width-default: 55.75rem;--sbb-dialog-max-height: 100%;--sbb-dialog-inset: 0 auto auto 0;--sbb-dialog-border-radius: var(--sbb-border-radius-8x);--sbb-dialog-padding-block: var(--sbb-spacing-responsive-xs);--sbb-dialog-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-6x) );--sbb-dialog-shadow-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-4x) );--sbb-dialog-animation-easing: ease;--sbb-dialog-pointer-events: none;--sbb-dialog-backdrop-visibility: hidden;--sbb-dialog-backdrop-pointer-events: none;--sbb-dialog-backdrop-color: transparent;--sbb-dialog-block-shadow: var(--sbb-box-shadow-level-9-soft);--sbb-dialog-actions-border-color: var(--sbb-background-color-4);display:none;position:fixed;inset:var(--sbb-dialog-inset);z-index:var(--sbb-dialog-z-index, var(--sbb-overlay-default-z-index))}@media(min-width:37.5rem){:host{--sbb-dialog-padding-inline: var(--sbb-spacing-fixed-12x)}}@media(min-width:64rem){:host{--sbb-dialog-padding-inline: var(--sbb-spacing-responsive-s);--sbb-dialog-max-width: min( calc(100vw - var(--sbb-spacing-fixed-30x) * 2), var(--sbb-dialog-max-width-default) );--sbb-dialog-max-height: calc(100vh - var(--sbb-spacing-fixed-16x))}}:host(:is(:state(top-shadow),[state--top-shadow])){--sbb-dialog-block-start-box-shadow: var(--sbb-dialog-block-shadow)}:host(:is(:state(bottom-shadow),[state--bottom-shadow])){--sbb-dialog-block-end-box-shadow: var(--sbb-dialog-block-shadow);--sbb-dialog-actions-border-color: transparent}:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]),:is(:state(state-closing),[state--state-closing]))){display:block}:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]))){--sbb-dialog-pointer-events: all;--sbb-dialog-backdrop-color: var(--sbb-background-color-3)}@media(min-width:64rem){:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]))){--sbb-dialog-backdrop-visibility: visible;--sbb-dialog-backdrop-pointer-events: all}}:host([backdrop=translucent]:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]))){--sbb-dialog-backdrop-color: color-mix(in srgb, var(--sbb-color-black) 50%, transparent)}:host([negative]){--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);--sbb-dialog-color: var(--sbb-color-2-negative);--sbb-dialog-background-color: var(--sbb-background-color-1-negative);--sbb-dialog-backdrop-color: var(--sbb-background-color-3-negative);--sbb-dialog-actions-border-color: var(--sbb-background-color-4-negative);--sbb-dialog-block-shadow: var(--sbb-box-shadow-level-9-soft-negative)}:host(:not(:is(:state(state-closed),[state--state-closed]))){--sbb-dialog-inset: 0}.sbb-dialog__container{pointer-events:var(--sbb-dialog-pointer-events);display:flex;align-items:center;position:fixed;inset:var(--sbb-dialog-inset)}.sbb-dialog__container:before{content:"";visibility:var(--sbb-dialog-backdrop-visibility);pointer-events:var(--sbb-dialog-backdrop-pointer-events);position:fixed;inset:var(--sbb-dialog-inset);background-color:var(--sbb-dialog-backdrop-color);transition-duration:var(--sbb-dialog-animation-duration);transition-timing-function:var(--sbb-dialog-animation-easing);transition-property:background-color,visibility}.sbb-dialog{display:none;position:absolute;inset-inline:0;margin:auto;padding:0;border:none;width:var(--sbb-dialog-width);height:var(--sbb-dialog-height);max-width:var(--sbb-dialog-max-width);max-height:var(--sbb-dialog-max-height);color:var(--sbb-dialog-color);background-color:var(--sbb-dialog-background-color)}:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]),:is(:state(state-closing),[state--state-closing]))) .sbb-dialog{display:block;animation-name:open;animation-duration:var(--sbb-dialog-animation-duration);animation-timing-function:ease}:host(:is(:state(state-closing),[state--state-closing])) .sbb-dialog{pointer-events:none;animation-name:close}@media(forced-colors:active){.sbb-dialog{outline:var(--sbb-border-width-1x) solid CanvasText}}@media(min-width:64rem){.sbb-dialog{border-radius:var(--sbb-dialog-border-radius);overflow:hidden;height:auto}}:host(:is(:state(has-intermediate-element),[state--has-intermediate-element])) ::slotted(:first-child),.sbb-dialog__wrapper{width:var(--sbb-dialog-width);height:var(--sbb-dialog-height);max-width:var(--sbb-dialog-max-width);max-height:var(--sbb-dialog-max-height)}:host(:is(:state(has-intermediate-element),[state--has-intermediate-element])) ::slotted(:first-child),:host(:not(:is(:state(has-intermediate-element),[state--has-intermediate-element]))) .sbb-dialog__wrapper{display:grid;grid-template:"title close-button" auto "content content" 1fr "actions actions" auto/1fr auto;gap:0}@keyframes open{0%{opacity:0;translate:0 var(--sbb-spacing-fixed-4x)}to{opacity:1;translate:0}}@keyframes close{0%{opacity:1;translate:0}to{opacity:0;translate:0 var(--sbb-spacing-fixed-4x)}}`;
17
+ const L = q`:host{--sbb-dialog-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-6x) );--sbb-dialog-padding-block: var(--sbb-spacing-responsive-xs);--sbb-dialog-shadow-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-4x) );display:none;position:fixed;inset:var(--sbb-dialog-inset);z-index:var(--sbb-dialog-z-index, var(--sbb-overlay-default-z-index))}@media(min-width:64rem){:host{--sbb-dialog-max-width: min( calc(100vw - var(--sbb-spacing-fixed-30x) * 2), var(--sbb-dialog-max-width-default) )}}:host(:is(:state(top-shadow),[state--top-shadow])){--sbb-dialog-block-start-box-shadow: var(--_sbb-dialog-block-shadow)}:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]),:is(:state(state-closing),[state--state-closing]))){display:block}:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]))){--sbb-dialog-pointer-events: all;--sbb-dialog-backdrop-color: var(--sbb-background-color-3)}@media(min-width:64rem){:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]))){--sbb-dialog-backdrop-visibility: visible;--sbb-dialog-backdrop-pointer-events: all}}:host([backdrop=translucent]:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]))){--sbb-dialog-backdrop-color: color-mix(in srgb, var(--sbb-color-black) 50%, transparent)}:host([backdrop=opaque]:not([negative]):is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]))){--sbb-dialog-backdrop-color: var(--sbb-background-color-3)}:host(:not([negative])){--_sbb-dialog-color: var(--sbb-dialog-color);--_sbb-dialog-block-shadow: var(--sbb-dialog-block-shadow);--sbb-dialog-actions-border-color: var(--sbb-background-color-4);--sbb-dialog-background-color: var(--sbb-background-color-1)}:host([negative]){--_sbb-dialog-color: var(--sbb-dialog-color-negative);--_sbb-dialog-block-shadow: var(--sbb-dialog-block-shadow-negative);--sbb-dialog-background-color: var(--sbb-background-color-1-negative);--sbb-dialog-actions-border-color: var(--sbb-background-color-4-negative);--sbb-dialog-backdrop-color: var(--sbb-background-color-3-negative);--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark)}:host(:is(:state(bottom-shadow),[state--bottom-shadow])){--sbb-dialog-block-end-box-shadow: var(--_sbb-dialog-block-shadow);--sbb-dialog-actions-border-color: transparent}:host(:not(:is(:state(state-closed),[state--state-closed]))){--sbb-dialog-inset: 0}.sbb-dialog__container{pointer-events:var(--sbb-dialog-pointer-events);display:flex;align-items:center;position:fixed;inset:var(--sbb-dialog-inset)}.sbb-dialog__container:before{content:"";visibility:var(--sbb-dialog-backdrop-visibility);pointer-events:var(--sbb-dialog-backdrop-pointer-events);position:fixed;inset:var(--sbb-dialog-inset);background-color:var(--sbb-dialog-backdrop-color);transition-duration:var(--sbb-dialog-animation-duration);transition-timing-function:var(--sbb-dialog-animation-easing);transition-property:background-color,visibility}.sbb-dialog{display:none;position:absolute;inset-inline:0;margin:auto;padding:0;border:none;width:var(--sbb-dialog-width);height:var(--sbb-dialog-height);max-width:var(--sbb-dialog-max-width);max-height:var(--sbb-dialog-max-height);color:var(--_sbb-dialog-color);background-color:var(--sbb-dialog-background-color)}:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]),:is(:state(state-closing),[state--state-closing]))) .sbb-dialog{display:block;animation-name:open;animation-duration:var(--sbb-dialog-animation-duration);animation-timing-function:ease}:host(:is(:state(state-closing),[state--state-closing])) .sbb-dialog{pointer-events:none;animation-name:close}@media(forced-colors:active){.sbb-dialog{outline:var(--sbb-border-width-1x) solid CanvasText}}@media(min-width:64rem){.sbb-dialog{border-radius:var(--sbb-dialog-border-radius);overflow:hidden;height:auto}}:host(:is(:state(has-intermediate-element),[state--has-intermediate-element])) ::slotted(:first-child),.sbb-dialog__wrapper{width:var(--sbb-dialog-width);height:var(--sbb-dialog-height);max-width:var(--sbb-dialog-max-width);max-height:var(--sbb-dialog-max-height)}:host(:is(:state(has-intermediate-element),[state--has-intermediate-element])) ::slotted(:first-child),:host(:not(:is(:state(has-intermediate-element),[state--has-intermediate-element]))) .sbb-dialog__wrapper{display:grid;grid-template:"title close-button" auto "content content" 1fr "actions actions" auto/1fr auto;gap:0}@keyframes open{0%{opacity:0;translate:0 var(--sbb-spacing-fixed-4x)}to{opacity:1;translate:0}}@keyframes close{0%{opacity:1;translate:0}to{opacity:0;translate:0 var(--sbb-spacing-fixed-4x)}}`;
18
18
  let P = 0, M = (() => {
19
19
  var l, r, n;
20
- let e = [O("sbb-dialog")], i, s = [], o, v = I, m, u = [], f = [], k, _ = [], x = [];
20
+ let e = [O("sbb-dialog")], a, o = [], s, v = I, m, u = [], k = [], _, f = [], y = [];
21
21
  return n = class extends v {
22
22
  constructor() {
23
23
  super();
24
- h(this, l);
25
- h(this, r);
26
- b(this, l, d(this, u, "close")), b(this, r, (d(this, f), d(this, _, "opaque"))), this._dialogContentResizeObserver = (d(this, x), new S(this, {
24
+ g(this, l);
25
+ g(this, r);
26
+ b(this, l, d(this, u, "close")), b(this, r, (d(this, k), d(this, f, "opaque"))), this._dialogContentResizeObserver = (d(this, y), new S(this, {
27
27
  target: null,
28
28
  skipInitial: !0,
29
29
  callback: () => setTimeout(() => this._updateOverflowState())
@@ -38,14 +38,14 @@ let P = 0, M = (() => {
38
38
  }
39
39
  /** Backdrop click action. */
40
40
  get backdropAction() {
41
- return g(this, l);
41
+ return h(this, l);
42
42
  }
43
43
  set backdropAction(t) {
44
44
  b(this, l, t);
45
45
  }
46
46
  /** Backdrop density. */
47
47
  get backdrop() {
48
- return g(this, r);
48
+ return h(this, r);
49
49
  }
50
50
  set backdrop(t) {
51
51
  b(this, r, t);
@@ -82,8 +82,8 @@ let P = 0, M = (() => {
82
82
  this._syncTitleNegative(), this._detectIntermediateElement();
83
83
  }
84
84
  _syncTitleNegative() {
85
- const t = this.querySelector?.("sbb-dialog-title"), a = this.querySelector?.("sbb-dialog-close-button");
86
- t && (t.negative = this.negative), a && (a.negative = this.negative);
85
+ const t = this.querySelector?.("sbb-dialog-title"), i = this.querySelector?.("sbb-dialog-close-button");
86
+ t && (t.negative = this.negative), i && (i.negative = this.negative);
87
87
  }
88
88
  _detectIntermediateElement() {
89
89
  const t = this.querySelector(":scope > :is(sbb-dialog-title, sbb-dialog-close-button, sbb-dialog-content, sbb-dialog-actions)") === null;
@@ -132,14 +132,14 @@ let P = 0, M = (() => {
132
132
  <sbb-screen-reader-only aria-live="polite"></sbb-screen-reader-only>
133
133
  `;
134
134
  }
135
- }, l = new WeakMap(), r = new WeakMap(), o = n, (() => {
135
+ }, l = new WeakMap(), r = new WeakMap(), s = n, (() => {
136
136
  const t = typeof Symbol == "function" && Symbol.metadata ? Object.create(v[Symbol.metadata] ?? null) : void 0;
137
- m = [E({ attribute: "backdrop-action" })], k = [E({ attribute: "backdrop", reflect: !0 })], p(n, null, m, { kind: "accessor", name: "backdropAction", static: !1, private: !1, access: { has: (a) => "backdropAction" in a, get: (a) => a.backdropAction, set: (a, c) => {
138
- a.backdropAction = c;
139
- } }, metadata: t }, u, f), p(n, null, k, { kind: "accessor", name: "backdrop", static: !1, private: !1, access: { has: (a) => "backdrop" in a, get: (a) => a.backdrop, set: (a, c) => {
140
- a.backdrop = c;
141
- } }, metadata: t }, _, x), p(null, i = { value: o }, e, { kind: "class", name: o.name, metadata: t }, null, s), o = i.value, t && Object.defineProperty(o, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: t });
142
- })(), n.styles = [z, q], d(o, s), o;
137
+ m = [E({ attribute: "backdrop-action" })], _ = [E({ attribute: "backdrop", reflect: !0 })], p(n, null, m, { kind: "accessor", name: "backdropAction", static: !1, private: !1, access: { has: (i) => "backdropAction" in i, get: (i) => i.backdropAction, set: (i, c) => {
138
+ i.backdropAction = c;
139
+ } }, metadata: t }, u, k), p(n, null, _, { kind: "accessor", name: "backdrop", static: !1, private: !1, access: { has: (i) => "backdrop" in i, get: (i) => i.backdrop, set: (i, c) => {
140
+ i.backdrop = c;
141
+ } }, metadata: t }, f, y), p(null, a = { value: s }, e, { kind: "class", name: s.name, metadata: t }, null, o), s = a.value, t && Object.defineProperty(s, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: t });
142
+ })(), n.styles = [z, L], d(s, o), s;
143
143
  })();
144
144
  export {
145
145
  X as SbbDialogCloseEvent,
@@ -1,14 +1,14 @@
1
1
  import { __esDecorate as o, __runInitializers as c } from "tslib";
2
2
  import { customElement as b } from "lit/decorators.js";
3
- import { SbbSecondaryButtonElement as i } from "../../button/secondary-button.js";
3
+ import { SbbSecondaryButtonElement as n } from "../../button/secondary-button.js";
4
4
  import { SbbLanguageController as m } from "../../core/controllers.js";
5
5
  import { i18nCloseDialog as u } from "../../core/i18n.js";
6
6
  import { css as d } from "lit";
7
- const p = d`:host{display:block;height:fit-content;grid-area:close-button;margin-inline:var(--sbb-spacing-fixed-2x) var(--sbb-spacing-fixed-4x);inset-inline-end:var(--sbb-spacing-fixed-4x);margin-block-start:calc(var(--sbb-dialog-padding-block) + .5 * (var(--sbb-typo-line-height-heading) * var(--_sbb-dialog-title-size, var(--sbb-heading-font-size-4)) - var(--sbb-size-element-xs)))}`;
8
- let x = (() => {
7
+ const g = d`:host{display:block;height:fit-content;grid-area:close-button;margin-inline:var(--sbb-dialog-close-button-margin-inline);inset-inline-end:var(--sbb-dialog-close-button-inset-inline-end);margin-block-start:calc(var(--sbb-dialog-padding-block) + .5 * (var(--sbb-typo-line-height-heading) * var(--_sbb-dialog-title-size, var(--sbb-heading-font-size-4)) - var(--sbb-size-element-xs)))}`;
8
+ let S = (() => {
9
9
  var t;
10
- let n = [b("sbb-dialog-close-button")], r, s = [], e, l = i;
11
- return t = class extends l {
10
+ let i = [b("sbb-dialog-close-button")], l, r = [], e, s = n;
11
+ return t = class extends s {
12
12
  constructor() {
13
13
  super(), this._languageController = new m(this), this.size = "s";
14
14
  }
@@ -22,10 +22,10 @@ let x = (() => {
22
22
  return super.renderIconName() || "cross-small";
23
23
  }
24
24
  }, e = t, (() => {
25
- const a = typeof Symbol == "function" && Symbol.metadata ? Object.create(l[Symbol.metadata] ?? null) : void 0;
26
- o(null, r = { value: e }, n, { kind: "class", name: e.name, metadata: a }, null, s), e = r.value, a && Object.defineProperty(e, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: a });
27
- })(), t.styles = [i.styles, p], c(e, s), e;
25
+ const a = typeof Symbol == "function" && Symbol.metadata ? Object.create(s[Symbol.metadata] ?? null) : void 0;
26
+ o(null, l = { value: e }, i, { kind: "class", name: e.name, metadata: a }, null, r), e = l.value, a && Object.defineProperty(e, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: a });
27
+ })(), t.styles = [n.styles, g], c(e, r), e;
28
28
  })();
29
29
  export {
30
- x as SbbDialogCloseButtonElement
30
+ S as SbbDialogCloseButtonElement
31
31
  };
@@ -1516,6 +1516,27 @@ summary {
1516
1516
  --sbb-clock-seconds-hand-color: var(--sbb-color-brand);
1517
1517
  --sbb-clock-face-color: var(--sbb-color-1);
1518
1518
  --sbb-clock-background-color: var(--sbb-background-color-1);
1519
+ --sbb-dialog-padding-inline: var(--sbb-spacing-fixed-5x);
1520
+ --sbb-dialog-color: var(--sbb-color-2);
1521
+ --sbb-dialog-background-color: var(--sbb-background-color-1);
1522
+ --sbb-dialog-block-shadow: var(--sbb-box-shadow-level-9-soft);
1523
+ --sbb-dialog-color-negative: var(--sbb-color-2-negative);
1524
+ --sbb-dialog-block-shadow-negative: var(--sbb-box-shadow-level-9-soft-negative);
1525
+ --sbb-dialog-width: 100%;
1526
+ --sbb-dialog-max-width: 100%;
1527
+ --sbb-dialog-max-width-default: 55.75rem;
1528
+ --sbb-dialog-height: 100%;
1529
+ --sbb-dialog-max-height: 100%;
1530
+ --sbb-dialog-inset: 0 auto auto 0;
1531
+ --sbb-dialog-border-radius: var(--sbb-border-radius-8x);
1532
+ --sbb-dialog-animation-easing: ease;
1533
+ --sbb-dialog-pointer-events: none;
1534
+ --sbb-dialog-backdrop-visibility: hidden;
1535
+ --sbb-dialog-backdrop-pointer-events: none;
1536
+ --sbb-dialog-backdrop-color: transparent;
1537
+ --sbb-dialog-actions-border-color: var(--sbb-background-color-4);
1538
+ --sbb-dialog-close-button-inset-inline-end: var(--sbb-spacing-fixed-4x);
1539
+ --sbb-dialog-close-button-margin-inline: var(--sbb-spacing-fixed-2x) var(--sbb-spacing-fixed-4x);
1519
1540
  --sbb-divider-color: var(--sbb-background-color-4);
1520
1541
  --sbb-divider-color-negative: var(--sbb-background-color-4-negative);
1521
1542
  --sbb-divider-border-width: var(--sbb-border-width-1x);
@@ -1694,6 +1715,7 @@ summary {
1694
1715
  --sbb-layout-base-offset-responsive: var(--sbb-layout-base-offset-responsive-small);
1695
1716
  --sbb-grid-base-columns: var(--sbb-layout-base-grid-columns-small);
1696
1717
  --sbb-grid-base-gutter-responsive: var(--sbb-layout-base-grid-gutter-responsive-small);
1718
+ --sbb-dialog-padding-inline: var(--sbb-spacing-fixed-12x);
1697
1719
  --sbb-footer-clock-width: 7rem;
1698
1720
  }
1699
1721
  }
@@ -1738,6 +1760,8 @@ summary {
1738
1760
  --sbb-chip-group-margin-block: var(--_sbb-chip-group-margin-block-start-default-large) 0;
1739
1761
  --sbb-chip-group-margin-block-no-label-not-empty: 0.1875rem 0.875rem;
1740
1762
  --sbb-chip-group-margin-block-with-label-not-empty: var(--_sbb-chip-group-margin-block-start-default-large) var(--_sbb-chip-group-margin-block-start-default-large);
1763
+ --sbb-dialog-padding-inline: var(--sbb-spacing-responsive-s);
1764
+ --sbb-dialog-max-height: calc(100vh - var(--sbb-spacing-fixed-16x));
1741
1765
  }
1742
1766
  :root.sbb-lean {
1743
1767
  --sbb-title-font-size-level-6-lean: var(--sbb-typo-scale-0-875x);
@@ -1792,6 +1816,29 @@ sbb-container > [slot=image] :is(sbb-image, img):not(.sbb-figure-overlap-image)
1792
1816
  position: absolute;
1793
1817
  }
1794
1818
 
1819
+ sbb-dialog:not(:has(> sbb-dialog-title)) > sbb-dialog-close-button, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):not(:has(> * > sbb-dialog-title)) > * > sbb-dialog-close-button {
1820
+ position: absolute;
1821
+ z-index: 1;
1822
+ }
1823
+ sbb-dialog:has(> sbb-dialog-title[visual-level="3"]) > sbb-dialog-close-button, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-title[visual-level="3"]) > * > sbb-dialog-close-button {
1824
+ --_sbb-dialog-title-size: var(--sbb-heading-font-size-3);
1825
+ }
1826
+ sbb-dialog:has(> sbb-dialog-title[visual-level="5"]) > sbb-dialog-close-button, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-title[visual-level="5"]) > * > sbb-dialog-close-button {
1827
+ --_sbb-dialog-title-size: var(--sbb-heading-font-size-5);
1828
+ }
1829
+
1830
+ sbb-dialog:has(> sbb-dialog-title) > sbb-dialog-content, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-title) > * > sbb-dialog-content {
1831
+ padding-block-start: var(--sbb-spacing-fixed-1x);
1832
+ }
1833
+ sbb-dialog[negative] > sbb-dialog-content, sbb-dialog[negative]:is(:state(has-intermediate-element),[state--has-intermediate-element]) > * > sbb-dialog-content {
1834
+ --sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-white) 30%, transparent);
1835
+ --sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-white) 60%, transparent);
1836
+ }
1837
+
1838
+ sbb-dialog:has(> sbb-dialog-close-button) > sbb-dialog-title, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-close-button) > * > sbb-dialog-title {
1839
+ padding-inline-end: 0;
1840
+ }
1841
+
1795
1842
  sbb-tab-nav-bar .sbb-tab-amount {
1796
1843
  margin: 0;
1797
1844
  color: var(--sbb-tab-label-amount-color);
@@ -2248,29 +2295,6 @@ sbb-toggle:has(:focus-visible) {
2248
2295
  --sbb-option-hint-padding-block-end: var(--sbb-spacing-fixed-1x);
2249
2296
  }
2250
2297
 
2251
- sbb-dialog:has(> sbb-dialog-close-button) > sbb-dialog-title, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-close-button) > * > sbb-dialog-title {
2252
- padding-inline-end: 0;
2253
- }
2254
-
2255
- sbb-dialog:has(> sbb-dialog-title) > sbb-dialog-content, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-title) > * > sbb-dialog-content {
2256
- padding-block-start: var(--sbb-spacing-fixed-1x);
2257
- }
2258
- sbb-dialog[negative] > sbb-dialog-content, sbb-dialog[negative]:is(:state(has-intermediate-element),[state--has-intermediate-element]) > * > sbb-dialog-content {
2259
- --sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-white) 30%, transparent);
2260
- --sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-white) 60%, transparent);
2261
- }
2262
-
2263
- sbb-dialog:not(:has(> sbb-dialog-title)) > sbb-dialog-close-button, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):not(:has(> * > sbb-dialog-title)) > * > sbb-dialog-close-button {
2264
- position: absolute;
2265
- z-index: 1;
2266
- }
2267
- sbb-dialog:has(> sbb-dialog-title[visual-level="3"]) > sbb-dialog-close-button, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-title[visual-level="3"]) > * > sbb-dialog-close-button {
2268
- --_sbb-dialog-title-size: var(--sbb-heading-font-size-3);
2269
- }
2270
- sbb-dialog:has(> sbb-dialog-title[visual-level="5"]) > sbb-dialog-close-button, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-title[visual-level="5"]) > * > sbb-dialog-close-button {
2271
- --_sbb-dialog-title-size: var(--sbb-heading-font-size-5);
2272
- }
2273
-
2274
2298
  sbb-notification:has(sbb-title) {
2275
2299
  --_sbb-notification-icon-authoritative-font-size: var(--sbb-heading-font-size-5);
2276
2300
  --_sbb-notification-icon-authoritative-line-height: var(--sbb-typo-line-height-heading);
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@sbb-esta/lyne-elements-dev",
3
- "version": "4.6.0-dev.1772454706",
3
+ "version": "4.6.0-dev.1772462503",
4
4
  "description": "Lyne Design System",
5
5
  "keywords": [
6
6
  "design system",
7
7
  "web components",
8
8
  "lit",
9
9
  "storybook",
10
- "https://github.com/sbb-design-systems/lyne-components/commit/a54febddca9b29658c6e47ed26150ea4909eebad"
10
+ "https://github.com/sbb-design-systems/lyne-components/commit/e5a4fb7079bede0607c8d19a773304bf2d5b536c"
11
11
  ],
12
12
  "type": "module",
13
13
  "exports": {
package/safety-theme.css CHANGED
@@ -1516,6 +1516,27 @@ summary {
1516
1516
  --sbb-clock-seconds-hand-color: var(--sbb-color-brand);
1517
1517
  --sbb-clock-face-color: var(--sbb-color-1);
1518
1518
  --sbb-clock-background-color: var(--sbb-background-color-1);
1519
+ --sbb-dialog-padding-inline: var(--sbb-spacing-fixed-5x);
1520
+ --sbb-dialog-color: var(--sbb-color-2);
1521
+ --sbb-dialog-background-color: var(--sbb-background-color-1);
1522
+ --sbb-dialog-block-shadow: var(--sbb-box-shadow-level-9-soft);
1523
+ --sbb-dialog-color-negative: var(--sbb-color-2-negative);
1524
+ --sbb-dialog-block-shadow-negative: var(--sbb-box-shadow-level-9-soft-negative);
1525
+ --sbb-dialog-width: 100%;
1526
+ --sbb-dialog-max-width: 100%;
1527
+ --sbb-dialog-max-width-default: 55.75rem;
1528
+ --sbb-dialog-height: 100%;
1529
+ --sbb-dialog-max-height: 100%;
1530
+ --sbb-dialog-inset: 0 auto auto 0;
1531
+ --sbb-dialog-border-radius: var(--sbb-border-radius-8x);
1532
+ --sbb-dialog-animation-easing: ease;
1533
+ --sbb-dialog-pointer-events: none;
1534
+ --sbb-dialog-backdrop-visibility: hidden;
1535
+ --sbb-dialog-backdrop-pointer-events: none;
1536
+ --sbb-dialog-backdrop-color: transparent;
1537
+ --sbb-dialog-actions-border-color: var(--sbb-background-color-4);
1538
+ --sbb-dialog-close-button-inset-inline-end: var(--sbb-spacing-fixed-4x);
1539
+ --sbb-dialog-close-button-margin-inline: var(--sbb-spacing-fixed-2x) var(--sbb-spacing-fixed-4x);
1519
1540
  --sbb-divider-color: var(--sbb-background-color-4);
1520
1541
  --sbb-divider-color-negative: var(--sbb-background-color-4-negative);
1521
1542
  --sbb-divider-border-width: var(--sbb-border-width-1x);
@@ -1694,6 +1715,7 @@ summary {
1694
1715
  --sbb-layout-base-offset-responsive: var(--sbb-layout-base-offset-responsive-small);
1695
1716
  --sbb-grid-base-columns: var(--sbb-layout-base-grid-columns-small);
1696
1717
  --sbb-grid-base-gutter-responsive: var(--sbb-layout-base-grid-gutter-responsive-small);
1718
+ --sbb-dialog-padding-inline: var(--sbb-spacing-fixed-12x);
1697
1719
  --sbb-footer-clock-width: 7rem;
1698
1720
  }
1699
1721
  }
@@ -1738,6 +1760,8 @@ summary {
1738
1760
  --sbb-chip-group-margin-block: var(--_sbb-chip-group-margin-block-start-default-large) 0;
1739
1761
  --sbb-chip-group-margin-block-no-label-not-empty: 0.1875rem 0.875rem;
1740
1762
  --sbb-chip-group-margin-block-with-label-not-empty: var(--_sbb-chip-group-margin-block-start-default-large) var(--_sbb-chip-group-margin-block-start-default-large);
1763
+ --sbb-dialog-padding-inline: var(--sbb-spacing-responsive-s);
1764
+ --sbb-dialog-max-height: calc(100vh - var(--sbb-spacing-fixed-16x));
1741
1765
  }
1742
1766
  :root.sbb-lean {
1743
1767
  --sbb-title-font-size-level-6-lean: var(--sbb-typo-scale-0-875x);
@@ -1792,6 +1816,29 @@ sbb-container > [slot=image] :is(sbb-image, img):not(.sbb-figure-overlap-image)
1792
1816
  position: absolute;
1793
1817
  }
1794
1818
 
1819
+ sbb-dialog:not(:has(> sbb-dialog-title)) > sbb-dialog-close-button, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):not(:has(> * > sbb-dialog-title)) > * > sbb-dialog-close-button {
1820
+ position: absolute;
1821
+ z-index: 1;
1822
+ }
1823
+ sbb-dialog:has(> sbb-dialog-title[visual-level="3"]) > sbb-dialog-close-button, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-title[visual-level="3"]) > * > sbb-dialog-close-button {
1824
+ --_sbb-dialog-title-size: var(--sbb-heading-font-size-3);
1825
+ }
1826
+ sbb-dialog:has(> sbb-dialog-title[visual-level="5"]) > sbb-dialog-close-button, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-title[visual-level="5"]) > * > sbb-dialog-close-button {
1827
+ --_sbb-dialog-title-size: var(--sbb-heading-font-size-5);
1828
+ }
1829
+
1830
+ sbb-dialog:has(> sbb-dialog-title) > sbb-dialog-content, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-title) > * > sbb-dialog-content {
1831
+ padding-block-start: var(--sbb-spacing-fixed-1x);
1832
+ }
1833
+ sbb-dialog[negative] > sbb-dialog-content, sbb-dialog[negative]:is(:state(has-intermediate-element),[state--has-intermediate-element]) > * > sbb-dialog-content {
1834
+ --sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-white) 30%, transparent);
1835
+ --sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-white) 60%, transparent);
1836
+ }
1837
+
1838
+ sbb-dialog:has(> sbb-dialog-close-button) > sbb-dialog-title, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-close-button) > * > sbb-dialog-title {
1839
+ padding-inline-end: 0;
1840
+ }
1841
+
1795
1842
  sbb-tab-nav-bar .sbb-tab-amount {
1796
1843
  margin: 0;
1797
1844
  color: var(--sbb-tab-label-amount-color);
@@ -2248,29 +2295,6 @@ sbb-toggle:has(:focus-visible) {
2248
2295
  --sbb-option-hint-padding-block-end: var(--sbb-spacing-fixed-1x);
2249
2296
  }
2250
2297
 
2251
- sbb-dialog:has(> sbb-dialog-close-button) > sbb-dialog-title, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-close-button) > * > sbb-dialog-title {
2252
- padding-inline-end: 0;
2253
- }
2254
-
2255
- sbb-dialog:has(> sbb-dialog-title) > sbb-dialog-content, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-title) > * > sbb-dialog-content {
2256
- padding-block-start: var(--sbb-spacing-fixed-1x);
2257
- }
2258
- sbb-dialog[negative] > sbb-dialog-content, sbb-dialog[negative]:is(:state(has-intermediate-element),[state--has-intermediate-element]) > * > sbb-dialog-content {
2259
- --sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-white) 30%, transparent);
2260
- --sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-white) 60%, transparent);
2261
- }
2262
-
2263
- sbb-dialog:not(:has(> sbb-dialog-title)) > sbb-dialog-close-button, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):not(:has(> * > sbb-dialog-title)) > * > sbb-dialog-close-button {
2264
- position: absolute;
2265
- z-index: 1;
2266
- }
2267
- sbb-dialog:has(> sbb-dialog-title[visual-level="3"]) > sbb-dialog-close-button, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-title[visual-level="3"]) > * > sbb-dialog-close-button {
2268
- --_sbb-dialog-title-size: var(--sbb-heading-font-size-3);
2269
- }
2270
- sbb-dialog:has(> sbb-dialog-title[visual-level="5"]) > sbb-dialog-close-button, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-title[visual-level="5"]) > * > sbb-dialog-close-button {
2271
- --_sbb-dialog-title-size: var(--sbb-heading-font-size-5);
2272
- }
2273
-
2274
2298
  sbb-notification:has(sbb-title) {
2275
2299
  --_sbb-notification-icon-authoritative-font-size: var(--sbb-heading-font-size-5);
2276
2300
  --_sbb-notification-icon-authoritative-line-height: var(--sbb-typo-line-height-heading);
@@ -1516,6 +1516,27 @@ summary {
1516
1516
  --sbb-clock-seconds-hand-color: var(--sbb-color-brand);
1517
1517
  --sbb-clock-face-color: var(--sbb-color-1);
1518
1518
  --sbb-clock-background-color: var(--sbb-background-color-1);
1519
+ --sbb-dialog-padding-inline: var(--sbb-spacing-fixed-5x);
1520
+ --sbb-dialog-color: var(--sbb-color-2);
1521
+ --sbb-dialog-background-color: var(--sbb-background-color-1);
1522
+ --sbb-dialog-block-shadow: var(--sbb-box-shadow-level-9-soft);
1523
+ --sbb-dialog-color-negative: var(--sbb-color-2-negative);
1524
+ --sbb-dialog-block-shadow-negative: var(--sbb-box-shadow-level-9-soft-negative);
1525
+ --sbb-dialog-width: 100%;
1526
+ --sbb-dialog-max-width: 100%;
1527
+ --sbb-dialog-max-width-default: 55.75rem;
1528
+ --sbb-dialog-height: 100%;
1529
+ --sbb-dialog-max-height: 100%;
1530
+ --sbb-dialog-inset: 0 auto auto 0;
1531
+ --sbb-dialog-border-radius: var(--sbb-border-radius-8x);
1532
+ --sbb-dialog-animation-easing: ease;
1533
+ --sbb-dialog-pointer-events: none;
1534
+ --sbb-dialog-backdrop-visibility: hidden;
1535
+ --sbb-dialog-backdrop-pointer-events: none;
1536
+ --sbb-dialog-backdrop-color: transparent;
1537
+ --sbb-dialog-actions-border-color: var(--sbb-background-color-4);
1538
+ --sbb-dialog-close-button-inset-inline-end: var(--sbb-spacing-fixed-4x);
1539
+ --sbb-dialog-close-button-margin-inline: var(--sbb-spacing-fixed-2x) var(--sbb-spacing-fixed-4x);
1519
1540
  --sbb-divider-color: var(--sbb-background-color-4);
1520
1541
  --sbb-divider-color-negative: var(--sbb-background-color-4-negative);
1521
1542
  --sbb-divider-border-width: var(--sbb-border-width-1x);
@@ -1694,6 +1715,7 @@ summary {
1694
1715
  --sbb-layout-base-offset-responsive: var(--sbb-layout-base-offset-responsive-small);
1695
1716
  --sbb-grid-base-columns: var(--sbb-layout-base-grid-columns-small);
1696
1717
  --sbb-grid-base-gutter-responsive: var(--sbb-layout-base-grid-gutter-responsive-small);
1718
+ --sbb-dialog-padding-inline: var(--sbb-spacing-fixed-12x);
1697
1719
  --sbb-footer-clock-width: 7rem;
1698
1720
  }
1699
1721
  }
@@ -1738,6 +1760,8 @@ summary {
1738
1760
  --sbb-chip-group-margin-block: var(--_sbb-chip-group-margin-block-start-default-large) 0;
1739
1761
  --sbb-chip-group-margin-block-no-label-not-empty: 0.1875rem 0.875rem;
1740
1762
  --sbb-chip-group-margin-block-with-label-not-empty: var(--_sbb-chip-group-margin-block-start-default-large) var(--_sbb-chip-group-margin-block-start-default-large);
1763
+ --sbb-dialog-padding-inline: var(--sbb-spacing-responsive-s);
1764
+ --sbb-dialog-max-height: calc(100vh - var(--sbb-spacing-fixed-16x));
1741
1765
  }
1742
1766
  :root.sbb-lean {
1743
1767
  --sbb-title-font-size-level-6-lean: var(--sbb-typo-scale-0-875x);
@@ -1792,6 +1816,29 @@ sbb-container > [slot=image] :is(sbb-image, img):not(.sbb-figure-overlap-image)
1792
1816
  position: absolute;
1793
1817
  }
1794
1818
 
1819
+ sbb-dialog:not(:has(> sbb-dialog-title)) > sbb-dialog-close-button, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):not(:has(> * > sbb-dialog-title)) > * > sbb-dialog-close-button {
1820
+ position: absolute;
1821
+ z-index: 1;
1822
+ }
1823
+ sbb-dialog:has(> sbb-dialog-title[visual-level="3"]) > sbb-dialog-close-button, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-title[visual-level="3"]) > * > sbb-dialog-close-button {
1824
+ --_sbb-dialog-title-size: var(--sbb-heading-font-size-3);
1825
+ }
1826
+ sbb-dialog:has(> sbb-dialog-title[visual-level="5"]) > sbb-dialog-close-button, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-title[visual-level="5"]) > * > sbb-dialog-close-button {
1827
+ --_sbb-dialog-title-size: var(--sbb-heading-font-size-5);
1828
+ }
1829
+
1830
+ sbb-dialog:has(> sbb-dialog-title) > sbb-dialog-content, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-title) > * > sbb-dialog-content {
1831
+ padding-block-start: var(--sbb-spacing-fixed-1x);
1832
+ }
1833
+ sbb-dialog[negative] > sbb-dialog-content, sbb-dialog[negative]:is(:state(has-intermediate-element),[state--has-intermediate-element]) > * > sbb-dialog-content {
1834
+ --sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-white) 30%, transparent);
1835
+ --sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-white) 60%, transparent);
1836
+ }
1837
+
1838
+ sbb-dialog:has(> sbb-dialog-close-button) > sbb-dialog-title, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-close-button) > * > sbb-dialog-title {
1839
+ padding-inline-end: 0;
1840
+ }
1841
+
1795
1842
  sbb-tab-nav-bar .sbb-tab-amount {
1796
1843
  margin: 0;
1797
1844
  color: var(--sbb-tab-label-amount-color);
@@ -2248,29 +2295,6 @@ sbb-toggle:has(:focus-visible) {
2248
2295
  --sbb-option-hint-padding-block-end: var(--sbb-spacing-fixed-1x);
2249
2296
  }
2250
2297
 
2251
- sbb-dialog:has(> sbb-dialog-close-button) > sbb-dialog-title, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-close-button) > * > sbb-dialog-title {
2252
- padding-inline-end: 0;
2253
- }
2254
-
2255
- sbb-dialog:has(> sbb-dialog-title) > sbb-dialog-content, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-title) > * > sbb-dialog-content {
2256
- padding-block-start: var(--sbb-spacing-fixed-1x);
2257
- }
2258
- sbb-dialog[negative] > sbb-dialog-content, sbb-dialog[negative]:is(:state(has-intermediate-element),[state--has-intermediate-element]) > * > sbb-dialog-content {
2259
- --sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-white) 30%, transparent);
2260
- --sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-white) 60%, transparent);
2261
- }
2262
-
2263
- sbb-dialog:not(:has(> sbb-dialog-title)) > sbb-dialog-close-button, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):not(:has(> * > sbb-dialog-title)) > * > sbb-dialog-close-button {
2264
- position: absolute;
2265
- z-index: 1;
2266
- }
2267
- sbb-dialog:has(> sbb-dialog-title[visual-level="3"]) > sbb-dialog-close-button, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-title[visual-level="3"]) > * > sbb-dialog-close-button {
2268
- --_sbb-dialog-title-size: var(--sbb-heading-font-size-3);
2269
- }
2270
- sbb-dialog:has(> sbb-dialog-title[visual-level="5"]) > sbb-dialog-close-button, sbb-dialog:is(:state(has-intermediate-element),[state--has-intermediate-element]):has(> * > sbb-dialog-title[visual-level="5"]) > * > sbb-dialog-close-button {
2271
- --_sbb-dialog-title-size: var(--sbb-heading-font-size-5);
2272
- }
2273
-
2274
2298
  sbb-notification:has(sbb-title) {
2275
2299
  --_sbb-notification-icon-authoritative-font-size: var(--sbb-heading-font-size-5);
2276
2300
  --_sbb-notification-icon-authoritative-line-height: var(--sbb-typo-line-height-heading);