@sbb-esta/lyne-elements 1.0.0 → 1.2.0

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 (218) hide show
  1. package/button/common/button-common.d.ts.map +1 -1
  2. package/button/mini-button.js +5 -5
  3. package/calendar/calendar.d.ts +3 -1
  4. package/calendar/calendar.d.ts.map +1 -1
  5. package/calendar.js +62 -52
  6. package/card/common/card-action-common.d.ts.map +1 -1
  7. package/checkbox/common/checkbox-common.d.ts.map +1 -1
  8. package/clock/clock.d.ts.map +1 -1
  9. package/clock.js +45 -50
  10. package/core/decorators/host-attributes.d.ts.map +1 -1
  11. package/core/eventing/throttle.d.ts.map +1 -1
  12. package/core/i18n/i18n.d.ts +1 -3
  13. package/core/i18n/i18n.d.ts.map +1 -1
  14. package/core/i18n.js +91 -127
  15. package/core/mixins/disabled-mixin.d.ts.map +1 -1
  16. package/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  17. package/core/mixins/form-associated-mixin.d.ts.map +1 -1
  18. package/core/mixins/hydration-mixin.d.ts +2 -8
  19. package/core/mixins/hydration-mixin.d.ts.map +1 -1
  20. package/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
  21. package/core/mixins/negative-mixin.d.ts.map +1 -1
  22. package/core/mixins/panel-mixin.d.ts.map +1 -1
  23. package/core/mixins/required-mixin.d.ts.map +1 -1
  24. package/core/mixins/update-scheduler-mixin.d.ts.map +1 -1
  25. package/core/mixins.js +90 -99
  26. package/core/observers/intersection-observer.d.ts +1 -1
  27. package/core/styles/_index.scss +1 -0
  28. package/core/styles/mixins/buttons.scss +1 -1
  29. package/core/styles/mixins/table.scss +148 -0
  30. package/core/styles/standard-theme.scss +1 -0
  31. package/core/styles/table.scss +56 -0
  32. package/core/testing/private.d.ts +0 -1
  33. package/core/testing/private.d.ts.map +1 -1
  34. package/core/testing/wait-for-render.d.ts +1 -1
  35. package/core/testing/wait-for-render.d.ts.map +1 -1
  36. package/core/testing.js +40 -37
  37. package/custom-elements.json +557 -864
  38. package/datepicker/datepicker-next-day.js +5 -5
  39. package/datepicker/datepicker-previous-day.js +1 -1
  40. package/datepicker/datepicker-toggle.js +7 -7
  41. package/development/accordion.js +7 -1
  42. package/development/action-group.js +7 -1
  43. package/development/alert/alert-group.js +7 -1
  44. package/development/alert/alert.js +7 -1
  45. package/development/autocomplete.js +7 -1
  46. package/development/breadcrumb/breadcrumb-group.js +7 -1
  47. package/development/breadcrumb/breadcrumb.js +7 -1
  48. package/development/button/common/button-common.d.ts.map +1 -1
  49. package/development/button/common.js +7 -1
  50. package/development/button/mini-button.js +8 -2
  51. package/development/calendar/calendar.d.ts +3 -1
  52. package/development/calendar/calendar.d.ts.map +1 -1
  53. package/development/calendar.js +18 -2
  54. package/development/card/card-badge.js +7 -1
  55. package/development/card/card.js +7 -1
  56. package/development/card/common/card-action-common.d.ts.map +1 -1
  57. package/development/card/common.js +7 -1
  58. package/development/checkbox/checkbox-group.js +7 -1
  59. package/development/checkbox/checkbox.js +7 -1
  60. package/development/checkbox/common/checkbox-common.d.ts.map +1 -1
  61. package/development/checkbox/common.js +7 -1
  62. package/development/chip.js +7 -1
  63. package/development/clock/clock.d.ts.map +1 -1
  64. package/development/clock.js +35 -31
  65. package/development/container/container.js +7 -1
  66. package/development/container/sticky-bar.js +7 -1
  67. package/development/core/decorators/host-attributes.d.ts.map +1 -1
  68. package/development/core/eventing/throttle.d.ts.map +1 -1
  69. package/development/core/i18n/i18n.d.ts +1 -3
  70. package/development/core/i18n/i18n.d.ts.map +1 -1
  71. package/development/core/i18n.js +5 -43
  72. package/development/core/mixins/disabled-mixin.d.ts.map +1 -1
  73. package/development/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  74. package/development/core/mixins/form-associated-mixin.d.ts.map +1 -1
  75. package/development/core/mixins/hydration-mixin.d.ts +2 -8
  76. package/development/core/mixins/hydration-mixin.d.ts.map +1 -1
  77. package/development/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
  78. package/development/core/mixins/negative-mixin.d.ts.map +1 -1
  79. package/development/core/mixins/panel-mixin.d.ts.map +1 -1
  80. package/development/core/mixins/required-mixin.d.ts.map +1 -1
  81. package/development/core/mixins/update-scheduler-mixin.d.ts.map +1 -1
  82. package/development/core/mixins.js +26 -36
  83. package/development/core/observers/intersection-observer.d.ts +1 -1
  84. package/development/core/testing/private.d.ts +0 -1
  85. package/development/core/testing/private.d.ts.map +1 -1
  86. package/development/core/testing/wait-for-render.d.ts +1 -1
  87. package/development/core/testing/wait-for-render.d.ts.map +1 -1
  88. package/development/core/testing.js +6 -2
  89. package/development/datepicker/datepicker-next-day.js +8 -2
  90. package/development/datepicker/datepicker-previous-day.js +8 -2
  91. package/development/datepicker/datepicker-toggle.js +7 -2
  92. package/development/datepicker/datepicker.js +7 -1
  93. package/development/dialog/dialog-actions.js +7 -1
  94. package/development/dialog/dialog-content.js +7 -1
  95. package/development/dialog/dialog-title.js +7 -1
  96. package/development/dialog/dialog.js +7 -1
  97. package/development/divider.js +7 -1
  98. package/development/expansion-panel/expansion-panel-content.js +7 -1
  99. package/development/expansion-panel/expansion-panel-header.js +7 -1
  100. package/development/expansion-panel/expansion-panel.js +7 -1
  101. package/development/file-selector.js +7 -1
  102. package/development/footer.js +7 -1
  103. package/development/form-error.js +7 -1
  104. package/development/form-field/form-field-clear.js +8 -2
  105. package/development/form-field/form-field.js +7 -1
  106. package/development/header/common/header-action-common.d.ts.map +1 -1
  107. package/development/header/common.js +7 -1
  108. package/development/header/header.js +7 -1
  109. package/development/icon/icon-name-mixin.d.ts.map +1 -1
  110. package/development/icon/icon-request.d.ts.map +1 -1
  111. package/development/icon.js +7 -1
  112. package/development/image.js +7 -1
  113. package/development/journey-header.js +7 -1
  114. package/development/lead-container.js +7 -1
  115. package/development/link/common/block-link-common.d.ts.map +1 -1
  116. package/development/link/common/inline-link-common.d.ts.map +1 -1
  117. package/development/link/common/link-common.d.ts.map +1 -1
  118. package/development/link/common.js +19 -1
  119. package/development/link-list.js +7 -1
  120. package/development/loading-indicator.js +7 -1
  121. package/development/logo.js +7 -1
  122. package/development/map-container.js +7 -1
  123. package/development/menu/common/menu-action-common.d.ts.map +1 -1
  124. package/development/menu/common.js +7 -1
  125. package/development/menu/menu.js +7 -1
  126. package/development/message.js +7 -1
  127. package/development/navigation/common/navigation-action-common.d.ts.map +1 -1
  128. package/development/navigation/common.js +7 -1
  129. package/development/navigation/navigation-list.js +7 -1
  130. package/development/navigation/navigation-marker.js +7 -1
  131. package/development/navigation/navigation-section.js +7 -1
  132. package/development/navigation/navigation.js +7 -1
  133. package/development/notification.js +8 -1
  134. package/development/option/optgroup/optgroup.d.ts +2 -0
  135. package/development/option/optgroup/optgroup.d.ts.map +1 -1
  136. package/development/option/optgroup.js +21 -4
  137. package/development/option/option/option.d.ts +6 -5
  138. package/development/option/option/option.d.ts.map +1 -1
  139. package/development/option/option.js +53 -29
  140. package/development/overlay.js +7 -1
  141. package/development/popover/popover-trigger.js +8 -2
  142. package/development/popover/popover.js +7 -1
  143. package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
  144. package/development/radio-button/common.js +7 -1
  145. package/development/radio-button/radio-button-group.js +7 -1
  146. package/development/radio-button/radio-button.js +7 -1
  147. package/development/screen-reader-only.js +7 -1
  148. package/development/select.js +7 -1
  149. package/development/selection-expansion-panel.js +7 -1
  150. package/development/signet.js +7 -1
  151. package/development/skiplink-list.js +7 -1
  152. package/development/slider.js +7 -1
  153. package/development/status.js +7 -1
  154. package/development/stepper/step-label.js +7 -1
  155. package/development/stepper/step.js +7 -1
  156. package/development/stepper/stepper.js +7 -1
  157. package/development/table/table-wrapper/table-wrapper.d.ts +24 -0
  158. package/development/table/table-wrapper/table-wrapper.d.ts.map +1 -0
  159. package/development/table/table-wrapper.d.ts +2 -0
  160. package/development/table/table-wrapper.d.ts.map +1 -0
  161. package/development/table/table-wrapper.js +130 -0
  162. package/development/table.d.ts +2 -0
  163. package/development/table.d.ts.map +1 -0
  164. package/development/table.js +2 -0
  165. package/development/tabs/tab-group/tab-group.d.ts +4 -7
  166. package/development/tabs/tab-group/tab-group.d.ts.map +1 -1
  167. package/development/tabs/tab-group.js +69 -73
  168. package/development/tabs/tab-label.js +7 -1
  169. package/development/tabs/tab.js +7 -1
  170. package/development/tag/tag-group.js +7 -1
  171. package/development/tag/tag.js +7 -1
  172. package/development/teaser.js +7 -1
  173. package/development/time-input.js +7 -1
  174. package/development/timetable-occupancy-icon.js +7 -1
  175. package/development/timetable-occupancy.js +7 -1
  176. package/development/title.js +13 -1
  177. package/development/toast.js +7 -1
  178. package/development/toggle/toggle-option.js +7 -1
  179. package/development/toggle/toggle.js +7 -1
  180. package/development/toggle-check.js +7 -1
  181. package/development/train/train-blocked-passage.js +7 -1
  182. package/development/train/train-formation.js +7 -1
  183. package/development/train/train-wagon.js +7 -1
  184. package/development/train/train.js +7 -1
  185. package/development/visual-checkbox.js +7 -1
  186. package/form-field/form-field-clear.js +1 -1
  187. package/header/common/header-action-common.d.ts.map +1 -1
  188. package/icon/icon-name-mixin.d.ts.map +1 -1
  189. package/icon/icon-request.d.ts.map +1 -1
  190. package/index.d.ts +2 -0
  191. package/index.js +2 -0
  192. package/link/common/block-link-common.d.ts.map +1 -1
  193. package/link/common/inline-link-common.d.ts.map +1 -1
  194. package/link/common/link-common.d.ts.map +1 -1
  195. package/menu/common/menu-action-common.d.ts.map +1 -1
  196. package/navigation/common/navigation-action-common.d.ts.map +1 -1
  197. package/notification.js +1 -1
  198. package/option/optgroup/optgroup.d.ts +2 -0
  199. package/option/optgroup/optgroup.d.ts.map +1 -1
  200. package/option/optgroup.js +24 -21
  201. package/option/option/option.d.ts +6 -5
  202. package/option/option/option.d.ts.map +1 -1
  203. package/option/option.js +72 -69
  204. package/package.json +11 -1
  205. package/popover/popover-trigger.js +1 -1
  206. package/radio-button/common/radio-button-common.d.ts.map +1 -1
  207. package/standard-theme.css +196 -0
  208. package/table/table-wrapper/table-wrapper.d.ts +24 -0
  209. package/table/table-wrapper/table-wrapper.d.ts.map +1 -0
  210. package/table/table-wrapper.d.ts +2 -0
  211. package/table/table-wrapper.d.ts.map +1 -0
  212. package/table/table-wrapper.js +39 -0
  213. package/table.d.ts +2 -0
  214. package/table.d.ts.map +1 -0
  215. package/table.js +1 -0
  216. package/tabs/tab-group/tab-group.d.ts +4 -7
  217. package/tabs/tab-group/tab-group.d.ts.map +1 -1
  218. package/tabs/tab-group.js +80 -81
