@sbb-esta/lyne-elements 0.52.0 → 0.52.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/accordion.js +54 -54
  2. package/action-group.js +3 -3
  3. package/alert/alert-group.js +22 -22
  4. package/alert/alert.js +22 -22
  5. package/autocomplete.js +126 -126
  6. package/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts.map +1 -1
  7. package/breadcrumb/breadcrumb-group.js +70 -69
  8. package/breadcrumb/breadcrumb.js +17 -17
  9. package/calendar.js +423 -423
  10. package/card/card-badge.js +17 -17
  11. package/card/card.js +2 -2
  12. package/card/common.js +30 -30
  13. package/checkbox/checkbox-group.js +17 -17
  14. package/checkbox/checkbox.js +34 -34
  15. package/clock.js +83 -83
  16. package/container/sticky-bar.js +16 -16
  17. package/core/a11y.js +91 -91
  18. package/core/base-elements.js +87 -88
  19. package/core/controllers.js +40 -40
  20. package/core/datetime.js +34 -36
  21. package/core/dom.js +26 -26
  22. package/core/eventing.js +33 -33
  23. package/core/mixins.js +122 -122
  24. package/core/overlay/overlay.d.ts.map +1 -1
  25. package/core/overlay.js +55 -50
  26. package/core/testing/event-spy.d.ts +1 -1
  27. package/core/testing/wait-for-image-ready.d.ts +4 -0
  28. package/core/testing/wait-for-image-ready.d.ts.map +1 -0
  29. package/core/testing.d.ts +1 -0
  30. package/core/testing.d.ts.map +1 -1
  31. package/core/testing.js +42 -31
  32. package/custom-elements.json +70 -4
  33. package/datepicker/common.js +55 -55
  34. package/datepicker/datepicker-toggle.js +94 -94
  35. package/datepicker/datepicker.js +144 -144
  36. package/development/accordion.js +2 -3
  37. package/development/action-group.js +2 -3
  38. package/development/alert/alert-group.js +2 -3
  39. package/development/alert/alert.js +2 -3
  40. package/development/autocomplete.js +2 -3
  41. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts.map +1 -1
  42. package/development/breadcrumb/breadcrumb-group.js +5 -5
  43. package/development/breadcrumb/breadcrumb.js +2 -3
  44. package/development/button/button-link.js +2 -3
  45. package/development/button/button-static.js +2 -3
  46. package/development/button/button.js +2 -3
  47. package/development/button/common.js +2 -3
  48. package/development/button/mini-button.js +2 -3
  49. package/development/button/secondary-button-link.js +2 -3
  50. package/development/button/secondary-button-static.js +2 -3
  51. package/development/button/secondary-button.js +2 -3
  52. package/development/button/tertiary-button-link.js +2 -3
  53. package/development/button/tertiary-button-static.js +2 -3
  54. package/development/button/tertiary-button.js +2 -3
  55. package/development/button/transparent-button-link.js +2 -3
  56. package/development/button/transparent-button-static.js +2 -3
  57. package/development/button/transparent-button.js +2 -3
  58. package/development/calendar.js +2 -3
  59. package/development/card/card-badge.js +2 -3
  60. package/development/card/card-button.js +2 -3
  61. package/development/card/card-link.js +2 -3
  62. package/development/card/card.js +2 -3
  63. package/development/card/common.js +2 -3
  64. package/development/checkbox/checkbox-group.js +2 -3
  65. package/development/checkbox/checkbox.js +2 -3
  66. package/development/chip.js +2 -3
  67. package/development/clock.js +2 -3
  68. package/development/container/container.js +2 -3
  69. package/development/container/sticky-bar.js +2 -3
  70. package/development/core/base-elements.js +4 -7
  71. package/development/core/mixins.js +7 -13
  72. package/development/core/overlay/overlay.d.ts.map +1 -1
  73. package/development/core/overlay.js +9 -3
  74. package/development/core/testing/event-spy.d.ts +1 -1
  75. package/development/core/testing/wait-for-image-ready.d.ts +4 -0
  76. package/development/core/testing/wait-for-image-ready.d.ts.map +1 -0
  77. package/development/core/testing.d.ts +1 -0
  78. package/development/core/testing.d.ts.map +1 -1
  79. package/development/core/testing.js +17 -1
  80. package/development/datepicker/common.js +2 -3
  81. package/development/datepicker/datepicker-next-day.js +2 -3
  82. package/development/datepicker/datepicker-previous-day.js +2 -3
  83. package/development/datepicker/datepicker-toggle.js +2 -3
  84. package/development/datepicker/datepicker.js +2 -3
  85. package/development/dialog/dialog-actions.js +2 -3
  86. package/development/dialog/dialog-content.js +2 -3
  87. package/development/dialog/dialog-title.js +2 -3
  88. package/development/dialog/dialog.js +2 -3
  89. package/development/divider.js +2 -3
  90. package/development/expansion-panel/expansion-panel-content.js +2 -3
  91. package/development/expansion-panel/expansion-panel-header.js +2 -3
  92. package/development/expansion-panel/expansion-panel.js +2 -3
  93. package/development/file-selector.js +2 -3
  94. package/development/footer.js +2 -3
  95. package/development/form-error.js +2 -3
  96. package/development/form-field/form-field-clear.js +2 -3
  97. package/development/form-field/form-field.js +2 -3
  98. package/development/header/common.js +2 -3
  99. package/development/header/header-button.js +2 -3
  100. package/development/header/header-link.js +2 -3
  101. package/development/header/header.js +2 -3
  102. package/development/icon.js +4 -7
  103. package/development/image/image.d.ts +12 -3
  104. package/development/image/image.d.ts.map +1 -1
  105. package/development/image.js +41 -24
  106. package/development/journey-header.js +2 -3
  107. package/development/lead-container.js +2 -3
  108. package/development/link/block-link-button.js +2 -3
  109. package/development/link/block-link-static.js +2 -3
  110. package/development/link/block-link.js +2 -3
  111. package/development/link/common.js +3 -5
  112. package/development/link/link-button.js +2 -3
  113. package/development/link/link-static.js +2 -3
  114. package/development/link/link.js +2 -3
  115. package/development/link-list.js +2 -3
  116. package/development/loading-indicator.js +2 -3
  117. package/development/logo.js +2 -3
  118. package/development/map-container.js +2 -3
  119. package/development/menu/common.js +2 -3
  120. package/development/menu/menu-button.js +2 -3
  121. package/development/menu/menu-link.js +2 -3
  122. package/development/menu/menu.js +2 -3
  123. package/development/message.js +2 -3
  124. package/development/navigation/common.js +2 -3
  125. package/development/navigation/navigation-button.js +2 -3
  126. package/development/navigation/navigation-link.js +2 -3
  127. package/development/navigation/navigation-list.js +2 -3
  128. package/development/navigation/navigation-marker.js +2 -3
  129. package/development/navigation/navigation-section.js +2 -3
  130. package/development/navigation/navigation.js +2 -3
  131. package/development/notification.js +2 -3
  132. package/development/option/optgroup.js +2 -3
  133. package/development/option/option.js +2 -3
  134. package/development/overlay.js +3 -5
  135. package/development/popover/popover-trigger.js +2 -3
  136. package/development/popover/popover.js +2 -3
  137. package/development/radio-button/radio-button-group.js +2 -3
  138. package/development/radio-button/radio-button.js +2 -3
  139. package/development/screen-reader-only.js +2 -3
  140. package/development/select.js +2 -3
  141. package/development/selection-panel.js +2 -3
  142. package/development/signet.js +2 -3
  143. package/development/skiplink-list.js +2 -3
  144. package/development/slider.js +2 -3
  145. package/development/status.js +2 -3
  146. package/development/stepper/step-label.js +2 -3
  147. package/development/stepper/step.js +2 -3
  148. package/development/stepper/stepper/stepper.d.ts +1 -1
  149. package/development/stepper/stepper/stepper.d.ts.map +1 -1
  150. package/development/stepper/stepper.js +5 -6
  151. package/development/tabs/tab-group.js +2 -3
  152. package/development/tabs/tab-title.js +2 -3
  153. package/development/tag/tag-group.js +2 -3
  154. package/development/tag/tag.js +2 -3
  155. package/development/teaser-hero.js +2 -3
  156. package/development/teaser-paid.js +2 -3
  157. package/development/teaser.js +2 -3
  158. package/development/time-input.js +2 -3
  159. package/development/timetable-occupancy-icon.js +2 -3
  160. package/development/timetable-occupancy.js +2 -3
  161. package/development/title.js +3 -5
  162. package/development/toast.js +2 -3
  163. package/development/toggle/toggle-option.js +3 -5
  164. package/development/toggle/toggle.js +2 -3
  165. package/development/toggle-check.js +10 -3
  166. package/development/train/train-blocked-passage.js +2 -3
  167. package/development/train/train-formation.js +2 -3
  168. package/development/train/train-wagon.js +2 -3
  169. package/development/train/train.js +2 -3
  170. package/development/visual-checkbox.js +2 -3
  171. package/dialog/dialog-title.js +20 -20
  172. package/dialog/dialog.js +66 -66
  173. package/expansion-panel/expansion-panel-header.js +20 -20
  174. package/expansion-panel/expansion-panel.js +60 -60
  175. package/file-selector.js +91 -91
  176. package/form-field/form-field-clear.js +12 -12
  177. package/form-field/form-field.js +111 -111
  178. package/header/header.js +53 -53
  179. package/icon.js +107 -107
  180. package/image/image.d.ts +12 -3
  181. package/image/image.d.ts.map +1 -1
  182. package/image.js +118 -105
  183. package/journey-header.js +29 -29
  184. package/map-container.js +23 -23
  185. package/menu/menu.js +91 -91
  186. package/navigation/common.js +16 -16
  187. package/navigation/navigation-marker.js +34 -34
  188. package/navigation/navigation-section.js +83 -83
  189. package/navigation/navigation.js +87 -87
  190. package/notification.js +52 -52
  191. package/option/optgroup.js +45 -45
  192. package/option/option.js +108 -108
  193. package/overlay.js +5 -5
  194. package/package.json +1 -1
  195. package/popover/popover.js +110 -110
  196. package/radio-button/radio-button-group.js +93 -93
  197. package/radio-button/radio-button.js +84 -84
  198. package/select.js +178 -178
  199. package/selection-panel.js +44 -44
  200. package/slider.js +58 -58
  201. package/status.js +6 -6
  202. package/stepper/step-label.js +19 -19
  203. package/stepper/step.js +31 -31
  204. package/stepper/stepper/stepper.d.ts +1 -1
  205. package/stepper/stepper/stepper.d.ts.map +1 -1
  206. package/stepper/stepper.js +48 -48
  207. package/tabs/tab-group.js +67 -67
  208. package/tag/tag-group.js +8 -8
  209. package/tag/tag.js +27 -27
  210. package/teaser-paid.js +12 -12
  211. package/time-input.js +73 -73
  212. package/timetable-occupancy-icon.js +26 -26
  213. package/timetable-occupancy.js +9 -9
  214. package/toast.js +38 -38
  215. package/toggle/toggle-option.js +33 -33
  216. package/toggle/toggle.js +46 -46
  217. package/toggle-check.js +14 -14
  218. package/train/train-formation.js +36 -37
  219. package/train/train-wagon.js +30 -30
  220. package/train/train.js +13 -13
