@sbb-esta/lyne-elements 0.52.1 → 0.53.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/accordion.js +54 -54
  2. package/action-group.js +3 -3
  3. package/alert/alert-group.js +22 -22
  4. package/alert/alert.js +22 -22
  5. package/autocomplete.js +126 -126
  6. package/breadcrumb/breadcrumb-group.js +60 -60
  7. package/breadcrumb/breadcrumb.js +17 -17
  8. package/calendar.js +423 -423
  9. package/card/card-badge.js +17 -17
  10. package/card/card.js +2 -2
  11. package/card/common.js +30 -30
  12. package/checkbox/checkbox/checkbox.d.ts +3 -46
  13. package/checkbox/checkbox/checkbox.d.ts.map +1 -1
  14. package/checkbox/checkbox-group/checkbox-group.d.ts +4 -2
  15. package/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
  16. package/checkbox/checkbox-group.js +26 -23
  17. package/checkbox/checkbox-panel/checkbox-panel.d.ts +41 -0
  18. package/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -0
  19. package/checkbox/checkbox-panel.d.ts +2 -0
  20. package/checkbox/checkbox-panel.d.ts.map +1 -0
  21. package/checkbox/checkbox-panel.js +67 -0
  22. package/checkbox/checkbox.js +27 -104
  23. package/checkbox/common/checkbox-common.d.ts +13 -0
  24. package/checkbox/common/checkbox-common.d.ts.map +1 -0
  25. package/checkbox/common.d.ts +2 -0
  26. package/checkbox/common.d.ts.map +1 -0
  27. package/checkbox/common.js +52 -0
  28. package/checkbox.d.ts +2 -0
  29. package/checkbox.d.ts.map +1 -1
  30. package/checkbox.js +2 -0
  31. package/clock.js +83 -83
  32. package/container/sticky-bar.js +16 -16
  33. package/core/a11y.js +91 -91
  34. package/core/base-elements.js +86 -86
  35. package/core/controllers.js +40 -40
  36. package/core/datetime.js +32 -32
  37. package/core/dom.js +26 -26
  38. package/core/eventing.js +33 -33
  39. package/core/mixins/panel-mixin.d.ts +13 -0
  40. package/core/mixins/panel-mixin.d.ts.map +1 -0
  41. package/core/mixins.d.ts +1 -0
  42. package/core/mixins.d.ts.map +1 -1
  43. package/core/mixins.js +170 -139
  44. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables_css--mixin.scss +1 -1
  45. package/core/testing.js +29 -29
  46. package/core.css +1 -1
  47. package/custom-elements.json +8862 -6904
  48. package/datepicker/common.js +55 -55
  49. package/datepicker/datepicker-toggle.js +94 -94
  50. package/datepicker/datepicker.js +144 -144
  51. package/development/checkbox/checkbox/checkbox.d.ts +3 -46
  52. package/development/checkbox/checkbox/checkbox.d.ts.map +1 -1
  53. package/development/checkbox/checkbox-group/checkbox-group.d.ts +4 -2
  54. package/development/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
  55. package/development/checkbox/checkbox-group.js +43 -13
  56. package/development/checkbox/checkbox-panel/checkbox-panel.d.ts +41 -0
  57. package/development/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -0
  58. package/development/checkbox/checkbox-panel.d.ts +2 -0
  59. package/development/checkbox/checkbox-panel.d.ts.map +1 -0
  60. package/development/checkbox/checkbox-panel.js +86 -0
  61. package/development/checkbox/checkbox.js +19 -239
  62. package/development/checkbox/common/checkbox-common.d.ts +13 -0
  63. package/development/checkbox/common/checkbox-common.d.ts.map +1 -0
  64. package/development/checkbox/common.d.ts +2 -0
  65. package/development/checkbox/common.d.ts.map +1 -0
  66. package/development/checkbox/common.js +156 -0
  67. package/development/checkbox.d.ts +2 -0
  68. package/development/checkbox.d.ts.map +1 -1
  69. package/development/checkbox.js +3 -1
  70. package/development/core/mixins/panel-mixin.d.ts +13 -0
  71. package/development/core/mixins/panel-mixin.d.ts.map +1 -0
  72. package/development/core/mixins.d.ts +1 -0
  73. package/development/core/mixins.d.ts.map +1 -1
  74. package/development/core/mixins.js +187 -31
  75. package/development/image.js +1 -1
  76. package/development/radio-button/common/radio-button-common.d.ts +22 -0
  77. package/development/radio-button/common/radio-button-common.d.ts.map +1 -0
  78. package/development/radio-button/common.d.ts +2 -0
  79. package/development/radio-button/common.d.ts.map +1 -0
  80. package/development/radio-button/common.js +294 -0
  81. package/development/radio-button/radio-button/radio-button.d.ts +2 -81
  82. package/development/radio-button/radio-button/radio-button.d.ts.map +1 -1
  83. package/development/radio-button/radio-button-group/radio-button-group.d.ts +6 -4
  84. package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  85. package/development/radio-button/radio-button-group.js +55 -23
  86. package/development/radio-button/radio-button-panel/index.d.ts +2 -0
  87. package/development/radio-button/radio-button-panel/index.d.ts.map +1 -0
  88. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts +29 -0
  89. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -0
  90. package/development/radio-button/radio-button-panel.d.ts +2 -0
  91. package/development/radio-button/radio-button-panel.d.ts.map +1 -0
  92. package/development/radio-button/radio-button-panel.js +69 -0
  93. package/development/radio-button/radio-button.js +10 -324
  94. package/development/radio-button.d.ts +2 -0
  95. package/development/radio-button.d.ts.map +1 -1
  96. package/development/radio-button.js +3 -1
  97. package/{selection-panel/selection-panel.d.ts → development/selection-expansion-panel/selection-expansion-panel.d.ts} +9 -7
  98. package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -0
  99. package/development/selection-expansion-panel.d.ts +2 -0
  100. package/development/selection-expansion-panel.d.ts.map +1 -0
  101. package/development/selection-expansion-panel.js +340 -0
  102. package/development/tabs/tab/index.d.ts +2 -0
  103. package/development/tabs/tab/index.d.ts.map +1 -0
  104. package/development/tabs/tab/tab.d.ts +24 -0
  105. package/development/tabs/tab/tab.d.ts.map +1 -0
  106. package/development/tabs/tab-group/tab-group.d.ts +20 -15
  107. package/development/tabs/tab-group/tab-group.d.ts.map +1 -1
  108. package/development/tabs/tab-group.js +24 -14
  109. package/development/tabs/{tab-title/tab-title.d.ts → tab-label/tab-label.d.ts} +4 -4
  110. package/development/tabs/{tab-title/tab-title.d.ts.map → tab-label/tab-label.d.ts.map} +1 -1
  111. package/development/tabs/tab-label.d.ts +2 -0
  112. package/development/tabs/tab-label.d.ts.map +1 -0
  113. package/development/tabs/{tab-title.js → tab-label.js} +86 -86
  114. package/development/tabs/tab.d.ts +2 -0
  115. package/development/tabs/tab.d.ts.map +1 -0
  116. package/development/tabs/tab.js +71 -0
  117. package/development/tabs.d.ts +2 -1
  118. package/development/tabs.d.ts.map +1 -1
  119. package/development/tabs.js +3 -2
  120. package/development/train/train-formation/train-formation.d.ts.map +1 -1
  121. package/development/train/train-formation.js +12 -12
  122. package/dialog/dialog-title.js +20 -20
  123. package/dialog/dialog.js +66 -66
  124. package/expansion-panel/expansion-panel-header.js +20 -20
  125. package/expansion-panel/expansion-panel.js +60 -60
  126. package/file-selector.js +91 -91
  127. package/form-field/form-field-clear.js +12 -12
  128. package/form-field/form-field.js +111 -111
  129. package/header/header.js +53 -53
  130. package/icon.js +107 -107
  131. package/image.js +87 -87
  132. package/index.d.ts +10 -8
  133. package/index.js +10 -8
  134. package/journey-header.js +29 -29
  135. package/map-container.js +23 -23
  136. package/menu/menu.js +91 -91
  137. package/navigation/common.js +16 -16
  138. package/navigation/navigation-marker.js +34 -34
  139. package/navigation/navigation-section.js +83 -83
  140. package/navigation/navigation.js +87 -87
  141. package/notification.js +52 -52
  142. package/option/optgroup.js +45 -45
  143. package/option/option.js +108 -108
  144. package/overlay.js +5 -5
  145. package/package.json +34 -19
  146. package/popover/popover.js +110 -110
  147. package/radio-button/common/radio-button-common.d.ts +22 -0
  148. package/radio-button/common/radio-button-common.d.ts.map +1 -0
  149. package/radio-button/common.d.ts +2 -0
  150. package/radio-button/common.d.ts.map +1 -0
  151. package/radio-button/common.js +105 -0
  152. package/radio-button/radio-button/radio-button.d.ts +2 -81
  153. package/radio-button/radio-button/radio-button.d.ts.map +1 -1
  154. package/radio-button/radio-button-group/radio-button-group.d.ts +6 -4
  155. package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  156. package/radio-button/radio-button-group.js +86 -80
  157. package/radio-button/radio-button-panel/index.d.ts +2 -0
  158. package/radio-button/radio-button-panel/index.d.ts.map +1 -0
  159. package/radio-button/radio-button-panel/radio-button-panel.d.ts +29 -0
  160. package/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -0
  161. package/radio-button/radio-button-panel.d.ts +2 -0
  162. package/radio-button/radio-button-panel.d.ts.map +1 -0
  163. package/radio-button/radio-button-panel.js +59 -0
  164. package/radio-button/radio-button.js +20 -143
  165. package/radio-button.d.ts +2 -0
  166. package/radio-button.d.ts.map +1 -1
  167. package/radio-button.js +2 -0
  168. package/select.js +178 -178
  169. package/{development/selection-panel/selection-panel.d.ts → selection-expansion-panel/selection-expansion-panel.d.ts} +9 -7
  170. package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -0
  171. package/selection-expansion-panel.d.ts +2 -0
  172. package/selection-expansion-panel.d.ts.map +1 -0
  173. package/selection-expansion-panel.js +146 -0
  174. package/slider.js +58 -58
  175. package/standard-theme.css +1 -1
  176. package/status.js +6 -6
  177. package/stepper/step-label.js +19 -19
  178. package/stepper/step.js +31 -31
  179. package/stepper/stepper.js +46 -46
  180. package/tabs/tab/index.d.ts +2 -0
  181. package/tabs/tab/index.d.ts.map +1 -0
  182. package/tabs/tab/tab.d.ts +24 -0
  183. package/tabs/tab/tab.d.ts.map +1 -0
  184. package/tabs/tab-group/tab-group.d.ts +20 -15
  185. package/tabs/tab-group/tab-group.d.ts.map +1 -1
  186. package/tabs/tab-group.js +85 -75
  187. package/tabs/{tab-title/tab-title.d.ts → tab-label/tab-label.d.ts} +4 -4
  188. package/tabs/{tab-title/tab-title.d.ts.map → tab-label/tab-label.d.ts.map} +1 -1
  189. package/tabs/tab-label.d.ts +2 -0
  190. package/tabs/tab-label.d.ts.map +1 -0
  191. package/tabs/tab-label.js +51 -0
  192. package/tabs/tab.d.ts +2 -0
  193. package/tabs/tab.d.ts.map +1 -0
  194. package/tabs/tab.js +41 -0
  195. package/tabs.d.ts +2 -1
  196. package/tabs.d.ts.map +1 -1
  197. package/tabs.js +2 -1
  198. package/tag/tag-group.js +8 -8
  199. package/tag/tag.js +27 -27
  200. package/time-input.js +73 -73
  201. package/timetable-occupancy-icon.js +26 -26
  202. package/timetable-occupancy.js +9 -9
  203. package/toast.js +38 -38
  204. package/toggle/toggle-option.js +33 -33
  205. package/toggle/toggle.js +46 -46
  206. package/train/train-formation/train-formation.d.ts.map +1 -1
  207. package/train/train-formation.js +51 -51
  208. package/train/train-wagon.js +30 -30
  209. package/train/train.js +13 -13
  210. package/development/selection-panel/selection-panel.d.ts.map +0 -1
  211. package/development/selection-panel.d.ts +0 -2
  212. package/development/selection-panel.d.ts.map +0 -1
  213. package/development/selection-panel.js +0 -376
  214. package/development/tabs/tab-title.d.ts +0 -2
  215. package/development/tabs/tab-title.d.ts.map +0 -1
  216. package/development/teaser-hero/teaser-hero.d.ts +0 -26
  217. package/development/teaser-hero/teaser-hero.d.ts.map +0 -1
  218. package/development/teaser-hero.d.ts +0 -2
  219. package/development/teaser-hero.d.ts.map +0 -1
  220. package/development/teaser-hero.js +0 -181
  221. package/development/teaser-paid/teaser-paid.d.ts +0 -20
  222. package/development/teaser-paid/teaser-paid.d.ts.map +0 -1
  223. package/development/teaser-paid.d.ts +0 -2
  224. package/development/teaser-paid.d.ts.map +0 -1
  225. package/development/teaser-paid.js +0 -91
  226. package/selection-panel/selection-panel.d.ts.map +0 -1
  227. package/selection-panel.d.ts +0 -2
  228. package/selection-panel.d.ts.map +0 -1
  229. package/selection-panel.js +0 -138
  230. package/tabs/tab-title.d.ts +0 -2
  231. package/tabs/tab-title.d.ts.map +0 -1
  232. package/tabs/tab-title.js +0 -51
  233. package/teaser-hero/teaser-hero.d.ts +0 -26
  234. package/teaser-hero/teaser-hero.d.ts.map +0 -1
  235. package/teaser-hero.d.ts +0 -2
  236. package/teaser-hero.d.ts.map +0 -1
  237. package/teaser-hero.js +0 -51
  238. package/teaser-paid/teaser-paid.d.ts +0 -20
  239. package/teaser-paid/teaser-paid.d.ts.map +0 -1
  240. package/teaser-paid.d.ts +0 -2
  241. package/teaser-paid.d.ts.map +0 -1
  242. package/teaser-paid.js +0 -28
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sbb-esta/lyne-elements",
3
- "version": "0.52.1",
3
+ "version": "0.53.0",
4
4
  "description": "Lyne Design System",
