@sbb-esta/lyne-elements 0.52.1 → 0.53.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/accordion.js +54 -54
  2. package/action-group.js +3 -3
  3. package/alert/alert-group.js +22 -22
  4. package/alert/alert.js +22 -22
  5. package/autocomplete.js +126 -126
  6. package/breadcrumb/breadcrumb-group.js +60 -60
  7. package/breadcrumb/breadcrumb.js +17 -17
  8. package/calendar.js +423 -423
  9. package/card/card-badge.js +17 -17
  10. package/card/card.js +2 -2
  11. package/card/common.js +30 -30
  12. package/checkbox/checkbox/checkbox.d.ts +3 -46
  13. package/checkbox/checkbox/checkbox.d.ts.map +1 -1
  14. package/checkbox/checkbox-group/checkbox-group.d.ts +4 -2
  15. package/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
  16. package/checkbox/checkbox-group.js +26 -23
  17. package/checkbox/checkbox-panel/checkbox-panel.d.ts +41 -0
  18. package/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -0
  19. package/checkbox/checkbox-panel.d.ts +2 -0
  20. package/checkbox/checkbox-panel.d.ts.map +1 -0
  21. package/checkbox/checkbox-panel.js +67 -0
  22. package/checkbox/checkbox.js +27 -104
  23. package/checkbox/common/checkbox-common.d.ts +13 -0
  24. package/checkbox/common/checkbox-common.d.ts.map +1 -0
  25. package/checkbox/common.d.ts +2 -0
  26. package/checkbox/common.d.ts.map +1 -0
  27. package/checkbox/common.js +52 -0
  28. package/checkbox.d.ts +2 -0
  29. package/checkbox.d.ts.map +1 -1
  30. package/checkbox.js +2 -0
  31. package/clock.js +83 -83
  32. package/container/sticky-bar.js +16 -16
  33. package/core/a11y.js +91 -91
  34. package/core/base-elements.js +86 -86
  35. package/core/controllers.js +40 -40
  36. package/core/datetime.js +32 -32
  37. package/core/dom.js +26 -26
  38. package/core/eventing.js +33 -33
  39. package/core/mixins/panel-mixin.d.ts +13 -0
  40. package/core/mixins/panel-mixin.d.ts.map +1 -0
  41. package/core/mixins.d.ts +1 -0
  42. package/core/mixins.d.ts.map +1 -1
  43. package/core/mixins.js +170 -139
  44. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables_css--mixin.scss +1 -1
  45. package/core/testing.js +29 -29
  46. package/core.css +1 -1
  47. package/custom-elements.json +8862 -6904
  48. package/datepicker/common.js +55 -55
  49. package/datepicker/datepicker-toggle.js +94 -94
  50. package/datepicker/datepicker.js +144 -144
  51. package/development/checkbox/checkbox/checkbox.d.ts +3 -46
  52. package/development/checkbox/checkbox/checkbox.d.ts.map +1 -1
  53. package/development/checkbox/checkbox-group/checkbox-group.d.ts +4 -2
  54. package/development/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
  55. package/development/checkbox/checkbox-group.js +43 -13
  56. package/development/checkbox/checkbox-panel/checkbox-panel.d.ts +41 -0
  57. package/development/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -0
  58. package/development/checkbox/checkbox-panel.d.ts +2 -0
  59. package/development/checkbox/checkbox-panel.d.ts.map +1 -0
  60. package/development/checkbox/checkbox-panel.js +86 -0
  61. package/development/checkbox/checkbox.js +19 -239
  62. package/development/checkbox/common/checkbox-common.d.ts +13 -0
  63. package/development/checkbox/common/checkbox-common.d.ts.map +1 -0
  64. package/development/checkbox/common.d.ts +2 -0
  65. package/development/checkbox/common.d.ts.map +1 -0
  66. package/development/checkbox/common.js +156 -0
  67. package/development/checkbox.d.ts +2 -0
  68. package/development/checkbox.d.ts.map +1 -1
  69. package/development/checkbox.js +3 -1
  70. package/development/core/mixins/panel-mixin.d.ts +13 -0
  71. package/development/core/mixins/panel-mixin.d.ts.map +1 -0
  72. package/development/core/mixins.d.ts +1 -0
  73. package/development/core/mixins.d.ts.map +1 -1
  74. package/development/core/mixins.js +187 -31
  75. package/development/image.js +1 -1
  76. package/development/radio-button/common/radio-button-common.d.ts +22 -0
  77. package/development/radio-button/common/radio-button-common.d.ts.map +1 -0
  78. package/development/radio-button/common.d.ts +2 -0
  79. package/development/radio-button/common.d.ts.map +1 -0
  80. package/development/radio-button/common.js +294 -0
  81. package/development/radio-button/radio-button/radio-button.d.ts +2 -81
  82. package/development/radio-button/radio-button/radio-button.d.ts.map +1 -1
  83. package/development/radio-button/radio-button-group/radio-button-group.d.ts +6 -4
  84. package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  85. package/development/radio-button/radio-button-group.js +55 -23
  86. package/development/radio-button/radio-button-panel/index.d.ts +2 -0
  87. package/development/radio-button/radio-button-panel/index.d.ts.map +1 -0
  88. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts +29 -0
  89. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -0
  90. package/development/radio-button/radio-button-panel.d.ts +2 -0
  91. package/development/radio-button/radio-button-panel.d.ts.map +1 -0
  92. package/development/radio-button/radio-button-panel.js +69 -0
  93. package/development/radio-button/radio-button.js +10 -324
  94. package/development/radio-button.d.ts +2 -0
  95. package/development/radio-button.d.ts.map +1 -1
  96. package/development/radio-button.js +3 -1
  97. package/{selection-panel/selection-panel.d.ts → development/selection-expansion-panel/selection-expansion-panel.d.ts} +9 -7
  98. package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -0
  99. package/development/selection-expansion-panel.d.ts +2 -0
  100. package/development/selection-expansion-panel.d.ts.map +1 -0
  101. package/development/selection-expansion-panel.js +340 -0
  102. package/development/tabs/tab/index.d.ts +2 -0
  103. package/development/tabs/tab/index.d.ts.map +1 -0
  104. package/development/tabs/tab/tab.d.ts +24 -0
  105. package/development/tabs/tab/tab.d.ts.map +1 -0
  106. package/development/tabs/tab-group/tab-group.d.ts +20 -15
  107. package/development/tabs/tab-group/tab-group.d.ts.map +1 -1
  108. package/development/tabs/tab-group.js +24 -14
  109. package/development/tabs/{tab-title/tab-title.d.ts → tab-label/tab-label.d.ts} +4 -4
  110. package/development/tabs/{tab-title/tab-title.d.ts.map → tab-label/tab-label.d.ts.map} +1 -1
  111. package/development/tabs/tab-label.d.ts +2 -0
  112. package/development/tabs/tab-label.d.ts.map +1 -0
  113. package/development/tabs/{tab-title.js → tab-label.js} +86 -86
  114. package/development/tabs/tab.d.ts +2 -0
  115. package/development/tabs/tab.d.ts.map +1 -0
  116. package/development/tabs/tab.js +71 -0
  117. package/development/tabs.d.ts +2 -1
  118. package/development/tabs.d.ts.map +1 -1
  119. package/development/tabs.js +3 -2
  120. package/development/train/train-formation/train-formation.d.ts.map +1 -1
  121. package/development/train/train-formation.js +12 -12
  122. package/dialog/dialog-title.js +20 -20
  123. package/dialog/dialog.js +66 -66
  124. package/expansion-panel/expansion-panel-header.js +20 -20
  125. package/expansion-panel/expansion-panel.js +60 -60
  126. package/file-selector.js +91 -91
  127. package/form-field/form-field-clear.js +12 -12
  128. package/form-field/form-field.js +111 -111
  129. package/header/header.js +53 -53
  130. package/icon.js +107 -107
  131. package/image.js +87 -87
  132. package/index.d.ts +10 -8
  133. package/index.js +10 -8
  134. package/journey-header.js +29 -29
  135. package/map-container.js +23 -23
  136. package/menu/menu.js +91 -91
  137. package/navigation/common.js +16 -16
  138. package/navigation/navigation-marker.js +34 -34
  139. package/navigation/navigation-section.js +83 -83
  140. package/navigation/navigation.js +87 -87
  141. package/notification.js +52 -52
  142. package/option/optgroup.js +45 -45
  143. package/option/option.js +108 -108
  144. package/overlay.js +5 -5
  145. package/package.json +34 -19
  146. package/popover/popover.js +110 -110
  147. package/radio-button/common/radio-button-common.d.ts +22 -0
  148. package/radio-button/common/radio-button-common.d.ts.map +1 -0
  149. package/radio-button/common.d.ts +2 -0
  150. package/radio-button/common.d.ts.map +1 -0
  151. package/radio-button/common.js +105 -0
  152. package/radio-button/radio-button/radio-button.d.ts +2 -81
  153. package/radio-button/radio-button/radio-button.d.ts.map +1 -1
  154. package/radio-button/radio-button-group/radio-button-group.d.ts +6 -4
  155. package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  156. package/radio-button/radio-button-group.js +86 -80
  157. package/radio-button/radio-button-panel/index.d.ts +2 -0
  158. package/radio-button/radio-button-panel/index.d.ts.map +1 -0
  159. package/radio-button/radio-button-panel/radio-button-panel.d.ts +29 -0
  160. package/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -0
  161. package/radio-button/radio-button-panel.d.ts +2 -0
  162. package/radio-button/radio-button-panel.d.ts.map +1 -0
  163. package/radio-button/radio-button-panel.js +59 -0
  164. package/radio-button/radio-button.js +20 -143
  165. package/radio-button.d.ts +2 -0
  166. package/radio-button.d.ts.map +1 -1
  167. package/radio-button.js +2 -0
  168. package/select.js +178 -178
  169. package/{development/selection-panel/selection-panel.d.ts → selection-expansion-panel/selection-expansion-panel.d.ts} +9 -7
  170. package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -0
  171. package/selection-expansion-panel.d.ts +2 -0
  172. package/selection-expansion-panel.d.ts.map +1 -0
  173. package/selection-expansion-panel.js +146 -0
  174. package/slider.js +58 -58
  175. package/standard-theme.css +1 -1
  176. package/status.js +6 -6
  177. package/stepper/step-label.js +19 -19
  178. package/stepper/step.js +31 -31
  179. package/stepper/stepper.js +46 -46
  180. package/tabs/tab/index.d.ts +2 -0
  181. package/tabs/tab/index.d.ts.map +1 -0
  182. package/tabs/tab/tab.d.ts +24 -0
  183. package/tabs/tab/tab.d.ts.map +1 -0
  184. package/tabs/tab-group/tab-group.d.ts +20 -15
  185. package/tabs/tab-group/tab-group.d.ts.map +1 -1
  186. package/tabs/tab-group.js +85 -75
  187. package/tabs/{tab-title/tab-title.d.ts → tab-label/tab-label.d.ts} +4 -4
  188. package/tabs/{tab-title/tab-title.d.ts.map → tab-label/tab-label.d.ts.map} +1 -1
  189. package/tabs/tab-label.d.ts +2 -0
  190. package/tabs/tab-label.d.ts.map +1 -0
  191. package/tabs/tab-label.js +51 -0
  192. package/tabs/tab.d.ts +2 -0
  193. package/tabs/tab.d.ts.map +1 -0
  194. package/tabs/tab.js +41 -0
  195. package/tabs.d.ts +2 -1
  196. package/tabs.d.ts.map +1 -1
  197. package/tabs.js +2 -1
  198. package/tag/tag-group.js +8 -8
  199. package/tag/tag.js +27 -27
  200. package/time-input.js +73 -73
  201. package/timetable-occupancy-icon.js +26 -26
  202. package/timetable-occupancy.js +9 -9
  203. package/toast.js +38 -38
  204. package/toggle/toggle-option.js +33 -33
  205. package/toggle/toggle.js +46 -46
  206. package/train/train-formation/train-formation.d.ts.map +1 -1
  207. package/train/train-formation.js +51 -51
  208. package/train/train-wagon.js +30 -30
  209. package/train/train.js +13 -13
  210. package/development/selection-panel/selection-panel.d.ts.map +0 -1
  211. package/development/selection-panel.d.ts +0 -2
  212. package/development/selection-panel.d.ts.map +0 -1
  213. package/development/selection-panel.js +0 -376
  214. package/development/tabs/tab-title.d.ts +0 -2
  215. package/development/tabs/tab-title.d.ts.map +0 -1
  216. package/development/teaser-hero/teaser-hero.d.ts +0 -26
  217. package/development/teaser-hero/teaser-hero.d.ts.map +0 -1
  218. package/development/teaser-hero.d.ts +0 -2
  219. package/development/teaser-hero.d.ts.map +0 -1
  220. package/development/teaser-hero.js +0 -181
  221. package/development/teaser-paid/teaser-paid.d.ts +0 -20
  222. package/development/teaser-paid/teaser-paid.d.ts.map +0 -1
  223. package/development/teaser-paid.d.ts +0 -2
  224. package/development/teaser-paid.d.ts.map +0 -1
  225. package/development/teaser-paid.js +0 -91
  226. package/selection-panel/selection-panel.d.ts.map +0 -1
  227. package/selection-panel.d.ts +0 -2
  228. package/selection-panel.d.ts.map +0 -1
  229. package/selection-panel.js +0 -138
  230. package/tabs/tab-title.d.ts +0 -2
  231. package/tabs/tab-title.d.ts.map +0 -1
  232. package/tabs/tab-title.js +0 -51
  233. package/teaser-hero/teaser-hero.d.ts +0 -26
  234. package/teaser-hero/teaser-hero.d.ts.map +0 -1
  235. package/teaser-hero.d.ts +0 -2
  236. package/teaser-hero.d.ts.map +0 -1
  237. package/teaser-hero.js +0 -51
  238. package/teaser-paid/teaser-paid.d.ts +0 -20
  239. package/teaser-paid/teaser-paid.d.ts.map +0 -1
  240. package/teaser-paid.d.ts +0 -2
  241. package/teaser-paid.d.ts.map +0 -1
  242. package/teaser-paid.js +0 -28
