@malva-ui/core 0.1.12

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 (1434) hide show
  1. package/AGENTS.md +92 -0
  2. package/README.md +61 -0
  3. package/accordion/index.d.ts +3 -0
  4. package/accordion/lib/accordion/accordion.d.ts +47 -0
  5. package/accordion/lib/accordion-item/accordion-header.d.ts +22 -0
  6. package/accordion/lib/accordion-item/accordion-item.d.ts +49 -0
  7. package/accordion/malva-ui-core-accordion.d.ts +5 -0
  8. package/action-bar/index.d.ts +4 -0
  9. package/action-bar/lib/action-bar/action-bar.d.ts +59 -0
  10. package/action-bar/lib/action-bar/components/action-bar-actions.d.ts +9 -0
  11. package/action-bar/lib/action-bar/components/action-bar-logo.d.ts +5 -0
  12. package/action-bar/lib/action-bar/components/action-bar-spacer.d.ts +5 -0
  13. package/action-bar/malva-ui-core-action-bar.d.ts +5 -0
  14. package/alert/index.d.ts +2 -0
  15. package/alert/lib/alert/alert.d.ts +84 -0
  16. package/alert/lib/alert/alert.directives.d.ts +44 -0
  17. package/alert/malva-ui-core-alert.d.ts +5 -0
  18. package/autocomplete/index.d.ts +1 -0
  19. package/autocomplete/lib/autocomplete/autocomplete.d.ts +296 -0
  20. package/autocomplete/malva-ui-core-autocomplete.d.ts +5 -0
  21. package/avatar/index.d.ts +2 -0
  22. package/avatar/lib/avatar/avatar.d.ts +125 -0
  23. package/avatar/lib/color-from-text.pipe.d.ts +21 -0
  24. package/avatar/malva-ui-core-avatar.d.ts +5 -0
  25. package/avatar-group/index.d.ts +1 -0
  26. package/avatar-group/lib/avatar-group/avatar-group.d.ts +115 -0
  27. package/avatar-group/malva-ui-core-avatar-group.d.ts +5 -0
  28. package/badge/index.d.ts +2 -0
  29. package/badge/lib/badge/badge.d.ts +59 -0
  30. package/badge/lib/badge-icon.d.ts +35 -0
  31. package/badge/malva-ui-core-badge.d.ts +5 -0
  32. package/bottom-nav/index.d.ts +1 -0
  33. package/bottom-nav/lib/bottom-nav/bottom-nav.d.ts +99 -0
  34. package/bottom-nav/malva-ui-core-bottom-nav.d.ts +5 -0
  35. package/breadcrumb/index.d.ts +5 -0
  36. package/breadcrumb/lib/breadcrumb/breadcrumb-item-host.d.ts +32 -0
  37. package/breadcrumb/lib/breadcrumb/breadcrumb-item.d.ts +41 -0
  38. package/breadcrumb/lib/breadcrumb/breadcrumb-separator.d.ts +31 -0
  39. package/breadcrumb/lib/breadcrumb/breadcrumb.d.ts +151 -0
  40. package/breadcrumb/lib/breadcrumb/breadcrumb.types.d.ts +26 -0
  41. package/breadcrumb/malva-ui-core-breadcrumb.d.ts +5 -0
  42. package/button/index.d.ts +7 -0
  43. package/button/lib/button/button.d.ts +61 -0
  44. package/button/lib/button-close/button-close.d.ts +24 -0
  45. package/button/lib/button-group/button-group.d.ts +21 -0
  46. package/button/lib/button-split/button-split.d.ts +21 -0
  47. package/button/lib/button-toggle/button-toggle.d.ts +33 -0
  48. package/button/lib/button-variant.token.d.ts +13 -0
  49. package/button/lib/button.directives.d.ts +14 -0
  50. package/button/lib/button.types.d.ts +8 -0
  51. package/button/malva-ui-core-button.d.ts +5 -0
  52. package/calendar/index.d.ts +3 -0
  53. package/calendar/lib/calendar/calendar.d.ts +182 -0
  54. package/calendar/lib/date-provider/date-adapter.d.ts +92 -0
  55. package/calendar/lib/date-provider/native-date-adapter.d.ts +60 -0
  56. package/calendar/malva-ui-core-calendar.d.ts +5 -0
  57. package/card/index.d.ts +5 -0
  58. package/card/lib/card/card.d.ts +43 -0
  59. package/card/lib/card-actions-def.d.ts +10 -0
  60. package/card/lib/card-footer-def.d.ts +13 -0
  61. package/card/lib/card-header-def.d.ts +10 -0
  62. package/card/lib/card-subheader-def.d.ts +16 -0
  63. package/card/malva-ui-core-card.d.ts +5 -0
  64. package/chat/index.d.ts +9 -0
  65. package/chat/lib/chat/chat.d.ts +133 -0
  66. package/chat/lib/chat-audio/chat-audio.d.ts +51 -0
  67. package/chat/lib/chat-audio/chat-audio.service.d.ts +21 -0
  68. package/chat/lib/chat-date/chat-date.d.ts +16 -0
  69. package/chat/lib/chat-format.d.ts +5 -0
  70. package/chat/lib/chat-media-grid/chat-media-grid.d.ts +32 -0
  71. package/chat/lib/chat-message/chat-message.d.ts +45 -0
  72. package/chat/lib/chat-render-list.d.ts +16 -0
  73. package/chat/lib/chat-tokens.d.ts +25 -0
  74. package/chat/lib/chat-typing/chat-typing.d.ts +16 -0
  75. package/chat/lib/chat.types.d.ts +80 -0
  76. package/chat/lib/defs/chat-author-def.d.ts +30 -0
  77. package/chat/lib/defs/chat-date-def.d.ts +22 -0
  78. package/chat/lib/defs/chat-message-def.d.ts +23 -0
  79. package/chat/malva-ui-core-chat.d.ts +5 -0
  80. package/checkbox/index.d.ts +3 -0
  81. package/checkbox/lib/checkbox/checkbox.d.ts +129 -0
  82. package/checkbox/lib/checkbox-group/checkbox-group.d.ts +24 -0
  83. package/checkbox/lib/checkbox-group-token.d.ts +6 -0
  84. package/checkbox/malva-ui-core-checkbox.d.ts +5 -0
  85. package/chip/index.d.ts +2 -0
  86. package/chip/lib/chip/chip.d.ts +107 -0
  87. package/chip/lib/chip/chip.directives.d.ts +18 -0
  88. package/chip/malva-ui-core-chip.d.ts +5 -0
  89. package/color-picker/index.d.ts +3 -0
  90. package/color-picker/lib/color-picker/color-picker.d.ts +188 -0
  91. package/color-picker/lib/color-picker-popup/color-picker-popup.d.ts +151 -0
  92. package/color-picker/lib/color-utils/color-utils.d.ts +102 -0
  93. package/color-picker/malva-ui-core-color-picker.d.ts +5 -0
  94. package/combobox/index.d.ts +2 -0
  95. package/combobox/lib/combobox/combobox.d.ts +400 -0
  96. package/combobox/lib/combobox-template.directives.d.ts +10 -0
  97. package/combobox/malva-ui-core-combobox.d.ts +5 -0
  98. package/copy-to-clipboard/index.d.ts +1 -0
  99. package/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.d.ts +130 -0
  100. package/copy-to-clipboard/malva-ui-core-copy-to-clipboard.d.ts +5 -0
  101. package/data-table/index.d.ts +8 -0
  102. package/data-table/lib/data-source.d.ts +5 -0
  103. package/data-table/lib/data-table/data-table-layout.d.ts +31 -0
  104. package/data-table/lib/data-table/data-table.d.ts +699 -0
  105. package/data-table/lib/data-table/services/data-table-column-visibility.service.d.ts +19 -0
  106. package/data-table/lib/data-table/services/data-table-editing.service.d.ts +37 -0
  107. package/data-table/lib/data-table/services/data-table-pinning.service.d.ts +37 -0
  108. package/data-table/lib/data-table-cell.d.ts +44 -0
  109. package/data-table/lib/data-table-edit-cell.d.ts +44 -0
  110. package/data-table/lib/data-table-error.d.ts +37 -0
  111. package/data-table/lib/data-table-footer.d.ts +26 -0
  112. package/data-table/lib/data-table-no-data.d.ts +19 -0
  113. package/data-table/lib/filter-dropdown/filter-dropdown.d.ts +54 -0
  114. package/data-table/lib/types.d.ts +134 -0
  115. package/data-table/malva-ui-core-data-table.d.ts +5 -0
  116. package/date-range-picker/index.d.ts +1 -0
  117. package/date-range-picker/lib/date-range-picker/date-range-picker.d.ts +145 -0
  118. package/date-range-picker/malva-ui-core-date-range-picker.d.ts +5 -0
  119. package/day-picker/index.d.ts +1 -0
  120. package/day-picker/lib/day-picker/day-picker.d.ts +51 -0
  121. package/day-picker/malva-ui-core-day-picker.d.ts +5 -0
  122. package/dialog/index.d.ts +11 -0
  123. package/dialog/lib/confirm-dialog-options.d.ts +41 -0
  124. package/dialog/lib/confirm-dialog.d.ts +52 -0
  125. package/dialog/lib/dialog/dialog.d.ts +22 -0
  126. package/dialog/lib/dialog-body.d.ts +9 -0
  127. package/dialog/lib/dialog-close.d.ts +27 -0
  128. package/dialog/lib/dialog-config.d.ts +112 -0
  129. package/dialog/lib/dialog-container.d.ts +40 -0
  130. package/dialog/lib/dialog-footer.d.ts +13 -0
  131. package/dialog/lib/dialog-header.d.ts +74 -0
  132. package/dialog/lib/dialog-ref.d.ts +95 -0
  133. package/dialog/lib/dialog-template.d.ts +65 -0
  134. package/dialog/lib/dialog-text-content.d.ts +24 -0
  135. package/dialog/lib/dialog.service.d.ts +63 -0
  136. package/dialog/lib/generate-routable-dialog-route.d.ts +49 -0
  137. package/dialog/lib/inject-dialog-ref.d.ts +8 -0
  138. package/dialog/lib/routable-dialog.d.ts +30 -0
  139. package/dialog/malva-ui-core-dialog.d.ts +5 -0
  140. package/divider/index.d.ts +1 -0
  141. package/divider/lib/divider/divider.d.ts +64 -0
  142. package/divider/malva-ui-core-divider.d.ts +5 -0
  143. package/docs/ai/accordion.md +102 -0
  144. package/docs/ai/action-bar.md +198 -0
  145. package/docs/ai/alert.md +190 -0
  146. package/docs/ai/autocomplete.md +111 -0
  147. package/docs/ai/avatar-group.md +184 -0
  148. package/docs/ai/avatar.md +150 -0
  149. package/docs/ai/badge.md +163 -0
  150. package/docs/ai/bottom-nav.md +267 -0
  151. package/docs/ai/breadcrumb.md +174 -0
  152. package/docs/ai/button.md +306 -0
  153. package/docs/ai/calendar.md +237 -0
  154. package/docs/ai/card.md +196 -0
  155. package/docs/ai/chat.md +145 -0
  156. package/docs/ai/checkbox.md +193 -0
  157. package/docs/ai/chip.md +139 -0
  158. package/docs/ai/color-picker.md +270 -0
  159. package/docs/ai/combobox.md +325 -0
  160. package/docs/ai/copy-to-clipboard.md +159 -0
  161. package/docs/ai/core.md +216 -0
  162. package/docs/ai/data-table.md +917 -0
  163. package/docs/ai/date-range-picker.md +101 -0
  164. package/docs/ai/day-picker.md +135 -0
  165. package/docs/ai/dialog.md +852 -0
  166. package/docs/ai/divider.md +159 -0
  167. package/docs/ai/drawer.md +607 -0
  168. package/docs/ai/dropdown.md +343 -0
  169. package/docs/ai/empty-state.md +167 -0
  170. package/docs/ai/expand.md +234 -0
  171. package/docs/ai/file-upload.md +402 -0
  172. package/docs/ai/filter.md +43 -0
  173. package/docs/ai/form-utils.md +319 -0
  174. package/docs/ai/form.md +129 -0
  175. package/docs/ai/input.md +175 -0
  176. package/docs/ai/kbd.md +70 -0
  177. package/docs/ai/layout.md +192 -0
  178. package/docs/ai/link.md +179 -0
  179. package/docs/ai/list.md +249 -0
  180. package/docs/ai/loader.md +122 -0
  181. package/docs/ai/menu.md +335 -0
  182. package/docs/ai/notification.md +281 -0
  183. package/docs/ai/number-input.md +123 -0
  184. package/docs/ai/page.md +422 -0
  185. package/docs/ai/pagination.md +237 -0
  186. package/docs/ai/pin-input.md +173 -0
  187. package/docs/ai/popup.md +347 -0
  188. package/docs/ai/progress.md +84 -0
  189. package/docs/ai/radio.md +201 -0
  190. package/docs/ai/rating.md +76 -0
  191. package/docs/ai/scrollbar.md +170 -0
  192. package/docs/ai/search-field.md +85 -0
  193. package/docs/ai/segmented.md +331 -0
  194. package/docs/ai/select.md +512 -0
  195. package/docs/ai/sidebar.md +992 -0
  196. package/docs/ai/skeleton.md +187 -0
  197. package/docs/ai/slider.md +180 -0
  198. package/docs/ai/split-pane.md +235 -0
  199. package/docs/ai/status-indicator.md +95 -0
  200. package/docs/ai/stepper.md +385 -0
  201. package/docs/ai/switch.md +216 -0
  202. package/docs/ai/tabs.md +564 -0
  203. package/docs/ai/textarea.md +249 -0
  204. package/docs/ai/tile.md +150 -0
  205. package/docs/ai/time-picker.md +214 -0
  206. package/docs/ai/timeline.md +320 -0
  207. package/docs/ai/title.md +105 -0
  208. package/docs/ai/toast.md +484 -0
  209. package/docs/ai/tokenizer.md +236 -0
  210. package/docs/ai/toolbar.md +155 -0
  211. package/docs/ai/tooltip.md +154 -0
  212. package/docs/ai/tree.md +177 -0
  213. package/drawer/index.d.ts +11 -0
  214. package/drawer/lib/drawer/drawer.d.ts +106 -0
  215. package/drawer/lib/drawer-body.d.ts +8 -0
  216. package/drawer/lib/drawer-content.d.ts +6 -0
  217. package/drawer/lib/drawer-footer.d.ts +5 -0
  218. package/drawer/lib/drawer-header.d.ts +5 -0
  219. package/drawer/lib/drawer-ref.d.ts +29 -0
  220. package/drawer/lib/drawer-resize.d.ts +65 -0
  221. package/drawer/lib/drawer-section/drawer-section.d.ts +15 -0
  222. package/drawer/lib/drawer-sections/drawer-sections.d.ts +22 -0
  223. package/drawer/lib/drawer-sections.service.d.ts +42 -0
  224. package/drawer/lib/drawer.service.d.ts +66 -0
  225. package/drawer/lib/generate-routable-drawer-route.d.ts +42 -0
  226. package/drawer/lib/routable-drawer.d.ts +30 -0
  227. package/drawer/malva-ui-core-drawer.d.ts +5 -0
  228. package/dropdown/index.d.ts +9 -0
  229. package/dropdown/lib/active-descendant.d.ts +64 -0
  230. package/dropdown/lib/dropdown-panel/dropdown-panel.d.ts +178 -0
  231. package/dropdown/lib/highlight-match.pipe.d.ts +27 -0
  232. package/dropdown/lib/option-matcher.d.ts +87 -0
  233. package/dropdown/lib/options-adapter.d.ts +142 -0
  234. package/dropdown/lib/options-result.d.ts +6 -0
  235. package/dropdown/lib/reconciliation.d.ts +19 -0
  236. package/dropdown/lib/select-data-source.d.ts +18 -0
  237. package/dropdown/lib/select-option.d.ts +37 -0
  238. package/dropdown/malva-ui-core-dropdown.d.ts +5 -0
  239. package/empty-state/index.d.ts +1 -0
  240. package/empty-state/lib/empty-state/empty-state.d.ts +34 -0
  241. package/empty-state/malva-ui-core-empty-state.d.ts +5 -0
  242. package/esm2022/accordion/index.js +4 -0
  243. package/esm2022/accordion/index.js.map +1 -0
  244. package/esm2022/accordion/lib/accordion/accordion.js +65 -0
  245. package/esm2022/accordion/lib/accordion/accordion.js.map +1 -0
  246. package/esm2022/accordion/lib/accordion-item/accordion-header.js +30 -0
  247. package/esm2022/accordion/lib/accordion-item/accordion-header.js.map +1 -0
  248. package/esm2022/accordion/lib/accordion-item/accordion-item.js +70 -0
  249. package/esm2022/accordion/lib/accordion-item/accordion-item.js.map +1 -0
  250. package/esm2022/accordion/malva-ui-core-accordion.js +5 -0
  251. package/esm2022/accordion/malva-ui-core-accordion.js.map +1 -0
  252. package/esm2022/action-bar/index.js +5 -0
  253. package/esm2022/action-bar/index.js.map +1 -0
  254. package/esm2022/action-bar/lib/action-bar/action-bar.js +64 -0
  255. package/esm2022/action-bar/lib/action-bar/action-bar.js.map +1 -0
  256. package/esm2022/action-bar/lib/action-bar/components/action-bar-actions.js +20 -0
  257. package/esm2022/action-bar/lib/action-bar/components/action-bar-actions.js.map +1 -0
  258. package/esm2022/action-bar/lib/action-bar/components/action-bar-logo.js +13 -0
  259. package/esm2022/action-bar/lib/action-bar/components/action-bar-logo.js.map +1 -0
  260. package/esm2022/action-bar/lib/action-bar/components/action-bar-spacer.js +13 -0
  261. package/esm2022/action-bar/lib/action-bar/components/action-bar-spacer.js.map +1 -0
  262. package/esm2022/action-bar/malva-ui-core-action-bar.js +5 -0
  263. package/esm2022/action-bar/malva-ui-core-action-bar.js.map +1 -0
  264. package/esm2022/alert/index.js +3 -0
  265. package/esm2022/alert/index.js.map +1 -0
  266. package/esm2022/alert/lib/alert/alert.directives.js +53 -0
  267. package/esm2022/alert/lib/alert/alert.directives.js.map +1 -0
  268. package/esm2022/alert/lib/alert/alert.js +118 -0
  269. package/esm2022/alert/lib/alert/alert.js.map +1 -0
  270. package/esm2022/alert/malva-ui-core-alert.js +5 -0
  271. package/esm2022/alert/malva-ui-core-alert.js.map +1 -0
  272. package/esm2022/autocomplete/index.js +2 -0
  273. package/esm2022/autocomplete/index.js.map +1 -0
  274. package/esm2022/autocomplete/lib/autocomplete/autocomplete.js +765 -0
  275. package/esm2022/autocomplete/lib/autocomplete/autocomplete.js.map +1 -0
  276. package/esm2022/autocomplete/malva-ui-core-autocomplete.js +5 -0
  277. package/esm2022/autocomplete/malva-ui-core-autocomplete.js.map +1 -0
  278. package/esm2022/avatar/index.js +3 -0
  279. package/esm2022/avatar/index.js.map +1 -0
  280. package/esm2022/avatar/lib/avatar/avatar.js +192 -0
  281. package/esm2022/avatar/lib/avatar/avatar.js.map +1 -0
  282. package/esm2022/avatar/lib/color-from-text.pipe.js +39 -0
  283. package/esm2022/avatar/lib/color-from-text.pipe.js.map +1 -0
  284. package/esm2022/avatar/malva-ui-core-avatar.js +5 -0
  285. package/esm2022/avatar/malva-ui-core-avatar.js.map +1 -0
  286. package/esm2022/avatar-group/index.js +2 -0
  287. package/esm2022/avatar-group/index.js.map +1 -0
  288. package/esm2022/avatar-group/lib/avatar-group/avatar-group.js +217 -0
  289. package/esm2022/avatar-group/lib/avatar-group/avatar-group.js.map +1 -0
  290. package/esm2022/avatar-group/malva-ui-core-avatar-group.js +5 -0
  291. package/esm2022/avatar-group/malva-ui-core-avatar-group.js.map +1 -0
  292. package/esm2022/badge/index.js +3 -0
  293. package/esm2022/badge/index.js.map +1 -0
  294. package/esm2022/badge/lib/badge/badge.js +71 -0
  295. package/esm2022/badge/lib/badge/badge.js.map +1 -0
  296. package/esm2022/badge/lib/badge-icon.js +47 -0
  297. package/esm2022/badge/lib/badge-icon.js.map +1 -0
  298. package/esm2022/badge/malva-ui-core-badge.js +5 -0
  299. package/esm2022/badge/malva-ui-core-badge.js.map +1 -0
  300. package/esm2022/bottom-nav/index.js +2 -0
  301. package/esm2022/bottom-nav/index.js.map +1 -0
  302. package/esm2022/bottom-nav/lib/bottom-nav/bottom-nav.js +155 -0
  303. package/esm2022/bottom-nav/lib/bottom-nav/bottom-nav.js.map +1 -0
  304. package/esm2022/bottom-nav/malva-ui-core-bottom-nav.js +5 -0
  305. package/esm2022/bottom-nav/malva-ui-core-bottom-nav.js.map +1 -0
  306. package/esm2022/breadcrumb/index.js +6 -0
  307. package/esm2022/breadcrumb/index.js.map +1 -0
  308. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item-host.js +43 -0
  309. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item-host.js.map +1 -0
  310. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item.js +110 -0
  311. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item.js.map +1 -0
  312. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-separator.js +38 -0
  313. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-separator.js.map +1 -0
  314. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.js +284 -0
  315. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.js.map +1 -0
  316. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.types.js +1 -0
  317. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.types.js.map +1 -0
  318. package/esm2022/breadcrumb/malva-ui-core-breadcrumb.js +5 -0
  319. package/esm2022/breadcrumb/malva-ui-core-breadcrumb.js.map +1 -0
  320. package/esm2022/button/index.js +8 -0
  321. package/esm2022/button/index.js.map +1 -0
  322. package/esm2022/button/lib/button/button.js +137 -0
  323. package/esm2022/button/lib/button/button.js.map +1 -0
  324. package/esm2022/button/lib/button-close/button-close.js +52 -0
  325. package/esm2022/button/lib/button-close/button-close.js.map +1 -0
  326. package/esm2022/button/lib/button-group/button-group.js +44 -0
  327. package/esm2022/button/lib/button-group/button-group.js.map +1 -0
  328. package/esm2022/button/lib/button-split/button-split.js +44 -0
  329. package/esm2022/button/lib/button-split/button-split.js.map +1 -0
  330. package/esm2022/button/lib/button-toggle/button-toggle.js +94 -0
  331. package/esm2022/button/lib/button-toggle/button-toggle.js.map +1 -0
  332. package/esm2022/button/lib/button-variant.token.js +4 -0
  333. package/esm2022/button/lib/button-variant.token.js.map +1 -0
  334. package/esm2022/button/lib/button.directives.js +37 -0
  335. package/esm2022/button/lib/button.directives.js.map +1 -0
  336. package/esm2022/button/lib/button.types.js +1 -0
  337. package/esm2022/button/lib/button.types.js.map +1 -0
  338. package/esm2022/button/malva-ui-core-button.js +5 -0
  339. package/esm2022/button/malva-ui-core-button.js.map +1 -0
  340. package/esm2022/calendar/index.js +4 -0
  341. package/esm2022/calendar/index.js.map +1 -0
  342. package/esm2022/calendar/lib/calendar/calendar.js +672 -0
  343. package/esm2022/calendar/lib/calendar/calendar.js.map +1 -0
  344. package/esm2022/calendar/lib/date-provider/date-adapter.js +111 -0
  345. package/esm2022/calendar/lib/date-provider/date-adapter.js.map +1 -0
  346. package/esm2022/calendar/lib/date-provider/native-date-adapter.js +151 -0
  347. package/esm2022/calendar/lib/date-provider/native-date-adapter.js.map +1 -0
  348. package/esm2022/calendar/malva-ui-core-calendar.js +5 -0
  349. package/esm2022/calendar/malva-ui-core-calendar.js.map +1 -0
  350. package/esm2022/card/index.js +6 -0
  351. package/esm2022/card/index.js.map +1 -0
  352. package/esm2022/card/lib/card/card.js +54 -0
  353. package/esm2022/card/lib/card/card.js.map +1 -0
  354. package/esm2022/card/lib/card-actions-def.js +27 -0
  355. package/esm2022/card/lib/card-actions-def.js.map +1 -0
  356. package/esm2022/card/lib/card-footer-def.js +32 -0
  357. package/esm2022/card/lib/card-footer-def.js.map +1 -0
  358. package/esm2022/card/lib/card-header-def.js +27 -0
  359. package/esm2022/card/lib/card-header-def.js.map +1 -0
  360. package/esm2022/card/lib/card-subheader-def.js +33 -0
  361. package/esm2022/card/lib/card-subheader-def.js.map +1 -0
  362. package/esm2022/card/malva-ui-core-card.js +5 -0
  363. package/esm2022/card/malva-ui-core-card.js.map +1 -0
  364. package/esm2022/chat/index.js +10 -0
  365. package/esm2022/chat/index.js.map +1 -0
  366. package/esm2022/chat/lib/chat/chat.js +326 -0
  367. package/esm2022/chat/lib/chat/chat.js.map +1 -0
  368. package/esm2022/chat/lib/chat-audio/chat-audio.js +110 -0
  369. package/esm2022/chat/lib/chat-audio/chat-audio.js.map +1 -0
  370. package/esm2022/chat/lib/chat-audio/chat-audio.service.js +28 -0
  371. package/esm2022/chat/lib/chat-audio/chat-audio.service.js.map +1 -0
  372. package/esm2022/chat/lib/chat-date/chat-date.js +46 -0
  373. package/esm2022/chat/lib/chat-date/chat-date.js.map +1 -0
  374. package/esm2022/chat/lib/chat-format.js +11 -0
  375. package/esm2022/chat/lib/chat-format.js.map +1 -0
  376. package/esm2022/chat/lib/chat-media-grid/chat-media-grid.js +53 -0
  377. package/esm2022/chat/lib/chat-media-grid/chat-media-grid.js.map +1 -0
  378. package/esm2022/chat/lib/chat-message/chat-message.js +86 -0
  379. package/esm2022/chat/lib/chat-message/chat-message.js.map +1 -0
  380. package/esm2022/chat/lib/chat-render-list.js +55 -0
  381. package/esm2022/chat/lib/chat-render-list.js.map +1 -0
  382. package/esm2022/chat/lib/chat-tokens.js +9 -0
  383. package/esm2022/chat/lib/chat-tokens.js.map +1 -0
  384. package/esm2022/chat/lib/chat-typing/chat-typing.js +50 -0
  385. package/esm2022/chat/lib/chat-typing/chat-typing.js.map +1 -0
  386. package/esm2022/chat/lib/chat.types.js +1 -0
  387. package/esm2022/chat/lib/chat.types.js.map +1 -0
  388. package/esm2022/chat/lib/defs/chat-author-def.js +27 -0
  389. package/esm2022/chat/lib/defs/chat-author-def.js.map +1 -0
  390. package/esm2022/chat/lib/defs/chat-date-def.js +24 -0
  391. package/esm2022/chat/lib/defs/chat-date-def.js.map +1 -0
  392. package/esm2022/chat/lib/defs/chat-message-def.js +30 -0
  393. package/esm2022/chat/lib/defs/chat-message-def.js.map +1 -0
  394. package/esm2022/chat/malva-ui-core-chat.js +5 -0
  395. package/esm2022/chat/malva-ui-core-chat.js.map +1 -0
  396. package/esm2022/checkbox/index.js +4 -0
  397. package/esm2022/checkbox/index.js.map +1 -0
  398. package/esm2022/checkbox/lib/checkbox/checkbox.js +201 -0
  399. package/esm2022/checkbox/lib/checkbox/checkbox.js.map +1 -0
  400. package/esm2022/checkbox/lib/checkbox-group/checkbox-group.js +68 -0
  401. package/esm2022/checkbox/lib/checkbox-group/checkbox-group.js.map +1 -0
  402. package/esm2022/checkbox/lib/checkbox-group-token.js +3 -0
  403. package/esm2022/checkbox/lib/checkbox-group-token.js.map +1 -0
  404. package/esm2022/checkbox/malva-ui-core-checkbox.js +5 -0
  405. package/esm2022/checkbox/malva-ui-core-checkbox.js.map +1 -0
  406. package/esm2022/chip/index.js +3 -0
  407. package/esm2022/chip/index.js.map +1 -0
  408. package/esm2022/chip/lib/chip/chip.directives.js +32 -0
  409. package/esm2022/chip/lib/chip/chip.directives.js.map +1 -0
  410. package/esm2022/chip/lib/chip/chip.js +140 -0
  411. package/esm2022/chip/lib/chip/chip.js.map +1 -0
  412. package/esm2022/chip/malva-ui-core-chip.js +5 -0
  413. package/esm2022/chip/malva-ui-core-chip.js.map +1 -0
  414. package/esm2022/color-picker/index.js +4 -0
  415. package/esm2022/color-picker/index.js.map +1 -0
  416. package/esm2022/color-picker/lib/color-picker/color-picker.js +530 -0
  417. package/esm2022/color-picker/lib/color-picker/color-picker.js.map +1 -0
  418. package/esm2022/color-picker/lib/color-picker-popup/color-picker-popup.js +419 -0
  419. package/esm2022/color-picker/lib/color-picker-popup/color-picker-popup.js.map +1 -0
  420. package/esm2022/color-picker/lib/color-utils/color-utils.js +256 -0
  421. package/esm2022/color-picker/lib/color-utils/color-utils.js.map +1 -0
  422. package/esm2022/color-picker/malva-ui-core-color-picker.js +5 -0
  423. package/esm2022/color-picker/malva-ui-core-color-picker.js.map +1 -0
  424. package/esm2022/combobox/index.js +3 -0
  425. package/esm2022/combobox/index.js.map +1 -0
  426. package/esm2022/combobox/lib/combobox/combobox.js +911 -0
  427. package/esm2022/combobox/lib/combobox/combobox.js.map +1 -0
  428. package/esm2022/combobox/lib/combobox-template.directives.js +24 -0
  429. package/esm2022/combobox/lib/combobox-template.directives.js.map +1 -0
  430. package/esm2022/combobox/malva-ui-core-combobox.js +5 -0
  431. package/esm2022/combobox/malva-ui-core-combobox.js.map +1 -0
  432. package/esm2022/copy-to-clipboard/index.js +2 -0
  433. package/esm2022/copy-to-clipboard/index.js.map +1 -0
  434. package/esm2022/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.js +201 -0
  435. package/esm2022/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.js.map +1 -0
  436. package/esm2022/copy-to-clipboard/malva-ui-core-copy-to-clipboard.js +5 -0
  437. package/esm2022/copy-to-clipboard/malva-ui-core-copy-to-clipboard.js.map +1 -0
  438. package/esm2022/data-table/index.js +9 -0
  439. package/esm2022/data-table/index.js.map +1 -0
  440. package/esm2022/data-table/lib/data-source.js +6 -0
  441. package/esm2022/data-table/lib/data-source.js.map +1 -0
  442. package/esm2022/data-table/lib/data-table/data-table-layout.js +84 -0
  443. package/esm2022/data-table/lib/data-table/data-table-layout.js.map +1 -0
  444. package/esm2022/data-table/lib/data-table/data-table.js +1846 -0
  445. package/esm2022/data-table/lib/data-table/data-table.js.map +1 -0
  446. package/esm2022/data-table/lib/data-table/services/data-table-column-visibility.service.js +37 -0
  447. package/esm2022/data-table/lib/data-table/services/data-table-column-visibility.service.js.map +1 -0
  448. package/esm2022/data-table/lib/data-table/services/data-table-editing.service.js +63 -0
  449. package/esm2022/data-table/lib/data-table/services/data-table-editing.service.js.map +1 -0
  450. package/esm2022/data-table/lib/data-table/services/data-table-pinning.service.js +68 -0
  451. package/esm2022/data-table/lib/data-table/services/data-table-pinning.service.js.map +1 -0
  452. package/esm2022/data-table/lib/data-table-cell.js +46 -0
  453. package/esm2022/data-table/lib/data-table-cell.js.map +1 -0
  454. package/esm2022/data-table/lib/data-table-edit-cell.js +46 -0
  455. package/esm2022/data-table/lib/data-table-edit-cell.js.map +1 -0
  456. package/esm2022/data-table/lib/data-table-error.js +37 -0
  457. package/esm2022/data-table/lib/data-table-error.js.map +1 -0
  458. package/esm2022/data-table/lib/data-table-footer.js +33 -0
  459. package/esm2022/data-table/lib/data-table-footer.js.map +1 -0
  460. package/esm2022/data-table/lib/data-table-no-data.js +26 -0
  461. package/esm2022/data-table/lib/data-table-no-data.js.map +1 -0
  462. package/esm2022/data-table/lib/filter-dropdown/filter-dropdown.js +224 -0
  463. package/esm2022/data-table/lib/filter-dropdown/filter-dropdown.js.map +1 -0
  464. package/esm2022/data-table/lib/types.js +1 -0
  465. package/esm2022/data-table/lib/types.js.map +1 -0
  466. package/esm2022/data-table/malva-ui-core-data-table.js +5 -0
  467. package/esm2022/data-table/malva-ui-core-data-table.js.map +1 -0
  468. package/esm2022/date-range-picker/index.js +2 -0
  469. package/esm2022/date-range-picker/index.js.map +1 -0
  470. package/esm2022/date-range-picker/lib/date-range-picker/date-range-picker.js +269 -0
  471. package/esm2022/date-range-picker/lib/date-range-picker/date-range-picker.js.map +1 -0
  472. package/esm2022/date-range-picker/malva-ui-core-date-range-picker.js +5 -0
  473. package/esm2022/date-range-picker/malva-ui-core-date-range-picker.js.map +1 -0
  474. package/esm2022/day-picker/index.js +2 -0
  475. package/esm2022/day-picker/index.js.map +1 -0
  476. package/esm2022/day-picker/lib/day-picker/day-picker.js +124 -0
  477. package/esm2022/day-picker/lib/day-picker/day-picker.js.map +1 -0
  478. package/esm2022/day-picker/malva-ui-core-day-picker.js +5 -0
  479. package/esm2022/day-picker/malva-ui-core-day-picker.js.map +1 -0
  480. package/esm2022/dialog/index.js +12 -0
  481. package/esm2022/dialog/index.js.map +1 -0
  482. package/esm2022/dialog/lib/confirm-dialog-options.js +1 -0
  483. package/esm2022/dialog/lib/confirm-dialog-options.js.map +1 -0
  484. package/esm2022/dialog/lib/confirm-dialog.js +155 -0
  485. package/esm2022/dialog/lib/confirm-dialog.js.map +1 -0
  486. package/esm2022/dialog/lib/dialog/dialog.js +40 -0
  487. package/esm2022/dialog/lib/dialog/dialog.js.map +1 -0
  488. package/esm2022/dialog/lib/dialog-body.js +33 -0
  489. package/esm2022/dialog/lib/dialog-body.js.map +1 -0
  490. package/esm2022/dialog/lib/dialog-close.js +45 -0
  491. package/esm2022/dialog/lib/dialog-close.js.map +1 -0
  492. package/esm2022/dialog/lib/dialog-config.js +23 -0
  493. package/esm2022/dialog/lib/dialog-config.js.map +1 -0
  494. package/esm2022/dialog/lib/dialog-container.js +69 -0
  495. package/esm2022/dialog/lib/dialog-container.js.map +1 -0
  496. package/esm2022/dialog/lib/dialog-footer.js +29 -0
  497. package/esm2022/dialog/lib/dialog-footer.js.map +1 -0
  498. package/esm2022/dialog/lib/dialog-header.js +181 -0
  499. package/esm2022/dialog/lib/dialog-header.js.map +1 -0
  500. package/esm2022/dialog/lib/dialog-ref.js +167 -0
  501. package/esm2022/dialog/lib/dialog-ref.js.map +1 -0
  502. package/esm2022/dialog/lib/dialog-template.js +136 -0
  503. package/esm2022/dialog/lib/dialog-template.js.map +1 -0
  504. package/esm2022/dialog/lib/dialog-text-content.js +59 -0
  505. package/esm2022/dialog/lib/dialog-text-content.js.map +1 -0
  506. package/esm2022/dialog/lib/dialog.service.js +205 -0
  507. package/esm2022/dialog/lib/dialog.service.js.map +1 -0
  508. package/esm2022/dialog/lib/generate-routable-dialog-route.js +59 -0
  509. package/esm2022/dialog/lib/generate-routable-dialog-route.js.map +1 -0
  510. package/esm2022/dialog/lib/inject-dialog-ref.js +16 -0
  511. package/esm2022/dialog/lib/inject-dialog-ref.js.map +1 -0
  512. package/esm2022/dialog/lib/routable-dialog.js +91 -0
  513. package/esm2022/dialog/lib/routable-dialog.js.map +1 -0
  514. package/esm2022/dialog/malva-ui-core-dialog.js +5 -0
  515. package/esm2022/dialog/malva-ui-core-dialog.js.map +1 -0
  516. package/esm2022/divider/index.js +2 -0
  517. package/esm2022/divider/index.js.map +1 -0
  518. package/esm2022/divider/lib/divider/divider.js +73 -0
  519. package/esm2022/divider/lib/divider/divider.js.map +1 -0
  520. package/esm2022/divider/malva-ui-core-divider.js +5 -0
  521. package/esm2022/divider/malva-ui-core-divider.js.map +1 -0
  522. package/esm2022/drawer/index.js +12 -0
  523. package/esm2022/drawer/index.js.map +1 -0
  524. package/esm2022/drawer/lib/drawer/drawer.js +180 -0
  525. package/esm2022/drawer/lib/drawer/drawer.js.map +1 -0
  526. package/esm2022/drawer/lib/drawer-body.js +32 -0
  527. package/esm2022/drawer/lib/drawer-body.js.map +1 -0
  528. package/esm2022/drawer/lib/drawer-content.js +14 -0
  529. package/esm2022/drawer/lib/drawer-content.js.map +1 -0
  530. package/esm2022/drawer/lib/drawer-footer.js +14 -0
  531. package/esm2022/drawer/lib/drawer-footer.js.map +1 -0
  532. package/esm2022/drawer/lib/drawer-header.js +14 -0
  533. package/esm2022/drawer/lib/drawer-header.js.map +1 -0
  534. package/esm2022/drawer/lib/drawer-ref.js +31 -0
  535. package/esm2022/drawer/lib/drawer-ref.js.map +1 -0
  536. package/esm2022/drawer/lib/drawer-resize.js +243 -0
  537. package/esm2022/drawer/lib/drawer-resize.js.map +1 -0
  538. package/esm2022/drawer/lib/drawer-section/drawer-section.js +26 -0
  539. package/esm2022/drawer/lib/drawer-section/drawer-section.js.map +1 -0
  540. package/esm2022/drawer/lib/drawer-sections/drawer-sections.js +58 -0
  541. package/esm2022/drawer/lib/drawer-sections/drawer-sections.js.map +1 -0
  542. package/esm2022/drawer/lib/drawer-sections.service.js +83 -0
  543. package/esm2022/drawer/lib/drawer-sections.service.js.map +1 -0
  544. package/esm2022/drawer/lib/drawer.service.js +86 -0
  545. package/esm2022/drawer/lib/drawer.service.js.map +1 -0
  546. package/esm2022/drawer/lib/generate-routable-drawer-route.js +52 -0
  547. package/esm2022/drawer/lib/generate-routable-drawer-route.js.map +1 -0
  548. package/esm2022/drawer/lib/routable-drawer.js +91 -0
  549. package/esm2022/drawer/lib/routable-drawer.js.map +1 -0
  550. package/esm2022/drawer/malva-ui-core-drawer.js +5 -0
  551. package/esm2022/drawer/malva-ui-core-drawer.js.map +1 -0
  552. package/esm2022/dropdown/index.js +10 -0
  553. package/esm2022/dropdown/index.js.map +1 -0
  554. package/esm2022/dropdown/lib/active-descendant.js +92 -0
  555. package/esm2022/dropdown/lib/active-descendant.js.map +1 -0
  556. package/esm2022/dropdown/lib/dropdown-panel/dropdown-panel.js +295 -0
  557. package/esm2022/dropdown/lib/dropdown-panel/dropdown-panel.js.map +1 -0
  558. package/esm2022/dropdown/lib/highlight-match.pipe.js +36 -0
  559. package/esm2022/dropdown/lib/highlight-match.pipe.js.map +1 -0
  560. package/esm2022/dropdown/lib/option-matcher.js +124 -0
  561. package/esm2022/dropdown/lib/option-matcher.js.map +1 -0
  562. package/esm2022/dropdown/lib/options-adapter.js +356 -0
  563. package/esm2022/dropdown/lib/options-adapter.js.map +1 -0
  564. package/esm2022/dropdown/lib/options-result.js +11 -0
  565. package/esm2022/dropdown/lib/options-result.js.map +1 -0
  566. package/esm2022/dropdown/lib/reconciliation.js +32 -0
  567. package/esm2022/dropdown/lib/reconciliation.js.map +1 -0
  568. package/esm2022/dropdown/lib/select-data-source.js +21 -0
  569. package/esm2022/dropdown/lib/select-data-source.js.map +1 -0
  570. package/esm2022/dropdown/lib/select-option.js +25 -0
  571. package/esm2022/dropdown/lib/select-option.js.map +1 -0
  572. package/esm2022/dropdown/malva-ui-core-dropdown.js +5 -0
  573. package/esm2022/dropdown/malva-ui-core-dropdown.js.map +1 -0
  574. package/esm2022/empty-state/index.js +2 -0
  575. package/esm2022/empty-state/index.js.map +1 -0
  576. package/esm2022/empty-state/lib/empty-state/empty-state.js +43 -0
  577. package/esm2022/empty-state/lib/empty-state/empty-state.js.map +1 -0
  578. package/esm2022/empty-state/malva-ui-core-empty-state.js +5 -0
  579. package/esm2022/empty-state/malva-ui-core-empty-state.js.map +1 -0
  580. package/esm2022/expand/index.js +3 -0
  581. package/esm2022/expand/index.js.map +1 -0
  582. package/esm2022/expand/lib/expand/expand-content.js +33 -0
  583. package/esm2022/expand/lib/expand/expand-content.js.map +1 -0
  584. package/esm2022/expand/lib/expand/expand.js +93 -0
  585. package/esm2022/expand/lib/expand/expand.js.map +1 -0
  586. package/esm2022/expand/malva-ui-core-expand.js +5 -0
  587. package/esm2022/expand/malva-ui-core-expand.js.map +1 -0
  588. package/esm2022/file-upload/index.js +5 -0
  589. package/esm2022/file-upload/index.js.map +1 -0
  590. package/esm2022/file-upload/lib/file-upload/file-upload.js +324 -0
  591. package/esm2022/file-upload/lib/file-upload/file-upload.js.map +1 -0
  592. package/esm2022/file-upload/lib/file-upload/file-upload.types.js +1 -0
  593. package/esm2022/file-upload/lib/file-upload/file-upload.types.js.map +1 -0
  594. package/esm2022/file-upload/lib/file-upload-action.js +65 -0
  595. package/esm2022/file-upload/lib/file-upload-action.js.map +1 -0
  596. package/esm2022/file-upload/lib/file-upload-item/file-upload-item.js +55 -0
  597. package/esm2022/file-upload/lib/file-upload-item/file-upload-item.js.map +1 -0
  598. package/esm2022/file-upload/malva-ui-core-file-upload.js +5 -0
  599. package/esm2022/file-upload/malva-ui-core-file-upload.js.map +1 -0
  600. package/esm2022/filter/index.js +4 -0
  601. package/esm2022/filter/index.js.map +1 -0
  602. package/esm2022/filter/lib/filter/filter.js +552 -0
  603. package/esm2022/filter/lib/filter/filter.js.map +1 -0
  604. package/esm2022/filter/lib/filter.types.js +1 -0
  605. package/esm2022/filter/lib/filter.types.js.map +1 -0
  606. package/esm2022/filter/lib/smart-filter-bar/smart-filter-bar.js +518 -0
  607. package/esm2022/filter/lib/smart-filter-bar/smart-filter-bar.js.map +1 -0
  608. package/esm2022/filter/malva-ui-core-filter.js +5 -0
  609. package/esm2022/filter/malva-ui-core-filter.js.map +1 -0
  610. package/esm2022/form/index.js +7 -0
  611. package/esm2022/form/index.js.map +1 -0
  612. package/esm2022/form/lib/fieldset/fieldset.js +101 -0
  613. package/esm2022/form/lib/fieldset/fieldset.js.map +1 -0
  614. package/esm2022/form/lib/fieldset-span.js +49 -0
  615. package/esm2022/form/lib/fieldset-span.js.map +1 -0
  616. package/esm2022/form/lib/form/form.js +60 -0
  617. package/esm2022/form/lib/form/form.js.map +1 -0
  618. package/esm2022/form/lib/form-actions.js +34 -0
  619. package/esm2022/form/lib/form-actions.js.map +1 -0
  620. package/esm2022/form/lib/form-gap.js +15 -0
  621. package/esm2022/form/lib/form-gap.js.map +1 -0
  622. package/esm2022/form/lib/form-header.js +27 -0
  623. package/esm2022/form/lib/form-header.js.map +1 -0
  624. package/esm2022/form/lib/form.types.js +1 -0
  625. package/esm2022/form/lib/form.types.js.map +1 -0
  626. package/esm2022/form/malva-ui-core-form.js +5 -0
  627. package/esm2022/form/malva-ui-core-form.js.map +1 -0
  628. package/esm2022/form-utils/index.js +16 -0
  629. package/esm2022/form-utils/index.js.map +1 -0
  630. package/esm2022/form-utils/lib/aria-value-bridge.js +57 -0
  631. package/esm2022/form-utils/lib/aria-value-bridge.js.map +1 -0
  632. package/esm2022/form-utils/lib/description/description.js +24 -0
  633. package/esm2022/form-utils/lib/description/description.js.map +1 -0
  634. package/esm2022/form-utils/lib/focusable-group-base.js +87 -0
  635. package/esm2022/form-utils/lib/focusable-group-base.js.map +1 -0
  636. package/esm2022/form-utils/lib/form-control-base/signal-form-control-base.js +192 -0
  637. package/esm2022/form-utils/lib/form-control-base/signal-form-control-base.js.map +1 -0
  638. package/esm2022/form-utils/lib/form-control-sides.js +34 -0
  639. package/esm2022/form-utils/lib/form-control-sides.js.map +1 -0
  640. package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper-control.js +14 -0
  641. package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper-control.js.map +1 -0
  642. package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper.js +47 -0
  643. package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper.js.map +1 -0
  644. package/esm2022/form-utils/lib/form-field/form-field.js +245 -0
  645. package/esm2022/form-utils/lib/form-field/form-field.js.map +1 -0
  646. package/esm2022/form-utils/lib/hint/hint.js +11 -0
  647. package/esm2022/form-utils/lib/hint/hint.js.map +1 -0
  648. package/esm2022/form-utils/lib/label/label.js +55 -0
  649. package/esm2022/form-utils/lib/label/label.js.map +1 -0
  650. package/esm2022/form-utils/lib/message/message.js +20 -0
  651. package/esm2022/form-utils/lib/message/message.js.map +1 -0
  652. package/esm2022/form-utils/lib/models/error-display-strategy.js +1 -0
  653. package/esm2022/form-utils/lib/models/error-display-strategy.js.map +1 -0
  654. package/esm2022/form-utils/lib/models/form-control-connector.js +3 -0
  655. package/esm2022/form-utils/lib/models/form-control-connector.js.map +1 -0
  656. package/esm2022/form-utils/lib/models/form-state.js +1 -0
  657. package/esm2022/form-utils/lib/models/form-state.js.map +1 -0
  658. package/esm2022/form-utils/lib/selection.service.js +81 -0
  659. package/esm2022/form-utils/lib/selection.service.js.map +1 -0
  660. package/esm2022/form-utils/malva-ui-core-form-utils.js +5 -0
  661. package/esm2022/form-utils/malva-ui-core-form-utils.js.map +1 -0
  662. package/esm2022/form-utils/testing/index.js +2 -0
  663. package/esm2022/form-utils/testing/index.js.map +1 -0
  664. package/esm2022/form-utils/testing/lib/forms-binding-matrix.js +32 -0
  665. package/esm2022/form-utils/testing/lib/forms-binding-matrix.js.map +1 -0
  666. package/esm2022/form-utils/testing/malva-ui-core-form-utils-testing.js +5 -0
  667. package/esm2022/form-utils/testing/malva-ui-core-form-utils-testing.js.map +1 -0
  668. package/esm2022/index.js +70 -0
  669. package/esm2022/index.js.map +1 -0
  670. package/esm2022/input/index.js +4 -0
  671. package/esm2022/input/index.js.map +1 -0
  672. package/esm2022/input/lib/input/input-native.js +49 -0
  673. package/esm2022/input/lib/input/input-native.js.map +1 -0
  674. package/esm2022/input/lib/input/input-value-accessor.js +4 -0
  675. package/esm2022/input/lib/input/input-value-accessor.js.map +1 -0
  676. package/esm2022/input/lib/input/input.js +277 -0
  677. package/esm2022/input/lib/input/input.js.map +1 -0
  678. package/esm2022/input/lib/input/password-strength.js +46 -0
  679. package/esm2022/input/lib/input/password-strength.js.map +1 -0
  680. package/esm2022/input/malva-ui-core-input.js +5 -0
  681. package/esm2022/input/malva-ui-core-input.js.map +1 -0
  682. package/esm2022/kbd/index.js +2 -0
  683. package/esm2022/kbd/index.js.map +1 -0
  684. package/esm2022/kbd/lib/kbd/kbd.js +124 -0
  685. package/esm2022/kbd/lib/kbd/kbd.js.map +1 -0
  686. package/esm2022/kbd/malva-ui-core-kbd.js +5 -0
  687. package/esm2022/kbd/malva-ui-core-kbd.js.map +1 -0
  688. package/esm2022/layout/index.js +5 -0
  689. package/esm2022/layout/index.js.map +1 -0
  690. package/esm2022/layout/lib/layout/directives/MlvLayoutSide.js +14 -0
  691. package/esm2022/layout/lib/layout/directives/MlvLayoutSide.js.map +1 -0
  692. package/esm2022/layout/lib/layout/directives/MlvLayoutTop.js +14 -0
  693. package/esm2022/layout/lib/layout/directives/MlvLayoutTop.js.map +1 -0
  694. package/esm2022/layout/lib/layout/layout.js +43 -0
  695. package/esm2022/layout/lib/layout/layout.js.map +1 -0
  696. package/esm2022/layout/lib/layout/services/theme.service.js +121 -0
  697. package/esm2022/layout/lib/layout/services/theme.service.js.map +1 -0
  698. package/esm2022/layout/malva-ui-core-layout.js +5 -0
  699. package/esm2022/layout/malva-ui-core-layout.js.map +1 -0
  700. package/esm2022/link/index.js +3 -0
  701. package/esm2022/link/index.js.map +1 -0
  702. package/esm2022/link/lib/link/link.directives.js +24 -0
  703. package/esm2022/link/lib/link/link.directives.js.map +1 -0
  704. package/esm2022/link/lib/link/link.js +61 -0
  705. package/esm2022/link/lib/link/link.js.map +1 -0
  706. package/esm2022/link/malva-ui-core-link.js +5 -0
  707. package/esm2022/link/malva-ui-core-link.js.map +1 -0
  708. package/esm2022/list/index.js +14 -0
  709. package/esm2022/list/index.js.map +1 -0
  710. package/esm2022/list/lib/list/list.js +28 -0
  711. package/esm2022/list/lib/list/list.js.map +1 -0
  712. package/esm2022/list/lib/list-item/list-item.js +125 -0
  713. package/esm2022/list/lib/list-item/list-item.js.map +1 -0
  714. package/esm2022/list/lib/list-item-actions.js +23 -0
  715. package/esm2022/list/lib/list-item-actions.js.map +1 -0
  716. package/esm2022/list/lib/list-item-byline.js +13 -0
  717. package/esm2022/list/lib/list-item-byline.js.map +1 -0
  718. package/esm2022/list/lib/list-item-group/list-item-group.js +25 -0
  719. package/esm2022/list/lib/list-item-group/list-item-group.js.map +1 -0
  720. package/esm2022/list/lib/list-item-link/list-item-link.js +20 -0
  721. package/esm2022/list/lib/list-item-link/list-item-link.js.map +1 -0
  722. package/esm2022/list/lib/list-item-media.js +13 -0
  723. package/esm2022/list/lib/list-item-media.js.map +1 -0
  724. package/esm2022/list/lib/list-item-meta.js +13 -0
  725. package/esm2022/list/lib/list-item-meta.js.map +1 -0
  726. package/esm2022/list/lib/list-item-prefix.js +13 -0
  727. package/esm2022/list/lib/list-item-prefix.js.map +1 -0
  728. package/esm2022/list/lib/list-item-suffix.js +13 -0
  729. package/esm2022/list/lib/list-item-suffix.js.map +1 -0
  730. package/esm2022/list/lib/list-item-template.js +14 -0
  731. package/esm2022/list/lib/list-item-template.js.map +1 -0
  732. package/esm2022/list/lib/list-item-title.js +13 -0
  733. package/esm2022/list/lib/list-item-title.js.map +1 -0
  734. package/esm2022/list/lib/list-selectable.js +116 -0
  735. package/esm2022/list/lib/list-selectable.js.map +1 -0
  736. package/esm2022/list/malva-ui-core-list.js +5 -0
  737. package/esm2022/list/malva-ui-core-list.js.map +1 -0
  738. package/esm2022/loader/index.js +2 -0
  739. package/esm2022/loader/index.js.map +1 -0
  740. package/esm2022/loader/lib/loader/loader.js +134 -0
  741. package/esm2022/loader/lib/loader/loader.js.map +1 -0
  742. package/esm2022/loader/malva-ui-core-loader.js +5 -0
  743. package/esm2022/loader/malva-ui-core-loader.js.map +1 -0
  744. package/esm2022/malva-ui-core.js +5 -0
  745. package/esm2022/malva-ui-core.js.map +1 -0
  746. package/esm2022/menu/index.js +10 -0
  747. package/esm2022/menu/index.js.map +1 -0
  748. package/esm2022/menu/lib/menu/menu-group-label.js +35 -0
  749. package/esm2022/menu/lib/menu/menu-group-label.js.map +1 -0
  750. package/esm2022/menu/lib/menu/menu-group.js +44 -0
  751. package/esm2022/menu/lib/menu/menu-group.js.map +1 -0
  752. package/esm2022/menu/lib/menu/menu-item.js +117 -0
  753. package/esm2022/menu/lib/menu/menu-item.js.map +1 -0
  754. package/esm2022/menu/lib/menu/menu-separator.js +41 -0
  755. package/esm2022/menu/lib/menu/menu-separator.js.map +1 -0
  756. package/esm2022/menu/lib/menu/menu-trigger.js +653 -0
  757. package/esm2022/menu/lib/menu/menu-trigger.js.map +1 -0
  758. package/esm2022/menu/lib/menu/menu.js +308 -0
  759. package/esm2022/menu/lib/menu/menu.js.map +1 -0
  760. package/esm2022/menu/lib/menu/menu.types.js +4 -0
  761. package/esm2022/menu/lib/menu/menu.types.js.map +1 -0
  762. package/esm2022/menu/lib/menu/menubar.js +257 -0
  763. package/esm2022/menu/lib/menu/menubar.js.map +1 -0
  764. package/esm2022/menu/lib/menu/menubar.types.js +4 -0
  765. package/esm2022/menu/lib/menu/menubar.types.js.map +1 -0
  766. package/esm2022/menu/lib/menu/submenu-aim.js +30 -0
  767. package/esm2022/menu/lib/menu/submenu-aim.js.map +1 -0
  768. package/esm2022/menu/malva-ui-core-menu.js +5 -0
  769. package/esm2022/menu/malva-ui-core-menu.js.map +1 -0
  770. package/esm2022/notification/index.js +5 -0
  771. package/esm2022/notification/index.js.map +1 -0
  772. package/esm2022/notification/lib/notification-item/notification-item.js +65 -0
  773. package/esm2022/notification/lib/notification-item/notification-item.js.map +1 -0
  774. package/esm2022/notification/lib/notification-ref.js +13 -0
  775. package/esm2022/notification/lib/notification-ref.js.map +1 -0
  776. package/esm2022/notification/lib/notification.service.js +118 -0
  777. package/esm2022/notification/lib/notification.service.js.map +1 -0
  778. package/esm2022/notification/lib/notification.types.js +6 -0
  779. package/esm2022/notification/lib/notification.types.js.map +1 -0
  780. package/esm2022/notification/malva-ui-core-notification.js +5 -0
  781. package/esm2022/notification/malva-ui-core-notification.js.map +1 -0
  782. package/esm2022/number-input/index.js +2 -0
  783. package/esm2022/number-input/index.js.map +1 -0
  784. package/esm2022/number-input/lib/number-input/number-input.js +395 -0
  785. package/esm2022/number-input/lib/number-input/number-input.js.map +1 -0
  786. package/esm2022/number-input/malva-ui-core-number-input.js +5 -0
  787. package/esm2022/number-input/malva-ui-core-number-input.js.map +1 -0
  788. package/esm2022/page/index.js +15 -0
  789. package/esm2022/page/index.js.map +1 -0
  790. package/esm2022/page/lib/page/page-scroll.token.js +9 -0
  791. package/esm2022/page/lib/page/page-scroll.token.js.map +1 -0
  792. package/esm2022/page/lib/page/page-snap-controller.js +170 -0
  793. package/esm2022/page/lib/page/page-snap-controller.js.map +1 -0
  794. package/esm2022/page/lib/page/page-snap.directive.js +65 -0
  795. package/esm2022/page/lib/page/page-snap.directive.js.map +1 -0
  796. package/esm2022/page/lib/page/page.js +173 -0
  797. package/esm2022/page/lib/page/page.js.map +1 -0
  798. package/esm2022/page/lib/page-content/page-aside.js +13 -0
  799. package/esm2022/page/lib/page-content/page-aside.js.map +1 -0
  800. package/esm2022/page/lib/page-content/page-content.js +72 -0
  801. package/esm2022/page/lib/page-content/page-content.js.map +1 -0
  802. package/esm2022/page/lib/page-dock/page-dock.js +128 -0
  803. package/esm2022/page/lib/page-dock/page-dock.js.map +1 -0
  804. package/esm2022/page/lib/page-dock/page-dock.slots.js +39 -0
  805. package/esm2022/page/lib/page-dock/page-dock.slots.js.map +1 -0
  806. package/esm2022/page/lib/page-header/page-header.directives.js +88 -0
  807. package/esm2022/page/lib/page-header/page-header.directives.js.map +1 -0
  808. package/esm2022/page/lib/page-header/page-header.js +124 -0
  809. package/esm2022/page/lib/page-header/page-header.js.map +1 -0
  810. package/esm2022/page/lib/page-shell/page-shell-color.js +193 -0
  811. package/esm2022/page/lib/page-shell/page-shell-color.js.map +1 -0
  812. package/esm2022/page/lib/page-shell/page-shell-css-color.js +207 -0
  813. package/esm2022/page/lib/page-shell/page-shell-css-color.js.map +1 -0
  814. package/esm2022/page/lib/page-shell/page-shell.js +131 -0
  815. package/esm2022/page/lib/page-shell/page-shell.js.map +1 -0
  816. package/esm2022/page/lib/page-shell/page-shell.slots.js +41 -0
  817. package/esm2022/page/lib/page-shell/page-shell.slots.js.map +1 -0
  818. package/esm2022/page/lib/page-summary/page-summary-item.js +26 -0
  819. package/esm2022/page/lib/page-summary/page-summary-item.js.map +1 -0
  820. package/esm2022/page/lib/page-summary/page-summary.js +87 -0
  821. package/esm2022/page/lib/page-summary/page-summary.js.map +1 -0
  822. package/esm2022/page/malva-ui-core-page.js +5 -0
  823. package/esm2022/page/malva-ui-core-page.js.map +1 -0
  824. package/esm2022/pagination/index.js +5 -0
  825. package/esm2022/pagination/index.js.map +1 -0
  826. package/esm2022/pagination/lib/pagination/pagination.directives.js +58 -0
  827. package/esm2022/pagination/lib/pagination/pagination.directives.js.map +1 -0
  828. package/esm2022/pagination/lib/pagination/pagination.js +293 -0
  829. package/esm2022/pagination/lib/pagination/pagination.js.map +1 -0
  830. package/esm2022/pagination/lib/pagination/pagination.model.js +1 -0
  831. package/esm2022/pagination/lib/pagination/pagination.model.js.map +1 -0
  832. package/esm2022/pagination/lib/pagination/pagination.service.js +108 -0
  833. package/esm2022/pagination/lib/pagination/pagination.service.js.map +1 -0
  834. package/esm2022/pagination/malva-ui-core-pagination.js +5 -0
  835. package/esm2022/pagination/malva-ui-core-pagination.js.map +1 -0
  836. package/esm2022/pin-input/index.js +3 -0
  837. package/esm2022/pin-input/index.js.map +1 -0
  838. package/esm2022/pin-input/lib/pin-input/pin-input-separator.js +31 -0
  839. package/esm2022/pin-input/lib/pin-input/pin-input-separator.js.map +1 -0
  840. package/esm2022/pin-input/lib/pin-input/pin-input.js +365 -0
  841. package/esm2022/pin-input/lib/pin-input/pin-input.js.map +1 -0
  842. package/esm2022/pin-input/malva-ui-core-pin-input.js +5 -0
  843. package/esm2022/pin-input/malva-ui-core-pin-input.js.map +1 -0
  844. package/esm2022/popup/index.js +10 -0
  845. package/esm2022/popup/index.js.map +1 -0
  846. package/esm2022/popup/lib/popup/popup.js +500 -0
  847. package/esm2022/popup/lib/popup/popup.js.map +1 -0
  848. package/esm2022/popup/lib/popup-container/popup-container.js +169 -0
  849. package/esm2022/popup/lib/popup-container/popup-container.js.map +1 -0
  850. package/esm2022/popup/lib/popup-container/popup-container.token.js +9 -0
  851. package/esm2022/popup/lib/popup-container/popup-container.token.js.map +1 -0
  852. package/esm2022/popup/lib/popup-content.js +14 -0
  853. package/esm2022/popup/lib/popup-content.js.map +1 -0
  854. package/esm2022/popup/lib/popup-header-content.js +26 -0
  855. package/esm2022/popup/lib/popup-header-content.js.map +1 -0
  856. package/esm2022/popup/lib/popup-pinned-content.js +25 -0
  857. package/esm2022/popup/lib/popup-pinned-content.js.map +1 -0
  858. package/esm2022/popup/lib/popup-positions.js +252 -0
  859. package/esm2022/popup/lib/popup-positions.js.map +1 -0
  860. package/esm2022/popup/lib/popup-trigger/popup-trigger.js +308 -0
  861. package/esm2022/popup/lib/popup-trigger/popup-trigger.js.map +1 -0
  862. package/esm2022/popup/lib/popup.service.js +188 -0
  863. package/esm2022/popup/lib/popup.service.js.map +1 -0
  864. package/esm2022/popup/malva-ui-core-popup.js +5 -0
  865. package/esm2022/popup/malva-ui-core-popup.js.map +1 -0
  866. package/esm2022/progress/index.js +2 -0
  867. package/esm2022/progress/index.js.map +1 -0
  868. package/esm2022/progress/lib/progress/progress.js +102 -0
  869. package/esm2022/progress/lib/progress/progress.js.map +1 -0
  870. package/esm2022/progress/malva-ui-core-progress.js +5 -0
  871. package/esm2022/progress/malva-ui-core-progress.js.map +1 -0
  872. package/esm2022/radio/index.js +3 -0
  873. package/esm2022/radio/index.js.map +1 -0
  874. package/esm2022/radio/lib/radio/radio.js +134 -0
  875. package/esm2022/radio/lib/radio/radio.js.map +1 -0
  876. package/esm2022/radio/lib/radio-group/radio-group.js +176 -0
  877. package/esm2022/radio/lib/radio-group/radio-group.js.map +1 -0
  878. package/esm2022/radio/lib/radio-group-token.js +3 -0
  879. package/esm2022/radio/lib/radio-group-token.js.map +1 -0
  880. package/esm2022/radio/malva-ui-core-radio.js +5 -0
  881. package/esm2022/radio/malva-ui-core-radio.js.map +1 -0
  882. package/esm2022/rating/index.js +2 -0
  883. package/esm2022/rating/index.js.map +1 -0
  884. package/esm2022/rating/lib/rating/rating.js +208 -0
  885. package/esm2022/rating/lib/rating/rating.js.map +1 -0
  886. package/esm2022/rating/malva-ui-core-rating.js +5 -0
  887. package/esm2022/rating/malva-ui-core-rating.js.map +1 -0
  888. package/esm2022/scrollbar/index.js +2 -0
  889. package/esm2022/scrollbar/index.js.map +1 -0
  890. package/esm2022/scrollbar/lib/scrollbar/scrollbar.js +388 -0
  891. package/esm2022/scrollbar/lib/scrollbar/scrollbar.js.map +1 -0
  892. package/esm2022/scrollbar/malva-ui-core-scrollbar.js +5 -0
  893. package/esm2022/scrollbar/malva-ui-core-scrollbar.js.map +1 -0
  894. package/esm2022/search-field/index.js +3 -0
  895. package/esm2022/search-field/index.js.map +1 -0
  896. package/esm2022/search-field/lib/search-field/search-field.js +535 -0
  897. package/esm2022/search-field/lib/search-field/search-field.js.map +1 -0
  898. package/esm2022/search-field/lib/search-field/search-overlay-content.js +35 -0
  899. package/esm2022/search-field/lib/search-field/search-overlay-content.js.map +1 -0
  900. package/esm2022/search-field/malva-ui-core-search-field.js +5 -0
  901. package/esm2022/search-field/malva-ui-core-search-field.js.map +1 -0
  902. package/esm2022/segmented/index.js +5 -0
  903. package/esm2022/segmented/index.js.map +1 -0
  904. package/esm2022/segmented/lib/segmented/segmented.js +248 -0
  905. package/esm2022/segmented/lib/segmented/segmented.js.map +1 -0
  906. package/esm2022/segmented/lib/segmented-item/segmented-item.js +194 -0
  907. package/esm2022/segmented/lib/segmented-item/segmented-item.js.map +1 -0
  908. package/esm2022/segmented/lib/segmented-token.js +4 -0
  909. package/esm2022/segmented/lib/segmented-token.js.map +1 -0
  910. package/esm2022/segmented/lib/segmented.types.js +1 -0
  911. package/esm2022/segmented/lib/segmented.types.js.map +1 -0
  912. package/esm2022/segmented/malva-ui-core-segmented.js +5 -0
  913. package/esm2022/segmented/malva-ui-core-segmented.js.map +1 -0
  914. package/esm2022/select/index.js +4 -0
  915. package/esm2022/select/index.js.map +1 -0
  916. package/esm2022/select/lib/select/select.js +685 -0
  917. package/esm2022/select/lib/select/select.js.map +1 -0
  918. package/esm2022/select/lib/select-option.js +2 -0
  919. package/esm2022/select/lib/select-option.js.map +1 -0
  920. package/esm2022/select/lib/select-template.directives.js +34 -0
  921. package/esm2022/select/lib/select-template.directives.js.map +1 -0
  922. package/esm2022/select/malva-ui-core-select.js +5 -0
  923. package/esm2022/select/malva-ui-core-select.js.map +1 -0
  924. package/esm2022/sidebar/index.js +16 -0
  925. package/esm2022/sidebar/index.js.map +1 -0
  926. package/esm2022/sidebar/lib/sidebar/sidebar.js +251 -0
  927. package/esm2022/sidebar/lib/sidebar/sidebar.js.map +1 -0
  928. package/esm2022/sidebar/lib/sidebar-content.js +37 -0
  929. package/esm2022/sidebar/lib/sidebar-content.js.map +1 -0
  930. package/esm2022/sidebar/lib/sidebar-context.js +3 -0
  931. package/esm2022/sidebar/lib/sidebar-context.js.map +1 -0
  932. package/esm2022/sidebar/lib/sidebar-footer.js +20 -0
  933. package/esm2022/sidebar/lib/sidebar-footer.js.map +1 -0
  934. package/esm2022/sidebar/lib/sidebar-group/sidebar-group.js +341 -0
  935. package/esm2022/sidebar/lib/sidebar-group/sidebar-group.js.map +1 -0
  936. package/esm2022/sidebar/lib/sidebar-header.js +20 -0
  937. package/esm2022/sidebar/lib/sidebar-header.js.map +1 -0
  938. package/esm2022/sidebar/lib/sidebar-item/sidebar-item.js +216 -0
  939. package/esm2022/sidebar/lib/sidebar-item/sidebar-item.js.map +1 -0
  940. package/esm2022/sidebar/lib/sidebar-item-host.js +39 -0
  941. package/esm2022/sidebar/lib/sidebar-item-host.js.map +1 -0
  942. package/esm2022/sidebar/lib/sidebar-item-icon.js +14 -0
  943. package/esm2022/sidebar/lib/sidebar-item-icon.js.map +1 -0
  944. package/esm2022/sidebar/lib/sidebar-mode.js +1 -0
  945. package/esm2022/sidebar/lib/sidebar-mode.js.map +1 -0
  946. package/esm2022/sidebar/lib/sidebar-rail/sidebar-rail.js +202 -0
  947. package/esm2022/sidebar/lib/sidebar-rail/sidebar-rail.js.map +1 -0
  948. package/esm2022/sidebar/lib/sidebar-trigger/sidebar-trigger.js +159 -0
  949. package/esm2022/sidebar/lib/sidebar-trigger/sidebar-trigger.js.map +1 -0
  950. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.js +35 -0
  951. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.js.map +1 -0
  952. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.js +107 -0
  953. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.js.map +1 -0
  954. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.types.js +1 -0
  955. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.types.js.map +1 -0
  956. package/esm2022/sidebar/malva-ui-core-sidebar.js +5 -0
  957. package/esm2022/sidebar/malva-ui-core-sidebar.js.map +1 -0
  958. package/esm2022/skeleton/index.js +2 -0
  959. package/esm2022/skeleton/index.js.map +1 -0
  960. package/esm2022/skeleton/lib/skeleton/skeleton.js +78 -0
  961. package/esm2022/skeleton/lib/skeleton/skeleton.js.map +1 -0
  962. package/esm2022/skeleton/malva-ui-core-skeleton.js +5 -0
  963. package/esm2022/skeleton/malva-ui-core-skeleton.js.map +1 -0
  964. package/esm2022/slider/index.js +3 -0
  965. package/esm2022/slider/index.js.map +1 -0
  966. package/esm2022/slider/lib/slider/slider-tooltip-def.js +31 -0
  967. package/esm2022/slider/lib/slider/slider-tooltip-def.js.map +1 -0
  968. package/esm2022/slider/lib/slider/slider.js +468 -0
  969. package/esm2022/slider/lib/slider/slider.js.map +1 -0
  970. package/esm2022/slider/malva-ui-core-slider.js +5 -0
  971. package/esm2022/slider/malva-ui-core-slider.js.map +1 -0
  972. package/esm2022/split-pane/index.js +4 -0
  973. package/esm2022/split-pane/index.js.map +1 -0
  974. package/esm2022/split-pane/lib/split-pane/split-pane-panel.js +49 -0
  975. package/esm2022/split-pane/lib/split-pane/split-pane-panel.js.map +1 -0
  976. package/esm2022/split-pane/lib/split-pane/split-pane.js +290 -0
  977. package/esm2022/split-pane/lib/split-pane/split-pane.js.map +1 -0
  978. package/esm2022/split-pane/lib/split-pane/split-pane.types.js +1 -0
  979. package/esm2022/split-pane/lib/split-pane/split-pane.types.js.map +1 -0
  980. package/esm2022/split-pane/malva-ui-core-split-pane.js +5 -0
  981. package/esm2022/split-pane/malva-ui-core-split-pane.js.map +1 -0
  982. package/esm2022/status-indicator/index.js +2 -0
  983. package/esm2022/status-indicator/index.js.map +1 -0
  984. package/esm2022/status-indicator/lib/status-indicator/status-indicator.js +71 -0
  985. package/esm2022/status-indicator/lib/status-indicator/status-indicator.js.map +1 -0
  986. package/esm2022/status-indicator/malva-ui-core-status-indicator.js +5 -0
  987. package/esm2022/status-indicator/malva-ui-core-status-indicator.js.map +1 -0
  988. package/esm2022/stepper/index.js +5 -0
  989. package/esm2022/stepper/index.js.map +1 -0
  990. package/esm2022/stepper/lib/stepper/step-header.js +46 -0
  991. package/esm2022/stepper/lib/stepper/step-header.js.map +1 -0
  992. package/esm2022/stepper/lib/stepper/step.js +65 -0
  993. package/esm2022/stepper/lib/stepper/step.js.map +1 -0
  994. package/esm2022/stepper/lib/stepper/stepper-token.js +4 -0
  995. package/esm2022/stepper/lib/stepper/stepper-token.js.map +1 -0
  996. package/esm2022/stepper/lib/stepper/stepper.js +216 -0
  997. package/esm2022/stepper/lib/stepper/stepper.js.map +1 -0
  998. package/esm2022/stepper/lib/stepper/stepper.types.js +1 -0
  999. package/esm2022/stepper/lib/stepper/stepper.types.js.map +1 -0
  1000. package/esm2022/stepper/malva-ui-core-stepper.js +5 -0
  1001. package/esm2022/stepper/malva-ui-core-stepper.js.map +1 -0
  1002. package/esm2022/switch/index.js +3 -0
  1003. package/esm2022/switch/index.js.map +1 -0
  1004. package/esm2022/switch/lib/switch/switch.js +190 -0
  1005. package/esm2022/switch/lib/switch/switch.js.map +1 -0
  1006. package/esm2022/switch/lib/switch-group/switch-group.js +68 -0
  1007. package/esm2022/switch/lib/switch-group/switch-group.js.map +1 -0
  1008. package/esm2022/switch/lib/switch-group-token.js +3 -0
  1009. package/esm2022/switch/lib/switch-group-token.js.map +1 -0
  1010. package/esm2022/switch/malva-ui-core-switch.js +5 -0
  1011. package/esm2022/switch/malva-ui-core-switch.js.map +1 -0
  1012. package/esm2022/tabs/index.js +9 -0
  1013. package/esm2022/tabs/index.js.map +1 -0
  1014. package/esm2022/tabs/lib/tab/tab.js +72 -0
  1015. package/esm2022/tabs/lib/tab/tab.js.map +1 -0
  1016. package/esm2022/tabs/lib/tab-content/tab-content.js +19 -0
  1017. package/esm2022/tabs/lib/tab-content/tab-content.js.map +1 -0
  1018. package/esm2022/tabs/lib/tab-content-def.js +14 -0
  1019. package/esm2022/tabs/lib/tab-content-def.js.map +1 -0
  1020. package/esm2022/tabs/lib/tab-def.js +17 -0
  1021. package/esm2022/tabs/lib/tab-def.js.map +1 -0
  1022. package/esm2022/tabs/lib/tab-group-token.js +3 -0
  1023. package/esm2022/tabs/lib/tab-group-token.js.map +1 -0
  1024. package/esm2022/tabs/lib/tab-item/tab-item.js +44 -0
  1025. package/esm2022/tabs/lib/tab-item/tab-item.js.map +1 -0
  1026. package/esm2022/tabs/lib/tabs/tabs.js +542 -0
  1027. package/esm2022/tabs/lib/tabs/tabs.js.map +1 -0
  1028. package/esm2022/tabs/lib/tabs.service.js +83 -0
  1029. package/esm2022/tabs/lib/tabs.service.js.map +1 -0
  1030. package/esm2022/tabs/malva-ui-core-tabs.js +5 -0
  1031. package/esm2022/tabs/malva-ui-core-tabs.js.map +1 -0
  1032. package/esm2022/textarea/index.js +2 -0
  1033. package/esm2022/textarea/index.js.map +1 -0
  1034. package/esm2022/textarea/lib/textarea/textarea.js +194 -0
  1035. package/esm2022/textarea/lib/textarea/textarea.js.map +1 -0
  1036. package/esm2022/textarea/malva-ui-core-textarea.js +5 -0
  1037. package/esm2022/textarea/malva-ui-core-textarea.js.map +1 -0
  1038. package/esm2022/tile/index.js +3 -0
  1039. package/esm2022/tile/index.js.map +1 -0
  1040. package/esm2022/tile/lib/tile/tile.js +39 -0
  1041. package/esm2022/tile/lib/tile/tile.js.map +1 -0
  1042. package/esm2022/tile/lib/tile-header.js +14 -0
  1043. package/esm2022/tile/lib/tile-header.js.map +1 -0
  1044. package/esm2022/tile/malva-ui-core-tile.js +5 -0
  1045. package/esm2022/tile/malva-ui-core-tile.js.map +1 -0
  1046. package/esm2022/time-picker/index.js +2 -0
  1047. package/esm2022/time-picker/index.js.map +1 -0
  1048. package/esm2022/time-picker/lib/time-picker/time-picker.js +310 -0
  1049. package/esm2022/time-picker/lib/time-picker/time-picker.js.map +1 -0
  1050. package/esm2022/time-picker/lib/time-picker-column/time-picker-column.js +216 -0
  1051. package/esm2022/time-picker/lib/time-picker-column/time-picker-column.js.map +1 -0
  1052. package/esm2022/time-picker/malva-ui-core-time-picker.js +5 -0
  1053. package/esm2022/time-picker/malva-ui-core-time-picker.js.map +1 -0
  1054. package/esm2022/timeline/index.js +6 -0
  1055. package/esm2022/timeline/index.js.map +1 -0
  1056. package/esm2022/timeline/lib/timeline/timeline-item-icon.js +31 -0
  1057. package/esm2022/timeline/lib/timeline/timeline-item-icon.js.map +1 -0
  1058. package/esm2022/timeline/lib/timeline/timeline-item-meta.js +31 -0
  1059. package/esm2022/timeline/lib/timeline/timeline-item-meta.js.map +1 -0
  1060. package/esm2022/timeline/lib/timeline/timeline-item.js +69 -0
  1061. package/esm2022/timeline/lib/timeline/timeline-item.js.map +1 -0
  1062. package/esm2022/timeline/lib/timeline/timeline.js +36 -0
  1063. package/esm2022/timeline/lib/timeline/timeline.js.map +1 -0
  1064. package/esm2022/timeline/lib/timeline/timeline.types.js +1 -0
  1065. package/esm2022/timeline/lib/timeline/timeline.types.js.map +1 -0
  1066. package/esm2022/timeline/malva-ui-core-timeline.js +5 -0
  1067. package/esm2022/timeline/malva-ui-core-timeline.js.map +1 -0
  1068. package/esm2022/title/index.js +2 -0
  1069. package/esm2022/title/index.js.map +1 -0
  1070. package/esm2022/title/lib/title/title.js +171 -0
  1071. package/esm2022/title/lib/title/title.js.map +1 -0
  1072. package/esm2022/title/malva-ui-core-title.js +5 -0
  1073. package/esm2022/title/malva-ui-core-title.js.map +1 -0
  1074. package/esm2022/toast/index.js +13 -0
  1075. package/esm2022/toast/index.js.map +1 -0
  1076. package/esm2022/toast/lib/abstract-toast-container.js +50 -0
  1077. package/esm2022/toast/lib/abstract-toast-container.js.map +1 -0
  1078. package/esm2022/toast/lib/abstract-toast-item.js +75 -0
  1079. package/esm2022/toast/lib/abstract-toast-item.js.map +1 -0
  1080. package/esm2022/toast/lib/abstract-toast.service.js +176 -0
  1081. package/esm2022/toast/lib/abstract-toast.service.js.map +1 -0
  1082. package/esm2022/toast/lib/toast-container/toast-container.js +61 -0
  1083. package/esm2022/toast/lib/toast-container/toast-container.js.map +1 -0
  1084. package/esm2022/toast/lib/toast-item/toast-item.js +62 -0
  1085. package/esm2022/toast/lib/toast-item/toast-item.js.map +1 -0
  1086. package/esm2022/toast/lib/toast-ref.js +54 -0
  1087. package/esm2022/toast/lib/toast-ref.js.map +1 -0
  1088. package/esm2022/toast/lib/toast-timer.js +37 -0
  1089. package/esm2022/toast/lib/toast-timer.js.map +1 -0
  1090. package/esm2022/toast/lib/toast.directives.js +76 -0
  1091. package/esm2022/toast/lib/toast.directives.js.map +1 -0
  1092. package/esm2022/toast/lib/toast.service.js +127 -0
  1093. package/esm2022/toast/lib/toast.service.js.map +1 -0
  1094. package/esm2022/toast/lib/toast.types.js +39 -0
  1095. package/esm2022/toast/lib/toast.types.js.map +1 -0
  1096. package/esm2022/toast/malva-ui-core-toast.js +5 -0
  1097. package/esm2022/toast/malva-ui-core-toast.js.map +1 -0
  1098. package/esm2022/tokenizer/index.js +4 -0
  1099. package/esm2022/tokenizer/index.js.map +1 -0
  1100. package/esm2022/tokenizer/lib/token/token.js +123 -0
  1101. package/esm2022/tokenizer/lib/token/token.js.map +1 -0
  1102. package/esm2022/tokenizer/lib/token-template.js +23 -0
  1103. package/esm2022/tokenizer/lib/token-template.js.map +1 -0
  1104. package/esm2022/tokenizer/lib/tokenizer/tokenizer.js +324 -0
  1105. package/esm2022/tokenizer/lib/tokenizer/tokenizer.js.map +1 -0
  1106. package/esm2022/tokenizer/malva-ui-core-tokenizer.js +5 -0
  1107. package/esm2022/tokenizer/malva-ui-core-tokenizer.js.map +1 -0
  1108. package/esm2022/toolbar/index.js +4 -0
  1109. package/esm2022/toolbar/index.js.map +1 -0
  1110. package/esm2022/toolbar/lib/toolbar/toolbar-spacer.js +13 -0
  1111. package/esm2022/toolbar/lib/toolbar/toolbar-spacer.js.map +1 -0
  1112. package/esm2022/toolbar/lib/toolbar/toolbar-widget.js +106 -0
  1113. package/esm2022/toolbar/lib/toolbar/toolbar-widget.js.map +1 -0
  1114. package/esm2022/toolbar/lib/toolbar/toolbar.js +19 -0
  1115. package/esm2022/toolbar/lib/toolbar/toolbar.js.map +1 -0
  1116. package/esm2022/toolbar/malva-ui-core-toolbar.js +5 -0
  1117. package/esm2022/toolbar/malva-ui-core-toolbar.js.map +1 -0
  1118. package/esm2022/tooltip/index.js +4 -0
  1119. package/esm2022/tooltip/index.js.map +1 -0
  1120. package/esm2022/tooltip/lib/tooltip/tooltip-panel.js +69 -0
  1121. package/esm2022/tooltip/lib/tooltip/tooltip-panel.js.map +1 -0
  1122. package/esm2022/tooltip/lib/tooltip/tooltip.js +352 -0
  1123. package/esm2022/tooltip/lib/tooltip/tooltip.js.map +1 -0
  1124. package/esm2022/tooltip/lib/tooltip/tooltip.types.js +1 -0
  1125. package/esm2022/tooltip/lib/tooltip/tooltip.types.js.map +1 -0
  1126. package/esm2022/tooltip/malva-ui-core-tooltip.js +5 -0
  1127. package/esm2022/tooltip/malva-ui-core-tooltip.js.map +1 -0
  1128. package/esm2022/tree/index.js +5 -0
  1129. package/esm2022/tree/index.js.map +1 -0
  1130. package/esm2022/tree/lib/tree/tree-context.js +7 -0
  1131. package/esm2022/tree/lib/tree/tree-context.js.map +1 -0
  1132. package/esm2022/tree/lib/tree/tree-node-def.js +34 -0
  1133. package/esm2022/tree/lib/tree/tree-node-def.js.map +1 -0
  1134. package/esm2022/tree/lib/tree/tree-node.js +1 -0
  1135. package/esm2022/tree/lib/tree/tree-node.js.map +1 -0
  1136. package/esm2022/tree/lib/tree/tree-subtree.js +107 -0
  1137. package/esm2022/tree/lib/tree/tree-subtree.js.map +1 -0
  1138. package/esm2022/tree/lib/tree/tree.js +362 -0
  1139. package/esm2022/tree/lib/tree/tree.js.map +1 -0
  1140. package/esm2022/tree/malva-ui-core-tree.js +5 -0
  1141. package/esm2022/tree/malva-ui-core-tree.js.map +1 -0
  1142. package/expand/index.d.ts +2 -0
  1143. package/expand/lib/expand/expand-content.d.ts +26 -0
  1144. package/expand/lib/expand/expand.d.ts +74 -0
  1145. package/expand/malva-ui-core-expand.d.ts +5 -0
  1146. package/file-upload/README.md +7 -0
  1147. package/file-upload/index.d.ts +4 -0
  1148. package/file-upload/lib/file-upload/file-upload.d.ts +138 -0
  1149. package/file-upload/lib/file-upload/file-upload.types.d.ts +42 -0
  1150. package/file-upload/lib/file-upload-action.d.ts +53 -0
  1151. package/file-upload/lib/file-upload-item/file-upload-item.d.ts +30 -0
  1152. package/file-upload/malva-ui-core-file-upload.d.ts +5 -0
  1153. package/filter/README.md +22 -0
  1154. package/filter/index.d.ts +3 -0
  1155. package/filter/lib/filter/filter.d.ts +156 -0
  1156. package/filter/lib/filter.types.d.ts +75 -0
  1157. package/filter/lib/smart-filter-bar/smart-filter-bar.d.ts +153 -0
  1158. package/filter/malva-ui-core-filter.d.ts +5 -0
  1159. package/form/index.d.ts +6 -0
  1160. package/form/lib/fieldset/fieldset.d.ts +58 -0
  1161. package/form/lib/fieldset-span.d.ts +28 -0
  1162. package/form/lib/form/form.d.ts +37 -0
  1163. package/form/lib/form-actions.d.ts +20 -0
  1164. package/form/lib/form-gap.d.ts +5 -0
  1165. package/form/lib/form-header.d.ts +18 -0
  1166. package/form/lib/form.types.d.ts +13 -0
  1167. package/form/malva-ui-core-form.d.ts +5 -0
  1168. package/form-utils/index.d.ts +15 -0
  1169. package/form-utils/lib/aria-value-bridge.d.ts +45 -0
  1170. package/form-utils/lib/description/description.d.ts +16 -0
  1171. package/form-utils/lib/focusable-group-base.d.ts +76 -0
  1172. package/form-utils/lib/form-control-base/signal-form-control-base.d.ts +159 -0
  1173. package/form-utils/lib/form-control-sides.d.ts +20 -0
  1174. package/form-utils/lib/form-control-wrapper/form-control-wrapper-control.d.ts +6 -0
  1175. package/form-utils/lib/form-control-wrapper/form-control-wrapper.d.ts +20 -0
  1176. package/form-utils/lib/form-field/form-field.d.ts +68 -0
  1177. package/form-utils/lib/hint/hint.d.ts +5 -0
  1178. package/form-utils/lib/label/label.d.ts +22 -0
  1179. package/form-utils/lib/message/message.d.ts +7 -0
  1180. package/form-utils/lib/models/error-display-strategy.d.ts +1 -0
  1181. package/form-utils/lib/models/form-control-connector.d.ts +41 -0
  1182. package/form-utils/lib/models/form-state.d.ts +1 -0
  1183. package/form-utils/lib/selection.service.d.ts +27 -0
  1184. package/form-utils/malva-ui-core-form-utils.d.ts +5 -0
  1185. package/form-utils/testing/index.d.ts +1 -0
  1186. package/form-utils/testing/lib/forms-binding-matrix.d.ts +47 -0
  1187. package/form-utils/testing/malva-ui-core-form-utils-testing.d.ts +5 -0
  1188. package/index.d.ts +69 -0
  1189. package/input/index.d.ts +3 -0
  1190. package/input/lib/input/input-native.d.ts +36 -0
  1191. package/input/lib/input/input-value-accessor.d.ts +11 -0
  1192. package/input/lib/input/input.d.ts +189 -0
  1193. package/input/lib/input/password-strength.d.ts +34 -0
  1194. package/input/malva-ui-core-input.d.ts +5 -0
  1195. package/kbd/index.d.ts +1 -0
  1196. package/kbd/lib/kbd/kbd.d.ts +52 -0
  1197. package/kbd/malva-ui-core-kbd.d.ts +5 -0
  1198. package/layout/index.d.ts +4 -0
  1199. package/layout/lib/layout/directives/MlvLayoutSide.d.ts +6 -0
  1200. package/layout/lib/layout/directives/MlvLayoutTop.d.ts +6 -0
  1201. package/layout/lib/layout/layout.d.ts +20 -0
  1202. package/layout/lib/layout/services/theme.service.d.ts +33 -0
  1203. package/layout/malva-ui-core-layout.d.ts +5 -0
  1204. package/link/index.d.ts +2 -0
  1205. package/link/lib/link/link.d.ts +15 -0
  1206. package/link/lib/link/link.directives.d.ts +10 -0
  1207. package/link/malva-ui-core-link.d.ts +5 -0
  1208. package/list/index.d.ts +13 -0
  1209. package/list/lib/list/list.d.ts +25 -0
  1210. package/list/lib/list-item/list-item.d.ts +67 -0
  1211. package/list/lib/list-item-actions.d.ts +12 -0
  1212. package/list/lib/list-item-byline.d.ts +5 -0
  1213. package/list/lib/list-item-group/list-item-group.d.ts +11 -0
  1214. package/list/lib/list-item-link/list-item-link.d.ts +8 -0
  1215. package/list/lib/list-item-media.d.ts +5 -0
  1216. package/list/lib/list-item-meta.d.ts +5 -0
  1217. package/list/lib/list-item-prefix.d.ts +5 -0
  1218. package/list/lib/list-item-suffix.d.ts +5 -0
  1219. package/list/lib/list-item-template.d.ts +10 -0
  1220. package/list/lib/list-item-title.d.ts +5 -0
  1221. package/list/lib/list-selectable.d.ts +73 -0
  1222. package/list/malva-ui-core-list.d.ts +5 -0
  1223. package/loader/index.d.ts +1 -0
  1224. package/loader/lib/loader/loader.d.ts +84 -0
  1225. package/loader/malva-ui-core-loader.d.ts +5 -0
  1226. package/malva-ui-core.d.ts +5 -0
  1227. package/menu/index.d.ts +9 -0
  1228. package/menu/lib/menu/menu-group-label.d.ts +22 -0
  1229. package/menu/lib/menu/menu-group.d.ts +27 -0
  1230. package/menu/lib/menu/menu-item.d.ts +76 -0
  1231. package/menu/lib/menu/menu-separator.d.ts +18 -0
  1232. package/menu/lib/menu/menu-trigger.d.ts +255 -0
  1233. package/menu/lib/menu/menu.d.ts +149 -0
  1234. package/menu/lib/menu/menu.types.d.ts +13 -0
  1235. package/menu/lib/menu/menubar.d.ts +131 -0
  1236. package/menu/lib/menu/menubar.types.d.ts +82 -0
  1237. package/menu/lib/menu/submenu-aim.d.ts +10 -0
  1238. package/menu/malva-ui-core-menu.d.ts +5 -0
  1239. package/notification/index.d.ts +4 -0
  1240. package/notification/lib/notification-item/notification-item.d.ts +20 -0
  1241. package/notification/lib/notification-ref.d.ts +12 -0
  1242. package/notification/lib/notification.service.d.ts +43 -0
  1243. package/notification/lib/notification.types.d.ts +52 -0
  1244. package/notification/malva-ui-core-notification.d.ts +5 -0
  1245. package/number-input/index.d.ts +1 -0
  1246. package/number-input/lib/number-input/number-input.d.ts +162 -0
  1247. package/number-input/malva-ui-core-number-input.d.ts +5 -0
  1248. package/package.json +315 -0
  1249. package/page/README.md +8 -0
  1250. package/page/index.d.ts +14 -0
  1251. package/page/lib/page/page-scroll.token.d.ts +19 -0
  1252. package/page/lib/page/page-snap-controller.d.ts +87 -0
  1253. package/page/lib/page/page-snap.directive.d.ts +40 -0
  1254. package/page/lib/page/page.d.ts +74 -0
  1255. package/page/lib/page-content/page-aside.d.ts +7 -0
  1256. package/page/lib/page-content/page-content.d.ts +37 -0
  1257. package/page/lib/page-dock/page-dock.d.ts +50 -0
  1258. package/page/lib/page-dock/page-dock.slots.d.ts +16 -0
  1259. package/page/lib/page-header/page-header.d.ts +77 -0
  1260. package/page/lib/page-header/page-header.directives.d.ts +50 -0
  1261. package/page/lib/page-shell/page-shell-color.d.ts +48 -0
  1262. package/page/lib/page-shell/page-shell-css-color.d.ts +20 -0
  1263. package/page/lib/page-shell/page-shell.d.ts +44 -0
  1264. package/page/lib/page-shell/page-shell.slots.d.ts +16 -0
  1265. package/page/lib/page-summary/page-summary-item.d.ts +11 -0
  1266. package/page/lib/page-summary/page-summary.d.ts +36 -0
  1267. package/page/malva-ui-core-page.d.ts +5 -0
  1268. package/pagination/index.d.ts +4 -0
  1269. package/pagination/lib/pagination/pagination.d.ts +182 -0
  1270. package/pagination/lib/pagination/pagination.directives.d.ts +44 -0
  1271. package/pagination/lib/pagination/pagination.model.d.ts +6 -0
  1272. package/pagination/lib/pagination/pagination.service.d.ts +26 -0
  1273. package/pagination/malva-ui-core-pagination.d.ts +5 -0
  1274. package/pin-input/index.d.ts +2 -0
  1275. package/pin-input/lib/pin-input/pin-input-separator.d.ts +24 -0
  1276. package/pin-input/lib/pin-input/pin-input.d.ts +176 -0
  1277. package/pin-input/malva-ui-core-pin-input.d.ts +5 -0
  1278. package/popup/index.d.ts +9 -0
  1279. package/popup/lib/popup/popup.d.ts +343 -0
  1280. package/popup/lib/popup-container/popup-container.d.ts +61 -0
  1281. package/popup/lib/popup-container/popup-container.token.d.ts +34 -0
  1282. package/popup/lib/popup-content.d.ts +6 -0
  1283. package/popup/lib/popup-header-content.d.ts +18 -0
  1284. package/popup/lib/popup-pinned-content.d.ts +17 -0
  1285. package/popup/lib/popup-positions.d.ts +105 -0
  1286. package/popup/lib/popup-trigger/popup-trigger.d.ts +102 -0
  1287. package/popup/lib/popup.service.d.ts +159 -0
  1288. package/popup/malva-ui-core-popup.d.ts +5 -0
  1289. package/progress/index.d.ts +1 -0
  1290. package/progress/lib/progress/progress.d.ts +69 -0
  1291. package/progress/malva-ui-core-progress.d.ts +5 -0
  1292. package/radio/index.d.ts +2 -0
  1293. package/radio/lib/radio/radio.d.ts +87 -0
  1294. package/radio/lib/radio-group/radio-group.d.ts +35 -0
  1295. package/radio/lib/radio-group-token.d.ts +7 -0
  1296. package/radio/malva-ui-core-radio.d.ts +5 -0
  1297. package/rating/index.d.ts +1 -0
  1298. package/rating/lib/rating/rating.d.ts +100 -0
  1299. package/rating/malva-ui-core-rating.d.ts +5 -0
  1300. package/schematics/collection.json +12 -0
  1301. package/schematics/ng-add/index.cjs +272 -0
  1302. package/schematics/ng-add/schema.json +92 -0
  1303. package/scrollbar/index.d.ts +1 -0
  1304. package/scrollbar/lib/scrollbar/scrollbar.d.ts +166 -0
  1305. package/scrollbar/malva-ui-core-scrollbar.d.ts +5 -0
  1306. package/search-field/README.md +32 -0
  1307. package/search-field/index.d.ts +2 -0
  1308. package/search-field/lib/search-field/search-field.d.ts +347 -0
  1309. package/search-field/lib/search-field/search-overlay-content.d.ts +59 -0
  1310. package/search-field/malva-ui-core-search-field.d.ts +5 -0
  1311. package/segmented/index.d.ts +4 -0
  1312. package/segmented/lib/segmented/segmented.d.ts +80 -0
  1313. package/segmented/lib/segmented-item/segmented-item.d.ts +89 -0
  1314. package/segmented/lib/segmented-token.d.ts +22 -0
  1315. package/segmented/lib/segmented.types.d.ts +9 -0
  1316. package/segmented/malva-ui-core-segmented.d.ts +5 -0
  1317. package/select/index.d.ts +3 -0
  1318. package/select/lib/select/select.d.ts +379 -0
  1319. package/select/lib/select-option.d.ts +1 -0
  1320. package/select/lib/select-template.directives.d.ts +14 -0
  1321. package/select/malva-ui-core-select.d.ts +5 -0
  1322. package/sidebar/index.d.ts +15 -0
  1323. package/sidebar/lib/sidebar/sidebar.d.ts +134 -0
  1324. package/sidebar/lib/sidebar-content.d.ts +11 -0
  1325. package/sidebar/lib/sidebar-context.d.ts +23 -0
  1326. package/sidebar/lib/sidebar-footer.d.ts +9 -0
  1327. package/sidebar/lib/sidebar-group/sidebar-group.d.ts +127 -0
  1328. package/sidebar/lib/sidebar-header.d.ts +9 -0
  1329. package/sidebar/lib/sidebar-item/sidebar-item.d.ts +104 -0
  1330. package/sidebar/lib/sidebar-item-host.d.ts +18 -0
  1331. package/sidebar/lib/sidebar-item-icon.d.ts +6 -0
  1332. package/sidebar/lib/sidebar-mode.d.ts +2 -0
  1333. package/sidebar/lib/sidebar-rail/sidebar-rail.d.ts +54 -0
  1334. package/sidebar/lib/sidebar-trigger/sidebar-trigger.d.ts +67 -0
  1335. package/sidebar/lib/sidebar-workspace/sidebar-workspace.d.ts +54 -0
  1336. package/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.d.ts +19 -0
  1337. package/sidebar/lib/sidebar-workspace/sidebar-workspace.types.d.ts +20 -0
  1338. package/sidebar/malva-ui-core-sidebar.d.ts +5 -0
  1339. package/skeleton/index.d.ts +1 -0
  1340. package/skeleton/lib/skeleton/skeleton.d.ts +60 -0
  1341. package/skeleton/malva-ui-core-skeleton.d.ts +5 -0
  1342. package/slider/index.d.ts +2 -0
  1343. package/slider/lib/slider/slider-tooltip-def.d.ts +39 -0
  1344. package/slider/lib/slider/slider.d.ts +171 -0
  1345. package/slider/malva-ui-core-slider.d.ts +5 -0
  1346. package/split-pane/index.d.ts +3 -0
  1347. package/split-pane/lib/split-pane/split-pane-panel.d.ts +34 -0
  1348. package/split-pane/lib/split-pane/split-pane.d.ts +98 -0
  1349. package/split-pane/lib/split-pane/split-pane.types.d.ts +7 -0
  1350. package/split-pane/malva-ui-core-split-pane.d.ts +5 -0
  1351. package/status-indicator/index.d.ts +1 -0
  1352. package/status-indicator/lib/status-indicator/status-indicator.d.ts +61 -0
  1353. package/status-indicator/malva-ui-core-status-indicator.d.ts +5 -0
  1354. package/stepper/index.d.ts +4 -0
  1355. package/stepper/lib/stepper/step-header.d.ts +34 -0
  1356. package/stepper/lib/stepper/step.d.ts +51 -0
  1357. package/stepper/lib/stepper/stepper-token.d.ts +13 -0
  1358. package/stepper/lib/stepper/stepper.d.ts +98 -0
  1359. package/stepper/lib/stepper/stepper.types.d.ts +4 -0
  1360. package/stepper/malva-ui-core-stepper.d.ts +5 -0
  1361. package/styles/malva-ui.css +1706 -0
  1362. package/styles/tokens.md +698 -0
  1363. package/switch/index.d.ts +2 -0
  1364. package/switch/lib/switch/switch.d.ts +118 -0
  1365. package/switch/lib/switch-group/switch-group.d.ts +24 -0
  1366. package/switch/lib/switch-group-token.d.ts +6 -0
  1367. package/switch/malva-ui-core-switch.d.ts +5 -0
  1368. package/tabs/index.d.ts +8 -0
  1369. package/tabs/lib/tab/tab.d.ts +46 -0
  1370. package/tabs/lib/tab-content/tab-content.d.ts +11 -0
  1371. package/tabs/lib/tab-content-def.d.ts +6 -0
  1372. package/tabs/lib/tab-def.d.ts +11 -0
  1373. package/tabs/lib/tab-group-token.d.ts +10 -0
  1374. package/tabs/lib/tab-item/tab-item.d.ts +28 -0
  1375. package/tabs/lib/tabs/tabs.d.ts +202 -0
  1376. package/tabs/lib/tabs.service.d.ts +24 -0
  1377. package/tabs/malva-ui-core-tabs.d.ts +5 -0
  1378. package/textarea/index.d.ts +1 -0
  1379. package/textarea/lib/textarea/textarea.d.ts +77 -0
  1380. package/textarea/malva-ui-core-textarea.d.ts +5 -0
  1381. package/tile/index.d.ts +2 -0
  1382. package/tile/lib/tile/tile.d.ts +20 -0
  1383. package/tile/lib/tile-header.d.ts +6 -0
  1384. package/tile/malva-ui-core-tile.d.ts +5 -0
  1385. package/time-picker/README.md +7 -0
  1386. package/time-picker/index.d.ts +1 -0
  1387. package/time-picker/lib/time-picker/time-picker.d.ts +135 -0
  1388. package/time-picker/lib/time-picker-column/time-picker-column.d.ts +111 -0
  1389. package/time-picker/malva-ui-core-time-picker.d.ts +5 -0
  1390. package/timeline/index.d.ts +5 -0
  1391. package/timeline/lib/timeline/timeline-item-icon.d.ts +24 -0
  1392. package/timeline/lib/timeline/timeline-item-meta.d.ts +24 -0
  1393. package/timeline/lib/timeline/timeline-item.d.ts +52 -0
  1394. package/timeline/lib/timeline/timeline.d.ts +27 -0
  1395. package/timeline/lib/timeline/timeline.types.d.ts +18 -0
  1396. package/timeline/malva-ui-core-timeline.d.ts +5 -0
  1397. package/title/index.d.ts +1 -0
  1398. package/title/lib/title/title.d.ts +63 -0
  1399. package/title/malva-ui-core-title.d.ts +5 -0
  1400. package/toast/index.d.ts +10 -0
  1401. package/toast/lib/abstract-toast-container.d.ts +29 -0
  1402. package/toast/lib/abstract-toast-item.d.ts +44 -0
  1403. package/toast/lib/abstract-toast.service.d.ts +75 -0
  1404. package/toast/lib/toast-container/toast-container.d.ts +23 -0
  1405. package/toast/lib/toast-item/toast-item.d.ts +25 -0
  1406. package/toast/lib/toast-ref.d.ts +33 -0
  1407. package/toast/lib/toast-timer.d.ts +24 -0
  1408. package/toast/lib/toast.directives.d.ts +13 -0
  1409. package/toast/lib/toast.service.d.ts +41 -0
  1410. package/toast/lib/toast.types.d.ts +139 -0
  1411. package/toast/malva-ui-core-toast.d.ts +5 -0
  1412. package/tokenizer/index.d.ts +3 -0
  1413. package/tokenizer/lib/token/token.d.ts +60 -0
  1414. package/tokenizer/lib/token-template.d.ts +29 -0
  1415. package/tokenizer/lib/tokenizer/tokenizer.d.ts +109 -0
  1416. package/tokenizer/malva-ui-core-tokenizer.d.ts +5 -0
  1417. package/toolbar/index.d.ts +3 -0
  1418. package/toolbar/lib/toolbar/toolbar-spacer.d.ts +5 -0
  1419. package/toolbar/lib/toolbar/toolbar-widget.d.ts +75 -0
  1420. package/toolbar/lib/toolbar/toolbar.d.ts +8 -0
  1421. package/toolbar/malva-ui-core-toolbar.d.ts +5 -0
  1422. package/tooltip/README.md +7 -0
  1423. package/tooltip/index.d.ts +3 -0
  1424. package/tooltip/lib/tooltip/tooltip-panel.d.ts +26 -0
  1425. package/tooltip/lib/tooltip/tooltip.d.ts +148 -0
  1426. package/tooltip/lib/tooltip/tooltip.types.d.ts +17 -0
  1427. package/tooltip/malva-ui-core-tooltip.d.ts +5 -0
  1428. package/tree/index.d.ts +4 -0
  1429. package/tree/lib/tree/tree-context.d.ts +62 -0
  1430. package/tree/lib/tree/tree-node-def.d.ts +33 -0
  1431. package/tree/lib/tree/tree-node.d.ts +45 -0
  1432. package/tree/lib/tree/tree-subtree.d.ts +63 -0
  1433. package/tree/lib/tree/tree.d.ts +156 -0
  1434. package/tree/malva-ui-core-tree.d.ts +5 -0
