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

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 (314) hide show
  1. package/dist/cdk/drag-drop/drag.controller.d.ts +1 -1
  2. package/dist/cdk/drag-drop/is-draggable.d.ts +1 -1
  3. package/dist/cdk/main.d.ts +6 -6
  4. package/dist/cdk/popover/popover-host.mixin.d.ts +1 -1
  5. package/dist/cdk/popover/popover.component.js +1 -1
  6. package/dist/cdk/popover/popover.utils.d.ts +1 -1
  7. package/dist/components/accordion/accordion-header.component.d.ts +1 -1
  8. package/dist/components/accordion/accordion-panel.component.js +1 -1
  9. package/dist/components/accordion/accordion.component.d.ts +1 -1
  10. package/dist/components/accordion/accordion.component.js +1 -1
  11. package/dist/components/accordion/index.d.ts +3 -3
  12. package/dist/components/area-header/area-header.component.d.ts +1 -1
  13. package/dist/components/area-header/area-header.component.js +1 -1
  14. package/dist/components/area-header/index.d.ts +2 -2
  15. package/dist/components/avatar/avatar.component.d.ts +1 -1
  16. package/dist/components/avatar/avatar.component.js +1 -1
  17. package/dist/components/avatar/index.d.ts +2 -2
  18. package/dist/components/avatar-group/avatar-group.component.d.ts +1 -1
  19. package/dist/components/avatar-group/avatar-group.component.js +1 -1
  20. package/dist/components/avatar-group/index.d.ts +1 -1
  21. package/dist/components/badge/badge.component.d.ts +1 -1
  22. package/dist/components/badge/badge.component.js +1 -1
  23. package/dist/components/badge/index.d.ts +2 -2
  24. package/dist/components/{breadcrumb/breadcrumb-item.component.d.ts → breadcrumbs/breadcrumbs-item.component.d.ts} +8 -7
  25. package/dist/components/breadcrumbs/breadcrumbs-item.component.js +56 -0
  26. package/dist/components/{breadcrumb/breadcrumb.component.css.js → breadcrumbs/breadcrumbs.component.css.js} +1 -1
  27. package/dist/components/breadcrumbs/breadcrumbs.component.d.ts +23 -0
  28. package/dist/components/breadcrumbs/breadcrumbs.component.js +88 -0
  29. package/dist/components/breadcrumbs/index.d.ts +3 -0
  30. package/dist/components/button/base-button.css.js +1 -1
  31. package/dist/components/button/base-button.d.ts +6 -4
  32. package/dist/components/button/base-button.js +22 -28
  33. package/dist/components/button/button.component.css.js +1 -1
  34. package/dist/components/button/button.component.d.ts +3 -3
  35. package/dist/components/button/index.d.ts +3 -3
  36. package/dist/components/button-group/button-group.component.d.ts +2 -2
  37. package/dist/components/button-group/index.d.ts +1 -1
  38. package/dist/components/card/card.component.d.ts +1 -1
  39. package/dist/components/card/index.d.ts +1 -1
  40. package/dist/components/checkbox/checkbox.component.js +1 -1
  41. package/dist/components/checkbox/index.d.ts +1 -1
  42. package/dist/components/checkbox-group/checkbox-group.component.d.ts +1 -1
  43. package/dist/components/checkbox-group/checkbox-group.component.js +1 -1
  44. package/dist/components/checkbox-group/index.d.ts +2 -2
  45. package/dist/components/chip/chip.component.d.ts +2 -2
  46. package/dist/components/chip/chip.component.js +1 -1
  47. package/dist/components/chip/index.d.ts +2 -2
  48. package/dist/components/circular-progress-bar/circular-progress-bar.component.d.ts +1 -1
  49. package/dist/components/circular-progress-bar/circular-progress-bar.component.js +1 -1
  50. package/dist/components/circular-progress-bar/index.d.ts +2 -2
  51. package/dist/components/content-box/content-box.component.js +1 -1
  52. package/dist/components/content-box/content-box.models.d.ts +1 -0
  53. package/dist/components/content-box/index.d.ts +1 -1
  54. package/dist/components/dropdown/dropdown.component.d.ts +2 -2
  55. package/dist/components/dropdown/index.d.ts +2 -2
  56. package/dist/{elements → components}/form-field/form-field.element.js +1 -1
  57. package/dist/components/form-field/index.d.ts +2 -0
  58. package/dist/components/format/format-bytes.component.d.ts +1 -1
  59. package/dist/components/format/format-date.component.d.ts +2 -2
  60. package/dist/components/format/format-date.component.js +1 -1
  61. package/dist/components/format/format-number.component.d.ts +2 -2
  62. package/dist/components/format/format.component.d.ts +4 -3
  63. package/dist/components/format/format.component.js +2 -1
  64. package/dist/components/format/index.d.ts +4 -4
  65. package/dist/components/format/relative-time.component.d.ts +2 -2
  66. package/dist/components/format/relative-time.component.js +1 -1
  67. package/dist/components/header/header-actions.component.js +1 -1
  68. package/dist/components/header/header.component.js +3 -3
  69. package/dist/components/header/index.d.ts +2 -2
  70. package/dist/components/headline/headline.component.d.ts +1 -1
  71. package/dist/components/headline/headline.component.js +1 -1
  72. package/dist/components/headline/index.d.ts +2 -2
  73. package/dist/components/icon-button/icon-button.component.d.ts +1 -1
  74. package/dist/components/icon-button/icon-button.component.js +2 -3
  75. package/dist/components/icon-button/index.d.ts +1 -1
  76. package/dist/components/inline-message/index.d.ts +2 -2
  77. package/dist/components/inline-message/inline-message.component.d.ts +1 -1
  78. package/dist/components/inline-message/inline-message.component.js +1 -1
  79. package/dist/components/input/index.d.ts +2 -2
  80. package/dist/components/input/input.component.d.ts +2 -2
  81. package/dist/components/line-clamp/index.d.ts +1 -1
  82. package/dist/components/line-clamp/line-clamp.component.js +1 -1
  83. package/dist/components/link/base-link.d.ts +1 -1
  84. package/dist/components/link/index.d.ts +2 -2
  85. package/dist/components/link/link.component.d.ts +1 -1
  86. package/dist/components/list/index.d.ts +2 -2
  87. package/dist/components/list/list-item.component.d.ts +1 -1
  88. package/dist/components/list/list-item.component.js +2 -1
  89. package/dist/components/list/list.component.js +2 -1
  90. package/dist/components/loading-overlay/index.d.ts +1 -1
  91. package/dist/components/loading-overlay/loading-overlay.component.d.ts +1 -1
  92. package/dist/components/loading-overlay/loading-overlay.component.js +2 -4
  93. package/dist/components/loading-spinner/index.d.ts +1 -1
  94. package/dist/components/loading-spinner/loading-spinner.component.js +1 -1
  95. package/dist/components/logo/index.d.ts +2 -2
  96. package/dist/components/logo/logo.component.d.ts +1 -1
  97. package/dist/components/logo/logo.component.js +1 -1
  98. package/dist/components/main-menu/index.d.ts +5 -5
  99. package/dist/components/main-menu/main-menu-button.component.js +1 -1
  100. package/dist/components/main-menu/main-menu-link.component.d.ts +1 -1
  101. package/dist/components/main-menu/main-menu-link.component.js +2 -1
  102. package/dist/components/main-menu/main-menu-subtitle.component.js +1 -1
  103. package/dist/components/main-menu/main-menu-title.component.js +1 -1
  104. package/dist/components/main-menu/main-menu.component.js +1 -1
  105. package/dist/components/main.d.ts +55 -51
  106. package/dist/components/main.js +19 -19
  107. package/dist/components/menu/index.d.ts +2 -3
  108. package/dist/components/menu/menu-label.component.css.js +1 -1
  109. package/dist/components/menu/menu-label.component.d.ts +0 -2
  110. package/dist/components/menu/menu-label.component.js +1 -9
  111. package/dist/components/menu/menu.component.d.ts +2 -2
  112. package/dist/components/menu/menu.component.js +2 -1
  113. package/dist/components/menu-item/index.d.ts +2 -0
  114. package/dist/components/menu-item/menu-item.component.css.js +3 -0
  115. package/dist/components/menu-item/menu-item.component.d.ts +14 -0
  116. package/dist/components/{menu → menu-item}/menu-item.component.js +13 -5
  117. package/dist/components/navigation-item/index.d.ts +2 -2
  118. package/dist/components/navigation-item/navigation-item.component.d.ts +2 -2
  119. package/dist/components/navigation-item/navigation-item.component.js +2 -1
  120. package/dist/components/option/index.d.ts +1 -1
  121. package/dist/components/option/option.component.js +1 -1
  122. package/dist/components/page/index.d.ts +2 -2
  123. package/dist/components/page/page.component.d.ts +1 -1
  124. package/dist/components/page/page.component.js +1 -1
  125. package/dist/components/page-layout/index.d.ts +1 -1
  126. package/dist/components/page-layout/page-layout.component.js +1 -1
  127. package/dist/components/progress-bar/index.d.ts +2 -2
  128. package/dist/components/progress-bar/progress-bar.component.d.ts +1 -1
  129. package/dist/components/progress-bar/progress-bar.component.js +1 -1
  130. package/dist/components/radio-button/index.d.ts +1 -1
  131. package/dist/components/radio-button/radio-button.component.js +1 -1
  132. package/dist/components/radio-group/index.d.ts +2 -2
  133. package/dist/components/radio-group/radio-group.component.d.ts +1 -1
  134. package/dist/components/radio-group/radio-group.component.js +1 -1
  135. package/dist/components/rail-navigation/index.d.ts +1 -1
  136. package/dist/components/rail-navigation/rail-navigation.component.css.js +1 -1
  137. package/dist/components/rail-navigation/rail-navigation.component.d.ts +3 -11
  138. package/dist/components/rail-navigation/rail-navigation.component.js +7 -13
  139. package/dist/components/search-bar/index.d.ts +3 -3
  140. package/dist/components/search-bar/search-bar.component.d.ts +1 -1
  141. package/dist/components/search-bar/search-bar.component.js +1 -1
  142. package/dist/components/select/index.d.ts +1 -1
  143. package/dist/components/select/select.component.d.ts +2 -2
  144. package/dist/components/select/select.component.js +4 -3
  145. package/dist/components/separator/index.d.ts +1 -1
  146. package/dist/components/separator/separator.component.css.js +1 -1
  147. package/dist/components/separator/separator.component.d.ts +4 -0
  148. package/dist/components/separator/separator.component.js +14 -1
  149. package/dist/components/separator/separator.models.d.ts +6 -0
  150. package/dist/components/skeleton/index.d.ts +1 -1
  151. package/dist/components/skeleton/skeleton.component.js +1 -1
  152. package/dist/components/slider/index.d.ts +4 -4
  153. package/dist/components/slider/slider-handle.component.d.ts +2 -2
  154. package/dist/components/slider/slider-marks.component.d.ts +1 -1
  155. package/dist/components/slider/slider-marks.component.js +1 -1
  156. package/dist/components/slider/slider.component.d.ts +3 -3
  157. package/dist/components/slider/slider.component.js +1 -1
  158. package/dist/components/spacer/index.d.ts +1 -1
  159. package/dist/components/spacer/spacer.component.js +1 -1
  160. package/dist/components/spinbox/index.d.ts +1 -1
  161. package/dist/components/spinbox/spinbox.component.d.ts +1 -1
  162. package/dist/components/stack/index.d.ts +2 -2
  163. package/dist/components/stack/stack.component.d.ts +1 -1
  164. package/dist/components/stack/stack.component.js +1 -1
  165. package/dist/components/switch/index.d.ts +1 -1
  166. package/dist/components/switch/switch.component.js +1 -1
  167. package/dist/components/table/index.d.ts +8 -0
  168. package/dist/{elements/table/elements/table-body → components/table}/table-body.element.js +1 -1
  169. package/dist/{elements/table/elements/table-cell → components/table}/table-cell.element.js +1 -1
  170. package/dist/{elements/table/elements/table-checkbox-cell → components/table}/table-checkbox-cell.element.js +1 -1
  171. package/dist/{elements/table/elements/table-header-cell → components/table}/table-header-cell.element.js +1 -1
  172. package/dist/{elements/table/elements/table-header → components/table}/table-header.element.js +2 -2
  173. package/dist/{elements/table/elements/table-row → components/table}/table-row.element.js +2 -2
  174. package/dist/{elements → components}/table/table.element.d.ts +2 -2
  175. package/dist/{elements → components}/table/table.element.js +4 -4
  176. package/dist/components/text/index.d.ts +2 -2
  177. package/dist/components/text/text.component.css.js +1 -1
  178. package/dist/components/text/text.component.d.ts +1 -1
  179. package/dist/components/text/text.component.js +1 -1
  180. package/dist/components/text/text.models.d.ts +1 -0
  181. package/dist/components/text/text.models.js +2 -1
  182. package/dist/components/title/index.d.ts +2 -2
  183. package/dist/components/title/title.component.d.ts +1 -1
  184. package/dist/components/title/title.component.js +1 -1
  185. package/dist/components/toast/index.d.ts +3 -0
  186. package/dist/{elements → components}/toast/toast.element.d.ts +1 -1
  187. package/dist/{elements → components}/toast/toast.element.js +1 -1
  188. package/dist/{elements/toast/models/toast-variant.d.ts → components/toast/toast.models.d.ts} +1 -1
  189. package/dist/components/toggle-button/index.d.ts +1 -1
  190. package/dist/components/toggle-button/toggle-button.component.js +1 -1
  191. package/dist/components/tooltip/index.d.ts +3 -0
  192. package/dist/{elements → components}/tooltip/tooltip.element.d.ts +1 -1
  193. package/dist/{elements → components}/tooltip/tooltip.element.js +1 -1
  194. package/dist/{elements/tooltip/models/tooltip-placement.d.ts → components/tooltip/tooltip.models.d.ts} +1 -1
  195. package/dist/components/visually-hidden/index.d.ts +1 -1
  196. package/dist/components/visually-hidden/visually-hidden.component.js +1 -1
  197. package/dist/i18n/lib/config.d.ts +29 -0
  198. package/dist/i18n/lib/config.js +16 -0
  199. package/dist/i18n/lib/format.d.ts +6 -0
  200. package/dist/{lib/utils → i18n/lib}/format.js +11 -12
  201. package/dist/{lib/mixins/is-localized.d.ts → i18n/lib/is-localized.mixin.d.ts} +4 -4
  202. package/dist/{lib/mixins/is-localized.js → i18n/lib/is-localized.mixin.js} +7 -7
  203. package/dist/i18n/lib/localization.d.ts +5 -0
  204. package/dist/i18n/lib/localization.js +28 -0
  205. package/dist/{lib/models/single-unit-identifier.d.ts → i18n/lib/models.d.ts} +2 -1
  206. package/dist/i18n/lib/translate.d.ts +5 -0
  207. package/dist/i18n/lib/translate.js +18 -0
  208. package/dist/i18n/main.d.ts +7 -0
  209. package/dist/i18n/main.js +5 -0
  210. package/dist/lib/controllers/focus-trap.controller.js +2 -2
  211. package/dist/lib/{utils → decorators}/request-update-on-aria-change.d.ts +1 -1
  212. package/dist/lib/directives/slot-fallback.js +5 -5
  213. package/dist/lib/facade/checkbox-form-control.d.ts +2 -2
  214. package/dist/lib/facade/checkbox-form-control.js +2 -2
  215. package/dist/lib/facade/checkbox-group-form-control.d.ts +3 -3
  216. package/dist/lib/facade/checkbox-group-form-control.js +2 -2
  217. package/dist/lib/facade/option-control.d.ts +3 -3
  218. package/dist/lib/facade/option-control.js +2 -2
  219. package/dist/lib/facade/radio-group-form-control.d.ts +3 -3
  220. package/dist/lib/facade/radio-group-form-control.js +2 -2
  221. package/dist/lib/facade/select-form-control.d.ts +3 -3
  222. package/dist/lib/facade/select-form-control.js +3 -3
  223. package/dist/lib/main.d.ts +31 -7
  224. package/dist/lib/main.js +8 -13
  225. package/dist/lib/mixins/can-be-disabled.d.ts +2 -2
  226. package/dist/lib/mixins/can-be-readonly.d.ts +2 -2
  227. package/dist/lib/mixins/can-be-required.d.ts +2 -2
  228. package/dist/lib/mixins/can-be-validated.d.ts +2 -2
  229. package/dist/lib/mixins/form-control.d.ts +6 -6
  230. package/dist/lib/mixins/form-control.js +1 -1
  231. package/dist/lib/mixins/number-control.d.ts +3 -3
  232. package/dist/lib/mixins/with-aria-controls.d.ts +3 -3
  233. package/dist/lib/mixins/with-aria-controls.js +1 -1
  234. package/dist/lib/mixins/with-loading-state.d.ts +2 -2
  235. package/dist/lib/utils/{parse-date.d.ts → date.d.ts} +1 -1
  236. package/dist/lib/utils/dom.d.ts +8 -0
  237. package/dist/lib/utils/dom.js +14 -1
  238. package/dist/lib/utils/{create-options.d.ts → object.d.ts} +1 -1
  239. package/dist/lib/utils/shared-intersection-observer.d.ts +7 -0
  240. package/dist/lib/utils/shared-intersection-observer.js +8 -3
  241. package/dist/lib/utils/shared-resize-observer.d.ts +7 -0
  242. package/dist/lib/utils/shared-resize-observer.js +8 -3
  243. package/dist/lib/utils/string.d.ts +2 -0
  244. package/dist/lib/utils/string.js +7 -0
  245. package/package.json +8 -3
  246. package/dist/components/breadcrumb/breadcrumb-item.component.js +0 -56
  247. package/dist/components/breadcrumb/breadcrumb.component.d.ts +0 -17
  248. package/dist/components/breadcrumb/breadcrumb.component.js +0 -72
  249. package/dist/components/breadcrumb/index.d.ts +0 -3
  250. package/dist/components/menu/menu-item.component.css.js +0 -3
  251. package/dist/components/menu/menu-item.component.d.ts +0 -13
  252. package/dist/elements/form-field/index.d.ts +0 -2
  253. package/dist/elements/main.d.ts +0 -5
  254. package/dist/elements/table/elements/table-body/index.d.ts +0 -2
  255. package/dist/elements/table/elements/table-cell/index.d.ts +0 -2
  256. package/dist/elements/table/elements/table-checkbox-cell/index.d.ts +0 -2
  257. package/dist/elements/table/elements/table-header/index.d.ts +0 -2
  258. package/dist/elements/table/elements/table-header-cell/index.d.ts +0 -2
  259. package/dist/elements/table/elements/table-row/index.d.ts +0 -2
  260. package/dist/elements/table/index.d.ts +0 -8
  261. package/dist/elements/toast/index.d.ts +0 -3
  262. package/dist/elements/toast/models/index.d.ts +0 -2
  263. package/dist/elements/tooltip/index.d.ts +0 -3
  264. package/dist/elements/tooltip/models/index.d.ts +0 -2
  265. package/dist/lib/controllers/index.d.ts +0 -2
  266. package/dist/lib/directives/index.d.ts +0 -5
  267. package/dist/lib/external/index.d.ts +0 -2
  268. package/dist/lib/facade/index.d.ts +0 -6
  269. package/dist/lib/mixins/index.d.ts +0 -12
  270. package/dist/lib/mixins/is-translatable.d.ts +0 -13
  271. package/dist/lib/mixins/is-translatable.js +0 -20
  272. package/dist/lib/models/index.d.ts +0 -5
  273. package/dist/lib/models/locale.d.ts +0 -2
  274. package/dist/lib/utils/create-intersection-observer.d.ts +0 -8
  275. package/dist/lib/utils/create-intersection-observer.js +0 -9
  276. package/dist/lib/utils/create-mutation-observer.d.ts +0 -8
  277. package/dist/lib/utils/create-mutation-observer.js +0 -9
  278. package/dist/lib/utils/create-resize-observer.d.ts +0 -8
  279. package/dist/lib/utils/create-resize-observer.js +0 -9
  280. package/dist/lib/utils/element-loader.d.ts +0 -4
  281. package/dist/lib/utils/format.d.ts +0 -20
  282. package/dist/lib/utils/index.d.ts +0 -13
  283. package/dist/lib/utils/localization.d.ts +0 -15
  284. package/dist/lib/utils/localization.js +0 -41
  285. package/dist/lib/utils/wait-for-animations.d.ts +0 -2
  286. package/dist/lib/utils/wait-for-animations.js +0 -8
  287. /package/dist/components/{breadcrumb/breadcrumb-item.component.css.js → breadcrumbs/breadcrumbs-item.component.css.js} +0 -0
  288. /package/dist/{elements → components}/form-field/form-field.element.css.js +0 -0
  289. /package/dist/{elements → components}/form-field/form-field.element.d.ts +0 -0
  290. /package/dist/{elements/table/elements/table-body → components/table}/table-body.element.css.js +0 -0
  291. /package/dist/{elements/table/elements/table-body → components/table}/table-body.element.d.ts +0 -0
  292. /package/dist/{elements/table/elements/table-cell → components/table}/table-cell.element.css.js +0 -0
  293. /package/dist/{elements/table/elements/table-cell → components/table}/table-cell.element.d.ts +0 -0
  294. /package/dist/{elements/table/elements/table-checkbox-cell → components/table}/table-checkbox-cell.element.css.js +0 -0
  295. /package/dist/{elements/table/elements/table-checkbox-cell → components/table}/table-checkbox-cell.element.d.ts +0 -0
  296. /package/dist/{elements/table/elements/table-header-cell → components/table}/table-header-cell.element.css.js +0 -0
  297. /package/dist/{elements/table/elements/table-header-cell → components/table}/table-header-cell.element.d.ts +0 -0
  298. /package/dist/{elements/table/elements/table-header → components/table}/table-header.element.css.js +0 -0
  299. /package/dist/{elements/table/elements/table-header → components/table}/table-header.element.d.ts +0 -0
  300. /package/dist/{elements/table/elements/table-row → components/table}/table-row.element.css.js +0 -0
  301. /package/dist/{elements/table/elements/table-row → components/table}/table-row.element.d.ts +0 -0
  302. /package/dist/{elements → components}/table/table.context.d.ts +0 -0
  303. /package/dist/{elements → components}/table/table.element.css.js +0 -0
  304. /package/dist/{elements → components}/toast/toast.element.css.js +0 -0
  305. /package/dist/{elements/toast/models/toast-variant.js → components/toast/toast.models.js} +0 -0
  306. /package/dist/{elements → components}/tooltip/tooltip.element.css.js +0 -0
  307. /package/dist/{elements/tooltip/models/tooltip-placement.js → components/tooltip/tooltip.models.js} +0 -0
  308. /package/dist/lib/{models/custom-element.css.js → custom-element.css.js} +0 -0
  309. /package/dist/lib/{models/custom-element.d.ts → custom-element.d.ts} +0 -0
  310. /package/dist/lib/{models/custom-element.js → custom-element.js} +0 -0
  311. /package/dist/lib/{utils → decorators}/request-update-on-aria-change.js +0 -0
  312. /package/dist/{styles → lib}/main.css +0 -0
  313. /package/dist/lib/utils/{parse-date.js → date.js} +0 -0
  314. /package/dist/lib/utils/{create-options.js → object.js} +0 -0
