@sbb-esta/lyne-elements 2.5.0 → 2.6.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 (245) hide show
  1. package/autocomplete/autocomplete-base-element.d.ts +19 -21
  2. package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  3. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -1
  4. package/autocomplete-grid/autocomplete-grid-button.js +7 -7
  5. package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.d.ts +2 -2
  6. package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.d.ts.map +1 -1
  7. package/autocomplete.js +145 -136
  8. package/chip/chip/chip.d.ts +32 -0
  9. package/chip/chip/chip.d.ts.map +1 -0
  10. package/chip/chip-group/chip-group.d.ts +100 -0
  11. package/chip/chip-group/chip-group.d.ts.map +1 -0
  12. package/chip/chip-group.d.ts +2 -0
  13. package/chip/chip-group.d.ts.map +1 -0
  14. package/chip/chip-group.js +225 -0
  15. package/chip/chip.d.ts +2 -0
  16. package/chip/chip.d.ts.map +1 -0
  17. package/chip/chip.js +85 -0
  18. package/chip.d.ts +3 -0
  19. package/chip.d.ts.map +1 -0
  20. package/chip.js +2 -0
  21. package/clock/clock.d.ts.map +1 -1
  22. package/clock.js +1 -1
  23. package/core/base-elements/button-base-element.d.ts +5 -0
  24. package/core/base-elements/button-base-element.d.ts.map +1 -1
  25. package/core/base-elements.js +94 -79
  26. package/core/controllers/id-observer-controller.d.ts +21 -0
  27. package/core/controllers/id-observer-controller.d.ts.map +1 -0
  28. package/core/controllers/media-matchers-controller.d.ts.map +1 -1
  29. package/core/controllers.d.ts +2 -1
  30. package/core/controllers.d.ts.map +1 -1
  31. package/core/controllers.js +135 -80
  32. package/core/datetime/native-date-adapter.d.ts.map +1 -1
  33. package/core/datetime.js +8 -3
  34. package/core/dom/find-referenced-element.d.ts +1 -0
  35. package/core/dom/find-referenced-element.d.ts.map +1 -1
  36. package/core/dom/input-element.d.ts +3 -1
  37. package/core/dom/input-element.d.ts.map +1 -1
  38. package/core/dom/platform.d.ts +5 -0
  39. package/core/dom/platform.d.ts.map +1 -1
  40. package/core/dom.js +10 -9
  41. package/core/i18n/i18n.d.ts +3 -0
  42. package/core/i18n/i18n.d.ts.map +1 -1
  43. package/core/i18n.js +135 -117
  44. package/core/mixins/form-associated-input-mixin.d.ts.map +1 -1
  45. package/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
  46. package/core/mixins.js +71 -63
  47. package/core/overlay/overlay-trigger-attributes.d.ts +1 -1
  48. package/core/overlay/overlay-trigger-attributes.d.ts.map +1 -1
  49. package/core/overlay/position.d.ts +1 -1
  50. package/core/overlay/position.d.ts.map +1 -1
  51. package/core/styles/core.scss +89 -24
  52. package/core/styles/image.scss +1 -1
  53. package/core/styles/mixins/table.scss +63 -26
  54. package/core/styles/table.scss +16 -0
  55. package/core/testing/scroll.d.ts +1 -0
  56. package/core/testing/scroll.d.ts.map +1 -1
  57. package/core/testing/wait-for-image-ready.d.ts.map +1 -1
  58. package/core/testing.js +8 -5
  59. package/core.css +90 -34
  60. package/custom-elements.json +2568 -740
  61. package/datepicker/datepicker/datepicker.d.ts +4 -4
  62. package/datepicker/datepicker/datepicker.d.ts.map +1 -1
  63. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts +0 -3
  64. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  65. package/datepicker/datepicker-toggle.js +30 -34
  66. package/datepicker/datepicker.js +103 -105
  67. package/development/autocomplete/autocomplete-base-element.d.ts +19 -21
  68. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  69. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -1
  70. package/development/autocomplete-grid/autocomplete-grid-button.js +3 -3
  71. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.d.ts +2 -2
  72. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.d.ts.map +1 -1
  73. package/development/autocomplete-grid/autocomplete-grid-optgroup.js +1 -1
  74. package/development/autocomplete.js +104 -82
  75. package/development/chip/chip/chip.d.ts +32 -0
  76. package/development/chip/chip/chip.d.ts.map +1 -0
  77. package/development/chip/chip-group/chip-group.d.ts +100 -0
  78. package/development/chip/chip-group/chip-group.d.ts.map +1 -0
  79. package/development/chip/chip-group.d.ts +2 -0
  80. package/development/chip/chip-group.d.ts.map +1 -0
  81. package/development/chip/chip-group.js +349 -0
  82. package/development/chip/chip.d.ts +2 -0
  83. package/development/chip/chip.d.ts.map +1 -0
  84. package/development/chip/chip.js +212 -0
  85. package/development/chip.d.ts +3 -0
  86. package/development/chip.d.ts.map +1 -0
  87. package/development/chip.js +3 -0
  88. package/development/clock/clock.d.ts.map +1 -1
  89. package/development/clock.js +5 -2
  90. package/development/core/base-elements/button-base-element.d.ts +5 -0
  91. package/development/core/base-elements/button-base-element.d.ts.map +1 -1
  92. package/development/core/base-elements.js +38 -10
  93. package/development/core/controllers/id-observer-controller.d.ts +21 -0
  94. package/development/core/controllers/id-observer-controller.d.ts.map +1 -0
  95. package/development/core/controllers/media-matchers-controller.d.ts.map +1 -1
  96. package/development/core/controllers.d.ts +2 -1
  97. package/development/core/controllers.d.ts.map +1 -1
  98. package/development/core/controllers.js +116 -44
  99. package/development/core/datetime/native-date-adapter.d.ts.map +1 -1
  100. package/development/core/datetime.js +6 -2
  101. package/development/core/dom/find-referenced-element.d.ts +1 -0
  102. package/development/core/dom/find-referenced-element.d.ts.map +1 -1
  103. package/development/core/dom/input-element.d.ts +3 -1
  104. package/development/core/dom/input-element.d.ts.map +1 -1
  105. package/development/core/dom/platform.d.ts +5 -0
  106. package/development/core/dom/platform.d.ts.map +1 -1
  107. package/development/core/dom.js +3 -1
  108. package/development/core/i18n/i18n.d.ts +3 -0
  109. package/development/core/i18n/i18n.d.ts.map +1 -1
  110. package/development/core/i18n.js +23 -2
  111. package/development/core/mixins/form-associated-input-mixin.d.ts.map +1 -1
  112. package/development/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
  113. package/development/core/mixins.js +19 -6
  114. package/development/core/overlay/overlay-trigger-attributes.d.ts +1 -1
  115. package/development/core/overlay/overlay-trigger-attributes.d.ts.map +1 -1
  116. package/development/core/overlay/position.d.ts +1 -1
  117. package/development/core/overlay/position.d.ts.map +1 -1
  118. package/development/core/overlay.js +1 -1
  119. package/development/core/testing/scroll.d.ts +1 -0
  120. package/development/core/testing/scroll.d.ts.map +1 -1
  121. package/development/core/testing/wait-for-image-ready.d.ts.map +1 -1
  122. package/development/core/testing.js +6 -2
  123. package/development/datepicker/datepicker/datepicker.d.ts +4 -4
  124. package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
  125. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts +0 -3
  126. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  127. package/development/datepicker/datepicker-toggle.js +4 -12
  128. package/development/datepicker/datepicker.js +46 -43
  129. package/development/dialog/dialog-title/dialog-title.d.ts +0 -1
  130. package/development/dialog/dialog-title/dialog-title.d.ts.map +1 -1
  131. package/development/dialog/dialog-title.js +2 -5
  132. package/development/expansion-panel/expansion-panel/expansion-panel.d.ts +0 -2
  133. package/development/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
  134. package/development/expansion-panel/expansion-panel.js +2 -7
  135. package/development/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
  136. package/development/flip-card/flip-card-details.js +3 -3
  137. package/development/form-field/form-field/form-field.d.ts.map +1 -1
  138. package/development/form-field/form-field.js +13 -146
  139. package/development/header/header/header.d.ts +6 -7
  140. package/development/header/header/header.d.ts.map +1 -1
  141. package/development/header/header.js +45 -34
  142. package/development/menu/menu/menu.d.ts +7 -8
  143. package/development/menu/menu/menu.d.ts.map +1 -1
  144. package/development/menu/menu.js +42 -41
  145. package/development/navigation/navigation/navigation.d.ts +7 -8
  146. package/development/navigation/navigation/navigation.d.ts.map +1 -1
  147. package/development/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
  148. package/development/navigation/navigation-marker.js +3 -3
  149. package/development/navigation/navigation-section/navigation-section.d.ts +8 -9
  150. package/development/navigation/navigation-section/navigation-section.d.ts.map +1 -1
  151. package/development/navigation/navigation-section.js +50 -47
  152. package/development/navigation/navigation.js +42 -40
  153. package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  154. package/development/option/optgroup/optgroup.d.ts +2 -2
  155. package/development/option/optgroup/optgroup.d.ts.map +1 -1
  156. package/development/option/optgroup.js +3 -3
  157. package/development/option/option/option-base-element.d.ts.map +1 -1
  158. package/development/option/option.js +3 -3
  159. package/development/paginator/paginator.js +12 -1
  160. package/development/popover/popover/popover.d.ts +8 -7
  161. package/development/popover/popover/popover.d.ts.map +1 -1
  162. package/development/popover/popover.js +28 -35
  163. package/development/radio-button/radio-button-group/radio-button-group.d.ts +0 -1
  164. package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  165. package/development/radio-button/radio-button-group.js +3 -5
  166. package/development/select/select.d.ts +6 -3
  167. package/development/select/select.d.ts.map +1 -1
  168. package/development/select.js +20 -18
  169. package/development/selection-expansion-panel/selection-expansion-panel.d.ts +0 -2
  170. package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  171. package/development/selection-expansion-panel.js +2 -7
  172. package/development/sidebar/sidebar/sidebar.d.ts.map +1 -1
  173. package/development/sidebar/sidebar.js +3 -3
  174. package/development/stepper/step/step.d.ts +13 -1
  175. package/development/stepper/step/step.d.ts.map +1 -1
  176. package/development/stepper/step-label.js +2 -2
  177. package/development/stepper/step.js +21 -6
  178. package/development/stepper/stepper/stepper.d.ts +1 -0
  179. package/development/stepper/stepper/stepper.d.ts.map +1 -1
  180. package/development/stepper/stepper.js +5 -1
  181. package/development/table/table-wrapper.js +2 -1
  182. package/development/time-input/time-input.d.ts +6 -8
  183. package/development/time-input/time-input.d.ts.map +1 -1
  184. package/development/time-input.js +42 -44
  185. package/dialog/dialog-title/dialog-title.d.ts +0 -1
  186. package/dialog/dialog-title/dialog-title.d.ts.map +1 -1
  187. package/dialog/dialog-title.js +18 -21
  188. package/expansion-panel/expansion-panel/expansion-panel.d.ts +0 -2
  189. package/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
  190. package/expansion-panel/expansion-panel.js +53 -56
  191. package/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
  192. package/flip-card/flip-card-details.js +8 -8
  193. package/form-field/form-field/form-field.d.ts.map +1 -1
  194. package/form-field/form-field.js +103 -98
  195. package/header/header/header.d.ts +6 -7
  196. package/header/header/header.d.ts.map +1 -1
  197. package/header/header.js +72 -70
  198. package/index.d.ts +4 -0
  199. package/index.js +4 -0
  200. package/menu/menu/menu.d.ts +7 -8
  201. package/menu/menu/menu.d.ts.map +1 -1
  202. package/menu/menu.js +73 -73
  203. package/navigation/navigation/navigation.d.ts +7 -8
  204. package/navigation/navigation/navigation.d.ts.map +1 -1
  205. package/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
  206. package/navigation/navigation-marker.js +4 -4
  207. package/navigation/navigation-section/navigation-section.d.ts +8 -9
  208. package/navigation/navigation-section/navigation-section.d.ts.map +1 -1
  209. package/navigation/navigation-section.js +75 -77
  210. package/navigation/navigation.js +70 -70
  211. package/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  212. package/option/optgroup/optgroup.d.ts +2 -2
  213. package/option/optgroup/optgroup.d.ts.map +1 -1
  214. package/option/optgroup.js +13 -13
  215. package/option/option/option-base-element.d.ts.map +1 -1
  216. package/option/option.js +2 -2
  217. package/package.json +16 -1
  218. package/paginator/paginator.js +44 -44
  219. package/popover/popover/popover.d.ts +8 -7
  220. package/popover/popover/popover.d.ts.map +1 -1
  221. package/popover/popover.js +73 -73
  222. package/radio-button/radio-button-group/radio-button-group.d.ts +0 -1
  223. package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  224. package/radio-button/radio-button-group.js +8 -8
  225. package/select/select.d.ts +6 -3
  226. package/select/select.d.ts.map +1 -1
  227. package/select.js +73 -73
  228. package/selection-expansion-panel/selection-expansion-panel.d.ts +0 -2
  229. package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  230. package/selection-expansion-panel.js +10 -13
  231. package/sidebar/sidebar/sidebar.d.ts.map +1 -1
  232. package/sidebar/sidebar.js +2 -2
  233. package/standard-theme.css +166 -79
  234. package/stepper/step/step.d.ts +13 -1
  235. package/stepper/step/step.d.ts.map +1 -1
  236. package/stepper/step-label.js +1 -1
  237. package/stepper/step.js +34 -23
  238. package/stepper/stepper/stepper.d.ts +1 -0
  239. package/stepper/stepper/stepper.d.ts.map +1 -1
  240. package/stepper/stepper.js +19 -16
  241. package/table/table-wrapper.js +4 -4
  242. package/table.css +75 -44
  243. package/time-input/time-input.d.ts +6 -8
  244. package/time-input/time-input.d.ts.map +1 -1
  245. package/time-input.js +66 -73
