@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
package/accordion.js CHANGED
@@ -1,88 +1,88 @@
1
- import { css as h, LitElement as b, html as p } from "lit";
2
- import { property as c, customElement as f } from "lit/decorators.js";
3
- import { SbbConnectedAbortController as d } from "./core/controllers.js";
4
- import { SbbHydrationMixin as u } from "./core/mixins.js";
5
- import { SbbExpansionPanelElement as m } from "./expansion-panel.js";
6
- const v = h`*,:before,:after{box-sizing:border-box}:host{display:block}`;
7
- var g = Object.defineProperty, x = Object.getOwnPropertyDescriptor, o = (t, e, s, l) => {
8
- for (var i = l > 1 ? void 0 : l ? x(e, s) : e, a = t.length - 1, n; a >= 0; a--)
9
- (n = t[a]) && (i = (l ? n(e, s, i) : n(i)) || i);
10
- return l && i && g(e, s, i), i;
1
+ import { css as c, LitElement as p, html as b } from "lit";
2
+ import { property as h, customElement as _ } from "lit/decorators.js";
3
+ import { SbbConnectedAbortController as u } from "./core/controllers.js";
4
+ import { SbbHydrationMixin as d } from "./core/mixins.js";
5
+ import { SbbExpansionPanelElement as f } from "./expansion-panel.js";
6
+ const m = c`*,:before,:after{box-sizing:border-box}:host{display:block}`;
7
+ var v = Object.defineProperty, x = Object.getOwnPropertyDescriptor, o = (e, t, l, i) => {
8
+ for (var s = i > 1 ? void 0 : i ? x(t, l) : t, r = e.length - 1, a; r >= 0; r--)
9
+ (a = e[r]) && (s = (i ? a(t, l, s) : a(s)) || s);
10
+ return i && s && v(t, l, s), s;
11
11
  };
12
- let r = class extends u(b) {
12
+ let n = class extends d(p) {
13
13
  constructor() {
14
- super(...arguments), this.c = null, this.b = !1, this.size = "l", this.f = new d(this);
14
+ super(...arguments), this._titleLevel = null, this._multi = !1, this.size = "l", this._abort = new u(this);
15
15
  }
16
- set titleLevel(t) {
17
- this.c = t, this.d();
16
+ set titleLevel(e) {
17
+ this._titleLevel = e, this._setTitleLevelOnChildren();
18
18
  }
19
19
  get titleLevel() {
20
- return this.c;
20
+ return this._titleLevel;
21
21
  }
22
- set multi(t) {
23
- const e = this.b;
24
- this.b = t, this.e(this.b, e);
22
+ set multi(e) {
23
+ const t = this._multi;
24
+ this._multi = e, this._resetExpansionPanels(this._multi, t);
25
25
  }
26
26
  get multi() {
27
- return this.b;
27
+ return this._multi;
28
28
  }
29
- g(t) {
30
- var e;
31
- ((e = t.target) == null ? void 0 : e.localName) !== "sbb-expansion-panel" || this.multi || this.a.filter((s) => s !== t.target).forEach((s) => s.expanded = !1);
29
+ _closePanels(e) {
30
+ var t;
31
+ ((t = e.target) == null ? void 0 : t.localName) !== "sbb-expansion-panel" || this.multi || this._expansionPanels.filter((l) => l !== e.target).forEach((l) => l.expanded = !1);
32
32
  }
33
- e(t, e) {
34
- const s = this.a;
35
- s.length > 1 && e && !t && (s[0].expanded = !0, s.filter((l, i) => i > 0).forEach((l) => l.expanded = !1));
33
+ _resetExpansionPanels(e, t) {
34
+ const l = this._expansionPanels;
35
+ l.length > 1 && t && !e && (l[0].expanded = !0, l.filter((i, s) => s > 0).forEach((i) => i.expanded = !1));
36
36
  }
37
- d() {
38
- this.a.forEach(
39
- (t) => t.titleLevel = this.titleLevel
37
+ _setTitleLevelOnChildren() {
38
+ this._expansionPanels.forEach(
39
+ (e) => e.titleLevel = this.titleLevel
40
40
  );
41
41
  }
42
- get a() {
43
- var t;
44
- return Array.from(((t = this.querySelectorAll) == null ? void 0 : t.call(this, "sbb-expansion-panel")) ?? []);
42
+ get _expansionPanels() {
43
+ var e;
44
+ return Array.from(((e = this.querySelectorAll) == null ? void 0 : e.call(this, "sbb-expansion-panel")) ?? []);
45
45
  }
46
46
  connectedCallback() {
47
47
  super.connectedCallback();
48
- const t = this.f.signal;
48
+ const e = this._abort.signal;
49
49
  this.addEventListener(
50
- m.events.willOpen,
51
- (e) => this.g(e),
52
- { signal: t }
50
+ f.events.willOpen,
51
+ (t) => this._closePanels(t),
52
+ { signal: e }
53
53
  );
54
54
  }
55
- willUpdate(t) {
56
- super.willUpdate(t), t.has("size") && this.a.forEach((e) => e.size = this.size);
55
+ willUpdate(e) {
56
+ super.willUpdate(e), e.has("size") && this._expansionPanels.forEach((t) => t.size = this.size);
57
57
  }
58
- h() {
59
- this.a.forEach(
60
- (t, e, s) => {
61
- t.titleLevel = this.titleLevel, t.size = this.size, t.toggleAttribute("data-accordion-first", e === 0), t.toggleAttribute("data-accordion-last", e === s.length - 1);
58
+ _handleSlotchange() {
59
+ this._expansionPanels.forEach(
60
+ (e, t, l) => {
61
+ e.titleLevel = this.titleLevel, e.size = this.size, e.toggleAttribute("data-accordion-first", t === 0), e.toggleAttribute("data-accordion-last", t === l.length - 1);
62
62
  }
63
63
  );
64
64
  }
65
65
  render() {
66
- return p`
66
+ return b`
67
67
  <div class="sbb-accordion">
68
- <slot @slotchange=${this.h}></slot>
68
+ <slot @slotchange=${this._handleSlotchange}></slot>
69
69
  </div>
70
70
  `;
71
71
  }
72
72
  };
73
- r.styles = v;
73
+ n.styles = m;
74
74
  o([
75
- c({ attribute: "title-level" })
76
- ], r.prototype, "titleLevel", 1);
75
+ h({ attribute: "title-level" })
76
+ ], n.prototype, "titleLevel", 1);
77
77
  o([
78
- c({ type: Boolean })
79
- ], r.prototype, "multi", 1);
78
+ h({ type: Boolean })
79
+ ], n.prototype, "multi", 1);
80
80
  o([
81
- c({ reflect: !0 })
82
- ], r.prototype, "size", 2);
83
- r = o([
84
- f("sbb-accordion")
85
- ], r);
81
+ h({ reflect: !0 })
82
+ ], n.prototype, "size", 2);
83
+ n = o([
84
+ _("sbb-accordion")
85
+ ], n);
86
86
  export {
87
- r as SbbAccordionElement
87
+ n as SbbAccordionElement
88
88
  };
package/action-group.js CHANGED
@@ -10,16 +10,16 @@ let i = class extends p {
10
10
  constructor() {
11
11
  super(...arguments), this.alignGroup = "start", this.horizontalFrom = "medium", this.orientation = "horizontal", this.buttonSize = "l", this.linkSize = "m";
12
12
  }
13
- a() {
13
+ _syncButtons() {
14
14
  var t;
15
15
  (t = this.querySelectorAll) == null || t.call(this, "[data-sbb-button]").forEach(
16
16
  (o) => o.size = this.buttonSize
17
17
  );
18
18
  }
19
19
  willUpdate(t) {
20
- super.willUpdate(t), t.has("buttonSize") && this.a(), t.has("linkSize") && this.b();
20
+ super.willUpdate(t), t.has("buttonSize") && this._syncButtons(), t.has("linkSize") && this._syncLinks();
21
21
  }
22
- b() {
22
+ _syncLinks() {
23
23
  var t;
24
24
  (t = this.querySelectorAll) == null || t.call(this, "sbb-block-link, sbb-block-link-button, sbb-block-link-static").forEach((o) => {
25
25
  o.size = this.linkSize;
@@ -1,54 +1,54 @@
1
- import { css as u, LitElement as h, nothing as m } from "lit";
1
+ import { css as h, LitElement as m, nothing as u } from "lit";
2
2
  import { property as b, state as f, customElement as v } from "lit/decorators.js";
3
3
  import { html as c, unsafeStatic as p } from "lit/static-html.js";
4
4
  import { SbbConnectedAbortController as g } from "../core/controllers.js";
5
5
  import { EventEmitter as d } from "../core/eventing.js";
6
- import { SbbHydrationMixin as y } from "../core/mixins.js";
7
- import { SbbAlertElement as x } from "./alert.js";
8
- const E = u`*,:before,:after{box-sizing:border-box}:host{--sbb-alert-group-gap: var(--sbb-spacing-fixed-3x);--sbb-alert-group-border-radius: var(--sbb-border-radius-4x);display:block}.sbb-alert-group{display:flex;flex-direction:column;gap:var(--sbb-alert-group-gap)}:host(:focus-visible:not([data-empty])){outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width);border-radius:var(--sbb-alert-group-border-radius)}.sbb-alert-group__title{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}`;
9
- var A = Object.defineProperty, _ = Object.getOwnPropertyDescriptor, l = (e, t, i, r) => {
10
- for (var o = r > 1 ? void 0 : r ? _(t, i) : t, a = e.length - 1, n; a >= 0; a--)
6
+ import { SbbHydrationMixin as _ } from "../core/mixins.js";
7
+ import { SbbAlertElement as y } from "./alert.js";
8
+ const A = h`*,:before,:after{box-sizing:border-box}:host{--sbb-alert-group-gap: var(--sbb-spacing-fixed-3x);--sbb-alert-group-border-radius: var(--sbb-border-radius-4x);display:block}.sbb-alert-group{display:flex;flex-direction:column;gap:var(--sbb-alert-group-gap)}:host(:focus-visible:not([data-empty])){outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width);border-radius:var(--sbb-alert-group-border-radius)}.sbb-alert-group__title{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}`;
9
+ var x = Object.defineProperty, E = Object.getOwnPropertyDescriptor, l = (e, t, i, r) => {
10
+ for (var o = r > 1 ? void 0 : r ? E(t, i) : t, a = e.length - 1, n; a >= 0; a--)
11
11
  (n = e[a]) && (o = (r ? n(t, i, o) : n(o)) || o);
12
- return r && o && A(t, i, o), o;
12
+ return r && o && x(t, i, o), o;
13
13
  };
14
- let s = class extends y(h) {
14
+ let s = class extends _(m) {
15
15
  constructor() {
16
- super(...arguments), this.role = "status", this.accessibilityTitleLevel = "2", this.b = new d(
16
+ super(...arguments), this.role = "status", this.accessibilityTitleLevel = "2", this._didDismissAlert = new d(
17
17
  this,
18
18
  s.events.didDismissAlert
19
- ), this.c = new d(this, s.events.empty), this.d = new g(this);
19
+ ), this._empty = new d(this, s.events.empty), this._abort = new g(this);
20
20
  }
21
- e(e) {
21
+ _removeAlert(e) {
22
22
  var r;
23
23
  const t = e.target, i = document.activeElement === t;
24
- (r = t.parentNode) == null || r.removeChild(t), this.b.emit(t), i && (this.tabIndex = 0, this.focus(), this.addEventListener("blur", () => this.removeAttribute("tabindex"), {
24
+ (r = t.parentNode) == null || r.removeChild(t), this._didDismissAlert.emit(t), i && (this.tabIndex = 0, this.focus(), this.addEventListener("blur", () => this.removeAttribute("tabindex"), {
25
25
  once: !0
26
26
  }));
27
27
  }
28
28
  connectedCallback() {
29
29
  super.connectedCallback();
30
- const e = this.d.signal;
31
- this.addEventListener(x.events.dismissalRequested, (t) => this.e(t), {
30
+ const e = this._abort.signal;
31
+ this.addEventListener(y.events.dismissalRequested, (t) => this._removeAlert(t), {
32
32
  signal: e
33
33
  });
34
34
  }
35
- f(e) {
36
- const t = this.a;
37
- this.a = e.target.assignedElements().filter((i) => i instanceof Element && i.localName === "sbb-alert").length > 0, !this.a && t && this.c.emit(), this.toggleAttribute("data-empty", !this.a);
35
+ _slotChanged(e) {
36
+ const t = this._hasAlerts;
37
+ this._hasAlerts = e.target.assignedElements().filter((i) => i instanceof Element && i.localName === "sbb-alert").length > 0, !this._hasAlerts && t && this._empty.emit(), this.toggleAttribute("data-empty", !this._hasAlerts);
38
38
  }
39
39
  render() {
40
40
  const e = `h${this.accessibilityTitleLevel}`;
41
41
  return c`
42
42
  <div class="sbb-alert-group">
43
- ${this.a ? c`<${p(e)} class="sbb-alert-group__title">
43
+ ${this._hasAlerts ? c`<${p(e)} class="sbb-alert-group__title">
44
44
  <slot name="accessibility-title">${this.accessibilityTitle}</slot>
45
- </${p(e)}>` : m}
46
- <slot @slotchange=${(t) => this.f(t)}></slot>
45
+ </${p(e)}>` : u}
46
+ <slot @slotchange=${(t) => this._slotChanged(t)}></slot>
47
47
  </div>
48
48
  `;
49
49
  }
50
50
  };
51
- s.styles = E;
51
+ s.styles = A;
52
52
  s.events = {
53
53
  didDismissAlert: "didDismissAlert",
54
54
  empty: "empty"
@@ -64,7 +64,7 @@ l([
64
64
  ], s.prototype, "accessibilityTitleLevel", 2);
65
65
  l([
66
66
  f()
67
- ], s.prototype, "a", 2);
67
+ ], s.prototype, "_hasAlerts", 2);
68
68
  s = l([
69
69
  v("sbb-alert-group")
70
70
  ], s);
package/alert/alert.js CHANGED
@@ -2,49 +2,49 @@ import { css as m, LitElement as v, html as d, nothing as r } from "lit";
2
2
  import { property as i, customElement as h } from "lit/decorators.js";
3
3
  import { SbbLanguageController as u } from "../core/controllers.js";
4
4
  import { EventEmitter as c } from "../core/eventing.js";
5
- import { i18nFindOutMore as g, i18nCloseAlert as f } from "../core/i18n.js";
6
- import { SbbIconNameMixin as y } from "../icon.js";
5
+ import { i18nFindOutMore as g, i18nCloseAlert as _ } from "../core/i18n.js";
6
+ import { SbbIconNameMixin as f } from "../icon.js";
7
7
  import "../button/transparent-button.js";
8
8
  import "../divider.js";
9
9
  import "../link.js";
10
10
  import "../title.js";
11
- const _ = m`*,:before,:after{box-sizing:border-box}:host{--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);--sbb-alert-background-color: var(--sbb-color-midnight);--sbb-alert-border-radius: var(--sbb-border-radius-4x);--sbb-alert-color: var(--sbb-color-aluminium);--sbb-alert-padding: var(--sbb-spacing-responsive-xxs) var(--sbb-spacing-responsive-xs);--sbb-alert-icon-size: 1.25rem;--sbb-alert-close-icon-size: var(--sbb-size-icon-ui-small);--sbb-alert-close-icon-margin: var(--sbb-spacing-responsive-xxs);--sbb-alert-gap: var(--sbb-spacing-fixed-2x) var(--sbb-spacing-responsive-xs);--sbb-alert-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-6x) );display:block}@media (min-width: 52.5rem){:host{--sbb-alert-icon-size: 1.75rem}}@media (forced-colors: active){:host{outline:var(--sbb-border-width-1x) solid CanvasText;border-radius:var(--sbb-alert-border-radius)}}:host([animation=none]){--sbb-disable-animation-time: .1ms;--sbb-disable-animation-zero-time: 0s}:host([size=s]){--sbb-alert-gap: var(--sbb-spacing-fixed-1x) var(--sbb-spacing-responsive-xxs);--sbb-alert-close-icon-margin: var(--sbb-spacing-responsive-xxxs)}:host([size=l]){--sbb-alert-icon-size: var(--sbb-size-icon-ui-small)}@media (min-width: 52.5rem){:host([size=l]){--sbb-alert-icon-size: 2.125rem}}.sbb-alert__transition-wrapper{display:grid;grid-template-rows:0fr;opacity:0}:host([data-state=opened]) .sbb-alert__transition-wrapper{grid-template-rows:1fr;opacity:1}:host([data-state=opening]) .sbb-alert__transition-wrapper{animation-name:open,open-opacity;animation-fill-mode:forwards;animation-duration:var(--sbb-alert-animation-duration);animation-timing-function:ease-in;animation-delay:0s,var(--sbb-alert-animation-duration)}.sbb-alert__transition-sub-wrapper{overflow:hidden}.sbb-alert{--sbb-text-font-size: var(--sbb-font-size-text-s);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size);display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--sbb-alert-gap);min-width:fit-content;padding:var(--sbb-alert-padding);overflow:hidden;color:var(--sbb-alert-color);background-color:var(--sbb-alert-background-color);border-radius:var(--sbb-alert-border-radius)}@media (min-width: 37.5rem){.sbb-alert{grid-template-columns:auto 1fr auto;align-items:flex-start}}.sbb-alert__icon{display:flex;align-items:start;padding-block:var(--sbb-spacing-fixed-1x);min-width:var(--sbb-alert-icon-size);--sbb-icon-svg-width: var(--sbb-alert-icon-size);--sbb-icon-svg-height: var(--sbb-alert-icon-size)}.sbb-alert__content{order:3;grid-column:1/3}@media (min-width: 37.5rem){.sbb-alert__content{order:initial;grid-column-start:initial;grid-column-end:initial}}.sbb-alert__content-slot{display:inline;margin:0;padding:0}.sbb-alert__title{margin:0}.sbb-alert__close-button-wrapper{display:flex;justify-content:flex-end;align-items:center;height:100%}@media (min-width: 37.5rem){.sbb-alert__close-button{margin-inline-start:var(--sbb-alert-close-icon-margin)}}.sbb-alert__close-button-divider{display:none}@media (min-width: 37.5rem){.sbb-alert__close-button-divider{display:block;height:calc(100% - var(--sbb-spacing-fixed-1x) * 2)}}@keyframes open{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}@keyframes open-opacity{0%{opacity:0}to{opacity:1}}`;
12
- var x = Object.defineProperty, w = Object.getOwnPropertyDescriptor, e = (s, n, b, o) => {
13
- for (var a = o > 1 ? void 0 : o ? w(n, b) : n, l = s.length - 1, p; l >= 0; l--)
14
- (p = s[l]) && (a = (o ? p(n, b, a) : p(a)) || a);
15
- return o && a && x(n, b, a), a;
11
+ const y = m`*,:before,:after{box-sizing:border-box}:host{--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);--sbb-alert-background-color: var(--sbb-color-midnight);--sbb-alert-border-radius: var(--sbb-border-radius-4x);--sbb-alert-color: var(--sbb-color-aluminium);--sbb-alert-padding: var(--sbb-spacing-responsive-xxs) var(--sbb-spacing-responsive-xs);--sbb-alert-icon-size: 1.25rem;--sbb-alert-close-icon-size: var(--sbb-size-icon-ui-small);--sbb-alert-close-icon-margin: var(--sbb-spacing-responsive-xxs);--sbb-alert-gap: var(--sbb-spacing-fixed-2x) var(--sbb-spacing-responsive-xs);--sbb-alert-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-6x) );display:block}@media (min-width: 52.5rem){:host{--sbb-alert-icon-size: 1.75rem}}@media (forced-colors: active){:host{outline:var(--sbb-border-width-1x) solid CanvasText;border-radius:var(--sbb-alert-border-radius)}}:host([animation=none]){--sbb-disable-animation-time: .1ms;--sbb-disable-animation-zero-time: 0s}:host([size=s]){--sbb-alert-gap: var(--sbb-spacing-fixed-1x) var(--sbb-spacing-responsive-xxs);--sbb-alert-close-icon-margin: var(--sbb-spacing-responsive-xxxs)}:host([size=l]){--sbb-alert-icon-size: var(--sbb-size-icon-ui-small)}@media (min-width: 52.5rem){:host([size=l]){--sbb-alert-icon-size: 2.125rem}}.sbb-alert__transition-wrapper{display:grid;grid-template-rows:0fr;opacity:0}:host([data-state=opened]) .sbb-alert__transition-wrapper{grid-template-rows:1fr;opacity:1}:host([data-state=opening]) .sbb-alert__transition-wrapper{animation-name:open,open-opacity;animation-fill-mode:forwards;animation-duration:var(--sbb-alert-animation-duration);animation-timing-function:ease-in;animation-delay:0s,var(--sbb-alert-animation-duration)}.sbb-alert__transition-sub-wrapper{overflow:hidden}.sbb-alert{--sbb-text-font-size: var(--sbb-font-size-text-s);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size);display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--sbb-alert-gap);min-width:fit-content;padding:var(--sbb-alert-padding);overflow:hidden;color:var(--sbb-alert-color);background-color:var(--sbb-alert-background-color);border-radius:var(--sbb-alert-border-radius)}@media (min-width: 37.5rem){.sbb-alert{grid-template-columns:auto 1fr auto;align-items:flex-start}}.sbb-alert__icon{display:flex;align-items:start;padding-block:var(--sbb-spacing-fixed-1x);min-width:var(--sbb-alert-icon-size);--sbb-icon-svg-width: var(--sbb-alert-icon-size);--sbb-icon-svg-height: var(--sbb-alert-icon-size)}.sbb-alert__content{order:3;grid-column:1/3}@media (min-width: 37.5rem){.sbb-alert__content{order:initial;grid-column-start:initial;grid-column-end:initial}}.sbb-alert__content-slot{display:inline;margin:0;padding:0}.sbb-alert__title{margin:0}.sbb-alert__close-button-wrapper{display:flex;justify-content:flex-end;align-items:center;height:100%}@media (min-width: 37.5rem){.sbb-alert__close-button{margin-inline-start:var(--sbb-alert-close-icon-margin)}}.sbb-alert__close-button-divider{display:none}@media (min-width: 37.5rem){.sbb-alert__close-button-divider{display:block;height:calc(100% - var(--sbb-spacing-fixed-1x) * 2)}}@keyframes open{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}@keyframes open-opacity{0%{opacity:0}to{opacity:1}}`;
12
+ var w = Object.defineProperty, x = Object.getOwnPropertyDescriptor, e = (s, n, l, o) => {
13
+ for (var a = o > 1 ? void 0 : o ? x(n, l) : n, b = s.length - 1, p; b >= 0; b--)
14
+ (p = s[b]) && (a = (o ? p(n, l, a) : p(a)) || a);
15
+ return o && a && w(n, l, a), a;
16
16
  };
17
- let t = class extends y(v) {
17
+ let t = class extends f(v) {
18
18
  constructor() {
19
- super(...arguments), this.readonly = !1, this.size = "m", this.iconName = "info", this.titleLevel = "3", this.animation = "open", this.c = new c(this, t.events.willOpen), this.d = new c(this, t.events.didOpen), this.e = new c(
19
+ super(...arguments), this.readonly = !1, this.size = "m", this.iconName = "info", this.titleLevel = "3", this.animation = "open", this._willOpen = new c(this, t.events.willOpen), this._didOpen = new c(this, t.events.didOpen), this._dismissalRequested = new c(
20
20
  this,
21
21
  t.events.dismissalRequested
22
- ), this.b = new u(this);
22
+ ), this._language = new u(this);
23
23
  }
24
24
  /** The state of the alert. */
25
- get a() {
25
+ get _state() {
26
26
  return this.getAttribute("data-state") ?? "closed";
27
27
  }
28
- set a(s) {
28
+ set _state(s) {
29
29
  this.setAttribute("data-state", s);
30
30
  }
31
31
  async firstUpdated(s) {
32
- super.firstUpdated(s), this.f();
32
+ super.firstUpdated(s), this._open();
33
33
  }
34
34
  /** Requests dismissal of the alert. */
35
35
  requestDismissal() {
36
- this.e.emit();
36
+ this._dismissalRequested.emit();
37
37
  }
38
38
  /** Open the alert. */
39
- f() {
40
- this.a = "opening", this.c.emit();
39
+ _open() {
40
+ this._state = "opening", this._willOpen.emit();
41
41
  }
42
- g(s) {
43
- this.a === "opening" && s.animationName === "open-opacity" && (this.a = "opened", this.d.emit());
42
+ _onAnimationEnd(s) {
43
+ this._state === "opening" && s.animationName === "open-opacity" && (this._state = "opened", this._didOpen.emit());
44
44
  }
45
45
  render() {
46
46
  return d`
47
- <div class="sbb-alert__transition-wrapper" @animationend=${this.g}>
47
+ <div class="sbb-alert__transition-wrapper" @animationend=${this._onAnimationEnd}>
48
48
  <!-- sub wrapper needed to properly support fade in animation -->
49
49
  <div class="sbb-alert__transition-sub-wrapper">
50
50
  <div class="sbb-alert">
@@ -68,7 +68,7 @@ let t = class extends y(v) {
68
68
  rel=${this.rel ?? r}
69
69
  negative
70
70
  >
71
- ${this.linkContent ? this.linkContent : g[this.b.current]}
71
+ ${this.linkContent ? this.linkContent : g[this._language.current]}
72
72
  </sbb-link>` : r}
73
73
  </span>
74
74
  ${this.readonly ? r : d`<span class="sbb-alert__close-button-wrapper">
@@ -82,7 +82,7 @@ let t = class extends y(v) {
82
82
  size=${this.size === "l" ? "m" : this.size}
83
83
  icon-name="cross-small"
84
84
  @click=${() => this.requestDismissal()}
85
- aria-label=${f[this.b.current]}
85
+ aria-label=${_[this._language.current]}
86
86
  class="sbb-alert__close-button"
87
87
  ></sbb-transparent-button>
88
88
  </span>`}
@@ -92,7 +92,7 @@ let t = class extends y(v) {
92
92
  `;
93
93
  }
94
94
  };
95
- t.styles = _;
95
+ t.styles = y;
96
96
  t.events = {
97
97
  willOpen: "willOpen",
98
98
  didOpen: "didOpen",