@@ -1,190 +1,190 @@
1
- import { css as u, html as d, nothing as g } from "lit";
2
- import { property as l, customElement as f } from "lit/decorators.js";
3
- import { ref as m } from "lit/directives/ref.js";
4
- import { SbbFocusHandler as _, IS_FOCUSABLE_QUERY as w, setModalityOnNextFocus as b, getFirstFocusableElement as y } from "../core/a11y.js";
1
+ import { css as f, html as h, nothing as u } from "lit";
2
+ import { property as b, customElement as m } from "lit/decorators.js";
3
+ import { ref as g } from "lit/directives/ref.js";
4
+ import { SbbFocusHandler as w, IS_FOCUSABLE_QUERY as y, setModalityOnNextFocus as p, getFirstFocusableElement as x } from "../core/a11y.js";
5
5
  import { SbbOpenCloseBaseElement as E } from "../core/base-elements.js";
6
- import { SbbLanguageController as x } from "../core/controllers.js";
7
- import { findReferencedElement as C } from "../core/dom.js";
8
- import { EventEmitter as h, composedPathHasAttribute as T } from "../core/eventing.js";
6
+ import { SbbLanguageController as C } from "../core/controllers.js";
7
+ import { findReferencedElement as _ } from "../core/dom.js";
8
+ import { EventEmitter as v, composedPathHasAttribute as T } from "../core/eventing.js";
9
9
  import { i18nClosePopover as k } from "../core/i18n.js";