5
5
  "keywords": [
6
6
  "design system",
@@ -244,6 +244,16 @@
244
244
  "development": "./development/checkbox/checkbox-group.js",
245
245
  "default": "./checkbox/checkbox-group.js"
246
246
  },
247
+ "./checkbox/checkbox-panel.js": {
248
+ "types": "./development/checkbox/checkbox-panel.d.ts",
249
+ "development": "./development/checkbox/checkbox-panel.js",
250
+ "default": "./checkbox/checkbox-panel.js"
251
+ },
252
+ "./checkbox/common.js": {
253
+ "types": "./development/checkbox/common.d.ts",
254
+ "development": "./development/checkbox/common.js",
255
+ "default": "./checkbox/common.js"
256
+ },
247
257
  "./chip.js": {
248
258
  "types": "./development/chip.d.ts",
249
259
  "development": "./development/chip.js",
@@ -669,6 +679,11 @@
669
679
  "development": "./development/radio-button.js",
670
680
  "default": "./radio-button.js"
671
681
  },
682
+ "./radio-button/common.js": {
683
+ "types": "./development/radio-button/common.d.ts",
684
+ "development": "./development/radio-button/common.js",
685
+ "default": "./radio-button/common.js"
686
+ },
672
687
  "./radio-button/radio-button.js": {
673
688
  "types": "./development/radio-button/radio-button.d.ts",
674
689
  "development": "./development/radio-button/radio-button.js",
@@ -679,6 +694,11 @@
679
694
  "development": "./development/radio-button/radio-button-group.js",
680
695
  "default": "./radio-button/radio-button-group.js"
681
696
  },
