@sbb-esta/lyne-elements-dev 5.0.0-next.1-dev.1777534945 → 5.0.0-next.1-dev.1777543026

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/autocomplete/autocomplete-base-element.js +1 -1
  2. package/autocomplete/autocomplete.component.js +1 -1
  3. package/{autocomplete-base-element-CSCv_WVh.js → autocomplete-base-element-BiLyvcN-.js} +1 -1
  4. package/autocomplete.js +1 -1
  5. package/autocomplete.pure.js +1 -1
  6. package/core/styles/mixins/scrollbar.scss +0 -6
  7. package/core/styles/scrollbar.scss +19 -24
  8. package/core/styles/styles.js +2 -2
  9. package/core.css +0 -37
  10. package/core.js +2 -2
  11. package/custom-elements.json +66 -16
  12. package/development/autocomplete/autocomplete-base-element.js +1 -1
  13. package/development/autocomplete/autocomplete.component.js +1 -1
  14. package/development/{autocomplete-base-element-Bwkns3IL.js → autocomplete-base-element-BxBpn8_e.js} +2 -2
  15. package/development/autocomplete.js +1 -1
  16. package/development/autocomplete.pure.js +1 -1
  17. package/development/core/styles/styles.d.ts +1 -0
  18. package/development/core/styles/styles.d.ts.map +1 -1
  19. package/development/core/styles/styles.js +2 -2
  20. package/development/core.js +2 -2
  21. package/development/dialog/dialog-content/dialog-content.component.d.ts +1 -0
  22. package/development/dialog/dialog-content/dialog-content.component.d.ts.map +1 -1
  23. package/development/dialog/dialog-content/dialog-content.component.js +1 -1
  24. package/development/{dialog-content.component-B7Grxjk6.js → dialog-content.component-Bzt-PL6f.js} +10 -3
  25. package/development/dialog.js +1 -1
  26. package/development/dialog.pure.js +1 -1
  27. package/development/file-selector/common/file-selector-common.d.ts +1 -2
  28. package/development/file-selector/common/file-selector-common.d.ts.map +1 -1
  29. package/development/file-selector/common/file-selector-common.js +2 -2
  30. package/development/file-selector/file-selector/file-selector.component.d.ts +1 -2
  31. package/development/file-selector/file-selector/file-selector.component.d.ts.map +1 -1
  32. package/development/file-selector/file-selector/file-selector.component.js +3 -6
  33. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts.map +1 -1
  34. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  35. package/development/file-selector-common-BH_iIjcB.js +417 -0
  36. package/development/{file-selector-dropzone.component-DRUUWI1A.js → file-selector-dropzone.component-ZCanLwF-.js} +4 -8
  37. package/development/file-selector.js +3 -3
  38. package/development/file-selector.pure.js +3 -3
  39. package/development/map-container/map-container.component.d.ts.map +1 -1
  40. package/development/map-container/map-container.component.js +1 -1
  41. package/development/map-container.component-DoFCVBoh.js +180 -0
  42. package/development/map-container.js +1 -1
  43. package/development/map-container.pure.js +1 -1
  44. package/development/menu/menu/menu.component.d.ts.map +1 -1
  45. package/development/menu/menu/menu.component.js +1 -1
  46. package/development/menu.component-CDBUaD8s.js +369 -0
  47. package/development/menu.js +1 -1
  48. package/development/menu.pure.js +1 -1
  49. package/development/navigation/navigation/navigation.component.d.ts.map +1 -1
  50. package/development/navigation/navigation/navigation.component.js +1 -1
  51. package/development/navigation/navigation-section/navigation-section.component.d.ts.map +1 -1
  52. package/development/navigation/navigation-section/navigation-section.component.js +1 -1
  53. package/development/navigation-section.component-D3_XVwyt.js +350 -0
  54. package/development/navigation.component-Cco4llBt.js +319 -0
  55. package/development/navigation.js +2 -2
  56. package/development/navigation.pure.js +2 -2
  57. package/development/overlay/overlay.component.d.ts.map +1 -1
  58. package/development/overlay/overlay.component.js +1 -1
  59. package/development/overlay.component-DBzb0PdD.js +206 -0
  60. package/development/overlay.js +1 -1
  61. package/development/overlay.pure.js +1 -1
  62. package/development/popover/popover.component.d.ts +1 -0
  63. package/development/popover/popover.component.d.ts.map +1 -1
  64. package/development/popover/popover.component.js +1 -1
  65. package/development/popover.component-Dj0INQsI.js +564 -0
  66. package/development/popover.js +1 -1
  67. package/development/popover.pure.js +1 -1
  68. package/development/select/select.component.js +1 -1
  69. package/development/{select.component-C1Xfvvii.js → select.component-D_9pjl7T.js} +2 -2
  70. package/development/select.js +1 -1
  71. package/development/select.pure.js +1 -1
  72. package/development/sidebar/sidebar/sidebar.component.d.ts.map +1 -1
  73. package/development/sidebar/sidebar/sidebar.component.js +1 -1
  74. package/development/sidebar.component-CYLbI1Vp.js +356 -0
  75. package/development/sidebar.js +1 -1
  76. package/development/sidebar.pure.js +1 -1
  77. package/development/styles-B_IWjHc5.js +22 -0
  78. package/development/table/table-wrapper/table-wrapper.component.js +1 -1
  79. package/development/table-wrapper.component-D8IFPow6.js +119 -0
  80. package/development/table.js +1 -1
  81. package/development/table.pure.js +1 -1
  82. package/dialog/dialog-content/dialog-content.component.js +1 -1
  83. package/{dialog-content.component-are-UBx3.js → dialog-content.component-iRLHPKPb.js} +7 -2
  84. package/dialog.js +1 -1
  85. package/dialog.pure.js +1 -1
  86. package/file-selector/common/file-selector-common.js +2 -2
  87. package/file-selector/file-selector/file-selector.component.js +10 -13
  88. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  89. package/{file-selector-common-jpJmVqAw.js → file-selector-common-PcqPdsnN.js} +44 -38
  90. package/{file-selector-dropzone.component-DDRTu6p2.js → file-selector-dropzone.component-2XUfh1NC.js} +20 -24
  91. package/file-selector.js +5 -5
  92. package/file-selector.pure.js +4 -4
  93. package/map-container/map-container.component.js +1 -1
  94. package/{map-container.component-Btnl3n9d.js → map-container.component-5I5DW5dJ.js} +23 -16
  95. package/map-container.js +1 -1
  96. package/map-container.pure.js +1 -1
  97. package/menu/menu/menu.component.js +1 -1
  98. package/{menu.component-CpNMheMG.js → menu.component-Bd37u3Ps.js} +26 -22
  99. package/menu.js +1 -1
  100. package/menu.pure.js +1 -1
  101. package/navigation/navigation/navigation.component.js +1 -1
  102. package/navigation/navigation-section/navigation-section.component.js +1 -1
  103. package/{navigation-section.component-219JlVIe.js → navigation-section.component-B_0xi30L.js} +24 -20
  104. package/{navigation.component-gLrMCbh9.js → navigation.component-CmrLIeDB.js} +24 -20
  105. package/navigation.js +2 -2
  106. package/navigation.pure.js +2 -2
  107. package/off-brand-theme.css +33 -134
  108. package/overlay/overlay.component.js +1 -1
  109. package/overlay.component-D2jtCeeb.js +156 -0
  110. package/overlay.js +1 -1
  111. package/overlay.pure.js +1 -1
  112. package/package.json +2 -2
  113. package/popover/popover.component.js +1 -1
  114. package/{popover.component-DnY9obd7.js → popover.component-CiMeNnO-.js} +27 -24
  115. package/popover.js +1 -1
  116. package/popover.pure.js +1 -1
  117. package/safety-theme.css +33 -134
  118. package/scrollbar.css +33 -97
  119. package/select/select.component.js +1 -1
  120. package/{select.component-Bhvd_sUV.js → select.component-BXPU7X_X.js} +1 -1
  121. package/select.js +1 -1
  122. package/select.pure.js +1 -1
  123. package/sidebar/sidebar/sidebar.component.js +1 -1
  124. package/{sidebar.component-Dpf9jZ1P.js → sidebar.component-CeUPJaqy.js} +28 -21
  125. package/sidebar.js +1 -1
  126. package/sidebar.pure.js +1 -1
  127. package/standard-theme.css +33 -134
  128. package/styles-Cb4jdMeE.js +5 -0
  129. package/table/table-wrapper/table-wrapper.component.js +1 -1
  130. package/{table-wrapper.component-DGL8RaxF.js → table-wrapper.component-CZ90q3pY.js} +1 -1
  131. package/table.js +1 -1
  132. package/table.pure.js +1 -1
  133. package/development/file-selector-common-BwkZZzA0.js +0 -409
  134. package/development/map-container.component-BLF21LG7.js +0 -173
  135. package/development/menu.component-BpKGNICN.js +0 -365
  136. package/development/navigation-section.component-DumXFFfg.js +0 -346
  137. package/development/navigation.component-CpoBEP55.js +0 -315
  138. package/development/overlay.component-CC_quHYI.js +0 -206
  139. package/development/popover.component-DT-cfDqo.js +0 -561
  140. package/development/sidebar.component-DR2JGwnM.js +0 -349
  141. package/development/styles-6T7UvhxK.js +0 -18
  142. package/development/table-wrapper.component-CjMOENHV.js +0 -119
  143. package/overlay.component-B00EoAd5.js +0 -156
  144. package/styles-D5okOWF1.js +0 -5