10
- import { isEventOnElement as c, removeAriaOverlayTriggerAttributes as P, setAriaOverlayTriggerAttributes as L, getElementPosition as O } from "../core/overlay.js";
10
+ import { isEventOnElement as c, removeAriaOverlayTriggerAttributes as A, setAriaOverlayTriggerAttributes as L, getElementPosition as z } from "../core/overlay.js";
11
11
  import "../button/secondary-button.js";
12
- const S = u`*,:before,:after{box-sizing:border-box}:host{--sbb-popover-position: absolute;--sbb-popover-position-x: 0;--sbb-popover-position-y: 0;--sbb-popover-arrow-size: var(--sbb-spacing-fixed-4x);--sbb-popover-arrow-position-x: 0;--sbb-popover-max-width: calc(100% - var(--sbb-spacing-fixed-2x));--sbb-popover-inset: 0 auto auto 0;--sbb-popover-border-radius: var(--sbb-border-radius-8x);--sbb-popover-padding: var(--sbb-spacing-fixed-4x);--sbb-popover-background: var(--sbb-color-white);--sbb-popover-color: var(--sbb-color-charcoal);--sbb-popover-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-4x) );--sbb-popover-animation-easing: ease-out;--sbb-popover-transform: translateY(var(--sbb-spacing-fixed-2x));--sbb-focus-outline-color: var(--sbb-focus-outline-color-default);display:block}:host([data-position=above]){--sbb-popover-transform: translateY(calc(var(--sbb-spacing-fixed-2x) * -1))}:host(:not([data-state=closed])){--sbb-popover-inset: 0}.sbb-popover:after,.sbb-popover__content:before{content:"";position:absolute;display:block;width:var(--sbb-popover-arrow-size);height:var(--sbb-popover-arrow-size);left:var(--sbb-popover-arrow-position-x);bottom:calc(100% - var(--sbb-popover-arrow-size) / 2);background-color:var(--sbb-popover-background);border-radius:var(--sbb-border-radius-2x) 0;transform:rotate(45deg)}.sbb-popover__container{position:fixed;inset:var(--sbb-popover-inset);pointer-events:none;z-index:var(--sbb-popover-z-index, var(--sbb-overlay-default-z-index));color:var(--sbb-popover-color)}.sbb-popover{box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-1-color);display:none;position:var(--sbb-popover-position);pointer-events:all;top:var(--sbb-popover-position-y);bottom:unset;left:var(--sbb-popover-position-x);right:unset;border:none;border-radius:var(--sbb-popover-border-radius);padding:0;max-width:var(--sbb-popover-max-width);width:max-content;background-color:var(--sbb-popover-background);outline:none}.sbb-popover:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch]){outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width)}:host([data-state]:not([data-state=closed])) .sbb-popover{display:block;animation-name:open;animation-duration:var(--sbb-popover-animation-duration);animation-timing-function:var(--sbb-popover-animation-easing)}:host([data-state][data-state=closing]) .sbb-popover{pointer-events:none;animation-name:close;animation-duration:var(--sbb-popover-animation-duration);animation-timing-function:var(--sbb-popover-animation-easing)}.sbb-popover:after{box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-1-color);z-index:-1}@media (forced-colors: active){.sbb-popover:after{outline:var(--sbb-border-width-1x) solid CanvasText}}:host([data-position=above]) .sbb-popover:after{top:calc(100% - var(--sbb-popover-arrow-size) / 2)}@media (forced-colors: active){.sbb-popover{outline:var(--sbb-border-width-1x) solid CanvasText}}.sbb-popover:before{content:"";display:block;position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background-color:transparent}:host([data-position=below]) .sbb-popover:before{inset-block-start:calc(-1 * var(--sbb-spacing-fixed-6x))}:host([data-position=above]) .sbb-popover:before{inset-block-end:calc(-1 * var(--sbb-spacing-fixed-6x))}.sbb-popover__content{display:flex;gap:var(--sbb-spacing-fixed-4x);border-radius:var(--sbb-popover-border-radius);padding:var(--sbb-popover-padding);outline:none;background-color:var(--sbb-popover-background);overflow:hidden;flex-direction:row-reverse}:host([data-position=above]) .sbb-popover__content:before{top:calc(100% - var(--sbb-popover-arrow-size) / 2)}@keyframes open{0%{opacity:0;transform:var(--sbb-popover-transform)}to{opacity:1;transform:translateY(0)}}@keyframes close{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:var(--sbb-popover-transform)}}`;
13
- var A = Object.defineProperty, F = Object.getOwnPropertyDescriptor, n = (e, o, t, i) => {
14
- for (var r = i > 1 ? void 0 : i ? F(o, t) : o, a = e.length - 1, p; a >= 0; a--)
15
- (p = e[a]) && (r = (i ? p(o, t, r) : p(r)) || r);
16
- return i && r && A(o, t, r), r;
12
+ const O = f`*,:before,:after{box-sizing:border-box}:host{--sbb-popover-position: absolute;--sbb-popover-position-x: 0;--sbb-popover-position-y: 0;--sbb-popover-arrow-size: var(--sbb-spacing-fixed-4x);--sbb-popover-arrow-position-x: 0;--sbb-popover-max-width: calc(100% - var(--sbb-spacing-fixed-2x));--sbb-popover-inset: 0 auto auto 0;--sbb-popover-border-radius: var(--sbb-border-radius-8x);--sbb-popover-padding: var(--sbb-spacing-fixed-4x);--sbb-popover-background: var(--sbb-color-white);--sbb-popover-color: var(--sbb-color-charcoal);--sbb-popover-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-4x) );--sbb-popover-animation-easing: ease-out;--sbb-popover-transform: translateY(var(--sbb-spacing-fixed-2x));--sbb-focus-outline-color: var(--sbb-focus-outline-color-default);display:block}:host([data-position=above]){--sbb-popover-transform: translateY(calc(var(--sbb-spacing-fixed-2x) * -1))}:host(:not([data-state=closed])){--sbb-popover-inset: 0}.sbb-popover:after,.sbb-popover__content:before{content:"";position:absolute;display:block;width:var(--sbb-popover-arrow-size);height:var(--sbb-popover-arrow-size);left:var(--sbb-popover-arrow-position-x);bottom:calc(100% - var(--sbb-popover-arrow-size) / 2);background-color:var(--sbb-popover-background);border-radius:var(--sbb-border-radius-2x) 0;transform:rotate(45deg)}.sbb-popover__container{position:fixed;inset:var(--sbb-popover-inset);pointer-events:none;z-index:var(--sbb-popover-z-index, var(--sbb-overlay-default-z-index));color:var(--sbb-popover-color)}.sbb-popover{box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-1-color);display:none;position:var(--sbb-popover-position);pointer-events:all;top:var(--sbb-popover-position-y);bottom:unset;left:var(--sbb-popover-position-x);right:unset;border:none;border-radius:var(--sbb-popover-border-radius);padding:0;max-width:var(--sbb-popover-max-width);width:max-content;background-color:var(--sbb-popover-background);outline:none}.sbb-popover:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch]){outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width)}:host([data-state]:not([data-state=closed])) .sbb-popover{display:block;animation-name:open;animation-duration:var(--sbb-popover-animation-duration);animation-timing-function:var(--sbb-popover-animation-easing)}:host([data-state][data-state=closing]) .sbb-popover{pointer-events:none;animation-name:close;animation-duration:var(--sbb-popover-animation-duration);animation-timing-function:var(--sbb-popover-animation-easing)}.sbb-popover:after{box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-1-color);z-index:-1}@media (forced-colors: active){.sbb-popover:after{outline:var(--sbb-border-width-1x) solid CanvasText}}:host([data-position=above]) .sbb-popover:after{top:calc(100% - var(--sbb-popover-arrow-size) / 2)}@media (forced-colors: active){.sbb-popover{outline:var(--sbb-border-width-1x) solid CanvasText}}.sbb-popover:before{content:"";display:block;position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background-color:transparent}:host([data-position=below]) .sbb-popover:before{inset-block-start:calc(-1 * var(--sbb-spacing-fixed-6x))}:host([data-position=above]) .sbb-popover:before{inset-block-end:calc(-1 * var(--sbb-spacing-fixed-6x))}.sbb-popover__content{display:flex;gap:var(--sbb-spacing-fixed-4x);border-radius:var(--sbb-popover-border-radius);padding:var(--sbb-popover-padding);outline:none;background-color:var(--sbb-popover-background);overflow:hidden;flex-direction:row-reverse}:host([data-position=above]) .sbb-popover__content:before{top:calc(100% - var(--sbb-popover-arrow-size) / 2)}@keyframes open{0%{opacity:0;transform:var(--sbb-popover-transform)}to{opacity:1;transform:translateY(0)}}@keyframes close{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:var(--sbb-popover-transform)}}`;
13
+ var S = Object.defineProperty, P = Object.getOwnPropertyDescriptor, n = (e, t, o, i) => {
14
+ for (var a = i > 1 ? void 0 : i ? P(t, o) : t, r = e.length - 1, l; r >= 0; r--)
15
+ (l = e[r]) && (a = (i ? l(t, o, a) : l(a)) || a);
16
+ return i && a && S(t, o, a), a;
17
17
  };
18
- const z = 16, D = 32;
19
- let M = 0;
20
- const v = /* @__PURE__ */ new Set();
18
+ const F = 16, B = 32;
19
+ let D = 0;
20
+ const d = /* @__PURE__ */ new Set();
21
21
  let s = class extends E {
22
22
  constructor() {
23
- super(...arguments), this.hideCloseButton = !1, this.hoverTrigger = !1, this.openDelay = 0, this.closeDelay = 0, this.willClose = new h(
23
+ super(...arguments), this.hideCloseButton = !1, this.hoverTrigger = !1, this.openDelay = 0, this.closeDelay = 0, this.willClose = new v(
24
24
  this,
25
25
  s.events.willClose
26
- ), this.didClose = new h(
26
+ ), this.didClose = new v(
27
27
  this,
28
28
  s.events.didClose
29
- ), this._skipCloseFocus = !1, this._focusHandler = new _(), this._hoverTrigger = !1, this._language = new x(this), this._pointerDownListener = (e) => {
30
- this._isPointerDownEventOnPopover = c(this._overlay, e);
31
- }, this._closeOnBackdropClick = (e) => {
32
- !this._isPointerDownEventOnPopover && !c(this._overlay, e) && (this._nextFocusedElement = e.composedPath().filter((o) => o instanceof window.HTMLElement).find((o) => o.matches(w)), clearTimeout(this._closeTimeout), this.close());
33
- }, this._onTriggerMouseEnter = () => {
34
- this.state === "closed" || this.state === "closing" ? this._openTimeout = setTimeout(() => this.open(), this.openDelay) : clearTimeout(this._closeTimeout);
35
- }, this._onTriggerMouseLeave = () => {
36
- this.state === "opened" || this.state === "opening" ? this._closeTimeout = setTimeout(() => this.close(), this.closeDelay) : clearTimeout(this._openTimeout);
37
- }, this._onOverlayMouseEnter = () => {
38
- this.state !== "opening" && clearTimeout(this._closeTimeout);
39
- }, this._onOverlayMouseLeave = () => {
40
- this.state !== "opening" && (this._closeTimeout = setTimeout(() => this.close(), this.closeDelay));
29
+ ), this.h = !1, this.i = new w(), this.f = !1, this.o = new C(this), this.w = (e) => {
30
+ this.m = c(this.a, e);
31
+ }, this.x = (e) => {
32
+ !this.m && !c(this.a, e) && (this.g = e.composedPath().filter((t) => t instanceof window.HTMLElement).find((t) => t.matches(y)), clearTimeout(this.e), this.close());
33
+ }, this.t = () => {
34
+ this.state === "closed" || this.state === "closing" ? this.n = setTimeout(() => this.open(), this.openDelay) : clearTimeout(this.e);
35
+ }, this.u = () => {
36
+ this.state === "opened" || this.state === "opening" ? this.e = setTimeout(() => this.close(), this.closeDelay) : clearTimeout(this.n);
37
+ }, this.r = () => {
38
+ this.state !== "opening" && clearTimeout(this.e);
39
+ }, this.s = () => {
40
+ this.state !== "opening" && (this.e = setTimeout(() => this.close(), this.closeDelay));
41
41
  };
42
42
  }
43
43
  /** Opens the popover on trigger click. */
44
44
  open() {
45
45
  var e;
46
- if (!(this.state !== "closed" && this.state !== "closing" || !this._overlay) && this.willOpen.emit()) {
47
- for (const o of Array.from(v)) {
48
- const t = o.getAttribute("data-state");
49
- t && (t === "opened" || t === "opening") && o.close();
46
+ if (!(this.state !== "closed" && this.state !== "closing" || !this.a) && this.willOpen.emit()) {
47
+ for (const t of Array.from(d)) {
48
+ const o = t.getAttribute("data-state");
49
+ o && (o === "opened" || o === "opening") && t.close();
50
50
  }
51
- this.state = "opening", this.inert = !0, this._setPopoverPosition(), (e = this._triggerElement) == null || e.setAttribute("aria-expanded", "true"), this._nextFocusedElement = void 0, this._skipCloseFocus = !1;
51
+ this.state = "opening", this.inert = !0, this.j(), (e = this.b) == null || e.setAttribute("aria-expanded", "true"), this.g = void 0, this.h = !1;
52
52
  }
53
53
  }
54
54
  /** Closes the popover. */
55
55
  close(e) {
56
- var o;
57
- this.state !== "opened" && this.state !== "opening" || (this._popoverCloseElement = e, this.willClose.emit({ closeTarget: e }) && (this.state = "closing", this.inert = !0, (o = this._triggerElement) == null || o.setAttribute("aria-expanded", "false")));
56
+ var t;
57
+ this.state !== "opened" && this.state !== "opening" || (this.l = e, this.willClose.emit({ closeTarget: e }) && (this.state = "closing", this.inert = !0, (t = this.b) == null || t.setAttribute("aria-expanded", "false")));
58
58
  }
59
59
  // Closes the popover on "Esc" key pressed and traps focus within the popover.
60
- _onKeydownEvent(e) {
60
+ p(e) {
61
61
  if (this.state === "opened" && e.key === "Escape") {
62
62
  this.close();
63
63
  return;
64
64
  }
65
65
  }
66
66
  // Removes trigger click listener on trigger change.
67
- _removeTriggerClickListener(e, o) {
68
- var t, i;
69
- e !== o && ((t = this._popoverController) == null || t.abort(), (i = this._openStateController) == null || i.abort(), this._configure());
67
+ q(e, t) {
68
+ var o, i;
69
+ e !== t && ((o = this.d) == null || o.abort(), (i = this.c) == null || i.abort(), this.k());
70
70
  }
71
71
  connectedCallback() {
72
- super.connectedCallback(), this.id || (this.id = this.id || `sbb-popover-${++M}`), this._configure(), this.state = "closed", v.add(this);
72
+ super.connectedCallback(), this.id || (this.id = this.id || `sbb-popover-${++D}`), this.k(), this.state = "closed", d.add(this);
73
73
  }
74
74
  willUpdate(e) {
75
- super.willUpdate(e), e.has("trigger") && this._removeTriggerClickListener(this.trigger, e.get("trigger")), e.has("hoverTrigger") && this._configure();
75
+ super.willUpdate(e), e.has("trigger") && this.q(this.trigger, e.get("trigger")), e.has("hoverTrigger") && this.k();
76
76
  }
77
77
  firstUpdated(e) {
78
- super.firstUpdated(e), this._hoverTrigger && (this._overlay.addEventListener("mouseenter", () => this._onOverlayMouseEnter()), this._overlay.addEventListener("mouseleave", () => this._onOverlayMouseLeave()));
78
+ super.firstUpdated(e), this.f && (this.a.addEventListener("mouseenter", () => this.r()), this.a.addEventListener("mouseleave", () => this.s()));
79
79
  }
80
80
  disconnectedCallback() {
81
- var e, o;
82
- super.disconnectedCallback(), (e = this._popoverController) == null || e.abort(), (o = this._openStateController) == null || o.abort(), this._focusHandler.disconnect(), v.delete(this);
81
+ var e, t;
82
+ super.disconnectedCallback(), (e = this.d) == null || e.abort(), (t = this.c) == null || t.abort(), this.i.disconnect(), d.delete(this);
83
83
  }
84
84
  // Check if the trigger is valid and attach click event listeners.
85
- _configure() {
85
+ k() {
86
86
  var e;
87
- P(this._triggerElement), this.trigger && (this._triggerElement = C(this.trigger), this._triggerElement && (L(this._triggerElement, "dialog", this.id, this.state), this._hoverTrigger = this.hoverTrigger && !window.matchMedia("(pointer: coarse)").matches, (e = this._popoverController) == null || e.abort(), this._popoverController = new AbortController(), this._hoverTrigger ? (this._triggerElement.addEventListener("mouseenter", this._onTriggerMouseEnter, {
88
- signal: this._popoverController.signal
89
- }), this._triggerElement.addEventListener("mouseleave", this._onTriggerMouseLeave, {
90
- signal: this._popoverController.signal
91
- }), this._triggerElement.addEventListener(
87
+ A(this.b), this.trigger && (this.b = _(this.trigger), this.b && (L(this.b, "dialog", this.id, this.state), this.f = this.hoverTrigger && !window.matchMedia("(pointer: coarse)").matches, (e = this.d) == null || e.abort(), this.d = new AbortController(), this.f ? (this.b.addEventListener("mouseenter", this.t, {
88
+ signal: this.d.signal
89
+ }), this.b.addEventListener("mouseleave", this.u, {
90
+ signal: this.d.signal
91
+ }), this.b.addEventListener(
92
92
  "keydown",
93
- (o) => {
94
- (o.code === "Space" || o.code === "Enter") && this.open();
93
+ (t) => {
94
+ (t.code === "Space" || t.code === "Enter") && this.open();
95
95
  },
96
96
  {
97
- signal: this._popoverController.signal
97
+ signal: this.d.signal
98
98
  }
99
- )) : this._triggerElement.addEventListener(
99
+ )) : this.b.addEventListener(
100
100
  "click",
101
101
  () => {
102
102
  this.state === "closed" && this.open();
103
103
  },
104
104
  {
105
- signal: this._popoverController.signal
105
+ signal: this.d.signal
106
106
  }
107
107
  )));
108
108
  }
109
- _attachWindowEvents() {
110
- this._openStateController = new AbortController(), document.addEventListener("scroll", () => this._setPopoverPosition(), {
109
+ v() {
110
+ this.c = new AbortController(), document.addEventListener("scroll", () => this.j(), {
111
111
  passive: !0,
112
- signal: this._openStateController.signal
113
- }), window.addEventListener("resize", () => this._setPopoverPosition(), {
112
+ signal: this.c.signal
113
+ }), window.addEventListener("resize", () => this.j(), {
114
114
  passive: !0,
115
- signal: this._openStateController.signal
116
- }), window.addEventListener("keydown", (e) => this._onKeydownEvent(e), {
117
- signal: this._openStateController.signal
118
- }), window.addEventListener("pointerdown", this._pointerDownListener, {
119
- signal: this._openStateController.signal
120
- }), window.addEventListener("pointerup", this._closeOnBackdropClick, {
121
- signal: this._openStateController.signal
115
+ signal: this.c.signal
116
+ }), window.addEventListener("keydown", (e) => this.p(e), {
117
+ signal: this.c.signal
118
+ }), window.addEventListener("pointerdown", this.w, {
119
+ signal: this.c.signal
120
+ }), window.addEventListener("pointerup", this.x, {
121
+ signal: this.c.signal
122
122
  });
123
123
  }
124
124
  // Close the popover on click of any element that has the 'sbb-popover-close' attribute.
125
- _closeOnSbbPopoverCloseClick(e) {
126
- const o = T(e, "sbb-popover-close", this);
127
- o && !o.hasAttribute("disabled") && (clearTimeout(this._closeTimeout), this.close(o));
125
+ y(e) {
126
+ const t = T(e, "sbb-popover-close", this);
127
+ t && !t.hasAttribute("disabled") && (clearTimeout(this.e), this.close(t));
128
128
  }
129
129
  // Set popover position (x, y) to '0' once the popover is closed and the transition ended to prevent the
130
130
  // viewport from overflowing. And set the focus to the first focusable element once the popover is open.
131
131
  // In rare cases it can be that the animationEnd event is triggered twice.
132
132
  // To avoid entering a corrupt state, exit when state is not expected.
133
- _onPopoverAnimationEnd(e) {
134
- var o, t, i, r;
133
+ z(e) {
134
+ var t, o, i, a;
135
135
  if (e.animationName === "open" && this.state === "opening")
136
- this.state = "opened", this.didOpen.emit(), this.inert = !1, this._attachWindowEvents(), this._setPopoverFocus(), this._focusHandler.trap(this, {
137
- postFilter: (a) => a !== this._overlay
136
+ this.state = "opened", this.didOpen.emit(), this.inert = !1, this.v(), this.A(), this.i.trap(this, {
137
+ postFilter: (r) => r !== this.a
138
138
  });
139
139
  else if (e.animationName === "close" && this.state === "closing") {
140
- if (this.state = "closed", (t = (o = this._overlay) == null ? void 0 : o.firstElementChild) == null || t.scrollTo(0, 0), (i = this._overlay) == null || i.removeAttribute("tabindex"), !this._skipCloseFocus) {
141
- const a = this._nextFocusedElement || this._triggerElement;
142
- b(a), a == null || a.focus();
140
+ if (this.state = "closed", (o = (t = this.a) == null ? void 0 : t.firstElementChild) == null || o.scrollTo(0, 0), (i = this.a) == null || i.removeAttribute("tabindex"), !this.h) {
141
+ const r = this.g || this.b;
142
+ p(r), r == null || r.focus();
143
143
  }
144
- this.didClose.emit({ closeTarget: this._popoverCloseElement }), (r = this._openStateController) == null || r.abort(), this._focusHandler.disconnect();
144
+ this.didClose.emit({ closeTarget: this.l }), (a = this.c) == null || a.abort(), this.i.disconnect();
145
145
  }
146
146
  }
147
147
  // Set focus on the first focusable element.
148
- _setPopoverFocus() {
149
- const e = this.shadowRoot.querySelector("[sbb-popover-close]") || y(
150
- Array.from(this.children).filter((o) => o instanceof window.HTMLElement)
148
+ A() {
149
+ const e = this.shadowRoot.querySelector("[sbb-popover-close]") || x(
150
+ Array.from(this.children).filter((t) => t instanceof window.HTMLElement)
151
151
  );
152
- e ? (b(e), e.focus()) : (this._overlay.setAttribute("tabindex", "0"), b(this._overlay), this._overlay.focus(), this._overlay.addEventListener(
152
+ e ? (p(e), e.focus()) : (this.a.setAttribute("tabindex", "0"), p(this.a), this.a.focus(), this.a.addEventListener(
153
153
  "blur",
154
154
  () => {
155
155
  setTimeout(() => {
156
- var o;
157
- document.visibilityState !== "hidden" && ((o = this._overlay) == null || o.removeAttribute("tabindex"), (this.state === "opened" || this.state === "opening") && (this._skipCloseFocus = !0), this.close());
156
+ var t;
157
+ document.visibilityState !== "hidden" && ((t = this.a) == null || t.removeAttribute("tabindex"), (this.state === "opened" || this.state === "opening") && (this.h = !0), this.close());
158
158
  });
159
159
  },
160
160
  {
161
- signal: this._openStateController.signal
161
+ signal: this.c.signal
162
162
  }
163
163
  ));
164
164
  }
165
- _setPopoverPosition() {
166
- if (!this._overlay || !this._triggerElement)
165
+ j() {
166
+ if (!this.a || !this.b)
167
167
  return;
168
- const e = O(
169
- this._overlay,
170
- this._triggerElement,
168
+ const e = z(
169
+ this.a,
170
+ this.b,
171
171
  this.shadowRoot.querySelector(".sbb-popover__container"),
172
172
  {
173
- verticalOffset: z,
174
- horizontalOffset: D,
173
+ verticalOffset: F,
174
+ horizontalOffset: B,
175
175
  centered: !0,
176
176
  responsiveHeight: !0
177
177
  }
178
178
  );
179
179
  this.setAttribute("data-position", e.alignment.vertical);
180
- const o = this._triggerElement.getBoundingClientRect().left - e.left + this._triggerElement.clientWidth / 2 - 8;
181
- this.style.setProperty("--sbb-popover-position-x", `${e.left}px`), this.style.setProperty("--sbb-popover-position-y", `${e.top}px`), this.style.setProperty("--sbb-popover-arrow-position-x", `${o}px`);
180
+ const t = this.b.getBoundingClientRect().left - e.left + this.b.clientWidth / 2 - 8;
181
+ this.style.setProperty("--sbb-popover-position-x", `${e.left}px`), this.style.setProperty("--sbb-popover-position-y", `${e.top}px`), this.style.setProperty("--sbb-popover-arrow-position-x", `${t}px`);
182
182
  }
183
183
  render() {
184
- const e = d`
184
+ const e = h`
185
185
  <span class="sbb-popover__close">
186
186
  <sbb-secondary-button
187
- aria-label=${this.accessibilityCloseLabel || k[this._language.current]}
187
+ aria-label=${this.accessibilityCloseLabel || k[this.o.current]}
188
188
  size="s"
189
189
  type="button"
190
190
  icon-name="cross-small"
@@ -192,19 +192,19 @@ let s = class extends E {
192
192
  ></sbb-secondary-button>
193
193
  </span>
194
194
  `;
195
- return d`
195
+ return h`
196
196
  <div class="sbb-popover__container">
197
197
  <div
198
- @animationend=${(o) => this._onPopoverAnimationEnd(o)}
198
+ @animationend=${(t) => this.z(t)}
199
199
  class="sbb-popover"
200
200
  role="tooltip"
201
- ${m((o) => this._overlay = o)}
201
+ ${g((t) => this.a = t)}
202
202
  >
203
203
  <div
204
- @click=${(o) => this._closeOnSbbPopoverCloseClick(o)}
204
+ @click=${(t) => this.y(t)}
205
205
  class="sbb-popover__content"
206
206
  >
207
- ${!this.hideCloseButton && !this._hoverTrigger ? e : g}
207
+ ${!this.hideCloseButton && !this.f ? e : u}
208
208
  <span>
209
209
  <slot>No content</slot>
210
210
  </span>
@@ -214,27 +214,27 @@ let s = class extends E {
214
214
  `;
215
215
  }
216
216
  };
217
- s.styles = S;
217
+ s.styles = O;
218
218
  n([
219
- l()
219
+ b()
220
220
  ], s.prototype, "trigger", 2);
221
221
  n([
222
- l({ attribute: "hide-close-button", type: Boolean })
222
+ b({ attribute: "hide-close-button", type: Boolean })
223
223
  ], s.prototype, "hideCloseButton", 2);
224
224
  n([
225
- l({ attribute: "hover-trigger", type: Boolean })
225
+ b({ attribute: "hover-trigger", type: Boolean })
226
226
  ], s.prototype, "hoverTrigger", 2);
227
227
  n([
228
- l({ attribute: "open-delay", type: Number })
228
+ b({ attribute: "open-delay", type: Number })
229
229
  ], s.prototype, "openDelay", 2);
230
230
  n([
231
- l({ attribute: "close-delay", type: Number })
231
+ b({ attribute: "close-delay", type: Number })
232
232
  ], s.prototype, "closeDelay", 2);
233
233
  n([
234
- l({ attribute: "accessibility-close-label" })
234
+ b({ attribute: "accessibility-close-label" })
235
235
  ], s.prototype, "accessibilityCloseLabel", 2);
236
236
  s = n([
237
- f("sbb-popover")
237
+ m("sbb-popover")
238
238
  ], s);
239
239
  export {
240
240
  s as SbbPopoverElement