@sbb-esta/lyne-elements 2.5.0 → 2.6.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 (245) hide show
  1. package/autocomplete/autocomplete-base-element.d.ts +19 -21
  2. package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  3. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -1
  4. package/autocomplete-grid/autocomplete-grid-button.js +7 -7
  5. package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.d.ts +2 -2
  6. package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.d.ts.map +1 -1
  7. package/autocomplete.js +145 -136
  8. package/chip/chip/chip.d.ts +32 -0
  9. package/chip/chip/chip.d.ts.map +1 -0
  10. package/chip/chip-group/chip-group.d.ts +100 -0
  11. package/chip/chip-group/chip-group.d.ts.map +1 -0
  12. package/chip/chip-group.d.ts +2 -0
  13. package/chip/chip-group.d.ts.map +1 -0
  14. package/chip/chip-group.js +225 -0
  15. package/chip/chip.d.ts +2 -0
  16. package/chip/chip.d.ts.map +1 -0
  17. package/chip/chip.js +85 -0
  18. package/chip.d.ts +3 -0
  19. package/chip.d.ts.map +1 -0
  20. package/chip.js +2 -0
  21. package/clock/clock.d.ts.map +1 -1
  22. package/clock.js +1 -1
  23. package/core/base-elements/button-base-element.d.ts +5 -0
  24. package/core/base-elements/button-base-element.d.ts.map +1 -1
  25. package/core/base-elements.js +94 -79
  26. package/core/controllers/id-observer-controller.d.ts +21 -0
  27. package/core/controllers/id-observer-controller.d.ts.map +1 -0
  28. package/core/controllers/media-matchers-controller.d.ts.map +1 -1
  29. package/core/controllers.d.ts +2 -1
  30. package/core/controllers.d.ts.map +1 -1
  31. package/core/controllers.js +135 -80
  32. package/core/datetime/native-date-adapter.d.ts.map +1 -1
  33. package/core/datetime.js +8 -3
  34. package/core/dom/find-referenced-element.d.ts +1 -0
  35. package/core/dom/find-referenced-element.d.ts.map +1 -1
  36. package/core/dom/input-element.d.ts +3 -1
  37. package/core/dom/input-element.d.ts.map +1 -1
  38. package/core/dom/platform.d.ts +5 -0
  39. package/core/dom/platform.d.ts.map +1 -1
  40. package/core/dom.js +10 -9
  41. package/core/i18n/i18n.d.ts +3 -0
  42. package/core/i18n/i18n.d.ts.map +1 -1
  43. package/core/i18n.js +135 -117
  44. package/core/mixins/form-associated-input-mixin.d.ts.map +1 -1
  45. package/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
  46. package/core/mixins.js +71 -63
  47. package/core/overlay/overlay-trigger-attributes.d.ts +1 -1
  48. package/core/overlay/overlay-trigger-attributes.d.ts.map +1 -1
  49. package/core/overlay/position.d.ts +1 -1
  50. package/core/overlay/position.d.ts.map +1 -1
  51. package/core/styles/core.scss +89 -24
  52. package/core/styles/image.scss +1 -1
  53. package/core/styles/mixins/table.scss +63 -26
  54. package/core/styles/table.scss +16 -0
  55. package/core/testing/scroll.d.ts +1 -0
  56. package/core/testing/scroll.d.ts.map +1 -1
  57. package/core/testing/wait-for-image-ready.d.ts.map +1 -1
  58. package/core/testing.js +8 -5
  59. package/core.css +90 -34
  60. package/custom-elements.json +2568 -740
  61. package/datepicker/datepicker/datepicker.d.ts +4 -4
  62. package/datepicker/datepicker/datepicker.d.ts.map +1 -1
  63. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts +0 -3
  64. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  65. package/datepicker/datepicker-toggle.js +30 -34
  66. package/datepicker/datepicker.js +103 -105
  67. package/development/autocomplete/autocomplete-base-element.d.ts +19 -21
  68. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  69. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -1
  70. package/development/autocomplete-grid/autocomplete-grid-button.js +3 -3
  71. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.d.ts +2 -2
  72. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.d.ts.map +1 -1
  73. package/development/autocomplete-grid/autocomplete-grid-optgroup.js +1 -1
  74. package/development/autocomplete.js +104 -82
  75. package/development/chip/chip/chip.d.ts +32 -0
  76. package/development/chip/chip/chip.d.ts.map +1 -0
  77. package/development/chip/chip-group/chip-group.d.ts +100 -0
  78. package/development/chip/chip-group/chip-group.d.ts.map +1 -0
  79. package/development/chip/chip-group.d.ts +2 -0
  80. package/development/chip/chip-group.d.ts.map +1 -0
  81. package/development/chip/chip-group.js +349 -0
  82. package/development/chip/chip.d.ts +2 -0
  83. package/development/chip/chip.d.ts.map +1 -0
  84. package/development/chip/chip.js +212 -0
  85. package/development/chip.d.ts +3 -0
  86. package/development/chip.d.ts.map +1 -0
  87. package/development/chip.js +3 -0
  88. package/development/clock/clock.d.ts.map +1 -1
  89. package/development/clock.js +5 -2
  90. package/development/core/base-elements/button-base-element.d.ts +5 -0
  91. package/development/core/base-elements/button-base-element.d.ts.map +1 -1
  92. package/development/core/base-elements.js +38 -10
  93. package/development/core/controllers/id-observer-controller.d.ts +21 -0
  94. package/development/core/controllers/id-observer-controller.d.ts.map +1 -0
  95. package/development/core/controllers/media-matchers-controller.d.ts.map +1 -1
  96. package/development/core/controllers.d.ts +2 -1
  97. package/development/core/controllers.d.ts.map +1 -1
  98. package/development/core/controllers.js +116 -44
  99. package/development/core/datetime/native-date-adapter.d.ts.map +1 -1
  100. package/development/core/datetime.js +6 -2
  101. package/development/core/dom/find-referenced-element.d.ts +1 -0
  102. package/development/core/dom/find-referenced-element.d.ts.map +1 -1
  103. package/development/core/dom/input-element.d.ts +3 -1
  104. package/development/core/dom/input-element.d.ts.map +1 -1
  105. package/development/core/dom/platform.d.ts +5 -0
  106. package/development/core/dom/platform.d.ts.map +1 -1
  107. package/development/core/dom.js +3 -1
  108. package/development/core/i18n/i18n.d.ts +3 -0
  109. package/development/core/i18n/i18n.d.ts.map +1 -1
  110. package/development/core/i18n.js +23 -2
  111. package/development/core/mixins/form-associated-input-mixin.d.ts.map +1 -1
  112. package/development/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
  113. package/development/core/mixins.js +19 -6
  114. package/development/core/overlay/overlay-trigger-attributes.d.ts +1 -1
  115. package/development/core/overlay/overlay-trigger-attributes.d.ts.map +1 -1
  116. package/development/core/overlay/position.d.ts +1 -1
  117. package/development/core/overlay/position.d.ts.map +1 -1
  118. package/development/core/overlay.js +1 -1
  119. package/development/core/testing/scroll.d.ts +1 -0
  120. package/development/core/testing/scroll.d.ts.map +1 -1
  121. package/development/core/testing/wait-for-image-ready.d.ts.map +1 -1
  122. package/development/core/testing.js +6 -2
  123. package/development/datepicker/datepicker/datepicker.d.ts +4 -4
  124. package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
  125. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts +0 -3
  126. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  127. package/development/datepicker/datepicker-toggle.js +4 -12
  128. package/development/datepicker/datepicker.js +46 -43
  129. package/development/dialog/dialog-title/dialog-title.d.ts +0 -1
  130. package/development/dialog/dialog-title/dialog-title.d.ts.map +1 -1
  131. package/development/dialog/dialog-title.js +2 -5
  132. package/development/expansion-panel/expansion-panel/expansion-panel.d.ts +0 -2
  133. package/development/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
  134. package/development/expansion-panel/expansion-panel.js +2 -7
  135. package/development/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
  136. package/development/flip-card/flip-card-details.js +3 -3
  137. package/development/form-field/form-field/form-field.d.ts.map +1 -1
  138. package/development/form-field/form-field.js +13 -146
  139. package/development/header/header/header.d.ts +6 -7
  140. package/development/header/header/header.d.ts.map +1 -1
  141. package/development/header/header.js +45 -34
  142. package/development/menu/menu/menu.d.ts +7 -8
  143. package/development/menu/menu/menu.d.ts.map +1 -1
  144. package/development/menu/menu.js +42 -41
  145. package/development/navigation/navigation/navigation.d.ts +7 -8
  146. package/development/navigation/navigation/navigation.d.ts.map +1 -1
  147. package/development/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
  148. package/development/navigation/navigation-marker.js +3 -3
  149. package/development/navigation/navigation-section/navigation-section.d.ts +8 -9
  150. package/development/navigation/navigation-section/navigation-section.d.ts.map +1 -1
  151. package/development/navigation/navigation-section.js +50 -47
  152. package/development/navigation/navigation.js +42 -40
  153. package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  154. package/development/option/optgroup/optgroup.d.ts +2 -2
  155. package/development/option/optgroup/optgroup.d.ts.map +1 -1
  156. package/development/option/optgroup.js +3 -3
  157. package/development/option/option/option-base-element.d.ts.map +1 -1
  158. package/development/option/option.js +3 -3
  159. package/development/paginator/paginator.js +12 -1
  160. package/development/popover/popover/popover.d.ts +8 -7
  161. package/development/popover/popover/popover.d.ts.map +1 -1
  162. package/development/popover/popover.js +28 -35
  163. package/development/radio-button/radio-button-group/radio-button-group.d.ts +0 -1
  164. package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  165. package/development/radio-button/radio-button-group.js +3 -5
  166. package/development/select/select.d.ts +6 -3
  167. package/development/select/select.d.ts.map +1 -1
  168. package/development/select.js +20 -18
  169. package/development/selection-expansion-panel/selection-expansion-panel.d.ts +0 -2
  170. package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  171. package/development/selection-expansion-panel.js +2 -7
  172. package/development/sidebar/sidebar/sidebar.d.ts.map +1 -1
  173. package/development/sidebar/sidebar.js +3 -3
  174. package/development/stepper/step/step.d.ts +13 -1
  175. package/development/stepper/step/step.d.ts.map +1 -1
  176. package/development/stepper/step-label.js +2 -2
  177. package/development/stepper/step.js +21 -6
  178. package/development/stepper/stepper/stepper.d.ts +1 -0
  179. package/development/stepper/stepper/stepper.d.ts.map +1 -1
  180. package/development/stepper/stepper.js +5 -1
  181. package/development/table/table-wrapper.js +2 -1
  182. package/development/time-input/time-input.d.ts +6 -8
  183. package/development/time-input/time-input.d.ts.map +1 -1
  184. package/development/time-input.js +42 -44
  185. package/dialog/dialog-title/dialog-title.d.ts +0 -1
  186. package/dialog/dialog-title/dialog-title.d.ts.map +1 -1
  187. package/dialog/dialog-title.js +18 -21
  188. package/expansion-panel/expansion-panel/expansion-panel.d.ts +0 -2
  189. package/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
  190. package/expansion-panel/expansion-panel.js +53 -56
  191. package/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
  192. package/flip-card/flip-card-details.js +8 -8
  193. package/form-field/form-field/form-field.d.ts.map +1 -1
  194. package/form-field/form-field.js +103 -98
  195. package/header/header/header.d.ts +6 -7
  196. package/header/header/header.d.ts.map +1 -1
  197. package/header/header.js +72 -70
  198. package/index.d.ts +4 -0
  199. package/index.js +4 -0
  200. package/menu/menu/menu.d.ts +7 -8
  201. package/menu/menu/menu.d.ts.map +1 -1
  202. package/menu/menu.js +73 -73
  203. package/navigation/navigation/navigation.d.ts +7 -8
  204. package/navigation/navigation/navigation.d.ts.map +1 -1
  205. package/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
  206. package/navigation/navigation-marker.js +4 -4
  207. package/navigation/navigation-section/navigation-section.d.ts +8 -9
  208. package/navigation/navigation-section/navigation-section.d.ts.map +1 -1
  209. package/navigation/navigation-section.js +75 -77
  210. package/navigation/navigation.js +70 -70
  211. package/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  212. package/option/optgroup/optgroup.d.ts +2 -2
  213. package/option/optgroup/optgroup.d.ts.map +1 -1
  214. package/option/optgroup.js +13 -13
  215. package/option/option/option-base-element.d.ts.map +1 -1
  216. package/option/option.js +2 -2
  217. package/package.json +16 -1
  218. package/paginator/paginator.js +44 -44
  219. package/popover/popover/popover.d.ts +8 -7
  220. package/popover/popover/popover.d.ts.map +1 -1
  221. package/popover/popover.js +73 -73
  222. package/radio-button/radio-button-group/radio-button-group.d.ts +0 -1
  223. package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  224. package/radio-button/radio-button-group.js +8 -8
  225. package/select/select.d.ts +6 -3
  226. package/select/select.d.ts.map +1 -1
  227. package/select.js +73 -73
  228. package/selection-expansion-panel/selection-expansion-panel.d.ts +0 -2
  229. package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  230. package/selection-expansion-panel.js +10 -13
  231. package/sidebar/sidebar/sidebar.d.ts.map +1 -1
  232. package/sidebar/sidebar.js +2 -2
  233. package/standard-theme.css +166 -79
  234. package/stepper/step/step.d.ts +13 -1
  235. package/stepper/step/step.d.ts.map +1 -1
  236. package/stepper/step-label.js +1 -1
  237. package/stepper/step.js +34 -23
  238. package/stepper/stepper/stepper.d.ts +1 -0
  239. package/stepper/stepper/stepper.d.ts.map +1 -1
  240. package/stepper/stepper.js +19 -16
  241. package/table/table-wrapper.js +4 -4
  242. package/table.css +75 -44
  243. package/time-input/time-input.d.ts +6 -8
  244. package/time-input/time-input.d.ts.map +1 -1
  245. package/time-input.js +66 -73