@@ -0,0 +1,356 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { html, isServer, unsafeCSS } from "lit";
3
+ import { eventOptions, property } from "lit/decorators.js";
4
+ import { SbbAnimationCompleteMixin, SbbEscapableOverlayController, SbbFocusTrapController, SbbOpenCloseBaseElement, boxSizingStyles, forceType, handleDistinctChange, isZeroAnimationDuration, scrollbarStyles } from "./core.js";
5
+ import { ResizeController } from "@lit-labs/observers/resize-controller.js";
6
+ //#region src/elements/sidebar/sidebar/sidebar.scss?inline
7
+ var sidebar_default = ":host {\n --sbb-link-text-decoration-line: none;\n --sbb-sidebar-background-color: var(--sbb-background-color-1);\n --sbb-sidebar-scrollbar-placeholder-width: var(--sbb-spacing-fixed-3x);\n --_sbb-sidebar-margin: 0;\n --_sbb-sidebar-margin-block-start: var(--sbb-sidebar-margin);\n --_sbb-sidebar-translate-x: -100%;\n --_sbb-sidebar-z-index: 2;\n --_sbb-sidebar-padding-inline-end: var(--sbb-sidebar-padding);\n --_sbb-sidebar-padding-block-start: var(--sbb-sidebar-padding);\n --_sbb-sidebar-border-radius-start: var(--sbb-sidebar-border-radius);\n --_sbb-sidebar-border-radius-end: 0;\n --_sbb-sidebar-close-button-size: var(--sbb-size-element-xs);\n --_sbb-sidebar-max-width: calc(100% - 2 * var(--_sbb-sidebar-margin));\n display: block;\n width: 20rem;\n}\n@supports (scrollbar-gutter: stable) and (not (-webkit-touch-callout: none)) {\n :host {\n --_sbb-sidebar-padding-inline-end: calc(\n var(--sbb-sidebar-padding) - var(--sbb-sidebar-scrollbar-placeholder-width)\n );\n }\n}\n\n:host([color=white]) {\n --sbb-sidebar-background-color: var(--sbb-background-color-1);\n}\n\n:host([color=milk]) {\n --sbb-sidebar-background-color: var(--sbb-background-color-3);\n}\n\n:host(:is([mode=over], :is(:state(mode-over-forced),[state--mode-over-forced]):not(:is(:state(mode-over-forced-closing),[state--mode-over-forced-closing])))) {\n --_sbb-sidebar-margin: var(--sbb-sidebar-margin);\n --_sbb-sidebar-border-radius-end: var(--sbb-sidebar-border-radius);\n --_sbb-sidebar-z-index: 3;\n}\n\n:host(:is(:dir(rtl), [position=end])) {\n --_sbb-sidebar-translate-x: 100%;\n}\n\n:host(:dir(rtl)[position=end]) {\n --_sbb-sidebar-translate-x: -100%;\n}\n\n.sbb-sidebar {\n width: inherit;\n max-width: var(--_sbb-sidebar-max-width);\n background-color: var(--sbb-sidebar-background-color);\n display: flex;\n flex-direction: column;\n position: absolute;\n overflow: hidden;\n inset-block: 0;\n z-index: var(--_sbb-sidebar-z-index);\n border-start-start-radius: var(--_sbb-sidebar-border-radius-start);\n border-start-end-radius: var(--_sbb-sidebar-border-radius-start);\n border-end-start-radius: var(--_sbb-sidebar-border-radius-end);\n border-end-end-radius: var(--_sbb-sidebar-border-radius-end);\n margin: var(--_sbb-sidebar-margin);\n margin-block-start: var(--_sbb-sidebar-margin-block-start);\n transition-duration: var(--sbb-sidebar-container-animation-duration);\n transition-timing-function: var(--sbb-sidebar-container-animation-easing);\n transition-property: width, translate;\n translate: none;\n}\n:host([position=end]) .sbb-sidebar {\n inset-inline-end: 0;\n}\n:host(:is(:state(state-closed),[state--state-closed])) .sbb-sidebar {\n visibility: hidden;\n}\n:host(:is(:is(:state(state-closing),[state--state-closing]), :is(:state(state-closed),[state--state-closed]))) .sbb-sidebar {\n translate: var(--_sbb-sidebar-translate-x) 0;\n}\n\n.sbb-sidebar-title-section {\n display: flex;\n width: 100%;\n gap: var(--sbb-sidebar-title-gap);\n background-color: var(--sbb-sidebar-background-color);\n padding-inline: var(--sbb-sidebar-padding);\n transition: box-shadow var(--sbb-animation-easing) var(--sbb-sidebar-container-animation-duration);\n box-shadow: none;\n}\n:host(:is(:state(scrolled),[state--scrolled])) .sbb-sidebar-title-section {\n box-shadow: var(--sbb-box-shadow-level-5-soft);\n}\n\n.sbb-sidebar-content-section {\n padding-block-start: var(--_sbb-sidebar-padding-block-start);\n padding-inline: var(--sbb-sidebar-padding) var(--_sbb-sidebar-padding-inline-end);\n overflow-y: auto;\n flex-grow: 1;\n outline-color: var(--sbb-focus-outline-color);\n}\n@supports (scrollbar-gutter: stable) {\n .sbb-sidebar-content-section {\n scrollbar-gutter: stable;\n }\n}\n\n::slotted(sbb-sidebar-title) {\n flex-grow: 1;\n margin-block: var(--sbb-sidebar-title-padding-block);\n}\n\n::slotted(sbb-sidebar-close-button) {\n order: 1;\n margin-inline-end: calc(-1 * (var(--sbb-sidebar-padding) - var(--sbb-sidebar-title-padding-block)));\n margin-block: var(--sbb-sidebar-title-padding-block);\n inset-inline-end: var(--sbb-sidebar-padding);\n}";
8
+ //#endregion
9
+ //#region src/elements/sidebar/sidebar/sidebar.component.ts
10
+ /**
11
+ * This component corresponds to a sidebar that can be opened on the sidebar container.
12
+ *
13
+ * @slot - Use the unnamed slot to slot any content into the sidebar.
14
+ * @slot title - Use the title slot to add an <sbb-title>.
15
+ */
16
+ var SbbSidebarElement = (() => {
17
+ let _classSuper = SbbAnimationCompleteMixin(SbbOpenCloseBaseElement);
18
+ let _instanceExtraInitializers = [];
19
+ let _color_decorators;
20
+ let _color_initializers = [];
21
+ let _color_extraInitializers = [];
22
+ let _mode_decorators;
23
+ let _mode_initializers = [];
24
+ let _mode_extraInitializers = [];
25
+ let _position_decorators;
26
+ let _position_initializers = [];
27
+ let _position_extraInitializers = [];
28
+ let _opened_decorators;
29
+ let _opened_initializers = [];
30
+ let _opened_extraInitializers = [];
31
+ let _focusOnOpen_decorators;
32
+ let _focusOnOpen_initializers = [];
33
+ let _focusOnOpen_extraInitializers = [];
34
+ let __detectScrolledState_decorators;
35
+ return class SbbSidebarElement extends _classSuper {
36
+ static {
37
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
38
+ _color_decorators = [property({ reflect: true })];
39
+ _mode_decorators = [forceType((v) => v === "over" ? "over" : "side"), property({ reflect: true })];
40
+ _position_decorators = [
41
+ forceType((v) => v === "end" ? "end" : "start"),
42
+ handleDistinctChange((instance, _newValue, oldValue) => instance._updateSidebarWidth(oldValue)),
43
+ property({ reflect: true })
44
+ ];
45
+ _opened_decorators = [forceType(), property({
46
+ type: Boolean,
47
+ reflect: true
48
+ })];
49
+ _focusOnOpen_decorators = [forceType(), property({
50
+ type: Boolean,
51
+ attribute: "focus-on-open"
52
+ })];
53
+ __detectScrolledState_decorators = [eventOptions({ passive: true })];
54
+ __esDecorate(this, null, _color_decorators, {
55
+ kind: "accessor",
56
+ name: "color",
57
+ static: false,
58
+ private: false,
59
+ access: {
60
+ has: (obj) => "color" in obj,
61
+ get: (obj) => obj.color,
62
+ set: (obj, value) => {
63
+ obj.color = value;
64
+ }
65
+ },
66
+ metadata: _metadata
67
+ }, _color_initializers, _color_extraInitializers);
68
+ __esDecorate(this, null, _mode_decorators, {
69
+ kind: "accessor",
70
+ name: "mode",
71
+ static: false,
72
+ private: false,
73
+ access: {
74
+ has: (obj) => "mode" in obj,
75
+ get: (obj) => obj.mode,
76
+ set: (obj, value) => {
77
+ obj.mode = value;
78
+ }
79
+ },
80
+ metadata: _metadata
81
+ }, _mode_initializers, _mode_extraInitializers);
82
+ __esDecorate(this, null, _position_decorators, {
83
+ kind: "accessor",
84
+ name: "position",
85
+ static: false,
86
+ private: false,
87
+ access: {
88
+ has: (obj) => "position" in obj,
89
+ get: (obj) => obj.position,
90
+ set: (obj, value) => {
91
+ obj.position = value;
92
+ }
93
+ },
94
+ metadata: _metadata
95
+ }, _position_initializers, _position_extraInitializers);
96
+ __esDecorate(this, null, _opened_decorators, {
97
+ kind: "accessor",
98
+ name: "opened",
99
+ static: false,
100
+ private: false,
101
+ access: {
102
+ has: (obj) => "opened" in obj,
103
+ get: (obj) => obj.opened,
104
+ set: (obj, value) => {
105
+ obj.opened = value;
106
+ }
107
+ },
108
+ metadata: _metadata
109
+ }, _opened_initializers, _opened_extraInitializers);
110
+ __esDecorate(this, null, _focusOnOpen_decorators, {
111
+ kind: "accessor",
112
+ name: "focusOnOpen",
113
+ static: false,
114
+ private: false,
115
+ access: {
116
+ has: (obj) => "focusOnOpen" in obj,
117
+ get: (obj) => obj.focusOnOpen,
118
+ set: (obj, value) => {
119
+ obj.focusOnOpen = value;
120
+ }
121
+ },
122
+ metadata: _metadata
123
+ }, _focusOnOpen_initializers, _focusOnOpen_extraInitializers);
124
+ __esDecorate(this, null, __detectScrolledState_decorators, {
125
+ kind: "method",
126
+ name: "_detectScrolledState",
127
+ static: false,
128
+ private: false,
129
+ access: {
130
+ has: (obj) => "_detectScrolledState" in obj,
131
+ get: (obj) => obj._detectScrolledState
132
+ },
133
+ metadata: _metadata
134
+ }, null, _instanceExtraInitializers);
135
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, {
136
+ enumerable: true,
137
+ configurable: true,
138
+ writable: true,
139
+ value: _metadata
140
+ });
141
+ }
142
+ static {
143
+ this.elementName = "sbb-sidebar";
144
+ }
145
+ static {
146
+ this.styles = [
147
+ boxSizingStyles,
148
+ scrollbarStyles,
149
+ unsafeCSS(sidebar_default)
150
+ ];
151
+ }
152
+ #color_accessor_storage;
153
+ /** Background color of the sidebar. Either `white` or `milk`. */
154
+ get color() {
155
+ return this.#color_accessor_storage;
156
+ }
157
+ set color(value) {
158
+ this.#color_accessor_storage = value;
159
+ }
160
+ #mode_accessor_storage;
161
+ /** Mode of the sidebar; one of 'side' or 'over'. */
162
+ get mode() {
163
+ return this.#mode_accessor_storage;
164
+ }
165
+ set mode(value) {
166
+ this.#mode_accessor_storage = value;
167
+ }
168
+ #position_accessor_storage;
169
+ /** The side that the sidebar is attached to. */
170
+ get position() {
171
+ return this.#position_accessor_storage;
172
+ }
173
+ set position(value) {
174
+ this.#position_accessor_storage = value;
175
+ }
176
+ #opened_accessor_storage;
177
+ /**
178
+ * Whether the sidebar is opened or closed.
179
+ * Can be used to initially set the opened state, where
180
+ * the animation will be skipped.
181
+ */
182
+ get opened() {
183
+ return this.#opened_accessor_storage;
184
+ }
185
+ set opened(value) {
186
+ this.#opened_accessor_storage = value;
187
+ }
188
+ #focusOnOpen_accessor_storage;
189
+ /**
190
+ * Whether the sidebar should focus the first focusable element automatically when opened.
191
+ * Defaults to false in when mode is set to `side`, otherwise defaults to true.
192
+ * If explicitly enabled, focus will be moved into the sidebar in `side` mode as well.
193
+ */
194
+ get focusOnOpen() {
195
+ return this.#focusOnOpen_accessor_storage;
196
+ }
197
+ set focusOnOpen(value) {
198
+ this.#focusOnOpen_accessor_storage = value;
199
+ }
200
+ /** Returns the SbbSidebarContainerElement where this sidebar is contained. */
201
+ get container() {
202
+ return this._container;
203
+ }
204
+ constructor() {
205
+ super();
206
+ this.#color_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _color_initializers, "white"));
207
+ this.#mode_accessor_storage = (__runInitializers(this, _color_extraInitializers), __runInitializers(this, _mode_initializers, "side"));
208
+ this.#position_accessor_storage = (__runInitializers(this, _mode_extraInitializers), __runInitializers(this, _position_initializers, "start"));
209
+ this.#opened_accessor_storage = (__runInitializers(this, _position_extraInitializers), __runInitializers(this, _opened_initializers, false));
210
+ this.#focusOnOpen_accessor_storage = (__runInitializers(this, _opened_extraInitializers), __runInitializers(this, _focusOnOpen_initializers, false));
211
+ this._container = (__runInitializers(this, _focusOnOpen_extraInitializers), null);
212
+ this._lastFocusedElement = null;
213
+ this._focusTrapController = new SbbFocusTrapController(this);
214
+ this._escapableOverlayController = new SbbEscapableOverlayController(this);
215
+ this._closeOnNavigation = () => {
216
+ if (this._isModeOver() && this.isOpen) this.close();
217
+ };
218
+ this.addController(new ResizeController(this, {
219
+ skipInitial: true,
220
+ callback: () => this._updateSidebarWidth()
221
+ }));
222
+ this.addEventListener?.("click", (e) => {
223
+ if (e.target?.localName === "sbb-sidebar-close-button") this.close();
224
+ });
225
+ }
226
+ connectedCallback() {
227
+ super.connectedCallback();
228
+ this._container = this.closest?.("sbb-sidebar-container");
229
+ this._updateSidebarWidth();
230
+ if (this.isOpen && this._isModeOver()) this._takeFocus();
231
+ if (!isServer) if (window.navigation) window.navigation.addEventListener("navigate", this._closeOnNavigation);
232
+ else window.addEventListener("popstate", this._closeOnNavigation);
233
+ }
234
+ disconnectedCallback() {
235
+ super.disconnectedCallback();
236
+ this.container?.style.removeProperty(this._buildCssWidthVar());
237
+ this._container = null;
238
+ if (!isServer) if (window.navigation) window.navigation.removeEventListener("navigate", this._closeOnNavigation);
239
+ else window.removeEventListener("popstate", this._closeOnNavigation);
240
+ }
241
+ willUpdate(changedProperties) {
242
+ super.willUpdate(changedProperties);
243
+ if (changedProperties.has("opened")) {
244
+ if (this.opened) this.open();
245
+ else if (!this.opened) this.close();
246
+ }
247
+ if (changedProperties.has("mode")) if (this.mode === "over" && this.isOpen) this._takeFocus();
248
+ else this.cedeFocus();
249
+ }
250
+ firstUpdated(changedProperties) {
251
+ super.firstUpdated(changedProperties);
252
+ this._updateSidebarWidth();
253
+ }
254
+ /** Toggles the sidebar visibility. */
255
+ toggle() {
256
+ if (this.state === "opening" || this.state === "opened") this.close();
257
+ else this.open();
258
+ }
259
+ /** Opens the sidebar. */
260
+ open() {
261
+ if (this.state === "opening" || this.state === "opened" || !this.dispatchBeforeOpenEvent()) return;
262
+ this.startAnimation();
263
+ if (!isServer && document.activeElement?.localName !== "body") this._lastFocusedElement = document.activeElement;
264
+ this.opened = true;
265
+ this.state = "opening";
266
+ const isZeroAnimationDuration = this._isZeroAnimationDuration() || !this.isConnected;
267
+ const isDuringInitialization = !this.hasUpdated;
268
+ if (!(isDuringInitialization || isZeroAnimationDuration)) return;
269
+ this.internals.states.add("skip-animation");
270
+ if (isDuringInitialization) this.updateComplete.then(() => this._handleOpening());
271
+ else this._handleOpening();
272
+ }
273
+ _isZeroAnimationDuration() {
274
+ return isZeroAnimationDuration(this, "--sbb-sidebar-container-animation-duration");
275
+ }
276
+ _handleOpening() {
277
+ this.state = "opened";
278
+ setTimeout(() => this.internals.states.delete("skip-animation"));
279
+ this._takeFocus();
280
+ this.stopAnimation();
281
+ this.dispatchOpenEvent();
282
+ }
283
+ /** Closes the sidebar. */
284
+ close() {
285
+ if (this.state === "closing" || this.state === "closed" || !this.dispatchBeforeCloseEvent()) return;
286
+ this.startAnimation();
287
+ const isZeroAnimationDuration = this._isZeroAnimationDuration();
288
+ if (!this.hasUpdated || isZeroAnimationDuration) this.internals.states.add("skip-animation");
289
+ else this.state = "closing";
290
+ this.opened = false;
291
+ if (!this.hasUpdated || isZeroAnimationDuration) this._handleClosing();
292
+ }
293
+ _handleClosing() {
294
+ this.state = "closed";
295
+ setTimeout(() => this.internals.states.delete("skip-animation"));
296
+ this.cedeFocus();
297
+ if (!isServer && (this.contains(document.activeElement) || this._isModeOver())) if (this._lastFocusedElement) this._lastFocusedElement?.focus();
298
+ else document.activeElement.blur();
299
+ this._lastFocusedElement = null;
300
+ this.stopAnimation();
301
+ this.dispatchCloseEvent();
302
+ }
303
+ _takeFocus() {
304
+ if (!this.isConnected) return;
305
+ const isModeOver = this._isModeOver();
306
+ if (isModeOver || this.focusOnOpen) this._focusTrapController.focusInitialElement();
307
+ if (isModeOver) {
308
+ this._escapableOverlayController.connect();
309
+ this._focusTrapController.enabled = true;
310
+ }
311
+ }
312
+ cedeFocus() {
313
+ this._focusTrapController.enabled = false;
314
+ this._escapableOverlayController.disconnect();
315
+ }
316
+ _updateSidebarWidth(oldPosition) {
317
+ const container = this.container;
318
+ if (!container) return;
319
+ if (oldPosition) container.style.removeProperty(this._buildCssWidthVar(oldPosition));
320
+ const width = this.offsetWidth;
321
+ if (!width) return;
322
+ const newValue = `${width}px`;
323
+ if (container.style.getPropertyValue(this._buildCssWidthVar()) === newValue) return;
324
+ container.style.setProperty(this._buildCssWidthVar(), newValue);
325
+ }
326
+ _buildCssWidthVar(position = this.position) {
327
+ return `--_sbb-sidebar-container-${position}-width`;
328
+ }
329
+ _isModeOver() {
330
+ return this.mode === "over" || this.matches(":is(:state(mode-over-forced),[state--mode-over-forced])");
331
+ }
332
+ _onTransitionEnd(event) {
333
+ if (event.propertyName !== "translate" || event.target !== event.currentTarget) return;
334
+ if (this.state === "opening") this._handleOpening();
335
+ else if (this.state === "closing") this._handleClosing();
336
+ }
337
+ _detectScrolledState() {
338
+ this.toggleState("scrolled", (this.shadowRoot?.querySelector(".sbb-sidebar-content-section")?.scrollTop ?? 0) > 0);
339
+ }
340
+ render() {
341
+ return html`<div class="sbb-sidebar" @transitionend=${this._onTransitionEnd}>
342
+ <div class="sbb-sidebar-title-section"><slot name="title-section"></slot></div>
343
+ <div
344
+ class="sbb-sidebar-content-section sbb-scrollbar"
345
+ @scroll=${() => this._detectScrolledState()}
346
+ >
347
+ <slot></slot>
348
+ </div>
349
+ </div>`;
350
+ }
351
+ };
352
+ })();
353
+ //#endregion
354
+ export { SbbSidebarElement as t };
355
+
356
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQtQ1lMYkkxVnAuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3NpZGViYXIvc2lkZWJhci9zaWRlYmFyLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3NpZGViYXIvc2lkZWJhci9zaWRlYmFyLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLWxpbmstdGV4dC1kZWNvcmF0aW9uLWxpbmU6IG5vbmU7XG4gIC0tc2JiLXNpZGViYXItYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMSk7XG4gIC0tc2JiLXNpZGViYXItc2Nyb2xsYmFyLXBsYWNlaG9sZGVyLXdpZHRoOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0zeCk7XG4gIC0tX3NiYi1zaWRlYmFyLW1hcmdpbjogMDtcbiAgLS1fc2JiLXNpZGViYXItbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1zYmItc2lkZWJhci1tYXJnaW4pO1xuICAtLV9zYmItc2lkZWJhci10cmFuc2xhdGUteDogLTEwMCU7XG4gIC0tX3NiYi1zaWRlYmFyLXotaW5kZXg6IDI7XG4gIC0tX3NiYi1zaWRlYmFyLXBhZGRpbmctaW5saW5lLWVuZDogdmFyKC0tc2JiLXNpZGViYXItcGFkZGluZyk7XG4gIC0tX3NiYi1zaWRlYmFyLXBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLXNiYi1zaWRlYmFyLXBhZGRpbmcpO1xuICAtLV9zYmItc2lkZWJhci1ib3JkZXItcmFkaXVzLXN0YXJ0OiB2YXIoLS1zYmItc2lkZWJhci1ib3JkZXItcmFkaXVzKTtcbiAgLS1fc2JiLXNpZGViYXItYm9yZGVyLXJhZGl1cy1lbmQ6IDA7XG4gIC0tX3NiYi1zaWRlYmFyLWNsb3NlLWJ1dHRvbi1zaXplOiB2YXIoLS1zYmItc2l6ZS1lbGVtZW50LXhzKTtcbiAgLS1fc2JiLXNpZGViYXItbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAyICogdmFyKC0tX3NiYi1zaWRlYmFyLW1hcmdpbikpO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDMyMCl9O1xuXG4gIC8vIFN1YnRyYWN0IHRoZSB3aWR0aCBvZiB0aGUgc2Nyb2xsYmFyIGZyb20gdGhlIHBhZGRpbmcgKEV4Y2x1ZGUgaU9TIGJyb3dzZXJzIGJlY2F1c2UgdGhleSB1c2Ugb3ZlcmxheSBzY3JvbGxiYXJzKVxuICBAc3VwcG9ydHMgKHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZSkgYW5kIChub3QgKC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZSkpIHtcbiAgICAtLV9zYmItc2lkZWJhci1wYWRkaW5nLWlubGluZS1lbmQ6IGNhbGMoXG4gICAgICB2YXIoLS1zYmItc2lkZWJhci1wYWRkaW5nKSAtIHZhcigtLXNiYi1zaWRlYmFyLXNjcm9sbGJhci1wbGFjZWhvbGRlci13aWR0aClcbiAgICApO1xuICB9XG59XG5cbjpob3N0KFtjb2xvcj0nd2hpdGUnXSkge1xuICAtLXNiYi1zaWRlYmFyLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTEpO1xufVxuXG46aG9zdChbY29sb3I9J21pbGsnXSkge1xuICAtLXNiYi1zaWRlYmFyLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTMpO1xufVxuXG46aG9zdCg6aXMoW21vZGU9J292ZXInXSwgOnN0YXRlKG1vZGUtb3Zlci1mb3JjZWQpOm5vdCg6c3RhdGUobW9kZS1vdmVyLWZvcmNlZC1jbG9zaW5nKSkpKSB7XG4gIC0tX3NiYi1zaWRlYmFyLW1hcmdpbjogdmFyKC0tc2JiLXNpZGViYXItbWFyZ2luKTtcbiAgLS1fc2JiLXNpZGViYXItYm9yZGVyLXJhZGl1cy1lbmQ6IHZhcigtLXNiYi1zaWRlYmFyLWJvcmRlci1yYWRpdXMpO1xuICAtLV9zYmItc2lkZWJhci16LWluZGV4OiAzO1xufVxuXG46aG9zdCg6aXMoOmRpcihydGwpLCBbcG9zaXRpb249J2VuZCddKSkge1xuICAtLV9zYmItc2lkZWJhci10cmFuc2xhdGUteDogMTAwJTtcbn1cblxuOmhvc3QoOmRpcihydGwpW3Bvc2l0aW9uPSdlbmQnXSkge1xuICAtLV9zYmItc2lkZWJhci10cmFuc2xhdGUteDogLTEwMCU7XG59XG5cbi5zYmItc2lkZWJhciB7XG4gIHdpZHRoOiBpbmhlcml0O1xuICBtYXgtd2lkdGg6IHZhcigtLV9zYmItc2lkZWJhci1tYXgtd2lkdGgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItc2lkZWJhci1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBpbnNldC1ibG9jazogMDtcbiAgei1pbmRleDogdmFyKC0tX3NiYi1zaWRlYmFyLXotaW5kZXgpO1xuICBib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzOiB2YXIoLS1fc2JiLXNpZGViYXItYm9yZGVyLXJhZGl1cy1zdGFydCk7XG4gIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1fc2JiLXNpZGViYXItYm9yZGVyLXJhZGl1cy1zdGFydCk7XG4gIGJvcmRlci1lbmQtc3RhcnQtcmFkaXVzOiB2YXIoLS1fc2JiLXNpZGViYXItYm9yZGVyLXJhZGl1cy1lbmQpO1xuICBib3JkZXItZW5kLWVuZC1yYWRpdXM6IHZhcigtLV9zYmItc2lkZWJhci1ib3JkZXItcmFkaXVzLWVuZCk7XG4gIG1hcmdpbjogdmFyKC0tX3NiYi1zaWRlYmFyLW1hcmdpbik7XG4gIG1hcmdpbi1ibG9jay1zdGFydDogdmFyKC0tX3NiYi1zaWRlYmFyLW1hcmdpbi1ibG9jay1zdGFydCk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXNiYi1zaWRlYmFyLWNvbnRhaW5lci1hbmltYXRpb24tZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLXNpZGViYXItY29udGFpbmVyLWFuaW1hdGlvbi1lYXNpbmcpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB3aWR0aCwgdHJhbnNsYXRlO1xuICB0cmFuc2xhdGU6IG5vbmU7XG5cbiAgOmhvc3QoW3Bvc2l0aW9uPSdlbmQnXSkgJiB7XG4gICAgaW5zZXQtaW5saW5lLWVuZDogMDtcbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShzdGF0ZS1jbG9zZWQpKSAmIHtcbiAgICAvLyBTdG9wcyB0aGUgc2lkZW5hdiBmcm9tIHBva2luZyBvdXQgKGUuZy4gd2l0aCB0aGUgYm94IHNoYWRvdykgd2hpbGUgaXQncyBvZmYtc2NyZWVuLlxuICAgIC8vIFdlIGNhbid0IHVzZSBgZGlzcGxheWAgYmVjYXVzZSBpdCBpbnRlcnJ1cHRzIHRoZSB0cmFuc2l0aW9uIGFuZCBgdHJhbnNpdGlvbi1iZWhhdmlvcmBcbiAgICAvLyBpc24ndCBhdmFpbGFibGUgaW4gYWxsIGJyb3dzZXJzLlxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIDpob3N0KDppcyg6c3RhdGUoc3RhdGUtY2xvc2luZyksIDpzdGF0ZShzdGF0ZS1jbG9zZWQpKSkgJiB7XG4gICAgdHJhbnNsYXRlOiB2YXIoLS1fc2JiLXNpZGViYXItdHJhbnNsYXRlLXgpIDA7XG4gIH1cbn1cblxuLnNiYi1zaWRlYmFyLXRpdGxlLXNlY3Rpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgZ2FwOiB2YXIoLS1zYmItc2lkZWJhci10aXRsZS1nYXApO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItc2lkZWJhci1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zaWRlYmFyLXBhZGRpbmcpO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IHZhcigtLXNiYi1hbmltYXRpb24tZWFzaW5nKSB2YXIoLS1zYmItc2lkZWJhci1jb250YWluZXItYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgYm94LXNoYWRvdzogbm9uZTtcblxuICA6aG9zdCg6c3RhdGUoc2Nyb2xsZWQpKSAmIHtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zYmItYm94LXNoYWRvdy1sZXZlbC01LXNvZnQpO1xuICB9XG59XG5cbi5zYmItc2lkZWJhci1jb250ZW50LXNlY3Rpb24ge1xuICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiB2YXIoLS1fc2JiLXNpZGViYXItcGFkZGluZy1ibG9jay1zdGFydCk7XG4gIHBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItc2lkZWJhci1wYWRkaW5nKSB2YXIoLS1fc2JiLXNpZGViYXItcGFkZGluZy1pbmxpbmUtZW5kKTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgZmxleC1ncm93OiAxO1xuXG4gIC8vIElmIHRoZSBlbGVtZW50IGlzIHNjcm9sbGFibGUgYW5kIGhhcyBubyBmb2N1c2FibGUgY29udGVudCwgaXQgZ2V0cyBmb2N1c2VkLlxuICAvLyBUbyBhZGFwdCB0byBseW5lIHN0eWxlcyB3ZSBjb2xvcml6ZSBpdFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvcik7XG5cbiAgQHN1cHBvcnRzIChzY3JvbGxiYXItZ3V0dGVyOiBzdGFibGUpIHtcbiAgICBzY3JvbGxiYXItZ3V0dGVyOiBzdGFibGU7XG4gIH1cbn1cblxuOjpzbG90dGVkKHNiYi1zaWRlYmFyLXRpdGxlKSB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgbWFyZ2luLWJsb2NrOiB2YXIoLS1zYmItc2lkZWJhci10aXRsZS1wYWRkaW5nLWJsb2NrKTtcbn1cblxuOjpzbG90dGVkKHNiYi1zaWRlYmFyLWNsb3NlLWJ1dHRvbikge1xuICBvcmRlcjogMTtcblxuICAvLyBEdWUgdG8gZGVzaWduIG5lZWRzLCB3ZSBoYXZlIHRvIHRyYW5zbGF0ZSB0aGUgY2xvc2UgYnV0dG9uIHRvIHRoZSByaWdodFxuICBtYXJnaW4taW5saW5lLWVuZDogY2FsYyhcbiAgICAtMSAqICh2YXIoLS1zYmItc2lkZWJhci1wYWRkaW5nKSAtIHZhcigtLXNiYi1zaWRlYmFyLXRpdGxlLXBhZGRpbmctYmxvY2spKVxuICApO1xuICBtYXJnaW4tYmxvY2s6IHZhcigtLXNiYi1zaWRlYmFyLXRpdGxlLXBhZGRpbmctYmxvY2spO1xuICBpbnNldC1pbmxpbmUtZW5kOiB2YXIoLS1zYmItc2lkZWJhci1wYWRkaW5nKTtcbn1cbiIsImltcG9ydCB7IFJlc2l6ZUNvbnRyb2xsZXIgfSBmcm9tICdAbGl0LWxhYnMvb2JzZXJ2ZXJzL3Jlc2l6ZS1jb250cm9sbGVyLmpzJztcbmltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIGlzU2VydmVyLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBldmVudE9wdGlvbnMsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQge1xuICBib3hTaXppbmdTdHlsZXMsXG4gIGZvcmNlVHlwZSxcbiAgaGFuZGxlRGlzdGluY3RDaGFuZ2UsXG4gIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uLFxuICBTYmJBbmltYXRpb25Db21wbGV0ZU1peGluLFxuICBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlcixcbiAgU2JiRm9jdXNUcmFwQ29udHJvbGxlcixcbiAgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQsXG4gIHNjcm9sbGJhclN0eWxlcyxcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlNpZGViYXJDb250YWluZXJFbGVtZW50IH0gZnJvbSAnLi4vc2lkZWJhci1jb250YWluZXIvc2lkZWJhci1jb250YWluZXIuY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vc2lkZWJhci5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogVGhpcyBjb21wb25lbnQgY29ycmVzcG9uZHMgdG8gYSBzaWRlYmFyIHRoYXQgY2FuIGJlIG9wZW5lZCBvbiB0aGUgc2lkZWJhciBjb250YWluZXIuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBzbG90IGFueSBjb250ZW50IGludG8gdGhlIHNpZGViYXIuXG4gKiBAc2xvdCB0aXRsZSAtIFVzZSB0aGUgdGl0bGUgc2xvdCB0byBhZGQgYW4gPHNiYi10aXRsZT4uXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJTaWRlYmFyRWxlbWVudCBleHRlbmRzIFNiYkFuaW1hdGlvbkNvbXBsZXRlTWl4aW4oU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1zaWRlYmFyJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW1xuICAgIGJveFNpemluZ1N0eWxlcyxcbiAgICBzY3JvbGxiYXJTdHlsZXMsXG4gICAgdW5zYWZlQ1NTKHN0eWxlKSxcbiAgXTtcblxuICAvKiogQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgc2lkZWJhci4gRWl0aGVyIGB3aGl0ZWAgb3IgYG1pbGtgLiAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBjb2xvcjogJ3doaXRlJyB8ICdtaWxrJyA9ICd3aGl0ZSc7XG5cbiAgLyoqIE1vZGUgb2YgdGhlIHNpZGViYXI7IG9uZSBvZiAnc2lkZScgb3IgJ292ZXInLiAqL1xuICBAZm9yY2VUeXBlKCh2KSA9PiAodiA9PT0gJ292ZXInID8gJ292ZXInIDogJ3NpZGUnKSlcbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgbW9kZTogJ3NpZGUnIHwgJ292ZXInID0gJ3NpZGUnO1xuXG4gIC8qKiBUaGUgc2lkZSB0aGF0IHRoZSBzaWRlYmFyIGlzIGF0dGFjaGVkIHRvLiAqL1xuICBAZm9yY2VUeXBlKCh2KSA9PiAodiA9PT0gJ2VuZCcgPyAnZW5kJyA6ICdzdGFydCcpKVxuICBAaGFuZGxlRGlzdGluY3RDaGFuZ2UoKGluc3RhbmNlLCBfbmV3VmFsdWUsIG9sZFZhbHVlKSA9PiBpbnN0YW5jZS5fdXBkYXRlU2lkZWJhcldpZHRoKG9sZFZhbHVlKSlcbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgcG9zaXRpb246ICdzdGFydCcgfCAnZW5kJyA9ICdzdGFydCc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHNpZGViYXIgaXMgb3BlbmVkIG9yIGNsb3NlZC5cbiAgICogQ2FuIGJlIHVzZWQgdG8gaW5pdGlhbGx5IHNldCB0aGUgb3BlbmVkIHN0YXRlLCB3aGVyZVxuICAgKiB0aGUgYW5pbWF0aW9uIHdpbGwgYmUgc2tpcHBlZC5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBvcGVuZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgc2lkZWJhciBzaG91bGQgZm9jdXMgdGhlIGZpcnN0IGZvY3VzYWJsZSBlbGVtZW50IGF1dG9tYXRpY2FsbHkgd2hlbiBvcGVuZWQuXG4gICAqIERlZmF1bHRzIHRvIGZhbHNlIGluIHdoZW4gbW9kZSBpcyBzZXQgdG8gYHNpZGVgLCBvdGhlcndpc2UgZGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICogSWYgZXhwbGljaXRseSBlbmFibGVkLCBmb2N1cyB3aWxsIGJlIG1vdmVkIGludG8gdGhlIHNpZGViYXIgaW4gYHNpZGVgIG1vZGUgYXMgd2VsbC5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuLCBhdHRyaWJ1dGU6ICdmb2N1cy1vbi1vcGVuJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZm9jdXNPbk9wZW46IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogUmV0dXJucyB0aGUgU2JiU2lkZWJhckNvbnRhaW5lckVsZW1lbnQgd2hlcmUgdGhpcyBzaWRlYmFyIGlzIGNvbnRhaW5lZC4gKi9cbiAgcHVibGljIGdldCBjb250YWluZXIoKTogU2JiU2lkZWJhckNvbnRhaW5lckVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fY29udGFpbmVyO1xuICB9XG4gIHByaXZhdGUgX2NvbnRhaW5lcjogU2JiU2lkZWJhckNvbnRhaW5lckVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF9sYXN0Rm9jdXNlZEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2ZvY3VzVHJhcENvbnRyb2xsZXIgPSBuZXcgU2JiRm9jdXNUcmFwQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIgPSBuZXcgU2JiRXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgbmV3IFJlc2l6ZUNvbnRyb2xsZXIodGhpcywge1xuICAgICAgICBza2lwSW5pdGlhbDogdHJ1ZSxcbiAgICAgICAgY2FsbGJhY2s6ICgpID0+IHRoaXMuX3VwZGF0ZVNpZGViYXJXaWR0aCgpLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjbGljaycsIChlKSA9PiB7XG4gICAgICBpZiAoKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkKT8ubG9jYWxOYW1lID09PSAnc2JiLXNpZGViYXItY2xvc2UtYnV0dG9uJykge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgIHRoaXMuX2NvbnRhaW5lciA9IHRoaXMuY2xvc2VzdD8uKCdzYmItc2lkZWJhci1jb250YWluZXInKTtcbiAgICB0aGlzLl91cGRhdGVTaWRlYmFyV2lkdGgoKTtcblxuICAgIGlmICh0aGlzLmlzT3BlbiAmJiB0aGlzLl9pc01vZGVPdmVyKCkpIHtcbiAgICAgIHRoaXMuX3Rha2VGb2N1cygpO1xuICAgIH1cblxuICAgIGlmICghaXNTZXJ2ZXIpIHtcbiAgICAgIGlmICh3aW5kb3cubmF2aWdhdGlvbikge1xuICAgICAgICB3aW5kb3cubmF2aWdhdGlvbi5hZGRFdmVudExpc3RlbmVyKCduYXZpZ2F0ZScsIHRoaXMuX2Nsb3NlT25OYXZpZ2F0aW9uKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsIHRoaXMuX2Nsb3NlT25OYXZpZ2F0aW9uKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLmNvbnRhaW5lcj8uc3R5bGUucmVtb3ZlUHJvcGVydHkodGhpcy5fYnVpbGRDc3NXaWR0aFZhcigpKTtcbiAgICB0aGlzLl9jb250YWluZXIgPSBudWxsO1xuXG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgaWYgKHdpbmRvdy5uYXZpZ2F0aW9uKSB7XG4gICAgICAgIHdpbmRvdy5uYXZpZ2F0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ25hdmlnYXRlJywgdGhpcy5fY2xvc2VPbk5hdmlnYXRpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvcHN0YXRlJywgdGhpcy5fY2xvc2VPbk5hdmlnYXRpb24pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2Nsb3NlT25OYXZpZ2F0aW9uID0gKCk6IHZvaWQgPT4ge1xuICAgIGlmICh0aGlzLl9pc01vZGVPdmVyKCkgJiYgdGhpcy5pc09wZW4pIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH07XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdvcGVuZWQnKSkge1xuICAgICAgaWYgKHRoaXMub3BlbmVkKSB7XG4gICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgfSBlbHNlIGlmICghdGhpcy5vcGVuZWQpIHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ21vZGUnKSkge1xuICAgICAgaWYgKHRoaXMubW9kZSA9PT0gJ292ZXInICYmIHRoaXMuaXNPcGVuKSB7XG4gICAgICAgIHRoaXMuX3Rha2VGb2N1cygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jZWRlRm9jdXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICB0aGlzLl91cGRhdGVTaWRlYmFyV2lkdGgoKTtcbiAgfVxuXG4gIC8qKiBUb2dnbGVzIHRoZSBzaWRlYmFyIHZpc2liaWxpdHkuICovXG4gIHB1YmxpYyB0b2dnbGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJyB8fCB0aGlzLnN0YXRlID09PSAnb3BlbmVkJykge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZW4oKTtcbiAgICB9XG4gIH1cblxuICAvKiogT3BlbnMgdGhlIHNpZGViYXIuICovXG4gIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSAnb3BlbmluZycgfHwgdGhpcy5zdGF0ZSA9PT0gJ29wZW5lZCcgfHwgIXRoaXMuZGlzcGF0Y2hCZWZvcmVPcGVuRXZlbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RhcnRBbmltYXRpb24oKTtcblxuICAgIGlmICghaXNTZXJ2ZXIgJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudD8ubG9jYWxOYW1lICE9PSAnYm9keScpIHtcbiAgICAgIHRoaXMuX2xhc3RGb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgdGhpcy5vcGVuZWQgPSB0cnVlO1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG5cbiAgICBjb25zdCBpc1plcm9BbmltYXRpb25EdXJhdGlvbiA9IHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkgfHwgIXRoaXMuaXNDb25uZWN0ZWQ7XG4gICAgY29uc3QgaXNEdXJpbmdJbml0aWFsaXphdGlvbiA9ICF0aGlzLmhhc1VwZGF0ZWQ7XG5cbiAgICBpZiAoIShpc0R1cmluZ0luaXRpYWxpemF0aW9uIHx8IGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKCdza2lwLWFuaW1hdGlvbicpO1xuXG4gICAgLy8gV2UgaGF2ZSB0byB3YWl0IGZvciB0aGUgZmlyc3QgdXBkYXRlIHRvIGJlIGNvbXBsZXRlZFxuICAgIC8vIGluIG9yZGVyIHRvIGhhdmUgdGhlIHNpemUgb2YgdGhlIHNpZGViYXIgcmVhZHkgZm9yIHRoZSBhbmltYXRpb24uXG4gICAgaWYgKGlzRHVyaW5nSW5pdGlhbGl6YXRpb24pIHtcbiAgICAgIHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKSA9PiB0aGlzLl9oYW5kbGVPcGVuaW5nKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBvcGVuZWRgIHN0YXRlLlxuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1plcm9BbmltYXRpb25EdXJhdGlvbih0aGlzLCAnLS1zYmItc2lkZWJhci1jb250YWluZXItYW5pbWF0aW9uLWR1cmF0aW9uJyk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVPcGVuaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmVkJztcblxuICAgIC8vIFdlIGhhdmUgdG8gZW5zdXJlIHRoYXQgcmVtb3ZpbmcgdGhlIGFuaW1hdGlvbiBza2lwIGluc3RydWN0aW9uIGlzIGRvbmUgYSB0aWNrIGxhdGVyLlxuICAgIC8vIE90aGVyd2lzZSwgaXQncyByZW1vdmVkIHRvbyBlYXJseSBhbmQgaXQgZG9lc24ndCBoYXZlIGFueSBlZmZlY3QuXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKCdza2lwLWFuaW1hdGlvbicpKTtcblxuICAgIHRoaXMuX3Rha2VGb2N1cygpO1xuICAgIHRoaXMuc3RvcEFuaW1hdGlvbigpO1xuICAgIHRoaXMuZGlzcGF0Y2hPcGVuRXZlbnQoKTtcbiAgfVxuXG4gIC8qKiBDbG9zZXMgdGhlIHNpZGViYXIuICovXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnIHx8IHRoaXMuc3RhdGUgPT09ICdjbG9zZWQnIHx8ICF0aGlzLmRpc3BhdGNoQmVmb3JlQ2xvc2VFdmVudCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdGFydEFuaW1hdGlvbigpO1xuXG4gICAgY29uc3QgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24gPSB0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpO1xuXG4gICAgaWYgKCF0aGlzLmhhc1VwZGF0ZWQgfHwgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24pIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoJ3NraXAtYW5pbWF0aW9uJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RhdGUgPSAnY2xvc2luZyc7XG4gICAgfVxuXG4gICAgdGhpcy5vcGVuZWQgPSBmYWxzZTtcblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBvcGVuZWRgIHN0YXRlLlxuICAgIGlmICghdGhpcy5oYXNVcGRhdGVkIHx8IGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xvc2luZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgLy8gV2UgaGF2ZSB0byBlbnN1cmUgdGhhdCByZW1vdmluZyB0aGUgYW5pbWF0aW9uIHNraXAgaW5zdHJ1Y3Rpb24gaXMgZG9uZSBhIHRpY2sgbGF0ZXIuXG4gICAgLy8gT3RoZXJ3aXNlLCBpdCdzIHJlbW92ZWQgdG9vIGVhcmx5IGFuZCBpdCBkb2Vzbid0IGhhdmUgYW55IGVmZmVjdC5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ3NraXAtYW5pbWF0aW9uJykpO1xuICAgIHRoaXMuY2VkZUZvY3VzKCk7XG5cbiAgICBpZiAoIWlzU2VydmVyICYmICh0aGlzLmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpIHx8IHRoaXMuX2lzTW9kZU92ZXIoKSkpIHtcbiAgICAgIGlmICh0aGlzLl9sYXN0Rm9jdXNlZEVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5fbGFzdEZvY3VzZWRFbGVtZW50Py5mb2N1cygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gV2UgZG9uJ3Qga25vdyB3aGVyZSB0byBzZXQgdGhlIGZvY3VzLCBidXQgaGF2ZSB0byByZW1vdmUgaXQsIHNvIHdlIGNhbGwgYmx1clxuICAgICAgICAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuYmx1cigpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl9sYXN0Rm9jdXNlZEVsZW1lbnQgPSBudWxsO1xuXG4gICAgdGhpcy5zdG9wQW5pbWF0aW9uKCk7XG4gICAgdGhpcy5kaXNwYXRjaENsb3NlRXZlbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3Rha2VGb2N1cygpOiB2b2lkIHtcbiAgICAvLyBXZSBwcmV2ZW50IGNhbGxpbmcgdGhlIGZvY3VzIHN0dWZmIHdoZW4gbm90IG5lZWRlZFxuICAgIGlmICghdGhpcy5pc0Nvbm5lY3RlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBpc01vZGVPdmVyID0gdGhpcy5faXNNb2RlT3ZlcigpO1xuXG4gICAgaWYgKGlzTW9kZU92ZXIgfHwgdGhpcy5mb2N1c09uT3Blbikge1xuICAgICAgdGhpcy5fZm9jdXNUcmFwQ29udHJvbGxlci5mb2N1c0luaXRpYWxFbGVtZW50KCk7XG4gICAgfVxuXG4gICAgaWYgKGlzTW9kZU92ZXIpIHtcbiAgICAgIHRoaXMuX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLmNvbm5lY3QoKTtcbiAgICAgIHRoaXMuX2ZvY3VzVHJhcENvbnRyb2xsZXIuZW5hYmxlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLy8gSW50ZXJuYWwgbWV0aG9kIHRoYXQgd2UgdXNlIGV4dGVybmFsbHkuIGBwcm90ZWN0ZWRgIHByZXNlcnZlcyB0eXBlIGluZm9ybWF0aW9uIGZvciB0eXBlIHNhZmUgYWNjZXNzLlxuICBwcm90ZWN0ZWQgY2VkZUZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZvY3VzVHJhcENvbnRyb2xsZXIuZW5hYmxlZCA9IGZhbHNlO1xuICAgIHRoaXMuX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVNpZGViYXJXaWR0aChvbGRQb3NpdGlvbj86IHRoaXNbJ3Bvc2l0aW9uJ10pOiB2b2lkIHtcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICBpZiAoIWNvbnRhaW5lcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChvbGRQb3NpdGlvbikge1xuICAgICAgY29udGFpbmVyLnN0eWxlLnJlbW92ZVByb3BlcnR5KHRoaXMuX2J1aWxkQ3NzV2lkdGhWYXIob2xkUG9zaXRpb24pKTtcbiAgICB9XG5cbiAgICBjb25zdCB3aWR0aCA9IHRoaXMub2Zmc2V0V2lkdGg7XG4gICAgaWYgKCF3aWR0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld1ZhbHVlID0gYCR7d2lkdGh9cHhgO1xuICAgIGNvbnN0IGFjdHVhbFZhbHVlID0gY29udGFpbmVyLnN0eWxlLmdldFByb3BlcnR5VmFsdWUodGhpcy5fYnVpbGRDc3NXaWR0aFZhcigpKTtcblxuICAgIGlmIChhY3R1YWxWYWx1ZSA9PT0gbmV3VmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb250YWluZXIuc3R5bGUuc2V0UHJvcGVydHkodGhpcy5fYnVpbGRDc3NXaWR0aFZhcigpLCBuZXdWYWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIF9idWlsZENzc1dpZHRoVmFyKHBvc2l0aW9uID0gdGhpcy5wb3NpdGlvbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAtLV9zYmItc2lkZWJhci1jb250YWluZXItJHtwb3NpdGlvbn0td2lkdGhgO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNNb2RlT3ZlcigpOiBib29sZWFuIHtcbiAgICAvLyBJZiB0aGUgbWluaW11bSBzcGFjZSBhdHRyaWJ1dGUgaXMgc2V0LCB0aGUgc2lkZWJhciBzaG91bGQgYmVoYXZlIGxpa2UgaW4gbW9kZSBvdmVyLlxuICAgIHJldHVybiB0aGlzLm1vZGUgPT09ICdvdmVyJyB8fCB0aGlzLm1hdGNoZXMoJzpzdGF0ZShtb2RlLW92ZXItZm9yY2VkKScpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25UcmFuc2l0aW9uRW5kKGV2ZW50OiBUcmFuc2l0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBXZSBlbnN1cmUgdGhhdCB3ZSByZWFjdCB0byB0aGUgZmFkZSBpbiB0cmFuc2l0aW9uIG9uIHRoZSBzYmItc2lkZWJhciBkaXZcbiAgICBpZiAoZXZlbnQucHJvcGVydHlOYW1lICE9PSAndHJhbnNsYXRlJyB8fCBldmVudC50YXJnZXQgIT09IGV2ZW50LmN1cnJlbnRUYXJnZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBAZXZlbnRPcHRpb25zKHsgcGFzc2l2ZTogdHJ1ZSB9KVxuICBwcml2YXRlIF9kZXRlY3RTY3JvbGxlZFN0YXRlKCk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlU3RhdGUoXG4gICAgICAnc2Nyb2xsZWQnLFxuICAgICAgKHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignLnNiYi1zaWRlYmFyLWNvbnRlbnQtc2VjdGlvbicpPy5zY3JvbGxUb3AgPz8gMCkgPiAwLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwic2JiLXNpZGViYXJcIiBAdHJhbnNpdGlvbmVuZD0ke3RoaXMuX29uVHJhbnNpdGlvbkVuZH0+XG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXNpZGViYXItdGl0bGUtc2VjdGlvblwiPjxzbG90IG5hbWU9XCJ0aXRsZS1zZWN0aW9uXCI+PC9zbG90PjwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNiYi1zaWRlYmFyLWNvbnRlbnQtc2VjdGlvbiBzYmItc2Nyb2xsYmFyXCJcbiAgICAgICAgQHNjcm9sbD0keygpID0+IHRoaXMuX2RldGVjdFNjcm9sbGVkU3RhdGUoKX1cbiAgICAgID5cbiAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+YDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNpZGViYXInOiBTYmJTaWRlYmFyRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7SUNnQ2EsMkJBQWlCO21CQUFTLDBCQUEwQix3QkFBd0I7Ozs7Ozs7Ozs7Ozs7Ozs7OztjQUE1RSwwQkFB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
@@ -2,7 +2,7 @@ import { t as SbbSidebarCloseButtonElement } from "./sidebar-close-button.compon
2
2
  import { t as SbbSidebarContainerElement } from "./sidebar-container.component-t80DrAww.js";