@@ -2,36 +2,36 @@ var C = (i) => {
2
2
  throw TypeError(i);
3
3
  };
4
4
  var H = (i, r, a) => r.has(i) || C("Cannot " + a);
5
- var g = (i, r, a) => (H(i, r, "read from private field"), a ? a.call(i) : r.get(i)), x = (i, r, a) => r.has(i) ? C("Cannot add the same private member more than once") : r instanceof WeakSet ? r.add(i) : r.set(i, a), h = (i, r, a, n) => (H(i, r, "write to private field"), n ? n.call(i, a) : r.set(i, a), a);
5
+ var g = (i, r, a) => (H(i, r, "read from private field"), a ? a.call(i) : r.get(i)), z = (i, r, a) => r.has(i) ? C("Cannot add the same private member more than once") : r instanceof WeakSet ? r.add(i) : r.set(i, a), h = (i, r, a, n) => (H(i, r, "write to private field"), n ? n.call(i, a) : r.set(i, a), a);
6
6
  import { __esDecorate as c, __runInitializers as d } from "tslib";
7
- import { IntersectionController as R } from "@lit-labs/observers/intersection-controller.js";
7
+ import { IntersectionController as D } from "@lit-labs/observers/intersection-controller.js";
8
8
  import { css as U, LitElement as q, html as B } from "lit";
