@malva-ui/core 0.1.13 → 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 (1618) hide show
  1. package/AGENTS.md +4 -1
  2. package/README.md +15 -0
  3. package/docs/ai/avatar.md +2 -0
  4. package/docs/ai/breadcrumb.md +67 -7
  5. package/docs/ai/button.md +74 -19
  6. package/docs/ai/card.md +8 -6
  7. package/docs/ai/chat.md +59 -45
  8. package/docs/ai/checkbox.md +12 -0
  9. package/docs/ai/combobox.md +18 -2
  10. package/docs/ai/copy-to-clipboard.md +1 -1
  11. package/docs/ai/core.md +15 -0
  12. package/docs/ai/data-table.md +89 -54
  13. package/docs/ai/dialog.md +76 -67
  14. package/docs/ai/drawer.md +15 -12
  15. package/docs/ai/dropdown.md +24 -19
  16. package/docs/ai/empty-state.md +3 -3
  17. package/docs/ai/filter.md +24 -5
  18. package/docs/ai/form-utils.md +160 -5
  19. package/docs/ai/icon-toggle.md +160 -0
  20. package/docs/ai/input.md +30 -0
  21. package/docs/ai/layout.md +23 -0
  22. package/docs/ai/list.md +10 -6
  23. package/docs/ai/menu.md +75 -1
  24. package/docs/ai/page.md +220 -60
  25. package/docs/ai/radio.md +9 -0
  26. package/docs/ai/scrollbar.md +30 -8
  27. package/docs/ai/segmented.md +35 -35
  28. package/docs/ai/select.md +30 -5
  29. package/docs/ai/sidebar.md +45 -27
  30. package/docs/ai/switch.md +114 -19
  31. package/docs/ai/table.md +69 -0
  32. package/docs/ai/tabs.md +2 -1
  33. package/docs/ai/tile.md +311 -85
  34. package/docs/ai/timeline.md +63 -39
  35. package/docs/ai/tokenizer.md +21 -5
  36. package/docs/ai/tooltip.md +5 -5
  37. package/docs/ai/view-variant.md +75 -0
  38. package/fesm2022/malva-ui-core-accordion.mjs +167 -0
  39. package/fesm2022/malva-ui-core-accordion.mjs.map +1 -0
  40. package/fesm2022/malva-ui-core-action-bar.mjs +111 -0
  41. package/fesm2022/malva-ui-core-action-bar.mjs.map +1 -0
  42. package/fesm2022/malva-ui-core-alert.mjs +173 -0
  43. package/fesm2022/malva-ui-core-alert.mjs.map +1 -0
  44. package/fesm2022/malva-ui-core-autocomplete.mjs +775 -0
  45. package/fesm2022/malva-ui-core-autocomplete.mjs.map +1 -0
  46. package/fesm2022/malva-ui-core-avatar-group.mjs +224 -0
  47. package/fesm2022/malva-ui-core-avatar-group.mjs.map +1 -0
  48. package/fesm2022/malva-ui-core-avatar.mjs +247 -0
  49. package/fesm2022/malva-ui-core-avatar.mjs.map +1 -0
  50. package/fesm2022/malva-ui-core-badge.mjs +122 -0
  51. package/fesm2022/malva-ui-core-badge.mjs.map +1 -0
  52. package/fesm2022/malva-ui-core-bottom-nav.mjs +161 -0
  53. package/fesm2022/malva-ui-core-bottom-nav.mjs.map +1 -0
  54. package/fesm2022/malva-ui-core-breadcrumb.mjs +494 -0
  55. package/fesm2022/malva-ui-core-breadcrumb.mjs.map +1 -0
  56. package/fesm2022/malva-ui-core-button.mjs +406 -0
  57. package/fesm2022/malva-ui-core-button.mjs.map +1 -0
  58. package/fesm2022/malva-ui-core-calendar.mjs +938 -0
  59. package/fesm2022/malva-ui-core-calendar.mjs.map +1 -0
  60. package/fesm2022/malva-ui-core-card.mjs +164 -0
  61. package/fesm2022/malva-ui-core-card.mjs.map +1 -0
  62. package/fesm2022/malva-ui-core-chat.mjs +825 -0
  63. package/fesm2022/malva-ui-core-chat.mjs.map +1 -0
  64. package/fesm2022/malva-ui-core-checkbox.mjs +272 -0
  65. package/fesm2022/malva-ui-core-checkbox.mjs.map +1 -0
  66. package/fesm2022/malva-ui-core-chip.mjs +176 -0
  67. package/fesm2022/malva-ui-core-chip.mjs.map +1 -0
  68. package/fesm2022/malva-ui-core-color-picker.mjs +1204 -0
  69. package/fesm2022/malva-ui-core-color-picker.mjs.map +1 -0
  70. package/fesm2022/malva-ui-core-combobox.mjs +945 -0
  71. package/fesm2022/malva-ui-core-combobox.mjs.map +1 -0
  72. package/fesm2022/malva-ui-core-copy-to-clipboard.mjs +255 -0
  73. package/fesm2022/malva-ui-core-copy-to-clipboard.mjs.map +1 -0
  74. package/fesm2022/malva-ui-core-data-table.mjs +2696 -0
  75. package/fesm2022/malva-ui-core-data-table.mjs.map +1 -0
  76. package/fesm2022/malva-ui-core-date-range-picker.mjs +276 -0
  77. package/fesm2022/malva-ui-core-date-range-picker.mjs.map +1 -0
  78. package/fesm2022/malva-ui-core-day-picker.mjs +131 -0
  79. package/fesm2022/malva-ui-core-day-picker.mjs.map +1 -0
  80. package/fesm2022/malva-ui-core-dialog-routable-dialog-CvjXMtlD.mjs +94 -0
  81. package/fesm2022/malva-ui-core-dialog-routable-dialog-CvjXMtlD.mjs.map +1 -0
  82. package/fesm2022/malva-ui-core-dialog.mjs +1223 -0
  83. package/fesm2022/malva-ui-core-dialog.mjs.map +1 -0
  84. package/fesm2022/malva-ui-core-divider.mjs +80 -0
  85. package/fesm2022/malva-ui-core-divider.mjs.map +1 -0
  86. package/fesm2022/malva-ui-core-drawer-routable-drawer-qUk6Etnx.mjs +94 -0
  87. package/fesm2022/malva-ui-core-drawer-routable-drawer-qUk6Etnx.mjs.map +1 -0
  88. package/fesm2022/malva-ui-core-drawer.mjs +814 -0
  89. package/fesm2022/malva-ui-core-drawer.mjs.map +1 -0
  90. package/fesm2022/malva-ui-core-dropdown.mjs +994 -0
  91. package/fesm2022/malva-ui-core-dropdown.mjs.map +1 -0
  92. package/fesm2022/malva-ui-core-empty-state.mjs +50 -0
  93. package/fesm2022/malva-ui-core-empty-state.mjs.map +1 -0
  94. package/fesm2022/malva-ui-core-expand.mjs +130 -0
  95. package/fesm2022/malva-ui-core-expand.mjs.map +1 -0
  96. package/fesm2022/malva-ui-core-file-upload.mjs +451 -0
  97. package/fesm2022/malva-ui-core-file-upload.mjs.map +1 -0
  98. package/fesm2022/malva-ui-core-filter.mjs +1627 -0
  99. package/fesm2022/malva-ui-core-filter.mjs.map +1 -0
  100. package/fesm2022/malva-ui-core-form-utils-testing.mjs +39 -0
  101. package/fesm2022/malva-ui-core-form-utils-testing.mjs.map +1 -0
  102. package/fesm2022/malva-ui-core-form-utils.mjs +977 -0
  103. package/fesm2022/malva-ui-core-form-utils.mjs.map +1 -0
  104. package/fesm2022/malva-ui-core-form.mjs +283 -0
  105. package/fesm2022/malva-ui-core-form.mjs.map +1 -0
  106. package/fesm2022/malva-ui-core-icon-toggle.mjs +120 -0
  107. package/fesm2022/malva-ui-core-icon-toggle.mjs.map +1 -0
  108. package/fesm2022/malva-ui-core-input.mjs +375 -0
  109. package/fesm2022/malva-ui-core-input.mjs.map +1 -0
  110. package/fesm2022/malva-ui-core-kbd.mjs +131 -0
  111. package/fesm2022/malva-ui-core-kbd.mjs.map +1 -0
  112. package/fesm2022/malva-ui-core-layout.mjs +212 -0
  113. package/fesm2022/malva-ui-core-layout.mjs.map +1 -0
  114. package/fesm2022/malva-ui-core-link.mjs +89 -0
  115. package/fesm2022/malva-ui-core-link.mjs.map +1 -0
  116. package/fesm2022/malva-ui-core-list.mjs +413 -0
  117. package/fesm2022/malva-ui-core-list.mjs.map +1 -0
  118. package/fesm2022/malva-ui-core-loader.mjs +141 -0
  119. package/fesm2022/malva-ui-core-loader.mjs.map +1 -0
  120. package/fesm2022/malva-ui-core-menu.mjs +2540 -0
  121. package/fesm2022/malva-ui-core-menu.mjs.map +1 -0
  122. package/fesm2022/malva-ui-core-notification.mjs +201 -0
  123. package/fesm2022/malva-ui-core-notification.mjs.map +1 -0
  124. package/fesm2022/malva-ui-core-number-input.mjs +404 -0
  125. package/fesm2022/malva-ui-core-number-input.mjs.map +1 -0
  126. package/fesm2022/malva-ui-core-page.mjs +1898 -0
  127. package/fesm2022/malva-ui-core-page.mjs.map +1 -0
  128. package/fesm2022/malva-ui-core-pagination.mjs +458 -0
  129. package/fesm2022/malva-ui-core-pagination.mjs.map +1 -0
  130. package/fesm2022/malva-ui-core-pin-input.mjs +405 -0
  131. package/fesm2022/malva-ui-core-pin-input.mjs.map +1 -0
  132. package/fesm2022/malva-ui-core-popup.mjs +1488 -0
  133. package/fesm2022/malva-ui-core-popup.mjs.map +1 -0
  134. package/fesm2022/malva-ui-core-progress.mjs +109 -0
  135. package/fesm2022/malva-ui-core-progress.mjs.map +1 -0
  136. package/fesm2022/malva-ui-core-radio.mjs +317 -0
  137. package/fesm2022/malva-ui-core-radio.mjs.map +1 -0
  138. package/fesm2022/malva-ui-core-rating.mjs +236 -0
  139. package/fesm2022/malva-ui-core-rating.mjs.map +1 -0
  140. package/fesm2022/malva-ui-core-scrollbar.mjs +430 -0
  141. package/fesm2022/malva-ui-core-scrollbar.mjs.map +1 -0
  142. package/fesm2022/malva-ui-core-search-field.mjs +578 -0
  143. package/fesm2022/malva-ui-core-search-field.mjs.map +1 -0
  144. package/fesm2022/malva-ui-core-segmented.mjs +458 -0
  145. package/fesm2022/malva-ui-core-segmented.mjs.map +1 -0
  146. package/fesm2022/malva-ui-core-select.mjs +855 -0
  147. package/fesm2022/malva-ui-core-select.mjs.map +1 -0
  148. package/fesm2022/malva-ui-core-sidebar.mjs +1504 -0
  149. package/fesm2022/malva-ui-core-sidebar.mjs.map +1 -0
  150. package/fesm2022/malva-ui-core-skeleton.mjs +85 -0
  151. package/fesm2022/malva-ui-core-skeleton.mjs.map +1 -0
  152. package/fesm2022/malva-ui-core-slider.mjs +514 -0
  153. package/fesm2022/malva-ui-core-slider.mjs.map +1 -0
  154. package/fesm2022/malva-ui-core-split-pane.mjs +359 -0
  155. package/fesm2022/malva-ui-core-split-pane.mjs.map +1 -0
  156. package/fesm2022/malva-ui-core-status-indicator.mjs +78 -0
  157. package/fesm2022/malva-ui-core-status-indicator.mjs.map +1 -0
  158. package/fesm2022/malva-ui-core-stepper.mjs +332 -0
  159. package/fesm2022/malva-ui-core-stepper.mjs.map +1 -0
  160. package/fesm2022/malva-ui-core-switch.mjs +272 -0
  161. package/fesm2022/malva-ui-core-switch.mjs.map +1 -0
  162. package/fesm2022/malva-ui-core-table.mjs +79 -0
  163. package/fesm2022/malva-ui-core-table.mjs.map +1 -0
  164. package/fesm2022/malva-ui-core-tabs.mjs +794 -0
  165. package/fesm2022/malva-ui-core-tabs.mjs.map +1 -0
  166. package/fesm2022/malva-ui-core-textarea.mjs +201 -0
  167. package/fesm2022/malva-ui-core-textarea.mjs.map +1 -0
  168. package/fesm2022/malva-ui-core-tile.mjs +1404 -0
  169. package/fesm2022/malva-ui-core-tile.mjs.map +1 -0
  170. package/fesm2022/malva-ui-core-time-picker.mjs +533 -0
  171. package/fesm2022/malva-ui-core-time-picker.mjs.map +1 -0
  172. package/fesm2022/malva-ui-core-timeline.mjs +216 -0
  173. package/fesm2022/malva-ui-core-timeline.mjs.map +1 -0
  174. package/fesm2022/malva-ui-core-title.mjs +178 -0
  175. package/fesm2022/malva-ui-core-title.mjs.map +1 -0
  176. package/fesm2022/malva-ui-core-toast.mjs +749 -0
  177. package/fesm2022/malva-ui-core-toast.mjs.map +1 -0
  178. package/fesm2022/malva-ui-core-tokenizer.mjs +502 -0
  179. package/fesm2022/malva-ui-core-tokenizer.mjs.map +1 -0
  180. package/fesm2022/malva-ui-core-toolbar.mjs +141 -0
  181. package/fesm2022/malva-ui-core-toolbar.mjs.map +1 -0
  182. package/fesm2022/malva-ui-core-tooltip.mjs +432 -0
  183. package/fesm2022/malva-ui-core-tooltip.mjs.map +1 -0
  184. package/fesm2022/malva-ui-core-tree.mjs +505 -0
  185. package/fesm2022/malva-ui-core-tree.mjs.map +1 -0
  186. package/fesm2022/malva-ui-core-view-variant.mjs +292 -0
  187. package/fesm2022/malva-ui-core-view-variant.mjs.map +1 -0
  188. package/fesm2022/malva-ui-core.mjs +77 -0
  189. package/fesm2022/malva-ui-core.mjs.map +1 -0
  190. package/package.json +179 -156
  191. package/styles/malva-ui.css +253 -220
  192. package/styles/tokens.md +174 -173
  193. package/table/README.md +46 -0
  194. package/types/malva-ui-core-accordion.d.ts +121 -0
  195. package/types/malva-ui-core-action-bar.d.ts +82 -0
  196. package/types/malva-ui-core-alert.d.ts +131 -0
  197. package/types/malva-ui-core-autocomplete.d.ts +301 -0
  198. package/types/malva-ui-core-avatar-group.d.ts +119 -0
  199. package/types/malva-ui-core-avatar.d.ts +156 -0
  200. package/types/malva-ui-core-badge.d.ts +97 -0
  201. package/types/malva-ui-core-bottom-nav.d.ts +104 -0
  202. package/types/malva-ui-core-breadcrumb.d.ts +308 -0
  203. package/types/malva-ui-core-button.d.ts +194 -0
  204. package/types/malva-ui-core-calendar.d.ts +339 -0
  205. package/types/malva-ui-core-card.d.ts +88 -0
  206. package/types/malva-ui-core-chat.d.ts +375 -0
  207. package/types/malva-ui-core-checkbox.d.ts +158 -0
  208. package/types/malva-ui-core-chip.d.ts +128 -0
  209. package/types/malva-ui-core-color-picker.d.ts +442 -0
  210. package/types/malva-ui-core-combobox.d.ts +419 -0
  211. package/types/malva-ui-core-copy-to-clipboard.d.ts +148 -0
  212. package/types/malva-ui-core-data-table.d.ts +1074 -0
  213. package/types/malva-ui-core-date-range-picker.d.ts +149 -0
  214. package/types/malva-ui-core-day-picker.d.ts +55 -0
  215. package/types/malva-ui-core-dialog.d.ts +597 -0
  216. package/types/malva-ui-core-divider.d.ts +68 -0
  217. package/types/malva-ui-core-drawer.d.ts +333 -0
  218. package/types/malva-ui-core-dropdown.d.ts +592 -0
  219. package/types/malva-ui-core-empty-state.d.ts +37 -0
  220. package/types/malva-ui-core-expand.d.ts +102 -0
  221. package/types/malva-ui-core-file-upload.d.ts +267 -0
  222. package/types/malva-ui-core-filter.d.ts +552 -0
  223. package/types/malva-ui-core-form-utils-testing.d.ts +50 -0
  224. package/types/malva-ui-core-form-utils.d.ts +579 -0
  225. package/types/malva-ui-core-form.d.ts +176 -0
  226. package/types/malva-ui-core-icon-toggle.d.ts +80 -0
  227. package/types/malva-ui-core-input.d.ts +262 -0
  228. package/types/malva-ui-core-kbd.d.ts +56 -0
  229. package/types/malva-ui-core-layout.d.ts +70 -0
  230. package/types/malva-ui-core-link.d.ts +28 -0
  231. package/types/malva-ui-core-list.d.ts +252 -0
  232. package/types/malva-ui-core-loader.d.ts +89 -0
  233. package/types/malva-ui-core-menu.d.ts +954 -0
  234. package/types/malva-ui-core-notification.d.ts +122 -0
  235. package/types/malva-ui-core-number-input.d.ts +167 -0
  236. package/types/malva-ui-core-page.d.ts +799 -0
  237. package/types/malva-ui-core-pagination.d.ts +261 -0
  238. package/types/malva-ui-core-pin-input.d.ts +203 -0
  239. package/types/malva-ui-core-popup.d.ts +834 -0
  240. package/types/malva-ui-core-progress.d.ts +73 -0
  241. package/types/malva-ui-core-radio.d.ts +130 -0
  242. package/types/malva-ui-core-rating.d.ts +115 -0
  243. package/types/malva-ui-core-scrollbar.d.ts +203 -0
  244. package/types/malva-ui-core-search-field.d.ts +408 -0
  245. package/types/malva-ui-core-segmented.d.ts +206 -0
  246. package/types/malva-ui-core-select.d.ts +456 -0
  247. package/types/malva-ui-core-sidebar.d.ts +698 -0
  248. package/types/malva-ui-core-skeleton.d.ts +64 -0
  249. package/types/malva-ui-core-slider.d.ts +219 -0
  250. package/types/malva-ui-core-split-pane.d.ts +149 -0
  251. package/types/malva-ui-core-status-indicator.d.ts +65 -0
  252. package/types/malva-ui-core-stepper.d.ts +168 -0
  253. package/types/malva-ui-core-switch.d.ts +146 -0
  254. package/types/malva-ui-core-table.d.ts +37 -0
  255. package/types/malva-ui-core-tabs.d.ts +339 -0
  256. package/types/malva-ui-core-textarea.d.ts +79 -0
  257. package/types/malva-ui-core-tile.d.ts +373 -0
  258. package/types/malva-ui-core-time-picker.d.ts +141 -0
  259. package/types/malva-ui-core-timeline.d.ts +188 -0
  260. package/types/malva-ui-core-title.d.ts +66 -0
  261. package/types/malva-ui-core-toast.d.ts +432 -0
  262. package/types/malva-ui-core-tokenizer.d.ts +217 -0
  263. package/types/malva-ui-core-toolbar.d.ts +91 -0
  264. package/types/malva-ui-core-tooltip.d.ts +200 -0
  265. package/types/malva-ui-core-tree.d.ts +289 -0
  266. package/types/malva-ui-core-view-variant.d.ts +207 -0
  267. package/types/malva-ui-core.d.ts +72 -0
  268. package/view-variant/README.md +3 -0
  269. package/accordion/index.d.ts +0 -3
  270. package/accordion/lib/accordion/accordion.d.ts +0 -47
  271. package/accordion/lib/accordion-item/accordion-header.d.ts +0 -22
  272. package/accordion/lib/accordion-item/accordion-item.d.ts +0 -49
  273. package/accordion/malva-ui-core-accordion.d.ts +0 -5
  274. package/action-bar/index.d.ts +0 -4
  275. package/action-bar/lib/action-bar/action-bar.d.ts +0 -59
  276. package/action-bar/lib/action-bar/components/action-bar-actions.d.ts +0 -9
  277. package/action-bar/lib/action-bar/components/action-bar-logo.d.ts +0 -5
  278. package/action-bar/lib/action-bar/components/action-bar-spacer.d.ts +0 -5
  279. package/action-bar/malva-ui-core-action-bar.d.ts +0 -5
  280. package/alert/index.d.ts +0 -2
  281. package/alert/lib/alert/alert.d.ts +0 -84
  282. package/alert/lib/alert/alert.directives.d.ts +0 -44
  283. package/alert/malva-ui-core-alert.d.ts +0 -5
  284. package/autocomplete/index.d.ts +0 -1
  285. package/autocomplete/lib/autocomplete/autocomplete.d.ts +0 -296
  286. package/autocomplete/malva-ui-core-autocomplete.d.ts +0 -5
  287. package/avatar/index.d.ts +0 -2
  288. package/avatar/lib/avatar/avatar.d.ts +0 -125
  289. package/avatar/lib/color-from-text.pipe.d.ts +0 -21
  290. package/avatar/malva-ui-core-avatar.d.ts +0 -5
  291. package/avatar-group/index.d.ts +0 -1
  292. package/avatar-group/lib/avatar-group/avatar-group.d.ts +0 -115
  293. package/avatar-group/malva-ui-core-avatar-group.d.ts +0 -5
  294. package/badge/index.d.ts +0 -2
  295. package/badge/lib/badge/badge.d.ts +0 -59
  296. package/badge/lib/badge-icon.d.ts +0 -35
  297. package/badge/malva-ui-core-badge.d.ts +0 -5
  298. package/bottom-nav/index.d.ts +0 -1
  299. package/bottom-nav/lib/bottom-nav/bottom-nav.d.ts +0 -99
  300. package/bottom-nav/malva-ui-core-bottom-nav.d.ts +0 -5
  301. package/breadcrumb/index.d.ts +0 -5
  302. package/breadcrumb/lib/breadcrumb/breadcrumb-item-host.d.ts +0 -32
  303. package/breadcrumb/lib/breadcrumb/breadcrumb-item.d.ts +0 -41
  304. package/breadcrumb/lib/breadcrumb/breadcrumb-separator.d.ts +0 -31
  305. package/breadcrumb/lib/breadcrumb/breadcrumb.d.ts +0 -151
  306. package/breadcrumb/lib/breadcrumb/breadcrumb.types.d.ts +0 -26
  307. package/breadcrumb/malva-ui-core-breadcrumb.d.ts +0 -5
  308. package/button/index.d.ts +0 -7
  309. package/button/lib/button/button.d.ts +0 -61
  310. package/button/lib/button-close/button-close.d.ts +0 -24
  311. package/button/lib/button-group/button-group.d.ts +0 -21
  312. package/button/lib/button-split/button-split.d.ts +0 -21
  313. package/button/lib/button-toggle/button-toggle.d.ts +0 -33
  314. package/button/lib/button-variant.token.d.ts +0 -13
  315. package/button/lib/button.directives.d.ts +0 -14
  316. package/button/lib/button.types.d.ts +0 -8
  317. package/button/malva-ui-core-button.d.ts +0 -5
  318. package/calendar/index.d.ts +0 -3
  319. package/calendar/lib/calendar/calendar.d.ts +0 -182
  320. package/calendar/lib/date-provider/date-adapter.d.ts +0 -92
  321. package/calendar/lib/date-provider/native-date-adapter.d.ts +0 -60
  322. package/calendar/malva-ui-core-calendar.d.ts +0 -5
  323. package/card/index.d.ts +0 -5
  324. package/card/lib/card/card.d.ts +0 -43
  325. package/card/lib/card-actions-def.d.ts +0 -10
  326. package/card/lib/card-footer-def.d.ts +0 -13
  327. package/card/lib/card-header-def.d.ts +0 -10
  328. package/card/lib/card-subheader-def.d.ts +0 -16
  329. package/card/malva-ui-core-card.d.ts +0 -5
  330. package/chat/index.d.ts +0 -9
  331. package/chat/lib/chat/chat.d.ts +0 -133
  332. package/chat/lib/chat-audio/chat-audio.d.ts +0 -51
  333. package/chat/lib/chat-audio/chat-audio.service.d.ts +0 -21
  334. package/chat/lib/chat-date/chat-date.d.ts +0 -16
  335. package/chat/lib/chat-format.d.ts +0 -5
  336. package/chat/lib/chat-media-grid/chat-media-grid.d.ts +0 -32
  337. package/chat/lib/chat-message/chat-message.d.ts +0 -45
  338. package/chat/lib/chat-render-list.d.ts +0 -16
  339. package/chat/lib/chat-tokens.d.ts +0 -25
  340. package/chat/lib/chat-typing/chat-typing.d.ts +0 -16
  341. package/chat/lib/chat.types.d.ts +0 -80
  342. package/chat/lib/defs/chat-author-def.d.ts +0 -30
  343. package/chat/lib/defs/chat-date-def.d.ts +0 -22
  344. package/chat/lib/defs/chat-message-def.d.ts +0 -23
  345. package/chat/malva-ui-core-chat.d.ts +0 -5
  346. package/checkbox/index.d.ts +0 -3
  347. package/checkbox/lib/checkbox/checkbox.d.ts +0 -129
  348. package/checkbox/lib/checkbox-group/checkbox-group.d.ts +0 -24
  349. package/checkbox/lib/checkbox-group-token.d.ts +0 -6
  350. package/checkbox/malva-ui-core-checkbox.d.ts +0 -5
  351. package/chip/index.d.ts +0 -2
  352. package/chip/lib/chip/chip.d.ts +0 -107
  353. package/chip/lib/chip/chip.directives.d.ts +0 -18
  354. package/chip/malva-ui-core-chip.d.ts +0 -5
  355. package/color-picker/index.d.ts +0 -3
  356. package/color-picker/lib/color-picker/color-picker.d.ts +0 -188
  357. package/color-picker/lib/color-picker-popup/color-picker-popup.d.ts +0 -151
  358. package/color-picker/lib/color-utils/color-utils.d.ts +0 -102
  359. package/color-picker/malva-ui-core-color-picker.d.ts +0 -5
  360. package/combobox/index.d.ts +0 -2
  361. package/combobox/lib/combobox/combobox.d.ts +0 -400
  362. package/combobox/lib/combobox-template.directives.d.ts +0 -10
  363. package/combobox/malva-ui-core-combobox.d.ts +0 -5
  364. package/copy-to-clipboard/index.d.ts +0 -1
  365. package/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.d.ts +0 -130
  366. package/copy-to-clipboard/malva-ui-core-copy-to-clipboard.d.ts +0 -5
  367. package/data-table/index.d.ts +0 -8
  368. package/data-table/lib/data-source.d.ts +0 -5
  369. package/data-table/lib/data-table/data-table-layout.d.ts +0 -31
  370. package/data-table/lib/data-table/data-table.d.ts +0 -699
  371. package/data-table/lib/data-table/services/data-table-column-visibility.service.d.ts +0 -19
  372. package/data-table/lib/data-table/services/data-table-editing.service.d.ts +0 -37
  373. package/data-table/lib/data-table/services/data-table-pinning.service.d.ts +0 -37
  374. package/data-table/lib/data-table-cell.d.ts +0 -44
  375. package/data-table/lib/data-table-edit-cell.d.ts +0 -44
  376. package/data-table/lib/data-table-error.d.ts +0 -37
  377. package/data-table/lib/data-table-footer.d.ts +0 -26
  378. package/data-table/lib/data-table-no-data.d.ts +0 -19
  379. package/data-table/lib/filter-dropdown/filter-dropdown.d.ts +0 -54
  380. package/data-table/lib/types.d.ts +0 -134
  381. package/data-table/malva-ui-core-data-table.d.ts +0 -5
  382. package/date-range-picker/index.d.ts +0 -1
  383. package/date-range-picker/lib/date-range-picker/date-range-picker.d.ts +0 -145
  384. package/date-range-picker/malva-ui-core-date-range-picker.d.ts +0 -5
  385. package/day-picker/index.d.ts +0 -1
  386. package/day-picker/lib/day-picker/day-picker.d.ts +0 -51
  387. package/day-picker/malva-ui-core-day-picker.d.ts +0 -5
  388. package/dialog/index.d.ts +0 -11
  389. package/dialog/lib/confirm-dialog-options.d.ts +0 -41
  390. package/dialog/lib/confirm-dialog.d.ts +0 -52
  391. package/dialog/lib/dialog/dialog.d.ts +0 -22
  392. package/dialog/lib/dialog-body.d.ts +0 -9
  393. package/dialog/lib/dialog-close.d.ts +0 -27
  394. package/dialog/lib/dialog-config.d.ts +0 -112
  395. package/dialog/lib/dialog-container.d.ts +0 -40
  396. package/dialog/lib/dialog-footer.d.ts +0 -13
  397. package/dialog/lib/dialog-header.d.ts +0 -74
  398. package/dialog/lib/dialog-ref.d.ts +0 -95
  399. package/dialog/lib/dialog-template.d.ts +0 -65
  400. package/dialog/lib/dialog-text-content.d.ts +0 -24
  401. package/dialog/lib/dialog.service.d.ts +0 -63
  402. package/dialog/lib/generate-routable-dialog-route.d.ts +0 -49
  403. package/dialog/lib/inject-dialog-ref.d.ts +0 -8
  404. package/dialog/lib/routable-dialog.d.ts +0 -30
  405. package/dialog/malva-ui-core-dialog.d.ts +0 -5
  406. package/divider/index.d.ts +0 -1
  407. package/divider/lib/divider/divider.d.ts +0 -64
  408. package/divider/malva-ui-core-divider.d.ts +0 -5
  409. package/drawer/index.d.ts +0 -11
  410. package/drawer/lib/drawer/drawer.d.ts +0 -106
  411. package/drawer/lib/drawer-body.d.ts +0 -8
  412. package/drawer/lib/drawer-content.d.ts +0 -6
  413. package/drawer/lib/drawer-footer.d.ts +0 -5
  414. package/drawer/lib/drawer-header.d.ts +0 -5
  415. package/drawer/lib/drawer-ref.d.ts +0 -29
  416. package/drawer/lib/drawer-resize.d.ts +0 -65
  417. package/drawer/lib/drawer-section/drawer-section.d.ts +0 -15
  418. package/drawer/lib/drawer-sections/drawer-sections.d.ts +0 -22
  419. package/drawer/lib/drawer-sections.service.d.ts +0 -42
  420. package/drawer/lib/drawer.service.d.ts +0 -66
  421. package/drawer/lib/generate-routable-drawer-route.d.ts +0 -42
  422. package/drawer/lib/routable-drawer.d.ts +0 -30
  423. package/drawer/malva-ui-core-drawer.d.ts +0 -5
  424. package/dropdown/index.d.ts +0 -9
  425. package/dropdown/lib/active-descendant.d.ts +0 -64
  426. package/dropdown/lib/dropdown-panel/dropdown-panel.d.ts +0 -178
  427. package/dropdown/lib/highlight-match.pipe.d.ts +0 -27
  428. package/dropdown/lib/option-matcher.d.ts +0 -87
  429. package/dropdown/lib/options-adapter.d.ts +0 -142
  430. package/dropdown/lib/options-result.d.ts +0 -6
  431. package/dropdown/lib/reconciliation.d.ts +0 -19
  432. package/dropdown/lib/select-data-source.d.ts +0 -18
  433. package/dropdown/lib/select-option.d.ts +0 -37
  434. package/dropdown/malva-ui-core-dropdown.d.ts +0 -5
  435. package/empty-state/index.d.ts +0 -1
  436. package/empty-state/lib/empty-state/empty-state.d.ts +0 -34
  437. package/empty-state/malva-ui-core-empty-state.d.ts +0 -5
  438. package/esm2022/accordion/index.js +0 -4
  439. package/esm2022/accordion/index.js.map +0 -1
  440. package/esm2022/accordion/lib/accordion/accordion.js +0 -65
  441. package/esm2022/accordion/lib/accordion/accordion.js.map +0 -1
  442. package/esm2022/accordion/lib/accordion-item/accordion-header.js +0 -30
  443. package/esm2022/accordion/lib/accordion-item/accordion-header.js.map +0 -1
  444. package/esm2022/accordion/lib/accordion-item/accordion-item.js +0 -70
  445. package/esm2022/accordion/lib/accordion-item/accordion-item.js.map +0 -1
  446. package/esm2022/accordion/malva-ui-core-accordion.js +0 -5
  447. package/esm2022/accordion/malva-ui-core-accordion.js.map +0 -1
  448. package/esm2022/action-bar/index.js +0 -5
  449. package/esm2022/action-bar/index.js.map +0 -1
  450. package/esm2022/action-bar/lib/action-bar/action-bar.js +0 -64
  451. package/esm2022/action-bar/lib/action-bar/action-bar.js.map +0 -1
  452. package/esm2022/action-bar/lib/action-bar/components/action-bar-actions.js +0 -20
  453. package/esm2022/action-bar/lib/action-bar/components/action-bar-actions.js.map +0 -1
  454. package/esm2022/action-bar/lib/action-bar/components/action-bar-logo.js +0 -13
  455. package/esm2022/action-bar/lib/action-bar/components/action-bar-logo.js.map +0 -1
  456. package/esm2022/action-bar/lib/action-bar/components/action-bar-spacer.js +0 -13
  457. package/esm2022/action-bar/lib/action-bar/components/action-bar-spacer.js.map +0 -1
  458. package/esm2022/action-bar/malva-ui-core-action-bar.js +0 -5
  459. package/esm2022/action-bar/malva-ui-core-action-bar.js.map +0 -1
  460. package/esm2022/alert/index.js +0 -3
  461. package/esm2022/alert/index.js.map +0 -1
  462. package/esm2022/alert/lib/alert/alert.directives.js +0 -53
  463. package/esm2022/alert/lib/alert/alert.directives.js.map +0 -1
  464. package/esm2022/alert/lib/alert/alert.js +0 -118
  465. package/esm2022/alert/lib/alert/alert.js.map +0 -1
  466. package/esm2022/alert/malva-ui-core-alert.js +0 -5
  467. package/esm2022/alert/malva-ui-core-alert.js.map +0 -1
  468. package/esm2022/autocomplete/index.js +0 -2
  469. package/esm2022/autocomplete/index.js.map +0 -1
  470. package/esm2022/autocomplete/lib/autocomplete/autocomplete.js +0 -765
  471. package/esm2022/autocomplete/lib/autocomplete/autocomplete.js.map +0 -1
  472. package/esm2022/autocomplete/malva-ui-core-autocomplete.js +0 -5
  473. package/esm2022/autocomplete/malva-ui-core-autocomplete.js.map +0 -1
  474. package/esm2022/avatar/index.js +0 -3
  475. package/esm2022/avatar/index.js.map +0 -1
  476. package/esm2022/avatar/lib/avatar/avatar.js +0 -192
  477. package/esm2022/avatar/lib/avatar/avatar.js.map +0 -1
  478. package/esm2022/avatar/lib/color-from-text.pipe.js +0 -39
  479. package/esm2022/avatar/lib/color-from-text.pipe.js.map +0 -1
  480. package/esm2022/avatar/malva-ui-core-avatar.js +0 -5
  481. package/esm2022/avatar/malva-ui-core-avatar.js.map +0 -1
  482. package/esm2022/avatar-group/index.js +0 -2
  483. package/esm2022/avatar-group/index.js.map +0 -1
  484. package/esm2022/avatar-group/lib/avatar-group/avatar-group.js +0 -217
  485. package/esm2022/avatar-group/lib/avatar-group/avatar-group.js.map +0 -1
  486. package/esm2022/avatar-group/malva-ui-core-avatar-group.js +0 -5
  487. package/esm2022/avatar-group/malva-ui-core-avatar-group.js.map +0 -1
  488. package/esm2022/badge/index.js +0 -3
  489. package/esm2022/badge/index.js.map +0 -1
  490. package/esm2022/badge/lib/badge/badge.js +0 -71
  491. package/esm2022/badge/lib/badge/badge.js.map +0 -1
  492. package/esm2022/badge/lib/badge-icon.js +0 -47
  493. package/esm2022/badge/lib/badge-icon.js.map +0 -1
  494. package/esm2022/badge/malva-ui-core-badge.js +0 -5
  495. package/esm2022/badge/malva-ui-core-badge.js.map +0 -1
  496. package/esm2022/bottom-nav/index.js +0 -2
  497. package/esm2022/bottom-nav/index.js.map +0 -1
  498. package/esm2022/bottom-nav/lib/bottom-nav/bottom-nav.js +0 -155
  499. package/esm2022/bottom-nav/lib/bottom-nav/bottom-nav.js.map +0 -1
  500. package/esm2022/bottom-nav/malva-ui-core-bottom-nav.js +0 -5
  501. package/esm2022/bottom-nav/malva-ui-core-bottom-nav.js.map +0 -1
  502. package/esm2022/breadcrumb/index.js +0 -6
  503. package/esm2022/breadcrumb/index.js.map +0 -1
  504. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item-host.js +0 -43
  505. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item-host.js.map +0 -1
  506. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item.js +0 -110
  507. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item.js.map +0 -1
  508. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-separator.js +0 -38
  509. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-separator.js.map +0 -1
  510. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.js +0 -284
  511. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.js.map +0 -1
  512. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.types.js +0 -1
  513. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.types.js.map +0 -1
  514. package/esm2022/breadcrumb/malva-ui-core-breadcrumb.js +0 -5
  515. package/esm2022/breadcrumb/malva-ui-core-breadcrumb.js.map +0 -1
  516. package/esm2022/button/index.js +0 -8
  517. package/esm2022/button/index.js.map +0 -1
  518. package/esm2022/button/lib/button/button.js +0 -137
  519. package/esm2022/button/lib/button/button.js.map +0 -1
  520. package/esm2022/button/lib/button-close/button-close.js +0 -52
  521. package/esm2022/button/lib/button-close/button-close.js.map +0 -1
  522. package/esm2022/button/lib/button-group/button-group.js +0 -44
  523. package/esm2022/button/lib/button-group/button-group.js.map +0 -1
  524. package/esm2022/button/lib/button-split/button-split.js +0 -44
  525. package/esm2022/button/lib/button-split/button-split.js.map +0 -1
  526. package/esm2022/button/lib/button-toggle/button-toggle.js +0 -94
  527. package/esm2022/button/lib/button-toggle/button-toggle.js.map +0 -1
  528. package/esm2022/button/lib/button-variant.token.js +0 -4
  529. package/esm2022/button/lib/button-variant.token.js.map +0 -1
  530. package/esm2022/button/lib/button.directives.js +0 -37
  531. package/esm2022/button/lib/button.directives.js.map +0 -1
  532. package/esm2022/button/lib/button.types.js +0 -1
  533. package/esm2022/button/lib/button.types.js.map +0 -1
  534. package/esm2022/button/malva-ui-core-button.js +0 -5
  535. package/esm2022/button/malva-ui-core-button.js.map +0 -1
  536. package/esm2022/calendar/index.js +0 -4
  537. package/esm2022/calendar/index.js.map +0 -1
  538. package/esm2022/calendar/lib/calendar/calendar.js +0 -672
  539. package/esm2022/calendar/lib/calendar/calendar.js.map +0 -1
  540. package/esm2022/calendar/lib/date-provider/date-adapter.js +0 -111
  541. package/esm2022/calendar/lib/date-provider/date-adapter.js.map +0 -1
  542. package/esm2022/calendar/lib/date-provider/native-date-adapter.js +0 -151
  543. package/esm2022/calendar/lib/date-provider/native-date-adapter.js.map +0 -1
  544. package/esm2022/calendar/malva-ui-core-calendar.js +0 -5
  545. package/esm2022/calendar/malva-ui-core-calendar.js.map +0 -1
  546. package/esm2022/card/index.js +0 -6
  547. package/esm2022/card/index.js.map +0 -1
  548. package/esm2022/card/lib/card/card.js +0 -54
  549. package/esm2022/card/lib/card/card.js.map +0 -1
  550. package/esm2022/card/lib/card-actions-def.js +0 -27
  551. package/esm2022/card/lib/card-actions-def.js.map +0 -1
  552. package/esm2022/card/lib/card-footer-def.js +0 -32
  553. package/esm2022/card/lib/card-footer-def.js.map +0 -1
  554. package/esm2022/card/lib/card-header-def.js +0 -27
  555. package/esm2022/card/lib/card-header-def.js.map +0 -1
  556. package/esm2022/card/lib/card-subheader-def.js +0 -33
  557. package/esm2022/card/lib/card-subheader-def.js.map +0 -1
  558. package/esm2022/card/malva-ui-core-card.js +0 -5
  559. package/esm2022/card/malva-ui-core-card.js.map +0 -1
  560. package/esm2022/chat/index.js +0 -10
  561. package/esm2022/chat/index.js.map +0 -1
  562. package/esm2022/chat/lib/chat/chat.js +0 -326
  563. package/esm2022/chat/lib/chat/chat.js.map +0 -1
  564. package/esm2022/chat/lib/chat-audio/chat-audio.js +0 -110
  565. package/esm2022/chat/lib/chat-audio/chat-audio.js.map +0 -1
  566. package/esm2022/chat/lib/chat-audio/chat-audio.service.js +0 -28
  567. package/esm2022/chat/lib/chat-audio/chat-audio.service.js.map +0 -1
  568. package/esm2022/chat/lib/chat-date/chat-date.js +0 -46
  569. package/esm2022/chat/lib/chat-date/chat-date.js.map +0 -1
  570. package/esm2022/chat/lib/chat-format.js +0 -11
  571. package/esm2022/chat/lib/chat-format.js.map +0 -1
  572. package/esm2022/chat/lib/chat-media-grid/chat-media-grid.js +0 -53
  573. package/esm2022/chat/lib/chat-media-grid/chat-media-grid.js.map +0 -1
  574. package/esm2022/chat/lib/chat-message/chat-message.js +0 -86
  575. package/esm2022/chat/lib/chat-message/chat-message.js.map +0 -1
  576. package/esm2022/chat/lib/chat-render-list.js +0 -55
  577. package/esm2022/chat/lib/chat-render-list.js.map +0 -1
  578. package/esm2022/chat/lib/chat-tokens.js +0 -9
  579. package/esm2022/chat/lib/chat-tokens.js.map +0 -1
  580. package/esm2022/chat/lib/chat-typing/chat-typing.js +0 -50
  581. package/esm2022/chat/lib/chat-typing/chat-typing.js.map +0 -1
  582. package/esm2022/chat/lib/chat.types.js +0 -1
  583. package/esm2022/chat/lib/chat.types.js.map +0 -1
  584. package/esm2022/chat/lib/defs/chat-author-def.js +0 -27
  585. package/esm2022/chat/lib/defs/chat-author-def.js.map +0 -1
  586. package/esm2022/chat/lib/defs/chat-date-def.js +0 -24
  587. package/esm2022/chat/lib/defs/chat-date-def.js.map +0 -1
  588. package/esm2022/chat/lib/defs/chat-message-def.js +0 -30
  589. package/esm2022/chat/lib/defs/chat-message-def.js.map +0 -1
  590. package/esm2022/chat/malva-ui-core-chat.js +0 -5
  591. package/esm2022/chat/malva-ui-core-chat.js.map +0 -1
  592. package/esm2022/checkbox/index.js +0 -4
  593. package/esm2022/checkbox/index.js.map +0 -1
  594. package/esm2022/checkbox/lib/checkbox/checkbox.js +0 -201
  595. package/esm2022/checkbox/lib/checkbox/checkbox.js.map +0 -1
  596. package/esm2022/checkbox/lib/checkbox-group/checkbox-group.js +0 -68
  597. package/esm2022/checkbox/lib/checkbox-group/checkbox-group.js.map +0 -1
  598. package/esm2022/checkbox/lib/checkbox-group-token.js +0 -3
  599. package/esm2022/checkbox/lib/checkbox-group-token.js.map +0 -1
  600. package/esm2022/checkbox/malva-ui-core-checkbox.js +0 -5
  601. package/esm2022/checkbox/malva-ui-core-checkbox.js.map +0 -1
  602. package/esm2022/chip/index.js +0 -3
  603. package/esm2022/chip/index.js.map +0 -1
  604. package/esm2022/chip/lib/chip/chip.directives.js +0 -32
  605. package/esm2022/chip/lib/chip/chip.directives.js.map +0 -1
  606. package/esm2022/chip/lib/chip/chip.js +0 -140
  607. package/esm2022/chip/lib/chip/chip.js.map +0 -1
  608. package/esm2022/chip/malva-ui-core-chip.js +0 -5
  609. package/esm2022/chip/malva-ui-core-chip.js.map +0 -1
  610. package/esm2022/color-picker/index.js +0 -4
  611. package/esm2022/color-picker/index.js.map +0 -1
  612. package/esm2022/color-picker/lib/color-picker/color-picker.js +0 -530
  613. package/esm2022/color-picker/lib/color-picker/color-picker.js.map +0 -1
  614. package/esm2022/color-picker/lib/color-picker-popup/color-picker-popup.js +0 -419
  615. package/esm2022/color-picker/lib/color-picker-popup/color-picker-popup.js.map +0 -1
  616. package/esm2022/color-picker/lib/color-utils/color-utils.js +0 -256
  617. package/esm2022/color-picker/lib/color-utils/color-utils.js.map +0 -1
  618. package/esm2022/color-picker/malva-ui-core-color-picker.js +0 -5
  619. package/esm2022/color-picker/malva-ui-core-color-picker.js.map +0 -1
  620. package/esm2022/combobox/index.js +0 -3
  621. package/esm2022/combobox/index.js.map +0 -1
  622. package/esm2022/combobox/lib/combobox/combobox.js +0 -911
  623. package/esm2022/combobox/lib/combobox/combobox.js.map +0 -1
  624. package/esm2022/combobox/lib/combobox-template.directives.js +0 -24
  625. package/esm2022/combobox/lib/combobox-template.directives.js.map +0 -1
  626. package/esm2022/combobox/malva-ui-core-combobox.js +0 -5
  627. package/esm2022/combobox/malva-ui-core-combobox.js.map +0 -1
  628. package/esm2022/copy-to-clipboard/index.js +0 -2
  629. package/esm2022/copy-to-clipboard/index.js.map +0 -1
  630. package/esm2022/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.js +0 -201
  631. package/esm2022/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.js.map +0 -1
  632. package/esm2022/copy-to-clipboard/malva-ui-core-copy-to-clipboard.js +0 -5
  633. package/esm2022/copy-to-clipboard/malva-ui-core-copy-to-clipboard.js.map +0 -1
  634. package/esm2022/data-table/index.js +0 -9
  635. package/esm2022/data-table/index.js.map +0 -1
  636. package/esm2022/data-table/lib/data-source.js +0 -6
  637. package/esm2022/data-table/lib/data-source.js.map +0 -1
  638. package/esm2022/data-table/lib/data-table/data-table-layout.js +0 -84
  639. package/esm2022/data-table/lib/data-table/data-table-layout.js.map +0 -1
  640. package/esm2022/data-table/lib/data-table/data-table.js +0 -1846
  641. package/esm2022/data-table/lib/data-table/data-table.js.map +0 -1
  642. package/esm2022/data-table/lib/data-table/services/data-table-column-visibility.service.js +0 -37
  643. package/esm2022/data-table/lib/data-table/services/data-table-column-visibility.service.js.map +0 -1
  644. package/esm2022/data-table/lib/data-table/services/data-table-editing.service.js +0 -63
  645. package/esm2022/data-table/lib/data-table/services/data-table-editing.service.js.map +0 -1
  646. package/esm2022/data-table/lib/data-table/services/data-table-pinning.service.js +0 -68
  647. package/esm2022/data-table/lib/data-table/services/data-table-pinning.service.js.map +0 -1
  648. package/esm2022/data-table/lib/data-table-cell.js +0 -46
  649. package/esm2022/data-table/lib/data-table-cell.js.map +0 -1
  650. package/esm2022/data-table/lib/data-table-edit-cell.js +0 -46
  651. package/esm2022/data-table/lib/data-table-edit-cell.js.map +0 -1
  652. package/esm2022/data-table/lib/data-table-error.js +0 -37
  653. package/esm2022/data-table/lib/data-table-error.js.map +0 -1
  654. package/esm2022/data-table/lib/data-table-footer.js +0 -33
  655. package/esm2022/data-table/lib/data-table-footer.js.map +0 -1
  656. package/esm2022/data-table/lib/data-table-no-data.js +0 -26
  657. package/esm2022/data-table/lib/data-table-no-data.js.map +0 -1
  658. package/esm2022/data-table/lib/filter-dropdown/filter-dropdown.js +0 -224
  659. package/esm2022/data-table/lib/filter-dropdown/filter-dropdown.js.map +0 -1
  660. package/esm2022/data-table/lib/types.js +0 -1
  661. package/esm2022/data-table/lib/types.js.map +0 -1
  662. package/esm2022/data-table/malva-ui-core-data-table.js +0 -5
  663. package/esm2022/data-table/malva-ui-core-data-table.js.map +0 -1
  664. package/esm2022/date-range-picker/index.js +0 -2
  665. package/esm2022/date-range-picker/index.js.map +0 -1
  666. package/esm2022/date-range-picker/lib/date-range-picker/date-range-picker.js +0 -269
  667. package/esm2022/date-range-picker/lib/date-range-picker/date-range-picker.js.map +0 -1
  668. package/esm2022/date-range-picker/malva-ui-core-date-range-picker.js +0 -5
  669. package/esm2022/date-range-picker/malva-ui-core-date-range-picker.js.map +0 -1
  670. package/esm2022/day-picker/index.js +0 -2
  671. package/esm2022/day-picker/index.js.map +0 -1
  672. package/esm2022/day-picker/lib/day-picker/day-picker.js +0 -124
  673. package/esm2022/day-picker/lib/day-picker/day-picker.js.map +0 -1
  674. package/esm2022/day-picker/malva-ui-core-day-picker.js +0 -5
  675. package/esm2022/day-picker/malva-ui-core-day-picker.js.map +0 -1
  676. package/esm2022/dialog/index.js +0 -12
  677. package/esm2022/dialog/index.js.map +0 -1
  678. package/esm2022/dialog/lib/confirm-dialog-options.js +0 -1
  679. package/esm2022/dialog/lib/confirm-dialog-options.js.map +0 -1
  680. package/esm2022/dialog/lib/confirm-dialog.js +0 -155
  681. package/esm2022/dialog/lib/confirm-dialog.js.map +0 -1
  682. package/esm2022/dialog/lib/dialog/dialog.js +0 -40
  683. package/esm2022/dialog/lib/dialog/dialog.js.map +0 -1
  684. package/esm2022/dialog/lib/dialog-body.js +0 -33
  685. package/esm2022/dialog/lib/dialog-body.js.map +0 -1
  686. package/esm2022/dialog/lib/dialog-close.js +0 -45
  687. package/esm2022/dialog/lib/dialog-close.js.map +0 -1
  688. package/esm2022/dialog/lib/dialog-config.js +0 -23
  689. package/esm2022/dialog/lib/dialog-config.js.map +0 -1
  690. package/esm2022/dialog/lib/dialog-container.js +0 -69
  691. package/esm2022/dialog/lib/dialog-container.js.map +0 -1
  692. package/esm2022/dialog/lib/dialog-footer.js +0 -29
  693. package/esm2022/dialog/lib/dialog-footer.js.map +0 -1
  694. package/esm2022/dialog/lib/dialog-header.js +0 -181
  695. package/esm2022/dialog/lib/dialog-header.js.map +0 -1
  696. package/esm2022/dialog/lib/dialog-ref.js +0 -167
  697. package/esm2022/dialog/lib/dialog-ref.js.map +0 -1
  698. package/esm2022/dialog/lib/dialog-template.js +0 -136
  699. package/esm2022/dialog/lib/dialog-template.js.map +0 -1
  700. package/esm2022/dialog/lib/dialog-text-content.js +0 -59
  701. package/esm2022/dialog/lib/dialog-text-content.js.map +0 -1
  702. package/esm2022/dialog/lib/dialog.service.js +0 -205
  703. package/esm2022/dialog/lib/dialog.service.js.map +0 -1
  704. package/esm2022/dialog/lib/generate-routable-dialog-route.js +0 -59
  705. package/esm2022/dialog/lib/generate-routable-dialog-route.js.map +0 -1
  706. package/esm2022/dialog/lib/inject-dialog-ref.js +0 -16
  707. package/esm2022/dialog/lib/inject-dialog-ref.js.map +0 -1
  708. package/esm2022/dialog/lib/routable-dialog.js +0 -91
  709. package/esm2022/dialog/lib/routable-dialog.js.map +0 -1
  710. package/esm2022/dialog/malva-ui-core-dialog.js +0 -5
  711. package/esm2022/dialog/malva-ui-core-dialog.js.map +0 -1
  712. package/esm2022/divider/index.js +0 -2
  713. package/esm2022/divider/index.js.map +0 -1
  714. package/esm2022/divider/lib/divider/divider.js +0 -73
  715. package/esm2022/divider/lib/divider/divider.js.map +0 -1
  716. package/esm2022/divider/malva-ui-core-divider.js +0 -5
  717. package/esm2022/divider/malva-ui-core-divider.js.map +0 -1
  718. package/esm2022/drawer/index.js +0 -12
  719. package/esm2022/drawer/index.js.map +0 -1
  720. package/esm2022/drawer/lib/drawer/drawer.js +0 -180
  721. package/esm2022/drawer/lib/drawer/drawer.js.map +0 -1
  722. package/esm2022/drawer/lib/drawer-body.js +0 -32
  723. package/esm2022/drawer/lib/drawer-body.js.map +0 -1
  724. package/esm2022/drawer/lib/drawer-content.js +0 -14
  725. package/esm2022/drawer/lib/drawer-content.js.map +0 -1
  726. package/esm2022/drawer/lib/drawer-footer.js +0 -14
  727. package/esm2022/drawer/lib/drawer-footer.js.map +0 -1
  728. package/esm2022/drawer/lib/drawer-header.js +0 -14
  729. package/esm2022/drawer/lib/drawer-header.js.map +0 -1
  730. package/esm2022/drawer/lib/drawer-ref.js +0 -31
  731. package/esm2022/drawer/lib/drawer-ref.js.map +0 -1
  732. package/esm2022/drawer/lib/drawer-resize.js +0 -243
  733. package/esm2022/drawer/lib/drawer-resize.js.map +0 -1
  734. package/esm2022/drawer/lib/drawer-section/drawer-section.js +0 -26
  735. package/esm2022/drawer/lib/drawer-section/drawer-section.js.map +0 -1
  736. package/esm2022/drawer/lib/drawer-sections/drawer-sections.js +0 -58
  737. package/esm2022/drawer/lib/drawer-sections/drawer-sections.js.map +0 -1
  738. package/esm2022/drawer/lib/drawer-sections.service.js +0 -83
  739. package/esm2022/drawer/lib/drawer-sections.service.js.map +0 -1
  740. package/esm2022/drawer/lib/drawer.service.js +0 -86
  741. package/esm2022/drawer/lib/drawer.service.js.map +0 -1
  742. package/esm2022/drawer/lib/generate-routable-drawer-route.js +0 -52
  743. package/esm2022/drawer/lib/generate-routable-drawer-route.js.map +0 -1
  744. package/esm2022/drawer/lib/routable-drawer.js +0 -91
  745. package/esm2022/drawer/lib/routable-drawer.js.map +0 -1
  746. package/esm2022/drawer/malva-ui-core-drawer.js +0 -5
  747. package/esm2022/drawer/malva-ui-core-drawer.js.map +0 -1
  748. package/esm2022/dropdown/index.js +0 -10
  749. package/esm2022/dropdown/index.js.map +0 -1
  750. package/esm2022/dropdown/lib/active-descendant.js +0 -92
  751. package/esm2022/dropdown/lib/active-descendant.js.map +0 -1
  752. package/esm2022/dropdown/lib/dropdown-panel/dropdown-panel.js +0 -295
  753. package/esm2022/dropdown/lib/dropdown-panel/dropdown-panel.js.map +0 -1
  754. package/esm2022/dropdown/lib/highlight-match.pipe.js +0 -36
  755. package/esm2022/dropdown/lib/highlight-match.pipe.js.map +0 -1
  756. package/esm2022/dropdown/lib/option-matcher.js +0 -124
  757. package/esm2022/dropdown/lib/option-matcher.js.map +0 -1
  758. package/esm2022/dropdown/lib/options-adapter.js +0 -356
  759. package/esm2022/dropdown/lib/options-adapter.js.map +0 -1
  760. package/esm2022/dropdown/lib/options-result.js +0 -11
  761. package/esm2022/dropdown/lib/options-result.js.map +0 -1
  762. package/esm2022/dropdown/lib/reconciliation.js +0 -32
  763. package/esm2022/dropdown/lib/reconciliation.js.map +0 -1
  764. package/esm2022/dropdown/lib/select-data-source.js +0 -21
  765. package/esm2022/dropdown/lib/select-data-source.js.map +0 -1
  766. package/esm2022/dropdown/lib/select-option.js +0 -25
  767. package/esm2022/dropdown/lib/select-option.js.map +0 -1
  768. package/esm2022/dropdown/malva-ui-core-dropdown.js +0 -5
  769. package/esm2022/dropdown/malva-ui-core-dropdown.js.map +0 -1
  770. package/esm2022/empty-state/index.js +0 -2
  771. package/esm2022/empty-state/index.js.map +0 -1
  772. package/esm2022/empty-state/lib/empty-state/empty-state.js +0 -43
  773. package/esm2022/empty-state/lib/empty-state/empty-state.js.map +0 -1
  774. package/esm2022/empty-state/malva-ui-core-empty-state.js +0 -5
  775. package/esm2022/empty-state/malva-ui-core-empty-state.js.map +0 -1
  776. package/esm2022/expand/index.js +0 -3
  777. package/esm2022/expand/index.js.map +0 -1
  778. package/esm2022/expand/lib/expand/expand-content.js +0 -33
  779. package/esm2022/expand/lib/expand/expand-content.js.map +0 -1
  780. package/esm2022/expand/lib/expand/expand.js +0 -93
  781. package/esm2022/expand/lib/expand/expand.js.map +0 -1
  782. package/esm2022/expand/malva-ui-core-expand.js +0 -5
  783. package/esm2022/expand/malva-ui-core-expand.js.map +0 -1
  784. package/esm2022/file-upload/index.js +0 -5
  785. package/esm2022/file-upload/index.js.map +0 -1
  786. package/esm2022/file-upload/lib/file-upload/file-upload.js +0 -324
  787. package/esm2022/file-upload/lib/file-upload/file-upload.js.map +0 -1
  788. package/esm2022/file-upload/lib/file-upload/file-upload.types.js +0 -1
  789. package/esm2022/file-upload/lib/file-upload/file-upload.types.js.map +0 -1
  790. package/esm2022/file-upload/lib/file-upload-action.js +0 -65
  791. package/esm2022/file-upload/lib/file-upload-action.js.map +0 -1
  792. package/esm2022/file-upload/lib/file-upload-item/file-upload-item.js +0 -55
  793. package/esm2022/file-upload/lib/file-upload-item/file-upload-item.js.map +0 -1
  794. package/esm2022/file-upload/malva-ui-core-file-upload.js +0 -5
  795. package/esm2022/file-upload/malva-ui-core-file-upload.js.map +0 -1
  796. package/esm2022/filter/index.js +0 -4
  797. package/esm2022/filter/index.js.map +0 -1
  798. package/esm2022/filter/lib/filter/filter.js +0 -552
  799. package/esm2022/filter/lib/filter/filter.js.map +0 -1
  800. package/esm2022/filter/lib/filter.types.js +0 -1
  801. package/esm2022/filter/lib/filter.types.js.map +0 -1
  802. package/esm2022/filter/lib/smart-filter-bar/smart-filter-bar.js +0 -518
  803. package/esm2022/filter/lib/smart-filter-bar/smart-filter-bar.js.map +0 -1
  804. package/esm2022/filter/malva-ui-core-filter.js +0 -5
  805. package/esm2022/filter/malva-ui-core-filter.js.map +0 -1
  806. package/esm2022/form/index.js +0 -7
  807. package/esm2022/form/index.js.map +0 -1
  808. package/esm2022/form/lib/fieldset/fieldset.js +0 -101
  809. package/esm2022/form/lib/fieldset/fieldset.js.map +0 -1
  810. package/esm2022/form/lib/fieldset-span.js +0 -49
  811. package/esm2022/form/lib/fieldset-span.js.map +0 -1
  812. package/esm2022/form/lib/form/form.js +0 -60
  813. package/esm2022/form/lib/form/form.js.map +0 -1
  814. package/esm2022/form/lib/form-actions.js +0 -34
  815. package/esm2022/form/lib/form-actions.js.map +0 -1
  816. package/esm2022/form/lib/form-gap.js +0 -15
  817. package/esm2022/form/lib/form-gap.js.map +0 -1
  818. package/esm2022/form/lib/form-header.js +0 -27
  819. package/esm2022/form/lib/form-header.js.map +0 -1
  820. package/esm2022/form/lib/form.types.js +0 -1
  821. package/esm2022/form/lib/form.types.js.map +0 -1
  822. package/esm2022/form/malva-ui-core-form.js +0 -5
  823. package/esm2022/form/malva-ui-core-form.js.map +0 -1
  824. package/esm2022/form-utils/index.js +0 -16
  825. package/esm2022/form-utils/index.js.map +0 -1
  826. package/esm2022/form-utils/lib/aria-value-bridge.js +0 -57
  827. package/esm2022/form-utils/lib/aria-value-bridge.js.map +0 -1
  828. package/esm2022/form-utils/lib/description/description.js +0 -24
  829. package/esm2022/form-utils/lib/description/description.js.map +0 -1
  830. package/esm2022/form-utils/lib/focusable-group-base.js +0 -87
  831. package/esm2022/form-utils/lib/focusable-group-base.js.map +0 -1
  832. package/esm2022/form-utils/lib/form-control-base/signal-form-control-base.js +0 -192
  833. package/esm2022/form-utils/lib/form-control-base/signal-form-control-base.js.map +0 -1
  834. package/esm2022/form-utils/lib/form-control-sides.js +0 -34
  835. package/esm2022/form-utils/lib/form-control-sides.js.map +0 -1
  836. package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper-control.js +0 -14
  837. package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper-control.js.map +0 -1
  838. package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper.js +0 -47
  839. package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper.js.map +0 -1
  840. package/esm2022/form-utils/lib/form-field/form-field.js +0 -245
  841. package/esm2022/form-utils/lib/form-field/form-field.js.map +0 -1
  842. package/esm2022/form-utils/lib/hint/hint.js +0 -11
  843. package/esm2022/form-utils/lib/hint/hint.js.map +0 -1
  844. package/esm2022/form-utils/lib/label/label.js +0 -55
  845. package/esm2022/form-utils/lib/label/label.js.map +0 -1
  846. package/esm2022/form-utils/lib/message/message.js +0 -20
  847. package/esm2022/form-utils/lib/message/message.js.map +0 -1
  848. package/esm2022/form-utils/lib/models/error-display-strategy.js +0 -1
  849. package/esm2022/form-utils/lib/models/error-display-strategy.js.map +0 -1
  850. package/esm2022/form-utils/lib/models/form-control-connector.js +0 -3
  851. package/esm2022/form-utils/lib/models/form-control-connector.js.map +0 -1
  852. package/esm2022/form-utils/lib/models/form-state.js +0 -1
  853. package/esm2022/form-utils/lib/models/form-state.js.map +0 -1
  854. package/esm2022/form-utils/lib/selection.service.js +0 -81
  855. package/esm2022/form-utils/lib/selection.service.js.map +0 -1
  856. package/esm2022/form-utils/malva-ui-core-form-utils.js +0 -5
  857. package/esm2022/form-utils/malva-ui-core-form-utils.js.map +0 -1
  858. package/esm2022/form-utils/testing/index.js +0 -2
  859. package/esm2022/form-utils/testing/index.js.map +0 -1
  860. package/esm2022/form-utils/testing/lib/forms-binding-matrix.js +0 -32
  861. package/esm2022/form-utils/testing/lib/forms-binding-matrix.js.map +0 -1
  862. package/esm2022/form-utils/testing/malva-ui-core-form-utils-testing.js +0 -5
  863. package/esm2022/form-utils/testing/malva-ui-core-form-utils-testing.js.map +0 -1
  864. package/esm2022/index.js +0 -70
  865. package/esm2022/index.js.map +0 -1
  866. package/esm2022/input/index.js +0 -4
  867. package/esm2022/input/index.js.map +0 -1
  868. package/esm2022/input/lib/input/input-native.js +0 -49
  869. package/esm2022/input/lib/input/input-native.js.map +0 -1
  870. package/esm2022/input/lib/input/input-value-accessor.js +0 -4
  871. package/esm2022/input/lib/input/input-value-accessor.js.map +0 -1
  872. package/esm2022/input/lib/input/input.js +0 -277
  873. package/esm2022/input/lib/input/input.js.map +0 -1
  874. package/esm2022/input/lib/input/password-strength.js +0 -46
  875. package/esm2022/input/lib/input/password-strength.js.map +0 -1
  876. package/esm2022/input/malva-ui-core-input.js +0 -5
  877. package/esm2022/input/malva-ui-core-input.js.map +0 -1
  878. package/esm2022/kbd/index.js +0 -2
  879. package/esm2022/kbd/index.js.map +0 -1
  880. package/esm2022/kbd/lib/kbd/kbd.js +0 -124
  881. package/esm2022/kbd/lib/kbd/kbd.js.map +0 -1
  882. package/esm2022/kbd/malva-ui-core-kbd.js +0 -5
  883. package/esm2022/kbd/malva-ui-core-kbd.js.map +0 -1
  884. package/esm2022/layout/index.js +0 -5
  885. package/esm2022/layout/index.js.map +0 -1
  886. package/esm2022/layout/lib/layout/directives/MlvLayoutSide.js +0 -14
  887. package/esm2022/layout/lib/layout/directives/MlvLayoutSide.js.map +0 -1
  888. package/esm2022/layout/lib/layout/directives/MlvLayoutTop.js +0 -14
  889. package/esm2022/layout/lib/layout/directives/MlvLayoutTop.js.map +0 -1
  890. package/esm2022/layout/lib/layout/layout.js +0 -43
  891. package/esm2022/layout/lib/layout/layout.js.map +0 -1
  892. package/esm2022/layout/lib/layout/services/theme.service.js +0 -121
  893. package/esm2022/layout/lib/layout/services/theme.service.js.map +0 -1
  894. package/esm2022/layout/malva-ui-core-layout.js +0 -5
  895. package/esm2022/layout/malva-ui-core-layout.js.map +0 -1
  896. package/esm2022/link/index.js +0 -3
  897. package/esm2022/link/index.js.map +0 -1
  898. package/esm2022/link/lib/link/link.directives.js +0 -24
  899. package/esm2022/link/lib/link/link.directives.js.map +0 -1
  900. package/esm2022/link/lib/link/link.js +0 -61
  901. package/esm2022/link/lib/link/link.js.map +0 -1
  902. package/esm2022/link/malva-ui-core-link.js +0 -5
  903. package/esm2022/link/malva-ui-core-link.js.map +0 -1
  904. package/esm2022/list/index.js +0 -14
  905. package/esm2022/list/index.js.map +0 -1
  906. package/esm2022/list/lib/list/list.js +0 -28
  907. package/esm2022/list/lib/list/list.js.map +0 -1
  908. package/esm2022/list/lib/list-item/list-item.js +0 -125
  909. package/esm2022/list/lib/list-item/list-item.js.map +0 -1
  910. package/esm2022/list/lib/list-item-actions.js +0 -23
  911. package/esm2022/list/lib/list-item-actions.js.map +0 -1
  912. package/esm2022/list/lib/list-item-byline.js +0 -13
  913. package/esm2022/list/lib/list-item-byline.js.map +0 -1
  914. package/esm2022/list/lib/list-item-group/list-item-group.js +0 -25
  915. package/esm2022/list/lib/list-item-group/list-item-group.js.map +0 -1
  916. package/esm2022/list/lib/list-item-link/list-item-link.js +0 -20
  917. package/esm2022/list/lib/list-item-link/list-item-link.js.map +0 -1
  918. package/esm2022/list/lib/list-item-media.js +0 -13
  919. package/esm2022/list/lib/list-item-media.js.map +0 -1
  920. package/esm2022/list/lib/list-item-meta.js +0 -13
  921. package/esm2022/list/lib/list-item-meta.js.map +0 -1
  922. package/esm2022/list/lib/list-item-prefix.js +0 -13
  923. package/esm2022/list/lib/list-item-prefix.js.map +0 -1
  924. package/esm2022/list/lib/list-item-suffix.js +0 -13
  925. package/esm2022/list/lib/list-item-suffix.js.map +0 -1
  926. package/esm2022/list/lib/list-item-template.js +0 -14
  927. package/esm2022/list/lib/list-item-template.js.map +0 -1
  928. package/esm2022/list/lib/list-item-title.js +0 -13
  929. package/esm2022/list/lib/list-item-title.js.map +0 -1
  930. package/esm2022/list/lib/list-selectable.js +0 -116
  931. package/esm2022/list/lib/list-selectable.js.map +0 -1
  932. package/esm2022/list/malva-ui-core-list.js +0 -5
  933. package/esm2022/list/malva-ui-core-list.js.map +0 -1
  934. package/esm2022/loader/index.js +0 -2
  935. package/esm2022/loader/index.js.map +0 -1
  936. package/esm2022/loader/lib/loader/loader.js +0 -134
  937. package/esm2022/loader/lib/loader/loader.js.map +0 -1
  938. package/esm2022/loader/malva-ui-core-loader.js +0 -5
  939. package/esm2022/loader/malva-ui-core-loader.js.map +0 -1
  940. package/esm2022/malva-ui-core.js +0 -5
  941. package/esm2022/malva-ui-core.js.map +0 -1
  942. package/esm2022/menu/index.js +0 -10
  943. package/esm2022/menu/index.js.map +0 -1
  944. package/esm2022/menu/lib/menu/menu-group-label.js +0 -35
  945. package/esm2022/menu/lib/menu/menu-group-label.js.map +0 -1
  946. package/esm2022/menu/lib/menu/menu-group.js +0 -44
  947. package/esm2022/menu/lib/menu/menu-group.js.map +0 -1
  948. package/esm2022/menu/lib/menu/menu-item.js +0 -117
  949. package/esm2022/menu/lib/menu/menu-item.js.map +0 -1
  950. package/esm2022/menu/lib/menu/menu-separator.js +0 -41
  951. package/esm2022/menu/lib/menu/menu-separator.js.map +0 -1
  952. package/esm2022/menu/lib/menu/menu-trigger.js +0 -653
  953. package/esm2022/menu/lib/menu/menu-trigger.js.map +0 -1
  954. package/esm2022/menu/lib/menu/menu.js +0 -308
  955. package/esm2022/menu/lib/menu/menu.js.map +0 -1
  956. package/esm2022/menu/lib/menu/menu.types.js +0 -4
  957. package/esm2022/menu/lib/menu/menu.types.js.map +0 -1
  958. package/esm2022/menu/lib/menu/menubar.js +0 -257
  959. package/esm2022/menu/lib/menu/menubar.js.map +0 -1
  960. package/esm2022/menu/lib/menu/menubar.types.js +0 -4
  961. package/esm2022/menu/lib/menu/menubar.types.js.map +0 -1
  962. package/esm2022/menu/lib/menu/submenu-aim.js +0 -30
  963. package/esm2022/menu/lib/menu/submenu-aim.js.map +0 -1
  964. package/esm2022/menu/malva-ui-core-menu.js +0 -5
  965. package/esm2022/menu/malva-ui-core-menu.js.map +0 -1
  966. package/esm2022/notification/index.js +0 -5
  967. package/esm2022/notification/index.js.map +0 -1
  968. package/esm2022/notification/lib/notification-item/notification-item.js +0 -65
  969. package/esm2022/notification/lib/notification-item/notification-item.js.map +0 -1
  970. package/esm2022/notification/lib/notification-ref.js +0 -13
  971. package/esm2022/notification/lib/notification-ref.js.map +0 -1
  972. package/esm2022/notification/lib/notification.service.js +0 -118
  973. package/esm2022/notification/lib/notification.service.js.map +0 -1
  974. package/esm2022/notification/lib/notification.types.js +0 -6
  975. package/esm2022/notification/lib/notification.types.js.map +0 -1
  976. package/esm2022/notification/malva-ui-core-notification.js +0 -5
  977. package/esm2022/notification/malva-ui-core-notification.js.map +0 -1
  978. package/esm2022/number-input/index.js +0 -2
  979. package/esm2022/number-input/index.js.map +0 -1
  980. package/esm2022/number-input/lib/number-input/number-input.js +0 -395
  981. package/esm2022/number-input/lib/number-input/number-input.js.map +0 -1
  982. package/esm2022/number-input/malva-ui-core-number-input.js +0 -5
  983. package/esm2022/number-input/malva-ui-core-number-input.js.map +0 -1
  984. package/esm2022/page/index.js +0 -15
  985. package/esm2022/page/index.js.map +0 -1
  986. package/esm2022/page/lib/page/page-scroll.token.js +0 -9
  987. package/esm2022/page/lib/page/page-scroll.token.js.map +0 -1
  988. package/esm2022/page/lib/page/page-snap-controller.js +0 -170
  989. package/esm2022/page/lib/page/page-snap-controller.js.map +0 -1
  990. package/esm2022/page/lib/page/page-snap.directive.js +0 -65
  991. package/esm2022/page/lib/page/page-snap.directive.js.map +0 -1
  992. package/esm2022/page/lib/page/page.js +0 -173
  993. package/esm2022/page/lib/page/page.js.map +0 -1
  994. package/esm2022/page/lib/page-content/page-aside.js +0 -13
  995. package/esm2022/page/lib/page-content/page-aside.js.map +0 -1
  996. package/esm2022/page/lib/page-content/page-content.js +0 -72
  997. package/esm2022/page/lib/page-content/page-content.js.map +0 -1
  998. package/esm2022/page/lib/page-dock/page-dock.js +0 -128
  999. package/esm2022/page/lib/page-dock/page-dock.js.map +0 -1
  1000. package/esm2022/page/lib/page-dock/page-dock.slots.js +0 -39
  1001. package/esm2022/page/lib/page-dock/page-dock.slots.js.map +0 -1
  1002. package/esm2022/page/lib/page-header/page-header.directives.js +0 -88
  1003. package/esm2022/page/lib/page-header/page-header.directives.js.map +0 -1
  1004. package/esm2022/page/lib/page-header/page-header.js +0 -124
  1005. package/esm2022/page/lib/page-header/page-header.js.map +0 -1
  1006. package/esm2022/page/lib/page-shell/page-shell-color.js +0 -193
  1007. package/esm2022/page/lib/page-shell/page-shell-color.js.map +0 -1
  1008. package/esm2022/page/lib/page-shell/page-shell-css-color.js +0 -207
  1009. package/esm2022/page/lib/page-shell/page-shell-css-color.js.map +0 -1
  1010. package/esm2022/page/lib/page-shell/page-shell.js +0 -131
  1011. package/esm2022/page/lib/page-shell/page-shell.js.map +0 -1
  1012. package/esm2022/page/lib/page-shell/page-shell.slots.js +0 -41
  1013. package/esm2022/page/lib/page-shell/page-shell.slots.js.map +0 -1
  1014. package/esm2022/page/lib/page-summary/page-summary-item.js +0 -26
  1015. package/esm2022/page/lib/page-summary/page-summary-item.js.map +0 -1
  1016. package/esm2022/page/lib/page-summary/page-summary.js +0 -87
  1017. package/esm2022/page/lib/page-summary/page-summary.js.map +0 -1
  1018. package/esm2022/page/malva-ui-core-page.js +0 -5
  1019. package/esm2022/page/malva-ui-core-page.js.map +0 -1
  1020. package/esm2022/pagination/index.js +0 -5
  1021. package/esm2022/pagination/index.js.map +0 -1
  1022. package/esm2022/pagination/lib/pagination/pagination.directives.js +0 -58
  1023. package/esm2022/pagination/lib/pagination/pagination.directives.js.map +0 -1
  1024. package/esm2022/pagination/lib/pagination/pagination.js +0 -293
  1025. package/esm2022/pagination/lib/pagination/pagination.js.map +0 -1
  1026. package/esm2022/pagination/lib/pagination/pagination.model.js +0 -1
  1027. package/esm2022/pagination/lib/pagination/pagination.model.js.map +0 -1
  1028. package/esm2022/pagination/lib/pagination/pagination.service.js +0 -108
  1029. package/esm2022/pagination/lib/pagination/pagination.service.js.map +0 -1
  1030. package/esm2022/pagination/malva-ui-core-pagination.js +0 -5
  1031. package/esm2022/pagination/malva-ui-core-pagination.js.map +0 -1
  1032. package/esm2022/pin-input/index.js +0 -3
  1033. package/esm2022/pin-input/index.js.map +0 -1
  1034. package/esm2022/pin-input/lib/pin-input/pin-input-separator.js +0 -31
  1035. package/esm2022/pin-input/lib/pin-input/pin-input-separator.js.map +0 -1
  1036. package/esm2022/pin-input/lib/pin-input/pin-input.js +0 -365
  1037. package/esm2022/pin-input/lib/pin-input/pin-input.js.map +0 -1
  1038. package/esm2022/pin-input/malva-ui-core-pin-input.js +0 -5
  1039. package/esm2022/pin-input/malva-ui-core-pin-input.js.map +0 -1
  1040. package/esm2022/popup/index.js +0 -10
  1041. package/esm2022/popup/index.js.map +0 -1
  1042. package/esm2022/popup/lib/popup/popup.js +0 -500
  1043. package/esm2022/popup/lib/popup/popup.js.map +0 -1
  1044. package/esm2022/popup/lib/popup-container/popup-container.js +0 -169
  1045. package/esm2022/popup/lib/popup-container/popup-container.js.map +0 -1
  1046. package/esm2022/popup/lib/popup-container/popup-container.token.js +0 -9
  1047. package/esm2022/popup/lib/popup-container/popup-container.token.js.map +0 -1
  1048. package/esm2022/popup/lib/popup-content.js +0 -14
  1049. package/esm2022/popup/lib/popup-content.js.map +0 -1
  1050. package/esm2022/popup/lib/popup-header-content.js +0 -26
  1051. package/esm2022/popup/lib/popup-header-content.js.map +0 -1
  1052. package/esm2022/popup/lib/popup-pinned-content.js +0 -25
  1053. package/esm2022/popup/lib/popup-pinned-content.js.map +0 -1
  1054. package/esm2022/popup/lib/popup-positions.js +0 -252
  1055. package/esm2022/popup/lib/popup-positions.js.map +0 -1
  1056. package/esm2022/popup/lib/popup-trigger/popup-trigger.js +0 -308
  1057. package/esm2022/popup/lib/popup-trigger/popup-trigger.js.map +0 -1
  1058. package/esm2022/popup/lib/popup.service.js +0 -188
  1059. package/esm2022/popup/lib/popup.service.js.map +0 -1
  1060. package/esm2022/popup/malva-ui-core-popup.js +0 -5
  1061. package/esm2022/popup/malva-ui-core-popup.js.map +0 -1
  1062. package/esm2022/progress/index.js +0 -2
  1063. package/esm2022/progress/index.js.map +0 -1
  1064. package/esm2022/progress/lib/progress/progress.js +0 -102
  1065. package/esm2022/progress/lib/progress/progress.js.map +0 -1
  1066. package/esm2022/progress/malva-ui-core-progress.js +0 -5
  1067. package/esm2022/progress/malva-ui-core-progress.js.map +0 -1
  1068. package/esm2022/radio/index.js +0 -3
  1069. package/esm2022/radio/index.js.map +0 -1
  1070. package/esm2022/radio/lib/radio/radio.js +0 -134
  1071. package/esm2022/radio/lib/radio/radio.js.map +0 -1
  1072. package/esm2022/radio/lib/radio-group/radio-group.js +0 -176
  1073. package/esm2022/radio/lib/radio-group/radio-group.js.map +0 -1
  1074. package/esm2022/radio/lib/radio-group-token.js +0 -3
  1075. package/esm2022/radio/lib/radio-group-token.js.map +0 -1
  1076. package/esm2022/radio/malva-ui-core-radio.js +0 -5
  1077. package/esm2022/radio/malva-ui-core-radio.js.map +0 -1
  1078. package/esm2022/rating/index.js +0 -2
  1079. package/esm2022/rating/index.js.map +0 -1
  1080. package/esm2022/rating/lib/rating/rating.js +0 -208
  1081. package/esm2022/rating/lib/rating/rating.js.map +0 -1
  1082. package/esm2022/rating/malva-ui-core-rating.js +0 -5
  1083. package/esm2022/rating/malva-ui-core-rating.js.map +0 -1
  1084. package/esm2022/scrollbar/index.js +0 -2
  1085. package/esm2022/scrollbar/index.js.map +0 -1
  1086. package/esm2022/scrollbar/lib/scrollbar/scrollbar.js +0 -388
  1087. package/esm2022/scrollbar/lib/scrollbar/scrollbar.js.map +0 -1
  1088. package/esm2022/scrollbar/malva-ui-core-scrollbar.js +0 -5
  1089. package/esm2022/scrollbar/malva-ui-core-scrollbar.js.map +0 -1
  1090. package/esm2022/search-field/index.js +0 -3
  1091. package/esm2022/search-field/index.js.map +0 -1
  1092. package/esm2022/search-field/lib/search-field/search-field.js +0 -535
  1093. package/esm2022/search-field/lib/search-field/search-field.js.map +0 -1
  1094. package/esm2022/search-field/lib/search-field/search-overlay-content.js +0 -35
  1095. package/esm2022/search-field/lib/search-field/search-overlay-content.js.map +0 -1
  1096. package/esm2022/search-field/malva-ui-core-search-field.js +0 -5
  1097. package/esm2022/search-field/malva-ui-core-search-field.js.map +0 -1
  1098. package/esm2022/segmented/index.js +0 -5
  1099. package/esm2022/segmented/index.js.map +0 -1
  1100. package/esm2022/segmented/lib/segmented/segmented.js +0 -248
  1101. package/esm2022/segmented/lib/segmented/segmented.js.map +0 -1
  1102. package/esm2022/segmented/lib/segmented-item/segmented-item.js +0 -194
  1103. package/esm2022/segmented/lib/segmented-item/segmented-item.js.map +0 -1
  1104. package/esm2022/segmented/lib/segmented-token.js +0 -4
  1105. package/esm2022/segmented/lib/segmented-token.js.map +0 -1
  1106. package/esm2022/segmented/lib/segmented.types.js +0 -1
  1107. package/esm2022/segmented/lib/segmented.types.js.map +0 -1
  1108. package/esm2022/segmented/malva-ui-core-segmented.js +0 -5
  1109. package/esm2022/segmented/malva-ui-core-segmented.js.map +0 -1
  1110. package/esm2022/select/index.js +0 -4
  1111. package/esm2022/select/index.js.map +0 -1
  1112. package/esm2022/select/lib/select/select.js +0 -685
  1113. package/esm2022/select/lib/select/select.js.map +0 -1
  1114. package/esm2022/select/lib/select-option.js +0 -2
  1115. package/esm2022/select/lib/select-option.js.map +0 -1
  1116. package/esm2022/select/lib/select-template.directives.js +0 -34
  1117. package/esm2022/select/lib/select-template.directives.js.map +0 -1
  1118. package/esm2022/select/malva-ui-core-select.js +0 -5
  1119. package/esm2022/select/malva-ui-core-select.js.map +0 -1
  1120. package/esm2022/sidebar/index.js +0 -16
  1121. package/esm2022/sidebar/index.js.map +0 -1
  1122. package/esm2022/sidebar/lib/sidebar/sidebar.js +0 -251
  1123. package/esm2022/sidebar/lib/sidebar/sidebar.js.map +0 -1
  1124. package/esm2022/sidebar/lib/sidebar-content.js +0 -37
  1125. package/esm2022/sidebar/lib/sidebar-content.js.map +0 -1
  1126. package/esm2022/sidebar/lib/sidebar-context.js +0 -3
  1127. package/esm2022/sidebar/lib/sidebar-context.js.map +0 -1
  1128. package/esm2022/sidebar/lib/sidebar-footer.js +0 -20
  1129. package/esm2022/sidebar/lib/sidebar-footer.js.map +0 -1
  1130. package/esm2022/sidebar/lib/sidebar-group/sidebar-group.js +0 -341
  1131. package/esm2022/sidebar/lib/sidebar-group/sidebar-group.js.map +0 -1
  1132. package/esm2022/sidebar/lib/sidebar-header.js +0 -20
  1133. package/esm2022/sidebar/lib/sidebar-header.js.map +0 -1
  1134. package/esm2022/sidebar/lib/sidebar-item/sidebar-item.js +0 -216
  1135. package/esm2022/sidebar/lib/sidebar-item/sidebar-item.js.map +0 -1
  1136. package/esm2022/sidebar/lib/sidebar-item-host.js +0 -39
  1137. package/esm2022/sidebar/lib/sidebar-item-host.js.map +0 -1
  1138. package/esm2022/sidebar/lib/sidebar-item-icon.js +0 -14
  1139. package/esm2022/sidebar/lib/sidebar-item-icon.js.map +0 -1
  1140. package/esm2022/sidebar/lib/sidebar-mode.js +0 -1
  1141. package/esm2022/sidebar/lib/sidebar-mode.js.map +0 -1
  1142. package/esm2022/sidebar/lib/sidebar-rail/sidebar-rail.js +0 -202
  1143. package/esm2022/sidebar/lib/sidebar-rail/sidebar-rail.js.map +0 -1
  1144. package/esm2022/sidebar/lib/sidebar-trigger/sidebar-trigger.js +0 -159
  1145. package/esm2022/sidebar/lib/sidebar-trigger/sidebar-trigger.js.map +0 -1
  1146. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.js +0 -35
  1147. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.js.map +0 -1
  1148. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.js +0 -107
  1149. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.js.map +0 -1
  1150. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.types.js +0 -1
  1151. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.types.js.map +0 -1
  1152. package/esm2022/sidebar/malva-ui-core-sidebar.js +0 -5
  1153. package/esm2022/sidebar/malva-ui-core-sidebar.js.map +0 -1
  1154. package/esm2022/skeleton/index.js +0 -2
  1155. package/esm2022/skeleton/index.js.map +0 -1
  1156. package/esm2022/skeleton/lib/skeleton/skeleton.js +0 -78
  1157. package/esm2022/skeleton/lib/skeleton/skeleton.js.map +0 -1
  1158. package/esm2022/skeleton/malva-ui-core-skeleton.js +0 -5
  1159. package/esm2022/skeleton/malva-ui-core-skeleton.js.map +0 -1
  1160. package/esm2022/slider/index.js +0 -3
  1161. package/esm2022/slider/index.js.map +0 -1
  1162. package/esm2022/slider/lib/slider/slider-tooltip-def.js +0 -31
  1163. package/esm2022/slider/lib/slider/slider-tooltip-def.js.map +0 -1
  1164. package/esm2022/slider/lib/slider/slider.js +0 -468
  1165. package/esm2022/slider/lib/slider/slider.js.map +0 -1
  1166. package/esm2022/slider/malva-ui-core-slider.js +0 -5
  1167. package/esm2022/slider/malva-ui-core-slider.js.map +0 -1
  1168. package/esm2022/split-pane/index.js +0 -4
  1169. package/esm2022/split-pane/index.js.map +0 -1
  1170. package/esm2022/split-pane/lib/split-pane/split-pane-panel.js +0 -49
  1171. package/esm2022/split-pane/lib/split-pane/split-pane-panel.js.map +0 -1
  1172. package/esm2022/split-pane/lib/split-pane/split-pane.js +0 -290
  1173. package/esm2022/split-pane/lib/split-pane/split-pane.js.map +0 -1
  1174. package/esm2022/split-pane/lib/split-pane/split-pane.types.js +0 -1
  1175. package/esm2022/split-pane/lib/split-pane/split-pane.types.js.map +0 -1
  1176. package/esm2022/split-pane/malva-ui-core-split-pane.js +0 -5
  1177. package/esm2022/split-pane/malva-ui-core-split-pane.js.map +0 -1
  1178. package/esm2022/status-indicator/index.js +0 -2
  1179. package/esm2022/status-indicator/index.js.map +0 -1
  1180. package/esm2022/status-indicator/lib/status-indicator/status-indicator.js +0 -71
  1181. package/esm2022/status-indicator/lib/status-indicator/status-indicator.js.map +0 -1
  1182. package/esm2022/status-indicator/malva-ui-core-status-indicator.js +0 -5
  1183. package/esm2022/status-indicator/malva-ui-core-status-indicator.js.map +0 -1
  1184. package/esm2022/stepper/index.js +0 -5
  1185. package/esm2022/stepper/index.js.map +0 -1
  1186. package/esm2022/stepper/lib/stepper/step-header.js +0 -46
  1187. package/esm2022/stepper/lib/stepper/step-header.js.map +0 -1
  1188. package/esm2022/stepper/lib/stepper/step.js +0 -65
  1189. package/esm2022/stepper/lib/stepper/step.js.map +0 -1
  1190. package/esm2022/stepper/lib/stepper/stepper-token.js +0 -4
  1191. package/esm2022/stepper/lib/stepper/stepper-token.js.map +0 -1
  1192. package/esm2022/stepper/lib/stepper/stepper.js +0 -216
  1193. package/esm2022/stepper/lib/stepper/stepper.js.map +0 -1
  1194. package/esm2022/stepper/lib/stepper/stepper.types.js +0 -1
  1195. package/esm2022/stepper/lib/stepper/stepper.types.js.map +0 -1
  1196. package/esm2022/stepper/malva-ui-core-stepper.js +0 -5
  1197. package/esm2022/stepper/malva-ui-core-stepper.js.map +0 -1
  1198. package/esm2022/switch/index.js +0 -3
  1199. package/esm2022/switch/index.js.map +0 -1
  1200. package/esm2022/switch/lib/switch/switch.js +0 -190
  1201. package/esm2022/switch/lib/switch/switch.js.map +0 -1
  1202. package/esm2022/switch/lib/switch-group/switch-group.js +0 -68
  1203. package/esm2022/switch/lib/switch-group/switch-group.js.map +0 -1
  1204. package/esm2022/switch/lib/switch-group-token.js +0 -3
  1205. package/esm2022/switch/lib/switch-group-token.js.map +0 -1
  1206. package/esm2022/switch/malva-ui-core-switch.js +0 -5
  1207. package/esm2022/switch/malva-ui-core-switch.js.map +0 -1
  1208. package/esm2022/tabs/index.js +0 -9
  1209. package/esm2022/tabs/index.js.map +0 -1
  1210. package/esm2022/tabs/lib/tab/tab.js +0 -72
  1211. package/esm2022/tabs/lib/tab/tab.js.map +0 -1
  1212. package/esm2022/tabs/lib/tab-content/tab-content.js +0 -19
  1213. package/esm2022/tabs/lib/tab-content/tab-content.js.map +0 -1
  1214. package/esm2022/tabs/lib/tab-content-def.js +0 -14
  1215. package/esm2022/tabs/lib/tab-content-def.js.map +0 -1
  1216. package/esm2022/tabs/lib/tab-def.js +0 -17
  1217. package/esm2022/tabs/lib/tab-def.js.map +0 -1
  1218. package/esm2022/tabs/lib/tab-group-token.js +0 -3
  1219. package/esm2022/tabs/lib/tab-group-token.js.map +0 -1
  1220. package/esm2022/tabs/lib/tab-item/tab-item.js +0 -44
  1221. package/esm2022/tabs/lib/tab-item/tab-item.js.map +0 -1
  1222. package/esm2022/tabs/lib/tabs/tabs.js +0 -542
  1223. package/esm2022/tabs/lib/tabs/tabs.js.map +0 -1
  1224. package/esm2022/tabs/lib/tabs.service.js +0 -83
  1225. package/esm2022/tabs/lib/tabs.service.js.map +0 -1
  1226. package/esm2022/tabs/malva-ui-core-tabs.js +0 -5
  1227. package/esm2022/tabs/malva-ui-core-tabs.js.map +0 -1
  1228. package/esm2022/textarea/index.js +0 -2
  1229. package/esm2022/textarea/index.js.map +0 -1
  1230. package/esm2022/textarea/lib/textarea/textarea.js +0 -194
  1231. package/esm2022/textarea/lib/textarea/textarea.js.map +0 -1
  1232. package/esm2022/textarea/malva-ui-core-textarea.js +0 -5
  1233. package/esm2022/textarea/malva-ui-core-textarea.js.map +0 -1
  1234. package/esm2022/tile/index.js +0 -3
  1235. package/esm2022/tile/index.js.map +0 -1
  1236. package/esm2022/tile/lib/tile/tile.js +0 -39
  1237. package/esm2022/tile/lib/tile/tile.js.map +0 -1
  1238. package/esm2022/tile/lib/tile-header.js +0 -14
  1239. package/esm2022/tile/lib/tile-header.js.map +0 -1
  1240. package/esm2022/tile/malva-ui-core-tile.js +0 -5
  1241. package/esm2022/tile/malva-ui-core-tile.js.map +0 -1
  1242. package/esm2022/time-picker/index.js +0 -2
  1243. package/esm2022/time-picker/index.js.map +0 -1
  1244. package/esm2022/time-picker/lib/time-picker/time-picker.js +0 -310
  1245. package/esm2022/time-picker/lib/time-picker/time-picker.js.map +0 -1
  1246. package/esm2022/time-picker/lib/time-picker-column/time-picker-column.js +0 -216
  1247. package/esm2022/time-picker/lib/time-picker-column/time-picker-column.js.map +0 -1
  1248. package/esm2022/time-picker/malva-ui-core-time-picker.js +0 -5
  1249. package/esm2022/time-picker/malva-ui-core-time-picker.js.map +0 -1
  1250. package/esm2022/timeline/index.js +0 -6
  1251. package/esm2022/timeline/index.js.map +0 -1
  1252. package/esm2022/timeline/lib/timeline/timeline-item-icon.js +0 -31
  1253. package/esm2022/timeline/lib/timeline/timeline-item-icon.js.map +0 -1
  1254. package/esm2022/timeline/lib/timeline/timeline-item-meta.js +0 -31
  1255. package/esm2022/timeline/lib/timeline/timeline-item-meta.js.map +0 -1
  1256. package/esm2022/timeline/lib/timeline/timeline-item.js +0 -69
  1257. package/esm2022/timeline/lib/timeline/timeline-item.js.map +0 -1
  1258. package/esm2022/timeline/lib/timeline/timeline.js +0 -36
  1259. package/esm2022/timeline/lib/timeline/timeline.js.map +0 -1
  1260. package/esm2022/timeline/lib/timeline/timeline.types.js +0 -1
  1261. package/esm2022/timeline/lib/timeline/timeline.types.js.map +0 -1
  1262. package/esm2022/timeline/malva-ui-core-timeline.js +0 -5
  1263. package/esm2022/timeline/malva-ui-core-timeline.js.map +0 -1
  1264. package/esm2022/title/index.js +0 -2
  1265. package/esm2022/title/index.js.map +0 -1
  1266. package/esm2022/title/lib/title/title.js +0 -171
  1267. package/esm2022/title/lib/title/title.js.map +0 -1
  1268. package/esm2022/title/malva-ui-core-title.js +0 -5
  1269. package/esm2022/title/malva-ui-core-title.js.map +0 -1
  1270. package/esm2022/toast/index.js +0 -13
  1271. package/esm2022/toast/index.js.map +0 -1
  1272. package/esm2022/toast/lib/abstract-toast-container.js +0 -50
  1273. package/esm2022/toast/lib/abstract-toast-container.js.map +0 -1
  1274. package/esm2022/toast/lib/abstract-toast-item.js +0 -75
  1275. package/esm2022/toast/lib/abstract-toast-item.js.map +0 -1
  1276. package/esm2022/toast/lib/abstract-toast.service.js +0 -176
  1277. package/esm2022/toast/lib/abstract-toast.service.js.map +0 -1
  1278. package/esm2022/toast/lib/toast-container/toast-container.js +0 -61
  1279. package/esm2022/toast/lib/toast-container/toast-container.js.map +0 -1
  1280. package/esm2022/toast/lib/toast-item/toast-item.js +0 -62
  1281. package/esm2022/toast/lib/toast-item/toast-item.js.map +0 -1
  1282. package/esm2022/toast/lib/toast-ref.js +0 -54
  1283. package/esm2022/toast/lib/toast-ref.js.map +0 -1
  1284. package/esm2022/toast/lib/toast-timer.js +0 -37
  1285. package/esm2022/toast/lib/toast-timer.js.map +0 -1
  1286. package/esm2022/toast/lib/toast.directives.js +0 -76
  1287. package/esm2022/toast/lib/toast.directives.js.map +0 -1
  1288. package/esm2022/toast/lib/toast.service.js +0 -127
  1289. package/esm2022/toast/lib/toast.service.js.map +0 -1
  1290. package/esm2022/toast/lib/toast.types.js +0 -39
  1291. package/esm2022/toast/lib/toast.types.js.map +0 -1
  1292. package/esm2022/toast/malva-ui-core-toast.js +0 -5
  1293. package/esm2022/toast/malva-ui-core-toast.js.map +0 -1
  1294. package/esm2022/tokenizer/index.js +0 -4
  1295. package/esm2022/tokenizer/index.js.map +0 -1
  1296. package/esm2022/tokenizer/lib/token/token.js +0 -123
  1297. package/esm2022/tokenizer/lib/token/token.js.map +0 -1
  1298. package/esm2022/tokenizer/lib/token-template.js +0 -23
  1299. package/esm2022/tokenizer/lib/token-template.js.map +0 -1
  1300. package/esm2022/tokenizer/lib/tokenizer/tokenizer.js +0 -324
  1301. package/esm2022/tokenizer/lib/tokenizer/tokenizer.js.map +0 -1
  1302. package/esm2022/tokenizer/malva-ui-core-tokenizer.js +0 -5
  1303. package/esm2022/tokenizer/malva-ui-core-tokenizer.js.map +0 -1
  1304. package/esm2022/toolbar/index.js +0 -4
  1305. package/esm2022/toolbar/index.js.map +0 -1
  1306. package/esm2022/toolbar/lib/toolbar/toolbar-spacer.js +0 -13
  1307. package/esm2022/toolbar/lib/toolbar/toolbar-spacer.js.map +0 -1
  1308. package/esm2022/toolbar/lib/toolbar/toolbar-widget.js +0 -106
  1309. package/esm2022/toolbar/lib/toolbar/toolbar-widget.js.map +0 -1
  1310. package/esm2022/toolbar/lib/toolbar/toolbar.js +0 -19
  1311. package/esm2022/toolbar/lib/toolbar/toolbar.js.map +0 -1
  1312. package/esm2022/toolbar/malva-ui-core-toolbar.js +0 -5
  1313. package/esm2022/toolbar/malva-ui-core-toolbar.js.map +0 -1
  1314. package/esm2022/tooltip/index.js +0 -4
  1315. package/esm2022/tooltip/index.js.map +0 -1
  1316. package/esm2022/tooltip/lib/tooltip/tooltip-panel.js +0 -69
  1317. package/esm2022/tooltip/lib/tooltip/tooltip-panel.js.map +0 -1
  1318. package/esm2022/tooltip/lib/tooltip/tooltip.js +0 -352
  1319. package/esm2022/tooltip/lib/tooltip/tooltip.js.map +0 -1
  1320. package/esm2022/tooltip/lib/tooltip/tooltip.types.js +0 -1
  1321. package/esm2022/tooltip/lib/tooltip/tooltip.types.js.map +0 -1
  1322. package/esm2022/tooltip/malva-ui-core-tooltip.js +0 -5
  1323. package/esm2022/tooltip/malva-ui-core-tooltip.js.map +0 -1
  1324. package/esm2022/tree/index.js +0 -5
  1325. package/esm2022/tree/index.js.map +0 -1
  1326. package/esm2022/tree/lib/tree/tree-context.js +0 -7
  1327. package/esm2022/tree/lib/tree/tree-context.js.map +0 -1
  1328. package/esm2022/tree/lib/tree/tree-node-def.js +0 -34
  1329. package/esm2022/tree/lib/tree/tree-node-def.js.map +0 -1
  1330. package/esm2022/tree/lib/tree/tree-node.js +0 -1
  1331. package/esm2022/tree/lib/tree/tree-node.js.map +0 -1
  1332. package/esm2022/tree/lib/tree/tree-subtree.js +0 -107
  1333. package/esm2022/tree/lib/tree/tree-subtree.js.map +0 -1
  1334. package/esm2022/tree/lib/tree/tree.js +0 -362
  1335. package/esm2022/tree/lib/tree/tree.js.map +0 -1
  1336. package/esm2022/tree/malva-ui-core-tree.js +0 -5
  1337. package/esm2022/tree/malva-ui-core-tree.js.map +0 -1
  1338. package/expand/index.d.ts +0 -2
  1339. package/expand/lib/expand/expand-content.d.ts +0 -26
  1340. package/expand/lib/expand/expand.d.ts +0 -74
  1341. package/expand/malva-ui-core-expand.d.ts +0 -5
  1342. package/file-upload/index.d.ts +0 -4
  1343. package/file-upload/lib/file-upload/file-upload.d.ts +0 -138
  1344. package/file-upload/lib/file-upload/file-upload.types.d.ts +0 -42
  1345. package/file-upload/lib/file-upload-action.d.ts +0 -53
  1346. package/file-upload/lib/file-upload-item/file-upload-item.d.ts +0 -30
  1347. package/file-upload/malva-ui-core-file-upload.d.ts +0 -5
  1348. package/filter/index.d.ts +0 -3
  1349. package/filter/lib/filter/filter.d.ts +0 -156
  1350. package/filter/lib/filter.types.d.ts +0 -75
  1351. package/filter/lib/smart-filter-bar/smart-filter-bar.d.ts +0 -153
  1352. package/filter/malva-ui-core-filter.d.ts +0 -5
  1353. package/form/index.d.ts +0 -6
  1354. package/form/lib/fieldset/fieldset.d.ts +0 -58
  1355. package/form/lib/fieldset-span.d.ts +0 -28
  1356. package/form/lib/form/form.d.ts +0 -37
  1357. package/form/lib/form-actions.d.ts +0 -20
  1358. package/form/lib/form-gap.d.ts +0 -5
  1359. package/form/lib/form-header.d.ts +0 -18
  1360. package/form/lib/form.types.d.ts +0 -13
  1361. package/form/malva-ui-core-form.d.ts +0 -5
  1362. package/form-utils/index.d.ts +0 -15
  1363. package/form-utils/lib/aria-value-bridge.d.ts +0 -45
  1364. package/form-utils/lib/description/description.d.ts +0 -16
  1365. package/form-utils/lib/focusable-group-base.d.ts +0 -76
  1366. package/form-utils/lib/form-control-base/signal-form-control-base.d.ts +0 -159
  1367. package/form-utils/lib/form-control-sides.d.ts +0 -20
  1368. package/form-utils/lib/form-control-wrapper/form-control-wrapper-control.d.ts +0 -6
  1369. package/form-utils/lib/form-control-wrapper/form-control-wrapper.d.ts +0 -20
  1370. package/form-utils/lib/form-field/form-field.d.ts +0 -68
  1371. package/form-utils/lib/hint/hint.d.ts +0 -5
  1372. package/form-utils/lib/label/label.d.ts +0 -22
  1373. package/form-utils/lib/message/message.d.ts +0 -7
  1374. package/form-utils/lib/models/error-display-strategy.d.ts +0 -1
  1375. package/form-utils/lib/models/form-control-connector.d.ts +0 -41
  1376. package/form-utils/lib/models/form-state.d.ts +0 -1
  1377. package/form-utils/lib/selection.service.d.ts +0 -27
  1378. package/form-utils/malva-ui-core-form-utils.d.ts +0 -5
  1379. package/form-utils/testing/index.d.ts +0 -1
  1380. package/form-utils/testing/lib/forms-binding-matrix.d.ts +0 -47
  1381. package/form-utils/testing/malva-ui-core-form-utils-testing.d.ts +0 -5
  1382. package/index.d.ts +0 -69
  1383. package/input/index.d.ts +0 -3
  1384. package/input/lib/input/input-native.d.ts +0 -36
  1385. package/input/lib/input/input-value-accessor.d.ts +0 -11
  1386. package/input/lib/input/input.d.ts +0 -189
  1387. package/input/lib/input/password-strength.d.ts +0 -34
  1388. package/input/malva-ui-core-input.d.ts +0 -5
  1389. package/kbd/index.d.ts +0 -1
  1390. package/kbd/lib/kbd/kbd.d.ts +0 -52
  1391. package/kbd/malva-ui-core-kbd.d.ts +0 -5
  1392. package/layout/index.d.ts +0 -4
  1393. package/layout/lib/layout/directives/MlvLayoutSide.d.ts +0 -6
  1394. package/layout/lib/layout/directives/MlvLayoutTop.d.ts +0 -6
  1395. package/layout/lib/layout/layout.d.ts +0 -20
  1396. package/layout/lib/layout/services/theme.service.d.ts +0 -33
  1397. package/layout/malva-ui-core-layout.d.ts +0 -5
  1398. package/link/index.d.ts +0 -2
  1399. package/link/lib/link/link.d.ts +0 -15
  1400. package/link/lib/link/link.directives.d.ts +0 -10
  1401. package/link/malva-ui-core-link.d.ts +0 -5
  1402. package/list/index.d.ts +0 -13
  1403. package/list/lib/list/list.d.ts +0 -25
  1404. package/list/lib/list-item/list-item.d.ts +0 -67
  1405. package/list/lib/list-item-actions.d.ts +0 -12
  1406. package/list/lib/list-item-byline.d.ts +0 -5
  1407. package/list/lib/list-item-group/list-item-group.d.ts +0 -11
  1408. package/list/lib/list-item-link/list-item-link.d.ts +0 -8
  1409. package/list/lib/list-item-media.d.ts +0 -5
  1410. package/list/lib/list-item-meta.d.ts +0 -5
  1411. package/list/lib/list-item-prefix.d.ts +0 -5
  1412. package/list/lib/list-item-suffix.d.ts +0 -5
  1413. package/list/lib/list-item-template.d.ts +0 -10
  1414. package/list/lib/list-item-title.d.ts +0 -5
  1415. package/list/lib/list-selectable.d.ts +0 -73
  1416. package/list/malva-ui-core-list.d.ts +0 -5
  1417. package/loader/index.d.ts +0 -1
  1418. package/loader/lib/loader/loader.d.ts +0 -84
  1419. package/loader/malva-ui-core-loader.d.ts +0 -5
  1420. package/malva-ui-core.d.ts +0 -5
  1421. package/menu/index.d.ts +0 -9
  1422. package/menu/lib/menu/menu-group-label.d.ts +0 -22
  1423. package/menu/lib/menu/menu-group.d.ts +0 -27
  1424. package/menu/lib/menu/menu-item.d.ts +0 -76
  1425. package/menu/lib/menu/menu-separator.d.ts +0 -18
  1426. package/menu/lib/menu/menu-trigger.d.ts +0 -255
  1427. package/menu/lib/menu/menu.d.ts +0 -149
  1428. package/menu/lib/menu/menu.types.d.ts +0 -13
  1429. package/menu/lib/menu/menubar.d.ts +0 -131
  1430. package/menu/lib/menu/menubar.types.d.ts +0 -82
  1431. package/menu/lib/menu/submenu-aim.d.ts +0 -10
  1432. package/menu/malva-ui-core-menu.d.ts +0 -5
  1433. package/notification/index.d.ts +0 -4
  1434. package/notification/lib/notification-item/notification-item.d.ts +0 -20
  1435. package/notification/lib/notification-ref.d.ts +0 -12
  1436. package/notification/lib/notification.service.d.ts +0 -43
  1437. package/notification/lib/notification.types.d.ts +0 -52
  1438. package/notification/malva-ui-core-notification.d.ts +0 -5
  1439. package/number-input/index.d.ts +0 -1
  1440. package/number-input/lib/number-input/number-input.d.ts +0 -162
  1441. package/number-input/malva-ui-core-number-input.d.ts +0 -5
  1442. package/page/index.d.ts +0 -14
  1443. package/page/lib/page/page-scroll.token.d.ts +0 -19
  1444. package/page/lib/page/page-snap-controller.d.ts +0 -87
  1445. package/page/lib/page/page-snap.directive.d.ts +0 -40
  1446. package/page/lib/page/page.d.ts +0 -74
  1447. package/page/lib/page-content/page-aside.d.ts +0 -7
  1448. package/page/lib/page-content/page-content.d.ts +0 -37
  1449. package/page/lib/page-dock/page-dock.d.ts +0 -50
  1450. package/page/lib/page-dock/page-dock.slots.d.ts +0 -16
  1451. package/page/lib/page-header/page-header.d.ts +0 -77
  1452. package/page/lib/page-header/page-header.directives.d.ts +0 -50
  1453. package/page/lib/page-shell/page-shell-color.d.ts +0 -48
  1454. package/page/lib/page-shell/page-shell-css-color.d.ts +0 -20
  1455. package/page/lib/page-shell/page-shell.d.ts +0 -44
  1456. package/page/lib/page-shell/page-shell.slots.d.ts +0 -16
  1457. package/page/lib/page-summary/page-summary-item.d.ts +0 -11
  1458. package/page/lib/page-summary/page-summary.d.ts +0 -36
  1459. package/page/malva-ui-core-page.d.ts +0 -5
  1460. package/pagination/index.d.ts +0 -4
  1461. package/pagination/lib/pagination/pagination.d.ts +0 -182
  1462. package/pagination/lib/pagination/pagination.directives.d.ts +0 -44
  1463. package/pagination/lib/pagination/pagination.model.d.ts +0 -6
  1464. package/pagination/lib/pagination/pagination.service.d.ts +0 -26
  1465. package/pagination/malva-ui-core-pagination.d.ts +0 -5
  1466. package/pin-input/index.d.ts +0 -2
  1467. package/pin-input/lib/pin-input/pin-input-separator.d.ts +0 -24
  1468. package/pin-input/lib/pin-input/pin-input.d.ts +0 -176
  1469. package/pin-input/malva-ui-core-pin-input.d.ts +0 -5
  1470. package/popup/index.d.ts +0 -9
  1471. package/popup/lib/popup/popup.d.ts +0 -343
  1472. package/popup/lib/popup-container/popup-container.d.ts +0 -61
  1473. package/popup/lib/popup-container/popup-container.token.d.ts +0 -34
  1474. package/popup/lib/popup-content.d.ts +0 -6
  1475. package/popup/lib/popup-header-content.d.ts +0 -18
  1476. package/popup/lib/popup-pinned-content.d.ts +0 -17
  1477. package/popup/lib/popup-positions.d.ts +0 -105
  1478. package/popup/lib/popup-trigger/popup-trigger.d.ts +0 -102
  1479. package/popup/lib/popup.service.d.ts +0 -159
  1480. package/popup/malva-ui-core-popup.d.ts +0 -5
  1481. package/progress/index.d.ts +0 -1
  1482. package/progress/lib/progress/progress.d.ts +0 -69
  1483. package/progress/malva-ui-core-progress.d.ts +0 -5
  1484. package/radio/index.d.ts +0 -2
  1485. package/radio/lib/radio/radio.d.ts +0 -87
  1486. package/radio/lib/radio-group/radio-group.d.ts +0 -35
  1487. package/radio/lib/radio-group-token.d.ts +0 -7
  1488. package/radio/malva-ui-core-radio.d.ts +0 -5
  1489. package/rating/index.d.ts +0 -1
  1490. package/rating/lib/rating/rating.d.ts +0 -100
  1491. package/rating/malva-ui-core-rating.d.ts +0 -5
  1492. package/scrollbar/index.d.ts +0 -1
  1493. package/scrollbar/lib/scrollbar/scrollbar.d.ts +0 -166
  1494. package/scrollbar/malva-ui-core-scrollbar.d.ts +0 -5
  1495. package/search-field/index.d.ts +0 -2
  1496. package/search-field/lib/search-field/search-field.d.ts +0 -347
  1497. package/search-field/lib/search-field/search-overlay-content.d.ts +0 -59
  1498. package/search-field/malva-ui-core-search-field.d.ts +0 -5
  1499. package/segmented/index.d.ts +0 -4
  1500. package/segmented/lib/segmented/segmented.d.ts +0 -80
  1501. package/segmented/lib/segmented-item/segmented-item.d.ts +0 -89
  1502. package/segmented/lib/segmented-token.d.ts +0 -22
  1503. package/segmented/lib/segmented.types.d.ts +0 -9
  1504. package/segmented/malva-ui-core-segmented.d.ts +0 -5
  1505. package/select/index.d.ts +0 -3
  1506. package/select/lib/select/select.d.ts +0 -379
  1507. package/select/lib/select-option.d.ts +0 -1
  1508. package/select/lib/select-template.directives.d.ts +0 -14
  1509. package/select/malva-ui-core-select.d.ts +0 -5
  1510. package/sidebar/index.d.ts +0 -15
  1511. package/sidebar/lib/sidebar/sidebar.d.ts +0 -134
  1512. package/sidebar/lib/sidebar-content.d.ts +0 -11
  1513. package/sidebar/lib/sidebar-context.d.ts +0 -23
  1514. package/sidebar/lib/sidebar-footer.d.ts +0 -9
  1515. package/sidebar/lib/sidebar-group/sidebar-group.d.ts +0 -127
  1516. package/sidebar/lib/sidebar-header.d.ts +0 -9
  1517. package/sidebar/lib/sidebar-item/sidebar-item.d.ts +0 -104
  1518. package/sidebar/lib/sidebar-item-host.d.ts +0 -18
  1519. package/sidebar/lib/sidebar-item-icon.d.ts +0 -6
  1520. package/sidebar/lib/sidebar-mode.d.ts +0 -2
  1521. package/sidebar/lib/sidebar-rail/sidebar-rail.d.ts +0 -54
  1522. package/sidebar/lib/sidebar-trigger/sidebar-trigger.d.ts +0 -67
  1523. package/sidebar/lib/sidebar-workspace/sidebar-workspace.d.ts +0 -54
  1524. package/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.d.ts +0 -19
  1525. package/sidebar/lib/sidebar-workspace/sidebar-workspace.types.d.ts +0 -20
  1526. package/sidebar/malva-ui-core-sidebar.d.ts +0 -5
  1527. package/skeleton/index.d.ts +0 -1
  1528. package/skeleton/lib/skeleton/skeleton.d.ts +0 -60
  1529. package/skeleton/malva-ui-core-skeleton.d.ts +0 -5
  1530. package/slider/index.d.ts +0 -2
  1531. package/slider/lib/slider/slider-tooltip-def.d.ts +0 -39
  1532. package/slider/lib/slider/slider.d.ts +0 -171
  1533. package/slider/malva-ui-core-slider.d.ts +0 -5
  1534. package/split-pane/index.d.ts +0 -3
  1535. package/split-pane/lib/split-pane/split-pane-panel.d.ts +0 -34
  1536. package/split-pane/lib/split-pane/split-pane.d.ts +0 -98
  1537. package/split-pane/lib/split-pane/split-pane.types.d.ts +0 -7
  1538. package/split-pane/malva-ui-core-split-pane.d.ts +0 -5
  1539. package/status-indicator/index.d.ts +0 -1
  1540. package/status-indicator/lib/status-indicator/status-indicator.d.ts +0 -61
  1541. package/status-indicator/malva-ui-core-status-indicator.d.ts +0 -5
  1542. package/stepper/index.d.ts +0 -4
  1543. package/stepper/lib/stepper/step-header.d.ts +0 -34
  1544. package/stepper/lib/stepper/step.d.ts +0 -51
  1545. package/stepper/lib/stepper/stepper-token.d.ts +0 -13
  1546. package/stepper/lib/stepper/stepper.d.ts +0 -98
  1547. package/stepper/lib/stepper/stepper.types.d.ts +0 -4
  1548. package/stepper/malva-ui-core-stepper.d.ts +0 -5
  1549. package/switch/index.d.ts +0 -2
  1550. package/switch/lib/switch/switch.d.ts +0 -118
  1551. package/switch/lib/switch-group/switch-group.d.ts +0 -24
  1552. package/switch/lib/switch-group-token.d.ts +0 -6
  1553. package/switch/malva-ui-core-switch.d.ts +0 -5
  1554. package/tabs/index.d.ts +0 -8
  1555. package/tabs/lib/tab/tab.d.ts +0 -46
  1556. package/tabs/lib/tab-content/tab-content.d.ts +0 -11
  1557. package/tabs/lib/tab-content-def.d.ts +0 -6
  1558. package/tabs/lib/tab-def.d.ts +0 -11
  1559. package/tabs/lib/tab-group-token.d.ts +0 -10
  1560. package/tabs/lib/tab-item/tab-item.d.ts +0 -28
  1561. package/tabs/lib/tabs/tabs.d.ts +0 -202
  1562. package/tabs/lib/tabs.service.d.ts +0 -24
  1563. package/tabs/malva-ui-core-tabs.d.ts +0 -5
  1564. package/textarea/index.d.ts +0 -1
  1565. package/textarea/lib/textarea/textarea.d.ts +0 -77
  1566. package/textarea/malva-ui-core-textarea.d.ts +0 -5
  1567. package/tile/index.d.ts +0 -2
  1568. package/tile/lib/tile/tile.d.ts +0 -20
  1569. package/tile/lib/tile-header.d.ts +0 -6
  1570. package/tile/malva-ui-core-tile.d.ts +0 -5
  1571. package/time-picker/index.d.ts +0 -1
  1572. package/time-picker/lib/time-picker/time-picker.d.ts +0 -135
  1573. package/time-picker/lib/time-picker-column/time-picker-column.d.ts +0 -111
  1574. package/time-picker/malva-ui-core-time-picker.d.ts +0 -5
  1575. package/timeline/index.d.ts +0 -5
  1576. package/timeline/lib/timeline/timeline-item-icon.d.ts +0 -24
  1577. package/timeline/lib/timeline/timeline-item-meta.d.ts +0 -24
  1578. package/timeline/lib/timeline/timeline-item.d.ts +0 -52
  1579. package/timeline/lib/timeline/timeline.d.ts +0 -27
  1580. package/timeline/lib/timeline/timeline.types.d.ts +0 -18
  1581. package/timeline/malva-ui-core-timeline.d.ts +0 -5
  1582. package/title/index.d.ts +0 -1
  1583. package/title/lib/title/title.d.ts +0 -63
  1584. package/title/malva-ui-core-title.d.ts +0 -5
  1585. package/toast/index.d.ts +0 -10
  1586. package/toast/lib/abstract-toast-container.d.ts +0 -29
  1587. package/toast/lib/abstract-toast-item.d.ts +0 -44
  1588. package/toast/lib/abstract-toast.service.d.ts +0 -75
  1589. package/toast/lib/toast-container/toast-container.d.ts +0 -23
  1590. package/toast/lib/toast-item/toast-item.d.ts +0 -25
  1591. package/toast/lib/toast-ref.d.ts +0 -33
  1592. package/toast/lib/toast-timer.d.ts +0 -24
  1593. package/toast/lib/toast.directives.d.ts +0 -13
  1594. package/toast/lib/toast.service.d.ts +0 -41
  1595. package/toast/lib/toast.types.d.ts +0 -139
  1596. package/toast/malva-ui-core-toast.d.ts +0 -5
  1597. package/tokenizer/index.d.ts +0 -3
  1598. package/tokenizer/lib/token/token.d.ts +0 -60
  1599. package/tokenizer/lib/token-template.d.ts +0 -29
  1600. package/tokenizer/lib/tokenizer/tokenizer.d.ts +0 -109
  1601. package/tokenizer/malva-ui-core-tokenizer.d.ts +0 -5
  1602. package/toolbar/index.d.ts +0 -3
  1603. package/toolbar/lib/toolbar/toolbar-spacer.d.ts +0 -5
  1604. package/toolbar/lib/toolbar/toolbar-widget.d.ts +0 -75
  1605. package/toolbar/lib/toolbar/toolbar.d.ts +0 -8
  1606. package/toolbar/malva-ui-core-toolbar.d.ts +0 -5
  1607. package/tooltip/index.d.ts +0 -3
  1608. package/tooltip/lib/tooltip/tooltip-panel.d.ts +0 -26
  1609. package/tooltip/lib/tooltip/tooltip.d.ts +0 -148
  1610. package/tooltip/lib/tooltip/tooltip.types.d.ts +0 -17
  1611. package/tooltip/malva-ui-core-tooltip.d.ts +0 -5
  1612. package/tree/index.d.ts +0 -4
  1613. package/tree/lib/tree/tree-context.d.ts +0 -62
  1614. package/tree/lib/tree/tree-node-def.d.ts +0 -33
  1615. package/tree/lib/tree/tree-node.d.ts +0 -45
  1616. package/tree/lib/tree/tree-subtree.d.ts +0 -63
  1617. package/tree/lib/tree/tree.d.ts +0 -156
  1618. package/tree/malva-ui-core-tree.d.ts +0 -5