3
3
  import { t as SbbSidebarContentElement } from "./sidebar-content.component-CpaONvN0.js";
4
4
  import { t as SbbSidebarTitleElement } from "./sidebar-title.component-BGlNsXi6.js";
5
- import { t as SbbSidebarElement } from "./sidebar.component-DR2JGwnM.js";
5
+ import { t as SbbSidebarElement } from "./sidebar.component-CYLbI1Vp.js";
6
6
  import "./sidebar.pure.js";
7
7
  //#region src/elements/sidebar.ts
8
8
  /** @entrypoint */
@@ -2,5 +2,5 @@ import { t as SbbSidebarCloseButtonElement } from "./sidebar-close-button.compon
2
2
  import { t as SbbSidebarContainerElement } from "./sidebar-container.component-t80DrAww.js";
3
3
  import { t as SbbSidebarContentElement } from "./sidebar-content.component-CpaONvN0.js";
4
4
  import { t as SbbSidebarTitleElement } from "./sidebar-title.component-BGlNsXi6.js";
5
- import { t as SbbSidebarElement } from "./sidebar.component-DR2JGwnM.js";
5
+ import { t as SbbSidebarElement } from "./sidebar.component-CYLbI1Vp.js";
6
6
  export { SbbSidebarCloseButtonElement, SbbSidebarContainerElement, SbbSidebarContentElement, SbbSidebarElement, SbbSidebarTitleElement };
