@odx/foundation 1.0.0-alpha.4 → 1.0.0-alpha.41

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 (527) hide show
  1. package/README.md +24 -19
  2. package/dist/cdk/drag-drop/drag.controller.d.ts +1 -1
  3. package/dist/cdk/drag-drop/is-draggable.d.ts +2 -2
  4. package/dist/cdk/main.d.ts +6 -6
  5. package/dist/cdk/popover/{popover-host.mixin.d.ts → popover-host.d.ts} +4 -3
  6. package/dist/cdk/popover/popover.d.ts +12 -0
  7. package/dist/cdk/popover/popover.utils.d.ts +1 -1
  8. package/dist/cdk.js +356 -0
  9. package/dist/components/accordion/accordion-header.d.ts +18 -0
  10. package/dist/components/accordion/accordion-panel.d.ts +12 -0
  11. package/dist/components/accordion/accordion.d.ts +17 -0
  12. package/dist/components/accordion/index.d.ts +3 -3
  13. package/dist/components/action-group/action-group.d.ts +24 -0
  14. package/dist/components/action-group/index.d.ts +2 -0
  15. package/dist/components/anchor-navigation/anchor-navigation.d.ts +21 -0
  16. package/dist/components/anchor-navigation/anchor-observer.d.ts +11 -0
  17. package/dist/components/anchor-navigation/index.d.ts +3 -0
  18. package/dist/components/area-header/{area-header.component.d.ts → area-header.d.ts} +5 -5
  19. package/dist/components/area-header/index.d.ts +2 -2
  20. package/dist/components/avatar/avatar.d.ts +14 -0
  21. package/dist/components/avatar/index.d.ts +2 -2
  22. package/dist/components/avatar-group/avatar-group.d.ts +14 -0
  23. package/dist/components/avatar-group/index.d.ts +1 -1
  24. package/dist/components/badge/badge.d.ts +15 -0
  25. package/dist/components/badge/badge.models.d.ts +4 -0
  26. package/dist/components/badge/index.d.ts +2 -2
  27. package/dist/components/breadcrumbs/breadcrumbs-item.d.ts +17 -0
  28. package/dist/components/breadcrumbs/breadcrumbs.d.ts +23 -0
  29. package/dist/components/breadcrumbs/index.d.ts +3 -0
  30. package/dist/components/button/base-button.d.ts +10 -6
  31. package/dist/components/button/{button.component.d.ts → button.d.ts} +9 -6
  32. package/dist/components/button/index.d.ts +3 -3
  33. package/dist/components/button-group/button-group.d.ts +21 -0
  34. package/dist/components/button-group/index.d.ts +1 -1
  35. package/dist/components/card/card.d.ts +13 -0
  36. package/dist/components/card/index.d.ts +1 -1
  37. package/dist/components/checkbox/{checkbox.component.d.ts → checkbox.d.ts} +4 -4
  38. package/dist/components/checkbox/index.d.ts +1 -1
  39. package/dist/components/checkbox-group/checkbox-group.d.ts +14 -0
  40. package/dist/components/checkbox-group/index.d.ts +2 -2
  41. package/dist/components/chip/{chip.component.d.ts → chip.d.ts} +6 -6
  42. package/dist/components/chip/index.d.ts +2 -2
  43. package/dist/components/circular-progress-bar/{circular-progress-bar.component.d.ts → circular-progress-bar.d.ts} +5 -5
  44. package/dist/components/circular-progress-bar/index.d.ts +2 -2
  45. package/dist/components/content-box/content-box.d.ts +11 -0
  46. package/dist/components/content-box/content-box.models.d.ts +1 -0
  47. package/dist/components/content-box/index.d.ts +1 -1
  48. package/dist/components/dropdown/dropdown.d.ts +24 -0
  49. package/dist/components/dropdown/index.d.ts +2 -2
  50. package/dist/{elements/form-field/form-field.element.d.ts → components/form-field/form-field.d.ts} +4 -4
  51. package/dist/components/form-field/index.d.ts +2 -0
  52. package/dist/components/format/base-format.d.ts +13 -0
  53. package/dist/components/format/format-bytes.d.ts +13 -0
  54. package/dist/components/format/format-date.d.ts +14 -0
  55. package/dist/components/format/{format-number.component.d.ts → format-number.d.ts} +5 -5
  56. package/dist/components/format/index.d.ts +5 -4
  57. package/dist/components/format/{relative-time.component.d.ts → relative-time.d.ts} +5 -5
  58. package/dist/components/header/header-actions.d.ts +10 -0
  59. package/dist/components/header/{header.component.d.ts → header.d.ts} +4 -4
  60. package/dist/components/header/index.d.ts +2 -2
  61. package/dist/components/headline/headline.d.ts +13 -0
  62. package/dist/components/headline/index.d.ts +2 -2
  63. package/dist/components/highlight/highlight.d.ts +14 -0
  64. package/dist/components/highlight/index.d.ts +2 -0
  65. package/dist/components/icon-button/{icon-button.component.d.ts → icon-button.d.ts} +4 -4
  66. package/dist/components/icon-button/index.d.ts +1 -1
  67. package/dist/components/inline-message/index.d.ts +2 -2
  68. package/dist/components/inline-message/inline-message.d.ts +14 -0
  69. package/dist/components/input/index.d.ts +2 -2
  70. package/dist/components/input/input.d.ts +21 -0
  71. package/dist/components/line-clamp/index.d.ts +1 -1
  72. package/dist/components/line-clamp/line-clamp.d.ts +12 -0
  73. package/dist/components/link/base-link.d.ts +2 -2
  74. package/dist/components/link/index.d.ts +2 -2
  75. package/dist/components/link/link.d.ts +11 -0
  76. package/dist/components/list/index.d.ts +2 -2
  77. package/dist/components/list/list-item.d.ts +23 -0
  78. package/dist/components/list/list.d.ts +11 -0
  79. package/dist/components/loading-overlay/index.d.ts +1 -1
  80. package/dist/components/loading-overlay/{loading-overlay.component.d.ts → loading-overlay.d.ts} +5 -5
  81. package/dist/components/loading-spinner/index.d.ts +1 -1
  82. package/dist/components/loading-spinner/loading-spinner.d.ts +13 -0
  83. package/dist/components/logo/index.d.ts +2 -2
  84. package/dist/components/logo/logo.d.ts +13 -0
  85. package/dist/components/main-menu/index.d.ts +5 -5
  86. package/dist/components/main-menu/main-menu-button.d.ts +12 -0
  87. package/dist/components/main-menu/main-menu-link.d.ts +9 -0
  88. package/dist/components/main-menu/main-menu-subtitle.d.ts +12 -0
  89. package/dist/components/main-menu/main-menu-title.d.ts +12 -0
  90. package/dist/components/main-menu/{main-menu.component.d.ts → main-menu.d.ts} +4 -4
  91. package/dist/components/main.d.ts +62 -51
  92. package/dist/components/menu/index.d.ts +2 -3
  93. package/dist/components/menu/menu-label.d.ts +9 -0
  94. package/dist/components/menu/menu.d.ts +24 -0
  95. package/dist/components/menu-item/index.d.ts +2 -0
  96. package/dist/components/menu-item/menu-item.d.ts +14 -0
  97. package/dist/components/modal/index.d.ts +3 -0
  98. package/dist/components/modal/modal.d.ts +35 -0
  99. package/dist/components/modal/modal.models.d.ts +5 -0
  100. package/dist/components/navigation-item/index.d.ts +2 -2
  101. package/dist/components/navigation-item/navigation-item.d.ts +14 -0
  102. package/dist/components/option/index.d.ts +1 -1
  103. package/dist/components/option/option.d.ts +12 -0
  104. package/dist/components/page/index.d.ts +2 -2
  105. package/dist/components/page/{page.component.d.ts → page.d.ts} +5 -5
  106. package/dist/components/page-layout/index.d.ts +1 -1
  107. package/dist/components/page-layout/page-layout.d.ts +11 -0
  108. package/dist/components/pagination/index.d.ts +2 -0
  109. package/dist/components/pagination/pagination.d.ts +32 -0
  110. package/dist/components/progress-bar/index.d.ts +2 -2
  111. package/dist/components/progress-bar/{progress-bar.component.d.ts → progress-bar.d.ts} +5 -5
  112. package/dist/components/radio-button/index.d.ts +1 -1
  113. package/dist/components/radio-button/radio-button.d.ts +13 -0
  114. package/dist/components/radio-group/index.d.ts +2 -2
  115. package/dist/components/radio-group/radio-group.d.ts +11 -0
  116. package/dist/components/rail-navigation/index.d.ts +1 -1
  117. package/dist/components/rail-navigation/rail-navigation.d.ts +19 -0
  118. package/dist/components/search-bar/index.d.ts +3 -3
  119. package/dist/components/search-bar/{search-bar.component.d.ts → search-bar.d.ts} +6 -5
  120. package/dist/components/select/index.d.ts +1 -1
  121. package/dist/components/select/select.d.ts +18 -0
  122. package/dist/components/separator/index.d.ts +2 -1
  123. package/dist/components/separator/separator.d.ts +16 -0
  124. package/dist/components/skeleton/index.d.ts +2 -1
  125. package/dist/components/skeleton/skeleton.d.ts +16 -0
  126. package/dist/components/skeleton/skeleton.models.d.ts +13 -0
  127. package/dist/components/slider/index.d.ts +4 -4
  128. package/dist/components/slider/{slider-handle.component.d.ts → slider-handle.d.ts} +7 -7
  129. package/dist/components/slider/{slider-marks.component.d.ts → slider-marks.d.ts} +5 -5
  130. package/dist/components/slider/slider.d.ts +27 -0
  131. package/dist/components/spacer/index.d.ts +1 -1
  132. package/dist/components/spacer/spacer.d.ts +13 -0
  133. package/dist/components/spinbox/index.d.ts +1 -1
  134. package/dist/components/spinbox/{spinbox.component.d.ts → spinbox.d.ts} +5 -5
  135. package/dist/components/stack/index.d.ts +2 -2
  136. package/dist/components/stack/{stack.component.d.ts → stack.d.ts} +5 -5
  137. package/dist/components/switch/index.d.ts +1 -1
  138. package/dist/components/switch/switch.d.ts +12 -0
  139. package/dist/components/table/index.d.ts +9 -0
  140. package/dist/components/table/table-body.d.ts +12 -0
  141. package/dist/components/table/table-cell.d.ts +12 -0
  142. package/dist/{elements/table/elements/table-checkbox-cell/table-checkbox-cell.element.d.ts → components/table/table-checkbox-cell.d.ts} +4 -4
  143. package/dist/components/table/table-header-cell.d.ts +13 -0
  144. package/dist/components/table/table-header.d.ts +14 -0
  145. package/dist/{elements/table/elements/table-row/table-row.element.d.ts → components/table/table-row.d.ts} +4 -4
  146. package/dist/components/table/table.d.ts +20 -0
  147. package/dist/{elements/table/table.context.d.ts → components/table/table.models.d.ts} +1 -1
  148. package/dist/components/text/index.d.ts +2 -2
  149. package/dist/components/text/text.d.ts +13 -0
  150. package/dist/components/text/text.models.d.ts +1 -0
  151. package/dist/components/title/index.d.ts +2 -2
  152. package/dist/components/title/title.d.ts +13 -0
  153. package/dist/components/toast/index.d.ts +3 -0
  154. package/dist/components/toast/toast.d.ts +13 -0
  155. package/dist/{elements/toast/models/toast-variant.d.ts → components/toast/toast.models.d.ts} +1 -1
  156. package/dist/components/toggle-button/index.d.ts +1 -1
  157. package/dist/components/toggle-button/{toggle-button.component.d.ts → toggle-button.d.ts} +4 -4
  158. package/dist/components/toggle-content/index.d.ts +2 -0
  159. package/dist/components/toggle-content/toggle-content.d.ts +13 -0
  160. package/dist/components/tooltip/index.d.ts +3 -0
  161. package/dist/{elements/tooltip/tooltip.element.d.ts → components/tooltip/tooltip.d.ts} +6 -7
  162. package/dist/{elements/tooltip/models/tooltip-placement.d.ts → components/tooltip/tooltip.models.d.ts} +1 -1
  163. package/dist/components/translate/index.d.ts +2 -0
  164. package/dist/components/translate/translate.d.ts +16 -0
  165. package/dist/components/visually-hidden/index.d.ts +1 -1
  166. package/dist/components/visually-hidden/visually-hidden.d.ts +11 -0
  167. package/dist/components.js +5042 -0
  168. package/dist/i18n/lib/config.d.ts +29 -0
  169. package/dist/i18n/lib/format.d.ts +6 -0
  170. package/dist/i18n/lib/is-localized.mixin.d.ts +15 -0
  171. package/dist/i18n/lib/localization.d.ts +5 -0
  172. package/dist/{lib/models/single-unit-identifier.d.ts → i18n/lib/models.d.ts} +2 -1
  173. package/dist/i18n/lib/translate.d.ts +11 -0
  174. package/dist/i18n/main.d.ts +7 -0
  175. package/dist/i18n.js +145 -0
  176. package/dist/lib/custom-element.d.ts +10 -0
  177. package/dist/lib/decorators/request-update-on-aria-change.d.ts +4 -0
  178. package/dist/lib/facade/checkbox-form-control.d.ts +2 -2
  179. package/dist/lib/facade/checkbox-group-form-control.d.ts +3 -3
  180. package/dist/lib/facade/option-control.d.ts +3 -3
  181. package/dist/lib/facade/radio-group-form-control.d.ts +3 -3
  182. package/dist/lib/facade/select-form-control.d.ts +3 -3
  183. package/dist/lib/main.d.ts +31 -7
  184. package/dist/lib/mixins/can-be-disabled.d.ts +3 -3
  185. package/dist/lib/mixins/can-be-expanded.d.ts +12 -0
  186. package/dist/lib/mixins/can-be-readonly.d.ts +2 -2
  187. package/dist/lib/mixins/can-be-required.d.ts +2 -2
  188. package/dist/lib/mixins/can-be-selected.d.ts +9 -0
  189. package/dist/lib/mixins/can-be-validated.d.ts +2 -2
  190. package/dist/lib/mixins/form-control.d.ts +6 -6
  191. package/dist/lib/mixins/number-control.d.ts +3 -3
  192. package/dist/lib/mixins/with-loading-state.d.ts +2 -2
  193. package/dist/lib/{models/aria-mixin-strict.d.ts → utils/a11y.d.ts} +3 -1
  194. package/dist/lib/utils/{parse-date.d.ts → date.d.ts} +1 -1
  195. package/dist/lib/utils/dom.d.ts +9 -0
  196. package/dist/lib/utils/{create-options.d.ts → object.d.ts} +1 -1
  197. package/dist/lib/utils/search-text-content.d.ts +7 -0
  198. package/dist/lib/utils/shared-intersection-observer.d.ts +7 -0
  199. package/dist/lib/utils/shared-resize-observer.d.ts +7 -0
  200. package/dist/loader/main.d.ts +2 -0
  201. package/dist/loader.js +13 -0
  202. package/dist/main.js +1124 -0
  203. package/dist/styles.css +1 -0
  204. package/dist/vendor-C_WVAD3D.js +3680 -0
  205. package/dist/vite.config.d.ts +3 -0
  206. package/package.json +28 -27
  207. package/dist/assets/draeger-pangea-text-medium.woff2 +0 -0
  208. package/dist/assets/draeger-pangea-text-regular.woff2 +0 -0
  209. package/dist/assets/draeger-pangea-text-semibold.woff2 +0 -0
  210. package/dist/assets/fonts.css +0 -20
  211. package/dist/cdk/drag-drop/drag.controller.js +0 -90
  212. package/dist/cdk/drag-drop/is-draggable.js +0 -42
  213. package/dist/cdk/main.js +0 -5
  214. package/dist/cdk/popover/popover-host.mixin.css.js +0 -3
  215. package/dist/cdk/popover/popover-host.mixin.js +0 -115
  216. package/dist/cdk/popover/popover.component.css.js +0 -3
  217. package/dist/cdk/popover/popover.component.d.ts +0 -12
  218. package/dist/cdk/popover/popover.component.js +0 -38
  219. package/dist/cdk/popover/popover.models.js +0 -32
  220. package/dist/cdk/popover/popover.utils.js +0 -48
  221. package/dist/components/accordion/accordion-header.component.css.js +0 -3
  222. package/dist/components/accordion/accordion-header.component.d.ts +0 -18
  223. package/dist/components/accordion/accordion-header.component.js +0 -69
  224. package/dist/components/accordion/accordion-panel.component.css.js +0 -3
  225. package/dist/components/accordion/accordion-panel.component.d.ts +0 -11
  226. package/dist/components/accordion/accordion-panel.component.js +0 -29
  227. package/dist/components/accordion/accordion.component.css.js +0 -3
  228. package/dist/components/accordion/accordion.component.d.ts +0 -18
  229. package/dist/components/accordion/accordion.component.js +0 -83
  230. package/dist/components/area-header/area-header.component.css.js +0 -3
  231. package/dist/components/area-header/area-header.component.js +0 -37
  232. package/dist/components/area-header/area-header.models.js +0 -11
  233. package/dist/components/avatar/avatar.component.css.js +0 -3
  234. package/dist/components/avatar/avatar.component.d.ts +0 -14
  235. package/dist/components/avatar/avatar.component.js +0 -31
  236. package/dist/components/avatar/avatar.models.js +0 -12
  237. package/dist/components/avatar-group/avatar-group.component.css.js +0 -3
  238. package/dist/components/avatar-group/avatar-group.component.d.ts +0 -14
  239. package/dist/components/avatar-group/avatar-group.component.js +0 -31
  240. package/dist/components/badge/badge.component.css.js +0 -3
  241. package/dist/components/badge/badge.component.d.ts +0 -13
  242. package/dist/components/badge/badge.component.js +0 -32
  243. package/dist/components/badge/badge.models.js +0 -10
  244. package/dist/components/breadcrumb/breadcrumb-item.component.css.js +0 -3
  245. package/dist/components/breadcrumb/breadcrumb-item.component.d.ts +0 -16
  246. package/dist/components/breadcrumb/breadcrumb-item.component.js +0 -56
  247. package/dist/components/breadcrumb/breadcrumb.component.css.js +0 -3
  248. package/dist/components/breadcrumb/breadcrumb.component.d.ts +0 -17
  249. package/dist/components/breadcrumb/breadcrumb.component.js +0 -72
  250. package/dist/components/breadcrumb/index.d.ts +0 -3
  251. package/dist/components/button/base-button.css.js +0 -3
  252. package/dist/components/button/base-button.js +0 -78
  253. package/dist/components/button/button.component.css.js +0 -3
  254. package/dist/components/button/button.component.js +0 -66
  255. package/dist/components/button/button.models.js +0 -16
  256. package/dist/components/button-group/button-group.component.css.js +0 -3
  257. package/dist/components/button-group/button-group.component.d.ts +0 -18
  258. package/dist/components/button-group/button-group.component.js +0 -47
  259. package/dist/components/card/card.component.css.js +0 -3
  260. package/dist/components/card/card.component.d.ts +0 -13
  261. package/dist/components/card/card.component.js +0 -30
  262. package/dist/components/checkbox/checkbox.component.css.js +0 -3
  263. package/dist/components/checkbox/checkbox.component.js +0 -57
  264. package/dist/components/checkbox-group/checkbox-group.component.css.js +0 -3
  265. package/dist/components/checkbox-group/checkbox-group.component.d.ts +0 -14
  266. package/dist/components/checkbox-group/checkbox-group.component.js +0 -54
  267. package/dist/components/checkbox-group/checkbox-group.models.js +0 -5
  268. package/dist/components/chip/chip.component.css.js +0 -3
  269. package/dist/components/chip/chip.component.js +0 -94
  270. package/dist/components/chip/chip.models.js +0 -10
  271. package/dist/components/circular-progress-bar/circular-progress-bar.component.css.js +0 -3
  272. package/dist/components/circular-progress-bar/circular-progress-bar.component.js +0 -123
  273. package/dist/components/circular-progress-bar/circular-progress-bar.models.js +0 -7
  274. package/dist/components/content-box/content-box.component.css.js +0 -3
  275. package/dist/components/content-box/content-box.component.d.ts +0 -11
  276. package/dist/components/content-box/content-box.component.js +0 -26
  277. package/dist/components/dropdown/dropdown.component.css.js +0 -3
  278. package/dist/components/dropdown/dropdown.component.d.ts +0 -23
  279. package/dist/components/dropdown/dropdown.component.js +0 -121
  280. package/dist/components/dropdown/dropdown.models.js +0 -8
  281. package/dist/components/format/format-bytes.component.d.ts +0 -13
  282. package/dist/components/format/format-bytes.component.js +0 -46
  283. package/dist/components/format/format-date.component.d.ts +0 -14
  284. package/dist/components/format/format-date.component.js +0 -36
  285. package/dist/components/format/format-number.component.js +0 -59
  286. package/dist/components/format/format.component.d.ts +0 -12
  287. package/dist/components/format/format.component.js +0 -33
  288. package/dist/components/format/relative-time.component.js +0 -80
  289. package/dist/components/header/header-actions.component.css.js +0 -3
  290. package/dist/components/header/header-actions.component.d.ts +0 -10
  291. package/dist/components/header/header-actions.component.js +0 -22
  292. package/dist/components/header/header.component.css.js +0 -3
  293. package/dist/components/header/header.component.js +0 -58
  294. package/dist/components/headline/headline.component.css.js +0 -3
  295. package/dist/components/headline/headline.component.d.ts +0 -13
  296. package/dist/components/headline/headline.component.js +0 -31
  297. package/dist/components/headline/headline.models.js +0 -8
  298. package/dist/components/icon-button/icon-button.component.js +0 -33
  299. package/dist/components/inline-message/inline-message.component.css.js +0 -3
  300. package/dist/components/inline-message/inline-message.component.d.ts +0 -14
  301. package/dist/components/inline-message/inline-message.component.js +0 -39
  302. package/dist/components/inline-message/inline-message.models.js +0 -9
  303. package/dist/components/input/input.component.css.js +0 -3
  304. package/dist/components/input/input.component.d.ts +0 -20
  305. package/dist/components/input/input.component.js +0 -72
  306. package/dist/components/input/input.models.js +0 -7
  307. package/dist/components/line-clamp/line-clamp.component.css.js +0 -3
  308. package/dist/components/line-clamp/line-clamp.component.d.ts +0 -12
  309. package/dist/components/line-clamp/line-clamp.component.js +0 -37
  310. package/dist/components/link/base-link.js +0 -70
  311. package/dist/components/link/link.component.css.js +0 -3
  312. package/dist/components/link/link.component.d.ts +0 -11
  313. package/dist/components/link/link.component.js +0 -33
  314. package/dist/components/list/list-item.component.css.js +0 -3
  315. package/dist/components/list/list-item.component.d.ts +0 -11
  316. package/dist/components/list/list-item.component.js +0 -32
  317. package/dist/components/list/list.component.css.js +0 -3
  318. package/dist/components/list/list.component.d.ts +0 -11
  319. package/dist/components/list/list.component.js +0 -24
  320. package/dist/components/loading-overlay/loading-overlay.component.css.js +0 -3
  321. package/dist/components/loading-overlay/loading-overlay.component.js +0 -78
  322. package/dist/components/loading-spinner/loading-spinner.component.css.js +0 -3
  323. package/dist/components/loading-spinner/loading-spinner.component.d.ts +0 -13
  324. package/dist/components/loading-spinner/loading-spinner.component.js +0 -58
  325. package/dist/components/logo/logo.component.css.js +0 -3
  326. package/dist/components/logo/logo.component.d.ts +0 -13
  327. package/dist/components/logo/logo.component.js +0 -38
  328. package/dist/components/logo/logo.models.js +0 -9
  329. package/dist/components/main-menu/main-menu-button.component.d.ts +0 -12
  330. package/dist/components/main-menu/main-menu-button.component.js +0 -38
  331. package/dist/components/main-menu/main-menu-link.component.css.js +0 -3
  332. package/dist/components/main-menu/main-menu-link.component.d.ts +0 -9
  333. package/dist/components/main-menu/main-menu-link.component.js +0 -19
  334. package/dist/components/main-menu/main-menu-subtitle.component.d.ts +0 -12
  335. package/dist/components/main-menu/main-menu-subtitle.component.js +0 -29
  336. package/dist/components/main-menu/main-menu-title.component.d.ts +0 -12
  337. package/dist/components/main-menu/main-menu-title.component.js +0 -29
  338. package/dist/components/main-menu/main-menu.component.css.js +0 -3
  339. package/dist/components/main-menu/main-menu.component.js +0 -82
  340. package/dist/components/main.js +0 -102
  341. package/dist/components/menu/menu-item.component.css.js +0 -3
  342. package/dist/components/menu/menu-item.component.d.ts +0 -13
  343. package/dist/components/menu/menu-item.component.js +0 -37
  344. package/dist/components/menu/menu-label.component.css.js +0 -3
  345. package/dist/components/menu/menu-label.component.d.ts +0 -11
  346. package/dist/components/menu/menu-label.component.js +0 -26
  347. package/dist/components/menu/menu.component.css.js +0 -3
  348. package/dist/components/menu/menu.component.d.ts +0 -24
  349. package/dist/components/menu/menu.component.js +0 -110
  350. package/dist/components/navigation-item/navigation-item.component.css.js +0 -3
  351. package/dist/components/navigation-item/navigation-item.component.d.ts +0 -16
  352. package/dist/components/navigation-item/navigation-item.component.js +0 -42
  353. package/dist/components/navigation-item/navigation-item.models.js +0 -6
  354. package/dist/components/option/option.component.css.js +0 -3
  355. package/dist/components/option/option.component.d.ts +0 -12
  356. package/dist/components/option/option.component.js +0 -37
  357. package/dist/components/page/page.component.css.js +0 -3
  358. package/dist/components/page/page.component.js +0 -53
  359. package/dist/components/page/page.models.js +0 -9
  360. package/dist/components/page-layout/page-layout.component.css.js +0 -3
  361. package/dist/components/page-layout/page-layout.component.d.ts +0 -11
  362. package/dist/components/page-layout/page-layout.component.js +0 -28
  363. package/dist/components/progress-bar/progress-bar.component.css.js +0 -3
  364. package/dist/components/progress-bar/progress-bar.component.js +0 -89
  365. package/dist/components/progress-bar/progress-bar.models.js +0 -7
  366. package/dist/components/radio-button/radio-button.component.css.js +0 -3
  367. package/dist/components/radio-button/radio-button.component.d.ts +0 -13
  368. package/dist/components/radio-button/radio-button.component.js +0 -39
  369. package/dist/components/radio-group/radio-group.component.css.js +0 -3
  370. package/dist/components/radio-group/radio-group.component.d.ts +0 -11
  371. package/dist/components/radio-group/radio-group.component.js +0 -24
  372. package/dist/components/radio-group/radio-group.models.js +0 -5
  373. package/dist/components/rail-navigation/rail-navigation.component.css.js +0 -3
  374. package/dist/components/rail-navigation/rail-navigation.component.d.ts +0 -24
  375. package/dist/components/rail-navigation/rail-navigation.component.js +0 -71
  376. package/dist/components/search-bar/search-bar.component.css.js +0 -3
  377. package/dist/components/search-bar/search-bar.component.js +0 -100
  378. package/dist/components/search-bar/search-bar.events.js +0 -7
  379. package/dist/components/search-bar/search-bar.models.js +0 -6
  380. package/dist/components/select/select.component.css.js +0 -3
  381. package/dist/components/select/select.component.d.ts +0 -18
  382. package/dist/components/select/select.component.js +0 -100
  383. package/dist/components/separator/separator.component.css.js +0 -3
  384. package/dist/components/separator/separator.component.d.ts +0 -16
  385. package/dist/components/separator/separator.component.js +0 -49
  386. package/dist/components/skeleton/skeleton.component.css.js +0 -3
  387. package/dist/components/skeleton/skeleton.component.d.ts +0 -12
  388. package/dist/components/skeleton/skeleton.component.js +0 -32
  389. package/dist/components/slider/slider-handle.component.css.js +0 -3
  390. package/dist/components/slider/slider-handle.component.js +0 -168
  391. package/dist/components/slider/slider-marks.component.css.js +0 -3
  392. package/dist/components/slider/slider-marks.component.js +0 -61
  393. package/dist/components/slider/slider.component.css.js +0 -3
  394. package/dist/components/slider/slider.component.d.ts +0 -27
  395. package/dist/components/slider/slider.component.js +0 -119
  396. package/dist/components/slider/slider.models.js +0 -17
  397. package/dist/components/spacer/spacer.component.css.js +0 -3
  398. package/dist/components/spacer/spacer.component.d.ts +0 -13
  399. package/dist/components/spacer/spacer.component.js +0 -39
  400. package/dist/components/spinbox/spinbox.component.css.js +0 -3
  401. package/dist/components/spinbox/spinbox.component.js +0 -94
  402. package/dist/components/stack/stack.component.css.js +0 -3
  403. package/dist/components/stack/stack.component.js +0 -45
  404. package/dist/components/stack/stack.models.js +0 -23
  405. package/dist/components/switch/switch.component.css.js +0 -3
  406. package/dist/components/switch/switch.component.d.ts +0 -12
  407. package/dist/components/switch/switch.component.js +0 -36
  408. package/dist/components/text/text.component.css.js +0 -3
  409. package/dist/components/text/text.component.d.ts +0 -13
  410. package/dist/components/text/text.component.js +0 -34
  411. package/dist/components/text/text.models.js +0 -12
  412. package/dist/components/title/title.component.css.js +0 -3
  413. package/dist/components/title/title.component.d.ts +0 -13
  414. package/dist/components/title/title.component.js +0 -31
  415. package/dist/components/title/title.models.js +0 -10
  416. package/dist/components/toggle-button/toggle-button.component.css.js +0 -3
  417. package/dist/components/toggle-button/toggle-button.component.js +0 -52
  418. package/dist/components/visually-hidden/visually-hidden.component.css.js +0 -3
  419. package/dist/components/visually-hidden/visually-hidden.component.d.ts +0 -11
  420. package/dist/components/visually-hidden/visually-hidden.component.js +0 -22
  421. package/dist/elements/form-field/form-field.element.css.js +0 -3
  422. package/dist/elements/form-field/form-field.element.js +0 -62
  423. package/dist/elements/form-field/index.d.ts +0 -2
  424. package/dist/elements/main.d.ts +0 -5
  425. package/dist/elements/table/elements/table-body/index.d.ts +0 -2
  426. package/dist/elements/table/elements/table-body/table-body.element.css.js +0 -3
  427. package/dist/elements/table/elements/table-body/table-body.element.d.ts +0 -12
  428. package/dist/elements/table/elements/table-body/table-body.element.js +0 -26
  429. package/dist/elements/table/elements/table-cell/index.d.ts +0 -2
  430. package/dist/elements/table/elements/table-cell/table-cell.element.css.js +0 -3
  431. package/dist/elements/table/elements/table-cell/table-cell.element.d.ts +0 -12
  432. package/dist/elements/table/elements/table-cell/table-cell.element.js +0 -26
  433. package/dist/elements/table/elements/table-checkbox-cell/index.d.ts +0 -2
  434. package/dist/elements/table/elements/table-checkbox-cell/table-checkbox-cell.element.css.js +0 -3
  435. package/dist/elements/table/elements/table-checkbox-cell/table-checkbox-cell.element.js +0 -66
  436. package/dist/elements/table/elements/table-header/index.d.ts +0 -2
  437. package/dist/elements/table/elements/table-header/table-header.element.css.js +0 -3
  438. package/dist/elements/table/elements/table-header/table-header.element.d.ts +0 -14
  439. package/dist/elements/table/elements/table-header/table-header.element.js +0 -52
  440. package/dist/elements/table/elements/table-header-cell/index.d.ts +0 -2
  441. package/dist/elements/table/elements/table-header-cell/table-header-cell.element.css.js +0 -3
  442. package/dist/elements/table/elements/table-header-cell/table-header-cell.element.d.ts +0 -13
  443. package/dist/elements/table/elements/table-header-cell/table-header-cell.element.js +0 -40
  444. package/dist/elements/table/elements/table-row/index.d.ts +0 -2
  445. package/dist/elements/table/elements/table-row/table-row.element.css.js +0 -3
  446. package/dist/elements/table/elements/table-row/table-row.element.js +0 -111
  447. package/dist/elements/table/index.d.ts +0 -8
  448. package/dist/elements/table/table.element.css.js +0 -3
  449. package/dist/elements/table/table.element.d.ts +0 -20
  450. package/dist/elements/table/table.element.js +0 -97
  451. package/dist/elements/toast/index.d.ts +0 -3
  452. package/dist/elements/toast/models/index.d.ts +0 -2
  453. package/dist/elements/toast/models/toast-variant.js +0 -5
  454. package/dist/elements/toast/toast.element.css.js +0 -3
  455. package/dist/elements/toast/toast.element.d.ts +0 -13
  456. package/dist/elements/toast/toast.element.js +0 -31
  457. package/dist/elements/tooltip/index.d.ts +0 -3
  458. package/dist/elements/tooltip/models/index.d.ts +0 -2
  459. package/dist/elements/tooltip/models/tooltip-placement.js +0 -10
  460. package/dist/elements/tooltip/tooltip.element.css.js +0 -3
  461. package/dist/elements/tooltip/tooltip.element.js +0 -120
  462. package/dist/lib/controllers/focus-trap.controller.js +0 -55
  463. package/dist/lib/controllers/index.d.ts +0 -2
  464. package/dist/lib/directives/aria-boolean-attr.d.ts +0 -3
  465. package/dist/lib/directives/aria-boolean-attr.js +0 -9
  466. package/dist/lib/directives/index.d.ts +0 -5
  467. package/dist/lib/directives/optional-attr.js +0 -8
  468. package/dist/lib/directives/optional-slot.js +0 -14
  469. package/dist/lib/directives/slot-fallback.js +0 -16
  470. package/dist/lib/external/index.d.ts +0 -2
  471. package/dist/lib/external/roving-tabindex.d.ts +0 -87
  472. package/dist/lib/external/roving-tabindex.js +0 -386
  473. package/dist/lib/facade/checkbox-form-control.js +0 -78
  474. package/dist/lib/facade/checkbox-group-form-control.js +0 -109
  475. package/dist/lib/facade/index.d.ts +0 -6
  476. package/dist/lib/facade/option-control.js +0 -49
  477. package/dist/lib/facade/radio-group-form-control.js +0 -87
  478. package/dist/lib/facade/select-form-control.js +0 -108
  479. package/dist/lib/main.js +0 -35
  480. package/dist/lib/mixins/can-be-disabled.js +0 -60
  481. package/dist/lib/mixins/can-be-readonly.js +0 -33
  482. package/dist/lib/mixins/can-be-required.js +0 -33
  483. package/dist/lib/mixins/can-be-validated.js +0 -32
  484. package/dist/lib/mixins/dedupe-mixin.js +0 -23
  485. package/dist/lib/mixins/form-control.js +0 -61
  486. package/dist/lib/mixins/index.d.ts +0 -12
  487. package/dist/lib/mixins/is-localized.d.ts +0 -13
  488. package/dist/lib/mixins/is-localized.js +0 -41
  489. package/dist/lib/mixins/is-translatable.d.ts +0 -13
  490. package/dist/lib/mixins/is-translatable.js +0 -20
  491. package/dist/lib/mixins/number-control.js +0 -63
  492. package/dist/lib/mixins/with-aria-controls.d.ts +0 -11
  493. package/dist/lib/mixins/with-aria-controls.js +0 -43
  494. package/dist/lib/mixins/with-loading-state.js +0 -33
  495. package/dist/lib/models/custom-element.css.js +0 -3
  496. package/dist/lib/models/custom-element.d.ts +0 -10
  497. package/dist/lib/models/custom-element.js +0 -27
  498. package/dist/lib/models/index.d.ts +0 -5
  499. package/dist/lib/models/locale.d.ts +0 -2
  500. package/dist/lib/utils/create-intersection-observer.d.ts +0 -8
  501. package/dist/lib/utils/create-intersection-observer.js +0 -9
  502. package/dist/lib/utils/create-mutation-observer.d.ts +0 -8
  503. package/dist/lib/utils/create-mutation-observer.js +0 -9
  504. package/dist/lib/utils/create-options.js +0 -7
  505. package/dist/lib/utils/create-resize-observer.d.ts +0 -8
  506. package/dist/lib/utils/create-resize-observer.js +0 -9
  507. package/dist/lib/utils/dom.js +0 -35
  508. package/dist/lib/utils/element-loader.d.ts +0 -4
  509. package/dist/lib/utils/format.d.ts +0 -20
  510. package/dist/lib/utils/format.js +0 -56
  511. package/dist/lib/utils/get-unique-id.js +0 -15
  512. package/dist/lib/utils/index.d.ts +0 -13
  513. package/dist/lib/utils/keyboard-events.js +0 -42
  514. package/dist/lib/utils/localization.d.ts +0 -15
  515. package/dist/lib/utils/localization.js +0 -41
  516. package/dist/lib/utils/parse-date.js +0 -10
  517. package/dist/lib/utils/request-update-on-aria-change.d.ts +0 -34
  518. package/dist/lib/utils/request-update-on-aria-change.js +0 -15
  519. package/dist/lib/utils/shared-intersection-observer.js +0 -32
  520. package/dist/lib/utils/shared-resize-observer.js +0 -33
  521. package/dist/lib/utils/wait-for-animations.d.ts +0 -2
  522. package/dist/lib/utils/wait-for-animations.js +0 -8
  523. package/dist/styles/main.css +0 -1
  524. package/public/assets/draeger-pangea-text-medium.woff2 +0 -0
  525. package/public/assets/draeger-pangea-text-regular.woff2 +0 -0
  526. package/public/assets/draeger-pangea-text-semibold.woff2 +0 -0
  527. package/public/assets/fonts.css +0 -20