@@ -1,7 +1,7 @@
1
1
  import { Signal } from '@lit-labs/signals';
2
- import { CustomElement } from '../models';
3
- import { formatDate, formatList, formatNumber, formatRelativeTime, getLocale } from '../utils';
4
- import { Constructor } from './dedupe-mixin';
2
+ import { Constructor, CustomElement } from '@odx/foundation';
3
+ import { formatDate, formatList, formatNumber, formatRelativeTime } from './format.js';
4
+ import { getLocale } from './localization.js';
5
5
  export interface IsLocalized {
6
6
  readonly locale: Signal.Computed<ReturnType<typeof getLocale>>;
7
7
  formatDate: typeof formatDate;
@@ -10,4 +10,4 @@ export interface IsLocalized {
10
10
  formatRelativeTime: typeof formatRelativeTime;
11
11
  }
12
12
  export declare const IsLocalized: <T extends Constructor<CustomElement>>(superClass: T) => Constructor<IsLocalized> & T;
13
- //# sourceMappingURL=is-localized.d.ts.map
13
+ //# sourceMappingURL=is-localized.mixin.d.ts.map
@@ -1,8 +1,8 @@
1
1
  import { SignalWatcher, computed } from '@lit-labs/signals';
2
+ import { dedupeMixin } from '@odx/foundation';
2
3
  import { property } from 'lit/decorators.js';
3
- import { dedupeMixin } from './dedupe-mixin.js';
4
- import { getLocale } from '../utils/localization.js';
5
- import { formatDate, formatNumber, formatList, formatRelativeTime } from '../utils/format.js';
4
+ import { formatDate, formatNumber, formatList, formatRelativeTime } from './format.js';
5
+ import { getLocale } from './localization.js';
6
6
 
7
7
  var __defProp = Object.defineProperty;
8
8
  var __decorateClass = (decorators, target, key, kind) => {
@@ -19,16 +19,16 @@ const IsLocalized = dedupeMixin((superClass) => {
19
19
  super(...arguments);
20
20
  this.locale = computed(() => getLocale(this.lang));
21
21
  }
22
- formatDate(input, options) {
22
+ formatDate(...[input, options]) {
23
23
  return formatDate(input, { ...options, locale: options?.locale ?? this.locale.get() });
24
24
  }
25
- formatNumber(input, options) {
25
+ formatNumber(...[input, options]) {
26
26
  return formatNumber(input, { ...options, locale: options?.locale ?? this.locale.get() });
27
27
  }
28
- formatList(input, options) {
28
+ formatList(...[input, options]) {
29
29
  return formatList(input, { ...options, locale: options?.locale ?? this.locale.get() });
30
30
  }
31
- formatRelativeTime(input, options) {
31
+ formatRelativeTime(...[input, options]) {
32
32
  return formatRelativeTime(input, { ...options, locale: options?.locale ?? this.locale.get() });
33
33
  }
34
34
  }
@@ -0,0 +1,5 @@
1
+ import { Locale } from './models.js';
2
+ export declare function watchLocaleChanges(root?: HTMLElement): void;
3
+ export declare function setLocale(locale: Locale | null): void;
4
+ export declare function getLocale(locale?: Locale | null): Intl.Locale;
5
+ //# sourceMappingURL=localization.d.ts.map
@@ -0,0 +1,28 @@
1
+ import { signal } from '@lit-labs/signals';
2
+ import { createMutationObserver } from '@odx/foundation';
3
+ import { getI18nOptions } from './config.js';
4
+
5
+ const activeLocale = signal(null, { equals: (t, t2) => t?.toString() === t2?.toString() });
6
+ function watchLocaleChanges(root = document.documentElement) {
7
+ const updateLocale = () => activeLocale.set(getLocale(root.lang));
8
+ const observer = createMutationObserver(updateLocale);
9
+ observer.observe(root, { attributes: true, attributeFilter: ["lang"] });
10
+ updateLocale();
11
+ }
12
+ function setLocale(locale) {
13
+ if (locale === null) {
14
+ document.documentElement.lang = getI18nOptions().defaultLocale().toString();
15
+ } else {
16
+ document.documentElement.lang = getLocale(locale).toString();
17
+ }
18
+ }
19
+ function getLocale(locale) {
20
+ const fallbackLocale = activeLocale.get() || getI18nOptions().defaultLocale();
21
+ try {
22
+ return new Intl.Locale(locale || fallbackLocale);
23
+ } catch {
24
+ return new Intl.Locale(fallbackLocale);
25
+ }
26
+ }
27
+
28
+ export { getLocale, setLocale, watchLocaleChanges };
@@ -1,6 +1,7 @@
1
+ export type Locale = Intl.UnicodeBCP47LocaleIdentifier | Intl.Locale;
1
2
  /**
2
3
  * Single units sanctioned for use in ECMAScript.
3
4
  * See: https://tc39.es/ecma402/#table-sanctioned-single-unit-identifiers
4
5
  */
5
6
  export type SingleUnitIdentifier = 'acre' | 'bit' | 'byte' | 'celsius' | 'centimeter' | 'day' | 'degree' | 'fahrenheit' | 'fluid-ounce' | 'foot' | 'gallon' | 'gigabit' | 'gigabyte' | 'gram' | 'hectare' | 'hour' | 'inch' | 'kilobit' | 'kilobyte' | 'kilogram' | 'kilometer' | 'liter' | 'megabit' | 'megabyte' | 'meter' | 'microsecond' | 'mile' | 'mile-scandinavian' | 'milliliter' | 'millimeter' | 'millisecond' | 'minute' | 'month' | 'nanosecond' | 'ounce' | 'percent' | 'petabyte' | 'pound' | 'second' | 'stone' | 'terabit' | 'terabyte' | 'week' | 'yard' | 'year';
6
- //# sourceMappingURL=single-unit-identifier.d.ts.map
7
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1,5 @@
1
+ import { Signal } from '@lit-labs/signals';
2
+ import { Locale } from './models.js';
3
+ export declare function setTranslation(locale: Locale, translation: Record<string, string>): void;
4
+ export declare function translate(key: string, context?: Record<string, string | number> | null, locale?: Locale | null): Signal.Computed<string>;
5
+ //# sourceMappingURL=translate.d.ts.map
@@ -0,0 +1,18 @@
1
+ import { signal, computed } from '@lit-labs/signals';
2
+ import { interpolate } from '@odx/foundation';
3
+ import { getLocale } from './localization.js';
4
+
5
+ const translations = signal({});
6
+ function setTranslation(locale, translation) {
7
+ const { language } = getLocale(locale);
8
+ translations.set({ ...translations.get(), [language]: { ...translations.get()[language], ...translation } });
9
+ }
10
+ function translate(key, context, locale) {
11
+ return computed(() => {
12
+ const translation = translations.get()[getLocale(locale).language];
13
+ if (typeof translation?.[key] !== "string") return key;
14
+ return interpolate(translation[key], { ...translation, ...context });
15
+ });
16
+ }
17
+
18
+ export { setTranslation, translate };
@@ -0,0 +1,7 @@
1
+ export * from './lib/config.js';
2
+ export * from './lib/format.js';
3
+ export * from './lib/is-localized.mixin.js';
4
+ export * from './lib/localization.js';
5
+ export * from './lib/models.js';
6
+ export * from './lib/translate.js';
7
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1,5 @@
1
+ export { getI18nOptions, setI18nOptions } from './lib/config.js';
2
+ export { formatDate, formatList, formatNumber, formatRelativeTime } from './lib/format.js';
3
+ export { IsLocalized } from './lib/is-localized.mixin.js';
4
+ export { getLocale, setLocale, watchLocaleChanges } from './lib/localization.js';
5
+ export { setTranslation, translate } from './lib/translate.js';
@@ -1,7 +1,7 @@
1
1
  import { createFocusTrap } from 'focus-trap';
2
2
  import { isServer } from 'lit';
3
- import { createOptions } from '../utils/create-options.js';
4
- import { waitForAnimations } from '../utils/wait-for-animations.js';
3
+ import { waitForAnimations } from '../utils/dom.js';
4
+ import { createOptions } from '../utils/object.js';
5
5
 
6
6
  const FocusTrapControllerOptions = createOptions({
7
7
  escapeDeactivates: false,
@@ -1,5 +1,5 @@
1
1
  import { ReactiveElement } from 'lit';
2
- import { ARIAProperty } from '../models';
2
+ import { ARIAProperty } from '../models/aria-mixin-strict.js';
3
3
  /**
4
4
  * Sets up a `ReactiveElement` constructor to enable updates when delegating
5
5
  * aria attributes. Elements may bind `this.aria*` properties to `aria-*`
@@ -1,12 +1,12 @@
1
1
  import { directive, Directive } from 'lit/directive.js';
2
+ import { toggleAttribute } from '../utils/dom.js';
2
3
 
3
4
  class SlotFallbackDirective extends Directive {
4
5
  update({ options, element }) {
5
- if (!options?.host || !(element instanceof HTMLSlotElement)) return;
6
- const host = options.host;
7
- const slottedElementSelector = element.name ? `[slot="${element.name}"]` : "*";
8
- if (host.querySelectorAll(slottedElementSelector).length > 0 || host.textContent?.trim()) return;
9
- host.textContent = "";
6
+ const host = options?.host;
7
+ if (!host || !(element instanceof HTMLSlotElement)) return;
8
+ const attributeName = ["empty-slot", element.name].filter(Boolean).join("-");
9
+ toggleAttribute(host, attributeName, !host.textContent?.trim() && element.assignedElements().length === 0);
10
10
  }
11
11
  render() {
12
12
  }
@@ -1,5 +1,5 @@
1
- import { CustomElement } from '../models';
2
- declare const CheckboxFormControl_base: import('../mixins').Constructor<import('../mixins').IsFormControl<string>> & typeof CustomElement;
1
+ import { CustomElement } from '../custom-element.js';
2
+ declare const CheckboxFormControl_base: import('../main.js').Constructor<import('../mixins/form-control.js').IsFormControl<string>> & typeof CustomElement;
3
3
  export declare abstract class CheckboxFormControl extends CheckboxFormControl_base {
4
4
  #private;
5
5
  static shadowRootOptions: ShadowRootInit;
@@ -1,9 +1,9 @@
1
1
  import { isServer } from 'lit';
2
2
  import { property } from 'lit/decorators.js';
3
+ import { CustomElement } from '../custom-element.js';
4
+ import { toAriaBooleanAttribute } from '../directives/aria-boolean-attr.js';
3
5
  import { FormControl } from '../mixins/form-control.js';
4
6
  import { getKeyboardEventInfo } from '../utils/keyboard-events.js';
5
- import { toAriaBooleanAttribute } from '../directives/aria-boolean-attr.js';
6
- import { CustomElement } from '../models/custom-element.js';
7
7
 
8
8
  var __defProp = Object.defineProperty;
9
9
  var __decorateClass = (decorators, target, key, kind) => {
@@ -1,7 +1,7 @@
1
1
  import { PropertyValues } from 'lit';
2
- import { CustomElement } from '../models';
3
- import { CheckboxFormControl } from './checkbox-form-control';
4
- declare const CheckboxGroupFormControl_base: import('../mixins').Constructor<import('../mixins').IsFormControl<string[]>> & typeof CustomElement;
2
+ import { CustomElement } from '../custom-element.js';
3
+ import { CheckboxFormControl } from './checkbox-form-control.js';
4
+ declare const CheckboxGroupFormControl_base: import('../main.js').Constructor<import('../mixins/form-control.js').IsFormControl<string[]>> & typeof CustomElement;
5
5
  export declare abstract class CheckboxGroupFormControl extends CheckboxGroupFormControl_base {
6
6
  #private;
7
7
  private elements;
@@ -1,8 +1,8 @@
1
1
  import { isServer } from 'lit';
2
2
  import { queryAssignedElements, property } from 'lit/decorators.js';
3
- import { CheckboxFormControl } from './checkbox-form-control.js';
3
+ import { CustomElement } from '../custom-element.js';
4
4
  import { FormControl } from '../mixins/form-control.js';
5
- import { CustomElement } from '../models/custom-element.js';
5
+ import { CheckboxFormControl } from './checkbox-form-control.js';
6
6
 
7
7
  var __defProp = Object.defineProperty;
8
8
  var __decorateClass = (decorators, target, key, kind) => {
@@ -1,7 +1,7 @@
1
1
  import { PropertyValueMap } from 'lit';
2
- import { CanBeDisabled } from '../mixins';
3
- import { CustomElement } from '../models';
4
- declare const OptionControl_base: import('../mixins').Constructor<CanBeDisabled> & typeof CustomElement;
2
+ import { CustomElement } from '../custom-element.js';
3
+ import { CanBeDisabled } from '../mixins/can-be-disabled.js';
4
+ declare const OptionControl_base: import('../main.js').Constructor<CanBeDisabled> & typeof CustomElement;
5
5
  export declare abstract class OptionControl extends OptionControl_base {
6
6
  role: 'option' | 'gridcell' | 'row' | 'tab' | null;
7
7
  selected: boolean;
@@ -1,7 +1,7 @@
1
1
  import { property } from 'lit/decorators.js';
2
- import { CanBeDisabled } from '../mixins/can-be-disabled.js';
3
- import { CustomElement } from '../models/custom-element.js';
2
+ import { CustomElement } from '../custom-element.js';
4
3
  import { toAriaBooleanAttribute } from '../directives/aria-boolean-attr.js';
4
+ import { CanBeDisabled } from '../mixins/can-be-disabled.js';
5
5
 
6
6
  var __defProp = Object.defineProperty;
7
7
  var __decorateClass = (decorators, target, key, kind) => {
@@ -1,7 +1,7 @@
1
1
  import { PropertyValues } from 'lit';
2
- import { CustomElement } from '../models';
3
- import { CheckboxFormControl } from './checkbox-form-control';
4
- declare const RadioGroupFormControl_base: import('../mixins').Constructor<import('../mixins').IsFormControl<string>> & typeof CustomElement;
2
+ import { CustomElement } from '../custom-element.js';
3
+ import { CheckboxFormControl } from './checkbox-form-control.js';
4
+ declare const RadioGroupFormControl_base: import('../main.js').Constructor<import('../mixins/form-control.js').IsFormControl<string>> & typeof CustomElement;
5
5
  export declare abstract class RadioGroupFormControl extends RadioGroupFormControl_base {
6
6
  #private;
7
7
  static shadowRootOptions: {
@@ -1,9 +1,9 @@
1
1
  import { isServer } from 'lit';
2
2
  import { queryAssignedElements } from 'lit/decorators.js';
3
- import { CheckboxFormControl } from './checkbox-form-control.js';
3
+ import { CustomElement } from '../custom-element.js';
4
4
  import { RovingTabindexController } from '../external/roving-tabindex.js';
5
5
  import { FormControl } from '../mixins/form-control.js';
6
- import { CustomElement } from '../models/custom-element.js';
6
+ import { CheckboxFormControl } from './checkbox-form-control.js';
7
7
 
8
8
  var __defProp = Object.defineProperty;
9
9
  var __decorateClass = (decorators, target, key, kind) => {
@@ -1,7 +1,7 @@
1
1
  import { PropertyValues } from 'lit';
2
- import { CustomElement } from '../models';
3
- import { OptionControl } from './option-control';
4
- declare const SelectFormControl_base: import('../mixins').Constructor<import('../mixins').IsFormControl<string | string[]>> & typeof CustomElement;
2
+ import { CustomElement } from '../custom-element.js';
3
+ import { OptionControl } from './option-control.js';
4
+ declare const SelectFormControl_base: import('../main.js').Constructor<import('../mixins/form-control.js').IsFormControl<string | string[]>> & typeof CustomElement;
5
5
  export declare abstract class SelectFormControl<Option extends OptionControl = OptionControl> extends SelectFormControl_base {
6
6
  #private;
7
7
  protected abstract options: Option[];
@@ -1,10 +1,10 @@
1
1
  import { isServer } from 'lit';
2
2
  import { property } from 'lit/decorators.js';
3
- import { OptionControl } from './option-control.js';
4
- import { getElementFromEvent } from '../utils/dom.js';
3
+ import { CustomElement } from '../custom-element.js';
5
4
  import { FormControl } from '../mixins/form-control.js';
6
- import { CustomElement } from '../models/custom-element.js';
5
+ import { getElementFromEvent } from '../utils/dom.js';
7
6
  import { getKeyboardEventInfo } from '../utils/keyboard-events.js';
7
+ import { OptionControl } from './option-control.js';
8
8
 
9
9
  var __defProp = Object.defineProperty;
10
10
  var __decorateClass = (decorators, target, key, kind) => {
@@ -1,8 +1,32 @@
1
- export * from './controllers';
2
- export * from './directives';
3
- export * from './external';
4
- export * from './facade';
5
- export * from './mixins';
6
- export * from './models';
7
- export * from './utils';
1
+ export * from './controllers/focus-trap.controller.js';
2
+ export * from './decorators/request-update-on-aria-change.js';
3
+ export * from './directives/aria-boolean-attr.js';
4
+ export * from './directives/optional-attr.js';
5
+ export * from './directives/optional-slot.js';
6
+ export * from './directives/slot-fallback.js';
7
+ export * from './external/roving-tabindex.js';
8
+ export * from './facade/checkbox-form-control.js';
9
+ export * from './facade/checkbox-group-form-control.js';
10
+ export * from './facade/option-control.js';
11
+ export * from './facade/radio-group-form-control.js';
12
+ export * from './facade/select-form-control.js';
13
+ export * from './mixins/can-be-disabled.js';
14
+ export * from './mixins/can-be-readonly.js';
15
+ export * from './mixins/can-be-required.js';
16
+ export * from './mixins/can-be-validated.js';
17
+ export * from './mixins/dedupe-mixin.js';
18
+ export * from './mixins/form-control.js';
19
+ export * from './mixins/number-control.js';
20
+ export * from './mixins/with-aria-controls.js';
21
+ export * from './mixins/with-loading-state.js';
22
+ export * from './models/aria-mixin-strict.js';
23
+ export * from './utils/date.js';
24
+ export * from './utils/dom.js';
25
+ export * from './utils/get-unique-id.js';
26
+ export * from './utils/keyboard-events.js';
27
+ export * from './utils/object.js';
28
+ export * from './utils/shared-intersection-observer.js';
29
+ export * from './utils/shared-resize-observer.js';
30
+ export * from './utils/string.js';
31
+ export * from './custom-element.js';
8
32
  //# sourceMappingURL=main.d.ts.map
package/dist/lib/main.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export { FocusTrapController } from './controllers/focus-trap.controller.js';
2
+ export { requestUpdateOnAriaChange } from './decorators/request-update-on-aria-change.js';
2
3
  export { fromAriaBooleanAttribute, toAriaBooleanAttribute } from './directives/aria-boolean-attr.js';
3
4
  export { optionalAttr } from './directives/optional-attr.js';
4
5
  export { optionalSlot } from './directives/optional-slot.js';
@@ -15,21 +16,15 @@ export { CanBeRequired } from './mixins/can-be-required.js';
15
16
  export { CanBeValidated } from './mixins/can-be-validated.js';
16
17
  export { dedupeMixin } from './mixins/dedupe-mixin.js';
17
18
  export { FormControl } from './mixins/form-control.js';
18
- export { IsLocalized } from './mixins/is-localized.js';
19
- export { IsTranslatable } from './mixins/is-translatable.js';
20
19
  export { NumberControl } from './mixins/number-control.js';
21
20
  export { WithAriaControls } from './mixins/with-aria-controls.js';
22
21
  export { WithLoadingState } from './mixins/with-loading-state.js';
23
- export { CustomElement, customElement } from './models/custom-element.js';
24
- export { createMutationObserver } from './utils/create-mutation-observer.js';
25
- export { createOptions } from './utils/create-options.js';
26
- export { findClosestDocument, getAssignedElements, getElementFromEvent, toPx, toggleAttribute } from './utils/dom.js';
27
- export { formatDate, formatList, formatNumber, formatRelativeTime, iso8601DateTimeFormat } from './utils/format.js';
22
+ export { parseDate } from './utils/date.js';
23
+ export { createMutationObserver, findClosestDocument, getAssignedElements, getElementFromEvent, toPx, toggleAttribute, waitForAnimations } from './utils/dom.js';
28
24
  export { clearUniqueIdCache, getUniqueId } from './utils/get-unique-id.js';
29
25
  export { KeyboardKey, getKeyboardEventInfo } from './utils/keyboard-events.js';
30
- export { getLocale, getLocalizationOptions, setLocale, setLocalizationOptions, watchLocaleChanges } from './utils/localization.js';
31
- export { parseDate } from './utils/parse-date.js';
32
- export { requestUpdateOnAriaChange } from './utils/request-update-on-aria-change.js';
33
- export { SharedIntersectionObserver } from './utils/shared-intersection-observer.js';
34
- export { SharedResizeObserver } from './utils/shared-resize-observer.js';
35
- export { waitForAnimations } from './utils/wait-for-animations.js';
26
+ export { createOptions } from './utils/object.js';
27
+ export { SharedIntersectionObserver, createIntersectionObserver } from './utils/shared-intersection-observer.js';
28
+ export { SharedResizeObserver, createResizeObserver } from './utils/shared-resize-observer.js';
29
+ export { interpolate } from './utils/string.js';
30
+ export { CustomElement, customElement } from './custom-element.js';
@@ -1,5 +1,5 @@
1
- import { CustomElement } from '../models';
2
- import { Constructor } from './dedupe-mixin';
1
+ import { CustomElement } from '../custom-element.js';
2
+ import { Constructor } from './dedupe-mixin.js';
3
3
  export interface CanBeDisabled {
4
4
  disabled: boolean;
5
5
  _contextDisabled: boolean;
@@ -1,5 +1,5 @@
1
- import { CustomElement } from '../models';
2
- import { Constructor } from './dedupe-mixin';
1
+ import { CustomElement } from '../custom-element.js';
2
+ import { Constructor } from './dedupe-mixin.js';
3
3
  export interface CanBeReadonly {
4
4
  readonly: boolean;
5
5
  }
@@ -1,5 +1,5 @@
1
- import { CustomElement } from '../models';
2
- import { Constructor } from './dedupe-mixin';
1
+ import { CustomElement } from '../custom-element.js';
2
+ import { Constructor } from './dedupe-mixin.js';
3
3
  export interface CanBeRequired {
4
4
  required: boolean;
5
5
  }
@@ -1,5 +1,5 @@
1
- import { CustomElement } from '../models';
2
- import { Constructor } from './dedupe-mixin';
1
+ import { CustomElement } from '../custom-element.js';
2
+ import { Constructor } from './dedupe-mixin.js';
3
3
  export interface CanBeValidated {
4
4
  readonly internals: ElementInternals;
5
5
  get validity(): ValidityState;
@@ -1,9 +1,9 @@
1
- import { CustomElement } from '../models';
2
- import { CanBeDisabled } from './can-be-disabled';
3
- import { CanBeReadonly } from './can-be-readonly';
4
- import { CanBeRequired } from './can-be-required';
5
- import { CanBeValidated } from './can-be-validated';
6
- import { Constructor } from './dedupe-mixin';
1
+ import { CustomElement } from '../custom-element.js';
2
+ import { CanBeDisabled } from './can-be-disabled.js';
3
+ import { CanBeReadonly } from './can-be-readonly.js';
4
+ import { CanBeRequired } from './can-be-required.js';
5
+ import { CanBeValidated } from './can-be-validated.js';
6
+ import { Constructor } from './dedupe-mixin.js';
7
7
  type ValueType = string | number | boolean | string[] | number[] | boolean[];
8
8
  export interface IsFormControl<V extends ValueType = string> extends CanBeDisabled, CanBeReadonly, CanBeRequired, CanBeValidated {
9
9
  form: HTMLFormElement | null;
@@ -1,10 +1,10 @@
1
1
  import { property } from 'lit/decorators.js';
2
+ import { CustomElement } from '../custom-element.js';
2
3
  import { CanBeDisabled } from './can-be-disabled.js';
3
4
  import { CanBeReadonly } from './can-be-readonly.js';
4
5
  import { CanBeRequired } from './can-be-required.js';
5
6
  import { CanBeValidated } from './can-be-validated.js';
6
7
  import { dedupeMixin } from './dedupe-mixin.js';
7
- import { CustomElement } from '../models/custom-element.js';
8
8
 
9
9
  var __defProp = Object.defineProperty;
10
10
  var __decorateClass = (decorators, target, key, kind) => {
@@ -1,6 +1,6 @@
1
- import { CustomElement } from '../models';
2
- import { Constructor } from './dedupe-mixin';
3
- import { IsFormControl } from './form-control';
1
+ import { CustomElement } from '../custom-element.js';
2
+ import { Constructor } from './dedupe-mixin.js';
3
+ import { IsFormControl } from './form-control.js';
4
4
  export interface IsNumberControl extends Omit<IsFormControl, 'value'> {
5
5
  min: number;
6
6
  max: number;
@@ -1,6 +1,6 @@
1
- import { CustomElement } from '../models';
2
- import { CanBeDisabled } from './can-be-disabled';
3
- import { Constructor } from './dedupe-mixin';
1
+ import { CustomElement } from '../custom-element.js';
2
+ import { CanBeDisabled } from './can-be-disabled.js';
3
+ import { Constructor } from './dedupe-mixin.js';
4
4
  export interface WithAriaControls extends CanBeDisabled {
5
5
  id: string;
6
6
  readonly region: HTMLElement | null;
@@ -1,7 +1,7 @@
1
1
  import { property } from 'lit/decorators.js';
2
+ import { getUniqueId } from '../utils/get-unique-id.js';
2
3
  import { CanBeDisabled } from './can-be-disabled.js';
3
4
  import { dedupeMixin } from './dedupe-mixin.js';
4
- import { getUniqueId } from '../utils/get-unique-id.js';
5
5
 
6
6
  var __defProp = Object.defineProperty;
7
7
  var __decorateClass = (decorators, target, key, kind) => {
@@ -1,5 +1,5 @@
1
- import { CustomElement } from '../models';
2
- import { Constructor } from './dedupe-mixin';
1
+ import { CustomElement } from '../custom-element.js';
2
+ import { Constructor } from './dedupe-mixin.js';
3
3
  export interface HasLoadingState {
4
4
  loading: boolean;
5
5
  get loadingContainer(): HTMLElement;
@@ -1,2 +1,2 @@
1
1
  export declare function parseDate(value: number | string | Date): Date | null;
2
- //# sourceMappingURL=parse-date.d.ts.map
2
+ //# sourceMappingURL=date.d.ts.map
@@ -1,6 +1,14 @@
1
+ /**
2
+ * Creates a new MutationObserver instance.
3
+ *
4
+ * @param {MutationCallback} callback - The callback to execute when a mutation occurs.
5
+ * @returns {MutationObserver} A MutationObserver instance or a dummy object with no-op methods if unsupported.
6
+ */
7
+ export declare function createMutationObserver(callback: MutationCallback): MutationObserver;
1
8
  export declare function toggleAttribute(element: Element | null | undefined, name: string, value?: string | number | boolean | null): void;
2
9
  export declare function getElementFromEvent<T>(event: Event, filterFn: (node: Element) => boolean): T;
3
10
  export declare function findClosestDocument(node: Node): ShadowRoot | Document | null;
4
11
  export declare function toPx(value?: string | number | null): string | null;
5
12
  export declare function getAssignedElements<T extends HTMLElement = HTMLElement>(host: HTMLElement, ...slots: string[]): T[];
13
+ export declare function waitForAnimations(element?: Element | null, subtree?: boolean): Promise<Animation[]>;
6
14
  //# sourceMappingURL=dom.d.ts.map
@@ -1,5 +1,12 @@
1
1
  import { round } from 'es-toolkit';
2
2
 
3
+ function createMutationObserver(callback) {
4
+ try {
5
+ return new MutationObserver(callback);
6
+ } catch {
7
+ return { takeRecords: () => [], observe: () => void 0, disconnect: () => void 0 };
8
+ }
9
+ }
3
10
  function toggleAttribute(element, name, value) {
4
11
  if (!element) return;
5
12
  if (typeof value === "boolean") {
@@ -31,5 +38,11 @@ function getAssignedElements(host, ...slots) {
31
38
  const selector = slots.map((slot) => `[slot=${slot}]`).join(", ") || "*";
32
39
  return Array.from(host.querySelectorAll(`:is(${selector})`));
33
40
  }
41
+ async function waitForAnimations(element, subtree = false) {
42
+ if (!element || typeof element.getAnimations !== "function") {
43
+ return [];
44
+ }
45
+ return Promise.all(element.getAnimations({ subtree }).map((animation) => animation.finished)).catch(() => []);
46
+ }
34
47
 
35
- export { findClosestDocument, getAssignedElements, getElementFromEvent, toPx, toggleAttribute };
48
+ export { createMutationObserver, findClosestDocument, getAssignedElements, getElementFromEvent, toPx, toggleAttribute, waitForAnimations };
@@ -1,2 +1,2 @@
1
1
  export declare function createOptions<T extends object>(defaultOptions: T): (options?: Partial<T> | null) => T;
2
- //# sourceMappingURL=create-options.d.ts.map
2
+ //# sourceMappingURL=object.d.ts.map
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Creates a IntersectionObserver instance safely, falling back to a dummy if the API is not supported.
3
+ *
4
+ * @param {IntersectionObserverCallback} callback - The callback to execute when an observed element's size changes.
5
+ * @returns {IntersectionObserver} A IntersectionObserver instance or a dummy object with no-op methods if unsupported.
6
+ */
7
+ export declare function createIntersectionObserver(callback: IntersectionObserverCallback): IntersectionObserver;
1
8
  export interface SharedIntersectionObserverOptions {
2
9
  fpsLimit: number;
3
10
  }
@@ -1,5 +1,10 @@
1
- import { createIntersectionObserver } from './create-intersection-observer.js';
2
-
1
+ function createIntersectionObserver(callback) {
2
+ try {
3
+ return new IntersectionObserver(callback);
4
+ } catch {
5
+ return { root: null, rootMargin: "", thresholds: [], takeRecords: () => [], observe: () => void 0, disconnect: () => void 0, unobserve: () => void 0 };
6
+ }
7
+ }
3
8
  class SharedIntersectionObserverInstance {
4
9
  #observer;
5
10
  #handlers = /* @__PURE__ */ new WeakMap();
@@ -29,4 +34,4 @@ class SharedIntersectionObserverInstance {
29
34
  }
30
35
  const SharedIntersectionObserver = new SharedIntersectionObserverInstance();
31
36
 
32
- export { SharedIntersectionObserver };
37
+ export { SharedIntersectionObserver, createIntersectionObserver };
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Creates a ResizeObserver instance safely, falling back to a dummy if the API is not supported.
3
+ *
4
+ * @param {ResizeObserverCallback} callback - The callback to execute when an observed element's size changes.
5
+ * @returns {ResizeObserver} A ResizeObserver instance or a dummy object with no-op methods if unsupported.
6
+ */
7
+ export declare function createResizeObserver(callback: ResizeObserverCallback): ResizeObserver;
1
8
  export interface SharedResizeObserverOptions extends ResizeObserverOptions {
2
9
  fpsLimit: number;
3
10
  }
@@ -1,5 +1,10 @@
1
- import { createResizeObserver } from './create-resize-observer.js';
2
-
1
+ function createResizeObserver(callback) {
2
+ try {
3
+ return new ResizeObserver(callback);
4
+ } catch {
5
+ return { observe: () => void 0, disconnect: () => void 0, unobserve: () => void 0 };
6
+ }
7
+ }
3
8
  class SharedResizeObserverInstance {
4
9
  #observer;
5
10
  #handlers = /* @__PURE__ */ new WeakMap();
@@ -30,4 +35,4 @@ class SharedResizeObserverInstance {
30
35
  }
31
36
  const SharedResizeObserver = new SharedResizeObserverInstance();
32
37
 
33
- export { SharedResizeObserver };
38
+ export { SharedResizeObserver, createResizeObserver };
@@ -0,0 +1,2 @@
1
+ export declare function interpolate(value: string, context: Record<string, string | number>): string;
2
+ //# sourceMappingURL=string.d.ts.map