@@ -0,0 +1,22 @@
1
+ import { unsafeCSS } from "lit";
2
+ //#region src/elements/core/styles/box-sizing.scss?inline
3
+ var box_sizing_default = "*,\n::before,\n::after {\n box-sizing: border-box;\n}";
4
+ //#endregion
5
+ //#region src/elements/core/styles/host-scrollbar.scss?inline
6
+ var host_scrollbar_default = ":host {\n --sbb-scrollbar-width: var(--sbb-spacing-fixed-3x);\n --sbb-scrollbar-thumb-width: 0.125rem;\n --sbb-scrollbar-thumb-width-hover: 0.25rem;\n --sbb-scrollbar-width-firefox: thin;\n --sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-black) 30%, transparent);\n --sbb-scrollbar-color: light-dark(\n color-mix(in srgb, var(--sbb-color-black) 30%, transparent),\n color-mix(in srgb, var(--sbb-color-white) 30%, transparent)\n );\n --sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-black) 60%, transparent);\n --sbb-scrollbar-color-hover: light-dark(\n color-mix(in srgb, var(--sbb-color-black) 60%, transparent),\n color-mix(in srgb, var(--sbb-color-white) 60%, transparent)\n );\n}\n:host::-webkit-scrollbar {\n width: var(--sbb-scrollbar-width);\n height: var(--sbb-scrollbar-width);\n background-color: var(--sbb-scrollbar-track-color, transparent);\n}\n:host::-webkit-scrollbar-corner {\n background-color: var(--sbb-scrollbar-track-color, transparent);\n}\n:host::-webkit-scrollbar-thumb {\n background-color: var(--sbb-scrollbar-color, currentcolor);\n border: calc(0.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;\n border-radius: var(--sbb-border-radius-4x);\n background-clip: padding-box;\n}\n:host::-webkit-scrollbar-thumb:hover {\n background-color: var(--sbb-scrollbar-color-hover, currentcolor);\n border-width: calc(0.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)));\n}\n:host::-webkit-scrollbar-button, :host::-webkit-scrollbar-corner {\n display: none;\n}\n@supports not selector(::-webkit-scrollbar) {\n :host {\n scrollbar-width: var(--sbb-scrollbar-width-firefox);\n scrollbar-color: var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent);\n }\n}";
7
+ //#endregion
8
+ //#region src/elements/core/styles/screen-reader-only.scss?inline
9
+ var screen_reader_only_default = ".sbb-screen-reader-only {\n border: 0;\n clip-path: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}";
10
+ //#endregion
11
+ //#region src/elements/core/styles/scrollbar.scss?inline
12
+ var scrollbar_default = ":is(.sbb-scrollbar,\n.sbb-scrollbar-negative,\n.sbb-scrollbar-thick,\n.sbb-scrollbar-thick-negative,\n.sbb-scrollbar-track-visible,\n.sbb-scrollbar-negative-track-visible,\n.sbb-scrollbar-thick-track-visible,\n.sbb-scrollbar-thick-negative-track-visible) {\n --sbb-scrollbar-width: var(--sbb-spacing-fixed-3x);\n --sbb-scrollbar-thumb-width: 0.125rem;\n --sbb-scrollbar-thumb-width-hover: 0.25rem;\n --sbb-scrollbar-width-firefox: thin;\n --sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-black) 30%, transparent);\n --sbb-scrollbar-color: light-dark(\n color-mix(in srgb, var(--sbb-color-black) 30%, transparent),\n color-mix(in srgb, var(--sbb-color-white) 30%, transparent)\n );\n --sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-black) 60%, transparent);\n --sbb-scrollbar-color-hover: light-dark(\n color-mix(in srgb, var(--sbb-color-black) 60%, transparent),\n color-mix(in srgb, var(--sbb-color-white) 60%, transparent)\n );\n}\n:is(.sbb-scrollbar,\n.sbb-scrollbar-negative,\n.sbb-scrollbar-thick,\n.sbb-scrollbar-thick-negative,\n.sbb-scrollbar-track-visible,\n.sbb-scrollbar-negative-track-visible,\n.sbb-scrollbar-thick-track-visible,\n.sbb-scrollbar-thick-negative-track-visible)::-webkit-scrollbar {\n width: var(--sbb-scrollbar-width);\n height: var(--sbb-scrollbar-width);\n background-color: var(--sbb-scrollbar-track-color, transparent);\n}\n:is(.sbb-scrollbar,\n.sbb-scrollbar-negative,\n.sbb-scrollbar-thick,\n.sbb-scrollbar-thick-negative,\n.sbb-scrollbar-track-visible,\n.sbb-scrollbar-negative-track-visible,\n.sbb-scrollbar-thick-track-visible,\n.sbb-scrollbar-thick-negative-track-visible)::-webkit-scrollbar-corner {\n background-color: var(--sbb-scrollbar-track-color, transparent);\n}\n:is(.sbb-scrollbar,\n.sbb-scrollbar-negative,\n.sbb-scrollbar-thick,\n.sbb-scrollbar-thick-negative,\n.sbb-scrollbar-track-visible,\n.sbb-scrollbar-negative-track-visible,\n.sbb-scrollbar-thick-track-visible,\n.sbb-scrollbar-thick-negative-track-visible)::-webkit-scrollbar-thumb {\n background-color: var(--sbb-scrollbar-color, currentcolor);\n border: calc(0.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;\n border-radius: var(--sbb-border-radius-4x);\n background-clip: padding-box;\n}\n:is(.sbb-scrollbar,\n.sbb-scrollbar-negative,\n.sbb-scrollbar-thick,\n.sbb-scrollbar-thick-negative,\n.sbb-scrollbar-track-visible,\n.sbb-scrollbar-negative-track-visible,\n.sbb-scrollbar-thick-track-visible,\n.sbb-scrollbar-thick-negative-track-visible)::-webkit-scrollbar-thumb:hover {\n background-color: var(--sbb-scrollbar-color-hover, currentcolor);\n border-width: calc(0.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)));\n}\n:is(.sbb-scrollbar,\n.sbb-scrollbar-negative,\n.sbb-scrollbar-thick,\n.sbb-scrollbar-thick-negative,\n.sbb-scrollbar-track-visible,\n.sbb-scrollbar-negative-track-visible,\n.sbb-scrollbar-thick-track-visible,\n.sbb-scrollbar-thick-negative-track-visible)::-webkit-scrollbar-button, :is(.sbb-scrollbar,\n.sbb-scrollbar-negative,\n.sbb-scrollbar-thick,\n.sbb-scrollbar-thick-negative,\n.sbb-scrollbar-track-visible,\n.sbb-scrollbar-negative-track-visible,\n.sbb-scrollbar-thick-track-visible,\n.sbb-scrollbar-thick-negative-track-visible)::-webkit-scrollbar-corner {\n display: none;\n}\n@supports not selector(::-webkit-scrollbar) {\n :is(.sbb-scrollbar,\n .sbb-scrollbar-negative,\n .sbb-scrollbar-thick,\n .sbb-scrollbar-thick-negative,\n .sbb-scrollbar-track-visible,\n .sbb-scrollbar-negative-track-visible,\n .sbb-scrollbar-thick-track-visible,\n .sbb-scrollbar-thick-negative-track-visible) {\n scrollbar-width: var(--sbb-scrollbar-width-firefox);\n scrollbar-color: var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent);\n }\n}\n\n:is(.sbb-scrollbar-negative,\n.sbb-scrollbar-thick-negative,\n.sbb-scrollbar-negative-track-visible,\n.sbb-scrollbar-thick-negative-track-visible) {\n --sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-white) 30%, transparent);\n --sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-white) 60%, transparent);\n}\n\n:is(.sbb-scrollbar-thick-negative,\n.sbb-scrollbar-thick,\n.sbb-scrollbar-thick-track-visible,\n.sbb-scrollbar-thick-negative-track-visible) {\n --sbb-scrollbar-thumb-width: 0.5rem;\n --sbb-scrollbar-thumb-width-hover: var(--sbb-scrollbar-thumb-width);\n --sbb-scrollbar-width-firefox: auto;\n}\n\n:is(.sbb-scrollbar-track-visible, .sbb-scrollbar-thick-track-visible) {\n --sbb-scrollbar-track-color: var(--sbb-background-color-4);\n}\n\n:is(.sbb-scrollbar-negative-track-visible, .sbb-scrollbar-thick-negative-track-visible) {\n --sbb-scrollbar-track-color: var(--sbb-background-color-4-negative);\n}";
13
+ //#endregion
14
+ //#region src/elements/core/styles/styles.ts
15
+ var boxSizingStyles = unsafeCSS(box_sizing_default);
16
+ var hostScrollbarStyles = unsafeCSS(host_scrollbar_default);
17
+ var screenReaderOnlyStyles = unsafeCSS(screen_reader_only_default);
18
+ var scrollbarStyles = unsafeCSS(scrollbar_default);
19
+ //#endregion
20
+ export { scrollbarStyles as i, hostScrollbarStyles as n, screenReaderOnlyStyles as r, boxSizingStyles as t };
21
+
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVzLUJfSVdqSGM1LmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL3N0eWxlcy9ib3gtc2l6aW5nLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvc3R5bGVzL2hvc3Qtc2Nyb2xsYmFyLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvc3R5bGVzL3NjcmVlbi1yZWFkZXItb25seS5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL3N0eWxlcy9zY3JvbGxiYXIuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9zdHlsZXMvc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4vbWl4aW5zL2hlbHBlcnMnO1xuXG5AaW5jbHVkZSBoZWxwZXJzLmJveC1zaXppbmc7XG4iLCJAdXNlICcuL21peGlucy9zY3JvbGxiYXInO1xuXG46aG9zdCB7XG4gIEBpbmNsdWRlIHNjcm9sbGJhci5zY3JvbGxiYXItdmFyaWFibGVzO1xuICBAaW5jbHVkZSBzY3JvbGxiYXIuc2Nyb2xsYmFyLXJ1bGVzO1xufVxuIiwiQHVzZSAnLi9taXhpbnMvYTExeSc7XG5cbi5zYmItc2NyZWVuLXJlYWRlci1vbmx5IHtcbiAgQGluY2x1ZGUgYTExeS5zY3JlZW4tcmVhZGVyLW9ubHk7XG59XG4iLCJAdXNlICcuL21peGlucy9zY3JvbGxiYXInO1xuXG46aXMoXG4gIC5zYmItc2Nyb2xsYmFyLFxuICAuc2JiLXNjcm9sbGJhci1uZWdhdGl2ZSxcbiAgLnNiYi1zY3JvbGxiYXItdGhpY2ssXG4gIC5zYmItc2Nyb2xsYmFyLXRoaWNrLW5lZ2F0aXZlLFxuICAuc2JiLXNjcm9sbGJhci10cmFjay12aXNpYmxlLFxuICAuc2JiLXNjcm9sbGJhci1uZWdhdGl2ZS10cmFjay12aXNpYmxlLFxuICAuc2JiLXNjcm9sbGJhci10aGljay10cmFjay12aXNpYmxlLFxuICAuc2JiLXNjcm9sbGJhci10aGljay1uZWdhdGl2ZS10cmFjay12aXNpYmxlXG4pIHtcbiAgQGluY2x1ZGUgc2Nyb2xsYmFyLnNjcm9sbGJhci12YXJpYWJsZXM7XG4gIEBpbmNsdWRlIHNjcm9sbGJhci5zY3JvbGxiYXItcnVsZXM7XG59XG5cbjppcyhcbiAgLnNiYi1zY3JvbGxiYXItbmVnYXRpdmUsXG4gIC5zYmItc2Nyb2xsYmFyLXRoaWNrLW5lZ2F0aXZlLFxuICAuc2JiLXNjcm9sbGJhci1uZWdhdGl2ZS10cmFjay12aXNpYmxlLFxuICAuc2JiLXNjcm9sbGJhci10aGljay1uZWdhdGl2ZS10cmFjay12aXNpYmxlXG4pIHtcbiAgQGluY2x1ZGUgc2Nyb2xsYmFyLnNjcm9sbGJhci12YXJpYWJsZXMtLWNvbG9yLW5lZ2F0aXZlO1xufVxuXG46aXMoXG4gIC5zYmItc2Nyb2xsYmFyLXRoaWNrLW5lZ2F0aXZlLFxuICAuc2JiLXNjcm9sbGJhci10aGljayxcbiAgLnNiYi1zY3JvbGxiYXItdGhpY2stdHJhY2stdmlzaWJsZSxcbiAgLnNiYi1zY3JvbGxiYXItdGhpY2stbmVnYXRpdmUtdHJhY2stdmlzaWJsZVxuKSB7XG4gIEBpbmNsdWRlIHNjcm9sbGJhci5zY3JvbGxiYXItdmFyaWFibGVzLS1zaXplLXRoaWNrO1xufVxuXG46aXMoLnNiYi1zY3JvbGxiYXItdHJhY2stdmlzaWJsZSwgLnNiYi1zY3JvbGxiYXItdGhpY2stdHJhY2stdmlzaWJsZSkge1xuICBAaW5jbHVkZSBzY3JvbGxiYXIuc2Nyb2xsYmFyLXZhcmlhYmxlcy0tY29sb3ItcG9zaXRpdmUtdHJhY2stdmlzaWJsZTtcbn1cblxuOmlzKC5zYmItc2Nyb2xsYmFyLW5lZ2F0aXZlLXRyYWNrLXZpc2libGUsIC5zYmItc2Nyb2xsYmFyLXRoaWNrLW5lZ2F0aXZlLXRyYWNrLXZpc2libGUpIHtcbiAgQGluY2x1ZGUgc2Nyb2xsYmFyLnNjcm9sbGJhci12YXJpYWJsZXMtLWNvbG9yLW5lZ2F0aXZlLXRyYWNrLXZpc2libGU7XG59XG4iLCJpbXBvcnQgeyB1bnNhZmVDU1MgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgYm94U2l6aW5nU3R5bGVzU3RyaW5nIGZyb20gJy4vYm94LXNpemluZy5zY3NzP2lubGluZSc7XG5pbXBvcnQgaG9zdFNjcm9sbGJhclN0eWxlc1N0cmluZyBmcm9tICcuL2hvc3Qtc2Nyb2xsYmFyLnNjc3M/aW5saW5lJztcbmltcG9ydCBzY3JlZW5SZWFkZXJPbmx5U3R5bGVzU3RyaW5nIGZyb20gJy4vc2NyZWVuLXJlYWRlci1vbmx5LnNjc3M/aW5saW5lJztcbmltcG9ydCBzY3JvbGxiYXJTdHlsZXNTdHJpbmcgZnJvbSAnLi9zY3JvbGxiYXIuc2Nzcz9pbmxpbmUnO1xuXG5leHBvcnQgY29uc3QgYm94U2l6aW5nU3R5bGVzID0gdW5zYWZlQ1NTKGJveFNpemluZ1N0eWxlc1N0cmluZyk7XG5leHBvcnQgY29uc3QgaG9zdFNjcm9sbGJhclN0eWxlcyA9IHVuc2FmZUNTUyhob3N0U2Nyb2xsYmFyU3R5bGVzU3RyaW5nKTtcbmV4cG9ydCBjb25zdCBzY3JlZW5SZWFkZXJPbmx5U3R5bGVzID0gdW5zYWZlQ1NTKHNjcmVlblJlYWRlck9ubHlTdHlsZXNTdHJpbmcpO1xuZXhwb3J0IGNvbnN0IHNjcm9sbGJhclN0eWxlcyA9IHVuc2FmZUNTUyhzY3JvbGxiYXJTdHlsZXNTdHJpbmcpO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBSU9BLElBQWEsa0JBQWtCLFVBQVUsbUJBQXNCO0FBQy9ELElBQWEsc0JBQXNCLFVBQVUsdUJBQTBCO0FBQ3ZFLElBQWEseUJBQXlCLFVBQVUsMkJBQTZCO0FBQzdFLElBQWEsa0JBQWtCLFVBQVUsa0JBQXNCIn0=
@@ -1,2 +1,2 @@
1
- import { t as SbbTableWrapperElement } from "../../table-wrapper.component-CjMOENHV.js";
1
+ import { t as SbbTableWrapperElement } from "../../table-wrapper.component-D8IFPow6.js";
2
2
  export { SbbTableWrapperElement };