package/core/mixins.js CHANGED
@@ -1,15 +1,15 @@
1
- import { property as o, state as g } from "lit/decorators.js";
2
- import { defaultConverter as h, isServer as b, html as l, nothing as u, css as C } from "lit";
3
- import { hostAttributes as x } from "./decorators.js";
4
- import { preventScrollOnSpacebarPress as p, forwardEventToHost as S, EventEmitter as k } from "./eventing.js";
5
- import { getLocalName as v } from "./dom.js";
1
+ import { property as o, state as _ } from "lit/decorators.js";
2
+ import { defaultConverter as b, html as l, nothing as h, css as y } from "lit";
3
+ import { hostAttributes as C } from "./decorators.js";
4
+ import { preventScrollOnSpacebarPress as u, forwardEventToHost as x, EventEmitter as k } from "./eventing.js";
5
+ import { getLocalName as p } from "./dom.js";
6
6
  import "../screen-reader-only.js";
7
- var w = Object.defineProperty, E = Object.getOwnPropertyDescriptor, P = (n, r, s, t) => {
8
- for (var e = E(r, s), i = n.length - 1, a; i >= 0; i--)
7
+ var w = Object.defineProperty, S = Object.getOwnPropertyDescriptor, E = (n, r, s, t) => {
8
+ for (var e = S(r, s), i = n.length - 1, a; i >= 0; i--)
9
9
  (a = n[i]) && (e = a(r, s, e) || e);
10
10
  return e && w(r, s, e), e;
11
11
  };
12
- const y = (n) => {
12
+ const g = (n) => {
13
13
  class r extends n {
14
14
  constructor() {
15
15
  super(...arguments), this._disabled = !1;
@@ -28,23 +28,23 @@ const y = (n) => {
28
28
  return !1;
29
29
  }
30
30
  }
31
- return P([
31
+ return E([
32
32
  o({ reflect: !0, type: Boolean })
33
33
  ], r.prototype, "disabled"), r;
34
- }, W = (n) => {
35
- class r extends y(n) {
34
+ }, G = (n) => {
35
+ class r extends g(n) {
36
36
  willUpdate(t) {
37
37
  super.willUpdate(t), t.has("disabled") && (this.disabled ? (this.setAttribute("aria-disabled", "true"), this.removeAttribute("tabindex")) : (this.removeAttribute("aria-disabled"), this.setAttribute("tabindex", "0")));
38
38
  }
39
39
  }
40
40
  return r;
41
41
  };
42
- var $ = Object.defineProperty, R = Object.getOwnPropertyDescriptor, d = (n, r, s, t) => {
43
- for (var e = t > 1 ? void 0 : t ? R(r, s) : r, i = n.length - 1, a; i >= 0; i--)
42
+ var P = Object.defineProperty, $ = Object.getOwnPropertyDescriptor, d = (n, r, s, t) => {
43
+ for (var e = t > 1 ? void 0 : t ? $(r, s) : r, i = n.length - 1, a; i >= 0; i--)
44
44
  (a = n[i]) && (e = (t ? a(r, s, e) : a(e)) || e);
45
- return t && e && $(r, s, e), e;
45
+ return t && e && P(r, s, e), e;
46
46
  };
47
- const A = (n) => {
47
+ const R = (n) => {
48
48
  const s = class s extends n {
49
49
  constructor() {
50
50
  super(...arguments), this._value = null, this.internals = this.attachInternals(), this.formDisabled = !1;
@@ -140,15 +140,15 @@ const A = (n) => {
140
140
  ], r.prototype, "name", 1), d([
141
141
  o()
142
142
  ], r.prototype, "value", 1), d([
143
- g()
143
+ _()
144
144
  ], r.prototype, "formDisabled", 2), r;
145
145
  };
146
- var O = Object.defineProperty, q = Object.getOwnPropertyDescriptor, L = (n, r, s, t) => {
147
- for (var e = q(r, s), i = n.length - 1, a; i >= 0; i--)
146
+ var A = Object.defineProperty, O = Object.getOwnPropertyDescriptor, q = (n, r, s, t) => {
147
+ for (var e = O(r, s), i = n.length - 1, a; i >= 0; i--)
148
148
  (a = n[i]) && (e = a(r, s, e) || e);
149
- return e && O(r, s, e), e;
149
+ return e && A(r, s, e), e;
150
150
  };
151
- const U = (n) => {
151
+ const L = (n) => {
152
152
  class r extends n {
153
153
  constructor() {
154
154
  super(...arguments), this._required = !1;
@@ -170,17 +170,17 @@ const U = (n) => {
170
170
  return !1;
171
171
  }
172
172
  }
173
- return L([
173
+ return q([
174
174
  o({ reflect: !0, type: Boolean })
175
175
  ], r.prototype, "required"), r;
176
176
  };
177
- var D = Object.defineProperty, M = Object.getOwnPropertyDescriptor, f = (n, r, s, t) => {
177
+ var D = Object.defineProperty, M = Object.getOwnPropertyDescriptor, v = (n, r, s, t) => {
178
178
  for (var e = t > 1 ? void 0 : t ? M(r, s) : r, i = n.length - 1, a; i >= 0; i--)
179
179
  (a = n[i]) && (e = (t ? a(r, s, e) : a(e)) || e);
180
180
  return t && e && D(r, s, e), e;
181
181
  };
182
- const Y = (n) => {
183
- let r = class extends y(U(A(n))) {
182
+ const J = (n) => {
183
+ let r = class extends g(L(R(n))) {
184
184
  constructor() {
185
185
  super(), this._attributeMutationBlocked = !1, this._checked = !1, this._handleKeyboardInteraction = (s) => {
186
186
  s.key === " " && this._handleUserInteraction();
@@ -197,10 +197,10 @@ const Y = (n) => {
197
197
  return this._checked;
198
198
  }
199
199
  connectedCallback() {
200
- super.connectedCallback(), this.addEventListener("click", this._handleUserInteraction), this.addEventListener("keydown", p), this.addEventListener("keyup", this._handleKeyboardInteraction);
200
+ super.connectedCallback(), this.addEventListener("click", this._handleUserInteraction), this.addEventListener("keydown", u), this.addEventListener("keyup", this._handleKeyboardInteraction);
201
201
  }
202
202
  disconnectedCallback() {
203
- super.disconnectedCallback(), this.removeEventListener("click", this._handleUserInteraction), this.removeEventListener("keydown", p), this.removeEventListener("keyup", this._handleKeyboardInteraction);
203
+ super.disconnectedCallback(), this.removeEventListener("click", this._handleUserInteraction), this.removeEventListener("keydown", u), this.removeEventListener("keyup", this._handleKeyboardInteraction);
204
204
  }
205
205
  attributeChangedCallback(s, t, e) {
206
206
  (s !== "checked" || !this._attributeMutationBlocked) && super.attributeChangedCallback(s, t, e);
@@ -229,53 +229,39 @@ const Y = (n) => {
229
229
  this.checked ? this.internals.setFormValue(this.value, `${this.checked}`) : this.internals.setFormValue(null);
230
230
  }
231
231
  };
232
- return f([
232
+ return v([
233
233
  o({
234
234
  type: Boolean,
235
235
  converter: {
236
- ...h,
236
+ ...b,
237
237
  // We need to pass information to the setter so that we know it was called by attribute change.
238
238
  fromAttribute: (s, t) => {
239
239
  var i, a;
240
- return { value: (a = (i = h).fromAttribute) == null ? void 0 : a.call(i, s, t), attribute: !0 };
240
+ return { value: (a = (i = b).fromAttribute) == null ? void 0 : a.call(i, s, t), attribute: !0 };
241
241
  }
242
242
  }
243
243
  })
244
- ], r.prototype, "checked", 1), r = f([
245
- x({
244
+ ], r.prototype, "checked", 1), r = v([
245
+ C({
246
246
  tabindex: "0"
247
247
  })
248
248
  ], r), r;
249
- }, B = "litElementHydrateSupport", H = b || globalThis.testGroup === "ssr-non-hydrated", I = (n) => {
249
+ }, U = (n) => {
250
250
  class r extends n {
251
- constructor() {
252
- super(...arguments), this._hydrationRequired = !1, this._hydrationComplete = new Promise(
253
- (t) => this._resolveHydration = t
254
- ), this._handleBeforeHydrationSlotchange = (t) => {
251
+ constructor(...t) {
252
+ var e;
253
+ if (super(...t), this._hydrationComplete = new Promise(
254
+ (i) => this._resolveHydration = i
255
+ ), this._handleBeforeHydrationSlotchange = (i) => {
255
256
  if (!this._hydrationRequired)
256
257
  return;
257
- t.stopImmediatePropagation();
258
- const e = t.target;
259
- this.hydrationComplete.then(() => S(t, e));
260
- };
261
- }
262
- /**
263
- * Returns a Promise that resolves when the element has completed hydration.
264
- * The Promise value is a boolean that is `true` if the element required hydration
265
- * and `false` if not.
266
- *
267
- * @return A promise of a boolean that resolves to true once the hydration completed.
268
- * @internal
269
- */
270
- get hydrationComplete() {
271
- return this._hydrationComplete;
272
- }
273
- createRenderRoot() {
274
- var t, e;
275
- if (this._hydrationRequired = !!this.shadowRoot && B in globalThis && (b || !H), !this._hydrationRequired)
258
+ i.stopImmediatePropagation();
259
+ const a = i.target;
260
+ this.hydrationComplete.then(() => x(i, a));
261
+ }, this._hydrationRequired = !!this.shadowRoot, !this._hydrationRequired)
276
262
  this._resolveHydration(!1);
277
263
  else {
278
- const i = (t = this.shadowRoot) == null ? void 0 : t.querySelectorAll("slot");
264
+ const i = (e = this.shadowRoot) == null ? void 0 : e.querySelectorAll("slot");
279
265
  i != null && i.length && (i.forEach(
280
266
  (a) => a.addEventListener("slotchange", this._handleBeforeHydrationSlotchange, {
281
267
  capture: !0
@@ -284,40 +270,45 @@ const Y = (n) => {
284
270
  () => i.forEach(
285
271
  (a) => a.removeEventListener("slotchange", this._handleBeforeHydrationSlotchange)
286
272
  )
287
- )), (e = this.recoverSsrState) == null || e.call(this);
273
+ ));
288
274
  }
289
- return super.createRenderRoot();
290
275
  }
291
- willUpdate(t) {
292
- var e;
293
- super.willUpdate(t), b && ((e = this.recoverSsrState) == null || e.call(this));
276
+ /**
277
+ * Returns a Promise that resolves when the element has completed hydration.
278
+ * The Promise value is a boolean that is `true` if the element required hydration
279
+ * and `false` if not.
280
+ *
281
+ * @return A promise of a boolean that resolves to true once the hydration completed.
282
+ * @internal
283
+ */
284
+ get hydrationComplete() {
285
+ return this._hydrationComplete;
286
+ }
287
+ /** Returns whether hydration is required and not completed. */
288
+ get hydrationRequired() {
289
+ return this._hydrationRequired;
294
290
  }
295
291
  update(t) {
296
292
  super.update(t), this._hydrationRequired && (this._hydrationRequired = !1, this._resolveHydration(!0));
297
293
  }
298
- /** Reads and removes an attribute with the given name. Either returns the attributte value or null. */
299
- getAndRemoveAttribute(t) {
300
- const e = this.getAttribute(t);
301
- return this.removeAttribute(t), e;
302
- }
303
294
  }
304
295
  return r;
305
296
  };
306
- var N = Object.defineProperty, V = (n, r, s, t) => {
297
+ var B = Object.defineProperty, I = (n, r, s, t) => {
307
298
  for (var e = void 0, i = n.length - 1, a; i >= 0; i--)
308
299
  (a = n[i]) && (e = a(r, s, e) || e);
309
- return e && N(r, s, e), e;
300
+ return e && B(r, s, e), e;
310
301
  };
311
- const m = "data-ssr-child-count", _ = "li", Z = (n) => {
312
- class r extends I(n) {
302
+ const f = "data-ssr-child-count", m = "li", Q = (n) => {
303
+ class r extends U(n) {
313
304
  constructor() {
314
305
  super(...arguments), this.listChildren = [], this._handleSlotchange = () => {
315
306
  const t = Array.from(this.children ?? []).filter(
316
307
  (e) => this.listChildLocalNames.includes(e.localName)
317
308
  );
318
309
  t.length === this.listChildren.length && this.listChildren.every((e, i) => t[i] === e) || (this.listChildren.filter((e) => !t.includes(e)).forEach((e) => e.removeAttribute("slot")), this.listChildren = t, this.listChildren.forEach(
319
- (e, i) => e.setAttribute("slot", `${_}-${i}`)
320
- ), this.removeAttribute(m));
310
+ (e, i) => e.setAttribute("slot", `${m}-${i}`)
311
+ ), this.removeAttribute(f));
321
312
  };
322
313
  }
323
314
  connectedCallback() {
@@ -341,15 +332,15 @@ const m = "data-ssr-child-count", _ = "li", Z = (n) => {
341
332
  const e = this.listSlotNames();
342
333
  return e.length >= 2 ? l`
343
334
  <ul
344
- class=${t.class || (this.localName ?? v(this))}
345
- aria-label=${t.ariaLabel || u}
346
- aria-labelledby=${t.ariaLabelledby || u}
335
+ class=${t.class || (this.localName ?? p(this))}
336
+ aria-label=${t.ariaLabel || h}
337
+ aria-labelledby=${t.ariaLabelledby || h}
347
338
  >
348
339
  ${e.map((i) => l`<li><slot name=${i}></slot></li>`)}
349
340
  </ul>
350
341
  ${this.renderHiddenSlot()}
351
342
  ` : e.length === 1 ? l`<sbb-screen-reader-only>${t.ariaLabel}</sbb-screen-reader-only>
352
- <span class=${t.class || (this.localName ?? v(this))}>
343
+ <span class=${t.class || (this.localName ?? p(this))}>
353
344
  <span><slot name=${e[0]}></slot></span>
354
345
  </span>
355
346
  ${this.renderHiddenSlot()} ` : this.renderHiddenSlot();
@@ -364,7 +355,7 @@ const m = "data-ssr-child-count", _ = "li", Z = (n) => {
364
355
  * children to be passed via the `data-ssr-child-count` attribute value.
365
356
  */
366
357
  listSlotNames() {
367
- return (this.listChildren.length ? this.listChildren : Array.from({ length: +(this.getAttribute(m) ?? 0) })).map((e, i) => `${_}-${i}`);
358
+ return (this.listChildren.length ? this.listChildren : Array.from({ length: +(this.getAttribute(f) ?? 0) })).map((e, i) => `${m}-${i}`);
368
359
  }
369
360
  /**
370
361
  * Returns a hidden slot, which is intended as the children change detection.
@@ -375,31 +366,31 @@ const m = "data-ssr-child-count", _ = "li", Z = (n) => {
375
366
  return l`<span hidden><slot></slot></span>`;
376
367
  }
377
368
  }
378
- return V([
379
- g()
369
+ return I([
370
+ _()
380
371
  ], r.prototype, "listChildren"), r;
381
372
  };
382
- var j = Object.defineProperty, T = (n, r, s, t) => {
373
+ var N = Object.defineProperty, H = (n, r, s, t) => {
383
374
  for (var e = void 0, i = n.length - 1, a; i >= 0; i--)
384
375
  (a = n[i]) && (e = a(r, s, e) || e);
385
- return e && j(r, s, e), e;
376
+ return e && N(r, s, e), e;
386
377
  };
387
- const ee = (n) => {
378
+ const W = (n) => {
388
379
  class r extends n {
389
380
  constructor() {
390
381
  super(...arguments), this.negative = !1;
391
382
  }
392
383
  }
393
- return T([
384
+ return H([
394
385
  o({ reflect: !0, type: Boolean })
395
386
  ], r.prototype, "negative"), r;
396
387
  };
397
- var F = Object.defineProperty, c = (n, r, s, t) => {
388
+ var V = Object.defineProperty, c = (n, r, s, t) => {
398
389
  for (var e = void 0, i = n.length - 1, a; i >= 0; i--)
399
390
  (a = n[i]) && (e = a(r, s, e) || e);
400
- return e && F(r, s, e), e;
391
+ return e && V(r, s, e), e;
401
392
  };
402
- const te = (n) => {
393
+ const Y = (n) => {
403
394
  var t;
404
395
  const r = (t = class extends n {
405
396
  constructor() {
@@ -422,7 +413,7 @@ const te = (n) => {
422
413
  ], r.prototype, "borderless"), c([
423
414
  o()
424
415
  ], r.prototype, "expansionState"), r;
425
- }, re = (n) => {
416
+ }, Z = (n) => {
426
417
  class r extends n {
427
418
  constructor() {
428
419
  super(...arguments), this._updatePromise = Promise.resolve(), this._updateResolve = () => {
@@ -440,17 +431,17 @@ const te = (n) => {
440
431
  }
441
432
  }
442
433
  return r;
443
- }, se = C`:host{--sbb-selection-panel-background: var( --sbb-selection-expansion-panel-inner-background, var(--sbb-color-white) );--sbb-selection-panel-border-color: var(--sbb-color-cloud);--sbb-selection-panel-border-radius: var( --sbb-selection-expansion-panel-border-radius, var(--sbb-border-radius-4x) );--sbb-selection-panel-border-width: var( --sbb-selection-expansion-panel-inner-border-width, var(--sbb-border-width-1x) );--sbb-selection-panel-input-padding: var(--sbb-spacing-responsive-xs) var(--sbb-spacing-responsive-xxs);--sbb-selection-panel-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-4x) );--sbb-selection-panel-cursor: pointer;--sbb-selection-panel-suffix-color: var(--sbb-color-charcoal);--sbb-selection-panel-subtext-color: var(--sbb-color-granite);display:block;outline:none!important}:host([color=milk]){--sbb-selection-panel-background: var( --sbb-selection-expansion-panel-inner-background, var(--sbb-color-milk) )}:host([borderless]:not([data-checked])){--sbb-selection-panel-border-color: transparent}:host(:is([data-checked]):not(:disabled,[disabled])){--sbb-selection-panel-border-color: var(--sbb-color-charcoal);--sbb-selection-panel-border-width: var( --sbb-selection-expansion-panel-inner-border-width, var(--sbb-border-width-2x) )}:host(:is(:disabled,[disabled])){--sbb-selection-panel-cursor: default}.sbb-selection-panel{display:block;cursor:var(--sbb-selection-panel-cursor);position:relative;border-radius:var(--sbb-selection-panel-border-radius);box-shadow:inset 0 0 0 var(--sbb-selection-panel-border-width) var(--sbb-selection-panel-border-color);padding:var(--sbb-selection-panel-input-padding);background-color:var(--sbb-selection-panel-background);transition-duration:var(--sbb-selection-panel-animation-duration);transition-timing-function:var(--sbb-animation-easing);transition-property:box-shadow}@media (forced-colors: active){.sbb-selection-panel:after{content:"";display:block;position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border:var(--sbb-selection-panel-border-width) solid var(--sbb-selection-panel-border-color);border-radius:var(--sbb-selection-panel-border-radius)}}:host(:focus-visible) .sbb-selection-panel{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width)}.sbb-selection-panel__badge{-webkit-user-select:none;user-select:none;pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--sbb-selection-panel-border-radius);overflow:hidden}slot[name=suffix]{color:var(--sbb-selection-panel-suffix-color)}slot[name=subtext]{display:block;color:var(--sbb-selection-panel-subtext-color);padding-inline-start:var(--sbb-spacing-fixed-8x)}:host(:not([data-slot-names~=subtext])) slot[name=subtext]{display:none}`;
434
+ }, ee = y`:host{--sbb-selection-panel-background: var( --sbb-selection-expansion-panel-inner-background, var(--sbb-color-white) );--sbb-selection-panel-border-color: var(--sbb-color-cloud);--sbb-selection-panel-border-radius: var( --sbb-selection-expansion-panel-border-radius, var(--sbb-border-radius-4x) );--sbb-selection-panel-border-width: var( --sbb-selection-expansion-panel-inner-border-width, var(--sbb-border-width-1x) );--sbb-selection-panel-input-padding: var(--sbb-spacing-responsive-xs) var(--sbb-spacing-responsive-xxs);--sbb-selection-panel-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-4x) );--sbb-selection-panel-cursor: pointer;--sbb-selection-panel-suffix-color: var(--sbb-color-charcoal);--sbb-selection-panel-subtext-color: var(--sbb-color-granite);display:block;outline:none!important}:host([color=milk]){--sbb-selection-panel-background: var( --sbb-selection-expansion-panel-inner-background, var(--sbb-color-milk) )}:host([borderless]:not([data-checked])){--sbb-selection-panel-border-color: transparent}:host(:is([data-checked]):not(:disabled,[disabled])){--sbb-selection-panel-border-color: var(--sbb-color-charcoal);--sbb-selection-panel-border-width: var( --sbb-selection-expansion-panel-inner-border-width, var(--sbb-border-width-2x) )}:host(:is(:disabled,[disabled])){--sbb-selection-panel-cursor: default}.sbb-selection-panel{display:block;cursor:var(--sbb-selection-panel-cursor);position:relative;border-radius:var(--sbb-selection-panel-border-radius);box-shadow:inset 0 0 0 var(--sbb-selection-panel-border-width) var(--sbb-selection-panel-border-color);padding:var(--sbb-selection-panel-input-padding);background-color:var(--sbb-selection-panel-background);transition-duration:var(--sbb-selection-panel-animation-duration);transition-timing-function:var(--sbb-animation-easing);transition-property:box-shadow}@media (forced-colors: active){.sbb-selection-panel:after{content:"";display:block;position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border:var(--sbb-selection-panel-border-width) solid var(--sbb-selection-panel-border-color);border-radius:var(--sbb-selection-panel-border-radius)}}:host(:focus-visible) .sbb-selection-panel{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width)}.sbb-selection-panel__badge{-webkit-user-select:none;user-select:none;pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--sbb-selection-panel-border-radius);overflow:hidden}slot[name=suffix]{color:var(--sbb-selection-panel-suffix-color)}slot[name=subtext]{display:block;color:var(--sbb-selection-panel-subtext-color);padding-inline-start:var(--sbb-spacing-fixed-8x)}:host(:not([data-slot-names~=subtext])) slot[name=subtext]{display:none}`;
444
435
  export {
445
- y as SbbDisabledMixin,
446
- W as SbbDisabledTabIndexActionMixin,
447
- Y as SbbFormAssociatedCheckboxMixin,
448
- A as SbbFormAssociatedMixin,
449
- I as SbbHydrationMixin,
450
- Z as SbbNamedSlotListMixin,
451
- ee as SbbNegativeMixin,
452
- te as SbbPanelMixin,
453
- U as SbbRequiredMixin,
454
- re as SbbUpdateSchedulerMixin,
455
- se as panelCommonStyle
436
+ g as SbbDisabledMixin,
437
+ G as SbbDisabledTabIndexActionMixin,
438
+ J as SbbFormAssociatedCheckboxMixin,
439
+ R as SbbFormAssociatedMixin,
440
+ U as SbbHydrationMixin,
441
+ Q as SbbNamedSlotListMixin,
442
+ W as SbbNegativeMixin,
443
+ Y as SbbPanelMixin,
444
+ L as SbbRequiredMixin,
445
+ Z as SbbUpdateSchedulerMixin,
446
+ ee as panelCommonStyle
456
447
  };
@@ -8,7 +8,7 @@ export declare class NodeIntersectionObserver implements IntersectionObserver {
8
8
  unobserve(): void;
9
9
  }
10
10
  export declare const AgnosticIntersectionObserver: typeof NodeIntersectionObserver | {
11
- new (callback: IntersectionObserverCallback, options?: IntersectionObserverInit | undefined): IntersectionObserver;
11
+ new (callback: IntersectionObserverCallback, options?: IntersectionObserverInit): IntersectionObserver;
12
12
  prototype: IntersectionObserver;
13
13
  };
14
14
  //# sourceMappingURL=intersection-observer.d.ts.map
@@ -18,6 +18,7 @@
18
18
  @forward './mixins/pearl-chain-bullet';
19
19
  @forward './mixins/scrollbar';
20
20
  @forward './mixins/shadows';
21
+ @forward './mixins/table';
21
22
  @forward './mixins/typo';
22
23
 
23
24
  // Internals
@@ -118,7 +118,7 @@
118
118
  color: var(--sbb-button-color-default-text);
119
119
  cursor: pointer;
120
120
  user-select: none;
121
- display: var(--sbb-button-display);
121
+ display: flex;
122
122
 
123
123
  // Renders background and border in the background absolute to enable the hover animation
124
124
  &::before {
@@ -0,0 +1,148 @@
1
+ @use './typo';
2
+
3
+ /*
4
+ * SBB table mixin
5
+ * Notes:
6
+ * We cannot use `border-collapse` because it is not compatible with the `border-radius` property.
7
+ * Therefore, we have to build the grid avoiding double borders.
8
+ */
9
+ @mixin table {
10
+ @include table--striped;
11
+ @include table--m;
12
+
13
+ --sbb-table-border: var(--sbb-border-width-1x) solid var(--sbb-table-border-color);
14
+ --sbb-table-border-color: var(--sbb-color-cloud);
15
+ --sbb-table-border-radius: var(--sbb-border-radius-4x);
16
+ --sbb-table-background-color: var(--sbb-color-white);
17
+ --sbb-table-row-striped-color: var(--sbb-color-milk);
18
+ --sbb-table-color: inherit;
19
+ --sbb-table-caption-color: var(--sbb-color-granite);
20
+ --sbb-table-caption-margin-block-start: var(--sbb-spacing-fixed-4x);
21
+
22
+ background-color: var(--sbb-table-background-color);
23
+ border: var(--sbb-table-border);
24
+ border-radius: var(--sbb-table-border-radius);
25
+ border-spacing: 0;
26
+ caption-side: bottom;
27
+ color: var(--sbb-table-color);
28
+ table-layout: auto;
29
+
30
+ thead {
31
+ & > tr > th {
32
+ @include table-header-cell;
33
+ }
34
+ }
35
+
36
+ tbody {
37
+ & > tr {
38
+ @include table-data-row;
39
+
40
+ & > td {
41
+ @include table-data-cell;
42
+ }
43
+ }
44
+ }
45
+
46
+ caption {
47
+ @include table-caption;
48
+ }
49
+ }
50
+
51
+ @mixin table-header-cell {
52
+ @include typo.text-xs--bold;
53
+
54
+ border-bottom: var(--sbb-table-border);
55
+ border-right: var(--sbb-table-border);
56
+ padding-block: var(--sbb-table-header-padding-block);
57
+ padding-inline: var(--sbb-table-header-padding-inline);
58
+ text-align: left;
59
+
60
+ // To avoid double border
61
+ &:last-of-type {
62
+ border-right: none;
63
+ }
64
+ }
65
+
66
+ @mixin table-data-row {
67
+ // To avoid double borders
68
+ &:first-of-type td {
69
+ border-top: none;
70
+ }
71
+ }
72
+
73
+ @mixin table-data-cell {
74
+ @include typo.text-s--regular;
75
+
76
+ border-top: var(--sbb-table-border);
77
+ border-right: var(--sbb-table-border);
78
+ padding-block: var(--sbb-table-cell-padding-block);
79
+ padding-inline: var(--sbb-table-cell-padding-inline);
80
+
81
+ // To avoid double border
82
+ &:last-of-type {
83
+ border-right: none;
84
+ }
85
+ }
86
+
87
+ @mixin table-caption {
88
+ @include typo.text-xs--regular;
89
+
90
+ // Defaults are needed for cases where the caption is used outside a table
91
+ color: var(--sbb-table-caption-color, var(--sbb-color-granite));
92
+ margin-block-start: var(--sbb-table-caption-margin-block-start, var(--sbb-spacing-fixed-4x));
93
+ text-align: left;
94
+ }
95
+
96
+ @mixin table--striped {
97
+ tbody tr:nth-child(odd) {
98
+ @include table-row--striped;
99
+ }
100
+ }
101
+
102
+ @mixin table--unstriped {
103
+ tbody tr:nth-child(odd) {
104
+ background-color: unset;
105
+ }
106
+ }
107
+
108
+ @mixin table-row--striped {
109
+ background-color: var(--sbb-table-row-striped-color);
110
+ }
111
+
112
+ @mixin table--negative {
113
+ --sbb-table-border-color: var(--sbb-color-anthracite);
114
+ --sbb-table-background-color: var(--sbb-color-midnight);
115
+ --sbb-table-color: var(--sbb-color-white);
116
+ --sbb-table-row-striped-color: var(--sbb-color-charcoal);
117
+ --sbb-table-caption-color: var(--sbb-color-cement);
118
+ }
119
+
120
+ @mixin table--m {
121
+ --sbb-table-header-padding-block: var(--sbb-spacing-fixed-3x);
122
+ --sbb-table-header-padding-inline: var(--sbb-spacing-fixed-4x);
123
+ --sbb-table-cell-padding-block: var(--sbb-spacing-responsive-xxxs);
124
+ --sbb-table-cell-padding-inline: var(--sbb-spacing-fixed-4x);
125
+ }
126
+
127
+ @mixin table--s {
128
+ --sbb-table-header-padding-block: var(--sbb-spacing-fixed-1x);
129
+ --sbb-table-header-padding-inline: var(--sbb-spacing-fixed-2x);
130
+ --sbb-table-cell-padding-block: var(--sbb-spacing-fixed-1x);
131
+ --sbb-table-cell-padding-inline: var(--sbb-spacing-fixed-2x);
132
+
133
+ tbody > tr > td {
134
+ @include typo.text-xs--regular;
135
+ }
136
+ }
137
+
138
+ @mixin table--theme-iron {
139
+ --sbb-table-cell-color: var(--sbb-color-iron);
140
+
141
+ tbody > tr > td {
142
+ color: var(--sbb-table-cell-color);
143
+ }
144
+ }
145
+
146
+ @mixin table--theme-iron-negative {
147
+ --sbb-table-cell-color: var(--sbb-color-cloud);
148
+ }
@@ -7,3 +7,4 @@
7
7
  @use './animation';
8
8
  @use './layout';
9
9
  @use './lists';
10
+ @use './table';
@@ -0,0 +1,56 @@
1
+ @use './mixins/table';
2
+
3
+ .sbb-table,
4
+ .sbb-table-m,
5
+ .sbb-table-s {
6
+ @include table.table;
7
+ }
8
+
9
+ .sbb-table-m {
10
+ @include table.table--m;
11
+ }
12
+
13
+ .sbb-table-s {
14
+ @include table.table--s;
15
+ }
16
+
17
+ sbb-table-wrapper[negative] .sbb-table,
18
+ .sbb-table--negative {
19
+ @include table.table--negative;
20
+ }
21
+
22
+ .sbb-table--striped {
23
+ @include table.table--striped;
24
+ }
25
+
26
+ .sbb-table--unstriped {
27
+ @include table.table--unstriped;
28
+ }
29
+
30
+ .sbb-table--theme-iron {
31
+ @include table.table--theme-iron;
32
+
33
+ &.sbb-table--negative {
34
+ @include table.table--theme-iron-negative;
35
+ }
36
+ }
37
+
38
+ .sbb-table-header-cell {
39
+ @include table.table-header-cell;
40
+ }
41
+
42
+ .sbb-table-data-row {
43
+ @include table.table-data-row;
44
+ }
45
+
46
+ .sbb-table-row--striped {
47
+ @include table.table-row--striped;
48
+ }
49
+
50
+ .sbb-table-data-cell {
51
+ @include table.table-data-cell;
52
+ }
53
+
54
+ .sbb-table-caption {
55
+ @include table.table-caption;
56
+ }
@@ -5,7 +5,6 @@ export * from './private/dispatch-events.js';
5
5
  export * from './private/event-objects.js';
6
6
  export * from './private/fixture.js';
7
7
  export * from './private/load-asset-as-base64.js';
8
- export * from './private/platform.js';
9
8
  export * from './private/type-in-element.js';
10
9
  export * from './private/visual-regression-snapshot.js';
11
10
  //# sourceMappingURL=private.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"private.d.ts","sourceRoot":"","sources":["../../../../src/elements/core/testing/private.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,mCAAmC,CAAC;AAClD,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC"}
1
+ {"version":3,"file":"private.d.ts","sourceRoot":"","sources":["../../../../src/elements/core/testing/private.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC"}
@@ -14,5 +14,5 @@ export declare const isReactiveElement: (element: Element) => element is Reactiv
14
14
  *
15
15
  * @param root a parent node to wait for rendering on.
16
16
  */
17
- export declare const waitForLitRender: (root: ParentNode) => Promise<void>;
17
+ export declare const waitForLitRender: <T extends HTMLElement | DocumentFragment = HTMLElement | DocumentFragment>(node: T | Promise<T>) => Promise<T>;
18
18
  //# sourceMappingURL=wait-for-render.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wait-for-render.d.ts","sourceRoot":"","sources":["../../../../src/elements/core/testing/wait-for-render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAE3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,YACnB,OAAO,gEAGjB,CAAC;AAIF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,SAAgB,UAAU,KAAG,QAAQ,IAAI,CAUrE,CAAC"}
1
+ {"version":3,"file":"wait-for-render.d.ts","sourceRoot":"","sources":["../../../../src/elements/core/testing/wait-for-render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAE3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,YACnB,OAAO,KACf,OAAO,IAAI,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAE5D,CAAC;AAIF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,CAAC,SAAS,WAAW,GAAG,gBAAgB,yCAElC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KACnB,OAAO,CAAC,CAAC,CAeX,CAAC"}