@sbb-esta/lyne-elements 1.8.0 → 1.10.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 (312) hide show
  1. package/accordion/accordion.d.ts +5 -5
  2. package/accordion/accordion.d.ts.map +1 -1
  3. package/accordion.js +17 -17
  4. package/action-group/action-group.d.ts +1 -1
  5. package/action-group/action-group.d.ts.map +1 -1
  6. package/action-group.js +3 -3
  7. package/alert/alert/alert.d.ts +1 -1
  8. package/alert/alert/alert.d.ts.map +1 -1
  9. package/alert/alert.js +3 -3
  10. package/autocomplete/autocomplete-base-element.d.ts +1 -1
  11. package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  12. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts +1 -1
  13. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -1
  14. package/autocomplete-grid/autocomplete-grid-option.js +1 -1
  15. package/autocomplete-grid/autocomplete-grid.js +18 -18
  16. package/autocomplete.js +9 -9
  17. package/button/button.js +9 -9
  18. package/button/common.js +5 -5
  19. package/button/mini-button/mini-button.d.ts.map +1 -1
  20. package/button/mini-button.js +17 -15
  21. package/button/secondary-button.js +6 -6
  22. package/button/tertiary-button.js +13 -13
  23. package/button/transparent-button.js +8 -8
  24. package/calendar/calendar.d.ts +2 -2
  25. package/calendar/calendar.d.ts.map +1 -1
  26. package/calendar.js +5 -4
  27. package/clock/clock.d.ts +2 -2
  28. package/clock/clock.d.ts.map +1 -1
  29. package/clock.js +5 -5
  30. package/container/container.js +14 -14
  31. package/core/a11y/focus-visible-within-controller.d.ts +1 -1
  32. package/core/a11y/focus-visible-within-controller.d.ts.map +1 -1
  33. package/core/a11y/input-modality-detector.d.ts +2 -2
  34. package/core/a11y/input-modality-detector.d.ts.map +1 -1
  35. package/core/a11y.js +3 -3
  36. package/core/base-elements/action-base-element.d.ts +1 -0
  37. package/core/base-elements/action-base-element.d.ts.map +1 -1
  38. package/core/base-elements/button-base-element.d.ts +1 -1
  39. package/core/base-elements/button-base-element.d.ts.map +1 -1
  40. package/core/base-elements/link-base-element.d.ts.map +1 -1
  41. package/core/base-elements.js +47 -45
  42. package/core/controllers/slot-state-controller.d.ts +1 -1
  43. package/core/controllers/slot-state-controller.d.ts.map +1 -1
  44. package/core/dom/platform.d.ts +2 -3
  45. package/core/dom/platform.d.ts.map +1 -1
  46. package/core/dom.js +38 -40
  47. package/core/mixins/disabled-mixin.d.ts +8 -0
  48. package/core/mixins/disabled-mixin.d.ts.map +1 -1
  49. package/core/mixins.js +97 -89
  50. package/core/styles/core.scss +6 -0
  51. package/core/styles/mixins/lists.scss +11 -1
  52. package/core/styles/mixins/panel.scss +0 -2
  53. package/core/styles/mixins/table.scss +11 -0
  54. package/core/styles/mixins/typo.scss +0 -30
  55. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss +1 -0
  56. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables_css--mixin.scss +2 -1
  57. package/core/styles/table.scss +6 -1
  58. package/core/testing/wait-for-image-ready.d.ts.map +1 -1
  59. package/core/testing.js +61 -54
  60. package/core.css +7 -14
  61. package/custom-elements.json +493 -299
  62. package/datepicker/datepicker/datepicker.d.ts.map +1 -1
  63. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts +2 -0
  64. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  65. package/datepicker/datepicker-toggle.js +57 -47
  66. package/datepicker/datepicker.js +1 -0
  67. package/development/accordion/accordion.d.ts +5 -5
  68. package/development/accordion/accordion.d.ts.map +1 -1
  69. package/development/accordion.js +25 -38
  70. package/development/action-group/action-group.d.ts +1 -1
  71. package/development/action-group/action-group.d.ts.map +1 -1
  72. package/development/action-group.js +8 -21
  73. package/development/alert/alert/alert.d.ts +1 -1
  74. package/development/alert/alert/alert.d.ts.map +1 -1
  75. package/development/alert/alert-group.js +2 -15
  76. package/development/alert/alert.js +6 -19
  77. package/development/autocomplete/autocomplete-base-element.d.ts +1 -1
  78. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  79. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts +1 -1
  80. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -1
  81. package/development/autocomplete-grid/autocomplete-grid-button.js +2 -15
  82. package/development/autocomplete-grid/autocomplete-grid-cell.js +2 -15
  83. package/development/autocomplete-grid/autocomplete-grid-option.js +4 -17
  84. package/development/autocomplete-grid/autocomplete-grid-row.js +2 -15
  85. package/development/autocomplete-grid/autocomplete-grid.js +6 -6
  86. package/development/autocomplete.js +7 -20
  87. package/development/breadcrumb/breadcrumb-group.js +2 -15
  88. package/development/breadcrumb/breadcrumb.js +2 -15
  89. package/development/button/button.js +3 -3
  90. package/development/button/common.js +2 -17
  91. package/development/button/mini-button/mini-button.d.ts.map +1 -1
  92. package/development/button/mini-button-group.js +2 -15
  93. package/development/button/mini-button.js +6 -17
  94. package/development/button/secondary-button.js +3 -3
  95. package/development/button/tertiary-button.js +3 -3
  96. package/development/button/transparent-button.js +3 -3
  97. package/development/calendar/calendar.d.ts +2 -2
  98. package/development/calendar/calendar.d.ts.map +1 -1
  99. package/development/calendar.js +7 -19
  100. package/development/card/card-badge.js +2 -15
  101. package/development/card/card.js +2 -15
  102. package/development/card/common.js +2 -15
  103. package/development/checkbox/checkbox-group.js +2 -15
  104. package/development/checkbox/checkbox.js +2 -15
  105. package/development/checkbox/common.js +1 -14
  106. package/development/chip.js +2 -15
  107. package/development/clock/clock.d.ts +2 -2
  108. package/development/clock/clock.d.ts.map +1 -1
  109. package/development/clock.js +3 -16
  110. package/development/container/container.js +2 -15
  111. package/development/container/sticky-bar.js +2 -15
  112. package/development/core/a11y/focus-visible-within-controller.d.ts +1 -1
  113. package/development/core/a11y/focus-visible-within-controller.d.ts.map +1 -1
  114. package/development/core/a11y/input-modality-detector.d.ts +2 -2
  115. package/development/core/a11y/input-modality-detector.d.ts.map +1 -1
  116. package/development/core/a11y.js +6 -6
  117. package/development/core/base-elements/action-base-element.d.ts +1 -0
  118. package/development/core/base-elements/action-base-element.d.ts.map +1 -1
  119. package/development/core/base-elements/button-base-element.d.ts +1 -1
  120. package/development/core/base-elements/button-base-element.d.ts.map +1 -1
  121. package/development/core/base-elements/link-base-element.d.ts.map +1 -1
  122. package/development/core/base-elements.js +11 -2
  123. package/development/core/controllers/slot-state-controller.d.ts +1 -1
  124. package/development/core/controllers/slot-state-controller.d.ts.map +1 -1
  125. package/development/core/controllers.js +1 -1
  126. package/development/core/dom/platform.d.ts +2 -3
  127. package/development/core/dom/platform.d.ts.map +1 -1
  128. package/development/core/dom.js +4 -5
  129. package/development/core/mixins/disabled-mixin.d.ts +8 -0
  130. package/development/core/mixins/disabled-mixin.d.ts.map +1 -1
  131. package/development/core/mixins.js +24 -15
  132. package/development/core/testing/wait-for-image-ready.d.ts.map +1 -1
  133. package/development/core/testing.js +16 -2
  134. package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
  135. package/development/datepicker/datepicker-next-day.js +2 -15
  136. package/development/datepicker/datepicker-previous-day.js +2 -15
  137. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts +2 -0
  138. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  139. package/development/datepicker/datepicker-toggle.js +22 -24
  140. package/development/datepicker/datepicker.js +3 -15
  141. package/development/dialog/dialog-actions.js +2 -15
  142. package/development/dialog/dialog-content.js +2 -15
  143. package/development/dialog/dialog-title.js +2 -15
  144. package/development/dialog/dialog.js +3 -16
  145. package/development/divider.js +2 -15
  146. package/development/expansion-panel/expansion-panel-content.js +2 -15
  147. package/development/expansion-panel/expansion-panel-header.js +5 -17
  148. package/development/expansion-panel/expansion-panel.js +2 -15
  149. package/development/file-selector/file-selector.d.ts +4 -4
  150. package/development/file-selector/file-selector.d.ts.map +1 -1
  151. package/development/file-selector.js +2 -17
  152. package/development/flip-card/flip-card-details.js +2 -15
  153. package/development/flip-card/flip-card-summary.js +2 -15
  154. package/development/flip-card/flip-card.js +2 -15
  155. package/development/footer.js +2 -15
  156. package/development/form-error.js +2 -15
  157. package/development/form-field/form-field-clear.js +2 -15
  158. package/development/form-field/form-field.js +1 -14
  159. package/development/header/common.js +2 -15
  160. package/development/header/header.js +2 -15
  161. package/development/icon/icon.d.ts +6 -0
  162. package/development/icon/icon.d.ts.map +1 -1
  163. package/development/icon.js +10 -15
  164. package/development/image.js +4 -17
  165. package/development/journey-header.js +2 -15
  166. package/development/lead-container.js +2 -15
  167. package/development/link/block-link-button.js +3 -3
  168. package/development/link/common.js +4 -43
  169. package/development/link/link-button.js +3 -3
  170. package/development/link-list/common.js +2 -15
  171. package/development/link-list/link-list-anchor.js +2 -15
  172. package/development/link-list/link-list.js +2 -15
  173. package/development/loading-indicator.js +2 -15
  174. package/development/logo.js +2 -15
  175. package/development/map-container.js +2 -15
  176. package/development/menu/common.js +2 -15
  177. package/development/menu/menu/menu.d.ts.map +1 -1
  178. package/development/menu/menu-button.js +3 -3
  179. package/development/menu/menu.js +3 -18
  180. package/development/message.js +2 -15
  181. package/development/navigation/common.js +2 -17
  182. package/development/navigation/navigation-list.js +2 -15
  183. package/development/navigation/navigation-marker.js +2 -17
  184. package/development/navigation/navigation-section.js +2 -19
  185. package/development/navigation/navigation.js +2 -15
  186. package/development/notification.js +2 -15
  187. package/development/option/optgroup/optgroup-base-element.d.ts +2 -2
  188. package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  189. package/development/option/optgroup.js +2 -15
  190. package/development/option/option/option-base-element.d.ts +14 -4
  191. package/development/option/option/option-base-element.d.ts.map +1 -1
  192. package/development/option/option.js +15 -21
  193. package/development/overlay/overlay-base-element.d.ts +1 -1
  194. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  195. package/development/overlay.js +3 -23
  196. package/development/popover/popover-trigger.js +4 -17
  197. package/development/popover/popover.js +2 -15
  198. package/development/radio-button/common.js +2 -15
  199. package/development/radio-button/radio-button-group/radio-button-group.d.ts +1 -1
  200. package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  201. package/development/radio-button/radio-button-group.js +9 -22
  202. package/development/radio-button/radio-button.js +2 -15
  203. package/development/screen-reader-only.js +2 -15
  204. package/development/select/select.d.ts +3 -1
  205. package/development/select/select.d.ts.map +1 -1
  206. package/development/select.js +49 -48
  207. package/development/selection-expansion-panel/selection-expansion-panel.d.ts +12 -3
  208. package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  209. package/development/selection-expansion-panel.js +38 -18
  210. package/development/signet.js +2 -15
  211. package/development/skiplink-list.js +2 -15
  212. package/development/slider/slider.d.ts.map +1 -1
  213. package/development/slider.js +10 -16
  214. package/development/status.js +2 -15
  215. package/development/stepper/step-label/step-label.d.ts +6 -6
  216. package/development/stepper/step-label/step-label.d.ts.map +1 -1
  217. package/development/stepper/step-label.js +50 -45
  218. package/development/stepper/step.js +2 -15
  219. package/development/stepper/stepper/stepper.d.ts +6 -3
  220. package/development/stepper/stepper/stepper.d.ts.map +1 -1
  221. package/development/stepper/stepper.js +17 -15
  222. package/development/table/table-wrapper.js +2 -15
  223. package/development/tabs/tab-group/tab-group.d.ts +4 -4
  224. package/development/tabs/tab-group/tab-group.d.ts.map +1 -1
  225. package/development/tabs/tab-group.js +22 -35
  226. package/development/tabs/tab-label.js +2 -19
  227. package/development/tabs/tab.js +1 -14
  228. package/development/tag/tag-group.js +2 -15
  229. package/development/tag/tag.js +4 -17
  230. package/development/teaser-hero.js +3 -23
  231. package/development/teaser-product/common.js +2 -15
  232. package/development/teaser-product/teaser-product.js +3 -16
  233. package/development/teaser.js +2 -15
  234. package/development/time-input.js +2 -15
  235. package/development/timetable-occupancy-icon.js +2 -15
  236. package/development/timetable-occupancy.js +2 -15
  237. package/development/title.js +3 -41
  238. package/development/toast.js +2 -17
  239. package/development/toggle/toggle/toggle.d.ts +2 -2
  240. package/development/toggle/toggle/toggle.d.ts.map +1 -1
  241. package/development/toggle/toggle-option/toggle-option.d.ts.map +1 -1
  242. package/development/toggle/toggle-option.js +3 -15
  243. package/development/toggle/toggle.js +23 -36
  244. package/development/toggle-check.js +1 -14
  245. package/development/train/train-blocked-passage.js +2 -15
  246. package/development/train/train-formation.js +2 -15
  247. package/development/train/train-wagon.js +2 -17
  248. package/development/train/train.js +2 -15
  249. package/development/visual-checkbox.js +2 -15
  250. package/dialog/dialog.js +1 -1
  251. package/expansion-panel/expansion-panel-header.js +5 -5
  252. package/file-selector/file-selector.d.ts +4 -4
  253. package/file-selector/file-selector.d.ts.map +1 -1
  254. package/file-selector.js +1 -1
  255. package/icon/icon.d.ts +6 -0
  256. package/icon/icon.d.ts.map +1 -1
  257. package/icon.js +27 -19
  258. package/image.js +2 -2
  259. package/link/block-link-button.js +10 -10
  260. package/link/link-button.js +4 -4
  261. package/lists.css +9 -14
  262. package/menu/menu/menu.d.ts.map +1 -1
  263. package/menu/menu-button.js +13 -13
  264. package/menu/menu.js +7 -9
  265. package/navigation/common.js +1 -1
  266. package/navigation/navigation-marker.js +1 -1
  267. package/navigation/navigation-section.js +1 -1
  268. package/option/optgroup/optgroup-base-element.d.ts +2 -2
  269. package/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  270. package/option/option/option-base-element.d.ts +14 -4
  271. package/option/option/option-base-element.d.ts.map +1 -1
  272. package/option/option.js +32 -25
  273. package/overlay/overlay-base-element.d.ts +1 -1
  274. package/overlay/overlay-base-element.d.ts.map +1 -1
  275. package/overlay.js +1 -1
  276. package/package.json +1 -1
  277. package/popover/popover-trigger.js +1 -1
  278. package/radio-button/radio-button-group/radio-button-group.d.ts +1 -1
  279. package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  280. package/radio-button/radio-button-group.js +5 -5
  281. package/select/select.d.ts +3 -1
  282. package/select/select.d.ts.map +1 -1
  283. package/select.js +83 -72
  284. package/selection-expansion-panel/selection-expansion-panel.d.ts +12 -3
  285. package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  286. package/selection-expansion-panel.js +70 -49
  287. package/slider/slider.d.ts.map +1 -1
  288. package/slider.js +2 -2
  289. package/standard-theme.css +49 -24
  290. package/stepper/step-label/step-label.d.ts +6 -6
  291. package/stepper/step-label/step-label.d.ts.map +1 -1
  292. package/stepper/step-label.js +30 -30
  293. package/stepper/stepper/stepper.d.ts +6 -3
  294. package/stepper/stepper/stepper.d.ts.map +1 -1
  295. package/stepper/stepper.js +34 -25
  296. package/tabs/tab-group/tab-group.d.ts +4 -4
  297. package/tabs/tab-group/tab-group.d.ts.map +1 -1
  298. package/tabs/tab-group.js +15 -15
  299. package/tabs/tab-label.js +12 -12
  300. package/tag/tag.js +19 -19
  301. package/teaser-hero.js +13 -13
  302. package/teaser-product/teaser-product.js +5 -5
  303. package/teaser.js +15 -15
  304. package/title.js +23 -23
  305. package/toast.js +4 -4
  306. package/toggle/toggle/toggle.d.ts +2 -2
  307. package/toggle/toggle/toggle.d.ts.map +1 -1
  308. package/toggle/toggle-option/toggle-option.d.ts.map +1 -1
  309. package/toggle/toggle-option.js +1 -0
  310. package/toggle/toggle.js +10 -10
  311. package/train/train-wagon.js +7 -7
  312. package/typography.css +0 -13
