@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,261 +1,261 @@
1
- import { css as m, LitElement as f, html as v } from "lit";
2
- import { property as l, state as w, customElement as g } from "lit/decorators.js";
3
- import { readConfig as y } from "../core/config.js";
4
- import { SbbConnectedAbortController as D, SbbLanguageController as C } from "../core/controllers.js";
5
- import { defaultDateAdapter as p } from "../core/datetime.js";
6
- import { findReferencedElement as x, findInput as u } from "../core/dom.js";
1
+ import { css as c, LitElement as b, html as f } from "lit";
2
+ import { property as u, state as E, customElement as g } from "lit/decorators.js";
3
+ import { readConfig as v } from "../core/config.js";
4
+ import { SbbConnectedAbortController as C, SbbLanguageController as w } from "../core/controllers.js";
5
+ import { defaultDateAdapter as m } from "../core/datetime.js";
6
+ import { findReferencedElement as D, findInput as h } from "../core/dom.js";
7
7
  import { EventEmitter as d } from "../core/eventing.js";
8
- import { i18nDatePickerPlaceholder as c, i18nDateChangedTo as E } from "../core/i18n.js";
9
- import { AgnosticMutationObserver as V } from "../core/observers.js";
10
- const k = m`:host{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}`;
11
- var A = Object.defineProperty, O = Object.getOwnPropertyDescriptor, o = (t, e, s, a) => {
12
- for (var i = a > 1 ? void 0 : a ? O(e, s) : e, r = t.length - 1, h; r >= 0; r--)
13
- (h = t[r]) && (i = (a ? h(e, s, i) : h(i)) || i);
14
- return a && i && A(e, s, i), i;
8
+ import { i18nDatePickerPlaceholder as p, i18nDateChangedTo as A } from "../core/i18n.js";
9
+ import { AgnosticMutationObserver as y } from "../core/observers.js";
10
+ const V = c`:host{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}`;
11
+ var x = Object.defineProperty, P = Object.getOwnPropertyDescriptor, l = (t, e, n, a) => {
12
+ for (var i = a > 1 ? void 0 : a ? P(e, n) : e, s = t.length - 1, o; s >= 0; s--)
13
+ (o = t[s]) && (i = (a ? o(e, n, i) : o(i)) || i);
14
+ return a && i && x(e, n, i), i;
15
15
  };
16
16
  const U = /(^0?[1-9]?|[12]?[0-9]?|3?[01]?)[.,\\/\-\s](0?[1-9]?|1?[0-2]?)?[.,\\/\-\s](\d{1,4}$)?/;
17
- function S(t, e) {
18
- var s;
17
+ function N(t, e) {
18
+ var n;
19
19
  if (!e) {
20
- const a = (s = t.closest) == null ? void 0 : s.call(t, "sbb-form-field");
20
+ const a = (n = t.closest) == null ? void 0 : n.call(t, "sbb-form-field");
21
21
  return a == null ? void 0 : a.querySelector("sbb-datepicker");
22
22
  }
23
- return x(e);
23
+ return D(e);
24
24
  }
25
- function b(t, e, s, a) {
25
+ function _(t, e, n, a) {
26
26
  let i = a.addCalendarDays(t, e);
27
- if (s)
28
- for (; !s(i); )
27
+ if (n)
28
+ for (; !n(i); )
29
29
  i = a.addCalendarDays(i, e);
30
30
  return i;
31
31
  }
32
- function $(t, e, s, a) {
33
- const i = b(t, -1, e, s), r = s.deserialize(a);
34
- return !r || s.isValid(r) && s.compareDate(i, r) >= 0 ? i : t;
32
+ function $(t, e, n, a) {
33
+ const i = _(t, -1, e, n), s = n.deserialize(a);
34
+ return !s || n.isValid(s) && n.compareDate(i, s) >= 0 ? i : t;
35
35
  }
36
- function q(t, e, s, a) {
37
- const i = b(t, 1, e, s), r = s.deserialize(a);
38
- return !r || s.isValid(r) && s.compareDate(i, r) <= 0 ? i : t;
36
+ function H(t, e, n, a) {
37
+ const i = _(t, 1, e, n), s = n.deserialize(a);
38
+ return !s || n.isValid(s) && n.compareDate(i, s) <= 0 ? i : t;
39
39
  }
40
- function F(t, e, s, a) {
41
- const i = p, r = i.deserialize(s), h = i.deserialize(a);
42
- return i.isValid(r) && i.compareDate(t, r) < 0 || i.isValid(h) && i.compareDate(t, h) > 0 ? !1 : e ? e(t) : !0;
40
+ function k(t, e, n, a) {
41
+ const i = m, s = i.deserialize(n), o = i.deserialize(a);
42
+ return i.isValid(s) && i.compareDate(t, s) < 0 || i.isValid(o) && i.compareDate(t, o) > 0 ? !1 : e ? e(t) : !0;
43
43
  }
44
- const L = () => new CustomEvent("datepickerControlRegistered", {
44
+ const j = () => new CustomEvent("datepickerControlRegistered", {
45
45
  bubbles: !1,
46
46
  composed: !0
47
47
  });
48
- let n = class extends f {
48
+ let r = class extends b {
49
49
  constructor() {
50
50
  var t;
51
- super(...arguments), this.wide = !1, this.dateFilter = () => !0, this.g = null, this.p = new d(this, n.events.didChange, {
51
+ super(...arguments), this.wide = !1, this.dateFilter = () => !0, this._now = null, this._didChange = new d(this, r.events.didChange, {
52
52
  bubbles: !0,
53
53
  cancelable: !0
54
- }), this.q = new d(this, n.events.change, {
54
+ }), this._change = new d(this, r.events.change, {
55
55
  bubbles: !0
56
- }), this.j = new d(
56
+ }), this._inputUpdated = new d(
57
57
  this,
58
- n.events.inputUpdated,
58
+ r.events.inputUpdated,
59
59
  { bubbles: !0, cancelable: !0 }
60
- ), this.r = new d(
60
+ ), this._datePickerUpdated = new d(
61
61
  this,
62
- n.events.datePickerUpdated,
62
+ r.events.datePickerUpdated,
63
63
  {
64
64
  bubbles: !0,
65
65
  cancelable: !0
66
66
  }
67
- ), this.s = new d(
67
+ ), this._validationChange = new d(
68
68
  this,
69
- n.events.validationChange
70
- ), this.c = null, this.h = new V(this.l.bind(this)), this.b = ((t = y().datetime) == null ? void 0 : t.dateAdapter) ?? p, this.w = new D(this), this.e = new C(this).withHandler(() => {
71
- if (this.a) {
72
- this.a.placeholder = c[this.e.current];
69
+ r.events.validationChange
70
+ ), this._inputElementState = null, this._inputObserver = new y(this._onInputPropertiesChange.bind(this)), this._dateAdapter = ((t = v().datetime) == null ? void 0 : t.dateAdapter) ?? m, this._abort = new C(this), this._language = new w(this).withHandler(() => {
71
+ if (this._inputElement) {
72
+ this._inputElement.placeholder = p[this._language.current];
73
73
  const e = this.getValueAsDate();
74
- e && (this.a.value = this.f(e));
74
+ e && (this._inputElement.value = this._format(e));
75
75
  }
76
76
  });
77
77
  }
78
78
  set now(t) {
79
- this.g = this.b.getValidDateOrNull(this.b.deserialize(t));
79
+ this._now = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(t));
80
80
  }
81
81
  get now() {
82
- return this.g ?? this.b.today();
82
+ return this._now ?? this._dateAdapter.today();
83
83
  }
84
- get a() {
85
- return this.c;
84
+ get _inputElement() {
85
+ return this._inputElementState;
86
86
  }
87
- set a(t) {
88
- const e = this.c;
89
- this.c = t, this.t(this.c, e);
87
+ set _inputElement(t) {
88
+ const e = this._inputElementState;
89
+ this._inputElementState = t, this._registerInputElement(this._inputElementState, e);
90
90
  }
91
- u(t, e) {
92
- t !== e && (this.a = u(this, this.input));
91
+ _findInput(t, e) {
92
+ t !== e && (this._inputElement = h(this, this.input));
93
93
  }
94
- t(t, e) {
95
- var s, a;
94
+ _registerInputElement(t, e) {
95
+ var n, a;
96
96
  if (t !== e) {
97
- if ((s = this.d) == null || s.abort(), this.d = new AbortController(), !this.a)
97
+ if ((n = this._datePickerController) == null || n.abort(), this._datePickerController = new AbortController(), !this._inputElement)
98
98
  return;
99
- (a = this.h) == null || a.disconnect(), this.h.observe(this.a, {
99
+ (a = this._inputObserver) == null || a.disconnect(), this._inputObserver.observe(this._inputElement, {
100
100
  attributeFilter: ["disabled", "readonly", "min", "max", "value"]
101
- }), this.a.type = "text", this.a.placeholder || (this.a.placeholder = c[this.e.current]), this.a.addEventListener(
101
+ }), this._inputElement.type = "text", this._inputElement.placeholder || (this._inputElement.placeholder = p[this._language.current]), this._inputElement.addEventListener(
102
102
  "change",
103
103
  (i) => {
104
- i instanceof CustomEvent || this.v(i);
104
+ i instanceof CustomEvent || this._valueChanged(i);
105
105
  },
106
106
  {
107
- signal: this.d.signal
107
+ signal: this._datePickerController.signal
108
108
  }
109
109
  );
110
110
  }
111
111
  }
112
112
  /** Gets the input value with the correct date format. */
113
113
  getValueAsDate() {
114
- if (this.a && this.a.value)
115
- return this.i(this.a.value);
114
+ if (this._inputElement && this._inputElement.value)
115
+ return this._parse(this._inputElement.value);
116
116
  }
117
117
  /** Set the input value to the correctly formatted value. */
118
118
  setValueAsDate(t) {
119
119
  const e = t instanceof Date ? t : new Date(t);
120
- this.a && (this.k(this.a.value, e), this.a.dispatchEvent(new Event("blur", { composed: !0 })));
120
+ this._inputElement && (this._formatAndUpdateValue(this._inputElement.value, e), this._inputElement.dispatchEvent(new Event("blur", { composed: !0 })));
121
121
  }
122
122
  /**
123
123
  * @internal
124
124
  * Whether a custom now is configured.
125
125
  */
126
126
  hasCustomNow() {
127
- return !!this.g;
127
+ return !!this._now;
128
128
  }
129
- l(t) {
130
- var e, s, a, i;
131
- this.j.emit({
132
- disabled: (e = this.a) == null ? void 0 : e.disabled,
133
- readonly: (s = this.a) == null ? void 0 : s.readOnly,
134
- min: (a = this.a) == null ? void 0 : a.min,
135
- max: (i = this.a) == null ? void 0 : i.max
136
- }), this.a && t && Array.from(t).some((r) => r.attributeName === "value") && (this.a.value = this.m(this.a.getAttribute("value")));
129
+ _onInputPropertiesChange(t) {
130
+ var e, n, a, i;
131
+ this._inputUpdated.emit({
132
+ disabled: (e = this._inputElement) == null ? void 0 : e.disabled,
133
+ readonly: (n = this._inputElement) == null ? void 0 : n.readOnly,
134
+ min: (a = this._inputElement) == null ? void 0 : a.min,
135
+ max: (i = this._inputElement) == null ? void 0 : i.max
136
+ }), this._inputElement && t && Array.from(t).some((s) => s.attributeName === "value") && (this._inputElement.value = this._getValidValue(this._inputElement.getAttribute("value")));
137
137
  }
138
138
  connectedCallback() {
139
139
  super.connectedCallback();
140
- const t = this.w.signal;
141
- this.addEventListener("datepickerControlRegistered", () => this.l(), {
140
+ const t = this._abort.signal;
141
+ this.addEventListener("datepickerControlRegistered", () => this._onInputPropertiesChange(), {
142
142
  signal: t
143
- }), this.a = u(this, this.input), this.a && (this.a.value = this.m(this.a.value), this.j.emit({
144
- disabled: this.a.disabled,
145
- readonly: this.a.readOnly,
146
- min: this.a.min,
147
- max: this.a.max
143
+ }), this._inputElement = h(this, this.input), this._inputElement && (this._inputElement.value = this._getValidValue(this._inputElement.value), this._inputUpdated.emit({
144
+ disabled: this._inputElement.disabled,
145
+ readonly: this._inputElement.readOnly,
146
+ min: this._inputElement.min,
147
+ max: this._inputElement.max
148
148
  }));
149
149
  }
150
150
  willUpdate(t) {
151
- super.willUpdate(t), t.has("input") && this.u(this.input, t.get("input")), (t.has("wide") || t.has("dateFilter") || t.has("now")) && this.r.emit();
151
+ super.willUpdate(t), t.has("input") && this._findInput(this.input, t.get("input")), (t.has("wide") || t.has("dateFilter") || t.has("now")) && this._datePickerUpdated.emit();
152
152
  }
153
153
  disconnectedCallback() {
154
154
  var t, e;
155
- super.disconnectedCallback(), (t = this.h) == null || t.disconnect(), (e = this.d) == null || e.abort();
155
+ super.disconnectedCallback(), (t = this._inputObserver) == null || t.disconnect(), (e = this._datePickerController) == null || e.abort();
156
156
  }
157
157
  firstUpdated(t) {
158
- super.firstUpdated(t), this.n(this.getValueAsDate());
158
+ super.firstUpdated(t), this._setAriaLiveMessage(this.getValueAsDate());
159
159
  }
160
- x(t) {
161
- const e = this.i(t);
162
- return this.b.isValid(e) ? this.f(e) : t;
160
+ _parseAndFormatValue(t) {
161
+ const e = this._parse(t);
162
+ return this._dateAdapter.isValid(e) ? this._format(e) : t;
163
163
  }
164
- o(t) {
164
+ _createAndComposeDate(t) {
165
165
  const e = new Date(t);
166
- return this.f(e);
166
+ return this._format(e);
167
167
  }
168
- v(t) {
168
+ _valueChanged(t) {
169
169
  const e = t.target.value;
170
- this.k(e, this.i(e));
170
+ this._formatAndUpdateValue(e, this._parse(e));
171
171
  }
172
172
  /** Applies the correct format to values and triggers event dispatch. */
173
- k(t, e) {
174
- var s, a;
175
- if (this.a) {
176
- this.a.value = this.b.isValid(e) ? this.f(e) : t;
177
- const i = !t || !!e && F(
173
+ _formatAndUpdateValue(t, e) {
174
+ var n, a;
175
+ if (this._inputElement) {
176
+ this._inputElement.value = this._dateAdapter.isValid(e) ? this._format(e) : t;
177
+ const i = !t || !!e && k(
178
178
  e,
179
179
  this.dateFilter,
180
- (s = this.a) == null ? void 0 : s.min,
181
- (a = this.a) == null ? void 0 : a.max
182
- ), r = !this.a.hasAttribute("data-sbb-invalid");
183
- this.a.toggleAttribute("data-sbb-invalid", !i), r !== i && this.s.emit({ valid: i }), this.y(e);
180
+ (n = this._inputElement) == null ? void 0 : n.min,
181
+ (a = this._inputElement) == null ? void 0 : a.max
182
+ ), s = !this._inputElement.hasAttribute("data-sbb-invalid");
183
+ this._inputElement.toggleAttribute("data-sbb-invalid", !i), s !== i && this._validationChange.emit({ valid: i }), this._emitChange(e);
184
184
  }
185
185
  }
186
186
  /** Emits the change event. */
187
- y(t) {
188
- this.n(t), this.q.emit(), this.p.emit(), this.a && (this.a.dispatchEvent(new InputEvent("input", { bubbles: !0, composed: !0 })), this.a.dispatchEvent(
187
+ _emitChange(t) {
188
+ this._setAriaLiveMessage(t), this._change.emit(), this._didChange.emit(), this._inputElement && (this._inputElement.dispatchEvent(new InputEvent("input", { bubbles: !0, composed: !0 })), this._inputElement.dispatchEvent(
189
189
  new CustomEvent("change", { bubbles: !0, composed: !0 })
190
190
  ));
191
191
  }
192
- m(t) {
192
+ _getValidValue(t) {
193
193
  if (!t)
194
194
  return "";
195
195
  const e = t.match(U);
196
- return (e == null ? void 0 : e.index) === 0 ? this.x(t) : Number.isInteger(+t) ? this.o(+t) : this.b.isValid(new Date(t)) ? this.o(t) : t;
196
+ return (e == null ? void 0 : e.index) === 0 ? this._parseAndFormatValue(t) : Number.isInteger(+t) ? this._createAndComposeDate(+t) : this._dateAdapter.isValid(new Date(t)) ? this._createAndComposeDate(t) : t;
197
197
  }
198
- i(t) {
199
- return this.dateParser ? this.dateParser(t) : this.b.parse(t, this.now);
198
+ _parse(t) {
199
+ return this.dateParser ? this.dateParser(t) : this._dateAdapter.parse(t, this.now);
200
200
  }
201
- f(t) {
202
- return this.format ? this.format(t) : this.b.format(t);
201
+ _format(t) {
202
+ return this.format ? this.format(t) : this._dateAdapter.format(t);
203
203
  }
204
- n(t) {
205
- var i, r;
206
- const e = new Intl.DateTimeFormat(`${this.e.current}-CH`, {
204
+ _setAriaLiveMessage(t) {
205
+ var i, s;
206
+ const e = new Intl.DateTimeFormat(`${this._language.current}-CH`, {
207
207
  weekday: "long"
208
- }), s = new Intl.DateTimeFormat("de-CH", {
208
+ }), n = new Intl.DateTimeFormat("de-CH", {
209
209
  day: "2-digit",
210
210
  month: "2-digit",
211
211
  year: "numeric"
212
- }), a = (r = (i = this.shadowRoot) == null ? void 0 : i.querySelector) == null ? void 0 : r.call(i, "#status-container");
213
- a && (a.innerText = t ? `${E[this.e.current]} ${e.format(
212
+ }), a = (s = (i = this.shadowRoot) == null ? void 0 : i.querySelector) == null ? void 0 : s.call(i, "#status-container");
213
+ a && (a.innerText = t ? `${A[this._language.current]} ${e.format(
214
214
  t
215
- )}, ${s.format(t)}` : "");
215
+ )}, ${n.format(t)}` : "");
216
216
  }
217
217
  render() {
218
- return v`<p id="status-container" role="status"></p>`;
218
+ return f`<p id="status-container" role="status"></p>`;
219
219
  }
220
220
  };
221
- n.styles = k;
222
- n.events = {
221
+ r.styles = V;
222
+ r.events = {
223
223
  didChange: "didChange",
224
224
  change: "change",
225
225
  inputUpdated: "inputUpdated",
226
226
  datePickerUpdated: "datePickerUpdated",
227
227
  validationChange: "validationChange"
228
228
  };
229
- o([
230
- l({ type: Boolean })
231
- ], n.prototype, "wide", 2);
232
- o([
233
- l({ attribute: "date-filter" })
234
- ], n.prototype, "dateFilter", 2);
235
- o([
236
- l({ attribute: "date-parser" })
237
- ], n.prototype, "dateParser", 2);
238
- o([
239
- l()
240
- ], n.prototype, "format", 2);
241
- o([
242
- l()
243
- ], n.prototype, "input", 2);
244
- o([
245
- l()
246
- ], n.prototype, "now", 1);
247
- o([
248
- w()
249
- ], n.prototype, "a", 1);
250
- n = o([
229
+ l([
230
+ u({ type: Boolean })
231
+ ], r.prototype, "wide", 2);
232
+ l([
233
+ u({ attribute: "date-filter" })
234
+ ], r.prototype, "dateFilter", 2);
235
+ l([
236
+ u({ attribute: "date-parser" })
237
+ ], r.prototype, "dateParser", 2);
238
+ l([
239
+ u()
240
+ ], r.prototype, "format", 2);
241
+ l([
242
+ u()
243
+ ], r.prototype, "input", 2);
244
+ l([
245
+ u()
246
+ ], r.prototype, "now", 1);
247
+ l([
248
+ E()
249
+ ], r.prototype, "_inputElement", 1);
250
+ r = l([
251
251
  g("sbb-datepicker")
252
- ], n);
252
+ ], r);
253
253
  export {
254
- n as SbbDatepickerElement,
255
- L as datepickerControlRegisteredEventFactory,
256
- q as findNextAvailableDate,
254
+ r as SbbDatepickerElement,
255
+ j as datepickerControlRegisteredEventFactory,
256
+ H as findNextAvailableDate,
257
257
  $ as findPreviousAvailableDate,
258
- b as getAvailableDate,
259
- S as getDatePicker,
260
- F as isDateAvailable
258
+ _ as getAvailableDate,
259
+ N as getDatePicker,
260
+ k as isDateAvailable
261
261
  };
@@ -1,17 +1,12 @@
1
- import { CSSResultGroup, LitElement, PropertyValues, TemplateResult } from 'lit';
2
- import { SbbCheckedStateChange, SbbDisabledStateChange, SbbIconPlacement, SbbStateChange } from '../../core/interfaces.js';
3
- import { SbbCheckboxGroupElement } from '../checkbox-group.js';
1
+ import { LitElement, CSSResultGroup, TemplateResult } from 'lit';
2
+ import { SbbIconPlacement } from '../../core/interfaces.js';
4
3
 
5
- export type SbbCheckboxStateChange = Extract<SbbStateChange, SbbDisabledStateChange | SbbCheckedStateChange>;
6
- export type SbbCheckboxSize = 's' | 'm';
7
- declare const SbbCheckboxElement_base: import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbUpdateSchedulerMixinType> & import('../../core/mixins.js').Constructor<import('../../core/mixins.js').SbbFormAssociatedCheckboxMixinType> & import('../../core/mixins.js').AbstractConstructor<import('../../icon.js').SbbIconNameMixinType> & import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbHydrationMixinType> & typeof LitElement;
4
+ declare const SbbCheckboxElement_base: import('../../core/mixins.js').Constructor<import('../common.js').SbbCheckboxCommonElementMixinType> & import('../../core/mixins.js').AbstractConstructor<import('../../icon.js').SbbIconNameMixinType> & typeof LitElement;
8
5
  /**
9
6
  * It displays a checkbox enhanced with the SBB Design.
10
7
  *
11
8
  * @slot - Use the unnamed slot to add content to the `sbb-checkbox`.
12
9
  * @slot icon - Slot used to render the checkbox icon (disabled inside a selection panel).
13
- * @slot subtext - Slot used to render a subtext under the label (only visible within a selection panel).
14
- * @slot suffix - Slot used to render additional content after the label (only visible within a selection panel).
15
10
  * @event {CustomEvent<void>} didChange - Deprecated. used for React. Will probably be removed once React 19 is available.
16
11
  * @event {Event} change - Event fired on change.
17
12
  * @event {InputEvent} input - Event fired on input.
@@ -20,48 +15,10 @@ export declare class SbbCheckboxElement extends SbbCheckboxElement_base {
20
15
  static styles: CSSResultGroup;
21
16
  static readonly events: {
22
17
  readonly didChange: "didChange";
23
- readonly stateChange: "stateChange";
24
- readonly checkboxLoaded: "checkboxLoaded";
25
18
  };
26
- /** Whether the checkbox is indeterminate. */
27
- indeterminate: boolean;
28
19
  /** The label position relative to the labelIcon. Defaults to end */
29
20
  iconPlacement: SbbIconPlacement;
30
- /** Label size variant, either m or s. */
31
- set size(value: SbbCheckboxSize);
32
- get size(): SbbCheckboxSize;
33
- private _size;
34
- /** Reference to the connected checkbox group. */
35
- get group(): SbbCheckboxGroupElement | null;
36
- private _group;
37
- /**
38
- * Whether the input is the main input of a selection panel.
39
- * @internal
40
- */
41
- get isSelectionPanelInput(): boolean;
42
- /** The label describing whether the selection panel is expanded (for screen readers only). */
43
- private _selectionPanelExpandedLabel;
44
- private _language;
45
- private _selectionPanelElement;
46
- /**
47
- * @internal
48
- * Internal event that emits whenever the state of the checkbox
49
- * in relation to the parent selection panel changes.
50
- */
51
- private _stateChange;
52
- /**
53
- * @internal
54
- * Internal event that emits when the checkbox is loaded.
55
- */
56
- private _checkboxLoaded;
57
21
  constructor();
58
- connectedCallback(): void;
59
- protected willUpdate(changedProperties: PropertyValues<this>): Promise<void>;
60
- protected firstUpdated(changedProperties: PropertyValues<this>): void;
61
- protected isDisabledExternally(): boolean;
62
- protected isRequiredExternally(): boolean;
63
- protected withUserInteraction(): void;
64
- private _updateExpandedLabel;
65
22
  protected render(): TemplateResult;
66
23
  }
67
24
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../../../../src/elements/checkbox/checkbox/checkbox.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAMb,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACf,MAAM,0BAA0B,CAAC;AAQlC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAIpE,OAAO,6BAA6B,CAAC;AACrC,OAAO,0BAA0B,CAAC;AAElC,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAC1C,cAAc,EACd,sBAAsB,GAAG,qBAAqB,CAC/C,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,GAAG,GAAG,GAAG,CAAC;;AAExC;;;;;;;;;;GAUG;AACH,qBACa,kBAAmB,SAAQ,uBAEvC;IACC,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;;;MAIlB;IAEX,6CAA6C;IACT,aAAa,UAAS;IAE1D,oEAAoE;IAE7D,aAAa,EAAE,gBAAgB,CAAS;IAE/C,yCAAyC;IACzC,IACW,IAAI,CAAC,KAAK,EAAE,eAAe,EAErC;IACD,IAAW,IAAI,IAAI,eAAe,CAEjC;IACD,OAAO,CAAC,KAAK,CAAwB;IAErC,iDAAiD;IACjD,IAAW,KAAK,IAAI,uBAAuB,GAAG,IAAI,CAEjD;IACD,OAAO,CAAC,MAAM,CAAwC;IAEtD;;;OAGG;IACH,IAAW,qBAAqB,IAAI,OAAO,CAE1C;IAED,8FAA8F;IACrF,OAAO,CAAC,4BAA4B,CAAU;IAEvD,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,sBAAsB,CAAyC;IAEvE;;;;OAIG;IACH,OAAO,CAAC,YAAY,CAIlB;IAEF;;;OAGG;IACH,OAAO,CAAC,eAAe,CAIrB;;IAOc,iBAAiB,IAAI,IAAI;cAiBhB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;cAmBxE,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAW3D,oBAAoB,IAAI,OAAO;cAI/B,oBAAoB,IAAI,OAAO;cAI/B,mBAAmB,IAAI,IAAI;YAMhC,oBAAoB;cAcf,MAAM,IAAI,cAAc;CA0B5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,cAAc,EAAE,kBAAkB,CAAC;KACpC;CACF"}
1
+ {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../../../../src/elements/checkbox/checkbox/checkbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAIjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAIjE,OAAO,0BAA0B,CAAC;;AAIlC;;;;;;;;GAQG;AACH,qBACa,kBAAmB,SAAQ,uBAEvC;IACC,OAAuB,MAAM,EAAE,cAAc,CAAwC;IAErF,gBAAuB,MAAM;;MAElB;IAEX,oEAAoE;IAE7D,aAAa,EAAE,gBAAgB,CAAS;;cAO5B,MAAM,IAAI,cAAc;CAuB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,cAAc,EAAE,kBAAkB,CAAC;KACpC;CACF"}
@@ -1,6 +1,8 @@
1
1
  import { CSSResultGroup, PropertyValues, TemplateResult, LitElement } from 'lit';
2
2
  import { SbbHorizontalFrom, SbbOrientation } from '../../core/interfaces.js';
3
- import { SbbCheckboxElement, SbbCheckboxSize } from '../checkbox.js';
3
+ import { SbbCheckboxPanelElement } from '../checkbox-panel.js';
4
+ import { SbbCheckboxElement } from '../checkbox.js';
5
+ import { SbbCheckboxSize } from '../common.js';
4
6
 
5
7
  declare const SbbCheckboxGroupElement_base: import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbDisabledMixinType> & typeof LitElement;
6
8
  /**
@@ -20,7 +22,7 @@ export declare class SbbCheckboxGroupElement extends SbbCheckboxGroupElement_bas
20
22
  /** Indicates the orientation of the checkboxes inside the `<sbb-checkbox-group>`. */
21
23
  orientation: SbbOrientation;
22
24
  /** List of contained checkbox elements. */
23
- get checkboxes(): SbbCheckboxElement[];
25
+ get checkboxes(): (SbbCheckboxElement | SbbCheckboxPanelElement)[];
24
26
  private _abort;
25
27
  constructor();
26
28
  connectedCallback(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox-group.d.ts","sourceRoot":"","sources":["../../../../../src/elements/checkbox/checkbox-group/checkbox-group.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAKvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAElF,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;;AAI1E;;;;;GAKG;AACH,qBACa,uBAAwB,SAAQ,4BAA4B;IACvE,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,8CAA8C;IACK,QAAQ,UAAS;IAEpE,mCAAmC;IAChB,IAAI,EAAE,eAAe,CAAO;IAE/C,yDAAyD;IAElD,cAAc,CAAC,EAAE,iBAAiB,CAAC;IAE1C,qFAAqF;IAE9E,WAAW,EAAE,cAAc,CAAgB;IAElD,2CAA2C;IAC3C,IAAW,UAAU,IAAI,kBAAkB,EAAE,CAI5C;IAED,OAAO,CAAC,MAAM,CAAsE;;IAOpE,iBAAiB,IAAI,IAAI;cAOtB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAc5E,OAAO,CAAC,cAAc;cAyBH,MAAM,IAAI,cAAc;CAU5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,oBAAoB,EAAE,uBAAuB,CAAC;KAC/C;CACF"}
1
+ {"version":3,"file":"checkbox-group.d.ts","sourceRoot":"","sources":["../../../../../src/elements/checkbox/checkbox-group/checkbox-group.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAKvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAElF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;;AAIpD;;;;;GAKG;AACH,qBACa,uBAAwB,SAAQ,4BAA4B;IACvE,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,8CAA8C;IACK,QAAQ,UAAS;IAEpE,mCAAmC;IAChB,IAAI,EAAE,eAAe,CAAO;IAE/C,yDAAyD;IAElD,cAAc,CAAC,EAAE,iBAAiB,CAAC;IAE1C,qFAAqF;IAE9E,WAAW,EAAE,cAAc,CAAgB;IAElD,2CAA2C;IAC3C,IAAW,UAAU,IAAI,CAAC,kBAAkB,GAAG,uBAAuB,CAAC,EAAE,CAMxE;IAED,OAAO,CAAC,MAAM,CAAsE;;IAOpE,iBAAiB,IAAI,IAAI;cAUtB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAc5E,OAAO,CAAC,cAAc;cA0BH,MAAM,IAAI,cAAc;CAU5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,oBAAoB,EAAE,uBAAuB,CAAC;KAC/C;CACF"}