package/dist/main.js ADDED
@@ -0,0 +1,1124 @@
1
+ import { r as round, t as toMerged, c as createFocusTrap, u as uniqBy, R as RovingTabindexController } from './vendor-C_WVAD3D.js';
2
+ import { isServer, nothing, html, LitElement, unsafeCSS, CSSResult } from 'lit';
3
+ import { directive, Directive } from 'lit/directive.js';
4
+ import { property, queryAssignedElements } from 'lit/decorators.js';
5
+ export { effect } from '@lit-labs/preact-signals';
6
+
7
+ function createMutationObserver(callback) {
8
+ try {
9
+ return new MutationObserver(callback);
10
+ } catch {
11
+ return { takeRecords: () => [], observe: () => void 0, disconnect: () => void 0 };
12
+ }
13
+ }
14
+ function toggleAttribute(element, name, value) {
15
+ if (!element) return;
16
+ if (typeof value === "boolean") {
17
+ element.toggleAttribute(name, value);
18
+ return;
19
+ }
20
+ if (value != null) {
21
+ element.setAttribute(name, value.toString());
22
+ return;
23
+ }
24
+ element.removeAttribute(name);
25
+ }
26
+ function getElementFromEvent(event, filterFn) {
27
+ return event.composedPath().find((node) => node instanceof Element && filterFn(node));
28
+ }
29
+ function findClosestDocument(node) {
30
+ let parent = node.parentNode;
31
+ while (parent && parent.nodeType !== Node.DOCUMENT_FRAGMENT_NODE && parent.nodeType !== Node.DOCUMENT_NODE) {
32
+ parent = parent.parentNode;
33
+ }
34
+ return parent;
35
+ }
36
+ function toPx(value) {
37
+ const coercedValue = Number(value);
38
+ if (Number.isNaN(coercedValue)) return null;
39
+ return `${round(coercedValue, 2)}px`;
40
+ }
41
+ function getAssignedElements(host, ...slots) {
42
+ const selector = slots.map((slot) => `[slot=${slot}]`).join(", ") || "*";
43
+ return Array.from(host.querySelectorAll(`:is(${selector})`));
44
+ }
45
+ async function waitForAnimations(element, subtree = false) {
46
+ if (!element || typeof element.getAnimations !== "function") {
47
+ return [];
48
+ }
49
+ return Promise.all(element.getAnimations({ subtree }).map((animation) => animation.finished)).catch(() => []);
50
+ }
51
+ function forwardEvent(event) {
52
+ event.stopPropagation();
53
+ this.dispatchEvent(new CustomEvent(event.type, { bubbles: true, composed: true, cancelable: true }));
54
+ }
55
+
56
+ function createOptions(defaultOptions) {
57
+ return (options) => toMerged(defaultOptions, options ?? {});
58
+ }
59
+
60
+ const FocusTrapControllerOptions = createOptions({
61
+ escapeDeactivates: false,
62
+ tabbableOptions: { getShadowRoot: true }
63
+ });
64
+ class FocusTrapController {
65
+ #host;
66
+ #options;
67
+ #focusTrap;
68
+ constructor(host, options) {
69
+ this.#host = host;
70
+ this.#options = FocusTrapControllerOptions(options);
71
+ this.#host.addController(this);
72
+ }
73
+ async activate() {
74
+ await this.#host.updateComplete;
75
+ this.#focusTrap?.activate();
76
+ }
77
+ async deactivate() {
78
+ await this.#host.updateComplete;
79
+ this.#focusTrap?.deactivate();
80
+ }
81
+ async toggle(state) {
82
+ if (state ?? !this.#focusTrap?.active) {
83
+ return this.activate();
84
+ }
85
+ return this.deactivate();
86
+ }
87
+ async hostConnected() {
88
+ if (isServer) return;
89
+ await this.#host.updateComplete;
90
+ this.#focusTrap ??= createFocusTrap(this.#host, {
91
+ ...this.#options,
92
+ checkCanFocusTrap: this.#checkCanFocusTrap.bind(this),
93
+ checkCanReturnFocus: this.#checkCanReturnFocus.bind(this)
94
+ });
95
+ }
96
+ hostDisconnected() {
97
+ this.deactivate();
98
+ }
99
+ async #checkCanFocusTrap(containers) {
100
+ await waitForAnimations(this.#host);
101
+ await this.#options.checkCanFocusTrap?.(containers);
102
+ }
103
+ async #checkCanReturnFocus(trigger) {
104
+ await waitForAnimations(this.#host);
105
+ await this.#options.checkCanReturnFocus?.(trigger);
106
+ }
107
+ }
108
+
109
+ function ariaPropertyToAttribute(property) {
110
+ return property.replace("aria", "aria-").replace(/Elements?/g, "").toLowerCase();
111
+ }
112
+ function requestUpdateOnAriaChange(ariaProperties) {
113
+ return (ctor) => {
114
+ for (const ariaProperty of ariaProperties) {
115
+ ctor.createProperty(ariaProperty, {
116
+ attribute: ariaPropertyToAttribute(ariaProperty),
117
+ reflect: true
118
+ });
119
+ }
120
+ };
121
+ }
122
+
123
+ const optionalAttr = (value) => {
124
+ if (value === void 0 || value === null || value === "") return nothing;
125
+ return value;
126
+ };
127
+
128
+ function optionalSlot(host, slotName) {
129
+ if (host.querySelector(`[slot="${slotName}"]`)) {
130
+ return html`
131
+ <div class="${slotName}" part="${slotName}-container">
132
+ <slot name="${slotName}" @slotchange="${() => host.requestUpdate()}"></slot>
133
+ </div>
134
+ `;
135
+ }
136
+ return nothing;
137
+ }
138
+
139
+ class SlotFallbackDirective extends Directive {
140
+ update({ options, element }) {
141
+ const host = options?.host;
142
+ if (!host || !(element instanceof HTMLSlotElement)) return;
143
+ const attributeName = ["empty-slot", element.name].filter(Boolean).join("-");
144
+ toggleAttribute(host, attributeName, !host.textContent?.trim() && element.assignedElements().length === 0);
145
+ }
146
+ render() {
147
+ }
148
+ }
149
+ const emptySlotFallbackFix = directive(SlotFallbackDirective);
150
+
151
+ const customElementStyles = "@layer reset,base,variant,state,theme,override;@layer reset{:is(*),:before,:after{box-sizing:border-box}img,picture,video,canvas,svg{display:block;max-width:100%;margin:0}input,button,textarea,select{font:inherit;margin:0}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word;margin:0}p{text-wrap:pretty;margin:0}h1,h2,h3,h4,h5,h6{text-wrap:balance;margin:0}#root,#__next{isolation:isolate;margin:0}}@layer base{h1,h2,h3,h4,h5,h6{display:block;font-family:var(--odx-typography-font-family-brand);font-size:var(--_font-size);font-weight:var(--odx-typography-font-weight-semibold);line-height:var(--_line-height);color:inherit}h6{--_font-size: var(--odx-breakpoint-font-size-heading-6);--_line-height: var(--odx-breakpoint-line-height-heading-6)}h5{--_font-size: var(--odx-breakpoint-font-size-heading-5);--_line-height: var(--odx-breakpoint-line-height-heading-5)}h4{--_font-size: var(--odx-breakpoint-font-size-heading-4);--_line-height: var(--odx-breakpoint-line-height-heading-4)}h3{--_font-size: var(--odx-breakpoint-font-size-heading-3);--_line-height: var(--odx-breakpoint-line-height-heading-3)}h2{--_font-size: var(--odx-breakpoint-font-size-heading-2);--_line-height: var(--odx-breakpoint-line-height-heading-2)}h1{--_font-size: var(--odx-breakpoint-font-size-heading-1);--_line-height: var(--odx-breakpoint-line-height-heading-1)}[odxPreventTextOverflow]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@layer reset{:where(:host){box-sizing:border-box;border:none;color:inherit;outline:none}}";
152
+
153
+ function toCSSResult(value) {
154
+ return value instanceof CSSResult || value instanceof CSSStyleSheet ? value : unsafeCSS(value);
155
+ }
156
+ function isCustomElementClass(candidate) {
157
+ if (!candidate || typeof candidate !== "function") return false;
158
+ return "selector" in candidate && "define" in candidate && typeof candidate.define === "function";
159
+ }
160
+ function customElement(selector, styles = []) {
161
+ return (target) => {
162
+ const preparedStyles = [customElementStyles, target.styles ?? [], ...styles].filter(Boolean).flat(2).map(toCSSResult);
163
+ if (selector) {
164
+ target.styles = uniqBy(preparedStyles, String);
165
+ target.selector = selector;
166
+ target.define = () => {
167
+ if (customElements.get(selector)) return;
168
+ customElements.define(selector, target);
169
+ };
170
+ }
171
+ };
172
+ }
173
+ class CustomElement extends LitElement {
174
+ render() {
175
+ return html`<slot></slot>`;
176
+ }
177
+ emit(event, eventInit) {
178
+ return !this.dispatchEvent(new CustomEvent(event, { bubbles: false, composed: false, cancelable: true, ...eventInit }));
179
+ }
180
+ }
181
+
182
+ function toAriaBooleanAttribute(value, removeOnFalse = true) {
183
+ if (removeOnFalse && value === false) return null;
184
+ return String(value);
185
+ }
186
+ function fromAriaBooleanAttribute(value) {
187
+ return value === "true";
188
+ }
189
+
190
+ const appliedClassMixins = /* @__PURE__ */ new WeakMap();
191
+ function wasMixinPreviouslyApplied(mixin, superClass) {
192
+ let klass = superClass;
193
+ while (klass) {
194
+ if (appliedClassMixins.get(klass) === mixin) {
195
+ return true;
196
+ }
197
+ klass = Object.getPrototypeOf(klass);
198
+ }
199
+ return false;
200
+ }
201
+ function dedupeMixin(mixin) {
202
+ return (superClass) => {
203
+ if (wasMixinPreviouslyApplied(mixin, superClass)) {
204
+ return superClass;
205
+ }
206
+ const mixedClass = mixin(superClass);
207
+ appliedClassMixins.set(mixedClass, mixin);
208
+ return mixedClass;
209
+ };
210
+ }
211
+
212
+ var __defProp$c = Object.defineProperty;
213
+ var __getOwnPropDesc$c = Object.getOwnPropertyDescriptor;
214
+ var __decorateClass$c = (decorators, target, key, kind) => {
215
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$c(target, key) : target;
216
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
217
+ if (decorator = decorators[i])
218
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
219
+ if (kind && result) __defProp$c(target, key, result);
220
+ return result;
221
+ };
222
+ const CanBeDisabled = dedupeMixin((superClass) => {
223
+ class CanBeDisabledMixin extends superClass {
224
+ constructor() {
225
+ super(...arguments);
226
+ this.#initialTabIndex = null;
227
+ this._contextDisabled = false;
228
+ this.disabled = false;
229
+ }
230
+ #initialTabIndex;
231
+ isContextDisabled() {
232
+ return this._contextDisabled || this.disabled;
233
+ }
234
+ connectedCallback() {
235
+ super.connectedCallback?.();
236
+ this.#initialTabIndex = this.hasAttribute("tabindex") ? this.tabIndex : null;
237
+ }
238
+ willUpdate(props) {
239
+ super.willUpdate?.(props);
240
+ if (props.has("_contextDisabled") || props.has("disabled")) {
241
+ this.#handleDisabledChange();
242
+ }
243
+ }
244
+ #handleDisabledChange() {
245
+ const disabled = this.isContextDisabled();
246
+ this.ariaDisabled = toAriaBooleanAttribute(disabled);
247
+ if (disabled) {
248
+ this.tabIndex = -1;
249
+ } else if (this.#initialTabIndex !== null) {
250
+ this.tabIndex = this.#initialTabIndex;
251
+ } else {
252
+ this.removeAttribute("tabindex");
253
+ }
254
+ }
255
+ }
256
+ __decorateClass$c([
257
+ property({ type: Boolean })
258
+ ], CanBeDisabledMixin.prototype, "_contextDisabled", 2);
259
+ __decorateClass$c([
260
+ property({ type: Boolean })
261
+ ], CanBeDisabledMixin.prototype, "disabled", 2);
262
+ return CanBeDisabledMixin;
263
+ });
264
+
265
+ var __defProp$b = Object.defineProperty;
266
+ var __getOwnPropDesc$b = Object.getOwnPropertyDescriptor;
267
+ var __decorateClass$b = (decorators, target, key, kind) => {
268
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$b(target, key) : target;
269
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
270
+ if (decorator = decorators[i])
271
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
272
+ if (kind && result) __defProp$b(target, key, result);
273
+ return result;
274
+ };
275
+ const CanBeReadonly = dedupeMixin((superClass) => {
276
+ class CanBeReadonlyElement extends superClass {
277
+ constructor() {
278
+ super(...arguments);
279
+ this.readonly = false;
280
+ }
281
+ willUpdate(props) {
282
+ super.willUpdate?.(props);
283
+ if (props.has("readonly")) {
284
+ this.ariaReadOnly = toAriaBooleanAttribute(this.readonly);
285
+ }
286
+ }
287
+ }
288
+ __decorateClass$b([
289
+ property({ type: Boolean, reflect: true })
290
+ ], CanBeReadonlyElement.prototype, "readonly", 2);
291
+ return CanBeReadonlyElement;
292
+ });
293
+
294
+ var __defProp$a = Object.defineProperty;
295
+ var __getOwnPropDesc$a = Object.getOwnPropertyDescriptor;
296
+ var __decorateClass$a = (decorators, target, key, kind) => {
297
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$a(target, key) : target;
298
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
299
+ if (decorator = decorators[i])
300
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
301
+ if (kind && result) __defProp$a(target, key, result);
302
+ return result;
303
+ };
304
+ const CanBeRequired = dedupeMixin((superClass) => {
305
+ class CanBeRequiredElement extends superClass {
306
+ constructor() {
307
+ super(...arguments);
308
+ this.required = false;
309
+ }
310
+ willUpdate(props) {
311
+ super.willUpdate?.(props);
312
+ if (props.has("required")) {
313
+ this.ariaRequired = toAriaBooleanAttribute(this.required);
314
+ }
315
+ }
316
+ }
317
+ __decorateClass$a([
318
+ property({ type: Boolean, reflect: true })
319
+ ], CanBeRequiredElement.prototype, "required", 2);
320
+ return CanBeRequiredElement;
321
+ });
322
+
323
+ const CanBeValidated = dedupeMixin((superClass) => {
324
+ class CanBeValidatedElement extends superClass {
325
+ constructor() {
326
+ super(...arguments);
327
+ this.focusable = true;
328
+ }
329
+ get validity() {
330
+ return this.internals.validity;
331
+ }
332
+ get validationMessage() {
333
+ return this.internals.validationMessage;
334
+ }
335
+ get willValidate() {
336
+ return this.internals.willValidate;
337
+ }
338
+ checkValidity() {
339
+ return this.internals.checkValidity();
340
+ }
341
+ reportValidity() {
342
+ this.internals.reportValidity();
343
+ }
344
+ setValidity(flags, target = this) {
345
+ const errorKey = Object.keys(flags ?? {}).find((key) => flags?.[key] === true);
346
+ this.internals.setValidity(flags, errorKey ?? "unknown error", target);
347
+ }
348
+ }
349
+ return CanBeValidatedElement;
350
+ });
351
+
352
+ var __defProp$9 = Object.defineProperty;
353
+ var __getOwnPropDesc$9 = Object.getOwnPropertyDescriptor;
354
+ var __decorateClass$9 = (decorators, target, key, kind) => {
355
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$9(target, key) : target;
356
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
357
+ if (decorator = decorators[i])
358
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
359
+ if (kind && result) __defProp$9(target, key, result);
360
+ return result;
361
+ };
362
+ const FormControl = dedupeMixin((superClass) => {
363
+ class FormControlElement extends CanBeValidated(CanBeRequired(CanBeReadonly(CanBeDisabled(superClass)))) {
364
+ constructor(...args) {
365
+ super(...args);
366
+ this.name = "";
367
+ this.value = "";
368
+ this.internals = this.attachInternals();
369
+ }
370
+ static {
371
+ this.formAssociated = true;
372
+ }
373
+ static {
374
+ this.shadowRootOptions = {
375
+ ...CustomElement.shadowRootOptions,
376
+ delegatesFocus: true
377
+ };
378
+ }
379
+ get form() {
380
+ return this.internals.form;
381
+ }
382
+ toFormValue() {
383
+ return this.value;
384
+ }
385
+ willUpdate(props) {
386
+ super.willUpdate?.(props);
387
+ this.updateAriaAttributes?.();
388
+ }
389
+ updated(props) {
390
+ super.updated(props);
391
+ if (props.has("value")) {
392
+ this.internals.setFormValue(this.toFormValue());
393
+ }
394
+ }
395
+ }
396
+ __decorateClass$9([
397
+ property()
398
+ ], FormControlElement.prototype, "name", 2);
399
+ __decorateClass$9([
400
+ property()
401
+ ], FormControlElement.prototype, "value", 2);
402
+ return FormControlElement;
403
+ });
404
+
405
+ const KeyboardKey = {
406
+ ARROW_UP: "ArrowUp",
407
+ ARROW_DOWN: "ArrowDown",
408
+ ARROW_LEFT: "ArrowLeft",
409
+ ARROW_RIGHT: "ArrowRight",
410
+ ENTER: "Enter",
411
+ ESCAPE: "Escape",
412
+ SPACE: " ",
413
+ TAB: "Tab",
414
+ BACKSPACE: "Backspace",
415
+ DELETE: "Delete",
416
+ END: "End",
417
+ HOME: "Home",
418
+ PAGE_UP: "PageUp",
419
+ PAGE_DOWN: "PageDown",
420
+ SHIFT: "Shift",
421
+ CONTROL: "Control",
422
+ ALT: "Alt",
423
+ META: "Meta"
424
+ };
425
+ function getKeyboardEventInfo(event) {
426
+ const { key } = event;
427
+ const up = key === KeyboardKey.ARROW_UP;
428
+ const right = key === KeyboardKey.ARROW_RIGHT;
429
+ const down = key === KeyboardKey.ARROW_DOWN;
430
+ const left = key === KeyboardKey.ARROW_LEFT;
431
+ return {
432
+ axis: { x: left || right, y: up || down },
433
+ direction: { up, right, down, left },
434
+ actions: {
435
+ enter: key === KeyboardKey.ENTER,
436
+ escape: key === KeyboardKey.ESCAPE,
437
+ space: key === KeyboardKey.SPACE,
438
+ tab: key === KeyboardKey.TAB && !event.shiftKey,
439
+ backTab: key === KeyboardKey.TAB && event.shiftKey,
440
+ start: key === KeyboardKey.HOME,
441
+ end: key === KeyboardKey.END
442
+ }
443
+ };
444
+ }
445
+
446
+ var __defProp$8 = Object.defineProperty;
447
+ var __getOwnPropDesc$8 = Object.getOwnPropertyDescriptor;
448
+ var __decorateClass$8 = (decorators, target, key, kind) => {
449
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$8(target, key) : target;
450
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
451
+ if (decorator = decorators[i])
452
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
453
+ if (kind && result) __defProp$8(target, key, result);
454
+ return result;
455
+ };
456
+ const LINK_SELECTORS = /* @__PURE__ */ new Set(["a", "button", "odx-link"]);
457
+ class CheckboxFormControl extends FormControl(CustomElement) {
458
+ constructor() {
459
+ super();
460
+ this.role = null;
461
+ this.checked = false;
462
+ this.#handleClick = ({ target }) => {
463
+ const { localName } = target;
464
+ if (LINK_SELECTORS.has(localName)) return;
465
+ this.toggle(void 0, true);
466
+ };
467
+ this.#handleKeyboardEvent = (event) => {
468
+ const { actions } = getKeyboardEventInfo(event);
469
+ if (!actions.enter && !actions.space) return;
470
+ const { localName } = event.target;
471
+ event.preventDefault();
472
+ if (event.type === "keydown" || LINK_SELECTORS.has(localName)) return;
473
+ this.toggle(void 0, true);
474
+ };
475
+ if (!isServer) {
476
+ this.addEventListener("click", this.#handleClick);
477
+ this.addEventListener("keydown", this.#handleKeyboardEvent);
478
+ this.addEventListener("keyup", this.#handleKeyboardEvent);
479
+ }
480
+ }
481
+ static {
482
+ this.shadowRootOptions = {
483
+ ...CustomElement.shadowRootOptions,
484
+ delegatesFocus: false
485
+ };
486
+ }
487
+ toFormValue() {
488
+ if (this.value) {
489
+ return this.checked ? this.value : null;
490
+ }
491
+ return this.checked ? "on" : null;
492
+ }
493
+ toggle(state, emitEvent = false) {
494
+ const currentState = this.checked;
495
+ const newState = state ?? !currentState;
496
+ if (this.disabled || this.readonly || newState === currentState) return;
497
+ this.checked = newState;
498
+ if (!emitEvent || !this.emit("change")) return;
499
+ this.checked = currentState;
500
+ }
501
+ connectedCallback() {
502
+ this.tabIndex = 0;
503
+ super.connectedCallback?.();
504
+ this.role ||= "checkbox";
505
+ }
506
+ updateAriaAttributes() {
507
+ super.updateAriaAttributes?.();
508
+ this.ariaChecked = toAriaBooleanAttribute(this.checked, false);
509
+ }
510
+ #handleClick;
511
+ #handleKeyboardEvent;
512
+ }
513
+ __decorateClass$8([
514
+ property({ type: Boolean, reflect: true })
515
+ ], CheckboxFormControl.prototype, "checked", 2);
516
+
517
+ var __defProp$7 = Object.defineProperty;
518
+ var __getOwnPropDesc$7 = Object.getOwnPropertyDescriptor;
519
+ var __decorateClass$7 = (decorators, target, key, kind) => {
520
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$7(target, key) : target;
521
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
522
+ if (decorator = decorators[i])
523
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
524
+ if (kind && result) __defProp$7(target, key, result);
525
+ return result;
526
+ };
527
+ const GROUP_CONTROL_SELECTOR = "odx-checkbox-group-control";
528
+ const _CheckboxGroupFormControl = class _CheckboxGroupFormControl extends FormControl(CustomElement) {
529
+ constructor() {
530
+ super();
531
+ this.value = [];
532
+ this.#handleChangeEvent = (event) => {
533
+ const { target } = event;
534
+ if (!this.isControl(target)) return;
535
+ if (target.checked) {
536
+ this.updateValue([...this.value, target.value], true);
537
+ return;
538
+ }
539
+ this.updateValue(
540
+ this.value.filter((value) => value !== target.value),
541
+ true
542
+ );
543
+ };
544
+ if (!isServer) {
545
+ this.addEventListener("change", this.#handleChangeEvent);
546
+ }
547
+ }
548
+ get childGroups() {
549
+ return this.elements.filter((element) => element instanceof _CheckboxGroupFormControl);
550
+ }
551
+ get controls() {
552
+ return this.#findCheckboxControls((element) => !element.hasAttribute(GROUP_CONTROL_SELECTOR)).concat(this.childGroups.flatMap((group) => group.controls));
553
+ }
554
+ get groupControls() {
555
+ return this.#findCheckboxControls((element) => element.hasAttribute(GROUP_CONTROL_SELECTOR));
556
+ }
557
+ toFormValue() {
558
+ const formData = new FormData();
559
+ this.value.forEach((value, index) => {
560
+ formData.append(`${this.name}[${index}]`, value);
561
+ });
562
+ return formData;
563
+ }
564
+ isIndeterminate() {
565
+ return this.value.length > 0 && this.value.length < this.controls.length;
566
+ }
567
+ isControl(element) {
568
+ return element instanceof CheckboxFormControl;
569
+ }
570
+ updated(props) {
571
+ super.updated(props);
572
+ if (props.has("value")) {
573
+ this.updateCheckboxControls((control) => {
574
+ control.checked = this.value.includes(control.value);
575
+ });
576
+ for (const groupControl of this.groupControls) {
577
+ if (groupControl instanceof CheckboxFormControl && "indeterminate" in groupControl) {
578
+ groupControl.indeterminate = this.isIndeterminate();
579
+ groupControl.checked = this.controls.length > 0 && this.value.length === this.controls.length;
580
+ }
581
+ }
582
+ }
583
+ if (props.has("name")) {
584
+ this.updateCheckboxControls((control) => {
585
+ control.name = this.name;
586
+ });
587
+ }
588
+ if (props.has("disabled")) {
589
+ this.updateCheckboxControls((control) => {
590
+ control.disabled = this.disabled;
591
+ });
592
+ }
593
+ if (props.has("readonly")) {
594
+ this.updateCheckboxControls((control) => {
595
+ control.readonly = this.readonly;
596
+ });
597
+ }
598
+ }
599
+ updateCheckboxControls(updateFn) {
600
+ this.controls.forEach(updateFn);
601
+ }
602
+ updateValue(value, dispatchEvent) {
603
+ this.value = value;
604
+ if (!dispatchEvent) return;
605
+ this.emit("change");
606
+ }
607
+ #handleChangeEvent;
608
+ #findCheckboxControls(predicate) {
609
+ return this.elements.filter((element) => this.isControl(element) && predicate(element));
610
+ }
611
+ };
612
+ __decorateClass$7([
613
+ queryAssignedElements({ flatten: true })
614
+ ], _CheckboxGroupFormControl.prototype, "elements", 2);
615
+ __decorateClass$7([
616
+ property({ type: Array })
617
+ ], _CheckboxGroupFormControl.prototype, "value", 2);
618
+ let CheckboxGroupFormControl = _CheckboxGroupFormControl;
619
+
620
+ var __defProp$6 = Object.defineProperty;
621
+ var __getOwnPropDesc$6 = Object.getOwnPropertyDescriptor;
622
+ var __decorateClass$6 = (decorators, target, key, kind) => {
623
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$6(target, key) : target;
624
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
625
+ if (decorator = decorators[i])
626
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
627
+ if (kind && result) __defProp$6(target, key, result);
628
+ return result;
629
+ };
630
+ class OptionControl extends CanBeDisabled(CustomElement) {
631
+ constructor() {
632
+ super(...arguments);
633
+ this.role = null;
634
+ this.selected = false;
635
+ this.value = "";
636
+ }
637
+ getTextLabel() {
638
+ return this.textContent?.trim() ?? "";
639
+ }
640
+ setActive() {
641
+ this.setAttribute("odx-active", "true");
642
+ }
643
+ setInactive() {
644
+ this.removeAttribute("odx-active");
645
+ }
646
+ connectedCallback() {
647
+ super.connectedCallback?.();
648
+ this.role ||= "option";
649
+ }
650
+ willUpdate(changes) {
651
+ super.willUpdate?.(changes);
652
+ if (changes.has("selected")) {
653
+ this.ariaSelected = toAriaBooleanAttribute(this.selected, false);
654
+ }
655
+ }
656
+ }
657
+ __decorateClass$6([
658
+ property({ type: Boolean })
659
+ ], OptionControl.prototype, "selected", 2);
660
+ __decorateClass$6([
661
+ property()
662
+ ], OptionControl.prototype, "value", 2);
663
+
664
+ var __defProp$5 = Object.defineProperty;
665
+ var __getOwnPropDesc$5 = Object.getOwnPropertyDescriptor;
666
+ var __decorateClass$5 = (decorators, target, key, kind) => {
667
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$5(target, key) : target;
668
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
669
+ if (decorator = decorators[i])
670
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
671
+ if (kind && result) __defProp$5(target, key, result);
672
+ return result;
673
+ };
674
+ class RadioGroupFormControl extends FormControl(CustomElement) {
675
+ static {
676
+ this.shadowRootOptions = {
677
+ ...CustomElement.shadowRootOptions,
678
+ delegatesFocus: true
679
+ };
680
+ }
681
+ constructor() {
682
+ super();
683
+ if (!isServer) {
684
+ this.addEventListener("change", this.#handleChange, { capture: true });
685
+ new RovingTabindexController(this, {
686
+ direction: "both",
687
+ elements: () => this.getControls(),
688
+ elementEnterAction: (element) => element.click(),
689
+ focusInIndex: (elements) => elements.findIndex((element) => element.checked)
690
+ });
691
+ }
692
+ }
693
+ getControls() {
694
+ return this.elements.filter((element) => this.isControl(element));
695
+ }
696
+ connectedCallback() {
697
+ super.connectedCallback?.();
698
+ this.role ||= "radiogroup";
699
+ }
700
+ isControl(element) {
701
+ return element instanceof CheckboxFormControl;
702
+ }
703
+ update(changes) {
704
+ super.update?.(changes);
705
+ if (changes.has("value")) {
706
+ this.updateCheckboxControls((control) => {
707
+ control.checked = this.value.includes(control.value);
708
+ });
709
+ }
710
+ if (changes.has("name")) {
711
+ this.updateCheckboxControls((control) => {
712
+ control.name = this.name;
713
+ });
714
+ }
715
+ if (changes.has("disabled")) {
716
+ this.updateCheckboxControls((control) => {
717
+ control.disabled = this.disabled;
718
+ });
719
+ }
720
+ if (changes.has("readonly")) {
721
+ this.updateCheckboxControls((control) => {
722
+ control.readonly = this.readonly;
723
+ });
724
+ }
725
+ if (changes.has("required") || changes.has("value")) {
726
+ const [firstControl] = this.getControls();
727
+ if (!firstControl) return;
728
+ this.setValidity({ valueMissing: this.required && this.value.length === 0 }, firstControl);
729
+ }
730
+ }
731
+ async updateCheckboxControls(updateFn) {
732
+ await 0;
733
+ this.getControls().forEach(updateFn);
734
+ }
735
+ #handleChange = ({ target }) => {
736
+ if (!this.isControl(target) || this.value === target.value) return;
737
+ this.value = target.value;
738
+ };
739
+ }
740
+ __decorateClass$5([
741
+ queryAssignedElements({ flatten: true })
742
+ ], RadioGroupFormControl.prototype, "elements", 2);
743
+
744
+ var __defProp$4 = Object.defineProperty;
745
+ var __getOwnPropDesc$4 = Object.getOwnPropertyDescriptor;
746
+ var __decorateClass$4 = (decorators, target, key, kind) => {
747
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$4(target, key) : target;
748
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
749
+ if (decorator = decorators[i])
750
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
751
+ if (kind && result) __defProp$4(target, key, result);
752
+ return result;
753
+ };
754
+ class SelectFormControl extends FormControl(
755
+ CustomElement
756
+ ) {
757
+ constructor() {
758
+ super();
759
+ this.#selectedOptions = /* @__PURE__ */ new Map();
760
+ this.multiple = false;
761
+ this.value = "";
762
+ this.handleKeyboardEvent = (event) => {
763
+ const { actions } = getKeyboardEventInfo(event);
764
+ const option = getElementFromEvent(event, (node) => node instanceof OptionControl);
765
+ if (!option || !actions.enter && !actions.space) return;
766
+ event.preventDefault();
767
+ if (event.type === "keydown") return;
768
+ this.toggle(option, void 0, true);
769
+ };
770
+ this.#handleClick = (event) => {
771
+ const option = getElementFromEvent(event, (node) => node instanceof OptionControl);
772
+ if (!option) return;
773
+ this.toggle(option, void 0, true);
774
+ };
775
+ if (!isServer) {
776
+ this.addEventListener("click", this.#handleClick);
777
+ this.addEventListener("keydown", this.handleKeyboardEvent);
778
+ this.addEventListener("keyup", this.handleKeyboardEvent);
779
+ }
780
+ }
781
+ #selectedOptions;
782
+ get selectedOptions() {
783
+ return this.#selectedOptions.values();
784
+ }
785
+ toggle(option, state, emitEvent = false) {
786
+ const currentState = option.selected;
787
+ const newState = state ?? !option.selected;
788
+ if (this.disabled || newState === option.selected) return;
789
+ option.selected = newState;
790
+ this.updateValue(option);
791
+ if (!emitEvent || !this.emit("change")) return;
792
+ option.selected = currentState;
793
+ this.updateValue(option);
794
+ }
795
+ updateValue(option) {
796
+ if (this.multiple) {
797
+ const value = typeof this.value === "string" ? [this.value].filter(Boolean) : this.value;
798
+ this.value = option.selected ? [...value, option.value] : value.filter((value2) => value2 !== option.value);
799
+ } else {
800
+ this.value = option.value;
801
+ }
802
+ }
803
+ willUpdate(changes) {
804
+ super.willUpdate?.(changes);
805
+ if (changes.has("multiple")) {
806
+ const [selectedOption] = Array.from(this.#selectedOptions.entries());
807
+ if (selectedOption) {
808
+ this.updateValue(selectedOption[1]);
809
+ }
810
+ }
811
+ if (changes.has("value")) {
812
+ this.updateSelection();
813
+ }
814
+ if (changes.has("required") || changes.has("value")) {
815
+ const [selectedOption] = this.#selectedOptions.values();
816
+ if (!selectedOption?.selected) return;
817
+ this.setValidity({ valueMissing: this.required && this.value.length === 0 }, selectedOption);
818
+ }
819
+ }
820
+ async updateSelection() {
821
+ if (this.disabled) return;
822
+ await 0;
823
+ for (const option of this.options ?? []) {
824
+ if (option.disabled) continue;
825
+ option.selected = this.multiple ? this.value.includes(option.value) : this.value === option.value;
826
+ option.setInactive();
827
+ if (option.selected) {
828
+ this.#selectedOptions.set(option.value, option);
829
+ } else {
830
+ this.#selectedOptions.delete(option.value);
831
+ }
832
+ }
833
+ this.requestUpdate();
834
+ }
835
+ #handleClick;
836
+ }
837
+ __decorateClass$4([
838
+ property({ type: Boolean, reflect: true })
839
+ ], SelectFormControl.prototype, "multiple", 2);
840
+ __decorateClass$4([
841
+ property()
842
+ ], SelectFormControl.prototype, "value", 2);
843
+
844
+ var __defProp$3 = Object.defineProperty;
845
+ var __getOwnPropDesc$3 = Object.getOwnPropertyDescriptor;
846
+ var __decorateClass$3 = (decorators, target, key, kind) => {
847
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$3(target, key) : target;
848
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
849
+ if (decorator = decorators[i])
850
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
851
+ if (kind && result) __defProp$3(target, key, result);
852
+ return result;
853
+ };
854
+ const CanBeExpanded = dedupeMixin((superClass) => {
855
+ class CanBeExpandedMixin extends CanBeDisabled(superClass) {
856
+ constructor() {
857
+ super(...arguments);
858
+ this.expanded = false;
859
+ }
860
+ collapse(emitEvent = false) {
861
+ this.toggle(false, emitEvent);
862
+ }
863
+ expand(emitEvent = false) {
864
+ this.toggle(true, emitEvent);
865
+ }
866
+ toggle(force, emitEvent = false) {
867
+ const newState = force ?? !this.expanded;
868
+ if (this.isContextDisabled() || this.expanded === newState) return;
869
+ const currentState = this.expanded;
870
+ this.expanded = newState;
871
+ if (!emitEvent || !this.emit(newState ? "expand" : "collapse", { composed: true, bubbles: true })) return;
872
+ this.expanded = currentState;
873
+ }
874
+ }
875
+ __decorateClass$3([
876
+ property({ type: Boolean })
877
+ ], CanBeExpandedMixin.prototype, "expanded", 2);
878
+ return CanBeExpandedMixin;
879
+ });
880
+
881
+ var __defProp$2 = Object.defineProperty;
882
+ var __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor;
883
+ var __decorateClass$2 = (decorators, target, key, kind) => {
884
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target;
885
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
886
+ if (decorator = decorators[i])
887
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
888
+ if (kind && result) __defProp$2(target, key, result);
889
+ return result;
890
+ };
891
+ const CanBeSelected = dedupeMixin((superClass) => {
892
+ class CanBeSelectedElement extends superClass {
893
+ constructor() {
894
+ super(...arguments);
895
+ this.selected = false;
896
+ this.ariaSelectedValue = "page";
897
+ }
898
+ willUpdate(props) {
899
+ super.willUpdate(props);
900
+ if (props.has("selected") || props.has("ariaSelectedValue")) {
901
+ this.ariaCurrent = this.selected ? this.ariaSelectedValue : null;
902
+ }
903
+ }
904
+ }
905
+ __decorateClass$2([
906
+ property({ type: Boolean })
907
+ ], CanBeSelectedElement.prototype, "selected", 2);
908
+ __decorateClass$2([
909
+ property()
910
+ ], CanBeSelectedElement.prototype, "ariaSelectedValue", 2);
911
+ return CanBeSelectedElement;
912
+ });
913
+
914
+ var __defProp$1 = Object.defineProperty;
915
+ var __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor;
916
+ var __decorateClass$1 = (decorators, target, key, kind) => {
917
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1(target, key) : target;
918
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
919
+ if (decorator = decorators[i])
920
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
921
+ if (kind && result) __defProp$1(target, key, result);
922
+ return result;
923
+ };
924
+ const MIN_STEP_VALUE = 1 / 2 ^ 16;
925
+ const NumberControl = dedupeMixin((superClass) => {
926
+ class NumberControlElement extends FormControl(superClass) {
927
+ constructor() {
928
+ super(...arguments);
929
+ this.min = 0;
930
+ this.max = 100;
931
+ this.step = 1;
932
+ this.value = 0;
933
+ }
934
+ getValueText() {
935
+ return this.ariaValueText?.trim() ?? "";
936
+ }
937
+ update(props) {
938
+ if (props.has("value")) {
939
+ this.internals.ariaValueNow = String(this.value);
940
+ this.internals.ariaValueText = this.getValueText();
941
+ }
942
+ if (props.has("min")) {
943
+ this.internals.ariaValueMin = String(this.min);
944
+ }
945
+ if (props.has("max")) {
946
+ this.internals.ariaValueMax = String(this.max);
947
+ }
948
+ if (props.has("step")) {
949
+ this.step = Math.max(MIN_STEP_VALUE, this.step);
950
+ }
951
+ this.value = Math.max(this.min, Math.min(this.value, this.max));
952
+ super.update?.(props);
953
+ }
954
+ toFormValue() {
955
+ return String(this.value);
956
+ }
957
+ }
958
+ __decorateClass$1([
959
+ property({ type: Number })
960
+ ], NumberControlElement.prototype, "min", 2);
961
+ __decorateClass$1([
962
+ property({ type: Number })
963
+ ], NumberControlElement.prototype, "max", 2);
964
+ __decorateClass$1([
965
+ property({ type: Number })
966
+ ], NumberControlElement.prototype, "step", 2);
967
+ __decorateClass$1([
968
+ property({ type: Number, reflect: true })
969
+ ], NumberControlElement.prototype, "value", 2);
970
+ return NumberControlElement;
971
+ });
972
+
973
+ var __defProp = Object.defineProperty;
974
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
975
+ var __decorateClass = (decorators, target, key, kind) => {
976
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
977
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
978
+ if (decorator = decorators[i])
979
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
980
+ if (kind && result) __defProp(target, key, result);
981
+ return result;
982
+ };
983
+ const WithLoadingState = dedupeMixin((superClass) => {
984
+ class WithLoadingStateElement extends superClass {
985
+ get loadingContainer() {
986
+ return this;
987
+ }
988
+ set loading(value) {
989
+ this.loadingContainer.ariaBusy = toAriaBooleanAttribute(value);
990
+ }
991
+ get loading() {
992
+ return fromAriaBooleanAttribute(this.loadingContainer.ariaBusy);
993
+ }
994
+ }
995
+ __decorateClass([
996
+ property({ type: Boolean, reflect: true })
997
+ ], WithLoadingStateElement.prototype, "loading", 1);
998
+ return WithLoadingStateElement;
999
+ });
1000
+
1001
+ function parseDate(value) {
1002
+ const date = new Date(value);
1003
+ if (Number.isNaN(date.getTime()) && typeof value === "string") {
1004
+ const timestamp = Number(value);
1005
+ return Number.isNaN(timestamp) ? null : new Date(timestamp);
1006
+ }
1007
+ return Number.isNaN(date.getTime()) ? null : date;
1008
+ }
1009
+
1010
+ const uniqueIdCache = /* @__PURE__ */ new Map();
1011
+ function getUniqueId(key) {
1012
+ const nextIndex = (uniqueIdCache.get(key) ?? 0) + 1;
1013
+ uniqueIdCache.set(key, nextIndex);
1014
+ return `${key}-${nextIndex}`;
1015
+ }
1016
+ function clearUniqueIdCache(key) {
1017
+ if (key) {
1018
+ uniqueIdCache.delete(key);
1019
+ } else {
1020
+ uniqueIdCache.clear();
1021
+ }
1022
+ }
1023
+
1024
+ function search(value, searchString, callback) {
1025
+ let index = 0;
1026
+ while (index < value.length) {
1027
+ index = value.indexOf(searchString, index);
1028
+ if (index === -1) break;
1029
+ callback?.(index);
1030
+ index += searchString.length;
1031
+ }
1032
+ }
1033
+ function searchTextContent(options) {
1034
+ const query = options.query?.trim().toLowerCase();
1035
+ const ranges = [];
1036
+ if (!query || query.length < options.minlength) return ranges;
1037
+ const walker = document.createTreeWalker(options.root, NodeFilter.SHOW_TEXT);
1038
+ while (walker.nextNode()) {
1039
+ const content = walker.currentNode.textContent?.toLowerCase();
1040
+ if (!content?.includes(query)) continue;
1041
+ search(content, query, (index) => {
1042
+ const range = new Range();
1043
+ range.setStart(walker.currentNode, index);
1044
+ range.setEnd(walker.currentNode, index + query.length);
1045
+ ranges.push(range);
1046
+ });
1047
+ }
1048
+ return ranges;
1049
+ }
1050
+
1051
+ function createIntersectionObserver(callback, options) {
1052
+ try {
1053
+ return new IntersectionObserver(callback, options);
1054
+ } catch {
1055
+ return { root: null, rootMargin: "", thresholds: [], takeRecords: () => [], observe: () => void 0, disconnect: () => void 0, unobserve: () => void 0 };
1056
+ }
1057
+ }
1058
+ class SharedIntersectionObserverInstance {
1059
+ #observer;
1060
+ #handlers = /* @__PURE__ */ new WeakMap();
1061
+ #updateLog = /* @__PURE__ */ new WeakMap();
1062
+ observe(target, handler, options = { fpsLimit: 60 }) {
1063
+ this.#observer ??= createIntersectionObserver(this.#handleIntersection);
1064
+ this.#handlers.set(target, [handler, options.fpsLimit]);
1065
+ this.#observer.observe(target);
1066
+ }
1067
+ unobserve(target) {
1068
+ this.#handlers.delete(target);
1069
+ this.#observer?.unobserve(target);
1070
+ }
1071
+ #handleIntersection = (entries) => {
1072
+ if (!this.#observer) return;
1073
+ for (const entry of entries) {
1074
+ const [handler, fpsLimit] = this.#handlers.get(entry.target) ?? [];
1075
+ if (typeof handler !== "function" || !this.#shouldUpdate(entry.target, fpsLimit)) continue;
1076
+ handler?.([entry], this.#observer);
1077
+ this.#updateLog.set(entry.target, Date.now());
1078
+ }
1079
+ };
1080
+ #shouldUpdate(target, fpsLimit) {
1081
+ if (!target.isConnected || typeof fpsLimit !== "number" || fpsLimit < 1) return false;
1082
+ return Date.now() - (this.#updateLog.get(target) ?? 0) >= 1e3 / fpsLimit;
1083
+ }
1084
+ }
1085
+ const SharedIntersectionObserver = new SharedIntersectionObserverInstance();
1086
+
1087
+ function createResizeObserver(callback) {
1088
+ try {
1089
+ return new ResizeObserver(callback);
1090
+ } catch {
1091
+ return { observe: () => void 0, disconnect: () => void 0, unobserve: () => void 0 };
1092
+ }
1093
+ }
1094
+ class SharedResizeObserverInstance {
1095
+ #observer;
1096
+ #handlers = /* @__PURE__ */ new WeakMap();
1097
+ #updateLog = /* @__PURE__ */ new WeakMap();
1098
+ observe(target, handler, options = { fpsLimit: 60 }) {
1099
+ const { fpsLimit, ...observerOptions } = options;
1100
+ this.#observer ??= createResizeObserver(this.#handleResize);
1101
+ this.#handlers.set(target, [handler, fpsLimit]);
1102
+ this.#observer.observe(target, observerOptions);
1103
+ }
1104
+ unobserve(target) {
1105
+ this.#handlers.delete(target);
1106
+ this.#observer?.unobserve(target);
1107
+ }
1108
+ #handleResize = (entries) => {
1109
+ if (!this.#observer) return;
1110
+ for (const entry of entries) {
1111
+ const [handler, fpsLimit] = this.#handlers.get(entry.target) ?? [];
1112
+ if (typeof handler !== "function" || !this.#shouldUpdate(entry.target, fpsLimit ?? 60)) continue;
1113
+ handler?.([entry], this.#observer);
1114
+ this.#updateLog.set(entry.target, Date.now());
1115
+ }
1116
+ };
1117
+ #shouldUpdate(target, fpsLimit) {
1118
+ if (!target.isConnected || fpsLimit < 1) return false;
1119
+ return Date.now() - (this.#updateLog.get(target) ?? 0) >= 1e3 / fpsLimit;
1120
+ }
1121
+ }
1122
+ const SharedResizeObserver = new SharedResizeObserverInstance();
1123
+
1124
+ export { CanBeDisabled, CanBeExpanded, CanBeReadonly, CanBeRequired, CanBeSelected, CanBeValidated, CheckboxFormControl, CheckboxGroupFormControl, CustomElement, FocusTrapController, FormControl, KeyboardKey, NumberControl, OptionControl, RadioGroupFormControl, SelectFormControl, SharedIntersectionObserver, SharedResizeObserver, WithLoadingState, clearUniqueIdCache, createIntersectionObserver, createMutationObserver, createOptions, createResizeObserver, customElement, dedupeMixin, emptySlotFallbackFix, findClosestDocument, forwardEvent, fromAriaBooleanAttribute, getAssignedElements, getElementFromEvent, getKeyboardEventInfo, getUniqueId, isCustomElementClass, optionalAttr, optionalSlot, parseDate, requestUpdateOnAriaChange, searchTextContent, toAriaBooleanAttribute, toPx, toggleAttribute, waitForAnimations };