@sbb-esta/lyne-elements 0.52.1 → 0.53.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/accordion.js +54 -54
  2. package/action-group.js +3 -3
  3. package/alert/alert-group.js +22 -22
  4. package/alert/alert.js +22 -22
  5. package/autocomplete.js +126 -126
  6. package/breadcrumb/breadcrumb-group.js +60 -60
  7. package/breadcrumb/breadcrumb.js +17 -17
  8. package/calendar.js +423 -423
  9. package/card/card-badge.js +17 -17
  10. package/card/card.js +2 -2
  11. package/card/common.js +30 -30
  12. package/checkbox/checkbox/checkbox.d.ts +3 -46
  13. package/checkbox/checkbox/checkbox.d.ts.map +1 -1
  14. package/checkbox/checkbox-group/checkbox-group.d.ts +4 -2
  15. package/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
  16. package/checkbox/checkbox-group.js +26 -23
  17. package/checkbox/checkbox-panel/checkbox-panel.d.ts +41 -0
  18. package/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -0
  19. package/checkbox/checkbox-panel.d.ts +2 -0
  20. package/checkbox/checkbox-panel.d.ts.map +1 -0
  21. package/checkbox/checkbox-panel.js +67 -0
  22. package/checkbox/checkbox.js +27 -104
  23. package/checkbox/common/checkbox-common.d.ts +13 -0
  24. package/checkbox/common/checkbox-common.d.ts.map +1 -0
  25. package/checkbox/common.d.ts +2 -0
  26. package/checkbox/common.d.ts.map +1 -0
  27. package/checkbox/common.js +52 -0
  28. package/checkbox.d.ts +2 -0
  29. package/checkbox.d.ts.map +1 -1
  30. package/checkbox.js +2 -0
  31. package/clock.js +83 -83
  32. package/container/sticky-bar.js +16 -16
  33. package/core/a11y.js +91 -91
  34. package/core/base-elements.js +86 -86
  35. package/core/controllers.js +40 -40
  36. package/core/datetime.js +32 -32
  37. package/core/dom.js +26 -26
  38. package/core/eventing.js +33 -33
  39. package/core/mixins/panel-mixin.d.ts +13 -0
  40. package/core/mixins/panel-mixin.d.ts.map +1 -0
  41. package/core/mixins.d.ts +1 -0
  42. package/core/mixins.d.ts.map +1 -1
  43. package/core/mixins.js +170 -139
  44. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables_css--mixin.scss +1 -1
  45. package/core/testing.js +29 -29
  46. package/core.css +1 -1
  47. package/custom-elements.json +8862 -6904
  48. package/datepicker/common.js +55 -55
  49. package/datepicker/datepicker-toggle.js +94 -94
  50. package/datepicker/datepicker.js +144 -144
  51. package/development/checkbox/checkbox/checkbox.d.ts +3 -46
  52. package/development/checkbox/checkbox/checkbox.d.ts.map +1 -1
  53. package/development/checkbox/checkbox-group/checkbox-group.d.ts +4 -2
  54. package/development/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
  55. package/development/checkbox/checkbox-group.js +43 -13
  56. package/development/checkbox/checkbox-panel/checkbox-panel.d.ts +41 -0
  57. package/development/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -0
  58. package/development/checkbox/checkbox-panel.d.ts +2 -0
  59. package/development/checkbox/checkbox-panel.d.ts.map +1 -0
  60. package/development/checkbox/checkbox-panel.js +86 -0
  61. package/development/checkbox/checkbox.js +19 -239
  62. package/development/checkbox/common/checkbox-common.d.ts +13 -0
  63. package/development/checkbox/common/checkbox-common.d.ts.map +1 -0
  64. package/development/checkbox/common.d.ts +2 -0
  65. package/development/checkbox/common.d.ts.map +1 -0
  66. package/development/checkbox/common.js +156 -0
  67. package/development/checkbox.d.ts +2 -0
  68. package/development/checkbox.d.ts.map +1 -1
  69. package/development/checkbox.js +3 -1
  70. package/development/core/mixins/panel-mixin.d.ts +13 -0
  71. package/development/core/mixins/panel-mixin.d.ts.map +1 -0
  72. package/development/core/mixins.d.ts +1 -0
  73. package/development/core/mixins.d.ts.map +1 -1
  74. package/development/core/mixins.js +187 -31
  75. package/development/image.js +1 -1
  76. package/development/radio-button/common/radio-button-common.d.ts +22 -0
  77. package/development/radio-button/common/radio-button-common.d.ts.map +1 -0
  78. package/development/radio-button/common.d.ts +2 -0
  79. package/development/radio-button/common.d.ts.map +1 -0
  80. package/development/radio-button/common.js +294 -0
  81. package/development/radio-button/radio-button/radio-button.d.ts +2 -81
  82. package/development/radio-button/radio-button/radio-button.d.ts.map +1 -1
  83. package/development/radio-button/radio-button-group/radio-button-group.d.ts +6 -4
  84. package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  85. package/development/radio-button/radio-button-group.js +55 -23
  86. package/development/radio-button/radio-button-panel/index.d.ts +2 -0
  87. package/development/radio-button/radio-button-panel/index.d.ts.map +1 -0
  88. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts +29 -0
  89. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -0
  90. package/development/radio-button/radio-button-panel.d.ts +2 -0
  91. package/development/radio-button/radio-button-panel.d.ts.map +1 -0
  92. package/development/radio-button/radio-button-panel.js +69 -0
  93. package/development/radio-button/radio-button.js +10 -324
  94. package/development/radio-button.d.ts +2 -0
  95. package/development/radio-button.d.ts.map +1 -1
  96. package/development/radio-button.js +3 -1
  97. package/{selection-panel/selection-panel.d.ts → development/selection-expansion-panel/selection-expansion-panel.d.ts} +9 -7
  98. package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -0
  99. package/development/selection-expansion-panel.d.ts +2 -0
  100. package/development/selection-expansion-panel.d.ts.map +1 -0
  101. package/development/selection-expansion-panel.js +340 -0
  102. package/development/tabs/tab/index.d.ts +2 -0
  103. package/development/tabs/tab/index.d.ts.map +1 -0
  104. package/development/tabs/tab/tab.d.ts +24 -0
  105. package/development/tabs/tab/tab.d.ts.map +1 -0
  106. package/development/tabs/tab-group/tab-group.d.ts +20 -15
  107. package/development/tabs/tab-group/tab-group.d.ts.map +1 -1
  108. package/development/tabs/tab-group.js +24 -14
  109. package/development/tabs/{tab-title/tab-title.d.ts → tab-label/tab-label.d.ts} +4 -4
  110. package/development/tabs/{tab-title/tab-title.d.ts.map → tab-label/tab-label.d.ts.map} +1 -1
  111. package/development/tabs/tab-label.d.ts +2 -0
  112. package/development/tabs/tab-label.d.ts.map +1 -0
  113. package/development/tabs/{tab-title.js → tab-label.js} +86 -86
  114. package/development/tabs/tab.d.ts +2 -0
  115. package/development/tabs/tab.d.ts.map +1 -0
  116. package/development/tabs/tab.js +71 -0
  117. package/development/tabs.d.ts +2 -1
  118. package/development/tabs.d.ts.map +1 -1
  119. package/development/tabs.js +3 -2
  120. package/development/train/train-formation/train-formation.d.ts.map +1 -1
  121. package/development/train/train-formation.js +12 -12
  122. package/dialog/dialog-title.js +20 -20
  123. package/dialog/dialog.js +66 -66
  124. package/expansion-panel/expansion-panel-header.js +20 -20
  125. package/expansion-panel/expansion-panel.js +60 -60
  126. package/file-selector.js +91 -91
  127. package/form-field/form-field-clear.js +12 -12
  128. package/form-field/form-field.js +111 -111
  129. package/header/header.js +53 -53
  130. package/icon.js +107 -107
  131. package/image.js +87 -87
  132. package/index.d.ts +10 -8
  133. package/index.js +10 -8
  134. package/journey-header.js +29 -29
  135. package/map-container.js +23 -23
  136. package/menu/menu.js +91 -91
  137. package/navigation/common.js +16 -16
  138. package/navigation/navigation-marker.js +34 -34
  139. package/navigation/navigation-section.js +83 -83
  140. package/navigation/navigation.js +87 -87
  141. package/notification.js +52 -52
  142. package/option/optgroup.js +45 -45
  143. package/option/option.js +108 -108
  144. package/overlay.js +5 -5
  145. package/package.json +34 -19
  146. package/popover/popover.js +110 -110
  147. package/radio-button/common/radio-button-common.d.ts +22 -0
  148. package/radio-button/common/radio-button-common.d.ts.map +1 -0
  149. package/radio-button/common.d.ts +2 -0
  150. package/radio-button/common.d.ts.map +1 -0
  151. package/radio-button/common.js +105 -0
  152. package/radio-button/radio-button/radio-button.d.ts +2 -81
  153. package/radio-button/radio-button/radio-button.d.ts.map +1 -1
  154. package/radio-button/radio-button-group/radio-button-group.d.ts +6 -4
  155. package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  156. package/radio-button/radio-button-group.js +86 -80
  157. package/radio-button/radio-button-panel/index.d.ts +2 -0
  158. package/radio-button/radio-button-panel/index.d.ts.map +1 -0
  159. package/radio-button/radio-button-panel/radio-button-panel.d.ts +29 -0
  160. package/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -0
  161. package/radio-button/radio-button-panel.d.ts +2 -0
  162. package/radio-button/radio-button-panel.d.ts.map +1 -0
  163. package/radio-button/radio-button-panel.js +59 -0
  164. package/radio-button/radio-button.js +20 -143
  165. package/radio-button.d.ts +2 -0
  166. package/radio-button.d.ts.map +1 -1
  167. package/radio-button.js +2 -0
  168. package/select.js +178 -178
  169. package/{development/selection-panel/selection-panel.d.ts → selection-expansion-panel/selection-expansion-panel.d.ts} +9 -7
  170. package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -0
  171. package/selection-expansion-panel.d.ts +2 -0
  172. package/selection-expansion-panel.d.ts.map +1 -0
  173. package/selection-expansion-panel.js +146 -0
  174. package/slider.js +58 -58
  175. package/standard-theme.css +1 -1
  176. package/status.js +6 -6
  177. package/stepper/step-label.js +19 -19
  178. package/stepper/step.js +31 -31
  179. package/stepper/stepper.js +46 -46
  180. package/tabs/tab/index.d.ts +2 -0
  181. package/tabs/tab/index.d.ts.map +1 -0
  182. package/tabs/tab/tab.d.ts +24 -0
  183. package/tabs/tab/tab.d.ts.map +1 -0
  184. package/tabs/tab-group/tab-group.d.ts +20 -15
  185. package/tabs/tab-group/tab-group.d.ts.map +1 -1
  186. package/tabs/tab-group.js +85 -75
  187. package/tabs/{tab-title/tab-title.d.ts → tab-label/tab-label.d.ts} +4 -4
  188. package/tabs/{tab-title/tab-title.d.ts.map → tab-label/tab-label.d.ts.map} +1 -1
  189. package/tabs/tab-label.d.ts +2 -0
  190. package/tabs/tab-label.d.ts.map +1 -0
  191. package/tabs/tab-label.js +51 -0
  192. package/tabs/tab.d.ts +2 -0
  193. package/tabs/tab.d.ts.map +1 -0
  194. package/tabs/tab.js +41 -0
  195. package/tabs.d.ts +2 -1
  196. package/tabs.d.ts.map +1 -1
  197. package/tabs.js +2 -1
  198. package/tag/tag-group.js +8 -8
  199. package/tag/tag.js +27 -27
  200. package/time-input.js +73 -73
  201. package/timetable-occupancy-icon.js +26 -26
  202. package/timetable-occupancy.js +9 -9
  203. package/toast.js +38 -38
  204. package/toggle/toggle-option.js +33 -33
  205. package/toggle/toggle.js +46 -46
  206. package/train/train-formation/train-formation.d.ts.map +1 -1
  207. package/train/train-formation.js +51 -51
  208. package/train/train-wagon.js +30 -30
  209. package/train/train.js +13 -13
  210. package/development/selection-panel/selection-panel.d.ts.map +0 -1
  211. package/development/selection-panel.d.ts +0 -2
  212. package/development/selection-panel.d.ts.map +0 -1
  213. package/development/selection-panel.js +0 -376
  214. package/development/tabs/tab-title.d.ts +0 -2
  215. package/development/tabs/tab-title.d.ts.map +0 -1
  216. package/development/teaser-hero/teaser-hero.d.ts +0 -26
  217. package/development/teaser-hero/teaser-hero.d.ts.map +0 -1
  218. package/development/teaser-hero.d.ts +0 -2
  219. package/development/teaser-hero.d.ts.map +0 -1
  220. package/development/teaser-hero.js +0 -181
  221. package/development/teaser-paid/teaser-paid.d.ts +0 -20
  222. package/development/teaser-paid/teaser-paid.d.ts.map +0 -1
  223. package/development/teaser-paid.d.ts +0 -2
  224. package/development/teaser-paid.d.ts.map +0 -1
  225. package/development/teaser-paid.js +0 -91
  226. package/selection-panel/selection-panel.d.ts.map +0 -1
  227. package/selection-panel.d.ts +0 -2
  228. package/selection-panel.d.ts.map +0 -1
  229. package/selection-panel.js +0 -138
  230. package/tabs/tab-title.d.ts +0 -2
  231. package/tabs/tab-title.d.ts.map +0 -1
  232. package/tabs/tab-title.js +0 -51
  233. package/teaser-hero/teaser-hero.d.ts +0 -26
  234. package/teaser-hero/teaser-hero.d.ts.map +0 -1
  235. package/teaser-hero.d.ts +0 -2
  236. package/teaser-hero.d.ts.map +0 -1
  237. package/teaser-hero.js +0 -51
  238. package/teaser-paid/teaser-paid.d.ts +0 -20
  239. package/teaser-paid/teaser-paid.d.ts.map +0 -1
  240. package/teaser-paid.d.ts +0 -2
  241. package/teaser-paid.d.ts.map +0 -1
  242. package/teaser-paid.js +0 -28