697
+ "./radio-button/radio-button-panel.js": {
698
+ "types": "./development/radio-button/radio-button-panel.d.ts",
699
+ "development": "./development/radio-button/radio-button-panel.js",
700
+ "default": "./radio-button/radio-button-panel.js"
701
+ },
682
702
  "./screen-reader-only.js": {
683
703
  "types": "./development/screen-reader-only.d.ts",
684
704
  "development": "./development/screen-reader-only.js",
@@ -689,10 +709,10 @@
689
709
  "development": "./development/select.js",
690
710
  "default": "./select.js"
691
711
  },
692
- "./selection-panel.js": {
693
- "types": "./development/selection-panel.d.ts",
694
- "development": "./development/selection-panel.js",
695
- "default": "./selection-panel.js"
712
+ "./selection-expansion-panel.js": {
713
+ "types": "./development/selection-expansion-panel.d.ts",
714
+ "development": "./development/selection-expansion-panel.js",
715
+ "default": "./selection-expansion-panel.js"
696
716
  },
697
717
  "./signet.js": {
698
718
  "types": "./development/signet.d.ts",
@@ -739,15 +759,20 @@
739
759
  "development": "./development/tabs.js",
740
760
  "default": "./tabs.js"
741
761
  },
762
+ "./tabs/tab.js": {
763
+ "types": "./development/tabs/tab.d.ts",
764
+ "development": "./development/tabs/tab.js",
765
+ "default": "./tabs/tab.js"
766
+ },
742
767
  "./tabs/tab-group.js": {
743
768
  "types": "./development/tabs/tab-group.d.ts",
744
769
  "development": "./development/tabs/tab-group.js",
745
770
  "default": "./tabs/tab-group.js"
746
771
  },
747
- "./tabs/tab-title.js": {
748
- "types": "./development/tabs/tab-title.d.ts",
749
- "development": "./development/tabs/tab-title.js",
750
- "default": "./tabs/tab-title.js"
772
+ "./tabs/tab-label.js": {
773
+ "types": "./development/tabs/tab-label.d.ts",
774
+ "development": "./development/tabs/tab-label.js",
775
+ "default": "./tabs/tab-label.js"
751
776
  },
752
777
  "./tag.js": {
753
778
  "types": "./development/tag.d.ts",
@@ -769,16 +794,6 @@
769
794
  "development": "./development/teaser.js",
770
795
  "default": "./teaser.js"
771
796
  },
772
- "./teaser-hero.js": {
773
- "types": "./development/teaser-hero.d.ts",
774
- "development": "./development/teaser-hero.js",
775
- "default": "./teaser-hero.js"
776
- },
777
- "./teaser-paid.js": {
778
- "types": "./development/teaser-paid.d.ts",
779
- "development": "./development/teaser-paid.js",
780
- "default": "./teaser-paid.js"
781
- },
782
797
  "./time-input.js": {
783
798
  "types": "./development/time-input.d.ts",
784
799
  "development": "./development/time-input.js",
@@ -1,190 +1,190 @@
1
- import { css as f, html as h, nothing as u } from "lit";
2
- import { property as b, customElement as m } from "lit/decorators.js";
3
- import { ref as g } from "lit/directives/ref.js";
4
- import { SbbFocusHandler as w, IS_FOCUSABLE_QUERY as y, setModalityOnNextFocus as p, getFirstFocusableElement as x } from "../core/a11y.js";
1
+ import { css as u, html as d, nothing as g } from "lit";
2
+ import { property as l, customElement as f } from "lit/decorators.js";
3
+ import { ref as m } from "lit/directives/ref.js";
4
+ import { SbbFocusHandler as _, IS_FOCUSABLE_QUERY as w, setModalityOnNextFocus as b, getFirstFocusableElement as y } from "../core/a11y.js";
5
5
  import { SbbOpenCloseBaseElement as E } from "../core/base-elements.js";
6
- import { SbbLanguageController as C } from "../core/controllers.js";
7
- import { findReferencedElement as _ } from "../core/dom.js";
8
- import { EventEmitter as v, composedPathHasAttribute as T } from "../core/eventing.js";
6
+ import { SbbLanguageController as x } from "../core/controllers.js";
7
+ import { findReferencedElement as C } from "../core/dom.js";
8
+ import { EventEmitter as h, composedPathHasAttribute as T } from "../core/eventing.js";
9
9
  import { i18nClosePopover as k } from "../core/i18n.js";
10
- import { isEventOnElement as c, removeAriaOverlayTriggerAttributes as A, setAriaOverlayTriggerAttributes as L, getElementPosition as z } from "../core/overlay.js";
10
+ import { isEventOnElement as c, removeAriaOverlayTriggerAttributes as P, setAriaOverlayTriggerAttributes as L, getElementPosition as O } from "../core/overlay.js";
11
11
  import "../button/secondary-button.js";
12
- const O = f`*,:before,:after{box-sizing:border-box}:host{--sbb-popover-position: absolute;--sbb-popover-position-x: 0;--sbb-popover-position-y: 0;--sbb-popover-arrow-size: var(--sbb-spacing-fixed-4x);--sbb-popover-arrow-position-x: 0;--sbb-popover-max-width: calc(100% - var(--sbb-spacing-fixed-2x));--sbb-popover-inset: 0 auto auto 0;--sbb-popover-border-radius: var(--sbb-border-radius-8x);--sbb-popover-padding: var(--sbb-spacing-fixed-4x);--sbb-popover-background: var(--sbb-color-white);--sbb-popover-color: var(--sbb-color-charcoal);--sbb-popover-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-4x) );--sbb-popover-animation-easing: ease-out;--sbb-popover-transform: translateY(var(--sbb-spacing-fixed-2x));--sbb-focus-outline-color: var(--sbb-focus-outline-color-default);display:block}:host([data-position=above]){--sbb-popover-transform: translateY(calc(var(--sbb-spacing-fixed-2x) * -1))}:host(:not([data-state=closed])){--sbb-popover-inset: 0}.sbb-popover:after,.sbb-popover__content:before{content:"";position:absolute;display:block;width:var(--sbb-popover-arrow-size);height:var(--sbb-popover-arrow-size);left:var(--sbb-popover-arrow-position-x);bottom:calc(100% - var(--sbb-popover-arrow-size) / 2);background-color:var(--sbb-popover-background);border-radius:var(--sbb-border-radius-2x) 0;transform:rotate(45deg)}.sbb-popover__container{position:fixed;inset:var(--sbb-popover-inset);pointer-events:none;z-index:var(--sbb-popover-z-index, var(--sbb-overlay-default-z-index));color:var(--sbb-popover-color)}.sbb-popover{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);display:none;position:var(--sbb-popover-position);pointer-events:all;top:var(--sbb-popover-position-y);bottom:unset;left:var(--sbb-popover-position-x);right:unset;border:none;border-radius:var(--sbb-popover-border-radius);padding:0;max-width:var(--sbb-popover-max-width);width:max-content;background-color:var(--sbb-popover-background);outline:none}.sbb-popover:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch]){outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width)}:host([data-state]:not([data-state=closed])) .sbb-popover{display:block;animation-name:open;animation-duration:var(--sbb-popover-animation-duration);animation-timing-function:var(--sbb-popover-animation-easing)}:host([data-state][data-state=closing]) .sbb-popover{pointer-events:none;animation-name:close;animation-duration:var(--sbb-popover-animation-duration);animation-timing-function:var(--sbb-popover-animation-easing)}.sbb-popover:after{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);z-index:-1}@media (forced-colors: active){.sbb-popover:after{outline:var(--sbb-border-width-1x) solid CanvasText}}:host([data-position=above]) .sbb-popover:after{top:calc(100% - var(--sbb-popover-arrow-size) / 2)}@media (forced-colors: active){.sbb-popover{outline:var(--sbb-border-width-1x) solid CanvasText}}.sbb-popover:before{content:"";display:block;position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background-color:transparent}:host([data-position=below]) .sbb-popover:before{inset-block-start:calc(-1 * var(--sbb-spacing-fixed-6x))}:host([data-position=above]) .sbb-popover:before{inset-block-end:calc(-1 * var(--sbb-spacing-fixed-6x))}.sbb-popover__content{display:flex;gap:var(--sbb-spacing-fixed-4x);border-radius:var(--sbb-popover-border-radius);padding:var(--sbb-popover-padding);outline:none;background-color:var(--sbb-popover-background);overflow:hidden;flex-direction:row-reverse}:host([data-position=above]) .sbb-popover__content:before{top:calc(100% - var(--sbb-popover-arrow-size) / 2)}@keyframes open{0%{opacity:0;transform:var(--sbb-popover-transform)}to{opacity:1;transform:translateY(0)}}@keyframes close{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:var(--sbb-popover-transform)}}`;
13
- var S = Object.defineProperty, P = Object.getOwnPropertyDescriptor, n = (e, t, o, i) => {
14
- for (var a = i > 1 ? void 0 : i ? P(t, o) : t, r = e.length - 1, l; r >= 0; r--)
15
- (l = e[r]) && (a = (i ? l(t, o, a) : l(a)) || a);
16
- return i && a && S(t, o, a), a;
12
+ const S = u`*,:before,:after{box-sizing:border-box}:host{--sbb-popover-position: absolute;--sbb-popover-position-x: 0;--sbb-popover-position-y: 0;--sbb-popover-arrow-size: var(--sbb-spacing-fixed-4x);--sbb-popover-arrow-position-x: 0;--sbb-popover-max-width: calc(100% - var(--sbb-spacing-fixed-2x));--sbb-popover-inset: 0 auto auto 0;--sbb-popover-border-radius: var(--sbb-border-radius-8x);--sbb-popover-padding: var(--sbb-spacing-fixed-4x);--sbb-popover-background: var(--sbb-color-white);--sbb-popover-color: var(--sbb-color-charcoal);--sbb-popover-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-4x) );--sbb-popover-animation-easing: ease-out;--sbb-popover-transform: translateY(var(--sbb-spacing-fixed-2x));--sbb-focus-outline-color: var(--sbb-focus-outline-color-default);display:block}:host([data-position=above]){--sbb-popover-transform: translateY(calc(var(--sbb-spacing-fixed-2x) * -1))}:host(:not([data-state=closed])){--sbb-popover-inset: 0}.sbb-popover:after,.sbb-popover__content:before{content:"";position:absolute;display:block;width:var(--sbb-popover-arrow-size);height:var(--sbb-popover-arrow-size);left:var(--sbb-popover-arrow-position-x);bottom:calc(100% - var(--sbb-popover-arrow-size) / 2);background-color:var(--sbb-popover-background);border-radius:var(--sbb-border-radius-2x) 0;transform:rotate(45deg)}.sbb-popover__container{position:fixed;inset:var(--sbb-popover-inset);pointer-events:none;z-index:var(--sbb-popover-z-index, var(--sbb-overlay-default-z-index));color:var(--sbb-popover-color)}.sbb-popover{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);display:none;position:var(--sbb-popover-position);pointer-events:all;top:var(--sbb-popover-position-y);bottom:unset;left:var(--sbb-popover-position-x);right:unset;border:none;border-radius:var(--sbb-popover-border-radius);padding:0;max-width:var(--sbb-popover-max-width);width:max-content;background-color:var(--sbb-popover-background);outline:none}.sbb-popover:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch]){outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width)}:host([data-state]:not([data-state=closed])) .sbb-popover{display:block;animation-name:open;animation-duration:var(--sbb-popover-animation-duration);animation-timing-function:var(--sbb-popover-animation-easing)}:host([data-state][data-state=closing]) .sbb-popover{pointer-events:none;animation-name:close;animation-duration:var(--sbb-popover-animation-duration);animation-timing-function:var(--sbb-popover-animation-easing)}.sbb-popover:after{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);z-index:-1}@media (forced-colors: active){.sbb-popover:after{outline:var(--sbb-border-width-1x) solid CanvasText}}:host([data-position=above]) .sbb-popover:after{top:calc(100% - var(--sbb-popover-arrow-size) / 2)}@media (forced-colors: active){.sbb-popover{outline:var(--sbb-border-width-1x) solid CanvasText}}.sbb-popover:before{content:"";display:block;position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background-color:transparent}:host([data-position=below]) .sbb-popover:before{inset-block-start:calc(-1 * var(--sbb-spacing-fixed-6x))}:host([data-position=above]) .sbb-popover:before{inset-block-end:calc(-1 * var(--sbb-spacing-fixed-6x))}.sbb-popover__content{display:flex;gap:var(--sbb-spacing-fixed-4x);border-radius:var(--sbb-popover-border-radius);padding:var(--sbb-popover-padding);outline:none;background-color:var(--sbb-popover-background);overflow:hidden;flex-direction:row-reverse}:host([data-position=above]) .sbb-popover__content:before{top:calc(100% - var(--sbb-popover-arrow-size) / 2)}@keyframes open{0%{opacity:0;transform:var(--sbb-popover-transform)}to{opacity:1;transform:translateY(0)}}@keyframes close{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:var(--sbb-popover-transform)}}`;
13
+ var A = Object.defineProperty, F = Object.getOwnPropertyDescriptor, n = (e, o, t, i) => {
14
+ for (var r = i > 1 ? void 0 : i ? F(o, t) : o, a = e.length - 1, p; a >= 0; a--)
15
+ (p = e[a]) && (r = (i ? p(o, t, r) : p(r)) || r);
16
+ return i && r && A(o, t, r), r;
17
17
  };
18
- const F = 16, B = 32;
19
- let D = 0;
20
- const d = /* @__PURE__ */ new Set();
18
+ const z = 16, D = 32;
19
+ let M = 0;
20
+ const v = /* @__PURE__ */ new Set();
21
21
  let s = class extends E {
22
22
  constructor() {
23
- super(...arguments), this.hideCloseButton = !1, this.hoverTrigger = !1, this.openDelay = 0, this.closeDelay = 0, this.willClose = new v(
23
+ super(...arguments), this.hideCloseButton = !1, this.hoverTrigger = !1, this.openDelay = 0, this.closeDelay = 0, this.willClose = new h(
24
24
  this,
25
25
  s.events.willClose
26
- ), this.didClose = new v(
26
+ ), this.didClose = new h(
27
27
  this,
28
28
  s.events.didClose
29
- ), this.h = !1, this.i = new w(), this.f = !1, this.o = new C(this), this.w = (e) => {
30
- this.m = c(this.a, e);
31
- }, this.x = (e) => {
32
- !this.m && !c(this.a, e) && (this.g = e.composedPath().filter((t) => t instanceof window.HTMLElement).find((t) => t.matches(y)), clearTimeout(this.e), this.close());
33
- }, this.t = () => {
34
- this.state === "closed" || this.state === "closing" ? this.n = setTimeout(() => this.open(), this.openDelay) : clearTimeout(this.e);
35
- }, this.u = () => {
36
- this.state === "opened" || this.state === "opening" ? this.e = setTimeout(() => this.close(), this.closeDelay) : clearTimeout(this.n);
37
- }, this.r = () => {
38
- this.state !== "opening" && clearTimeout(this.e);
39
- }, this.s = () => {
40
- this.state !== "opening" && (this.e = setTimeout(() => this.close(), this.closeDelay));
29
+ ), this._skipCloseFocus = !1, this._focusHandler = new _(), this._hoverTrigger = !1, this._language = new x(this), this._pointerDownListener = (e) => {
30
+ this._isPointerDownEventOnPopover = c(this._overlay, e);
31
+ }, this._closeOnBackdropClick = (e) => {
32
+ !this._isPointerDownEventOnPopover && !c(this._overlay, e) && (this._nextFocusedElement = e.composedPath().filter((o) => o instanceof window.HTMLElement).find((o) => o.matches(w)), clearTimeout(this._closeTimeout), this.close());
33
+ }, this._onTriggerMouseEnter = () => {
34
+ this.state === "closed" || this.state === "closing" ? this._openTimeout = setTimeout(() => this.open(), this.openDelay) : clearTimeout(this._closeTimeout);
35
+ }, this._onTriggerMouseLeave = () => {
36
+ this.state === "opened" || this.state === "opening" ? this._closeTimeout = setTimeout(() => this.close(), this.closeDelay) : clearTimeout(this._openTimeout);
37
+ }, this._onOverlayMouseEnter = () => {
38
+ this.state !== "opening" && clearTimeout(this._closeTimeout);
39
+ }, this._onOverlayMouseLeave = () => {
40
+ this.state !== "opening" && (this._closeTimeout = setTimeout(() => this.close(), this.closeDelay));
41
41
  };
42
42
  }
43
43
  /** Opens the popover on trigger click. */
44
44
  open() {
45
45
  var e;
46
- if (!(this.state !== "closed" && this.state !== "closing" || !this.a) && this.willOpen.emit()) {
47
- for (const t of Array.from(d)) {
48
- const o = t.getAttribute("data-state");
49
- o && (o === "opened" || o === "opening") && t.close();
46
+ if (!(this.state !== "closed" && this.state !== "closing" || !this._overlay) && this.willOpen.emit()) {
47
+ for (const o of Array.from(v)) {
48
+ const t = o.getAttribute("data-state");
49
+ t && (t === "opened" || t === "opening") && o.close();
50
50
  }
51
- this.state = "opening", this.inert = !0, this.j(), (e = this.b) == null || e.setAttribute("aria-expanded", "true"), this.g = void 0, this.h = !1;
51
+ this.state = "opening", this.inert = !0, this._setPopoverPosition(), (e = this._triggerElement) == null || e.setAttribute("aria-expanded", "true"), this._nextFocusedElement = void 0, this._skipCloseFocus = !1;
52
52
  }
53
53
  }
54
54
  /** Closes the popover. */
55
55
  close(e) {
56
- var t;
57
- this.state !== "opened" && this.state !== "opening" || (this.l = e, this.willClose.emit({ closeTarget: e }) && (this.state = "closing", this.inert = !0, (t = this.b) == null || t.setAttribute("aria-expanded", "false")));
56
+ var o;
57
+ this.state !== "opened" && this.state !== "opening" || (this._popoverCloseElement = e, this.willClose.emit({ closeTarget: e }) && (this.state = "closing", this.inert = !0, (o = this._triggerElement) == null || o.setAttribute("aria-expanded", "false")));
58
58
  }
59
59
  // Closes the popover on "Esc" key pressed and traps focus within the popover.
60
- p(e) {
60
+ _onKeydownEvent(e) {
61
61
  if (this.state === "opened" && e.key === "Escape") {
62
62
  this.close();
63
63
  return;
64
64
  }
65
65
  }
66
66
  // Removes trigger click listener on trigger change.
67
- q(e, t) {
68
- var o, i;
69
- e !== t && ((o = this.d) == null || o.abort(), (i = this.c) == null || i.abort(), this.k());
67
+ _removeTriggerClickListener(e, o) {
68
+ var t, i;
69
+ e !== o && ((t = this._popoverController) == null || t.abort(), (i = this._openStateController) == null || i.abort(), this._configure());
70
70
  }
71
71
  connectedCallback() {
72
- super.connectedCallback(), this.id || (this.id = this.id || `sbb-popover-${++D}`), this.k(), this.state = "closed", d.add(this);
72
+ super.connectedCallback(), this.id || (this.id = this.id || `sbb-popover-${++M}`), this._configure(), this.state = "closed", v.add(this);
73
73
  }
74
74
  willUpdate(e) {
75
- super.willUpdate(e), e.has("trigger") && this.q(this.trigger, e.get("trigger")), e.has("hoverTrigger") && this.k();
75
+ super.willUpdate(e), e.has("trigger") && this._removeTriggerClickListener(this.trigger, e.get("trigger")), e.has("hoverTrigger") && this._configure();
76
76
  }
77
77
  firstUpdated(e) {
78
- super.firstUpdated(e), this.f && (this.a.addEventListener("mouseenter", () => this.r()), this.a.addEventListener("mouseleave", () => this.s()));
78
+ super.firstUpdated(e), this._hoverTrigger && (this._overlay.addEventListener("mouseenter", () => this._onOverlayMouseEnter()), this._overlay.addEventListener("mouseleave", () => this._onOverlayMouseLeave()));
79
79
  }
80
80
  disconnectedCallback() {
81
- var e, t;
82
- super.disconnectedCallback(), (e = this.d) == null || e.abort(), (t = this.c) == null || t.abort(), this.i.disconnect(), d.delete(this);
81
+ var e, o;
82
+ super.disconnectedCallback(), (e = this._popoverController) == null || e.abort(), (o = this._openStateController) == null || o.abort(), this._focusHandler.disconnect(), v.delete(this);
83
83
  }
84
84
  // Check if the trigger is valid and attach click event listeners.
85
- k() {
85
+ _configure() {
86
86
  var e;
87
- A(this.b), this.trigger && (this.b = _(this.trigger), this.b && (L(this.b, "dialog", this.id, this.state), this.f = this.hoverTrigger && !window.matchMedia("(pointer: coarse)").matches, (e = this.d) == null || e.abort(), this.d = new AbortController(), this.f ? (this.b.addEventListener("mouseenter", this.t, {
88
- signal: this.d.signal
89
- }), this.b.addEventListener("mouseleave", this.u, {
90
- signal: this.d.signal
91
- }), this.b.addEventListener(
87
+ P(this._triggerElement), this.trigger && (this._triggerElement = C(this.trigger), this._triggerElement && (L(this._triggerElement, "dialog", this.id, this.state), this._hoverTrigger = this.hoverTrigger && !window.matchMedia("(pointer: coarse)").matches, (e = this._popoverController) == null || e.abort(), this._popoverController = new AbortController(), this._hoverTrigger ? (this._triggerElement.addEventListener("mouseenter", this._onTriggerMouseEnter, {
88
+ signal: this._popoverController.signal
89
+ }), this._triggerElement.addEventListener("mouseleave", this._onTriggerMouseLeave, {
90
+ signal: this._popoverController.signal
91
+ }), this._triggerElement.addEventListener(
92
92
  "keydown",
93
- (t) => {
94
- (t.code === "Space" || t.code === "Enter") && this.open();
93
+ (o) => {
94
+ (o.code === "Space" || o.code === "Enter") && this.open();
95
95
  },
96
96
  {
97
- signal: this.d.signal
97
+ signal: this._popoverController.signal
98
98
  }
99
- )) : this.b.addEventListener(
99
+ )) : this._triggerElement.addEventListener(
100
100
  "click",
101
101
  () => {
102
102
  this.state === "closed" && this.open();
103
103
  },
104
104
  {
105
- signal: this.d.signal
105
+ signal: this._popoverController.signal
106
106
  }
107
107
  )));
108
108
  }
109
- v() {
110
- this.c = new AbortController(), document.addEventListener("scroll", () => this.j(), {
109
+ _attachWindowEvents() {
110
+ this._openStateController = new AbortController(), document.addEventListener("scroll", () => this._setPopoverPosition(), {
111
111
  passive: !0,
112
- signal: this.c.signal
113
- }), window.addEventListener("resize", () => this.j(), {
112
+ signal: this._openStateController.signal
113
+ }), window.addEventListener("resize", () => this._setPopoverPosition(), {
114
114
  passive: !0,
115
- signal: this.c.signal
116
- }), window.addEventListener("keydown", (e) => this.p(e), {
117
- signal: this.c.signal
118
- }), window.addEventListener("pointerdown", this.w, {
119
- signal: this.c.signal
120
- }), window.addEventListener("pointerup", this.x, {
121
- signal: this.c.signal
115
+ signal: this._openStateController.signal
116
+ }), window.addEventListener("keydown", (e) => this._onKeydownEvent(e), {
117
+ signal: this._openStateController.signal
118
+ }), window.addEventListener("pointerdown", this._pointerDownListener, {
119
+ signal: this._openStateController.signal
120
+ }), window.addEventListener("pointerup", this._closeOnBackdropClick, {
121
+ signal: this._openStateController.signal
122
122
  });
123
123
  }
124
124
  // Close the popover on click of any element that has the 'sbb-popover-close' attribute.
125
- y(e) {
126
- const t = T(e, "sbb-popover-close", this);
127
- t && !t.hasAttribute("disabled") && (clearTimeout(this.e), this.close(t));
125
+ _closeOnSbbPopoverCloseClick(e) {
126
+ const o = T(e, "sbb-popover-close", this);
127
+ o && !o.hasAttribute("disabled") && (clearTimeout(this._closeTimeout), this.close(o));
128
128
  }
129
129
  // Set popover position (x, y) to '0' once the popover is closed and the transition ended to prevent the
130
130
  // viewport from overflowing. And set the focus to the first focusable element once the popover is open.
131
131
  // In rare cases it can be that the animationEnd event is triggered twice.
132
132
  // To avoid entering a corrupt state, exit when state is not expected.
133
- z(e) {
134
- var t, o, i, a;
133
+ _onPopoverAnimationEnd(e) {
134
+ var o, t, i, r;
135
135
  if (e.animationName === "open" && this.state === "opening")
136
- this.state = "opened", this.didOpen.emit(), this.inert = !1, this.v(), this.A(), this.i.trap(this, {
137
- postFilter: (r) => r !== this.a
136
+ this.state = "opened", this.didOpen.emit(), this.inert = !1, this._attachWindowEvents(), this._setPopoverFocus(), this._focusHandler.trap(this, {
137
+ postFilter: (a) => a !== this._overlay
138
138
  });
139
139
  else if (e.animationName === "close" && this.state === "closing") {
140
- if (this.state = "closed", (o = (t = this.a) == null ? void 0 : t.firstElementChild) == null || o.scrollTo(0, 0), (i = this.a) == null || i.removeAttribute("tabindex"), !this.h) {
141
- const r = this.g || this.b;
142
- p(r), r == null || r.focus();
140
+ if (this.state = "closed", (t = (o = this._overlay) == null ? void 0 : o.firstElementChild) == null || t.scrollTo(0, 0), (i = this._overlay) == null || i.removeAttribute("tabindex"), !this._skipCloseFocus) {
141
+ const a = this._nextFocusedElement || this._triggerElement;
142
+ b(a), a == null || a.focus();
143
143
  }
144
- this.didClose.emit({ closeTarget: this.l }), (a = this.c) == null || a.abort(), this.i.disconnect();
144
+ this.didClose.emit({ closeTarget: this._popoverCloseElement }), (r = this._openStateController) == null || r.abort(), this._focusHandler.disconnect();
145
145
  }
146
146
  }
147
147
  // Set focus on the first focusable element.
148
- A() {
149
- const e = this.shadowRoot.querySelector("[sbb-popover-close]") || x(
150
- Array.from(this.children).filter((t) => t instanceof window.HTMLElement)
148
+ _setPopoverFocus() {
149
+ const e = this.shadowRoot.querySelector("[sbb-popover-close]") || y(
150
+ Array.from(this.children).filter((o) => o instanceof window.HTMLElement)
151
151
  );
152
- e ? (p(e), e.focus()) : (this.a.setAttribute("tabindex", "0"), p(this.a), this.a.focus(), this.a.addEventListener(
152
+ e ? (b(e), e.focus()) : (this._overlay.setAttribute("tabindex", "0"), b(this._overlay), this._overlay.focus(), this._overlay.addEventListener(
153
153
  "blur",
154
154
  () => {
155
155
  setTimeout(() => {
156
- var t;
157
- document.visibilityState !== "hidden" && ((t = this.a) == null || t.removeAttribute("tabindex"), (this.state === "opened" || this.state === "opening") && (this.h = !0), this.close());
156
+ var o;
157
+ document.visibilityState !== "hidden" && ((o = this._overlay) == null || o.removeAttribute("tabindex"), (this.state === "opened" || this.state === "opening") && (this._skipCloseFocus = !0), this.close());
158
158
  });
159
159
  },
160
160
  {
161
- signal: this.c.signal
161
+ signal: this._openStateController.signal
162
162
  }
163
163
  ));
164
164
  }
165
- j() {
166
- if (!this.a || !this.b)
165
+ _setPopoverPosition() {
166
+ if (!this._overlay || !this._triggerElement)
167
167
  return;
168
- const e = z(
169
- this.a,
170
- this.b,
168
+ const e = O(
169
+ this._overlay,
170
+ this._triggerElement,
171
171
  this.shadowRoot.querySelector(".sbb-popover__container"),
172
172
  {
173
- verticalOffset: F,
174
- horizontalOffset: B,
173
+ verticalOffset: z,
174
+ horizontalOffset: D,
175
175
  centered: !0,
176
176
  responsiveHeight: !0
177
177
  }
178
178
  );
179
179
  this.setAttribute("data-position", e.alignment.vertical);
180
- const t = this.b.getBoundingClientRect().left - e.left + this.b.clientWidth / 2 - 8;
181
- this.style.setProperty("--sbb-popover-position-x", `${e.left}px`), this.style.setProperty("--sbb-popover-position-y", `${e.top}px`), this.style.setProperty("--sbb-popover-arrow-position-x", `${t}px`);
180
+ const o = this._triggerElement.getBoundingClientRect().left - e.left + this._triggerElement.clientWidth / 2 - 8;
181
+ this.style.setProperty("--sbb-popover-position-x", `${e.left}px`), this.style.setProperty("--sbb-popover-position-y", `${e.top}px`), this.style.setProperty("--sbb-popover-arrow-position-x", `${o}px`);
182
182
  }
183
183
  render() {
184
- const e = h`
184
+ const e = d`
185
185
  <span class="sbb-popover__close">
186
186
  <sbb-secondary-button
187
- aria-label=${this.accessibilityCloseLabel || k[this.o.current]}
187
+ aria-label=${this.accessibilityCloseLabel || k[this._language.current]}
188
188
  size="s"
189
189
  type="button"
190
190
  icon-name="cross-small"
@@ -192,19 +192,19 @@ let s = class extends E {
192
192
  ></sbb-secondary-button>
193
193
  </span>
194
194
  `;
195
- return h`
195
+ return d`
196
196
  <div class="sbb-popover__container">
197
197
  <div
198
- @animationend=${(t) => this.z(t)}
198
+ @animationend=${(o) => this._onPopoverAnimationEnd(o)}
199
199
  class="sbb-popover"
200
200
  role="tooltip"
201
- ${g((t) => this.a = t)}
201
+ ${m((o) => this._overlay = o)}
202
202
  >
203
203
  <div
204
- @click=${(t) => this.y(t)}
204
+ @click=${(o) => this._closeOnSbbPopoverCloseClick(o)}
205
205
  class="sbb-popover__content"
206
206
  >
207
- ${!this.hideCloseButton && !this.f ? e : u}
207
+ ${!this.hideCloseButton && !this._hoverTrigger ? e : g}
208
208
  <span>
209
209
  <slot>No content</slot>
210
210
  </span>
@@ -214,27 +214,27 @@ let s = class extends E {
214
214
  `;
215
215
  }
216
216
  };
217
- s.styles = O;
217
+ s.styles = S;
218
218
  n([
219
- b()
219
+ l()
220
220
  ], s.prototype, "trigger", 2);
221
221
  n([
222
- b({ attribute: "hide-close-button", type: Boolean })
222
+ l({ attribute: "hide-close-button", type: Boolean })
223
223
  ], s.prototype, "hideCloseButton", 2);
224
224
  n([
225
- b({ attribute: "hover-trigger", type: Boolean })
225
+ l({ attribute: "hover-trigger", type: Boolean })
226
226
  ], s.prototype, "hoverTrigger", 2);
227
227
  n([
228
- b({ attribute: "open-delay", type: Number })
228
+ l({ attribute: "open-delay", type: Number })
229
229
  ], s.prototype, "openDelay", 2);
230
230
  n([
231
- b({ attribute: "close-delay", type: Number })
231
+ l({ attribute: "close-delay", type: Number })
232
232
  ], s.prototype, "closeDelay", 2);
233
233
  n([
234
- b({ attribute: "accessibility-close-label" })
234
+ l({ attribute: "accessibility-close-label" })
235
235
  ], s.prototype, "accessibilityCloseLabel", 2);
236
236
  s = n([
237
- m("sbb-popover")
237
+ f("sbb-popover")
238
238
  ], s);
239
239
  export {
240
240
  s as SbbPopoverElement
@@ -0,0 +1,22 @@
1
+ import { LitElement } from 'lit';
2
+ import { SbbCheckedStateChange, SbbDisabledStateChange, SbbStateChange } from '../../core/interfaces.js';
3
+ import { AbstractConstructor } from '../../core/mixins.js';
4
+ import { SbbRadioButtonGroupElement } from '../radio-button-group.js';
5
+
6
+ export type SbbRadioButtonSize = 's' | 'm';
7
+ export type SbbRadioButtonStateChange = Extract<SbbStateChange, SbbDisabledStateChange | SbbCheckedStateChange>;
8
+ export declare class SbbRadioButtonCommonElementMixinType {
9
+ get allowEmptySelection(): boolean;
10
+ set allowEmptySelection(boolean: boolean);
11
+ value?: string;
12
+ get disabled(): boolean;
13
+ set disabled(boolean: boolean);
14
+ get required(): boolean;
15
+ set required(boolean: boolean);
16
+ get group(): SbbRadioButtonGroupElement | null;
17
+ get checked(): boolean;
18
+ set checked(boolean: boolean);
19
+ select(): void;
20
+ }
21
+ export declare const SbbRadioButtonCommonElementMixin: <T extends AbstractConstructor<LitElement>>(superClass: T) => AbstractConstructor<SbbRadioButtonCommonElementMixinType> & T;
22
+ //# sourceMappingURL=radio-button-common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-button-common.d.ts","sourceRoot":"","sources":["../../../../src/elements/radio-button/common/radio-button-common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,KAAK,CAAC;AAOtD,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAE3E,MAAM,MAAM,kBAAkB,GAAG,GAAG,GAAG,GAAG,CAAC;AAE3C,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAC7C,cAAc,EACd,sBAAsB,GAAG,qBAAqB,CAC/C,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,oCAAoC;IACvD,IAAW,mBAAmB,IAAI,OAAO,CAAC;IAC1C,IAAW,mBAAmB,CAAC,OAAO,EADJ,OACI,EAAE;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACtB,IAAW,QAAQ,IAAI,OAAO,CAAC;IAC/B,IAAW,QAAQ,CAAC,OAAO,EADJ,OACI,EAAE;IAC7B,IAAW,QAAQ,IAAI,OAAO,CAAC;IAC/B,IAAW,QAAQ,CAAC,OAAO,EADJ,OACI,EAAE;IAC7B,IAAW,KAAK,IAAI,0BAA0B,GAAG,IAAI,CAAC;IACtD,IAAW,OAAO,IAAI,OAAO,CAAC;IAC9B,IAAW,OAAO,CAAC,OAAO,EADJ,OACI,EAAE;IACrB,MAAM,IAAI,IAAI;CACtB;AAGD,eAAO,MAAM,gCAAgC,0DAC/B,CAAC,KACZ,oBAAoB,oCAAoC,CAAC,GAAG,CAmK9D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './common/radio-button-common.js';
2
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/elements/radio-button/common.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAEhD,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,8CAA8C,CAAC"}
@@ -0,0 +1,105 @@
1
+ import { property as b } from "lit/decorators.js";
2
+ import { SbbConnectedAbortController as l } from "../core/controllers.js";
3
+ import { hostAttributes as d } from "../core/decorators.js";
4
+ import { setOrRemoveAttribute as c } from "../core/dom.js";
5
+ import { HandlerRepository as h, formElementHandlerAspect as u, EventEmitter as p } from "../core/eventing.js";
6
+ import { css as f } from "lit";
7
+ var m = Object.defineProperty, v = Object.getOwnPropertyDescriptor, i = (s, e, t, o) => {
8
+ for (var r = o > 1 ? void 0 : o ? v(e, t) : e, a = s.length - 1, n; a >= 0; a--)
9
+ (n = s[a]) && (r = (o ? n(e, t, r) : n(r)) || r);
10
+ return o && r && m(e, t, r), r;
11
+ };
12
+ const z = (s) => {
13
+ let e = class extends s {
14
+ constructor() {
15
+ super(...arguments), this._allowEmptySelection = !1, this._disabled = !1, this._required = !1, this._group = null, this._checked = !1, this._size = "m", this._abort = new l(this), this._handlerRepository = new h(this, u), this._stateChange = new p(
16
+ this,
17
+ e.events.stateChange,
18
+ { bubbles: !0 }
19
+ );
20
+ }
21
+ set allowEmptySelection(t) {
22
+ this._allowEmptySelection = !!t;
23
+ }
24
+ get allowEmptySelection() {
25
+ var t;
26
+ return this._allowEmptySelection || (((t = this.group) == null ? void 0 : t.allowEmptySelection) ?? !1);
27
+ }
28
+ set disabled(t) {
29
+ this._disabled = !!t;
30
+ }
31
+ get disabled() {
32
+ var t;
33
+ return this._disabled || (((t = this.group) == null ? void 0 : t.disabled) ?? !1);
34
+ }
35
+ set required(t) {
36
+ this._required = !!t;
37
+ }
38
+ get required() {
39
+ var t;
40
+ return this._required || (((t = this.group) == null ? void 0 : t.required) ?? !1);
41
+ }
42
+ /**
43
+ * Reference to the connected radio button group.
44
+ */
45
+ get group() {
46
+ return this._group;
47
+ }
48
+ set checked(t) {
49
+ this._checked = !!t;
50
+ }
51
+ get checked() {
52
+ return this._checked;
53
+ }
54
+ set size(t) {
55
+ this._size = t;
56
+ }
57
+ get size() {
58
+ var t;
59
+ return ((t = this.group) == null ? void 0 : t.size) ?? this._size;
60
+ }
61
+ select() {
62
+ this.disabled || (this.allowEmptySelection ? this.checked = !this.checked : this.checked || (this.checked = !0));
63
+ }
64
+ connectedCallback() {
65
+ super.connectedCallback(), this._group = this.closest("sbb-radio-button-group");
66
+ const t = this._abort.signal;
67
+ this.addEventListener("click", (o) => this._handleClick(o), { signal: t }), this.addEventListener("keydown", (o) => this._handleKeyDown(o), { signal: t }), this._handlerRepository.connect(), ["disabled", "required", "size"].forEach((o) => this.requestUpdate(o));
68
+ }
69
+ disconnectedCallback() {
70
+ super.disconnectedCallback(), this._handlerRepository.disconnect();
71
+ }
72
+ willUpdate(t) {
73
+ super.willUpdate(t), t.has("checked") && (this.setAttribute("aria-checked", `${this.checked}`), this.checked !== t.get("checked") && this._stateChange.emit({ type: "checked", checked: this.checked })), t.has("disabled") && (c(this, "aria-disabled", this.disabled ? "true" : null), this.disabled !== t.get("disabled") && this._stateChange.emit({ type: "disabled", disabled: this.disabled })), t.has("required") && this.setAttribute("aria-required", `${this.required}`);
74
+ }
75
+ _handleClick(t) {
76
+ t.preventDefault(), this.select();
77
+ }
78
+ _handleKeyDown(t) {
79
+ t.code === "Space" && this.select();
80
+ }
81
+ };
82
+ return e.events = {
83
+ stateChange: "stateChange"
84
+ }, i([
85
+ b({ attribute: "allow-empty-selection", type: Boolean })
86
+ ], e.prototype, "allowEmptySelection", 1), i([
87
+ b()
88
+ ], e.prototype, "value", 2), i([
89
+ b({ reflect: !0, type: Boolean })
90
+ ], e.prototype, "disabled", 1), i([
91
+ b({ reflect: !0, type: Boolean })
92
+ ], e.prototype, "required", 1), i([
93
+ b({ reflect: !0, type: Boolean })
94
+ ], e.prototype, "checked", 1), i([
95
+ b({ reflect: !0 })
96
+ ], e.prototype, "size", 1), e = i([
97
+ d({
98
+ role: "radio"
99
+ })
100
+ ], e), e;
101
+ }, C = f`*,:before,:after{box-sizing:border-box}:host{--sbb-radio-button-label-color: var(--sbb-color-charcoal);--sbb-radio-button-background-color: var(--sbb-color-white);--sbb-radio-button-inner-circle-color: var(--sbb-color-white);--sbb-radio-button-border-width: var(--sbb-border-width-1x);--sbb-radio-button-border-style: solid;--sbb-radio-button-border-color: var(--sbb-color-smoke);--sbb-radio-button-dimension: var(--sbb-size-icon-ui-small);--sbb-radio-button-inner-circle-dimension: .625rem;--sbb-radio-button-cursor: pointer;--sbb-radio-button-background-fake-border-width: calc(var(--sbb-radio-button-dimension) / 2);--sbb-radio-button-icon-align: calc( (1em * var(--sbb-typo-line-height-body-text) - var(--sbb-radio-button-dimension)) / 2 )}@media (forced-colors: active){:host{--sbb-radio-button-background-color: Canvas !important;--sbb-radio-button-border-width: var(--sbb-border-width-2x);--sbb-radio-button-border-color: ButtonBorder}}:host([checked]){--sbb-radio-button-inner-circle-color: var(--sbb-color-red);--sbb-radio-button-background-fake-border-width: calc( (var(--sbb-radio-button-dimension) - var(--sbb-radio-button-inner-circle-dimension)) / 2 )}@media (forced-colors: active){:host([checked]){--sbb-radio-button-inner-circle-color: Highlight;--sbb-radio-button-border-color: Highlight}}:host([disabled]){--sbb-radio-button-label-color: var(--sbb-color-granite);--sbb-radio-button-background-color: var(--sbb-color-milk);--sbb-radio-button-border-style: dashed;--sbb-radio-button-inner-circle-color: var(--sbb-color-charcoal);--sbb-radio-button-cursor: default}@media (forced-colors: active){:host([disabled]){--sbb-radio-button-inner-circle-color: GrayText;--sbb-radio-button-border-color: GrayText;--sbb-radio-button-border-style: solid}}.sbb-screen-reader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.sbb-radio-button{--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);display:block;cursor:var(--sbb-radio-button-cursor);-webkit-user-select:none;user-select:none;position:relative;color:var(--sbb-radio-button-label-color);-webkit-tap-highlight-color:transparent}:host([size=s]) .sbb-radio-button{--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)}.sbb-radio-button__label-slot{display:flex;align-items:flex-start;overflow:hidden}.sbb-radio-button__label-slot:before,.sbb-radio-button__label-slot:after{content:"";flex-shrink:0;width:var(--sbb-radio-button-dimension);height:var(--sbb-radio-button-dimension);border-radius:50%;margin-block-start:var(--sbb-radio-button-icon-align);transition-duration:var(--sbb-disable-animation-zero-time, var(--sbb-animation-duration-4x));transition-timing-function:ease;transition-property:background-color,border}@media (forced-colors: active){.sbb-radio-button__label-slot:before,.sbb-radio-button__label-slot:after{transition:none}}.sbb-radio-button__label-slot:before{background:var(--sbb-radio-button-inner-circle-color);border:var(--sbb-radio-button-background-fake-border-width) solid var(--sbb-radio-button-background-color);margin-inline-end:var(--sbb-spacing-fixed-2x)}.sbb-radio-button__label-slot:after{position:absolute;border:var(--sbb-radio-button-border-width) var(--sbb-radio-button-border-style) var(--sbb-radio-button-border-color)}`;
102
+ export {
103
+ z as SbbRadioButtonCommonElementMixin,
104
+ C as radioButtonCommonStyle
105
+ };