@sbb-esta/lyne-elements 0.52.1 → 0.53.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 (242) hide show
  1. package/accordion.js +54 -54
  2. package/action-group.js +3 -3
  3. package/alert/alert-group.js +22 -22
  4. package/alert/alert.js +22 -22
  5. package/autocomplete.js +126 -126
  6. package/breadcrumb/breadcrumb-group.js +60 -60
  7. package/breadcrumb/breadcrumb.js +17 -17
  8. package/calendar.js +423 -423
  9. package/card/card-badge.js +17 -17
  10. package/card/card.js +2 -2
  11. package/card/common.js +30 -30
  12. package/checkbox/checkbox/checkbox.d.ts +3 -46
  13. package/checkbox/checkbox/checkbox.d.ts.map +1 -1
  14. package/checkbox/checkbox-group/checkbox-group.d.ts +4 -2
  15. package/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
  16. package/checkbox/checkbox-group.js +26 -23
  17. package/checkbox/checkbox-panel/checkbox-panel.d.ts +41 -0
  18. package/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -0
  19. package/checkbox/checkbox-panel.d.ts +2 -0
  20. package/checkbox/checkbox-panel.d.ts.map +1 -0
  21. package/checkbox/checkbox-panel.js +67 -0
  22. package/checkbox/checkbox.js +27 -104
  23. package/checkbox/common/checkbox-common.d.ts +13 -0
  24. package/checkbox/common/checkbox-common.d.ts.map +1 -0
  25. package/checkbox/common.d.ts +2 -0
  26. package/checkbox/common.d.ts.map +1 -0
  27. package/checkbox/common.js +52 -0
  28. package/checkbox.d.ts +2 -0
  29. package/checkbox.d.ts.map +1 -1
  30. package/checkbox.js +2 -0
  31. package/clock.js +83 -83
  32. package/container/sticky-bar.js +16 -16
  33. package/core/a11y.js +91 -91
  34. package/core/base-elements.js +86 -86
  35. package/core/controllers.js +40 -40
  36. package/core/datetime.js +32 -32
  37. package/core/dom.js +26 -26
  38. package/core/eventing.js +33 -33
  39. package/core/mixins/panel-mixin.d.ts +13 -0
  40. package/core/mixins/panel-mixin.d.ts.map +1 -0
  41. package/core/mixins.d.ts +1 -0
  42. package/core/mixins.d.ts.map +1 -1
  43. package/core/mixins.js +170 -139
  44. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables_css--mixin.scss +1 -1
  45. package/core/testing.js +29 -29
  46. package/core.css +1 -1
  47. package/custom-elements.json +8862 -6904
  48. package/datepicker/common.js +55 -55
  49. package/datepicker/datepicker-toggle.js +94 -94
  50. package/datepicker/datepicker.js +144 -144
  51. package/development/checkbox/checkbox/checkbox.d.ts +3 -46
  52. package/development/checkbox/checkbox/checkbox.d.ts.map +1 -1
  53. package/development/checkbox/checkbox-group/checkbox-group.d.ts +4 -2
  54. package/development/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
  55. package/development/checkbox/checkbox-group.js +43 -13
  56. package/development/checkbox/checkbox-panel/checkbox-panel.d.ts +41 -0
  57. package/development/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -0
  58. package/development/checkbox/checkbox-panel.d.ts +2 -0
  59. package/development/checkbox/checkbox-panel.d.ts.map +1 -0
  60. package/development/checkbox/checkbox-panel.js +86 -0
  61. package/development/checkbox/checkbox.js +19 -239
  62. package/development/checkbox/common/checkbox-common.d.ts +13 -0
  63. package/development/checkbox/common/checkbox-common.d.ts.map +1 -0
  64. package/development/checkbox/common.d.ts +2 -0
  65. package/development/checkbox/common.d.ts.map +1 -0
  66. package/development/checkbox/common.js +156 -0
  67. package/development/checkbox.d.ts +2 -0
  68. package/development/checkbox.d.ts.map +1 -1
  69. package/development/checkbox.js +3 -1
  70. package/development/core/mixins/panel-mixin.d.ts +13 -0
  71. package/development/core/mixins/panel-mixin.d.ts.map +1 -0
  72. package/development/core/mixins.d.ts +1 -0
  73. package/development/core/mixins.d.ts.map +1 -1
  74. package/development/core/mixins.js +187 -31
  75. package/development/image.js +1 -1
  76. package/development/radio-button/common/radio-button-common.d.ts +22 -0
  77. package/development/radio-button/common/radio-button-common.d.ts.map +1 -0
  78. package/development/radio-button/common.d.ts +2 -0
  79. package/development/radio-button/common.d.ts.map +1 -0
  80. package/development/radio-button/common.js +294 -0
  81. package/development/radio-button/radio-button/radio-button.d.ts +2 -81
  82. package/development/radio-button/radio-button/radio-button.d.ts.map +1 -1
  83. package/development/radio-button/radio-button-group/radio-button-group.d.ts +6 -4
  84. package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  85. package/development/radio-button/radio-button-group.js +55 -23
  86. package/development/radio-button/radio-button-panel/index.d.ts +2 -0
  87. package/development/radio-button/radio-button-panel/index.d.ts.map +1 -0
  88. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts +29 -0
  89. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -0
  90. package/development/radio-button/radio-button-panel.d.ts +2 -0
  91. package/development/radio-button/radio-button-panel.d.ts.map +1 -0
  92. package/development/radio-button/radio-button-panel.js +69 -0
  93. package/development/radio-button/radio-button.js +10 -324
  94. package/development/radio-button.d.ts +2 -0
  95. package/development/radio-button.d.ts.map +1 -1
  96. package/development/radio-button.js +3 -1
  97. package/{selection-panel/selection-panel.d.ts → development/selection-expansion-panel/selection-expansion-panel.d.ts} +9 -7
  98. package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -0
  99. package/development/selection-expansion-panel.d.ts +2 -0
  100. package/development/selection-expansion-panel.d.ts.map +1 -0
  101. package/development/selection-expansion-panel.js +340 -0
  102. package/development/tabs/tab/index.d.ts +2 -0
  103. package/development/tabs/tab/index.d.ts.map +1 -0
  104. package/development/tabs/tab/tab.d.ts +24 -0
  105. package/development/tabs/tab/tab.d.ts.map +1 -0
  106. package/development/tabs/tab-group/tab-group.d.ts +20 -15
  107. package/development/tabs/tab-group/tab-group.d.ts.map +1 -1
  108. package/development/tabs/tab-group.js +24 -14
  109. package/development/tabs/{tab-title/tab-title.d.ts → tab-label/tab-label.d.ts} +4 -4
  110. package/development/tabs/{tab-title/tab-title.d.ts.map → tab-label/tab-label.d.ts.map} +1 -1
  111. package/development/tabs/tab-label.d.ts +2 -0
  112. package/development/tabs/tab-label.d.ts.map +1 -0
  113. package/development/tabs/{tab-title.js → tab-label.js} +86 -86
  114. package/development/tabs/tab.d.ts +2 -0
  115. package/development/tabs/tab.d.ts.map +1 -0
  116. package/development/tabs/tab.js +71 -0
  117. package/development/tabs.d.ts +2 -1
  118. package/development/tabs.d.ts.map +1 -1
  119. package/development/tabs.js +3 -2
  120. package/development/train/train-formation/train-formation.d.ts.map +1 -1
  121. package/development/train/train-formation.js +12 -12
  122. package/dialog/dialog-title.js +20 -20
  123. package/dialog/dialog.js +66 -66
  124. package/expansion-panel/expansion-panel-header.js +20 -20
  125. package/expansion-panel/expansion-panel.js +60 -60
  126. package/file-selector.js +91 -91
  127. package/form-field/form-field-clear.js +12 -12
  128. package/form-field/form-field.js +111 -111
  129. package/header/header.js +53 -53
  130. package/icon.js +107 -107
  131. package/image.js +87 -87
  132. package/index.d.ts +10 -8
  133. package/index.js +10 -8
  134. package/journey-header.js +29 -29
  135. package/map-container.js +23 -23
  136. package/menu/menu.js +91 -91
  137. package/navigation/common.js +16 -16
  138. package/navigation/navigation-marker.js +34 -34
  139. package/navigation/navigation-section.js +83 -83
  140. package/navigation/navigation.js +87 -87
  141. package/notification.js +52 -52
  142. package/option/optgroup.js +45 -45
  143. package/option/option.js +108 -108
  144. package/overlay.js +5 -5
  145. package/package.json +34 -19
  146. package/popover/popover.js +110 -110
  147. package/radio-button/common/radio-button-common.d.ts +22 -0
  148. package/radio-button/common/radio-button-common.d.ts.map +1 -0
  149. package/radio-button/common.d.ts +2 -0
  150. package/radio-button/common.d.ts.map +1 -0
  151. package/radio-button/common.js +105 -0
  152. package/radio-button/radio-button/radio-button.d.ts +2 -81
  153. package/radio-button/radio-button/radio-button.d.ts.map +1 -1
  154. package/radio-button/radio-button-group/radio-button-group.d.ts +6 -4
  155. package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  156. package/radio-button/radio-button-group.js +86 -80
  157. package/radio-button/radio-button-panel/index.d.ts +2 -0
  158. package/radio-button/radio-button-panel/index.d.ts.map +1 -0
  159. package/radio-button/radio-button-panel/radio-button-panel.d.ts +29 -0
  160. package/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -0
  161. package/radio-button/radio-button-panel.d.ts +2 -0
  162. package/radio-button/radio-button-panel.d.ts.map +1 -0
  163. package/radio-button/radio-button-panel.js +59 -0
  164. package/radio-button/radio-button.js +20 -143
  165. package/radio-button.d.ts +2 -0
  166. package/radio-button.d.ts.map +1 -1
  167. package/radio-button.js +2 -0
  168. package/select.js +178 -178
  169. package/{development/selection-panel/selection-panel.d.ts → selection-expansion-panel/selection-expansion-panel.d.ts} +9 -7
  170. package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -0
  171. package/selection-expansion-panel.d.ts +2 -0
  172. package/selection-expansion-panel.d.ts.map +1 -0
  173. package/selection-expansion-panel.js +146 -0
  174. package/slider.js +58 -58
  175. package/standard-theme.css +1 -1
  176. package/status.js +6 -6
  177. package/stepper/step-label.js +19 -19
  178. package/stepper/step.js +31 -31
  179. package/stepper/stepper.js +46 -46
  180. package/tabs/tab/index.d.ts +2 -0
  181. package/tabs/tab/index.d.ts.map +1 -0
  182. package/tabs/tab/tab.d.ts +24 -0
  183. package/tabs/tab/tab.d.ts.map +1 -0
  184. package/tabs/tab-group/tab-group.d.ts +20 -15
  185. package/tabs/tab-group/tab-group.d.ts.map +1 -1
  186. package/tabs/tab-group.js +85 -75
  187. package/tabs/{tab-title/tab-title.d.ts → tab-label/tab-label.d.ts} +4 -4
  188. package/tabs/{tab-title/tab-title.d.ts.map → tab-label/tab-label.d.ts.map} +1 -1
  189. package/tabs/tab-label.d.ts +2 -0
  190. package/tabs/tab-label.d.ts.map +1 -0
  191. package/tabs/tab-label.js +51 -0
  192. package/tabs/tab.d.ts +2 -0
  193. package/tabs/tab.d.ts.map +1 -0
  194. package/tabs/tab.js +41 -0
  195. package/tabs.d.ts +2 -1
  196. package/tabs.d.ts.map +1 -1
  197. package/tabs.js +2 -1
  198. package/tag/tag-group.js +8 -8
  199. package/tag/tag.js +27 -27
  200. package/time-input.js +73 -73
  201. package/timetable-occupancy-icon.js +26 -26
  202. package/timetable-occupancy.js +9 -9
  203. package/toast.js +38 -38
  204. package/toggle/toggle-option.js +33 -33
  205. package/toggle/toggle.js +46 -46
  206. package/train/train-formation/train-formation.d.ts.map +1 -1
  207. package/train/train-formation.js +51 -51
  208. package/train/train-wagon.js +30 -30
  209. package/train/train.js +13 -13
  210. package/development/selection-panel/selection-panel.d.ts.map +0 -1
  211. package/development/selection-panel.d.ts +0 -2
  212. package/development/selection-panel.d.ts.map +0 -1
  213. package/development/selection-panel.js +0 -376
  214. package/development/tabs/tab-title.d.ts +0 -2
  215. package/development/tabs/tab-title.d.ts.map +0 -1
  216. package/development/teaser-hero/teaser-hero.d.ts +0 -26
  217. package/development/teaser-hero/teaser-hero.d.ts.map +0 -1
  218. package/development/teaser-hero.d.ts +0 -2
  219. package/development/teaser-hero.d.ts.map +0 -1
  220. package/development/teaser-hero.js +0 -181
  221. package/development/teaser-paid/teaser-paid.d.ts +0 -20
  222. package/development/teaser-paid/teaser-paid.d.ts.map +0 -1
  223. package/development/teaser-paid.d.ts +0 -2
  224. package/development/teaser-paid.d.ts.map +0 -1
  225. package/development/teaser-paid.js +0 -91
  226. package/selection-panel/selection-panel.d.ts.map +0 -1
  227. package/selection-panel.d.ts +0 -2
  228. package/selection-panel.d.ts.map +0 -1
  229. package/selection-panel.js +0 -138
  230. package/tabs/tab-title.d.ts +0 -2
  231. package/tabs/tab-title.d.ts.map +0 -1
  232. package/tabs/tab-title.js +0 -51
  233. package/teaser-hero/teaser-hero.d.ts +0 -26
  234. package/teaser-hero/teaser-hero.d.ts.map +0 -1
  235. package/teaser-hero.d.ts +0 -2
  236. package/teaser-hero.d.ts.map +0 -1
  237. package/teaser-hero.js +0 -51
  238. package/teaser-paid/teaser-paid.d.ts +0 -20
  239. package/teaser-paid/teaser-paid.d.ts.map +0 -1
  240. package/teaser-paid.d.ts +0 -2
  241. package/teaser-paid.d.ts.map +0 -1
  242. package/teaser-paid.js +0 -28