@@ -1,96 +1,17 @@
1
- import { CSSResultGroup, PropertyValues, TemplateResult, LitElement } from 'lit';
2
- import { SbbCheckedStateChange, SbbDisabledStateChange, SbbStateChange } from '../../core/interfaces.js';
3
- import { SbbRadioButtonGroupElement } from '../radio-button-group.js';
1
+ import { CSSResultGroup, TemplateResult, LitElement } from 'lit';
4
2
 
5
- export type SbbRadioButtonStateChange = Extract<SbbStateChange, SbbDisabledStateChange | SbbCheckedStateChange>;
6
- export type SbbRadioButtonSize = 's' | 'm';
7
- declare const SbbRadioButtonElement_base: import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbUpdateSchedulerMixinType> & typeof LitElement;
3
+ declare const SbbRadioButtonElement_base: import('../../core/mixins.js').AbstractConstructor<import('../common.js').SbbRadioButtonCommonElementMixinType> & typeof LitElement;
8
4
  /**
9
5
  * It displays a radio button enhanced with the SBB Design.
10
6
  *
11
7
  * @slot - Use the unnamed slot to add content to the radio label.
12
- * @slot subtext - Slot used to render a subtext under the label (only visible within a `sbb-selection-panel`).
13
- * @slot suffix - Slot used to render additional content after the label (only visible within a `sbb-selection-panel`).
14
8
  */
