@sbb-esta/lyne-elements 0.53.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/option/option.js CHANGED
@@ -1,36 +1,38 @@
1
- import { css as u, LitElement as v, html as l, nothing as b } from "lit";
2
- import { property as h, state as n, customElement as _ } from "lit/decorators.js";
3
- import { SbbConnectedAbortController as f, SbbSlotStateController as m } from "../core/controllers.js";
1
+ import { css as v, LitElement as _, html as l, nothing as n } from "lit";
2
+ import { property as p, state as b, customElement as f } from "lit/decorators.js";
3
+ import { SbbConnectedAbortController as m, SbbSlotStateController as y } from "../core/controllers.js";
4
4
  import { hostAttributes as x } from "../core/decorators.js";
5
- import { setOrRemoveAttribute as p, isAndroid as y, isSafari as k } from "../core/dom.js";
6
- import { EventEmitter as g } from "../core/eventing.js";
7
- import { SbbDisabledMixin as A } from "../core/mixins.js";
8
- import { AgnosticMutationObserver as S } from "../core/observers.js";
9
- import { SbbIconNameMixin as C } from "../icon.js";
5
+ import { setOrRemoveAttribute as g, isAndroid as k, isSafari as A } from "../core/dom.js";
6
+ import { EventEmitter as u } from "../core/eventing.js";
7
+ import { SbbDisabledMixin as S, SbbHydrationMixin as C } from "../core/mixins.js";
8
+ import { AgnosticMutationObserver as w } from "../core/observers.js";
9
+ import { SbbIconNameMixin as $ } from "../icon.js";
10
10
  import "../screen-reader-only.js";
11
11
  import "../visual-checkbox.js";