@@ -1,50 +1,50 @@
1
- import { css as c, LitElement as h, html as g, nothing as d } from "lit";
1
+ import { css as h, LitElement as c, html as g, nothing as d } from "lit";
2
2
  import { property as a, customElement as p } from "lit/decorators.js";
3
3
  import { SbbConnectedAbortController as u, SbbSlotStateController as f } from "../core/controllers.js";
4
4
  import { hostAttributes as v } from "../core/decorators.js";
5
5
  import { setOrRemoveAttribute as m } from "../core/dom.js";
6
- import { SbbIconNameMixin as y } from "../icon.js";
7
- const w = c`*,:before,:after{box-sizing:border-box}:host{--sbb-toggle-option-cursor: pointer;--sbb-toggle-option-color: var(--sbb-color-anthracite);--sbb-toggle-option-icon-min-size: var(--sbb-size-icon-ui-small);--sbb-toggle-option-border-radius: var(--sbb-border-radius-infinity);--sbb-toggle-option-line-height: calc(1em * var(--sbb-typo-line-height-body-text));display:inline-block;min-width:var(--sbb-toggle-min-width);overflow:hidden;z-index:1}:host(:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch])){outline:none!important}:host([checked]){--sbb-toggle-option-color: var(--sbb-color-charcoal)}:host([disabled]){--sbb-toggle-option-cursor: unset;--sbb-toggle-option-color: var(--sbb-color-granite)}input[type=radio]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.sbb-toggle-option{--sbb-text-font-size: var(--sbb-font-size-text-xs);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);font-weight:700;cursor:var(--sbb-toggle-option-cursor);display:flex;justify-content:center;align-items:center;height:var(--sbb-toggle-height);padding-inline:var(--sbb-toggle-padding-inline);border-radius:var(--sbb-toggle-option-border-radius);color:var(--sbb-toggle-option-color)}:host([data-slot-names~=unnamed]:where([data-slot-names~=icon],[icon-name])) .sbb-toggle-option{gap:var(--sbb-spacing-fixed-1x)}.sbb-toggle-option__label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host(:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch])) .sbb-toggle-option__label:before{content:"";position:absolute;pointer-events:none;inset:calc(var(--sbb-focus-outline-offset) * -2);border:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width);border-radius:var(--sbb-toggle-option-border-radius)}sbb-icon,::slotted(sbb-icon){min-width:var(--sbb-toggle-option-icon-min-size);min-height:var(--sbb-toggle-option-icon-min-size)}`;
8
- var x = Object.defineProperty, k = Object.getOwnPropertyDescriptor, l = (t, e, i, r) => {
9
- for (var o = r > 1 ? void 0 : r ? k(e, i) : e, b = t.length - 1, n; b >= 0; b--)
10
- (n = t[b]) && (o = (r ? n(e, i, o) : n(o)) || o);
11
- return r && o && x(e, i, o), o;
6
+ import { SbbIconNameMixin as _ } from "../icon.js";
7
+ const y = h`*,:before,:after{box-sizing:border-box}:host{--sbb-toggle-option-cursor: pointer;--sbb-toggle-option-color: var(--sbb-color-anthracite);--sbb-toggle-option-icon-min-size: var(--sbb-size-icon-ui-small);--sbb-toggle-option-border-radius: var(--sbb-border-radius-infinity);--sbb-toggle-option-line-height: calc(1em * var(--sbb-typo-line-height-body-text));display:inline-block;min-width:var(--sbb-toggle-min-width);overflow:hidden;z-index:1}:host(:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch])){outline:none!important}:host([checked]){--sbb-toggle-option-color: var(--sbb-color-charcoal)}:host([disabled]){--sbb-toggle-option-cursor: unset;--sbb-toggle-option-color: var(--sbb-color-granite)}input[type=radio]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.sbb-toggle-option{--sbb-text-font-size: var(--sbb-font-size-text-xs);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);font-weight:700;cursor:var(--sbb-toggle-option-cursor);display:flex;justify-content:center;align-items:center;height:var(--sbb-toggle-height);padding-inline:var(--sbb-toggle-padding-inline);border-radius:var(--sbb-toggle-option-border-radius);color:var(--sbb-toggle-option-color)}:host([data-slot-names~=unnamed]:where([data-slot-names~=icon],[icon-name])) .sbb-toggle-option{gap:var(--sbb-spacing-fixed-1x)}.sbb-toggle-option__label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host(:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch])) .sbb-toggle-option__label:before{content:"";position:absolute;pointer-events:none;inset:calc(var(--sbb-focus-outline-offset) * -2);border:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width);border-radius:var(--sbb-toggle-option-border-radius)}sbb-icon,::slotted(sbb-icon){min-width:var(--sbb-toggle-option-icon-min-size);min-height:var(--sbb-toggle-option-icon-min-size)}`;
8
+ var x = Object.defineProperty, w = Object.getOwnPropertyDescriptor, n = (e, t, i, l) => {
9
+ for (var o = l > 1 ? void 0 : l ? w(t, i) : t, r = e.length - 1, b; r >= 0; r--)
10
+ (b = e[r]) && (o = (l ? b(t, i, o) : b(o)) || o);
11
+ return l && o && x(t, i, o), o;
12
12
  };
13
- let s = class extends y(h) {
13
+ let s = class extends _(c) {
14
14
  constructor() {
15
- super(), this.checked = !1, this.disabled = !1, this.c = "", this.e = new u(this), new f(this);
15
+ super(), this.checked = !1, this.disabled = !1, this._value = "", this._abort = new u(this), new f(this);
16
16
  }
17
- set value(t) {
18
- this.c = `${t}`;
17
+ set value(e) {
18
+ this._value = `${e}`;
19
19
  }
20
20
  get value() {
21
- return this.c;
21
+ return this._value;
22
22
  }
23
23
  connectedCallback() {
24
- var e;
24
+ var t;
25
25
  super.connectedCallback();
26
- const t = this.e.signal;
27
- this.addEventListener("input", () => this.f(), { signal: t }), this.addEventListener("click", () => {
26
+ const e = this._abort.signal;
27
+ this.addEventListener("input", () => this._handleInput(), { signal: e }), this.addEventListener("click", () => {
28
28
  var i;
29
29
  return (i = this.shadowRoot.querySelector("label")) == null ? void 0 : i.click();
30
30
  }, {
31
- signal: t
32
- }), this.a = ((e = this.closest) == null ? void 0 : e.call(this, "sbb-toggle")) ?? void 0, this.b();
31
+ signal: e
32
+ }), this._toggle = ((t = this.closest) == null ? void 0 : t.call(this, "sbb-toggle")) ?? void 0, this._verifyTabindex();
33
33
  }
34
- willUpdate(t) {
35
- super.willUpdate(t), t.has("checked") && (this.setAttribute("aria-checked", `${this.checked}`), this.b(), this.checked && this.d()), t.has("disabled") && this.g();
34
+ willUpdate(e) {
35
+ super.willUpdate(e), e.has("checked") && (this.setAttribute("aria-checked", `${this.checked}`), this._verifyTabindex(), this.checked && this._uncheckOtherOptions()), e.has("disabled") && this._handleDisabledChange();
36
36
  }
37
- d() {
38
- var t;
39
- (t = this.a) == null || t.options.filter((e) => e !== this).forEach((e) => e.checked = !1);
37
+ _uncheckOtherOptions() {
38
+ var e;
39
+ (e = this._toggle) == null || e.options.filter((t) => t !== this).forEach((t) => t.checked = !1);
40
40
  }
41
- g() {
42
- this.a && (this.a.disabled && !this.disabled ? this.disabled = !0 : !this.a.disabled && this.disabled && (this.disabled = !1)), m(this, "aria-disabled", this.disabled ? "true" : null), this.b();
41
+ _handleDisabledChange() {
42
+ this._toggle && (this._toggle.disabled && !this.disabled ? this.disabled = !0 : !this._toggle.disabled && this.disabled && (this.disabled = !1)), m(this, "aria-disabled", this.disabled ? "true" : null), this._verifyTabindex();
43
43
  }
44
- f() {
45
- this.disabled || (this.checked = !0, this.d());
44
+ _handleInput() {
45
+ this.disabled || (this.checked = !0, this._uncheckOtherOptions());
46
46
  }
47
- b() {
47
+ _verifyTabindex() {
48
48
  this.tabIndex = this.checked && !this.disabled ? 0 : -1;
49
49
  }
50
50
  render() {
@@ -57,7 +57,7 @@ let s = class extends y(h) {
57
57
  ?disabled=${this.disabled}
58
58
  .checked=${this.checked || d}
59
59
  .value=${this.value || d}
60
- @click=${(t) => t.stopPropagation()}
60
+ @click=${(e) => e.stopPropagation()}
61
61
  />
62
62
  <label class="sbb-toggle-option" for="sbb-toggle-option-id">
63
63
  ${this.renderIconSlot()}
@@ -68,17 +68,17 @@ let s = class extends y(h) {
68
68
  `;
69
69
  }
70
70
  };
71
- s.styles = w;
72
- l([
71
+ s.styles = y;
72
+ n([
73
73
  a({ reflect: !0, type: Boolean })
74
74
  ], s.prototype, "checked", 2);
75
- l([
75
+ n([
76
76
  a({ reflect: !0, type: Boolean })
77
77
  ], s.prototype, "disabled", 2);
78
- l([
78
+ n([
79
79
  a()
80
80
  ], s.prototype, "value", 1);
81
- s = l([
81
+ s = n([
82
82
  p("sbb-toggle-option"),
83
83
  v({
84
84
  role: "radio"
package/toggle/toggle.js CHANGED
@@ -1,126 +1,126 @@
1
- import { css as m, LitElement as u, isServer as c, html as v } from "lit";
1
+ import { css as u, LitElement as v, isServer as c, html as m } from "lit";
2
2
  import { property as a, customElement as f } from "lit/decorators.js";
3
- import { interactivityChecker as y, isArrowKeyPressed as w, getNextElementIndex as x } from "../core/a11y.js";
4
- import { SbbConnectedAbortController as k } from "../core/controllers.js";
5
- import { hostAttributes as z } from "../core/decorators.js";
3
+ import { interactivityChecker as y, isArrowKeyPressed as _, getNextElementIndex as w } from "../core/a11y.js";
4
+ import { SbbConnectedAbortController as x } from "../core/controllers.js";
5
+ import { hostAttributes as k } from "../core/decorators.js";
6
6
  import { EventEmitter as p } from "../core/eventing.js";
7
7
  import { AgnosticResizeObserver as C } from "../core/observers.js";
8
- const E = m`*,:before,:after{box-sizing:border-box}:host{--sbb-toggle-width: fit-content;--sbb-toggle-min-width: calc( var(--sbb-toggle-padding-inline) * 2 + var(--sbb-size-icon-ui-small) );--sbb-toggle-selected-option-border-color: var(--sbb-color-smoke);--sbb-toggle-padding-inline: var(--sbb-spacing-responsive-xxxs);--sbb-toggle-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-6x) );--sbb-toggle-height: 1.75rem;--sbb-toggle-border-width: var(--sbb-border-width-1x);--sbb-toggle-border-style: solid;--sbb-toggle-border-radius: var(--sbb-border-radius-infinity);display:block}@media (min-width: 52.5rem){:host{--sbb-toggle-height: 2rem}}@media (forced-colors: active){:host{--sbb-toggle-selected-option-border-color: Highlight;--sbb-toggle-border-width: var(--sbb-border-width-2x)}}:host([even]){--sbb-toggle-width: 100%}:host([even]) ::slotted(sbb-toggle-option){width:50%}:host([disabled]){--sbb-toggle-selected-option-border-color: var(--sbb-color-graphite);--sbb-toggle-border-style: dashed}@media (forced-colors: active){:host([disabled]){--sbb-toggle-border-style: solid;--sbb-toggle-selected-option-border-color: GrayText}}:host([size=m]){--sbb-toggle-padding-inline: var(--sbb-spacing-responsive-s);--sbb-toggle-height: 2.75rem}@media (min-width: 52.5rem){:host([size=m]){--sbb-toggle-height: 3.25rem}}:host([data-disable-animation-on-resizing]){--sbb-disable-animation-time: .1ms;--sbb-disable-animation-zero-time: 0s}.sbb-toggle{--sbb-text-font-size: var(--sbb-font-size-text-m);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);position:relative;display:flex;align-items:center;width:var(--sbb-toggle-width);max-width:100%;min-width:calc(var(--sbb-toggle-min-width) * 2);height:var(--sbb-toggle-height);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:var(--sbb-color-cloud);border-radius:var(--sbb-toggle-border-radius)}.sbb-toggle:after{content:"";padding-inline:var(--sbb-toggle-padding-inline);display:inline-block;opacity:1;background-color:var(--sbb-color-white);border:var(--sbb-toggle-border-width) var(--sbb-toggle-border-style) var(--sbb-toggle-selected-option-border-color);border-radius:var(--sbb-toggle-border-radius);position:absolute;max-width:100%;min-width:var(--sbb-toggle-min-width);inset-block:calc(-2 * var(--sbb-toggle-border-width));inset-inline:calc(var(--sbb-toggle-option-left) - .125rem) calc(var(--sbb-toggle-option-right) - .125rem);transition-duration:var(--sbb-toggle-animation-duration);transition-timing-function:ease;transition-property:opacity,inset-inline-end,inset-inline-start}@media (forced-colors: active){.sbb-toggle{outline:var(--sbb-toggle-border-width) solid CanvasText}}`;
9
- var O = Object.defineProperty, A = Object.getOwnPropertyDescriptor, l = (e, t, s, i) => {
10
- for (var o = i > 1 ? void 0 : i ? A(t, s) : t, n = e.length - 1, b; n >= 0; n--)
11
- (b = e[n]) && (o = (i ? b(t, s, o) : b(o)) || o);
12
- return i && o && O(t, s, o), o;
8
+ const z = u`*,:before,:after{box-sizing:border-box}:host{--sbb-toggle-width: fit-content;--sbb-toggle-min-width: calc( var(--sbb-toggle-padding-inline) * 2 + var(--sbb-size-icon-ui-small) );--sbb-toggle-selected-option-border-color: var(--sbb-color-smoke);--sbb-toggle-padding-inline: var(--sbb-spacing-responsive-xxxs);--sbb-toggle-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-6x) );--sbb-toggle-height: 1.75rem;--sbb-toggle-border-width: var(--sbb-border-width-1x);--sbb-toggle-border-style: solid;--sbb-toggle-border-radius: var(--sbb-border-radius-infinity);display:block}@media (min-width: 52.5rem){:host{--sbb-toggle-height: 2rem}}@media (forced-colors: active){:host{--sbb-toggle-selected-option-border-color: Highlight;--sbb-toggle-border-width: var(--sbb-border-width-2x)}}:host([even]){--sbb-toggle-width: 100%}:host([even]) ::slotted(sbb-toggle-option){width:50%}:host([disabled]){--sbb-toggle-selected-option-border-color: var(--sbb-color-graphite);--sbb-toggle-border-style: dashed}@media (forced-colors: active){:host([disabled]){--sbb-toggle-border-style: solid;--sbb-toggle-selected-option-border-color: GrayText}}:host([size=m]){--sbb-toggle-padding-inline: var(--sbb-spacing-responsive-s);--sbb-toggle-height: 2.75rem}@media (min-width: 52.5rem){:host([size=m]){--sbb-toggle-height: 3.25rem}}:host([data-disable-animation-on-resizing]){--sbb-disable-animation-time: .1ms;--sbb-disable-animation-zero-time: 0s}.sbb-toggle{--sbb-text-font-size: var(--sbb-font-size-text-m);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);position:relative;display:flex;align-items:center;width:var(--sbb-toggle-width);max-width:100%;min-width:calc(var(--sbb-toggle-min-width) * 2);height:var(--sbb-toggle-height);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:var(--sbb-color-cloud);border-radius:var(--sbb-toggle-border-radius)}.sbb-toggle:after{content:"";padding-inline:var(--sbb-toggle-padding-inline);display:inline-block;opacity:1;background-color:var(--sbb-color-white);border:var(--sbb-toggle-border-width) var(--sbb-toggle-border-style) var(--sbb-toggle-selected-option-border-color);border-radius:var(--sbb-toggle-border-radius);position:absolute;max-width:100%;min-width:var(--sbb-toggle-min-width);inset-block:calc(-2 * var(--sbb-toggle-border-width));inset-inline:calc(var(--sbb-toggle-option-left) - .125rem) calc(var(--sbb-toggle-option-right) - .125rem);transition-duration:var(--sbb-toggle-animation-duration);transition-timing-function:ease;transition-property:opacity,inset-inline-end,inset-inline-start}@media (forced-colors: active){.sbb-toggle{outline:var(--sbb-toggle-border-width) solid CanvasText}}`;
9
+ var P = Object.defineProperty, E = Object.getOwnPropertyDescriptor, b = (e, t, s, i) => {
10
+ for (var o = i > 1 ? void 0 : i ? E(t, s) : t, n = e.length - 1, l; n >= 0; n--)
11
+ (l = e[n]) && (o = (i ? l(t, s, o) : l(o)) || o);
12
+ return i && o && P(t, s, o), o;
13
13
  };
14
- let r = class extends u {
14
+ let r = class extends v {
15
15
  constructor() {
16
- super(...arguments), this.b = !1, this.even = !1, this.size = "m", this.d = null, this.f = !1, this.g = new C(
17
- () => this.a(!0)
18
- ), this.i = new p(this, r.events.didChange, {
16
+ super(...arguments), this._disabled = !1, this.even = !1, this.size = "m", this._value = null, this._loaded = !1, this._toggleResizeObserver = new C(
17
+ () => this._setCheckedPillPosition(!0)
18
+ ), this._didChange = new p(this, r.events.didChange, {
19
19
  bubbles: !0,
20
20
  composed: !0
21
- }), this.j = new p(this, r.events.change, {
21
+ }), this._change = new p(this, r.events.change, {
22
22
  bubbles: !0,
23
23
  composed: !0
24
- }), this.k = new k(this);
24
+ }), this._abort = new x(this);
25
25
  }
26
26
  set disabled(e) {
27
- this.b = e, this.c();
27
+ this._disabled = e, this._updateDisabled();
28
28
  }
29
29
  get disabled() {
30
- return this.b;
30
+ return this._disabled;
31
31
  }
32
32
  set value(e) {
33
- c ? this.d = e : this.e(e);
33
+ c ? this._value = e : this._valueChanged(e);
34
34
  }
35
35
  get value() {
36
36
  var e, t;
37
- return c ? this.d ?? "" : ((e = this.options.find((s) => s.checked)) == null ? void 0 : e.value) ?? ((t = this.options[0]) == null ? void 0 : t.value) ?? "";
37
+ return c ? this._value ?? "" : ((e = this.options.find((s) => s.checked)) == null ? void 0 : e.value) ?? ((t = this.options[0]) == null ? void 0 : t.value) ?? "";
38
38
  }
39
39
  /** The child instances of sbb-toggle-option as an array. */
40
40
  get options() {
41
41
  var e;
42
42
  return Array.from(((e = this.querySelectorAll) == null ? void 0 : e.call(this, "sbb-toggle-option")) ?? []);
43
43
  }
44
- e(e) {
44
+ _valueChanged(e) {
45
45
  const t = this.options, s = t.find(
46
46
  (i) => e === ("value" in i ? i.value : i.getAttribute("value"))
47
47
  ) ?? t.find((i) => i.checked) ?? t[0];
48
- s && (s.checked || (s.checked = !0), this.a(!1));
48
+ s && (s.checked || (s.checked = !0), this._setCheckedPillPosition(!1));
49
49
  }
50
- c() {
50
+ _updateDisabled() {
51
51
  for (const e of this.options)
52
52
  e.disabled = this.disabled;
53
53
  }
54
- a(e) {
54
+ _setCheckedPillPosition(e) {
55
55
  var g, h;
56
- if (!this.f)
56
+ if (!this._loaded)
57
57
  return;
58
58
  const t = this.options, s = this.shadowRoot.querySelector(".sbb-toggle");
59
59
  if (t.every((d) => !d.checked) || t.every((d) => !d.clientWidth) || !s)
60
60
  return;
61
61
  this.toggleAttribute("data-disable-animation-on-resizing", e);
62
- const i = t[0], o = i.checked, n = i.checked ? "0px" : `${i.clientWidth}px`, b = o ? `${s.clientWidth - i.clientWidth}px` : "0px";
63
- (g = this.style) == null || g.setProperty("--sbb-toggle-option-left", n), (h = this.style) == null || h.setProperty("--sbb-toggle-option-right", b);
62
+ const i = t[0], o = i.checked, n = i.checked ? "0px" : `${i.clientWidth}px`, l = o ? `${s.clientWidth - i.clientWidth}px` : "0px";
63
+ (g = this.style) == null || g.setProperty("--sbb-toggle-option-left", n), (h = this.style) == null || h.setProperty("--sbb-toggle-option-right", l);
64
64
  }
65
65
  connectedCallback() {
66
66
  super.connectedCallback();
67
- const e = this.k.signal;
68
- this.addEventListener("input", () => this.l(), { signal: e, passive: !0 }), this.addEventListener("keydown", (t) => this.m(t), { signal: e }), this.options.forEach((t) => this.g.observe(t)), this.h();
67
+ const e = this._abort.signal;
68
+ this.addEventListener("input", () => this._handleInput(), { signal: e, passive: !0 }), this.addEventListener("keydown", (t) => this._handleKeyDown(t), { signal: e }), this.options.forEach((t) => this._toggleResizeObserver.observe(t)), this._updateToggle();
69
69
  }
70
70
  async firstUpdated(e) {
71
- super.firstUpdated(e), await this.updateComplete, this.f = !0;
71
+ super.firstUpdated(e), await this.updateComplete, this._loaded = !0;
72
72
  }
73
73
  disconnectedCallback() {
74
- super.disconnectedCallback(), this.g.disconnect();
74
+ super.disconnectedCallback(), this._toggleResizeObserver.disconnect();
75
75
  }
76
- h() {
77
- this.e(this.value), this.c();
76
+ _updateToggle() {
77
+ this._valueChanged(this.value), this._updateDisabled();
78
78
  }
79
- l() {
80
- this.a(!1), this.j.emit(), this.i.emit();
79
+ _handleInput() {
80
+ this._setCheckedPillPosition(!1), this._change.emit(), this._didChange.emit();
81
81
  }
82
- m(e) {
82
+ _handleKeyDown(e) {
83
83
  const t = this.options.filter(
84
84
  (s) => !s.disabled && y.isVisible(s)
85
85
  );
86
86
  if (!(!t || // don't trap nested handling
87
- e.target !== this && e.target.parentElement !== this) && w(e)) {
87
+ e.target !== this && e.target.parentElement !== this) && _(e)) {
88
88
  const s = t.findIndex(
89
89
  (o) => o.checked
90
- ), i = x(e, s, t.length);
90
+ ), i = w(e, s, t.length);
91
91
  t[i].checked || (t[i].checked = !0, t[i].focus(), t[i].dispatchEvent(
92
92
  new InputEvent("input", { bubbles: !0, composed: !0 })
93
93
  )), e.preventDefault();
94
94
  }
95
95
  }
96
96
  render() {
97
- return v`
97
+ return m`
98
98
  <div class="sbb-toggle">
99
- <slot @slotchange=${this.h}></slot>
99
+ <slot @slotchange=${this._updateToggle}></slot>
100
100
  </div>
101
101
  `;
102
102
  }
103
103
  };
104
- r.styles = E;
104
+ r.styles = z;
105
105
  r.events = {
106
106
  didChange: "didChange",
107
107
  change: "change"
108
108
  };
109
- l([
109
+ b([
110
110
  a({ reflect: !0, type: Boolean })
111
111
  ], r.prototype, "disabled", 1);
112
- l([
112
+ b([
113
113
  a({ reflect: !0, type: Boolean })
114
114
  ], r.prototype, "even", 2);
115
- l([
115
+ b([
116
116
  a({ reflect: !0 })
117
117
  ], r.prototype, "size", 2);
118
- l([
118
+ b([
119
119
  a()
120
120
  ], r.prototype, "value", 1);
121
- r = l([
121
+ r = b([
122
122
  f("sbb-toggle"),
123
- z({
123
+ k({
124
124
  role: "radiogroup"
125
125
  })
126
126
  ], r);
@@ -1 +1 @@
1
- {"version":3,"file":"train-formation.d.ts","sourceRoot":"","sources":["../../../../src/elements/train/train-formation/train-formation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAMb,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAIpF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;;AAUnD;;;;GAIG;AACH,qBACa,wBAAyB,SAAQ,6BAGjC;IACX,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,mBAA4B,mBAAmB,WAAiB;IAEhE,uCAAuC;IAC2C,cAAc,UACxF;IAEC,OAAO,CAAC,QAAQ,CAA0B;IAEnD,sDAAsD;IACtD,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,sBAAsB,CAA2D;IACzF,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,SAAS,CAAmC;IAEpC,iBAAiB,IAAI,IAAI;IAOzB,oBAAoB,IAAI,IAAI;IAK5C;;;OAGG;IACH,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,YAAY;YA0CN,mBAAmB;cAcd,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI;cAQ3E,MAAM,IAAI,cAAc;CAgC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,qBAAqB,EAAE,wBAAwB,CAAC;KACjD;CACF"}
1
+ {"version":3,"file":"train-formation.d.ts","sourceRoot":"","sources":["../../../../src/elements/train/train-formation/train-formation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,UAAU,EAEV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAMb,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAIpF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;;AAUnD;;;;GAIG;AACH,qBACa,wBAAyB,SAAQ,6BAGjC;IACX,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,mBAA4B,mBAAmB,WAAiB;IAEhE,uCAAuC;IAC2C,cAAc,UACxF;IAEC,OAAO,CAAC,QAAQ,CAA0B;IAEnD,sDAAsD;IACtD,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,sBAAsB,CAA2D;IACzF,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,SAAS,CAAmC;IAEpC,iBAAiB,IAAI,IAAI;IAOzB,oBAAoB,IAAI,IAAI;IAK5C;;;OAGG;IACH,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,YAAY;YA0CN,mBAAmB;cAcd,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI;cAQ3E,MAAM,IAAI,cAAc;CAkC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,qBAAqB,EAAE,wBAAwB,CAAC;KACjD;CACF"}
@@ -1,101 +1,101 @@
1
- import { css as c, LitElement as d, html as l } from "lit";
2
- import { property as f, state as h, customElement as m } from "lit/decorators.js";
3
- import { ref as p } from "lit/directives/ref.js";
4
- import { SbbConnectedAbortController as u, SbbLanguageController as g } from "../core/controllers.js";
5
- import { i18nSectorShort as v, i18nSector as w, i18nTrains as k } from "../core/i18n.js";
6
- import { SbbNamedSlotListMixin as _ } from "../core/mixins.js";
1
+ import { css as c, LitElement as d, html as e, nothing as f } from "lit";
2
+ import { property as h, state as p, customElement as m } from "lit/decorators.js";
3
+ import { ref as u } from "lit/directives/ref.js";
4
+ import { SbbConnectedAbortController as g, SbbLanguageController as v } from "../core/controllers.js";
5
+ import { i18nSectorShort as _, i18nSector as w, i18nTrains as k } from "../core/i18n.js";
6
+ import { SbbNamedSlotListMixin as y } from "../core/mixins.js";
7
7
  import { AgnosticResizeObserver as x } from "../core/observers.js";
8
- const y = c`*,:before,:after{box-sizing:border-box}:host{--sbb-train-formation-inline-padding: var(--sbb-spacing-fixed-4x);--sbb-train-formation-background-color: var(--sbb-color-white);--sbb-train-formation-sector-label-color: var(--sbb-color-metal);--sbb-train-formation-sector-line-color: var(--sbb-color-smoke);--sbb-train-formation-blocked-passage-width: 1rem;display:block}@media (forced-colors: active){:host{--sbb-train-formation-sector-line-color: CanvasText}}:host([hide-wagon-label]){--sbb-train-formation-wagon-label-display: none}.sbb-train-formation{--sbb-scrollbar-thumb-width: .125rem;--sbb-scrollbar-thumb-width-hover: .25rem;--sbb-scrollbar-width-firefox: thin;--sbb-scrollbar-color: var(--sbb-color-black-alpha-30);--sbb-scrollbar-color-hover: var(--sbb-color-black-alpha-60);--sbb-scrollbar-track-color: transparent;--sbb-scrollbar-width: var(--sbb-spacing-fixed-3x);display:grid;grid-template:"start sectors end" auto "start trains end" auto/auto 1fr auto;position:relative;overflow-x:auto;background-color:var(--sbb-train-formation-background-color)}.sbb-train-formation::-webkit-scrollbar{width:var(--sbb-scrollbar-width);height:var(--sbb-scrollbar-width);background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-train-formation::-webkit-scrollbar-corner{background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-train-formation::-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-train-formation::-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-train-formation::-webkit-scrollbar-button,.sbb-train-formation::-webkit-scrollbar-corner{display:none}@supports not selector(::-webkit-scrollbar){.sbb-train-formation{scrollbar-width:var(--sbb-scrollbar-width-firefox);scrollbar-color:var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent)}}.sbb-train-formation:before,.sbb-train-formation:after{content:"";display:block;width:var(--sbb-train-formation-inline-padding);background-color:var(--sbb-train-formation-background-color)}.sbb-train-formation:before{grid-area:start}.sbb-train-formation:after{grid-area:end}.sbb-train-formation__sectors{display:flex;grid-area:sectors;gap:var(--sbb-train-formation-wagon-gap)}.sbb-train-formation__sector{--_wagon-sum: var(--sbb-train-formation-wagon-count) * var(--sbb-train-formation-wagon-width);--_blocked-passage-sum: var(--sbb-train-formation-wagon-blocked-passage-count) * var(--sbb-train-formation-blocked-passage-width);--_total-count: calc( var(--sbb-train-formation-wagon-count) + var(--sbb-train-formation-wagon-blocked-passage-count) );--_gap-sum: calc((var(--_total-count) - 1) * var(--sbb-train-formation-wagon-gap));--_sector-width: calc(var(--_wagon-sum) + var(--_blocked-passage-sum) + var(--_gap-sum));--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);flex:0 0 var(--_sector-width);color:var(--sbb-train-formation-sector-label-color);text-align:center;position:relative;display:inline-block;margin-block-end:var(--sbb-spacing-fixed-4x);max-width:var(--_sector-width)}.sbb-train-formation__sector:before{content:"";position:absolute;top:50%;right:0;bottom:50%;left:0;height:1px;background-color:var(--sbb-train-formation-sector-line-color)}.sbb-train-formation__sector-sticky-wrapper{background-color:var(--sbb-train-formation-background-color);position:sticky;inset:auto 0;padding:0 var(--sbb-spacing-fixed-1x);margin:0 var(--sbb-spacing-fixed-2x);overflow:hidden;white-space:nowrap}.sbb-train-formation__trains{grid-area:trains}.sbb-train-formation__train-list{list-style:none;margin:0;padding:0;font-size:inherit;display:flex;gap:var(--sbb-train-formation-wagon-gap)}.sbb-train-formation__train-list>:is(li,span){display:inline-flex}`;
9
- var C = Object.defineProperty, L = Object.getOwnPropertyDescriptor, e = (r, a, i, t) => {
10
- for (var o = t > 1 ? void 0 : t ? L(a, i) : a, s = r.length - 1, b; s >= 0; s--)
11
- (b = r[s]) && (o = (t ? b(a, i, o) : b(o)) || o);
12
- return t && o && C(a, i, o), o;
8
+ const C = c`*,:before,:after{box-sizing:border-box}:host{--sbb-train-formation-inline-padding: var(--sbb-spacing-fixed-4x);--sbb-train-formation-background-color: var(--sbb-color-white);--sbb-train-formation-sector-label-color: var(--sbb-color-metal);--sbb-train-formation-sector-line-color: var(--sbb-color-smoke);--sbb-train-formation-blocked-passage-width: 1rem;display:block}@media (forced-colors: active){:host{--sbb-train-formation-sector-line-color: CanvasText}}:host([hide-wagon-label]){--sbb-train-formation-wagon-label-display: none}.sbb-train-formation{--sbb-scrollbar-thumb-width: .125rem;--sbb-scrollbar-thumb-width-hover: .25rem;--sbb-scrollbar-width-firefox: thin;--sbb-scrollbar-color: var(--sbb-color-black-alpha-30);--sbb-scrollbar-color-hover: var(--sbb-color-black-alpha-60);--sbb-scrollbar-track-color: transparent;--sbb-scrollbar-width: var(--sbb-spacing-fixed-3x);display:grid;grid-template:"start sectors end" auto "start trains end" auto/auto 1fr auto;position:relative;overflow-x:auto;background-color:var(--sbb-train-formation-background-color)}.sbb-train-formation::-webkit-scrollbar{width:var(--sbb-scrollbar-width);height:var(--sbb-scrollbar-width);background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-train-formation::-webkit-scrollbar-corner{background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-train-formation::-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-train-formation::-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-train-formation::-webkit-scrollbar-button,.sbb-train-formation::-webkit-scrollbar-corner{display:none}@supports not selector(::-webkit-scrollbar){.sbb-train-formation{scrollbar-width:var(--sbb-scrollbar-width-firefox);scrollbar-color:var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent)}}.sbb-train-formation:before,.sbb-train-formation:after{content:"";display:block;width:var(--sbb-train-formation-inline-padding);background-color:var(--sbb-train-formation-background-color)}.sbb-train-formation:before{grid-area:start}.sbb-train-formation:after{grid-area:end}.sbb-train-formation__sectors{display:flex;grid-area:sectors;gap:var(--sbb-train-formation-wagon-gap)}.sbb-train-formation__sector{--_wagon-sum: var(--sbb-train-formation-wagon-count) * var(--sbb-train-formation-wagon-width);--_blocked-passage-sum: var(--sbb-train-formation-wagon-blocked-passage-count) * var(--sbb-train-formation-blocked-passage-width);--_total-count: calc( var(--sbb-train-formation-wagon-count) + var(--sbb-train-formation-wagon-blocked-passage-count) );--_gap-sum: calc((var(--_total-count) - 1) * var(--sbb-train-formation-wagon-gap));--_sector-width: calc(var(--_wagon-sum) + var(--_blocked-passage-sum) + var(--_gap-sum));--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);flex:0 0 var(--_sector-width);color:var(--sbb-train-formation-sector-label-color);text-align:center;position:relative;display:inline-block;margin-block-end:var(--sbb-spacing-fixed-4x);max-width:var(--_sector-width)}.sbb-train-formation__sector:before{content:"";position:absolute;top:50%;right:0;bottom:50%;left:0;height:1px;background-color:var(--sbb-train-formation-sector-line-color)}.sbb-train-formation__sector-sticky-wrapper{background-color:var(--sbb-train-formation-background-color);position:sticky;inset:auto 0;padding:0 var(--sbb-spacing-fixed-1x);margin:0 var(--sbb-spacing-fixed-2x);overflow:hidden;white-space:nowrap}.sbb-train-formation__trains{grid-area:trains}.sbb-train-formation__train-list{list-style:none;margin:0;padding:0;font-size:inherit;display:flex;gap:var(--sbb-train-formation-wagon-gap)}.sbb-train-formation__train-list>:is(li,span){display:inline-flex}`;
9
+ var z = Object.defineProperty, L = Object.getOwnPropertyDescriptor, l = (r, t, i, a) => {
10
+ for (var o = a > 1 ? void 0 : a ? L(t, i) : t, s = r.length - 1, b; s >= 0; s--)
11
+ (b = r[s]) && (o = (a ? b(t, i, o) : b(o)) || o);
12
+ return a && o && z(t, i, o), o;
13
13
  };
14
- let n = class extends _(d) {
14
+ let n = class extends y(d) {
15
15
  constructor() {
16
- super(...arguments), this.listChildLocalNames = ["sbb-train"], this.hideWagonLabel = !1, this.e = [], this.b = new x(() => this.f()), this.g = new u(this), this.c = new g(this);
16
+ super(...arguments), this.listChildLocalNames = ["sbb-train"], this.hideWagonLabel = !1, this._sectors = [], this._contentResizeObserver = new x(() => this._applyCssWidth()), this._abort = new g(this), this._language = new v(this);
17
17
  }
18
18
  connectedCallback() {
19
19
  super.connectedCallback();
20
- const r = this.g.signal;
21
- this.addEventListener("trainSlotChange", (a) => this.d(a), { signal: r }), this.addEventListener("sectorChange", (a) => this.d(a), { signal: r });
20
+ const r = this._abort.signal;
21
+ this.addEventListener("trainSlotChange", (t) => this._readSectors(t), { signal: r }), this.addEventListener("sectorChange", (t) => this._readSectors(t), { signal: r });
22
22
  }
23
23
  disconnectedCallback() {
24
- super.disconnectedCallback(), this.b.disconnect();
24
+ super.disconnectedCallback(), this._contentResizeObserver.disconnect();
25
25
  }
26
26
  /**
27
27
  * Apply width of the scrollable space of the formation as a css variable. This will be used from
28
28
  * every slotted sbb-train for the direction-label
29
29
  */
30
- f() {
31
- const r = this.a.getBoundingClientRect().width;
32
- this.a.style.setProperty("--sbb-train-direction-width", `${r}px`);
30
+ _applyCssWidth() {
31
+ const r = this._formationDiv.getBoundingClientRect().width;
32
+ this._formationDiv.style.setProperty("--sbb-train-direction-width", `${r}px`);
33
33
  }
34
- d(r) {
35
- var a;
36
- r == null || r.stopPropagation(), this.e = Array.from(
37
- ((a = this.querySelectorAll) == null ? void 0 : a.call(
34
+ _readSectors(r) {
35
+ var t;
36
+ r == null || r.stopPropagation(), this._sectors = Array.from(
37
+ ((t = this.querySelectorAll) == null ? void 0 : t.call(
38
38
  this,
39
39
  "sbb-train-wagon,sbb-train-blocked-passage"
40
40
  )) ?? []
41
41
  ).reduce(
42
- (i, t) => {
42
+ (i, a) => {
43
43
  const o = i[i.length - 1];
44
- if (t.localName === "sbb-train-wagon") {
45
- const s = t.sector ?? t.getAttribute("sector");
44
+ if (a.localName === "sbb-train-wagon") {
45
+ const s = a.sector ?? a.getAttribute("sector");
46
46
  !o.label && s && (o.label = s), !s || o.label === s ? o.wagonCount++ : i.push({
47
47
  label: s,
48
48
  wagonCount: 1,
49
49
  blockedPassageCount: 0
50
50
  });
51
- } else t.localName === "sbb-train-blocked-passage" && o.blockedPassageCount++;
51
+ } else a.localName === "sbb-train-blocked-passage" && o.blockedPassageCount++;
52
52
  return i;
53
53
  },
54
54
  [{ wagonCount: 0, blockedPassageCount: 0 }]
55
55
  );
56
56
  }
57
- async h(r) {
58
- r && (this.b.disconnect(), this.a = r, this.b.observe(this.a), await this.updateComplete, this.f());
57
+ async _updateFormationDiv(r) {
58
+ r && (this._contentResizeObserver.disconnect(), this._formationDiv = r, this._contentResizeObserver.observe(this._formationDiv), await this.updateComplete, this._applyCssWidth());
59
59
  }
60
60
  willUpdate(r) {
61
- super.willUpdate(r), r.has("listChildren") && this.d();
61
+ super.willUpdate(r), r.has("listChildren") && this._readSectors();
62
62
  }
63
63
  render() {
64
- return l`
65
- <div class="sbb-train-formation" ${p(this.h)}>
66
- <div class="sbb-train-formation__sectors" aria-hidden="true">
67
- ${this.e.map(
68
- (r) => l`<span
69
- class="sbb-train-formation__sector"
70
- style="
64
+ return e`
65
+ <div class="sbb-train-formation" ${u(this._updateFormationDiv)}>
66
+ ${this._sectors.length && this._sectors[0].label !== void 0 ? e`<div class="sbb-train-formation__sectors" aria-hidden="true">
67
+ ${this._sectors.map(
68
+ (r) => e`<span
69
+ class="sbb-train-formation__sector"
70
+ style="
71
71
  --sbb-train-formation-wagon-count: ${r.wagonCount};
72
72
  --sbb-train-formation-wagon-blocked-passage-count: ${r.blockedPassageCount}"
73
- >
74
- <span class="sbb-train-formation__sector-sticky-wrapper">
75
- ${`${r.wagonCount === 1 && r.label ? v[this.c.current] : w[this.c.current]} ${r.label ? r.label : ""}`}
76
- </span>
77
- </span>`
73
+ >
74
+ <span class="sbb-train-formation__sector-sticky-wrapper">
75
+ ${`${r.wagonCount === 1 && r.label ? _[this._language.current] : w[this._language.current]} ${r.label ? r.label : ""}`}
76
+ </span>
77
+ </span>`
78
78
  )}
79
- </div>
79
+ </div>` : f}
80
80
 
81
81
  <div class="sbb-train-formation__trains">
82
82
  ${this.renderList({
83
83
  class: "sbb-train-formation__train-list",
84
- ariaLabel: k[this.c.current]
84
+ ariaLabel: k[this._language.current]
85
85
  })}
86
86
  </div>
87
87
  </div>
88
88
  `;
89
89
  }
90
90
  };
91
- n.styles = y;
92
- e([
93
- f({ attribute: "hide-wagon-label", reflect: !0, type: Boolean })
91
+ n.styles = C;
92
+ l([
93
+ h({ attribute: "hide-wagon-label", reflect: !0, type: Boolean })
94
94
  ], n.prototype, "hideWagonLabel", 2);
95
- e([
96
- h()
97
- ], n.prototype, "e", 2);
98
- n = e([
95
+ l([
96
+ p()
97
+ ], n.prototype, "_sectors", 2);
98
+ n = l([
99
99
  m("sbb-train-formation")
100
100
  ], n);
101
101
  export {