@sbb-esta/lyne-elements 0.52.0 → 0.52.1

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 (220) 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/breadcrumb-group.d.ts.map +1 -1
  7. package/breadcrumb/breadcrumb-group.js +70 -69
  8. package/breadcrumb/breadcrumb.js +17 -17
  9. package/calendar.js +423 -423
  10. package/card/card-badge.js +17 -17
  11. package/card/card.js +2 -2
  12. package/card/common.js +30 -30
  13. package/checkbox/checkbox-group.js +17 -17
  14. package/checkbox/checkbox.js +34 -34
  15. package/clock.js +83 -83
  16. package/container/sticky-bar.js +16 -16
  17. package/core/a11y.js +91 -91
  18. package/core/base-elements.js +87 -88
  19. package/core/controllers.js +40 -40
  20. package/core/datetime.js +34 -36
  21. package/core/dom.js +26 -26
  22. package/core/eventing.js +33 -33
  23. package/core/mixins.js +122 -122
  24. package/core/overlay/overlay.d.ts.map +1 -1
  25. package/core/overlay.js +55 -50
  26. package/core/testing/event-spy.d.ts +1 -1
  27. package/core/testing/wait-for-image-ready.d.ts +4 -0
  28. package/core/testing/wait-for-image-ready.d.ts.map +1 -0
  29. package/core/testing.d.ts +1 -0
  30. package/core/testing.d.ts.map +1 -1
  31. package/core/testing.js +42 -31
  32. package/custom-elements.json +70 -4
  33. package/datepicker/common.js +55 -55
  34. package/datepicker/datepicker-toggle.js +94 -94
  35. package/datepicker/datepicker.js +144 -144
  36. package/development/accordion.js +2 -3
  37. package/development/action-group.js +2 -3
  38. package/development/alert/alert-group.js +2 -3
  39. package/development/alert/alert.js +2 -3
  40. package/development/autocomplete.js +2 -3
  41. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts.map +1 -1
  42. package/development/breadcrumb/breadcrumb-group.js +5 -5
  43. package/development/breadcrumb/breadcrumb.js +2 -3
  44. package/development/button/button-link.js +2 -3
  45. package/development/button/button-static.js +2 -3
  46. package/development/button/button.js +2 -3
  47. package/development/button/common.js +2 -3
  48. package/development/button/mini-button.js +2 -3
  49. package/development/button/secondary-button-link.js +2 -3
  50. package/development/button/secondary-button-static.js +2 -3
  51. package/development/button/secondary-button.js +2 -3
  52. package/development/button/tertiary-button-link.js +2 -3
  53. package/development/button/tertiary-button-static.js +2 -3
  54. package/development/button/tertiary-button.js +2 -3
  55. package/development/button/transparent-button-link.js +2 -3
  56. package/development/button/transparent-button-static.js +2 -3
  57. package/development/button/transparent-button.js +2 -3
  58. package/development/calendar.js +2 -3
  59. package/development/card/card-badge.js +2 -3
  60. package/development/card/card-button.js +2 -3
  61. package/development/card/card-link.js +2 -3
  62. package/development/card/card.js +2 -3
  63. package/development/card/common.js +2 -3
  64. package/development/checkbox/checkbox-group.js +2 -3
  65. package/development/checkbox/checkbox.js +2 -3
  66. package/development/chip.js +2 -3
  67. package/development/clock.js +2 -3
  68. package/development/container/container.js +2 -3
  69. package/development/container/sticky-bar.js +2 -3
  70. package/development/core/base-elements.js +4 -7
  71. package/development/core/mixins.js +7 -13
  72. package/development/core/overlay/overlay.d.ts.map +1 -1
  73. package/development/core/overlay.js +9 -3
  74. package/development/core/testing/event-spy.d.ts +1 -1
  75. package/development/core/testing/wait-for-image-ready.d.ts +4 -0
  76. package/development/core/testing/wait-for-image-ready.d.ts.map +1 -0
  77. package/development/core/testing.d.ts +1 -0
  78. package/development/core/testing.d.ts.map +1 -1
  79. package/development/core/testing.js +17 -1
  80. package/development/datepicker/common.js +2 -3
  81. package/development/datepicker/datepicker-next-day.js +2 -3
  82. package/development/datepicker/datepicker-previous-day.js +2 -3
  83. package/development/datepicker/datepicker-toggle.js +2 -3
  84. package/development/datepicker/datepicker.js +2 -3
  85. package/development/dialog/dialog-actions.js +2 -3
  86. package/development/dialog/dialog-content.js +2 -3
  87. package/development/dialog/dialog-title.js +2 -3
  88. package/development/dialog/dialog.js +2 -3
  89. package/development/divider.js +2 -3
  90. package/development/expansion-panel/expansion-panel-content.js +2 -3
  91. package/development/expansion-panel/expansion-panel-header.js +2 -3
  92. package/development/expansion-panel/expansion-panel.js +2 -3
  93. package/development/file-selector.js +2 -3
  94. package/development/footer.js +2 -3
  95. package/development/form-error.js +2 -3
  96. package/development/form-field/form-field-clear.js +2 -3
  97. package/development/form-field/form-field.js +2 -3
  98. package/development/header/common.js +2 -3
  99. package/development/header/header-button.js +2 -3
  100. package/development/header/header-link.js +2 -3
  101. package/development/header/header.js +2 -3
  102. package/development/icon.js +4 -7
  103. package/development/image/image.d.ts +12 -3
  104. package/development/image/image.d.ts.map +1 -1
  105. package/development/image.js +41 -24
  106. package/development/journey-header.js +2 -3
  107. package/development/lead-container.js +2 -3
  108. package/development/link/block-link-button.js +2 -3
  109. package/development/link/block-link-static.js +2 -3
  110. package/development/link/block-link.js +2 -3
  111. package/development/link/common.js +3 -5
  112. package/development/link/link-button.js +2 -3
  113. package/development/link/link-static.js +2 -3
  114. package/development/link/link.js +2 -3
  115. package/development/link-list.js +2 -3
  116. package/development/loading-indicator.js +2 -3
  117. package/development/logo.js +2 -3
  118. package/development/map-container.js +2 -3
  119. package/development/menu/common.js +2 -3
  120. package/development/menu/menu-button.js +2 -3
  121. package/development/menu/menu-link.js +2 -3
  122. package/development/menu/menu.js +2 -3
  123. package/development/message.js +2 -3
  124. package/development/navigation/common.js +2 -3
  125. package/development/navigation/navigation-button.js +2 -3
  126. package/development/navigation/navigation-link.js +2 -3
  127. package/development/navigation/navigation-list.js +2 -3
  128. package/development/navigation/navigation-marker.js +2 -3
  129. package/development/navigation/navigation-section.js +2 -3
  130. package/development/navigation/navigation.js +2 -3
  131. package/development/notification.js +2 -3
  132. package/development/option/optgroup.js +2 -3
  133. package/development/option/option.js +2 -3
  134. package/development/overlay.js +3 -5
  135. package/development/popover/popover-trigger.js +2 -3
  136. package/development/popover/popover.js +2 -3
  137. package/development/radio-button/radio-button-group.js +2 -3
  138. package/development/radio-button/radio-button.js +2 -3
  139. package/development/screen-reader-only.js +2 -3
  140. package/development/select.js +2 -3
  141. package/development/selection-panel.js +2 -3
  142. package/development/signet.js +2 -3
  143. package/development/skiplink-list.js +2 -3
  144. package/development/slider.js +2 -3
  145. package/development/status.js +2 -3
  146. package/development/stepper/step-label.js +2 -3
  147. package/development/stepper/step.js +2 -3
  148. package/development/stepper/stepper/stepper.d.ts +1 -1
  149. package/development/stepper/stepper/stepper.d.ts.map +1 -1
  150. package/development/stepper/stepper.js +5 -6
  151. package/development/tabs/tab-group.js +2 -3
  152. package/development/tabs/tab-title.js +2 -3
  153. package/development/tag/tag-group.js +2 -3
  154. package/development/tag/tag.js +2 -3
  155. package/development/teaser-hero.js +2 -3
  156. package/development/teaser-paid.js +2 -3
  157. package/development/teaser.js +2 -3
  158. package/development/time-input.js +2 -3
  159. package/development/timetable-occupancy-icon.js +2 -3
  160. package/development/timetable-occupancy.js +2 -3
  161. package/development/title.js +3 -5
  162. package/development/toast.js +2 -3
  163. package/development/toggle/toggle-option.js +3 -5
  164. package/development/toggle/toggle.js +2 -3
  165. package/development/toggle-check.js +10 -3
  166. package/development/train/train-blocked-passage.js +2 -3
  167. package/development/train/train-formation.js +2 -3
  168. package/development/train/train-wagon.js +2 -3
  169. package/development/train/train.js +2 -3
  170. package/development/visual-checkbox.js +2 -3
  171. package/dialog/dialog-title.js +20 -20
  172. package/dialog/dialog.js +66 -66
  173. package/expansion-panel/expansion-panel-header.js +20 -20
  174. package/expansion-panel/expansion-panel.js +60 -60
  175. package/file-selector.js +91 -91
  176. package/form-field/form-field-clear.js +12 -12
  177. package/form-field/form-field.js +111 -111
  178. package/header/header.js +53 -53
  179. package/icon.js +107 -107
  180. package/image/image.d.ts +12 -3
  181. package/image/image.d.ts.map +1 -1
  182. package/image.js +118 -105
  183. package/journey-header.js +29 -29
  184. package/map-container.js +23 -23
  185. package/menu/menu.js +91 -91
  186. package/navigation/common.js +16 -16
  187. package/navigation/navigation-marker.js +34 -34
  188. package/navigation/navigation-section.js +83 -83
  189. package/navigation/navigation.js +87 -87
  190. package/notification.js +52 -52
  191. package/option/optgroup.js +45 -45
  192. package/option/option.js +108 -108
  193. package/overlay.js +5 -5
  194. package/package.json +1 -1
  195. package/popover/popover.js +110 -110
  196. package/radio-button/radio-button-group.js +93 -93
  197. package/radio-button/radio-button.js +84 -84
  198. package/select.js +178 -178
  199. package/selection-panel.js +44 -44
  200. package/slider.js +58 -58
  201. package/status.js +6 -6
  202. package/stepper/step-label.js +19 -19
  203. package/stepper/step.js +31 -31
  204. package/stepper/stepper/stepper.d.ts +1 -1
  205. package/stepper/stepper/stepper.d.ts.map +1 -1
  206. package/stepper/stepper.js +48 -48
  207. package/tabs/tab-group.js +67 -67
  208. package/tag/tag-group.js +8 -8
  209. package/tag/tag.js +27 -27
  210. package/teaser-paid.js +12 -12
  211. package/time-input.js +73 -73
  212. package/timetable-occupancy-icon.js +26 -26
  213. package/timetable-occupancy.js +9 -9
  214. package/toast.js +38 -38
  215. package/toggle/toggle-option.js +33 -33
  216. package/toggle/toggle.js +46 -46
  217. package/toggle-check.js +14 -14
  218. package/train/train-formation.js +36 -37
  219. package/train/train-wagon.js +30 -30
  220. package/train/train.js +13 -13