package/autocomplete.js CHANGED
@@ -1,46 +1,58 @@
1
- var D = (i) => {
2
- throw TypeError(i);
1
+ var R = (s) => {
2
+ throw TypeError(s);
3
3
  };
4
- var z = (i, a, l) => a.has(i) || D("Cannot " + l);
5
- var A = (i, a, l) => (z(i, a, "read from private field"), l ? l.call(i) : a.get(i)), O = (i, a, l) => a.has(i) ? D("Cannot add the same private member more than once") : a instanceof WeakSet ? a.add(i) : a.set(i, l), v = (i, a, l, n) => (z(i, a, "write to private field"), n ? n.call(i, l) : a.set(i, l), l);
6
- import { __runInitializers as h, __esDecorate as k } from "tslib";
7
- import { property as C, customElement as U } from "lit/decorators.js";
8
- import { getNextElementIndex as j } from "./core/a11y.js";
9
- import { hostAttributes as B, forceType as q } from "./core/decorators.js";
10
- import { isZeroAnimationDuration as K, findReferencedElement as L, isSafari as R } from "./core/dom.js";
11
- import { isEventOnElement as S, setOverlayPosition as M, removeAriaComboBoxAttributes as H, overlayGapFixCorners as V, setAriaComboBoxAttributes as Y } from "./core/overlay.js";
12
- import { css as Z, isServer as F, nothing as T, html as G } from "lit";
13
- import { ref as N } from "lit/directives/ref.js";
14
- import { SbbOpenCloseBaseElement as J } from "./core/base-elements.js";
15
- import { SbbConnectedAbortController as Q, SbbEscapableOverlayController as W } from "./core/controllers.js";
16
- import { SbbNegativeMixin as X, SbbHydrationMixin as ee } from "./core/mixins.js";
17
- const te = Z`*,:before,:after{box-sizing:border-box}.sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-options-panel-border-radius);height:var(--sbb-options-panel-border-radius);background-color:transparent}.sbb-gap-fix-corner{position:absolute;border-radius:50%;border:calc(var(--sbb-options-panel-border-radius) / 2) solid var(--sbb-options-panel-background-color);width:calc(var(--sbb-options-panel-border-radius) * 3);height:calc(var(--sbb-options-panel-border-radius) * 3);bottom:calc(var(--sbb-options-panel-border-radius) / 2 * -1)}.sbb-gap-fix-corner#left{left:calc(var(--sbb-options-panel-border-radius) / 2 * -1)}:host(:dir(rtl)) .sbb-gap-fix-corner#left{right:calc(var(--sbb-options-panel-border-radius) / 2 * -1);left:unset}.sbb-gap-fix-corner#right{right:calc(var(--sbb-options-panel-border-radius) / 2 * -1)}:host(:dir(rtl)) .sbb-gap-fix-corner#right{left:calc(var(--sbb-options-panel-border-radius) / 2 * -1);right:unset}:host{--sbb-scrollbar-thumb-width: .125rem;--sbb-scrollbar-thumb-width-hover: .25rem;--sbb-scrollbar-width-firefox: thin;--sbb-scrollbar-color: var(--sbb-color-black-alpha-30);--sbb-scrollbar-color-hover: var(--sbb-color-black-alpha-60);--sbb-scrollbar-track-color: transparent;--sbb-options-panel-position-x: 0;--sbb-options-panel-position-y: 0;--sbb-options-panel-active-option-y: 0;--sbb-options-panel-max-height: calc(85vh - var(--sbb-spacing-fixed-8x));--sbb-options-panel-min-height: var(--sbb-options-panel-origin-height);--sbb-options-panel-visibility: visible;--sbb-options-panel-width: fit-content;--sbb-options-panel-border-radius: var(--sbb-border-radius-4x);--sbb-options-panel-options-border-radius: 0 0 var(--sbb-options-panel-border-radius) var(--sbb-options-panel-border-radius);--sbb-options-panel-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-4x) );--sbb-options-panel-animation-timing-function: ease;--sbb-options-panel-gap-fix-opacity: 0;--sbb-options-panel-gap-fix-transform: none;--sbb-options-panel-gap-fix-top: calc( var(--sbb-options-panel-position-y) - var(--sbb-options-panel-border-radius) );--sbb-options-panel-background-color: var(--sbb-color-white);--sbb-focus-outline-color: var(--sbb-focus-outline-color-default);--sbb-options-pointer-events: all;--sbb-options-panel-internal-z-index: var( --sbb-autocomplete-z-index, var(--sbb-overlay-default-z-index) );display:none}:host([data-state]:not([data-state=closed])){display:block}:host([negative]){--sbb-scrollbar-color: var(--sbb-color-white-alpha-30);--sbb-scrollbar-color-hover: var(--sbb-color-white-alpha-60);--sbb-options-panel-background-color: var(--sbb-color-midnight);--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark)}:host(:not([data-state])),:host([data-state=closed]){--sbb-options-panel-visibility: hidden;--sbb-options-pointer-events: none}:host([data-state=opening]){--sbb-options-panel-animation-name: open}:host([data-state=closing]){--sbb-options-panel-animation-name: close}:host([data-state=opened]),:host([data-state=opening]){--sbb-options-panel-gap-fix-opacity: 1}:host([data-options-panel-position=below]){--sbb-options-panel-animation-transform: translateY( calc((var(--sbb-options-panel-origin-height) / 2) * -1) )}:host([data-options-panel-position=above]){--sbb-options-panel-options-border-radius: var(--sbb-options-panel-border-radius) var(--sbb-options-panel-border-radius) 0 0;--sbb-options-panel-gap-fix-top: var(--sbb-options-panel-max-height);--sbb-options-panel-gap-fix-transform: rotate(180deg);--sbb-options-panel-animation-transform: translateY( calc(var(--sbb-options-panel-origin-height) / 2) )}:host([preserve-icon-space]){--sbb-option-icon-container-display: block}::slotted(sbb-divider){margin-block:var(--sbb-spacing-fixed-3x)}.sbb-autocomplete__container{position:fixed;pointer-events:none;top:0;right:0;bottom:0;left:0;z-index:var(--sbb-options-panel-internal-z-index)}.sbb-autocomplete__gap-fix{display:flex;justify-content:space-between;position:fixed;visibility:var(--sbb-options-panel-visibility);opacity:var(--sbb-options-panel-gap-fix-opacity);background-color:transparent;width:var(--sbb-options-panel-width);height:var(--sbb-options-panel-border-radius);top:var(--sbb-options-panel-gap-fix-top);left:var(--sbb-options-panel-position-x);transform:var(--sbb-options-panel-gap-fix-transform);transition:opacity var(--sbb-options-panel-animation-duration) var(--sbb-options-panel-animation-timing-function)}.sbb-autocomplete__panel{display:block;position:absolute;visibility:var(--sbb-options-panel-visibility);overflow:hidden;background-color:transparent;border:none;border-radius:var(--sbb-options-panel-border-radius);top:var(--sbb-options-panel-position-y);left:var(--sbb-options-panel-position-x);width:var(--sbb-options-panel-width);transition:box-shadow var(--sbb-options-panel-animation-duration) var(--sbb-options-panel-animation-timing-function)}.sbb-autocomplete__panel:before,.sbb-autocomplete__panel:after{content:"";display:none;position:relative;width:100%;height:var(--sbb-options-panel-origin-height);background-color:transparent;border-radius:var(--sbb-options-panel-border-radius);pointer-events:none;transition:box-shadow var(--sbb-options-panel-animation-duration) var(--sbb-options-panel-animation-timing-function);z-index:1}:host([data-options-panel-position=below]) .sbb-autocomplete__panel{inset-block-start:calc(var(--sbb-options-panel-position-y) - var(--sbb-options-panel-origin-height))}:host(:is([data-state=opened],[data-state=opening])) .sbb-autocomplete__panel{box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-1-color)}:host(:is([data-state=opened],[data-state=opening])[negative]) .sbb-autocomplete__panel{box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-negative-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-negative-1-color)}:host([data-options-panel-position=below]) .sbb-autocomplete__panel:before{display:block}:host([data-options-panel-position=above]) .sbb-autocomplete__panel:after{display:block}:host(:is([data-state=opened],[data-state=opening])[data-option-panel-origin-borderless]) .sbb-autocomplete__panel:before,:host(:is([data-state=opened],[data-state=opening])[data-option-panel-origin-borderless]) .sbb-autocomplete__panel:after{box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-1-color)}:host(:is([data-state=opened],[data-state=opening])[data-option-panel-origin-borderless][negative]) .sbb-autocomplete__panel:before,:host(:is([data-state=opened],[data-state=opening])[data-option-panel-origin-borderless][negative]) .sbb-autocomplete__panel:after{box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-negative-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-negative-1-color)}.sbb-autocomplete__wrapper{overflow:hidden}.sbb-autocomplete__options{background-color:var(--sbb-options-panel-background-color);padding-block:var(--sbb-spacing-fixed-3x);padding-inline:0;border-radius:var(--sbb-options-panel-options-border-radius);max-height:var(--sbb-options-panel-max-height);min-height:var(--sbb-options-panel-min-height);pointer-events:all;overflow-y:auto;animation-name:var(--sbb-options-panel-animation-name);animation-duration:var(--sbb-options-panel-animation-duration);animation-timing-function:var(--sbb-options-panel-animation-timing-function);--sbb-scrollbar-width: var(--sbb-spacing-fixed-3x)}.sbb-autocomplete__options::-webkit-scrollbar{width:var(--sbb-scrollbar-width);height:var(--sbb-scrollbar-width);background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-autocomplete__options::-webkit-scrollbar-corner{background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-autocomplete__options::-webkit-scrollbar-thumb{background-color:var(--sbb-scrollbar-color, currentcolor);border:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;border-radius:var(--sbb-border-radius-4x);background-clip:padding-box}.sbb-autocomplete__options::-webkit-scrollbar-thumb:hover{background-color:var(--sbb-scrollbar-color-hover, currentcolor);border-width:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)))}.sbb-autocomplete__options::-webkit-scrollbar-button,.sbb-autocomplete__options::-webkit-scrollbar-corner{display:none}@supports not selector(::-webkit-scrollbar){.sbb-autocomplete__options{scrollbar-width:var(--sbb-scrollbar-width-firefox);scrollbar-color:var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent)}}.sbb-autocomplete__options{pointer-events:var(--sbb-options-pointer-events)}@media (forced-colors: active){.sbb-autocomplete__options{border:var(--sbb-border-width-1x) solid CanvasText;border-top:none}}@keyframes open{0%{transform:var(--sbb-options-panel-animation-transform);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes close{0%{transform:translateY(0);opacity:1}to{transform:var(--sbb-options-panel-animation-transform);opacity:0}}`, I = R;
18
- let oe = (() => {
19
- var u, m, f, b;
20
- let i = [B({
4
+ var T = (s, a, l) => a.has(s) || R("Cannot " + l);
5
+ var k = (s, a, l) => (T(s, a, "read from private field"), l ? l.call(s) : a.get(s)), A = (s, a, l) => a.has(s) ? R("Cannot add the same private member more than once") : a instanceof WeakSet ? a.add(s) : a.set(s, l), h = (s, a, l, r) => (T(s, a, "write to private field"), r ? r.call(s, l) : a.set(s, l), l);
6
+ import { __runInitializers as c, __esDecorate as E } from "tslib";
7
+ import { property as C, customElement as j } from "lit/decorators.js";
8
+ import { getNextElementIndex as H } from "./core/a11y.js";
9
+ import { hostAttributes as M, forceType as K } from "./core/decorators.js";
10
+ import { isZeroAnimationDuration as V, isSafari as q } from "./core/dom.js";
11
+ import { isEventOnElement as I, removeAriaComboBoxAttributes as Y, setOverlayPosition as Z, overlayGapFixCorners as F, setAriaComboBoxAttributes as G } from "./core/overlay.js";
12
+ import { ResizeController as J } from "@lit-labs/observers/resize-controller.js";
13
+ import { css as Q, isServer as S, nothing as N, html as W } from "lit";
14
+ import { ref as U } from "lit/directives/ref.js";
15
+ import { SbbOpenCloseBaseElement as X } from "./core/base-elements.js";
16
+ import { SbbConnectedAbortController as ee, SbbIdReferenceController as $, SbbEscapableOverlayController as te } from "./core/controllers.js";
17
+ import { SbbNegativeMixin as oe, SbbHydrationMixin as ie } from "./core/mixins.js";
18
+ const se = Q`*,:before,:after{box-sizing:border-box}.sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-options-panel-border-radius);height:var(--sbb-options-panel-border-radius);background-color:transparent}.sbb-gap-fix-corner{position:absolute;border-radius:50%;border:calc(var(--sbb-options-panel-border-radius) / 2) solid var(--sbb-options-panel-background-color);width:calc(var(--sbb-options-panel-border-radius) * 3);height:calc(var(--sbb-options-panel-border-radius) * 3);bottom:calc(var(--sbb-options-panel-border-radius) / 2 * -1)}.sbb-gap-fix-corner#left{left:calc(var(--sbb-options-panel-border-radius) / 2 * -1)}:host(:dir(rtl)) .sbb-gap-fix-corner#left{right:calc(var(--sbb-options-panel-border-radius) / 2 * -1);left:unset}.sbb-gap-fix-corner#right{right:calc(var(--sbb-options-panel-border-radius) / 2 * -1)}:host(:dir(rtl)) .sbb-gap-fix-corner#right{left:calc(var(--sbb-options-panel-border-radius) / 2 * -1);right:unset}:host{--sbb-scrollbar-thumb-width: .125rem;--sbb-scrollbar-thumb-width-hover: .25rem;--sbb-scrollbar-width-firefox: thin;--sbb-scrollbar-color: var(--sbb-color-black-alpha-30);--sbb-scrollbar-color-hover: var(--sbb-color-black-alpha-60);--sbb-scrollbar-track-color: transparent;--sbb-options-panel-position-x: 0;--sbb-options-panel-position-y: 0;--sbb-options-panel-active-option-y: 0;--sbb-options-panel-max-height: calc(85vh - var(--sbb-spacing-fixed-8x));--sbb-options-panel-min-height: var(--sbb-options-panel-origin-height);--sbb-options-panel-visibility: visible;--sbb-options-panel-width: fit-content;--sbb-options-panel-border-radius: var(--sbb-border-radius-4x);--sbb-options-panel-options-border-radius: 0 0 var(--sbb-options-panel-border-radius) var(--sbb-options-panel-border-radius);--sbb-options-panel-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-4x) );--sbb-options-panel-animation-timing-function: ease;--sbb-options-panel-gap-fix-opacity: 0;--sbb-options-panel-gap-fix-transform: none;--sbb-options-panel-gap-fix-top: calc( var(--sbb-options-panel-position-y) - var(--sbb-options-panel-border-radius) );--sbb-options-panel-background-color: var(--sbb-color-white);--sbb-focus-outline-color: var(--sbb-focus-outline-color-default);--sbb-options-pointer-events: all;--sbb-options-panel-internal-z-index: var( --sbb-autocomplete-z-index, var(--sbb-overlay-default-z-index) );display:none}:host([data-state]:not([data-state=closed])){display:block}:host([negative]){--sbb-scrollbar-color: var(--sbb-color-white-alpha-30);--sbb-scrollbar-color-hover: var(--sbb-color-white-alpha-60);--sbb-options-panel-background-color: var(--sbb-color-midnight);--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark)}:host(:not([data-state])),:host([data-state=closed]){--sbb-options-panel-visibility: hidden;--sbb-options-pointer-events: none}:host([data-state=opening]){--sbb-options-panel-animation-name: open}:host([data-state=closing]){--sbb-options-panel-animation-name: close}:host([data-state=opened]),:host([data-state=opening]){--sbb-options-panel-gap-fix-opacity: 1}:host([data-options-panel-position=below]){--sbb-options-panel-animation-transform: translateY( calc((var(--sbb-options-panel-origin-height) / 2) * -1) )}:host([data-options-panel-position=above]){--sbb-options-panel-options-border-radius: var(--sbb-options-panel-border-radius) var(--sbb-options-panel-border-radius) 0 0;--sbb-options-panel-gap-fix-top: var(--sbb-options-panel-max-height);--sbb-options-panel-gap-fix-transform: rotate(180deg);--sbb-options-panel-animation-transform: translateY( calc(var(--sbb-options-panel-origin-height) / 2) )}:host([preserve-icon-space]){--sbb-option-icon-container-display: block}::slotted(sbb-divider){margin-block:var(--sbb-spacing-fixed-3x)}.sbb-autocomplete__container{position:fixed;pointer-events:none;top:0;right:0;bottom:0;left:0;z-index:var(--sbb-options-panel-internal-z-index)}.sbb-autocomplete__gap-fix{display:flex;justify-content:space-between;position:fixed;visibility:var(--sbb-options-panel-visibility);opacity:var(--sbb-options-panel-gap-fix-opacity);background-color:transparent;width:var(--sbb-options-panel-width);height:var(--sbb-options-panel-border-radius);top:var(--sbb-options-panel-gap-fix-top);left:var(--sbb-options-panel-position-x);transform:var(--sbb-options-panel-gap-fix-transform);transition:opacity var(--sbb-options-panel-animation-duration) var(--sbb-options-panel-animation-timing-function)}.sbb-autocomplete__panel{display:block;position:absolute;visibility:var(--sbb-options-panel-visibility);overflow:hidden;background-color:transparent;border:none;border-radius:var(--sbb-options-panel-border-radius);top:var(--sbb-options-panel-position-y);left:var(--sbb-options-panel-position-x);width:var(--sbb-options-panel-width);transition:box-shadow var(--sbb-options-panel-animation-duration) var(--sbb-options-panel-animation-timing-function)}.sbb-autocomplete__panel:before,.sbb-autocomplete__panel:after{content:"";display:none;position:relative;width:100%;height:var(--sbb-options-panel-origin-height);background-color:transparent;border-radius:var(--sbb-options-panel-border-radius);pointer-events:none;transition:box-shadow var(--sbb-options-panel-animation-duration) var(--sbb-options-panel-animation-timing-function);z-index:1}:host([data-options-panel-position=below]) .sbb-autocomplete__panel{inset-block-start:calc(var(--sbb-options-panel-position-y) - var(--sbb-options-panel-origin-height))}:host(:is([data-state=opened],[data-state=opening])) .sbb-autocomplete__panel{box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-1-color)}:host(:is([data-state=opened],[data-state=opening])[negative]) .sbb-autocomplete__panel{box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-negative-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-negative-1-color)}:host([data-options-panel-position=below]) .sbb-autocomplete__panel:before{display:block}:host([data-options-panel-position=above]) .sbb-autocomplete__panel:after{display:block}:host(:is([data-state=opened],[data-state=opening])[data-option-panel-origin-borderless]) .sbb-autocomplete__panel:before,:host(:is([data-state=opened],[data-state=opening])[data-option-panel-origin-borderless]) .sbb-autocomplete__panel:after{box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-1-color)}:host(:is([data-state=opened],[data-state=opening])[data-option-panel-origin-borderless][negative]) .sbb-autocomplete__panel:before,:host(:is([data-state=opened],[data-state=opening])[data-option-panel-origin-borderless][negative]) .sbb-autocomplete__panel:after{box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-negative-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-negative-1-color)}.sbb-autocomplete__wrapper{overflow:hidden}.sbb-autocomplete__options{background-color:var(--sbb-options-panel-background-color);padding-block:var(--sbb-spacing-fixed-3x);padding-inline:0;border-radius:var(--sbb-options-panel-options-border-radius);max-height:var(--sbb-options-panel-max-height);min-height:var(--sbb-options-panel-min-height);pointer-events:all;overflow-y:auto;animation-name:var(--sbb-options-panel-animation-name);animation-duration:var(--sbb-options-panel-animation-duration);animation-timing-function:var(--sbb-options-panel-animation-timing-function);--sbb-scrollbar-width: var(--sbb-spacing-fixed-3x)}.sbb-autocomplete__options::-webkit-scrollbar{width:var(--sbb-scrollbar-width);height:var(--sbb-scrollbar-width);background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-autocomplete__options::-webkit-scrollbar-corner{background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-autocomplete__options::-webkit-scrollbar-thumb{background-color:var(--sbb-scrollbar-color, currentcolor);border:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;border-radius:var(--sbb-border-radius-4x);background-clip:padding-box}.sbb-autocomplete__options::-webkit-scrollbar-thumb:hover{background-color:var(--sbb-scrollbar-color-hover, currentcolor);border-width:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)))}.sbb-autocomplete__options::-webkit-scrollbar-button,.sbb-autocomplete__options::-webkit-scrollbar-corner{display:none}@supports not selector(::-webkit-scrollbar){.sbb-autocomplete__options{scrollbar-width:var(--sbb-scrollbar-width-firefox);scrollbar-color:var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent)}}.sbb-autocomplete__options{pointer-events:var(--sbb-options-pointer-events)}@media (forced-colors: active){.sbb-autocomplete__options{border:var(--sbb-border-width-1x) solid CanvasText;border-top:none}}@keyframes open{0%{transform:var(--sbb-options-panel-animation-transform);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes close{0%{transform:translateY(0);opacity:1}to{transform:var(--sbb-options-panel-animation-transform);opacity:0}}`, P = q, ae = "inputAutocomplete";
19
+ let re = (() => {
20
+ var g, u, m, b;
21
+ let s = [M({
21
22
  popover: "manual"
22
- })], a, l = [], n, w = X(ee(J)), d, P = [], o = [], r, c = [], g = [], y, x = [], E = [];
23
- return b = class extends w {
23
+ })], a, l = [], r, f = oe(ie(X)), p, z = [], o = [], n, d = [], v = [], _, w = [], y = [];
24
+ return b = class extends f {
24
25
  constructor() {
25
26
  super(...arguments);
26
- O(this, u);
27
- O(this, m);
28
- O(this, f);
29
- v(this, u, h(this, P, null)), v(this, m, (h(this, o), h(this, c, null))), v(this, f, (h(this, g), h(this, x, !1))), this._originElement = h(this, E), this.abort = new Q(this), this._didLoad = !1, this._isPointerDownEventOnMenu = !1, this._sbbEscapableOverlayController = new W(this), this._pointerDownListener = (e) => {
30
- this._isPointerDownEventOnMenu = S(this._overlay, e);
27
+ A(this, g);
28
+ A(this, u);
29
+ A(this, m);
30
+ h(this, g, c(this, z, null)), h(this, u, (c(this, o), c(this, d, null))), h(this, m, (c(this, v), c(this, w, !1))), this._triggerElement = c(this, y), this.abort = new ee(this), this._originResizeObserver = new J(this, {
31
+ target: null,
32
+ skipInitial: !0,
33
+ callback: () => {
34
+ this.state === "opened" && this._setOverlayPosition();
35
+ }
36
+ }), this._triggerAttributeObserver = S ? null : new MutationObserver((e) => {
37
+ const t = e[0].target;
38
+ (t.hasAttribute("disabled") || t.hasAttribute("readonly")) && this.close();
39
+ }), this._triggerIdReferenceController = new $(this, "trigger"), this._originIdReferenceController = new $(this, "origin"), this._isPointerDownEventOnMenu = !1, this._escapableOverlayController = new te(this), this._pointerDownListener = (e) => {
40
+ this._isPointerDownEventOnMenu = I(this._overlay, e);
31
41
  }, this._closeOnBackdropClick = (e) => {
32
- !this._isPointerDownEventOnMenu && !S(this._overlay, e) && !S(this.originElement, e) && this.close();
42
+ !this._isPointerDownEventOnMenu && !I(this._overlay, e) && !I(this.originElement, e) && this.close();
33
43
  };
34
44
  }
35
45
  /**
36
46
  * The element where the autocomplete will attach; accepts both an element's id or an HTMLElement.
37
- * If not set, it will search for the first 'sbb-form-field' ancestor.
47
+ * If not set, as fallback there are two elements which can act as origin with following priority order:
48
+ * 1. `sbb-form-field` if it is an ancestor.
49
+ * 2. trigger element if set.
38
50
  */
39
51
  get origin() {
40
- return A(this, u);
52
+ return k(this, g);
41
53
  }
42
54
  set origin(e) {
43
- v(this, u, e);
55
+ h(this, g, e);
44
56
  }
45
57
  /**
46
58
  * The input element that will trigger the autocomplete opening; accepts both an element's id or an HTMLElement.
@@ -48,58 +60,69 @@ let oe = (() => {
48
60
  * If not set, will search for the first 'input' child of a 'sbb-form-field' ancestor.
49
61
  */
50
62
  get trigger() {
51
- return A(this, m);
63
+ return k(this, u);
52
64
  }
53
65
  set trigger(e) {
54
- v(this, m, e);
66
+ h(this, u, e);
55
67
  }
56
68
  /** Whether the icon space is preserved when no icon is set. */
57
69
  get preserveIconSpace() {
58
- return A(this, f);
70
+ return k(this, m);
59
71
  }
60
72
  set preserveIconSpace(e) {
61
- v(this, f, e);
73
+ h(this, m, e);
62
74
  }
63
75
  /** Returns the element where autocomplete overlay is attached to. */
64
76
  get originElement() {
65
- return this._originElement || (this._originElement = this._findOriginElement()), this._originElement;
77
+ var e, t, i, x;
78
+ return this.origin instanceof HTMLElement ? this.origin : this._originIdReferenceController.find() ?? ((x = (i = (t = (e = this.closest) == null ? void 0 : e.call(this, "sbb-form-field")) == null ? void 0 : t.shadowRoot) == null ? void 0 : i.querySelector) == null ? void 0 : x.call(i, "#overlay-anchor")) ?? this.triggerElement ?? null;
66
79
  }
80
+ // TODO: Breaking change: remove undefined as return type.
67
81
  /** Returns the trigger element. */
68
82
  get triggerElement() {
69
- return this._triggerElement;
83
+ return this._triggerElement ?? null;
70
84
  }
71
85
  /** Opens the autocomplete. */
72
86
  open() {
73
- var e, t;
74
- this.state !== "closed" || !this._overlay || this.options.length === 0 || this._readonly() || this.willOpen.emit() && ((e = this.showPopover) == null || e.call(this), this.state = "opening", (t = this._triggerElement) == null || t.toggleAttribute("data-expanded", !0), this._setOverlayPosition(), this._isZeroAnimationDuration() && this._handleOpening());
87
+ var t, i;
88
+ if (this.state !== "closed" || !this._overlay || this.options.length === 0 || this._readonly() || !this.willOpen.emit())
89
+ return;
90
+ (t = this.showPopover) == null || t.call(this), this.state = "opening", (i = this._triggerElement) == null || i.toggleAttribute("data-expanded", !0);
91
+ const e = this.originElement;
92
+ if (!e)
93
+ throw new Error('Cannot find the origin element. Please specify a valid element or check the usage of the "origin" property from the documentation');
94
+ this._setOverlayPosition(e), this._isZeroAnimationDuration() && this._handleOpening();
75
95
  }
76
96
  /** Closes the autocomplete. */
77
97
  close() {
78
98
  var e;
79
- this.state === "opened" && this.willClose.emit() && (this.state = "closing", (e = this._triggerElement) == null || e.toggleAttribute("data-expanded", !1), this._openPanelEventsController.abort(), this._isZeroAnimationDuration() && this._handleClosing());
99
+ this.state === "opened" && this.willClose.emit() && (this.state = "closing", (e = this._triggerElement) == null || e.toggleAttribute("data-expanded", !1), this._openPanelEventsController.abort(), this.originElement && this._originResizeObserver.unobserve(this.originElement), this._isZeroAnimationDuration() && this._handleClosing());
80
100
  }
81
101
  _isZeroAnimationDuration() {
82
- return K(this, "--sbb-options-panel-animation-duration");
102
+ return V(this, "--sbb-options-panel-animation-duration");
83
103
  }
84
104
  connectedCallback() {
85
- super.connectedCallback(), I && (this.id || (this.id = this.overlayId));
105
+ super.connectedCallback(), P && (this.id || (this.id = this.overlayId));
86
106
  const e = this.closest("sbb-form-field") ?? this.closest("[data-form-field]");
87
- e && (this.negative = e.hasAttribute("negative")), this._didLoad && this._componentSetup(), this.syncNegative();
107
+ e && (this.negative = e.hasAttribute("negative")), this.hasUpdated && this._componentSetup(), this.syncNegative();
88
108
  }
89
109
  willUpdate(e) {
90
- super.willUpdate(e), (e.has("origin") && this.origin !== e.get("origin") || e.has("trigger") && this.trigger !== e.get("trigger")) && this._componentSetup(), e.has("negative") && this.syncNegative();
110
+ super.willUpdate(e), e.has("negative") && this.syncNegative();
91
111
  }
92
112
  firstUpdated(e) {
93
- super.firstUpdated(e), this._componentSetup(), this._didLoad = !0;
113
+ super.firstUpdated(e), this._componentSetup();
94
114
  }
95
115
  disconnectedCallback() {
96
116
  var e, t;
97
- super.disconnectedCallback(), (e = this._triggerEventsController) == null || e.abort(), (t = this._openPanelEventsController) == null || t.abort();
117
+ super.disconnectedCallback(), this._triggerElement = null, (e = this._triggerAbortController) == null || e.abort(), (t = this._openPanelEventsController) == null || t.abort();
118
+ }
119
+ requestUpdate(e, t, i) {
120
+ super.requestUpdate(e, t, i), !(S || !this.hasUpdated) && (!e || e === "trigger" ? this._configureTrigger() : (!e || e === "origin") && this.isOpen && this._setOverlayPosition());
98
121
  }
99
122
  /** When an option is selected, update the input value and close the autocomplete. */
100
123
  onOptionSelected(e) {
101
124
  const t = e.target;
102
- t.selected && (this.options.filter((s) => s.id !== t.id && s.selected).forEach((s) => s.selected = !1), this.triggerElement && (Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, "value").set.call(this.triggerElement, t.value), this.triggerElement.dispatchEvent(new Event("change", { bubbles: !0 })), this.triggerElement.dispatchEvent(new InputEvent("input", { bubbles: !0, composed: !0 })), this.triggerElement.focus()), this.close());
125
+ t.selected && (this.options.filter((i) => i.id !== t.id && i.selected).forEach((i) => i.selected = !1), this.triggerElement && (Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, "value").set.call(this.triggerElement, t.value), this.triggerElement.dispatchEvent(new Event("change", { bubbles: !0 })), this.triggerElement.dispatchEvent(new InputEvent("input", { bubbles: !0, composed: !0 })), this.triggerElement.dispatchEvent(new Event(ae)), this.triggerElement.focus()), this.close());
103
126
  }
104
127
  _handleSlotchange() {
105
128
  var e;
@@ -117,49 +140,34 @@ let oe = (() => {
117
140
  return ((e = this.triggerElement) == null ? void 0 : e.hasAttribute("readonly")) ?? !1;
118
141
  }
119
142
  _componentSetup() {
120
- var e, t, s, p;
121
- F || ((e = this._triggerEventsController) == null || e.abort(), (t = this._openPanelEventsController) == null || t.abort(), this._originElement = void 0, this.toggleAttribute("data-option-panel-origin-borderless", !!((p = (s = this.closest) == null ? void 0 : s.call(this, "sbb-form-field")) != null && p.hasAttribute("borderless"))), this._bindTo(this._getTriggerElement()));
122
- }
123
- /**
124
- * Retrieve the element where the autocomplete will be attached.
125
- * @returns 'origin' or the first 'sbb-form-field' ancestor.
126
- */
127
- _findOriginElement() {
128
- var t, s, p, _;
129
- let e;
130
- if (this.origin ? e = L(this.origin) : e = (_ = (p = (s = (t = this.closest) == null ? void 0 : t.call(this, "sbb-form-field")) == null ? void 0 : s.shadowRoot) == null ? void 0 : p.querySelector) == null ? void 0 : _.call(p, "#overlay-anchor"), !e)
131
- throw new Error('Cannot find the origin element. Please specify a valid element or read the "origin" prop documentation');
132
- return e;
133
- }
134
- /**
135
- * Retrieve the element that will trigger the autocomplete opening.
136
- * @returns 'trigger' or the first 'input' inside the origin element.
137
- */
138
- _getTriggerElement() {
139
- var t, s;
140
- if (!this.trigger)
141
- return (s = (t = this.closest) == null ? void 0 : t.call(this, "sbb-form-field")) == null ? void 0 : s.querySelector("input");
142
- const e = L(this.trigger);
143
- if (!e)
144
- throw new Error('Cannot find the trigger element. Please specify a valid element or read the "trigger" prop documentation');
145
- return e;
146
- }
147
- _bindTo(e) {
148
- e && (this._removeTriggerAttributes(this.triggerElement), this.setTriggerAttributes(e), this._triggerElement = e, this._setupTriggerEvents());
149
- }
150
- _setupTriggerEvents() {
151
- var e, t, s, p;
152
- this._triggerEventsController = new AbortController(), (e = this.triggerElement) == null || e.addEventListener("focus", () => this.open(), {
153
- signal: this._triggerEventsController.signal
154
- }), (t = this.triggerElement) == null || t.addEventListener("click", () => this.open(), {
155
- signal: this._triggerEventsController.signal
156
- }), (s = this.triggerElement) == null || s.addEventListener("input", (_) => {
157
- this.open(), this._highlightOptions(_.target.value);
158
- }, { signal: this._triggerEventsController.signal }), (p = this.triggerElement) == null || p.addEventListener("keydown", (_) => this._closedPanelKeyboardInteraction(_), { signal: this._triggerEventsController.signal });
143
+ var e, t;
144
+ S || (this.toggleAttribute("data-option-panel-origin-borderless", !!((t = (e = this.closest) == null ? void 0 : e.call(this, "sbb-form-field")) != null && t.hasAttribute("borderless"))), this._configureTrigger());
145
+ }
146
+ _configureTrigger() {
147
+ var i, x, D, L;
148
+ const e = this.trigger instanceof HTMLElement ? this.trigger : this.trigger ? this._triggerIdReferenceController.find() : (x = (i = this.closest) == null ? void 0 : i.call(this, "sbb-form-field")) == null ? void 0 : x.querySelector("input");
149
+ if (e === this._triggerElement || ((D = this._triggerAbortController) == null || D.abort(), Y(this.triggerElement), this._triggerElement = e, !this.triggerElement))
150
+ return;
151
+ const t = this.originElement;
152
+ this.triggerElement === t && this.isOpen && this._setOverlayPosition(t), (L = this._triggerAttributeObserver) == null || L.observe(this._triggerElement, {
153
+ attributes: !0,
154
+ attributeFilter: ["disabled", "readonly"]
155
+ }), this.setTriggerAttributes(this.triggerElement), this._triggerAbortController = new AbortController(), this.triggerElement.addEventListener("focus", () => this.open(), {
156
+ signal: this._triggerAbortController.signal
157
+ }), this.triggerElement.addEventListener("click", () => this.open(), {
158
+ signal: this._triggerAbortController.signal
159
+ }), this.triggerElement.addEventListener("input", (O) => {
160
+ this.open(), this._highlightOptions(O.target.value);
161
+ }, { signal: this._triggerAbortController.signal }), this.triggerElement.addEventListener("keydown", (O) => this._closedPanelKeyboardInteraction(O), {
162
+ signal: this._triggerAbortController.signal,
163
+ // We need key event to run before any other subscription to guarantee a correct
164
+ // interaction with other components (necessary for the 'sbb-chip-group' use case).
165
+ capture: !0
166
+ });
159
167
  }
160
168
  // Set overlay position, width and max height
161
- _setOverlayPosition() {
162
- M(this._overlay, this.originElement, this._optionContainer, this.shadowRoot.querySelector(".sbb-autocomplete__container"), this);
169
+ _setOverlayPosition(e = this.originElement) {
170
+ e && Z(this._overlay, e, this._optionContainer, this.shadowRoot.querySelector(".sbb-autocomplete__container"), this);
163
171
  }
164
172
  /**
165
173
  * On open/close animation end.
@@ -171,11 +179,11 @@ let oe = (() => {
171
179
  }
172
180
  _handleOpening() {
173
181
  var e;
174
- this.state = "opened", this._attachOpenPanelEvents(), (e = this.triggerElement) == null || e.setAttribute("aria-expanded", "true"), this._sbbEscapableOverlayController.connect(), this.didOpen.emit();
182
+ this.state = "opened", this._attachOpenPanelEvents(), this.originElement && this._originResizeObserver.observe(this.originElement), (e = this.triggerElement) == null || e.setAttribute("aria-expanded", "true"), this._escapableOverlayController.connect(), this.didOpen.emit();
175
183
  }
176
184
  _handleClosing() {
177
185
  var e, t;
178
- this.state = "closed", (e = this.hidePopover) == null || e.call(this), (t = this.triggerElement) == null || t.setAttribute("aria-expanded", "false"), this.resetActiveElement(), this._optionContainer.scrollTop = 0, this._sbbEscapableOverlayController.disconnect(), this.didClose.emit();
186
+ this.state = "closed", (e = this.hidePopover) == null || e.call(this), (t = this.triggerElement) == null || t.setAttribute("aria-expanded", "false"), this.resetActiveElement(), this._optionContainer.scrollTop = 0, this._escapableOverlayController.disconnect(), this.didClose.emit();
179
187
  }
180
188
  _attachOpenPanelEvents() {
181
189
  var e;
@@ -193,7 +201,10 @@ let oe = (() => {
193
201
  }), window.addEventListener("pointerup", (t) => this._closeOnBackdropClick(t), {
194
202
  signal: this._openPanelEventsController.signal
195
203
  }), (e = this.triggerElement) == null || e.addEventListener("keydown", (t) => this.openedPanelKeyboardInteraction(t), {
196
- signal: this._openPanelEventsController.signal
204
+ signal: this._openPanelEventsController.signal,
205
+ // We need key event to run before any other subscription to guarantee a correct
206
+ // interaction with other components (necessary for the 'sbb-chip-group' use case).
207
+ capture: !0
197
208
  });
198
209
  }
199
210
  _closedPanelKeyboardInteraction(e) {
@@ -210,26 +221,23 @@ let oe = (() => {
210
221
  _highlightOptions(e) {
211
222
  e != null && this.options.forEach((t) => t.highlight(e));
212
223
  }
213
- _removeTriggerAttributes(e) {
214
- H(e);
215
- }
216
224
  render() {
217
- return G`
225
+ return W`
218
226
  <div class="sbb-autocomplete__gap-fix"></div>
219
227
  <div class="sbb-autocomplete__container">
220
- <div class="sbb-autocomplete__gap-fix">${V()}</div>
228
+ <div class="sbb-autocomplete__gap-fix">${F()}</div>
221
229
  <div
222
230
  @animationend=${this._onAnimationEnd}
223
231
  class="sbb-autocomplete__panel"
224
232
  ?data-open=${this.state === "opened" || this.state === "opening"}
225
- ${N((e) => this._overlay = e)}
233
+ ${U((e) => this._overlay = e)}
226
234
  >
227
235
  <div class="sbb-autocomplete__wrapper">
228
236
  <div
229
237
  class="sbb-autocomplete__options"
230
- role=${I ? T : this.panelRole}
231
- id=${I ? T : this.overlayId}
232
- ${N((e) => this._optionContainer = e)}
238
+ role=${P ? N : this.panelRole}
239
+ id=${P ? N : this.overlayId}
240
+ ${U((e) => this._optionContainer = e)}
233
241
  >
234
242
  <slot @slotchange=${this._handleSlotchange}></slot>
235
243
  </div>
@@ -238,35 +246,35 @@ let oe = (() => {
238
246
  </div>
239
247
  `;
240
248
  }
241
- }, u = new WeakMap(), m = new WeakMap(), f = new WeakMap(), n = b, (() => {
242
- const e = typeof Symbol == "function" && Symbol.metadata ? Object.create(w[Symbol.metadata] ?? null) : void 0;
243
- d = [C()], r = [C()], y = [q(), C({ attribute: "preserve-icon-space", reflect: !0, type: Boolean })], k(b, null, d, { kind: "accessor", name: "origin", static: !1, private: !1, access: { has: (t) => "origin" in t, get: (t) => t.origin, set: (t, s) => {
244
- t.origin = s;
245
- } }, metadata: e }, P, o), k(b, null, r, { kind: "accessor", name: "trigger", static: !1, private: !1, access: { has: (t) => "trigger" in t, get: (t) => t.trigger, set: (t, s) => {
246
- t.trigger = s;
247
- } }, metadata: e }, c, g), k(b, null, y, { kind: "accessor", name: "preserveIconSpace", static: !1, private: !1, access: { has: (t) => "preserveIconSpace" in t, get: (t) => t.preserveIconSpace, set: (t, s) => {
248
- t.preserveIconSpace = s;
249
- } }, metadata: e }, x, E), k(null, a = { value: n }, i, { kind: "class", name: n.name, metadata: e }, null, l), n = a.value, e && Object.defineProperty(n, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: e });
250
- })(), b.styles = te, h(n, l), n;
251
- })(), se = 0;
252
- const $ = R;
253
- let me = (() => {
254
- var d;
255
- let i = [U("sbb-autocomplete"), B({
256
- role: $ ? "listbox" : null
257
- })], a, l = [], n, w = oe;
258
- return d = class extends w {
249
+ }, g = new WeakMap(), u = new WeakMap(), m = new WeakMap(), r = b, (() => {
250
+ const e = typeof Symbol == "function" && Symbol.metadata ? Object.create(f[Symbol.metadata] ?? null) : void 0;
251
+ p = [C()], n = [C()], _ = [K(), C({ attribute: "preserve-icon-space", reflect: !0, type: Boolean })], E(b, null, p, { kind: "accessor", name: "origin", static: !1, private: !1, access: { has: (t) => "origin" in t, get: (t) => t.origin, set: (t, i) => {
252
+ t.origin = i;
253
+ } }, metadata: e }, z, o), E(b, null, n, { kind: "accessor", name: "trigger", static: !1, private: !1, access: { has: (t) => "trigger" in t, get: (t) => t.trigger, set: (t, i) => {
254
+ t.trigger = i;
255
+ } }, metadata: e }, d, v), E(b, null, _, { kind: "accessor", name: "preserveIconSpace", static: !1, private: !1, access: { has: (t) => "preserveIconSpace" in t, get: (t) => t.preserveIconSpace, set: (t, i) => {
256
+ t.preserveIconSpace = i;
257
+ } }, metadata: e }, w, y), E(null, a = { value: r }, s, { kind: "class", name: r.name, metadata: e }, null, l), r = a.value, e && Object.defineProperty(r, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: e });
258
+ })(), b.styles = se, c(r, l), r;
259
+ })(), ne = 0;
260
+ const B = q;
261
+ let xe = (() => {
262
+ var p;
263
+ let s = [j("sbb-autocomplete"), M({
264
+ role: B ? "listbox" : null
265
+ })], a, l = [], r, f = re;
266
+ return p = class extends f {
259
267
  get options() {
260
268
  var o;
261
269
  return Array.from(((o = this.querySelectorAll) == null ? void 0 : o.call(this, "sbb-option")) ?? []);
262
270
  }
263
271
  constructor() {
264
272
  var o;
265
- super(), this.overlayId = `sbb-autocomplete-${++se}`, this.panelRole = "listbox", this._activeItemIndex = -1, (o = this.addEventListener) == null || o.call(this, "optionSelectionChange", (r) => this.onOptionSelected(r));
273
+ super(), this.overlayId = `sbb-autocomplete-${++ne}`, this.panelRole = "listbox", this._activeItemIndex = -1, (o = this.addEventListener) == null || o.call(this, "optionSelectionChange", (n) => this.onOptionSelected(n));
266
274
  }
267
275
  syncNegative() {
268
- var o, r;
269
- (o = this.querySelectorAll) == null || o.call(this, "sbb-divider").forEach((c) => c.negative = this.negative), (r = this.querySelectorAll) == null || r.call(this, "sbb-option, sbb-optgroup").forEach((c) => c.toggleAttribute("data-negative", this.negative));
276
+ var o, n;
277
+ (o = this.querySelectorAll) == null || o.call(this, "sbb-divider").forEach((d) => d.negative = this.negative), (n = this.querySelectorAll) == null || n.call(this, "sbb-option, sbb-optgroup").forEach((d) => d.toggleAttribute("data-negative", this.negative));
270
278
  }
271
279
  openedPanelKeyboardInteraction(o) {
272
280
  if (this.state === "opened")
@@ -285,30 +293,31 @@ let me = (() => {
285
293
  }
286
294
  selectByKeyboard(o) {
287
295
  o.preventDefault();
288
- const r = this.options[this._activeItemIndex];
289
- r && r.setSelectedViaUserInteraction(!0);
296
+ const n = this.options[this._activeItemIndex];
297
+ n && n.setSelectedViaUserInteraction(!0);
290
298
  }
291
299
  setNextActiveOption(o) {
292
- var x;
293
- const r = this.options.filter((E) => !E.disabled && !E.hasAttribute("data-group-disabled")), c = j(o, this._activeItemIndex, r.length), g = r[c];
294
- g.setActive(!0), (x = this.triggerElement) == null || x.setAttribute("aria-activedescendant", g.id), g.scrollIntoView({ block: "nearest" });
295
- const y = r[this._activeItemIndex];
296
- y && y.setActive(!1), this._activeItemIndex = c;
300
+ var w;
301
+ const n = this.options.filter((y) => !y.disabled && !y.hasAttribute("data-group-disabled")), d = H(o, this._activeItemIndex, n.length), v = n[d];
302
+ v.setActive(!0), (w = this.triggerElement) == null || w.setAttribute("aria-activedescendant", v.id), v.scrollIntoView({ block: "nearest" });
303
+ const _ = n[this._activeItemIndex];
304
+ _ && _.setActive(!1), this._activeItemIndex = d;
297
305
  }
298
306
  resetActiveElement() {
299
- var r;
307
+ var n;
300
308
  const o = this.options[this._activeItemIndex];
301
- o && o.setActive(!1), this._activeItemIndex = -1, (r = this.triggerElement) == null || r.removeAttribute("aria-activedescendant");
309
+ o && o.setActive(!1), this._activeItemIndex = -1, (n = this.triggerElement) == null || n.removeAttribute("aria-activedescendant");
302
310
  }
303
311
  setTriggerAttributes(o) {
304
- Y(o, $ ? this.id : this.overlayId, !1);
312
+ G(o, B ? this.id : this.overlayId, !1);
305
313
  }
306
- }, n = d, (() => {
307
- const o = typeof Symbol == "function" && Symbol.metadata ? Object.create(w[Symbol.metadata] ?? null) : void 0;
308
- k(null, a = { value: n }, i, { kind: "class", name: n.name, metadata: o }, null, l), n = a.value, o && Object.defineProperty(n, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: o }), h(n, l);
309
- })(), n;
314
+ }, r = p, (() => {
315
+ const o = typeof Symbol == "function" && Symbol.metadata ? Object.create(f[Symbol.metadata] ?? null) : void 0;
316
+ E(null, a = { value: r }, s, { kind: "class", name: r.name, metadata: o }, null, l), r = a.value, o && Object.defineProperty(r, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: o }), c(r, l);
317
+ })(), r;
310
318
  })();
311
319
  export {
312
- oe as SbbAutocompleteBaseElement,
313
- me as SbbAutocompleteElement
320
+ re as SbbAutocompleteBaseElement,
321
+ xe as SbbAutocompleteElement,
322
+ ae as inputAutocompleteEvent
314
323
  };
@@ -0,0 +1,32 @@
1
+ import { CSSResultGroup, LitElement, PropertyValues, TemplateResult } from 'lit';
2
+ declare const SbbChipElement_base: import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbNegativeMixinType> & import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbDisabledMixinType> & typeof LitElement;
3
+ /**
4
+ * It displays a chip. Usually used in combination with `sbb-chip-group`.
5
+ *
6
+ * @slot - Use the unnamed slot to add the display value. If not provided, the 'value' will be used.
7
+ */
8
+ export declare class SbbChipElement extends SbbChipElement_base {
9
+ static styles: CSSResultGroup;
10
+ static readonly events: {
11
+ readonly requestDelete: "requestDelete";
12
+ };
13
+ /** The value of chip. Will be used as label if nothing is slotted. */
14
+ accessor value: string;
15
+ /** Whether the component is readonly */
16
+ accessor readonly: boolean;
17
+ /** @internal */
18
+ private _requestDelete;
19
+ private _language;
20
+ constructor();
21
+ protected willUpdate(changedProperties: PropertyValues<this>): void;
22
+ protected firstUpdated(_changedProperties: PropertyValues): void;
23
+ private _deleteButton;
24
+ protected render(): TemplateResult;
25
+ }
26
+ declare global {
27
+ interface HTMLElementTagNameMap {
28
+ 'sbb-chip': SbbChipElement;
29
+ }
30
+ }
31
+ export {};
32
+ //# sourceMappingURL=chip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chip.d.ts","sourceRoot":"","sources":["../../../../src/elements/chip/chip/chip.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AASb,OAAO,6BAA6B,CAAC;AACrC,OAAO,6BAA6B,CAAC;;AAIrC;;;;GAIG;AACH,qBAEM,cAAe,SAAQ,mBAA8C;IACzE,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;MAElB;IAEX,sEAAsE;IACtE,SAAyC,KAAK,EAAE,MAAM,CAAM;IAE5D,wCAAwC;IACxC,SAEgB,QAAQ,EAAE,OAAO,CAAS;IAE1C,gBAAgB;IAChB,OAAO,CAAC,cAAc,CAAoE;IAE1F,OAAO,CAAC,SAAS,CAAmC;;cASjC,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAYzD,YAAY,CAAC,kBAAkB,EAAE,cAAc,GAAG,IAAI;IAQzE,OAAO,CAAC,aAAa;cAIF,MAAM,IAAI,cAAc;CAmB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,UAAU,EAAE,cAAc,CAAC;KAC5B;CACF"}
@@ -0,0 +1,100 @@
1
+ import { CSSResultGroup, LitElement, PropertyValues, TemplateResult } from 'lit';
2
+ import { FormRestoreReason, FormRestoreState } from '../../core/mixins.js';
3
+ export interface SbbChipInputTokenEndEventDetails {
4
+ /** The element that triggered the chip creation */
5
+ origin: 'input' | 'autocomplete';
6
+ /** The value of the new chip. Either the input or the option value depending on the origin */
7
+ value: string;
8
+ label?: string;
9
+ /** Set a new value for the chip that will be created */
10
+ setValue(value: string): void;
11
+ /** Set a label for the chip that will be created */
12
+ setLabel(value: string): void;
13
+ }
14
+ declare const SbbChipGroupElement_base: import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbRequiredMixinType> & import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbDisabledMixinType> & import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbNegativeMixinType> & import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbFormAssociatedMixinType<string[]>> & typeof LitElement;
15
+ /**
16
+ * The `sbb-chip-group` component is used as a container for one or multiple `sbb-chip`.
17
+ *
18
+ * @event {CustomEvent<void>} change - Notifies that the component's value has changed.
19
+ * @event {CustomEvent<void>} input - Notifies that the component's value has changed.
20
+ * @event {CustomEvent<SbbChipInputTokenEndEventDetails>} chipInputTokenEnd - Notifies that a chip is about to be created. Can be used to customize the value and the label. Can be prevented.
21
+ * @slot - Use the unnamed slot to add `sbb-chip` elements.
22
+ * @overrideType value - string[] | null
23
+ */
24
+ export declare class SbbChipGroupElement extends SbbChipGroupElement_base {
25
+ static styles: CSSResultGroup;
26
+ static readonly events: {
27
+ readonly input: "input";
28
+ readonly change: "change";
29
+ readonly chipInputTokenEnd: "chipInputTokenEnd";
30
+ };
31
+ /** Value of the form element. */
32
+ set value(value: string[] | null);
33
+ get value(): string[];
34
+ /** The array of keys that will trigger a `chipInputTokenEnd` event. Default `['Enter']` */
35
+ accessor separatorKeys: string[];
36
+ /** Notifies that the component's value has changed. */
37
+ private _change;
38
+ /** Notifies that the component's value has changed. */
39
+ private _input;
40
+ /** Notifies that a chip is about to be created. Can be prevented. */
41
+ private _chipInputTokenEnd;
42
+ /**
43
+ * Listens to the changes on `readonly` and `disabled` attributes of `<input>`.
44
+ */
45
+ private _inputAttributeObserver;
46
+ /**
47
+ * Listens to the 'size' changes on the `sbb-form-field`.
48
+ */
49
+ private _formFieldAttributeObserver;
50
+ private _inputElement;
51
+ private _inputAbortController;
52
+ private _language;
53
+ constructor();
54
+ connectedCallback(): void;
55
+ protected willUpdate(changedProperties: PropertyValues): void;
56
+ /** @internal */
57
+ formResetCallback(): void;
58
+ /** @internal */
59
+ formStateRestoreCallback(state: FormRestoreState | null, _reason: FormRestoreReason): void;
60
+ protected updateFormValue(): void;
61
+ protected shouldValidate(name: PropertyKey | undefined): boolean;
62
+ protected validate(): void;
63
+ /** Return the list of chip elements **/
64
+ private _chipElements;
65
+ /** Return the list of enabled chip elements **/
66
+ private _enabledChipElements;
67
+ private _setupComponent;
68
+ /**
69
+ * Listen for keyboard events on the chip elements
70
+ **/
71
+ private _onChipKeyDown;
72
+ /**
73
+ * Listen for keyboard events on the input
74
+ **/
75
+ private _onInputKeyDown;
76
+ /**
77
+ * If the input is not empty, create a chip with its value
78
+ */
79
+ private _createChipFromInput;
80
+ private _deleteChip;
81
+ /**
82
+ * Focus an enabled chip. If none are present, focus the input
83
+ * @param index The index of the enabled chip. If null, focus the last one.
84
+ */
85
+ private _focusChip;
86
+ private _emitInputEvents;
87
+ private _createChipElement;
88
+ private _reactToInputChanges;
89
+ private _proxyStateToChips;
90
+ private _inheritSize;
91
+ private _updateInputDescription;
92
+ protected render(): TemplateResult;
93
+ }
94
+ declare global {
95
+ interface HTMLElementTagNameMap {
96
+ 'sbb-chip-group': SbbChipGroupElement;
97
+ }
98
+ }
99
+ export {};
100
+ //# sourceMappingURL=chip-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chip-group.d.ts","sourceRoot":"","sources":["../../../../src/elements/chip/chip-group/chip-group.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAGnB,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AASb,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAKtB,MAAM,sBAAsB,CAAC;AAK9B,MAAM,WAAW,gCAAgC;IAC/C,mDAAmD;IACnD,MAAM,EAAE,OAAO,GAAG,cAAc,CAAC;IACjC,8FAA8F;IAC9F,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,oDAAoD;IACpD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;;AAED;;;;;;;;GAQG;AACH,qBAEM,mBAAoB,SAAQ,wBAIjC;IACC,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;;;MAIlB;IAEX,iCAAiC;IACjC,IACoB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EA4B/C;IACD,IAAoB,KAAK,IAAI,MAAM,EAAE,CAEpC;IAED,2FAA2F;IAC3F,SACgB,aAAa,EAAE,MAAM,EAAE,CAAa;IAEpD,uDAAuD;IACvD,OAAO,CAAC,OAAO,CAA2E;IAE1F,uDAAuD;IACvD,OAAO,CAAC,MAAM,CAA0E;IAExF,qEAAqE;IACrE,OAAO,CAAC,kBAAkB,CAGxB;IAEF;;OAEG;IACH,OAAO,CAAC,uBAAuB,CAEtB;IAET;;OAEG;IACH,OAAO,CAAC,2BAA2B,CAE1B;IAET,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,qBAAqB,CAA8B;IAC3D,OAAO,CAAC,SAAS,CAAmC;;IAepC,iBAAiB,IAAI,IAAI;cAKtB,UAAU,CAAC,iBAAiB,EAAE,cAAc,GAAG,IAAI;IAYtE,gBAAgB;IACT,iBAAiB,IAAI,IAAI;IAIhC,gBAAgB;IACT,wBAAwB,CAC7B,KAAK,EAAE,gBAAgB,GAAG,IAAI,EAC9B,OAAO,EAAE,iBAAiB,GACzB,IAAI;IAUP,SAAS,CAAC,eAAe,IAAI,IAAI;cAQd,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO;cAItD,QAAQ,IAAI,IAAI;IASnC,wCAAwC;IACxC,OAAO,CAAC,aAAa;IAIrB,gDAAgD;IAChD,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,eAAe;IA2CvB;;QAEI;IACJ,OAAO,CAAC,cAAc;IAyBtB;;QAEI;IACJ,OAAO,CAAC,eAAe;IAoBvB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAuB5B,OAAO,CAAC,WAAW;IAOnB;;;OAGG;IACH,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,uBAAuB;cAUZ,MAAM,IAAI,cAAc;CAO5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,gBAAgB,EAAE,mBAAmB,CAAC;KACvC;CACF"}
@@ -0,0 +1,2 @@
1
+ export * from './chip-group/chip-group.js';
2
+ //# sourceMappingURL=chip-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chip-group.d.ts","sourceRoot":"","sources":["../../../src/elements/chip/chip-group.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC"}