@odx/foundation 0.1.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (485) hide show
  1. package/LICENSE +5 -0
  2. package/README.md +49 -0
  3. package/dist/base-link-CvZZE13a.js +69 -0
  4. package/dist/cdk/drag-drop/drag-events.d.ts +9 -0
  5. package/dist/cdk/drag-drop/drag-events.d.ts.map +1 -0
  6. package/dist/cdk/drag-drop/drag.controller.d.ts +17 -0
  7. package/dist/cdk/drag-drop/drag.controller.d.ts.map +1 -0
  8. package/dist/cdk/drag-drop/is-draggable.d.ts +18 -0
  9. package/dist/cdk/drag-drop/is-draggable.d.ts.map +1 -0
  10. package/dist/cdk/main.d.ts +7 -0
  11. package/dist/cdk/main.d.ts.map +1 -0
  12. package/dist/cdk/popover/models/index.d.ts +4 -0
  13. package/dist/cdk/popover/models/index.d.ts.map +1 -0
  14. package/dist/cdk/popover/models/popover-placement-options.d.ts +13 -0
  15. package/dist/cdk/popover/models/popover-placement-options.d.ts.map +1 -0
  16. package/dist/cdk/popover/models/popover-placement.d.ts +16 -0
  17. package/dist/cdk/popover/models/popover-placement.d.ts.map +1 -0
  18. package/dist/cdk/popover/models/popover-side.d.ts +8 -0
  19. package/dist/cdk/popover/models/popover-side.d.ts.map +1 -0
  20. package/dist/cdk/popover/popover-host.mixin.d.ts +18 -0
  21. package/dist/cdk/popover/popover-host.mixin.d.ts.map +1 -0
  22. package/dist/cdk/popover/popover.element.d.ts +12 -0
  23. package/dist/cdk/popover/popover.element.d.ts.map +1 -0
  24. package/dist/cdk/popover/utils/compute-popover-placement.d.ts +4 -0
  25. package/dist/cdk/popover/utils/compute-popover-placement.d.ts.map +1 -0
  26. package/dist/cdk/popover/utils/get-popover-side.d.ts +3 -0
  27. package/dist/cdk/popover/utils/get-popover-side.d.ts.map +1 -0
  28. package/dist/cdk/popover/utils/index.d.ts +3 -0
  29. package/dist/cdk/popover/utils/index.d.ts.map +1 -0
  30. package/dist/cdk.d.ts +2 -0
  31. package/dist/cdk.js +2082 -0
  32. package/dist/components/breadcrumb/breadcrumb-item.component.d.ts +16 -0
  33. package/dist/components/breadcrumb/breadcrumb-item.component.d.ts.map +1 -0
  34. package/dist/components/breadcrumb/breadcrumb.component.d.ts +17 -0
  35. package/dist/components/breadcrumb/breadcrumb.component.d.ts.map +1 -0
  36. package/dist/components/breadcrumb/index.d.ts +3 -0
  37. package/dist/components/breadcrumb/index.d.ts.map +1 -0
  38. package/dist/components/button/button.element.d.ts +41 -0
  39. package/dist/components/button/button.element.d.ts.map +1 -0
  40. package/dist/components/button/index.d.ts +3 -0
  41. package/dist/components/button/index.d.ts.map +1 -0
  42. package/dist/components/button/models/button-size.d.ts +7 -0
  43. package/dist/components/button/models/button-size.d.ts.map +1 -0
  44. package/dist/components/button/models/button-variant.d.ts +11 -0
  45. package/dist/components/button/models/button-variant.d.ts.map +1 -0
  46. package/dist/components/button/models/index.d.ts +3 -0
  47. package/dist/components/button/models/index.d.ts.map +1 -0
  48. package/dist/components/button-group/button-group.component.d.ts +12 -0
  49. package/dist/components/button-group/button-group.component.d.ts.map +1 -0
  50. package/dist/components/button-group/index.d.ts +2 -0
  51. package/dist/components/button-group/index.d.ts.map +1 -0
  52. package/dist/components/format/format-bytes.component.d.ts +13 -0
  53. package/dist/components/format/format-bytes.component.d.ts.map +1 -0
  54. package/dist/components/format/format-date.component.d.ts +14 -0
  55. package/dist/components/format/format-date.component.d.ts.map +1 -0
  56. package/dist/components/format/format-number.component.d.ts +20 -0
  57. package/dist/components/format/format-number.component.d.ts.map +1 -0
  58. package/dist/components/format/format.component.d.ts +12 -0
  59. package/dist/components/format/format.component.d.ts.map +1 -0
  60. package/dist/components/format/index.d.ts +5 -0
  61. package/dist/components/format/index.d.ts.map +1 -0
  62. package/dist/components/format/relative-time.component.d.ts +21 -0
  63. package/dist/components/format/relative-time.component.d.ts.map +1 -0
  64. package/dist/components/header/header-actions.component.d.ts +10 -0
  65. package/dist/components/header/header-actions.component.d.ts.map +1 -0
  66. package/dist/components/header/header.component.d.ts +14 -0
  67. package/dist/components/header/header.component.d.ts.map +1 -0
  68. package/dist/components/header/index.d.ts +3 -0
  69. package/dist/components/header/index.d.ts.map +1 -0
  70. package/dist/components/headline/headline.component.d.ts +13 -0
  71. package/dist/components/headline/headline.component.d.ts.map +1 -0
  72. package/dist/components/headline/index.d.ts +3 -0
  73. package/dist/components/headline/index.d.ts.map +1 -0
  74. package/dist/components/headline/models/headline-size.d.ts +8 -0
  75. package/dist/components/headline/models/headline-size.d.ts.map +1 -0
  76. package/dist/components/headline/models/index.d.ts +2 -0
  77. package/dist/components/headline/models/index.d.ts.map +1 -0
  78. package/dist/components/link/base-link.d.ts +15 -0
  79. package/dist/components/link/base-link.d.ts.map +1 -0
  80. package/dist/components/link/index.d.ts +3 -0
  81. package/dist/components/link/index.d.ts.map +1 -0
  82. package/dist/components/link/link.component.d.ts +10 -0
  83. package/dist/components/link/link.component.d.ts.map +1 -0
  84. package/dist/components/loading-indicator/index.d.ts +2 -0
  85. package/dist/components/loading-indicator/index.d.ts.map +1 -0
  86. package/dist/components/loading-indicator/loading-indicator.component.d.ts +11 -0
  87. package/dist/components/loading-indicator/loading-indicator.component.d.ts.map +1 -0
  88. package/dist/components/logo/index.d.ts +3 -0
  89. package/dist/components/logo/index.d.ts.map +1 -0
  90. package/dist/components/logo/logo.component.d.ts +13 -0
  91. package/dist/components/logo/logo.component.d.ts.map +1 -0
  92. package/dist/components/logo/models/index.d.ts +2 -0
  93. package/dist/components/logo/models/index.d.ts.map +1 -0
  94. package/dist/components/logo/models/logo-size.d.ts +9 -0
  95. package/dist/components/logo/models/logo-size.d.ts.map +1 -0
  96. package/dist/components/main.d.ts +18 -0
  97. package/dist/components/main.d.ts.map +1 -0
  98. package/dist/components/page/index.d.ts +3 -0
  99. package/dist/components/page/index.d.ts.map +1 -0
  100. package/dist/components/page/page.component.d.ts +17 -0
  101. package/dist/components/page/page.component.d.ts.map +1 -0
  102. package/dist/components/page/page.models.d.ts +10 -0
  103. package/dist/components/page/page.models.d.ts.map +1 -0
  104. package/dist/components/page-layout/index.d.ts +2 -0
  105. package/dist/components/page-layout/index.d.ts.map +1 -0
  106. package/dist/components/page-layout/page-layout.component.d.ts +11 -0
  107. package/dist/components/page-layout/page-layout.component.d.ts.map +1 -0
  108. package/dist/components/search-bar/events/index.d.ts +2 -0
  109. package/dist/components/search-bar/events/index.d.ts.map +1 -0
  110. package/dist/components/search-bar/events/search-event.d.ts +7 -0
  111. package/dist/components/search-bar/events/search-event.d.ts.map +1 -0
  112. package/dist/components/search-bar/index.d.ts +4 -0
  113. package/dist/components/search-bar/index.d.ts.map +1 -0
  114. package/dist/components/search-bar/models/index.d.ts +2 -0
  115. package/dist/components/search-bar/models/index.d.ts.map +1 -0
  116. package/dist/components/search-bar/models/search-bar-behavior.d.ts +6 -0
  117. package/dist/components/search-bar/models/search-bar-behavior.d.ts.map +1 -0
  118. package/dist/components/search-bar/search-bar.component.d.ts +26 -0
  119. package/dist/components/search-bar/search-bar.component.d.ts.map +1 -0
  120. package/dist/components/separator/index.d.ts +2 -0
  121. package/dist/components/separator/index.d.ts.map +1 -0
  122. package/dist/components/separator/separator.component.d.ts +12 -0
  123. package/dist/components/separator/separator.component.d.ts.map +1 -0
  124. package/dist/components/stack/index.d.ts +3 -0
  125. package/dist/components/stack/index.d.ts.map +1 -0
  126. package/dist/components/stack/stack.component.d.ts +17 -0
  127. package/dist/components/stack/stack.component.d.ts.map +1 -0
  128. package/dist/components/stack/stack.models.d.ts +26 -0
  129. package/dist/components/stack/stack.models.d.ts.map +1 -0
  130. package/dist/components/text/index.d.ts +3 -0
  131. package/dist/components/text/index.d.ts.map +1 -0
  132. package/dist/components/text/text.component.d.ts +13 -0
  133. package/dist/components/text/text.component.d.ts.map +1 -0
  134. package/dist/components/text/text.models.d.ts +13 -0
  135. package/dist/components/text/text.models.d.ts.map +1 -0
  136. package/dist/components/title/index.d.ts +3 -0
  137. package/dist/components/title/index.d.ts.map +1 -0
  138. package/dist/components/title/title.component.d.ts +13 -0
  139. package/dist/components/title/title.component.d.ts.map +1 -0
  140. package/dist/components/title/title.models.d.ts +10 -0
  141. package/dist/components/title/title.models.d.ts.map +1 -0
  142. package/dist/components/visually-hidden/index.d.ts +2 -0
  143. package/dist/components/visually-hidden/index.d.ts.map +1 -0
  144. package/dist/components/visually-hidden/visually-hidden.component.d.ts +11 -0
  145. package/dist/components/visually-hidden/visually-hidden.component.d.ts.map +1 -0
  146. package/dist/components.d.ts +2 -0
  147. package/dist/components.js +1075 -0
  148. package/dist/elements/accordion/accordion-header.element.d.ts +18 -0
  149. package/dist/elements/accordion/accordion-header.element.d.ts.map +1 -0
  150. package/dist/elements/accordion/accordion-panel.element.d.ts +11 -0
  151. package/dist/elements/accordion/accordion-panel.element.d.ts.map +1 -0
  152. package/dist/elements/accordion/accordion.element.d.ts +18 -0
  153. package/dist/elements/accordion/accordion.element.d.ts.map +1 -0
  154. package/dist/elements/accordion/index.d.ts +4 -0
  155. package/dist/elements/accordion/index.d.ts.map +1 -0
  156. package/dist/elements/avatar/avatar.element.d.ts +14 -0
  157. package/dist/elements/avatar/avatar.element.d.ts.map +1 -0
  158. package/dist/elements/avatar/index.d.ts +3 -0
  159. package/dist/elements/avatar/index.d.ts.map +1 -0
  160. package/dist/elements/avatar/models/avatar-size.d.ts +8 -0
  161. package/dist/elements/avatar/models/avatar-size.d.ts.map +1 -0
  162. package/dist/elements/avatar/models/avatar-variant.d.ts +6 -0
  163. package/dist/elements/avatar/models/avatar-variant.d.ts.map +1 -0
  164. package/dist/elements/avatar/models/index.d.ts +3 -0
  165. package/dist/elements/avatar/models/index.d.ts.map +1 -0
  166. package/dist/elements/avatar-group/avatar-group.element.d.ts +14 -0
  167. package/dist/elements/avatar-group/avatar-group.element.d.ts.map +1 -0
  168. package/dist/elements/avatar-group/index.d.ts +2 -0
  169. package/dist/elements/avatar-group/index.d.ts.map +1 -0
  170. package/dist/elements/badge/badge.element.d.ts +13 -0
  171. package/dist/elements/badge/badge.element.d.ts.map +1 -0
  172. package/dist/elements/badge/index.d.ts +3 -0
  173. package/dist/elements/badge/index.d.ts.map +1 -0
  174. package/dist/elements/badge/models/badge-variant.d.ts +10 -0
  175. package/dist/elements/badge/models/badge-variant.d.ts.map +1 -0
  176. package/dist/elements/badge/models/index.d.ts +2 -0
  177. package/dist/elements/badge/models/index.d.ts.map +1 -0
  178. package/dist/elements/card/card.element.d.ts +13 -0
  179. package/dist/elements/card/card.element.d.ts.map +1 -0
  180. package/dist/elements/card/index.d.ts +2 -0
  181. package/dist/elements/card/index.d.ts.map +1 -0
  182. package/dist/elements/checkbox/checkbox-control.d.ts +14 -0
  183. package/dist/elements/checkbox/checkbox-control.d.ts.map +1 -0
  184. package/dist/elements/checkbox/checkbox.element.d.ts +15 -0
  185. package/dist/elements/checkbox/checkbox.element.d.ts.map +1 -0
  186. package/dist/elements/checkbox/index.d.ts +3 -0
  187. package/dist/elements/checkbox/index.d.ts.map +1 -0
  188. package/dist/elements/checkbox-group/checkbox-group-control.d.ts +21 -0
  189. package/dist/elements/checkbox-group/checkbox-group-control.d.ts.map +1 -0
  190. package/dist/elements/checkbox-group/checkbox-group.element.d.ts +14 -0
  191. package/dist/elements/checkbox-group/checkbox-group.element.d.ts.map +1 -0
  192. package/dist/elements/checkbox-group/index.d.ts +4 -0
  193. package/dist/elements/checkbox-group/index.d.ts.map +1 -0
  194. package/dist/elements/checkbox-group/models/checkbox-group-variant.d.ts +5 -0
  195. package/dist/elements/checkbox-group/models/checkbox-group-variant.d.ts.map +1 -0
  196. package/dist/elements/checkbox-group/models/index.d.ts +2 -0
  197. package/dist/elements/checkbox-group/models/index.d.ts.map +1 -0
  198. package/dist/elements/chip/chip.element.d.ts +22 -0
  199. package/dist/elements/chip/chip.element.d.ts.map +1 -0
  200. package/dist/elements/chip/index.d.ts +3 -0
  201. package/dist/elements/chip/index.d.ts.map +1 -0
  202. package/dist/elements/chip/models/chip-variant.d.ts +10 -0
  203. package/dist/elements/chip/models/chip-variant.d.ts.map +1 -0
  204. package/dist/elements/chip/models/index.d.ts +2 -0
  205. package/dist/elements/chip/models/index.d.ts.map +1 -0
  206. package/dist/elements/circular-progress-bar/circular-progress-bar.element.d.ts +42 -0
  207. package/dist/elements/circular-progress-bar/circular-progress-bar.element.d.ts.map +1 -0
  208. package/dist/elements/circular-progress-bar/index.d.ts +3 -0
  209. package/dist/elements/circular-progress-bar/index.d.ts.map +1 -0
  210. package/dist/elements/circular-progress-bar/models/circular-progress-bar-size.d.ts +7 -0
  211. package/dist/elements/circular-progress-bar/models/circular-progress-bar-size.d.ts.map +1 -0
  212. package/dist/elements/circular-progress-bar/models/index.d.ts +2 -0
  213. package/dist/elements/circular-progress-bar/models/index.d.ts.map +1 -0
  214. package/dist/elements/content-layout/grid.element.d.ts +14 -0
  215. package/dist/elements/content-layout/grid.element.d.ts.map +1 -0
  216. package/dist/elements/content-layout/index.d.ts +3 -0
  217. package/dist/elements/content-layout/index.d.ts.map +1 -0
  218. package/dist/elements/content-layout/models/grid-gap.d.ts +8 -0
  219. package/dist/elements/content-layout/models/grid-gap.d.ts.map +1 -0
  220. package/dist/elements/content-layout/models/index.d.ts +2 -0
  221. package/dist/elements/content-layout/models/index.d.ts.map +1 -0
  222. package/dist/elements/dropdown/dropdown.element.d.ts +23 -0
  223. package/dist/elements/dropdown/dropdown.element.d.ts.map +1 -0
  224. package/dist/elements/dropdown/index.d.ts +3 -0
  225. package/dist/elements/dropdown/index.d.ts.map +1 -0
  226. package/dist/elements/dropdown/models/dropdown-placement.d.ts +6 -0
  227. package/dist/elements/dropdown/models/dropdown-placement.d.ts.map +1 -0
  228. package/dist/elements/dropdown/models/index.d.ts +2 -0
  229. package/dist/elements/dropdown/models/index.d.ts.map +1 -0
  230. package/dist/elements/form-field/form-field.element.d.ts +16 -0
  231. package/dist/elements/form-field/form-field.element.d.ts.map +1 -0
  232. package/dist/elements/form-field/index.d.ts +2 -0
  233. package/dist/elements/form-field/index.d.ts.map +1 -0
  234. package/dist/elements/inline-message/index.d.ts +3 -0
  235. package/dist/elements/inline-message/index.d.ts.map +1 -0
  236. package/dist/elements/inline-message/inline-message.element.d.ts +13 -0
  237. package/dist/elements/inline-message/inline-message.element.d.ts.map +1 -0
  238. package/dist/elements/inline-message/models/index.d.ts +2 -0
  239. package/dist/elements/inline-message/models/index.d.ts.map +1 -0
  240. package/dist/elements/inline-message/models/inline-message-variant.d.ts +10 -0
  241. package/dist/elements/inline-message/models/inline-message-variant.d.ts.map +1 -0
  242. package/dist/elements/list/index.d.ts +3 -0
  243. package/dist/elements/list/index.d.ts.map +1 -0
  244. package/dist/elements/list/list-item.element.d.ts +11 -0
  245. package/dist/elements/list/list-item.element.d.ts.map +1 -0
  246. package/dist/elements/list/list.element.d.ts +11 -0
  247. package/dist/elements/list/list.element.d.ts.map +1 -0
  248. package/dist/elements/loading-overlay/index.d.ts +2 -0
  249. package/dist/elements/loading-overlay/index.d.ts.map +1 -0
  250. package/dist/elements/loading-overlay/loading-overlay.element.d.ts +21 -0
  251. package/dist/elements/loading-overlay/loading-overlay.element.d.ts.map +1 -0
  252. package/dist/elements/main-menu/elements/main-menu-button.element.d.ts +12 -0
  253. package/dist/elements/main-menu/elements/main-menu-button.element.d.ts.map +1 -0
  254. package/dist/elements/main-menu/elements/main-menu-link.element.d.ts +9 -0
  255. package/dist/elements/main-menu/elements/main-menu-link.element.d.ts.map +1 -0
  256. package/dist/elements/main-menu/elements/main-menu-subtitle.element.d.ts +12 -0
  257. package/dist/elements/main-menu/elements/main-menu-subtitle.element.d.ts.map +1 -0
  258. package/dist/elements/main-menu/elements/main-menu-title.element.d.ts +12 -0
  259. package/dist/elements/main-menu/elements/main-menu-title.element.d.ts.map +1 -0
  260. package/dist/elements/main-menu/index.d.ts +6 -0
  261. package/dist/elements/main-menu/index.d.ts.map +1 -0
  262. package/dist/elements/main-menu/main-menu.element.d.ts +17 -0
  263. package/dist/elements/main-menu/main-menu.element.d.ts.map +1 -0
  264. package/dist/elements/main.d.ts +30 -0
  265. package/dist/elements/main.d.ts.map +1 -0
  266. package/dist/elements/menu/elements/menu-item/index.d.ts +2 -0
  267. package/dist/elements/menu/elements/menu-item/index.d.ts.map +1 -0
  268. package/dist/elements/menu/elements/menu-item/menu-item.element.d.ts +13 -0
  269. package/dist/elements/menu/elements/menu-item/menu-item.element.d.ts.map +1 -0
  270. package/dist/elements/menu/elements/menu-label/index.d.ts +2 -0
  271. package/dist/elements/menu/elements/menu-label/index.d.ts.map +1 -0
  272. package/dist/elements/menu/elements/menu-label/menu-label.element.d.ts +11 -0
  273. package/dist/elements/menu/elements/menu-label/menu-label.element.d.ts.map +1 -0
  274. package/dist/elements/menu/index.d.ts +4 -0
  275. package/dist/elements/menu/index.d.ts.map +1 -0
  276. package/dist/elements/menu/menu.element.d.ts +24 -0
  277. package/dist/elements/menu/menu.element.d.ts.map +1 -0
  278. package/dist/elements/progress-bar/index.d.ts +3 -0
  279. package/dist/elements/progress-bar/index.d.ts.map +1 -0
  280. package/dist/elements/progress-bar/models/index.d.ts +2 -0
  281. package/dist/elements/progress-bar/models/index.d.ts.map +1 -0
  282. package/dist/elements/progress-bar/models/progress-state.d.ts +7 -0
  283. package/dist/elements/progress-bar/models/progress-state.d.ts.map +1 -0
  284. package/dist/elements/progress-bar/progress-bar.element.d.ts +24 -0
  285. package/dist/elements/progress-bar/progress-bar.element.d.ts.map +1 -0
  286. package/dist/elements/radio-button/index.d.ts +2 -0
  287. package/dist/elements/radio-button/index.d.ts.map +1 -0
  288. package/dist/elements/radio-button/radio-button.element.d.ts +13 -0
  289. package/dist/elements/radio-button/radio-button.element.d.ts.map +1 -0
  290. package/dist/elements/radio-group/index.d.ts +4 -0
  291. package/dist/elements/radio-group/index.d.ts.map +1 -0
  292. package/dist/elements/radio-group/models/index.d.ts +2 -0
  293. package/dist/elements/radio-group/models/index.d.ts.map +1 -0
  294. package/dist/elements/radio-group/models/radio-group-variant.d.ts +5 -0
  295. package/dist/elements/radio-group/models/radio-group-variant.d.ts.map +1 -0
  296. package/dist/elements/radio-group/radio-group-control.d.ts +22 -0
  297. package/dist/elements/radio-group/radio-group-control.d.ts.map +1 -0
  298. package/dist/elements/radio-group/radio-group.element.d.ts +13 -0
  299. package/dist/elements/radio-group/radio-group.element.d.ts.map +1 -0
  300. package/dist/elements/select/elements/option/index.d.ts +2 -0
  301. package/dist/elements/select/elements/option/index.d.ts.map +1 -0
  302. package/dist/elements/select/elements/option/option.element.d.ts +19 -0
  303. package/dist/elements/select/elements/option/option.element.d.ts.map +1 -0
  304. package/dist/elements/select/index.d.ts +3 -0
  305. package/dist/elements/select/index.d.ts.map +1 -0
  306. package/dist/elements/select/select-control.d.ts +16 -0
  307. package/dist/elements/select/select-control.d.ts.map +1 -0
  308. package/dist/elements/select/select.element.d.ts +15 -0
  309. package/dist/elements/select/select.element.d.ts.map +1 -0
  310. package/dist/elements/skeleton/index.d.ts +2 -0
  311. package/dist/elements/skeleton/index.d.ts.map +1 -0
  312. package/dist/elements/skeleton/skeleton.element.d.ts +12 -0
  313. package/dist/elements/skeleton/skeleton.element.d.ts.map +1 -0
  314. package/dist/elements/slider/index.d.ts +5 -0
  315. package/dist/elements/slider/index.d.ts.map +1 -0
  316. package/dist/elements/slider/models/index.d.ts +3 -0
  317. package/dist/elements/slider/models/index.d.ts.map +1 -0
  318. package/dist/elements/slider/models/slider-label-visibility.d.ts +6 -0
  319. package/dist/elements/slider/models/slider-label-visibility.d.ts.map +1 -0
  320. package/dist/elements/slider/models/slider-track-visibility.d.ts +7 -0
  321. package/dist/elements/slider/models/slider-track-visibility.d.ts.map +1 -0
  322. package/dist/elements/slider/slider-context.d.ts +18 -0
  323. package/dist/elements/slider/slider-context.d.ts.map +1 -0
  324. package/dist/elements/slider/slider-handle.element.d.ts +29 -0
  325. package/dist/elements/slider/slider-handle.element.d.ts.map +1 -0
  326. package/dist/elements/slider/slider-marks.element.d.ts +16 -0
  327. package/dist/elements/slider/slider-marks.element.d.ts.map +1 -0
  328. package/dist/elements/slider/slider.element.d.ts +27 -0
  329. package/dist/elements/slider/slider.element.d.ts.map +1 -0
  330. package/dist/elements/spinbox/index.d.ts +2 -0
  331. package/dist/elements/spinbox/index.d.ts.map +1 -0
  332. package/dist/elements/spinbox/spinbox.element.d.ts +21 -0
  333. package/dist/elements/spinbox/spinbox.element.d.ts.map +1 -0
  334. package/dist/elements/switch/index.d.ts +2 -0
  335. package/dist/elements/switch/index.d.ts.map +1 -0
  336. package/dist/elements/switch/switch.element.d.ts +11 -0
  337. package/dist/elements/switch/switch.element.d.ts.map +1 -0
  338. package/dist/elements/table/elements/table-body/index.d.ts +2 -0
  339. package/dist/elements/table/elements/table-body/index.d.ts.map +1 -0
  340. package/dist/elements/table/elements/table-body/table-body.element.d.ts +12 -0
  341. package/dist/elements/table/elements/table-body/table-body.element.d.ts.map +1 -0
  342. package/dist/elements/table/elements/table-cell/index.d.ts +2 -0
  343. package/dist/elements/table/elements/table-cell/index.d.ts.map +1 -0
  344. package/dist/elements/table/elements/table-cell/table-cell.element.d.ts +12 -0
  345. package/dist/elements/table/elements/table-cell/table-cell.element.d.ts.map +1 -0
  346. package/dist/elements/table/elements/table-checkbox-cell/index.d.ts +2 -0
  347. package/dist/elements/table/elements/table-checkbox-cell/index.d.ts.map +1 -0
  348. package/dist/elements/table/elements/table-checkbox-cell/table-checkbox-cell.element.d.ts +18 -0
  349. package/dist/elements/table/elements/table-checkbox-cell/table-checkbox-cell.element.d.ts.map +1 -0
  350. package/dist/elements/table/elements/table-header/index.d.ts +2 -0
  351. package/dist/elements/table/elements/table-header/index.d.ts.map +1 -0
  352. package/dist/elements/table/elements/table-header/table-header.element.d.ts +14 -0
  353. package/dist/elements/table/elements/table-header/table-header.element.d.ts.map +1 -0
  354. package/dist/elements/table/elements/table-header-cell/index.d.ts +2 -0
  355. package/dist/elements/table/elements/table-header-cell/index.d.ts.map +1 -0
  356. package/dist/elements/table/elements/table-header-cell/table-header-cell.element.d.ts +13 -0
  357. package/dist/elements/table/elements/table-header-cell/table-header-cell.element.d.ts.map +1 -0
  358. package/dist/elements/table/elements/table-row/index.d.ts +2 -0
  359. package/dist/elements/table/elements/table-row/index.d.ts.map +1 -0
  360. package/dist/elements/table/elements/table-row/table-row.element.d.ts +19 -0
  361. package/dist/elements/table/elements/table-row/table-row.element.d.ts.map +1 -0
  362. package/dist/elements/table/index.d.ts +8 -0
  363. package/dist/elements/table/index.d.ts.map +1 -0
  364. package/dist/elements/table/table.context.d.ts +10 -0
  365. package/dist/elements/table/table.context.d.ts.map +1 -0
  366. package/dist/elements/table/table.element.d.ts +20 -0
  367. package/dist/elements/table/table.element.d.ts.map +1 -0
  368. package/dist/elements/toast/index.d.ts +3 -0
  369. package/dist/elements/toast/index.d.ts.map +1 -0
  370. package/dist/elements/toast/models/index.d.ts +2 -0
  371. package/dist/elements/toast/models/index.d.ts.map +1 -0
  372. package/dist/elements/toast/models/toast-variant.d.ts +5 -0
  373. package/dist/elements/toast/models/toast-variant.d.ts.map +1 -0
  374. package/dist/elements/toast/toast.element.d.ts +13 -0
  375. package/dist/elements/toast/toast.element.d.ts.map +1 -0
  376. package/dist/elements/toggle-button/index.d.ts +2 -0
  377. package/dist/elements/toggle-button/index.d.ts.map +1 -0
  378. package/dist/elements/toggle-button/toggle-button.element.d.ts +11 -0
  379. package/dist/elements/toggle-button/toggle-button.element.d.ts.map +1 -0
  380. package/dist/elements/tooltip/index.d.ts +3 -0
  381. package/dist/elements/tooltip/index.d.ts.map +1 -0
  382. package/dist/elements/tooltip/models/index.d.ts +2 -0
  383. package/dist/elements/tooltip/models/index.d.ts.map +1 -0
  384. package/dist/elements/tooltip/models/tooltip-placement.d.ts +8 -0
  385. package/dist/elements/tooltip/models/tooltip-placement.d.ts.map +1 -0
  386. package/dist/elements/tooltip/tooltip.element.d.ts +22 -0
  387. package/dist/elements/tooltip/tooltip.element.d.ts.map +1 -0
  388. package/dist/elements.d.ts +2 -0
  389. package/dist/elements.js +3029 -0
  390. package/dist/fonts/draeger-pangea-text-medium.woff2 +0 -0
  391. package/dist/fonts/draeger-pangea-text-regular.woff2 +0 -0
  392. package/dist/fonts/draeger-pangea-text-semibold.woff2 +0 -0
  393. package/dist/fonts.css +1 -0
  394. package/dist/fonts.d.ts +1 -0
  395. package/dist/lib/controllers/focus-trap.controller.d.ts +13 -0
  396. package/dist/lib/controllers/focus-trap.controller.d.ts.map +1 -0
  397. package/dist/lib/controllers/index.d.ts +2 -0
  398. package/dist/lib/controllers/index.d.ts.map +1 -0
  399. package/dist/lib/directives/aria-boolean-attr.d.ts +3 -0
  400. package/dist/lib/directives/aria-boolean-attr.d.ts.map +1 -0
  401. package/dist/lib/directives/index.d.ts +5 -0
  402. package/dist/lib/directives/index.d.ts.map +1 -0
  403. package/dist/lib/directives/optional-attr.d.ts +2 -0
  404. package/dist/lib/directives/optional-attr.d.ts.map +1 -0
  405. package/dist/lib/directives/optional-slot.d.ts +3 -0
  406. package/dist/lib/directives/optional-slot.d.ts.map +1 -0
  407. package/dist/lib/directives/slot-fallback.d.ts +8 -0
  408. package/dist/lib/directives/slot-fallback.d.ts.map +1 -0
  409. package/dist/lib/external/index.d.ts +2 -0
  410. package/dist/lib/external/index.d.ts.map +1 -0
  411. package/dist/lib/external/roving-tabindex.d.ts +87 -0
  412. package/dist/lib/external/roving-tabindex.d.ts.map +1 -0
  413. package/dist/lib/mixins/can-be-disabled.d.ts +7 -0
  414. package/dist/lib/mixins/can-be-disabled.d.ts.map +1 -0
  415. package/dist/lib/mixins/can-be-readonly.d.ts +7 -0
  416. package/dist/lib/mixins/can-be-readonly.d.ts.map +1 -0
  417. package/dist/lib/mixins/can-be-required.d.ts +7 -0
  418. package/dist/lib/mixins/can-be-required.d.ts.map +1 -0
  419. package/dist/lib/mixins/can-be-validated.d.ts +12 -0
  420. package/dist/lib/mixins/can-be-validated.d.ts.map +1 -0
  421. package/dist/lib/mixins/dedupe-mixin.d.ts +3 -0
  422. package/dist/lib/mixins/dedupe-mixin.d.ts.map +1 -0
  423. package/dist/lib/mixins/form-control.d.ts +18 -0
  424. package/dist/lib/mixins/form-control.d.ts.map +1 -0
  425. package/dist/lib/mixins/index.d.ts +11 -0
  426. package/dist/lib/mixins/index.d.ts.map +1 -0
  427. package/dist/lib/mixins/is-localized.d.ts +13 -0
  428. package/dist/lib/mixins/is-localized.d.ts.map +1 -0
  429. package/dist/lib/mixins/number-control.d.ts +12 -0
  430. package/dist/lib/mixins/number-control.d.ts.map +1 -0
  431. package/dist/lib/mixins/with-aria-controls.d.ts +11 -0
  432. package/dist/lib/mixins/with-aria-controls.d.ts.map +1 -0
  433. package/dist/lib/mixins/with-loading-state.d.ts +8 -0
  434. package/dist/lib/mixins/with-loading-state.d.ts.map +1 -0
  435. package/dist/lib/models/aria-mixin-strict.d.ts +62 -0
  436. package/dist/lib/models/aria-mixin-strict.d.ts.map +1 -0
  437. package/dist/lib/models/custom-element.d.ts +10 -0
  438. package/dist/lib/models/custom-element.d.ts.map +1 -0
  439. package/dist/lib/models/index.d.ts +5 -0
  440. package/dist/lib/models/index.d.ts.map +1 -0
  441. package/dist/lib/models/locale.d.ts +2 -0
  442. package/dist/lib/models/locale.d.ts.map +1 -0
  443. package/dist/lib/models/single-unit-identifier.d.ts +6 -0
  444. package/dist/lib/models/single-unit-identifier.d.ts.map +1 -0
  445. package/dist/lib/utils/create-intersection-observer.d.ts +8 -0
  446. package/dist/lib/utils/create-intersection-observer.d.ts.map +1 -0
  447. package/dist/lib/utils/create-mutation-observer.d.ts +8 -0
  448. package/dist/lib/utils/create-mutation-observer.d.ts.map +1 -0
  449. package/dist/lib/utils/create-options.d.ts +2 -0
  450. package/dist/lib/utils/create-options.d.ts.map +1 -0
  451. package/dist/lib/utils/create-resize-observer.d.ts +8 -0
  452. package/dist/lib/utils/create-resize-observer.d.ts.map +1 -0
  453. package/dist/lib/utils/dom.d.ts +5 -0
  454. package/dist/lib/utils/dom.d.ts.map +1 -0
  455. package/dist/lib/utils/element-loader.d.ts +4 -0
  456. package/dist/lib/utils/element-loader.d.ts.map +1 -0
  457. package/dist/lib/utils/format.d.ts +20 -0
  458. package/dist/lib/utils/format.d.ts.map +1 -0
  459. package/dist/lib/utils/get-unique-id.d.ts +36 -0
  460. package/dist/lib/utils/get-unique-id.d.ts.map +1 -0
  461. package/dist/lib/utils/index.d.ts +13 -0
  462. package/dist/lib/utils/index.d.ts.map +1 -0
  463. package/dist/lib/utils/keyboard-events.d.ts +43 -0
  464. package/dist/lib/utils/keyboard-events.d.ts.map +1 -0
  465. package/dist/lib/utils/localization.d.ts +15 -0
  466. package/dist/lib/utils/localization.d.ts.map +1 -0
  467. package/dist/lib/utils/parse-date.d.ts +2 -0
  468. package/dist/lib/utils/parse-date.d.ts.map +1 -0
  469. package/dist/lib/utils/request-update-on-aria-change.d.ts +34 -0
  470. package/dist/lib/utils/request-update-on-aria-change.d.ts.map +1 -0
  471. package/dist/lib/utils/shared-intersection-observer.d.ts +11 -0
  472. package/dist/lib/utils/shared-intersection-observer.d.ts.map +1 -0
  473. package/dist/lib/utils/shared-resize-observer.d.ts +11 -0
  474. package/dist/lib/utils/shared-resize-observer.d.ts.map +1 -0
  475. package/dist/lib/utils/wait-for-animations.d.ts +2 -0
  476. package/dist/lib/utils/wait-for-animations.d.ts.map +1 -0
  477. package/dist/main.d.ts +7 -0
  478. package/dist/main.d.ts.map +1 -0
  479. package/dist/main.js +1141 -0
  480. package/dist/styles.css +1 -0
  481. package/dist/styles.d.ts +1 -0
  482. package/package.json +58 -0
  483. package/public/fonts/draeger-pangea-text-medium.woff2 +0 -0
  484. package/public/fonts/draeger-pangea-text-regular.woff2 +0 -0
  485. package/public/fonts/draeger-pangea-text-semibold.woff2 +0 -0