package/toast.js CHANGED
@@ -2,28 +2,28 @@ import { css as m, html as d, nothing as p } from "lit";
2
2
  import { property as b, customElement as h } from "lit/decorators.js";
3
3
  import { SbbOpenCloseBaseElement as f } from "./core/base-elements.js";
4
4
  import { SbbConnectedAbortController as v, SbbLanguageController as g, SbbSlotStateController as u } from "./core/controllers.js";
5
- import { isFirefox as _ } from "./core/dom.js";
6
- import { composedPathHasAttribute as x } from "./core/eventing.js";
7
- import { i18nCloseAlert as y } from "./core/i18n.js";
8
- import { SbbIconNameMixin as T } from "./icon.js";
5
+ import { isFirefox as x } from "./core/dom.js";
6
+ import { composedPathHasAttribute as y } from "./core/eventing.js";
7
+ import { i18nCloseAlert as _ } from "./core/i18n.js";
8
+ import { SbbIconNameMixin as N } from "./icon.js";
9
9
  import "./button/transparent-button.js";
10
10
  const k = m`*,:before,:after{box-sizing:border-box}:host{--sbb-toast-max-width: 25rem;--sbb-toast-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-6x) );--sbb-toast-animation-timing-function: ease;--sbb-toast-color: var(--sbb-color-white);--sbb-toast-text-color: var(--sbb-color-milk);--sbb-toast-background-color: var(--sbb-color-midnight);--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);--sbb-toast-margin: var(--sbb-spacing-responsive-s);--sbb-toast-padding-block: var(--sbb-spacing-responsive-xxxs);--sbb-toast-padding-inline: var(--sbb-spacing-responsive-xs);--sbb-toast-border-radius: var(--sbb-border-radius-4x);--sbb-toast-container-display: flex;--sbb-toast-container-position: fixed;--sbb-toast-horizontal-position: initial;--sbb-toast-vertical-position: initial;display:block}:host(:not([data-state])),:host([data-state=closed]){--sbb-toast-container-display: none}:host([position=bottom-left]),:host([position=bottom-start]){--sbb-toast-horizontal-position: flex-start;--sbb-toast-vertical-position: flex-end}:host([position=bottom-center]){--sbb-toast-horizontal-position: center;--sbb-toast-vertical-position: flex-end}:host([position=bottom-right]),:host([position=bottom-end]){--sbb-toast-horizontal-position: flex-end;--sbb-toast-vertical-position: flex-end}:host([position=top-left]),:host([position=top-start]){--sbb-toast-horizontal-position: flex-start;--sbb-toast-vertical-position: flex-start}:host([position=top-center]){--sbb-toast-horizontal-position: center;--sbb-toast-vertical-position: flex-start}:host([position=top-right]),:host([position=top-end]){--sbb-toast-horizontal-position: flex-end;--sbb-toast-vertical-position: flex-start}.sbb-toast__overlay-container{position:var(--sbb-toast-container-position);pointer-events:none;top:0;right:0;bottom:0;left:0;display:var(--sbb-toast-container-display);justify-content:var(--sbb-toast-horizontal-position);align-items:var(--sbb-toast-vertical-position)}.sbb-toast{z-index:var(--sbb-toast-z-index, var(--sbb-overlay-default-z-index));pointer-events:auto;margin:var(--sbb-toast-margin);padding-block:var(--sbb-toast-padding-block);padding-inline:var(--sbb-toast-padding-inline);border-radius:var(--sbb-toast-border-radius);max-width:var(--sbb-toast-max-width);display:flex;color:var(--sbb-toast-color);background-color:var(--sbb-toast-background-color)}:host([data-state=opening]) .sbb-toast{animation-name:open;animation-duration:var(--sbb-toast-animation-duration);animation-timing-function:var(--sbb-toast-animation-timing-function)}:host([data-state=closing]) .sbb-toast{animation-name:close;animation-duration:var(--sbb-toast-animation-duration);animation-timing-function:var(--sbb-toast-animation-timing-function)}.sbb-toast__icon{margin-inline-end:var(--sbb-spacing-fixed-2x);line-height:initial}:host(:not([data-slot-names~=icon],[icon-name])) .sbb-toast__icon{display:none}.sbb-toast__content{--sbb-title-line-height: var(--sbb-typo-line-height-titles);--sbb-title-margin-block-start: 0;--sbb-title-margin-block-end: 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;margin-block:var(--sbb-title-margin-block-start) var(--sbb-title-margin-block-end);font-family:var(--sbb-typo-font-family);font-weight:700;line-height:var(--sbb-title-line-height);letter-spacing:var(--sbb-typo-letter-spacing-titles);font-size:var(--sbb-title-font-size);--sbb-title-font-size: var(--sbb-font-size-title-6);--sbb-title-line-height: var(--sbb-typo-line-height-body-text);color:var(--sbb-toast-text-color);flex:1 1 0}.sbb-toast__action{position:relative;min-width:2.5rem}:host(:not([data-slot-names~=action],[dismissible])) .sbb-toast__action{display:none}::slotted([data-sbb-button]),.sbb-toast__action-button{margin-inline:var(--sbb-spacing-fixed-2x);position:absolute;top:-.625rem}::slotted(:is(sbb-link,sbb-link-button,sbb-link-static)){margin-inline-start:var(--sbb-spacing-fixed-4x)}@keyframes open{0%{visibility:hidden;opacity:0;transform:translateY(var(--sbb-spacing-fixed-2x))}to{visibility:visible;opacity:1;transform:translateY(0)}}@keyframes close{0%{visibility:visible;opacity:1;transform:translateY(0)}to{visibility:hidden;opacity:0;transform:translateY(var(--sbb-spacing-fixed-2x))}}`;