12
- const w = u`*,:before,:after{box-sizing:border-box}:host{--sbb-option-color: var(--sbb-color-charcoal);--sbb-option-background-color: inherit;--sbb-option-background-color-hover: var(--sbb-color-milk);--sbb-option-background-color-active: var(--sbb-color-cloud);--sbb-option-disabled-border-color: var(--sbb-color-graphite);--sbb-option-disabled-background-color: var(--sbb-color-milk);--sbb-option-padding-inline: var(--sbb-spacing-responsive-xxxs);--sbb-option-padding-block: calc(var(--sbb-spacing-fixed-2x) + var(--sbb-border-width-2x));--sbb-option-column-gap: var(--sbb-spacing-responsive-xxxs);--sbb-option-justify-content: start;--sbb-option-cursor: pointer;--sbb-option-border-radius: var(--sbb-border-radius-4x);--sbb-option-icon-color: var(--sbb-color-metal);display:block}:host([data-negative]){--sbb-option-color: var(--sbb-color-milk);--sbb-option-icon-color: var(--sbb-color-smoke);--sbb-option-background-color-hover: var(--sbb-color-charcoal);--sbb-option-background-color-active: var(--sbb-color-iron);--sbb-option-disabled-border-color: var(--sbb-color-smoke);--sbb-option-disabled-background-color: var(--sbb-color-charcoal);--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark)}:host([active]){--sbb-focus-outline-offset: calc(-1 * var(--sbb-spacing-fixed-1x))}@media (any-hover: hover){:host(:hover:not([disabled],[data-group-disabled])){--sbb-option-background-color: var(--sbb-option-background-color-hover)}}:host(:active:not([disabled],[data-group-disabled])){--sbb-option-background-color: var(--sbb-option-background-color-active)}:host(:not([data-disable-highlight])) .sbb-option__label slot{display:none}:host(:is([data-group-disabled],[disabled])){--sbb-option-cursor: default}@media (forced-colors: active){:host(:is([data-group-disabled],[disabled])){--sbb-option-color: GrayText}}:host([data-variant=select]){--sbb-option-column-gap: var(--sbb-spacing-fixed-2x);--sbb-option-justify-content: space-between}:host([data-variant=select][data-multiple]){--sbb-option-justify-content: start}:host(:not(:is([disabled],[data-group-disabled]))) .sbb-option__label--highlight{font-weight:700}@media (forced-colors: active){:host(:not(:is([disabled],[data-group-disabled]))) .sbb-option__label--highlight{color:Highlight}}.sbb-option__container{background-color:var(--sbb-option-background-color)}.sbb-option{--sbb-text-font-size: var(--sbb-font-size-text-s);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size);display:flex;align-items:center;column-gap:var(--sbb-option-column-gap);padding-inline:var(--sbb-option-padding-inline);padding-block:var(--sbb-option-padding-block);justify-content:var(--sbb-option-justify-content);color:var(--sbb-option-color);background-color:var(--sbb-option-background-color);cursor:var(--sbb-option-cursor);-webkit-tap-highlight-color:transparent;-webkit-text-fill-color:var(--sbb-option-color)}:host([active]) .sbb-option{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width);border-radius:var(--sbb-option-border-radius)}:host(:is([data-group-disabled],[disabled]):not([data-multiple])) .sbb-option{position:relative;z-index:0}:host(:is([data-group-disabled],[disabled]):not([data-multiple])) .sbb-option:before{content:"";display:block;position:absolute;top:.375rem;right:.375rem;bottom:.375rem;left:.375rem;border:var(--sbb-border-width-1x) dashed var(--sbb-option-disabled-border-color);border-radius:var(--sbb-border-radius-2x);background-color:var(--sbb-option-disabled-background-color);z-index:-1}@media (forced-colors: active){:host(:is([data-group-disabled],[disabled]):not([data-multiple])) .sbb-option:before{border-color:GrayText}}.sbb-option__icon{display:flex;min-width:var(--sbb-size-icon-ui-small);min-height:var(--sbb-size-icon-ui-small);color:var(--sbb-option-icon-color)}:host(:not([data-slot-names~=icon],[icon-name])) .sbb-option__icon{display:var(--sbb-option-icon-container-display, none)}.sbb-option__label{white-space:initial}`;
13
- var $ = Object.defineProperty, O = Object.getOwnPropertyDescriptor, r = (t, i, e, s) => {
14
- for (var a = s > 1 ? void 0 : s ? O(i, e) : i, d = t.length - 1, c; d >= 0; d--)
15
- (c = t[d]) && (a = (s ? c(i, e, a) : c(a)) || a);
16
- return s && a && $(i, e, a), a;
12
+ const G = v`*,:before,:after{box-sizing:border-box}:host{--sbb-option-color: var(--sbb-color-charcoal);--sbb-option-background-color: inherit;--sbb-option-background-color-hover: var(--sbb-color-milk);--sbb-option-background-color-active: var(--sbb-color-cloud);--sbb-option-disabled-border-color: var(--sbb-color-graphite);--sbb-option-disabled-background-color: var(--sbb-color-milk);--sbb-option-padding-inline: var(--sbb-spacing-responsive-xxxs);--sbb-option-padding-block: calc(var(--sbb-spacing-fixed-2x) + var(--sbb-border-width-2x));--sbb-option-column-gap: var(--sbb-spacing-responsive-xxxs);--sbb-option-justify-content: start;--sbb-option-cursor: pointer;--sbb-option-border-radius: var(--sbb-border-radius-4x);--sbb-option-icon-color: var(--sbb-color-metal);display:block}:host([data-negative]){--sbb-option-color: var(--sbb-color-milk);--sbb-option-icon-color: var(--sbb-color-smoke);--sbb-option-background-color-hover: var(--sbb-color-charcoal);--sbb-option-background-color-active: var(--sbb-color-iron);--sbb-option-disabled-border-color: var(--sbb-color-smoke);--sbb-option-disabled-background-color: var(--sbb-color-charcoal);--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark)}:host([active]){--sbb-focus-outline-offset: calc(-1 * var(--sbb-spacing-fixed-1x))}@media (any-hover: hover){:host(:hover:not([disabled],[data-group-disabled])){--sbb-option-background-color: var(--sbb-option-background-color-hover)}}:host(:active:not([disabled],[data-group-disabled])){--sbb-option-background-color: var(--sbb-option-background-color-active)}:host(:not([data-disable-highlight])) .sbb-option__label slot{display:none}:host(:is([data-group-disabled],[disabled])){--sbb-option-cursor: default}@media (forced-colors: active){:host(:is([data-group-disabled],[disabled])){--sbb-option-color: GrayText}}:host([data-variant=select]){--sbb-option-column-gap: var(--sbb-spacing-fixed-2x);--sbb-option-justify-content: space-between}:host([data-variant=select][data-multiple]){--sbb-option-justify-content: start}:host(:not(:is([disabled],[data-group-disabled]))) .sbb-option__label--highlight{font-weight:700}@media (forced-colors: active){:host(:not(:is([disabled],[data-group-disabled]))) .sbb-option__label--highlight{color:Highlight}}.sbb-option__container{background-color:var(--sbb-option-background-color)}.sbb-option{--sbb-text-font-size: var(--sbb-font-size-text-s);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size);display:flex;align-items:center;column-gap:var(--sbb-option-column-gap);padding-inline:var(--sbb-option-padding-inline);padding-block:var(--sbb-option-padding-block);justify-content:var(--sbb-option-justify-content);color:var(--sbb-option-color);background-color:var(--sbb-option-background-color);cursor:var(--sbb-option-cursor);-webkit-tap-highlight-color:transparent;-webkit-text-fill-color:var(--sbb-option-color)}:host([active]) .sbb-option{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width);border-radius:var(--sbb-option-border-radius)}:host(:is([data-group-disabled],[disabled]):not([data-multiple])) .sbb-option{position:relative;z-index:0}:host(:is([data-group-disabled],[disabled]):not([data-multiple])) .sbb-option:before{content:"";display:block;position:absolute;top:.375rem;right:.375rem;bottom:.375rem;left:.375rem;border:var(--sbb-border-width-1x) dashed var(--sbb-option-disabled-border-color);border-radius:var(--sbb-border-radius-2x);background-color:var(--sbb-option-disabled-background-color);z-index:-1}@media (forced-colors: active){:host(:is([data-group-disabled],[disabled]):not([data-multiple])) .sbb-option:before{border-color:GrayText}}.sbb-option__icon{display:flex;min-width:var(--sbb-size-icon-ui-small);min-height:var(--sbb-size-icon-ui-small);color:var(--sbb-option-icon-color)}:host(:not([data-slot-names~=icon],[icon-name])) .sbb-option__icon{display:var(--sbb-option-icon-container-display, none)}.sbb-option__label{white-space:initial}`;
13
+ var O = Object.defineProperty, H = Object.getOwnPropertyDescriptor, s = (t, i, e, a) => {
14
+ for (var r = a > 1 ? void 0 : a ? H(i, e) : i, d = t.length - 1, h; d >= 0; d--)
15
+ (h = t[d]) && (r = (a ? h(i, e, r) : h(r)) || r);
16
+ return a && r && O(i, e, r), r;
17
17
  };
18
- const H = k;
18
+ const c = A;
19
19
  let D = 0;
20
- const G = {
20
+ const L = {
21
21
  attributeFilter: ["data-group-disabled", "data-negative"]
22
22
  };
23
- let o = class extends A(C(v)) {
23
+ let o = class extends S(
24
+ $(C(_))
25
+ ) {
24
26
  constructor() {
25
- super(), this._selectionChange = new g(
27
+ super(), this._selectionChange = new u(
26
28
  this,
27
29
  o.events.selectionChange
28
- ), this._optionSelected = new g(
30
+ ), this._optionSelected = new u(
29
31
  this,
30
32
  o.events.optionSelected
31
- ), this._negative = !1, this._disabledFromGroup = !1, this._highlightString = null, this._disableLabelHighlight = !1, this._abort = new f(this), this._optionAttributeObserver = new S(
33
+ ), this._negative = !1, this._disabledFromGroup = !1, this._highlightString = null, this._disableLabelHighlight = !1, this._inertAriaGroups = !1, this._abort = new m(this), this._optionAttributeObserver = new w(
32
34
  (t) => this._onOptionAttributesChange(t)
33
- ), new m(this);
35
+ ), new y(this), c && (this.hydrationRequired ? this.hydrationComplete.then(() => this._inertAriaGroups = c) : this._inertAriaGroups = c);
34
36
  }
35
37
  set value(t) {
36
38
  this.setAttribute("value", `${t}`);
@@ -45,20 +47,16 @@ let o = class extends A(C(v)) {
45
47
  return this.hasAttribute("selected");
46
48
  }
47
49
  set _variant(t) {
48
- this.setAttribute("data-variant", t);
50
+ t && this.setAttribute("data-variant", t);
49
51
  }
50
52
  get _variant() {
51
53
  return this.getAttribute("data-variant");
52
54
  }
53
- get _isAutocomplete() {
54
- return this._variant === "autocomplete";
55
- }
56
- get _isSelect() {
57
- return this._variant === "select";
55
+ set _isMultiple(t) {
56
+ this.toggleAttribute("data-multiple", t);
58
57
  }
59
58
  get _isMultiple() {
60
- var t;
61
- return !!((t = this.closest) != null && t.call(this, "sbb-select[multiple]"));
59
+ return !this.hydrationRequired && this.hasAttribute("data-multiple");
62
60
  }
63
61
  attributeChangedCallback(t, i, e) {
64
62
  (t !== "value" || i !== e) && super.attributeChangedCallback(t, i, e);
@@ -88,26 +86,28 @@ let o = class extends A(C(v)) {
88
86
  this._isMultiple ? (t.stopPropagation(), this.setSelectedViaUserInteraction(!this.selected)) : this.setSelectedViaUserInteraction(!0);
89
87
  }
90
88
  connectedCallback() {
91
- var e, s;
92
- super.connectedCallback(), this.id || (this.id = `sbb-option-${D++}`);
89
+ super.connectedCallback(), this.id || (this.id = `sbb-option-${D++}`), this.hydrationRequired ? this.hydrationComplete.then(() => this._init()) : this._init();
90
+ }
91
+ willUpdate(t) {
92
+ super.willUpdate(t), t.has("disabled") && (g(this, "tabindex", k && !this.disabled && 0), this._updateAriaDisabled());
93
+ }
94
+ firstUpdated(t) {
95
+ super.firstUpdated(t), this._updateAriaSelected();
96
+ }
97
+ _init() {
98
+ var e, a;
93
99
  const t = this._abort.signal, i = (e = this.closest) == null ? void 0 : e.call(this, "sbb-optgroup");
94
- i && (this._disabledFromGroup = i.disabled, this._updateAriaDisabled()), this._optionAttributeObserver.observe(this, G), this._negative = !!((s = this.closest) != null && s.call(
100
+ i && (this._disabledFromGroup = i.disabled, this._updateAriaDisabled()), this._optionAttributeObserver.observe(this, L), this._negative = !!((a = this.closest) != null && a.call(
95
101
  this,
96
102
  // :is() selector not possible due to test environment
97
103
  "sbb-autocomplete[negative],sbb-select[negative],sbb-form-field[negative]"
98
- )), this.toggleAttribute("data-negative", this._negative), this._setVariantByContext(), this._handleHighlightState(), this.toggleAttribute("data-multiple", this._isMultiple), this.addEventListener("click", (a) => this._selectByClick(a), {
104
+ )), this.toggleAttribute("data-negative", this._negative), this._setVariantByContext(), this._handleHighlightState(), this.addEventListener("click", (r) => this._selectByClick(r), {
99
105
  signal: t,
100
106
  passive: !0
101
107
  });
102
108
  }
103
- willUpdate(t) {
104
- super.willUpdate(t), t.has("disabled") && (p(this, "tabindex", y && !this.disabled && 0), this._updateAriaDisabled());
105
- }
106
- firstUpdated(t) {
107
- super.firstUpdated(t), this._updateAriaSelected();
108
- }
109
109
  _updateAriaDisabled() {
110
- p(
110
+ g(
111
111
  this,
112
112
  "aria-disabled",
113
113
  this.disabled || this._disabledFromGroup ? "true" : null
@@ -120,8 +120,8 @@ let o = class extends A(C(v)) {
120
120
  super.disconnectedCallback(), this._optionAttributeObserver.disconnect();
121
121
  }
122
122
  _setVariantByContext() {
123
- var t, i;
124
- (t = this.closest) != null && t.call(this, "sbb-autocomplete") ? this._variant = "autocomplete" : (i = this.closest) != null && i.call(this, "sbb-select") && (this._variant = "select");
123
+ var t, i, e;
124
+ (t = this.closest) != null && t.call(this, "sbb-autocomplete") ? this._variant = "autocomplete" : (i = this.closest) != null && i.call(this, "sbb-select") && (this._variant = "select"), this._isMultiple = !!((e = this.closest) != null && e.call(this, "sbb-select[multiple]"));
125
125
  }
126
126
  /** Observe changes on data attributes and set the appropriate values. */
127
127
  _onOptionAttributesChange(t) {
@@ -129,7 +129,7 @@ let o = class extends A(C(v)) {
129
129
  i.attributeName === "data-group-disabled" ? (this._disabledFromGroup = this.hasAttribute("data-group-disabled"), this._updateAriaDisabled()) : i.attributeName === "data-negative" && (this._negative = this.hasAttribute("data-negative"));
130
130
  }
131
131
  _handleHighlightState() {
132
- if (!this._isAutocomplete) {
132
+ if (this._variant !== "autocomplete") {
133
133
  this._updateDisableHighlight(!0);
134
134
  return;
135
135
  }
@@ -151,10 +151,10 @@ let o = class extends A(C(v)) {
151
151
  const i = this._label.substring(0, t), e = this._label.substring(
152
152
  t,
153
153
  t + this._highlightString.length
154
- ), s = this._label.substring(t + this._highlightString.length);
154
+ ), a = this._label.substring(t + this._highlightString.length);
155
155
  return l`
156
156
  <span class="sbb-option__label--highlight">${i}</span><span>${e}</span
157
- ><span class="sbb-option__label--highlight">${s}</span>
157
+ ><span class="sbb-option__label--highlight">${a}</span>
158
158
  `;
159
159
  }
160
160
  render() {
@@ -163,64 +163,67 @@ let o = class extends A(C(v)) {
163
163
  <div class="sbb-option__container">
164
164
  <div class="sbb-option">
165
165
  <!-- Icon -->
166
- ${t ? b : l` <span class="sbb-option__icon"> ${this.renderIconSlot()} </span>`}
166
+ ${t ? n : l` <span class="sbb-option__icon"> ${this.renderIconSlot()} </span>`}
167
167
 
168
168
  <!-- Checkbox -->
169
169
  ${t ? l` <sbb-visual-checkbox
170
170
  ?checked=${this.selected}
171
171
  ?disabled=${this.disabled || this._disabledFromGroup}
172
172
  ?negative=${this._negative}
173
- ></sbb-visual-checkbox>` : b}
173
+ ></sbb-visual-checkbox>` : n}
174
174
 
175
175
  <!-- Label -->
176
176
  <span class="sbb-option__label">
177
177
  <slot @slotchange=${this._handleHighlightState}></slot>
178
178
 
179
179
  <!-- Search highlight -->
180
- ${this._isAutocomplete && this._label && !this._disableLabelHighlight ? this._getHighlightedLabel() : b}
181
- ${H && this.getAttribute("data-group-label") ? l` <sbb-screen-reader-only>
180
+ ${this._variant === "autocomplete" && this._label && !this._disableLabelHighlight ? this._getHighlightedLabel() : n}
181
+ ${this._inertAriaGroups && this.getAttribute("data-group-label") ? l` <sbb-screen-reader-only>
182
182
  (${this.getAttribute("data-group-label")})</sbb-screen-reader-only
183
- >` : b}
183
+ >` : n}
184
184
  </span>
185
185
 
186
186
  <!-- Selected tick -->
187
- ${this._isSelect && !t && this.selected ? l`<sbb-icon name="tick-small"></sbb-icon>` : b}
187
+ ${this._variant === "select" && !t && this.selected ? l`<sbb-icon name="tick-small"></sbb-icon>` : n}
188
188
  </div>
189
189
  </div>
190
190
  `;
191
191
  }
192
192
  };
193
- o.styles = w;
193
+ o.styles = G;
194
194
  o.events = {
195
195
  selectionChange: "optionSelectionChange",
196
196
  optionSelected: "optionSelected"
197
197
  };
198
- r([
199
- h()
198
+ s([
199
+ p()
200
200
  ], o.prototype, "value", 1);
201
- r([
202
- h({ reflect: !0, type: Boolean })
201
+ s([
202
+ p({ reflect: !0, type: Boolean })
203
203
  ], o.prototype, "active", 2);
204
- r([
205
- h({ type: Boolean })
204
+ s([
205
+ p({ type: Boolean })
206
206
  ], o.prototype, "selected", 1);
207
- r([
208
- n()
207
+ s([
208
+ b()
209
209
  ], o.prototype, "_negative", 2);
210
- r([
211
- n()
210
+ s([
211
+ b()
212
212
  ], o.prototype, "_disabledFromGroup", 2);
213
- r([
214
- n()
213
+ s([
214
+ b()
215
215
  ], o.prototype, "_label", 2);
216
- r([
217
- n()
216
+ s([
217
+ b()
218
218
  ], o.prototype, "_highlightString", 2);
219
- r([
220
- n()
219
+ s([
220
+ b()
221
221
  ], o.prototype, "_disableLabelHighlight", 2);
222
- o = r([
223
- _("sbb-option"),
222
+ s([
223
+ b()
224
+ ], o.prototype, "_inertAriaGroups", 2);
225
+ o = s([
226
+ f("sbb-option"),
224
227
  x({
225
228
  role: "option"
226
229
  })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sbb-esta/lyne-elements",
3
- "version": "0.53.0",
3
+ "version": "1.2.0",
4
4
  "description": "Lyne Design System",
5
5
  "keywords": [
6
6
  "design system",
@@ -754,6 +754,16 @@
754
754
  "development": "./development/stepper/stepper.js",
755
755
  "default": "./stepper/stepper.js"
756
756
  },
757
+ "./table.js": {
758
+ "types": "./development/table.d.ts",
759
+ "development": "./development/table.js",
760
+ "default": "./table.js"
761
+ },
762
+ "./table/table-wrapper.js": {
763
+ "types": "./development/table/table-wrapper.d.ts",
764
+ "development": "./development/table/table-wrapper.js",
765
+ "default": "./table/table-wrapper.js"
766
+ },
757
767
  "./tabs.js": {
758
768
  "types": "./development/tabs.d.ts",
759
769
  "development": "./development/tabs.js",
@@ -4,7 +4,7 @@ import { SbbButtonBaseElement as u } from "../core/base-elements.js";
4
4
  import { hostContext as n } from "../core/dom.js";
5
5
  import { SbbDisabledTabIndexActionMixin as v, SbbNegativeMixin as h } from "../core/mixins.js";
6
6
  import { SbbIconNameMixin as m } from "../icon.js";
7
- const p = l`*,:before,:after{box-sizing:border-box}:host{--sbb-popover-color: inherit;outline:none!important;display:inline-block}@media (forced-colors: active){:host{--sbb-popover-color: ButtonText !important}}@media (any-hover: hover){:host(:hover){--sbb-popover-color: var(--sbb-color-iron)}:host(:hover[negative]){--sbb-popover-color: var(--sbb-color-cloud)}}:host([negative]){--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark)}:host(:is(:active,[data-active])){--sbb-popover-color: var(--sbb-color-anthracite)}:host(:is(:active,[data-active])[negative]){--sbb-popover-color: var(--sbb-color-cement)}:host([disabled]){--sbb-popover-color: var(--sbb-color-graphite);pointer-events:none}@media (forced-colors: active){:host([disabled]){--sbb-popover-color: GrayText !important}}:host([disabled][negative]){--sbb-popover-color: var(--sbb-color-smoke)}:host([data-icon-small]){display:inline-block;-webkit-tap-highlight-color:transparent;height:fit-content;outline:none!important;--sbb-button-color-default-background: var(--sbb-color-black-alpha-0);--sbb-button-color-default-border: var(--sbb-color-black-alpha-0);--sbb-button-color-default-text: var(--sbb-color-charcoal);--sbb-button-color-hover-background: var(--sbb-color-milk);--sbb-button-color-hover-border: var(--sbb-color-milk);--sbb-button-color-hover-text: var(--sbb-color-charcoal);--sbb-button-color-active-background: var(--sbb-color-cloud);--sbb-button-color-active-border: var(--sbb-color-cloud);--sbb-button-color-active-text: var(--sbb-color-charcoal);--sbb-button-color-disabled-background: var(--sbb-color-milk);--sbb-button-color-disabled-border: var(--sbb-color-smoke);--sbb-button-color-disabled-text: var(--sbb-color-granite);--sbb-button-border-style: solid;--sbb-button-border-disabled-style: dashed;--sbb-button-border-width: 0rem;--sbb-button-border-radius: var(--sbb-border-radius-infinity);--sbb-button-transition-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-2x) );--sbb-button-transition-easing-function: var(--sbb-animation-easing);--sbb-button-inset: 0}@media (forced-colors: active){:host([data-icon-small]){--sbb-button-color-default-text: ButtonText !important;--sbb-button-color-default-border: CanvasText !important;--sbb-button-color-active-text: ButtonText !important;--sbb-button-color-active-border: Highlight !important;--sbb-button-color-hover-text: ButtonText !important}}:host([data-icon-small]) .sbb-popover-trigger{position:relative;transition-duration:var(--sbb-button-transition-duration);transition-timing-function:var(--sbb-button-transition-easing-function);transition-property:color;border-radius:var(--sbb-button-border-radius);color:var(--sbb-button-color-default-text);cursor:pointer;-webkit-user-select:none;user-select:none;display:var(--sbb-button-display)}:host([data-icon-small]) .sbb-popover-trigger:before{position:absolute;content:"";inset:var(--sbb-button-inset);border:var(--sbb-button-border-width) var(--sbb-button-border-style) var(--sbb-button-color-default-border);border-radius:var(--sbb-button-border-radius);background-color:var(--sbb-button-color-default-background);transition-duration:var(--sbb-button-transition-duration);transition-timing-function:var(--sbb-button-transition-easing-function);transition-property:inset,background-color,border-color}sbb-icon{transition:transform var(--sbb-button-transition-duration) var(--sbb-button-transition-easing-function);transform:translateY(var(--sbb-button-translate-y-content-hover, 0rem));display:flex}:host([data-icon-small][negative]){--sbb-button-color-default-background: var(--sbb-color-black-alpha-0);--sbb-button-color-default-border: var(--sbb-color-black-alpha-0);--sbb-button-color-default-text: var(--sbb-color-milk);--sbb-button-color-hover-background: var(--sbb-color-charcoal);--sbb-button-color-hover-border: var(--sbb-color-charcoal);--sbb-button-color-hover-text: var(--sbb-color-milk);--sbb-button-color-active-background: var(--sbb-color-iron);--sbb-button-color-active-border: var(--sbb-color-iron);--sbb-button-color-active-text: var(--sbb-color-milk);--sbb-button-color-disabled-background: var(--sbb-color-black-alpha-0);--sbb-button-color-disabled-border: var(--sbb-color-smoke);--sbb-button-color-disabled-text: var(--sbb-color-smoke)}:host([data-icon-small][disabled]){--sbb-button-border-width: var(--sbb-border-width-1x)}@media (forced-colors: active){:host([data-icon-small][disabled]){--sbb-button-color-disabled-text: GrayText !important}}:host([data-icon-small][disabled]) .sbb-popover-trigger{color:var(--sbb-button-color-disabled-text);cursor:default;pointer-events:none}:host([data-icon-small][disabled]) .sbb-popover-trigger:before{background-color:var(--sbb-button-color-disabled-background);border-color:var(--sbb-button-color-disabled-border);border-style:var(--sbb-button-border-disabled-style)}:host([data-icon-small]:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch])) .sbb-popover-trigger:before{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width)}@media (any-hover: hover){:host([data-icon-small]:not([disabled],:active,[data-active]):hover){--sbb-button-translate-y-content-hover: -.0625rem}}@media (forced-colors: active){:host([data-icon-small]:not([disabled],:active,[data-active]):hover){--sbb-button-color-hover-border: Highlight !important}}@media (any-hover: hover){:host([data-icon-small]:not([disabled],:active,[data-active]):hover) .sbb-popover-trigger:before{inset:calc(var(--sbb-button-border-width) * -1);background-color:var(--sbb-button-color-hover-background);border-color:var(--sbb-button-color-hover-border)}}@media (any-hover: hover){:host([data-icon-small]:not([disabled],:active,[data-active]):hover) .sbb-popover-trigger{color:var(--sbb-button-color-hover-text)}}:host([data-icon-small]:is(:active,[data-active])) .sbb-popover-trigger:before{color:var(--sbb-button-color-active-text);background-color:var(--sbb-button-color-active-background);border-color:var(--sbb-button-color-active-border)}:host(:not([data-icon-small])) .sbb-popover-trigger{font-family:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;font-size:inherit;text-align:inherit;display:flex;cursor:pointer;color:var(--sbb-popover-color)}:host(:focus-visible:not([data-icon-small],[data-focus-origin=mouse],[data-focus-origin=touch])) .sbb-popover-trigger{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width);border-radius:var(--sbb-border-radius-4x)}sbb-icon{min-width:var(--sbb-size-icon-ui-small);min-height:var(--sbb-size-icon-ui-small)}`;
7
+ const p = l`*,:before,:after{box-sizing:border-box}:host{--sbb-popover-color: inherit;outline:none!important;display:inline-block}@media (forced-colors: active){:host{--sbb-popover-color: ButtonText !important}}@media (any-hover: hover){:host(:hover){--sbb-popover-color: var(--sbb-color-iron)}:host(:hover[negative]){--sbb-popover-color: var(--sbb-color-cloud)}}:host([negative]){--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark)}:host(:is(:active,[data-active])){--sbb-popover-color: var(--sbb-color-anthracite)}:host(:is(:active,[data-active])[negative]){--sbb-popover-color: var(--sbb-color-cement)}:host([disabled]){--sbb-popover-color: var(--sbb-color-graphite);pointer-events:none}@media (forced-colors: active){:host([disabled]){--sbb-popover-color: GrayText !important}}:host([disabled][negative]){--sbb-popover-color: var(--sbb-color-smoke)}:host([data-icon-small]){display:inline-block;-webkit-tap-highlight-color:transparent;height:fit-content;outline:none!important;--sbb-button-color-default-background: var(--sbb-color-black-alpha-0);--sbb-button-color-default-border: var(--sbb-color-black-alpha-0);--sbb-button-color-default-text: var(--sbb-color-charcoal);--sbb-button-color-hover-background: var(--sbb-color-milk);--sbb-button-color-hover-border: var(--sbb-color-milk);--sbb-button-color-hover-text: var(--sbb-color-charcoal);--sbb-button-color-active-background: var(--sbb-color-cloud);--sbb-button-color-active-border: var(--sbb-color-cloud);--sbb-button-color-active-text: var(--sbb-color-charcoal);--sbb-button-color-disabled-background: var(--sbb-color-milk);--sbb-button-color-disabled-border: var(--sbb-color-smoke);--sbb-button-color-disabled-text: var(--sbb-color-granite);--sbb-button-border-style: solid;--sbb-button-border-disabled-style: dashed;--sbb-button-border-width: 0rem;--sbb-button-border-radius: var(--sbb-border-radius-infinity);--sbb-button-transition-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-2x) );--sbb-button-transition-easing-function: var(--sbb-animation-easing);--sbb-button-inset: 0}@media (forced-colors: active){:host([data-icon-small]){--sbb-button-color-default-text: ButtonText !important;--sbb-button-color-default-border: CanvasText !important;--sbb-button-color-active-text: ButtonText !important;--sbb-button-color-active-border: Highlight !important;--sbb-button-color-hover-text: ButtonText !important}}:host([data-icon-small]) .sbb-popover-trigger{position:relative;transition-duration:var(--sbb-button-transition-duration);transition-timing-function:var(--sbb-button-transition-easing-function);transition-property:color;border-radius:var(--sbb-button-border-radius);color:var(--sbb-button-color-default-text);cursor:pointer;-webkit-user-select:none;user-select:none;display:flex}:host([data-icon-small]) .sbb-popover-trigger:before{position:absolute;content:"";inset:var(--sbb-button-inset);border:var(--sbb-button-border-width) var(--sbb-button-border-style) var(--sbb-button-color-default-border);border-radius:var(--sbb-button-border-radius);background-color:var(--sbb-button-color-default-background);transition-duration:var(--sbb-button-transition-duration);transition-timing-function:var(--sbb-button-transition-easing-function);transition-property:inset,background-color,border-color}sbb-icon{transition:transform var(--sbb-button-transition-duration) var(--sbb-button-transition-easing-function);transform:translateY(var(--sbb-button-translate-y-content-hover, 0rem));display:flex}:host([data-icon-small][negative]){--sbb-button-color-default-background: var(--sbb-color-black-alpha-0);--sbb-button-color-default-border: var(--sbb-color-black-alpha-0);--sbb-button-color-default-text: var(--sbb-color-milk);--sbb-button-color-hover-background: var(--sbb-color-charcoal);--sbb-button-color-hover-border: var(--sbb-color-charcoal);--sbb-button-color-hover-text: var(--sbb-color-milk);--sbb-button-color-active-background: var(--sbb-color-iron);--sbb-button-color-active-border: var(--sbb-color-iron);--sbb-button-color-active-text: var(--sbb-color-milk);--sbb-button-color-disabled-background: var(--sbb-color-black-alpha-0);--sbb-button-color-disabled-border: var(--sbb-color-smoke);--sbb-button-color-disabled-text: var(--sbb-color-smoke)}:host([data-icon-small][disabled]){--sbb-button-border-width: var(--sbb-border-width-1x)}@media (forced-colors: active){:host([data-icon-small][disabled]){--sbb-button-color-disabled-text: GrayText !important}}:host([data-icon-small][disabled]) .sbb-popover-trigger{color:var(--sbb-button-color-disabled-text);cursor:default;pointer-events:none}:host([data-icon-small][disabled]) .sbb-popover-trigger:before{background-color:var(--sbb-button-color-disabled-background);border-color:var(--sbb-button-color-disabled-border);border-style:var(--sbb-button-border-disabled-style)}:host([data-icon-small]:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch])) .sbb-popover-trigger:before{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width)}@media (any-hover: hover){:host([data-icon-small]:not([disabled],:active,[data-active]):hover){--sbb-button-translate-y-content-hover: -.0625rem}}@media (forced-colors: active){:host([data-icon-small]:not([disabled],:active,[data-active]):hover){--sbb-button-color-hover-border: Highlight !important}}@media (any-hover: hover){:host([data-icon-small]:not([disabled],:active,[data-active]):hover) .sbb-popover-trigger:before{inset:calc(var(--sbb-button-border-width) * -1);background-color:var(--sbb-button-color-hover-background);border-color:var(--sbb-button-color-hover-border)}}@media (any-hover: hover){:host([data-icon-small]:not([disabled],:active,[data-active]):hover) .sbb-popover-trigger{color:var(--sbb-button-color-hover-text)}}:host([data-icon-small]:is(:active,[data-active])) .sbb-popover-trigger:before{color:var(--sbb-button-color-active-text);background-color:var(--sbb-button-color-active-background);border-color:var(--sbb-button-color-active-border)}:host(:not([data-icon-small])) .sbb-popover-trigger{font-family:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;font-size:inherit;text-align:inherit;display:flex;cursor:pointer;color:var(--sbb-popover-color)}:host(:focus-visible:not([data-icon-small],[data-focus-origin=mouse],[data-focus-origin=touch])) .sbb-popover-trigger{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width);border-radius:var(--sbb-border-radius-4x)}sbb-icon{min-width:var(--sbb-size-icon-ui-small);min-height:var(--sbb-size-icon-ui-small)}`;
8
8
  var f = Object.defineProperty, g = Object.getOwnPropertyDescriptor, x = (t, r, e, b) => {
9
9
  for (var o = b > 1 ? void 0 : b ? g(r, e) : r, a = t.length - 1, s; a >= 0; a--)
10
10
  (s = t[a]) && (o = (b ? s(r, e, o) : s(o)) || o);
@@ -1 +1 @@
1
- {"version":3,"file":"radio-button-common.d.ts","sourceRoot":"","sources":["../../../../src/elements/radio-button/common/radio-button-common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,KAAK,CAAC;AAOtD,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAE3E,MAAM,MAAM,kBAAkB,GAAG,GAAG,GAAG,GAAG,CAAC;AAE3C,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAC7C,cAAc,EACd,sBAAsB,GAAG,qBAAqB,CAC/C,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,oCAAoC;IACvD,IAAW,mBAAmB,IAAI,OAAO,CAAC;IAC1C,IAAW,mBAAmB,CAAC,OAAO,EADJ,OACI,EAAE;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACtB,IAAW,QAAQ,IAAI,OAAO,CAAC;IAC/B,IAAW,QAAQ,CAAC,OAAO,EADJ,OACI,EAAE;IAC7B,IAAW,QAAQ,IAAI,OAAO,CAAC;IAC/B,IAAW,QAAQ,CAAC,OAAO,EADJ,OACI,EAAE;IAC7B,IAAW,KAAK,IAAI,0BAA0B,GAAG,IAAI,CAAC;IACtD,IAAW,OAAO,IAAI,OAAO,CAAC;IAC9B,IAAW,OAAO,CAAC,OAAO,EADJ,OACI,EAAE;IACrB,MAAM,IAAI,IAAI;CACtB;AAGD,eAAO,MAAM,gCAAgC,0DAC/B,CAAC,KACZ,oBAAoB,oCAAoC,CAAC,GAAG,CAmK9D,CAAC"}
1
+ {"version":3,"file":"radio-button-common.d.ts","sourceRoot":"","sources":["../../../../src/elements/radio-button/common/radio-button-common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,KAAK,CAAC;AAOtD,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAE3E,MAAM,MAAM,kBAAkB,GAAG,GAAG,GAAG,GAAG,CAAC;AAE3C,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAC7C,cAAc,EACd,sBAAsB,GAAG,qBAAqB,CAC/C,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,oCAAoC;IACvD,IAAW,mBAAmB,IAAI,OAAO,CAAC;IAC1C,IAAW,mBAAmB,CAAC,OAAO,EADJ,OACI,EAAE;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACtB,IAAW,QAAQ,IAAI,OAAO,CAAC;IAC/B,IAAW,QAAQ,CAAC,OAAO,EADJ,OACI,EAAE;IAC7B,IAAW,QAAQ,IAAI,OAAO,CAAC;IAC/B,IAAW,QAAQ,CAAC,OAAO,EADJ,OACI,EAAE;IAC7B,IAAW,KAAK,IAAI,0BAA0B,GAAG,IAAI,CAAC;IACtD,IAAW,OAAO,IAAI,OAAO,CAAC;IAC9B,IAAW,OAAO,CAAC,OAAO,EADJ,OACI,EAAE;IACrB,MAAM,IAAI,IAAI;CACtB;AAGD,eAAO,MAAM,gCAAgC,GAAI,CAAC,SAAS,mBAAmB,CAAC,UAAU,CAAC,cAC5E,CAAC,KACZ,mBAAmB,CAAC,oCAAoC,CAAC,GAAG,CAmK9D,CAAC"}
@@ -20,6 +20,12 @@ sub, sup {
20
20
  }
21
21
 
22
22
  /** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
23
+ /*
24
+ * SBB table mixin
25
+ * Notes:
26
+ * We cannot use `border-collapse` because it is not compatible with the `border-radius` property.
27
+ * Therefore, we have to build the grid avoiding double borders.
28
+ */
23
29
  /*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */
24
30
  /*
25
31
  Document
@@ -1738,4 +1744,194 @@ sup {
1738
1744
  }
1739
1745
  .sbb-step-list > li > * + p {
1740
1746
  margin-block-start: var(--sbb-spacing-responsive-xxxs);
1747
+ }
1748
+
1749
+ .sbb-table,
1750
+ .sbb-table-m,
1751
+ .sbb-table-s {
1752
+ --sbb-table-header-padding-block: var(--sbb-spacing-fixed-3x);
1753
+ --sbb-table-header-padding-inline: var(--sbb-spacing-fixed-4x);
1754
+ --sbb-table-cell-padding-block: var(--sbb-spacing-responsive-xxxs);
1755
+ --sbb-table-cell-padding-inline: var(--sbb-spacing-fixed-4x);
1756
+ --sbb-table-border: var(--sbb-border-width-1x) solid var(--sbb-table-border-color);
1757
+ --sbb-table-border-color: var(--sbb-color-cloud);
1758
+ --sbb-table-border-radius: var(--sbb-border-radius-4x);
1759
+ --sbb-table-background-color: var(--sbb-color-white);
1760
+ --sbb-table-row-striped-color: var(--sbb-color-milk);
1761
+ --sbb-table-color: inherit;
1762
+ --sbb-table-caption-color: var(--sbb-color-granite);
1763
+ --sbb-table-caption-margin-block-start: var(--sbb-spacing-fixed-4x);
1764
+ background-color: var(--sbb-table-background-color);
1765
+ border: var(--sbb-table-border);
1766
+ border-radius: var(--sbb-table-border-radius);
1767
+ border-spacing: 0;
1768
+ caption-side: bottom;
1769
+ color: var(--sbb-table-color);
1770
+ table-layout: auto;
1771
+ }
1772
+ .sbb-table tbody tr:nth-child(odd),
1773
+ .sbb-table-m tbody tr:nth-child(odd),
1774
+ .sbb-table-s tbody tr:nth-child(odd) {
1775
+ background-color: var(--sbb-table-row-striped-color);
1776
+ }
1777
+ .sbb-table thead > tr > th,
1778
+ .sbb-table-m thead > tr > th,
1779
+ .sbb-table-s thead > tr > th {
1780
+ --sbb-text-font-size: var(--sbb-font-size-text-xs);
1781
+ font-family: var(--sbb-typo-font-family);
1782
+ font-weight: normal;
1783
+ line-height: var(--sbb-typo-line-height-body-text);
1784
+ letter-spacing: var(--sbb-typo-letter-spacing-body-text);
1785
+ font-size: var(--sbb-text-font-size);
1786
+ font-weight: bold;
1787
+ border-bottom: var(--sbb-table-border);
1788
+ border-right: var(--sbb-table-border);
1789
+ padding-block: var(--sbb-table-header-padding-block);
1790
+ padding-inline: var(--sbb-table-header-padding-inline);
1791
+ text-align: left;
1792
+ }
1793
+ .sbb-table thead > tr > th:last-of-type,
1794
+ .sbb-table-m thead > tr > th:last-of-type,
1795
+ .sbb-table-s thead > tr > th:last-of-type {
1796
+ border-right: none;
1797
+ }
1798
+ .sbb-table tbody > tr:first-of-type td,
1799
+ .sbb-table-m tbody > tr:first-of-type td,
1800
+ .sbb-table-s tbody > tr:first-of-type td {
1801
+ border-top: none;
1802
+ }
1803
+ .sbb-table tbody > tr > td,
1804
+ .sbb-table-m tbody > tr > td,
1805
+ .sbb-table-s tbody > tr > td {
1806
+ --sbb-text-font-size: var(--sbb-font-size-text-s);
1807
+ font-family: var(--sbb-typo-font-family);
1808
+ font-weight: normal;
1809
+ line-height: var(--sbb-typo-line-height-body-text);
1810
+ letter-spacing: var(--sbb-typo-letter-spacing-body-text);
1811
+ font-size: var(--sbb-text-font-size);
1812
+ border-top: var(--sbb-table-border);
1813
+ border-right: var(--sbb-table-border);
1814
+ padding-block: var(--sbb-table-cell-padding-block);
1815
+ padding-inline: var(--sbb-table-cell-padding-inline);
1816
+ }
1817
+ .sbb-table tbody > tr > td:last-of-type,
1818
+ .sbb-table-m tbody > tr > td:last-of-type,
1819
+ .sbb-table-s tbody > tr > td:last-of-type {
1820
+ border-right: none;
1821
+ }
1822
+ .sbb-table caption,
1823
+ .sbb-table-m caption,
1824
+ .sbb-table-s caption {
1825
+ --sbb-text-font-size: var(--sbb-font-size-text-xs);
1826
+ font-family: var(--sbb-typo-font-family);
1827
+ font-weight: normal;
1828
+ line-height: var(--sbb-typo-line-height-body-text);
1829
+ letter-spacing: var(--sbb-typo-letter-spacing-body-text);
1830
+ font-size: var(--sbb-text-font-size);
1831
+ color: var(--sbb-table-caption-color, var(--sbb-color-granite));
1832
+ margin-block-start: var(--sbb-table-caption-margin-block-start, var(--sbb-spacing-fixed-4x));
1833
+ text-align: left;
1834
+ }
1835
+
1836
+ .sbb-table-m {
1837
+ --sbb-table-header-padding-block: var(--sbb-spacing-fixed-3x);
1838
+ --sbb-table-header-padding-inline: var(--sbb-spacing-fixed-4x);
1839
+ --sbb-table-cell-padding-block: var(--sbb-spacing-responsive-xxxs);
1840
+ --sbb-table-cell-padding-inline: var(--sbb-spacing-fixed-4x);
1841
+ }
1842
+
1843
+ .sbb-table-s {
1844
+ --sbb-table-header-padding-block: var(--sbb-spacing-fixed-1x);
1845
+ --sbb-table-header-padding-inline: var(--sbb-spacing-fixed-2x);
1846
+ --sbb-table-cell-padding-block: var(--sbb-spacing-fixed-1x);
1847
+ --sbb-table-cell-padding-inline: var(--sbb-spacing-fixed-2x);
1848
+ }
1849
+ .sbb-table-s tbody > tr > td {
1850
+ --sbb-text-font-size: var(--sbb-font-size-text-xs);
1851
+ font-family: var(--sbb-typo-font-family);
1852
+ font-weight: normal;
1853
+ line-height: var(--sbb-typo-line-height-body-text);
1854
+ letter-spacing: var(--sbb-typo-letter-spacing-body-text);
1855
+ font-size: var(--sbb-text-font-size);
1856
+ }
1857
+
1858
+ sbb-table-wrapper[negative] .sbb-table,
1859
+ .sbb-table--negative {
1860
+ --sbb-table-border-color: var(--sbb-color-anthracite);
1861
+ --sbb-table-background-color: var(--sbb-color-midnight);
1862
+ --sbb-table-color: var(--sbb-color-white);
1863
+ --sbb-table-row-striped-color: var(--sbb-color-charcoal);
1864
+ --sbb-table-caption-color: var(--sbb-color-cement);
1865
+ }
1866
+
1867
+ .sbb-table--striped tbody tr:nth-child(odd) {
1868
+ background-color: var(--sbb-table-row-striped-color);
1869
+ }
1870
+
1871
+ .sbb-table--unstriped tbody tr:nth-child(odd) {
1872
+ background-color: unset;
1873
+ }
1874
+
1875
+ .sbb-table--theme-iron {
1876
+ --sbb-table-cell-color: var(--sbb-color-iron);
1877
+ }
1878
+ .sbb-table--theme-iron tbody > tr > td {
1879
+ color: var(--sbb-table-cell-color);
1880
+ }
1881
+ .sbb-table--theme-iron.sbb-table--negative {
1882
+ --sbb-table-cell-color: var(--sbb-color-cloud);
1883
+ }
1884
+
1885
+ .sbb-table-header-cell {
1886
+ --sbb-text-font-size: var(--sbb-font-size-text-xs);
1887
+ font-family: var(--sbb-typo-font-family);
1888
+ font-weight: normal;
1889
+ line-height: var(--sbb-typo-line-height-body-text);
1890
+ letter-spacing: var(--sbb-typo-letter-spacing-body-text);
1891
+ font-size: var(--sbb-text-font-size);
1892
+ font-weight: bold;
1893
+ border-bottom: var(--sbb-table-border);
1894
+ border-right: var(--sbb-table-border);
1895
+ padding-block: var(--sbb-table-header-padding-block);
1896
+ padding-inline: var(--sbb-table-header-padding-inline);
1897
+ text-align: left;
1898
+ }
1899
+ .sbb-table-header-cell:last-of-type {
1900
+ border-right: none;
1901
+ }
1902
+
1903
+ .sbb-table-data-row:first-of-type td {
1904
+ border-top: none;
1905
+ }
1906
+
1907
+ .sbb-table-row--striped {
1908
+ background-color: var(--sbb-table-row-striped-color);
1909
+ }
1910
+
1911
+ .sbb-table-data-cell {
1912
+ --sbb-text-font-size: var(--sbb-font-size-text-s);
1913
+ font-family: var(--sbb-typo-font-family);
1914
+ font-weight: normal;
1915
+ line-height: var(--sbb-typo-line-height-body-text);
1916
+ letter-spacing: var(--sbb-typo-letter-spacing-body-text);
1917
+ font-size: var(--sbb-text-font-size);
1918
+ border-top: var(--sbb-table-border);
1919
+ border-right: var(--sbb-table-border);
1920
+ padding-block: var(--sbb-table-cell-padding-block);
1921
+ padding-inline: var(--sbb-table-cell-padding-inline);
1922
+ }
1923
+ .sbb-table-data-cell:last-of-type {
1924
+ border-right: none;
1925
+ }
1926
+
1927
+ .sbb-table-caption {
1928
+ --sbb-text-font-size: var(--sbb-font-size-text-xs);
1929
+ font-family: var(--sbb-typo-font-family);
1930
+ font-weight: normal;
1931
+ line-height: var(--sbb-typo-line-height-body-text);
1932
+ letter-spacing: var(--sbb-typo-letter-spacing-body-text);
1933
+ font-size: var(--sbb-text-font-size);
1934
+ color: var(--sbb-table-caption-color, var(--sbb-color-granite));
1935
+ margin-block-start: var(--sbb-table-caption-margin-block-start, var(--sbb-spacing-fixed-4x));
1936
+ text-align: left;
1741
1937
  }
@@ -0,0 +1,24 @@
1
+ import { CSSResultGroup, LitElement, PropertyValues, TemplateResult } from 'lit';
2
+
3
+ declare const SbbTableWrapperElement_base: import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbNegativeMixinType> & typeof LitElement;
4
+ /**
5
+ * Wraps a table to enhance its functionality
6
+ *
7
+ * @slot - Use the unnamed slot to add the table.
8
+ */
9
+ export declare class SbbTableWrapperElement extends SbbTableWrapperElement_base {
10
+ static styles: CSSResultGroup;
11
+ private _resizeObserver;
12
+ private _tableWrapper;
13
+ disconnectedCallback(): void;
14
+ protected firstUpdated(changedProperties: PropertyValues): void;
15
+ private _checkHorizontalScrollbar;
16
+ protected render(): TemplateResult;
17
+ }
18
+ declare global {
19
+ interface HTMLElementTagNameMap {
20
+ 'sbb-table-wrapper': SbbTableWrapperElement;
21
+ }
22
+ }
23
+ export {};
24
+ //# sourceMappingURL=table-wrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-wrapper.d.ts","sourceRoot":"","sources":["../../../../src/elements/table/table-wrapper/table-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;;AAQb;;;;GAIG;AACH,qBACa,sBAAuB,SAAQ,2BAA4B;IACtE,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,OAAO,CAAC,eAAe,CAAsE;IAC7F,OAAO,CAAC,aAAa,CAAe;IAEpB,oBAAoB,IAAI,IAAI;cAKzB,YAAY,CAAC,iBAAiB,EAAE,cAAc,GAAG,IAAI;IAMxE,OAAO,CAAC,yBAAyB;cAOd,MAAM,IAAI,cAAc;CAK5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,mBAAmB,EAAE,sBAAsB,CAAC;KAC7C;CACF"}
@@ -0,0 +1,2 @@
1
+ export * from './table-wrapper/table-wrapper.js';
2
+ //# sourceMappingURL=table-wrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-wrapper.d.ts","sourceRoot":"","sources":["../../../src/elements/table/table-wrapper.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { css as c, LitElement as i, html as p } from "lit";
2
+ import { customElement as h } from "lit/decorators.js";
3
+ import { SbbNegativeMixin as d } from "../core/mixins.js";
4
+ import { AgnosticResizeObserver as n } from "../core/observers.js";
5
+ const v = c`*,:before,:after{box-sizing:border-box}:host{--sbb-table-wrapper-border-radius: var(--sbb-border-radius-4x);display:block}::slotted(.sbb-table){width:100%}.sbb-table-wrapper{overflow:auto;--sbb-scrollbar-thumb-width: .5rem;--sbb-scrollbar-thumb-width-hover: var(--sbb-scrollbar-thumb-width);--sbb-scrollbar-width-firefox: auto;--sbb-scrollbar-color: var(--sbb-color-black-alpha-30);--sbb-scrollbar-color-hover: var(--sbb-color-black-alpha-60);--sbb-scrollbar-track-color: var(--sbb-color-cloud);--sbb-scrollbar-width: var(--sbb-spacing-fixed-3x)}.sbb-table-wrapper::-webkit-scrollbar{width:var(--sbb-scrollbar-width);height:var(--sbb-scrollbar-width);background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-table-wrapper::-webkit-scrollbar-corner{background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-table-wrapper::-webkit-scrollbar-thumb{background-color:var(--sbb-scrollbar-color, currentcolor);border:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;border-radius:var(--sbb-border-radius-4x);background-clip:padding-box}.sbb-table-wrapper::-webkit-scrollbar-thumb:hover{background-color:var(--sbb-scrollbar-color-hover, currentcolor);border-width:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)))}.sbb-table-wrapper::-webkit-scrollbar-button,.sbb-table-wrapper::-webkit-scrollbar-corner{display:none}@supports not selector(::-webkit-scrollbar){.sbb-table-wrapper{scrollbar-width:var(--sbb-scrollbar-width-firefox);scrollbar-color:var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent)}}:host([negative]) .sbb-table-wrapper{--sbb-scrollbar-color: var(--sbb-color-white-alpha-30);--sbb-scrollbar-color-hover: var(--sbb-color-white-alpha-60);--sbb-scrollbar-track-color: var(--sbb-color-iron)}:host([data-has-horizontal-scrollbar]) .sbb-table-wrapper{padding-bottom:var(--sbb-spacing-fixed-1x)}`;
6
+ var w = Object.defineProperty, u = Object.getOwnPropertyDescriptor, m = (b, o, l, a) => {
7
+ for (var r = a > 1 ? void 0 : a ? u(o, l) : o, s = b.length - 1, e; s >= 0; s--)
8
+ (e = b[s]) && (r = (a ? e(o, l, r) : e(r)) || r);
9
+ return a && r && w(o, l, r), r;
10
+ };
11
+ let t = class extends d(i) {
12
+ constructor() {
13
+ super(...arguments), this._resizeObserver = new n(() => this._checkHorizontalScrollbar());
14
+ }
15
+ disconnectedCallback() {
16
+ super.disconnectedCallback(), this._resizeObserver.disconnect();
17
+ }
18
+ firstUpdated(b) {
19
+ super.firstUpdated(b), this._tableWrapper = this.shadowRoot.querySelector(".sbb-table-wrapper"), this._resizeObserver.observe(this._tableWrapper);
20
+ }
21
+ _checkHorizontalScrollbar() {
22
+ this.toggleAttribute(
23
+ "data-has-horizontal-scrollbar",
24
+ this._tableWrapper.scrollWidth > this._tableWrapper.offsetWidth
25
+ );
26
+ }
27
+ render() {
28
+ return p`<div class="sbb-table-wrapper">
29
+ <slot></slot>
30
+ </div>`;
31
+ }
32
+ };
33
+ t.styles = v;
34
+ t = m([
35
+ h("sbb-table-wrapper")
36
+ ], t);
37
+ export {
38
+ t as SbbTableWrapperElement
39
+ };
package/table.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from './table/table-wrapper.js';
2
+ //# sourceMappingURL=table.d.ts.map
package/table.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/elements/table.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC"}
package/table.js ADDED
@@ -0,0 +1 @@
1
+ export * from "./table/table-wrapper.js";