@odx/foundation 1.0.0-alpha.2 → 1.0.0-alpha.20

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