9
9
  import { customElement as N, property as _ } from "lit/decorators.js";
10
10
  import { isArrowKeyPressed as $, getNextElementIndex as j } from "../core/a11y.js";
11
11
  import { forceType as K } from "../core/decorators.js";
12
12
  import { breakpoints as P, isLean as V, isBreakpoint as W } from "../core/dom.js";
13
13
  import { SbbHydrationMixin as G } from "../core/mixins.js";
14
- const J = U`*,:before,:after{box-sizing:border-box}:host{--sbb-stepper-orientation: row;--sbb-stepper-border-width: var(--sbb-border-width-1x);--sbb-stepper-marker-size: 0;--sbb-stepper-marker-width: var(--sbb-border-width-3x);--sbb-stepper-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-6x) );--sbb-stepper-marker-color: var(--sbb-color-charcoal);display:block;position:relative;counter-reset:step-label}@media (forced-colors: active){:host{--sbb-stepper-marker-color: ButtonText}}:host([data-disable-animation]){--sbb-disable-animation-duration: 0s}:host([orientation=vertical]){--sbb-stepper-orientation: column}.sbb-stepper{width:100%}.sbb-stepper__labels{display:flex;flex-direction:var(--sbb-stepper-orientation);position:relative;justify-content:space-between;margin-block-end:var(--sbb-spacing-responsive-m)}.sbb-stepper__labels:before{content:"";position:absolute;inset-inline-start:calc(var(--sbb-stepper-border-width) * -1);background-color:var(--sbb-stepper-marker-color)}:host([orientation=horizontal]) .sbb-stepper__labels{gap:var(--sbb-spacing-fixed-4x);padding-block-end:var(--sbb-spacing-fixed-4x);border-block-end:var(--sbb-stepper-border-width) solid var(--sbb-color-cloud)}:host([orientation=horizontal]) .sbb-stepper__labels:before{inset-block-end:calc(var(--sbb-stepper-border-width) * -1);height:var(--sbb-stepper-marker-width);width:var(--sbb-stepper-marker-size);transition:width var(--sbb-stepper-animation-duration) var(--sbb-animation-easing)}:host([orientation=vertical]) .sbb-stepper__labels{padding-inline-start:var(--sbb-spacing-fixed-4x);border-inline-start:var(--sbb-stepper-border-width) solid var(--sbb-color-cloud)}:host([orientation=vertical]) .sbb-stepper__labels:before{inset-block-start:0;width:var(--sbb-stepper-marker-width);height:var(--sbb-stepper-marker-size);transition:height var(--sbb-stepper-animation-duration) var(--sbb-animation-easing)}.sbb-stepper__steps{position:relative}:host([orientation=horizontal]) .sbb-stepper__steps{height:var(--sbb-stepper-content-height);transition:height var(--sbb-stepper-animation-duration) var(--sbb-animation-easing)}::slotted(sbb-step-label):before{content:counter(step-label);counter-increment:step-label}`, D = 150;
14
+ const J = U`*,:before,:after{box-sizing:border-box}:host{--sbb-stepper-orientation: row;--sbb-stepper-border-width: var(--sbb-border-width-1x);--sbb-stepper-marker-size: 0;--sbb-stepper-marker-width: var(--sbb-border-width-3x);--sbb-stepper-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-6x) );--sbb-stepper-marker-color: var(--sbb-color-charcoal);display:block;position:relative;counter-reset:step-label}@media (forced-colors: active){:host{--sbb-stepper-marker-color: ButtonText}}:host([data-disable-animation]){--sbb-disable-animation-duration: 0s}:host([orientation=vertical]){--sbb-stepper-orientation: column}.sbb-stepper{width:100%}.sbb-stepper__labels{display:flex;flex-direction:var(--sbb-stepper-orientation);position:relative;justify-content:space-between;margin-block-end:var(--sbb-spacing-responsive-m)}.sbb-stepper__labels:before{content:"";position:absolute;inset-inline-start:calc(var(--sbb-stepper-border-width) * -1);background-color:var(--sbb-stepper-marker-color)}:host([orientation=horizontal]) .sbb-stepper__labels{gap:var(--sbb-spacing-fixed-4x);padding-block-end:var(--sbb-spacing-fixed-4x);border-block-end:var(--sbb-stepper-border-width) solid var(--sbb-color-cloud)}:host([orientation=horizontal]) .sbb-stepper__labels:before{inset-block-end:calc(var(--sbb-stepper-border-width) * -1);height:var(--sbb-stepper-marker-width);width:var(--sbb-stepper-marker-size);transition:width var(--sbb-stepper-animation-duration) var(--sbb-animation-easing)}:host([orientation=vertical]) .sbb-stepper__labels{padding-inline-start:var(--sbb-spacing-fixed-4x);border-inline-start:var(--sbb-stepper-border-width) solid var(--sbb-color-cloud)}:host([orientation=vertical]) .sbb-stepper__labels:before{inset-block-start:0;width:var(--sbb-stepper-marker-width);height:var(--sbb-stepper-marker-size);transition:height var(--sbb-stepper-animation-duration) var(--sbb-animation-easing)}.sbb-stepper__steps{position:relative}:host([orientation=horizontal]) .sbb-stepper__steps{height:var(--sbb-stepper-content-height);transition:height var(--sbb-stepper-animation-duration) var(--sbb-animation-easing)}::slotted(sbb-step-label):before{content:counter(step-label);counter-increment:step-label}`, R = 150;
15
15
  let le = (() => {
16
16
  var b, p, u, l;
17
- let i = [N("sbb-stepper")], r, a = [], n, v = G(q), f = [], z, k = [], S = [], y, I, w = [], E = [], A, F = [], O = [], L, T;
18
- return l = class extends v {
17
+ let i = [N("sbb-stepper")], r, a = [], n, x = G(q), f = [], v, k = [], S = [], y, I, w = [], E = [], A, F = [], L = [], O, T;
18
+ return l = class extends x {
19
19
  constructor() {
20
20
  var e;
21
21
  super();
22
- x(this, b);
23
- x(this, p);
24
- x(this, u);
25
- this._observer = (d(this, f), new R(this, {
22
+ z(this, b);
23
+ z(this, p);
24
+ z(this, u);
25
+ this._observer = (d(this, f), new D(this, {
26
26
  target: null,
27
27
  callback: (t) => {
28
28
  t.forEach((s) => {
29
29
  s.intersectionRatio > 0 && (this._setStepperHeight(this.selected), this._setMarkerSize());
30
30
  });
31
31
  }
32
- })), h(this, b, d(this, k, !1)), this._horizontalFrom = (d(this, S), null), h(this, p, d(this, w, "horizontal")), h(this, u, (d(this, E), d(this, F, V() ? "s" : "m"))), this._loaded = (d(this, O), !1), this._resizeObserverTimeout = null, this._onStepperResize = () => {
33
- this._checkOrientation(), this._setStepperHeight(this.selected), clearTimeout(this._resizeObserverTimeout), this.toggleAttribute("data-disable-animation", !0), this._resizeObserverTimeout = setTimeout(() => this.toggleAttribute("data-disable-animation", !1), D);
34
- }, (e = this.addEventListener) == null || e.call(this, "keydown", (t) => this._handleKeyDown(t));
32
+ })), h(this, b, d(this, k, !1)), this._horizontalFrom = (d(this, S), null), h(this, p, d(this, w, "horizontal")), h(this, u, (d(this, E), d(this, F, V() ? "s" : "m"))), this._loaded = (d(this, L), !1), this._resizeObserverTimeout = null, this._onStepperResize = () => {
33
+ this._checkOrientation(), this._setStepperHeight(this.selected), clearTimeout(this._resizeObserverTimeout), this.toggleAttribute("data-disable-animation", !0), this._resizeObserverTimeout = setTimeout(() => this.toggleAttribute("data-disable-animation", !1), R);
34
+ }, (e = this.addEventListener) == null || e.call(this, "keydown", (t) => this._handleKeyDown(t)), this.addEventListener("resizeChange", (t) => this._onSelectedStepResize(t));
35
35
  }
36
36
  /** If set to true, only the current and previous labels can be clicked and selected. */
37
37
  get linear() {
@@ -158,6 +158,9 @@ let le = (() => {
158
158
  }
159
159
  return e + this.selected.label.offsetHeight + parseFloat(getComputedStyle(this).getPropertyValue("--sbb-spacing-fixed-6x")) * 16 * this.selectedIndex;
160
160
  }
161
+ _onSelectedStepResize(e) {
162
+ this._setStepperHeight(e.target);
163
+ }
161
164
  _configure() {
162
165
  const e = this.steps;
163
166
  e.forEach((t) => t.configure(this._loaded)), e.filter((t) => t.label).map((t) => t.label).forEach((t, s, o) => {
@@ -188,7 +191,7 @@ let le = (() => {
188
191
  super.disconnectedCallback(), window.removeEventListener("resize", this._onStepperResize);
189
192
  }
190
193
  async firstUpdated(e) {
191
- super.firstUpdated(e), await this.updateComplete, this._loaded = !0, this.selectedIndex = this.linear ? 0 : Number(this.getAttribute("selected-index")) || 0, this._observer.observe(this), this._checkOrientation(), setTimeout(() => this.toggleAttribute("data-disable-animation", !1), D);
194
+ super.firstUpdated(e), await this.updateComplete, this._loaded = !0, this.selectedIndex = this.linear ? 0 : Number(this.getAttribute("selected-index")) || 0, this._observer.observe(this), this._checkOrientation(), setTimeout(() => this.toggleAttribute("data-disable-animation", !1), R);
192
195
  }
193
196
  willUpdate(e) {
194
197
  super.willUpdate(e), e.has("orientation") && !this.horizontalFrom && (this._updateLabels(), this._setMarkerSize()), e.has("linear") && this._loaded && this._configureLinearMode(), e.has("size") && (this._proxySize(), this._setMarkerSize());
@@ -220,8 +223,8 @@ let le = (() => {
220
223
  `;
221
224
  }
222
225
  }, b = new WeakMap(), p = new WeakMap(), u = new WeakMap(), n = l, (() => {
223
- const e = typeof Symbol == "function" && Symbol.metadata ? Object.create(v[Symbol.metadata] ?? null) : void 0;
224
- z = [K(), _({ type: Boolean })], y = [_({ attribute: "horizontal-from", reflect: !0 })], I = [_({ reflect: !0 })], A = [_({ reflect: !0 })], L = [_({ attribute: !1 })], T = [_({ attribute: "selected-index", type: Number })], c(l, null, z, { kind: "accessor", name: "linear", static: !1, private: !1, access: { has: (t) => "linear" in t, get: (t) => t.linear, set: (t, s) => {
226
+ const e = typeof Symbol == "function" && Symbol.metadata ? Object.create(x[Symbol.metadata] ?? null) : void 0;
227
+ v = [K(), _({ type: Boolean })], y = [_({ attribute: "horizontal-from", reflect: !0 })], I = [_({ reflect: !0 })], A = [_({ reflect: !0 })], O = [_({ attribute: !1 })], T = [_({ attribute: "selected-index", type: Number })], c(l, null, v, { kind: "accessor", name: "linear", static: !1, private: !1, access: { has: (t) => "linear" in t, get: (t) => t.linear, set: (t, s) => {
225
228
  t.linear = s;
226
229
  } }, metadata: e }, k, S), c(l, null, y, { kind: "setter", name: "horizontalFrom", static: !1, private: !1, access: { has: (t) => "horizontalFrom" in t, set: (t, s) => {
227
230
  t.horizontalFrom = s;
@@ -229,7 +232,7 @@ let le = (() => {
229
232
  t.orientation = s;
230
233
  } }, metadata: e }, w, E), c(l, null, A, { kind: "accessor", name: "size", static: !1, private: !1, access: { has: (t) => "size" in t, get: (t) => t.size, set: (t, s) => {
231
234
  t.size = s;
232
- } }, metadata: e }, F, O), c(l, null, L, { kind: "setter", name: "selected", static: !1, private: !1, access: { has: (t) => "selected" in t, set: (t, s) => {
235
+ } }, metadata: e }, F, L), c(l, null, O, { kind: "setter", name: "selected", static: !1, private: !1, access: { has: (t) => "selected" in t, set: (t, s) => {
233
236
  t.selected = s;
234
237
  } }, metadata: e }, null, f), c(l, null, T, { kind: "setter", name: "selectedIndex", static: !1, private: !1, access: { has: (t) => "selectedIndex" in t, set: (t, s) => {
235
238
  t.selectedIndex = s;
@@ -1,12 +1,12 @@
1
1
  import { __esDecorate as s, __runInitializers as c } from "tslib";
2
2
  import { ResizeController as i } from "@lit-labs/observers/resize-controller.js";
3
- import { css as p, LitElement as d, html as h } from "lit";
3
+ import { css as p, LitElement as h, html as d } from "lit";
4
4
  import { customElement as n } from "lit/decorators.js";
5
5
  import { SbbNegativeMixin as u } from "../core/mixins.js";
6
- const w = p`*,: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
+ const w = p`*,: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{height:100%;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)}`;
7
7
  let _ = (() => {
8
8
  var b;
9
- let e = [n("sbb-table-wrapper")], l, t = [], r, o = u(d);
9
+ let e = [n("sbb-table-wrapper")], l, t = [], r, o = u(h);
10
10
  return b = class extends o {
11
11
  constructor() {
12
12
  super(...arguments), this._resizeObserver = new i(this, {
@@ -22,7 +22,7 @@ let _ = (() => {
22
22
  this.toggleAttribute("data-has-horizontal-scrollbar", this._tableWrapper.scrollWidth > this._tableWrapper.offsetWidth);
23
23
  }
24
24
  render() {
25
- return h`<div class="sbb-table-wrapper">
25
+ return d`<div class="sbb-table-wrapper">
26
26
  <slot></slot>
27
27
  </div>`;
28
28
  }
package/table.css CHANGED
@@ -7,10 +7,10 @@
7
7
  --sbb-table-cell-padding-block: var(--sbb-spacing-responsive-xxxs);
8
8
  --sbb-table-cell-padding-inline: var(--sbb-spacing-fixed-4x);
9
9
  }
10
- .sbb-table tbody tr:nth-child(odd),
11
- .sbb-table-m tbody tr:nth-child(odd),
12
- .sbb-table-s tbody tr:nth-child(odd),
13
- .sbb-table-xs tbody tr:nth-child(odd) {
10
+ .sbb-table tbody tr:nth-child(odd) :is(th, td),
11
+ .sbb-table-m tbody tr:nth-child(odd) :is(th, td),
12
+ .sbb-table-s tbody tr:nth-child(odd) :is(th, td),
13
+ .sbb-table-xs tbody tr:nth-child(odd) :is(th, td) {
14
14
  background-color: var(--sbb-table-row-striped-color);
15
15
  }
16
16
  .sbb-table,
@@ -25,14 +25,35 @@
25
25
  --sbb-table-color: inherit;
26
26
  --sbb-table-caption-color: var(--sbb-color-granite);
27
27
  --sbb-table-caption-margin-block-start: var(--sbb-spacing-fixed-4x);
28
- background-color: var(--sbb-table-background-color);
29
- border: var(--sbb-table-border);
30
- border-radius: var(--sbb-table-border-radius);
31
28
  border-spacing: 0;
32
29
  caption-side: bottom;
33
30
  color: var(--sbb-table-color);
34
31
  table-layout: auto;
35
32
  }
33
+ .sbb-table thead > tr:last-of-type > th,
34
+ .sbb-table-m thead > tr:last-of-type > th,
35
+ .sbb-table-s thead > tr:last-of-type > th,
36
+ .sbb-table-xs thead > tr:last-of-type > th {
37
+ border-bottom: var(--sbb-table-border);
38
+ }
39
+ .sbb-table thead > tr:first-of-type > th,
40
+ .sbb-table-m thead > tr:first-of-type > th,
41
+ .sbb-table-s thead > tr:first-of-type > th,
42
+ .sbb-table-xs thead > tr:first-of-type > th {
43
+ border-block-start: var(--sbb-table-border);
44
+ }
45
+ .sbb-table thead > tr:first-of-type > th:first-of-type,
46
+ .sbb-table-m thead > tr:first-of-type > th:first-of-type,
47
+ .sbb-table-s thead > tr:first-of-type > th:first-of-type,
48
+ .sbb-table-xs thead > tr:first-of-type > th:first-of-type {
49
+ border-start-start-radius: var(--sbb-table-border-radius);
50
+ }
51
+ .sbb-table thead > tr:first-of-type > th:last-of-type,
52
+ .sbb-table-m thead > tr:first-of-type > th:last-of-type,
53
+ .sbb-table-s thead > tr:first-of-type > th:last-of-type,
54
+ .sbb-table-xs thead > tr:first-of-type > th:last-of-type {
55
+ border-start-end-radius: var(--sbb-table-border-radius);
56
+ }
36
57
  .sbb-table thead > tr > th,
37
58
  .sbb-table-m thead > tr > th,
38
59
  .sbb-table-s thead > tr > th,
@@ -44,23 +65,17 @@
44
65
  letter-spacing: var(--sbb-typo-letter-spacing-body-text);
45
66
  font-size: var(--sbb-text-font-size);
46
67
  font-weight: bold;
47
- border-bottom: var(--sbb-table-border);
48
- border-right: var(--sbb-table-border);
68
+ background-color: var(--sbb-table-background-color);
69
+ border-inline-end: var(--sbb-table-border);
49
70
  padding-block: var(--sbb-table-header-padding-block);
50
71
  padding-inline: var(--sbb-table-header-padding-inline);
51
72
  text-align: left;
52
73
  }
53
- .sbb-table thead > tr > th:last-of-type,
54
- .sbb-table-m thead > tr > th:last-of-type,
55
- .sbb-table-s thead > tr > th:last-of-type,
56
- .sbb-table-xs thead > tr > th:last-of-type {
57
- border-right: none;
58
- }
59
- .sbb-table tbody > tr:first-of-type td,
60
- .sbb-table-m tbody > tr:first-of-type td,
61
- .sbb-table-s tbody > tr:first-of-type td,
62
- .sbb-table-xs tbody > tr:first-of-type td {
63
- border-top: none;
74
+ .sbb-table thead > tr > th:first-of-type,
75
+ .sbb-table-m thead > tr > th:first-of-type,
76
+ .sbb-table-s thead > tr > th:first-of-type,
77
+ .sbb-table-xs thead > tr > th:first-of-type {
78
+ border-inline-start: var(--sbb-table-border);
64
79
  }
65
80
  .sbb-table tbody > tr > td,
66
81
  .sbb-table-m tbody > tr > td,
@@ -72,16 +87,29 @@
72
87
  line-height: var(--sbb-typo-line-height-body-text);
73
88
  letter-spacing: var(--sbb-typo-letter-spacing-body-text);
74
89
  font-size: var(--sbb-text-font-size);
75
- border-top: var(--sbb-table-border);
76
- border-right: var(--sbb-table-border);
90
+ background-color: var(--sbb-table-background-color);
91
+ border-block-end: var(--sbb-table-border);
92
+ border-inline-end: var(--sbb-table-border);
77
93
  padding-block: var(--sbb-table-cell-padding-block);
78
94
  padding-inline: var(--sbb-table-cell-padding-inline);
79
95
  }
80
- .sbb-table tbody > tr > td:last-of-type,
81
- .sbb-table-m tbody > tr > td:last-of-type,
82
- .sbb-table-s tbody > tr > td:last-of-type,
83
- .sbb-table-xs tbody > tr > td:last-of-type {
84
- border-right: none;
96
+ .sbb-table tbody > tr > td:first-of-type,
97
+ .sbb-table-m tbody > tr > td:first-of-type,
98
+ .sbb-table-s tbody > tr > td:first-of-type,
99
+ .sbb-table-xs tbody > tr > td:first-of-type {
100
+ border-inline-start: var(--sbb-table-border);
101
+ }
102
+ .sbb-table tbody > tr:last-of-type > td:first-of-type,
103
+ .sbb-table-m tbody > tr:last-of-type > td:first-of-type,
104
+ .sbb-table-s tbody > tr:last-of-type > td:first-of-type,
105
+ .sbb-table-xs tbody > tr:last-of-type > td:first-of-type {
106
+ border-end-start-radius: var(--sbb-table-border-radius);
107
+ }
108
+ .sbb-table tbody > tr:last-of-type > td:last-of-type,
109
+ .sbb-table-m tbody > tr:last-of-type > td:last-of-type,
110
+ .sbb-table-s tbody > tr:last-of-type > td:last-of-type,
111
+ .sbb-table-xs tbody > tr:last-of-type > td:last-of-type {
112
+ border-end-end-radius: var(--sbb-table-border-radius);
85
113
  }
86
114
  .sbb-table caption,
87
115
  .sbb-table-m caption,
@@ -144,12 +172,12 @@ sbb-table-wrapper[negative] .sbb-table,
144
172
  --sbb-table-caption-color: var(--sbb-color-cement);
145
173
  }
146
174
 
147
- .sbb-table--striped tbody tr:nth-child(odd) {
175
+ .sbb-table--striped tbody tr:nth-child(odd) :is(th, td) {
148
176
  background-color: var(--sbb-table-row-striped-color);
149
177
  }
150
178
 
151
- .sbb-table--unstriped tbody tr:nth-child(odd) {
152
- background-color: unset;
179
+ .sbb-table--unstriped tbody tr:nth-child(odd) :is(th, td) {
180
+ background-color: var(--sbb-table-background-color);
153
181
  }
154
182
 
155
183
  .sbb-table--theme-iron {
@@ -162,6 +190,10 @@ sbb-table-wrapper[negative] .sbb-table,
162
190
  --sbb-table-cell-color: var(--sbb-color-cloud);
163
191
  }
164
192
 
193
+ .sbb-table-header-row:last-of-type > th {
194
+ border-bottom: var(--sbb-table-border);
195
+ }
196
+
165
197
  .sbb-table-header-cell {
166
198
  --sbb-text-font-size: var(--sbb-font-size-text-xs);
167
199
  font-family: var(--sbb-typo-font-family);
@@ -170,19 +202,12 @@ sbb-table-wrapper[negative] .sbb-table,
170
202
  letter-spacing: var(--sbb-typo-letter-spacing-body-text);
171
203
  font-size: var(--sbb-text-font-size);
172
204
  font-weight: bold;
173
- border-bottom: var(--sbb-table-border);
174
- border-right: var(--sbb-table-border);
205
+ background-color: var(--sbb-table-background-color);
206
+ border-inline-end: var(--sbb-table-border);
175
207
  padding-block: var(--sbb-table-header-padding-block);
176
208
  padding-inline: var(--sbb-table-header-padding-inline);
177
209
  text-align: left;
178
210
  }
179
- .sbb-table-header-cell:last-of-type {
180
- border-right: none;
181
- }
182
-
183
- .sbb-table-data-row:first-of-type td {
184
- border-top: none;
185
- }
186
211
 
187
212
  .sbb-table-row--striped {
188
213
  background-color: var(--sbb-table-row-striped-color);
@@ -195,14 +220,12 @@ sbb-table-wrapper[negative] .sbb-table,
195
220
  line-height: var(--sbb-typo-line-height-body-text);
196
221
  letter-spacing: var(--sbb-typo-letter-spacing-body-text);
197
222
  font-size: var(--sbb-text-font-size);
198
- border-top: var(--sbb-table-border);
199
- border-right: var(--sbb-table-border);
223
+ background-color: var(--sbb-table-background-color);
224
+ border-block-end: var(--sbb-table-border);
225
+ border-inline-end: var(--sbb-table-border);
200
226
  padding-block: var(--sbb-table-cell-padding-block);
201
227
  padding-inline: var(--sbb-table-cell-padding-inline);
202
228
  }
203
- .sbb-table-data-cell:last-of-type {
204
- border-right: none;
205
- }
206
229
 
207
230
  .sbb-table-caption {
208
231
  --sbb-text-font-size: var(--sbb-font-size-text-xs);
@@ -216,6 +239,14 @@ sbb-table-wrapper[negative] .sbb-table,
216
239
  text-align: left;
217
240
  }
218
241
 
242
+ .sbb-table-filter {
243
+ padding-block-start: 0 !important;
244
+ }
245
+
246
+ .sbb-table-sticky {
247
+ position: sticky !important;
248
+ }
249
+
219
250
  html.sbb-lean .sbb-table:not(.sbb-table-xs, .sbb-table-m) {
220
251
  --sbb-table-header-padding-block: var(--sbb-spacing-fixed-1x);
221
252
  --sbb-table-header-padding-inline: var(--sbb-spacing-fixed-2x);
@@ -1,4 +1,4 @@
1
- import { CSSResultGroup, PropertyValues, TemplateResult, LitElement } from 'lit';
1
+ import { CSSResultGroup, LitElement, PropertyDeclaration, TemplateResult } from 'lit';
2
2
  import { SbbDateLike } from '../core/interfaces.js';
3
3
  /**
4
4
  * * Combined with a native input, it displays the input's value as a formatted time.
@@ -13,9 +13,7 @@ export declare class SbbTimeInputElement extends LitElement {
13
13
  readonly validationChange: "validationChange";
14
14
  };
15
15
  /** Reference of the native input connected to the datepicker. */
16
- set input(value: string | HTMLElement | null);
17
- get input(): string | HTMLElement | null;
18
- private _input;
16
+ accessor input: string | HTMLElement | null;
19
17
  private accessor _inputElement;
20
18
  /** Formats the current input's value as date. */
21
19
  set valueAsDate(date: SbbDateLike | null);
@@ -27,13 +25,13 @@ export declare class SbbTimeInputElement extends LitElement {
27
25
  /** Emits whenever the internal validation state changes. */
28
26
  private _validationChange;
29
27
  private _statusContainer;
30
- private _abortController;
28
+ private _inputAbortController;
29
+ private _inputIdReferenceController;
31
30
  private _language;
32
31
  connectedCallback(): void;
33
32
  disconnectedCallback(): void;
34
- firstUpdated(_changedProperties: PropertyValues): void;
35
- private _setupInputElement;
36
- private _registerInputElement;
33
+ requestUpdate(name?: PropertyKey, oldValue?: unknown, options?: PropertyDeclaration): void;
34
+ private _configureInputElement;
37
35
  /**
38
36
  * Updates `value` and `valueAsDate`. The direct update on the `_inputElement` is required
39
37
  * to force the input change when the typed value is the same of the current one.
@@ -1 +1 @@
1
- {"version":3,"file":"time-input.d.ts","sourceRoot":"","sources":["../../../src/elements/time-input/time-input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAQvC,OAAO,KAAK,EAAE,WAAW,EAA4B,MAAM,uBAAuB,CAAC;AAanF;;;;;GAKG;AACH,qBAEM,mBAAoB,SAAQ,UAAU;IAC1C,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;;MAGlB;IAEX,iEAAiE;IACjE,IACW,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,EAGlD;IACD,IAAW,KAAK,IAAI,MAAM,GAAG,WAAW,GAAG,IAAI,CAE9C;IACD,OAAO,CAAC,MAAM,CAAqC;IAE1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;IAExE,iDAAiD;IACjD,IACW,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,EAc9C;IACD,IAAW,WAAW,IAAI,IAAI,GAAG,IAAI,CAEpC;IAED;;OAEG;IACH,OAAO,CAAC,UAAU,CAGf;IAEH,4DAA4D;IAC5D,OAAO,CAAC,iBAAiB,CAOvB;IAEF,OAAO,CAAC,gBAAgB,CAAwB;IAChD,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,SAAS,CAAmC;IAEpC,iBAAiB,IAAI,IAAI;IAMzB,oBAAoB,IAAI,IAAI;IAK5B,YAAY,CAAC,kBAAkB,EAAE,cAAc,GAAG,IAAI;IAMtE,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,qBAAqB;IA8C7B;;;OAGG;IACH,OAAO,CAAC,YAAY;IA4BpB,8BAA8B;IAC9B,OAAO,CAAC,WAAW;IAKnB,yDAAyD;IACzD,OAAO,CAAC,YAAY;IAMpB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAQ1B,uFAAuF;IACvF,OAAO,CAAC,YAAY;IAIpB,kDAAkD;IAClD,OAAO,CAAC,WAAW;IAoBnB,qDAAqD;IACrD,OAAO,CAAC,kBAAkB;IA6B1B,OAAO,CAAC,2BAA2B;cAWhB,MAAM,IAAI,cAAc;CAQ5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,gBAAgB,EAAE,mBAAmB,CAAC;KACvC;CACF"}
1
+ {"version":3,"file":"time-input.d.ts","sourceRoot":"","sources":["../../../src/elements/time-input/time-input.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAGnB,UAAU,EACV,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAOb,OAAO,KAAK,EAAE,WAAW,EAA4B,MAAM,uBAAuB,CAAC;AAanF;;;;;GAKG;AACH,qBAEM,mBAAoB,SAAQ,UAAU;IAC1C,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;;MAGlB;IAGX,iEAAiE;IACjE,SACgB,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAQ;IAEjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;IAExE,iDAAiD;IACjD,IACW,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,EAc9C;IACD,IAAW,WAAW,IAAI,IAAI,GAAG,IAAI,CAEpC;IAED;;OAEG;IACH,OAAO,CAAC,UAAU,CAGf;IAEH,4DAA4D;IAC5D,OAAO,CAAC,iBAAiB,CAOvB;IAEF,OAAO,CAAC,gBAAgB,CAAwB;IAChD,OAAO,CAAC,qBAAqB,CAAyB;IACtD,OAAO,CAAC,2BAA2B,CAA+C;IAClF,OAAO,CAAC,SAAS,CAAmC;IAEpC,iBAAiB,IAAI,IAAI;IAMzB,oBAAoB,IAAI,IAAI;IAM5B,aAAa,CAC3B,IAAI,CAAC,EAAE,WAAW,EAClB,QAAQ,CAAC,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI;IAQP,OAAO,CAAC,sBAAsB;IA4D9B;;;OAGG;IACH,OAAO,CAAC,YAAY;IA4BpB,8BAA8B;IAC9B,OAAO,CAAC,WAAW;IAKnB,yDAAyD;IACzD,OAAO,CAAC,YAAY;IAMpB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAQ1B,uFAAuF;IACvF,OAAO,CAAC,YAAY;IAIpB,kDAAkD;IAClD,OAAO,CAAC,WAAW;IAoBnB,qDAAqD;IACrD,OAAO,CAAC,kBAAkB;IA6B1B,OAAO,CAAC,2BAA2B;cAWhB,MAAM,IAAI,cAAc;CAQ5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,gBAAgB,EAAE,mBAAmB,CAAC;KACvC;CACF"}
package/time-input.js CHANGED
@@ -1,44 +1,45 @@
1
- var v = (n) => {
1
+ var T = (n) => {
2
2
  throw TypeError(n);
3
3
  };
4
- var w = (n, s, a) => s.has(n) || v("Cannot " + a);
5
- var I = (n, s, a) => (w(n, s, "read from private field"), a ? a.call(n) : s.get(n)), A = (n, s, a) => s.has(n) ? v("Cannot add the same private member more than once") : s instanceof WeakSet ? s.add(n) : s.set(n, a), c = (n, s, a, l) => (w(n, s, "write to private field"), l ? l.call(n, a) : s.set(n, a), a);
6
- import { __runInitializers as h, __esDecorate as m } from "tslib";
7
- import { css as S, LitElement as O, html as k } from "lit";
8
- import { customElement as L, property as y, state as x } from "lit/decorators.js";
9
- import { ref as H } from "lit/directives/ref.js";
10
- import { SbbLanguageController as R } from "./core/controllers.js";
11
- import { findInput as M } from "./core/dom.js";
12
- import { EventEmitter as D, forwardEvent as V } from "./core/eventing.js";
13
- import { i18nTimeInputChange as U } from "./core/i18n.js";
14
- const $ = S`:host{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px;display:block}`, P = /[0-9.:,\-;_hH]/, z = /^([0-9]{1,2})([0-9]{2})$/, G = /^([0-9]{1,2})?[.:,\-;_hH]?([0-9]{1,2})?$/;
15
- let Z = (() => {
16
- var o, r;
17
- let n = [L("sbb-time-input")], s, a = [], l, d = O, _ = [], E, b, g = [], f = [], C;
18
- var p = (r = class extends d {
4
+ var V = (n, s, a) => s.has(n) || T("Cannot " + a);
5
+ var E = (n, s, a) => (V(n, s, "read from private field"), a ? a.call(n) : s.get(n)), g = (n, s, a) => s.has(n) ? T("Cannot add the same private member more than once") : s instanceof WeakSet ? s.add(n) : s.set(n, a), c = (n, s, a, u) => (V(n, s, "write to private field"), u ? u.call(n, a) : s.set(n, a), a);
6
+ import { __runInitializers as m, __esDecorate as b } from "tslib";
7
+ import { css as x, LitElement as H, isServer as R, html as M } from "lit";
8
+ import { customElement as U, property as L, state as z } from "lit/decorators.js";
9
+ import { ref as $ } from "lit/directives/ref.js";
10
+ import { SbbIdReferenceController as P, SbbLanguageController as G } from "./core/controllers.js";
11
+ import { EventEmitter as O, forwardEvent as k } from "./core/eventing.js";
12
+ import { i18nTimeInputChange as j } from "./core/i18n.js";
13
+ const q = x`:host{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px;display:block}`, K = /[0-9.:,\-;_hH]/, W = /^([0-9]{1,2})([0-9]{2})$/, X = /^([0-9]{1,2})?[.:,\-;_hH]?([0-9]{1,2})?$/;
14
+ let it = (() => {
15
+ var p, h, r;
16
+ let n = [U("sbb-time-input")], s, a = [], u, f = H, C = [], v, A = [], w = [], y, I = [], D = [], S;
17
+ var _ = (r = class extends f {
19
18
  constructor() {
20
19
  super(...arguments);
21
- A(this, o);
22
- this._input = (h(this, _), null), c(this, o, h(this, g, null)), this._didChange = (h(this, f), new D(this, p.events.didChange, {
20
+ g(this, p);
21
+ g(this, h);
22
+ c(this, p, (m(this, C), m(this, A, null))), c(this, h, (m(this, w), m(this, I, null))), this._didChange = (m(this, D), new O(this, _.events.didChange, {
23
23
  bubbles: !0,
24
24
  cancelable: !0
25
- })), this._validationChange = new D(this, p.events.validationChange, {
25
+ })), this._validationChange = new O(this, _.events.validationChange, {
26
26
  bubbles: !0,
27
27
  composed: !1
28
- }), this._abortController = new AbortController(), this._language = new R(this);
28
+ }), this._inputAbortController = new AbortController(), this._inputIdReferenceController = new P(this, "input"), this._language = new G(this);
29
29
  }
30
+ // TODO: Replace HTMLElement by HTMLInputElement
30
31
  /** Reference of the native input connected to the datepicker. */
31
- set input(t) {
32
- this._input = t, this._setupInputElement();
33
- }
34
32
  get input() {
35
- return this._input;
33
+ return E(this, p);
34
+ }
35
+ set input(t) {
36
+ c(this, p, t);
36
37
  }
37
38
  get _inputElement() {
38
- return I(this, o);
39
+ return E(this, h);
39
40
  }
40
41
  set _inputElement(t) {
41
- c(this, o, t);
42
+ c(this, h, t);
42
43
  }
43
44
  /** Formats the current input's value as date. */
44
45
  set valueAsDate(t) {
@@ -55,36 +56,28 @@ let Z = (() => {
55
56
  return this._formatValueAsDate(this._parseInput((t = this._inputElement) == null ? void 0 : t.value)) ?? null;
56
57
  }
57
58
  connectedCallback() {
58
- super.connectedCallback(), this._setupInputElement();
59
+ super.connectedCallback(), this._configureInputElement();
59
60
  }
60
61
  disconnectedCallback() {
61
62
  var t;
62
- super.disconnectedCallback(), (t = this._abortController) == null || t.abort();
63
- }
64
- firstUpdated(t) {
65
- super.firstUpdated(t), this._setupInputElement();
66
- }
67
- _setupInputElement() {
68
- var i;
69
- const t = M(this, this.input);
70
- if (!t) {
71
- (i = this._abortController) == null || i.abort();
72
- return;
73
- }
74
- this._inputElement !== t && (this._inputElement = t, this._registerInputElement(), this._updateValue(this._inputElement.value));
75
- }
76
- _registerInputElement() {
77
- var t;
78
- (t = this._abortController) == null || t.abort(), this._inputElement && (this._abortController = new AbortController(), this._inputElement.toggleAttribute("data-sbb-time-input", !0), this._inputElement.type = "text", this._inputElement.inputMode = "numeric", this._inputElement.maxLength = 5, this._inputElement.placeholder || (this._inputElement.placeholder = "HH:MM"), this._inputElement.addEventListener("input", (e) => V(e, this), {
79
- signal: this._abortController.signal
80
- }), this._inputElement.addEventListener("keydown", (e) => this._preventCharInsert(e), { signal: this._abortController.signal }), this._inputElement.addEventListener("change", (e) => this._updateValue(e.target.value), {
81
- signal: this._abortController.signal,
63
+ super.disconnectedCallback(), (t = this._inputAbortController) == null || t.abort(), this._inputElement = null;
64
+ }
65
+ requestUpdate(t, e, i) {
66
+ super.requestUpdate(t, e, i), !R && (!t || t === "input") && this.hasUpdated && this._configureInputElement();
67
+ }
68
+ _configureInputElement() {
69
+ var e, i, l, d;
70
+ const t = this.input instanceof HTMLInputElement ? this.input : this._inputIdReferenceController.find() ?? ((i = (e = this.closest) == null ? void 0 : e.call(this, "sbb-form-field")) == null ? void 0 : i.querySelector("input")) ?? null;
71
+ t !== this._inputElement && ((l = this._inputAbortController) == null || l.abort(), (d = this._inputElement) == null || d.removeAttribute("data-sbb-time-input"), this._inputElement = t, this._inputElement && (this._updateValue(this._inputElement.value), this._inputAbortController = new AbortController(), this._inputElement.toggleAttribute("data-sbb-time-input", !0), this._inputElement.type = "text", this._inputElement.inputMode = "numeric", this._inputElement.maxLength = 5, this._inputElement.placeholder || (this._inputElement.placeholder = "HH:MM"), this._inputElement.addEventListener("input", (o) => k(o, this), {
72
+ signal: this._inputAbortController.signal
73
+ }), this._inputElement.addEventListener("keydown", (o) => this._preventCharInsert(o), { signal: this._inputAbortController.signal }), this._inputElement.addEventListener("change", (o) => this._updateValue(o.target.value), {
74
+ signal: this._inputAbortController.signal,
82
75
  capture: !0
83
- }), this._inputElement.addEventListener("change", (e) => {
84
- this._emitChange(e), this._updateAccessibilityMessage();
76
+ }), this._inputElement.addEventListener("change", (o) => {
77
+ this._emitChange(o), this._updateAccessibilityMessage();
85
78
  }, {
86
- signal: this._abortController.signal
87
- }));
79
+ signal: this._inputAbortController.signal
80
+ })));
88
81
  }
89
82
  /**
90
83
  * Updates `value` and `valueAsDate`. The direct update on the `_inputElement` is required
@@ -93,14 +86,14 @@ let Z = (() => {
93
86
  _updateValue(t) {
94
87
  if (this._statusContainer && (this._statusContainer.innerText = ""), !this._inputElement)
95
88
  return;
96
- const e = this._parseInput(t), i = !!e && this._isTimeValid(e), u = !t || t.trim() === "" || i;
97
- u && e && (Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, "value").set.call(this._inputElement, this._formatValue(e)), this._inputElement.dispatchEvent(new InputEvent("input", { bubbles: !0, composed: !0 })));
98
- const T = !this._inputElement.hasAttribute("data-sbb-invalid");
99
- this._inputElement.toggleAttribute("data-sbb-invalid", !u), T !== u && this._validationChange.emit({ valid: u });
89
+ const e = this._parseInput(t), i = !!e && this._isTimeValid(e), l = !t || t.trim() === "" || i;
90
+ l && e && (Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, "value").set.call(this._inputElement, this._formatValue(e)), this._inputElement.dispatchEvent(new InputEvent("input", { bubbles: !0, composed: !0 })));
91
+ const d = !this._inputElement.hasAttribute("data-sbb-invalid");
92
+ this._inputElement.toggleAttribute("data-sbb-invalid", !l), d !== l && this._validationChange.emit({ valid: l });
100
93
  }
101
94
  /** Emits the change event. */
102
95
  _emitChange(t) {
103
- V(t, this), this._didChange.emit();
96
+ k(t, this), this._didChange.emit();
104
97
  }
105
98
  /** Returns the right format for the `value` property. */
106
99
  _formatValue(t) {
@@ -123,11 +116,11 @@ let Z = (() => {
123
116
  const e = t == null ? void 0 : t.trim();
124
117
  if (!e)
125
118
  return null;
126
- const i = e.match(z);
119
+ const i = e.match(W);
127
120
  if (i)
128
121
  return { hours: +i[1] || 0, minutes: +i[2] || 0 };
129
- const u = e.match(G);
130
- return u ? { hours: +u[1] || 0, minutes: +u[2] || 0 } : null;
122
+ const l = e.match(X);
123
+ return l ? { hours: +l[1] || 0, minutes: +l[2] || 0 } : null;
131
124
  }
132
125
  /** Only allow typing numbers and separator keys. */
133
126
  _preventCharInsert(t) {
@@ -145,37 +138,37 @@ let Z = (() => {
145
138
  "PageDown",
146
139
  "Delete"
147
140
  ];
148
- !t.ctrlKey && !t.altKey && !t.metaKey && !e.includes(t.key) && !P.test(t.key) && t.preventDefault();
141
+ !t.ctrlKey && !t.altKey && !t.metaKey && !e.includes(t.key) && !K.test(t.key) && t.preventDefault();
149
142
  }
150
143
  // We use a programmatic approach to avoid initial setting the message
151
144
  // and to not immediately change output if language should change (no reason to read out message).
152
145
  _updateAccessibilityMessage() {
153
146
  var e;
154
- this._inputElement.hasAttribute("data-sbb-invalid") || (this._statusContainer.innerText = `${U[this._language.current]} ${(e = this._inputElement) == null ? void 0 : e.value}.`);
147
+ this._inputElement.hasAttribute("data-sbb-invalid") || (this._statusContainer.innerText = `${j[this._language.current]} ${(e = this._inputElement) == null ? void 0 : e.value}.`);
155
148
  }
156
149
  render() {
157
- return k`
150
+ return M`
158
151
  <p
159
152
  role="status"
160
- ${H((t) => this._statusContainer = t)}
153
+ ${$((t) => this._statusContainer = t)}
161
154
  ></p>
162
155
  `;
163
156
  }
164
- }, o = new WeakMap(), l = r, (() => {
165
- const t = typeof Symbol == "function" && Symbol.metadata ? Object.create(d[Symbol.metadata] ?? null) : void 0;
166
- E = [y()], b = [x()], C = [y({ attribute: !1 })], m(r, null, E, { kind: "setter", name: "input", static: !1, private: !1, access: { has: (e) => "input" in e, set: (e, i) => {
157
+ }, p = new WeakMap(), h = new WeakMap(), u = r, (() => {
158
+ const t = typeof Symbol == "function" && Symbol.metadata ? Object.create(f[Symbol.metadata] ?? null) : void 0;
159
+ v = [L()], y = [z()], S = [L({ attribute: !1 })], b(r, null, v, { kind: "accessor", name: "input", static: !1, private: !1, access: { has: (e) => "input" in e, get: (e) => e.input, set: (e, i) => {
167
160
  e.input = i;
168
- } }, metadata: t }, null, _), m(r, null, b, { kind: "accessor", name: "_inputElement", static: !1, private: !1, access: { has: (e) => "_inputElement" in e, get: (e) => e._inputElement, set: (e, i) => {
161
+ } }, metadata: t }, A, w), b(r, null, y, { kind: "accessor", name: "_inputElement", static: !1, private: !1, access: { has: (e) => "_inputElement" in e, get: (e) => e._inputElement, set: (e, i) => {
169
162
  e._inputElement = i;
170
- } }, metadata: t }, g, f), m(r, null, C, { kind: "setter", name: "valueAsDate", static: !1, private: !1, access: { has: (e) => "valueAsDate" in e, set: (e, i) => {
163
+ } }, metadata: t }, I, D), b(r, null, S, { kind: "setter", name: "valueAsDate", static: !1, private: !1, access: { has: (e) => "valueAsDate" in e, set: (e, i) => {
171
164
  e.valueAsDate = i;
172
- } }, metadata: t }, null, _), m(null, s = { value: l }, n, { kind: "class", name: l.name, metadata: t }, null, a), p = l = s.value, t && Object.defineProperty(l, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: t });
173
- })(), r.styles = $, r.events = {
165
+ } }, metadata: t }, null, C), b(null, s = { value: u }, n, { kind: "class", name: u.name, metadata: t }, null, a), _ = u = s.value, t && Object.defineProperty(u, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: t });
166
+ })(), r.styles = q, r.events = {
174
167
  didChange: "didChange",
175
168
  validationChange: "validationChange"
176
- }, h(l, a), r);
177
- return p = l;
169
+ }, m(u, a), r);
170
+ return _ = u;
178
171
  })();
179
172
  export {
180
- Z as SbbTimeInputElement
173
+ it as SbbTimeInputElement
181
174
  };