package/select.js CHANGED
@@ -1,23 +1,24 @@
1
- import { css as _, html as b, nothing as c } from "lit";
2
- import { property as d, state as g, customElement as m } from "lit/decorators.js";
1
+ import { css as g, html as d, nothing as c } from "lit";
2
+ import { property as b, state as m, customElement as w } from "lit/decorators.js";
3
3
  import { ref as v } from "lit/directives/ref.js";
4
- import { getNextElementIndex as w } from "./core/a11y.js";
5
- import { SbbOpenCloseBaseElement as y } from "./core/base-elements.js";
6
- import { SbbConnectedAbortController as x } from "./core/controllers.js";
7
- import { hostAttributes as E } from "./core/decorators.js";
8
- import { isNextjs as u, getDocumentWritingMode as O, isSafari as k } from "./core/dom.js";
4
+ import { until as u } from "lit/directives/until.js";
5
+ import { getNextElementIndex as y } from "./core/a11y.js";
6
+ import { SbbOpenCloseBaseElement as x } from "./core/base-elements.js";
7
+ import { SbbConnectedAbortController as E } from "./core/controllers.js";
8
+ import { hostAttributes as O } from "./core/decorators.js";
9
+ import { isNextjs as f, getDocumentWritingMode as k, isSafari as C } from "./core/dom.js";
9
10
  import { EventEmitter as p } from "./core/eventing.js";