package/dist/main.js ADDED
@@ -0,0 +1,1141 @@
1
+ import { createFocusTrap } from 'focus-trap';
2
+ import { isServer, nothing, html, LitElement, unsafeCSS, CSSResult } from 'lit';
3
+ import { toMerged, round } from 'es-toolkit';
4
+ import { directive, Directive } from 'lit/directive.js';
5
+ import { property } from 'lit/decorators.js';
6
+ import { signal, SignalWatcher, computed } from '@lit-labs/signals';
7
+
8
+ function createMutationObserver(callback) {
9
+ try {
10
+ return new MutationObserver(callback);
11
+ } catch {
12
+ return { takeRecords: () => [], observe: () => void 0, disconnect: () => void 0 };
13
+ }
14
+ }
15
+
16
+ function createOptions(defaultOptions) {
17
+ return (options) => toMerged(defaultOptions, options ?? {});
18
+ }
19
+
20
+ function toggleAttribute(element, name, value) {
21
+ if (!element) return;
22
+ if (typeof value === "boolean") {
23
+ element.toggleAttribute(name, value);
24
+ return;
25
+ }
26
+ if (value != null) {
27
+ element.setAttribute(name, value.toString());
28
+ return;
29
+ }
30
+ element.removeAttribute(name);
31
+ }
32
+ function getElementFromEvent(event, filterFn) {
33
+ return event.composedPath().find((node) => node instanceof Element && filterFn(node));
34
+ }
35
+ function findClosestDocument(node) {
36
+ let parent = node.parentNode;
37
+ while (parent && parent.nodeType !== Node.DOCUMENT_FRAGMENT_NODE && parent.nodeType !== Node.DOCUMENT_NODE) {
38
+ parent = parent.parentNode;
39
+ }
40
+ return parent;
41
+ }
42
+ function toPx(value) {
43
+ const coercedValue = Number(value);
44
+ if (Number.isNaN(coercedValue)) return null;
45
+ return `${round(coercedValue, 2)}px`;
46
+ }
47
+
48
+ const LocalizationOptions = createOptions({
49
+ defaultLocale: () => navigator.language,
50
+ relativeTimeFormatOptions: {
51
+ minUnit: "minute"
52
+ }
53
+ });
54
+ const localizationOptions = signal(null);
55
+ const activeLocale = signal(null, { equals: (t, t2) => t?.toString() === t2?.toString() });
56
+ function setLocalizationOptions(options) {
57
+ localizationOptions.set(getLocalizationOptions(options));
58
+ }
59
+ function getLocalizationOptions(options) {
60
+ return LocalizationOptions(options ?? localizationOptions.get() ?? {});
61
+ }
62
+ function watchLocaleChanges(root = document.documentElement) {
63
+ const updateLocale = () => activeLocale.set(getLocale(root.lang));
64
+ const observer = createMutationObserver(updateLocale);
65
+ observer.observe(root, { attributes: true, attributeFilter: ["lang"] });
66
+ updateLocale();
67
+ }
68
+ function setLocale(locale) {
69
+ if (locale === null) {
70
+ document.documentElement.lang = getLocalizationOptions().defaultLocale().toString();
71
+ } else {
72
+ document.documentElement.lang = getLocale(locale).toString();
73
+ }
74
+ }
75
+ function getLocale(locale) {
76
+ const fallbackLocale = activeLocale.get() || getLocalizationOptions().defaultLocale();
77
+ try {
78
+ return new Intl.Locale(locale || fallbackLocale);
79
+ } catch {
80
+ return new Intl.Locale(fallbackLocale);
81
+ }
82
+ }
83
+
84
+ function parseDate(value) {
85
+ const date = new Date(value);
86
+ if (Number.isNaN(date.getTime()) && typeof value === "string") {
87
+ const timestamp = Number(value);
88
+ return Number.isNaN(timestamp) ? null : new Date(timestamp);
89
+ }
90
+ return Number.isNaN(date.getTime()) ? null : date;
91
+ }
92
+
93
+ const iso8601DateTimeFormat = new Intl.DateTimeFormat("sv-SE", { dateStyle: "short" });
94
+ function formatDate(input, options) {
95
+ const value = parseDate(input);
96
+ if (!value) return "";
97
+ const { dateTimeFormatOptions } = getLocalizationOptions({ dateTimeFormatOptions: options });
98
+ if (dateTimeFormatOptions?.dateStyle === "iso8601") {
99
+ return iso8601DateTimeFormat.format(value);
100
+ }
101
+ return new Intl.DateTimeFormat(options?.locale, dateTimeFormatOptions).format(value);
102
+ }
103
+ function formatNumber(input, options) {
104
+ const value = Number(input);
105
+ if (Number.isNaN(value)) return "";
106
+ const { numberFormatOptions } = getLocalizationOptions({ numberFormatOptions: options });
107
+ if (numberFormatOptions?.currency) {
108
+ numberFormatOptions.style = "currency";
109
+ }
110
+ return new Intl.NumberFormat(numberFormatOptions?.locale, numberFormatOptions).format(value);
111
+ }
112
+ function formatList(input, options) {
113
+ if (input.length === 0) return "";
114
+ const { listFormatOptions } = getLocalizationOptions({ listFormatOptions: options });
115
+ return new Intl.ListFormat(options?.locale, listFormatOptions).format(input);
116
+ }
117
+ const availableTimeUnits = [
118
+ { max: 59e3, value: 1e3, unit: "second" },
119
+ // max 59 seconds
120
+ { max: 276e4, value: 6e4, unit: "minute" },
121
+ // max 46 minutes
122
+ { max: 72e6, value: 36e5, unit: "hour" },
123
+ // max 20 hours
124
+ { max: 5184e5, value: 864e5, unit: "day" },
125
+ // max 6 days
126
+ { max: 24192e5, value: 6048e5, unit: "week" },
127
+ // max 28 days
128
+ { max: 28512e6, value: 2592e6, unit: "month" },
129
+ // max 11 months
130
+ { max: Number.POSITIVE_INFINITY, value: 31536e6, unit: "year" }
131
+ ];
132
+ function findTimeUnit(value, minUnit) {
133
+ const minTimeUnit = availableTimeUnits.find(({ unit }) => unit === minUnit) ?? availableTimeUnits[0];
134
+ return availableTimeUnits.find((config) => value < config.max && config.value >= minTimeUnit.value);
135
+ }
136
+ function formatRelativeTime(input, options) {
137
+ const value = parseDate(input);
138
+ if (!value) return "";
139
+ const { relativeTimeFormatOptions } = getLocalizationOptions({ relativeTimeFormatOptions: options });
140
+ const relativeTime = value.getTime() - (/* @__PURE__ */ new Date()).getTime();
141
+ const timeUnit = findTimeUnit(Math.abs(relativeTime), relativeTimeFormatOptions?.minUnit);
142
+ return new Intl.RelativeTimeFormat(options?.locale, relativeTimeFormatOptions).format(Math.round(relativeTime / timeUnit.value), timeUnit.unit);
143
+ }
144
+
145
+ const uniqueIdCache = /* @__PURE__ */ new Map();
146
+ function getUniqueId(key) {
147
+ const nextIndex = (uniqueIdCache.get(key) ?? 0) + 1;
148
+ uniqueIdCache.set(key, nextIndex);
149
+ return `${key}-${nextIndex}`;
150
+ }
151
+ function clearUniqueIdCache(key) {
152
+ if (key) {
153
+ uniqueIdCache.delete(key);
154
+ } else {
155
+ uniqueIdCache.clear();
156
+ }
157
+ }
158
+
159
+ var KeyboardKey = /* @__PURE__ */ ((KeyboardKey2) => {
160
+ KeyboardKey2["ARROW_UP"] = "ArrowUp";
161
+ KeyboardKey2["ARROW_DOWN"] = "ArrowDown";
162
+ KeyboardKey2["ARROW_LEFT"] = "ArrowLeft";
163
+ KeyboardKey2["ARROW_RIGHT"] = "ArrowRight";
164
+ KeyboardKey2["ENTER"] = "Enter";
165
+ KeyboardKey2["ESCAPE"] = "Escape";
166
+ KeyboardKey2["SPACE"] = " ";
167
+ KeyboardKey2["TAB"] = "Tab";
168
+ KeyboardKey2["BACKSPACE"] = "Backspace";
169
+ KeyboardKey2["DELETE"] = "Delete";
170
+ KeyboardKey2["END"] = "End";
171
+ KeyboardKey2["HOME"] = "Home";
172
+ KeyboardKey2["PAGE_UP"] = "PageUp";
173
+ KeyboardKey2["PAGE_DOWN"] = "PageDown";
174
+ KeyboardKey2["SHIFT"] = "Shift";
175
+ KeyboardKey2["CONTROL"] = "Control";
176
+ KeyboardKey2["ALT"] = "Alt";
177
+ KeyboardKey2["META"] = "Meta";
178
+ return KeyboardKey2;
179
+ })(KeyboardKey || {});
180
+ function getKeyboardEventInfo(event) {
181
+ const { key } = event;
182
+ const up = key === "ArrowUp" /* ARROW_UP */;
183
+ const right = key === "ArrowRight" /* ARROW_RIGHT */;
184
+ const down = key === "ArrowDown" /* ARROW_DOWN */;
185
+ const left = key === "ArrowLeft" /* ARROW_LEFT */;
186
+ return {
187
+ axis: { x: left || right, y: up || down },
188
+ direction: { up, right, down, left },
189
+ actions: {
190
+ enter: key === "Enter" /* ENTER */,
191
+ escape: key === "Escape" /* ESCAPE */,
192
+ space: key === " " /* SPACE */,
193
+ tab: key === "Tab" /* TAB */ && !event.shiftKey,
194
+ backTab: key === "Tab" /* TAB */ && event.shiftKey,
195
+ start: key === "Home" /* HOME */,
196
+ end: key === "End" /* END */
197
+ }
198
+ };
199
+ }
200
+
201
+ function ariaPropertyToAttribute(property) {
202
+ return property.replace("aria", "aria-").replace(/Elements?/g, "").toLowerCase();
203
+ }
204
+ function requestUpdateOnAriaChange(ariaProperties) {
205
+ return (ctor) => {
206
+ for (const ariaProperty of ariaProperties) {
207
+ ctor.createProperty(ariaProperty, {
208
+ attribute: ariaPropertyToAttribute(ariaProperty),
209
+ reflect: true
210
+ });
211
+ }
212
+ };
213
+ }
214
+
215
+ function createIntersectionObserver(callback) {
216
+ try {
217
+ return new IntersectionObserver(callback);
218
+ } catch {
219
+ return { root: null, rootMargin: "", thresholds: [], takeRecords: () => [], observe: () => void 0, disconnect: () => void 0, unobserve: () => void 0 };
220
+ }
221
+ }
222
+
223
+ class SharedIntersectionObserverInstance {
224
+ #observer;
225
+ #handlers = /* @__PURE__ */ new WeakMap();
226
+ #updateLog = /* @__PURE__ */ new WeakMap();
227
+ observe(target, handler, options = { fpsLimit: 60 }) {
228
+ this.#observer ??= createIntersectionObserver(this.#handleIntersection);
229
+ this.#handlers.set(target, [handler, options.fpsLimit]);
230
+ this.#observer.observe(target);
231
+ }
232
+ unobserve(target) {
233
+ this.#handlers.delete(target);
234
+ this.#observer?.unobserve(target);
235
+ }
236
+ #handleIntersection = (entries) => {
237
+ if (!this.#observer) return;
238
+ for (const entry of entries) {
239
+ const [handler, fpsLimit] = this.#handlers.get(entry.target) ?? [];
240
+ if (typeof handler !== "function" || !this.#shouldUpdate(entry.target, fpsLimit)) continue;
241
+ handler?.([entry], this.#observer);
242
+ this.#updateLog.set(entry.target, Date.now());
243
+ }
244
+ };
245
+ #shouldUpdate(target, fpsLimit) {
246
+ if (!target.isConnected || typeof fpsLimit !== "number" || fpsLimit < 1) return false;
247
+ return Date.now() - (this.#updateLog.get(target) ?? 0) >= 1e3 / fpsLimit;
248
+ }
249
+ }
250
+ const SharedIntersectionObserver = new SharedIntersectionObserverInstance();
251
+
252
+ function createResizeObserver(callback) {
253
+ try {
254
+ return new ResizeObserver(callback);
255
+ } catch {
256
+ return { observe: () => void 0, disconnect: () => void 0, unobserve: () => void 0 };
257
+ }
258
+ }
259
+
260
+ class SharedResizeObserverInstance {
261
+ #observer;
262
+ #handlers = /* @__PURE__ */ new WeakMap();
263
+ #updateLog = /* @__PURE__ */ new WeakMap();
264
+ observe(target, handler, options = { fpsLimit: 60 }) {
265
+ const { fpsLimit, ...observerOptions } = options;
266
+ this.#observer ??= createResizeObserver(this.#handleResize);
267
+ this.#handlers.set(target, [handler, fpsLimit]);
268
+ this.#observer.observe(target, observerOptions);
269
+ }
270
+ unobserve(target) {
271
+ this.#handlers.delete(target);
272
+ this.#observer?.unobserve(target);
273
+ }
274
+ #handleResize = (entries) => {
275
+ if (!this.#observer) return;
276
+ for (const entry of entries) {
277
+ const [handler, fpsLimit] = this.#handlers.get(entry.target) ?? [];
278
+ if (typeof handler !== "function" || !this.#shouldUpdate(entry.target, fpsLimit ?? 60)) continue;
279
+ handler?.([entry], this.#observer);
280
+ this.#updateLog.set(entry.target, Date.now());
281
+ }
282
+ };
283
+ #shouldUpdate(target, fpsLimit) {
284
+ if (!target.isConnected || fpsLimit < 1) return false;
285
+ return Date.now() - (this.#updateLog.get(target) ?? 0) >= 1e3 / fpsLimit;
286
+ }
287
+ }
288
+ const SharedResizeObserver = new SharedResizeObserverInstance();
289
+
290
+ async function waitForAnimations(element, subtree = false) {
291
+ if (!element || typeof element.getAnimations !== "function") {
292
+ return [];
293
+ }
294
+ return Promise.all(element.getAnimations({ subtree }).map((animation) => animation.finished)).catch(() => []);
295
+ }
296
+
297
+ const FocusTrapControllerOptions = createOptions({
298
+ escapeDeactivates: false,
299
+ tabbableOptions: { getShadowRoot: true }
300
+ });
301
+ class FocusTrapController {
302
+ #host;
303
+ #options;
304
+ #focusTrap;
305
+ constructor(host, options) {
306
+ this.#host = host;
307
+ this.#options = FocusTrapControllerOptions(options);
308
+ this.#host.addController(this);
309
+ }
310
+ async activate() {
311
+ await this.#host.updateComplete;
312
+ this.#focusTrap?.activate();
313
+ }
314
+ async deactivate() {
315
+ await this.#host.updateComplete;
316
+ this.#focusTrap?.deactivate();
317
+ }
318
+ async toggle(state) {
319
+ if (state ?? !this.#focusTrap?.active) {
320
+ return this.activate();
321
+ }
322
+ return this.deactivate();
323
+ }
324
+ async hostConnected() {
325
+ if (isServer) return;
326
+ await this.#host.updateComplete;
327
+ this.#focusTrap ??= createFocusTrap(this.#host, {
328
+ ...this.#options,
329
+ checkCanFocusTrap: this.#checkCanFocusTrap.bind(this),
330
+ checkCanReturnFocus: this.#checkCanReturnFocus.bind(this)
331
+ });
332
+ }
333
+ hostDisconnected() {
334
+ this.deactivate();
335
+ }
336
+ async #checkCanFocusTrap(containers) {
337
+ await waitForAnimations(this.#host);
338
+ await this.#options.checkCanFocusTrap?.(containers);
339
+ }
340
+ async #checkCanReturnFocus(trigger) {
341
+ await waitForAnimations(this.#host);
342
+ await this.#options.checkCanReturnFocus?.(trigger);
343
+ }
344
+ }
345
+
346
+ function toAriaBooleanAttribute(value, removeOnFalse = true) {
347
+ if (removeOnFalse && value === false) return null;
348
+ return String(value);
349
+ }
350
+ function fromAriaBooleanAttribute(value) {
351
+ return value === "true";
352
+ }
353
+
354
+ const optionalAttr = (value) => {
355
+ if (value === void 0 || value === null || value === "") return nothing;
356
+ return value;
357
+ };
358
+
359
+ function optionalSlot(host, slotName) {
360
+ if (host.querySelector(`[slot="${slotName}"]`)) {
361
+ return html`
362
+ <div class="${slotName}" part="${slotName}-container">
363
+ <slot name="${slotName}" @slotchange="${() => host.requestUpdate()}"></slot>
364
+ </div>
365
+ `;
366
+ }
367
+ return nothing;
368
+ }
369
+
370
+ class SlotFallbackDirective extends Directive {
371
+ update({ options, element }) {
372
+ if (!options?.host || !(element instanceof HTMLSlotElement)) return;
373
+ const host = options.host;
374
+ const slottedElementSelector = element.name ? `[slot="${element.name}"]` : "*";
375
+ if (host.querySelectorAll(slottedElementSelector).length > 0 || host.textContent?.trim()) return;
376
+ host.textContent = "";
377
+ }
378
+ render() {
379
+ }
380
+ }
381
+ const emptySlotFallbackFix = directive(SlotFallbackDirective);
382
+
383
+ function ensureMethod(value, type, fallback) {
384
+ if (typeof value === type) {
385
+ return () => value;
386
+ }
387
+ if (typeof value === "function") {
388
+ return value;
389
+ }
390
+ return fallback;
391
+ }
392
+ class FocusGroupController {
393
+ constructor(host, { hostDelegatesFocus, direction, elementEnterAction, elements, focusInIndex, isFocusableElement, listenerScope } = {
394
+ elements: () => []
395
+ }) {
396
+ this._currentIndex = -1;
397
+ this.prevIndex = -1;
398
+ this._direction = () => "both";
399
+ this.directionLength = 5;
400
+ this.hostDelegatesFocus = false;
401
+ this.elementEnterAction = (_el) => {
402
+ return;
403
+ };
404
+ this._focused = false;
405
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
406
+ this._focusInIndex = (_elements) => 0;
407
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
408
+ this.isFocusableElement = (_el) => true;
409
+ this._listenerScope = () => this.host;
410
+ // When elements are virtualized, the delta between the first element
411
+ // and the first rendered element.
412
+ this.offset = 0;
413
+ this.recentlyConnected = false;
414
+ this.handleFocusin = (event) => {
415
+ if (!this.isEventWithinListenerScope(event)) return;
416
+ const path = event.composedPath();
417
+ let targetIndex = -1;
418
+ path.find((el) => {
419
+ targetIndex = this.elements.indexOf(el);
420
+ return targetIndex !== -1;
421
+ });
422
+ this.prevIndex = this.currentIndex;
423
+ this.currentIndex = targetIndex > -1 ? targetIndex : this.currentIndex;
424
+ if (this.isRelatedTargetOrContainAnElement(event)) {
425
+ this.hostContainsFocus();
426
+ }
427
+ };
428
+ /**
429
+ * handleClick - Finds the element that was clicked and sets the tabindex to 0
430
+ * @returns void
431
+ */
432
+ this.handleClick = () => {
433
+ const elements = this.elements;
434
+ if (elements.length === 0) return;
435
+ let focusElement = elements[this.currentIndex];
436
+ if (this.currentIndex < 0) {
437
+ return;
438
+ }
439
+ if (!focusElement || !this.isFocusableElement(focusElement)) {
440
+ this.setCurrentIndexCircularly(1);
441
+ focusElement = elements[this.currentIndex];
442
+ }
443
+ if (focusElement && this.isFocusableElement(focusElement)) {
444
+ elements[this.prevIndex]?.setAttribute("tabindex", "-1");
445
+ focusElement.setAttribute("tabindex", "0");
446
+ }
447
+ };
448
+ this.handleFocusout = (event) => {
449
+ if (this.isRelatedTargetOrContainAnElement(event)) {
450
+ this.hostNoLongerContainsFocus();
451
+ }
452
+ };
453
+ this.handleKeydown = (event) => {
454
+ if (!this.acceptsEventKey(event.key) || event.defaultPrevented) {
455
+ return;
456
+ }
457
+ let diff = 0;
458
+ this.prevIndex = this.currentIndex;
459
+ switch (event.key) {
460
+ case "ArrowRight":
461
+ diff += 1;
462
+ break;
463
+ case "ArrowDown":
464
+ diff += this.direction === "grid" ? this.directionLength : 1;
465
+ break;
466
+ case "ArrowLeft":
467
+ diff -= 1;
468
+ break;
469
+ case "ArrowUp":
470
+ diff -= this.direction === "grid" ? this.directionLength : 1;
471
+ break;
472
+ case "End":
473
+ this.currentIndex = 0;
474
+ diff -= 1;
475
+ break;
476
+ case "Home":
477
+ this.currentIndex = this.elements.length - 1;
478
+ diff += 1;
479
+ break;
480
+ }
481
+ event.preventDefault();
482
+ if (this.direction === "grid" && this.currentIndex + diff < 0) {
483
+ this.currentIndex = 0;
484
+ } else if (this.direction === "grid" && this.currentIndex + diff > this.elements.length - 1) {
485
+ this.currentIndex = this.elements.length - 1;
486
+ } else {
487
+ this.setCurrentIndexCircularly(diff);
488
+ }
489
+ this.elementEnterAction(this.elements[this.currentIndex]);
490
+ this.focus();
491
+ };
492
+ this.mutationObserver = new MutationObserver(() => {
493
+ this.handleItemMutation();
494
+ });
495
+ this.hostDelegatesFocus = hostDelegatesFocus || false;
496
+ this.host = host;
497
+ this.host.addController(this);
498
+ this._elements = elements;
499
+ this.isFocusableElement = isFocusableElement || this.isFocusableElement;
500
+ this._direction = ensureMethod(direction, "string", this._direction);
501
+ this.elementEnterAction = elementEnterAction || this.elementEnterAction;
502
+ this._focusInIndex = ensureMethod(focusInIndex, "number", this._focusInIndex);
503
+ this._listenerScope = ensureMethod(listenerScope, "object", this._listenerScope);
504
+ }
505
+ get currentIndex() {
506
+ if (this._currentIndex === -1) {
507
+ this._currentIndex = this.focusInIndex;
508
+ }
509
+ return this._currentIndex - this.offset;
510
+ }
511
+ set currentIndex(currentIndex) {
512
+ this._currentIndex = currentIndex + this.offset;
513
+ }
514
+ get direction() {
515
+ return this._direction();
516
+ }
517
+ get elements() {
518
+ if (!this.cachedElements) {
519
+ this.cachedElements = this._elements();
520
+ }
521
+ return this.cachedElements;
522
+ }
523
+ set focused(focused) {
524
+ if (focused === this.focused) return;
525
+ this._focused = focused;
526
+ }
527
+ get focused() {
528
+ return this._focused;
529
+ }
530
+ get focusInElement() {
531
+ return this.elements[this.focusInIndex];
532
+ }
533
+ get focusInIndex() {
534
+ return this._focusInIndex(this.elements);
535
+ }
536
+ isEventWithinListenerScope(event) {
537
+ if (this._listenerScope() === this.host) return true;
538
+ return event.composedPath().includes(this._listenerScope());
539
+ }
540
+ /* In handleItemMutation() method the first if condition is checking if the element is not focused or if the element's children's length is not decreasing then it means no element has been deleted and we must return.
541
+ Then we are checking if the deleted element was the focused one before the deletion if so then we need to proceed else we casn return;
542
+ */
543
+ handleItemMutation() {
544
+ if (this._currentIndex === -1 || this.elements.length <= this._elements().length) return;
545
+ const focusedElement = this.elements[this.currentIndex];
546
+ this.clearElementCache();
547
+ if (this.elements.includes(focusedElement)) return;
548
+ const moveToNextElement = this.currentIndex !== this.elements.length;
549
+ const diff = moveToNextElement ? 1 : -1;
550
+ if (moveToNextElement) {
551
+ this.setCurrentIndexCircularly(-1);
552
+ }
553
+ this.setCurrentIndexCircularly(diff);
554
+ this.focus();
555
+ }
556
+ update({ elements } = { elements: () => [] }) {
557
+ this.unmanage();
558
+ this._elements = elements;
559
+ this.clearElementCache();
560
+ this.manage();
561
+ }
562
+ /**
563
+ * resets the focusedItem to initial item
564
+ */
565
+ reset() {
566
+ const elements = this.elements;
567
+ if (elements.length === 0) return;
568
+ this.setCurrentIndexCircularly(this.focusInIndex - this.currentIndex);
569
+ let focusElement = elements[this.currentIndex];
570
+ if (this.currentIndex < 0) {
571
+ return;
572
+ }
573
+ if (!focusElement || !this.isFocusableElement(focusElement)) {
574
+ this.setCurrentIndexCircularly(1);
575
+ focusElement = elements[this.currentIndex];
576
+ }
577
+ if (focusElement && this.isFocusableElement(focusElement)) {
578
+ elements[this.prevIndex]?.setAttribute("tabindex", "-1");
579
+ focusElement.setAttribute("tabindex", "0");
580
+ }
581
+ }
582
+ focusOnItem(item, options) {
583
+ if (item && this.isFocusableElement(item) && this.elements.indexOf(item)) {
584
+ const diff = this.elements.indexOf(item) - this.currentIndex;
585
+ this.setCurrentIndexCircularly(diff);
586
+ this.elements[this.prevIndex]?.setAttribute("tabindex", "-1");
587
+ }
588
+ this.focus(options);
589
+ }
590
+ focus(options) {
591
+ const elements = this.elements;
592
+ if (elements.length === 0) return;
593
+ let focusElement = elements[this.currentIndex];
594
+ if (!focusElement || !this.isFocusableElement(focusElement)) {
595
+ this.setCurrentIndexCircularly(1);
596
+ focusElement = elements[this.currentIndex];
597
+ }
598
+ if (focusElement && this.isFocusableElement(focusElement)) {
599
+ if (!this.hostDelegatesFocus || elements[this.prevIndex] !== focusElement) {
600
+ elements[this.prevIndex]?.setAttribute("tabindex", "-1");
601
+ }
602
+ focusElement.tabIndex = 0;
603
+ focusElement.focus(options);
604
+ if (this.hostDelegatesFocus && !this.focused) {
605
+ this.hostContainsFocus();
606
+ }
607
+ }
608
+ }
609
+ clearElementCache(offset = 0) {
610
+ this.mutationObserver.disconnect();
611
+ this.cachedElements = void 0;
612
+ this.offset = offset;
613
+ requestAnimationFrame(() => {
614
+ for (const element of this.elements) {
615
+ this.mutationObserver.observe(element, { attributes: true });
616
+ }
617
+ });
618
+ }
619
+ setCurrentIndexCircularly(diff) {
620
+ const { length } = this.elements;
621
+ let steps = length;
622
+ this.prevIndex = this.currentIndex;
623
+ let nextIndex = (length + this.currentIndex + diff) % length;
624
+ while (
625
+ // don't cycle the elements more than once
626
+ steps && this.elements[nextIndex] && !this.isFocusableElement(this.elements[nextIndex])
627
+ ) {
628
+ nextIndex = (length + nextIndex + diff) % length;
629
+ steps -= 1;
630
+ }
631
+ this.currentIndex = nextIndex;
632
+ }
633
+ hostContainsFocus() {
634
+ this.host.addEventListener("focusout", this.handleFocusout);
635
+ this.host.addEventListener("keydown", this.handleKeydown);
636
+ this.focused = true;
637
+ }
638
+ hostNoLongerContainsFocus() {
639
+ this.host.addEventListener("focusin", this.handleFocusin);
640
+ this.host.removeEventListener("focusout", this.handleFocusout);
641
+ this.host.removeEventListener("keydown", this.handleKeydown);
642
+ this.focused = false;
643
+ }
644
+ isRelatedTargetOrContainAnElement(event) {
645
+ const relatedTarget = event.relatedTarget;
646
+ const isRelatedTargetAnElement = this.elements.includes(relatedTarget);
647
+ const isRelatedTargetContainedWithinElements = this.elements.some((el) => el.contains(relatedTarget));
648
+ return !(isRelatedTargetAnElement || isRelatedTargetContainedWithinElements);
649
+ }
650
+ acceptsEventKey(key) {
651
+ if (key === "End" || key === "Home") {
652
+ return true;
653
+ }
654
+ switch (this.direction) {
655
+ case "horizontal":
656
+ return key === "ArrowLeft" || key === "ArrowRight";
657
+ case "vertical":
658
+ return key === "ArrowUp" || key === "ArrowDown";
659
+ case "both":
660
+ case "grid":
661
+ return key.startsWith("Arrow");
662
+ }
663
+ }
664
+ manage() {
665
+ this.addEventListeners();
666
+ }
667
+ unmanage() {
668
+ this.removeEventListeners();
669
+ }
670
+ addEventListeners() {
671
+ this.host.addEventListener("focusin", this.handleFocusin);
672
+ this.host.addEventListener("click", this.handleClick);
673
+ }
674
+ removeEventListeners() {
675
+ this.host.removeEventListener("focusin", this.handleFocusin);
676
+ this.host.removeEventListener("focusout", this.handleFocusout);
677
+ this.host.removeEventListener("keydown", this.handleKeydown);
678
+ this.host.removeEventListener("click", this.handleClick);
679
+ }
680
+ hostConnected() {
681
+ this.recentlyConnected = true;
682
+ this.addEventListeners();
683
+ }
684
+ hostDisconnected() {
685
+ this.mutationObserver.disconnect();
686
+ this.removeEventListeners();
687
+ }
688
+ hostUpdated() {
689
+ if (this.recentlyConnected) {
690
+ this.recentlyConnected = false;
691
+ for (const element of this.elements) {
692
+ this.mutationObserver.observe(element, { attributes: true });
693
+ }
694
+ }
695
+ }
696
+ }
697
+ class RovingTabindexController extends FocusGroupController {
698
+ constructor() {
699
+ super(...arguments);
700
+ this.managed = true;
701
+ this.manageIndexesAnimationFrame = 0;
702
+ }
703
+ set focused(focused) {
704
+ if (focused === this.focused) return;
705
+ super.focused = focused;
706
+ this.manageTabindexes();
707
+ }
708
+ get focused() {
709
+ return super.focused;
710
+ }
711
+ clearElementCache(offset = 0) {
712
+ cancelAnimationFrame(this.manageIndexesAnimationFrame);
713
+ super.clearElementCache(offset);
714
+ if (!this.managed) return;
715
+ this.manageIndexesAnimationFrame = requestAnimationFrame(() => this.manageTabindexes());
716
+ }
717
+ manageTabindexes() {
718
+ if (this.focused && !this.hostDelegatesFocus) {
719
+ this.updateTabindexes(() => ({ tabIndex: -1 }));
720
+ } else {
721
+ this.updateTabindexes((el) => {
722
+ return {
723
+ removeTabIndex: el.contains(this.focusInElement) && el !== this.focusInElement,
724
+ tabIndex: el === this.focusInElement ? 0 : -1
725
+ };
726
+ });
727
+ }
728
+ }
729
+ updateTabindexes(getTabIndex) {
730
+ for (const el of this.elements) {
731
+ const { tabIndex, removeTabIndex } = getTabIndex(el);
732
+ if (!removeTabIndex) {
733
+ if (this.focused) {
734
+ if (el !== this.elements[this.currentIndex]) {
735
+ el.tabIndex = tabIndex;
736
+ }
737
+ } else {
738
+ el.tabIndex = tabIndex;
739
+ }
740
+ return;
741
+ }
742
+ const updatable = el;
743
+ if (updatable.requestUpdate) updatable.requestUpdate();
744
+ }
745
+ }
746
+ manage() {
747
+ this.managed = true;
748
+ this.manageTabindexes();
749
+ super.manage();
750
+ }
751
+ unmanage() {
752
+ this.managed = false;
753
+ this.updateTabindexes(() => ({ tabIndex: 0 }));
754
+ super.unmanage();
755
+ }
756
+ hostUpdated() {
757
+ super.hostUpdated();
758
+ if (!this.host.hasUpdated) {
759
+ this.manageTabindexes();
760
+ }
761
+ }
762
+ }
763
+
764
+ const appliedClassMixins = /* @__PURE__ */ new WeakMap();
765
+ function wasMixinPreviouslyApplied(mixin, superClass) {
766
+ let klass = superClass;
767
+ while (klass) {
768
+ if (appliedClassMixins.get(klass) === mixin) {
769
+ return true;
770
+ }
771
+ klass = Object.getPrototypeOf(klass);
772
+ }
773
+ return false;
774
+ }
775
+ function dedupeMixin(mixin) {
776
+ return (superClass) => {
777
+ if (wasMixinPreviouslyApplied(mixin, superClass)) {
778
+ return superClass;
779
+ }
780
+ const mixedClass = mixin(superClass);
781
+ appliedClassMixins.set(mixedClass, mixin);
782
+ return mixedClass;
783
+ };
784
+ }
785
+
786
+ var __defProp$7 = Object.defineProperty;
787
+ var __decorateClass$7 = (decorators, target, key, kind) => {
788
+ var result = void 0 ;
789
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
790
+ if (decorator = decorators[i])
791
+ result = (decorator(target, key, result) ) || result;
792
+ if (result) __defProp$7(target, key, result);
793
+ return result;
794
+ };
795
+ const CanBeDisabled = dedupeMixin((superClass) => {
796
+ class CanBeDisabledElement extends superClass {
797
+ constructor() {
798
+ super(...arguments);
799
+ this.#initialTabIndex = 0;
800
+ this.disabled = false;
801
+ }
802
+ #initialTabIndex;
803
+ connectedCallback() {
804
+ super.connectedCallback?.();
805
+ this.#initialTabIndex = Math.max(0, this.tabIndex || 0);
806
+ }
807
+ willUpdate(props) {
808
+ super.willUpdate?.(props);
809
+ if (props.has("disabled")) {
810
+ this.tabIndex = this.disabled ? -1 : this.#initialTabIndex;
811
+ this.ariaDisabled = toAriaBooleanAttribute(this.disabled);
812
+ }
813
+ }
814
+ }
815
+ __decorateClass$7([
816
+ property({ type: Boolean, reflect: true })
817
+ ], CanBeDisabledElement.prototype, "disabled");
818
+ return CanBeDisabledElement;
819
+ });
820
+
821
+ var __defProp$6 = Object.defineProperty;
822
+ var __decorateClass$6 = (decorators, target, key, kind) => {
823
+ var result = void 0 ;
824
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
825
+ if (decorator = decorators[i])
826
+ result = (decorator(target, key, result) ) || result;
827
+ if (result) __defProp$6(target, key, result);
828
+ return result;
829
+ };
830
+ const CanBeReadonly = dedupeMixin((superClass) => {
831
+ class CanBeReadonlyElement extends superClass {
832
+ constructor() {
833
+ super(...arguments);
834
+ this.readonly = false;
835
+ }
836
+ willUpdate(props) {
837
+ super.willUpdate?.(props);
838
+ if (props.has("readonly")) {
839
+ this.ariaReadOnly = toAriaBooleanAttribute(this.readonly);
840
+ }
841
+ }
842
+ }
843
+ __decorateClass$6([
844
+ property({ type: Boolean, reflect: true })
845
+ ], CanBeReadonlyElement.prototype, "readonly");
846
+ return CanBeReadonlyElement;
847
+ });
848
+
849
+ var __defProp$5 = Object.defineProperty;
850
+ var __decorateClass$5 = (decorators, target, key, kind) => {
851
+ var result = void 0 ;
852
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
853
+ if (decorator = decorators[i])
854
+ result = (decorator(target, key, result) ) || result;
855
+ if (result) __defProp$5(target, key, result);
856
+ return result;
857
+ };
858
+ const CanBeRequired = dedupeMixin((superClass) => {
859
+ class CanBeRequiredElement extends superClass {
860
+ constructor() {
861
+ super(...arguments);
862
+ this.required = false;
863
+ }
864
+ willUpdate(props) {
865
+ super.willUpdate?.(props);
866
+ if (props.has("required")) {
867
+ this.ariaRequired = toAriaBooleanAttribute(this.required);
868
+ }
869
+ }
870
+ }
871
+ __decorateClass$5([
872
+ property({ type: Boolean, reflect: true })
873
+ ], CanBeRequiredElement.prototype, "required");
874
+ return CanBeRequiredElement;
875
+ });
876
+
877
+ const CanBeValidated = dedupeMixin((superClass) => {
878
+ class CanBeValidatedElement extends superClass {
879
+ constructor() {
880
+ super(...arguments);
881
+ this.focusable = true;
882
+ }
883
+ get validity() {
884
+ return this.internals.validity;
885
+ }
886
+ get validationMessage() {
887
+ return this.internals.validationMessage;
888
+ }
889
+ get willValidate() {
890
+ return this.internals.willValidate;
891
+ }
892
+ checkValidity() {
893
+ return this.internals.checkValidity();
894
+ }
895
+ reportValidity() {
896
+ this.internals.reportValidity();
897
+ }
898
+ setValidity(flags, target = this) {
899
+ const errorKey = Object.keys(flags ?? {}).find((key) => flags?.[key] === true);
900
+ this.internals.setValidity(flags, errorKey ?? "unknown error", target);
901
+ }
902
+ }
903
+ return CanBeValidatedElement;
904
+ });
905
+
906
+ const customElementStyles = "@layer odx-reset,odx-base,odx-component,odx-theme;@layer odx-base{[odxPreventTextOverflow]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@layer odx-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)}}@layer odx-reset{:where(*,*:before,*:after){box-sizing:border-box}:where(:host){box-sizing:border-box;border:none;color:inherit}#root,#__next{isolation:isolate}[hidden]{display:none}}";
907
+
908
+ function toCSSResult(value) {
909
+ return value instanceof CSSResult || value instanceof CSSStyleSheet ? value : unsafeCSS(value);
910
+ }
911
+ function customElement(selector, styles = []) {
912
+ if (globalThis.customElements.get(selector)) return () => void 0;
913
+ const preparedStyles = [customElementStyles, styles].map(toCSSResult);
914
+ return (target) => {
915
+ target.selector = selector;
916
+ target.styles = target.styles ? [target.styles, preparedStyles].flat() : preparedStyles;
917
+ customElements.define(target.selector, target);
918
+ };
919
+ }
920
+ class CustomElement extends LitElement {
921
+ render() {
922
+ return html`<slot></slot>`;
923
+ }
924
+ emit(event, eventInit) {
925
+ return !this.dispatchEvent(new CustomEvent(event, { bubbles: true, composed: true, cancelable: true, ...eventInit }));
926
+ }
927
+ }
928
+
929
+ var __defProp$4 = Object.defineProperty;
930
+ var __decorateClass$4 = (decorators, target, key, kind) => {
931
+ var result = void 0 ;
932
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
933
+ if (decorator = decorators[i])
934
+ result = (decorator(target, key, result) ) || result;
935
+ if (result) __defProp$4(target, key, result);
936
+ return result;
937
+ };
938
+ const FormControl = dedupeMixin((superClass) => {
939
+ class FormControlElement extends CanBeValidated(CanBeRequired(CanBeReadonly(CanBeDisabled(superClass)))) {
940
+ constructor(...args) {
941
+ super(...args);
942
+ this.name = "";
943
+ this.value = "";
944
+ this.internals = this.attachInternals();
945
+ }
946
+ static {
947
+ this.formAssociated = true;
948
+ }
949
+ static {
950
+ this.shadowRootOptions = {
951
+ ...CustomElement.shadowRootOptions,
952
+ delegatesFocus: true
953
+ };
954
+ }
955
+ get form() {
956
+ return this.internals.form;
957
+ }
958
+ get type() {
959
+ return this.localName;
960
+ }
961
+ get states() {
962
+ return this.internals.states;
963
+ }
964
+ toFormValue() {
965
+ return this.value;
966
+ }
967
+ updated(props) {
968
+ super.updated(props);
969
+ if (props.has("value")) {
970
+ this.internals.setFormValue(this.toFormValue());
971
+ }
972
+ }
973
+ }
974
+ __decorateClass$4([
975
+ property()
976
+ ], FormControlElement.prototype, "name");
977
+ __decorateClass$4([
978
+ property()
979
+ ], FormControlElement.prototype, "value");
980
+ return FormControlElement;
981
+ });
982
+
983
+ var __defProp$3 = Object.defineProperty;
984
+ var __decorateClass$3 = (decorators, target, key, kind) => {
985
+ var result = void 0 ;
986
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
987
+ if (decorator = decorators[i])
988
+ result = (decorator(target, key, result) ) || result;
989
+ if (result) __defProp$3(target, key, result);
990
+ return result;
991
+ };
992
+ const IsLocalized = dedupeMixin((superClass) => {
993
+ class IsLocalizedElement extends SignalWatcher(superClass) {
994
+ constructor() {
995
+ super(...arguments);
996
+ this.locale = computed(() => getLocale(this.lang));
997
+ }
998
+ formatDate(input, options) {
999
+ return formatDate(input, { ...options, locale: options?.locale ?? this.locale.get() });
1000
+ }
1001
+ formatNumber(input, options) {
1002
+ return formatNumber(input, { ...options, locale: options?.locale ?? this.locale.get() });
1003
+ }
1004
+ formatList(input, options) {
1005
+ return formatList(input, { ...options, locale: options?.locale ?? this.locale.get() });
1006
+ }
1007
+ formatRelativeTime(input, options) {
1008
+ return formatRelativeTime(input, { ...options, locale: options?.locale ?? this.locale.get() });
1009
+ }
1010
+ }
1011
+ __decorateClass$3([
1012
+ property()
1013
+ ], IsLocalizedElement.prototype, "lang");
1014
+ return IsLocalizedElement;
1015
+ });
1016
+
1017
+ var __defProp$2 = Object.defineProperty;
1018
+ var __decorateClass$2 = (decorators, target, key, kind) => {
1019
+ var result = void 0 ;
1020
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
1021
+ if (decorator = decorators[i])
1022
+ result = (decorator(target, key, result) ) || result;
1023
+ if (result) __defProp$2(target, key, result);
1024
+ return result;
1025
+ };
1026
+ const MIN_STEP_VALUE = 1 / 2 ^ 16;
1027
+ const NumberControl = dedupeMixin((superClass) => {
1028
+ class NumberControlElement extends FormControl(superClass) {
1029
+ constructor() {
1030
+ super(...arguments);
1031
+ this.min = 0;
1032
+ this.max = 100;
1033
+ this.step = 1;
1034
+ this.value = 0;
1035
+ }
1036
+ getValueText() {
1037
+ return this.ariaValueText?.trim() ?? "";
1038
+ }
1039
+ update(props) {
1040
+ if (props.has("value")) {
1041
+ this.internals.ariaValueNow = String(this.value);
1042
+ this.internals.ariaValueText = this.getValueText();
1043
+ }
1044
+ if (props.has("min")) {
1045
+ this.internals.ariaValueMin = String(this.min);
1046
+ }
1047
+ if (props.has("max")) {
1048
+ this.internals.ariaValueMax = String(this.max);
1049
+ }
1050
+ if (props.has("step")) {
1051
+ this.step = Math.max(MIN_STEP_VALUE, this.step);
1052
+ }
1053
+ this.value = Math.max(this.min, Math.min(this.value, this.max));
1054
+ super.update?.(props);
1055
+ }
1056
+ toFormValue() {
1057
+ return String(this.value);
1058
+ }
1059
+ }
1060
+ __decorateClass$2([
1061
+ property({ type: Number })
1062
+ ], NumberControlElement.prototype, "min");
1063
+ __decorateClass$2([
1064
+ property({ type: Number })
1065
+ ], NumberControlElement.prototype, "max");
1066
+ __decorateClass$2([
1067
+ property({ type: Number })
1068
+ ], NumberControlElement.prototype, "step");
1069
+ __decorateClass$2([
1070
+ property({ type: Number, reflect: true })
1071
+ ], NumberControlElement.prototype, "value");
1072
+ return NumberControlElement;
1073
+ });
1074
+
1075
+ var __defProp$1 = Object.defineProperty;
1076
+ var __decorateClass$1 = (decorators, target, key, kind) => {
1077
+ var result = void 0 ;
1078
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
1079
+ if (decorator = decorators[i])
1080
+ result = (decorator(target, key, result) ) || result;
1081
+ if (result) __defProp$1(target, key, result);
1082
+ return result;
1083
+ };
1084
+ const WithAriaControls = dedupeMixin((superClass) => {
1085
+ class WithAriaControlsElement extends CanBeDisabled(superClass) {
1086
+ get region() {
1087
+ return this.nextElementSibling;
1088
+ }
1089
+ updateA11yAttributes() {
1090
+ if (!this.region) return;
1091
+ this.id ||= getUniqueId(this.localName);
1092
+ this.role ||= "button";
1093
+ this.region.role ||= "region";
1094
+ this.region.id ||= `${this.id}-region`;
1095
+ this.region.ariaHidden = this.disabled ? "true" : this.region.ariaHidden;
1096
+ this.setAttribute("aria-controls", this.region.id);
1097
+ this.region.setAttribute("aria-labelledby", this.id);
1098
+ }
1099
+ update(props) {
1100
+ super.update(props);
1101
+ if (props.has("disabled") || props.has("id")) {
1102
+ this.updateA11yAttributes();
1103
+ }
1104
+ }
1105
+ }
1106
+ __decorateClass$1([
1107
+ property({ reflect: true })
1108
+ ], WithAriaControlsElement.prototype, "id");
1109
+ return WithAriaControlsElement;
1110
+ });
1111
+
1112
+ var __defProp = Object.defineProperty;
1113
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
1114
+ var __decorateClass = (decorators, target, key, kind) => {
1115
+ var result = __getOwnPropDesc(target, key) ;
1116
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
1117
+ if (decorator = decorators[i])
1118
+ result = (decorator(target, key, result) ) || result;
1119
+ if (result) __defProp(target, key, result);
1120
+ return result;
1121
+ };
1122
+ const WithLoadingState = dedupeMixin((superClass) => {
1123
+ class WithLoadingStateElement extends superClass {
1124
+ get loadingContainer() {
1125
+ return this;
1126
+ }
1127
+ set loading(value) {
1128
+ this.loadingContainer.ariaBusy = toAriaBooleanAttribute(value);
1129
+ this.loadingContainer.inert = value;
1130
+ }
1131
+ get loading() {
1132
+ return fromAriaBooleanAttribute(this.loadingContainer.ariaBusy);
1133
+ }
1134
+ }
1135
+ __decorateClass([
1136
+ property({ type: Boolean, reflect: true })
1137
+ ], WithLoadingStateElement.prototype, "loading");
1138
+ return WithLoadingStateElement;
1139
+ });
1140
+
1141
+ export { CanBeDisabled, CanBeReadonly, CanBeRequired, CanBeValidated, CustomElement, FocusTrapController, FormControl, IsLocalized, KeyboardKey, NumberControl, RovingTabindexController, SharedIntersectionObserver, SharedResizeObserver, WithAriaControls, WithLoadingState, clearUniqueIdCache, createMutationObserver, createOptions, customElement, dedupeMixin, emptySlotFallbackFix, findClosestDocument, formatDate, formatList, formatNumber, formatRelativeTime, fromAriaBooleanAttribute, getElementFromEvent, getKeyboardEventInfo, getLocale, getLocalizationOptions, getUniqueId, iso8601DateTimeFormat, optionalAttr, optionalSlot, parseDate, requestUpdateOnAriaChange, setLocale, setLocalizationOptions, toAriaBooleanAttribute, toPx, toggleAttribute, waitForAnimations, watchLocaleChanges };