15
9
  export declare class SbbRadioButtonElement extends SbbRadioButtonElement_base {
16
10
  static styles: CSSResultGroup;
17
11
  static readonly events: {
18
12
  readonly stateChange: "stateChange";
19
- readonly radioButtonLoaded: "radioButtonLoaded";
20
13
  };
21
- /**
22
- * Whether the radio can be deselected.
23
- */
24
- set allowEmptySelection(value: boolean);
25
- get allowEmptySelection(): boolean;
26
- private _allowEmptySelection;
27
- /**
28
- * Value of radio button.
29
- */
30
- value?: string;
31
- /**
32
- * Whether the radio button is disabled.
33
- */
34
- set disabled(value: boolean);
35
- get disabled(): boolean;
36
- private _disabled;
37
- /**
38
- * Whether the radio button is required.
39
- */
40
- set required(value: boolean);
41
- get required(): boolean;
42
- private _required;
43
- /**
44
- * Reference to the connected radio button group.
45
- */
46
- get group(): SbbRadioButtonGroupElement | null;
47
- private _group;
48
- /**
49
- * Whether the radio button is checked.
50
- */
51
- set checked(value: boolean);
52
- get checked(): boolean;
53
- private _checked;
54
- /**
55
- * Label size variant, either m or s.
56
- */
57
- set size(value: SbbRadioButtonSize);
58
- get size(): SbbRadioButtonSize;
59
- private _size;
60
- /**
61
- * Whether the input is the main input of a selection panel.
62
- * @internal
63
- */
64
- get isSelectionPanelInput(): boolean;
65
- private _isSelectionPanelInput;
66
- /**
67
- * The label describing whether the selection panel is expanded (for screen readers only).
68
- */
69
- private _selectionPanelExpandedLabel?;
70
- private _selectionPanelElement;
71
- private _abort;
72
- private _language;
73
- /**
74
- * @internal
75
- * Internal event that emits whenever the state of the radio option
76
- * in relation to the parent selection panel changes.
77
- */
78
- private _stateChange;
79
- /**
80
- * @internal
81
- * Internal event that emits when the radio button is loaded.
82
- */
83
- private _radioButtonLoaded;
84
- private _handleClick;
85
- select(): void;
86
- private _handlerRepository;
87
14
  constructor();
88
- connectedCallback(): void;
89
- protected willUpdate(changedProperties: PropertyValues<this>): void;
90
- protected firstUpdated(changedProperties: PropertyValues<this>): void;
91
- disconnectedCallback(): void;
92
- private _handleKeyDown;
93
- private _updateExpandedLabel;
94
15
  protected render(): TemplateResult;
95
16
  }
