@odx/foundation 1.0.0-alpha.3 → 1.0.0-alpha.30

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