@malva-ui/core 0.1.12 → 0.1.14

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 (1619) hide show
  1. package/AGENTS.md +4 -1
  2. package/LICENSE +21 -0
  3. package/README.md +69 -3
  4. package/docs/ai/avatar.md +2 -0
  5. package/docs/ai/breadcrumb.md +67 -7
  6. package/docs/ai/button.md +74 -19
  7. package/docs/ai/card.md +8 -6
  8. package/docs/ai/chat.md +59 -45
  9. package/docs/ai/checkbox.md +12 -0
  10. package/docs/ai/combobox.md +18 -2
  11. package/docs/ai/copy-to-clipboard.md +1 -1
  12. package/docs/ai/core.md +15 -0
  13. package/docs/ai/data-table.md +89 -54
  14. package/docs/ai/dialog.md +76 -67
  15. package/docs/ai/drawer.md +15 -12
  16. package/docs/ai/dropdown.md +24 -19
  17. package/docs/ai/empty-state.md +3 -3
  18. package/docs/ai/filter.md +24 -5
  19. package/docs/ai/form-utils.md +160 -5
  20. package/docs/ai/icon-toggle.md +160 -0
  21. package/docs/ai/input.md +30 -0
  22. package/docs/ai/layout.md +23 -0
  23. package/docs/ai/list.md +10 -6
  24. package/docs/ai/menu.md +75 -1
  25. package/docs/ai/page.md +220 -60
  26. package/docs/ai/radio.md +9 -0
  27. package/docs/ai/scrollbar.md +30 -8
  28. package/docs/ai/segmented.md +35 -35
  29. package/docs/ai/select.md +30 -5
  30. package/docs/ai/sidebar.md +45 -27
  31. package/docs/ai/switch.md +114 -19
  32. package/docs/ai/table.md +69 -0
  33. package/docs/ai/tabs.md +2 -1
  34. package/docs/ai/tile.md +311 -85
  35. package/docs/ai/timeline.md +63 -39
  36. package/docs/ai/tokenizer.md +21 -5
  37. package/docs/ai/tooltip.md +5 -5
  38. package/docs/ai/view-variant.md +75 -0
  39. package/fesm2022/malva-ui-core-accordion.mjs +167 -0
  40. package/fesm2022/malva-ui-core-accordion.mjs.map +1 -0
  41. package/fesm2022/malva-ui-core-action-bar.mjs +111 -0
  42. package/fesm2022/malva-ui-core-action-bar.mjs.map +1 -0
  43. package/fesm2022/malva-ui-core-alert.mjs +173 -0
  44. package/fesm2022/malva-ui-core-alert.mjs.map +1 -0
  45. package/fesm2022/malva-ui-core-autocomplete.mjs +775 -0
  46. package/fesm2022/malva-ui-core-autocomplete.mjs.map +1 -0
  47. package/fesm2022/malva-ui-core-avatar-group.mjs +224 -0
  48. package/fesm2022/malva-ui-core-avatar-group.mjs.map +1 -0
  49. package/fesm2022/malva-ui-core-avatar.mjs +247 -0
  50. package/fesm2022/malva-ui-core-avatar.mjs.map +1 -0
  51. package/fesm2022/malva-ui-core-badge.mjs +122 -0
  52. package/fesm2022/malva-ui-core-badge.mjs.map +1 -0
  53. package/fesm2022/malva-ui-core-bottom-nav.mjs +161 -0
  54. package/fesm2022/malva-ui-core-bottom-nav.mjs.map +1 -0
  55. package/fesm2022/malva-ui-core-breadcrumb.mjs +494 -0
  56. package/fesm2022/malva-ui-core-breadcrumb.mjs.map +1 -0
  57. package/fesm2022/malva-ui-core-button.mjs +406 -0
  58. package/fesm2022/malva-ui-core-button.mjs.map +1 -0
  59. package/fesm2022/malva-ui-core-calendar.mjs +938 -0
  60. package/fesm2022/malva-ui-core-calendar.mjs.map +1 -0
  61. package/fesm2022/malva-ui-core-card.mjs +164 -0
  62. package/fesm2022/malva-ui-core-card.mjs.map +1 -0
  63. package/fesm2022/malva-ui-core-chat.mjs +825 -0
  64. package/fesm2022/malva-ui-core-chat.mjs.map +1 -0
  65. package/fesm2022/malva-ui-core-checkbox.mjs +272 -0
  66. package/fesm2022/malva-ui-core-checkbox.mjs.map +1 -0
  67. package/fesm2022/malva-ui-core-chip.mjs +176 -0
  68. package/fesm2022/malva-ui-core-chip.mjs.map +1 -0
  69. package/fesm2022/malva-ui-core-color-picker.mjs +1204 -0
  70. package/fesm2022/malva-ui-core-color-picker.mjs.map +1 -0
  71. package/fesm2022/malva-ui-core-combobox.mjs +945 -0
  72. package/fesm2022/malva-ui-core-combobox.mjs.map +1 -0
  73. package/fesm2022/malva-ui-core-copy-to-clipboard.mjs +255 -0
  74. package/fesm2022/malva-ui-core-copy-to-clipboard.mjs.map +1 -0
  75. package/fesm2022/malva-ui-core-data-table.mjs +2696 -0
  76. package/fesm2022/malva-ui-core-data-table.mjs.map +1 -0
  77. package/fesm2022/malva-ui-core-date-range-picker.mjs +276 -0
  78. package/fesm2022/malva-ui-core-date-range-picker.mjs.map +1 -0
  79. package/fesm2022/malva-ui-core-day-picker.mjs +131 -0
  80. package/fesm2022/malva-ui-core-day-picker.mjs.map +1 -0
  81. package/fesm2022/malva-ui-core-dialog-routable-dialog-CvjXMtlD.mjs +94 -0
  82. package/fesm2022/malva-ui-core-dialog-routable-dialog-CvjXMtlD.mjs.map +1 -0
  83. package/fesm2022/malva-ui-core-dialog.mjs +1223 -0
  84. package/fesm2022/malva-ui-core-dialog.mjs.map +1 -0
  85. package/fesm2022/malva-ui-core-divider.mjs +80 -0
  86. package/fesm2022/malva-ui-core-divider.mjs.map +1 -0
  87. package/fesm2022/malva-ui-core-drawer-routable-drawer-qUk6Etnx.mjs +94 -0
  88. package/fesm2022/malva-ui-core-drawer-routable-drawer-qUk6Etnx.mjs.map +1 -0
  89. package/fesm2022/malva-ui-core-drawer.mjs +814 -0
  90. package/fesm2022/malva-ui-core-drawer.mjs.map +1 -0
  91. package/fesm2022/malva-ui-core-dropdown.mjs +994 -0
  92. package/fesm2022/malva-ui-core-dropdown.mjs.map +1 -0
  93. package/fesm2022/malva-ui-core-empty-state.mjs +50 -0
  94. package/fesm2022/malva-ui-core-empty-state.mjs.map +1 -0
  95. package/fesm2022/malva-ui-core-expand.mjs +130 -0
  96. package/fesm2022/malva-ui-core-expand.mjs.map +1 -0
  97. package/fesm2022/malva-ui-core-file-upload.mjs +451 -0
  98. package/fesm2022/malva-ui-core-file-upload.mjs.map +1 -0
  99. package/fesm2022/malva-ui-core-filter.mjs +1627 -0
  100. package/fesm2022/malva-ui-core-filter.mjs.map +1 -0
  101. package/fesm2022/malva-ui-core-form-utils-testing.mjs +39 -0
  102. package/fesm2022/malva-ui-core-form-utils-testing.mjs.map +1 -0
  103. package/fesm2022/malva-ui-core-form-utils.mjs +977 -0
  104. package/fesm2022/malva-ui-core-form-utils.mjs.map +1 -0
  105. package/fesm2022/malva-ui-core-form.mjs +283 -0
  106. package/fesm2022/malva-ui-core-form.mjs.map +1 -0
  107. package/fesm2022/malva-ui-core-icon-toggle.mjs +120 -0
  108. package/fesm2022/malva-ui-core-icon-toggle.mjs.map +1 -0
  109. package/fesm2022/malva-ui-core-input.mjs +375 -0
  110. package/fesm2022/malva-ui-core-input.mjs.map +1 -0
  111. package/fesm2022/malva-ui-core-kbd.mjs +131 -0
  112. package/fesm2022/malva-ui-core-kbd.mjs.map +1 -0
  113. package/fesm2022/malva-ui-core-layout.mjs +212 -0
  114. package/fesm2022/malva-ui-core-layout.mjs.map +1 -0
  115. package/fesm2022/malva-ui-core-link.mjs +89 -0
  116. package/fesm2022/malva-ui-core-link.mjs.map +1 -0
  117. package/fesm2022/malva-ui-core-list.mjs +413 -0
  118. package/fesm2022/malva-ui-core-list.mjs.map +1 -0
  119. package/fesm2022/malva-ui-core-loader.mjs +141 -0
  120. package/fesm2022/malva-ui-core-loader.mjs.map +1 -0
  121. package/fesm2022/malva-ui-core-menu.mjs +2540 -0
  122. package/fesm2022/malva-ui-core-menu.mjs.map +1 -0
  123. package/fesm2022/malva-ui-core-notification.mjs +201 -0
  124. package/fesm2022/malva-ui-core-notification.mjs.map +1 -0
  125. package/fesm2022/malva-ui-core-number-input.mjs +404 -0
  126. package/fesm2022/malva-ui-core-number-input.mjs.map +1 -0
  127. package/fesm2022/malva-ui-core-page.mjs +1898 -0
  128. package/fesm2022/malva-ui-core-page.mjs.map +1 -0
  129. package/fesm2022/malva-ui-core-pagination.mjs +458 -0
  130. package/fesm2022/malva-ui-core-pagination.mjs.map +1 -0
  131. package/fesm2022/malva-ui-core-pin-input.mjs +405 -0
  132. package/fesm2022/malva-ui-core-pin-input.mjs.map +1 -0
  133. package/fesm2022/malva-ui-core-popup.mjs +1488 -0
  134. package/fesm2022/malva-ui-core-popup.mjs.map +1 -0
  135. package/fesm2022/malva-ui-core-progress.mjs +109 -0
  136. package/fesm2022/malva-ui-core-progress.mjs.map +1 -0
  137. package/fesm2022/malva-ui-core-radio.mjs +317 -0
  138. package/fesm2022/malva-ui-core-radio.mjs.map +1 -0
  139. package/fesm2022/malva-ui-core-rating.mjs +236 -0
  140. package/fesm2022/malva-ui-core-rating.mjs.map +1 -0
  141. package/fesm2022/malva-ui-core-scrollbar.mjs +430 -0
  142. package/fesm2022/malva-ui-core-scrollbar.mjs.map +1 -0
  143. package/fesm2022/malva-ui-core-search-field.mjs +578 -0
  144. package/fesm2022/malva-ui-core-search-field.mjs.map +1 -0
  145. package/fesm2022/malva-ui-core-segmented.mjs +458 -0
  146. package/fesm2022/malva-ui-core-segmented.mjs.map +1 -0
  147. package/fesm2022/malva-ui-core-select.mjs +855 -0
  148. package/fesm2022/malva-ui-core-select.mjs.map +1 -0
  149. package/fesm2022/malva-ui-core-sidebar.mjs +1504 -0
  150. package/fesm2022/malva-ui-core-sidebar.mjs.map +1 -0
  151. package/fesm2022/malva-ui-core-skeleton.mjs +85 -0
  152. package/fesm2022/malva-ui-core-skeleton.mjs.map +1 -0
  153. package/fesm2022/malva-ui-core-slider.mjs +514 -0
  154. package/fesm2022/malva-ui-core-slider.mjs.map +1 -0
  155. package/fesm2022/malva-ui-core-split-pane.mjs +359 -0
  156. package/fesm2022/malva-ui-core-split-pane.mjs.map +1 -0
  157. package/fesm2022/malva-ui-core-status-indicator.mjs +78 -0
  158. package/fesm2022/malva-ui-core-status-indicator.mjs.map +1 -0
  159. package/fesm2022/malva-ui-core-stepper.mjs +332 -0
  160. package/fesm2022/malva-ui-core-stepper.mjs.map +1 -0
  161. package/fesm2022/malva-ui-core-switch.mjs +272 -0
  162. package/fesm2022/malva-ui-core-switch.mjs.map +1 -0
  163. package/fesm2022/malva-ui-core-table.mjs +79 -0
  164. package/fesm2022/malva-ui-core-table.mjs.map +1 -0
  165. package/fesm2022/malva-ui-core-tabs.mjs +794 -0
  166. package/fesm2022/malva-ui-core-tabs.mjs.map +1 -0
  167. package/fesm2022/malva-ui-core-textarea.mjs +201 -0
  168. package/fesm2022/malva-ui-core-textarea.mjs.map +1 -0
  169. package/fesm2022/malva-ui-core-tile.mjs +1404 -0
  170. package/fesm2022/malva-ui-core-tile.mjs.map +1 -0
  171. package/fesm2022/malva-ui-core-time-picker.mjs +533 -0
  172. package/fesm2022/malva-ui-core-time-picker.mjs.map +1 -0
  173. package/fesm2022/malva-ui-core-timeline.mjs +216 -0
  174. package/fesm2022/malva-ui-core-timeline.mjs.map +1 -0
  175. package/fesm2022/malva-ui-core-title.mjs +178 -0
  176. package/fesm2022/malva-ui-core-title.mjs.map +1 -0
  177. package/fesm2022/malva-ui-core-toast.mjs +749 -0
  178. package/fesm2022/malva-ui-core-toast.mjs.map +1 -0
  179. package/fesm2022/malva-ui-core-tokenizer.mjs +502 -0
  180. package/fesm2022/malva-ui-core-tokenizer.mjs.map +1 -0
  181. package/fesm2022/malva-ui-core-toolbar.mjs +141 -0
  182. package/fesm2022/malva-ui-core-toolbar.mjs.map +1 -0
  183. package/fesm2022/malva-ui-core-tooltip.mjs +432 -0
  184. package/fesm2022/malva-ui-core-tooltip.mjs.map +1 -0
  185. package/fesm2022/malva-ui-core-tree.mjs +505 -0
  186. package/fesm2022/malva-ui-core-tree.mjs.map +1 -0
  187. package/fesm2022/malva-ui-core-view-variant.mjs +292 -0
  188. package/fesm2022/malva-ui-core-view-variant.mjs.map +1 -0
  189. package/fesm2022/malva-ui-core.mjs +77 -0
  190. package/fesm2022/malva-ui-core.mjs.map +1 -0
  191. package/package.json +195 -156
  192. package/styles/malva-ui.css +253 -220
  193. package/styles/tokens.md +174 -173
  194. package/table/README.md +46 -0
  195. package/types/malva-ui-core-accordion.d.ts +121 -0
  196. package/types/malva-ui-core-action-bar.d.ts +82 -0
  197. package/types/malva-ui-core-alert.d.ts +131 -0
  198. package/types/malva-ui-core-autocomplete.d.ts +301 -0
  199. package/types/malva-ui-core-avatar-group.d.ts +119 -0
  200. package/types/malva-ui-core-avatar.d.ts +156 -0
  201. package/types/malva-ui-core-badge.d.ts +97 -0
  202. package/types/malva-ui-core-bottom-nav.d.ts +104 -0
  203. package/types/malva-ui-core-breadcrumb.d.ts +308 -0
  204. package/types/malva-ui-core-button.d.ts +194 -0
  205. package/types/malva-ui-core-calendar.d.ts +339 -0
  206. package/types/malva-ui-core-card.d.ts +88 -0
  207. package/types/malva-ui-core-chat.d.ts +375 -0
  208. package/types/malva-ui-core-checkbox.d.ts +158 -0
  209. package/types/malva-ui-core-chip.d.ts +128 -0
  210. package/types/malva-ui-core-color-picker.d.ts +442 -0
  211. package/types/malva-ui-core-combobox.d.ts +419 -0
  212. package/types/malva-ui-core-copy-to-clipboard.d.ts +148 -0
  213. package/types/malva-ui-core-data-table.d.ts +1074 -0
  214. package/types/malva-ui-core-date-range-picker.d.ts +149 -0
  215. package/types/malva-ui-core-day-picker.d.ts +55 -0
  216. package/types/malva-ui-core-dialog.d.ts +597 -0
  217. package/types/malva-ui-core-divider.d.ts +68 -0
  218. package/types/malva-ui-core-drawer.d.ts +333 -0
  219. package/types/malva-ui-core-dropdown.d.ts +592 -0
  220. package/types/malva-ui-core-empty-state.d.ts +37 -0
  221. package/types/malva-ui-core-expand.d.ts +102 -0
  222. package/types/malva-ui-core-file-upload.d.ts +267 -0
  223. package/types/malva-ui-core-filter.d.ts +552 -0
  224. package/types/malva-ui-core-form-utils-testing.d.ts +50 -0
  225. package/types/malva-ui-core-form-utils.d.ts +579 -0
  226. package/types/malva-ui-core-form.d.ts +176 -0
  227. package/types/malva-ui-core-icon-toggle.d.ts +80 -0
  228. package/types/malva-ui-core-input.d.ts +262 -0
  229. package/types/malva-ui-core-kbd.d.ts +56 -0
  230. package/types/malva-ui-core-layout.d.ts +70 -0
  231. package/types/malva-ui-core-link.d.ts +28 -0
  232. package/types/malva-ui-core-list.d.ts +252 -0
  233. package/types/malva-ui-core-loader.d.ts +89 -0
  234. package/types/malva-ui-core-menu.d.ts +954 -0
  235. package/types/malva-ui-core-notification.d.ts +122 -0
  236. package/types/malva-ui-core-number-input.d.ts +167 -0
  237. package/types/malva-ui-core-page.d.ts +799 -0
  238. package/types/malva-ui-core-pagination.d.ts +261 -0
  239. package/types/malva-ui-core-pin-input.d.ts +203 -0
  240. package/types/malva-ui-core-popup.d.ts +834 -0
  241. package/types/malva-ui-core-progress.d.ts +73 -0
  242. package/types/malva-ui-core-radio.d.ts +130 -0
  243. package/types/malva-ui-core-rating.d.ts +115 -0
  244. package/types/malva-ui-core-scrollbar.d.ts +203 -0
  245. package/types/malva-ui-core-search-field.d.ts +408 -0
  246. package/types/malva-ui-core-segmented.d.ts +206 -0
  247. package/types/malva-ui-core-select.d.ts +456 -0
  248. package/types/malva-ui-core-sidebar.d.ts +698 -0
  249. package/types/malva-ui-core-skeleton.d.ts +64 -0
  250. package/types/malva-ui-core-slider.d.ts +219 -0
  251. package/types/malva-ui-core-split-pane.d.ts +149 -0
  252. package/types/malva-ui-core-status-indicator.d.ts +65 -0
  253. package/types/malva-ui-core-stepper.d.ts +168 -0
  254. package/types/malva-ui-core-switch.d.ts +146 -0
  255. package/types/malva-ui-core-table.d.ts +37 -0
  256. package/types/malva-ui-core-tabs.d.ts +339 -0
  257. package/types/malva-ui-core-textarea.d.ts +79 -0
  258. package/types/malva-ui-core-tile.d.ts +373 -0
  259. package/types/malva-ui-core-time-picker.d.ts +141 -0
  260. package/types/malva-ui-core-timeline.d.ts +188 -0
  261. package/types/malva-ui-core-title.d.ts +66 -0
  262. package/types/malva-ui-core-toast.d.ts +432 -0
  263. package/types/malva-ui-core-tokenizer.d.ts +217 -0
  264. package/types/malva-ui-core-toolbar.d.ts +91 -0
  265. package/types/malva-ui-core-tooltip.d.ts +200 -0
  266. package/types/malva-ui-core-tree.d.ts +289 -0
  267. package/types/malva-ui-core-view-variant.d.ts +207 -0
  268. package/types/malva-ui-core.d.ts +72 -0
  269. package/view-variant/README.md +3 -0
  270. package/accordion/index.d.ts +0 -3
  271. package/accordion/lib/accordion/accordion.d.ts +0 -47
  272. package/accordion/lib/accordion-item/accordion-header.d.ts +0 -22
  273. package/accordion/lib/accordion-item/accordion-item.d.ts +0 -49
  274. package/accordion/malva-ui-core-accordion.d.ts +0 -5
  275. package/action-bar/index.d.ts +0 -4
  276. package/action-bar/lib/action-bar/action-bar.d.ts +0 -59
  277. package/action-bar/lib/action-bar/components/action-bar-actions.d.ts +0 -9
  278. package/action-bar/lib/action-bar/components/action-bar-logo.d.ts +0 -5
  279. package/action-bar/lib/action-bar/components/action-bar-spacer.d.ts +0 -5
  280. package/action-bar/malva-ui-core-action-bar.d.ts +0 -5
  281. package/alert/index.d.ts +0 -2
  282. package/alert/lib/alert/alert.d.ts +0 -84
  283. package/alert/lib/alert/alert.directives.d.ts +0 -44
  284. package/alert/malva-ui-core-alert.d.ts +0 -5
  285. package/autocomplete/index.d.ts +0 -1
  286. package/autocomplete/lib/autocomplete/autocomplete.d.ts +0 -296
  287. package/autocomplete/malva-ui-core-autocomplete.d.ts +0 -5
  288. package/avatar/index.d.ts +0 -2
  289. package/avatar/lib/avatar/avatar.d.ts +0 -125
  290. package/avatar/lib/color-from-text.pipe.d.ts +0 -21
  291. package/avatar/malva-ui-core-avatar.d.ts +0 -5
  292. package/avatar-group/index.d.ts +0 -1
  293. package/avatar-group/lib/avatar-group/avatar-group.d.ts +0 -115
  294. package/avatar-group/malva-ui-core-avatar-group.d.ts +0 -5
  295. package/badge/index.d.ts +0 -2
  296. package/badge/lib/badge/badge.d.ts +0 -59
  297. package/badge/lib/badge-icon.d.ts +0 -35
  298. package/badge/malva-ui-core-badge.d.ts +0 -5
  299. package/bottom-nav/index.d.ts +0 -1
  300. package/bottom-nav/lib/bottom-nav/bottom-nav.d.ts +0 -99
  301. package/bottom-nav/malva-ui-core-bottom-nav.d.ts +0 -5
  302. package/breadcrumb/index.d.ts +0 -5
  303. package/breadcrumb/lib/breadcrumb/breadcrumb-item-host.d.ts +0 -32
  304. package/breadcrumb/lib/breadcrumb/breadcrumb-item.d.ts +0 -41
  305. package/breadcrumb/lib/breadcrumb/breadcrumb-separator.d.ts +0 -31
  306. package/breadcrumb/lib/breadcrumb/breadcrumb.d.ts +0 -151
  307. package/breadcrumb/lib/breadcrumb/breadcrumb.types.d.ts +0 -26
  308. package/breadcrumb/malva-ui-core-breadcrumb.d.ts +0 -5
  309. package/button/index.d.ts +0 -7
  310. package/button/lib/button/button.d.ts +0 -61
  311. package/button/lib/button-close/button-close.d.ts +0 -24
  312. package/button/lib/button-group/button-group.d.ts +0 -21
  313. package/button/lib/button-split/button-split.d.ts +0 -21
  314. package/button/lib/button-toggle/button-toggle.d.ts +0 -33
  315. package/button/lib/button-variant.token.d.ts +0 -13
  316. package/button/lib/button.directives.d.ts +0 -14
  317. package/button/lib/button.types.d.ts +0 -8
  318. package/button/malva-ui-core-button.d.ts +0 -5
  319. package/calendar/index.d.ts +0 -3
  320. package/calendar/lib/calendar/calendar.d.ts +0 -182
  321. package/calendar/lib/date-provider/date-adapter.d.ts +0 -92
  322. package/calendar/lib/date-provider/native-date-adapter.d.ts +0 -60
  323. package/calendar/malva-ui-core-calendar.d.ts +0 -5
  324. package/card/index.d.ts +0 -5
  325. package/card/lib/card/card.d.ts +0 -43
  326. package/card/lib/card-actions-def.d.ts +0 -10
  327. package/card/lib/card-footer-def.d.ts +0 -13
  328. package/card/lib/card-header-def.d.ts +0 -10
  329. package/card/lib/card-subheader-def.d.ts +0 -16
  330. package/card/malva-ui-core-card.d.ts +0 -5
  331. package/chat/index.d.ts +0 -9
  332. package/chat/lib/chat/chat.d.ts +0 -133
  333. package/chat/lib/chat-audio/chat-audio.d.ts +0 -51
  334. package/chat/lib/chat-audio/chat-audio.service.d.ts +0 -21
  335. package/chat/lib/chat-date/chat-date.d.ts +0 -16
  336. package/chat/lib/chat-format.d.ts +0 -5
  337. package/chat/lib/chat-media-grid/chat-media-grid.d.ts +0 -32
  338. package/chat/lib/chat-message/chat-message.d.ts +0 -45
  339. package/chat/lib/chat-render-list.d.ts +0 -16
  340. package/chat/lib/chat-tokens.d.ts +0 -25
  341. package/chat/lib/chat-typing/chat-typing.d.ts +0 -16
  342. package/chat/lib/chat.types.d.ts +0 -80
  343. package/chat/lib/defs/chat-author-def.d.ts +0 -30
  344. package/chat/lib/defs/chat-date-def.d.ts +0 -22
  345. package/chat/lib/defs/chat-message-def.d.ts +0 -23
  346. package/chat/malva-ui-core-chat.d.ts +0 -5
  347. package/checkbox/index.d.ts +0 -3
  348. package/checkbox/lib/checkbox/checkbox.d.ts +0 -129
  349. package/checkbox/lib/checkbox-group/checkbox-group.d.ts +0 -24
  350. package/checkbox/lib/checkbox-group-token.d.ts +0 -6
  351. package/checkbox/malva-ui-core-checkbox.d.ts +0 -5
  352. package/chip/index.d.ts +0 -2
  353. package/chip/lib/chip/chip.d.ts +0 -107
  354. package/chip/lib/chip/chip.directives.d.ts +0 -18
  355. package/chip/malva-ui-core-chip.d.ts +0 -5
  356. package/color-picker/index.d.ts +0 -3
  357. package/color-picker/lib/color-picker/color-picker.d.ts +0 -188
  358. package/color-picker/lib/color-picker-popup/color-picker-popup.d.ts +0 -151
  359. package/color-picker/lib/color-utils/color-utils.d.ts +0 -102
  360. package/color-picker/malva-ui-core-color-picker.d.ts +0 -5
  361. package/combobox/index.d.ts +0 -2
  362. package/combobox/lib/combobox/combobox.d.ts +0 -400
  363. package/combobox/lib/combobox-template.directives.d.ts +0 -10
  364. package/combobox/malva-ui-core-combobox.d.ts +0 -5
  365. package/copy-to-clipboard/index.d.ts +0 -1
  366. package/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.d.ts +0 -130
  367. package/copy-to-clipboard/malva-ui-core-copy-to-clipboard.d.ts +0 -5
  368. package/data-table/index.d.ts +0 -8
  369. package/data-table/lib/data-source.d.ts +0 -5
  370. package/data-table/lib/data-table/data-table-layout.d.ts +0 -31
  371. package/data-table/lib/data-table/data-table.d.ts +0 -699
  372. package/data-table/lib/data-table/services/data-table-column-visibility.service.d.ts +0 -19
  373. package/data-table/lib/data-table/services/data-table-editing.service.d.ts +0 -37
  374. package/data-table/lib/data-table/services/data-table-pinning.service.d.ts +0 -37
  375. package/data-table/lib/data-table-cell.d.ts +0 -44
  376. package/data-table/lib/data-table-edit-cell.d.ts +0 -44
  377. package/data-table/lib/data-table-error.d.ts +0 -37
  378. package/data-table/lib/data-table-footer.d.ts +0 -26
  379. package/data-table/lib/data-table-no-data.d.ts +0 -19
  380. package/data-table/lib/filter-dropdown/filter-dropdown.d.ts +0 -54
  381. package/data-table/lib/types.d.ts +0 -134
  382. package/data-table/malva-ui-core-data-table.d.ts +0 -5
  383. package/date-range-picker/index.d.ts +0 -1
  384. package/date-range-picker/lib/date-range-picker/date-range-picker.d.ts +0 -145
  385. package/date-range-picker/malva-ui-core-date-range-picker.d.ts +0 -5
  386. package/day-picker/index.d.ts +0 -1
  387. package/day-picker/lib/day-picker/day-picker.d.ts +0 -51
  388. package/day-picker/malva-ui-core-day-picker.d.ts +0 -5
  389. package/dialog/index.d.ts +0 -11
  390. package/dialog/lib/confirm-dialog-options.d.ts +0 -41
  391. package/dialog/lib/confirm-dialog.d.ts +0 -52
  392. package/dialog/lib/dialog/dialog.d.ts +0 -22
  393. package/dialog/lib/dialog-body.d.ts +0 -9
  394. package/dialog/lib/dialog-close.d.ts +0 -27
  395. package/dialog/lib/dialog-config.d.ts +0 -112
  396. package/dialog/lib/dialog-container.d.ts +0 -40
  397. package/dialog/lib/dialog-footer.d.ts +0 -13
  398. package/dialog/lib/dialog-header.d.ts +0 -74
  399. package/dialog/lib/dialog-ref.d.ts +0 -95
  400. package/dialog/lib/dialog-template.d.ts +0 -65
  401. package/dialog/lib/dialog-text-content.d.ts +0 -24
  402. package/dialog/lib/dialog.service.d.ts +0 -63
  403. package/dialog/lib/generate-routable-dialog-route.d.ts +0 -49
  404. package/dialog/lib/inject-dialog-ref.d.ts +0 -8
  405. package/dialog/lib/routable-dialog.d.ts +0 -30
  406. package/dialog/malva-ui-core-dialog.d.ts +0 -5
  407. package/divider/index.d.ts +0 -1
  408. package/divider/lib/divider/divider.d.ts +0 -64
  409. package/divider/malva-ui-core-divider.d.ts +0 -5
  410. package/drawer/index.d.ts +0 -11
  411. package/drawer/lib/drawer/drawer.d.ts +0 -106
  412. package/drawer/lib/drawer-body.d.ts +0 -8
  413. package/drawer/lib/drawer-content.d.ts +0 -6
  414. package/drawer/lib/drawer-footer.d.ts +0 -5
  415. package/drawer/lib/drawer-header.d.ts +0 -5
  416. package/drawer/lib/drawer-ref.d.ts +0 -29
  417. package/drawer/lib/drawer-resize.d.ts +0 -65
  418. package/drawer/lib/drawer-section/drawer-section.d.ts +0 -15
  419. package/drawer/lib/drawer-sections/drawer-sections.d.ts +0 -22
  420. package/drawer/lib/drawer-sections.service.d.ts +0 -42
  421. package/drawer/lib/drawer.service.d.ts +0 -66
  422. package/drawer/lib/generate-routable-drawer-route.d.ts +0 -42
  423. package/drawer/lib/routable-drawer.d.ts +0 -30
  424. package/drawer/malva-ui-core-drawer.d.ts +0 -5
  425. package/dropdown/index.d.ts +0 -9
  426. package/dropdown/lib/active-descendant.d.ts +0 -64
  427. package/dropdown/lib/dropdown-panel/dropdown-panel.d.ts +0 -178
  428. package/dropdown/lib/highlight-match.pipe.d.ts +0 -27
  429. package/dropdown/lib/option-matcher.d.ts +0 -87
  430. package/dropdown/lib/options-adapter.d.ts +0 -142
  431. package/dropdown/lib/options-result.d.ts +0 -6
  432. package/dropdown/lib/reconciliation.d.ts +0 -19
  433. package/dropdown/lib/select-data-source.d.ts +0 -18
  434. package/dropdown/lib/select-option.d.ts +0 -37
  435. package/dropdown/malva-ui-core-dropdown.d.ts +0 -5
  436. package/empty-state/index.d.ts +0 -1
  437. package/empty-state/lib/empty-state/empty-state.d.ts +0 -34
  438. package/empty-state/malva-ui-core-empty-state.d.ts +0 -5
  439. package/esm2022/accordion/index.js +0 -4
  440. package/esm2022/accordion/index.js.map +0 -1
  441. package/esm2022/accordion/lib/accordion/accordion.js +0 -65
  442. package/esm2022/accordion/lib/accordion/accordion.js.map +0 -1
  443. package/esm2022/accordion/lib/accordion-item/accordion-header.js +0 -30
  444. package/esm2022/accordion/lib/accordion-item/accordion-header.js.map +0 -1
  445. package/esm2022/accordion/lib/accordion-item/accordion-item.js +0 -70
  446. package/esm2022/accordion/lib/accordion-item/accordion-item.js.map +0 -1
  447. package/esm2022/accordion/malva-ui-core-accordion.js +0 -5
  448. package/esm2022/accordion/malva-ui-core-accordion.js.map +0 -1
  449. package/esm2022/action-bar/index.js +0 -5
  450. package/esm2022/action-bar/index.js.map +0 -1
  451. package/esm2022/action-bar/lib/action-bar/action-bar.js +0 -64
  452. package/esm2022/action-bar/lib/action-bar/action-bar.js.map +0 -1
  453. package/esm2022/action-bar/lib/action-bar/components/action-bar-actions.js +0 -20
  454. package/esm2022/action-bar/lib/action-bar/components/action-bar-actions.js.map +0 -1
  455. package/esm2022/action-bar/lib/action-bar/components/action-bar-logo.js +0 -13
  456. package/esm2022/action-bar/lib/action-bar/components/action-bar-logo.js.map +0 -1
  457. package/esm2022/action-bar/lib/action-bar/components/action-bar-spacer.js +0 -13
  458. package/esm2022/action-bar/lib/action-bar/components/action-bar-spacer.js.map +0 -1
  459. package/esm2022/action-bar/malva-ui-core-action-bar.js +0 -5
  460. package/esm2022/action-bar/malva-ui-core-action-bar.js.map +0 -1
  461. package/esm2022/alert/index.js +0 -3
  462. package/esm2022/alert/index.js.map +0 -1
  463. package/esm2022/alert/lib/alert/alert.directives.js +0 -53
  464. package/esm2022/alert/lib/alert/alert.directives.js.map +0 -1
  465. package/esm2022/alert/lib/alert/alert.js +0 -118
  466. package/esm2022/alert/lib/alert/alert.js.map +0 -1
  467. package/esm2022/alert/malva-ui-core-alert.js +0 -5
  468. package/esm2022/alert/malva-ui-core-alert.js.map +0 -1
  469. package/esm2022/autocomplete/index.js +0 -2
  470. package/esm2022/autocomplete/index.js.map +0 -1
  471. package/esm2022/autocomplete/lib/autocomplete/autocomplete.js +0 -765
  472. package/esm2022/autocomplete/lib/autocomplete/autocomplete.js.map +0 -1
  473. package/esm2022/autocomplete/malva-ui-core-autocomplete.js +0 -5
  474. package/esm2022/autocomplete/malva-ui-core-autocomplete.js.map +0 -1
  475. package/esm2022/avatar/index.js +0 -3
  476. package/esm2022/avatar/index.js.map +0 -1
  477. package/esm2022/avatar/lib/avatar/avatar.js +0 -192
  478. package/esm2022/avatar/lib/avatar/avatar.js.map +0 -1
  479. package/esm2022/avatar/lib/color-from-text.pipe.js +0 -39
  480. package/esm2022/avatar/lib/color-from-text.pipe.js.map +0 -1
  481. package/esm2022/avatar/malva-ui-core-avatar.js +0 -5
  482. package/esm2022/avatar/malva-ui-core-avatar.js.map +0 -1
  483. package/esm2022/avatar-group/index.js +0 -2
  484. package/esm2022/avatar-group/index.js.map +0 -1
  485. package/esm2022/avatar-group/lib/avatar-group/avatar-group.js +0 -217
  486. package/esm2022/avatar-group/lib/avatar-group/avatar-group.js.map +0 -1
  487. package/esm2022/avatar-group/malva-ui-core-avatar-group.js +0 -5
  488. package/esm2022/avatar-group/malva-ui-core-avatar-group.js.map +0 -1
  489. package/esm2022/badge/index.js +0 -3
  490. package/esm2022/badge/index.js.map +0 -1
  491. package/esm2022/badge/lib/badge/badge.js +0 -71
  492. package/esm2022/badge/lib/badge/badge.js.map +0 -1
  493. package/esm2022/badge/lib/badge-icon.js +0 -47
  494. package/esm2022/badge/lib/badge-icon.js.map +0 -1
  495. package/esm2022/badge/malva-ui-core-badge.js +0 -5
  496. package/esm2022/badge/malva-ui-core-badge.js.map +0 -1
  497. package/esm2022/bottom-nav/index.js +0 -2
  498. package/esm2022/bottom-nav/index.js.map +0 -1
  499. package/esm2022/bottom-nav/lib/bottom-nav/bottom-nav.js +0 -155
  500. package/esm2022/bottom-nav/lib/bottom-nav/bottom-nav.js.map +0 -1
  501. package/esm2022/bottom-nav/malva-ui-core-bottom-nav.js +0 -5
  502. package/esm2022/bottom-nav/malva-ui-core-bottom-nav.js.map +0 -1
  503. package/esm2022/breadcrumb/index.js +0 -6
  504. package/esm2022/breadcrumb/index.js.map +0 -1
  505. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item-host.js +0 -43
  506. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item-host.js.map +0 -1
  507. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item.js +0 -110
  508. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item.js.map +0 -1
  509. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-separator.js +0 -38
  510. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-separator.js.map +0 -1
  511. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.js +0 -284
  512. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.js.map +0 -1
  513. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.types.js +0 -1
  514. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.types.js.map +0 -1
  515. package/esm2022/breadcrumb/malva-ui-core-breadcrumb.js +0 -5
  516. package/esm2022/breadcrumb/malva-ui-core-breadcrumb.js.map +0 -1
  517. package/esm2022/button/index.js +0 -8
  518. package/esm2022/button/index.js.map +0 -1
  519. package/esm2022/button/lib/button/button.js +0 -137
  520. package/esm2022/button/lib/button/button.js.map +0 -1
  521. package/esm2022/button/lib/button-close/button-close.js +0 -52
  522. package/esm2022/button/lib/button-close/button-close.js.map +0 -1
  523. package/esm2022/button/lib/button-group/button-group.js +0 -44
  524. package/esm2022/button/lib/button-group/button-group.js.map +0 -1
  525. package/esm2022/button/lib/button-split/button-split.js +0 -44
  526. package/esm2022/button/lib/button-split/button-split.js.map +0 -1
  527. package/esm2022/button/lib/button-toggle/button-toggle.js +0 -94
  528. package/esm2022/button/lib/button-toggle/button-toggle.js.map +0 -1
  529. package/esm2022/button/lib/button-variant.token.js +0 -4
  530. package/esm2022/button/lib/button-variant.token.js.map +0 -1
  531. package/esm2022/button/lib/button.directives.js +0 -37
  532. package/esm2022/button/lib/button.directives.js.map +0 -1
  533. package/esm2022/button/lib/button.types.js +0 -1
  534. package/esm2022/button/lib/button.types.js.map +0 -1
  535. package/esm2022/button/malva-ui-core-button.js +0 -5
  536. package/esm2022/button/malva-ui-core-button.js.map +0 -1
  537. package/esm2022/calendar/index.js +0 -4
  538. package/esm2022/calendar/index.js.map +0 -1
  539. package/esm2022/calendar/lib/calendar/calendar.js +0 -672
  540. package/esm2022/calendar/lib/calendar/calendar.js.map +0 -1
  541. package/esm2022/calendar/lib/date-provider/date-adapter.js +0 -111
  542. package/esm2022/calendar/lib/date-provider/date-adapter.js.map +0 -1
  543. package/esm2022/calendar/lib/date-provider/native-date-adapter.js +0 -151
  544. package/esm2022/calendar/lib/date-provider/native-date-adapter.js.map +0 -1
  545. package/esm2022/calendar/malva-ui-core-calendar.js +0 -5
  546. package/esm2022/calendar/malva-ui-core-calendar.js.map +0 -1
  547. package/esm2022/card/index.js +0 -6
  548. package/esm2022/card/index.js.map +0 -1
  549. package/esm2022/card/lib/card/card.js +0 -54
  550. package/esm2022/card/lib/card/card.js.map +0 -1
  551. package/esm2022/card/lib/card-actions-def.js +0 -27
  552. package/esm2022/card/lib/card-actions-def.js.map +0 -1
  553. package/esm2022/card/lib/card-footer-def.js +0 -32
  554. package/esm2022/card/lib/card-footer-def.js.map +0 -1
  555. package/esm2022/card/lib/card-header-def.js +0 -27
  556. package/esm2022/card/lib/card-header-def.js.map +0 -1
  557. package/esm2022/card/lib/card-subheader-def.js +0 -33
  558. package/esm2022/card/lib/card-subheader-def.js.map +0 -1
  559. package/esm2022/card/malva-ui-core-card.js +0 -5
  560. package/esm2022/card/malva-ui-core-card.js.map +0 -1
  561. package/esm2022/chat/index.js +0 -10
  562. package/esm2022/chat/index.js.map +0 -1
  563. package/esm2022/chat/lib/chat/chat.js +0 -326
  564. package/esm2022/chat/lib/chat/chat.js.map +0 -1
  565. package/esm2022/chat/lib/chat-audio/chat-audio.js +0 -110
  566. package/esm2022/chat/lib/chat-audio/chat-audio.js.map +0 -1
  567. package/esm2022/chat/lib/chat-audio/chat-audio.service.js +0 -28
  568. package/esm2022/chat/lib/chat-audio/chat-audio.service.js.map +0 -1
  569. package/esm2022/chat/lib/chat-date/chat-date.js +0 -46
  570. package/esm2022/chat/lib/chat-date/chat-date.js.map +0 -1
  571. package/esm2022/chat/lib/chat-format.js +0 -11
  572. package/esm2022/chat/lib/chat-format.js.map +0 -1
  573. package/esm2022/chat/lib/chat-media-grid/chat-media-grid.js +0 -53
  574. package/esm2022/chat/lib/chat-media-grid/chat-media-grid.js.map +0 -1
  575. package/esm2022/chat/lib/chat-message/chat-message.js +0 -86
  576. package/esm2022/chat/lib/chat-message/chat-message.js.map +0 -1
  577. package/esm2022/chat/lib/chat-render-list.js +0 -55
  578. package/esm2022/chat/lib/chat-render-list.js.map +0 -1
  579. package/esm2022/chat/lib/chat-tokens.js +0 -9
  580. package/esm2022/chat/lib/chat-tokens.js.map +0 -1
  581. package/esm2022/chat/lib/chat-typing/chat-typing.js +0 -50
  582. package/esm2022/chat/lib/chat-typing/chat-typing.js.map +0 -1
  583. package/esm2022/chat/lib/chat.types.js +0 -1
  584. package/esm2022/chat/lib/chat.types.js.map +0 -1
  585. package/esm2022/chat/lib/defs/chat-author-def.js +0 -27
  586. package/esm2022/chat/lib/defs/chat-author-def.js.map +0 -1
  587. package/esm2022/chat/lib/defs/chat-date-def.js +0 -24
  588. package/esm2022/chat/lib/defs/chat-date-def.js.map +0 -1
  589. package/esm2022/chat/lib/defs/chat-message-def.js +0 -30
  590. package/esm2022/chat/lib/defs/chat-message-def.js.map +0 -1
  591. package/esm2022/chat/malva-ui-core-chat.js +0 -5
  592. package/esm2022/chat/malva-ui-core-chat.js.map +0 -1
  593. package/esm2022/checkbox/index.js +0 -4
  594. package/esm2022/checkbox/index.js.map +0 -1
  595. package/esm2022/checkbox/lib/checkbox/checkbox.js +0 -201
  596. package/esm2022/checkbox/lib/checkbox/checkbox.js.map +0 -1
  597. package/esm2022/checkbox/lib/checkbox-group/checkbox-group.js +0 -68
  598. package/esm2022/checkbox/lib/checkbox-group/checkbox-group.js.map +0 -1
  599. package/esm2022/checkbox/lib/checkbox-group-token.js +0 -3
  600. package/esm2022/checkbox/lib/checkbox-group-token.js.map +0 -1
  601. package/esm2022/checkbox/malva-ui-core-checkbox.js +0 -5
  602. package/esm2022/checkbox/malva-ui-core-checkbox.js.map +0 -1
  603. package/esm2022/chip/index.js +0 -3
  604. package/esm2022/chip/index.js.map +0 -1
  605. package/esm2022/chip/lib/chip/chip.directives.js +0 -32
  606. package/esm2022/chip/lib/chip/chip.directives.js.map +0 -1
  607. package/esm2022/chip/lib/chip/chip.js +0 -140
  608. package/esm2022/chip/lib/chip/chip.js.map +0 -1
  609. package/esm2022/chip/malva-ui-core-chip.js +0 -5
  610. package/esm2022/chip/malva-ui-core-chip.js.map +0 -1
  611. package/esm2022/color-picker/index.js +0 -4
  612. package/esm2022/color-picker/index.js.map +0 -1
  613. package/esm2022/color-picker/lib/color-picker/color-picker.js +0 -530
  614. package/esm2022/color-picker/lib/color-picker/color-picker.js.map +0 -1
  615. package/esm2022/color-picker/lib/color-picker-popup/color-picker-popup.js +0 -419
  616. package/esm2022/color-picker/lib/color-picker-popup/color-picker-popup.js.map +0 -1
  617. package/esm2022/color-picker/lib/color-utils/color-utils.js +0 -256
  618. package/esm2022/color-picker/lib/color-utils/color-utils.js.map +0 -1
  619. package/esm2022/color-picker/malva-ui-core-color-picker.js +0 -5
  620. package/esm2022/color-picker/malva-ui-core-color-picker.js.map +0 -1
  621. package/esm2022/combobox/index.js +0 -3
  622. package/esm2022/combobox/index.js.map +0 -1
  623. package/esm2022/combobox/lib/combobox/combobox.js +0 -911
  624. package/esm2022/combobox/lib/combobox/combobox.js.map +0 -1
  625. package/esm2022/combobox/lib/combobox-template.directives.js +0 -24
  626. package/esm2022/combobox/lib/combobox-template.directives.js.map +0 -1
  627. package/esm2022/combobox/malva-ui-core-combobox.js +0 -5
  628. package/esm2022/combobox/malva-ui-core-combobox.js.map +0 -1
  629. package/esm2022/copy-to-clipboard/index.js +0 -2
  630. package/esm2022/copy-to-clipboard/index.js.map +0 -1
  631. package/esm2022/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.js +0 -201
  632. package/esm2022/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.js.map +0 -1
  633. package/esm2022/copy-to-clipboard/malva-ui-core-copy-to-clipboard.js +0 -5
  634. package/esm2022/copy-to-clipboard/malva-ui-core-copy-to-clipboard.js.map +0 -1
  635. package/esm2022/data-table/index.js +0 -9
  636. package/esm2022/data-table/index.js.map +0 -1
  637. package/esm2022/data-table/lib/data-source.js +0 -6
  638. package/esm2022/data-table/lib/data-source.js.map +0 -1
  639. package/esm2022/data-table/lib/data-table/data-table-layout.js +0 -84
  640. package/esm2022/data-table/lib/data-table/data-table-layout.js.map +0 -1
  641. package/esm2022/data-table/lib/data-table/data-table.js +0 -1846
  642. package/esm2022/data-table/lib/data-table/data-table.js.map +0 -1
  643. package/esm2022/data-table/lib/data-table/services/data-table-column-visibility.service.js +0 -37
  644. package/esm2022/data-table/lib/data-table/services/data-table-column-visibility.service.js.map +0 -1
  645. package/esm2022/data-table/lib/data-table/services/data-table-editing.service.js +0 -63
  646. package/esm2022/data-table/lib/data-table/services/data-table-editing.service.js.map +0 -1
  647. package/esm2022/data-table/lib/data-table/services/data-table-pinning.service.js +0 -68
  648. package/esm2022/data-table/lib/data-table/services/data-table-pinning.service.js.map +0 -1
  649. package/esm2022/data-table/lib/data-table-cell.js +0 -46
  650. package/esm2022/data-table/lib/data-table-cell.js.map +0 -1
  651. package/esm2022/data-table/lib/data-table-edit-cell.js +0 -46
  652. package/esm2022/data-table/lib/data-table-edit-cell.js.map +0 -1
  653. package/esm2022/data-table/lib/data-table-error.js +0 -37
  654. package/esm2022/data-table/lib/data-table-error.js.map +0 -1
  655. package/esm2022/data-table/lib/data-table-footer.js +0 -33
  656. package/esm2022/data-table/lib/data-table-footer.js.map +0 -1
  657. package/esm2022/data-table/lib/data-table-no-data.js +0 -26
  658. package/esm2022/data-table/lib/data-table-no-data.js.map +0 -1
  659. package/esm2022/data-table/lib/filter-dropdown/filter-dropdown.js +0 -224
  660. package/esm2022/data-table/lib/filter-dropdown/filter-dropdown.js.map +0 -1
  661. package/esm2022/data-table/lib/types.js +0 -1
  662. package/esm2022/data-table/lib/types.js.map +0 -1
  663. package/esm2022/data-table/malva-ui-core-data-table.js +0 -5
  664. package/esm2022/data-table/malva-ui-core-data-table.js.map +0 -1
  665. package/esm2022/date-range-picker/index.js +0 -2
  666. package/esm2022/date-range-picker/index.js.map +0 -1
  667. package/esm2022/date-range-picker/lib/date-range-picker/date-range-picker.js +0 -269
  668. package/esm2022/date-range-picker/lib/date-range-picker/date-range-picker.js.map +0 -1
  669. package/esm2022/date-range-picker/malva-ui-core-date-range-picker.js +0 -5
  670. package/esm2022/date-range-picker/malva-ui-core-date-range-picker.js.map +0 -1
  671. package/esm2022/day-picker/index.js +0 -2
  672. package/esm2022/day-picker/index.js.map +0 -1
  673. package/esm2022/day-picker/lib/day-picker/day-picker.js +0 -124
  674. package/esm2022/day-picker/lib/day-picker/day-picker.js.map +0 -1
  675. package/esm2022/day-picker/malva-ui-core-day-picker.js +0 -5
  676. package/esm2022/day-picker/malva-ui-core-day-picker.js.map +0 -1
  677. package/esm2022/dialog/index.js +0 -12
  678. package/esm2022/dialog/index.js.map +0 -1
  679. package/esm2022/dialog/lib/confirm-dialog-options.js +0 -1
  680. package/esm2022/dialog/lib/confirm-dialog-options.js.map +0 -1
  681. package/esm2022/dialog/lib/confirm-dialog.js +0 -155
  682. package/esm2022/dialog/lib/confirm-dialog.js.map +0 -1
  683. package/esm2022/dialog/lib/dialog/dialog.js +0 -40
  684. package/esm2022/dialog/lib/dialog/dialog.js.map +0 -1
  685. package/esm2022/dialog/lib/dialog-body.js +0 -33
  686. package/esm2022/dialog/lib/dialog-body.js.map +0 -1
  687. package/esm2022/dialog/lib/dialog-close.js +0 -45
  688. package/esm2022/dialog/lib/dialog-close.js.map +0 -1
  689. package/esm2022/dialog/lib/dialog-config.js +0 -23
  690. package/esm2022/dialog/lib/dialog-config.js.map +0 -1
  691. package/esm2022/dialog/lib/dialog-container.js +0 -69
  692. package/esm2022/dialog/lib/dialog-container.js.map +0 -1
  693. package/esm2022/dialog/lib/dialog-footer.js +0 -29
  694. package/esm2022/dialog/lib/dialog-footer.js.map +0 -1
  695. package/esm2022/dialog/lib/dialog-header.js +0 -181
  696. package/esm2022/dialog/lib/dialog-header.js.map +0 -1
  697. package/esm2022/dialog/lib/dialog-ref.js +0 -167
  698. package/esm2022/dialog/lib/dialog-ref.js.map +0 -1
  699. package/esm2022/dialog/lib/dialog-template.js +0 -136
  700. package/esm2022/dialog/lib/dialog-template.js.map +0 -1
  701. package/esm2022/dialog/lib/dialog-text-content.js +0 -59
  702. package/esm2022/dialog/lib/dialog-text-content.js.map +0 -1
  703. package/esm2022/dialog/lib/dialog.service.js +0 -205
  704. package/esm2022/dialog/lib/dialog.service.js.map +0 -1
  705. package/esm2022/dialog/lib/generate-routable-dialog-route.js +0 -59
  706. package/esm2022/dialog/lib/generate-routable-dialog-route.js.map +0 -1
  707. package/esm2022/dialog/lib/inject-dialog-ref.js +0 -16
  708. package/esm2022/dialog/lib/inject-dialog-ref.js.map +0 -1
  709. package/esm2022/dialog/lib/routable-dialog.js +0 -91
  710. package/esm2022/dialog/lib/routable-dialog.js.map +0 -1
  711. package/esm2022/dialog/malva-ui-core-dialog.js +0 -5
  712. package/esm2022/dialog/malva-ui-core-dialog.js.map +0 -1
  713. package/esm2022/divider/index.js +0 -2
  714. package/esm2022/divider/index.js.map +0 -1
  715. package/esm2022/divider/lib/divider/divider.js +0 -73
  716. package/esm2022/divider/lib/divider/divider.js.map +0 -1
  717. package/esm2022/divider/malva-ui-core-divider.js +0 -5
  718. package/esm2022/divider/malva-ui-core-divider.js.map +0 -1
  719. package/esm2022/drawer/index.js +0 -12
  720. package/esm2022/drawer/index.js.map +0 -1
  721. package/esm2022/drawer/lib/drawer/drawer.js +0 -180
  722. package/esm2022/drawer/lib/drawer/drawer.js.map +0 -1
  723. package/esm2022/drawer/lib/drawer-body.js +0 -32
  724. package/esm2022/drawer/lib/drawer-body.js.map +0 -1
  725. package/esm2022/drawer/lib/drawer-content.js +0 -14
  726. package/esm2022/drawer/lib/drawer-content.js.map +0 -1
  727. package/esm2022/drawer/lib/drawer-footer.js +0 -14
  728. package/esm2022/drawer/lib/drawer-footer.js.map +0 -1
  729. package/esm2022/drawer/lib/drawer-header.js +0 -14
  730. package/esm2022/drawer/lib/drawer-header.js.map +0 -1
  731. package/esm2022/drawer/lib/drawer-ref.js +0 -31
  732. package/esm2022/drawer/lib/drawer-ref.js.map +0 -1
  733. package/esm2022/drawer/lib/drawer-resize.js +0 -243
  734. package/esm2022/drawer/lib/drawer-resize.js.map +0 -1
  735. package/esm2022/drawer/lib/drawer-section/drawer-section.js +0 -26
  736. package/esm2022/drawer/lib/drawer-section/drawer-section.js.map +0 -1
  737. package/esm2022/drawer/lib/drawer-sections/drawer-sections.js +0 -58
  738. package/esm2022/drawer/lib/drawer-sections/drawer-sections.js.map +0 -1
  739. package/esm2022/drawer/lib/drawer-sections.service.js +0 -83
  740. package/esm2022/drawer/lib/drawer-sections.service.js.map +0 -1
  741. package/esm2022/drawer/lib/drawer.service.js +0 -86
  742. package/esm2022/drawer/lib/drawer.service.js.map +0 -1
  743. package/esm2022/drawer/lib/generate-routable-drawer-route.js +0 -52
  744. package/esm2022/drawer/lib/generate-routable-drawer-route.js.map +0 -1
  745. package/esm2022/drawer/lib/routable-drawer.js +0 -91
  746. package/esm2022/drawer/lib/routable-drawer.js.map +0 -1
  747. package/esm2022/drawer/malva-ui-core-drawer.js +0 -5
  748. package/esm2022/drawer/malva-ui-core-drawer.js.map +0 -1
  749. package/esm2022/dropdown/index.js +0 -10
  750. package/esm2022/dropdown/index.js.map +0 -1
  751. package/esm2022/dropdown/lib/active-descendant.js +0 -92
  752. package/esm2022/dropdown/lib/active-descendant.js.map +0 -1
  753. package/esm2022/dropdown/lib/dropdown-panel/dropdown-panel.js +0 -295
  754. package/esm2022/dropdown/lib/dropdown-panel/dropdown-panel.js.map +0 -1
  755. package/esm2022/dropdown/lib/highlight-match.pipe.js +0 -36
  756. package/esm2022/dropdown/lib/highlight-match.pipe.js.map +0 -1
  757. package/esm2022/dropdown/lib/option-matcher.js +0 -124
  758. package/esm2022/dropdown/lib/option-matcher.js.map +0 -1
  759. package/esm2022/dropdown/lib/options-adapter.js +0 -356
  760. package/esm2022/dropdown/lib/options-adapter.js.map +0 -1
  761. package/esm2022/dropdown/lib/options-result.js +0 -11
  762. package/esm2022/dropdown/lib/options-result.js.map +0 -1
  763. package/esm2022/dropdown/lib/reconciliation.js +0 -32
  764. package/esm2022/dropdown/lib/reconciliation.js.map +0 -1
  765. package/esm2022/dropdown/lib/select-data-source.js +0 -21
  766. package/esm2022/dropdown/lib/select-data-source.js.map +0 -1
  767. package/esm2022/dropdown/lib/select-option.js +0 -25
  768. package/esm2022/dropdown/lib/select-option.js.map +0 -1
  769. package/esm2022/dropdown/malva-ui-core-dropdown.js +0 -5
  770. package/esm2022/dropdown/malva-ui-core-dropdown.js.map +0 -1
  771. package/esm2022/empty-state/index.js +0 -2
  772. package/esm2022/empty-state/index.js.map +0 -1
  773. package/esm2022/empty-state/lib/empty-state/empty-state.js +0 -43
  774. package/esm2022/empty-state/lib/empty-state/empty-state.js.map +0 -1
  775. package/esm2022/empty-state/malva-ui-core-empty-state.js +0 -5
  776. package/esm2022/empty-state/malva-ui-core-empty-state.js.map +0 -1
  777. package/esm2022/expand/index.js +0 -3
  778. package/esm2022/expand/index.js.map +0 -1
  779. package/esm2022/expand/lib/expand/expand-content.js +0 -33
  780. package/esm2022/expand/lib/expand/expand-content.js.map +0 -1
  781. package/esm2022/expand/lib/expand/expand.js +0 -93
  782. package/esm2022/expand/lib/expand/expand.js.map +0 -1
  783. package/esm2022/expand/malva-ui-core-expand.js +0 -5
  784. package/esm2022/expand/malva-ui-core-expand.js.map +0 -1
  785. package/esm2022/file-upload/index.js +0 -5
  786. package/esm2022/file-upload/index.js.map +0 -1
  787. package/esm2022/file-upload/lib/file-upload/file-upload.js +0 -324
  788. package/esm2022/file-upload/lib/file-upload/file-upload.js.map +0 -1
  789. package/esm2022/file-upload/lib/file-upload/file-upload.types.js +0 -1
  790. package/esm2022/file-upload/lib/file-upload/file-upload.types.js.map +0 -1
  791. package/esm2022/file-upload/lib/file-upload-action.js +0 -65
  792. package/esm2022/file-upload/lib/file-upload-action.js.map +0 -1
  793. package/esm2022/file-upload/lib/file-upload-item/file-upload-item.js +0 -55
  794. package/esm2022/file-upload/lib/file-upload-item/file-upload-item.js.map +0 -1
  795. package/esm2022/file-upload/malva-ui-core-file-upload.js +0 -5
  796. package/esm2022/file-upload/malva-ui-core-file-upload.js.map +0 -1
  797. package/esm2022/filter/index.js +0 -4
  798. package/esm2022/filter/index.js.map +0 -1
  799. package/esm2022/filter/lib/filter/filter.js +0 -552
  800. package/esm2022/filter/lib/filter/filter.js.map +0 -1
  801. package/esm2022/filter/lib/filter.types.js +0 -1
  802. package/esm2022/filter/lib/filter.types.js.map +0 -1
  803. package/esm2022/filter/lib/smart-filter-bar/smart-filter-bar.js +0 -518
  804. package/esm2022/filter/lib/smart-filter-bar/smart-filter-bar.js.map +0 -1
  805. package/esm2022/filter/malva-ui-core-filter.js +0 -5
  806. package/esm2022/filter/malva-ui-core-filter.js.map +0 -1
  807. package/esm2022/form/index.js +0 -7
  808. package/esm2022/form/index.js.map +0 -1
  809. package/esm2022/form/lib/fieldset/fieldset.js +0 -101
  810. package/esm2022/form/lib/fieldset/fieldset.js.map +0 -1
  811. package/esm2022/form/lib/fieldset-span.js +0 -49
  812. package/esm2022/form/lib/fieldset-span.js.map +0 -1
  813. package/esm2022/form/lib/form/form.js +0 -60
  814. package/esm2022/form/lib/form/form.js.map +0 -1
  815. package/esm2022/form/lib/form-actions.js +0 -34
  816. package/esm2022/form/lib/form-actions.js.map +0 -1
  817. package/esm2022/form/lib/form-gap.js +0 -15
  818. package/esm2022/form/lib/form-gap.js.map +0 -1
  819. package/esm2022/form/lib/form-header.js +0 -27
  820. package/esm2022/form/lib/form-header.js.map +0 -1
  821. package/esm2022/form/lib/form.types.js +0 -1
  822. package/esm2022/form/lib/form.types.js.map +0 -1
  823. package/esm2022/form/malva-ui-core-form.js +0 -5
  824. package/esm2022/form/malva-ui-core-form.js.map +0 -1
  825. package/esm2022/form-utils/index.js +0 -16
  826. package/esm2022/form-utils/index.js.map +0 -1
  827. package/esm2022/form-utils/lib/aria-value-bridge.js +0 -57
  828. package/esm2022/form-utils/lib/aria-value-bridge.js.map +0 -1
  829. package/esm2022/form-utils/lib/description/description.js +0 -24
  830. package/esm2022/form-utils/lib/description/description.js.map +0 -1
  831. package/esm2022/form-utils/lib/focusable-group-base.js +0 -87
  832. package/esm2022/form-utils/lib/focusable-group-base.js.map +0 -1
  833. package/esm2022/form-utils/lib/form-control-base/signal-form-control-base.js +0 -192
  834. package/esm2022/form-utils/lib/form-control-base/signal-form-control-base.js.map +0 -1
  835. package/esm2022/form-utils/lib/form-control-sides.js +0 -34
  836. package/esm2022/form-utils/lib/form-control-sides.js.map +0 -1
  837. package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper-control.js +0 -14
  838. package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper-control.js.map +0 -1
  839. package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper.js +0 -47
  840. package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper.js.map +0 -1
  841. package/esm2022/form-utils/lib/form-field/form-field.js +0 -245
  842. package/esm2022/form-utils/lib/form-field/form-field.js.map +0 -1
  843. package/esm2022/form-utils/lib/hint/hint.js +0 -11
  844. package/esm2022/form-utils/lib/hint/hint.js.map +0 -1
  845. package/esm2022/form-utils/lib/label/label.js +0 -55
  846. package/esm2022/form-utils/lib/label/label.js.map +0 -1
  847. package/esm2022/form-utils/lib/message/message.js +0 -20
  848. package/esm2022/form-utils/lib/message/message.js.map +0 -1
  849. package/esm2022/form-utils/lib/models/error-display-strategy.js +0 -1
  850. package/esm2022/form-utils/lib/models/error-display-strategy.js.map +0 -1
  851. package/esm2022/form-utils/lib/models/form-control-connector.js +0 -3
  852. package/esm2022/form-utils/lib/models/form-control-connector.js.map +0 -1
  853. package/esm2022/form-utils/lib/models/form-state.js +0 -1
  854. package/esm2022/form-utils/lib/models/form-state.js.map +0 -1
  855. package/esm2022/form-utils/lib/selection.service.js +0 -81
  856. package/esm2022/form-utils/lib/selection.service.js.map +0 -1
  857. package/esm2022/form-utils/malva-ui-core-form-utils.js +0 -5
  858. package/esm2022/form-utils/malva-ui-core-form-utils.js.map +0 -1
  859. package/esm2022/form-utils/testing/index.js +0 -2
  860. package/esm2022/form-utils/testing/index.js.map +0 -1
  861. package/esm2022/form-utils/testing/lib/forms-binding-matrix.js +0 -32
  862. package/esm2022/form-utils/testing/lib/forms-binding-matrix.js.map +0 -1
  863. package/esm2022/form-utils/testing/malva-ui-core-form-utils-testing.js +0 -5
  864. package/esm2022/form-utils/testing/malva-ui-core-form-utils-testing.js.map +0 -1
  865. package/esm2022/index.js +0 -70
  866. package/esm2022/index.js.map +0 -1
  867. package/esm2022/input/index.js +0 -4
  868. package/esm2022/input/index.js.map +0 -1
  869. package/esm2022/input/lib/input/input-native.js +0 -49
  870. package/esm2022/input/lib/input/input-native.js.map +0 -1
  871. package/esm2022/input/lib/input/input-value-accessor.js +0 -4
  872. package/esm2022/input/lib/input/input-value-accessor.js.map +0 -1
  873. package/esm2022/input/lib/input/input.js +0 -277
  874. package/esm2022/input/lib/input/input.js.map +0 -1
  875. package/esm2022/input/lib/input/password-strength.js +0 -46
  876. package/esm2022/input/lib/input/password-strength.js.map +0 -1
  877. package/esm2022/input/malva-ui-core-input.js +0 -5
  878. package/esm2022/input/malva-ui-core-input.js.map +0 -1
  879. package/esm2022/kbd/index.js +0 -2
  880. package/esm2022/kbd/index.js.map +0 -1
  881. package/esm2022/kbd/lib/kbd/kbd.js +0 -124
  882. package/esm2022/kbd/lib/kbd/kbd.js.map +0 -1
  883. package/esm2022/kbd/malva-ui-core-kbd.js +0 -5
  884. package/esm2022/kbd/malva-ui-core-kbd.js.map +0 -1
  885. package/esm2022/layout/index.js +0 -5
  886. package/esm2022/layout/index.js.map +0 -1
  887. package/esm2022/layout/lib/layout/directives/MlvLayoutSide.js +0 -14
  888. package/esm2022/layout/lib/layout/directives/MlvLayoutSide.js.map +0 -1
  889. package/esm2022/layout/lib/layout/directives/MlvLayoutTop.js +0 -14
  890. package/esm2022/layout/lib/layout/directives/MlvLayoutTop.js.map +0 -1
  891. package/esm2022/layout/lib/layout/layout.js +0 -43
  892. package/esm2022/layout/lib/layout/layout.js.map +0 -1
  893. package/esm2022/layout/lib/layout/services/theme.service.js +0 -121
  894. package/esm2022/layout/lib/layout/services/theme.service.js.map +0 -1
  895. package/esm2022/layout/malva-ui-core-layout.js +0 -5
  896. package/esm2022/layout/malva-ui-core-layout.js.map +0 -1
  897. package/esm2022/link/index.js +0 -3
  898. package/esm2022/link/index.js.map +0 -1
  899. package/esm2022/link/lib/link/link.directives.js +0 -24
  900. package/esm2022/link/lib/link/link.directives.js.map +0 -1
  901. package/esm2022/link/lib/link/link.js +0 -61
  902. package/esm2022/link/lib/link/link.js.map +0 -1
  903. package/esm2022/link/malva-ui-core-link.js +0 -5
  904. package/esm2022/link/malva-ui-core-link.js.map +0 -1
  905. package/esm2022/list/index.js +0 -14
  906. package/esm2022/list/index.js.map +0 -1
  907. package/esm2022/list/lib/list/list.js +0 -28
  908. package/esm2022/list/lib/list/list.js.map +0 -1
  909. package/esm2022/list/lib/list-item/list-item.js +0 -125
  910. package/esm2022/list/lib/list-item/list-item.js.map +0 -1
  911. package/esm2022/list/lib/list-item-actions.js +0 -23
  912. package/esm2022/list/lib/list-item-actions.js.map +0 -1
  913. package/esm2022/list/lib/list-item-byline.js +0 -13
  914. package/esm2022/list/lib/list-item-byline.js.map +0 -1
  915. package/esm2022/list/lib/list-item-group/list-item-group.js +0 -25
  916. package/esm2022/list/lib/list-item-group/list-item-group.js.map +0 -1
  917. package/esm2022/list/lib/list-item-link/list-item-link.js +0 -20
  918. package/esm2022/list/lib/list-item-link/list-item-link.js.map +0 -1
  919. package/esm2022/list/lib/list-item-media.js +0 -13
  920. package/esm2022/list/lib/list-item-media.js.map +0 -1
  921. package/esm2022/list/lib/list-item-meta.js +0 -13
  922. package/esm2022/list/lib/list-item-meta.js.map +0 -1
  923. package/esm2022/list/lib/list-item-prefix.js +0 -13
  924. package/esm2022/list/lib/list-item-prefix.js.map +0 -1
  925. package/esm2022/list/lib/list-item-suffix.js +0 -13
  926. package/esm2022/list/lib/list-item-suffix.js.map +0 -1
  927. package/esm2022/list/lib/list-item-template.js +0 -14
  928. package/esm2022/list/lib/list-item-template.js.map +0 -1
  929. package/esm2022/list/lib/list-item-title.js +0 -13
  930. package/esm2022/list/lib/list-item-title.js.map +0 -1
  931. package/esm2022/list/lib/list-selectable.js +0 -116
  932. package/esm2022/list/lib/list-selectable.js.map +0 -1
  933. package/esm2022/list/malva-ui-core-list.js +0 -5
  934. package/esm2022/list/malva-ui-core-list.js.map +0 -1
  935. package/esm2022/loader/index.js +0 -2
  936. package/esm2022/loader/index.js.map +0 -1
  937. package/esm2022/loader/lib/loader/loader.js +0 -134
  938. package/esm2022/loader/lib/loader/loader.js.map +0 -1
  939. package/esm2022/loader/malva-ui-core-loader.js +0 -5
  940. package/esm2022/loader/malva-ui-core-loader.js.map +0 -1
  941. package/esm2022/malva-ui-core.js +0 -5
  942. package/esm2022/malva-ui-core.js.map +0 -1
  943. package/esm2022/menu/index.js +0 -10
  944. package/esm2022/menu/index.js.map +0 -1
  945. package/esm2022/menu/lib/menu/menu-group-label.js +0 -35
  946. package/esm2022/menu/lib/menu/menu-group-label.js.map +0 -1
  947. package/esm2022/menu/lib/menu/menu-group.js +0 -44
  948. package/esm2022/menu/lib/menu/menu-group.js.map +0 -1
  949. package/esm2022/menu/lib/menu/menu-item.js +0 -117
  950. package/esm2022/menu/lib/menu/menu-item.js.map +0 -1
  951. package/esm2022/menu/lib/menu/menu-separator.js +0 -41
  952. package/esm2022/menu/lib/menu/menu-separator.js.map +0 -1
  953. package/esm2022/menu/lib/menu/menu-trigger.js +0 -653
  954. package/esm2022/menu/lib/menu/menu-trigger.js.map +0 -1
  955. package/esm2022/menu/lib/menu/menu.js +0 -308
  956. package/esm2022/menu/lib/menu/menu.js.map +0 -1
  957. package/esm2022/menu/lib/menu/menu.types.js +0 -4
  958. package/esm2022/menu/lib/menu/menu.types.js.map +0 -1
  959. package/esm2022/menu/lib/menu/menubar.js +0 -257
  960. package/esm2022/menu/lib/menu/menubar.js.map +0 -1
  961. package/esm2022/menu/lib/menu/menubar.types.js +0 -4
  962. package/esm2022/menu/lib/menu/menubar.types.js.map +0 -1
  963. package/esm2022/menu/lib/menu/submenu-aim.js +0 -30
  964. package/esm2022/menu/lib/menu/submenu-aim.js.map +0 -1
  965. package/esm2022/menu/malva-ui-core-menu.js +0 -5
  966. package/esm2022/menu/malva-ui-core-menu.js.map +0 -1
  967. package/esm2022/notification/index.js +0 -5
  968. package/esm2022/notification/index.js.map +0 -1
  969. package/esm2022/notification/lib/notification-item/notification-item.js +0 -65
  970. package/esm2022/notification/lib/notification-item/notification-item.js.map +0 -1
  971. package/esm2022/notification/lib/notification-ref.js +0 -13
  972. package/esm2022/notification/lib/notification-ref.js.map +0 -1
  973. package/esm2022/notification/lib/notification.service.js +0 -118
  974. package/esm2022/notification/lib/notification.service.js.map +0 -1
  975. package/esm2022/notification/lib/notification.types.js +0 -6
  976. package/esm2022/notification/lib/notification.types.js.map +0 -1
  977. package/esm2022/notification/malva-ui-core-notification.js +0 -5
  978. package/esm2022/notification/malva-ui-core-notification.js.map +0 -1
  979. package/esm2022/number-input/index.js +0 -2
  980. package/esm2022/number-input/index.js.map +0 -1
  981. package/esm2022/number-input/lib/number-input/number-input.js +0 -395
  982. package/esm2022/number-input/lib/number-input/number-input.js.map +0 -1
  983. package/esm2022/number-input/malva-ui-core-number-input.js +0 -5
  984. package/esm2022/number-input/malva-ui-core-number-input.js.map +0 -1
  985. package/esm2022/page/index.js +0 -15
  986. package/esm2022/page/index.js.map +0 -1
  987. package/esm2022/page/lib/page/page-scroll.token.js +0 -9
  988. package/esm2022/page/lib/page/page-scroll.token.js.map +0 -1
  989. package/esm2022/page/lib/page/page-snap-controller.js +0 -170
  990. package/esm2022/page/lib/page/page-snap-controller.js.map +0 -1
  991. package/esm2022/page/lib/page/page-snap.directive.js +0 -65
  992. package/esm2022/page/lib/page/page-snap.directive.js.map +0 -1
  993. package/esm2022/page/lib/page/page.js +0 -173
  994. package/esm2022/page/lib/page/page.js.map +0 -1
  995. package/esm2022/page/lib/page-content/page-aside.js +0 -13
  996. package/esm2022/page/lib/page-content/page-aside.js.map +0 -1
  997. package/esm2022/page/lib/page-content/page-content.js +0 -72
  998. package/esm2022/page/lib/page-content/page-content.js.map +0 -1
  999. package/esm2022/page/lib/page-dock/page-dock.js +0 -128
  1000. package/esm2022/page/lib/page-dock/page-dock.js.map +0 -1
  1001. package/esm2022/page/lib/page-dock/page-dock.slots.js +0 -39
  1002. package/esm2022/page/lib/page-dock/page-dock.slots.js.map +0 -1
  1003. package/esm2022/page/lib/page-header/page-header.directives.js +0 -88
  1004. package/esm2022/page/lib/page-header/page-header.directives.js.map +0 -1
  1005. package/esm2022/page/lib/page-header/page-header.js +0 -124
  1006. package/esm2022/page/lib/page-header/page-header.js.map +0 -1
  1007. package/esm2022/page/lib/page-shell/page-shell-color.js +0 -193
  1008. package/esm2022/page/lib/page-shell/page-shell-color.js.map +0 -1
  1009. package/esm2022/page/lib/page-shell/page-shell-css-color.js +0 -207
  1010. package/esm2022/page/lib/page-shell/page-shell-css-color.js.map +0 -1
  1011. package/esm2022/page/lib/page-shell/page-shell.js +0 -131
  1012. package/esm2022/page/lib/page-shell/page-shell.js.map +0 -1
  1013. package/esm2022/page/lib/page-shell/page-shell.slots.js +0 -41
  1014. package/esm2022/page/lib/page-shell/page-shell.slots.js.map +0 -1
  1015. package/esm2022/page/lib/page-summary/page-summary-item.js +0 -26
  1016. package/esm2022/page/lib/page-summary/page-summary-item.js.map +0 -1
  1017. package/esm2022/page/lib/page-summary/page-summary.js +0 -87
  1018. package/esm2022/page/lib/page-summary/page-summary.js.map +0 -1
  1019. package/esm2022/page/malva-ui-core-page.js +0 -5
  1020. package/esm2022/page/malva-ui-core-page.js.map +0 -1
  1021. package/esm2022/pagination/index.js +0 -5
  1022. package/esm2022/pagination/index.js.map +0 -1
  1023. package/esm2022/pagination/lib/pagination/pagination.directives.js +0 -58
  1024. package/esm2022/pagination/lib/pagination/pagination.directives.js.map +0 -1
  1025. package/esm2022/pagination/lib/pagination/pagination.js +0 -293
  1026. package/esm2022/pagination/lib/pagination/pagination.js.map +0 -1
  1027. package/esm2022/pagination/lib/pagination/pagination.model.js +0 -1
  1028. package/esm2022/pagination/lib/pagination/pagination.model.js.map +0 -1
  1029. package/esm2022/pagination/lib/pagination/pagination.service.js +0 -108
  1030. package/esm2022/pagination/lib/pagination/pagination.service.js.map +0 -1
  1031. package/esm2022/pagination/malva-ui-core-pagination.js +0 -5
  1032. package/esm2022/pagination/malva-ui-core-pagination.js.map +0 -1
  1033. package/esm2022/pin-input/index.js +0 -3
  1034. package/esm2022/pin-input/index.js.map +0 -1
  1035. package/esm2022/pin-input/lib/pin-input/pin-input-separator.js +0 -31
  1036. package/esm2022/pin-input/lib/pin-input/pin-input-separator.js.map +0 -1
  1037. package/esm2022/pin-input/lib/pin-input/pin-input.js +0 -365
  1038. package/esm2022/pin-input/lib/pin-input/pin-input.js.map +0 -1
  1039. package/esm2022/pin-input/malva-ui-core-pin-input.js +0 -5
  1040. package/esm2022/pin-input/malva-ui-core-pin-input.js.map +0 -1
  1041. package/esm2022/popup/index.js +0 -10
  1042. package/esm2022/popup/index.js.map +0 -1
  1043. package/esm2022/popup/lib/popup/popup.js +0 -500
  1044. package/esm2022/popup/lib/popup/popup.js.map +0 -1
  1045. package/esm2022/popup/lib/popup-container/popup-container.js +0 -169
  1046. package/esm2022/popup/lib/popup-container/popup-container.js.map +0 -1
  1047. package/esm2022/popup/lib/popup-container/popup-container.token.js +0 -9
  1048. package/esm2022/popup/lib/popup-container/popup-container.token.js.map +0 -1
  1049. package/esm2022/popup/lib/popup-content.js +0 -14
  1050. package/esm2022/popup/lib/popup-content.js.map +0 -1
  1051. package/esm2022/popup/lib/popup-header-content.js +0 -26
  1052. package/esm2022/popup/lib/popup-header-content.js.map +0 -1
  1053. package/esm2022/popup/lib/popup-pinned-content.js +0 -25
  1054. package/esm2022/popup/lib/popup-pinned-content.js.map +0 -1
  1055. package/esm2022/popup/lib/popup-positions.js +0 -252
  1056. package/esm2022/popup/lib/popup-positions.js.map +0 -1
  1057. package/esm2022/popup/lib/popup-trigger/popup-trigger.js +0 -308
  1058. package/esm2022/popup/lib/popup-trigger/popup-trigger.js.map +0 -1
  1059. package/esm2022/popup/lib/popup.service.js +0 -188
  1060. package/esm2022/popup/lib/popup.service.js.map +0 -1
  1061. package/esm2022/popup/malva-ui-core-popup.js +0 -5
  1062. package/esm2022/popup/malva-ui-core-popup.js.map +0 -1
  1063. package/esm2022/progress/index.js +0 -2
  1064. package/esm2022/progress/index.js.map +0 -1
  1065. package/esm2022/progress/lib/progress/progress.js +0 -102
  1066. package/esm2022/progress/lib/progress/progress.js.map +0 -1
  1067. package/esm2022/progress/malva-ui-core-progress.js +0 -5
  1068. package/esm2022/progress/malva-ui-core-progress.js.map +0 -1
  1069. package/esm2022/radio/index.js +0 -3
  1070. package/esm2022/radio/index.js.map +0 -1
  1071. package/esm2022/radio/lib/radio/radio.js +0 -134
  1072. package/esm2022/radio/lib/radio/radio.js.map +0 -1
  1073. package/esm2022/radio/lib/radio-group/radio-group.js +0 -176
  1074. package/esm2022/radio/lib/radio-group/radio-group.js.map +0 -1
  1075. package/esm2022/radio/lib/radio-group-token.js +0 -3
  1076. package/esm2022/radio/lib/radio-group-token.js.map +0 -1
  1077. package/esm2022/radio/malva-ui-core-radio.js +0 -5
  1078. package/esm2022/radio/malva-ui-core-radio.js.map +0 -1
  1079. package/esm2022/rating/index.js +0 -2
  1080. package/esm2022/rating/index.js.map +0 -1
  1081. package/esm2022/rating/lib/rating/rating.js +0 -208
  1082. package/esm2022/rating/lib/rating/rating.js.map +0 -1
  1083. package/esm2022/rating/malva-ui-core-rating.js +0 -5
  1084. package/esm2022/rating/malva-ui-core-rating.js.map +0 -1
  1085. package/esm2022/scrollbar/index.js +0 -2
  1086. package/esm2022/scrollbar/index.js.map +0 -1
  1087. package/esm2022/scrollbar/lib/scrollbar/scrollbar.js +0 -388
  1088. package/esm2022/scrollbar/lib/scrollbar/scrollbar.js.map +0 -1
  1089. package/esm2022/scrollbar/malva-ui-core-scrollbar.js +0 -5
  1090. package/esm2022/scrollbar/malva-ui-core-scrollbar.js.map +0 -1
  1091. package/esm2022/search-field/index.js +0 -3
  1092. package/esm2022/search-field/index.js.map +0 -1
  1093. package/esm2022/search-field/lib/search-field/search-field.js +0 -535
  1094. package/esm2022/search-field/lib/search-field/search-field.js.map +0 -1
  1095. package/esm2022/search-field/lib/search-field/search-overlay-content.js +0 -35
  1096. package/esm2022/search-field/lib/search-field/search-overlay-content.js.map +0 -1
  1097. package/esm2022/search-field/malva-ui-core-search-field.js +0 -5
  1098. package/esm2022/search-field/malva-ui-core-search-field.js.map +0 -1
  1099. package/esm2022/segmented/index.js +0 -5
  1100. package/esm2022/segmented/index.js.map +0 -1
  1101. package/esm2022/segmented/lib/segmented/segmented.js +0 -248
  1102. package/esm2022/segmented/lib/segmented/segmented.js.map +0 -1
  1103. package/esm2022/segmented/lib/segmented-item/segmented-item.js +0 -194
  1104. package/esm2022/segmented/lib/segmented-item/segmented-item.js.map +0 -1
  1105. package/esm2022/segmented/lib/segmented-token.js +0 -4
  1106. package/esm2022/segmented/lib/segmented-token.js.map +0 -1
  1107. package/esm2022/segmented/lib/segmented.types.js +0 -1
  1108. package/esm2022/segmented/lib/segmented.types.js.map +0 -1
  1109. package/esm2022/segmented/malva-ui-core-segmented.js +0 -5
  1110. package/esm2022/segmented/malva-ui-core-segmented.js.map +0 -1
  1111. package/esm2022/select/index.js +0 -4
  1112. package/esm2022/select/index.js.map +0 -1
  1113. package/esm2022/select/lib/select/select.js +0 -685
  1114. package/esm2022/select/lib/select/select.js.map +0 -1
  1115. package/esm2022/select/lib/select-option.js +0 -2
  1116. package/esm2022/select/lib/select-option.js.map +0 -1
  1117. package/esm2022/select/lib/select-template.directives.js +0 -34
  1118. package/esm2022/select/lib/select-template.directives.js.map +0 -1
  1119. package/esm2022/select/malva-ui-core-select.js +0 -5
  1120. package/esm2022/select/malva-ui-core-select.js.map +0 -1
  1121. package/esm2022/sidebar/index.js +0 -16
  1122. package/esm2022/sidebar/index.js.map +0 -1
  1123. package/esm2022/sidebar/lib/sidebar/sidebar.js +0 -251
  1124. package/esm2022/sidebar/lib/sidebar/sidebar.js.map +0 -1
  1125. package/esm2022/sidebar/lib/sidebar-content.js +0 -37
  1126. package/esm2022/sidebar/lib/sidebar-content.js.map +0 -1
  1127. package/esm2022/sidebar/lib/sidebar-context.js +0 -3
  1128. package/esm2022/sidebar/lib/sidebar-context.js.map +0 -1
  1129. package/esm2022/sidebar/lib/sidebar-footer.js +0 -20
  1130. package/esm2022/sidebar/lib/sidebar-footer.js.map +0 -1
  1131. package/esm2022/sidebar/lib/sidebar-group/sidebar-group.js +0 -341
  1132. package/esm2022/sidebar/lib/sidebar-group/sidebar-group.js.map +0 -1
  1133. package/esm2022/sidebar/lib/sidebar-header.js +0 -20
  1134. package/esm2022/sidebar/lib/sidebar-header.js.map +0 -1
  1135. package/esm2022/sidebar/lib/sidebar-item/sidebar-item.js +0 -216
  1136. package/esm2022/sidebar/lib/sidebar-item/sidebar-item.js.map +0 -1
  1137. package/esm2022/sidebar/lib/sidebar-item-host.js +0 -39
  1138. package/esm2022/sidebar/lib/sidebar-item-host.js.map +0 -1
  1139. package/esm2022/sidebar/lib/sidebar-item-icon.js +0 -14
  1140. package/esm2022/sidebar/lib/sidebar-item-icon.js.map +0 -1
  1141. package/esm2022/sidebar/lib/sidebar-mode.js +0 -1
  1142. package/esm2022/sidebar/lib/sidebar-mode.js.map +0 -1
  1143. package/esm2022/sidebar/lib/sidebar-rail/sidebar-rail.js +0 -202
  1144. package/esm2022/sidebar/lib/sidebar-rail/sidebar-rail.js.map +0 -1
  1145. package/esm2022/sidebar/lib/sidebar-trigger/sidebar-trigger.js +0 -159
  1146. package/esm2022/sidebar/lib/sidebar-trigger/sidebar-trigger.js.map +0 -1
  1147. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.js +0 -35
  1148. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.js.map +0 -1
  1149. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.js +0 -107
  1150. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.js.map +0 -1
  1151. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.types.js +0 -1
  1152. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.types.js.map +0 -1
  1153. package/esm2022/sidebar/malva-ui-core-sidebar.js +0 -5
  1154. package/esm2022/sidebar/malva-ui-core-sidebar.js.map +0 -1
  1155. package/esm2022/skeleton/index.js +0 -2
  1156. package/esm2022/skeleton/index.js.map +0 -1
  1157. package/esm2022/skeleton/lib/skeleton/skeleton.js +0 -78
  1158. package/esm2022/skeleton/lib/skeleton/skeleton.js.map +0 -1
  1159. package/esm2022/skeleton/malva-ui-core-skeleton.js +0 -5
  1160. package/esm2022/skeleton/malva-ui-core-skeleton.js.map +0 -1
  1161. package/esm2022/slider/index.js +0 -3
  1162. package/esm2022/slider/index.js.map +0 -1
  1163. package/esm2022/slider/lib/slider/slider-tooltip-def.js +0 -31
  1164. package/esm2022/slider/lib/slider/slider-tooltip-def.js.map +0 -1
  1165. package/esm2022/slider/lib/slider/slider.js +0 -468
  1166. package/esm2022/slider/lib/slider/slider.js.map +0 -1
  1167. package/esm2022/slider/malva-ui-core-slider.js +0 -5
  1168. package/esm2022/slider/malva-ui-core-slider.js.map +0 -1
  1169. package/esm2022/split-pane/index.js +0 -4
  1170. package/esm2022/split-pane/index.js.map +0 -1
  1171. package/esm2022/split-pane/lib/split-pane/split-pane-panel.js +0 -49
  1172. package/esm2022/split-pane/lib/split-pane/split-pane-panel.js.map +0 -1
  1173. package/esm2022/split-pane/lib/split-pane/split-pane.js +0 -290
  1174. package/esm2022/split-pane/lib/split-pane/split-pane.js.map +0 -1
  1175. package/esm2022/split-pane/lib/split-pane/split-pane.types.js +0 -1
  1176. package/esm2022/split-pane/lib/split-pane/split-pane.types.js.map +0 -1
  1177. package/esm2022/split-pane/malva-ui-core-split-pane.js +0 -5
  1178. package/esm2022/split-pane/malva-ui-core-split-pane.js.map +0 -1
  1179. package/esm2022/status-indicator/index.js +0 -2
  1180. package/esm2022/status-indicator/index.js.map +0 -1
  1181. package/esm2022/status-indicator/lib/status-indicator/status-indicator.js +0 -71
  1182. package/esm2022/status-indicator/lib/status-indicator/status-indicator.js.map +0 -1
  1183. package/esm2022/status-indicator/malva-ui-core-status-indicator.js +0 -5
  1184. package/esm2022/status-indicator/malva-ui-core-status-indicator.js.map +0 -1
  1185. package/esm2022/stepper/index.js +0 -5
  1186. package/esm2022/stepper/index.js.map +0 -1
  1187. package/esm2022/stepper/lib/stepper/step-header.js +0 -46
  1188. package/esm2022/stepper/lib/stepper/step-header.js.map +0 -1
  1189. package/esm2022/stepper/lib/stepper/step.js +0 -65
  1190. package/esm2022/stepper/lib/stepper/step.js.map +0 -1
  1191. package/esm2022/stepper/lib/stepper/stepper-token.js +0 -4
  1192. package/esm2022/stepper/lib/stepper/stepper-token.js.map +0 -1
  1193. package/esm2022/stepper/lib/stepper/stepper.js +0 -216
  1194. package/esm2022/stepper/lib/stepper/stepper.js.map +0 -1
  1195. package/esm2022/stepper/lib/stepper/stepper.types.js +0 -1
  1196. package/esm2022/stepper/lib/stepper/stepper.types.js.map +0 -1
  1197. package/esm2022/stepper/malva-ui-core-stepper.js +0 -5
  1198. package/esm2022/stepper/malva-ui-core-stepper.js.map +0 -1
  1199. package/esm2022/switch/index.js +0 -3
  1200. package/esm2022/switch/index.js.map +0 -1
  1201. package/esm2022/switch/lib/switch/switch.js +0 -190
  1202. package/esm2022/switch/lib/switch/switch.js.map +0 -1
  1203. package/esm2022/switch/lib/switch-group/switch-group.js +0 -68
  1204. package/esm2022/switch/lib/switch-group/switch-group.js.map +0 -1
  1205. package/esm2022/switch/lib/switch-group-token.js +0 -3
  1206. package/esm2022/switch/lib/switch-group-token.js.map +0 -1
  1207. package/esm2022/switch/malva-ui-core-switch.js +0 -5
  1208. package/esm2022/switch/malva-ui-core-switch.js.map +0 -1
  1209. package/esm2022/tabs/index.js +0 -9
  1210. package/esm2022/tabs/index.js.map +0 -1
  1211. package/esm2022/tabs/lib/tab/tab.js +0 -72
  1212. package/esm2022/tabs/lib/tab/tab.js.map +0 -1
  1213. package/esm2022/tabs/lib/tab-content/tab-content.js +0 -19
  1214. package/esm2022/tabs/lib/tab-content/tab-content.js.map +0 -1
  1215. package/esm2022/tabs/lib/tab-content-def.js +0 -14
  1216. package/esm2022/tabs/lib/tab-content-def.js.map +0 -1
  1217. package/esm2022/tabs/lib/tab-def.js +0 -17
  1218. package/esm2022/tabs/lib/tab-def.js.map +0 -1
  1219. package/esm2022/tabs/lib/tab-group-token.js +0 -3
  1220. package/esm2022/tabs/lib/tab-group-token.js.map +0 -1
  1221. package/esm2022/tabs/lib/tab-item/tab-item.js +0 -44
  1222. package/esm2022/tabs/lib/tab-item/tab-item.js.map +0 -1
  1223. package/esm2022/tabs/lib/tabs/tabs.js +0 -542
  1224. package/esm2022/tabs/lib/tabs/tabs.js.map +0 -1
  1225. package/esm2022/tabs/lib/tabs.service.js +0 -83
  1226. package/esm2022/tabs/lib/tabs.service.js.map +0 -1
  1227. package/esm2022/tabs/malva-ui-core-tabs.js +0 -5
  1228. package/esm2022/tabs/malva-ui-core-tabs.js.map +0 -1
  1229. package/esm2022/textarea/index.js +0 -2
  1230. package/esm2022/textarea/index.js.map +0 -1
  1231. package/esm2022/textarea/lib/textarea/textarea.js +0 -194
  1232. package/esm2022/textarea/lib/textarea/textarea.js.map +0 -1
  1233. package/esm2022/textarea/malva-ui-core-textarea.js +0 -5
  1234. package/esm2022/textarea/malva-ui-core-textarea.js.map +0 -1
  1235. package/esm2022/tile/index.js +0 -3
  1236. package/esm2022/tile/index.js.map +0 -1
  1237. package/esm2022/tile/lib/tile/tile.js +0 -39
  1238. package/esm2022/tile/lib/tile/tile.js.map +0 -1
  1239. package/esm2022/tile/lib/tile-header.js +0 -14
  1240. package/esm2022/tile/lib/tile-header.js.map +0 -1
  1241. package/esm2022/tile/malva-ui-core-tile.js +0 -5
  1242. package/esm2022/tile/malva-ui-core-tile.js.map +0 -1
  1243. package/esm2022/time-picker/index.js +0 -2
  1244. package/esm2022/time-picker/index.js.map +0 -1
  1245. package/esm2022/time-picker/lib/time-picker/time-picker.js +0 -310
  1246. package/esm2022/time-picker/lib/time-picker/time-picker.js.map +0 -1
  1247. package/esm2022/time-picker/lib/time-picker-column/time-picker-column.js +0 -216
  1248. package/esm2022/time-picker/lib/time-picker-column/time-picker-column.js.map +0 -1
  1249. package/esm2022/time-picker/malva-ui-core-time-picker.js +0 -5
  1250. package/esm2022/time-picker/malva-ui-core-time-picker.js.map +0 -1
  1251. package/esm2022/timeline/index.js +0 -6
  1252. package/esm2022/timeline/index.js.map +0 -1
  1253. package/esm2022/timeline/lib/timeline/timeline-item-icon.js +0 -31
  1254. package/esm2022/timeline/lib/timeline/timeline-item-icon.js.map +0 -1
  1255. package/esm2022/timeline/lib/timeline/timeline-item-meta.js +0 -31
  1256. package/esm2022/timeline/lib/timeline/timeline-item-meta.js.map +0 -1
  1257. package/esm2022/timeline/lib/timeline/timeline-item.js +0 -69
  1258. package/esm2022/timeline/lib/timeline/timeline-item.js.map +0 -1
  1259. package/esm2022/timeline/lib/timeline/timeline.js +0 -36
  1260. package/esm2022/timeline/lib/timeline/timeline.js.map +0 -1
  1261. package/esm2022/timeline/lib/timeline/timeline.types.js +0 -1
  1262. package/esm2022/timeline/lib/timeline/timeline.types.js.map +0 -1
  1263. package/esm2022/timeline/malva-ui-core-timeline.js +0 -5
  1264. package/esm2022/timeline/malva-ui-core-timeline.js.map +0 -1
  1265. package/esm2022/title/index.js +0 -2
  1266. package/esm2022/title/index.js.map +0 -1
  1267. package/esm2022/title/lib/title/title.js +0 -171
  1268. package/esm2022/title/lib/title/title.js.map +0 -1
  1269. package/esm2022/title/malva-ui-core-title.js +0 -5
  1270. package/esm2022/title/malva-ui-core-title.js.map +0 -1
  1271. package/esm2022/toast/index.js +0 -13
  1272. package/esm2022/toast/index.js.map +0 -1
  1273. package/esm2022/toast/lib/abstract-toast-container.js +0 -50
  1274. package/esm2022/toast/lib/abstract-toast-container.js.map +0 -1
  1275. package/esm2022/toast/lib/abstract-toast-item.js +0 -75
  1276. package/esm2022/toast/lib/abstract-toast-item.js.map +0 -1
  1277. package/esm2022/toast/lib/abstract-toast.service.js +0 -176
  1278. package/esm2022/toast/lib/abstract-toast.service.js.map +0 -1
  1279. package/esm2022/toast/lib/toast-container/toast-container.js +0 -61
  1280. package/esm2022/toast/lib/toast-container/toast-container.js.map +0 -1
  1281. package/esm2022/toast/lib/toast-item/toast-item.js +0 -62
  1282. package/esm2022/toast/lib/toast-item/toast-item.js.map +0 -1
  1283. package/esm2022/toast/lib/toast-ref.js +0 -54
  1284. package/esm2022/toast/lib/toast-ref.js.map +0 -1
  1285. package/esm2022/toast/lib/toast-timer.js +0 -37
  1286. package/esm2022/toast/lib/toast-timer.js.map +0 -1
  1287. package/esm2022/toast/lib/toast.directives.js +0 -76
  1288. package/esm2022/toast/lib/toast.directives.js.map +0 -1
  1289. package/esm2022/toast/lib/toast.service.js +0 -127
  1290. package/esm2022/toast/lib/toast.service.js.map +0 -1
  1291. package/esm2022/toast/lib/toast.types.js +0 -39
  1292. package/esm2022/toast/lib/toast.types.js.map +0 -1
  1293. package/esm2022/toast/malva-ui-core-toast.js +0 -5
  1294. package/esm2022/toast/malva-ui-core-toast.js.map +0 -1
  1295. package/esm2022/tokenizer/index.js +0 -4
  1296. package/esm2022/tokenizer/index.js.map +0 -1
  1297. package/esm2022/tokenizer/lib/token/token.js +0 -123
  1298. package/esm2022/tokenizer/lib/token/token.js.map +0 -1
  1299. package/esm2022/tokenizer/lib/token-template.js +0 -23
  1300. package/esm2022/tokenizer/lib/token-template.js.map +0 -1
  1301. package/esm2022/tokenizer/lib/tokenizer/tokenizer.js +0 -324
  1302. package/esm2022/tokenizer/lib/tokenizer/tokenizer.js.map +0 -1
  1303. package/esm2022/tokenizer/malva-ui-core-tokenizer.js +0 -5
  1304. package/esm2022/tokenizer/malva-ui-core-tokenizer.js.map +0 -1
  1305. package/esm2022/toolbar/index.js +0 -4
  1306. package/esm2022/toolbar/index.js.map +0 -1
  1307. package/esm2022/toolbar/lib/toolbar/toolbar-spacer.js +0 -13
  1308. package/esm2022/toolbar/lib/toolbar/toolbar-spacer.js.map +0 -1
  1309. package/esm2022/toolbar/lib/toolbar/toolbar-widget.js +0 -106
  1310. package/esm2022/toolbar/lib/toolbar/toolbar-widget.js.map +0 -1
  1311. package/esm2022/toolbar/lib/toolbar/toolbar.js +0 -19
  1312. package/esm2022/toolbar/lib/toolbar/toolbar.js.map +0 -1
  1313. package/esm2022/toolbar/malva-ui-core-toolbar.js +0 -5
  1314. package/esm2022/toolbar/malva-ui-core-toolbar.js.map +0 -1
  1315. package/esm2022/tooltip/index.js +0 -4
  1316. package/esm2022/tooltip/index.js.map +0 -1
  1317. package/esm2022/tooltip/lib/tooltip/tooltip-panel.js +0 -69
  1318. package/esm2022/tooltip/lib/tooltip/tooltip-panel.js.map +0 -1
  1319. package/esm2022/tooltip/lib/tooltip/tooltip.js +0 -352
  1320. package/esm2022/tooltip/lib/tooltip/tooltip.js.map +0 -1
  1321. package/esm2022/tooltip/lib/tooltip/tooltip.types.js +0 -1
  1322. package/esm2022/tooltip/lib/tooltip/tooltip.types.js.map +0 -1
  1323. package/esm2022/tooltip/malva-ui-core-tooltip.js +0 -5
  1324. package/esm2022/tooltip/malva-ui-core-tooltip.js.map +0 -1
  1325. package/esm2022/tree/index.js +0 -5
  1326. package/esm2022/tree/index.js.map +0 -1
  1327. package/esm2022/tree/lib/tree/tree-context.js +0 -7
  1328. package/esm2022/tree/lib/tree/tree-context.js.map +0 -1
  1329. package/esm2022/tree/lib/tree/tree-node-def.js +0 -34
  1330. package/esm2022/tree/lib/tree/tree-node-def.js.map +0 -1
  1331. package/esm2022/tree/lib/tree/tree-node.js +0 -1
  1332. package/esm2022/tree/lib/tree/tree-node.js.map +0 -1
  1333. package/esm2022/tree/lib/tree/tree-subtree.js +0 -107
  1334. package/esm2022/tree/lib/tree/tree-subtree.js.map +0 -1
  1335. package/esm2022/tree/lib/tree/tree.js +0 -362
  1336. package/esm2022/tree/lib/tree/tree.js.map +0 -1
  1337. package/esm2022/tree/malva-ui-core-tree.js +0 -5
  1338. package/esm2022/tree/malva-ui-core-tree.js.map +0 -1
  1339. package/expand/index.d.ts +0 -2
  1340. package/expand/lib/expand/expand-content.d.ts +0 -26
  1341. package/expand/lib/expand/expand.d.ts +0 -74
  1342. package/expand/malva-ui-core-expand.d.ts +0 -5
  1343. package/file-upload/index.d.ts +0 -4
  1344. package/file-upload/lib/file-upload/file-upload.d.ts +0 -138
  1345. package/file-upload/lib/file-upload/file-upload.types.d.ts +0 -42
  1346. package/file-upload/lib/file-upload-action.d.ts +0 -53
  1347. package/file-upload/lib/file-upload-item/file-upload-item.d.ts +0 -30
  1348. package/file-upload/malva-ui-core-file-upload.d.ts +0 -5
  1349. package/filter/index.d.ts +0 -3
  1350. package/filter/lib/filter/filter.d.ts +0 -156
  1351. package/filter/lib/filter.types.d.ts +0 -75
  1352. package/filter/lib/smart-filter-bar/smart-filter-bar.d.ts +0 -153
  1353. package/filter/malva-ui-core-filter.d.ts +0 -5
  1354. package/form/index.d.ts +0 -6
  1355. package/form/lib/fieldset/fieldset.d.ts +0 -58
  1356. package/form/lib/fieldset-span.d.ts +0 -28
  1357. package/form/lib/form/form.d.ts +0 -37
  1358. package/form/lib/form-actions.d.ts +0 -20
  1359. package/form/lib/form-gap.d.ts +0 -5
  1360. package/form/lib/form-header.d.ts +0 -18
  1361. package/form/lib/form.types.d.ts +0 -13
  1362. package/form/malva-ui-core-form.d.ts +0 -5
  1363. package/form-utils/index.d.ts +0 -15
  1364. package/form-utils/lib/aria-value-bridge.d.ts +0 -45
  1365. package/form-utils/lib/description/description.d.ts +0 -16
  1366. package/form-utils/lib/focusable-group-base.d.ts +0 -76
  1367. package/form-utils/lib/form-control-base/signal-form-control-base.d.ts +0 -159
  1368. package/form-utils/lib/form-control-sides.d.ts +0 -20
  1369. package/form-utils/lib/form-control-wrapper/form-control-wrapper-control.d.ts +0 -6
  1370. package/form-utils/lib/form-control-wrapper/form-control-wrapper.d.ts +0 -20
  1371. package/form-utils/lib/form-field/form-field.d.ts +0 -68
  1372. package/form-utils/lib/hint/hint.d.ts +0 -5
  1373. package/form-utils/lib/label/label.d.ts +0 -22
  1374. package/form-utils/lib/message/message.d.ts +0 -7
  1375. package/form-utils/lib/models/error-display-strategy.d.ts +0 -1
  1376. package/form-utils/lib/models/form-control-connector.d.ts +0 -41
  1377. package/form-utils/lib/models/form-state.d.ts +0 -1
  1378. package/form-utils/lib/selection.service.d.ts +0 -27
  1379. package/form-utils/malva-ui-core-form-utils.d.ts +0 -5
  1380. package/form-utils/testing/index.d.ts +0 -1
  1381. package/form-utils/testing/lib/forms-binding-matrix.d.ts +0 -47
  1382. package/form-utils/testing/malva-ui-core-form-utils-testing.d.ts +0 -5
  1383. package/index.d.ts +0 -69
  1384. package/input/index.d.ts +0 -3
  1385. package/input/lib/input/input-native.d.ts +0 -36
  1386. package/input/lib/input/input-value-accessor.d.ts +0 -11
  1387. package/input/lib/input/input.d.ts +0 -189
  1388. package/input/lib/input/password-strength.d.ts +0 -34
  1389. package/input/malva-ui-core-input.d.ts +0 -5
  1390. package/kbd/index.d.ts +0 -1
  1391. package/kbd/lib/kbd/kbd.d.ts +0 -52
  1392. package/kbd/malva-ui-core-kbd.d.ts +0 -5
  1393. package/layout/index.d.ts +0 -4
  1394. package/layout/lib/layout/directives/MlvLayoutSide.d.ts +0 -6
  1395. package/layout/lib/layout/directives/MlvLayoutTop.d.ts +0 -6
  1396. package/layout/lib/layout/layout.d.ts +0 -20
  1397. package/layout/lib/layout/services/theme.service.d.ts +0 -33
  1398. package/layout/malva-ui-core-layout.d.ts +0 -5
  1399. package/link/index.d.ts +0 -2
  1400. package/link/lib/link/link.d.ts +0 -15
  1401. package/link/lib/link/link.directives.d.ts +0 -10
  1402. package/link/malva-ui-core-link.d.ts +0 -5
  1403. package/list/index.d.ts +0 -13
  1404. package/list/lib/list/list.d.ts +0 -25
  1405. package/list/lib/list-item/list-item.d.ts +0 -67
  1406. package/list/lib/list-item-actions.d.ts +0 -12
  1407. package/list/lib/list-item-byline.d.ts +0 -5
  1408. package/list/lib/list-item-group/list-item-group.d.ts +0 -11
  1409. package/list/lib/list-item-link/list-item-link.d.ts +0 -8
  1410. package/list/lib/list-item-media.d.ts +0 -5
  1411. package/list/lib/list-item-meta.d.ts +0 -5
  1412. package/list/lib/list-item-prefix.d.ts +0 -5
  1413. package/list/lib/list-item-suffix.d.ts +0 -5
  1414. package/list/lib/list-item-template.d.ts +0 -10
  1415. package/list/lib/list-item-title.d.ts +0 -5
  1416. package/list/lib/list-selectable.d.ts +0 -73
  1417. package/list/malva-ui-core-list.d.ts +0 -5
  1418. package/loader/index.d.ts +0 -1
  1419. package/loader/lib/loader/loader.d.ts +0 -84
  1420. package/loader/malva-ui-core-loader.d.ts +0 -5
  1421. package/malva-ui-core.d.ts +0 -5
  1422. package/menu/index.d.ts +0 -9
  1423. package/menu/lib/menu/menu-group-label.d.ts +0 -22
  1424. package/menu/lib/menu/menu-group.d.ts +0 -27
  1425. package/menu/lib/menu/menu-item.d.ts +0 -76
  1426. package/menu/lib/menu/menu-separator.d.ts +0 -18
  1427. package/menu/lib/menu/menu-trigger.d.ts +0 -255
  1428. package/menu/lib/menu/menu.d.ts +0 -149
  1429. package/menu/lib/menu/menu.types.d.ts +0 -13
  1430. package/menu/lib/menu/menubar.d.ts +0 -131
  1431. package/menu/lib/menu/menubar.types.d.ts +0 -82
  1432. package/menu/lib/menu/submenu-aim.d.ts +0 -10
  1433. package/menu/malva-ui-core-menu.d.ts +0 -5
  1434. package/notification/index.d.ts +0 -4
  1435. package/notification/lib/notification-item/notification-item.d.ts +0 -20
  1436. package/notification/lib/notification-ref.d.ts +0 -12
  1437. package/notification/lib/notification.service.d.ts +0 -43
  1438. package/notification/lib/notification.types.d.ts +0 -52
  1439. package/notification/malva-ui-core-notification.d.ts +0 -5
  1440. package/number-input/index.d.ts +0 -1
  1441. package/number-input/lib/number-input/number-input.d.ts +0 -162
  1442. package/number-input/malva-ui-core-number-input.d.ts +0 -5
  1443. package/page/index.d.ts +0 -14
  1444. package/page/lib/page/page-scroll.token.d.ts +0 -19
  1445. package/page/lib/page/page-snap-controller.d.ts +0 -87
  1446. package/page/lib/page/page-snap.directive.d.ts +0 -40
  1447. package/page/lib/page/page.d.ts +0 -74
  1448. package/page/lib/page-content/page-aside.d.ts +0 -7
  1449. package/page/lib/page-content/page-content.d.ts +0 -37
  1450. package/page/lib/page-dock/page-dock.d.ts +0 -50
  1451. package/page/lib/page-dock/page-dock.slots.d.ts +0 -16
  1452. package/page/lib/page-header/page-header.d.ts +0 -77
  1453. package/page/lib/page-header/page-header.directives.d.ts +0 -50
  1454. package/page/lib/page-shell/page-shell-color.d.ts +0 -48
  1455. package/page/lib/page-shell/page-shell-css-color.d.ts +0 -20
  1456. package/page/lib/page-shell/page-shell.d.ts +0 -44
  1457. package/page/lib/page-shell/page-shell.slots.d.ts +0 -16
  1458. package/page/lib/page-summary/page-summary-item.d.ts +0 -11
  1459. package/page/lib/page-summary/page-summary.d.ts +0 -36
  1460. package/page/malva-ui-core-page.d.ts +0 -5
  1461. package/pagination/index.d.ts +0 -4
  1462. package/pagination/lib/pagination/pagination.d.ts +0 -182
  1463. package/pagination/lib/pagination/pagination.directives.d.ts +0 -44
  1464. package/pagination/lib/pagination/pagination.model.d.ts +0 -6
  1465. package/pagination/lib/pagination/pagination.service.d.ts +0 -26
  1466. package/pagination/malva-ui-core-pagination.d.ts +0 -5
  1467. package/pin-input/index.d.ts +0 -2
  1468. package/pin-input/lib/pin-input/pin-input-separator.d.ts +0 -24
  1469. package/pin-input/lib/pin-input/pin-input.d.ts +0 -176
  1470. package/pin-input/malva-ui-core-pin-input.d.ts +0 -5
  1471. package/popup/index.d.ts +0 -9
  1472. package/popup/lib/popup/popup.d.ts +0 -343
  1473. package/popup/lib/popup-container/popup-container.d.ts +0 -61
  1474. package/popup/lib/popup-container/popup-container.token.d.ts +0 -34
  1475. package/popup/lib/popup-content.d.ts +0 -6
  1476. package/popup/lib/popup-header-content.d.ts +0 -18
  1477. package/popup/lib/popup-pinned-content.d.ts +0 -17
  1478. package/popup/lib/popup-positions.d.ts +0 -105
  1479. package/popup/lib/popup-trigger/popup-trigger.d.ts +0 -102
  1480. package/popup/lib/popup.service.d.ts +0 -159
  1481. package/popup/malva-ui-core-popup.d.ts +0 -5
  1482. package/progress/index.d.ts +0 -1
  1483. package/progress/lib/progress/progress.d.ts +0 -69
  1484. package/progress/malva-ui-core-progress.d.ts +0 -5
  1485. package/radio/index.d.ts +0 -2
  1486. package/radio/lib/radio/radio.d.ts +0 -87
  1487. package/radio/lib/radio-group/radio-group.d.ts +0 -35
  1488. package/radio/lib/radio-group-token.d.ts +0 -7
  1489. package/radio/malva-ui-core-radio.d.ts +0 -5
  1490. package/rating/index.d.ts +0 -1
  1491. package/rating/lib/rating/rating.d.ts +0 -100
  1492. package/rating/malva-ui-core-rating.d.ts +0 -5
  1493. package/scrollbar/index.d.ts +0 -1
  1494. package/scrollbar/lib/scrollbar/scrollbar.d.ts +0 -166
  1495. package/scrollbar/malva-ui-core-scrollbar.d.ts +0 -5
  1496. package/search-field/index.d.ts +0 -2
  1497. package/search-field/lib/search-field/search-field.d.ts +0 -347
  1498. package/search-field/lib/search-field/search-overlay-content.d.ts +0 -59
  1499. package/search-field/malva-ui-core-search-field.d.ts +0 -5
  1500. package/segmented/index.d.ts +0 -4
  1501. package/segmented/lib/segmented/segmented.d.ts +0 -80
  1502. package/segmented/lib/segmented-item/segmented-item.d.ts +0 -89
  1503. package/segmented/lib/segmented-token.d.ts +0 -22
  1504. package/segmented/lib/segmented.types.d.ts +0 -9
  1505. package/segmented/malva-ui-core-segmented.d.ts +0 -5
  1506. package/select/index.d.ts +0 -3
  1507. package/select/lib/select/select.d.ts +0 -379
  1508. package/select/lib/select-option.d.ts +0 -1
  1509. package/select/lib/select-template.directives.d.ts +0 -14
  1510. package/select/malva-ui-core-select.d.ts +0 -5
  1511. package/sidebar/index.d.ts +0 -15
  1512. package/sidebar/lib/sidebar/sidebar.d.ts +0 -134
  1513. package/sidebar/lib/sidebar-content.d.ts +0 -11
  1514. package/sidebar/lib/sidebar-context.d.ts +0 -23
  1515. package/sidebar/lib/sidebar-footer.d.ts +0 -9
  1516. package/sidebar/lib/sidebar-group/sidebar-group.d.ts +0 -127
  1517. package/sidebar/lib/sidebar-header.d.ts +0 -9
  1518. package/sidebar/lib/sidebar-item/sidebar-item.d.ts +0 -104
  1519. package/sidebar/lib/sidebar-item-host.d.ts +0 -18
  1520. package/sidebar/lib/sidebar-item-icon.d.ts +0 -6
  1521. package/sidebar/lib/sidebar-mode.d.ts +0 -2
  1522. package/sidebar/lib/sidebar-rail/sidebar-rail.d.ts +0 -54
  1523. package/sidebar/lib/sidebar-trigger/sidebar-trigger.d.ts +0 -67
  1524. package/sidebar/lib/sidebar-workspace/sidebar-workspace.d.ts +0 -54
  1525. package/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.d.ts +0 -19
  1526. package/sidebar/lib/sidebar-workspace/sidebar-workspace.types.d.ts +0 -20
  1527. package/sidebar/malva-ui-core-sidebar.d.ts +0 -5
  1528. package/skeleton/index.d.ts +0 -1
  1529. package/skeleton/lib/skeleton/skeleton.d.ts +0 -60
  1530. package/skeleton/malva-ui-core-skeleton.d.ts +0 -5
  1531. package/slider/index.d.ts +0 -2
  1532. package/slider/lib/slider/slider-tooltip-def.d.ts +0 -39
  1533. package/slider/lib/slider/slider.d.ts +0 -171
  1534. package/slider/malva-ui-core-slider.d.ts +0 -5
  1535. package/split-pane/index.d.ts +0 -3
  1536. package/split-pane/lib/split-pane/split-pane-panel.d.ts +0 -34
  1537. package/split-pane/lib/split-pane/split-pane.d.ts +0 -98
  1538. package/split-pane/lib/split-pane/split-pane.types.d.ts +0 -7
  1539. package/split-pane/malva-ui-core-split-pane.d.ts +0 -5
  1540. package/status-indicator/index.d.ts +0 -1
  1541. package/status-indicator/lib/status-indicator/status-indicator.d.ts +0 -61
  1542. package/status-indicator/malva-ui-core-status-indicator.d.ts +0 -5
  1543. package/stepper/index.d.ts +0 -4
  1544. package/stepper/lib/stepper/step-header.d.ts +0 -34
  1545. package/stepper/lib/stepper/step.d.ts +0 -51
  1546. package/stepper/lib/stepper/stepper-token.d.ts +0 -13
  1547. package/stepper/lib/stepper/stepper.d.ts +0 -98
  1548. package/stepper/lib/stepper/stepper.types.d.ts +0 -4
  1549. package/stepper/malva-ui-core-stepper.d.ts +0 -5
  1550. package/switch/index.d.ts +0 -2
  1551. package/switch/lib/switch/switch.d.ts +0 -118
  1552. package/switch/lib/switch-group/switch-group.d.ts +0 -24
  1553. package/switch/lib/switch-group-token.d.ts +0 -6
  1554. package/switch/malva-ui-core-switch.d.ts +0 -5
  1555. package/tabs/index.d.ts +0 -8
  1556. package/tabs/lib/tab/tab.d.ts +0 -46
  1557. package/tabs/lib/tab-content/tab-content.d.ts +0 -11
  1558. package/tabs/lib/tab-content-def.d.ts +0 -6
  1559. package/tabs/lib/tab-def.d.ts +0 -11
  1560. package/tabs/lib/tab-group-token.d.ts +0 -10
  1561. package/tabs/lib/tab-item/tab-item.d.ts +0 -28
  1562. package/tabs/lib/tabs/tabs.d.ts +0 -202
  1563. package/tabs/lib/tabs.service.d.ts +0 -24
  1564. package/tabs/malva-ui-core-tabs.d.ts +0 -5
  1565. package/textarea/index.d.ts +0 -1
  1566. package/textarea/lib/textarea/textarea.d.ts +0 -77
  1567. package/textarea/malva-ui-core-textarea.d.ts +0 -5
  1568. package/tile/index.d.ts +0 -2
  1569. package/tile/lib/tile/tile.d.ts +0 -20
  1570. package/tile/lib/tile-header.d.ts +0 -6
  1571. package/tile/malva-ui-core-tile.d.ts +0 -5
  1572. package/time-picker/index.d.ts +0 -1
  1573. package/time-picker/lib/time-picker/time-picker.d.ts +0 -135
  1574. package/time-picker/lib/time-picker-column/time-picker-column.d.ts +0 -111
  1575. package/time-picker/malva-ui-core-time-picker.d.ts +0 -5
  1576. package/timeline/index.d.ts +0 -5
  1577. package/timeline/lib/timeline/timeline-item-icon.d.ts +0 -24
  1578. package/timeline/lib/timeline/timeline-item-meta.d.ts +0 -24
  1579. package/timeline/lib/timeline/timeline-item.d.ts +0 -52
  1580. package/timeline/lib/timeline/timeline.d.ts +0 -27
  1581. package/timeline/lib/timeline/timeline.types.d.ts +0 -18
  1582. package/timeline/malva-ui-core-timeline.d.ts +0 -5
  1583. package/title/index.d.ts +0 -1
  1584. package/title/lib/title/title.d.ts +0 -63
  1585. package/title/malva-ui-core-title.d.ts +0 -5
  1586. package/toast/index.d.ts +0 -10
  1587. package/toast/lib/abstract-toast-container.d.ts +0 -29
  1588. package/toast/lib/abstract-toast-item.d.ts +0 -44
  1589. package/toast/lib/abstract-toast.service.d.ts +0 -75
  1590. package/toast/lib/toast-container/toast-container.d.ts +0 -23
  1591. package/toast/lib/toast-item/toast-item.d.ts +0 -25
  1592. package/toast/lib/toast-ref.d.ts +0 -33
  1593. package/toast/lib/toast-timer.d.ts +0 -24
  1594. package/toast/lib/toast.directives.d.ts +0 -13
  1595. package/toast/lib/toast.service.d.ts +0 -41
  1596. package/toast/lib/toast.types.d.ts +0 -139
  1597. package/toast/malva-ui-core-toast.d.ts +0 -5
  1598. package/tokenizer/index.d.ts +0 -3
  1599. package/tokenizer/lib/token/token.d.ts +0 -60
  1600. package/tokenizer/lib/token-template.d.ts +0 -29
  1601. package/tokenizer/lib/tokenizer/tokenizer.d.ts +0 -109
  1602. package/tokenizer/malva-ui-core-tokenizer.d.ts +0 -5
  1603. package/toolbar/index.d.ts +0 -3
  1604. package/toolbar/lib/toolbar/toolbar-spacer.d.ts +0 -5
  1605. package/toolbar/lib/toolbar/toolbar-widget.d.ts +0 -75
  1606. package/toolbar/lib/toolbar/toolbar.d.ts +0 -8
  1607. package/toolbar/malva-ui-core-toolbar.d.ts +0 -5
  1608. package/tooltip/index.d.ts +0 -3
  1609. package/tooltip/lib/tooltip/tooltip-panel.d.ts +0 -26
  1610. package/tooltip/lib/tooltip/tooltip.d.ts +0 -148
  1611. package/tooltip/lib/tooltip/tooltip.types.d.ts +0 -17
  1612. package/tooltip/malva-ui-core-tooltip.d.ts +0 -5
  1613. package/tree/index.d.ts +0 -4
  1614. package/tree/lib/tree/tree-context.d.ts +0 -62
  1615. package/tree/lib/tree/tree-node-def.d.ts +0 -33
  1616. package/tree/lib/tree/tree-node.d.ts +0 -45
  1617. package/tree/lib/tree/tree-subtree.d.ts +0 -63
  1618. package/tree/lib/tree/tree.d.ts +0 -156
  1619. package/tree/malva-ui-core-tree.d.ts +0 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"malva-ui-core-chat.mjs","sources":["../../../../libs/core/chat/src/lib/chat-tokens.ts","../../../../libs/core/chat/src/lib/chat-render-list.ts","../../../../libs/core/chat/src/lib/chat-format.ts","../../../../libs/core/chat/src/lib/chat-media-grid/chat-media-grid.ts","../../../../libs/core/chat/src/lib/chat-media-grid/chat-media-grid.html","../../../../libs/core/chat/src/lib/chat-audio/chat-audio.service.ts","../../../../libs/core/chat/src/lib/chat-audio/chat-audio.ts","../../../../libs/core/chat/src/lib/chat-audio/chat-audio.html","../../../../libs/core/chat/src/lib/chat-message/chat-message.ts","../../../../libs/core/chat/src/lib/chat-message/chat-message.html","../../../../libs/core/chat/src/lib/chat-date/chat-date.ts","../../../../libs/core/chat/src/lib/chat-typing/chat-typing.ts","../../../../libs/core/chat/src/lib/defs/chat-author-def.ts","../../../../libs/core/chat/src/lib/defs/chat-date-def.ts","../../../../libs/core/chat/src/lib/defs/chat-message-def.ts","../../../../libs/core/chat/src/lib/chat/chat.ts","../../../../libs/core/chat/src/lib/chat/chat.html","../../../../libs/core/chat/src/malva-ui-core-chat.ts"],"sourcesContent":["import { InjectionToken, type Signal, type TemplateRef } from '@angular/core';\nimport type { MlvChatGroupPosition, MlvChatMessageData, MlvChatUser } from './chat.types';\n\n/** Template context of an `[mlvChatMessageDef]` custom message renderer. */\nexport interface MlvChatMessageDefContext {\n /** The message being rendered. */\n $implicit: MlvChatMessageData;\n /** True when the message is authored by the current user. */\n isOwn: boolean;\n /** Position inside the consecutive-author group. */\n groupPosition: MlvChatGroupPosition;\n /** True when rendered condensed inside a reply quote. */\n quote: boolean;\n}\n\n/** Reference to a registered custom message-type template. */\nexport interface MlvChatMessageDefRef {\n /** The template to render for messages of the registered type. */\n templateRef: TemplateRef<MlvChatMessageDefContext>;\n}\n\n/**\n * Users map (id → user) provided by `mlv-chat` so bubbles can resolve author\n * display names (reply quotes). Optional — standalone bubbles render without it.\n */\nexport const MLV_CHAT_USERS = new InjectionToken<Signal<ReadonlyMap<string, MlvChatUser>>>(\n 'MLV_CHAT_USERS',\n);\n\n/** Custom message-type templates (type → def) provided by `mlv-chat`. */\nexport const MLV_CHAT_MESSAGE_DEFS = new InjectionToken<\n Signal<ReadonlyMap<string, MlvChatMessageDefRef>>\n>('MLV_CHAT_MESSAGE_DEFS');\n","import type { MlvChatMessageData, MlvChatRenderItem, MlvChatRenderMessage } from './chat.types';\n\n/** Normalizes the {@link MlvChatMessageData.timestamp} union to a Date. */\nexport function toChatDate(timestamp: Date | number | string): Date {\n return timestamp instanceof Date ? timestamp : new Date(timestamp);\n}\n\n/** True when both dates fall on the same calendar day (local time). */\nexport function isSameChatDay(a: Date, b: Date): boolean {\n return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();\n}\n\n/**\n * Flattens an oldest→newest message array into date separators + author groups.\n * A group breaks on author change, on a gap larger than `groupWindowMinutes`,\n * and always at a calendar-day boundary.\n *\n * @param messages Messages ordered oldest → newest.\n * @param selfId Current user id; groups authored by it are flagged `own`.\n * @param groupWindowMinutes Maximum gap between consecutive messages of one group.\n * @param dateSeparators Whether `kind: 'date'` items are emitted at day boundaries.\n */\nexport function buildChatRenderList(\n messages: readonly MlvChatMessageData[],\n selfId: string,\n groupWindowMinutes: number,\n dateSeparators: boolean,\n): MlvChatRenderItem[] {\n const items: MlvChatRenderItem[] = [];\n let pending: MlvChatMessageData[] = [];\n let prevDate: Date | null = null;\n\n const flush = (): void => {\n if (!pending.length) return;\n const rendered: MlvChatRenderMessage[] = pending.map((message, i) => ({\n message,\n position:\n pending.length === 1 ? 'single' : i === 0 ? 'first' : i === pending.length - 1 ? 'last' : 'middle',\n }));\n items.push({\n kind: 'group',\n id: `group-${pending[0].id}`,\n authorId: pending[0].authorId,\n own: pending[0].authorId === selfId,\n messages: rendered,\n });\n pending = [];\n };\n\n for (const message of messages) {\n const date = toChatDate(message.timestamp);\n const dayBreak = prevDate === null || !isSameChatDay(prevDate, date);\n const gapBreak = prevDate !== null && date.getTime() - prevDate.getTime() > groupWindowMinutes * 60_000;\n const authorBreak = pending.length > 0 && pending[0].authorId !== message.authorId;\n\n if (dayBreak || gapBreak || authorBreak) flush();\n if (dayBreak && dateSeparators) {\n items.push({ kind: 'date', id: `date-${date.getFullYear()}-${date.getMonth()}-${date.getDate()}`, date });\n }\n pending.push(message);\n prevDate = date;\n }\n flush();\n return items;\n}\n","/**\n * Formats a duration in seconds as `m:ss` (e.g. 75 → '1:15').\n * Negative or non-finite input renders as '0:00'.\n */\nexport function formatChatDuration(seconds: number): string {\n const total = Number.isFinite(seconds) && seconds > 0 ? Math.floor(seconds) : 0;\n const minutes = Math.floor(total / 60);\n const rest = total % 60;\n return `${minutes}:${rest.toString().padStart(2, '0')}`;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { LucidePlay } from '@lucide/angular';\nimport { MLV_CHAT_I18N, MlvTranslatePipe } from '@malva-ui/i18n';\nimport { MlvProgress } from '@malva-ui/core/progress';\nimport { MlvSkeleton } from '@malva-ui/core/skeleton';\nimport type { MlvChatAttachment } from '../chat.types';\nimport { formatChatDuration } from '../chat-format';\n\n/**\n * Internal renderer for the image/gif/video attachments of a chat message.\n * Not exported from the package barrel — `mlv-chat-message` owns it.\n */\n@Component({\n selector: 'mlv-chat-media-grid',\n templateUrl: './chat-media-grid.html',\n styleUrl: './chat-media-grid.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [LucidePlay, MlvProgress, MlvSkeleton, MlvTranslatePipe],\n host: {\n class: 'mlv-chat-media-grid',\n '[class.mlv-chat-media-grid--single]': '_visible().length === 1',\n '[class.mlv-chat-media-grid--quote]': 'quote()',\n },\n})\nexport class MlvChatMediaGrid {\n /** Visual attachments to render; audio entries must be filtered out by the caller. */\n readonly attachments = input.required<MlvChatAttachment[]>();\n\n /** Condensed rendering inside a reply quote: a single small thumbnail. */\n readonly quote = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /** Emits the attachment whose cell was activated. */\n readonly mediaClick = output<MlvChatAttachment>();\n\n /** @internal Chat i18n strings. */\n protected readonly _i18n = inject(MLV_CHAT_I18N);\n\n /** @internal Ids of images whose load event fired, so their skeleton is removed. */\n protected readonly _loaded = signal<ReadonlySet<string>>(new Set());\n\n /** @internal Cells rendered to the DOM: one in quote mode, otherwise the first four. */\n protected readonly _visible = computed(() => this.attachments().slice(0, this.quote() ? 1 : 4));\n\n /** @internal Count of attachments hidden behind the +N overlay. */\n protected readonly _extra = computed(() =>\n this.quote() ? 0 : Math.max(0, this.attachments().length - 4),\n );\n\n /** @internal Formats a duration in seconds as `m:ss` for the video chip. */\n protected readonly _formatDuration = formatChatDuration;\n\n /** @internal True while an attachment carries upload progress, so the overlay shows. */\n protected _isUploading(attachment: MlvChatAttachment): boolean {\n return attachment.uploadProgress !== undefined && attachment.uploadProgress !== null;\n }\n\n /** @internal Marks an image as loaded so its skeleton placeholder is removed. */\n protected _onLoad(id: string): void {\n this._loaded.update((set) => new Set(set).add(id));\n }\n}\n","@for (att of _visible(); track att.id; let last = $last) {\n <button\n type=\"button\"\n class=\"mlv-chat-media-grid__cell\"\n [class.mlv-chat-media-grid__cell--uploading]=\"_isUploading(att)\"\n [style.aspect-ratio]=\"att.width && att.height ? att.width + ' / ' + att.height : null\"\n [attr.aria-label]=\"\n last && _extra() > 0\n ? (_i18n().moreMedia | mlvTranslate: { count: _extra() })\n : (att.alt ?? _i18n().imageFallbackAlt)\n \"\n (click)=\"mediaClick.emit(att)\"\n >\n @switch (att.kind) {\n @case ('gif') {\n <video [src]=\"att.src\" [autoplay]=\"true\" [muted]=\"true\" [loop]=\"true\" playsinline></video>\n }\n @case ('video') {\n @if (att.poster) {\n <img [src]=\"att.poster\" [alt]=\"att.alt ?? ''\" loading=\"lazy\" />\n } @else {\n <video [src]=\"att.src\" preload=\"metadata\" [muted]=\"true\" playsinline></video>\n }\n <span class=\"mlv-chat-media-grid__play\">\n <svg lucidePlay [size]=\"20\" aria-hidden=\"true\" />\n </span>\n @if (att.duration) {\n <span class=\"mlv-chat-media-grid__duration\">{{ _formatDuration(att.duration) }}</span>\n }\n }\n @default {\n @if (!_loaded().has(att.id)) {\n <mlv-skeleton class=\"mlv-chat-media-grid__placeholder\" width=\"100%\" height=\"100%\" />\n }\n <img [src]=\"att.src\" [alt]=\"att.alt ?? ''\" loading=\"lazy\" (load)=\"_onLoad(att.id)\" />\n }\n }\n @if (_isUploading(att)) {\n <span class=\"mlv-chat-media-grid__upload\">\n <mlv-progress shape=\"circle\" size=\"s\" [value]=\"att.uploadProgress ?? 0\" />\n </span>\n }\n @if (last && _extra() > 0) {\n <span class=\"mlv-chat-media-grid__more\" aria-hidden=\"true\">+{{ _extra() }}</span>\n }\n </button>\n}\n","import { Injectable } from '@angular/core';\n\n/** Minimal contract an audio player exposes to the playback coordinator. */\nexport interface MlvChatAudioHandle {\n /** Stops playback of this player. */\n pause(): void;\n}\n\n/**\n * Coordinates one-at-a-time playback across the audio bubbles of a single\n * `mlv-chat`. Provided by the container, never `providedIn: 'root'` — two\n * chats on one page keep independent playback.\n */\n@Injectable()\nexport class MlvChatAudioService {\n /** @private The player currently allowed to play. */\n private _current: MlvChatAudioHandle | null = null;\n\n /** Registers `player` as the active one, pausing the previously active player. */\n requestPlay(player: MlvChatAudioHandle): void {\n if (this._current && this._current !== player) this._current.pause();\n this._current = player;\n }\n\n /** Clears the active slot when a player pauses or ends on its own. */\n release(player: MlvChatAudioHandle): void {\n if (this._current === player) this._current = null;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n InjectionToken,\n ViewEncapsulation,\n computed,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { LucidePause, LucidePlay } from '@lucide/angular';\nimport { MLV_CHAT_I18N } from '@malva-ui/i18n';\nimport { MlvButton } from '@malva-ui/core/button';\nimport { MlvProgress } from '@malva-ui/core/progress';\nimport { MlvSlider, type MlvSliderValue } from '@malva-ui/core/slider';\nimport type { MlvChatAttachment } from '../chat.types';\nimport { formatChatDuration } from '../chat-format';\nimport { MlvChatAudioService, type MlvChatAudioHandle } from './chat-audio.service';\n\n/** Creates the `HTMLAudioElement` a player drives; overridable in tests. */\nexport const MLV_CHAT_AUDIO_FACTORY = new InjectionToken<(src: string) => HTMLAudioElement>(\n 'MLV_CHAT_AUDIO_FACTORY',\n { providedIn: 'root', factory: () => (src: string) => new Audio(src) },\n);\n\n/**\n * Internal player for an audio attachment: play/pause, a seek slider, and the\n * elapsed/total time. Playback is exclusive per `mlv-chat` when the container\n * provides {@link MlvChatAudioService}.\n */\n@Component({\n selector: 'mlv-chat-audio',\n templateUrl: './chat-audio.html',\n styleUrl: './chat-audio.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [LucidePause, LucidePlay, MlvButton, MlvProgress, MlvSlider],\n host: {\n class: 'mlv-chat-audio',\n '[class.mlv-chat-audio--uploading]': '_uploading()',\n },\n})\nexport class MlvChatAudio implements MlvChatAudioHandle {\n /** The audio attachment to play. */\n readonly attachment = input.required<MlvChatAttachment>();\n\n /** @internal Chat i18n strings. */\n protected readonly _i18n = inject(MLV_CHAT_I18N);\n\n /** @private Creates the underlying audio element on first playback. */\n private readonly _audioFactory = inject(MLV_CHAT_AUDIO_FACTORY);\n\n /** @private Container-scoped playback coordinator; null for a standalone player. */\n private readonly _playback = inject(MlvChatAudioService, { optional: true });\n\n /** @private Lazily created audio element; null until the first play. */\n private _audio: HTMLAudioElement | null = null;\n\n /** @internal True while the element is playing. */\n protected readonly _playing = signal(false);\n\n /** @internal Playback position in seconds. */\n protected readonly _currentTime = signal(0);\n\n /** @private Duration reported by the element once metadata has loaded. */\n private readonly _metadataDuration = signal<number | null>(null);\n\n /** @internal Total duration: element metadata wins over the declared value. */\n protected readonly _duration = computed(\n () => this._metadataDuration() ?? this.attachment().duration ?? 0,\n );\n\n /** @internal True while the attachment is still uploading; playback is blocked. */\n protected readonly _uploading = computed(() => {\n const progress = this.attachment().uploadProgress;\n return progress !== undefined && progress !== null;\n });\n\n /** @internal Formats seconds as `m:ss` for the elapsed/total readout. */\n protected readonly _formatDuration = formatChatDuration;\n\n constructor() {\n inject(DestroyRef).onDestroy(() => {\n this._audio?.pause();\n this._playback?.release(this);\n });\n }\n\n /** Pauses playback. Called by the container coordinator when another player starts. */\n pause(): void {\n this._audio?.pause();\n this._playing.set(false);\n }\n\n /** @internal Toggles between play and pause. */\n protected _toggle(): void {\n if (this._playing()) {\n this.pause();\n this._playback?.release(this);\n return;\n }\n const audio = this._ensureAudio();\n this._playback?.requestPlay(this);\n void audio.play();\n this._playing.set(true);\n }\n\n /**\n * @internal Seeks to the given position in seconds. The slider emits the shared\n * `MlvSliderValue` union; only the scalar form is used here (no range thumbs).\n */\n protected _seek(value: MlvSliderValue): void {\n const seconds = Array.isArray(value) ? value[0] : value;\n this._currentTime.set(seconds);\n if (this._audio) this._audio.currentTime = seconds;\n }\n\n /** @private Creates the audio element and wires its listeners on first use. */\n private _ensureAudio(): HTMLAudioElement {\n if (this._audio) return this._audio;\n\n const audio = this._audioFactory(this.attachment().src);\n audio.addEventListener('timeupdate', () => this._currentTime.set(audio.currentTime));\n audio.addEventListener('loadedmetadata', () => {\n if (Number.isFinite(audio.duration)) this._metadataDuration.set(audio.duration);\n });\n audio.addEventListener('ended', () => {\n this._playing.set(false);\n this._currentTime.set(0);\n this._playback?.release(this);\n });\n this._audio = audio;\n return audio;\n }\n}\n","<button\n mlvButton\n type=\"button\"\n class=\"mlv-chat-audio__toggle\"\n shape=\"circle\"\n [disabled]=\"_uploading()\"\n [attr.aria-label]=\"_playing() ? _i18n().pauseAudio : _i18n().playAudio\"\n (click)=\"_toggle()\"\n>\n @if (_playing()) {\n <svg lucidePause [size]=\"16\" aria-hidden=\"true\" />\n } @else {\n <svg lucidePlay [size]=\"16\" aria-hidden=\"true\" />\n }\n</button>\n@if (_uploading()) {\n<span class=\"mlv-chat-audio__upload\">\n <mlv-progress size=\"s\" [value]=\"attachment().uploadProgress ?? 0\" />\n</span>\n} @else {\n<mlv-slider\n class=\"mlv-chat-audio__seek\"\n [min]=\"0\"\n [max]=\"_duration()\"\n [value]=\"_currentTime()\"\n [label]=\"_i18n().playAudio\"\n (valueChange)=\"_seek($event)\"\n/>\n}\n<span class=\"mlv-chat-audio__time\">\n {{ _formatDuration(_currentTime()) }} / {{ _formatDuration(_duration()) }}\n</span>\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { DatePipe, NgTemplateOutlet } from '@angular/common';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n LucideCheck,\n LucideCheckCheck,\n LucideCircleAlert,\n LucideClock,\n LucideCornerUpLeft,\n LucideMusic,\n} from '@lucide/angular';\nimport { MLV_CHAT_I18N } from '@malva-ui/i18n';\nimport type {\n MlvChatAttachment,\n MlvChatGroupPosition,\n MlvChatMessageData,\n} from '../chat.types';\nimport { toChatDate } from '../chat-render-list';\nimport { formatChatDuration } from '../chat-format';\nimport { MLV_CHAT_MESSAGE_DEFS, MLV_CHAT_USERS } from '../chat-tokens';\nimport { MlvChatMediaGrid } from '../chat-media-grid/chat-media-grid';\nimport { MlvChatAudio } from '../chat-audio/chat-audio';\n\n/**\n * A single chat bubble. Normally rendered internally by `mlv-chat`, but usable\n * standalone. Renders text, reply quotes, delivery status ticks, and the meta\n * row; media/audio attachments are rendered by internal sub-components.\n */\n@Component({\n selector: 'mlv-chat-message',\n templateUrl: './chat-message.html',\n styleUrl: './chat-message.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n DatePipe,\n NgTemplateOutlet,\n LucideCheck,\n LucideCheckCheck,\n LucideCircleAlert,\n LucideClock,\n LucideCornerUpLeft,\n LucideMusic,\n MlvChatMediaGrid,\n MlvChatAudio,\n ],\n host: {\n class: 'mlv-chat-message',\n '[class.mlv-chat-message--own]': 'own()',\n '[class.mlv-chat-message--other]': '!own()',\n '[class]': '\"mlv-chat-message--pos-\" + groupPosition()',\n '[class.mlv-chat-message--failed]': 'message().status === \"failed\"',\n '[class.mlv-chat-message--quote]': 'quote()',\n },\n})\nexport class MlvChatMessage {\n /** The message to render. */\n readonly message = input.required<MlvChatMessageData>();\n\n /** True when authored by the current user (right-aligned, accent bubble, status ticks). */\n readonly own = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /** Position inside the consecutive-author group; drives corner-tail radii. */\n readonly groupPosition = input<MlvChatGroupPosition>('single');\n\n /** Condensed quote rendering (inside a reply block): clamped text, no meta row. */\n readonly quote = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /** Emits when the retry button of a failed own message is activated. */\n readonly retry = output<void>();\n\n /** Emits the clicked media attachment (image/video cell). */\n readonly mediaClick = output<MlvChatAttachment>();\n\n /** Emits the embedded replied-to message when the quote block is activated. */\n readonly replyClick = output<MlvChatMessageData>();\n\n /** @internal Chat i18n strings. */\n protected readonly _i18n = inject(MLV_CHAT_I18N);\n\n /** @private Users map provided by the surrounding `mlv-chat`; null when standalone. */\n private readonly _users = inject(MLV_CHAT_USERS, { optional: true });\n\n /** @internal Custom message-type templates provided by the surrounding `mlv-chat`. */\n protected readonly _defs = inject(MLV_CHAT_MESSAGE_DEFS, { optional: true });\n\n /** @internal Normalized timestamp for the DatePipe. */\n protected readonly _date = computed(() =>\n toChatDate(this.message().timestamp),\n );\n\n /** @internal Image/gif/video attachments, rendered by the media grid. */\n protected readonly _mediaAttachments = computed(() =>\n (this.message().attachments ?? []).filter((a) => a.kind !== 'audio'),\n );\n\n /** @internal Audio attachments, each rendered by its own player. */\n protected readonly _audioAttachments = computed(() =>\n (this.message().attachments ?? []).filter((a) => a.kind === 'audio'),\n );\n\n /** @internal Formats seconds as `m:ss` for the condensed audio chip in quote mode. */\n protected readonly _formatDuration = formatChatDuration;\n\n /** @internal Template for this message's custom type, if registered. */\n protected readonly _typeTemplate = computed(() => {\n const type = this.message().type;\n return type ? (this._defs?.().get(type)?.templateRef ?? null) : null;\n });\n\n /** @internal Resolves an author display name from the container-provided users map. */\n protected _userName(id: string): string {\n return this._users?.().get(id)?.name ?? '';\n }\n}\n","@if (_typeTemplate(); as tpl) {\n<ng-container\n [ngTemplateOutlet]=\"tpl\"\n [ngTemplateOutletContext]=\"{\n $implicit: message(),\n isOwn: own(),\n groupPosition: groupPosition(),\n quote: quote(),\n }\"\n/>\n} @else { @if (quote()) {\n<span class=\"mlv-chat-message__quote-author\"\n >{{ _userName(message().authorId) }}</span\n>\n@if (message().replyTo) {\n<svg\n class=\"mlv-chat-message__reply-marker\"\n lucideCornerUpLeft\n [size]=\"12\"\n aria-hidden=\"true\"\n/>\n} } @else if (message().replyTo; as reply) {\n<button\n type=\"button\"\n class=\"mlv-chat-message__reply\"\n (click)=\"replyClick.emit(reply)\"\n>\n <mlv-chat-message [message]=\"reply\" quote />\n</button>\n} @if (_mediaAttachments().length) {\n<mlv-chat-media-grid\n [attachments]=\"_mediaAttachments()\"\n [quote]=\"quote()\"\n (mediaClick)=\"mediaClick.emit($event)\"\n/>\n} @if (quote()) { @if (_audioAttachments()[0]; as audio) {\n<span class=\"mlv-chat-message__quote-audio\">\n <svg lucideMusic [size]=\"12\" aria-hidden=\"true\" />\n {{ _formatDuration(audio.duration ?? 0) }}\n</span>\n} } @else { @for (audio of _audioAttachments(); track audio.id) {\n<mlv-chat-audio [attachment]=\"audio\" />\n} } @if (message().text; as text) {\n<span class=\"mlv-chat-message__text\">{{ text }}</span>\n} } @if (!quote()) {\n<span class=\"mlv-chat-message__meta\">\n @if (own() && message().status === 'failed') {\n <button type=\"button\" class=\"mlv-chat-message__retry\" (click)=\"retry.emit()\">\n <svg lucideCircleAlert [size]=\"14\" aria-hidden=\"true\" />\n {{ _i18n().retry }}\n </button>\n }\n <time class=\"mlv-chat-message__time\" [attr.datetime]=\"_date().toISOString()\">\n {{ _date() | date: 'shortTime' }}\n </time>\n @if (own() && message().status; as status) { @switch (status) { @case\n ('sending') {\n <svg\n class=\"mlv-chat-message__status mlv-chat-message__status--sending\"\n lucideClock\n [size]=\"14\"\n aria-hidden=\"true\"\n />\n } @case ('sent') {\n <svg\n class=\"mlv-chat-message__status mlv-chat-message__status--sent\"\n lucideCheck\n [size]=\"14\"\n aria-hidden=\"true\"\n />\n } @case ('delivered') {\n <svg\n class=\"mlv-chat-message__status mlv-chat-message__status--delivered\"\n lucideCheckCheck\n [size]=\"14\"\n aria-hidden=\"true\"\n />\n } @case ('read') {\n <svg\n class=\"mlv-chat-message__status mlv-chat-message__status--read\"\n lucideCheckCheck\n [size]=\"14\"\n aria-hidden=\"true\"\n />\n } } }\n</span>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\nimport { DatePipe } from '@angular/common';\nimport { MLV_CHAT_I18N } from '@malva-ui/i18n';\nimport { isSameChatDay } from '../chat-render-list';\n\n/**\n * Internal default renderer of a date separator. Shows Today/Yesterday for the\n * two most recent days and a formatted date otherwise. Consumers override the\n * whole slot with `[mlvChatDateDef]`.\n */\n@Component({\n selector: 'mlv-chat-date',\n template: `\n @if (_label(); as label) {\n {{ label }}\n } @else {\n {{ date() | date: 'mediumDate' }}\n }\n `,\n styleUrl: './chat-date.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DatePipe],\n host: { class: 'mlv-chat-date' },\n})\nexport class MlvChatDate {\n /** Start of the calendar day this separator introduces. */\n readonly date = input.required<Date>();\n\n /** @internal Chat i18n strings. */\n protected readonly _i18n = inject(MLV_CHAT_I18N);\n\n /** @internal Relative label, or null when the template should format the date. */\n protected readonly _label = computed(() => {\n const date = this.date();\n const now = new Date();\n if (isSameChatDay(date, now)) return this._i18n().today;\n const yesterday = new Date(now.getFullYear(), now.getMonth(), now.getDate() - 1);\n return isSameChatDay(date, yesterday) ? this._i18n().yesterday : null;\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\nimport { MLV_CHAT_I18N, MlvTranslatePipe } from '@malva-ui/i18n';\nimport type { MlvChatUser } from '../chat.types';\n\n/**\n * Internal three-dot typing bubble. Rendered by `mlv-chat` at the bottom of the\n * transcript while `typingUsers` is non-empty.\n */\n@Component({\n selector: 'mlv-chat-typing',\n template: `\n <span class=\"mlv-chat-typing__dots\" aria-hidden=\"true\">\n <span class=\"mlv-chat-typing__dot\"></span>\n <span class=\"mlv-chat-typing__dot\"></span>\n <span class=\"mlv-chat-typing__dot\"></span>\n </span>\n <span class=\"mlv-chat-typing__label\">\n {{ _i18n().typing | mlvTranslate: { count: users().length } }}\n </span>\n `,\n styleUrl: './chat-typing.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MlvTranslatePipe],\n host: {\n class: 'mlv-chat-typing',\n '[attr.aria-label]': '_ariaLabel()',\n },\n})\nexport class MlvChatTyping {\n /** Users currently composing a message. */\n readonly users = input<MlvChatUser[]>([]);\n\n /** @internal Chat i18n strings. */\n protected readonly _i18n = inject(MLV_CHAT_I18N);\n\n /** @internal Accessible label naming the typing users when they are known. */\n protected readonly _ariaLabel = computed(() => {\n const names = this.users()\n .map((u) => u.name)\n .filter(Boolean);\n return names.length ? names.join(', ') : null;\n });\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\nimport type { MlvChatMessageData, MlvChatUser } from '../chat.types';\n\n/** Template context of an `[mlvChatAuthorDef]` author slot. */\nexport interface MlvChatAuthorDefContext {\n /** The group's author, or undefined when the id is missing from `users`. */\n $implicit: MlvChatUser | undefined;\n /** True when the group is authored by the current user. */\n isOwn: boolean;\n /** First message of the group, for timestamps or role badges. */\n firstMessage: MlvChatMessageData;\n}\n\n/**\n * Replaces the default author name shown above a group of other-authored\n * messages — for example to render an avatar plus a role badge.\n *\n * @example\n * <ng-template mlvChatAuthorDef let-user>\n * <mlv-avatar size=\"xs\" [name]=\"user.name\" [src]=\"user.avatarSrc ?? null\" />\n * {{ user.name }}\n * </ng-template>\n */\n@Directive({ selector: '[mlvChatAuthorDef]' })\nexport class MlvChatAuthorDef {\n /** The template rendered in the author slot. */\n readonly templateRef = inject<TemplateRef<MlvChatAuthorDefContext>>(TemplateRef);\n\n /** Type guard giving template variables their concrete types. */\n static ngTemplateContextGuard(\n _dir: MlvChatAuthorDef,\n _ctx: unknown,\n ): _ctx is MlvChatAuthorDefContext {\n return true;\n }\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n/** Template context of an `[mlvChatDateDef]` date separator. */\nexport interface MlvChatDateDefContext {\n /** Start of the calendar day the separator introduces. */\n $implicit: Date;\n}\n\n/**\n * Replaces the default Today/Yesterday/date pill rendered between messages of\n * different calendar days.\n *\n * @example\n * <ng-template mlvChatDateDef let-date>{{ date | date: 'fullDate' }}</ng-template>\n */\n@Directive({ selector: '[mlvChatDateDef]' })\nexport class MlvChatDateDef {\n /** The template rendered for each date separator. */\n readonly templateRef = inject<TemplateRef<MlvChatDateDefContext>>(TemplateRef);\n\n /** Type guard giving template variables their concrete types. */\n static ngTemplateContextGuard(\n _dir: MlvChatDateDef,\n _ctx: unknown,\n ): _ctx is MlvChatDateDefContext {\n return true;\n }\n}\n","import { Directive, TemplateRef, inject, input } from '@angular/core';\nimport type { MlvChatMessageDefContext } from '../chat-tokens';\n\n/**\n * Marks an `<ng-template>` as the renderer for chat messages whose `type`\n * matches `mlvChatMessageDefType`. The template replaces the bubble body;\n * alignment, meta row, and animations stay owned by the chat.\n *\n * @example\n * <ng-template mlvChatMessageDef mlvChatMessageDefType=\"poll\" let-message let-isOwn=\"isOwn\">\n * <app-poll [poll]=\"message.data\" />\n * </ng-template>\n */\n@Directive({ selector: '[mlvChatMessageDef]' })\nexport class MlvChatMessageDef {\n /** The message `type` this template renders. Templates without a type are ignored. */\n readonly mlvChatMessageDefType = input<string>('');\n\n /** The template rendered for matching messages. */\n readonly templateRef = inject<TemplateRef<MlvChatMessageDefContext>>(TemplateRef);\n\n /** Type guard giving template variables their concrete types. */\n static ngTemplateContextGuard(\n _dir: MlvChatMessageDef,\n _ctx: unknown,\n ): _ctx is MlvChatMessageDefContext {\n return true;\n }\n}\n","import type { ElementRef } from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n afterRenderEffect,\n computed,\n contentChild,\n contentChildren,\n effect,\n inject,\n input,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { NgTemplateOutlet, formatDate } from '@angular/common';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { MlvResizeObserverService } from '@malva-ui/cdk/utils';\nimport {\n MLV_DENSITY_ELEMENT,\n MlvDensityDirective,\n} from '@malva-ui/cdk/density';\nimport { MLV_CHAT_I18N, MlvTranslatePipe } from '@malva-ui/i18n';\nimport { MlvAvatar, MlvColorFromTextPipe } from '@malva-ui/core/avatar';\nimport { MlvLoader } from '@malva-ui/core/loader';\nimport { MlvSkeleton } from '@malva-ui/core/skeleton';\nimport type {\n MlvChatAttachment,\n MlvChatMessageData,\n MlvChatMessageStatus,\n MlvChatUser,\n} from '../chat.types';\nimport { buildChatRenderList, toChatDate } from '../chat-render-list';\nimport { MLV_CHAT_MESSAGE_DEFS, MLV_CHAT_USERS } from '../chat-tokens';\nimport { MlvChatMessage } from '../chat-message/chat-message';\nimport { MlvChatDate } from '../chat-date/chat-date';\nimport { MlvChatTyping } from '../chat-typing/chat-typing';\nimport { MlvChatAudioService } from '../chat-audio/chat-audio.service';\nimport { MlvChatAuthorDef } from '../defs/chat-author-def';\nimport { MlvChatDateDef } from '../defs/chat-date-def';\nimport { MlvChatMessageDef } from '../defs/chat-message-def';\nimport { MlvScrollbar } from '@malva-ui/core/scrollbar';\n\n/** Skeleton rows rendered while the first page loads. */\nconst SKELETON_ROWS: ReadonlyArray<{ own: boolean; width: string }> = [\n { own: false, width: '55%' },\n { own: false, width: '35%' },\n { own: true, width: '45%' },\n { own: false, width: '65%' },\n { own: true, width: '30%' },\n { own: false, width: '50%' },\n];\n\n/**\n * Scrollable chat surface. Renders an oldest→newest `messages` array as author\n * groups with date separators, delivery statuses, replies, media, and audio.\n * Grouping is computed internally — consumers only supply flat data.\n */\n@Component({\n selector: 'mlv-chat',\n templateUrl: './chat.html',\n styleUrl: './chat.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgTemplateOutlet,\n MlvTranslatePipe,\n MlvAvatar,\n MlvColorFromTextPipe,\n MlvLoader,\n MlvSkeleton,\n MlvChatMessage,\n MlvChatDate,\n MlvChatTyping,\n MlvScrollbar,\n ],\n providers: [\n MlvChatAudioService,\n { provide: MLV_DENSITY_ELEMENT, useValue: 'chat' },\n { provide: MLV_CHAT_USERS, useFactory: () => inject(MlvChat)._usersMap },\n {\n provide: MLV_CHAT_MESSAGE_DEFS,\n useFactory: () => inject(MlvChat)._defsMap,\n },\n ],\n hostDirectives: [{ directive: MlvDensityDirective, inputs: ['mlvDensity'] }],\n host: { class: 'mlv-chat' },\n})\nexport class MlvChat {\n /** @private Distance from the bottom under which the view counts as pinned. */\n private static readonly _PIN_THRESHOLD = 48;\n\n /** @private Distance from the top under which the window grows / `loadOlder` fires. */\n private static readonly _TOP_THRESHOLD = 150;\n\n /** @private Number of messages the render window grows by per step. */\n private static readonly _WINDOW_STEP = 50;\n\n /** Messages ordered oldest → newest. */\n readonly messages = input.required<MlvChatMessageData[]>();\n\n /** Id of the current user; messages authored by it render as own messages. */\n readonly selfId = input.required<string>();\n\n /** Known participants, used for avatars and author names. */\n readonly users = input<MlvChatUser[]>([]);\n\n /** Renders skeleton bubbles instead of content while the first page loads. */\n readonly loading = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /** Shows the top loader while an older page is being fetched. */\n readonly loadingOlder = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /** Whether more history exists; gates the `loadOlder` output. */\n readonly hasOlder = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /** Ids of users currently composing a message. */\n readonly typingUsers = input<string[]>([]);\n\n /** Maximum gap in minutes between messages of one author group. */\n readonly groupWindow = input<number>(5);\n\n /** Author slot visibility; `'auto'` shows it once more than two users are known. */\n readonly showAuthors = input<'auto' | boolean>('auto');\n\n /** Whether calendar-day separators are rendered. */\n readonly dateSeparators = input<boolean, BooleanInput>(true, {\n transform: coerceBooleanProperty,\n });\n\n /** Number of newest messages kept in the DOM. */\n readonly windowSize = input<number>(150);\n\n /** Emits when the user scrolls past the oldest rendered message and more history exists. */\n readonly loadOlder = output<void>();\n\n /** Emits the failed message whose retry action was activated. */\n readonly retry = output<MlvChatMessageData>();\n\n /** Emits the message and attachment of an activated media cell. */\n readonly mediaClick = output<{\n message: MlvChatMessageData;\n attachment: MlvChatAttachment;\n }>();\n\n /** Emits the message and its embedded original when a reply quote is activated. */\n readonly replyClick = output<{\n message: MlvChatMessageData;\n replyTo: MlvChatMessageData;\n }>();\n\n /** @internal Chat i18n strings. */\n protected readonly _i18n = inject(MLV_CHAT_I18N);\n\n /** @internal Author slot template, when a consumer provides one. */\n protected readonly authorDef = contentChild(MlvChatAuthorDef);\n\n /** @internal Date separator template, when a consumer provides one. */\n protected readonly dateDef = contentChild(MlvChatDateDef);\n\n /** @private Custom message-type templates projected by the consumer. */\n private readonly _messageDefs = contentChildren(MlvChatMessageDef);\n\n /** @internal id → user map, provided to bubbles through `MLV_CHAT_USERS`. */\n readonly _usersMap = computed(\n () => new Map(this.users().map((u) => [u.id, u])),\n );\n\n /** @internal type → def map, provided to bubbles through `MLV_CHAT_MESSAGE_DEFS`. */\n readonly _defsMap = computed(\n () =>\n new Map(\n this._messageDefs()\n .filter((def) => def.mlvChatMessageDefType())\n .map((def) => [def.mlvChatMessageDefType(), def]),\n ),\n );\n\n /** @internal Number of newest messages currently rendered; grown by the scroll engine. */\n protected readonly _renderCount = signal(150);\n\n /** @internal Newest slice of `messages` kept in the DOM. */\n protected readonly _windowed = computed(() =>\n this.messages().slice(-this._renderCount()),\n );\n\n /** @internal Flattened author groups and date separators of the render window. */\n protected readonly _renderItems = computed(() =>\n buildChatRenderList(\n this._windowed(),\n this.selfId(),\n this.groupWindow(),\n this.dateSeparators(),\n ),\n );\n\n /** @internal Whether the author slot renders above other-authored groups. */\n protected readonly _authorsVisible = computed(() => {\n const mode = this.showAuthors();\n return mode === 'auto' ? this.users().length > 2 : mode;\n });\n\n /** @internal Typing users resolved against the known participants. */\n protected readonly _typingUserObjects = computed(() =>\n this.typingUsers()\n .map((id) => this._usersMap().get(id))\n .filter((user): user is MlvChatUser => !!user),\n );\n\n /** @internal Placeholder rows rendered while `loading` is set. */\n protected readonly _skeletonRows = SKELETON_ROWS;\n\n /** @internal The scroll container; measured by the scroll engine. */\n protected readonly _viewport = viewChild(MlvScrollbar);\n\n /** @private Inner content wrapper; its height changes drive re-pinning. */\n private readonly _content = viewChild<ElementRef<HTMLElement>>('content');\n\n /** @private Shared resize observer used to follow content height changes. */\n private readonly _resizeObserver = inject(MlvResizeObserverService);\n\n /** @internal True while the view sits at (or near) the newest message. */\n protected readonly _pinned = signal(true);\n\n /** @internal Messages appended while unpinned; drives the new-messages pill. */\n protected readonly _newCount = signal(0);\n\n /** @internal Ids of messages that arrived live, so only those animate in. */\n protected readonly _liveIds = signal<ReadonlySet<string>>(new Set());\n\n /** @private First/last ids of the previous `messages` value, to classify changes. */\n private _edgeIds: { first: string | null; last: string | null } = {\n first: null,\n last: null,\n };\n\n /** @private Distance from the viewport bottom captured before a prepend renders. */\n private _pendingCompensation: number | null = null;\n\n constructor() {\n // The window starts at the configured size; the scroll engine grows it as\n // the user scrolls up and trims it back once they return to the bottom.\n effect(() => this._renderCount.set(this.windowSize()));\n\n effect(() => {\n const list = this.messages();\n const first = list[0]?.id ?? null;\n const last = list[list.length - 1]?.id ?? null;\n const previous = this._edgeIds;\n this._edgeIds = { first, last };\n if (previous.last === null) return;\n\n const appended = last !== null && last !== previous.last;\n const prepended =\n first !== null && first !== previous.first && last === previous.last;\n\n if (prepended) this._captureCompensation();\n if (appended) {\n this._markLiveMessages(list, previous.last);\n if (this._pinned()) this._scrollToBottom('smooth');\n else this._newCount.update((count) => count + 1);\n }\n });\n\n afterRenderEffect(() => {\n // Re-runs whenever the rendered content changes.\n this._renderItems();\n this.loading();\n if (this._applyCompensation()) return;\n if (this._pinned()) this._stickToBottom();\n });\n\n // Renders alone are not enough: media can load late and `content-visibility`\n // reveals height without a change-detection pass. Following the content box\n // keeps the newest message in view in all of those cases.\n effect((onCleanup) => {\n const content = this._content()?.nativeElement;\n if (!content) return;\n const subscription = this._resizeObserver\n .observe(content)\n .subscribe(() => {\n if (this._pendingCompensation === null && this._pinned())\n this._stickToBottom();\n });\n onCleanup(() => subscription.unsubscribe());\n });\n }\n\n /** @internal Re-reads the viewport metrics after a scroll event. */\n protected _onScroll(): void {\n const viewport = this._viewport()?.viewportElement;\n if (!viewport) return;\n this._evaluateScroll(\n viewport.scrollTop,\n viewport.scrollHeight,\n viewport.clientHeight,\n );\n }\n\n /**\n * @internal Updates pinning and top-edge behavior from raw scroll metrics.\n * Split from `_onScroll` so the logic is testable without layout.\n */\n protected _evaluateScroll(\n scrollTop: number,\n scrollHeight: number,\n clientHeight: number,\n ): void {\n const bottomDistance = scrollHeight - scrollTop - clientHeight;\n const pinned = bottomDistance < MlvChat._PIN_THRESHOLD;\n\n if (pinned && !this._pinned()) {\n this._newCount.set(0);\n // Trimming is invisible while the view is anchored to the newest message.\n this._renderCount.set(this.windowSize());\n }\n this._pinned.set(pinned);\n\n if (scrollTop < MlvChat._TOP_THRESHOLD) this._growWindow();\n }\n\n /** @internal Grows the render window, or asks for an older page once it is exhausted. */\n protected _growWindow(): void {\n const total = this.messages().length;\n if (this._renderCount() < total) {\n this._captureCompensation();\n this._renderCount.update((count) =>\n Math.min(count + MlvChat._WINDOW_STEP, total),\n );\n return;\n }\n if (this.hasOlder() && !this.loadingOlder()) this.loadOlder.emit();\n }\n\n /** @internal Scrolls to the newest message and clears the pill counter. */\n protected _scrollToBottom(behavior: ScrollBehavior = 'smooth'): void {\n const viewport = this._viewport()?.viewportElement;\n this._newCount.set(0);\n this._pinned.set(true);\n if (!viewport) return;\n viewport.scrollTo?.({ top: viewport.scrollHeight, behavior });\n }\n\n /**\n * @private Records every message newer than the previous last id so only\n * live arrivals animate in — initial load, window growth, and prepended\n * history render instantly.\n */\n private _markLiveMessages(\n list: readonly MlvChatMessageData[],\n previousLast: string,\n ): void {\n const previousIndex = list.findIndex(\n (message) => message.id === previousLast,\n );\n const fresh = list.slice(previousIndex + 1).map((message) => message.id);\n if (!fresh.length) return;\n this._liveIds.update((ids) => {\n const next = new Set(ids);\n for (const id of fresh) next.add(id);\n return next;\n });\n }\n\n /** @private Records the distance from the bottom so a prepend keeps the view still. */\n private _captureCompensation(): void {\n const viewport = this._viewport()?.viewportElement;\n if (viewport)\n this._pendingCompensation = viewport.scrollHeight - viewport.scrollTop;\n }\n\n /**\n * @private Restores the captured distance once the taller content has rendered.\n * Returns true when a compensation was applied, so the caller skips pinning.\n */\n private _applyCompensation(): boolean {\n const pending = this._pendingCompensation;\n if (pending === null) return false;\n this._pendingCompensation = null;\n const viewport = this._viewport()?.viewportElement;\n if (viewport) viewport.scrollTop = viewport.scrollHeight - pending;\n return true;\n }\n\n /** @private Jumps the viewport to the newest message without animation. */\n private _stickToBottom(): void {\n const viewport = this._viewport()?.viewportElement;\n if (viewport) viewport.scrollTop = viewport.scrollHeight;\n }\n\n /** @internal Composes the accessible label of one message article. */\n protected _messageLabel(message: MlvChatMessageData, own: boolean): string {\n const author = own\n ? (this._usersMap().get(this.selfId())?.name ?? '')\n : (this._usersMap().get(message.authorId)?.name ?? '');\n const time = formatDate(\n toChatDate(message.timestamp),\n 'shortTime',\n 'en-US',\n );\n const status =\n own && message.status ? this._statusLabel(message.status) : '';\n return [author, time, status].filter(Boolean).join(', ');\n }\n\n /** @private Maps a delivery status to its translated label. */\n private _statusLabel(status: MlvChatMessageStatus): string {\n const i18n = this._i18n();\n switch (status) {\n case 'sending':\n return i18n.statusSending;\n case 'sent':\n return i18n.statusSent;\n case 'delivered':\n return i18n.statusDelivered;\n case 'read':\n return i18n.statusRead;\n case 'failed':\n return i18n.statusFailed;\n }\n }\n}\n","<mlv-scrollbar\n #viewport\n class=\"mlv-chat__viewport\"\n role=\"log\"\n [attr.aria-label]=\"_i18n().chatLabel\"\n tabindex=\"0\"\n (scroll)=\"_onScroll()\"\n>\n <div #content class=\"mlv-chat__content\">\n @if (loading()) { @for (row of _skeletonRows; track $index) {\n <div class=\"mlv-chat__skeleton\" [class.mlv-chat__skeleton--own]=\"row.own\">\n <mlv-skeleton variant=\"rectangle\" [width]=\"row.width\" height=\"2.25rem\" />\n </div>\n } } @else { @if (loadingOlder()) {\n <div class=\"mlv-chat__older-loader\">\n <mlv-loader\n variant=\"circle\"\n [indeterminate]=\"true\"\n [size]=\"20\"\n [strokeWidth]=\"2\"\n />\n <span class=\"cdk-visually-hidden\">{{ _i18n().loadingOlder }}</span>\n </div>\n } @for (item of _renderItems(); track item.id) { @switch (item.kind) { @case\n ('date') {\n <div class=\"mlv-chat__date\">\n @if (dateDef(); as def) {\n <ng-container\n [ngTemplateOutlet]=\"def.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item.date }\"\n />\n } @else {\n <mlv-chat-date [date]=\"item.date\" />\n }\n </div>\n } @case ('group') {\n <div class=\"mlv-chat__group\" [class.mlv-chat__group--own]=\"item.own\">\n @if (!item.own && _authorsVisible()) {\n <div class=\"mlv-chat__author\">\n @if (authorDef(); as def) {\n <ng-container\n [ngTemplateOutlet]=\"def.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: _usersMap().get(item.authorId),\n isOwn: item.own,\n firstMessage: item.messages[0].message,\n }\"\n />\n } @else { {{ _usersMap().get(item.authorId)?.name }} }\n </div>\n }\n <div class=\"mlv-chat__group-body\">\n @if (!item.own) {\n <mlv-avatar\n class=\"mlv-chat__avatar\"\n size=\"s\"\n [src]=\"_usersMap().get(item.authorId)?.avatarSrc ?? null\"\n [name]=\"_usersMap().get(item.authorId)?.name ?? ''\"\n [color]=\"(_usersMap().get(item.authorId)?.name ?? '') | mlvColorFromText\"\n />\n }\n <div class=\"mlv-chat__bubbles\">\n @for (rendered of item.messages; track rendered.message.id) {\n <article\n class=\"mlv-chat__item\"\n [class.mlv-chat__item--enter]=\"_liveIds().has(rendered.message.id)\"\n animate.leave=\"mlv-chat__item--leave\"\n [attr.aria-label]=\"_messageLabel(rendered.message, item.own)\"\n >\n <mlv-chat-message\n [message]=\"rendered.message\"\n [own]=\"item.own\"\n [groupPosition]=\"rendered.position\"\n (retry)=\"retry.emit(rendered.message)\"\n (mediaClick)=\"mediaClick.emit({ message: rendered.message, attachment: $event })\"\n (replyClick)=\"replyClick.emit({ message: rendered.message, replyTo: $event })\"\n />\n </article>\n }\n </div>\n </div>\n </div>\n } } } @if (_typingUserObjects().length) {\n <mlv-chat-typing class=\"mlv-chat__typing\" [users]=\"_typingUserObjects()\" />\n } }\n </div>\n</mlv-scrollbar>\n@if (!_pinned() && _newCount() > 0) {\n<button\n type=\"button\"\n class=\"mlv-chat__pill\"\n (click)=\"_scrollToBottom('smooth')\"\n>\n {{ _i18n().newMessages | mlvTranslate: { count: _newCount() } }}\n</button>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,272 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, inject, ElementRef, Renderer2, HostAttributeToken, input, signal, computed, afterNextRender, model, viewChild, isDevMode, forwardRef, ChangeDetectionStrategy, ViewEncapsulation, Component, contentChildren } from '@angular/core';
3
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
4
+ import { MlvSignalCheckboxControlBase, MLV_FORM_CONTROL, MlvFocusableGroupBase, MlvLabel } from '@malva-ui/core/form-utils';
5
+ import { LucideCheck, LucideMinus } from '@lucide/angular';
6
+
7
+ const CHECKBOX_GROUP = new InjectionToken('CHECKBOX_GROUP');
8
+
9
+ class MlvCheckbox extends MlvSignalCheckboxControlBase {
10
+ /** @private Optional parent checkbox group used for roving-focus coordination. */
11
+ _group = inject(CHECKBOX_GROUP, {
12
+ optional: true,
13
+ });
14
+ /** @private Host element reference, used to strip the moved ARIA attributes. */
15
+ _elementRef = inject((ElementRef));
16
+ /** @private Renderer used to imperatively remove host ARIA attributes. */
17
+ _renderer = inject(Renderer2);
18
+ /**
19
+ * @private The `aria-label` a consumer placed directly on the `<mlv-checkbox>`
20
+ * host, captured before host bindings run. The host is role-less, so ARIA
21
+ * prohibits an `aria-label` there (axe `aria-prohibited-attr`); it is moved to
22
+ * the inner `<input type="checkbox">` instead (see the constructor).
23
+ */
24
+ _hostAriaLabel = inject(new HostAttributeToken('aria-label'), { optional: true });
25
+ /**
26
+ * @private The `aria-labelledby` a consumer placed directly on the
27
+ * `<mlv-checkbox>` host, captured before host bindings run. Moved to the inner
28
+ * input for the same reason as {@link _hostAriaLabel}.
29
+ */
30
+ _hostAriaLabelledBy = inject(new HostAttributeToken('aria-labelledby'), { optional: true });
31
+ /**
32
+ * Id reference(s) naming the inner native input (`aria-labelledby`). Use this
33
+ * input (not a host `[attr.aria-labelledby]` binding) when the reference is
34
+ * dynamic — the role-less host must not carry ARIA naming attributes
35
+ * (axe `aria-prohibited-attr`). A static host `aria-labelledby` attribute is
36
+ * also supported and forwarded automatically (see the constructor); this
37
+ * input takes precedence when both are present.
38
+ *
39
+ * The inherited `ariaLabel` input behaves the same way for `aria-label`.
40
+ */
41
+ ariaLabelledBy = input(undefined, /* @ts-ignore */
42
+ ...(ngDevMode ? [{ debugName: "ariaLabelledBy" }] : /* istanbul ignore next */ []));
43
+ /**
44
+ * @internal The accessible name forwarded onto the native input, sourced from a
45
+ * host `aria-label`. `null` when the consumer supplied none, so no empty
46
+ * `aria-label` is emitted on the input.
47
+ */
48
+ _ariaLabel = signal(null, /* @ts-ignore */
49
+ ...(ngDevMode ? [{ debugName: "_ariaLabel" }] : /* istanbul ignore next */ []));
50
+ /**
51
+ * @internal The `aria-labelledby` forwarded onto the native input, sourced from
52
+ * a host `aria-labelledby`. `null` when the consumer supplied none.
53
+ */
54
+ _ariaLabelledBy = signal(null, /* @ts-ignore */
55
+ ...(ngDevMode ? [{ debugName: "_ariaLabelledBy" }] : /* istanbul ignore next */ []));
56
+ /**
57
+ * @internal The final `aria-label` for the native input: the `ariaLabel` input
58
+ * wins over a captured static host attribute; `null` emits no attribute.
59
+ */
60
+ _resolvedAriaLabel = computed(() => this.ariaLabel() ?? this._ariaLabel(), /* @ts-ignore */
61
+ ...(ngDevMode ? [{ debugName: "_resolvedAriaLabel" }] : /* istanbul ignore next */ []));
62
+ /**
63
+ * @internal The final `aria-labelledby` for the native input, with the same
64
+ * precedence as {@link _resolvedAriaLabel}.
65
+ */
66
+ _resolvedAriaLabelledBy = computed(() => this.ariaLabelledBy() ?? this._ariaLabelledBy(), /* @ts-ignore */
67
+ ...(ngDevMode ? [{ debugName: "_resolvedAriaLabelledBy" }] : /* istanbul ignore next */ []));
68
+ constructor() {
69
+ super();
70
+ // A host `aria-label`/`aria-labelledby` lands on the role-less custom
71
+ // element (axe `aria-prohibited-attr`). Move it onto the inner input — the
72
+ // component's real accessible-name target — and strip it from the host.
73
+ const host = this._elementRef.nativeElement;
74
+ if (this._hostAriaLabel !== null) {
75
+ this._ariaLabel.set(this._hostAriaLabel);
76
+ this._renderer.removeAttribute(host, 'aria-label');
77
+ }
78
+ if (this._hostAriaLabelledBy !== null) {
79
+ this._ariaLabelledBy.set(this._hostAriaLabelledBy);
80
+ this._renderer.removeAttribute(host, 'aria-labelledby');
81
+ }
82
+ afterNextRender(() => this._warnWhenUnlabelled());
83
+ }
84
+ /**
85
+ * The checked state — the signal-forms `FormCheckboxControl` model. Two-way
86
+ * bindable (`[(checked)]`) and kept in sync with the bound field by
87
+ * `[formField]` / `[formControl]` / `ngModel`. The `FormCheckboxControl`
88
+ * contract forbids a sibling `value` member, so the previous group-membership
89
+ * `value` input was removed in the signal-forms cutover.
90
+ */
91
+ checked = model(false, /* @ts-ignore */
92
+ ...(ngDevMode ? [{ debugName: "checked" }] : /* istanbul ignore next */ []));
93
+ /** Renders mixed-state visuals (minus icon). */
94
+ indeterminate = input(false, { ...(ngDevMode ? { debugName: "indeterminate" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
95
+ /**
96
+ * When `false`, forces the native input out of the tab order (`tabindex="-1"`)
97
+ * regardless of group roving state. Composite parents that own a single tab
98
+ * stop — e.g. `mlv-tree` multi-select rows or `mlv-data-table` rows — set
99
+ * `[tabbable]="false"` so the checkbox does not add an extra tab stop while
100
+ * remaining operable via the row (Space) and the mouse.
101
+ */
102
+ tabbable = input(true, { ...(ngDevMode ? { debugName: "tabbable" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
103
+ inputId = this.id();
104
+ /**
105
+ * Roving tabindex applied to the native checkbox input — the single focus
106
+ * target. `0` for the tabbable checkbox, `-1` for the rest of a group.
107
+ * Managed by `MlvCheckboxGroup`.
108
+ */
109
+ tabIndex = signal(0, /* @ts-ignore */
110
+ ...(ngDevMode ? [{ debugName: "tabIndex" }] : /* istanbul ignore next */ []));
111
+ /** @internal Effective tabindex on the native input, gated by `tabbable`. */
112
+ _resolvedTabIndex = computed(() => this.tabbable() ? this.tabIndex() : -1, /* @ts-ignore */
113
+ ...(ngDevMode ? [{ debugName: "_resolvedTabIndex" }] : /* istanbul ignore next */ []));
114
+ /**
115
+ * @private Reference to the visually-hidden native input, which is the
116
+ * component's focus target (kept in the a11y tree via the clip-path pattern).
117
+ */
118
+ _nativeInput = viewChild.required('nativeInput', /* @ts-ignore */
119
+ ...(ngDevMode ? [{ debugName: "_nativeInput" }] : /* istanbul ignore next */ []));
120
+ /**
121
+ * Moves focus to the native checkbox input. Satisfies CDK `FocusableOption`
122
+ * so `MlvCheckboxGroup`'s `FocusKeyManager` focuses the input, not the host.
123
+ */
124
+ focus() {
125
+ this._nativeInput().nativeElement.focus();
126
+ }
127
+ /** @internal Notifies the parent group when the native input gains focus. */
128
+ onFocus() {
129
+ this._group?.onChildFocus(this);
130
+ }
131
+ /**
132
+ * Reflects the native `change` event (Space / click): the `checked` model
133
+ * emits, propagating to the bound field. Touched is reported on blur (see
134
+ * {@link onBlur}), matching the signal-forms `touch` contract.
135
+ */
136
+ onInputChange(event) {
137
+ const target = event.target;
138
+ this.checked.set(target.checked);
139
+ }
140
+ /** Toggles the checked state from an Enter keypress on the native input. */
141
+ toggle(event) {
142
+ event.preventDefault();
143
+ if (this.computedDisabled())
144
+ return;
145
+ this.checked.set(!this.checked());
146
+ }
147
+ /**
148
+ * @internal Marks the control touched when focus leaves the native input —
149
+ * the signal-forms `touch` output replacing the CVA `onTouched` callback.
150
+ */
151
+ onBlur() {
152
+ this._markTouched();
153
+ }
154
+ /** Whether the control holds a clearable value — Checked state counts as the clearable value (clear unchecks). */
155
+ hasValue = computed(() => this.checked(), /* @ts-ignore */
156
+ ...(ngDevMode ? [{ debugName: "hasValue" }] : /* istanbul ignore next */ []));
157
+ /**
158
+ * @private The wrapper around the projected content, used once after the
159
+ * first render to tell whether the consumer supplied visible text.
160
+ */
161
+ _contentRef = viewChild.required('content', /* @ts-ignore */
162
+ ...(ngDevMode ? [{ debugName: "_contentRef" }] : /* istanbul ignore next */ []));
163
+ /**
164
+ * @private Dev-mode diagnostic: a checkbox with no projected text, no
165
+ * `label` and no ARIA naming has no accessible name at all. CSS decides which
166
+ * of the two visible sources renders, so this only reports the empty case.
167
+ */
168
+ _warnWhenUnlabelled() {
169
+ if (!isDevMode())
170
+ return;
171
+ const hasProjectedText = (this._contentRef().nativeElement.textContent ?? '').trim().length > 0;
172
+ if (hasProjectedText ||
173
+ this.label() ||
174
+ this._resolvedAriaLabel() ||
175
+ this._resolvedAriaLabelledBy()) {
176
+ return;
177
+ }
178
+ console.warn('[mlv-checkbox] Rendered without an accessible name. Project text into ' +
179
+ '<mlv-checkbox>, or set [label], [ariaLabel] or [ariaLabelledBy].');
180
+ }
181
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvCheckbox, deps: [], target: i0.ɵɵFactoryTarget.Component });
182
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: MlvCheckbox, isStandalone: true, selector: "mlv-checkbox", inputs: { ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, tabbable: { classPropertyName: "tabbable", publicName: "tabbable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange" }, host: { properties: { "class.mlv-checkbox--disabled": "computedDisabled()", "class.mlv-checkbox--checked": "checked()", "class.mlv-checkbox--indeterminate": "indeterminate()" }, classAttribute: "mlv-checkbox" }, providers: [
183
+ {
184
+ provide: MLV_FORM_CONTROL,
185
+ useExisting: forwardRef(() => MlvCheckbox),
186
+ },
187
+ ], viewQueries: [{ propertyName: "_nativeInput", first: true, predicate: ["nativeInput"], descendants: true, isSignal: true }, { propertyName: "_contentRef", first: true, predicate: ["content"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<label class=\"mlv-checkbox__label\" [for]=\"inputId\">\n <input\n #nativeInput\n type=\"checkbox\"\n class=\"mlv-checkbox__native\"\n [id]=\"inputId\"\n [checked]=\"checked()\"\n [disabled]=\"computedDisabled()\"\n [indeterminate]=\"indeterminate()\"\n [attr.tabindex]=\"_resolvedTabIndex()\"\n [attr.aria-checked]=\"indeterminate() ? 'mixed' : checked()\"\n [attr.aria-required]=\"required() || null\"\n [attr.aria-label]=\"_resolvedAriaLabel()\"\n [attr.aria-labelledby]=\"_resolvedAriaLabelledBy()\"\n (change)=\"onInputChange($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"toggle($event)\"\n />\n <span\n class=\"mlv-checkbox__visual\"\n [class]=\"'mlv-checkbox__visual--' + state()\"\n aria-hidden=\"true\"\n >\n @if (!indeterminate()) {\n <svg size=\"20\" class=\"mlv-checkbox__check\" lucideCheck />\n } @else {\n <svg size=\"20\" class=\"mlv-checkbox__check\" lucideMinus />\n }\n </span>\n <span class=\"mlv-checkbox__text\">\n <!-- Projected text wins; the `label` fallback next to it is hidden by CSS\n whenever this span is non-empty, which also keeps it out of the\n accessible name computed from the wrapping <label>. -->\n <span #content class=\"mlv-checkbox__content\"><ng-content /></span>\n @if (label()) {\n <span class=\"mlv-checkbox__label-text\">{{ label() }}</span>\n }\n </span>\n</label>\n", styles: ["@layer mlv.components{.mlv-checkbox{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-m)}.mlv-checkbox *{box-sizing:border-box}.mlv-checkbox{color:var(--mlv-text-primary);display:inline-block;--check-opacity: 0;--check-transform: scale(.7) rotate(15deg);--check-background: var(--mlv-elevation-bg-2);--check-border-color: var(--mlv-border-normal);outline:none}[class*=--tight] .mlv-checkbox:not([class*=--compact],[class*=--comfortable],[class*=--spacious],[class*=--airy]),.mlv-checkbox[class*=--tight]{font-size:var(--mlv-font-size-s)}[class*=--compact] .mlv-checkbox:not([class*=--tight],[class*=--comfortable],[class*=--spacious],[class*=--airy]),.mlv-checkbox[class*=--compact]{font-size:var(--mlv-font-size-m)}[class*=--spacious] .mlv-checkbox:not([class*=--tight],[class*=--compact],[class*=--comfortable],[class*=--airy]),.mlv-checkbox[class*=--spacious]{font-size:var(--mlv-font-size-l)}[class*=--airy] .mlv-checkbox:not([class*=--tight],[class*=--compact],[class*=--comfortable],[class*=--spacious]),.mlv-checkbox[class*=--airy]{font-size:var(--mlv-font-size-xl)}.mlv-checkbox__native{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.mlv-checkbox__native:focus-visible+.mlv-checkbox__visual{outline:var(--mlv-stroke-width-medium) solid var(--mlv-border-focus);outline-offset:var(--mlv-focus-ring-offset)}.mlv-checkbox:hover:not(.mlv-checkbox--checked){--check-border-color: var(--mlv-border-strong)}.mlv-checkbox__label{display:inline-flex;align-items:center;gap:var(--mlv-spacing-1);cursor:pointer}.mlv-checkbox__visual{background-color:var(--check-background);display:block;width:1.5rem;height:1.5rem;border-radius:var(--mlv-radius-s);border:.125rem solid var(--check-border-color);transition:all var(--mlv-duration-normal) var(--mlv-ease-default);transition-property:background-color,border-color,box-shadow}.mlv-checkbox__check{color:var(--mlv-text-primary-on-accent-1);opacity:var(--check-opacity);transform:var(--check-transform);transition:all var(--mlv-duration-normal) var(--mlv-ease-default);transition-property:opacity,transform}.mlv-checkbox--checked{--check-background: var(--mlv-background-accent-1);--check-border-color: var(--mlv-background-accent-1);--check-opacity: 1;--check-transform: scale(1)}.mlv-checkbox__content:not(:empty)+.mlv-checkbox__label-text{display:none}.mlv-checkbox--disabled{pointer-events:none;cursor:not-allowed;opacity:var(--mlv-disabled-opacity)}@media(prefers-reduced-motion:reduce){.mlv-checkbox,.mlv-checkbox *,.mlv-checkbox:before,.mlv-checkbox:after,[class^=mlv-checkbox__],[class*=\" mlv-checkbox__\"],[class^=mlv-checkbox--],[class*=\" mlv-checkbox--\"]{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:var(--mlv-duration-instant)!important}}}\n"], dependencies: [{ kind: "component", type: LucideCheck, selector: "svg[lucideCheck]" }, { kind: "component", type: LucideMinus, selector: "svg[lucideMinus]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
188
+ }
189
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvCheckbox, decorators: [{
190
+ type: Component,
191
+ args: [{ selector: 'mlv-checkbox', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
192
+ {
193
+ provide: MLV_FORM_CONTROL,
194
+ useExisting: forwardRef(() => MlvCheckbox),
195
+ },
196
+ ], host: {
197
+ class: 'mlv-checkbox',
198
+ '[class.mlv-checkbox--disabled]': 'computedDisabled()',
199
+ '[class.mlv-checkbox--checked]': 'checked()',
200
+ '[class.mlv-checkbox--indeterminate]': 'indeterminate()',
201
+ }, imports: [LucideCheck, LucideMinus], template: "<label class=\"mlv-checkbox__label\" [for]=\"inputId\">\n <input\n #nativeInput\n type=\"checkbox\"\n class=\"mlv-checkbox__native\"\n [id]=\"inputId\"\n [checked]=\"checked()\"\n [disabled]=\"computedDisabled()\"\n [indeterminate]=\"indeterminate()\"\n [attr.tabindex]=\"_resolvedTabIndex()\"\n [attr.aria-checked]=\"indeterminate() ? 'mixed' : checked()\"\n [attr.aria-required]=\"required() || null\"\n [attr.aria-label]=\"_resolvedAriaLabel()\"\n [attr.aria-labelledby]=\"_resolvedAriaLabelledBy()\"\n (change)=\"onInputChange($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"toggle($event)\"\n />\n <span\n class=\"mlv-checkbox__visual\"\n [class]=\"'mlv-checkbox__visual--' + state()\"\n aria-hidden=\"true\"\n >\n @if (!indeterminate()) {\n <svg size=\"20\" class=\"mlv-checkbox__check\" lucideCheck />\n } @else {\n <svg size=\"20\" class=\"mlv-checkbox__check\" lucideMinus />\n }\n </span>\n <span class=\"mlv-checkbox__text\">\n <!-- Projected text wins; the `label` fallback next to it is hidden by CSS\n whenever this span is non-empty, which also keeps it out of the\n accessible name computed from the wrapping <label>. -->\n <span #content class=\"mlv-checkbox__content\"><ng-content /></span>\n @if (label()) {\n <span class=\"mlv-checkbox__label-text\">{{ label() }}</span>\n }\n </span>\n</label>\n", styles: ["@layer mlv.components{.mlv-checkbox{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-m)}.mlv-checkbox *{box-sizing:border-box}.mlv-checkbox{color:var(--mlv-text-primary);display:inline-block;--check-opacity: 0;--check-transform: scale(.7) rotate(15deg);--check-background: var(--mlv-elevation-bg-2);--check-border-color: var(--mlv-border-normal);outline:none}[class*=--tight] .mlv-checkbox:not([class*=--compact],[class*=--comfortable],[class*=--spacious],[class*=--airy]),.mlv-checkbox[class*=--tight]{font-size:var(--mlv-font-size-s)}[class*=--compact] .mlv-checkbox:not([class*=--tight],[class*=--comfortable],[class*=--spacious],[class*=--airy]),.mlv-checkbox[class*=--compact]{font-size:var(--mlv-font-size-m)}[class*=--spacious] .mlv-checkbox:not([class*=--tight],[class*=--compact],[class*=--comfortable],[class*=--airy]),.mlv-checkbox[class*=--spacious]{font-size:var(--mlv-font-size-l)}[class*=--airy] .mlv-checkbox:not([class*=--tight],[class*=--compact],[class*=--comfortable],[class*=--spacious]),.mlv-checkbox[class*=--airy]{font-size:var(--mlv-font-size-xl)}.mlv-checkbox__native{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.mlv-checkbox__native:focus-visible+.mlv-checkbox__visual{outline:var(--mlv-stroke-width-medium) solid var(--mlv-border-focus);outline-offset:var(--mlv-focus-ring-offset)}.mlv-checkbox:hover:not(.mlv-checkbox--checked){--check-border-color: var(--mlv-border-strong)}.mlv-checkbox__label{display:inline-flex;align-items:center;gap:var(--mlv-spacing-1);cursor:pointer}.mlv-checkbox__visual{background-color:var(--check-background);display:block;width:1.5rem;height:1.5rem;border-radius:var(--mlv-radius-s);border:.125rem solid var(--check-border-color);transition:all var(--mlv-duration-normal) var(--mlv-ease-default);transition-property:background-color,border-color,box-shadow}.mlv-checkbox__check{color:var(--mlv-text-primary-on-accent-1);opacity:var(--check-opacity);transform:var(--check-transform);transition:all var(--mlv-duration-normal) var(--mlv-ease-default);transition-property:opacity,transform}.mlv-checkbox--checked{--check-background: var(--mlv-background-accent-1);--check-border-color: var(--mlv-background-accent-1);--check-opacity: 1;--check-transform: scale(1)}.mlv-checkbox__content:not(:empty)+.mlv-checkbox__label-text{display:none}.mlv-checkbox--disabled{pointer-events:none;cursor:not-allowed;opacity:var(--mlv-disabled-opacity)}@media(prefers-reduced-motion:reduce){.mlv-checkbox,.mlv-checkbox *,.mlv-checkbox:before,.mlv-checkbox:after,[class^=mlv-checkbox__],[class*=\" mlv-checkbox__\"],[class^=mlv-checkbox--],[class*=\" mlv-checkbox--\"]{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:var(--mlv-duration-instant)!important}}}\n"] }]
202
+ }], ctorParameters: () => [], propDecorators: { ariaLabelledBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabelledBy", required: false }] }], checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }, { type: i0.Output, args: ["checkedChange"] }], indeterminate: [{ type: i0.Input, args: [{ isSignal: true, alias: "indeterminate", required: false }] }], tabbable: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabbable", required: false }] }], _nativeInput: [{ type: i0.ViewChild, args: ['nativeInput', { isSignal: true }] }], _contentRef: [{ type: i0.ViewChild, args: ['content', { isSignal: true }] }] } });
203
+
204
+ class MlvCheckboxGroup extends MlvFocusableGroupBase {
205
+ /** Accessible label for the group, rendered above the checkboxes. */
206
+ label = input('', /* @ts-ignore */
207
+ ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
208
+ /** Visual/validation state applied to the group. */
209
+ state = input('default', /* @ts-ignore */
210
+ ...(ngDevMode ? [{ debugName: "state" }] : /* istanbul ignore next */ []));
211
+ /**
212
+ * @protected The projected checkboxes in DOM order — drives the shared
213
+ * roving-tabindex arrow navigation from {@link MlvFocusableGroupBase}.
214
+ */
215
+ _items = contentChildren(MlvCheckbox, /* @ts-ignore */
216
+ ...(ngDevMode ? [{ debugName: "_items" }] : /* istanbul ignore next */ []));
217
+ /** @protected Skips disabled checkboxes during arrow navigation. */
218
+ _isDisabled(checkbox) {
219
+ return checkbox.computedDisabled();
220
+ }
221
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvCheckboxGroup, deps: null, target: i0.ɵɵFactoryTarget.Component });
222
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: MlvCheckboxGroup, isStandalone: true, selector: "mlv-checkbox-group", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
223
+ {
224
+ provide: CHECKBOX_GROUP,
225
+ useExisting: forwardRef(() => MlvCheckboxGroup),
226
+ },
227
+ ], queries: [{ propertyName: "_items", predicate: MlvCheckbox, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
228
+ <div
229
+ class="mlv-checkbox-group"
230
+ role="group"
231
+ [attr.aria-label]="label()"
232
+ (keydown)="onKeydown($event)"
233
+ >
234
+ @if (label()) {
235
+ <mlv-label>
236
+ {{ label() }}
237
+ </mlv-label>
238
+ }
239
+ <ng-content />
240
+ </div>
241
+ `, isInline: true, styles: ["@layer mlv.components{.mlv-checkbox-group{display:flex;flex-direction:column;gap:.5rem}}\n"], dependencies: [{ kind: "component", type: MlvLabel, selector: "mlv-label", inputs: ["for", "required"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
242
+ }
243
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvCheckboxGroup, decorators: [{
244
+ type: Component,
245
+ args: [{ selector: 'mlv-checkbox-group', template: `
246
+ <div
247
+ class="mlv-checkbox-group"
248
+ role="group"
249
+ [attr.aria-label]="label()"
250
+ (keydown)="onKeydown($event)"
251
+ >
252
+ @if (label()) {
253
+ <mlv-label>
254
+ {{ label() }}
255
+ </mlv-label>
256
+ }
257
+ <ng-content />
258
+ </div>
259
+ `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
260
+ {
261
+ provide: CHECKBOX_GROUP,
262
+ useExisting: forwardRef(() => MlvCheckboxGroup),
263
+ },
264
+ ], imports: [MlvLabel], styles: ["@layer mlv.components{.mlv-checkbox-group{display:flex;flex-direction:column;gap:.5rem}}\n"] }]
265
+ }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: false }] }], _items: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => MlvCheckbox), { isSignal: true }] }] } });
266
+
267
+ /**
268
+ * Generated bundle index. Do not edit.
269
+ */
270
+
271
+ export { CHECKBOX_GROUP, MlvCheckbox, MlvCheckboxGroup };
272
+ //# sourceMappingURL=malva-ui-core-checkbox.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"malva-ui-core-checkbox.mjs","sources":["../../../../libs/core/checkbox/src/lib/checkbox-group-token.ts","../../../../libs/core/checkbox/src/lib/checkbox/checkbox.ts","../../../../libs/core/checkbox/src/lib/checkbox/checkbox.html","../../../../libs/core/checkbox/src/lib/checkbox-group/checkbox-group.ts","../../../../libs/core/checkbox/src/malva-ui-core-checkbox.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport type { MlvCheckbox } from './checkbox/checkbox';\n\nexport interface MlvCheckboxGroupAccessor {\n onChildFocus(checkbox: MlvCheckbox): void;\n}\n\nexport const CHECKBOX_GROUP = new InjectionToken<MlvCheckboxGroupAccessor>(\n 'CHECKBOX_GROUP',\n);\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n HostAttributeToken,\n inject,\n input,\n isDevMode,\n model,\n Renderer2,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport type { MlvFormState, MlvFormControl } from '@malva-ui/core/form-utils';\nimport {\n MlvSignalCheckboxControlBase,\n MLV_FORM_CONTROL,\n} from '@malva-ui/core/form-utils';\nimport { LucideCheck, LucideMinus } from '@lucide/angular';\nimport type { MlvCheckboxGroupAccessor } from '../checkbox-group-token';\nimport { CHECKBOX_GROUP } from '../checkbox-group-token';\n\n/**\n * Visual/validation state of the checkbox. Mirrors {@link MlvFormState}.\n */\nexport type MlvCheckboxState = MlvFormState;\n\n@Component({\n selector: 'mlv-checkbox',\n templateUrl: './checkbox.html',\n styleUrl: './checkbox.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: MLV_FORM_CONTROL,\n useExisting: forwardRef(() => MlvCheckbox),\n },\n ],\n host: {\n class: 'mlv-checkbox',\n '[class.mlv-checkbox--disabled]': 'computedDisabled()',\n '[class.mlv-checkbox--checked]': 'checked()',\n '[class.mlv-checkbox--indeterminate]': 'indeterminate()',\n },\n imports: [LucideCheck, LucideMinus],\n})\nexport class MlvCheckbox\n extends MlvSignalCheckboxControlBase\n implements MlvFormControl\n{\n /** @private Optional parent checkbox group used for roving-focus coordination. */\n private readonly _group = inject<MlvCheckboxGroupAccessor>(CHECKBOX_GROUP, {\n optional: true,\n });\n\n /** @private Host element reference, used to strip the moved ARIA attributes. */\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n\n /** @private Renderer used to imperatively remove host ARIA attributes. */\n private readonly _renderer = inject(Renderer2);\n\n /**\n * @private The `aria-label` a consumer placed directly on the `<mlv-checkbox>`\n * host, captured before host bindings run. The host is role-less, so ARIA\n * prohibits an `aria-label` there (axe `aria-prohibited-attr`); it is moved to\n * the inner `<input type=\"checkbox\">` instead (see the constructor).\n */\n private readonly _hostAriaLabel = inject(\n new HostAttributeToken('aria-label'),\n { optional: true },\n );\n\n /**\n * @private The `aria-labelledby` a consumer placed directly on the\n * `<mlv-checkbox>` host, captured before host bindings run. Moved to the inner\n * input for the same reason as {@link _hostAriaLabel}.\n */\n private readonly _hostAriaLabelledBy = inject(\n new HostAttributeToken('aria-labelledby'),\n { optional: true },\n );\n\n /**\n * Id reference(s) naming the inner native input (`aria-labelledby`). Use this\n * input (not a host `[attr.aria-labelledby]` binding) when the reference is\n * dynamic — the role-less host must not carry ARIA naming attributes\n * (axe `aria-prohibited-attr`). A static host `aria-labelledby` attribute is\n * also supported and forwarded automatically (see the constructor); this\n * input takes precedence when both are present.\n *\n * The inherited `ariaLabel` input behaves the same way for `aria-label`.\n */\n readonly ariaLabelledBy = input<string | undefined>(undefined);\n\n /**\n * @internal The accessible name forwarded onto the native input, sourced from a\n * host `aria-label`. `null` when the consumer supplied none, so no empty\n * `aria-label` is emitted on the input.\n */\n readonly _ariaLabel = signal<string | null>(null);\n\n /**\n * @internal The `aria-labelledby` forwarded onto the native input, sourced from\n * a host `aria-labelledby`. `null` when the consumer supplied none.\n */\n readonly _ariaLabelledBy = signal<string | null>(null);\n\n /**\n * @internal The final `aria-label` for the native input: the `ariaLabel` input\n * wins over a captured static host attribute; `null` emits no attribute.\n */\n readonly _resolvedAriaLabel = computed(\n () => this.ariaLabel() ?? this._ariaLabel(),\n );\n\n /**\n * @internal The final `aria-labelledby` for the native input, with the same\n * precedence as {@link _resolvedAriaLabel}.\n */\n readonly _resolvedAriaLabelledBy = computed(\n () => this.ariaLabelledBy() ?? this._ariaLabelledBy(),\n );\n\n constructor() {\n super();\n // A host `aria-label`/`aria-labelledby` lands on the role-less custom\n // element (axe `aria-prohibited-attr`). Move it onto the inner input — the\n // component's real accessible-name target — and strip it from the host.\n const host = this._elementRef.nativeElement;\n if (this._hostAriaLabel !== null) {\n this._ariaLabel.set(this._hostAriaLabel);\n this._renderer.removeAttribute(host, 'aria-label');\n }\n if (this._hostAriaLabelledBy !== null) {\n this._ariaLabelledBy.set(this._hostAriaLabelledBy);\n this._renderer.removeAttribute(host, 'aria-labelledby');\n }\n\n afterNextRender(() => this._warnWhenUnlabelled());\n }\n\n /**\n * The checked state — the signal-forms `FormCheckboxControl` model. Two-way\n * bindable (`[(checked)]`) and kept in sync with the bound field by\n * `[formField]` / `[formControl]` / `ngModel`. The `FormCheckboxControl`\n * contract forbids a sibling `value` member, so the previous group-membership\n * `value` input was removed in the signal-forms cutover.\n */\n readonly checked = model(false);\n\n /** Renders mixed-state visuals (minus icon). */\n readonly indeterminate = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * When `false`, forces the native input out of the tab order (`tabindex=\"-1\"`)\n * regardless of group roving state. Composite parents that own a single tab\n * stop — e.g. `mlv-tree` multi-select rows or `mlv-data-table` rows — set\n * `[tabbable]=\"false\"` so the checkbox does not add an extra tab stop while\n * remaining operable via the row (Space) and the mouse.\n */\n readonly tabbable = input<boolean, BooleanInput>(true, {\n transform: coerceBooleanProperty,\n });\n\n readonly inputId = this.id();\n\n /**\n * Roving tabindex applied to the native checkbox input — the single focus\n * target. `0` for the tabbable checkbox, `-1` for the rest of a group.\n * Managed by `MlvCheckboxGroup`.\n */\n readonly tabIndex = signal(0);\n\n /** @internal Effective tabindex on the native input, gated by `tabbable`. */\n readonly _resolvedTabIndex = computed(() =>\n this.tabbable() ? this.tabIndex() : -1,\n );\n\n /**\n * @private Reference to the visually-hidden native input, which is the\n * component's focus target (kept in the a11y tree via the clip-path pattern).\n */\n private readonly _nativeInput =\n viewChild.required<ElementRef<HTMLInputElement>>('nativeInput');\n\n /**\n * Moves focus to the native checkbox input. Satisfies CDK `FocusableOption`\n * so `MlvCheckboxGroup`'s `FocusKeyManager` focuses the input, not the host.\n */\n focus(): void {\n this._nativeInput().nativeElement.focus();\n }\n\n /** @internal Notifies the parent group when the native input gains focus. */\n onFocus(): void {\n this._group?.onChildFocus(this);\n }\n\n /**\n * Reflects the native `change` event (Space / click): the `checked` model\n * emits, propagating to the bound field. Touched is reported on blur (see\n * {@link onBlur}), matching the signal-forms `touch` contract.\n */\n onInputChange(event: Event): void {\n const target = event.target as HTMLInputElement;\n this.checked.set(target.checked);\n }\n\n /** Toggles the checked state from an Enter keypress on the native input. */\n toggle(event: Event): void {\n event.preventDefault();\n if (this.computedDisabled()) return;\n this.checked.set(!this.checked());\n }\n\n /**\n * @internal Marks the control touched when focus leaves the native input —\n * the signal-forms `touch` output replacing the CVA `onTouched` callback.\n */\n onBlur(): void {\n this._markTouched();\n }\n\n /** Whether the control holds a clearable value — Checked state counts as the clearable value (clear unchecks). */\n readonly hasValue = computed(() => this.checked());\n\n /**\n * @private The wrapper around the projected content, used once after the\n * first render to tell whether the consumer supplied visible text.\n */\n private readonly _contentRef =\n viewChild.required<ElementRef<HTMLElement>>('content');\n\n /**\n * @private Dev-mode diagnostic: a checkbox with no projected text, no\n * `label` and no ARIA naming has no accessible name at all. CSS decides which\n * of the two visible sources renders, so this only reports the empty case.\n */\n private _warnWhenUnlabelled(): void {\n if (!isDevMode()) return;\n const hasProjectedText =\n (this._contentRef().nativeElement.textContent ?? '').trim().length > 0;\n if (\n hasProjectedText ||\n this.label() ||\n this._resolvedAriaLabel() ||\n this._resolvedAriaLabelledBy()\n ) {\n return;\n }\n console.warn(\n '[mlv-checkbox] Rendered without an accessible name. Project text into ' +\n '<mlv-checkbox>, or set [label], [ariaLabel] or [ariaLabelledBy].',\n );\n }\n}\n","<label class=\"mlv-checkbox__label\" [for]=\"inputId\">\n <input\n #nativeInput\n type=\"checkbox\"\n class=\"mlv-checkbox__native\"\n [id]=\"inputId\"\n [checked]=\"checked()\"\n [disabled]=\"computedDisabled()\"\n [indeterminate]=\"indeterminate()\"\n [attr.tabindex]=\"_resolvedTabIndex()\"\n [attr.aria-checked]=\"indeterminate() ? 'mixed' : checked()\"\n [attr.aria-required]=\"required() || null\"\n [attr.aria-label]=\"_resolvedAriaLabel()\"\n [attr.aria-labelledby]=\"_resolvedAriaLabelledBy()\"\n (change)=\"onInputChange($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"toggle($event)\"\n />\n <span\n class=\"mlv-checkbox__visual\"\n [class]=\"'mlv-checkbox__visual--' + state()\"\n aria-hidden=\"true\"\n >\n @if (!indeterminate()) {\n <svg size=\"20\" class=\"mlv-checkbox__check\" lucideCheck />\n } @else {\n <svg size=\"20\" class=\"mlv-checkbox__check\" lucideMinus />\n }\n </span>\n <span class=\"mlv-checkbox__text\">\n <!-- Projected text wins; the `label` fallback next to it is hidden by CSS\n whenever this span is non-empty, which also keeps it out of the\n accessible name computed from the wrapping <label>. -->\n <span #content class=\"mlv-checkbox__content\"><ng-content /></span>\n @if (label()) {\n <span class=\"mlv-checkbox__label-text\">{{ label() }}</span>\n }\n </span>\n</label>\n","import {\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n forwardRef,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MlvCheckbox } from '../checkbox/checkbox';\nimport type { MlvCheckboxGroupAccessor } from '../checkbox-group-token';\nimport { CHECKBOX_GROUP } from '../checkbox-group-token';\nimport type { MlvFormState } from '@malva-ui/core/form-utils';\nimport { MlvLabel, MlvFocusableGroupBase } from '@malva-ui/core/form-utils';\n\n/**\n * Visual/validation state of the checkbox group. Mirrors {@link MlvFormState}.\n */\nexport type MlvCheckboxGroupState = MlvFormState;\n\n@Component({\n selector: 'mlv-checkbox-group',\n template: `\n <div\n class=\"mlv-checkbox-group\"\n role=\"group\"\n [attr.aria-label]=\"label()\"\n (keydown)=\"onKeydown($event)\"\n >\n @if (label()) {\n <mlv-label>\n {{ label() }}\n </mlv-label>\n }\n <ng-content />\n </div>\n `,\n styleUrl: './checkbox-group.css',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: CHECKBOX_GROUP,\n useExisting: forwardRef(() => MlvCheckboxGroup),\n },\n ],\n imports: [MlvLabel],\n})\nexport class MlvCheckboxGroup\n extends MlvFocusableGroupBase<MlvCheckbox>\n implements MlvCheckboxGroupAccessor\n{\n /** Accessible label for the group, rendered above the checkboxes. */\n readonly label = input('');\n\n /** Visual/validation state applied to the group. */\n readonly state = input<MlvCheckboxGroupState>('default');\n\n /**\n * @protected The projected checkboxes in DOM order — drives the shared\n * roving-tabindex arrow navigation from {@link MlvFocusableGroupBase}.\n */\n protected readonly _items = contentChildren(MlvCheckbox);\n\n /** @protected Skips disabled checkboxes during arrow navigation. */\n protected _isDisabled(checkbox: MlvCheckbox): boolean {\n return checkbox.computedDisabled();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}