11
- var N = Object.defineProperty, C = Object.getOwnPropertyDescriptor, n = (o, s, i, a) => {
12
- for (var t = a > 1 ? void 0 : a ? C(s, i) : s, r = o.length - 1, l; r >= 0; r--)
13
- (l = o[r]) && (t = (a ? l(s, i, t) : l(t)) || t);
14
- return a && t && N(s, i, t), t;
11
+ var z = Object.defineProperty, T = Object.getOwnPropertyDescriptor, n = (s, o, i, a) => {
12
+ for (var t = a > 1 ? void 0 : a ? T(o, i) : o, r = s.length - 1, l; r >= 0; r--)
13
+ (l = s[r]) && (t = (a ? l(o, i, t) : l(t)) || t);
14
+ return a && t && z(o, i, t), t;
15
15
  };
16
16
  const c = /* @__PURE__ */ new Set();
17
- let e = class extends T(f) {
17
+ let e = class extends N(f) {
18
18
  constructor() {
19
- super(), this.timeout = 6e3, this.position = "bottom-center", this.dismissible = !1, this.politeness = "polite", this._abort = new v(this), this._language = new g(this), new u(this);
19
+ super(), this.timeout = 6e3, this.position = "bottom-center", this.dismissible = !1, this.politeness = "polite", this.b = new v(this), this.c = new g(this), new u(this);
20
20
  }
21
21
  /**
22
22
  * Role of the live region. This is only for Firefox as there is a known issue where Firefox +
23
23
  * JAWS does not read out aria-live message.
24
24
  */
25
- get _role() {
26
- if (_) {
25
+ get d() {
26
+ if (x) {
27
27
  if (this.politeness === "polite")
28
28
  return "status";
29
29
  if (this.politeness === "assertive")
@@ -35,46 +35,46 @@ let e = class extends T(f) {
35
35
  * If there are other opened toasts in the page, close them first.
36
36
  */
37
37
  open() {
38
- this.state === "closed" && this.willOpen.emit() && (this.state = "opening", this._closeOtherToasts());
38
+ this.state === "closed" && this.willOpen.emit() && (this.state = "opening", this.e());
39
39
  }
40
40
  /**
41
41
  * Close the toast.
42
42
  */
43
43
  close() {
44
- this.state === "opened" && this.willClose.emit() && (clearTimeout(this._closeTimeout), this.state = "closing");
44
+ this.state === "opened" && this.willClose.emit() && (clearTimeout(this.a), this.state = "closing");
45
45
  }
46
46
  // Close the toast on click of any element that has the 'sbb-toast-close' attribute.
47
- _onClick(o) {
48
- const s = x(o, "sbb-toast-close", this);
49
- s && !s.hasAttribute("disabled") && this.close();
47
+ f(s) {
48
+ const o = y(s, "sbb-toast-close", this);
49
+ o && !o.hasAttribute("disabled") && this.close();
50
50
  }
51
51
  connectedCallback() {
52
52
  super.connectedCallback();
53
- const o = this._abort.signal;
54
- this.addEventListener("click", (s) => this._onClick(s), { signal: o }), c.add(this);
53
+ const s = this.b.signal;
54
+ this.addEventListener("click", (o) => this.f(o), { signal: s }), c.add(this);
55
55
  }
56
56
  disconnectedCallback() {
57
- super.disconnectedCallback(), clearTimeout(this._closeTimeout), c.delete(this);
57
+ super.disconnectedCallback(), clearTimeout(this.a), c.delete(this);
58
58
  }
59
59
  /**
60
60
  * Slotted text nodes are not read correctly by screen readers on Chrome.
61
61
  * To address the problem, if there is at least a root text node,
62
62
  * we wrap the whole content in a <span> tag
63
63
  */
64
- _onContentSlotChange(o) {
65
- const s = o.target.assignedNodes();
66
- if (s.some((i) => i.nodeType === Node.TEXT_NODE)) {
64
+ g(s) {
65
+ const o = s.target.assignedNodes();
66
+ if (o.some((i) => i.nodeType === Node.TEXT_NODE)) {
67
67
  const i = document.createElement("span");
68
- this.appendChild(i), i.append(...s);
68
+ this.appendChild(i), i.append(...o);
69
69
  }
70
70
  }
71
- _onActionSlotChange(o) {
72
- const s = o.target.assignedNodes();
73
- s.filter(
71
+ h(s) {
72
+ const o = s.target.assignedNodes();
73
+ o.filter(
74
74
  (t) => t.nodeName === "SBB-TRANSPARENT-BUTTON" || t.nodeName === "SBB-TRANSPARENT-BUTTON-LINK"
75
75
  ).forEach((t) => {
76
76
  t.negative = !0, t.size = "m";
77
- }), s.filter(
77
+ }), o.filter(
78
78
  (t) => ["SBB-LINK", "SBB-LINK-BUTTON", "SBB-LINK-STATIC"].includes(t.nodeName)
79
79
  ).forEach((t) => {
80
80
  t.negative = !0;
@@ -82,15 +82,15 @@ let e = class extends T(f) {
82
82
  }
83
83
  // In rare cases it can be that the animationEnd event is triggered twice.
84
84
  // To avoid entering a corrupt state, exit when state is not expected.
85
- _onToastAnimationEnd(o) {
86
- o.animationName === "open" && this.state === "opening" && (this.state = "opened", this.didOpen.emit(), this.timeout && (this._closeTimeout = setTimeout(() => this.close(), this.timeout))), o.animationName === "close" && this.state === "closing" && (this.state = "closed", this.didClose.emit());
85
+ i(s) {
86
+ s.animationName === "open" && this.state === "opening" && (this.state = "opened", this.didOpen.emit(), this.timeout && (this.a = setTimeout(() => this.close(), this.timeout))), s.animationName === "close" && this.state === "closing" && (this.state = "closed", this.didClose.emit());
87
87
  }
88
88
  /**
89
89
  * Since we do not stack toasts, we force the closing on other existing opened ones
90
90
  */
91
- _closeOtherToasts() {
92
- c.forEach((o) => {
93
- o.getAttribute("data-state") === "opened" && o.close();
91
+ e() {
92
+ c.forEach((s) => {
93
+ s.getAttribute("data-state") === "opened" && s.close();
94
94
  });
95
95
  }
96
96
  render() {
@@ -100,23 +100,23 @@ let e = class extends T(f) {
100
100
  class="sbb-toast"
101
101
  ${/* Firefox needs 'role' to enable screen readers */
102
102
  ""}
103
- role=${this._role ?? p}
104
- @animationend=${this._onToastAnimationEnd}
103
+ role=${this.d ?? p}
104
+ @animationend=${this.i}
105
105
  >
106
106
  <div class="sbb-toast__icon">${this.renderIconSlot()}</div>
107
107
 
108
108
  <div class="sbb-toast__content" aria-live=${this.politeness}>
109
- <slot @slotchange=${this._onContentSlotChange}></slot>
109
+ <slot @slotchange=${this.g}></slot>
110
110
  </div>
111
111
 
112
112
  <div class="sbb-toast__action">
113
- <slot name="action" @slotchange=${this._onActionSlotChange}>
113
+ <slot name="action" @slotchange=${this.h}>
114
114
  ${this.dismissible ? d` <sbb-transparent-button
115
115
  class="sbb-toast__action-button"
116
116
  icon-name="cross-small"
117
117
  negative
118
118
  size="m"
119
- aria-label=${y[this._language.current]}
119
+ aria-label=${_[this.c.current]}
120
120
  sbb-toast-close
121
121
  ></sbb-transparent-button>` : p}
122
122
  </slot>
@@ -1,50 +1,50 @@
1
- import { css as h, LitElement as c, html as g, nothing as d } from "lit";
1
+ import { css as c, LitElement as h, 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 _ } 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;
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;
12
12
  };
13
- let s = class extends _(c) {
13
+ let s = class extends y(h) {
14
14
  constructor() {
15
- super(), this.checked = !1, this.disabled = !1, this._value = "", this._abort = new u(this), new f(this);
15
+ super(), this.checked = !1, this.disabled = !1, this.c = "", this.e = new u(this), new f(this);
16
16
  }
17
- set value(e) {
18
- this._value = `${e}`;
17
+ set value(t) {
18
+ this.c = `${t}`;
19
19
  }
20
20
  get value() {
21
- return this._value;
21
+ return this.c;
22
22
  }
23
23
  connectedCallback() {
24
- var t;
24
+ var e;
25
25
  super.connectedCallback();
26
- const e = this._abort.signal;
27
- this.addEventListener("input", () => this._handleInput(), { signal: e }), this.addEventListener("click", () => {
26
+ const t = this.e.signal;
27
+ this.addEventListener("input", () => this.f(), { signal: t }), this.addEventListener("click", () => {
28
28
  var i;
29
29
  return (i = this.shadowRoot.querySelector("label")) == null ? void 0 : i.click();
30
30
  }, {
31
- signal: e
32
- }), this._toggle = ((t = this.closest) == null ? void 0 : t.call(this, "sbb-toggle")) ?? void 0, this._verifyTabindex();
31
+ signal: t
32
+ }), this.a = ((e = this.closest) == null ? void 0 : e.call(this, "sbb-toggle")) ?? void 0, this.b();
33
33
  }
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();
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();
36
36
  }
37
- _uncheckOtherOptions() {
38
- var e;
39
- (e = this._toggle) == null || e.options.filter((t) => t !== this).forEach((t) => t.checked = !1);
37
+ d() {
38
+ var t;
39
+ (t = this.a) == null || t.options.filter((e) => e !== this).forEach((e) => e.checked = !1);
40
40
  }
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();
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();
43
43
  }
44
- _handleInput() {
45
- this.disabled || (this.checked = !0, this._uncheckOtherOptions());
44
+ f() {
45
+ this.disabled || (this.checked = !0, this.d());
46
46
  }
47
- _verifyTabindex() {
47
+ b() {
48
48
  this.tabIndex = this.checked && !this.disabled ? 0 : -1;
49
49
  }
50
50
  render() {
@@ -57,7 +57,7 @@ let s = class extends _(c) {
57
57
  ?disabled=${this.disabled}
58
58
  .checked=${this.checked || d}
59
59
  .value=${this.value || d}
60
- @click=${(e) => e.stopPropagation()}
60
+ @click=${(t) => t.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 _(c) {
68
68
  `;
69
69
  }
70
70
  };
71
- s.styles = y;
72
- n([
71
+ s.styles = w;
72
+ l([
73
73
  a({ reflect: !0, type: Boolean })
74
74
  ], s.prototype, "checked", 2);
75
- n([
75
+ l([
76
76
  a({ reflect: !0, type: Boolean })
77
77
  ], s.prototype, "disabled", 2);
78
- n([
78
+ l([
79
79
  a()
80
80
  ], s.prototype, "value", 1);
81
- s = n([
81
+ s = l([
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 u, LitElement as v, isServer as c, html as m } from "lit";
1
+ import { css as m, LitElement as u, isServer as c, html as v } from "lit";
2
2
  import { property as a, customElement as f } from "lit/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";
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";
6
6
  import { EventEmitter as p } from "../core/eventing.js";
7
7
  import { AgnosticResizeObserver as C } from "../core/observers.js";
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;
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;
13
13
  };
14
- let r = class extends v {
14
+ let r = class extends u {
15
15
  constructor() {
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, {
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, {
19
19
  bubbles: !0,
20
20
  composed: !0
21
- }), this._change = new p(this, r.events.change, {
21
+ }), this.j = new p(this, r.events.change, {
22
22
  bubbles: !0,
23
23
  composed: !0
24
- }), this._abort = new x(this);
24
+ }), this.k = new k(this);
25
25
  }
26
26
  set disabled(e) {
27
- this._disabled = e, this._updateDisabled();
27
+ this.b = e, this.c();
28
28
  }
29
29
  get disabled() {
30
- return this._disabled;
30
+ return this.b;
31
31
  }
32
32
  set value(e) {
33
- c ? this._value = e : this._valueChanged(e);
33
+ c ? this.d = e : this.e(e);
34
34
  }
35
35
  get value() {
36
36
  var e, t;
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) ?? "";
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) ?? "";
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
- _valueChanged(e) {
44
+ e(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._setCheckedPillPosition(!1));
48
+ s && (s.checked || (s.checked = !0), this.a(!1));
49
49
  }
50
- _updateDisabled() {
50
+ c() {
51
51
  for (const e of this.options)
52
52
  e.disabled = this.disabled;
53
53
  }
54
- _setCheckedPillPosition(e) {
54
+ a(e) {
55
55
  var g, h;
56
- if (!this._loaded)
56
+ if (!this.f)
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`, 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);
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);
64
64
  }
65
65
  connectedCallback() {
66
66
  super.connectedCallback();
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();
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();
69
69
  }
70
70
  async firstUpdated(e) {
71
- super.firstUpdated(e), await this.updateComplete, this._loaded = !0;
71
+ super.firstUpdated(e), await this.updateComplete, this.f = !0;
72
72
  }
73
73
  disconnectedCallback() {
74
- super.disconnectedCallback(), this._toggleResizeObserver.disconnect();
74
+ super.disconnectedCallback(), this.g.disconnect();
75
75
  }
76
- _updateToggle() {
77
- this._valueChanged(this.value), this._updateDisabled();
76
+ h() {
77
+ this.e(this.value), this.c();
78
78
  }
79
- _handleInput() {
80
- this._setCheckedPillPosition(!1), this._change.emit(), this._didChange.emit();
79
+ l() {
80
+ this.a(!1), this.j.emit(), this.i.emit();
81
81
  }
82
- _handleKeyDown(e) {
82
+ m(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) && _(e)) {
87
+ e.target !== this && e.target.parentElement !== this) && w(e)) {
88
88
  const s = t.findIndex(
89
89
  (o) => o.checked
90
- ), i = w(e, s, t.length);
90
+ ), i = x(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 m`
97
+ return v`
98
98
  <div class="sbb-toggle">
99
- <slot @slotchange=${this._updateToggle}></slot>
99
+ <slot @slotchange=${this.h}></slot>
100
100
  </div>
101
101
  `;
102
102
  }
103
103
  };
104
- r.styles = z;
104
+ r.styles = E;
105
105
  r.events = {
106
106
  didChange: "didChange",
107
107
  change: "change"
108
108
  };
109
- b([
109
+ l([
110
110
  a({ reflect: !0, type: Boolean })
111
111
  ], r.prototype, "disabled", 1);
112
- b([
112
+ l([
113
113
  a({ reflect: !0, type: Boolean })
114
114
  ], r.prototype, "even", 2);
115
- b([
115
+ l([
116
116
  a({ reflect: !0 })
117
117
  ], r.prototype, "size", 2);
118
- b([
118
+ l([
119
119
  a()
120
120
  ], r.prototype, "value", 1);
121
- r = b([
121
+ r = l([
122
122
  f("sbb-toggle"),
123
- k({
123
+ z({
124
124
  role: "radiogroup"
125
125
  })
126
126
  ], r);
package/toggle-check.js CHANGED
@@ -1,25 +1,25 @@
1
- import { css as g, LitElement as h, html as n } from "lit";
1
+ import { css as g, LitElement as n, html as h } from "lit";
2
2
  import { property as i, customElement as d } from "lit/decorators.js";
3
3
  import { SbbSlotStateController as k } from "./core/controllers.js";
4
4
  import { SbbFormAssociatedCheckboxMixin as v } from "./core/mixins.js";
5
5
  import { SbbIconNameMixin as f } from "./icon.js";
6
- const p = g`@charset "UTF-8";*,:before,:after{box-sizing:border-box}:host{display:inline-block;outline:none!important;--sbb-toggle-check-checked-color: var(--sbb-color-red);--sbb-toggle-check-background-color: var(--sbb-color-cloud);--sbb-toggle-check-icon-color: var(--sbb-toggle-check-checked-color);--sbb-toggle-check-icon-opacity: 0;--sbb-toggle-check-circle-background-color: var(--sbb-color-white);--sbb-toggle-check-circle-border-color: var(--sbb-color-smoke);--sbb-toggle-check-circle-border-style: solid;--sbb-toggle-check-circle-diameter: 1.75rem;--sbb-toggle-check-overall-height: var(--sbb-toggle-check-circle-diameter);--sbb-toggle-check-circle-transform: translate(0, -50%);--sbb-toggle-check-height: 1.5rem;--sbb-toggle-check-width: calc(2 * var(--sbb-toggle-check-height));--sbb-toggle-check-cursor: pointer;--sbb-toggle-check-flex-direction: row-reverse;--sbb-toggle-check-gap: var(--sbb-spacing-fixed-3x);--sbb-toggle-check-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-6x) )}@media (forced-colors: active){:host{--sbb-toggle-check-background-color: CanvasText;--sbb-toggle-check-circle-background-color: Canvas}}:host([size=m]){--sbb-toggle-check-overall-height: calc(1em * var(--sbb-typo-line-height-body-text))}:host([data-checked]){--sbb-toggle-check-background-color: var(--sbb-toggle-check-checked-color);--sbb-toggle-check-circle-border-color: var(--sbb-toggle-check-background-color);--sbb-toggle-check-icon-opacity: 1;--sbb-toggle-check-circle-transform: translate( calc(100% - 2 * (100% - .5 * var(--sbb-toggle-check-width))), -50% )}@media (forced-colors: active){:host([data-checked]){--sbb-toggle-check-icon-color: Highlight;--sbb-toggle-check-background-color: Highlight}}:host(:disabled){--sbb-toggle-check-background-color: var(--sbb-color-cloud);--sbb-toggle-check-circle-border-color: var(--sbb-color-smoke);--sbb-toggle-check-circle-border-style: dashed;--sbb-toggle-check-circle-background-color: var(--sbb-color-milk);--sbb-toggle-check-icon-color: var(--sbb-color-granite);--sbb-toggle-check-cursor: default}@media (forced-colors: active){:host(:disabled){--sbb-toggle-check-icon-color: GrayText;--sbb-toggle-check-background-color: GrayText;--sbb-toggle-check-circle-border-style: solid}}:host([data-checked]:disabled){--sbb-toggle-check-circle-background-color: var(--sbb-color-white)}:host([label-position=before]){--sbb-toggle-check-flex-direction: row}.sbb-toggle-check{position:relative;display:flex;color:var(--sbb-color-charcoal);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;cursor:var(--sbb-toggle-check-cursor)}.sbb-toggle-check:before{content:"​";-webkit-user-select:none;user-select:none;width:0;height:0}:host(:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch])) .sbb-toggle-check{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width);border-radius:calc(var(--sbb-border-radius-4x) - var(--sbb-focus-outline-offset))}.sbb-toggle-check__container{--sbb-text-font-size: var(--sbb-font-size-text-s);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size);display:flex;flex-direction:var(--sbb-toggle-check-flex-direction);gap:var(--sbb-toggle-check-gap);align-items:start;width:100%}:host([size=m]) .sbb-toggle-check__container{--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)}.sbb-toggle-check__label{flex-grow:1;padding-block-start:calc((var(--sbb-toggle-check-circle-diameter) - var(--sbb-typo-line-height-body-text) * 1em) / 2)}:host(:not([data-slot-names~=unnamed])) .sbb-toggle-check__label{display:none}.sbb-toggle-check__track{display:inline-block;position:relative;min-width:var(--sbb-toggle-check-width);height:var(--sbb-toggle-check-height);border-radius:var(--sbb-border-radius-infinity);background-color:var(--sbb-toggle-check-background-color);margin-block:calc((var(--sbb-toggle-check-overall-height) - var(--sbb-toggle-check-height)) / 2)}.sbb-toggle-check__circle{box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-1-color);position:absolute;top:50%;transform:translateY(-50%);width:var(--sbb-toggle-check-circle-diameter);height:var(--sbb-toggle-check-circle-diameter);border:var(--sbb-border-width-1x) var(--sbb-toggle-check-circle-border-style) var(--sbb-toggle-check-circle-border-color);border-radius:50%;background-color:var(--sbb-toggle-check-circle-background-color);color:var(--sbb-toggle-check-icon-color);will-change:transform;transform:var(--sbb-toggle-check-circle-transform);transition:transform ease var(--sbb-toggle-check-animation-duration)}.sbb-toggle-check__icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:var(--sbb-size-icon-ui-small);height:var(--sbb-size-icon-ui-small);opacity:var(--sbb-toggle-check-icon-opacity);transition:opacity ease var(--sbb-toggle-check-animation-duration)}`;
7
- var u = Object.defineProperty, m = Object.getOwnPropertyDescriptor, s = (c, t, b, r) => {
8
- for (var e = r > 1 ? void 0 : r ? m(t, b) : t, l = c.length - 1, a; l >= 0; l--)
9
- (a = c[l]) && (e = (r ? a(t, b, e) : a(e)) || e);
10
- return r && e && u(t, b, e), e;
6
+ const p = g`@charset "UTF-8";*,:before,:after{box-sizing:border-box}:host{display:inline-block;outline:none!important;--sbb-toggle-check-checked-color: var(--sbb-color-red);--sbb-toggle-check-background-color: var(--sbb-color-cloud);--sbb-toggle-check-icon-color: var(--sbb-toggle-check-checked-color);--sbb-toggle-check-icon-opacity: 0;--sbb-toggle-check-circle-background-color: var(--sbb-color-white);--sbb-toggle-check-circle-border-color: var(--sbb-color-smoke);--sbb-toggle-check-circle-border-style: solid;--sbb-toggle-check-circle-diameter: 1.75rem;--sbb-toggle-check-overall-height: var(--sbb-toggle-check-circle-diameter);--sbb-toggle-check-circle-transform: translate(0, -50%);--sbb-toggle-check-height: 1.5rem;--sbb-toggle-check-width: calc(2 * var(--sbb-toggle-check-height));--sbb-toggle-check-cursor: pointer;--sbb-toggle-check-flex-direction: row-reverse;--sbb-toggle-check-gap: var(--sbb-spacing-fixed-3x);--sbb-toggle-check-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-6x) )}@media (forced-colors: active){:host{--sbb-toggle-check-background-color: CanvasText;--sbb-toggle-check-circle-background-color: Canvas}}:host([size=m]){--sbb-toggle-check-overall-height: calc(1em * var(--sbb-typo-line-height-body-text))}:host([data-checked]){--sbb-toggle-check-background-color: var(--sbb-toggle-check-checked-color);--sbb-toggle-check-circle-border-color: var(--sbb-toggle-check-background-color);--sbb-toggle-check-icon-opacity: 1;--sbb-toggle-check-circle-transform: translate( calc(100% - 2 * (100% - .5 * var(--sbb-toggle-check-width))), -50% )}@media (forced-colors: active){:host([data-checked]){--sbb-toggle-check-icon-color: Highlight;--sbb-toggle-check-background-color: Highlight}}:host(:disabled){--sbb-toggle-check-background-color: var(--sbb-color-cloud);--sbb-toggle-check-circle-border-color: var(--sbb-color-smoke);--sbb-toggle-check-circle-border-style: dashed;--sbb-toggle-check-circle-background-color: var(--sbb-color-milk);--sbb-toggle-check-icon-color: var(--sbb-color-granite);--sbb-toggle-check-cursor: default}@media (forced-colors: active){:host(:disabled){--sbb-toggle-check-icon-color: GrayText;--sbb-toggle-check-background-color: GrayText;--sbb-toggle-check-circle-border-style: solid}}:host([data-checked]:disabled){--sbb-toggle-check-circle-background-color: var(--sbb-color-white)}:host([label-position=before]){--sbb-toggle-check-flex-direction: row}.sbb-toggle-check{position:relative;display:flex;color:var(--sbb-color-charcoal);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;cursor:var(--sbb-toggle-check-cursor)}.sbb-toggle-check:before{content:"​";-webkit-user-select:none;user-select:none;width:0;height:0}:host(:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch])) .sbb-toggle-check{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width);border-radius:calc(var(--sbb-border-radius-4x) - var(--sbb-focus-outline-offset))}.sbb-toggle-check__container{--sbb-text-font-size: var(--sbb-font-size-text-s);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size);display:flex;flex-direction:var(--sbb-toggle-check-flex-direction);gap:var(--sbb-toggle-check-gap);align-items:start;width:100%}:host([size=m]) .sbb-toggle-check__container{--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)}:host([size=xs]) .sbb-toggle-check__container{--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)}.sbb-toggle-check__label{flex-grow:1;padding-block-start:calc((var(--sbb-toggle-check-circle-diameter) - var(--sbb-typo-line-height-body-text) * 1em) / 2)}:host(:not([data-slot-names~=unnamed])) .sbb-toggle-check__label{display:none}.sbb-toggle-check__track{display:inline-block;position:relative;min-width:var(--sbb-toggle-check-width);height:var(--sbb-toggle-check-height);border-radius:var(--sbb-border-radius-infinity);background-color:var(--sbb-toggle-check-background-color);margin-block:calc((var(--sbb-toggle-check-overall-height) - var(--sbb-toggle-check-height)) / 2)}.sbb-toggle-check__circle{box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-1-color);position:absolute;top:50%;transform:translateY(-50%);width:var(--sbb-toggle-check-circle-diameter);height:var(--sbb-toggle-check-circle-diameter);border:var(--sbb-border-width-1x) var(--sbb-toggle-check-circle-border-style) var(--sbb-toggle-check-circle-border-color);border-radius:50%;background-color:var(--sbb-toggle-check-circle-background-color);color:var(--sbb-toggle-check-icon-color);will-change:transform;transform:var(--sbb-toggle-check-circle-transform);transition:transform ease var(--sbb-toggle-check-animation-duration)}.sbb-toggle-check__icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:var(--sbb-size-icon-ui-small);height:var(--sbb-size-icon-ui-small);opacity:var(--sbb-toggle-check-icon-opacity);transition:opacity ease var(--sbb-toggle-check-animation-duration)}`;
7
+ var u = Object.defineProperty, m = Object.getOwnPropertyDescriptor, b = (t, c, r, s) => {
8
+ for (var e = s > 1 ? void 0 : s ? m(c, r) : c, l = t.length - 1, a; l >= 0; l--)
9
+ (a = t[l]) && (e = (s ? a(c, r, e) : a(e)) || e);
10
+ return s && e && u(c, r, e), e;
11
11
  };
12
12
  let o = class extends v(
13
- f(h)
13
+ f(n)
14
14
  ) {
15
15
  constructor() {
16
16
  super(), this.size = "s", this.iconName = "tick-small", this.labelPosition = "after", new k(this);
17
17
  }
18
- async willUpdate(c) {
19
- super.willUpdate(c), c.has("checked") && (this.internals.ariaChecked = `${this.checked}`, this.toggleAttribute("data-checked", this.checked));
18
+ async willUpdate(t) {
19
+ super.willUpdate(t), t.has("checked") && (this.internals.ariaChecked = `${this.checked}`, this.toggleAttribute("data-checked", this.checked));
20
20
  }
21
21
  render() {
22
- return n`
22
+ return h`
23
23
  <span class="sbb-toggle-check">
24
24
  <span class="sbb-toggle-check__container">
25
25
  <span class="sbb-toggle-check__label">
@@ -39,16 +39,16 @@ o.styles = p;
39
39
  o.events = {
40
40
  didChange: "didChange"
41
41
  };
42
- s([
42
+ b([
43
43
  i({ reflect: !0 })
44
44
  ], o.prototype, "size", 2);
45
- s([
45
+ b([
46
46
  i({ attribute: "icon-name" })
47
47
  ], o.prototype, "iconName", 2);
48
- s([
48
+ b([
49
49
  i({ attribute: "label-position", reflect: !0 })
50
50
  ], o.prototype, "labelPosition", 2);
51
- o = s([
51
+ o = b([
52
52
  d("sbb-toggle-check")
53
53
  ], o);
54
54
  export {