@@ -0,0 +1,451 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, Directive, inject, computed, output, ChangeDetectionStrategy, ViewEncapsulation, Component, model, signal, viewChild, ElementRef } from '@angular/core';
3
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
4
+ import { MlvSignalFormControlBase } from '@malva-ui/core/form-utils';
5
+ import { mlvNextId } from '@malva-ui/cdk/utils';
6
+ import { MlvButtonClose, MlvButton } from '@malva-ui/core/button';
7
+ import { MlvLoader } from '@malva-ui/core/loader';
8
+ import { LucideFile, LucideCircleCheck, LucideCircleX, LucideUpload, LucideRefreshCw, LucideTrash2 } from '@lucide/angular';
9
+ import { MLV_FILE_UPLOAD_I18N, MlvI18nResolverService } from '@malva-ui/i18n';
10
+ import { MlvClick } from '@malva-ui/cdk/accessibility';
11
+
12
+ /**
13
+ * Marks a projected control as an extra action in the drop zone's action row,
14
+ * next to the built-in browse button. Typical use is an icon-only button that
15
+ * offers an alternative to picking a file — "generate with AI", "pick from
16
+ * library", "use camera".
17
+ *
18
+ * `position` is matched by the component's `<ng-content>` selectors, so it must
19
+ * be written as a **static attribute** (`position="end"`), exactly like the
20
+ * other Malva UI slot markers. A binding (`[position]="…"`) changes the
21
+ * directive's signal but cannot move the node between projection slots.
22
+ * DOM order equals visual order — nothing is reordered with CSS `order` — so
23
+ * the tab sequence always matches what the user sees.
24
+ *
25
+ * Clicks (including Enter/Space activation of a projected `<button>`) stop at
26
+ * the slot, so an extra action never also triggers the surrounding zone and
27
+ * opens the native file picker.
28
+ *
29
+ * Disabling a projected control is the consumer's job: `mlv-file-upload` only
30
+ * dims the zone and blocks pointer events while the control itself is
31
+ * disabled, it does not write `disabled` onto projected content.
32
+ *
33
+ * @example
34
+ * ```html
35
+ * <mlv-file-upload title="Image" actionLabel="Choose image">
36
+ * <button mlvButton mlvFileUploadAction type="button" shape="square"
37
+ * aria-label="Generate image with AI">
38
+ * <svg lucideSparkles [size]="16" />
39
+ * </button>
40
+ * </mlv-file-upload>
41
+ *
42
+ * <mlv-file-upload actionLabel="Choose image">
43
+ * <button mlvButton mlvFileUploadAction position="end" type="button"
44
+ * variant="transparent">
45
+ * Import from URL
46
+ * </button>
47
+ * </mlv-file-upload>
48
+ * ```
49
+ */
50
+ class MlvFileUploadAction {
51
+ /**
52
+ * Where the action sits relative to the browse button. `'start'` (the
53
+ * default) renders it before the button, `'end'` after it.
54
+ *
55
+ * Set it as a static attribute — `position="end"` — because the value is
56
+ * read by the host component's content-projection selector, not at runtime.
57
+ */
58
+ position = input('start', /* @ts-ignore */
59
+ ...(ngDevMode ? [{ debugName: "position" }] : /* istanbul ignore next */ []));
60
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvFileUploadAction, deps: [], target: i0.ɵɵFactoryTarget.Directive });
61
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: MlvFileUploadAction, isStandalone: true, selector: "[mlvFileUploadAction]", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "$event.stopPropagation()" }, properties: { "class.mlv-file-upload__action--end": "position() === 'end'" }, classAttribute: "mlv-file-upload__action" }, ngImport: i0 });
62
+ }
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvFileUploadAction, decorators: [{
64
+ type: Directive,
65
+ args: [{
66
+ selector: '[mlvFileUploadAction]',
67
+ host: {
68
+ class: 'mlv-file-upload__action',
69
+ '[class.mlv-file-upload__action--end]': "position() === 'end'",
70
+ '(click)': '$event.stopPropagation()',
71
+ },
72
+ }]
73
+ }], propDecorators: { position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }] } });
74
+
75
+ /**
76
+ * Renders a single uploaded file row with thumbnail, metadata, progress bar,
77
+ * status icon, and a remove button.
78
+ */
79
+ class MlvFileUploadItem {
80
+ /** @protected Injected i18n translations for the file upload. */
81
+ _i18n = inject(MLV_FILE_UPLOAD_I18N);
82
+ /** @private ICU MessageFormat resolver for parameterised i18n strings. */
83
+ _resolver = inject(MlvI18nResolverService);
84
+ /** The uploaded file descriptor to render. */
85
+ file = input.required(/* @ts-ignore */
86
+ ...(ngDevMode ? [{ debugName: "file" }] : /* istanbul ignore next */ []));
87
+ /**
88
+ * @protected Accessible label for the remove button, naming the specific file
89
+ * (e.g. `"Remove report.xlsx"`) so screen-reader users know which file the
90
+ * button removes. Resolves the `removeFile` ICU template with the file name.
91
+ */
92
+ _removeLabel = computed(() => this._resolver.resolve(this._i18n(), 'removeFile', { name: this.file().name }), /* @ts-ignore */
93
+ ...(ngDevMode ? [{ debugName: "_removeLabel" }] : /* istanbul ignore next */ []));
94
+ /** Emits when the user clicks the remove button. */
95
+ remove = output();
96
+ /** @protected Human-readable file size string (e.g. "1.2 MB"). */
97
+ _formattedSize = computed(() => {
98
+ const bytes = this.file().size;
99
+ if (bytes < 1024)
100
+ return `${bytes} B`;
101
+ if (bytes < 1024 * 1024)
102
+ return `${(bytes / 1024).toFixed(1)} KB`;
103
+ return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
104
+ }, /* @ts-ignore */
105
+ ...(ngDevMode ? [{ debugName: "_formattedSize" }] : /* istanbul ignore next */ []));
106
+ /** @protected Whether to show the progress bar. */
107
+ _showProgress = computed(() => this.file().state === 'uploading', /* @ts-ignore */
108
+ ...(ngDevMode ? [{ debugName: "_showProgress" }] : /* istanbul ignore next */ []));
109
+ /** @protected Current progress value for the loader bar. */
110
+ _progress = computed(() => this.file().progress ?? 0, /* @ts-ignore */
111
+ ...(ngDevMode ? [{ debugName: "_progress" }] : /* istanbul ignore next */ []));
112
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvFileUploadItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
113
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: MlvFileUploadItem, isStandalone: true, selector: "mlv-file-upload-item", inputs: { file: { classPropertyName: "file", publicName: "file", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { remove: "remove" }, host: { properties: { "class.mlv-file-upload-item--uploading": "file().state === \"uploading\"", "class.mlv-file-upload-item--success": "file().state === \"success\"", "class.mlv-file-upload-item--error": "file().state === \"error\"" }, classAttribute: "mlv-file-upload-item" }, ngImport: i0, template: "<div class=\"mlv-file-upload-item__thumbnail\">\n @if (file().previewUrl) {\n <img\n [src]=\"file().previewUrl\"\n [alt]=\"file().name\"\n class=\"mlv-file-upload-item__thumbnail-img\"\n />\n } @else {\n <svg lucideFile [size]=\"20\" aria-hidden=\"true\" />\n }\n</div>\n\n<div class=\"mlv-file-upload-item__info\">\n <span class=\"mlv-file-upload-item__name\" [title]=\"file().name\"\n >{{ file().name }}</span\n >\n\n @if (file().error) {\n <span class=\"mlv-file-upload-item__meta mlv-file-upload-item__meta--error\">\n {{ file().error!.message }}\n </span>\n } @else {\n <span class=\"mlv-file-upload-item__meta\">{{ _formattedSize() }}</span>\n } @if (_showProgress()) {\n <mlv-loader\n class=\"mlv-file-upload-item__progress\"\n variant=\"bar\"\n [value]=\"_progress()\"\n [size]=\"3\"\n [ariaLabel]=\"'Uploading ' + file().name + ', ' + _progress() + '%'\"\n />\n }\n</div>\n\n<div class=\"mlv-file-upload-item__actions\">\n @if (file().state === 'success') {\n <svg\n lucideCircleCheck\n class=\"mlv-file-upload-item__status-icon mlv-file-upload-item__status-icon--success\"\n [size]=\"18\"\n [attr.aria-label]=\"_i18n().uploadComplete\"\n role=\"img\"\n />\n } @if (file().state === 'error') {\n <svg\n lucideCircleX\n class=\"mlv-file-upload-item__status-icon mlv-file-upload-item__status-icon--error\"\n [size]=\"18\"\n [attr.aria-label]=\"_i18n().uploadFailed\"\n role=\"img\"\n />\n }\n\n <mlv-button-close\n class=\"mlv-file-upload-item__remove\"\n mlvDensity=\"compact\"\n [ariaLabel]=\"_removeLabel()\"\n (click)=\"remove.emit()\"\n ></mlv-button-close>\n</div>\n", styles: ["@layer mlv.components{.mlv-file-upload-item{display:flex;align-items:center;gap:.75rem;padding:.625rem .75rem;border-radius:var(--mlv-radius-m);border:var(--mlv-stroke-width) solid var(--mlv-border-normal);background-color:var(--mlv-background-neutral-1);transition:background-color var(--mlv-duration-normal) var(--mlv-ease-out)}.mlv-file-upload-item__thumbnail{flex-shrink:0;width:2.5rem;height:2.5rem;border-radius:var(--mlv-radius-s);overflow:hidden;display:flex;align-items:center;justify-content:center;background-color:var(--mlv-background-neutral-2);color:var(--mlv-text-secondary)}.mlv-file-upload-item__thumbnail-img{width:100%;height:100%;object-fit:cover}.mlv-file-upload-item__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.mlv-file-upload-item__name{font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-s);color:var(--mlv-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mlv-file-upload-item__meta{font-family:var(--mlv-typography-family-text);font-size:var(--mlv-typography-caption-size);color:var(--mlv-text-secondary)}.mlv-file-upload-item__meta--error{color:var(--mlv-text-negative)}.mlv-file-upload-item__progress{margin-top:.25rem;width:100%}.mlv-file-upload-item__actions{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.mlv-file-upload-item__status-icon--success{color:var(--mlv-text-positive)}.mlv-file-upload-item__status-icon--error{color:var(--mlv-text-negative)}.mlv-file-upload-item__remove{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border:none;background:transparent;border-radius:var(--mlv-radius-s);cursor:pointer;color:var(--mlv-text-secondary);transition:color var(--mlv-duration-normal) var(--mlv-ease-out),background-color var(--mlv-duration-normal) var(--mlv-ease-out)}.mlv-file-upload-item__remove:hover{color:var(--mlv-text-primary);background-color:var(--mlv-background-neutral-2)}.mlv-file-upload-item__remove:focus-visible{outline:var(--mlv-stroke-width-medium) solid var(--mlv-border-focus);outline-offset:var(--mlv-focus-ring-offset)}.mlv-file-upload-item--uploading{border-color:var(--mlv-border-focus)}.mlv-file-upload-item--success{border-color:var(--mlv-text-positive)}.mlv-file-upload-item--error{border-color:var(--mlv-text-negative);background-color:var(--mlv-background-danger-1-pale)}.mlv-file-upload-item--entering{animation:var(--mlv-duration-normal) var(--mlv-ease-out) file-item-enter}.mlv-file-upload-item--leaving{animation:var(--mlv-duration-normal) var(--mlv-ease-in) file-item-leave}@media(prefers-reduced-motion:reduce){.mlv-file-upload-item,.mlv-file-upload-item *,.mlv-file-upload-item:before,.mlv-file-upload-item:after,[class^=mlv-file-upload-item__],[class*=\" mlv-file-upload-item__\"],[class^=mlv-file-upload-item--],[class*=\" mlv-file-upload-item--\"]{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:var(--mlv-duration-instant)!important}}@keyframes file-item-enter{0%{opacity:0;transform:translateY(-.25rem)}to{opacity:1;transform:translateY(0)}}@keyframes file-item-leave{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-.25rem)}}}\n"], dependencies: [{ kind: "component", type: MlvLoader, selector: "mlv-loader", inputs: ["variant", "tone", "value", "max", "indeterminate", "size", "strokeWidth", "ariaLabel", "showHint", "color", "trackColor", "glow"] }, { kind: "component", type: LucideFile, selector: "svg[lucideFile]" }, { kind: "component", type: LucideCircleCheck, selector: "svg[lucideCircleCheck], svg[lucideCheckCircle2]" }, { kind: "component", type: LucideCircleX, selector: "svg[lucideCircleX], svg[lucideXCircle]" }, { kind: "component", type: MlvButtonClose, selector: "mlv-button-close", inputs: ["variant", "shape", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
114
+ }
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvFileUploadItem, decorators: [{
116
+ type: Component,
117
+ args: [{ selector: 'mlv-file-upload-item', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
118
+ MlvLoader,
119
+ LucideFile,
120
+ LucideCircleCheck,
121
+ LucideCircleX,
122
+ MlvButtonClose,
123
+ MlvClick,
124
+ ], host: {
125
+ class: 'mlv-file-upload-item',
126
+ '[class.mlv-file-upload-item--uploading]': 'file().state === "uploading"',
127
+ '[class.mlv-file-upload-item--success]': 'file().state === "success"',
128
+ '[class.mlv-file-upload-item--error]': 'file().state === "error"',
129
+ }, template: "<div class=\"mlv-file-upload-item__thumbnail\">\n @if (file().previewUrl) {\n <img\n [src]=\"file().previewUrl\"\n [alt]=\"file().name\"\n class=\"mlv-file-upload-item__thumbnail-img\"\n />\n } @else {\n <svg lucideFile [size]=\"20\" aria-hidden=\"true\" />\n }\n</div>\n\n<div class=\"mlv-file-upload-item__info\">\n <span class=\"mlv-file-upload-item__name\" [title]=\"file().name\"\n >{{ file().name }}</span\n >\n\n @if (file().error) {\n <span class=\"mlv-file-upload-item__meta mlv-file-upload-item__meta--error\">\n {{ file().error!.message }}\n </span>\n } @else {\n <span class=\"mlv-file-upload-item__meta\">{{ _formattedSize() }}</span>\n } @if (_showProgress()) {\n <mlv-loader\n class=\"mlv-file-upload-item__progress\"\n variant=\"bar\"\n [value]=\"_progress()\"\n [size]=\"3\"\n [ariaLabel]=\"'Uploading ' + file().name + ', ' + _progress() + '%'\"\n />\n }\n</div>\n\n<div class=\"mlv-file-upload-item__actions\">\n @if (file().state === 'success') {\n <svg\n lucideCircleCheck\n class=\"mlv-file-upload-item__status-icon mlv-file-upload-item__status-icon--success\"\n [size]=\"18\"\n [attr.aria-label]=\"_i18n().uploadComplete\"\n role=\"img\"\n />\n } @if (file().state === 'error') {\n <svg\n lucideCircleX\n class=\"mlv-file-upload-item__status-icon mlv-file-upload-item__status-icon--error\"\n [size]=\"18\"\n [attr.aria-label]=\"_i18n().uploadFailed\"\n role=\"img\"\n />\n }\n\n <mlv-button-close\n class=\"mlv-file-upload-item__remove\"\n mlvDensity=\"compact\"\n [ariaLabel]=\"_removeLabel()\"\n (click)=\"remove.emit()\"\n ></mlv-button-close>\n</div>\n", styles: ["@layer mlv.components{.mlv-file-upload-item{display:flex;align-items:center;gap:.75rem;padding:.625rem .75rem;border-radius:var(--mlv-radius-m);border:var(--mlv-stroke-width) solid var(--mlv-border-normal);background-color:var(--mlv-background-neutral-1);transition:background-color var(--mlv-duration-normal) var(--mlv-ease-out)}.mlv-file-upload-item__thumbnail{flex-shrink:0;width:2.5rem;height:2.5rem;border-radius:var(--mlv-radius-s);overflow:hidden;display:flex;align-items:center;justify-content:center;background-color:var(--mlv-background-neutral-2);color:var(--mlv-text-secondary)}.mlv-file-upload-item__thumbnail-img{width:100%;height:100%;object-fit:cover}.mlv-file-upload-item__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.mlv-file-upload-item__name{font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-s);color:var(--mlv-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mlv-file-upload-item__meta{font-family:var(--mlv-typography-family-text);font-size:var(--mlv-typography-caption-size);color:var(--mlv-text-secondary)}.mlv-file-upload-item__meta--error{color:var(--mlv-text-negative)}.mlv-file-upload-item__progress{margin-top:.25rem;width:100%}.mlv-file-upload-item__actions{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.mlv-file-upload-item__status-icon--success{color:var(--mlv-text-positive)}.mlv-file-upload-item__status-icon--error{color:var(--mlv-text-negative)}.mlv-file-upload-item__remove{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border:none;background:transparent;border-radius:var(--mlv-radius-s);cursor:pointer;color:var(--mlv-text-secondary);transition:color var(--mlv-duration-normal) var(--mlv-ease-out),background-color var(--mlv-duration-normal) var(--mlv-ease-out)}.mlv-file-upload-item__remove:hover{color:var(--mlv-text-primary);background-color:var(--mlv-background-neutral-2)}.mlv-file-upload-item__remove:focus-visible{outline:var(--mlv-stroke-width-medium) solid var(--mlv-border-focus);outline-offset:var(--mlv-focus-ring-offset)}.mlv-file-upload-item--uploading{border-color:var(--mlv-border-focus)}.mlv-file-upload-item--success{border-color:var(--mlv-text-positive)}.mlv-file-upload-item--error{border-color:var(--mlv-text-negative);background-color:var(--mlv-background-danger-1-pale)}.mlv-file-upload-item--entering{animation:var(--mlv-duration-normal) var(--mlv-ease-out) file-item-enter}.mlv-file-upload-item--leaving{animation:var(--mlv-duration-normal) var(--mlv-ease-in) file-item-leave}@media(prefers-reduced-motion:reduce){.mlv-file-upload-item,.mlv-file-upload-item *,.mlv-file-upload-item:before,.mlv-file-upload-item:after,[class^=mlv-file-upload-item__],[class*=\" mlv-file-upload-item__\"],[class^=mlv-file-upload-item--],[class*=\" mlv-file-upload-item--\"]{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:var(--mlv-duration-instant)!important}}@keyframes file-item-enter{0%{opacity:0;transform:translateY(-.25rem)}to{opacity:1;transform:translateY(0)}}@keyframes file-item-leave{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-.25rem)}}}\n"] }]
130
+ }], propDecorators: { file: [{ type: i0.Input, args: [{ isSignal: true, alias: "file", required: true }] }], remove: [{ type: i0.Output, args: ["remove"] }] } });
131
+
132
+ /**
133
+ * File upload component providing a drag-and-drop zone, file validation, and
134
+ * signal, reactive, and template-driven forms integration. Produces an array
135
+ * of `MlvUploadedFile` values.
136
+ */
137
+ class MlvFileUpload extends MlvSignalFormControlBase {
138
+ /** The uploaded-file list used by all Angular forms APIs. */
139
+ value = model([], /* @ts-ignore */
140
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
141
+ /** @protected Injected i18n translations for the file upload. */
142
+ _i18n = inject(MLV_FILE_UPLOAD_I18N);
143
+ /** @private ICU MessageFormat resolver for the parameterised rejection messages. */
144
+ _resolver = inject(MlvI18nResolverService);
145
+ /** Comma-separated list of accepted MIME types or file extensions (e.g. `"image/*,.pdf"`). */
146
+ accept = input('', /* @ts-ignore */
147
+ ...(ngDevMode ? [{ debugName: "accept" }] : /* istanbul ignore next */ []));
148
+ /**
149
+ * Maximum allowed file size in bytes. `0` means unlimited.
150
+ */
151
+ maxSize = input(0, /* @ts-ignore */
152
+ ...(ngDevMode ? [{ debugName: "maxSize" }] : /* istanbul ignore next */ []));
153
+ /** Whether to allow selecting multiple files. */
154
+ multiple = input(true, { ...(ngDevMode ? { debugName: "multiple" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
155
+ /** Primary heading text shown in the drop zone. */
156
+ title = input('Drag & drop files here', /* @ts-ignore */
157
+ ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
158
+ /** Secondary description text shown below the title. */
159
+ subtitle = input('', /* @ts-ignore */
160
+ ...(ngDevMode ? [{ debugName: "subtitle" }] : /* istanbul ignore next */ []));
161
+ /** Label text for the browse button. */
162
+ actionLabel = input('Browse files', /* @ts-ignore */
163
+ ...(ngDevMode ? [{ debugName: "actionLabel" }] : /* istanbul ignore next */ []));
164
+ /** When true, renders a compact single-row drop zone instead of the full zone. */
165
+ compact = input(false, { ...(ngDevMode ? { debugName: "compact" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
166
+ /**
167
+ * How the zone presents the current selection.
168
+ *
169
+ * `'list'` (the default) keeps today's behaviour: the prompt and browse
170
+ * button always show, and selected files are listed below the zone.
171
+ *
172
+ * `'cover'` fills the zone with the selected image and swaps the browse
173
+ * button for a floating replace/remove toolbar. It only takes effect when
174
+ * **all** of these hold, and silently falls back to `'list'` otherwise:
175
+ *
176
+ * 1. `multiple` is `false`,
177
+ * 2. exactly one file is selected, and
178
+ * 3. that file carries a `previewUrl`.
179
+ *
180
+ * `previewUrl` is generated automatically for any dropped/picked file whose
181
+ * MIME type starts with `image/`. For an edit-mode seed, write it yourself —
182
+ * it accepts a remote `https://…` or a `data:` URL just as happily as the
183
+ * generated `blob:` one.
184
+ */
185
+ previewMode = input('list', /* @ts-ignore */
186
+ ...(ngDevMode ? [{ debugName: "previewMode" }] : /* istanbul ignore next */ []));
187
+ /** Emits the current file list whenever files are added or removed. */
188
+ filesChange = output();
189
+ /** @private List of selected/uploaded files managed by the component. */
190
+ _files = computed(() => this.value() ?? [], /* @ts-ignore */
191
+ ...(ngDevMode ? [{ debugName: "_files" }] : /* istanbul ignore next */ []));
192
+ /** @private Validation errors from the last file selection or drop. */
193
+ _errors = signal([], /* @ts-ignore */
194
+ ...(ngDevMode ? [{ debugName: "_errors" }] : /* istanbul ignore next */ []));
195
+ /** @private Whether the user is currently dragging files over the drop zone. */
196
+ _isDragOver = signal(false, /* @ts-ignore */
197
+ ...(ngDevMode ? [{ debugName: "_isDragOver" }] : /* istanbul ignore next */ []));
198
+ /** @private Reference to the hidden file input element. */
199
+ _fileInput = viewChild('fileInput', /* @ts-ignore */
200
+ ...(ngDevMode ? [{ debugName: "_fileInput" }] : /* istanbul ignore next */ []));
201
+ /** @private Reference to the host element for dragleave boundary detection. */
202
+ _elementRef = inject((ElementRef));
203
+ /** @protected Computed list of files exposed to the template. */
204
+ _fileList = computed(() => this._files(), /* @ts-ignore */
205
+ ...(ngDevMode ? [{ debugName: "_fileList" }] : /* istanbul ignore next */ []));
206
+ // Cover preview ----------------------------------------------------------------
207
+ /**
208
+ * @protected The single file rendered as a full-zone cover, or `null` when
209
+ * the cover preconditions are not met (see `previewMode`) and the zone falls
210
+ * back to the normal prompt.
211
+ */
212
+ _coverFile = computed(() => {
213
+ if (this.previewMode() !== 'cover' || this.multiple())
214
+ return null;
215
+ const files = this._files();
216
+ if (files.length !== 1)
217
+ return null;
218
+ return files[0].previewUrl ? files[0] : null;
219
+ }, /* @ts-ignore */
220
+ ...(ngDevMode ? [{ debugName: "_coverFile" }] : /* istanbul ignore next */ []));
221
+ /** @protected Whether the zone currently renders the cover preview. */
222
+ _isCover = computed(() => this._coverFile() !== null, /* @ts-ignore */
223
+ ...(ngDevMode ? [{ debugName: "_isCover" }] : /* istanbul ignore next */ []));
224
+ /**
225
+ * @protected Whether the covered file is still uploading, which overlays a
226
+ * determinate progress bar on the image instead of falling back to list mode.
227
+ */
228
+ _coverUploading = computed(() => {
229
+ const file = this._coverFile();
230
+ return (file !== null && file.state === 'uploading' && (file.progress ?? 0) < 100);
231
+ }, /* @ts-ignore */
232
+ ...(ngDevMode ? [{ debugName: "_coverUploading" }] : /* istanbul ignore next */ []));
233
+ /**
234
+ * @protected Accessible name for the cover toolbar's remove button, with the
235
+ * covered file's name interpolated into the shared `removeFile` template.
236
+ */
237
+ _coverRemoveLabel = computed(() => {
238
+ const file = this._coverFile();
239
+ return file ? this._translate('removeFile', { name: file.name }) : '';
240
+ }, /* @ts-ignore */
241
+ ...(ngDevMode ? [{ debugName: "_coverRemoveLabel" }] : /* istanbul ignore next */ []));
242
+ // Forms value ------------------------------------------------------------------
243
+ /** Whether the control holds a clearable value — At least one file present. */
244
+ hasValue = computed(() => this._files().length > 0, /* @ts-ignore */
245
+ ...(ngDevMode ? [{ debugName: "hasValue" }] : /* istanbul ignore next */ []));
246
+ // Public API -------------------------------------------------------------------
247
+ /**
248
+ * Programmatically opens the native file picker dialog.
249
+ */
250
+ openFilePicker() {
251
+ if (this.computedDisabled())
252
+ return;
253
+ this._fileInput()?.nativeElement.click();
254
+ }
255
+ /**
256
+ * Handles changes from the hidden file input element.
257
+ * @param event - The native change event from the input.
258
+ */
259
+ onFileInputChange(event) {
260
+ const input = event.target;
261
+ if (input.files) {
262
+ this._validateAndAdd(input.files);
263
+ }
264
+ // Reset so the same file can be re-selected
265
+ input.value = '';
266
+ }
267
+ /**
268
+ * Removes a file by its id, revoking the preview URL if present.
269
+ * @param id - The id of the `MlvUploadedFile` to remove.
270
+ */
271
+ removeFile(id) {
272
+ const target = this._files().find((f) => f.id === id);
273
+ if (target?.previewUrl) {
274
+ URL.revokeObjectURL(target.previewUrl);
275
+ }
276
+ this.value.update((files) => (files ?? []).filter((file) => file.id !== id));
277
+ this._emitChange();
278
+ }
279
+ // Internal helpers -------------------------------------------------------------
280
+ /**
281
+ * @private Handles the dragover event to enable the drag-over state.
282
+ */
283
+ _onDragOver(event) {
284
+ event.preventDefault();
285
+ if (!this.computedDisabled()) {
286
+ this._isDragOver.set(true);
287
+ }
288
+ }
289
+ /**
290
+ * @private Handles the dragleave event to clear drag-over state when leaving the host.
291
+ */
292
+ _onDragLeave(event) {
293
+ if (!this._elementRef.nativeElement.contains(event.relatedTarget)) {
294
+ this._isDragOver.set(false);
295
+ }
296
+ }
297
+ /**
298
+ * @private Handles the drop event, reads dropped files and validates them.
299
+ */
300
+ _onDrop(event) {
301
+ event.preventDefault();
302
+ this._isDragOver.set(false);
303
+ if (this.computedDisabled())
304
+ return;
305
+ const dt = event.dataTransfer;
306
+ if (dt?.files) {
307
+ this._validateAndAdd(dt.files);
308
+ }
309
+ }
310
+ /**
311
+ * @private Validates a FileList against accept/maxSize constraints and appends valid files.
312
+ */
313
+ _validateAndAdd(fileList) {
314
+ const newErrors = [];
315
+ const newFiles = [];
316
+ const acceptedTypes = this._parseAccept();
317
+ Array.from(fileList).forEach((file) => {
318
+ // Count check
319
+ if (!this.multiple() && this._files().length + newFiles.length >= 1) {
320
+ newErrors.push({
321
+ code: 'count',
322
+ message: this._i18n().errorSingleFile,
323
+ });
324
+ return;
325
+ }
326
+ // Type check
327
+ if (acceptedTypes.length > 0 &&
328
+ !this._isTypeAccepted(file, acceptedTypes)) {
329
+ newErrors.push({
330
+ code: 'type',
331
+ message: this._translate('errorFileType', { name: file.name }),
332
+ });
333
+ return;
334
+ }
335
+ // Size check
336
+ const maxBytes = this.maxSize();
337
+ if (maxBytes > 0 && file.size > maxBytes) {
338
+ const maxMb = (maxBytes / (1024 * 1024)).toFixed(1);
339
+ newErrors.push({
340
+ code: 'size',
341
+ message: this._translate('errorFileSize', {
342
+ name: file.name,
343
+ size: maxMb,
344
+ }),
345
+ });
346
+ return;
347
+ }
348
+ const isImage = file.type.startsWith('image/');
349
+ const uploadedFile = {
350
+ id: mlvNextId('mlv-file'),
351
+ file,
352
+ name: file.name,
353
+ size: file.size,
354
+ previewUrl: isImage ? URL.createObjectURL(file) : undefined,
355
+ state: 'pending',
356
+ progress: 0,
357
+ };
358
+ newFiles.push(uploadedFile);
359
+ });
360
+ this._errors.set(newErrors);
361
+ if (newFiles.length > 0) {
362
+ if (this.multiple()) {
363
+ this.value.update((previous) => [...(previous ?? []), ...newFiles]);
364
+ }
365
+ else {
366
+ // Replace previous file when multiple is false
367
+ const previous = this._files();
368
+ previous.forEach((f) => {
369
+ if (f.previewUrl)
370
+ URL.revokeObjectURL(f.previewUrl);
371
+ });
372
+ this.value.set(newFiles);
373
+ }
374
+ this._emitChange();
375
+ }
376
+ }
377
+ /**
378
+ * @private Resolves one of the component's ICU rejection templates with the
379
+ * offending file's details. Keeps every user-facing validation string in the
380
+ * language pack instead of hard-coded English.
381
+ */
382
+ _translate(key, params) {
383
+ return this._resolver.resolve(this._i18n(), key, params);
384
+ }
385
+ /**
386
+ * @private Parses the accept input into a list of accepted MIME prefixes and extensions.
387
+ */
388
+ _parseAccept() {
389
+ const raw = this.accept().trim();
390
+ if (!raw)
391
+ return [];
392
+ return raw.split(',').map((s) => s.trim().toLowerCase());
393
+ }
394
+ /**
395
+ * @private Checks whether a file matches the accepted type list.
396
+ */
397
+ _isTypeAccepted(file, accepted) {
398
+ return accepted.some((pattern) => {
399
+ if (pattern.startsWith('.')) {
400
+ return file.name.toLowerCase().endsWith(pattern);
401
+ }
402
+ if (pattern.endsWith('/*')) {
403
+ return file.type.startsWith(pattern.slice(0, -1));
404
+ }
405
+ return file.type === pattern;
406
+ });
407
+ }
408
+ /**
409
+ * @private Emits the current file list through the public change output.
410
+ */
411
+ _emitChange() {
412
+ this.filesChange.emit(this._files());
413
+ }
414
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvFileUpload, deps: null, target: i0.ɵɵFactoryTarget.Component });
415
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: MlvFileUpload, isStandalone: true, selector: "mlv-file-upload", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, accept: { classPropertyName: "accept", publicName: "accept", isSignal: true, isRequired: false, transformFunction: null }, maxSize: { classPropertyName: "maxSize", publicName: "maxSize", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, actionLabel: { classPropertyName: "actionLabel", publicName: "actionLabel", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, previewMode: { classPropertyName: "previewMode", publicName: "previewMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", filesChange: "filesChange" }, host: { listeners: { "dragover": "_onDragOver($event)", "dragleave": "_onDragLeave($event)", "drop": "_onDrop($event)", "focusout": "_markTouched()" }, properties: { "attr.title": "null", "class.mlv-file-upload--cover": "_isCover()", "class.mlv-file-upload--drag-over": "_isDragOver()", "class.mlv-file-upload--disabled": "computedDisabled()", "class.mlv-file-upload--error": "_errors().length > 0", "class.mlv-file-upload--multiple": "multiple()", "class.mlv-file-upload--has-files": "_files().length > 0", "class.mlv-file-upload--compact": "compact()" }, classAttribute: "mlv-file-upload" }, viewQueries: [{ propertyName: "_fileInput", first: true, predicate: ["fileInput"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<input\n #fileInput\n class=\"mlv-file-upload__input\"\n type=\"file\"\n [accept]=\"accept()\"\n [multiple]=\"multiple()\"\n [disabled]=\"computedDisabled()\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n (change)=\"onFileInputChange($event)\"\n/>\n\n<!-- Drop zone: visually interactive drag target.\n The inner <button type=\"button\"> is the sole keyboard/AT entry point. -->\n<div class=\"mlv-file-upload__zone\">\n @if (_coverFile(); as cover) {\n <!-- Cover preview: the image fills the zone, which stays the drop target.\n Plain <img>, not NgOptimizedImage \u2014 the source is a runtime blob:/data:/\n remote URL of unknown intrinsic size. -->\n <img\n class=\"mlv-file-upload__cover-image\"\n [src]=\"cover.previewUrl\"\n [alt]=\"cover.name\"\n />\n\n @if (_coverUploading()) {\n <mlv-loader\n class=\"mlv-file-upload__cover-progress\"\n variant=\"bar\"\n [value]=\"cover.progress ?? 0\"\n />\n } } @else {\n <span class=\"mlv-file-upload__zone-icon\" aria-hidden=\"true\">\n <svg lucideUpload [size]=\"compact() ? 18 : 28\" />\n </span>\n\n <!-- Title is always in the DOM to serve as aria-describedby anchor;\n hidden visually in compact mode via CSS. -->\n <span\n [id]=\"id() + '-title'\"\n class=\"mlv-file-upload__zone-title\"\n [class.mlv-file-upload__zone-title--hidden]=\"compact()\"\n >{{ title() }}</span\n >\n\n @if (subtitle() && !compact()) {\n <span [id]=\"id() + '-subtitle'\" class=\"mlv-file-upload__zone-subtitle\"\n >{{ subtitle() }}</span\n >\n } }\n\n <!-- One actions container, two presentations. It is the inline action row in\n list mode and the floating toolbar over the cover image. The two\n <ng-content> slots MUST stay outside the @if branches: Angular assigns a\n projected node to the first slot whose selector matches, so duplicating\n a selector across branches leaves the later copy permanently empty.\n DOM order equals visual order, and `position` is read as a static\n attribute here, never as a binding. -->\n <span\n [class.mlv-file-upload__zone-action]=\"!_isCover()\"\n [class.mlv-file-upload__toolbar]=\"_isCover()\"\n >\n <ng-content select=\"[mlvFileUploadAction]:not([position=end])\" />\n\n @if (_isCover()) {\n <button\n mlvButton\n type=\"button\"\n shape=\"square\"\n variant=\"transparent\"\n [disabled]=\"computedDisabled()\"\n [attr.aria-label]=\"_i18n().replaceFile\"\n (click)=\"$event.stopPropagation(); openFilePicker()\"\n >\n <svg lucideRefreshCw [size]=\"16\" />\n </button>\n } @else {\n <button\n mlvButton\n type=\"button\"\n variant=\"secondary\"\n [disabled]=\"computedDisabled()\"\n [attr.aria-describedby]=\"subtitle() && !compact() ? id() + '-title ' + id() + '-subtitle' : id() + '-title'\"\n (click)=\"$event.stopPropagation(); openFilePicker()\"\n >\n {{ actionLabel() }}\n </button>\n }\n\n <ng-content select=\"[mlvFileUploadAction][position=end]\" />\n\n @if (_coverFile(); as cover) {\n <button\n mlvButton\n type=\"button\"\n shape=\"square\"\n variant=\"transparent\"\n [disabled]=\"computedDisabled()\"\n [attr.aria-label]=\"_coverRemoveLabel()\"\n (click)=\"$event.stopPropagation(); removeFile(cover.id)\"\n >\n <svg lucideTrash2 [size]=\"16\" />\n </button>\n }\n </span>\n</div>\n\n@if (_errors().length > 0) {\n<ul class=\"mlv-file-upload__errors\" role=\"alert\" aria-live=\"assertive\">\n @for (err of _errors(); track err.code + err.message) {\n <li class=\"mlv-file-upload__error-item\">{{ err.message }}</li>\n }\n</ul>\n}\n<!-- In cover state the single file's row would only repeat the image and its\n remove control, both of which the cover toolbar already provides. -->\n@if (_fileList().length > 0 && !_isCover()) {\n<ul\n class=\"mlv-file-upload__list\"\n [attr.aria-label]=\"_i18n().selectedFiles\"\n aria-live=\"polite\"\n>\n @for (file of _fileList(); track file.id) {\n <li>\n <mlv-file-upload-item\n class=\"mlv-file-upload-item--entering\"\n [file]=\"file\"\n (remove)=\"removeFile(file.id)\"\n />\n </li>\n }\n</ul>\n}\n", styles: ["@layer mlv.components{.mlv-file-upload{display:flex;flex-direction:column;gap:.75rem;font-family:var(--mlv-typography-family-text)}.mlv-file-upload__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.mlv-file-upload__zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2rem 1.5rem;border:var(--mlv-stroke-width-medium) dashed var(--mlv-border-normal);border-radius:var(--mlv-radius-l);background-color:var(--mlv-background-neutral-1);cursor:pointer;text-align:center;transition:border-color var(--mlv-duration-normal) var(--mlv-ease-out),background-color var(--mlv-duration-normal) var(--mlv-ease-out);outline:none}.mlv-file-upload__zone:hover{border-color:var(--mlv-border-focus);background-color:var(--mlv-background-neutral-2)}.mlv-file-upload__zone:focus-visible{outline:var(--mlv-stroke-width-medium) solid var(--mlv-border-focus);outline-offset:var(--mlv-focus-ring-offset)}.mlv-file-upload__zone-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--mlv-text-secondary);margin-bottom:.25rem}.mlv-file-upload__zone-title{font-size:var(--mlv-font-size-m);font-weight:600;color:var(--mlv-text-primary)}.mlv-file-upload__zone-title--hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.mlv-file-upload__zone-subtitle{font-size:var(--mlv-typography-ui-s-size);color:var(--mlv-text-secondary)}.mlv-file-upload__zone-action{display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--mlv-spacing-2);margin-top:.25rem}.mlv-file-upload__action{flex:none}.mlv-file-upload__cover-image{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover;border-radius:inherit;pointer-events:none}.mlv-file-upload__cover-progress{position:absolute;inset-inline:var(--mlv-spacing-3);inset-block-start:var(--mlv-spacing-3);pointer-events:none}.mlv-file-upload__toolbar{position:absolute;inset-block-end:var(--mlv-spacing-3);inset-inline-start:50%;transform:translate(-50%);display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:var(--mlv-spacing-1);padding:var(--mlv-spacing-1);border-radius:var(--mlv-radius-l);background-color:var(--mlv-background-raised);box-shadow:var(--mlv-shadow-floating);opacity:0;pointer-events:none;transition:opacity var(--mlv-duration-fast) var(--mlv-ease-default)}.mlv-file-upload__errors{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}.mlv-file-upload__error-item{font-size:var(--mlv-typography-ui-s-size);color:var(--mlv-text-negative);padding:.375rem .75rem;border-radius:var(--mlv-radius-s);background-color:var(--mlv-background-danger-1-pale)}.mlv-file-upload__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.mlv-file-upload--drag-over .mlv-file-upload__zone{border-color:var(--mlv-border-focus);background-color:var(--mlv-background-neutral-2)}.mlv-file-upload--disabled{pointer-events:none;opacity:var(--mlv-disabled-opacity)}.mlv-file-upload--disabled .mlv-file-upload__zone{cursor:not-allowed}.mlv-file-upload--error .mlv-file-upload__zone{border-color:var(--mlv-text-negative)}.mlv-file-upload--cover{--mlv-file-upload-cover-min-height: 12rem}.mlv-file-upload--cover .mlv-file-upload__zone{position:relative;flex:1 1 auto;min-block-size:var(--mlv-file-upload-cover-min-height);padding:0;overflow:hidden}.mlv-file-upload--cover .mlv-file-upload__zone:hover .mlv-file-upload__toolbar,.mlv-file-upload--cover .mlv-file-upload__zone:focus-within .mlv-file-upload__toolbar{opacity:1;pointer-events:auto}@media(hover:none){.mlv-file-upload--cover .mlv-file-upload__toolbar{opacity:1;pointer-events:auto}}.mlv-file-upload--compact .mlv-file-upload__zone{flex-direction:row;padding:.75rem 1rem;gap:.75rem;text-align:start}.mlv-file-upload--compact .mlv-file-upload__zone-icon{margin-bottom:0}.mlv-file-upload--compact .mlv-file-upload__zone-action{margin-top:0}@media(prefers-reduced-motion:reduce){.mlv-file-upload,.mlv-file-upload *,.mlv-file-upload:before,.mlv-file-upload:after,[class^=mlv-file-upload__],[class*=\" mlv-file-upload__\"],[class^=mlv-file-upload--],[class*=\" mlv-file-upload--\"]{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: MlvButton, selector: "button[mlvButton], a[mlvButton]", inputs: ["variant", "shape", "disabled", "loading", "selected"] }, { kind: "component", type: MlvFileUploadItem, selector: "mlv-file-upload-item", inputs: ["file"], outputs: ["remove"] }, { kind: "component", type: MlvLoader, selector: "mlv-loader", inputs: ["variant", "tone", "value", "max", "indeterminate", "size", "strokeWidth", "ariaLabel", "showHint", "color", "trackColor", "glow"] }, { kind: "component", type: LucideUpload, selector: "svg[lucideUpload]" }, { kind: "component", type: LucideRefreshCw, selector: "svg[lucideRefreshCw]" }, { kind: "component", type: LucideTrash2, selector: "svg[lucideTrash2]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
416
+ }
417
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvFileUpload, decorators: [{
418
+ type: Component,
419
+ args: [{ selector: 'mlv-file-upload', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
420
+ MlvButton,
421
+ MlvFileUploadItem,
422
+ MlvLoader,
423
+ LucideUpload,
424
+ LucideRefreshCw,
425
+ LucideTrash2,
426
+ ], host: {
427
+ class: 'mlv-file-upload',
428
+ // `title` is the zone's heading, not a tooltip. Written as a static
429
+ // attribute (`title="Image"`) it also lands in the DOM, which gives the
430
+ // whole zone a native browser tooltip repeating the heading — so strip it.
431
+ '[attr.title]': 'null',
432
+ '[class.mlv-file-upload--cover]': '_isCover()',
433
+ '[class.mlv-file-upload--drag-over]': '_isDragOver()',
434
+ '[class.mlv-file-upload--disabled]': 'computedDisabled()',
435
+ '[class.mlv-file-upload--error]': '_errors().length > 0',
436
+ '[class.mlv-file-upload--multiple]': 'multiple()',
437
+ '[class.mlv-file-upload--has-files]': '_files().length > 0',
438
+ '[class.mlv-file-upload--compact]': 'compact()',
439
+ '(dragover)': '_onDragOver($event)',
440
+ '(dragleave)': '_onDragLeave($event)',
441
+ '(drop)': '_onDrop($event)',
442
+ '(focusout)': '_markTouched()',
443
+ }, template: "<input\n #fileInput\n class=\"mlv-file-upload__input\"\n type=\"file\"\n [accept]=\"accept()\"\n [multiple]=\"multiple()\"\n [disabled]=\"computedDisabled()\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n (change)=\"onFileInputChange($event)\"\n/>\n\n<!-- Drop zone: visually interactive drag target.\n The inner <button type=\"button\"> is the sole keyboard/AT entry point. -->\n<div class=\"mlv-file-upload__zone\">\n @if (_coverFile(); as cover) {\n <!-- Cover preview: the image fills the zone, which stays the drop target.\n Plain <img>, not NgOptimizedImage \u2014 the source is a runtime blob:/data:/\n remote URL of unknown intrinsic size. -->\n <img\n class=\"mlv-file-upload__cover-image\"\n [src]=\"cover.previewUrl\"\n [alt]=\"cover.name\"\n />\n\n @if (_coverUploading()) {\n <mlv-loader\n class=\"mlv-file-upload__cover-progress\"\n variant=\"bar\"\n [value]=\"cover.progress ?? 0\"\n />\n } } @else {\n <span class=\"mlv-file-upload__zone-icon\" aria-hidden=\"true\">\n <svg lucideUpload [size]=\"compact() ? 18 : 28\" />\n </span>\n\n <!-- Title is always in the DOM to serve as aria-describedby anchor;\n hidden visually in compact mode via CSS. -->\n <span\n [id]=\"id() + '-title'\"\n class=\"mlv-file-upload__zone-title\"\n [class.mlv-file-upload__zone-title--hidden]=\"compact()\"\n >{{ title() }}</span\n >\n\n @if (subtitle() && !compact()) {\n <span [id]=\"id() + '-subtitle'\" class=\"mlv-file-upload__zone-subtitle\"\n >{{ subtitle() }}</span\n >\n } }\n\n <!-- One actions container, two presentations. It is the inline action row in\n list mode and the floating toolbar over the cover image. The two\n <ng-content> slots MUST stay outside the @if branches: Angular assigns a\n projected node to the first slot whose selector matches, so duplicating\n a selector across branches leaves the later copy permanently empty.\n DOM order equals visual order, and `position` is read as a static\n attribute here, never as a binding. -->\n <span\n [class.mlv-file-upload__zone-action]=\"!_isCover()\"\n [class.mlv-file-upload__toolbar]=\"_isCover()\"\n >\n <ng-content select=\"[mlvFileUploadAction]:not([position=end])\" />\n\n @if (_isCover()) {\n <button\n mlvButton\n type=\"button\"\n shape=\"square\"\n variant=\"transparent\"\n [disabled]=\"computedDisabled()\"\n [attr.aria-label]=\"_i18n().replaceFile\"\n (click)=\"$event.stopPropagation(); openFilePicker()\"\n >\n <svg lucideRefreshCw [size]=\"16\" />\n </button>\n } @else {\n <button\n mlvButton\n type=\"button\"\n variant=\"secondary\"\n [disabled]=\"computedDisabled()\"\n [attr.aria-describedby]=\"subtitle() && !compact() ? id() + '-title ' + id() + '-subtitle' : id() + '-title'\"\n (click)=\"$event.stopPropagation(); openFilePicker()\"\n >\n {{ actionLabel() }}\n </button>\n }\n\n <ng-content select=\"[mlvFileUploadAction][position=end]\" />\n\n @if (_coverFile(); as cover) {\n <button\n mlvButton\n type=\"button\"\n shape=\"square\"\n variant=\"transparent\"\n [disabled]=\"computedDisabled()\"\n [attr.aria-label]=\"_coverRemoveLabel()\"\n (click)=\"$event.stopPropagation(); removeFile(cover.id)\"\n >\n <svg lucideTrash2 [size]=\"16\" />\n </button>\n }\n </span>\n</div>\n\n@if (_errors().length > 0) {\n<ul class=\"mlv-file-upload__errors\" role=\"alert\" aria-live=\"assertive\">\n @for (err of _errors(); track err.code + err.message) {\n <li class=\"mlv-file-upload__error-item\">{{ err.message }}</li>\n }\n</ul>\n}\n<!-- In cover state the single file's row would only repeat the image and its\n remove control, both of which the cover toolbar already provides. -->\n@if (_fileList().length > 0 && !_isCover()) {\n<ul\n class=\"mlv-file-upload__list\"\n [attr.aria-label]=\"_i18n().selectedFiles\"\n aria-live=\"polite\"\n>\n @for (file of _fileList(); track file.id) {\n <li>\n <mlv-file-upload-item\n class=\"mlv-file-upload-item--entering\"\n [file]=\"file\"\n (remove)=\"removeFile(file.id)\"\n />\n </li>\n }\n</ul>\n}\n", styles: ["@layer mlv.components{.mlv-file-upload{display:flex;flex-direction:column;gap:.75rem;font-family:var(--mlv-typography-family-text)}.mlv-file-upload__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.mlv-file-upload__zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2rem 1.5rem;border:var(--mlv-stroke-width-medium) dashed var(--mlv-border-normal);border-radius:var(--mlv-radius-l);background-color:var(--mlv-background-neutral-1);cursor:pointer;text-align:center;transition:border-color var(--mlv-duration-normal) var(--mlv-ease-out),background-color var(--mlv-duration-normal) var(--mlv-ease-out);outline:none}.mlv-file-upload__zone:hover{border-color:var(--mlv-border-focus);background-color:var(--mlv-background-neutral-2)}.mlv-file-upload__zone:focus-visible{outline:var(--mlv-stroke-width-medium) solid var(--mlv-border-focus);outline-offset:var(--mlv-focus-ring-offset)}.mlv-file-upload__zone-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--mlv-text-secondary);margin-bottom:.25rem}.mlv-file-upload__zone-title{font-size:var(--mlv-font-size-m);font-weight:600;color:var(--mlv-text-primary)}.mlv-file-upload__zone-title--hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.mlv-file-upload__zone-subtitle{font-size:var(--mlv-typography-ui-s-size);color:var(--mlv-text-secondary)}.mlv-file-upload__zone-action{display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--mlv-spacing-2);margin-top:.25rem}.mlv-file-upload__action{flex:none}.mlv-file-upload__cover-image{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover;border-radius:inherit;pointer-events:none}.mlv-file-upload__cover-progress{position:absolute;inset-inline:var(--mlv-spacing-3);inset-block-start:var(--mlv-spacing-3);pointer-events:none}.mlv-file-upload__toolbar{position:absolute;inset-block-end:var(--mlv-spacing-3);inset-inline-start:50%;transform:translate(-50%);display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:var(--mlv-spacing-1);padding:var(--mlv-spacing-1);border-radius:var(--mlv-radius-l);background-color:var(--mlv-background-raised);box-shadow:var(--mlv-shadow-floating);opacity:0;pointer-events:none;transition:opacity var(--mlv-duration-fast) var(--mlv-ease-default)}.mlv-file-upload__errors{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}.mlv-file-upload__error-item{font-size:var(--mlv-typography-ui-s-size);color:var(--mlv-text-negative);padding:.375rem .75rem;border-radius:var(--mlv-radius-s);background-color:var(--mlv-background-danger-1-pale)}.mlv-file-upload__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.mlv-file-upload--drag-over .mlv-file-upload__zone{border-color:var(--mlv-border-focus);background-color:var(--mlv-background-neutral-2)}.mlv-file-upload--disabled{pointer-events:none;opacity:var(--mlv-disabled-opacity)}.mlv-file-upload--disabled .mlv-file-upload__zone{cursor:not-allowed}.mlv-file-upload--error .mlv-file-upload__zone{border-color:var(--mlv-text-negative)}.mlv-file-upload--cover{--mlv-file-upload-cover-min-height: 12rem}.mlv-file-upload--cover .mlv-file-upload__zone{position:relative;flex:1 1 auto;min-block-size:var(--mlv-file-upload-cover-min-height);padding:0;overflow:hidden}.mlv-file-upload--cover .mlv-file-upload__zone:hover .mlv-file-upload__toolbar,.mlv-file-upload--cover .mlv-file-upload__zone:focus-within .mlv-file-upload__toolbar{opacity:1;pointer-events:auto}@media(hover:none){.mlv-file-upload--cover .mlv-file-upload__toolbar{opacity:1;pointer-events:auto}}.mlv-file-upload--compact .mlv-file-upload__zone{flex-direction:row;padding:.75rem 1rem;gap:.75rem;text-align:start}.mlv-file-upload--compact .mlv-file-upload__zone-icon{margin-bottom:0}.mlv-file-upload--compact .mlv-file-upload__zone-action{margin-top:0}@media(prefers-reduced-motion:reduce){.mlv-file-upload,.mlv-file-upload *,.mlv-file-upload:before,.mlv-file-upload:after,[class^=mlv-file-upload__],[class*=\" mlv-file-upload__\"],[class^=mlv-file-upload--],[class*=\" mlv-file-upload--\"]{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:var(--mlv-duration-instant)!important}}}\n"] }]
444
+ }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], accept: [{ type: i0.Input, args: [{ isSignal: true, alias: "accept", required: false }] }], maxSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxSize", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], actionLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "actionLabel", required: false }] }], compact: [{ type: i0.Input, args: [{ isSignal: true, alias: "compact", required: false }] }], previewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "previewMode", required: false }] }], filesChange: [{ type: i0.Output, args: ["filesChange"] }], _fileInput: [{ type: i0.ViewChild, args: ['fileInput', { isSignal: true }] }] } });
445
+
446
+ /**
447
+ * Generated bundle index. Do not edit.
448
+ */
449
+
450
+ export { MlvFileUpload, MlvFileUploadAction, MlvFileUploadItem };
451
+ //# sourceMappingURL=malva-ui-core-file-upload.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"malva-ui-core-file-upload.mjs","sources":["../../../../libs/core/file-upload/src/lib/file-upload-action.ts","../../../../libs/core/file-upload/src/lib/file-upload-item/file-upload-item.ts","../../../../libs/core/file-upload/src/lib/file-upload-item/file-upload-item.html","../../../../libs/core/file-upload/src/lib/file-upload/file-upload.ts","../../../../libs/core/file-upload/src/lib/file-upload/file-upload.html","../../../../libs/core/file-upload/src/malva-ui-core-file-upload.ts"],"sourcesContent":["import { Directive, input } from '@angular/core';\n\n/** Which side of the browse button a `[mlvFileUploadAction]` control renders on. */\nexport type MlvFileUploadActionPosition = 'start' | 'end';\n\n/**\n * Marks a projected control as an extra action in the drop zone's action row,\n * next to the built-in browse button. Typical use is an icon-only button that\n * offers an alternative to picking a file — \"generate with AI\", \"pick from\n * library\", \"use camera\".\n *\n * `position` is matched by the component's `<ng-content>` selectors, so it must\n * be written as a **static attribute** (`position=\"end\"`), exactly like the\n * other Malva UI slot markers. A binding (`[position]=\"…\"`) changes the\n * directive's signal but cannot move the node between projection slots.\n * DOM order equals visual order — nothing is reordered with CSS `order` — so\n * the tab sequence always matches what the user sees.\n *\n * Clicks (including Enter/Space activation of a projected `<button>`) stop at\n * the slot, so an extra action never also triggers the surrounding zone and\n * opens the native file picker.\n *\n * Disabling a projected control is the consumer's job: `mlv-file-upload` only\n * dims the zone and blocks pointer events while the control itself is\n * disabled, it does not write `disabled` onto projected content.\n *\n * @example\n * ```html\n * <mlv-file-upload title=\"Image\" actionLabel=\"Choose image\">\n * <button mlvButton mlvFileUploadAction type=\"button\" shape=\"square\"\n * aria-label=\"Generate image with AI\">\n * <svg lucideSparkles [size]=\"16\" />\n * </button>\n * </mlv-file-upload>\n *\n * <mlv-file-upload actionLabel=\"Choose image\">\n * <button mlvButton mlvFileUploadAction position=\"end\" type=\"button\"\n * variant=\"transparent\">\n * Import from URL\n * </button>\n * </mlv-file-upload>\n * ```\n */\n@Directive({\n selector: '[mlvFileUploadAction]',\n host: {\n class: 'mlv-file-upload__action',\n '[class.mlv-file-upload__action--end]': \"position() === 'end'\",\n '(click)': '$event.stopPropagation()',\n },\n})\nexport class MlvFileUploadAction {\n /**\n * Where the action sits relative to the browse button. `'start'` (the\n * default) renders it before the button, `'end'` after it.\n *\n * Set it as a static attribute — `position=\"end\"` — because the value is\n * read by the host component's content-projection selector, not at runtime.\n */\n readonly position = input<MlvFileUploadActionPosition>('start');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MlvLoader } from '@malva-ui/core/loader';\nimport { LucideFile, LucideCircleCheck, LucideCircleX } from '@lucide/angular';\nimport { MLV_FILE_UPLOAD_I18N, MlvI18nResolverService } from '@malva-ui/i18n';\nimport type { MlvUploadedFile } from '../file-upload/file-upload.types';\nimport { MlvButtonClose } from '@malva-ui/core/button';\nimport { MlvClick } from '@malva-ui/cdk/accessibility';\n\n/**\n * Renders a single uploaded file row with thumbnail, metadata, progress bar,\n * status icon, and a remove button.\n */\n@Component({\n selector: 'mlv-file-upload-item',\n templateUrl: './file-upload-item.html',\n styleUrl: './file-upload-item.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MlvLoader,\n LucideFile,\n LucideCircleCheck,\n LucideCircleX,\n MlvButtonClose,\n MlvClick,\n ],\n host: {\n class: 'mlv-file-upload-item',\n '[class.mlv-file-upload-item--uploading]': 'file().state === \"uploading\"',\n '[class.mlv-file-upload-item--success]': 'file().state === \"success\"',\n '[class.mlv-file-upload-item--error]': 'file().state === \"error\"',\n },\n})\nexport class MlvFileUploadItem {\n /** @protected Injected i18n translations for the file upload. */\n protected readonly _i18n = inject(MLV_FILE_UPLOAD_I18N);\n\n /** @private ICU MessageFormat resolver for parameterised i18n strings. */\n private readonly _resolver = inject(MlvI18nResolverService);\n\n /** The uploaded file descriptor to render. */\n readonly file = input.required<MlvUploadedFile>();\n\n /**\n * @protected Accessible label for the remove button, naming the specific file\n * (e.g. `\"Remove report.xlsx\"`) so screen-reader users know which file the\n * button removes. Resolves the `removeFile` ICU template with the file name.\n */\n protected readonly _removeLabel = computed(() =>\n this._resolver.resolve(\n this._i18n() as unknown as Record<string, string>,\n 'removeFile',\n { name: this.file().name },\n ),\n );\n\n /** Emits when the user clicks the remove button. */\n readonly remove = output<void>();\n\n /** @protected Human-readable file size string (e.g. \"1.2 MB\"). */\n protected readonly _formattedSize = computed(() => {\n const bytes = this.file().size;\n if (bytes < 1024) return `${bytes} B`;\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;\n return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n });\n\n /** @protected Whether to show the progress bar. */\n protected readonly _showProgress = computed(\n () => this.file().state === 'uploading',\n );\n\n /** @protected Current progress value for the loader bar. */\n protected readonly _progress = computed(() => this.file().progress ?? 0);\n}\n","<div class=\"mlv-file-upload-item__thumbnail\">\n @if (file().previewUrl) {\n <img\n [src]=\"file().previewUrl\"\n [alt]=\"file().name\"\n class=\"mlv-file-upload-item__thumbnail-img\"\n />\n } @else {\n <svg lucideFile [size]=\"20\" aria-hidden=\"true\" />\n }\n</div>\n\n<div class=\"mlv-file-upload-item__info\">\n <span class=\"mlv-file-upload-item__name\" [title]=\"file().name\"\n >{{ file().name }}</span\n >\n\n @if (file().error) {\n <span class=\"mlv-file-upload-item__meta mlv-file-upload-item__meta--error\">\n {{ file().error!.message }}\n </span>\n } @else {\n <span class=\"mlv-file-upload-item__meta\">{{ _formattedSize() }}</span>\n } @if (_showProgress()) {\n <mlv-loader\n class=\"mlv-file-upload-item__progress\"\n variant=\"bar\"\n [value]=\"_progress()\"\n [size]=\"3\"\n [ariaLabel]=\"'Uploading ' + file().name + ', ' + _progress() + '%'\"\n />\n }\n</div>\n\n<div class=\"mlv-file-upload-item__actions\">\n @if (file().state === 'success') {\n <svg\n lucideCircleCheck\n class=\"mlv-file-upload-item__status-icon mlv-file-upload-item__status-icon--success\"\n [size]=\"18\"\n [attr.aria-label]=\"_i18n().uploadComplete\"\n role=\"img\"\n />\n } @if (file().state === 'error') {\n <svg\n lucideCircleX\n class=\"mlv-file-upload-item__status-icon mlv-file-upload-item__status-icon--error\"\n [size]=\"18\"\n [attr.aria-label]=\"_i18n().uploadFailed\"\n role=\"img\"\n />\n }\n\n <mlv-button-close\n class=\"mlv-file-upload-item__remove\"\n mlvDensity=\"compact\"\n [ariaLabel]=\"_removeLabel()\"\n (click)=\"remove.emit()\"\n ></mlv-button-close>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n model,\n output,\n signal,\n viewChild,\n ElementRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { MlvSignalFormControlBase } from '@malva-ui/core/form-utils';\nimport { mlvNextId } from '@malva-ui/cdk/utils';\nimport { MlvButton } from '@malva-ui/core/button';\nimport { MlvLoader } from '@malva-ui/core/loader';\nimport { LucideRefreshCw, LucideTrash2, LucideUpload } from '@lucide/angular';\nimport type { MlvFileUploadI18n } from '@malva-ui/i18n';\nimport { MLV_FILE_UPLOAD_I18N, MlvI18nResolverService } from '@malva-ui/i18n';\nimport { MlvFileUploadItem } from '../file-upload-item/file-upload-item';\nimport type {\n MlvFileUploadPreviewMode,\n MlvFileValidationError,\n MlvUploadedFile,\n} from './file-upload.types';\n\n/**\n * File upload component providing a drag-and-drop zone, file validation, and\n * signal, reactive, and template-driven forms integration. Produces an array\n * of `MlvUploadedFile` values.\n */\n@Component({\n selector: 'mlv-file-upload',\n templateUrl: './file-upload.html',\n styleUrl: './file-upload.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MlvButton,\n MlvFileUploadItem,\n MlvLoader,\n LucideUpload,\n LucideRefreshCw,\n LucideTrash2,\n ],\n host: {\n class: 'mlv-file-upload',\n // `title` is the zone's heading, not a tooltip. Written as a static\n // attribute (`title=\"Image\"`) it also lands in the DOM, which gives the\n // whole zone a native browser tooltip repeating the heading — so strip it.\n '[attr.title]': 'null',\n '[class.mlv-file-upload--cover]': '_isCover()',\n '[class.mlv-file-upload--drag-over]': '_isDragOver()',\n '[class.mlv-file-upload--disabled]': 'computedDisabled()',\n '[class.mlv-file-upload--error]': '_errors().length > 0',\n '[class.mlv-file-upload--multiple]': 'multiple()',\n '[class.mlv-file-upload--has-files]': '_files().length > 0',\n '[class.mlv-file-upload--compact]': 'compact()',\n '(dragover)': '_onDragOver($event)',\n '(dragleave)': '_onDragLeave($event)',\n '(drop)': '_onDrop($event)',\n '(focusout)': '_markTouched()',\n },\n})\nexport class MlvFileUpload extends MlvSignalFormControlBase<MlvUploadedFile[]> {\n /** The uploaded-file list used by all Angular forms APIs. */\n readonly value = model<MlvUploadedFile[]>([]);\n /** @protected Injected i18n translations for the file upload. */\n protected readonly _i18n = inject(MLV_FILE_UPLOAD_I18N);\n\n /** @private ICU MessageFormat resolver for the parameterised rejection messages. */\n private readonly _resolver = inject(MlvI18nResolverService);\n\n /** Comma-separated list of accepted MIME types or file extensions (e.g. `\"image/*,.pdf\"`). */\n readonly accept = input<string>('');\n\n /**\n * Maximum allowed file size in bytes. `0` means unlimited.\n */\n readonly maxSize = input<number>(0);\n\n /** Whether to allow selecting multiple files. */\n readonly multiple = input<boolean, BooleanInput>(true, {\n transform: coerceBooleanProperty,\n });\n\n /** Primary heading text shown in the drop zone. */\n readonly title = input<string>('Drag & drop files here');\n\n /** Secondary description text shown below the title. */\n readonly subtitle = input<string>('');\n\n /** Label text for the browse button. */\n readonly actionLabel = input<string>('Browse files');\n\n /** When true, renders a compact single-row drop zone instead of the full zone. */\n readonly compact = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * How the zone presents the current selection.\n *\n * `'list'` (the default) keeps today's behaviour: the prompt and browse\n * button always show, and selected files are listed below the zone.\n *\n * `'cover'` fills the zone with the selected image and swaps the browse\n * button for a floating replace/remove toolbar. It only takes effect when\n * **all** of these hold, and silently falls back to `'list'` otherwise:\n *\n * 1. `multiple` is `false`,\n * 2. exactly one file is selected, and\n * 3. that file carries a `previewUrl`.\n *\n * `previewUrl` is generated automatically for any dropped/picked file whose\n * MIME type starts with `image/`. For an edit-mode seed, write it yourself —\n * it accepts a remote `https://…` or a `data:` URL just as happily as the\n * generated `blob:` one.\n */\n readonly previewMode = input<MlvFileUploadPreviewMode>('list');\n\n /** Emits the current file list whenever files are added or removed. */\n readonly filesChange = output<MlvUploadedFile[]>();\n\n /** @private List of selected/uploaded files managed by the component. */\n protected readonly _files = computed(() => this.value() ?? []);\n\n /** @private Validation errors from the last file selection or drop. */\n protected readonly _errors = signal<MlvFileValidationError[]>([]);\n\n /** @private Whether the user is currently dragging files over the drop zone. */\n protected readonly _isDragOver = signal(false);\n\n /** @private Reference to the hidden file input element. */\n private readonly _fileInput =\n viewChild<ElementRef<HTMLInputElement>>('fileInput');\n\n /** @private Reference to the host element for dragleave boundary detection. */\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n\n /** @protected Computed list of files exposed to the template. */\n protected readonly _fileList = computed(() => this._files());\n\n // Cover preview ----------------------------------------------------------------\n\n /**\n * @protected The single file rendered as a full-zone cover, or `null` when\n * the cover preconditions are not met (see `previewMode`) and the zone falls\n * back to the normal prompt.\n */\n protected readonly _coverFile = computed<MlvUploadedFile | null>(() => {\n if (this.previewMode() !== 'cover' || this.multiple()) return null;\n const files = this._files();\n if (files.length !== 1) return null;\n return files[0].previewUrl ? files[0] : null;\n });\n\n /** @protected Whether the zone currently renders the cover preview. */\n protected readonly _isCover = computed(() => this._coverFile() !== null);\n\n /**\n * @protected Whether the covered file is still uploading, which overlays a\n * determinate progress bar on the image instead of falling back to list mode.\n */\n protected readonly _coverUploading = computed(() => {\n const file = this._coverFile();\n return (\n file !== null && file.state === 'uploading' && (file.progress ?? 0) < 100\n );\n });\n\n /**\n * @protected Accessible name for the cover toolbar's remove button, with the\n * covered file's name interpolated into the shared `removeFile` template.\n */\n protected readonly _coverRemoveLabel = computed(() => {\n const file = this._coverFile();\n return file ? this._translate('removeFile', { name: file.name }) : '';\n });\n\n // Forms value ------------------------------------------------------------------\n\n /** Whether the control holds a clearable value — At least one file present. */\n readonly hasValue = computed(() => this._files().length > 0);\n\n // Public API -------------------------------------------------------------------\n\n /**\n * Programmatically opens the native file picker dialog.\n */\n openFilePicker(): void {\n if (this.computedDisabled()) return;\n this._fileInput()?.nativeElement.click();\n }\n\n /**\n * Handles changes from the hidden file input element.\n * @param event - The native change event from the input.\n */\n onFileInputChange(event: Event): void {\n const input = event.target as HTMLInputElement;\n if (input.files) {\n this._validateAndAdd(input.files);\n }\n // Reset so the same file can be re-selected\n input.value = '';\n }\n\n /**\n * Removes a file by its id, revoking the preview URL if present.\n * @param id - The id of the `MlvUploadedFile` to remove.\n */\n removeFile(id: string): void {\n const target = this._files().find((f) => f.id === id);\n if (target?.previewUrl) {\n URL.revokeObjectURL(target.previewUrl);\n }\n this.value.update((files) =>\n (files ?? []).filter((file) => file.id !== id),\n );\n this._emitChange();\n }\n\n // Internal helpers -------------------------------------------------------------\n\n /**\n * @private Handles the dragover event to enable the drag-over state.\n */\n protected _onDragOver(event: DragEvent): void {\n event.preventDefault();\n if (!this.computedDisabled()) {\n this._isDragOver.set(true);\n }\n }\n\n /**\n * @private Handles the dragleave event to clear drag-over state when leaving the host.\n */\n protected _onDragLeave(event: DragEvent): void {\n if (!this._elementRef.nativeElement.contains(event.relatedTarget as Node)) {\n this._isDragOver.set(false);\n }\n }\n\n /**\n * @private Handles the drop event, reads dropped files and validates them.\n */\n protected _onDrop(event: DragEvent): void {\n event.preventDefault();\n this._isDragOver.set(false);\n if (this.computedDisabled()) return;\n const dt = event.dataTransfer;\n if (dt?.files) {\n this._validateAndAdd(dt.files);\n }\n }\n\n /**\n * @private Validates a FileList against accept/maxSize constraints and appends valid files.\n */\n private _validateAndAdd(fileList: FileList): void {\n const newErrors: MlvFileValidationError[] = [];\n const newFiles: MlvUploadedFile[] = [];\n const acceptedTypes = this._parseAccept();\n\n Array.from(fileList).forEach((file) => {\n // Count check\n if (!this.multiple() && this._files().length + newFiles.length >= 1) {\n newErrors.push({\n code: 'count',\n message: this._i18n().errorSingleFile,\n });\n return;\n }\n\n // Type check\n if (\n acceptedTypes.length > 0 &&\n !this._isTypeAccepted(file, acceptedTypes)\n ) {\n newErrors.push({\n code: 'type',\n message: this._translate('errorFileType', { name: file.name }),\n });\n return;\n }\n\n // Size check\n const maxBytes = this.maxSize();\n if (maxBytes > 0 && file.size > maxBytes) {\n const maxMb = (maxBytes / (1024 * 1024)).toFixed(1);\n newErrors.push({\n code: 'size',\n message: this._translate('errorFileSize', {\n name: file.name,\n size: maxMb,\n }),\n });\n return;\n }\n\n const isImage = file.type.startsWith('image/');\n const uploadedFile: MlvUploadedFile = {\n id: mlvNextId('mlv-file'),\n file,\n name: file.name,\n size: file.size,\n previewUrl: isImage ? URL.createObjectURL(file) : undefined,\n state: 'pending',\n progress: 0,\n };\n newFiles.push(uploadedFile);\n });\n\n this._errors.set(newErrors);\n\n if (newFiles.length > 0) {\n if (this.multiple()) {\n this.value.update((previous) => [...(previous ?? []), ...newFiles]);\n } else {\n // Replace previous file when multiple is false\n const previous = this._files();\n previous.forEach((f) => {\n if (f.previewUrl) URL.revokeObjectURL(f.previewUrl);\n });\n this.value.set(newFiles);\n }\n this._emitChange();\n }\n }\n\n /**\n * @private Resolves one of the component's ICU rejection templates with the\n * offending file's details. Keeps every user-facing validation string in the\n * language pack instead of hard-coded English.\n */\n private _translate(\n key: keyof MlvFileUploadI18n,\n params: Record<string, string>,\n ): string {\n return this._resolver.resolve(\n this._i18n() as unknown as Record<string, string>,\n key,\n params,\n );\n }\n\n /**\n * @private Parses the accept input into a list of accepted MIME prefixes and extensions.\n */\n private _parseAccept(): string[] {\n const raw = this.accept().trim();\n if (!raw) return [];\n return raw.split(',').map((s) => s.trim().toLowerCase());\n }\n\n /**\n * @private Checks whether a file matches the accepted type list.\n */\n private _isTypeAccepted(file: File, accepted: string[]): boolean {\n return accepted.some((pattern) => {\n if (pattern.startsWith('.')) {\n return file.name.toLowerCase().endsWith(pattern);\n }\n if (pattern.endsWith('/*')) {\n return file.type.startsWith(pattern.slice(0, -1));\n }\n return file.type === pattern;\n });\n }\n\n /**\n * @private Emits the current file list through the public change output.\n */\n private _emitChange(): void {\n this.filesChange.emit(this._files());\n }\n}\n","<input\n #fileInput\n class=\"mlv-file-upload__input\"\n type=\"file\"\n [accept]=\"accept()\"\n [multiple]=\"multiple()\"\n [disabled]=\"computedDisabled()\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n (change)=\"onFileInputChange($event)\"\n/>\n\n<!-- Drop zone: visually interactive drag target.\n The inner <button type=\"button\"> is the sole keyboard/AT entry point. -->\n<div class=\"mlv-file-upload__zone\">\n @if (_coverFile(); as cover) {\n <!-- Cover preview: the image fills the zone, which stays the drop target.\n Plain <img>, not NgOptimizedImage — the source is a runtime blob:/data:/\n remote URL of unknown intrinsic size. -->\n <img\n class=\"mlv-file-upload__cover-image\"\n [src]=\"cover.previewUrl\"\n [alt]=\"cover.name\"\n />\n\n @if (_coverUploading()) {\n <mlv-loader\n class=\"mlv-file-upload__cover-progress\"\n variant=\"bar\"\n [value]=\"cover.progress ?? 0\"\n />\n } } @else {\n <span class=\"mlv-file-upload__zone-icon\" aria-hidden=\"true\">\n <svg lucideUpload [size]=\"compact() ? 18 : 28\" />\n </span>\n\n <!-- Title is always in the DOM to serve as aria-describedby anchor;\n hidden visually in compact mode via CSS. -->\n <span\n [id]=\"id() + '-title'\"\n class=\"mlv-file-upload__zone-title\"\n [class.mlv-file-upload__zone-title--hidden]=\"compact()\"\n >{{ title() }}</span\n >\n\n @if (subtitle() && !compact()) {\n <span [id]=\"id() + '-subtitle'\" class=\"mlv-file-upload__zone-subtitle\"\n >{{ subtitle() }}</span\n >\n } }\n\n <!-- One actions container, two presentations. It is the inline action row in\n list mode and the floating toolbar over the cover image. The two\n <ng-content> slots MUST stay outside the @if branches: Angular assigns a\n projected node to the first slot whose selector matches, so duplicating\n a selector across branches leaves the later copy permanently empty.\n DOM order equals visual order, and `position` is read as a static\n attribute here, never as a binding. -->\n <span\n [class.mlv-file-upload__zone-action]=\"!_isCover()\"\n [class.mlv-file-upload__toolbar]=\"_isCover()\"\n >\n <ng-content select=\"[mlvFileUploadAction]:not([position=end])\" />\n\n @if (_isCover()) {\n <button\n mlvButton\n type=\"button\"\n shape=\"square\"\n variant=\"transparent\"\n [disabled]=\"computedDisabled()\"\n [attr.aria-label]=\"_i18n().replaceFile\"\n (click)=\"$event.stopPropagation(); openFilePicker()\"\n >\n <svg lucideRefreshCw [size]=\"16\" />\n </button>\n } @else {\n <button\n mlvButton\n type=\"button\"\n variant=\"secondary\"\n [disabled]=\"computedDisabled()\"\n [attr.aria-describedby]=\"subtitle() && !compact() ? id() + '-title ' + id() + '-subtitle' : id() + '-title'\"\n (click)=\"$event.stopPropagation(); openFilePicker()\"\n >\n {{ actionLabel() }}\n </button>\n }\n\n <ng-content select=\"[mlvFileUploadAction][position=end]\" />\n\n @if (_coverFile(); as cover) {\n <button\n mlvButton\n type=\"button\"\n shape=\"square\"\n variant=\"transparent\"\n [disabled]=\"computedDisabled()\"\n [attr.aria-label]=\"_coverRemoveLabel()\"\n (click)=\"$event.stopPropagation(); removeFile(cover.id)\"\n >\n <svg lucideTrash2 [size]=\"16\" />\n </button>\n }\n </span>\n</div>\n\n@if (_errors().length > 0) {\n<ul class=\"mlv-file-upload__errors\" role=\"alert\" aria-live=\"assertive\">\n @for (err of _errors(); track err.code + err.message) {\n <li class=\"mlv-file-upload__error-item\">{{ err.message }}</li>\n }\n</ul>\n}\n<!-- In cover state the single file's row would only repeat the image and its\n remove control, both of which the cover toolbar already provides. -->\n@if (_fileList().length > 0 && !_isCover()) {\n<ul\n class=\"mlv-file-upload__list\"\n [attr.aria-label]=\"_i18n().selectedFiles\"\n aria-live=\"polite\"\n>\n @for (file of _fileList(); track file.id) {\n <li>\n <mlv-file-upload-item\n class=\"mlv-file-upload-item--entering\"\n [file]=\"file\"\n (remove)=\"removeFile(file.id)\"\n />\n </li>\n }\n</ul>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}