96
17
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"radio-button.d.ts","sourceRoot":"","sources":["../../../../src/elements/radio-button/radio-button/radio-button.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAQ,UAAU,EAAW,MAAM,KAAK,CAAC;AAYhD,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACf,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAI3E,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAC7C,cAAc,EACd,sBAAsB,GAAG,qBAAqB,CAC/C,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,GAAG,GAAG,GAAG,CAAC;;AAE3C;;;;;;GAMG;AACH,qBAIa,qBAAsB,SAAQ,0BAAmC;IAC5E,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;;MAGlB;IAEX;;OAEG;IACH,IACW,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAE5C;IACD,IAAW,mBAAmB,IAAI,OAAO,CAExC;IACD,OAAO,CAAC,oBAAoB,CAAS;IAErC;;OAEG;IACgB,KAAK,CAAC,EAAE,MAAM,CAAC;IAElC;;OAEG;IACH,IACW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAEjC;IACD,IAAW,QAAQ,IAAI,OAAO,CAE7B;IACD,OAAO,CAAC,SAAS,CAAS;IAE1B;;OAEG;IACH,IACW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAEjC;IACD,IAAW,QAAQ,IAAI,OAAO,CAE7B;IACD,OAAO,CAAC,SAAS,CAAS;IAE1B;;OAEG;IACH,IAAW,KAAK,IAAI,0BAA0B,GAAG,IAAI,CAEpD;IACD,OAAO,CAAC,MAAM,CAA2C;IAEzD;;OAEG;IACH,IACW,OAAO,CAAC,KAAK,EAAE,OAAO,EAEhC;IACD,IAAW,OAAO,IAAI,OAAO,CAE5B;IACD,OAAO,CAAC,QAAQ,CAAS;IAEzB;;OAEG;IACH,IACW,IAAI,CAAC,KAAK,EAAE,kBAAkB,EAExC;IACD,IAAW,IAAI,IAAI,kBAAkB,CAEpC;IACD,OAAO,CAAC,KAAK,CAA2B;IAExC;;;OAGG;IACH,IAAW,qBAAqB,IAAI,OAAO,CAE1C;IACQ,OAAO,CAAC,sBAAsB,CAAS;IAEhD;;OAEG;IACM,OAAO,CAAC,4BAA4B,CAAC,CAAS;IAEvD,OAAO,CAAC,sBAAsB,CAAyC;IACvE,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,SAAS,CAAmC;IAEpD;;;;OAIG;IACH,OAAO,CAAC,YAAY,CAIlB;IAEF;;;OAGG;IACH,OAAO,CAAC,kBAAkB,CAIxB;IACF,OAAO,CAAC,YAAY;IAKb,MAAM,IAAI,IAAI;IAYrB,OAAO,CAAC,kBAAkB,CAAyD;;IAOnE,iBAAiB,IAAI,IAAI;cAmBtB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAqBzD,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAW9D,oBAAoB,IAAI,IAAI;IAK5C,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,oBAAoB;cAWT,MAAM,IAAI,cAAc;CAwB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,kBAAkB,EAAE,qBAAqB,CAAC;KAC3C;CACF"}
1
+ {"version":3,"file":"radio-button.d.ts","sourceRoot":"","sources":["../../../../src/elements/radio-button/radio-button/radio-button.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAiB,MAAM,KAAK,CAAC;;AAQhD;;;;GAIG;AACH,qBACa,qBAAsB,SAAQ,0BAA4C;IACrF,OAAuB,MAAM,EAAE,cAAc,CAA8C;IAC3F,gBAAuB,MAAM;;MAElB;;cAOQ,MAAM,IAAI,cAAc;CAmB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,kBAAkB,EAAE,qBAAqB,CAAC;KAC3C;CACF"}
@@ -1,10 +1,12 @@
1
1
  import { CSSResultGroup, PropertyValues, TemplateResult, LitElement } from 'lit';
2
2
  import { SbbHorizontalFrom, SbbOrientation } from '../../core/interfaces.js';
3
- import { SbbRadioButtonElement, SbbRadioButtonSize } from '../radio-button.js';
3
+ import { SbbRadioButtonSize } from '../common.js';
4
+ import { SbbRadioButtonPanelElement } from '../radio-button-panel.js';
5
+ import { SbbRadioButtonElement } from '../radio-button.js';
4
6
 
5
7
  export type SbbRadioButtonGroupEventDetail = {
6
8
  value: any | null;
7
- radioButton: SbbRadioButtonElement;
9
+ radioButton: SbbRadioButtonElement | SbbRadioButtonPanelElement;
8
10
  };
9
11
  declare const SbbRadioButtonGroupElement_base: import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbDisabledMixinType> & typeof LitElement;
10
12
  /**
@@ -50,9 +52,9 @@ export declare class SbbRadioButtonGroupElement extends SbbRadioButtonGroupEleme
50
52
  /**
51
53
  * List of contained radio buttons.
52
54
  */
53
- get radioButtons(): SbbRadioButtonElement[];
55
+ get radioButtons(): (SbbRadioButtonElement | SbbRadioButtonPanelElement)[];
54
56
  private get _enabledRadios();
55
- private _hasSelectionPanel;
57
+ private _hasSelectionExpansionPanelElement;
56
58
  private _didLoad;
57
59
  private _abort;
58
60
  private _valueChanged;
@@ -1 +1 @@
1
- {"version":3,"file":"radio-button-group.d.ts","sourceRoot":"","sources":["../../../../src/elements/radio-button/radio-button-group/radio-button-group.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAOvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAkB,MAAM,0BAA0B,CAAC;AAGlG,OAAO,KAAK,EACV,qBAAqB,EACrB,kBAAkB,EAEnB,MAAM,oBAAoB,CAAC;AAI5B,MAAM,MAAM,8BAA8B,GAAG;IAC3C,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IAClB,WAAW,EAAE,qBAAqB,CAAC;CACpC,CAAC;;AAEF;;;;;;;;GAQG;AACH,qBAIa,0BAA2B,SAAQ,+BAA4B;IAC1E,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;;;MAIlB;IAEX;;OAEG;IAEI,mBAAmB,EAAE,OAAO,CAAS;IAE5C;;OAEG;IACiC,QAAQ,EAAE,OAAO,CAAS;IAE9D;;OAEG;IACgB,KAAK,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAEtC;;OAEG;IACgB,IAAI,EAAE,kBAAkB,CAAO;IAElD;;OAEG;IAEI,cAAc,CAAC,EAAE,iBAAiB,CAAC;IAE1C;;OAEG;IAEI,WAAW,EAAE,cAAc,CAAgB;IAElD;;OAEG;IACH,IAAW,YAAY,IAAI,qBAAqB,EAAE,CAIjD;IAED,OAAO,KAAK,cAAc,GAIzB;IAED,OAAO,CAAC,kBAAkB,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAyC;IAEvD,OAAO,CAAC,aAAa;IAQrB;;;OAGG;IACH,OAAO,CAAC,UAAU,CAGhB;IAEF;;OAEG;IACH,OAAO,CAAC,OAAO,CAGb;IAEF;;OAEG;IACH,OAAO,CAAC,MAAM,CAGZ;;IAOc,iBAAiB,IAAI,IAAI;IAkBzB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAqBtD,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAO9D,oBAAoB,IAAI,IAAI;IAI5C,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,cAAc;cAiCH,MAAM,IAAI,cAAc;CAU5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,wBAAwB,EAAE,0BAA0B,CAAC;KACtD;CACF"}
1
+ {"version":3,"file":"radio-button-group.d.ts","sourceRoot":"","sources":["../../../../src/elements/radio-button/radio-button-group/radio-button-group.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAOvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAkB,MAAM,0BAA0B,CAAC;AAElG,OAAO,KAAK,EAAE,kBAAkB,EAA6B,MAAM,cAAc,CAAC;AAClF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAIhE,MAAM,MAAM,8BAA8B,GAAG;IAC3C,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IAClB,WAAW,EAAE,qBAAqB,GAAG,0BAA0B,CAAC;CACjE,CAAC;;AAEF;;;;;;;;GAQG;AACH,qBAIa,0BAA2B,SAAQ,+BAA4B;IAC1E,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;;;MAIlB;IAEX;;OAEG;IAEI,mBAAmB,EAAE,OAAO,CAAS;IAE5C;;OAEG;IACiC,QAAQ,EAAE,OAAO,CAAS;IAE9D;;OAEG;IACgB,KAAK,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAEtC;;OAEG;IACgB,IAAI,EAAE,kBAAkB,CAAO;IAElD;;OAEG;IAEI,cAAc,CAAC,EAAE,iBAAiB,CAAC;IAE1C;;OAEG;IAEI,WAAW,EAAE,cAAc,CAAgB;IAElD;;OAEG;IACH,IAAW,YAAY,IAAI,CAAC,qBAAqB,GAAG,0BAA0B,CAAC,EAAE,CAOhF;IAED,OAAO,KAAK,cAAc,GAIzB;IAED,OAAO,CAAC,kCAAkC,CAAkB;IAC5D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAyC;IAEvD,OAAO,CAAC,aAAa;IAQrB;;;OAGG;IACH,OAAO,CAAC,UAAU,CAGhB;IAEF;;OAEG;IACH,OAAO,CAAC,OAAO,CAGb;IAEF;;OAEG;IACH,OAAO,CAAC,MAAM,CAGZ;;IAOc,iBAAiB,IAAI,IAAI;IAuBzB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAqBtD,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAO9D,oBAAoB,IAAI,IAAI;IAI5C,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,cAAc;cA+BH,MAAM,IAAI,cAAc;CAU5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,wBAAwB,EAAE,0BAA0B,CAAC;KACtD;CACF"}
@@ -1,67 +1,73 @@
1
- import { css as u, LitElement as c, html as p } from "lit";
2
- import { property as d, customElement as m } from "lit/decorators.js";
3
- import { isArrowKeyPressed as f, getNextElementIndex as g } from "../core/a11y.js";
4
- import { SbbConnectedAbortController as v, SbbSlotStateController as w } from "../core/controllers.js";
5
- import { hostAttributes as x } from "../core/decorators.js";
6
- import { EventEmitter as b } from "../core/eventing.js";
7
- import { SbbDisabledMixin as y } from "../core/mixins.js";
8
- const z = u`*,:before,:after{box-sizing:border-box}:host{--sbb-radio-button-group-orientation: row;--sbb-radio-button-group-width: max-content;--sbb-radio-button-group-gap: var(--sbb-spacing-fixed-3x) var(--sbb-spacing-fixed-6x);display:block}:host([orientation=vertical]){--sbb-radio-button-group-orientation: column;--sbb-radio-button-group-width: 100%}:host([data-has-selection-panel]){--sbb-radio-button-group-width: 100%}:host([data-has-selection-panel][orientation=vertical]){--sbb-radio-button-group-gap: var(--sbb-spacing-fixed-2x) var(--sbb-spacing-fixed-4x)}@media (min-width: 0rem){:host([orientation=vertical][horizontal-from=zero]){--sbb-radio-button-group-orientation: row}:host([orientation=vertical][horizontal-from=zero]:not([data-has-selection-panel])){--sbb-radio-button-group-width: max-content}}@media (min-width: 22.5rem){:host([orientation=vertical][horizontal-from=micro]){--sbb-radio-button-group-orientation: row}:host([orientation=vertical][horizontal-from=micro]:not([data-has-selection-panel])){--sbb-radio-button-group-width: max-content}}@media (min-width: 37.5rem){:host([orientation=vertical][horizontal-from=small]){--sbb-radio-button-group-orientation: row}:host([orientation=vertical][horizontal-from=small]:not([data-has-selection-panel])){--sbb-radio-button-group-width: max-content}}@media (min-width: 52.5rem){:host([orientation=vertical][horizontal-from=medium]){--sbb-radio-button-group-orientation: row}:host([orientation=vertical][horizontal-from=medium]:not([data-has-selection-panel])){--sbb-radio-button-group-width: max-content}}@media (min-width: 64rem){:host([orientation=vertical][horizontal-from=large]){--sbb-radio-button-group-orientation: row}:host([orientation=vertical][horizontal-from=large]:not([data-has-selection-panel])){--sbb-radio-button-group-width: max-content}}@media (min-width: 80rem){:host([orientation=vertical][horizontal-from=wide]){--sbb-radio-button-group-orientation: row}:host([orientation=vertical][horizontal-from=wide]:not([data-has-selection-panel])){--sbb-radio-button-group-width: max-content}}@media (min-width: 90rem){:host([orientation=vertical][horizontal-from=ultra]){--sbb-radio-button-group-orientation: row}:host([orientation=vertical][horizontal-from=ultra]:not([data-has-selection-panel])){--sbb-radio-button-group-width: max-content}}.sbb-radio-group{display:flex;flex-direction:var(--sbb-radio-button-group-orientation);gap:var(--sbb-radio-button-group-gap);align-items:flex-start;width:var(--sbb-radio-button-group-width)}.sbb-radio-group__error{display:inline-block;margin-block-start:var(--sbb-spacing-fixed-1x)}:host(:not([data-slot-names~=error])) .sbb-radio-group__error{display:none}`;
9
- var E = Object.defineProperty, C = Object.getOwnPropertyDescriptor, n = (t, o, e, i) => {
10
- for (var a = i > 1 ? void 0 : i ? C(o, e) : o, s = t.length - 1, l; s >= 0; s--)
11
- (l = t[s]) && (a = (i ? l(o, e, a) : l(a)) || a);
12
- return i && a && E(o, e, a), a;
1
+ import { css as b, LitElement as u, html as p } from "lit";
2
+ import { property as s, customElement as c } from "lit/decorators.js";
3
+ import { isArrowKeyPressed as m, getNextElementIndex as f } from "../core/a11y.js";
4
+ import { SbbConnectedAbortController as g, SbbSlotStateController as v } from "../core/controllers.js";
5
+ import { hostAttributes as w } from "../core/decorators.js";
6
+ import { EventEmitter as h } from "../core/eventing.js";
7
+ import { SbbDisabledMixin as _ } from "../core/mixins.js";
8
+ const x = b`*,:before,:after{box-sizing:border-box}:host{--sbb-radio-button-group-orientation: row;--sbb-radio-button-group-width: max-content;--sbb-radio-button-group-gap: var(--sbb-spacing-fixed-3x) var(--sbb-spacing-fixed-6x);display:block}:host ::slotted(sbb-radio-button-panel){flex:auto}:host([orientation=vertical]){--sbb-radio-button-group-orientation: column;--sbb-radio-button-group-width: 100%}:host([orientation=vertical]) ::slotted(sbb-radio-button-panel){width:100%}:host([data-has-panel]){--sbb-radio-button-group-width: 100%}:host([data-has-panel][orientation=vertical]){--sbb-radio-button-group-gap: var(--sbb-spacing-fixed-2x) var(--sbb-spacing-fixed-4x)}@media (min-width: 0rem){:host([orientation=vertical][horizontal-from=zero]){--sbb-radio-button-group-orientation: row}:host([orientation=vertical][horizontal-from=zero]) ::slotted(sbb-radio-button-panel){width:unset}:host([orientation=vertical][horizontal-from=zero]:not([data-has-panel])){--sbb-radio-button-group-width: max-content}}@media (min-width: 22.5rem){:host([orientation=vertical][horizontal-from=micro]){--sbb-radio-button-group-orientation: row}:host([orientation=vertical][horizontal-from=micro]) ::slotted(sbb-radio-button-panel){width:unset}:host([orientation=vertical][horizontal-from=micro]:not([data-has-panel])){--sbb-radio-button-group-width: max-content}}@media (min-width: 37.5rem){:host([orientation=vertical][horizontal-from=small]){--sbb-radio-button-group-orientation: row}:host([orientation=vertical][horizontal-from=small]) ::slotted(sbb-radio-button-panel){width:unset}:host([orientation=vertical][horizontal-from=small]:not([data-has-panel])){--sbb-radio-button-group-width: max-content}}@media (min-width: 52.5rem){:host([orientation=vertical][horizontal-from=medium]){--sbb-radio-button-group-orientation: row}:host([orientation=vertical][horizontal-from=medium]) ::slotted(sbb-radio-button-panel){width:unset}:host([orientation=vertical][horizontal-from=medium]:not([data-has-panel])){--sbb-radio-button-group-width: max-content}}@media (min-width: 64rem){:host([orientation=vertical][horizontal-from=large]){--sbb-radio-button-group-orientation: row}:host([orientation=vertical][horizontal-from=large]) ::slotted(sbb-radio-button-panel){width:unset}:host([orientation=vertical][horizontal-from=large]:not([data-has-panel])){--sbb-radio-button-group-width: max-content}}@media (min-width: 80rem){:host([orientation=vertical][horizontal-from=wide]){--sbb-radio-button-group-orientation: row}:host([orientation=vertical][horizontal-from=wide]) ::slotted(sbb-radio-button-panel){width:unset}:host([orientation=vertical][horizontal-from=wide]:not([data-has-panel])){--sbb-radio-button-group-width: max-content}}@media (min-width: 90rem){:host([orientation=vertical][horizontal-from=ultra]){--sbb-radio-button-group-orientation: row}:host([orientation=vertical][horizontal-from=ultra]) ::slotted(sbb-radio-button-panel){width:unset}:host([orientation=vertical][horizontal-from=ultra]:not([data-has-panel])){--sbb-radio-button-group-width: max-content}}.sbb-radio-group{display:flex;flex-direction:var(--sbb-radio-button-group-orientation);gap:var(--sbb-radio-button-group-gap);align-items:flex-start;width:var(--sbb-radio-button-group-width)}.sbb-radio-group__error{display:inline-block;margin-block-start:var(--sbb-spacing-fixed-1x)}:host(:not([data-slot-names~=error])) .sbb-radio-group__error{display:none}`;
9
+ var z = Object.defineProperty, y = Object.getOwnPropertyDescriptor, r = (t, o, e, i) => {
10
+ for (var n = i > 1 ? void 0 : i ? y(o, e) : o, d = t.length - 1, l; d >= 0; d--)
11
+ (l = t[d]) && (n = (i ? l(o, e, n) : l(n)) || n);
12
+ return i && n && z(o, e, n), n;
13
13
  };
14
- let r = class extends y(c) {
14
+ let a = class extends _(u) {
15
15
  constructor() {
16
- super(), this.allowEmptySelection = !1, this.required = !1, this.size = "m", this.orientation = "horizontal", this.a = !1, this.b = !1, this.h = new v(this), this.j = new b(
16
+ super(), this.allowEmptySelection = !1, this.required = !1, this.size = "m", this.orientation = "horizontal", this._hasSelectionExpansionPanelElement = !1, this._didLoad = !1, this._abort = new g(this), this._didChange = new h(
17
17
  this,
18
- r.events.didChange
19
- ), this.k = new b(
18
+ a.events.didChange
19
+ ), this._change = new h(
20
20
  this,
21
- r.events.change
22
- ), this.l = new b(
21
+ a.events.change
22
+ ), this._input = new h(
23
23
  this,
24
- r.events.input
25
- ), new w(this);
24
+ a.events.input
25
+ ), new v(this);
26
26
  }
27
27
  /**
28
28
  * List of contained radio buttons.
29
29
  */
30
30
  get radioButtons() {
31
31
  var t;
32
- return Array.from(((t = this.querySelectorAll) == null ? void 0 : t.call(this, "sbb-radio-button")) ?? []).filter((o) => {
32
+ return Array.from(((t = this.querySelectorAll) == null ? void 0 : t.call(this, "sbb-radio-button, sbb-radio-button-panel")) ?? []).filter((o) => {
33
33
  var e;
34
34
  return ((e = o.closest) == null ? void 0 : e.call(o, "sbb-radio-button-group")) === this;
35
35
  });
36
36
  }
37
- get f() {
37
+ get _enabledRadios() {
38
38
  if (!this.disabled)
39
39
  return this.radioButtons.filter((t) => !t.disabled);
40
40
  }
41
- i(t) {
41
+ _valueChanged(t) {
42
42
  for (const o of this.radioButtons)
43
- o.checked = o.value === t, o.tabIndex = this.c(o);
44
- this.d();
43
+ o.checked = o.value === t, o.tabIndex = this._getRadioTabIndex(o);
44
+ this._setFocusableRadio();
45
45
  }
46
46
  connectedCallback() {
47
- var o;
47
+ var o, e;
48
48
  super.connectedCallback();
49
- const t = this.h.signal;
49
+ const t = this._abort.signal;
50
50
  this.addEventListener(
51
51
  "stateChange",
52
- (e) => this.m(e),
52
+ (i) => this._onRadioButtonSelect(i),
53
53
  {
54
54
  signal: t,
55
55
  passive: !0
56
56
  }
57
- ), this.addEventListener("keydown", (e) => this.n(e), { signal: t }), this.a = !!((o = this.querySelector) != null && o.call(this, "sbb-selection-panel")), this.toggleAttribute("data-has-selection-panel", this.a), this.e(this.value);
57
+ ), this.addEventListener("keydown", (i) => this._handleKeyDown(i), { signal: t }), this._hasSelectionExpansionPanelElement = !!((o = this.querySelector) != null && o.call(
58
+ this,
59
+ "sbb-selection-expansion-panel"
60
+ )), this.toggleAttribute(
61
+ "data-has-panel",
62
+ !!((e = this.querySelector) != null && e.call(this, "sbb-selection-expansion-panel, sbb-radio-button-panel"))
63
+ ), this._updateRadios(this.value);
58
64
  }
59
65
  willUpdate(t) {
60
66
  var o;
61
- if (super.willUpdate(t), t.has("value") && this.i(this.value), t.has("disabled")) {
67
+ if (super.willUpdate(t), t.has("value") && this._valueChanged(this.value), t.has("disabled")) {
62
68
  for (const e of this.radioButtons)
63
- e.tabIndex = this.c(e), (o = e.requestUpdate) == null || o.call(e, "disabled");
64
- this.d();
69
+ e.tabIndex = this._getRadioTabIndex(e), (o = e.requestUpdate) == null || o.call(e, "disabled");
70
+ this._setFocusableRadio();
65
71
  }
66
72
  t.has("required") && this.radioButtons.forEach((e) => {
67
73
  var i;
@@ -72,53 +78,53 @@ let r = class extends y(c) {
72
78
  });
73
79
  }
74
80
  firstUpdated(t) {
75
- super.firstUpdated(t), this.b = !0, this.e(this.value);
81
+ super.firstUpdated(t), this._didLoad = !0, this._updateRadios(this.value);
76
82
  }
77
83
  disconnectedCallback() {
78
84
  super.disconnectedCallback();
79
85
  }
80
- m(t) {
86
+ _onRadioButtonSelect(t) {
81
87
  var e;
82
- if (t.stopPropagation(), t.detail.type !== "checked" || !this.b)
88
+ if (t.stopPropagation(), t.detail.type !== "checked" || !this._didLoad)
83
89
  return;
84
90
  const o = t.target;
85
- t.detail.checked ? (this.value = o.value, this.g(o, this.value)) : this.allowEmptySelection && (this.value = (e = this.radioButtons.find((i) => i.checked)) == null ? void 0 : e.value, this.value || this.g(o));
91
+ t.detail.checked ? (this.value = o.value, this._emitChange(o, this.value)) : this.allowEmptySelection && (this.value = (e = this.radioButtons.find((i) => i.checked)) == null ? void 0 : e.value, this.value || this._emitChange(o));
86
92
  }
87
- g(t, o) {
88
- this.k.emit({ value: o, radioButton: t }), this.l.emit({ value: o, radioButton: t }), this.j.emit({ value: o, radioButton: t });
93
+ _emitChange(t, o) {
94
+ this._change.emit({ value: o, radioButton: t }), this._input.emit({ value: o, radioButton: t }), this._didChange.emit({ value: o, radioButton: t });
89
95
  }
90
- e(t) {
96
+ _updateRadios(t) {
91
97
  var e;
92
- if (!this.b)
98
+ if (!this._didLoad)
93
99
  return;
94
100
  const o = this.radioButtons;
95
101
  this.value = t ?? ((e = o.find((i) => i.checked)) == null ? void 0 : e.value) ?? this.value;
96
102
  for (const i of o)
97
- i.checked = i.value === this.value, i.tabIndex = this.c(i);
98
- this.d();
103
+ i.checked = i.value === this.value, i.tabIndex = this._getRadioTabIndex(i);
104
+ this._setFocusableRadio();
99
105
  }
100
- d() {
101
- const t = this.radioButtons.find((e) => e.checked && !e.disabled), o = this.f;
106
+ _setFocusableRadio() {
107
+ const t = this.radioButtons.find((e) => e.checked && !e.disabled), o = this._enabledRadios;
102
108
  !t && (o != null && o.length) && (o[0].tabIndex = 0);
103
109
  }
104
- c(t) {
105
- var i;
106
- const o = t.checked && !t.disabled && !this.disabled, e = ((i = t.parentElement) == null ? void 0 : i.nodeName) === "SBB-SELECTION-PANEL" && t.parentElement.hasContent;
107
- return o || this.a && e ? 0 : -1;
110
+ _getRadioTabIndex(t) {
111
+ return t.checked && !t.disabled && !this.disabled || this._hasSelectionExpansionPanelElement ? 0 : -1;
108
112
  }
109
- n(t) {
110
- var s, l;
111
- const o = this.f;
113
+ _handleKeyDown(t) {
114
+ var n;
115
+ const o = this._enabledRadios;
112
116
  if (!o || !o.length || // don't trap nested handling
113
- t.target !== this && t.target.parentElement !== this && ((s = t.target.parentElement) == null ? void 0 : s.nodeName) !== "SBB-SELECTION-PANEL" || !f(t))
117
+ t.target !== this && t.target.parentElement !== this && ((n = t.target.parentElement) == null ? void 0 : n.localName) !== "sbb-selection-expansion-panel" || !m(t))
114
118
  return;
115
- const e = o.findIndex((h) => h === t.target), i = g(t, e, o.length), a = (Array.from((l = this.querySelectorAll) == null ? void 0 : l.call(this, "sbb-selection-panel")) || []).every((h) => !h.hasContent);
116
- (!this.a || this.a && a) && o[i].select(), o[i].focus(), t.preventDefault();
119
+ const e = o.findIndex(
120
+ (d) => d === t.target
121
+ ), i = f(t, e, o.length);
122
+ this._hasSelectionExpansionPanelElement || o[i].select(), o[i].focus(), t.preventDefault();
117
123
  }
118
124
  render() {
119
125
  return p`
120
126
  <div class="sbb-radio-group">
121
- <slot @slotchange=${() => this.e()}></slot>
127
+ <slot @slotchange=${() => this._updateRadios()}></slot>
122
128
  </div>
123
129
  <div class="sbb-radio-group__error">
124
130
  <slot name="error"></slot>
@@ -126,36 +132,36 @@ let r = class extends y(c) {
126
132
  `;
127
133
  }
128
134
  };
129
- r.styles = z;
130
- r.events = {
135
+ a.styles = x;
136
+ a.events = {
131
137
  didChange: "didChange",
132
138
  change: "change",
133
139
  input: "input"
134
140
  };
135
- n([
136
- d({ attribute: "allow-empty-selection", type: Boolean })
137
- ], r.prototype, "allowEmptySelection", 2);
138
- n([
139
- d({ type: Boolean })
140
- ], r.prototype, "required", 2);
141
- n([
142
- d()
143
- ], r.prototype, "value", 2);
144
- n([
145
- d()
146
- ], r.prototype, "size", 2);
147
- n([
148
- d({ attribute: "horizontal-from", reflect: !0 })
149
- ], r.prototype, "horizontalFrom", 2);
150
- n([
151
- d({ reflect: !0 })
152
- ], r.prototype, "orientation", 2);
153
- r = n([
154
- m("sbb-radio-button-group"),
155
- x({
141
+ r([
142
+ s({ attribute: "allow-empty-selection", type: Boolean })
143
+ ], a.prototype, "allowEmptySelection", 2);
144
+ r([
145
+ s({ type: Boolean })
146
+ ], a.prototype, "required", 2);
147
+ r([
148
+ s()
149
+ ], a.prototype, "value", 2);
150
+ r([
151
+ s()
152
+ ], a.prototype, "size", 2);
153
+ r([
154
+ s({ attribute: "horizontal-from", reflect: !0 })
155
+ ], a.prototype, "horizontalFrom", 2);
156
+ r([
157
+ s({ reflect: !0 })
158
+ ], a.prototype, "orientation", 2);
159
+ a = r([
160
+ c("sbb-radio-button-group"),
161
+ w({
156
162
  role: "radiogroup"
157
163
  })
158
- ], r);
164
+ ], a);
159
165
  export {
160
- r as SbbRadioButtonGroupElement
166
+ a as SbbRadioButtonGroupElement
161
167
  };
@@ -0,0 +1,2 @@
1
+ export * from './radio-button-panel.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/radio-button/radio-button-panel/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { CSSResultGroup, LitElement, PropertyValues, TemplateResult } from 'lit';
2
+
3
+ declare const SbbRadioButtonPanelElement_base: import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbPanelMixinType> & import('../../core/mixins.js').AbstractConstructor<import('../common.js').SbbRadioButtonCommonElementMixinType> & import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbUpdateSchedulerMixinType> & typeof LitElement;
4
+ /**
5
+ /**
6
+ * It displays a radio button enhanced with the panel design.
7
+ *
8
+ * @slot - Use the unnamed slot to add content to the radio label.
9
+ * @slot subtext - Slot used to render a subtext under the label.
10
+ * @slot suffix - Slot used to render additional content after the label.
11
+ * @slot badge - Use this slot to provide a `sbb-card-badge` (optional).
12
+ */
13
+ export declare class SbbRadioButtonPanelElement extends SbbRadioButtonPanelElement_base {
14
+ static styles: CSSResultGroup;
15
+ static readonly events: {
16
+ readonly stateChange: "stateChange";
17
+ readonly panelConnected: "panelConnected";
18
+ };
19
+ constructor();
20
+ protected willUpdate(changedProperties: PropertyValues<this>): Promise<void>;
21
+ protected render(): TemplateResult;
22
+ }
23
+ declare global {
24
+ interface HTMLElementTagNameMap {
25
+ 'sbb-radio-button-panel': SbbRadioButtonPanelElement;
26
+ }
27
+ }
28
+ export {};
29
+ //# sourceMappingURL=radio-button-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-button-panel.d.ts","sourceRoot":"","sources":["../../../../src/elements/radio-button/radio-button-panel/radio-button-panel.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,UAAU,EAEV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAOb,OAAO,6BAA6B,CAAC;;AAErC;;;;;;;;GAQG;AACH,qBACa,0BAA2B,SAAQ,+BAE/C;IACC,OAAuB,MAAM,EAAE,cAAc,CAA8C;IAG3F,gBAAuB,MAAM;;;MAGlB;;cAOc,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;cAQxE,MAAM,IAAI,cAAc;CA6B5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,wBAAwB,EAAE,0BAA0B,CAAC;KACtD;CACF"}
@@ -0,0 +1,2 @@
1
+ export * from './radio-button-panel/radio-button-panel.js';
2
+ //# sourceMappingURL=radio-button-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-button-panel.d.ts","sourceRoot":"","sources":["../../../src/elements/radio-button/radio-button-panel.ts"],"names":[],"mappings":"AAAA,cAAc,4CAA4C,CAAC"}
@@ -0,0 +1,59 @@
1
+ import { LitElement as d, html as i, nothing as b } from "lit";
2
+ import { customElement as p } from "lit/decorators.js";
3
+ import { SbbSlotStateController as c } from "../core/controllers.js";
4
+ import { SbbPanelMixin as m, SbbUpdateSchedulerMixin as u, panelCommonStyle as h } from "../core/mixins.js";
5
+ import { SbbRadioButtonCommonElementMixin as f, radioButtonCommonStyle as S } from "./common.js";
6
+ import "../screen-reader-only.js";
7
+ var v = Object.defineProperty, x = Object.getOwnPropertyDescriptor, _ = (t, s, l, n) => {
8
+ for (var e = n > 1 ? void 0 : n ? x(s, l) : s, o = t.length - 1, r; o >= 0; o--)
9
+ (r = t[o]) && (e = (n ? r(s, l, e) : r(e)) || e);
10
+ return n && e && v(s, l, e), e;
11
+ };
12
+ let a = class extends m(
13
+ f(u(d))
14
+ ) {
15
+ constructor() {
16
+ super(), new c(this);
17
+ }
18
+ async willUpdate(t) {
19
+ super.willUpdate(t), t.has("checked") && this.toggleAttribute("data-checked", this.checked);
20
+ }
21
+ render() {
22
+ return i`
23
+ <label class="sbb-selection-panel">
24
+ <div class="sbb-selection-panel__badge">
25
+ <slot name="badge"></slot>
26
+ </div>
27
+ <span class="sbb-radio-button">
28
+ <input
29
+ type="radio"
30
+ aria-hidden="true"
31
+ tabindex="-1"
32
+ ?disabled=${this.disabled}
33
+ ?required=${this.required}
34
+ ?checked=${this.checked}
35
+ value=${this.value || b}
36
+ class="sbb-screen-reader-only"
37
+ />
38
+ <span class="sbb-radio-button__label-slot">
39
+ <slot></slot>
40
+ <slot name="suffix"></slot>
41
+ </span>
42
+ <slot name="subtext"></slot>
43
+ ${this.expansionState ? i`<sbb-screen-reader-only>${this.expansionState}</sbb-screen-reader-only>` : b}
44
+ </span>
45
+ </label>
46
+ `;
47
+ }
48
+ };
49
+ a.styles = [S, h];
50
+ a.events = {
51
+ stateChange: "stateChange",
52
+ panelConnected: "panelConnected"
53
+ };
54
+ a = _([
55
+ p("sbb-radio-button-panel")
56
+ ], a);
57
+ export {
58
+ a as SbbRadioButtonPanelElement
59
+ };