@@ -0,0 +1,852 @@
1
+ # Library: dialog
2
+
3
+ ## Overview
4
+
5
+ `@malva-ui/core/dialog` has one engine and one vocabulary. Every dialog is the
6
+ same markup — a `<mlv-dialog>` surface with `mlv-dialog-header` /
7
+ `mlv-dialog-body` / `mlv-dialog-footer` parts and `[mlvDialogClose]` buttons —
8
+ whether it was opened from a template, a component, a string, `confirm()`, or a
9
+ route. **The thing that opens the dialog owns the options; the content owns the
10
+ chrome**, so no path ever draws a header for another and the double-header class
11
+ of bug cannot exist. The engine is Angular CDK `Dialog` (`@angular/cdk/dialog`):
12
+ overlay, container, focus trap/restore, `aria-*`, `closeAll()`,
13
+ `closeOnNavigation`, template context and DI; Malva adds the enter/leave
14
+ animation, granular Escape/backdrop opt-outs, `initialFocus: 'auto'`, size
15
+ presets, the surface and parts, `confirm()`, and routable dialogs.
16
+
17
+ Three ways to open one:
18
+
19
+ 1. **Declarative** — `<ng-template [(mlvDialog)]="open" [mlvDialogOptions]="…">` (`MlvDialogTemplate`) wraps the surface. Lazy: the template is instantiated only while open.
20
+ 2. **Imperative** — `MlvDialogService.open(content, config)` with a plain string, a `TemplateRef`, or a component type, returning a typed `MlvDialogRef<R, D>`.
21
+ 3. **Route-driven** — `mlvGenerateRoutableDialogRoute()` creates a route that opens its component in a dialog; closing navigates back to the parent route.
22
+
23
+ Plus `MlvDialogService.confirm(options)` — a two-action confirmation that emits
24
+ one `boolean` and completes.
25
+
26
+ Migration from the previous API: [docs/migrations/2026-08-dialog-composition.md](../../docs/migrations/2026-08-dialog-composition.md).
27
+
28
+ ---
29
+
30
+ ## Public API
31
+
32
+ Exported from `@malva-ui/core/dialog`:
33
+
34
+ | Export | Kind | Description |
35
+ | ---------------------------------- | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
36
+ | `MlvDialog` | Component | The dialog surface — `mlv-dialog`. Root of every dialog's content. |
37
+ | `MlvDialogHeader` | Component | Header row (title + close button) — `mlv-dialog-header, [mlvDialogHeader]`. |
38
+ | `MlvDialogBody` | Component | Scrollable body backed by `mlv-scrollbar` — `mlv-dialog-body, [mlvDialogBody]`. |
39
+ | `MlvDialogFooter` | Component | Action row — `mlv-dialog-footer, [mlvDialogFooter]`. |
40
+ | `MlvDialogFooterAlign` | Type alias | `'start' \| 'end' \| 'center' \| 'between'`. |
41
+ | `MlvDialogClose` | Directive | Closes the enclosing dialog on click, with an optional result — `[mlvDialogClose]`. |
42
+ | `MlvDialogTemplate` | Directive | Declarative two-way sugar over the service — `ng-template[mlvDialog]`, `exportAs: 'mlvDialog'`. |
43
+ | `MlvDialogService` | Service (`providedIn: 'root'`) | `open()` / `confirm()` / `closeAll()` / `openDialogs`. |
44
+ | `MlvDialogRef<R, D>` | Class | Handle for one open dialog: close, results, config, animation state. |
45
+ | `MlvDialogAnimationState` | Type alias | `'enter' \| 'idle' \| 'leave'`. |
46
+ | `MlvDialogConfig<D>` | Interface | Per-open configuration, shared by `open()` and `mlvDialogOptions`. |
47
+ | `MlvDialogContent<R, D>` | Type alias | `string \| TemplateRef<MlvDialogTemplateContext<R, D>> \| Type<unknown>`. |
48
+ | `MlvDialogTemplateContext<R, D>` | Interface | `$implicit`, `ref`, `data`, `config` exposed to `TemplateRef` content. |
49
+ | `MlvDialogSize` | Type alias | `MlvDialogSizePreset \| (string & {}) \| MlvDialogSizeConfig`. |
50
+ | `MlvDialogSizePreset` | Type alias | `'s' \| 'm' \| 'l' \| 'fullscreen'`. |
51
+ | `MlvDialogSizeConfig` | Interface | Explicit `width`/`height`/`min*`/`max*` dimensions. |
52
+ | `MlvDialogSizePresets` | Type alias | `Record<string, MlvDialogSizeConfig>`. |
53
+ | `MlvDialogAppearance` | Type alias | `'default' \| 'confirm'`. |
54
+ | `MlvDialogRole` | Type alias | `'dialog' \| 'alertdialog'`. |
55
+ | `DIALOG_DATA` | `InjectionToken<unknown>` | Angular CDK's `DIALOG_DATA`, re-exported under the same name. Same token identity, so either import injects `data`. |
56
+ | `DIALOG_CONFIG` | `InjectionToken<Readonly<MlvDialogConfig>>` | The consumer's config for the current dialog, injectable by content and parts. |
57
+ | `DIALOG_SIZE_PRESETS` | `InjectionToken<MlvDialogSizePresets>` | Registered size presets; override to change or add presets app-wide. |
58
+ | `MlvConfirmDialogOptions` | Interface | Options for `MlvDialogService.confirm()`. |
59
+ | `mlvGenerateRoutableDialogRoute()` | Function | Builds a `Route` that opens a component inside a dialog when activated. |
60
+
61
+ Deliberately **not** exported (implementation details): `MlvDialogContainer`,
62
+ `MlvDialogTextContent` + `MLV_DIALOG_TEXT`, `MlvConfirmDialog` +
63
+ `MLV_CONFIRM_DIALOG_CONFIRM_CLASS` / `MLV_CONFIRM_DIALOG_CANCEL_CLASS`,
64
+ `injectDialogRef()`, `MlvRoutableDialog`.
65
+
66
+ ---
67
+
68
+ ## Components
69
+
70
+ ### `MlvDialog`
71
+
72
+ · **Styles:** `dialog.scss`
73
+
74
+ - **Selector:** `mlv-dialog` · **Template:** `<ng-content />`
75
+ - `ViewEncapsulation.None`, `ChangeDetectionStrategy.OnPush`
76
+ - Host classes: `mlv-dialog`, plus `mlv-dialog--confirm` (when `DIALOG_CONFIG.appearance === 'confirm'`), `mlv-dialog--enter` / `mlv-dialog--leave` mirrored from `MlvDialogRef.animationState()`.
77
+
78
+ No inputs and no outputs — everything it needs comes from `MlvDialogRef` and
79
+ `DIALOG_CONFIG`. Consumer `class="…"` lands on this element (it is the visible
80
+ surface); `MlvDialogConfig.panelClass` styles the overlay pane around it.
81
+
82
+ The surface owns the animation handshake. Its `(animationend)` handler is
83
+ target-guarded (`event.target === host`, so a descendant's animation is
84
+ ignored) and calls `MlvDialogRef._onSurfaceAnimationEnd()`: the enter animation
85
+ settles the state to `'idle'`, the leave animation disposes the CDK dialog. The
86
+ CDK container carries no animation class and no listener.
87
+
88
+ Rendered outside a dialog it throws a descriptive error (via the internal
89
+ `injectDialogRef()` helper) naming the selector and the two ways to open one
90
+ (`MlvDialogService.open()`, `<ng-template [(mlvDialog)]>`).
91
+
92
+ ### `MlvDialogHeader`
93
+
94
+ - **Selector:** `mlv-dialog-header, [mlvDialogHeader]` (element, or attribute on the consumer's own container)
95
+ - Host class: `mlv-dialog__header`; host binding `[attr.title]="null"` strips the static `title` attribute so `<mlv-dialog-header title="…">` feeds the input without leaving a browser tooltip on the row.
96
+
97
+ It is a **container**, never applied to a heading — project the heading inside
98
+ it instead: `<mlv-dialog-header><h3>Edit user</h3></mlv-dialog-header>`.
99
+
100
+ #### Inputs
101
+
102
+ | Name | Type | Default | Description |
103
+ | ---------- | ---------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------ |
104
+ | `title` | `string \| undefined` | `undefined` | Plain-text title rendered as `<h2 class="mlv-dialog__title">`. |
105
+ | `closable` | `boolean \| undefined` | `undefined` | Whether the X is rendered. `BooleanInput`-coerced; `undefined` (unset) defers to the config. Always off for `appearance: 'confirm'`. |
106
+
107
+ #### Title and close-button resolution
108
+
109
+ - **Title:** `title` input → projected content → `MlvDialogConfig.title`. With a `title` input the element is an `<h2>`; otherwise it is a `<div class="mlv-dialog__title">` wrapping the projection, whose `<ng-content>` fallback is a plain `<h2>` (no class) carrying `config.title`. A projected heading of any level is styled as _the_ title, so pick the level for the document outline.
110
+ - **Close button:** `closable` input → `MlvDialogConfig.closable` → `true`; forced `false` when `MlvDialogConfig.appearance` is `'confirm'`.
111
+ - **Markup of the X:** `<mlv-button-close class="mlv-dialog__close" mlvDensity="compact" shape="circle" variant="secondary" [ariaLabel]="i18n.closeDialog" (click)="ref.close()" />`. The native `click` is bound on the wrapper because it already hosts a real `<button>` — `[mlvClick]` would add a second tab stop.
112
+
113
+ #### Labelling
114
+
115
+ The title element carries `id="<MlvDialogRef.id>-title-<n>"` — the counter is
116
+ per header instance (`mlvNextId`), so two headers in one dialog never share an
117
+ id — and registers itself as
118
+ the dialog's label through `MlvDialogRef._labelBy()`, so the visible title
119
+ becomes the accessible name. **The label follows the rendered title.** The
120
+ header re-takes the decision after every render (`afterEveryRender`), diffing
121
+ against what it registered last: the id goes in as soon as the title element
122
+ has text — so a title that only arrives asynchronously (`[title]="user()?.name"`,
123
+ a projected heading fed by a resolver) still names the dialog — and is taken out
124
+ again with `_unlabelBy()` when the title loses its text. A header that renders
125
+ no text at all — no `title` input, no projected content, no `config.title`, e.g.
126
+ a header that only hosts the X — registers nothing, because labelling the dialog
127
+ with an empty element produces an empty accessible name (an axe
128
+ `aria-dialog-name` violation). On destroy a live registration is reversed.
129
+ When several headers register (e.g. two `mlv-dialog-header`s in one dialog),
130
+ the CDK container uses the first id in its queue as `aria-labelledby`; names
131
+ do not concatenate.
132
+
133
+ ### `MlvDialogBody`
134
+
135
+ - **Selector:** `mlv-dialog-body, [mlvDialogBody]` · Host class: `mlv-dialog__body`
136
+ - Template: `<mlv-scrollbar class="mlv-dialog__body-scrollbar"><ng-content /></mlv-scrollbar>`
137
+
138
+ No inputs or outputs. The padding sits on the scrollbar's **viewport**, inside
139
+ the clip box, so focus rings on body controls are never clipped; the scrollbar's
140
+ content element is an explicit `display: flex; flex-direction: column` so body
141
+ children stack and may `flex: 1` (never inherit `flex-direction` through the
142
+ scrollbar — the viewport's initial value is `row`).
143
+
144
+ ### `MlvDialogFooter`
145
+
146
+ - **Selector:** `mlv-dialog-footer, [mlvDialogFooter]` · Host classes: `mlv-dialog__footer` + `mlv-dialog__footer--align-<align>`
147
+ - A wrapping flex row of actions. Replaces the old bare footer class, its trailing-actions helper, and the toolbar + spacer boilerplate.
148
+
149
+ #### Inputs
150
+
151
+ | Name | Type | Default | Description |
152
+ | ------- | ---------------------- | ------- | ------------------------------------------------------------------- |
153
+ | `align` | `MlvDialogFooterAlign` | `'end'` | Where the actions sit: `'start'`, `'end'`, `'center'`, `'between'`. |
154
+
155
+ ### `MlvDialogContainer` (internal — not exported)
156
+
157
+ · **Styles:** `dialog-container.scss`
158
+
159
+ `extends CdkDialogContainer`; selector `mlv-dialog-container`, template
160
+ `<ng-template cdkPortalOutlet />`. The service passes it as
161
+ `DialogConfig.container`, so it is the CDK's container for every Malva dialog
162
+ and never instantiated by consumers.
163
+
164
+ - Host: `class="mlv-dialog-container"`, `tabindex="-1"`, `[attr.id]`, `[attr.role]`, `[attr.aria-modal]`, `[attr.aria-labelledby]` (suppressed when `ariaLabel` is set), `[attr.aria-label]`, `[attr.aria-describedby]` — restated from the CDK base so the contract sits next to the styles that depend on it.
165
+ - `changeDetection: ChangeDetectionStrategy.Eager` — a **documented exception** to the repo's OnPush rule, matching `CdkDialogContainer` / `MatDialogContainer`. This view is the change-detection parent of arbitrary consumer content (the portal outlet's `ViewContainerRef` lives in it), so an OnPush, non-dirty container would skip refreshing zone-driven content.
166
+ - `_captureInitialFocus()` override: the CDK first focuses the container (`autoFocus: 'dialog'`, which emits `_focusTrapped` so the CDK aria-hides the rest of the page), then — from `afterNextRender`, guarded against a destroyed view — `MlvOverlayInitialFocusResolver` moves focus to the resolved `initialFocus` target.
167
+
168
+ Its stylesheet is selected as `mlv-dialog-container.mlv-dialog-container`
169
+ (element **and** class): Ivy merges the inherited `cdk-dialog-container`
170
+ attribute onto the host, and the CDK's own `.cdk-dialog-container { display: block }`
171
+ has equal specificity to a bare class selector.
172
+
173
+ ### `MlvDialogTextContent` / `MlvConfirmDialog` / `MlvRoutableDialog` (internal — not exported)
174
+
175
+ - `dialog-text-content.ts` — renders string content: `<mlv-dialog>` + `<mlv-dialog-header />` (only when the config has a `title`, or a close button would show) + `<mlv-dialog-body><p class="mlv-dialog__text">`. The string arrives through the internal `MLV_DIALOG_TEXT` token and is interpolated, never `innerHTML`.
176
+ - `confirm-dialog.ts` — the `confirm()` content: `<mlv-dialog>` + titled `<mlv-dialog-header>` + message body + `<mlv-dialog-footer>` with cancel/confirm buttons. Reads its options from `MlvDialogRef.data`, so it never imports the service.
177
+ - `routable-dialog.ts` — the invisible shell `mlvGenerateRoutableDialogRoute()` lazy-loads; it opens the routed component with the shell's injector and navigates back to the parent route when the dialog closes.
178
+
179
+ ---
180
+
181
+ ## Directives
182
+
183
+ ### `MlvDialogClose`
184
+
185
+ · **Selector:** `[mlvDialogClose]`
186
+
187
+ Closes the enclosing dialog when the host is clicked, optionally with a result.
188
+ Injects `MlvDialogRef` (required — throws outside a dialog).
189
+
190
+ Put it on a `<button>` (or an `<a href>`): the directive listens to `click` only
191
+ and adds no keyboard handling of its own.
192
+
193
+ #### Inputs
194
+
195
+ | Name | Type | Default | Description |
196
+ | ---------------- | ---------------- | ----------- | ------------------------------------------------------------------------------------------------------------- |
197
+ | `mlvDialogClose` | `R \| undefined` | `undefined` | Result passed to `MlvDialogRef.close()`. A bare attribute (`''`) means `undefined`. |
198
+ | `type` | `string` | `'button'` | Bound to `[attr.type]` **only when the host is a `<button>`** (`null` otherwise), so it never submits a form. |
199
+
200
+ ```html
201
+ <button mlvButton mlvDialogClose>Cancel</button>
202
+ <!-- closes with undefined -->
203
+ <button mlvButton mlvDialogClose="saved">Save</button>
204
+ <!-- closes with 'saved' -->
205
+ <button mlvButton [mlvDialogClose]="form.value">Save</button>
206
+ ```
207
+
208
+ ### `MlvDialogTemplate`
209
+
210
+ **Selector:** `ng-template[mlvDialog]` · **`exportAs`:** `mlvDialog`
211
+
212
+ Declarative sugar over `MlvDialogService.open(templateRef, options)`. The
213
+ template is instantiated only while open and receives the same context as
214
+ `open(templateRef)` (`let-dialog`, `let-data="data"`, `let-config="config"`).
215
+
216
+ #### Model
217
+
218
+ | Name | Type | Default | Description |
219
+ | ----------- | --------- | ------- | --------------------------------------------------------------------- |
220
+ | `mlvDialog` | `boolean` | `false` | Whether the dialog is open. Two-way bindable: `[(mlvDialog)]="open"`. |
221
+
222
+ #### Inputs
223
+
224
+ | Name | Type | Default | Description |
225
+ | ------------------ | --------------------------------- | ----------- | ---------------------------------------------------------------------------------------- |
226
+ | `mlvDialogOptions` | `MlvDialogConfig<D> \| undefined` | `undefined` | Options handed to `open()`. Read at open time; later changes apply to the **next** open. |
227
+
228
+ #### Outputs
229
+
230
+ | Name | Type | Description |
231
+ | ----------------- | ---------------- | ------------------------------------------------------------------ |
232
+ | `mlvDialogChange` | `boolean` | The model's change output — emitted whenever the open state flips. |
233
+ | `mlvDialogOpened` | `void` | Emitted right after the dialog has been opened. |
234
+ | `mlvDialogClosed` | `R \| undefined` | Emitted with the close result once the dialog is disposed. |
235
+
236
+ #### Methods
237
+
238
+ | Method | Signature | Description |
239
+ | ------------------------ | -------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
240
+ | `open` | `open(): void` | Sets the model to `true`. |
241
+ | `close` | `close(): void` | Sets the model to `false`. |
242
+ | `ngTemplateContextGuard` | `static ngTemplateContextGuard<R, D>(dir, ctx): ctx is MlvDialogTemplateContext<R, D>` | Types `let-dialog` / `let-data` / `let-config` in the template. |
243
+
244
+ #### Properties
245
+
246
+ | Property | Type | Description |
247
+ | -------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
248
+ | `ref` | `MlvDialogRef<R, D> \| null` | The ref of the open dialog (held until the leave animation completes), or `null`. Dropped immediately when the host is destroyed, so it never hands out a disposed handle. |
249
+
250
+ #### Open / close behaviour
251
+
252
+ Closing from inside — `[mlvDialogClose]`, Escape, the backdrop, `dialog.close()`
253
+ — flips the model back to `false` and emits `mlvDialogClosed`. Two caveats:
254
+
255
+ - **Re-open while leaving is deferred, not dropped.** Setting the model back to `true` during the leave animation is remembered; once the old instance is disposed — after its `mlvDialogClosed` has fired — a fresh dialog opens and the model stays `true`. The one case that does not work is re-opening from **inside** an `(mlvDialogClosed)` handler: that handler runs before the model settles, so the write is overwritten. Re-open from a later tick instead.
256
+ - **Nothing is emitted after the host is destroyed.** Destroying the host closes an open dialog, but the outputs and the model are not touched afterwards — the `afterClosed()` subscription is torn down with the host (`takeUntilDestroyed`).
257
+ - **`afterClosed()` is subscribed before `mlvDialogOpened` emits**, so an `(mlvDialogOpened)` handler that synchronously closes the dialog still clears `ref` and flips the model back to `false`.
258
+
259
+ ---
260
+
261
+ ## Services
262
+
263
+ ### `MlvDialogService`
264
+
265
+ · **Provided in:** `root`
266
+
267
+ Thin orchestration over CDK `Dialog`: the CDK owns overlay, container, focus
268
+ trap/restore, ARIA and history handling; the service maps `MlvDialogConfig`,
269
+ constructs the `MlvDialogRef`, plays the leave animation, and applies the
270
+ granular Escape/backdrop opt-outs. It **never renders chrome**.
271
+
272
+ #### Methods
273
+
274
+ | Method | Signature | Description |
275
+ | ---------- | ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------- |
276
+ | `open` | `open<R = unknown, D = unknown>(content: MlvDialogContent<R, D>, config?: MlvDialogConfig<D>): MlvDialogRef<R, D>` | Opens a string, `TemplateRef`, or component type in a modal dialog. |
277
+ | `confirm` | `confirm(options: MlvConfirmDialogOptions): Observable<boolean>` | Opens a two-action confirmation; emits once, completes, and replays. |
278
+ | `closeAll` | `closeAll(): void` | Closes every open dialog, newest first, playing each leave animation. |
279
+
280
+ #### Properties
281
+
282
+ | Property | Type | Description |
283
+ | ------------- | ------------------------- | -------------------------------------------------------------- |
284
+ | `openDialogs` | `readonly MlvDialogRef[]` | Snapshot (a copy) of the currently open dialogs, oldest first. |
285
+
286
+ #### CDK mapping
287
+
288
+ `open()` translates `MlvDialogConfig` into the CDK `DialogConfig`:
289
+
290
+ | `MlvDialogConfig` | CDK `DialogConfig` |
291
+ | ---------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
292
+ | `size` (preset name or `MlvDialogSizeConfig`) | `width`/`height`/`minWidth`/`minHeight`/`maxWidth`/`maxHeight` resolved through `DIALOG_SIZE_PRESETS` (an unknown name falls back to `'m'`), each run through `coerceCssPixelValue`. |
293
+ | `panelClass` | `['mlv-dialog-pane', …('mlv-dialog-pane--fullscreen' when the size is the `fullscreen` preset name), ...panelClass]` |
294
+ | `backdropClass` | `['mlv-dialog-backdrop', ...backdropClass]` |
295
+ | `hasBackdrop` (default `true`) | `hasBackdrop` |
296
+ | `closeOnBackdrop` / `closeOnEscape` (default `true`) | `disableClose: true` **always**; the service subscribes to `cdkRef.backdropClick` / `cdkRef.keydownEvents` (Escape without modifiers) itself, so each can be opted out separately and the leave animation still plays. |
297
+ | `initialFocus` (default `'auto'`) | `autoFocus: 'dialog'` — the CDK focuses the container, then `MlvDialogContainer` applies the Malva strategy. |
298
+ | `restoreFocus` (default `true`) | `restoreFocus` |
299
+ | `role` (default `'dialog'`) | `role` |
300
+ | `ariaLabel` / `ariaLabelledBy` / `ariaDescribedBy` | passthrough (`null` when unset). For string content with no `title`, `ariaLabel` defaults to the text itself. |
301
+ | `closeOnNavigation` (default `true`) | `closeOnNavigation` |
302
+ | `data`, `injector`, `id` | passthrough (`viewContainerRef` is not exposed) |
303
+ | `title`, `closable`, `appearance` | not CDK — handed to the content through `DIALOG_CONFIG` and read by `mlv-dialog` / `mlv-dialog-header`. |
304
+ | — | `container: MlvDialogContainer` (+ `DIALOG_CONFIG` provider); `templateContext: { $implicit: ref, ref, data, config }`; `providers: (cdkRef) => [MlvDialogRef, DIALOG_CONFIG, (string content: MLV_DIALOG_TEXT)]` |
305
+
306
+ The config object is frozen by copy at open time, so later mutation of the
307
+ caller's object never changes a live dialog. Content can inject `MlvDialogRef`,
308
+ `DIALOG_CONFIG`, `DIALOG_DATA`, and the CDK's own `DialogRef`.
309
+
310
+ #### String content
311
+
312
+ Rendered by the internal `MlvDialogTextContent`, which composes the same public
313
+ parts. Its header is rendered only when it would carry something: a
314
+ `config.title`, or a close button (`closable !== false` and the appearance is
315
+ not `'confirm'`). Titleless string content names the dialog with the text.
316
+
317
+ #### Confirmation behaviour
318
+
319
+ `confirm()` opens the internal `MlvConfirmDialog` with `appearance: 'confirm'`
320
+ (borderless chrome, X forced off) and `size: 's'` unless overridden. It passes
321
+ no `title` — the component binds `options.title` on its own header. Every
322
+ dismissal that is not the confirm button — Escape, the backdrop, `ref.close()`
323
+ — resolves as `false`.
324
+
325
+ - **Description.** The service generates `ariaDescribedBy: mlvNextId('mlv-confirm-message')` and the component reads it back from `DIALOG_CONFIG` to `[id]` its message paragraph, so the container is described by the text the user has to act on. `MlvConfirmDialogOptions` never carries the id, and the component falls back to its own `mlvNextId('mlv-confirm-message')` if it is ever constructed without one.
326
+ - **Destructive.** `destructive: true` or `tone: 'danger'` opens the dialog with `role: 'alertdialog'`, turns the confirm button `error`-coloured, and puts initial focus on **Cancel**, so a reflexive Enter dismisses rather than destroys.
327
+ - **Tone → variant.** An exhaustive `Record<MlvTone, MlvButtonVariant>`: `danger` → `error`, `warning` → `warning`, `info` → `info`, `success` → `primary` (no dedicated variant). No tone at all is `'primary'`.
328
+ - **Labels** default to `MLV_DIALOG_I18N` (`confirm`, `cancel`) and are `computed()` over the i18n signal, so they follow a language change.
329
+ - **The answer is replayed.** The returned observable is `shareReplay({ bufferSize: 1, refCount: false })` over `afterClosed()`, connected while the dialog is still open (the CDK's `closed` subject is hot and emits once), so a subscriber that arrives after the dialog closed still receives the answer.
330
+
331
+ ---
332
+
333
+ ## Classes
334
+
335
+ ### `MlvDialogRef<R, D>`
336
+
337
+ Composition wrapper around the CDK `DialogRef` (the CDK constructs its own ref,
338
+ so it cannot be subclassed). It no longer extends `MlvOverlayRef`. Consumers
339
+ never construct it — it arrives from `open()`, from DI, or in the template
340
+ context.
341
+
342
+ #### Properties
343
+
344
+ | Property | Type | Description |
345
+ | ---------------- | --------------------------------- | ------------------------------------------------------------------------ |
346
+ | `data` | `D` | Payload from `MlvDialogConfig.data`. |
347
+ | `config` | `Readonly<MlvDialogConfig<D>>` | The configuration this dialog was opened with. |
348
+ | `id` | `string` | Id of the container element (CDK-generated unless `config.id` was set). |
349
+ | `animationState` | `Signal<MlvDialogAnimationState>` | `'enter'` → `'idle'` → `'leave'`; drives the surface's modifier classes. |
350
+
351
+ #### Methods
352
+
353
+ | Method | Signature | Description |
354
+ | ------------------ | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
355
+ | `close` | `close(result?: R): void` | Idempotent. Emits `beforeClose()`, plays the leave animation, then disposes with `result`. |
356
+ | `afterClosed` | `afterClosed(): Observable<R \| undefined>` | Emits the result once the dialog is disposed (i.e. after the animation), then completes. |
357
+ | `beforeClose` | `beforeClose(): Observable<void>` | Emits and completes synchronously at the start of `close()`, before the leave animation. |
358
+ | `keydownEvents` | `keydownEvents(): Observable<KeyboardEvent>` | Keydowns the CDK routes to **this** dialog — only while it is the topmost keydown target. |
359
+ | `backdropClick` | `backdropClick(): Observable<MouseEvent>` | Clicks on this dialog's backdrop. |
360
+ | `updateSize` | `updateSize(width?: string \| number, height?: string \| number): this` | CDK passthrough — resizes the overlay pane. |
361
+ | `addPanelClass` | `addPanelClass(classes: string \| string[]): this` | CDK passthrough — adds class(es) to the overlay pane. |
362
+ | `removePanelClass` | `removePanelClass(classes: string \| string[]): this` | CDK passthrough — removes class(es) from the overlay pane. |
363
+
364
+ #### Leave handshake
365
+
366
+ `close()` marks the backdrop `mlv-dialog-backdrop--leaving`, flips
367
+ `animationState` to `'leave'` (so `<mlv-dialog>` gets `--leave`), and arms a
368
+ **250 ms** fallback timer. Whichever comes first — the surface's `animationend`
369
+ or the timer — disposes the CDK dialog and emits on `afterClosed()`. The
370
+ fallback is what covers reduced motion, hidden tabs, jsdom, and content whose
371
+ root is not `<mlv-dialog>`.
372
+
373
+ The CDK can also close on its own (history navigation with
374
+ `closeOnNavigation`, overlay detachment, the CDK's own `closeAll()`). The ref
375
+ subscribes to `cdkRef.closed` and marks itself disposed, so a later `close()`
376
+ and a late `animationend` from the torn-down surface are both no-ops.
377
+
378
+ #### Internal members
379
+
380
+ `_onSurfaceAnimationEnd()` (called by the surface), `_labelBy(id)` /
381
+ `_unlabelBy(id)` (called by `mlv-dialog-header`, forwarding to the CDK
382
+ container's `_addAriaLabelledBy` / `_removeAriaLabelledBy`). Not part of the
383
+ public contract.
384
+
385
+ ---
386
+
387
+ ## Interfaces & Types
388
+
389
+ ### `MlvDialogConfig<D>`
390
+
391
+ The single configuration object, used by `MlvDialogService.open()`,
392
+ `mlvDialogOptions`, and `mlvGenerateRoutableDialogRoute()`.
393
+
394
+ | Field | Type | Default | Description |
395
+ | ------------------- | ------------------------ | ------------- | -------------------------------------------------------------------------------------------- |
396
+ | `size` | `MlvDialogSize` | `'m'` | Preset name or explicit dimensions. |
397
+ | `appearance` | `MlvDialogAppearance` | `'default'` | `'confirm'` drops the header/footer borders and hides the close button. |
398
+ | `title` | `string` | `undefined` | Plain-text title: string content, the `mlv-dialog-header` fallback, and the accessible name. |
399
+ | `closable` | `boolean` | `true` | Default for `mlv-dialog-header`'s close button. |
400
+ | `panelClass` | `string \| string[]` | `undefined` | Extra class(es) on the overlay pane (`.mlv-dialog-pane`). |
401
+ | `backdropClass` | `string \| string[]` | `undefined` | Extra class(es) on the backdrop (`.mlv-dialog-backdrop`). |
402
+ | `hasBackdrop` | `boolean` | `true` | Whether a backdrop is rendered. |
403
+ | `closeOnBackdrop` | `boolean` | `true` | Whether a backdrop click closes the dialog. |
404
+ | `closeOnEscape` | `boolean` | `true` | Whether Escape closes the dialog. |
405
+ | `closeOnNavigation` | `boolean` | `true` | Whether browser history navigation closes the dialog. |
406
+ | `initialFocus` | `MlvOverlayInitialFocus` | `'auto'` | Where focus lands once open — see [libs-overlay.md](libs-overlay.md). |
407
+ | `restoreFocus` | `boolean` | `true` | Whether focus returns to the previously focused element on close. |
408
+ | `role` | `MlvDialogRole` | `'dialog'` | ARIA role of the container. |
409
+ | `ariaLabel` | `string` | `undefined` | Accessible name when no visible title labels the dialog. |
410
+ | `ariaLabelledBy` | `string` | `undefined` | Id of a labelling element. Wins over `ariaLabel` and the header title. |
411
+ | `ariaDescribedBy` | `string` | `undefined` | Id of a describing element. |
412
+ | `data` | `D` | `undefined` | Payload for `MlvDialogRef.data`, `DIALOG_DATA`, and the template context's `data`. |
413
+ | `injector` | `Injector` | root injector | Parent injector for the content. |
414
+ | `id` | `string` | CDK-generated | Id of the dialog container. |
415
+
416
+ ### `MlvDialogTemplateContext<R, D>`
417
+
418
+ ```ts
419
+ interface MlvDialogTemplateContext<R = unknown, D = unknown> {
420
+ $implicit: MlvDialogRef<R, D>; // let-dialog
421
+ ref: MlvDialogRef<R, D>; // let-dialog="ref" — the same handle
422
+ data: D; // let-data="data"
423
+ config: Readonly<MlvDialogConfig<D>>; // let-config="config"
424
+ }
425
+ ```
426
+
427
+ ### `MlvDialogContent<R, D>`
428
+
429
+ ```ts
430
+ type MlvDialogContent<R = unknown, D = unknown> = string | TemplateRef<MlvDialogTemplateContext<R, D>> | Type<unknown>;
431
+ ```
432
+
433
+ Strings are rendered as escaped text, never as trusted HTML.
434
+
435
+ ### Size types
436
+
437
+ ```ts
438
+ type MlvDialogSizePreset = 's' | 'm' | 'l' | 'fullscreen';
439
+ type MlvDialogSize = MlvDialogSizePreset | (string & {}) | MlvDialogSizeConfig;
440
+ type MlvDialogSizePresets = Record<string, MlvDialogSizeConfig>;
441
+
442
+ interface MlvDialogSizeConfig {
443
+ width?: string | number;
444
+ height?: string | number;
445
+ minWidth?: string | number;
446
+ minHeight?: string | number;
447
+ maxWidth?: string | number;
448
+ maxHeight?: string | number;
449
+ }
450
+ ```
451
+
452
+ Built-in presets (`DIALOG_SIZE_PRESETS`):
453
+
454
+ | Preset | `width` | `height` | `maxWidth` | `maxHeight` | Notes |
455
+ | ------------ | ------- | -------- | ---------- | ----------- | ---------------------------------------------------- |
456
+ | `s` | `400px` | — | `90vw` | `90vh` | |
457
+ | `m` | `560px` | — | `90vw` | `90vh` | Default; also the fallback for an unregistered name. |
458
+ | `l` | `800px` | — | `90vw` | `90vh` | |
459
+ | `fullscreen` | `100vw` | `100vh` | `100vw` | `100vh` | Also adds `mlv-dialog-pane--fullscreen` to the pane. |
460
+
461
+ ### Remaining unions
462
+
463
+ ```ts
464
+ type MlvDialogAppearance = 'default' | 'confirm';
465
+ type MlvDialogRole = 'dialog' | 'alertdialog';
466
+ type MlvDialogFooterAlign = 'start' | 'end' | 'center' | 'between';
467
+ type MlvDialogAnimationState = 'enter' | 'idle' | 'leave';
468
+ ```
469
+
470
+ ### `MlvConfirmDialogOptions`
471
+
472
+ .
473
+ `title` and `message` are required; `confirmLabel`, `cancelLabel`,
474
+ `tone` (`MlvTone`), `destructive`, `size` (`MlvDialogSize`, same hint union as
475
+ `MlvDialogConfig.size`), `closeOnBackdrop`, `closeOnEscape` and `injector` are
476
+ optional. Kept in its own file so the barrel can export the
477
+ shape without the internal component that consumes it.
478
+
479
+ ---
480
+
481
+ ## Injection Tokens
482
+
483
+ ### `DIALOG_DATA`
484
+
485
+ `InjectionToken<unknown>` — **Angular CDK's `DIALOG_DATA`, re-exported under the
486
+ same name** (`export const DIALOG_DATA: InjectionToken<unknown> = CDK_DIALOG_DATA`).
487
+ The identity is CDK's, so content injecting either import receives the same
488
+ `config.data`.
489
+
490
+ ```ts
491
+ readonly data = inject(DIALOG_DATA) as MyDataType;
492
+ ```
493
+
494
+ ### `DIALOG_CONFIG`
495
+
496
+ `InjectionToken<Readonly<MlvDialogConfig>>` — the consumer's config for the
497
+ current dialog. Provided both on the container (so `MlvDialogContainer` can read
498
+ `initialFocus`) and on the content injector. `mlv-dialog` reads `appearance`
499
+ from it and `mlv-dialog-header` reads `title` / `closable` / `appearance`.
500
+ Template content gets the same object as `let-config="config"`.
501
+
502
+ ### `DIALOG_SIZE_PRESETS`
503
+
504
+ `InjectionToken<MlvDialogSizePresets>`, `providedIn: 'root'` with the four
505
+ built-ins as its factory. Override it to change or add presets app-wide:
506
+
507
+ ```ts
508
+ {
509
+ provide: DIALOG_SIZE_PRESETS,
510
+ useValue: {
511
+ s: { width: '360px', maxHeight: '80vh', maxWidth: '90vw' },
512
+ m: { width: '560px', maxHeight: '90vh', maxWidth: '90vw' },
513
+ l: { width: '860px', maxHeight: '90vh', maxWidth: '90vw' },
514
+ fullscreen: { width: '100vw', height: '100vh', maxWidth: '100vw', maxHeight: '100vh' },
515
+ wide: { width: '1100px', maxHeight: '90vh', maxWidth: '95vw' },
516
+ } satisfies MlvDialogSizePresets,
517
+ }
518
+ ```
519
+
520
+ `mlv-dialog-pane--fullscreen` is stamped when the preset **name** is
521
+ `fullscreen` — an override that redefines or removes that preset still gets the
522
+ borderless, radius-less surface for that name; explicit `MlvDialogSizeConfig`
523
+ objects never get it.
524
+
525
+ ---
526
+
527
+ ## Styles
528
+
529
+ `ViewEncapsulation.None` throughout, so every class selector is global.
530
+
531
+ ### DOM tree
532
+
533
+ ```
534
+ .cdk-overlay-pane.mlv-dialog-pane[.mlv-dialog-pane--fullscreen] ← sized by the CDK from `size`
535
+ mlv-dialog-container.mlv-dialog-container[role][aria-*] ← focus trap + ARIA (dialog-container.scss)
536
+ (component host element, for component content) ← flex pass-through
537
+ mlv-dialog.mlv-dialog ← the visible surface (dialog.scss)
538
+ .mlv-dialog__header → .mlv-dialog__title / mlv-button-close.mlv-dialog__close
539
+ .mlv-dialog__body → .mlv-dialog__body-scrollbar (mlv-scrollbar)
540
+ .mlv-dialog__footer
541
+ .cdk-overlay-backdrop.mlv-dialog-backdrop[.mlv-dialog-backdrop--leaving]
542
+ ```
543
+
544
+ ### BEM
545
+
546
+ | Class | Role | Description |
547
+ | ------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------ |
548
+ | `.mlv-dialog` | Block | The surface: flex column, elevation background, border, modal shadow, clipped overflow, `md+` radius + height cap. |
549
+ | `.mlv-dialog--confirm` | Modifier | Removes the header/footer borders. |
550
+ | `.mlv-dialog--enter` | Modifier | Runs the `dialog-enter` keyframes. |
551
+ | `.mlv-dialog--leave` | Modifier | Runs the `dialog-leave` keyframes. |
552
+ | `.mlv-dialog__header` | Element | Title/close row: flex, `space-between`, `spacing-3` gap and padding, bottom border. |
553
+ | `.mlv-dialog__title` | Element | Title box; owns `margin: 0` explicitly, and normalises a projected `h1`–`h6` to `font: inherit; margin: 0`. |
554
+ | `.mlv-dialog__close` | Element | The X wrapper, `flex: none`. |
555
+ | `.mlv-dialog__body` | Element | Flexible clipped body host. |
556
+ | `.mlv-dialog__body-scrollbar` | Element | The `mlv-scrollbar` that owns body scrolling; its viewport carries the padding, its content is a flex column. |
557
+ | `.mlv-dialog__text` | Element | String-content paragraph: preserved newlines, safe long-word wrapping. |
558
+ | `.mlv-dialog__footer` | Element | Wrapping flex action row, `spacing-2` gap, `spacing-3` padding, top border, end-aligned. |
559
+ | `.mlv-dialog__footer--align-*` | Modifier | `start` / `center` / `between` (`end` is the base rule). |
560
+ | `.mlv-dialog-pane` | Block | Overlay pane (`dialog-container.scss`): `display: flex; max-inline-size: 100vw`. |
561
+ | `.mlv-dialog-pane--fullscreen` | Modifier | Drops the surface's `md+` radius, border and `calc(100dvh - 2rem)` cap so `size: 'fullscreen'` is edge-to-edge. |
562
+ | `.mlv-dialog-container` | Block | CDK container host: flex column, fills the pane, `outline: 0`; a non-`.mlv-dialog` child gets a flex pass-through. |
563
+ | `.mlv-dialog-backdrop` | Block | Backdrop. |
564
+ | `.mlv-dialog-backdrop--leaving` | Modifier | Fades opacity and blur back to zero. |
565
+
566
+ - **Keyframes** `dialog-enter` / `dialog-leave` and the `--enter` / `--leave` rules live in *(internal)*, gated behind `prefers-reduced-motion` there. Durations/easings are overridable through `--mlv-dialog-enter-*` / `--mlv-dialog-leave-*`.
567
+ - **Backdrop split:** the base look (`background`, `opacity`, `backdrop-filter`, transitions) is in *(internal)* under `@layer mlv.components`, because the backdrop is DOM the CDK creates and no component stylesheet owns it. The `@starting-style` entry and the `--leaving` state live in `dialog-container.scss`, which every dialog loads.
568
+
569
+ ---
570
+
571
+ ## Usage examples
572
+
573
+ ### Declarative
574
+
575
+ ```html
576
+ <button mlvButton (click)="open.set(true)">Open dialog</button>
577
+
578
+ <ng-template [(mlvDialog)]="open" (mlvDialogClosed)="onClosed($event)">
579
+ <mlv-dialog>
580
+ <mlv-dialog-header title="Dialog title" />
581
+ <mlv-dialog-body>
582
+ <p>Body content.</p>
583
+ </mlv-dialog-body>
584
+ <mlv-dialog-footer>
585
+ <button mlvButton variant="secondary" mlvDialogClose>Cancel</button>
586
+ <button mlvButton mlvDialogClose="confirmed">Confirm</button>
587
+ </mlv-dialog-footer>
588
+ </mlv-dialog>
589
+ </ng-template>
590
+ ```
591
+
592
+ ```ts
593
+ readonly open = signal(false);
594
+
595
+ /** `undefined` means dismissed (Escape, backdrop, or the X). */
596
+ onClosed(result: unknown): void {
597
+ this.lastResult.set(typeof result === 'string' ? result : 'dismissed');
598
+ }
599
+ ```
600
+
601
+ ### Confirm appearance (borderless, projected heading)
602
+
603
+ ```html
604
+ <ng-template [(mlvDialog)]="open" [mlvDialogOptions]="{ size: 's', appearance: 'confirm' }">
605
+ <mlv-dialog>
606
+ <mlv-dialog-header><h4>Delete item?</h4></mlv-dialog-header>
607
+ <mlv-dialog-body><p>This action cannot be undone.</p></mlv-dialog-body>
608
+ <mlv-dialog-footer align="between">
609
+ <button mlvButton variant="secondary" mlvDialogClose>Cancel</button>
610
+ <button mlvButton variant="error" mlvDialogClose="deleted">Delete</button>
611
+ </mlv-dialog-footer>
612
+ </mlv-dialog>
613
+ </ng-template>
614
+ ```
615
+
616
+ ### Programmatic — string, template, component
617
+
618
+ ```ts
619
+ private readonly dialogs = inject(MlvDialogService);
620
+
621
+ openString(): void {
622
+ this.dialogs.open('Your workspace settings have been saved.', {
623
+ size: 's',
624
+ title: 'Settings saved',
625
+ });
626
+ }
627
+
628
+ openTemplate(tpl: TemplateRef<MlvDialogTemplateContext<string, ProjectData>>): void {
629
+ this.dialogs
630
+ .open<string, ProjectData>(tpl, { title: 'Website redesign', data: { owner: 'Mina Park' } })
631
+ .afterClosed()
632
+ .subscribe((result) => {
633
+ /* string | undefined */
634
+ });
635
+ }
636
+
637
+ openComponent(): void {
638
+ this.dialogs.open<string, ProjectData>(ProjectDialogContent, {
639
+ title: 'Mobile app launch',
640
+ data: { owner: 'Alex Chen' },
641
+ });
642
+ }
643
+ ```
644
+
645
+ ```html
646
+ <!-- The template IS the content: it renders the surface itself. -->
647
+ <ng-template #tpl let-dialog let-data="data">
648
+ <mlv-dialog>
649
+ <mlv-dialog-header />
650
+ <!-- no title input, no projection → falls back to config.title -->
651
+ <mlv-dialog-body>
652
+ <p>Owner: {{ data.owner }}</p>
653
+ </mlv-dialog-body>
654
+ <mlv-dialog-footer>
655
+ <button mlvButton variant="secondary" (click)="dialog.close()">Dismiss</button>
656
+ <button mlvButton (click)="dialog.close('reviewed')">Mark reviewed</button>
657
+ </mlv-dialog-footer>
658
+ </mlv-dialog>
659
+ </ng-template>
660
+ ```
661
+
662
+ Component content follows the same rule — its template root is `<mlv-dialog>`,
663
+ and it injects what it needs:
664
+
665
+ ```ts
666
+ @Component({
667
+ imports: [MlvButton, MlvDialog, MlvDialogHeader, MlvDialogBody, MlvDialogFooter, MlvDialogClose],
668
+ template: `
669
+ <mlv-dialog>
670
+ <mlv-dialog-header />
671
+ <mlv-dialog-body>
672
+ <mlv-input [formControl]="name" />
673
+ </mlv-dialog-body>
674
+ <mlv-dialog-footer>
675
+ <button mlvButton variant="secondary" mlvDialogClose>Cancel</button>
676
+ <button mlvButton [mlvDialogClose]="name.value">Save</button>
677
+ </mlv-dialog-footer>
678
+ </mlv-dialog>
679
+ `,
680
+ })
681
+ export class EditNameDialog {
682
+ readonly data = inject(DIALOG_DATA) as EditData;
683
+ readonly config = inject(DIALOG_CONFIG);
684
+ private readonly ref = inject<MlvDialogRef<string, EditData>>(MlvDialogRef);
685
+ readonly name = new FormControl(this.data.initialName);
686
+ }
687
+ ```
688
+
689
+ ### `confirm()`
690
+
691
+ ```ts
692
+ this.dialogs
693
+ .confirm({
694
+ title: 'Delete project?',
695
+ message: 'The project and all of its tasks are removed.',
696
+ confirmLabel: 'Delete project',
697
+ destructive: true,
698
+ })
699
+ .subscribe((confirmed) => {
700
+ if (confirmed) this.deleteProject();
701
+ });
702
+ ```
703
+
704
+ ### Route-driven
705
+
706
+ ```ts
707
+ export default [
708
+ {
709
+ path: 'users',
710
+ component: UsersListPage,
711
+ children: [
712
+ mlvGenerateRoutableDialogRoute(() => import('./user-edit'), { path: ':id/edit', size: 'l' }),
713
+ {
714
+ ...mlvGenerateRoutableDialogRoute(() => import('./confirm'), { path: 'confirm', size: 's' }),
715
+ canActivate: [authGuard],
716
+ resolve: { item: itemResolver },
717
+ },
718
+ ],
719
+ },
720
+ ] satisfies Routes;
721
+ ```
722
+
723
+ The routed component renders the surface like any other component content and
724
+ can inject `ActivatedRoute` (the shell forwards its injector) plus
725
+ `MlvDialogRef`:
726
+
727
+ ```ts
728
+ @Component({
729
+ imports: [MlvButton, MlvDialog, MlvDialogHeader, MlvDialogBody, MlvDialogFooter, MlvDialogClose],
730
+ template: `
731
+ <mlv-dialog>
732
+ <mlv-dialog-header title="Edit user" />
733
+ <mlv-dialog-body>…</mlv-dialog-body>
734
+ <mlv-dialog-footer><button mlvButton mlvDialogClose="saved">Save</button></mlv-dialog-footer>
735
+ </mlv-dialog>
736
+ `,
737
+ })
738
+ export default class UserEditDialog {
739
+ readonly route = inject(ActivatedRoute);
740
+ }
741
+ ```
742
+
743
+ ---
744
+
745
+ ## Accessibility
746
+
747
+ - **Accessible name**, in order: `config.ariaLabelledBy` → `config.ariaLabel` (suppresses `aria-labelledby` entirely) → the `mlv-dialog-header` title id → the text of string content. A header without a rendered title registers nothing, so the dialog is never named by an empty element. A surface with no header title, no `config.title`, and no `ariaLabel`/`ariaLabelledBy` leaves the dialog **unnamed** (an axe `aria-dialog-name` violation) — always give a dialog one of them. The header registers/removes its title id as the dialog label whenever the rendered title gains/loses text (async titles are picked up); the id is unique per header instance.
748
+ - **Role:** `config.role`, `'dialog'` by default; `'alertdialog'` for interruptions that need an immediate answer — `confirm()` picks it automatically for a destructive/`'danger'` confirmation. Applied to `mlv-dialog-container`, not to the surface.
749
+ - **`aria-modal="false"`** on the container is CDK parity and deliberate: with `aria-modal="true"` assistive tech treats every node outside the container as inert, which would swallow select/menu popups the CDK renders as siblings of the dialog. The CDK `aria-hidden`s the rest of the page instead, which achieves modality without that side effect.
750
+ - **Focus in:** the CDK focuses the container first (so the page is hidden from AT), then `initialFocus` is applied. `'auto'` prefers a projected `[mlvAutofocus]`, then the first tabbable element that is **not** the close button or the body's scroll viewport, then the container.
751
+ - **Focus out:** `restoreFocus` (default `true`) returns focus to the element that was focused before the dialog opened.
752
+ - **Escape / backdrop:** both close by default and are independently opt-out-able (`closeOnEscape`, `closeOnBackdrop`); Escape with a modifier key is ignored. Either way the leave animation plays before disposal.
753
+ - **Keyboard:** focus is trapped by the CDK container; `[mlvDialogClose]` on a `<button>` inherits native Enter/Space activation.
754
+ - **Motion:** the enter/leave keyframes are gated behind `prefers-reduced-motion`, and the ref's 250 ms fallback timer guarantees disposal when no `animationend` ever arrives.
755
+
756
+ ### Stacked dialogs and popups
757
+
758
+ Escape closes **one layer at a time**, and nothing here has to be coded for it.
759
+ The CDK's `OverlayKeyboardDispatcher` listens once on `body` and walks the
760
+ attached overlays from the top down, delivering the keydown to the **first**
761
+ overlay that has keydown observers and then stopping. Every CDK `DialogRef`
762
+ subscribes to its own overlay's keydowns, so a dialog opened on top of another
763
+ one is that first overlay: Escape reaches only the topmost dialog, and the one
764
+ below it stays open. The same rule covers popups — a `mlv-select`,
765
+ `mlv-combobox` or `mlv-menu` panel opened from inside a dialog is an overlay
766
+ above it, so Escape dismisses the popup and leaves the dialog open. The
767
+ "keydown observers" half of the rule matters just as much: an overlay without
768
+ keydown observers (e.g. the tooltip, which handles Escape on its trigger's host
769
+ instead) is transparent to Escape — the dialog below still receives it.
770
+
771
+ Because the topmost layer wins, `openDialogs` unwinds from its end: Escape,
772
+ then Escape again, closes newest-first — the same order `closeAll()` uses.
773
+
774
+ To gate a close (unsaved changes, a confirmation step), opt the automatic
775
+ behaviour out and drive it yourself from the ref's own streams — they emit only
776
+ when this dialog is the layer that received the event:
777
+
778
+ ```ts
779
+ private readonly destroyRef = inject(DestroyRef);
780
+ private confirming = false;
781
+
782
+ // …in the method that opens the dialog — `takeUntilDestroyed()` is outside an
783
+ // injection context here, so it needs the DestroyRef passed explicitly.
784
+ const ref = this.dialogs.open(EditForm, { closeOnEscape: false, closeOnBackdrop: false });
785
+
786
+ // Two subscriptions rather than one merged stream: only the keydown one can
787
+ // `preventDefault()`.
788
+ ref
789
+ .keydownEvents()
790
+ .pipe(
791
+ filter((event) => event.key === 'Escape' && !hasModifierKey(event)),
792
+ takeUntil(ref.beforeClose()),
793
+ takeUntilDestroyed(this.destroyRef),
794
+ )
795
+ .subscribe((event) => {
796
+ event.preventDefault();
797
+ this.attemptClose(ref);
798
+ });
799
+
800
+ ref
801
+ .backdropClick()
802
+ .pipe(takeUntil(ref.beforeClose()), takeUntilDestroyed(this.destroyRef))
803
+ .subscribe(() => this.attemptClose(ref));
804
+
805
+ private attemptClose(ref: MlvDialogRef): void {
806
+ if (this.confirming) return;
807
+ if (this.form.pristine) return ref.close();
808
+
809
+ this.confirming = true;
810
+ this.dialogs
811
+ .confirm({ title: 'Discard changes?', message: 'Your edits are lost.' })
812
+ .pipe(takeUntilDestroyed(this.destroyRef))
813
+ .subscribe((yes) => {
814
+ this.confirming = false;
815
+ if (yes) ref.close();
816
+ });
817
+ }
818
+ ```
819
+
820
+ `beforeClose()` emits synchronously when `close()` starts, so the guard disarms
821
+ before the leave animation — without it the subscriptions outlive the close by
822
+ one `animationend` (or the 250 ms fallback) and an Escape in that window opens
823
+ an orphan confirmation. The `confirming` flag covers the other re-entry: a
824
+ second exit attempt while the confirmation is already up.
825
+
826
+ ---
827
+
828
+ ## Testing
829
+
830
+ | Spec | Tests | Covers |
831
+ | --------------------------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
832
+
833
+ The routable dialog has no lib spec — it is covered by docs example 6 on
834
+ `/dialog` and by the docs build.
835
+
836
+ ---
837
+
838
+ ## Dependencies
839
+
840
+ | Package | Usage |
841
+ | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
842
+ | `@angular/cdk/dialog` | `Dialog` (engine), `DialogRef`, `DialogConfig`, `CdkDialogContainer` (base of `MlvDialogContainer`), `DIALOG_DATA`. |
843
+ | `@angular/cdk/portal` | `CdkPortalOutlet` in the container template, `ComponentType` in the service signature. |
844
+ | `@angular/cdk/coercion` | `coerceBooleanProperty` (`closable`), `coerceArray` (panel/backdrop classes), `coerceCssPixelValue` (sizes). |
845
+ | `@angular/cdk/keycodes` | `hasModifierKey` — Escape with a modifier does not close. |
846
+ | `@angular/router` | `Router`, `ActivatedRoute` in the routable-dialog shell. |
847
+ | `@malva-ui/cdk/overlay` | `MlvOverlayInitialFocusResolver`, `MlvOverlayInitialFocus` — the shared `initialFocus` strategy. Nothing else; the dialog no longer extends the overlay bases. |
848
+ | `@malva-ui/cdk/utils` | `MlvTone` in `MlvConfirmDialogOptions` and the confirm tone→variant record; `mlvNextId` for the header title id and the confirm message id. |
849
+ | `@malva-ui/core/button` | `MlvButtonClose` (the header X) and `MlvButton` (confirm actions). |
850
+ | `@malva-ui/core/scrollbar` | `MlvScrollbar` — the body's scroll viewport. |
851
+ | `@malva-ui/i18n` | `MLV_DIALOG_I18N` — `closeDialog`, `confirm`, `cancel`. |
852
+ | `rxjs` | `Subject`/`Observable` behind `beforeClose()`, `map`/`filter`/`shareReplay` in the service. |