@@ -0,0 +1,119 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { html, isServer, unsafeCSS } from "lit";
3
+ import { property } from "lit/decorators.js";
4
+ import { SbbElement, SbbNegativeMixin, forceType, hostScrollbarStyles } from "./core.js";
5
+ import { ResizeController } from "@lit-labs/observers/resize-controller.js";
6
+ //#region src/elements/table/table-wrapper/table-wrapper.scss?inline
7
+ var table_wrapper_default = ":host {\n display: block;\n overflow: auto;\n --sbb-scrollbar-thumb-width: 0.5rem;\n --sbb-scrollbar-thumb-width-hover: var(--sbb-scrollbar-thumb-width);\n --sbb-scrollbar-width-firefox: auto;\n --sbb-scrollbar-track-color: var(--sbb-background-color-4);\n}\n\n:host(:focus-visible) {\n outline-offset: var(--sbb-focus-outline-offset);\n outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);\n}\n\n::slotted(.sbb-table) {\n width: 100%;\n}\n\n:host([negative]) {\n --sbb-scrollbar-track-color: var(--sbb-background-color-4-negative);\n}";
8
+ //#endregion
9
+ //#region src/elements/table/table-wrapper/table-wrapper.component.ts
10
+ /**
11
+ * Wraps a table to enhance its functionality.
12
+ *
13
+ * @slot - Use the unnamed slot to add the table.
14
+ */
15
+ var SbbTableWrapperElement = (() => {
16
+ let _classSuper = SbbNegativeMixin(SbbElement);
17
+ let _focusable_decorators;
18
+ let _focusable_initializers = [];
19
+ let _focusable_extraInitializers = [];
20
+ return class SbbTableWrapperElement extends _classSuper {
21
+ static {
22
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
23
+ _focusable_decorators = [forceType(), property({
24
+ reflect: true,
25
+ type: Boolean
26
+ })];
27
+ __esDecorate(this, null, _focusable_decorators, {
28
+ kind: "accessor",
29
+ name: "focusable",
30
+ static: false,
31
+ private: false,
32
+ access: {
33
+ has: (obj) => "focusable" in obj,
34
+ get: (obj) => obj.focusable,
35
+ set: (obj, value) => {
36
+ obj.focusable = value;
37
+ }
38
+ },
39
+ metadata: _metadata
40
+ }, _focusable_initializers, _focusable_extraInitializers);
41
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, {
42
+ enumerable: true,
43
+ configurable: true,
44
+ writable: true,
45
+ value: _metadata
46
+ });
47
+ }
48
+ static {
49
+ this.elementName = "sbb-table-wrapper";
50
+ }
51
+ static {
52
+ this.role = "section";
53
+ }
54
+ static {
55
+ this.styles = [hostScrollbarStyles, unsafeCSS(table_wrapper_default)];
56
+ }
57
+ #focusable_accessor_storage = __runInitializers(this, _focusable_initializers, false);
58
+ /** Whether the table wrapper is focusable. */
59
+ get focusable() {
60
+ return this.#focusable_accessor_storage;
61
+ }
62
+ set focusable(value) {
63
+ this.#focusable_accessor_storage = value;
64
+ }
65
+ constructor() {
66
+ super();
67
+ __runInitializers(this, _focusable_extraInitializers);
68
+ this.addController(new ResizeController(this, {
69
+ skipInitial: true,
70
+ callback: () => this._checkHorizontalScrollbarOffset()
71
+ }));
72
+ this.addEventListener?.("scroll", () => this._checkHorizontalScrollbarOffset(), { passive: true });
73
+ }
74
+ connectedCallback() {
75
+ super.connectedCallback();
76
+ this._updateScrollbarClass();
77
+ }
78
+ willUpdate(changedProperties) {
79
+ super.willUpdate(changedProperties);
80
+ if (changedProperties.has("focusable")) if (this.focusable) {
81
+ if (!this.hasAttribute("tabindex")) this.setAttribute("tabindex", "0");
82
+ } else this.removeAttribute("tabindex");
83
+ if (changedProperties.has("negative")) this._updateScrollbarClass();
84
+ }
85
+ _updateScrollbarClass() {
86
+ if (isServer) return;
87
+ if (this.negative) {
88
+ this.classList.remove("sbb-scrollbar-thick-track-visible");
89
+ this.classList.add("sbb-scrollbar-thick-negative-track-visible");
90
+ } else {
91
+ this.classList.remove("sbb-scrollbar-thick-negative-track-visible");
92
+ this.classList.add("sbb-scrollbar-thick-track-visible");
93
+ }
94
+ }
95
+ /**
96
+ * Calculates whether the table is horizontally scrolled and adds the
97
+ * corresponding class `sbb-table-wrapper-offset-${none | left | right | both}`
98
+ */
99
+ _checkHorizontalScrollbarOffset() {
100
+ const state = this._calculateScrollOffset();
101
+ this.classList.remove(`sbb-table-wrapper-offset-none`, `sbb-table-wrapper-offset-left`, `sbb-table-wrapper-offset-right`, `sbb-table-wrapper-offset-both`);
102
+ this.classList.add(`sbb-table-wrapper-offset-${state}`);
103
+ }
104
+ _calculateScrollOffset() {
105
+ if (this.scrollWidth === this.offsetWidth) return "none";
106
+ const isAtStart = this.scrollLeft === 0;
107
+ const isAtEnd = this.scrollWidth - this.scrollLeft - this.offsetWidth <= 1;
108
+ if (isAtStart) return isAtEnd ? "none" : "right";
109
+ return isAtEnd ? "left" : "both";
110
+ }
111
+ render() {
112
+ return html`<slot></slot>`;
113
+ }
114
+ };
115
+ })();
116
+ //#endregion
117
+ export { SbbTableWrapperElement as t };
118
+
119
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtd3JhcHBlci5jb21wb25lbnQtRDhJRlBvdzYuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RhYmxlL3RhYmxlLXdyYXBwZXIvdGFibGUtd3JhcHBlci5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90YWJsZS90YWJsZS13cmFwcGVyL3RhYmxlLXdyYXBwZXIuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uLy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBhdXRvO1xuXG4gIEBpbmNsdWRlIHNiYi5zY3JvbGxiYXItdmFyaWFibGVzLS1zaXplLXRoaWNrO1xuICBAaW5jbHVkZSBzYmIuc2Nyb2xsYmFyLXZhcmlhYmxlcy0tY29sb3ItcG9zaXRpdmUtdHJhY2stdmlzaWJsZTtcbn1cblxuOmhvc3QoOmZvY3VzLXZpc2libGUpIHtcbiAgQGluY2x1ZGUgc2JiLmZvY3VzLW91dGxpbmU7XG59XG5cbjo6c2xvdHRlZCguc2JiLXRhYmxlKSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG46aG9zdChbbmVnYXRpdmVdKSB7XG4gIEBpbmNsdWRlIHNiYi5zY3JvbGxiYXItdmFyaWFibGVzLS1jb2xvci1uZWdhdGl2ZS10cmFjay12aXNpYmxlO1xufVxuIiwiaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBmb3JjZVR5cGUsIGhvc3RTY3JvbGxiYXJTdHlsZXMsIFNiYkVsZW1lbnQsIFNiYk5lZ2F0aXZlTWl4aW4gfSBmcm9tICcuLi8uLi9jb3JlLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vdGFibGUtd3JhcHBlci5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogV3JhcHMgYSB0YWJsZSB0byBlbmhhbmNlIGl0cyBmdW5jdGlvbmFsaXR5LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIHRoZSB0YWJsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlRhYmxlV3JhcHBlckVsZW1lbnQgZXh0ZW5kcyBTYmJOZWdhdGl2ZU1peGluKFNiYkVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi10YWJsZS13cmFwcGVyJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSByb2xlID0gJ3NlY3Rpb24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbaG9zdFNjcm9sbGJhclN0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHRhYmxlIHdyYXBwZXIgaXMgZm9jdXNhYmxlLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZm9jdXNhYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgbmV3IFJlc2l6ZUNvbnRyb2xsZXIodGhpcywge1xuICAgICAgICBza2lwSW5pdGlhbDogdHJ1ZSxcbiAgICAgICAgY2FsbGJhY2s6ICgpID0+IHRoaXMuX2NoZWNrSG9yaXpvbnRhbFNjcm9sbGJhck9mZnNldCgpLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdzY3JvbGwnLCAoKSA9PiB0aGlzLl9jaGVja0hvcml6b250YWxTY3JvbGxiYXJPZmZzZXQoKSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgLy8gV2hlbiBpbmNsdWRpbmcgdGhlIHNjcm9sbGJhciBzdHlsZXMgb24gdGhlIGhvc3QsIHRoZXJlIGlzIG5vIGhvdmVyIGVmZmVjdCBvZiB0aGUgc2Nyb2xsYmFyIHBvc3NpYmxlLlxuICAgIC8vIEluIG1vc3QgY2FzZXMsIHRoZSBjb21wb25lbnQgd2lsbCBiZSB1c2VkIGluIExpZ2h0IERPTS4gVG8gYWxzbyBzdXBwb3J0IHRoZSBob3ZlciBlZmZlY3QsXG4gICAgLy8gd2UgYWRkaXRpb25hbGx5IGFkZCB0aGUgc2Nyb2xsYmFyIENTUyBjbGFzc2VzIHRvIHRoZSBob3N0LlxuICAgIC8vIFRoaXMgaXMgYW4gZXhjZXB0aW9uIGFzIHdlIG5vcm1hbGx5IGRvbid0IGFsdGVyIHRoZSBjbGFzc0xpc3Qgb2YgdGhlIGhvc3QuXG4gICAgdGhpcy5fdXBkYXRlU2Nyb2xsYmFyQ2xhc3MoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZm9jdXNhYmxlJykpIHtcbiAgICAgIGlmICh0aGlzLmZvY3VzYWJsZSkge1xuICAgICAgICBpZiAoIXRoaXMuaGFzQXR0cmlidXRlKCd0YWJpbmRleCcpKSB7XG4gICAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4Jyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbmVnYXRpdmUnKSkge1xuICAgICAgdGhpcy5fdXBkYXRlU2Nyb2xsYmFyQ2xhc3MoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVTY3JvbGxiYXJDbGFzcygpOiB2b2lkIHtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMubmVnYXRpdmUpIHtcbiAgICAgIHRoaXMuY2xhc3NMaXN0LnJlbW92ZSgnc2JiLXNjcm9sbGJhci10aGljay10cmFjay12aXNpYmxlJyk7XG4gICAgICB0aGlzLmNsYXNzTGlzdC5hZGQoJ3NiYi1zY3JvbGxiYXItdGhpY2stbmVnYXRpdmUtdHJhY2stdmlzaWJsZScpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsYXNzTGlzdC5yZW1vdmUoJ3NiYi1zY3JvbGxiYXItdGhpY2stbmVnYXRpdmUtdHJhY2stdmlzaWJsZScpO1xuICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCdzYmItc2Nyb2xsYmFyLXRoaWNrLXRyYWNrLXZpc2libGUnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIENhbGN1bGF0ZXMgd2hldGhlciB0aGUgdGFibGUgaXMgaG9yaXpvbnRhbGx5IHNjcm9sbGVkIGFuZCBhZGRzIHRoZVxuICAgKiAgY29ycmVzcG9uZGluZyBjbGFzcyBgc2JiLXRhYmxlLXdyYXBwZXItb2Zmc2V0LSR7bm9uZSB8IGxlZnQgfCByaWdodCB8IGJvdGh9YFxuICAgKi9cbiAgcHJpdmF0ZSBfY2hlY2tIb3Jpem9udGFsU2Nyb2xsYmFyT2Zmc2V0KCk6IHZvaWQge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5fY2FsY3VsYXRlU2Nyb2xsT2Zmc2V0KCk7XG4gICAgdGhpcy5jbGFzc0xpc3QucmVtb3ZlKFxuICAgICAgYHNiYi10YWJsZS13cmFwcGVyLW9mZnNldC1ub25lYCxcbiAgICAgIGBzYmItdGFibGUtd3JhcHBlci1vZmZzZXQtbGVmdGAsXG4gICAgICBgc2JiLXRhYmxlLXdyYXBwZXItb2Zmc2V0LXJpZ2h0YCxcbiAgICAgIGBzYmItdGFibGUtd3JhcHBlci1vZmZzZXQtYm90aGAsXG4gICAgKTtcbiAgICB0aGlzLmNsYXNzTGlzdC5hZGQoYHNiYi10YWJsZS13cmFwcGVyLW9mZnNldC0ke3N0YXRlfWApO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FsY3VsYXRlU2Nyb2xsT2Zmc2V0KCk6ICdub25lJyB8ICdsZWZ0JyB8ICdyaWdodCcgfCAnYm90aCcge1xuICAgIGlmICh0aGlzLnNjcm9sbFdpZHRoID09PSB0aGlzLm9mZnNldFdpZHRoKSB7XG4gICAgICByZXR1cm4gJ25vbmUnO1xuICAgIH1cbiAgICBjb25zdCBpc0F0U3RhcnQgPSB0aGlzLnNjcm9sbExlZnQgPT09IDA7XG4gICAgLy8gSW4gc29tZSBjYXNlcyB0aGUgY29tYmluZWQgdmFsdWUgb2Ygc2Nyb2xsTGVmdCBhbmQgb2Zmc2V0V2lkdGggaXMgb2ZmIGJ5XG4gICAgLy8gMSBwaXhlbCBmcm9tIHRoZSBzY3JvbGxXaWR0aC5cbiAgICBjb25zdCBpc0F0RW5kID0gdGhpcy5zY3JvbGxXaWR0aCAtIHRoaXMuc2Nyb2xsTGVmdCAtIHRoaXMub2Zmc2V0V2lkdGggPD0gMTtcblxuICAgIGlmIChpc0F0U3RhcnQpIHtcbiAgICAgIHJldHVybiBpc0F0RW5kID8gJ25vbmUnIDogJ3JpZ2h0JztcbiAgICB9XG4gICAgcmV0dXJuIGlzQXRFbmQgPyAnbGVmdCcgOiAnYm90aCc7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGA8c2xvdD48L3Nsb3Q+YDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRhYmxlLXdyYXBwZXInOiBTYmJUYWJsZVdyYXBwZXJFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0lDb0JhLGdDQUFzQjttQkFBUyxpQkFBaUIsV0FBVzs7OztjQUEzRCwrQkFBK0IsWUFBNEI7Ozs0QkFNckUsV0FBVyxFQUNYLFNBQVM7SUFBRSxTQUFTO0lBQU0sTUFBTTtJQUFTLENBQUMsQ0FBQTtBQUMzQyxnQkFBQSxNQUFBLE1BQUEsdUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxlQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQVMsTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFULFlBQVM7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSx5QkFBQSw2QkFBQTs7Ozs7Ozs7O0FBUE8sUUFBQSxjQUFzQjs7O0FBQ3RCLFFBQUEsT0FBTzs7O0FBQ2hCLFFBQUEsU0FBeUIsQ0FBQyxxQkFBcUIsVUFBVSxzQkFBTSxDQUFDOztFQUt2Riw4QkFBQSxrQkFBQSxNQUFBLHlCQUFxQyxNQUFLOztFQUExQyxJQUFnQixZQUFTO0FBQUEsVUFBQSxNQUFBOztFQUF6QixJQUFnQixVQUFTLE9BQUE7QUFBQSxTQUFBLDZCQUFBOztFQUV6QixjQUFBO0FBQ0UsVUFBTzs7QUFDUCxRQUFLLGNBQ0gsSUFBSSxpQkFBaUIsTUFBTTtJQUN6QixhQUFhO0lBQ2IsZ0JBQWdCLEtBQUssaUNBQUE7SUFDdEIsQ0FBQyxDQUNIO0FBRUQsUUFBSyxtQkFBbUIsZ0JBQWdCLEtBQUssaUNBQWlDLEVBQUUsRUFDOUUsU0FBUyxNQUNWLENBQUM7O0VBR1ksb0JBQWlCO0FBQy9CLFNBQU0sbUJBQW1CO0FBTXpCLFFBQUssdUJBQXVCOztFQUdYLFdBQVcsbUJBQXVDO0FBQ25FLFNBQU0sV0FBVyxrQkFBa0I7QUFFbkMsT0FBSSxrQkFBa0IsSUFBSSxZQUFZLENBQ3BDLEtBQUksS0FBSztRQUNILENBQUMsS0FBSyxhQUFhLFdBQVcsQ0FDaEMsTUFBSyxhQUFhLFlBQVksSUFBSTtTQUdwQyxNQUFLLGdCQUFnQixXQUFXO0FBSXBDLE9BQUksa0JBQWtCLElBQUksV0FBVyxDQUNuQyxNQUFLLHVCQUF1Qjs7RUFJeEIsd0JBQXFCO0FBQzNCLE9BQUksU0FDRjtBQUVGLE9BQUksS0FBSyxVQUFVO0FBQ2pCLFNBQUssVUFBVSxPQUFPLG9DQUFvQztBQUMxRCxTQUFLLFVBQVUsSUFBSSw2Q0FBNkM7VUFDM0Q7QUFDTCxTQUFLLFVBQVUsT0FBTyw2Q0FBNkM7QUFDbkUsU0FBSyxVQUFVLElBQUksb0NBQW9DOzs7Ozs7O0VBUW5ELGtDQUErQjtHQUNyQyxNQUFNLFFBQVEsS0FBSyx3QkFBd0I7QUFDM0MsUUFBSyxVQUFVLE9BQ2IsaUNBQ0EsaUNBQ0Esa0NBQ0EsZ0NBQ0Q7QUFDRCxRQUFLLFVBQVUsSUFBSSw0QkFBNEIsUUFBUTs7RUFHakQseUJBQXNCO0FBQzVCLE9BQUksS0FBSyxnQkFBZ0IsS0FBSyxZQUM1QixRQUFPO0dBRVQsTUFBTSxZQUFZLEtBQUssZUFBZTtHQUd0QyxNQUFNLFVBQVUsS0FBSyxjQUFjLEtBQUssYUFBYSxLQUFLLGVBQWU7QUFFekUsT0FBSSxVQUNGLFFBQU8sVUFBVSxTQUFTO0FBRTVCLFVBQU8sVUFBVSxTQUFTOztFQUdULFNBQU07QUFDdkIsVUFBTyxJQUFJIn0=
@@ -1,4 +1,4 @@
1
- import { t as SbbTableWrapperElement } from "./table-wrapper.component-CjMOENHV.js";
1
+ import { t as SbbTableWrapperElement } from "./table-wrapper.component-D8IFPow6.js";
2
2
  import "./table.pure.js";
3
3
  //#region src/elements/table.ts
4
4
  /** @entrypoint */
@@ -1,2 +1,2 @@
1
- import { t as SbbTableWrapperElement } from "./table-wrapper.component-CjMOENHV.js";
1
+ import { t as SbbTableWrapperElement } from "./table-wrapper.component-D8IFPow6.js";
2
2
  export { SbbTableWrapperElement };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../dialog-content.component-are-UBx3.js";
1
+ import { t as e } from "../../dialog-content.component-iRLHPKPb.js";
2
2
  export { e as SbbDialogContentElement };