10
- import { SbbUpdateSchedulerMixin as C, SbbDisabledMixin as A, SbbNegativeMixin as S } from "./core/mixins.js";
11
- import { isEventOnElement as f, setOverlayPosition as I, overlayGapFixCorners as P } from "./core/overlay.js";
12
- const $ = _`*,:before,:after{box-sizing:border-box}.sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-options-panel-border-radius);height:var(--sbb-options-panel-border-radius);background-color:transparent}.sbb-gap-fix-corner{position:absolute;border-radius:50%;border:calc(var(--sbb-options-panel-border-radius) / 2) solid var(--sbb-options-panel-background-color);width:calc(var(--sbb-options-panel-border-radius) * 3);height:calc(var(--sbb-options-panel-border-radius) * 3);bottom:calc(var(--sbb-options-panel-border-radius) / 2 * -1)}.sbb-gap-fix-corner#left{left:calc(var(--sbb-options-panel-border-radius) / 2 * -1)}:host([dir=rtl]) .sbb-gap-fix-corner#left{right:calc(var(--sbb-options-panel-border-radius) / 2 * -1);left:unset}.sbb-gap-fix-corner#right{right:calc(var(--sbb-options-panel-border-radius) / 2 * -1)}:host([dir=rtl]) .sbb-gap-fix-corner#right{left:calc(var(--sbb-options-panel-border-radius) / 2 * -1);right:unset}:host{--sbb-scrollbar-thumb-width: .125rem;--sbb-scrollbar-thumb-width-hover: .25rem;--sbb-scrollbar-width-firefox: thin;--sbb-scrollbar-color: var(--sbb-color-black-alpha-30);--sbb-scrollbar-color-hover: var(--sbb-color-black-alpha-60);--sbb-scrollbar-track-color: transparent;--sbb-options-panel-position-x: 0;--sbb-options-panel-position-y: 0;--sbb-options-panel-active-option-y: 0;--sbb-options-panel-max-height: calc(85vh - var(--sbb-spacing-fixed-8x));--sbb-options-panel-min-height: var(--sbb-options-panel-origin-height);--sbb-options-panel-visibility: visible;--sbb-options-panel-width: fit-content;--sbb-options-panel-border-radius: var(--sbb-border-radius-4x);--sbb-options-panel-options-border-radius: 0 0 var(--sbb-options-panel-border-radius) var(--sbb-options-panel-border-radius);--sbb-options-panel-animation-duration: var( --sbb-disable-animation-time, var(--sbb-animation-duration-4x) );--sbb-options-panel-animation-timing-function: ease;--sbb-options-panel-gap-fix-opacity: 0;--sbb-options-panel-gap-fix-transform: none;--sbb-options-panel-gap-fix-top: calc( var(--sbb-options-panel-position-y) - var(--sbb-options-panel-border-radius) );--sbb-options-panel-background-color: var(--sbb-color-white);--sbb-focus-outline-color: var(--sbb-focus-outline-color-default);--sbb-options-panel-internal-z-index: var( --sbb-select-z-index, var(--sbb-overlay-default-z-index) );display:block}:host([negative]){--sbb-scrollbar-color: var(--sbb-color-white-alpha-30);--sbb-scrollbar-color-hover: var(--sbb-color-white-alpha-60);--sbb-options-panel-background-color: var(--sbb-color-midnight);--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark)}:host(:not([data-state])),:host([data-state=closed]){--sbb-options-panel-visibility: hidden}:host([data-state=opening]){--sbb-options-panel-animation-name: open}:host([data-state=closing]){--sbb-options-panel-animation-name: close}:host([data-state=opened]),:host([data-state=opening]){--sbb-options-panel-gap-fix-opacity: 1}:host([data-options-panel-position=below]){--sbb-options-panel-animation-transform: translateY( calc((var(--sbb-options-panel-origin-height) / 2) * -1) )}:host([data-options-panel-position=above]){--sbb-options-panel-options-border-radius: var(--sbb-options-panel-border-radius) var(--sbb-options-panel-border-radius) 0 0;--sbb-options-panel-gap-fix-top: var(--sbb-options-panel-max-height);--sbb-options-panel-gap-fix-transform: rotate(180deg);--sbb-options-panel-animation-transform: translateY( calc(var(--sbb-options-panel-origin-height) / 2) )}::slotted(sbb-divider){margin-block:var(--sbb-spacing-fixed-3x)}:host([preserve-icon-space]){--sbb-option-icon-container-display: block}.sbb-select__trigger{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;height:calc(1em * var(--sbb-typo-line-height-body-text))}.sbb-select__trigger--placeholder{color:var(--sbb-select-placeholder-color, var(--sbb-color-metal));-webkit-text-fill-color:var(--sbb-select-placeholder-color, var(--sbb-color-metal))}.sbb-select__container{position:fixed;pointer-events:none;top:0;right:0;bottom:0;left:0;z-index:var(--sbb-options-panel-internal-z-index)}.sbb-select__gap-fix{display:flex;justify-content:space-between;position:fixed;visibility:var(--sbb-options-panel-visibility);opacity:var(--sbb-options-panel-gap-fix-opacity);background-color:transparent;width:var(--sbb-options-panel-width);height:var(--sbb-options-panel-border-radius);top:var(--sbb-options-panel-gap-fix-top);left:var(--sbb-options-panel-position-x);transform:var(--sbb-options-panel-gap-fix-transform);transition:opacity var(--sbb-options-panel-animation-duration) var(--sbb-options-panel-animation-timing-function)}.sbb-select__panel{display:block;position:absolute;visibility:var(--sbb-options-panel-visibility);overflow:hidden;background-color:transparent;border:none;border-radius:var(--sbb-options-panel-border-radius);top:var(--sbb-options-panel-position-y);left:var(--sbb-options-panel-position-x);width:var(--sbb-options-panel-width);transition:box-shadow var(--sbb-options-panel-animation-duration) var(--sbb-options-panel-animation-timing-function)}.sbb-select__panel:before,.sbb-select__panel:after{content:"";display:none;position:relative;width:100%;height:var(--sbb-options-panel-origin-height);background-color:transparent;border-radius:var(--sbb-options-panel-border-radius);pointer-events:none;transition:box-shadow var(--sbb-options-panel-animation-duration) var(--sbb-options-panel-animation-timing-function);z-index:1}:host([data-options-panel-position=below]) .sbb-select__panel{inset-block-start:calc(var(--sbb-options-panel-position-y) - var(--sbb-options-panel-origin-height))}:host(:is([data-state=opened],[data-state=opening])) .sbb-select__panel{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)}:host(:is([data-state=opened],[data-state=opening])[negative]) .sbb-select__panel{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-negative-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-negative-1-color)}:host([data-options-panel-position=below]) .sbb-select__panel:before{display:block}:host([data-options-panel-position=above]) .sbb-select__panel:after{display:block}:host(:is([data-state=opened],[data-state=opening])[data-option-panel-origin-borderless]) .sbb-select__panel:before,:host(:is([data-state=opened],[data-state=opening])[data-option-panel-origin-borderless]) .sbb-select__panel: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)}:host(:is([data-state=opened],[data-state=opening])[data-option-panel-origin-borderless][negative]) .sbb-select__panel:before,:host(:is([data-state=opened],[data-state=opening])[data-option-panel-origin-borderless][negative]) .sbb-select__panel: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-negative-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-negative-1-color)}.sbb-select__wrapper{overflow:hidden}.sbb-select__options{background-color:var(--sbb-options-panel-background-color);padding-block:var(--sbb-spacing-fixed-3x);padding-inline:0;border-radius:var(--sbb-options-panel-options-border-radius);max-height:var(--sbb-options-panel-max-height);min-height:var(--sbb-options-panel-min-height);pointer-events:all;overflow-y:auto;animation-name:var(--sbb-options-panel-animation-name);animation-duration:var(--sbb-options-panel-animation-duration);animation-timing-function:var(--sbb-options-panel-animation-timing-function);--sbb-scrollbar-width: var(--sbb-spacing-fixed-3x)}.sbb-select__options::-webkit-scrollbar{width:var(--sbb-scrollbar-width);height:var(--sbb-scrollbar-width);background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-select__options::-webkit-scrollbar-corner{background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-select__options::-webkit-scrollbar-thumb{background-color:var(--sbb-scrollbar-color, currentcolor);border:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;border-radius:var(--sbb-border-radius-4x);background-clip:padding-box}.sbb-select__options::-webkit-scrollbar-thumb:hover{background-color:var(--sbb-scrollbar-color-hover, currentcolor);border-width:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)))}.sbb-select__options::-webkit-scrollbar-button,.sbb-select__options::-webkit-scrollbar-corner{display:none}@supports not selector(::-webkit-scrollbar){.sbb-select__options{scrollbar-width:var(--sbb-scrollbar-width-firefox);scrollbar-color:var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent)}}.sbb-select__options{padding-block:var(--sbb-spacing-fixed-2x)}@media (forced-colors: active){.sbb-select__options{border:var(--sbb-border-width-1x) solid CanvasText;border-block-start:none}}@keyframes open{0%{transform:var(--sbb-options-panel-animation-transform);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes close{0%{transform:translateY(0);opacity:1}to{transform:var(--sbb-options-panel-animation-transform);opacity:0}}`;
13
- var D = Object.defineProperty, L = Object.getOwnPropertyDescriptor, r = (e, t, i, s) => {
14
- for (var o = s > 1 ? void 0 : s ? L(t, i) : t, n = e.length - 1, l; n >= 0; n--)
15
- (l = e[n]) && (o = (s ? l(t, i, o) : l(o)) || o);
16
- return s && o && D(t, i, o), o;
11
+ import { SbbUpdateSchedulerMixin as A, SbbDisabledMixin as S, SbbNegativeMixin as I, SbbHydrationMixin as D } from "./core/mixins.js";
12
+ import { isEventOnElement as _, setOverlayPosition as P, overlayGapFixCorners as $ } from "./core/overlay.js";
13
+ const L = g`*,:before,:after{box-sizing:border-box}.sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-options-panel-border-radius);height:var(--sbb-options-panel-border-radius);background-color:transparent}.sbb-gap-fix-corner{position:absolute;border-radius:50%;border:calc(var(--sbb-options-panel-border-radius) / 2) solid var(--sbb-options-panel-background-color);width:calc(var(--sbb-options-panel-border-radius) * 3);height:calc(var(--sbb-options-panel-border-radius) * 3);bottom:calc(var(--sbb-options-panel-border-radius) / 2 * -1)}.sbb-gap-fix-corner#left{left:calc(var(--sbb-options-panel-border-radius) / 2 * -1)}:host([dir=rtl]) .sbb-gap-fix-corner#left{right:calc(var(--sbb-options-panel-border-radius) / 2 * -1);left:unset}.sbb-gap-fix-corner#right{right:calc(var(--sbb-options-panel-border-radius) / 2 * -1)}:host([dir=rtl]) .sbb-gap-fix-corner#right{left:calc(var(--sbb-options-panel-border-radius) / 2 * -1);right:unset}:host{--sbb-scrollbar-thumb-width: .125rem;--sbb-scrollbar-thumb-width-hover: .25rem;--sbb-scrollbar-width-firefox: thin;--sbb-scrollbar-color: var(--sbb-color-black-alpha-30);--sbb-scrollbar-color-hover: var(--sbb-color-black-alpha-60);--sbb-scrollbar-track-color: transparent;--sbb-options-panel-position-x: 0;--sbb-options-panel-position-y: 0;--sbb-options-panel-active-option-y: 0;--sbb-options-panel-max-height: calc(85vh - var(--sbb-spacing-fixed-8x));--sbb-options-panel-min-height: var(--sbb-options-panel-origin-height);--sbb-options-panel-visibility: visible;--sbb-options-panel-width: fit-content;--sbb-options-panel-border-radius: var(--sbb-border-radius-4x);--sbb-options-panel-options-border-radius: 0 0 var(--sbb-options-panel-border-radius) var(--sbb-options-panel-border-radius);--sbb-options-panel-animation-duration: var( --sbb-disable-animation-time, var(--sbb-animation-duration-4x) );--sbb-options-panel-animation-timing-function: ease;--sbb-options-panel-gap-fix-opacity: 0;--sbb-options-panel-gap-fix-transform: none;--sbb-options-panel-gap-fix-top: calc( var(--sbb-options-panel-position-y) - var(--sbb-options-panel-border-radius) );--sbb-options-panel-background-color: var(--sbb-color-white);--sbb-focus-outline-color: var(--sbb-focus-outline-color-default);--sbb-options-panel-internal-z-index: var( --sbb-select-z-index, var(--sbb-overlay-default-z-index) );display:block}:host([negative]){--sbb-scrollbar-color: var(--sbb-color-white-alpha-30);--sbb-scrollbar-color-hover: var(--sbb-color-white-alpha-60);--sbb-options-panel-background-color: var(--sbb-color-midnight);--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark)}:host(:not([data-state])),:host([data-state=closed]){--sbb-options-panel-visibility: hidden}:host([data-state=opening]){--sbb-options-panel-animation-name: open}:host([data-state=closing]){--sbb-options-panel-animation-name: close}:host([data-state=opened]),:host([data-state=opening]){--sbb-options-panel-gap-fix-opacity: 1}:host([data-options-panel-position=below]){--sbb-options-panel-animation-transform: translateY( calc((var(--sbb-options-panel-origin-height) / 2) * -1) )}:host([data-options-panel-position=above]){--sbb-options-panel-options-border-radius: var(--sbb-options-panel-border-radius) var(--sbb-options-panel-border-radius) 0 0;--sbb-options-panel-gap-fix-top: var(--sbb-options-panel-max-height);--sbb-options-panel-gap-fix-transform: rotate(180deg);--sbb-options-panel-animation-transform: translateY( calc(var(--sbb-options-panel-origin-height) / 2) )}::slotted(sbb-divider){margin-block:var(--sbb-spacing-fixed-3x)}:host([preserve-icon-space]){--sbb-option-icon-container-display: block}.sbb-select__trigger{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;height:calc(1em * var(--sbb-typo-line-height-body-text))}.sbb-select__trigger--placeholder{color:var(--sbb-select-placeholder-color, var(--sbb-color-metal));-webkit-text-fill-color:var(--sbb-select-placeholder-color, var(--sbb-color-metal))}.sbb-select__container{position:fixed;pointer-events:none;top:0;right:0;bottom:0;left:0;z-index:var(--sbb-options-panel-internal-z-index)}.sbb-select__gap-fix{display:flex;justify-content:space-between;position:fixed;visibility:var(--sbb-options-panel-visibility);opacity:var(--sbb-options-panel-gap-fix-opacity);background-color:transparent;width:var(--sbb-options-panel-width);height:var(--sbb-options-panel-border-radius);top:var(--sbb-options-panel-gap-fix-top);left:var(--sbb-options-panel-position-x);transform:var(--sbb-options-panel-gap-fix-transform);transition:opacity var(--sbb-options-panel-animation-duration) var(--sbb-options-panel-animation-timing-function)}.sbb-select__panel{display:block;position:absolute;visibility:var(--sbb-options-panel-visibility);overflow:hidden;background-color:transparent;border:none;border-radius:var(--sbb-options-panel-border-radius);top:var(--sbb-options-panel-position-y);left:var(--sbb-options-panel-position-x);width:var(--sbb-options-panel-width);transition:box-shadow var(--sbb-options-panel-animation-duration) var(--sbb-options-panel-animation-timing-function)}.sbb-select__panel:before,.sbb-select__panel:after{content:"";display:none;position:relative;width:100%;height:var(--sbb-options-panel-origin-height);background-color:transparent;border-radius:var(--sbb-options-panel-border-radius);pointer-events:none;transition:box-shadow var(--sbb-options-panel-animation-duration) var(--sbb-options-panel-animation-timing-function);z-index:1}:host([data-options-panel-position=below]) .sbb-select__panel{inset-block-start:calc(var(--sbb-options-panel-position-y) - var(--sbb-options-panel-origin-height))}:host(:is([data-state=opened],[data-state=opening])) .sbb-select__panel{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)}:host(:is([data-state=opened],[data-state=opening])[negative]) .sbb-select__panel{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-negative-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-negative-1-color)}:host([data-options-panel-position=below]) .sbb-select__panel:before{display:block}:host([data-options-panel-position=above]) .sbb-select__panel:after{display:block}:host(:is([data-state=opened],[data-state=opening])[data-option-panel-origin-borderless]) .sbb-select__panel:before,:host(:is([data-state=opened],[data-state=opening])[data-option-panel-origin-borderless]) .sbb-select__panel: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)}:host(:is([data-state=opened],[data-state=opening])[data-option-panel-origin-borderless][negative]) .sbb-select__panel:before,:host(:is([data-state=opened],[data-state=opening])[data-option-panel-origin-borderless][negative]) .sbb-select__panel: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-negative-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-negative-1-color)}.sbb-select__wrapper{overflow:hidden}.sbb-select__options{background-color:var(--sbb-options-panel-background-color);padding-block:var(--sbb-spacing-fixed-3x);padding-inline:0;border-radius:var(--sbb-options-panel-options-border-radius);max-height:var(--sbb-options-panel-max-height);min-height:var(--sbb-options-panel-min-height);pointer-events:all;overflow-y:auto;animation-name:var(--sbb-options-panel-animation-name);animation-duration:var(--sbb-options-panel-animation-duration);animation-timing-function:var(--sbb-options-panel-animation-timing-function);--sbb-scrollbar-width: var(--sbb-spacing-fixed-3x)}.sbb-select__options::-webkit-scrollbar{width:var(--sbb-scrollbar-width);height:var(--sbb-scrollbar-width);background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-select__options::-webkit-scrollbar-corner{background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-select__options::-webkit-scrollbar-thumb{background-color:var(--sbb-scrollbar-color, currentcolor);border:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;border-radius:var(--sbb-border-radius-4x);background-clip:padding-box}.sbb-select__options::-webkit-scrollbar-thumb:hover{background-color:var(--sbb-scrollbar-color-hover, currentcolor);border-width:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)))}.sbb-select__options::-webkit-scrollbar-button,.sbb-select__options::-webkit-scrollbar-corner{display:none}@supports not selector(::-webkit-scrollbar){.sbb-select__options{scrollbar-width:var(--sbb-scrollbar-width-firefox);scrollbar-color:var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent)}}.sbb-select__options{padding-block:var(--sbb-spacing-fixed-2x)}@media (forced-colors: active){.sbb-select__options{border:var(--sbb-border-width-1x) solid CanvasText;border-block-start:none}}@keyframes open{0%{transform:var(--sbb-options-panel-animation-transform);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes close{0%{transform:translateY(0);opacity:1}to{transform:var(--sbb-options-panel-animation-transform);opacity:0}}`;
14
+ var V = Object.defineProperty, T = Object.getOwnPropertyDescriptor, n = (e, t, i, s) => {
15
+ for (var o = s > 1 ? void 0 : s ? T(t, i) : t, r = e.length - 1, l; r >= 0; r--)
16
+ (l = e[r]) && (o = (s ? l(t, i, o) : l(o)) || o);
17
+ return s && o && V(t, i, o), o;
17
18
  };
18
- const h = k;
19
- let T = 0, a = class extends C(
20
- A(S(y))
19
+ const h = C;
20
+ let N = 0, a = class extends A(
21
+ S(I(D(x)))
21
22
  ) {
22
23
  constructor() {
23
24
  super(...arguments), this.multiple = !1, this.required = !1, this.readonly = !1, this._displayValue = null, this._didChange = new p(this, a.events.didChange), this._change = new p(this, a.events.change), this._input = new p(this, a.events.input), this._stateChange = new p(
@@ -26,10 +27,10 @@ let T = 0, a = class extends C(
26
27
  {
27
28
  composed: !1
28
29
  }
29
- ), this._overlayId = `sbb-select-${++T}`, this._activeItemIndex = -1, this._searchString = "", this._didLoad = !1, this._isPointerDownEventOnMenu = !1, this._abort = new x(this), this._pointerDownListener = (e) => {
30
- this._isPointerDownEventOnMenu = f(this._overlay, e);
31
- }, this._closeOnBackdropClick = async (e) => {
32
- !this._isPointerDownEventOnMenu && !f(this._overlay, e) && await this.close();
30
+ ), this._overlayId = `sbb-select-${++N}`, this._activeItemIndex = -1, this._searchString = "", this._didLoad = !1, this._isPointerDownEventOnMenu = !1, this._abort = new E(this), this._pointerDownListener = (e) => {
31
+ this._isPointerDownEventOnMenu = _(this._overlay, e);
32
+ }, this._closeOnBackdropClick = (e) => {
33
+ !this._isPointerDownEventOnMenu && !_(this._overlay, e) && this.close();
33
34
  };
34
35
  }
35
36
  /**
@@ -59,7 +60,7 @@ let T = 0, a = class extends C(
59
60
  }
60
61
  /** Gets the current displayed value. */
61
62
  getDisplayValue() {
62
- return this._displayValue ? this._displayValue : "";
63
+ return this._displayValue ?? "";
63
64
  }
64
65
  /** Listens to option changes. */
65
66
  _onOptionChanged(e) {
@@ -86,7 +87,7 @@ let T = 0, a = class extends C(
86
87
  this._stateChange.emit({ type: "value", value: e });
87
88
  }
88
89
  firstUpdated(e) {
89
- super.firstUpdated(e), this.focus = () => this._triggerElement.focus(), this.blur = () => this._triggerElement.blur(), u() || (this.startUpdate(), this._setupSelect());
90
+ super.firstUpdated(e), this.focus = () => this._triggerElement.focus(), this.blur = () => this._triggerElement.blur(), f() || (this.startUpdate(), this._setupSelect());
90
91
  }
91
92
  /**
92
93
  * Removes element's first attribute whose qualified name is qualifiedName.
@@ -95,7 +96,7 @@ let T = 0, a = class extends C(
95
96
  * @internal We need to override this due to a hydration issue with Next.js.
96
97
  */
97
98
  removeAttribute(e) {
98
- u() && e === "defer-hydration" && !this._didLoad && this.updateComplete.then(() => this._setupSelect()), super.removeAttribute(e);
99
+ f() && e === "defer-hydration" && !this._didLoad && this.updateComplete.then(() => this._setupSelect()), super.removeAttribute(e);
99
100
  }
100
101
  connectedCallback() {
101
102
  var i, s;
@@ -152,7 +153,7 @@ let T = 0, a = class extends C(
152
153
  this._triggerElement.style.top = "0px", this._triggerElement.style.height = `${e.offsetHeight}px`, this._triggerElement.style.width = `${e.offsetWidth}px`;
153
154
  }
154
155
  _setOverlayPosition() {
155
- I(
156
+ P(
156
157
  this._overlay,
157
158
  this._originElement,
158
159
  this._optionContainer,
@@ -194,10 +195,10 @@ let T = 0, a = class extends C(
194
195
  signal: this._openPanelEventsController.signal
195
196
  });
196
197
  }
197
- async _onKeyDown(e) {
198
- this.disabled || this.readonly || (this.state === "opened" && await this._openedPanelKeyboardInteraction(e), this.state === "closed" && await this._closedPanelKeyboardInteraction(e));
198
+ _onKeyDown(e) {
199
+ this.disabled || this.readonly || (this.state === "opened" && this._openedPanelKeyboardInteraction(e), this.state === "closed" && this._closedPanelKeyboardInteraction(e));
199
200
  }
200
- async _closedPanelKeyboardInteraction(e) {
201
+ _closedPanelKeyboardInteraction(e) {
201
202
  if (this._checkForLetterSelection(e))
202
203
  return this._setNextActiveOptionByText(e);
203
204
  switch (e.key) {
@@ -205,34 +206,34 @@ let T = 0, a = class extends C(
205
206
  case " ":
206
207
  case "ArrowDown":
207
208
  case "ArrowUp":
208
- e.preventDefault(), await this.open();
209
+ e.preventDefault(), this.open();
209
210
  break;
210
211
  }
211
212
  }
212
- async _openedPanelKeyboardInteraction(e) {
213
+ _openedPanelKeyboardInteraction(e) {
213
214
  if (!(this.disabled || this.readonly || this.state !== "opened")) {
214
215
  if (this._checkForLetterSelection(e))
215
216
  return this._setNextActiveOptionByText(e);
216
217
  switch (e.key) {
217
218
  case "Escape":
218
219
  case "Tab":
219
- await this.close();
220
+ this.close();
220
221
  break;
221
222
  case "Enter":
222
223
  case " ":
223
- e.preventDefault(), await this._selectByKeyboard();
224
+ e.preventDefault(), this._selectByKeyboard();
224
225
  break;
225
226
  case "ArrowDown":
226
227
  case "ArrowUp":
227
- e.preventDefault(), await this._setNextActiveOption(e);
228
+ e.preventDefault(), this._setNextActiveOption(e);
228
229
  break;
229
230
  case "Home":
230
231
  case "PageUp":
231
- e.preventDefault(), await this._setNextActiveOption(e, 0);
232
+ e.preventDefault(), this._setNextActiveOption(e, 0);
232
233
  break;
233
234
  case "End":
234
235
  case "PageDown":
235
- e.preventDefault(), await this._setNextActiveOption(e, this._filteredOptions.length - 1);
236
+ e.preventDefault(), this._setNextActiveOption(e, this._filteredOptions.length - 1);
236
237
  break;
237
238
  }
238
239
  }
@@ -240,47 +241,47 @@ let T = 0, a = class extends C(
240
241
  _checkForLetterSelection(e) {
241
242
  return e.key === "Backspace" || e.key === "Clear" || e.key.length === 1 && e.key !== " " && !e.altKey && !e.ctrlKey && !e.metaKey;
242
243
  }
243
- async _setNextActiveOptionByText(e) {
244
+ _setNextActiveOptionByText(e) {
244
245
  typeof this._searchTimeout == typeof setTimeout && clearTimeout(this._searchTimeout), this._searchTimeout = setTimeout(() => this._searchString = "", 1e3), this._searchString += e.key;
245
246
  const t = this._activeItemIndex + 1, i = [
246
247
  ...this._filteredOptions.slice(t),
247
248
  ...this._filteredOptions.slice(0, t)
248
249
  ], s = i.find(
249
250
  (o) => {
250
- var n;
251
- return ((n = o.textContent) == null ? void 0 : n.toLowerCase().indexOf(this._searchString.toLowerCase())) === 0;
251
+ var r;
252
+ return ((r = o.textContent) == null ? void 0 : r.toLowerCase().indexOf(this._searchString.toLowerCase())) === 0;
252
253
  }
253
254
  );
254
255
  if (s)
255
- await this._setNextActiveOption(e, this._filteredOptions.indexOf(s));
256
+ this._setNextActiveOption(e, this._filteredOptions.indexOf(s));
256
257
  else if (this._searchString.length > 1 && new RegExp(`^${this._searchString.charAt(0)}*$`).test(this._searchString)) {
257
258
  const o = i.find(
258
- (n) => {
259
+ (r) => {
259
260
  var l;
260
- return ((l = n.textContent) == null ? void 0 : l.toLowerCase().indexOf(this._searchString[0].toLowerCase())) === 0;
261
+ return ((l = r.textContent) == null ? void 0 : l.toLowerCase().indexOf(this._searchString[0].toLowerCase())) === 0;
261
262
  }
262
263
  );
263
- o && await this._setNextActiveOption(e, this._filteredOptions.indexOf(o));
264
+ o && this._setNextActiveOption(e, this._filteredOptions.indexOf(o));
264
265
  } else
265
266
  clearTimeout(this._searchTimeout), this._searchString = "";
266
267
  }
267
- async _selectByKeyboard() {
268
+ _selectByKeyboard() {
268
269
  const e = this._filteredOptions[this._activeItemIndex];
269
- this.multiple ? await e.setSelectedViaUserInteraction(!e.selected) : await this.close();
270
+ this.multiple ? e.setSelectedViaUserInteraction(!e.selected) : this.close();
270
271
  }
271
- async _setNextActiveOption(e, t) {
272
- const i = t ?? w(e, this._activeItemIndex, this._filteredOptions.length), s = this._filteredOptions[i], o = this._filteredOptions[this._activeItemIndex];
273
- this._setActiveElement(s, o), this.multiple ? e != null && e.shiftKey && await s.setSelectedViaUserInteraction(!s.selected) : await this._setSelectedElement(s, o), this._activeItemIndex = i;
272
+ _setNextActiveOption(e, t) {
273
+ const i = t ?? y(e, this._activeItemIndex, this._filteredOptions.length), s = this._filteredOptions[i], o = this._filteredOptions[this._activeItemIndex];
274
+ this._setActiveElement(s, o), this.multiple ? e != null && e.shiftKey && s.setSelectedViaUserInteraction(!s.selected) : this._setSelectedElement(s, o), this._activeItemIndex = i;
274
275
  }
275
276
  _setActiveElement(e, t = null, i = !0) {
276
- e.active = !0, e.scrollIntoView({ block: "nearest" }), i && this._triggerElement.setAttribute("aria-activedescendant", e.id), t && t !== e && (t.active = !1);
277
+ e.setActive(!0), e.scrollIntoView({ block: "nearest" }), i && this._triggerElement.setAttribute("aria-activedescendant", e.id), t && t !== e && t.setActive(!1);
277
278
  }
278
- async _setSelectedElement(e, t) {
279
- await e.setSelectedViaUserInteraction(!0), t && t !== e && await t.setSelectedViaUserInteraction(!1);
279
+ _setSelectedElement(e, t) {
280
+ e.setSelectedViaUserInteraction(!0), t && t !== e && t.setSelectedViaUserInteraction(!1);
280
281
  }
281
282
  _resetActiveElement() {
282
283
  const e = this._filteredOptions[this._activeItemIndex];
283
- e && (e.active = !1), this._activeItemIndex = -1, this._triggerElement.removeAttribute("aria-activedescendant");
284
+ e && e.setActive(!1), this._activeItemIndex = -1, this._triggerElement.removeAttribute("aria-activedescendant");
284
285
  }
285
286
  _setValueFromSelectedOption() {
286
287
  if (this.multiple) {
@@ -312,8 +313,14 @@ let T = 0, a = class extends C(
312
313
  }
313
314
  }
314
315
  }
316
+ _spreadDeferredDisplayValue(e) {
317
+ return [this._deferredDisplayValue(e), e];
318
+ }
319
+ async _deferredDisplayValue(e) {
320
+ return this.hydrationRequired && await this.hydrationComplete, this._displayValue ? d`${this._displayValue}` : e;
321
+ }
315
322
  render() {
316
- return b`
323
+ return d`
317
324
  <!-- This element is visually hidden and will be appended to the light DOM to allow screen
318
325
  readers to work properly -->
319
326
  <div
@@ -329,17 +336,21 @@ let T = 0, a = class extends C(
329
336
  @click=${this._toggleOpening}
330
337
  ${v((e) => this._triggerElement = e)}
331
338
  >
332
- ${this._displayValue ? b`${this._displayValue}` : b`<span>${this.placeholder}</span>`}
339
+ ${u(...this._spreadDeferredDisplayValue(d`<span>${this.placeholder}</span>`))}
333
340
  </div>
334
341
 
335
342
  <!-- Visually display the value -->
336
343
  <div class="sbb-select__trigger" aria-hidden="true">
337
- ${this._displayValue ? b`${this._displayValue}` : b`<span class="sbb-select__trigger--placeholder">${this.placeholder}</span>`}
344
+ ${u(
345
+ ...this._spreadDeferredDisplayValue(
346
+ d`<span class="sbb-select__trigger--placeholder">${this.placeholder}</span>`
347
+ )
348
+ )}
338
349
  </div>
339
350
 
340
351
  <div class="sbb-select__gap-fix"></div>
341
352
  <div class="sbb-select__container">
342
- <div class="sbb-select__gap-fix">${P()}</div>
353
+ <div class="sbb-select__gap-fix">${$()}</div>
343
354
  <div
344
355
  @animationend=${this._onAnimationEnd}
345
356
  class="sbb-select__panel"
@@ -361,7 +372,7 @@ let T = 0, a = class extends C(
361
372
  `;
362
373
  }
363
374
  };
364
- a.styles = $;
375
+ a.styles = L;
365
376
  a.events = {
366
377
  didChange: "didChange",
367
378
  change: "change",
@@ -372,28 +383,28 @@ a.events = {
372
383
  willClose: "willClose",
373
384
  didClose: "didClose"
374
385
  };
375
- r([
376
- d()
386
+ n([
387
+ b()
377
388
  ], a.prototype, "value", 2);
378
- r([
379
- d()
389
+ n([
390
+ b()
380
391
  ], a.prototype, "placeholder", 2);
381
- r([
382
- d({ type: Boolean, reflect: !0 })
392
+ n([
393
+ b({ type: Boolean, reflect: !0 })
383
394
  ], a.prototype, "multiple", 2);
384
- r([
385
- d({ reflect: !0, type: Boolean })
395
+ n([
396
+ b({ reflect: !0, type: Boolean })
386
397
  ], a.prototype, "required", 2);
387
- r([
388
- d({ type: Boolean })
398
+ n([
399
+ b({ type: Boolean })
389
400
  ], a.prototype, "readonly", 2);
390
- r([
391
- g()
401
+ n([
402
+ m()
392
403
  ], a.prototype, "_displayValue", 2);
393
- a = r([
394
- m("sbb-select"),
395
- E({
396
- dir: O(),
404
+ a = n([
405
+ w("sbb-select"),
406
+ O({
407
+ dir: k(),
397
408
  role: h ? "listbox" : null
398
409
  })
399
410
  ], a);
@@ -38,17 +38,26 @@ export declare class SbbSelectionExpansionPanelElement extends SbbSelectionExpan
38
38
  private _language;
39
39
  private _abort;
40
40
  private _initialized;
41
- /**
42
- * Whether it has an expandable content
43
- */
41
+ private _sizeAttributeObserver;
42
+ /** Whether it has an expandable content */
44
43
  private get _hasContent();
44
+ private get _group();
45
45
  connectedCallback(): void;
46
+ disconnectedCallback(): void;
46
47
  protected willUpdate(changedProperties: PropertyValues<this>): void;
47
48
  protected firstUpdated(changedProperties: PropertyValues<this>): void;
48
49
  private _updateState;
49
50
  private _open;
50
51
  private _close;
51
52
  private _initFromInput;
53
+ /**
54
+ * Set the data-size in two cases:
55
+ * - if there's no group, so the size change comes directly from a change on the inner panel;
56
+ * - if there's a wrapper group and its size changes, syncing it with the panel size.
57
+ *
58
+ * On the other hand, if there's a wrapper group and the size changes on the inner panel, the data-size doesn't change.
59
+ */
60
+ private _onSizeAttributesChange;
52
61
  private _onInputStateChange;
53
62
  private _onAnimationEnd;
54
63
  private _updateExpandedLabel;
@@ -1 +1 @@
1
- {"version":3,"file":"selection-expansion-panel.d.ts","sourceRoot":"","sources":["../../../src/elements/selection-expansion-panel/selection-expansion-panel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAcvC,OAAO,eAAe,CAAC;;AAEvB;;;;;;;;;GASG;AACH,qBAEa,iCAAkC,SAAQ,sCAA6B;IAElF,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAK1C;IAEX,yCAAyC;IACtB,KAAK,EAAE,OAAO,GAAG,MAAM,CAAW;IAErD,qDAAqD;IACQ,SAAS,UAAS;IAE/E,iDAAiD;IACE,UAAU,UAAS;IAEtE,wCAAwC;IAExC,OAAO,KAAK,MAAM,QAEjB;IACD,OAAO,KAAK,MAAM,GAEjB;IAED,8CAA8C;IAC9C,OAAO,KAAK,QAAQ,QAEnB;IACD,OAAO,KAAK,QAAQ,GAEnB;IAED,+CAA+C;IAC/C,OAAO,KAAK,SAAS,QAEpB;IAED,wEAAwE;IACxE,OAAO,CAAC,SAAS,CAGf;IAEF,oDAAoD;IACpD,OAAO,CAAC,QAAQ,CAGd;IAEF,wEAAwE;IACxE,OAAO,CAAC,UAAU,CAGhB;IAEF,oDAAoD;IACpD,OAAO,CAAC,SAAS,CAGf;IAEF,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,YAAY,CAAkB;IAEtC;;OAEG;IACH,OAAO,KAAK,WAAW,GAGtB;IAEe,iBAAiB,IAAI,IAAI;cAUtB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAQzD,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAM9E,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,KAAK;IAcb,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,eAAe;YAUT,oBAAoB;cAoBf,MAAM,IAAI,cAAc;CAmB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,+BAA+B,EAAE,iCAAiC,CAAC;KACpE;CACF"}
1
+ {"version":3,"file":"selection-expansion-panel.d.ts","sourceRoot":"","sources":["../../../src/elements/selection-expansion-panel/selection-expansion-panel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAevC,OAAO,eAAe,CAAC;;AAEvB;;;;;;;;;GASG;AACH,qBAEa,iCAAkC,SAAQ,sCAA6B;IAElF,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAK1C;IAEX,yCAAyC;IACtB,KAAK,EAAE,OAAO,GAAG,MAAM,CAAW;IAErD,qDAAqD;IACQ,SAAS,UAAS;IAE/E,iDAAiD;IACE,UAAU,UAAS;IAEtE,wCAAwC;IAExC,OAAO,KAAK,MAAM,QAEjB;IACD,OAAO,KAAK,MAAM,GAEjB;IAED,8CAA8C;IAC9C,OAAO,KAAK,QAAQ,QAEnB;IACD,OAAO,KAAK,QAAQ,GAEnB;IAED,+CAA+C;IAC/C,OAAO,KAAK,SAAS,QAEpB;IAED,wEAAwE;IACxE,OAAO,CAAC,SAAS,CAGf;IAEF,oDAAoD;IACpD,OAAO,CAAC,QAAQ,CAGd;IAEF,wEAAwE;IACxE,OAAO,CAAC,UAAU,CAGhB;IAEF,oDAAoD;IACpD,OAAO,CAAC,SAAS,CAGf;IAEF,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,sBAAsB,CAE5B;IAEF,2CAA2C;IAC3C,OAAO,KAAK,WAAW,GAGtB;IAED,OAAO,KAAK,MAAM,GAIjB;IAEe,iBAAiB,IAAI,IAAI;IAUzB,oBAAoB,IAAI,IAAI;cAKzB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAQzD,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAM9E,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,KAAK;IAcb,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,cAAc;IAWtB;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,eAAe;YAUT,oBAAoB;cAoBf,MAAM,IAAI,cAAc;CAmB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,+BAA+B,EAAE,iCAAiC,CAAC;KACpE;CACF"}
@@ -1,32 +1,35 @@
1
- import { css as b, LitElement as c, html as h } from "lit";
2
- import { property as d, state as _, customElement as m } from "lit/decorators.js";
3
- import { SbbLanguageController as u, SbbConnectedAbortController as x } from "./core/controllers.js";
4
- import { slotState as v } from "./core/decorators.js";
5
- import { EventEmitter as o } from "./core/eventing.js";
6
- import { i18nExpanded as g, i18nCollapsed as f } from "./core/i18n.js";
1
+ import { css as d, LitElement as c, html as h } from "lit";
2
+ import { property as b, state as u, customElement as _ } from "lit/decorators.js";
3
+ import { SbbLanguageController as m, SbbConnectedAbortController as g } from "./core/controllers.js";
4
+ import { slotState as x } from "./core/decorators.js";
5
+ import { EventEmitter as r } from "./core/eventing.js";
6
+ import { i18nExpanded as v, i18nCollapsed as f } from "./core/i18n.js";
7
7
  import { SbbHydrationMixin as w } from "./core/mixins.js";
8
+ import { AgnosticMutationObserver as y } from "./core/observers.js";
8
9
  import "./divider.js";
9
- const y = b`*,:before,:after{box-sizing:border-box}:host{--sbb-selection-expansion-panel-background: var(--sbb-color-white);--sbb-selection-expansion-panel-border-color: var(--sbb-color-cloud);--sbb-selection-expansion-panel-inner-background: transparent;--sbb-selection-expansion-panel-inner-border-width: 0px;--sbb-selection-expansion-panel-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-4x) );--sbb-selection-expansion-panel-border-width: var(--sbb-border-width-1x);--sbb-selection-expansion-panel-content-visibility: hidden;--sbb-selection-expansion-panel-content-padding-inline: var(--sbb-spacing-responsive-xxs);--sbb-selection-expansion-panel-border-radius: var(--sbb-border-radius-4x);--sbb-focus-outline-color: var(--sbb-focus-outline-color-default);display:contents}:host([color=milk]){--sbb-selection-expansion-panel-background: var(--sbb-color-milk)}:host([data-checked]:not([data-disabled])){--sbb-selection-expansion-panel-border-color: var(--sbb-color-charcoal);--sbb-selection-expansion-panel-border-width: var(--sbb-border-width-2x)}:host([data-slot-names~=content][data-disabled]){--sbb-selection-expansion-panel-border-color: var(--sbb-color-cloud)}:host([borderless]:not([data-checked])){--sbb-selection-expansion-panel-border-color: transparent}:host([data-slot-names~=content]:where([data-state=opening],[data-state=opened])){--sbb-selection-expansion-panel-content-visibility: visible;--sbb-selection-expansion-panel-content-padding-block-end: var(--sbb-spacing-responsive-xs)}.sbb-selection-expansion-panel{flex:auto;position:relative;width:100%;background-color:var(--sbb-selection-expansion-panel-background);border-radius:var(--sbb-selection-expansion-panel-border-radius);box-shadow:inset 0 0 0 var(--sbb-selection-expansion-panel-border-width) var(--sbb-selection-expansion-panel-border-color);transition-duration:var(--sbb-selection-expansion-panel-animation-duration);transition-timing-function:var(--sbb-animation-easing);transition-property:box-shadow}@media (forced-colors: active){.sbb-selection-expansion-panel:after{content:"";display:block;position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border:var(--sbb-selection-expansion-panel-border-width) solid var(--sbb-selection-expansion-panel-border-color);border-radius:var(--sbb-selection-expansion-panel-border-radius)}}.sbb-selection-expansion-panel__content--wrapper{display:grid;visibility:var(--sbb-selection-expansion-panel-content-visibility);grid-template-rows:0fr;opacity:0}:host([data-state=opened]) .sbb-selection-expansion-panel__content--wrapper{grid-template-rows:1fr;opacity:1}:host([data-state=opening]) .sbb-selection-expansion-panel__content--wrapper{animation-name:open,open-opacity;animation-fill-mode:forwards;animation-duration:var(--sbb-selection-expansion-panel-animation-duration);animation-timing-function:var(--sbb-animation-easing);animation-delay:0s,var(--sbb-selection-expansion-panel-animation-duration)}:host([data-state=closing]) .sbb-selection-expansion-panel__content--wrapper{animation-name:close;animation-duration:var(--sbb-selection-expansion-panel-animation-duration);animation-timing-function:var(--sbb-animation-easing)}:host(:not([data-slot-names~=content])) .sbb-selection-expansion-panel__content--wrapper{display:none}.sbb-selection-expansion-panel__content{overflow:hidden;padding-inline:var(--sbb-selection-expansion-panel-content-padding-inline);padding-block-end:var(--sbb-selection-expansion-panel-content-padding-block-end);transition:padding var(--sbb-selection-expansion-panel-animation-duration) var(--sbb-animation-easing)}sbb-divider{margin-block-end:var(--sbb-spacing-responsive-xxs)}@keyframes open{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}@keyframes open-opacity{0%{opacity:0}to{opacity:1}}@keyframes close{0%{grid-template-rows:1fr;opacity:1}to{grid-template-rows:0fr;opacity:0}}`;
10
- var k = Object.defineProperty, C = Object.getOwnPropertyDescriptor, s = (e, n, r, a) => {
11
- for (var i = a > 1 ? void 0 : a ? C(n, r) : n, l = e.length - 1, p; l >= 0; l--)
12
- (p = e[l]) && (i = (a ? p(n, r, i) : p(i)) || i);
13
- return a && i && k(n, r, i), i;
10
+ const k = d`*,:before,:after{box-sizing:border-box}:host{--sbb-selection-expansion-panel-background: var(--sbb-color-white);--sbb-selection-expansion-panel-border-color: var(--sbb-color-cloud);--sbb-selection-expansion-panel-inner-background: transparent;--sbb-selection-expansion-panel-inner-border-width: 0px;--sbb-selection-expansion-panel-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-4x) );--sbb-selection-expansion-panel-border-width: var(--sbb-border-width-1x);--sbb-selection-expansion-panel-content-visibility: hidden;--sbb-selection-expansion-panel-content-padding-inline: var(--sbb-spacing-responsive-xxs);--sbb-selection-expansion-panel-border-radius: var(--sbb-border-radius-4x);--sbb-focus-outline-color: var(--sbb-focus-outline-color-default);display:contents}:host([data-size=s]){--sbb-selection-expansion-panel-content-padding-inline: var(--sbb-spacing-responsive-xxxs)}:host([color=milk]){--sbb-selection-expansion-panel-background: var(--sbb-color-milk)}:host([data-checked]:not([data-disabled])){--sbb-selection-expansion-panel-border-color: var(--sbb-color-charcoal);--sbb-selection-expansion-panel-border-width: var(--sbb-border-width-2x)}:host([data-slot-names~=content][data-disabled]){--sbb-selection-expansion-panel-border-color: var(--sbb-color-cloud)}:host([borderless]:not([data-checked])){--sbb-selection-expansion-panel-border-color: transparent}:host([data-slot-names~=content]:where([data-state=opening],[data-state=opened])){--sbb-selection-expansion-panel-content-visibility: visible;--sbb-selection-expansion-panel-content-padding-block-end: var(--sbb-spacing-responsive-xs)}.sbb-selection-expansion-panel{flex:auto;position:relative;width:100%;background-color:var(--sbb-selection-expansion-panel-background);border-radius:var(--sbb-selection-expansion-panel-border-radius);box-shadow:inset 0 0 0 var(--sbb-selection-expansion-panel-border-width) var(--sbb-selection-expansion-panel-border-color);transition-duration:var(--sbb-selection-expansion-panel-animation-duration);transition-timing-function:var(--sbb-animation-easing);transition-property:box-shadow}@media (forced-colors: active){.sbb-selection-expansion-panel:after{content:"";display:block;position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border:var(--sbb-selection-expansion-panel-border-width) solid var(--sbb-selection-expansion-panel-border-color);border-radius:var(--sbb-selection-expansion-panel-border-radius)}}.sbb-selection-expansion-panel__content--wrapper{display:grid;visibility:var(--sbb-selection-expansion-panel-content-visibility);grid-template-rows:0fr;opacity:0}:host([data-state=opened]) .sbb-selection-expansion-panel__content--wrapper{grid-template-rows:1fr;opacity:1}:host([data-state=opening]) .sbb-selection-expansion-panel__content--wrapper{animation-name:open,open-opacity;animation-fill-mode:forwards;animation-duration:var(--sbb-selection-expansion-panel-animation-duration);animation-timing-function:var(--sbb-animation-easing);animation-delay:0s,var(--sbb-selection-expansion-panel-animation-duration)}:host([data-state=closing]) .sbb-selection-expansion-panel__content--wrapper{animation-name:close;animation-duration:var(--sbb-selection-expansion-panel-animation-duration);animation-timing-function:var(--sbb-animation-easing)}:host(:not([data-slot-names~=content])) .sbb-selection-expansion-panel__content--wrapper{display:none}.sbb-selection-expansion-panel__content{overflow:hidden;padding-inline:var(--sbb-selection-expansion-panel-content-padding-inline);padding-block-end:var(--sbb-selection-expansion-panel-content-padding-block-end);transition:padding var(--sbb-selection-expansion-panel-animation-duration) var(--sbb-animation-easing)}sbb-divider{margin-block-end:var(--sbb-spacing-responsive-xxs)}@keyframes open{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}@keyframes open-opacity{0%{opacity:0}to{opacity:1}}@keyframes close{0%{grid-template-rows:1fr;opacity:1}to{grid-template-rows:0fr;opacity:0}}`;
11
+ var C = Object.defineProperty, O = Object.getOwnPropertyDescriptor, a = (e, t, o, i) => {
12
+ for (var s = i > 1 ? void 0 : i ? O(t, o) : t, l = e.length - 1, p; l >= 0; l--)
13
+ (p = e[l]) && (s = (i ? p(t, o, s) : p(s)) || s);
14
+ return i && s && C(t, o, s), s;
14
15
  };
15
- let t = class extends w(c) {
16
+ let n = class extends w(c) {
16
17
  constructor() {
17
- super(...arguments), this.color = "white", this.forceOpen = !1, this.borderless = !1, this._willOpen = new o(
18
+ super(...arguments), this.color = "white", this.forceOpen = !1, this.borderless = !1, this._willOpen = new r(
18
19
  this,
19
- t.events.willOpen
20
- ), this._didOpen = new o(
20
+ n.events.willOpen
21
+ ), this._didOpen = new r(
21
22
  this,
22
- t.events.didOpen
23
- ), this._willClose = new o(
23
+ n.events.didOpen
24
+ ), this._willClose = new r(
24
25
  this,
25
- t.events.willClose
26
- ), this._didClose = new o(
26
+ n.events.willClose
27
+ ), this._didClose = new r(
27
28
  this,
28
- t.events.didClose
29
- ), this._language = new u(this), this._abort = new x(this), this._initialized = !1;
29
+ n.events.didClose
30
+ ), this._language = new m(this), this._abort = new g(this), this._initialized = !1, this._sizeAttributeObserver = new y(
31
+ (e) => this._onSizeAttributesChange(e)
32
+ );
30
33
  }
31
34
  set _state(e) {
32
35
  this.setAttribute("data-state", e);
@@ -45,18 +48,22 @@ let t = class extends w(c) {
45
48
  set _disabled(e) {
46
49
  this.toggleAttribute("data-disabled", e);
47
50
  }
48
- /**
49
- * Whether it has an expandable content
50
- */
51
+ /** Whether it has an expandable content */
51
52
  get _hasContent() {
52
53
  var e;
53
54
  return ((e = this.querySelectorAll) == null ? void 0 : e.call(this, '[slot="content"]').length) > 0;
54
55
  }
56
+ get _group() {
57
+ return this.closest("sbb-radio-button-group, sbb-checkbox-group");
58
+ }
55
59
  connectedCallback() {
56
60
  super.connectedCallback(), this.addEventListener("panelConnected", this._initFromInput.bind(this), {
57
61
  signal: this._abort.signal
58
62
  }), this._state || (this._state = "closed");
59
63
  }
64
+ disconnectedCallback() {
65
+ super.disconnectedCallback(), this._sizeAttributeObserver.disconnect();
66
+ }
60
67
  willUpdate(e) {
61
68
  super.willUpdate(e), e.has("forceOpen") && this._updateState();
62
69
  }
@@ -73,8 +80,22 @@ let t = class extends w(c) {
73
80
  this._state !== "opened" && this._state !== "opening" || (this._state = "closing", this._willClose.emit());
74
81
  }
75
82
  _initFromInput(e) {
76
- const n = e.target;
77
- this._checked = n.checked, this._disabled = n.disabled, this._updateState();
83
+ const t = e.target;
84
+ this._checked = t.checked, this._disabled = t.disabled, this._sizeAttributeObserver.disconnect(), this._sizeAttributeObserver.observe(t, { attributeFilter: ["size"] }), this._updateState();
85
+ }
86
+ /**
87
+ * Set the data-size in two cases:
88
+ * - if there's no group, so the size change comes directly from a change on the inner panel;
89
+ * - if there's a wrapper group and its size changes, syncing it with the panel size.
90
+ *
91
+ * On the other hand, if there's a wrapper group and the size changes on the inner panel, the data-size doesn't change.
92
+ */
93
+ _onSizeAttributesChange(e) {
94
+ for (const t of e)
95
+ if (t.attributeName === "size") {
96
+ const o = this._group, i = t.target.getAttribute("size");
97
+ (!o || o.size === i) && this.setAttribute("data-size", i);
98
+ }
78
99
  }
79
100
  _onInputStateChange(e) {
80
101
  if (e.detail.type === "disabled") {
@@ -89,15 +110,15 @@ let t = class extends w(c) {
89
110
  }
90
111
  async _updateExpandedLabel(e) {
91
112
  await this.hydrationComplete;
92
- const n = this.querySelector(
113
+ const t = this.querySelector(
93
114
  "sbb-radio-button-panel, sbb-checkbox-panel"
94
115
  );
95
- if (n) {
116
+ if (t) {
96
117
  if (!this._hasContent) {
97
- n.expansionState = "";
118
+ t.expansionState = "";
98
119
  return;
99
120
  }
100
- n.expansionState = e ? ", " + g[this._language.current] : ", " + f[this._language.current];
121
+ t.expansionState = e ? ", " + v[this._language.current] : ", " + f[this._language.current];
101
122
  }
102
123
  }
103
124
  render() {
@@ -120,29 +141,29 @@ let t = class extends w(c) {
120
141
  `;
121
142
  }
122
143
  };
123
- t.styles = y;
124
- t.events = {
144
+ n.styles = k;
145
+ n.events = {
125
146
  willOpen: "willOpen",
126
147
  didOpen: "didOpen",
127
148
  willClose: "willClose",
128
149
  didClose: "didClose"
129
150
  };
130
- s([
131
- d()
132
- ], t.prototype, "color", 2);
133
- s([
134
- d({ attribute: "force-open", type: Boolean })
135
- ], t.prototype, "forceOpen", 2);
136
- s([
137
- d({ reflect: !0, type: Boolean })
138
- ], t.prototype, "borderless", 2);
139
- s([
140
- _()
141
- ], t.prototype, "_state", 1);
142
- t = s([
143
- m("sbb-selection-expansion-panel"),
144
- v()
145
- ], t);
151
+ a([
152
+ b()
153
+ ], n.prototype, "color", 2);
154
+ a([
155
+ b({ attribute: "force-open", type: Boolean })
156
+ ], n.prototype, "forceOpen", 2);
157
+ a([
158
+ b({ reflect: !0, type: Boolean })
159
+ ], n.prototype, "borderless", 2);
160
+ a([
161
+ u()
162
+ ], n.prototype, "_state", 1);
163
+ n = a([
164
+ _("sbb-selection-expansion-panel"),
165
+ x()
166
+ ], n);
146
167
  export {
147
- t as SbbSelectionExpansionPanelElement
168
+ n as SbbSelectionExpansionPanelElement
148
169
  };
@@ -1 +1 @@
1
- {"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../../src/elements/slider/slider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAQ,UAAU,EAAW,MAAM,KAAK,CAAC;AAahD,OAAO,YAAY,CAAC;;AAEpB;;;;;;GAMG;AACH,qBAIa,gBAAiB,SAAQ,qBAA0C;IAC9E,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;MAElB;IAEX,4CAA4C;IACzB,KAAK,CAAC,EAAE,MAAM,CAAM;IAEvC,oDAAoD;IACa,aAAa,CAAC,EAAE,MAAM,CAAC;IAExF,0CAA0C;IACN,IAAI,CAAC,EAAE,MAAM,CAAM;IAEvD,uEAAuE;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IAEjC,+DAA+D;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAO;IAEtC,+DAA+D;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAS;IAExC;;;OAGG;IACiC,QAAQ,CAAC,EAAE,OAAO,CAAS;IAE/D,6FAA6F;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEjE,2FAA2F;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IAE7D;;;OAGG;IACM,OAAO,CAAC,cAAc,CAAK;IAEpC;;OAEG;IACH,OAAO,CAAC,UAAU,CAGf;IAEH,iEAAiE;IACjE,OAAO,CAAC,WAAW,CAAoB;IAEvC,OAAO,CAAC,MAAM,CAAyC;IAEvC,iBAAiB,IAAI,IAAI;cAOtB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAoB5E,OAAO,CAAC,WAAW;IAYnB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;YAqBP,cAAc;IAgC5B,8BAA8B;IAC9B,OAAO,CAAC,WAAW;cAKA,MAAM,IAAI,cAAc;CAqC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,YAAY,EAAE,gBAAgB,CAAC;KAChC;CACF"}
1
+ {"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../../src/elements/slider/slider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAQ,UAAU,EAAW,MAAM,KAAK,CAAC;AAahD,OAAO,YAAY,CAAC;;AAEpB;;;;;;GAMG;AACH,qBAIa,gBAAiB,SAAQ,qBAA2C;IAC/E,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;MAElB;IAEX,4CAA4C;IACzB,KAAK,CAAC,EAAE,MAAM,CAAM;IAEvC,oDAAoD;IACa,aAAa,CAAC,EAAE,MAAM,CAAC;IAExF,0CAA0C;IACN,IAAI,CAAC,EAAE,MAAM,CAAM;IAEvD,uEAAuE;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IAEjC,+DAA+D;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAO;IAEtC,+DAA+D;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAS;IAExC;;;OAGG;IACiC,QAAQ,CAAC,EAAE,OAAO,CAAS;IAE/D,6FAA6F;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEjE,2FAA2F;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IAE7D;;;OAGG;IACM,OAAO,CAAC,cAAc,CAAK;IAEpC;;OAEG;IACH,OAAO,CAAC,UAAU,CAGf;IAEH,iEAAiE;IACjE,OAAO,CAAC,WAAW,CAAoB;IAEvC,OAAO,CAAC,MAAM,CAAyC;IAEvC,iBAAiB,IAAI,IAAI;cAOtB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IA4B5E,OAAO,CAAC,WAAW;IAYnB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;YAqBP,cAAc;IAgC5B,8BAA8B;IAC9B,OAAO,CAAC,WAAW;cAKA,MAAM,IAAI,cAAc;CAqC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,YAAY,EAAE,gBAAgB,CAAC;KAChC;CACF"}
package/slider.js CHANGED
@@ -6,7 +6,7 @@ import { SbbConnectedAbortController as g } from "./core/controllers.js";
6
6
  import { hostAttributes as y } from "./core/decorators.js";
7
7
  import { setOrRemoveAttribute as n } from "./core/dom.js";
8
8
  import { EventEmitter as w, forwardEventToHost as k } from "./core/eventing.js";
9
- import { SbbDisabledTabIndexActionMixin as x } from "./core/mixins.js";
9
+ import { SbbFocusableDisabledActionMixin as x } from "./core/mixins.js";
10
10
  import "./icon.js";
11
11
  const I = u`@charset "UTF-8";*,:before,:after{box-sizing:border-box}:host{outline:none!important;display:inline-block;min-width:9.375rem;width:min(25rem,100%);--sbb-slider-line-height: .25rem;--sbb-slider-value-fraction: 0;--sbb-slider-knob-size: 1.75rem;--sbb-slider-knob-size-active: 1.9375rem;--sbb-slider-knob-border-size: .1875rem;--sbb-slider-knob-border-style: solid;--sbb-slider-knob-color: var(--sbb-color-white);--sbb-slider-knob-border-color: var(--sbb-color-red);--sbb-slider-icon-color: var(--sbb-color-black);--sbb-slider-selected-line-color: var(--sbb-color-red);--sbb-slider-selected-line-disabled-color: var(--sbb-color-smoke);--sbb-slider-line-color: var(--sbb-color-smoke);--sbb-slider-line-disabled-color: var(--sbb-color-graphite)}@media (forced-colors: active){:host{--sbb-slider-selected-line-color: Highlight;--sbb-slider-line-color: CanvasText}}:host([disabled]){--sbb-slider-icon-color: var(--sbb-color-graphite);--sbb-slider-knob-border-color: var(--sbb-color-smoke);--sbb-slider-knob-border-size: var(--sbb-border-width-2x);--sbb-slider-knob-border-style: dashed}:host([readonly]){--sbb-slider-icon-color: var(--sbb-color-smoke);--sbb-slider-knob-border-color: var(--sbb-slider-selected-line-disabled-color)}:host([disabled]),:host([readonly]){--sbb-slider-line-color: var(--sbb-slider-line-disabled-color);--sbb-slider-selected-line-color: var(--sbb-slider-selected-line-disabled-color)}@media (forced-colors: active){:host([disabled]),:host([readonly]){--sbb-slider-icon-color: GrayText;--sbb-slider-selected-line-disabled-color: GrayText;--sbb-slider-line-disabled-color: GrayText}}.sbb-slider__height-container{display:flex;flex-direction:column}.sbb-slider__height-container:before{content:"​";-webkit-user-select:none;user-select:none;width:0;height:0}.sbb-slider__wrapper{display:flex;gap:var(--sbb-spacing-fixed-2x);padding-block:calc(var(--sbb-spacing-fixed-1x) / 2);color:var(--sbb-slider-icon-color)}.sbb-slider__container{position:relative;min-height:var(--sbb-size-icon-ui-small);flex-grow:1}.sbb-slider__range-input{position:absolute;width:100%;top:0;right:0;bottom:0;left:0;opacity:0;margin:0}.sbb-slider__line{position:absolute;top:50%;transform:translateY(-50%);height:var(--sbb-slider-line-height);width:100%;background-color:var(--sbb-slider-line-color);border-radius:var(--sbb-slider-line-height);overflow:hidden;pointer-events:none}.sbb-slider__selected-line{position:relative;height:100%;background-color:var(--sbb-slider-selected-line-color);width:calc(var(--sbb-slider-value-fraction) * 100%)}.sbb-slider__knob{position:absolute;top:50%;transform:translateY(-50%);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);width:var(--sbb-slider-knob-size);height:var(--sbb-slider-knob-size);inset-inline-start:calc(var(--sbb-slider-value-fraction) * 100% - var(--sbb-slider-knob-size) * var(--sbb-slider-value-fraction));transition-property:width,height;transition-duration:var(--sbb-disable-animation-zero-time, var(--sbb-animation-duration-1x));transition-timing-function:ease-in;background-color:var(--sbb-slider-knob-color);border:var(--sbb-slider-knob-border-size) var(--sbb-slider-knob-border-style) var(--sbb-slider-knob-border-color);border-radius:50%;pointer-events:none}:host(:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch])) .sbb-slider__knob{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width);--sbb-slider-knob-size: var(--sbb-slider-knob-size-active)}:host(:not(:is([disabled],[readonly]))) .sbb-slider__range-input:active~.sbb-slider__knob{--sbb-slider-knob-size: var(--sbb-slider-knob-size-active)}`;
12
12
  var C = Object.defineProperty, A = Object.getOwnPropertyDescriptor, r = (e, o, l, a) => {
@@ -27,7 +27,7 @@ let s = class extends x(v) {
27
27
  this.addEventListener("keydown", (o) => this._handleKeydown(o), { signal: e }), this._handleChange();
28
28
  }
29
29
  willUpdate(e) {
30
- super.willUpdate(e), e.has("value") ? this._handleChange(Number(this.value)) : e.has("valueAsNumber") && this._handleChange(Number(this.valueAsNumber)), e.has("min") && n(this, "aria-valuemin", this.min ?? null), e.has("max") && n(this, "aria-valuemax", this.max ?? null), e.has("readonly") && n(this, "aria-readonly", this.readonly ? "true" : null);
30
+ super.willUpdate(e), e.has("disabled") && (this.disabled ? this.removeAttribute("tabindex") : this.setAttribute("tabindex", "0")), e.has("value") ? this._handleChange(Number(this.value)) : e.has("valueAsNumber") && this._handleChange(Number(this.valueAsNumber)), e.has("min") && n(this, "aria-valuemin", this.min ?? null), e.has("max") && n(this, "aria-valuemax", this.max ?? null), e.has("readonly") && n(this, "aria-readonly", this.readonly ? "true" : null);
31
31
  }
32
32
  _syncValues(e) {
33
33
  e != null && (e && typeof e != "number" && (e = +e), this.value = e.toString(), this.valueAsNumber = e, n(this, "aria-valuenow", this.value || null));