@@ -1,116 +1,116 @@
1
1
  import { css as c, LitElement as h } from "lit";
2
2
  import { property as r, customElement as x } from "lit/decorators.js";
3
- import { html as u, unsafeStatic as p } from "lit/static-html.js";
4
- import { SbbConnectedAbortController as m } from "../core/controllers.js";
5
- import { EventEmitter as b } from "../core/eventing.js";
6
- import { SbbHydrationMixin as v } from "../core/mixins.js";
7
- const g = c`*,:before,:after{box-sizing:border-box}:host{--sbb-expansion-panel-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-4x) );--sbb-expansion-panel-background-color: var(--sbb-color-white);--sbb-expansion-panel-content-visibility: hidden;--sbb-expansion-panel-border-width: var(--sbb-border-width-1x);--sbb-expansion-panel-border-color: var(--sbb-color-cloud);--sbb-expansion-panel-border-block-start-width: var(--sbb-expansion-panel-border-width);--sbb-expansion-panel-border-block-start-color: var(--sbb-color-cloud);--sbb-expansion-panel-border-radius: var(--sbb-border-radius-4x);--sbb-expansion-panel-start-end-radius: var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-start-start-radius: var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-end-end-radius: var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-end-start-radius: var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-title-gap: var(--sbb-spacing-fixed-4x);--sbb-expansion-panel-icon-size: var(--sbb-size-icon-ui-medium);display:block}:host([size=s]){--sbb-expansion-panel-title-gap: var(--sbb-spacing-fixed-2x)}@media (forced-colors: active){:host([disabled]){--sbb-expansion-panel-border-color: GrayText;--sbb-expansion-panel-border-block-start-color: GrayText}}:host([expanded]){--sbb-expansion-panel-content-visibility: visible}:host([data-accordion][data-accordion-first]){--sbb-expansion-panel-start-end-radius: var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-start-start-radius: var(--sbb-expansion-panel-border-radius)}:host([data-accordion]:not([data-accordion-first])){--sbb-expansion-panel-border-block-start-width: 0;--sbb-expansion-panel-border-block-start-color: transparent;--sbb-expansion-panel-start-end-radius: 0;--sbb-expansion-panel-start-start-radius: 0}:host([data-accordion][data-accordion-last]){--sbb-expansion-panel-end-end-radius: var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-end-start-radius: var(--sbb-expansion-panel-border-radius)}:host([data-accordion]:not([data-accordion-last])){--sbb-expansion-panel-end-end-radius: 0;--sbb-expansion-panel-end-start-radius: 0}:host([color=milk]){--sbb-expansion-panel-background-color: var(--sbb-color-milk)}:host([borderless]){--sbb-expansion-panel-border-width: 0;--sbb-expansion-panel-border-color: transparent;--sbb-expansion-panel-border-block-start-width: 0;--sbb-expansion-panel-border-block-start-color: transparent}@media (forced-colors: active){:host([borderless]){--sbb-expansion-panel-border-width: var(--sbb-border-width-1x);--sbb-expansion-panel-border-block-start-width: var(--sbb-expansion-panel-border-width)}}:host([borderless][data-accordion]:not([data-accordion-first])){--sbb-expansion-panel-border-block-start-width: var(--sbb-spacing-fixed-1x)}@media (forced-colors: active){:host([borderless][data-accordion]:not([data-accordion-first])){--sbb-expansion-panel-border-block-start-width: 0}}:host(:not([disabled])[data-toggle-hover]){--sbb-expansion-panel-background-color: var(--sbb-color-milk)}@media (forced-colors: active){:host(:not([disabled])[data-toggle-hover]){--sbb-expansion-panel-border-color: Highlight;--sbb-expansion-panel-border-block-start-color: Highlight}}:host(:not([disabled])[color=milk][data-toggle-hover]){--sbb-expansion-panel-background-color: var(--sbb-color-white)}.sbb-expansion-panel{background-color:var(--sbb-expansion-panel-background-color);border:var(--sbb-expansion-panel-border-width) solid var(--sbb-expansion-panel-border-color);border-block-start-color:var(--sbb-expansion-panel-border-block-start-color);border-block-start-width:var(--sbb-expansion-panel-border-block-start-width);border-radius:var(--sbb-expansion-panel-start-start-radius) var(--sbb-expansion-panel-start-end-radius) var(--sbb-expansion-panel-end-end-radius) var(--sbb-expansion-panel-end-start-radius);background-clip:padding-box}.sbb-expansion-panel__header{margin:0}.sbb-expansion-panel__content-wrapper{display:grid;visibility:var(--sbb-expansion-panel-content-visibility);grid-template-rows:0fr;opacity:0}:host([data-state=opened]) .sbb-expansion-panel__content-wrapper{grid-template-rows:1fr;opacity:1}:host([data-state=opening]) .sbb-expansion-panel__content-wrapper{animation-name:open,open-opacity;animation-fill-mode:forwards;animation-duration:var(--sbb-expansion-panel-animation-duration);animation-timing-function:var(--sbb-animation-easing);animation-delay:0s,var(--sbb-expansion-panel-animation-duration)}:host([data-state=closing]) .sbb-expansion-panel__content-wrapper{animation-name:close;animation-duration:var(--sbb-expansion-panel-animation-duration);animation-timing-function:var(--sbb-animation-easing)}.sbb-expansion-panel__content{overflow:hidden}@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}}`;
8
- var f = Object.defineProperty, w = Object.getOwnPropertyDescriptor, o = (e, a, t, n) => {
9
- for (var i = n > 1 ? void 0 : n ? w(a, t) : a, d = e.length - 1, l; d >= 0; d--)
10
- (l = e[d]) && (i = (n ? l(a, t, i) : l(i)) || i);
11
- return n && i && f(a, t, i), i;
3
+ import { html as _, unsafeStatic as p } from "lit/static-html.js";
4
+ import { SbbConnectedAbortController as u } from "../core/controllers.js";
5
+ import { EventEmitter as d } from "../core/eventing.js";
6
+ import { SbbHydrationMixin as f } from "../core/mixins.js";
7
+ const m = c`*,:before,:after{box-sizing:border-box}:host{--sbb-expansion-panel-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-4x) );--sbb-expansion-panel-background-color: var(--sbb-color-white);--sbb-expansion-panel-content-visibility: hidden;--sbb-expansion-panel-border-width: var(--sbb-border-width-1x);--sbb-expansion-panel-border-color: var(--sbb-color-cloud);--sbb-expansion-panel-border-block-start-width: var(--sbb-expansion-panel-border-width);--sbb-expansion-panel-border-block-start-color: var(--sbb-color-cloud);--sbb-expansion-panel-border-radius: var(--sbb-border-radius-4x);--sbb-expansion-panel-start-end-radius: var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-start-start-radius: var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-end-end-radius: var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-end-start-radius: var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-title-gap: var(--sbb-spacing-fixed-4x);--sbb-expansion-panel-icon-size: var(--sbb-size-icon-ui-medium);display:block}:host([size=s]){--sbb-expansion-panel-title-gap: var(--sbb-spacing-fixed-2x)}@media (forced-colors: active){:host([disabled]){--sbb-expansion-panel-border-color: GrayText;--sbb-expansion-panel-border-block-start-color: GrayText}}:host([expanded]){--sbb-expansion-panel-content-visibility: visible}:host([data-accordion][data-accordion-first]){--sbb-expansion-panel-start-end-radius: var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-start-start-radius: var(--sbb-expansion-panel-border-radius)}:host([data-accordion]:not([data-accordion-first])){--sbb-expansion-panel-border-block-start-width: 0;--sbb-expansion-panel-border-block-start-color: transparent;--sbb-expansion-panel-start-end-radius: 0;--sbb-expansion-panel-start-start-radius: 0}:host([data-accordion][data-accordion-last]){--sbb-expansion-panel-end-end-radius: var(--sbb-expansion-panel-border-radius);--sbb-expansion-panel-end-start-radius: var(--sbb-expansion-panel-border-radius)}:host([data-accordion]:not([data-accordion-last])){--sbb-expansion-panel-end-end-radius: 0;--sbb-expansion-panel-end-start-radius: 0}:host([color=milk]){--sbb-expansion-panel-background-color: var(--sbb-color-milk)}:host([borderless]){--sbb-expansion-panel-border-width: 0;--sbb-expansion-panel-border-color: transparent;--sbb-expansion-panel-border-block-start-width: 0;--sbb-expansion-panel-border-block-start-color: transparent}@media (forced-colors: active){:host([borderless]){--sbb-expansion-panel-border-width: var(--sbb-border-width-1x);--sbb-expansion-panel-border-block-start-width: var(--sbb-expansion-panel-border-width)}}:host([borderless][data-accordion]:not([data-accordion-first])){--sbb-expansion-panel-border-block-start-width: var(--sbb-spacing-fixed-1x)}@media (forced-colors: active){:host([borderless][data-accordion]:not([data-accordion-first])){--sbb-expansion-panel-border-block-start-width: 0}}:host(:not([disabled])[data-toggle-hover]){--sbb-expansion-panel-background-color: var(--sbb-color-milk)}@media (forced-colors: active){:host(:not([disabled])[data-toggle-hover]){--sbb-expansion-panel-border-color: Highlight;--sbb-expansion-panel-border-block-start-color: Highlight}}:host(:not([disabled])[color=milk][data-toggle-hover]){--sbb-expansion-panel-background-color: var(--sbb-color-white)}.sbb-expansion-panel{background-color:var(--sbb-expansion-panel-background-color);border:var(--sbb-expansion-panel-border-width) solid var(--sbb-expansion-panel-border-color);border-block-start-color:var(--sbb-expansion-panel-border-block-start-color);border-block-start-width:var(--sbb-expansion-panel-border-block-start-width);border-radius:var(--sbb-expansion-panel-start-start-radius) var(--sbb-expansion-panel-start-end-radius) var(--sbb-expansion-panel-end-end-radius) var(--sbb-expansion-panel-end-start-radius);background-clip:padding-box}.sbb-expansion-panel__header{margin:0}.sbb-expansion-panel__content-wrapper{display:grid;visibility:var(--sbb-expansion-panel-content-visibility);grid-template-rows:0fr;opacity:0}:host([data-state=opened]) .sbb-expansion-panel__content-wrapper{grid-template-rows:1fr;opacity:1}:host([data-state=opening]) .sbb-expansion-panel__content-wrapper{animation-name:open,open-opacity;animation-fill-mode:forwards;animation-duration:var(--sbb-expansion-panel-animation-duration);animation-timing-function:var(--sbb-animation-easing);animation-delay:0s,var(--sbb-expansion-panel-animation-duration)}:host([data-state=closing]) .sbb-expansion-panel__content-wrapper{animation-name:close;animation-duration:var(--sbb-expansion-panel-animation-duration);animation-timing-function:var(--sbb-animation-easing)}.sbb-expansion-panel__content{overflow:hidden}@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}}`;
8
+ var g = Object.defineProperty, v = Object.getOwnPropertyDescriptor, o = (e, a, t, s) => {
9
+ for (var i = s > 1 ? void 0 : s ? v(a, t) : a, b = e.length - 1, l; b >= 0; b--)
10
+ (l = e[b]) && (i = (s ? l(a, t, i) : l(i)) || i);
11
+ return s && i && g(a, t, i), i;
12
12
  };
13
- let y = 0, s = class extends v(h) {
13
+ let w = 0, n = class extends f(h) {
14
14
  constructor() {
15
- super(...arguments), this.color = "white", this.e = !1, this.d = !1, this.borderless = !1, this.size = "l", this.l = new b(
15
+ super(...arguments), this.color = "white", this._expanded = !1, this._disabled = !1, this.borderless = !1, this.size = "l", this._willOpen = new d(
16
16
  this,
17
- s.events.willOpen
18
- ), this.f = new b(
17
+ n.events.willOpen
18
+ ), this._didOpen = new d(
19
19
  this,
20
- s.events.didOpen
21
- ), this.m = new b(
20
+ n.events.didOpen
21
+ ), this._willClose = new d(
22
22
  this,
23
- s.events.willClose
24
- ), this.n = new b(
23
+ n.events.willClose
24
+ ), this._didClose = new d(
25
25
  this,
26
- s.events.didClose
27
- ), this.g = `-${++y}`, this.o = new m(this), this.h = !1;
26
+ n.events.didClose
27
+ ), this._progressiveId = `-${++w}`, this._abort = new u(this), this._initialized = !1;
28
28
  }
29
29
  set expanded(e) {
30
- this.e = e, this.j();
30
+ this._expanded = e, this._onExpandedChange();
31
31
  }
32
32
  get expanded() {
33
- return this.e;
33
+ return this._expanded;
34
34
  }
35
35
  set disabled(e) {
36
- this.d = e, this.k(this.d);
36
+ this._disabled = e, this._updateDisabledOnHeader(this._disabled);
37
37
  }
38
38
  get disabled() {
39
- return this.d;
39
+ return this._disabled;
40
40
  }
41
41
  /**
42
42
  * The state of the notification.
43
43
  */
44
- set b(e) {
44
+ set _state(e) {
45
45
  this.setAttribute("data-state", e);
46
46
  }
47
- get b() {
47
+ get _state() {
48
48
  return this.getAttribute("data-state");
49
49
  }
50
50
  connectedCallback() {
51
51
  var a;
52
52
  super.connectedCallback();
53
- const e = this.o.signal;
54
- this.addEventListener("toggleExpanded", () => this.p(), { signal: e }), this.toggleAttribute("data-accordion", !!((a = this.closest) != null && a.call(this, "sbb-accordion")));
53
+ const e = this._abort.signal;
54
+ this.addEventListener("toggleExpanded", () => this._toggleExpanded(), { signal: e }), this.toggleAttribute("data-accordion", !!((a = this.closest) != null && a.call(this, "sbb-accordion")));
55
55
  }
56
56
  willUpdate(e) {
57
57
  var a, t;
58
- super.willUpdate(e), e.has("size") && ((a = this.a) == null || a.setAttribute("data-size", String(this.size)), (t = this.c) == null || t.setAttribute("data-size", String(this.size)));
58
+ super.willUpdate(e), e.has("size") && ((a = this._headerRef) == null || a.setAttribute("data-size", String(this.size)), (t = this._contentRef) == null || t.setAttribute("data-size", String(this.size)));
59
59
  }
60
60
  disconnectedCallback() {
61
61
  super.disconnectedCallback(), this.removeAttribute("data-accordion");
62
62
  }
63
63
  firstUpdated(e) {
64
- super.firstUpdated(e), this.h = !0;
64
+ super.firstUpdated(e), this._initialized = !0;
65
65
  }
66
- p() {
66
+ _toggleExpanded() {
67
67
  this.expanded = !this.expanded;
68
68
  }
69
- j() {
69
+ _onExpandedChange() {
70
70
  var e, a;
71
- (e = this.a) == null || e.setAttribute("aria-expanded", String(this.expanded)), (a = this.c) == null || a.setAttribute("aria-hidden", String(!this.expanded)), this.expanded ? this.q(!this.h) : this.b === "opened" && this.r();
71
+ (e = this._headerRef) == null || e.setAttribute("aria-expanded", String(this.expanded)), (a = this._contentRef) == null || a.setAttribute("aria-hidden", String(!this.expanded)), this.expanded ? this._open(!this._initialized) : this._state === "opened" && this._close();
72
72
  }
73
- q(e = !1) {
74
- this.b = "opening", this.l.emit(), e && (this.b = "opened", this.f.emit());
73
+ _open(e = !1) {
74
+ this._state = "opening", this._willOpen.emit(), e && (this._state = "opened", this._didOpen.emit());
75
75
  }
76
- r() {
77
- this.b = "closing", this.m.emit();
76
+ _close() {
77
+ this._state = "closing", this._willClose.emit();
78
78
  }
79
- k(e) {
80
- this.a && (this.a.disabled = e);
79
+ _updateDisabledOnHeader(e) {
80
+ this._headerRef && (this._headerRef.disabled = e);
81
81
  }
82
- i() {
82
+ _handleSlotchange() {
83
83
  const e = Array.from(this.children ?? []), a = e.find(
84
- (n) => n.localName === "sbb-expansion-panel-header"
84
+ (s) => s.localName === "sbb-expansion-panel-header"
85
85
  ), t = e.find(
86
- (n) => n.localName === "sbb-expansion-panel-content"
86
+ (s) => s.localName === "sbb-expansion-panel-content"
87
87
  );
88
- this.a === a && this.c === t || (a && this.a !== a && (a.id || (a.id = `sbb-expansion-panel-header${this.g}`), a.setAttribute("aria-expanded", String(this.expanded)), a.toggleAttribute("disabled", this.disabled), a.setAttribute("data-size", String(this.size))), t && this.c !== t && (t.id || (t.id = `sbb-expansion-panel-content${this.g}`), t.setAttribute("aria-hidden", String(!this.expanded)), t.setAttribute("data-size", String(this.size))), this.a = a, this.c = t, this.a && this.c && (this.a.setAttribute("aria-controls", this.c.id), this.c.setAttribute("aria-labelledby", this.a.id), this.c.toggleAttribute(
88
+ this._headerRef === a && this._contentRef === t || (a && this._headerRef !== a && (a.id || (a.id = `sbb-expansion-panel-header${this._progressiveId}`), a.setAttribute("aria-expanded", String(this.expanded)), a.toggleAttribute("disabled", this.disabled), a.setAttribute("data-size", String(this.size))), t && this._contentRef !== t && (t.id || (t.id = `sbb-expansion-panel-content${this._progressiveId}`), t.setAttribute("aria-hidden", String(!this.expanded)), t.setAttribute("data-size", String(this.size))), this._headerRef = a, this._contentRef = t, this._headerRef && this._contentRef && (this._headerRef.setAttribute("aria-controls", this._contentRef.id), this._contentRef.setAttribute("aria-labelledby", this._headerRef.id), this._contentRef.toggleAttribute(
89
89
  "data-icon-space",
90
- this.a.hasAttribute("data-icon")
90
+ this._headerRef.hasAttribute("data-icon")
91
91
  )));
92
92
  }
93
- s(e) {
94
- e.animationName === "open-opacity" && this.b === "opening" ? (this.b = "opened", this.f.emit()) : e.animationName === "close" && this.b === "closing" && (this.b = "closed", this.n.emit());
93
+ _onAnimationEnd(e) {
94
+ e.animationName === "open-opacity" && this._state === "opening" ? (this._state = "opened", this._didOpen.emit()) : e.animationName === "close" && this._state === "closing" && (this._state = "closed", this._didClose.emit());
95
95
  }
96
96
  render() {
97
97
  const e = this.titleLevel ? `h${this.titleLevel}` : "div";
98
- return u`
98
+ return _`
99
99
  <div class="sbb-expansion-panel">
100
100
  <${p(e)} class="sbb-expansion-panel__header">
101
- <slot name="header" @slotchange=${this.i}></slot>
101
+ <slot name="header" @slotchange=${this._handleSlotchange}></slot>
102
102
  </${p(e)}>
103
- <div class="sbb-expansion-panel__content-wrapper" @animationend=${this.s}>
103
+ <div class="sbb-expansion-panel__content-wrapper" @animationend=${this._onAnimationEnd}>
104
104
  <span class="sbb-expansion-panel__content">
105
- <slot name="content" @slotchange=${this.i}></slot>
105
+ <slot name="content" @slotchange=${this._handleSlotchange}></slot>
106
106
  </span>
107
107
  </div>
108
108
  </div>
109
109
  `;
110
110
  }
111
111
  };
112
- s.styles = g;
113
- s.events = {
112
+ n.styles = m;
113
+ n.events = {
114
114
  willOpen: "willOpen",
115
115
  didOpen: "didOpen",
116
116
  willClose: "willClose",
@@ -118,25 +118,25 @@ s.events = {
118
118
  };
119
119
  o([
120
120
  r({ attribute: "title-level" })
121
- ], s.prototype, "titleLevel", 2);
121
+ ], n.prototype, "titleLevel", 2);
122
122
  o([
123
123
  r()
124
- ], s.prototype, "color", 2);
124
+ ], n.prototype, "color", 2);
125
125
  o([
126
126
  r({ reflect: !0, type: Boolean })
127
- ], s.prototype, "expanded", 1);
127
+ ], n.prototype, "expanded", 1);
128
128
  o([
129
129
  r({ reflect: !0, type: Boolean })
130
- ], s.prototype, "disabled", 1);
130
+ ], n.prototype, "disabled", 1);
131
131
  o([
132
132
  r({ reflect: !0, type: Boolean })
133
- ], s.prototype, "borderless", 2);
133
+ ], n.prototype, "borderless", 2);
134
134
  o([
135
135
  r({ reflect: !0 })
136
- ], s.prototype, "size", 2);
137
- s = o([
136
+ ], n.prototype, "size", 2);
137
+ n = o([
138
138
  x("sbb-expansion-panel")
139
- ], s);
139
+ ], n);
140
140
  export {
141
- s as SbbExpansionPanelElement
141
+ n as SbbExpansionPanelElement
142
142
  };
package/file-selector.js CHANGED
@@ -1,98 +1,98 @@
1
- import { css as g, LitElement as v, nothing as f } from "lit";
2
- import { property as l, state as y, customElement as _ } from "lit/decorators.js";
3
- import { ref as n } from "lit/directives/ref.js";
1
+ import { css as g, LitElement as m, nothing as h } from "lit";
2
+ import { property as r, state as v, customElement as y } from "lit/decorators.js";
3
+ import { ref as b } from "lit/directives/ref.js";
4
4
  import { html as a, unsafeStatic as c } from "lit/static-html.js";
5
- import { sbbInputModalityDetector as m } from "./core/a11y.js";
5
+ import { sbbInputModalityDetector as _ } from "./core/a11y.js";
6
6
  import { SbbLanguageController as x, SbbSlotStateController as $ } from "./core/controllers.js";
7
7
  import { EventEmitter as z } from "./core/eventing.js";
8
- import { i18nFileSelectorCurrentlySelected as u, i18nFileSelectorButtonLabel as p, i18nFileSelectorSubtitleLabel as w, i18nFileSelectorDeleteFile as E } from "./core/i18n.js";
9
- import { SbbDisabledMixin as k } from "./core/mixins.js";
8
+ import { i18nFileSelectorCurrentlySelected as u, i18nFileSelectorButtonLabel as p, i18nFileSelectorSubtitleLabel as E, i18nFileSelectorDeleteFile as w } from "./core/i18n.js";
9
+ import { SbbDisabledMixin as F } from "./core/mixins.js";
10
10
  import "./button/secondary-button.js";
11
11
  import "./button/secondary-button-static.js";
12
12
  import "./icon.js";
13
- const M = g`*,:before,:after{box-sizing:border-box}:host{--sbb-file-selector-color: var(--sbb-color-black);--sbb-file-selector-subtitle-color: var(--sbb-color-granite);--sbb-file-selector-background-color: var(--sbb-color-white);--sbb-file-selector-border-color: var(--sbb-color-cloud);--sbb-file-selector-transition-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-2x) );--sbb-file-selector-transition-easing-function: var(--sbb-animation-easing);display:block;width:20rem}@media (forced-colors: active){:host([disabled]){--sbb-file-selector-color: GrayText;--sbb-file-selector-subtitle-color: GrayText;--sbb-file-selector-border-color: GrayText}}:host([data-active]){--sbb-file-selector-background-color: var(--sbb-color-milk);--sbb-file-selector-border-color: var(--sbb-color-storm)}@media (forced-colors: active){:host([data-active]){--sbb-file-selector-border-color: Highlight}}.sbb-file-selector__input-container{-webkit-tap-highlight-color:transparent;display:flex;flex-direction:column}.sbb-file-selector__visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.sbb-file-selector__dropzone-area{display:flex;flex-direction:column;align-items:center;padding:var(--sbb-spacing-responsive-s);background-color:var(--sbb-file-selector-background-color);border:var(--sbb-border-width-1x) dashed var(--sbb-file-selector-border-color);border-radius:var(--sbb-border-radius-4x);transition-duration:var(--sbb-file-selector-transition-duration);transition-timing-function:var(--sbb-file-selector-transition-easing-function);transition-property:background-color,border-color}.sbb-file-selector__dropzone-area--icon{color:var(--sbb-file-selector-color);line-height:0}.sbb-file-selector__dropzone-area--title{--sbb-title-line-height: var(--sbb-typo-line-height-titles);--sbb-title-margin-block-start: 0;--sbb-title-margin-block-end: 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;margin-block:var(--sbb-title-margin-block-start) var(--sbb-title-margin-block-end);font-family:var(--sbb-typo-font-family);font-weight:700;line-height:var(--sbb-title-line-height);letter-spacing:var(--sbb-typo-letter-spacing-titles);font-size:var(--sbb-title-font-size);--sbb-title-font-size: var(--sbb-font-size-title-6);--sbb-title-line-height: var(--sbb-typo-line-height-body-text);text-align:center;color:var(--sbb-file-selector-color)}.sbb-file-selector__dropzone-area--subtitle{--sbb-text-font-size: var(--sbb-font-size-text-xs);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size);text-align:center;color:var(--sbb-file-selector-subtitle-color);margin-block-end:var(--sbb-spacing-fixed-4x)}.sbb-file-selector__file-list{display:flex;flex-direction:column;row-gap:var(--sbb-spacing-fixed-3x);margin-block:0;padding-inline:0;padding-block:var(--sbb-spacing-fixed-6x) var(--sbb-spacing-fixed-1x)}.sbb-file-selector__file{--sbb-text-font-size: var(--sbb-font-size-text-s);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size);display:flex;gap:var(--sbb-spacing-fixed-4x);align-items:center;justify-content:space-between}.sbb-file-selector__file-details{display:flex;flex:1;justify-content:space-between;gap:var(--sbb-spacing-fixed-4x);overflow:auto}.sbb-file-selector__file-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sbb-file-selector__file-size{white-space:nowrap;color:var(--sbb-color-metal)}:host(:not([data-slot-names~=error])) .sbb-file-selector__error{display:none}`;
14
- var S = Object.defineProperty, P = Object.getOwnPropertyDescriptor, o = (e, t, s, b) => {
15
- for (var r = b > 1 ? void 0 : b ? P(t, s) : t, d = e.length - 1, h; d >= 0; d--)
16
- (h = e[d]) && (r = (b ? h(t, s, r) : h(r)) || r);
17
- return b && r && S(t, s, r), r;
13
+ const k = g`*,:before,:after{box-sizing:border-box}:host{--sbb-file-selector-color: var(--sbb-color-black);--sbb-file-selector-subtitle-color: var(--sbb-color-granite);--sbb-file-selector-background-color: var(--sbb-color-white);--sbb-file-selector-border-color: var(--sbb-color-cloud);--sbb-file-selector-transition-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-2x) );--sbb-file-selector-transition-easing-function: var(--sbb-animation-easing);display:block;width:20rem}@media (forced-colors: active){:host([disabled]){--sbb-file-selector-color: GrayText;--sbb-file-selector-subtitle-color: GrayText;--sbb-file-selector-border-color: GrayText}}:host([data-active]){--sbb-file-selector-background-color: var(--sbb-color-milk);--sbb-file-selector-border-color: var(--sbb-color-storm)}@media (forced-colors: active){:host([data-active]){--sbb-file-selector-border-color: Highlight}}.sbb-file-selector__input-container{-webkit-tap-highlight-color:transparent;display:flex;flex-direction:column}.sbb-file-selector__visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.sbb-file-selector__dropzone-area{display:flex;flex-direction:column;align-items:center;padding:var(--sbb-spacing-responsive-s);background-color:var(--sbb-file-selector-background-color);border:var(--sbb-border-width-1x) dashed var(--sbb-file-selector-border-color);border-radius:var(--sbb-border-radius-4x);transition-duration:var(--sbb-file-selector-transition-duration);transition-timing-function:var(--sbb-file-selector-transition-easing-function);transition-property:background-color,border-color}.sbb-file-selector__dropzone-area--icon{color:var(--sbb-file-selector-color);line-height:0}.sbb-file-selector__dropzone-area--title{--sbb-title-line-height: var(--sbb-typo-line-height-titles);--sbb-title-margin-block-start: 0;--sbb-title-margin-block-end: 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;margin-block:var(--sbb-title-margin-block-start) var(--sbb-title-margin-block-end);font-family:var(--sbb-typo-font-family);font-weight:700;line-height:var(--sbb-title-line-height);letter-spacing:var(--sbb-typo-letter-spacing-titles);font-size:var(--sbb-title-font-size);--sbb-title-font-size: var(--sbb-font-size-title-6);--sbb-title-line-height: var(--sbb-typo-line-height-body-text);text-align:center;color:var(--sbb-file-selector-color)}.sbb-file-selector__dropzone-area--subtitle{--sbb-text-font-size: var(--sbb-font-size-text-xs);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size);text-align:center;color:var(--sbb-file-selector-subtitle-color);margin-block-end:var(--sbb-spacing-fixed-4x)}.sbb-file-selector__file-list{display:flex;flex-direction:column;row-gap:var(--sbb-spacing-fixed-3x);margin-block:0;padding-inline:0;padding-block:var(--sbb-spacing-fixed-6x) var(--sbb-spacing-fixed-1x)}.sbb-file-selector__file{--sbb-text-font-size: var(--sbb-font-size-text-s);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size);display:flex;gap:var(--sbb-spacing-fixed-4x);align-items:center;justify-content:space-between}.sbb-file-selector__file-details{display:flex;flex:1;justify-content:space-between;gap:var(--sbb-spacing-fixed-4x);overflow:auto}.sbb-file-selector__file-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sbb-file-selector__file-size{white-space:nowrap;color:var(--sbb-color-metal)}:host(:not([data-slot-names~=error])) .sbb-file-selector__error{display:none}`;
14
+ var M = Object.defineProperty, D = Object.getOwnPropertyDescriptor, l = (e, t, s, n) => {
15
+ for (var o = n > 1 ? void 0 : n ? D(t, s) : t, f = e.length - 1, d; f >= 0; f--)
16
+ (d = e[f]) && (o = (n ? d(t, s, o) : d(o)) || o);
17
+ return n && o && M(t, s, o), o;
18
18
  };
19
- let i = class extends k(v) {
19
+ let i = class extends F(m) {
20
20
  constructor() {
21
- super(), this.variant = "default", this.size = "m", this.multiple = !1, this.multipleMode = "default", this.h = new z(
21
+ super(), this.variant = "default", this.size = "m", this.multiple = !1, this.multipleMode = "default", this._fileChangedEvent = new z(
22
22
  this,
23
23
  i.events.fileChangedEvent
24
- ), this.d = 0, this.m = ["B", "kB", "MB", "GB", "TB"], this.b = new x(this), new $(this);
24
+ ), this._counter = 0, this._suffixes = ["B", "kB", "MB", "GB", "TB"], this._language = new x(this), new $(this);
25
25
  }
26
26
  /**
27
27
  * Gets the currently selected files.
28
28
  */
29
29
  get files() {
30
- return this.a || [];
30
+ return this._files || [];
31
31
  }
32
32
  /**
33
33
  * @deprecated use 'files' property instead
34
34
  */
35
35
  getFiles() {
36
- return this.a || [];
36
+ return this._files || [];
37
37
  }
38
- e(e) {
38
+ _blockEvent(e) {
39
39
  e.stopPropagation(), e.preventDefault();
40
40
  }
41
- k(e, t) {
41
+ _checkFileEquality(e, t) {
42
42
  return e.name === t.name && e.size === t.size && e.lastModified === t.lastModified;
43
43
  }
44
- n(e) {
45
- this.d++, this.disabled || (this.g(e.target, !0), this.e(e));
44
+ _onDragEnter(e) {
45
+ this._counter++, this.disabled || (this._setDragState(e.target, !0), this._blockEvent(e));
46
46
  }
47
- o(e) {
48
- this.d--, !this.disabled && e.target === this.i && this.d === 0 && (this.g(), this.e(e));
47
+ _onDragLeave(e) {
48
+ this._counter--, !this.disabled && e.target === this._dragTarget && this._counter === 0 && (this._setDragState(), this._blockEvent(e));
49
49
  }
50
- p(e) {
51
- this.d = 0, this.disabled || (this.g(), this.e(e), this.l(e.dataTransfer.files));
50
+ _onFileDrop(e) {
51
+ this._counter = 0, this.disabled || (this._setDragState(), this._blockEvent(e), this._createFileList(e.dataTransfer.files));
52
52
  }
53
- q() {
54
- m.mostRecentModality === "keyboard" && this.c.toggleAttribute("data-focus-visible", !0);
53
+ _onFocus() {
54
+ _.mostRecentModality === "keyboard" && this._loadButton.toggleAttribute("data-focus-visible", !0);
55
55
  }
56
- r() {
57
- m.mostRecentModality === "keyboard" && this.c.removeAttribute("data-focus-visible");
56
+ _onBlur() {
57
+ _.mostRecentModality === "keyboard" && this._loadButton.removeAttribute("data-focus-visible");
58
58
  }
59
- g(e = void 0, t = !1) {
60
- this.i = e, this.toggleAttribute("data-active", t), this.c.toggleAttribute("data-active", t);
59
+ _setDragState(e = void 0, t = !1) {
60
+ this._dragTarget = e, this.toggleAttribute("data-active", t), this._loadButton.toggleAttribute("data-active", t);
61
61
  }
62
- s(e) {
62
+ _readFiles(e) {
63
63
  const t = e.target;
64
- t.files && this.l(t.files);
64
+ t.files && this._createFileList(t.files);
65
65
  }
66
- l(e) {
67
- !this.multiple || this.multipleMode !== "persistent" || !this.a || this.a.length === 0 ? this.a = Array.from(e) : this.a = Array.from(e).filter(
68
- (t) => this.a.findIndex((s) => this.k(t, s)) === -1
69
- ).concat(this.a), this.f.innerText = u(this.a.map((t) => t.name))[this.b.current], this.h.emit(this.a);
66
+ _createFileList(e) {
67
+ !this.multiple || this.multipleMode !== "persistent" || !this._files || this._files.length === 0 ? this._files = Array.from(e) : this._files = Array.from(e).filter(
68
+ (t) => this._files.findIndex((s) => this._checkFileEquality(t, s)) === -1
69
+ ).concat(this._files), this._liveRegion.innerText = u(this._files.map((t) => t.name))[this._language.current], this._fileChangedEvent.emit(this._files);
70
70
  }
71
- t(e) {
72
- this.a = this.a.filter((s) => !this.k(e, s));
71
+ _removeFile(e) {
72
+ this._files = this._files.filter((s) => !this._checkFileEquality(e, s));
73
73
  const t = new DataTransfer();
74
- this.a.forEach((s) => t.items.add(s)), this.j.files = t.files, this.f.innerText = u(this.a.map((s) => s.name))[this.b.current], this.h.emit(this.a);
74
+ this._files.forEach((s) => t.items.add(s)), this._hiddenInput.files = t.files, this._liveRegion.innerText = u(this._files.map((s) => s.name))[this._language.current], this._fileChangedEvent.emit(this._files);
75
75
  }
76
76
  /** Calculates the correct unit for the file's size. */
77
- u(e) {
77
+ _formatFileSize(e) {
78
78
  const t = Math.floor(Math.log(e) / Math.log(1024));
79
- return `${(e / Math.pow(1024, t)).toFixed(0)} ${this.m[t]}`;
79
+ return `${(e / Math.pow(1024, t)).toFixed(0)} ${this._suffixes[t]}`;
80
80
  }
81
- v() {
81
+ _renderDefaultMode() {
82
82
  return a`
83
83
  <sbb-secondary-button-static
84
84
  size=${this.size}
85
85
  icon-name="folder-open-small"
86
86
  ?disabled=${this.disabled}
87
- ${n((e) => {
88
- this.c = e;
87
+ ${b((e) => {
88
+ this._loadButton = e;
89
89
  })}
90
90
  >
91
- ${p[this.b.current]}
91
+ ${p[this._language.current]}
92
92
  </sbb-secondary-button-static>
93
93
  `;
94
94
  }
95
- w() {
95
+ _renderDropzoneArea() {
96
96
  return a`
97
97
  <span class="sbb-file-selector__dropzone-area">
98
98
  <span class="sbb-file-selector__dropzone-area--icon">
@@ -102,38 +102,38 @@ let i = class extends k(v) {
102
102
  </span>
103
103
  <span class="sbb-file-selector__dropzone-area--title">${this.titleContent}</span>
104
104
  <span class="sbb-file-selector__dropzone-area--subtitle">
105
- ${w[this.b.current]}
105
+ ${E[this._language.current]}
106
106
  </span>
107
107
  <span class="sbb-file-selector__dropzone-area--button">
108
108
  <sbb-secondary-button-static
109
109
  size=${this.size}
110
110
  ?disabled=${this.disabled}
111
- ${n((e) => {
112
- this.c = e;
111
+ ${b((e) => {
112
+ this._loadButton = e;
113
113
  })}
114
114
  >
115
- ${p[this.b.current]}
115
+ ${p[this._language.current]}
116
116
  </sbb-secondary-button-static>
117
117
  </span>
118
118
  </span>
119
119
  `;
120
120
  }
121
- x() {
122
- const e = this.a.length > 1 ? { WRAPPER: "ul", ELEMENT: "li" } : { WRAPPER: "div", ELEMENT: "span" };
121
+ _renderFileList() {
122
+ const e = this._files.length > 1 ? { WRAPPER: "ul", ELEMENT: "li" } : { WRAPPER: "div", ELEMENT: "span" };
123
123
  return a`
124
124
  <${c(e.WRAPPER)} class="sbb-file-selector__file-list">
125
- ${this.a.map(
125
+ ${this._files.map(
126
126
  (t) => a`
127
127
  <${c(e.ELEMENT)} class="sbb-file-selector__file">
128
128
  <span class="sbb-file-selector__file-details">
129
129
  <span class="sbb-file-selector__file-name">${t.name}</span>
130
- <span class="sbb-file-selector__file-size">${this.u(t.size)}</span>
130
+ <span class="sbb-file-selector__file-size">${this._formatFileSize(t.size)}</span>
131
131
  </span>
132
132
  <sbb-secondary-button
133
133
  size=${this.size}
134
134
  icon-name="trash-small"
135
- @click=${() => this.t(t)}
136
- aria-label=${`${E[this.b.current]} - ${t.name}`}
135
+ @click=${() => this._removeFile(t)}
136
+ aria-label=${`${w[this._language.current]} - ${t.name}`}
137
137
  ></sbb-secondary-button>
138
138
  </${c(e.ELEMENT)}>`
139
139
  )}
@@ -141,30 +141,30 @@ let i = class extends k(v) {
141
141
  `;
142
142
  }
143
143
  render() {
144
- const e = this.accessibilityLabel ? `${p[this.b.current]} - ${this.accessibilityLabel}` : void 0;
144
+ const e = this.accessibilityLabel ? `${p[this._language.current]} - ${this.accessibilityLabel}` : void 0;
145
145
  return a`
146
146
  <div class="sbb-file-selector">
147
147
  <div
148
148
  class="sbb-file-selector__input-container"
149
- @dragenter=${this.n}
150
- @dragover=${this.e}
151
- @dragleave=${this.o}
152
- @drop=${this.p}
149
+ @dragenter=${this._onDragEnter}
150
+ @dragover=${this._blockEvent}
151
+ @dragleave=${this._onDragLeave}
152
+ @drop=${this._onFileDrop}
153
153
  >
154
154
  <label>
155
- ${this.variant === "default" ? this.v() : this.w()}
155
+ ${this.variant === "default" ? this._renderDefaultMode() : this._renderDropzoneArea()}
156
156
  <input
157
157
  class="sbb-file-selector__visually-hidden"
158
158
  type="file"
159
159
  ?disabled=${this.disabled}
160
160
  ?multiple=${this.multiple}
161
- accept=${this.accept || f}
162
- aria-label=${e || f}
163
- @change=${this.s}
164
- @focus=${this.q}
165
- @blur=${this.r}
166
- ${n((t) => {
167
- this.j = t;
161
+ accept=${this.accept || h}
162
+ aria-label=${e || h}
163
+ @change=${this._readFiles}
164
+ @focus=${this._onFocus}
165
+ @blur=${this._onBlur}
166
+ ${b((t) => {
167
+ this._hiddenInput = t;
168
168
  })}
169
169
  />
170
170
  </label>
@@ -172,9 +172,9 @@ let i = class extends k(v) {
172
172
  <p
173
173
  role="status"
174
174
  class="sbb-file-selector__visually-hidden"
175
- ${n((t) => this.f = t)}
175
+ ${b((t) => this._liveRegion = t)}
176
176
  ></p>
177
- ${this.a && this.a.length > 0 ? this.x() : f}
177
+ ${this._files && this._files.length > 0 ? this._renderFileList() : h}
178
178
  <div class="sbb-file-selector__error">
179
179
  <slot name="error"></slot>
180
180
  </div>
@@ -182,36 +182,36 @@ let i = class extends k(v) {
182
182
  `;
183
183
  }
184
184
  };
185
- i.styles = M;
185
+ i.styles = k;
186
186
  i.events = {
187
187
  fileChangedEvent: "fileChanged"
188
188
  };
189
- o([
190
- l()
189
+ l([
190
+ r()
191
191
  ], i.prototype, "variant", 2);
192
- o([
193
- l({ reflect: !0 })
192
+ l([
193
+ r({ reflect: !0 })
194
194
  ], i.prototype, "size", 2);
195
- o([
196
- l({ type: Boolean })
195
+ l([
196
+ r({ type: Boolean })
197
197
  ], i.prototype, "multiple", 2);
198
- o([
199
- l({ attribute: "multiple-mode" })
198
+ l([
199
+ r({ attribute: "multiple-mode" })
200
200
  ], i.prototype, "multipleMode", 2);
201
- o([
202
- l()
201
+ l([
202
+ r()
203
203
  ], i.prototype, "accept", 2);
204
- o([
205
- l({ attribute: "title-content" })
204
+ l([
205
+ r({ attribute: "title-content" })
206
206
  ], i.prototype, "titleContent", 2);
207
- o([
208
- l({ attribute: "accessibility-label" })
207
+ l([
208
+ r({ attribute: "accessibility-label" })
209
209
  ], i.prototype, "accessibilityLabel", 2);
210
- o([
211
- y()
212
- ], i.prototype, "a", 2);
213
- i = o([
214
- _("sbb-file-selector")
210
+ l([
211
+ v()
212
+ ], i.prototype, "_files", 2);
213
+ i = l([
214
+ y("sbb-file-selector")
215
215
  ], i);
216
216
  export {
217
217
  i as SbbFileSelectorElement
@@ -8,27 +8,27 @@ import { i18nClearInput as m } from "../core/i18n.js";
8
8
  import { SbbNegativeMixin as p } from "../core/mixins.js";
9
9
  import "../icon.js";
10
10
  const g = l`*,:before,:after{box-sizing:border-box}:host{display:block;outline:none!important}:host{display:inline-block;-webkit-tap-highlight-color:transparent;height:fit-content;outline:none!important;--sbb-button-color-default-background: var(--sbb-color-black-alpha-0);--sbb-button-color-default-border: var(--sbb-color-black-alpha-0);--sbb-button-color-default-text: var(--sbb-color-charcoal);--sbb-button-color-hover-background: var(--sbb-color-milk);--sbb-button-color-hover-border: var(--sbb-color-milk);--sbb-button-color-hover-text: var(--sbb-color-charcoal);--sbb-button-color-active-background: var(--sbb-color-cloud);--sbb-button-color-active-border: var(--sbb-color-cloud);--sbb-button-color-active-text: var(--sbb-color-charcoal);--sbb-button-color-disabled-background: var(--sbb-color-milk);--sbb-button-color-disabled-border: var(--sbb-color-smoke);--sbb-button-color-disabled-text: var(--sbb-color-granite);--sbb-button-border-style: solid;--sbb-button-border-disabled-style: dashed;--sbb-button-border-width: 0rem;--sbb-button-border-radius: var(--sbb-border-radius-infinity);--sbb-button-transition-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-2x) );--sbb-button-transition-easing-function: var(--sbb-animation-easing);--sbb-button-inset: 0}@media (forced-colors: active){:host{--sbb-button-color-default-text: ButtonText !important;--sbb-button-color-default-border: CanvasText !important;--sbb-button-color-active-text: ButtonText !important;--sbb-button-color-active-border: Highlight !important;--sbb-button-color-hover-text: ButtonText !important}}:host .sbb-form-field-clear{position:relative;transition-duration:var(--sbb-button-transition-duration);transition-timing-function:var(--sbb-button-transition-easing-function);transition-property:color;border-radius:var(--sbb-button-border-radius);color:var(--sbb-button-color-default-text);cursor:pointer;-webkit-user-select:none;user-select:none;display:var(--sbb-button-display)}:host .sbb-form-field-clear:before{position:absolute;content:"";inset:var(--sbb-button-inset);border:var(--sbb-button-border-width) var(--sbb-button-border-style) var(--sbb-button-color-default-border);border-radius:var(--sbb-button-border-radius);background-color:var(--sbb-button-color-default-background);transition-duration:var(--sbb-button-transition-duration);transition-timing-function:var(--sbb-button-transition-easing-function);transition-property:inset,background-color,border-color}sbb-icon{transition:transform var(--sbb-button-transition-duration) var(--sbb-button-transition-easing-function);transform:translateY(var(--sbb-button-translate-y-content-hover, 0rem));display:flex}:host([negative]){--sbb-button-color-default-background: var(--sbb-color-black-alpha-0);--sbb-button-color-default-border: var(--sbb-color-black-alpha-0);--sbb-button-color-default-text: var(--sbb-color-milk);--sbb-button-color-hover-background: var(--sbb-color-charcoal);--sbb-button-color-hover-border: var(--sbb-color-charcoal);--sbb-button-color-hover-text: var(--sbb-color-milk);--sbb-button-color-active-background: var(--sbb-color-iron);--sbb-button-color-active-border: var(--sbb-color-iron);--sbb-button-color-active-text: var(--sbb-color-milk);--sbb-button-color-disabled-background: var(--sbb-color-black-alpha-0);--sbb-button-color-disabled-border: var(--sbb-color-smoke);--sbb-button-color-disabled-text: var(--sbb-color-smoke)}:host(:is([disabled],[data-disabled])){--sbb-button-border-width: var(--sbb-border-width-1x)}@media (forced-colors: active){:host(:is([disabled],[data-disabled])){--sbb-button-color-disabled-text: GrayText !important}}:host(:is([disabled],[data-disabled])) .sbb-form-field-clear{color:var(--sbb-button-color-disabled-text);cursor:default;pointer-events:none}:host(:is([disabled],[data-disabled])) .sbb-form-field-clear:before{background-color:var(--sbb-button-color-disabled-background);border-color:var(--sbb-button-color-disabled-border);border-style:var(--sbb-button-border-disabled-style)}:host(:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch])) .sbb-form-field-clear:before{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width)}@media (any-hover: hover){:host(:not([disabled],[data-disabled],:active,[data-active]):hover){--sbb-button-translate-y-content-hover: -.0625rem}}@media (forced-colors: active){:host(:not([disabled],[data-disabled],:active,[data-active]):hover){--sbb-button-color-hover-border: Highlight !important}}@media (any-hover: hover){:host(:not([disabled],[data-disabled],:active,[data-active]):hover) .sbb-form-field-clear:before{inset:calc(var(--sbb-button-border-width) * -1);background-color:var(--sbb-button-color-hover-background);border-color:var(--sbb-button-color-hover-border)}}@media (any-hover: hover){:host(:not([disabled],[data-disabled],:active,[data-active]):hover) .sbb-form-field-clear{color:var(--sbb-button-color-hover-text)}}:host(:not([disabled],[data-disabled]):is(:active,[data-active])) .sbb-form-field-clear:before{color:var(--sbb-button-color-active-text);background-color:var(--sbb-button-color-active-background);border-color:var(--sbb-button-color-active-border)}`;
11
- var k = Object.defineProperty, x = Object.getOwnPropertyDescriptor, y = (o, t, r, e) => {
12
- for (var b = e > 1 ? void 0 : e ? x(t, r) : t, a = o.length - 1, s; a >= 0; a--)
13
- (s = o[a]) && (b = (e ? s(t, r, b) : s(b)) || b);
14
- return e && b && k(t, r, b), b;
11
+ var k = Object.defineProperty, x = Object.getOwnPropertyDescriptor, y = (o, t, b, e) => {
12
+ for (var r = e > 1 ? void 0 : e ? x(t, b) : t, a = o.length - 1, s; a >= 0; a--)
13
+ (s = o[a]) && (r = (e ? s(t, b, r) : s(r)) || r);
14
+ return e && r && k(t, b, r), r;
15
15
  };
16
16
  let n = class extends p(u) {
17
17
  constructor() {
18
- super(...arguments), this.b = new v(this), this.c = new h(this);
18
+ super(...arguments), this._abort = new v(this), this._language = new h(this);
19
19
  }
20
20
  connectedCallback() {
21
21
  super.connectedCallback();
22
- const o = this.b.signal;
23
- this.addEventListener("click", () => this.d(), { signal: o }), this.a = i("sbb-form-field", this) ?? i("[data-form-field]", this), this.a && (this.negative = this.a.hasAttribute("negative"));
22
+ const o = this._abort.signal;
23
+ this.addEventListener("click", () => this._handleClick(), { signal: o }), this._formField = i("sbb-form-field", this) ?? i("[data-form-field]", this), this._formField && (this.negative = this._formField.hasAttribute("negative"));
24
24
  }
25
- async d() {
26
- var t, r;
27
- const o = (t = this.a) == null ? void 0 : t.inputElement;
28
- !o || o.localName !== "input" || ((r = this.a) == null || r.clear(), o.focus(), o.dispatchEvent(new InputEvent("input", { bubbles: !0, composed: !0 })), o.dispatchEvent(new Event("change", { bubbles: !0 })));
25
+ async _handleClick() {
26
+ var t, b;
27
+ const o = (t = this._formField) == null ? void 0 : t.inputElement;
28
+ !o || o.localName !== "input" || ((b = this._formField) == null || b.clear(), o.focus(), o.dispatchEvent(new InputEvent("input", { bubbles: !0, composed: !0 })), o.dispatchEvent(new Event("change", { bubbles: !0 })));
29
29
  }
30
30
  willUpdate(o) {
31
- super.willUpdate(o), this.setAttribute("aria-label", m[this.c.current]);
31
+ super.willUpdate(o), this.setAttribute("aria-label", m[this._language.current]);
32
32
  }
33
33
  renderTemplate() {
34
34
  return c` <sbb-icon name="cross-small"></sbb-icon> `;