@malva-ui/core 0.1.12 → 0.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1619) hide show
  1. package/AGENTS.md +4 -1
  2. package/LICENSE +21 -0
  3. package/README.md +69 -3
  4. package/docs/ai/avatar.md +2 -0
  5. package/docs/ai/breadcrumb.md +67 -7
  6. package/docs/ai/button.md +74 -19
  7. package/docs/ai/card.md +8 -6
  8. package/docs/ai/chat.md +59 -45
  9. package/docs/ai/checkbox.md +12 -0
  10. package/docs/ai/combobox.md +18 -2
  11. package/docs/ai/copy-to-clipboard.md +1 -1
  12. package/docs/ai/core.md +15 -0
  13. package/docs/ai/data-table.md +89 -54
  14. package/docs/ai/dialog.md +76 -67
  15. package/docs/ai/drawer.md +15 -12
  16. package/docs/ai/dropdown.md +24 -19
  17. package/docs/ai/empty-state.md +3 -3
  18. package/docs/ai/filter.md +24 -5
  19. package/docs/ai/form-utils.md +160 -5
  20. package/docs/ai/icon-toggle.md +160 -0
  21. package/docs/ai/input.md +30 -0
  22. package/docs/ai/layout.md +23 -0
  23. package/docs/ai/list.md +10 -6
  24. package/docs/ai/menu.md +75 -1
  25. package/docs/ai/page.md +220 -60
  26. package/docs/ai/radio.md +9 -0
  27. package/docs/ai/scrollbar.md +30 -8
  28. package/docs/ai/segmented.md +35 -35
  29. package/docs/ai/select.md +30 -5
  30. package/docs/ai/sidebar.md +45 -27
  31. package/docs/ai/switch.md +114 -19
  32. package/docs/ai/table.md +69 -0
  33. package/docs/ai/tabs.md +2 -1
  34. package/docs/ai/tile.md +311 -85
  35. package/docs/ai/timeline.md +63 -39
  36. package/docs/ai/tokenizer.md +21 -5
  37. package/docs/ai/tooltip.md +5 -5
  38. package/docs/ai/view-variant.md +75 -0
  39. package/fesm2022/malva-ui-core-accordion.mjs +167 -0
  40. package/fesm2022/malva-ui-core-accordion.mjs.map +1 -0
  41. package/fesm2022/malva-ui-core-action-bar.mjs +111 -0
  42. package/fesm2022/malva-ui-core-action-bar.mjs.map +1 -0
  43. package/fesm2022/malva-ui-core-alert.mjs +173 -0
  44. package/fesm2022/malva-ui-core-alert.mjs.map +1 -0
  45. package/fesm2022/malva-ui-core-autocomplete.mjs +775 -0
  46. package/fesm2022/malva-ui-core-autocomplete.mjs.map +1 -0
  47. package/fesm2022/malva-ui-core-avatar-group.mjs +224 -0
  48. package/fesm2022/malva-ui-core-avatar-group.mjs.map +1 -0
  49. package/fesm2022/malva-ui-core-avatar.mjs +247 -0
  50. package/fesm2022/malva-ui-core-avatar.mjs.map +1 -0
  51. package/fesm2022/malva-ui-core-badge.mjs +122 -0
  52. package/fesm2022/malva-ui-core-badge.mjs.map +1 -0
  53. package/fesm2022/malva-ui-core-bottom-nav.mjs +161 -0
  54. package/fesm2022/malva-ui-core-bottom-nav.mjs.map +1 -0
  55. package/fesm2022/malva-ui-core-breadcrumb.mjs +494 -0
  56. package/fesm2022/malva-ui-core-breadcrumb.mjs.map +1 -0
  57. package/fesm2022/malva-ui-core-button.mjs +406 -0
  58. package/fesm2022/malva-ui-core-button.mjs.map +1 -0
  59. package/fesm2022/malva-ui-core-calendar.mjs +938 -0
  60. package/fesm2022/malva-ui-core-calendar.mjs.map +1 -0
  61. package/fesm2022/malva-ui-core-card.mjs +164 -0
  62. package/fesm2022/malva-ui-core-card.mjs.map +1 -0
  63. package/fesm2022/malva-ui-core-chat.mjs +825 -0
  64. package/fesm2022/malva-ui-core-chat.mjs.map +1 -0
  65. package/fesm2022/malva-ui-core-checkbox.mjs +272 -0
  66. package/fesm2022/malva-ui-core-checkbox.mjs.map +1 -0
  67. package/fesm2022/malva-ui-core-chip.mjs +176 -0
  68. package/fesm2022/malva-ui-core-chip.mjs.map +1 -0
  69. package/fesm2022/malva-ui-core-color-picker.mjs +1204 -0
  70. package/fesm2022/malva-ui-core-color-picker.mjs.map +1 -0
  71. package/fesm2022/malva-ui-core-combobox.mjs +945 -0
  72. package/fesm2022/malva-ui-core-combobox.mjs.map +1 -0
  73. package/fesm2022/malva-ui-core-copy-to-clipboard.mjs +255 -0
  74. package/fesm2022/malva-ui-core-copy-to-clipboard.mjs.map +1 -0
  75. package/fesm2022/malva-ui-core-data-table.mjs +2696 -0
  76. package/fesm2022/malva-ui-core-data-table.mjs.map +1 -0
  77. package/fesm2022/malva-ui-core-date-range-picker.mjs +276 -0
  78. package/fesm2022/malva-ui-core-date-range-picker.mjs.map +1 -0
  79. package/fesm2022/malva-ui-core-day-picker.mjs +131 -0
  80. package/fesm2022/malva-ui-core-day-picker.mjs.map +1 -0
  81. package/fesm2022/malva-ui-core-dialog-routable-dialog-CvjXMtlD.mjs +94 -0
  82. package/fesm2022/malva-ui-core-dialog-routable-dialog-CvjXMtlD.mjs.map +1 -0
  83. package/fesm2022/malva-ui-core-dialog.mjs +1223 -0
  84. package/fesm2022/malva-ui-core-dialog.mjs.map +1 -0
  85. package/fesm2022/malva-ui-core-divider.mjs +80 -0
  86. package/fesm2022/malva-ui-core-divider.mjs.map +1 -0
  87. package/fesm2022/malva-ui-core-drawer-routable-drawer-qUk6Etnx.mjs +94 -0
  88. package/fesm2022/malva-ui-core-drawer-routable-drawer-qUk6Etnx.mjs.map +1 -0
  89. package/fesm2022/malva-ui-core-drawer.mjs +814 -0
  90. package/fesm2022/malva-ui-core-drawer.mjs.map +1 -0
  91. package/fesm2022/malva-ui-core-dropdown.mjs +994 -0
  92. package/fesm2022/malva-ui-core-dropdown.mjs.map +1 -0
  93. package/fesm2022/malva-ui-core-empty-state.mjs +50 -0
  94. package/fesm2022/malva-ui-core-empty-state.mjs.map +1 -0
  95. package/fesm2022/malva-ui-core-expand.mjs +130 -0
  96. package/fesm2022/malva-ui-core-expand.mjs.map +1 -0
  97. package/fesm2022/malva-ui-core-file-upload.mjs +451 -0
  98. package/fesm2022/malva-ui-core-file-upload.mjs.map +1 -0
  99. package/fesm2022/malva-ui-core-filter.mjs +1627 -0
  100. package/fesm2022/malva-ui-core-filter.mjs.map +1 -0
  101. package/fesm2022/malva-ui-core-form-utils-testing.mjs +39 -0
  102. package/fesm2022/malva-ui-core-form-utils-testing.mjs.map +1 -0
  103. package/fesm2022/malva-ui-core-form-utils.mjs +977 -0
  104. package/fesm2022/malva-ui-core-form-utils.mjs.map +1 -0
  105. package/fesm2022/malva-ui-core-form.mjs +283 -0
  106. package/fesm2022/malva-ui-core-form.mjs.map +1 -0
  107. package/fesm2022/malva-ui-core-icon-toggle.mjs +120 -0
  108. package/fesm2022/malva-ui-core-icon-toggle.mjs.map +1 -0
  109. package/fesm2022/malva-ui-core-input.mjs +375 -0
  110. package/fesm2022/malva-ui-core-input.mjs.map +1 -0
  111. package/fesm2022/malva-ui-core-kbd.mjs +131 -0
  112. package/fesm2022/malva-ui-core-kbd.mjs.map +1 -0
  113. package/fesm2022/malva-ui-core-layout.mjs +212 -0
  114. package/fesm2022/malva-ui-core-layout.mjs.map +1 -0
  115. package/fesm2022/malva-ui-core-link.mjs +89 -0
  116. package/fesm2022/malva-ui-core-link.mjs.map +1 -0
  117. package/fesm2022/malva-ui-core-list.mjs +413 -0
  118. package/fesm2022/malva-ui-core-list.mjs.map +1 -0
  119. package/fesm2022/malva-ui-core-loader.mjs +141 -0
  120. package/fesm2022/malva-ui-core-loader.mjs.map +1 -0
  121. package/fesm2022/malva-ui-core-menu.mjs +2540 -0
  122. package/fesm2022/malva-ui-core-menu.mjs.map +1 -0
  123. package/fesm2022/malva-ui-core-notification.mjs +201 -0
  124. package/fesm2022/malva-ui-core-notification.mjs.map +1 -0
  125. package/fesm2022/malva-ui-core-number-input.mjs +404 -0
  126. package/fesm2022/malva-ui-core-number-input.mjs.map +1 -0
  127. package/fesm2022/malva-ui-core-page.mjs +1898 -0
  128. package/fesm2022/malva-ui-core-page.mjs.map +1 -0
  129. package/fesm2022/malva-ui-core-pagination.mjs +458 -0
  130. package/fesm2022/malva-ui-core-pagination.mjs.map +1 -0
  131. package/fesm2022/malva-ui-core-pin-input.mjs +405 -0
  132. package/fesm2022/malva-ui-core-pin-input.mjs.map +1 -0
  133. package/fesm2022/malva-ui-core-popup.mjs +1488 -0
  134. package/fesm2022/malva-ui-core-popup.mjs.map +1 -0
  135. package/fesm2022/malva-ui-core-progress.mjs +109 -0
  136. package/fesm2022/malva-ui-core-progress.mjs.map +1 -0
  137. package/fesm2022/malva-ui-core-radio.mjs +317 -0
  138. package/fesm2022/malva-ui-core-radio.mjs.map +1 -0
  139. package/fesm2022/malva-ui-core-rating.mjs +236 -0
  140. package/fesm2022/malva-ui-core-rating.mjs.map +1 -0
  141. package/fesm2022/malva-ui-core-scrollbar.mjs +430 -0
  142. package/fesm2022/malva-ui-core-scrollbar.mjs.map +1 -0
  143. package/fesm2022/malva-ui-core-search-field.mjs +578 -0
  144. package/fesm2022/malva-ui-core-search-field.mjs.map +1 -0
  145. package/fesm2022/malva-ui-core-segmented.mjs +458 -0
  146. package/fesm2022/malva-ui-core-segmented.mjs.map +1 -0
  147. package/fesm2022/malva-ui-core-select.mjs +855 -0
  148. package/fesm2022/malva-ui-core-select.mjs.map +1 -0
  149. package/fesm2022/malva-ui-core-sidebar.mjs +1504 -0
  150. package/fesm2022/malva-ui-core-sidebar.mjs.map +1 -0
  151. package/fesm2022/malva-ui-core-skeleton.mjs +85 -0
  152. package/fesm2022/malva-ui-core-skeleton.mjs.map +1 -0
  153. package/fesm2022/malva-ui-core-slider.mjs +514 -0
  154. package/fesm2022/malva-ui-core-slider.mjs.map +1 -0
  155. package/fesm2022/malva-ui-core-split-pane.mjs +359 -0
  156. package/fesm2022/malva-ui-core-split-pane.mjs.map +1 -0
  157. package/fesm2022/malva-ui-core-status-indicator.mjs +78 -0
  158. package/fesm2022/malva-ui-core-status-indicator.mjs.map +1 -0
  159. package/fesm2022/malva-ui-core-stepper.mjs +332 -0
  160. package/fesm2022/malva-ui-core-stepper.mjs.map +1 -0
  161. package/fesm2022/malva-ui-core-switch.mjs +272 -0
  162. package/fesm2022/malva-ui-core-switch.mjs.map +1 -0
  163. package/fesm2022/malva-ui-core-table.mjs +79 -0
  164. package/fesm2022/malva-ui-core-table.mjs.map +1 -0
  165. package/fesm2022/malva-ui-core-tabs.mjs +794 -0
  166. package/fesm2022/malva-ui-core-tabs.mjs.map +1 -0
  167. package/fesm2022/malva-ui-core-textarea.mjs +201 -0
  168. package/fesm2022/malva-ui-core-textarea.mjs.map +1 -0
  169. package/fesm2022/malva-ui-core-tile.mjs +1404 -0
  170. package/fesm2022/malva-ui-core-tile.mjs.map +1 -0
  171. package/fesm2022/malva-ui-core-time-picker.mjs +533 -0
  172. package/fesm2022/malva-ui-core-time-picker.mjs.map +1 -0
  173. package/fesm2022/malva-ui-core-timeline.mjs +216 -0
  174. package/fesm2022/malva-ui-core-timeline.mjs.map +1 -0
  175. package/fesm2022/malva-ui-core-title.mjs +178 -0
  176. package/fesm2022/malva-ui-core-title.mjs.map +1 -0
  177. package/fesm2022/malva-ui-core-toast.mjs +749 -0
  178. package/fesm2022/malva-ui-core-toast.mjs.map +1 -0
  179. package/fesm2022/malva-ui-core-tokenizer.mjs +502 -0
  180. package/fesm2022/malva-ui-core-tokenizer.mjs.map +1 -0
  181. package/fesm2022/malva-ui-core-toolbar.mjs +141 -0
  182. package/fesm2022/malva-ui-core-toolbar.mjs.map +1 -0
  183. package/fesm2022/malva-ui-core-tooltip.mjs +432 -0
  184. package/fesm2022/malva-ui-core-tooltip.mjs.map +1 -0
  185. package/fesm2022/malva-ui-core-tree.mjs +505 -0
  186. package/fesm2022/malva-ui-core-tree.mjs.map +1 -0
  187. package/fesm2022/malva-ui-core-view-variant.mjs +292 -0
  188. package/fesm2022/malva-ui-core-view-variant.mjs.map +1 -0
  189. package/fesm2022/malva-ui-core.mjs +77 -0
  190. package/fesm2022/malva-ui-core.mjs.map +1 -0
  191. package/package.json +195 -156
  192. package/styles/malva-ui.css +253 -220
  193. package/styles/tokens.md +174 -173
  194. package/table/README.md +46 -0
  195. package/types/malva-ui-core-accordion.d.ts +121 -0
  196. package/types/malva-ui-core-action-bar.d.ts +82 -0
  197. package/types/malva-ui-core-alert.d.ts +131 -0
  198. package/types/malva-ui-core-autocomplete.d.ts +301 -0
  199. package/types/malva-ui-core-avatar-group.d.ts +119 -0
  200. package/types/malva-ui-core-avatar.d.ts +156 -0
  201. package/types/malva-ui-core-badge.d.ts +97 -0
  202. package/types/malva-ui-core-bottom-nav.d.ts +104 -0
  203. package/types/malva-ui-core-breadcrumb.d.ts +308 -0
  204. package/types/malva-ui-core-button.d.ts +194 -0
  205. package/types/malva-ui-core-calendar.d.ts +339 -0
  206. package/types/malva-ui-core-card.d.ts +88 -0
  207. package/types/malva-ui-core-chat.d.ts +375 -0
  208. package/types/malva-ui-core-checkbox.d.ts +158 -0
  209. package/types/malva-ui-core-chip.d.ts +128 -0
  210. package/types/malva-ui-core-color-picker.d.ts +442 -0
  211. package/types/malva-ui-core-combobox.d.ts +419 -0
  212. package/types/malva-ui-core-copy-to-clipboard.d.ts +148 -0
  213. package/types/malva-ui-core-data-table.d.ts +1074 -0
  214. package/types/malva-ui-core-date-range-picker.d.ts +149 -0
  215. package/types/malva-ui-core-day-picker.d.ts +55 -0
  216. package/types/malva-ui-core-dialog.d.ts +597 -0
  217. package/types/malva-ui-core-divider.d.ts +68 -0
  218. package/types/malva-ui-core-drawer.d.ts +333 -0
  219. package/types/malva-ui-core-dropdown.d.ts +592 -0
  220. package/types/malva-ui-core-empty-state.d.ts +37 -0
  221. package/types/malva-ui-core-expand.d.ts +102 -0
  222. package/types/malva-ui-core-file-upload.d.ts +267 -0
  223. package/types/malva-ui-core-filter.d.ts +552 -0
  224. package/types/malva-ui-core-form-utils-testing.d.ts +50 -0
  225. package/types/malva-ui-core-form-utils.d.ts +579 -0
  226. package/types/malva-ui-core-form.d.ts +176 -0
  227. package/types/malva-ui-core-icon-toggle.d.ts +80 -0
  228. package/types/malva-ui-core-input.d.ts +262 -0
  229. package/types/malva-ui-core-kbd.d.ts +56 -0
  230. package/types/malva-ui-core-layout.d.ts +70 -0
  231. package/types/malva-ui-core-link.d.ts +28 -0
  232. package/types/malva-ui-core-list.d.ts +252 -0
  233. package/types/malva-ui-core-loader.d.ts +89 -0
  234. package/types/malva-ui-core-menu.d.ts +954 -0
  235. package/types/malva-ui-core-notification.d.ts +122 -0
  236. package/types/malva-ui-core-number-input.d.ts +167 -0
  237. package/types/malva-ui-core-page.d.ts +799 -0
  238. package/types/malva-ui-core-pagination.d.ts +261 -0
  239. package/types/malva-ui-core-pin-input.d.ts +203 -0
  240. package/types/malva-ui-core-popup.d.ts +834 -0
  241. package/types/malva-ui-core-progress.d.ts +73 -0
  242. package/types/malva-ui-core-radio.d.ts +130 -0
  243. package/types/malva-ui-core-rating.d.ts +115 -0
  244. package/types/malva-ui-core-scrollbar.d.ts +203 -0
  245. package/types/malva-ui-core-search-field.d.ts +408 -0
  246. package/types/malva-ui-core-segmented.d.ts +206 -0
  247. package/types/malva-ui-core-select.d.ts +456 -0
  248. package/types/malva-ui-core-sidebar.d.ts +698 -0
  249. package/types/malva-ui-core-skeleton.d.ts +64 -0
  250. package/types/malva-ui-core-slider.d.ts +219 -0
  251. package/types/malva-ui-core-split-pane.d.ts +149 -0
  252. package/types/malva-ui-core-status-indicator.d.ts +65 -0
  253. package/types/malva-ui-core-stepper.d.ts +168 -0
  254. package/types/malva-ui-core-switch.d.ts +146 -0
  255. package/types/malva-ui-core-table.d.ts +37 -0
  256. package/types/malva-ui-core-tabs.d.ts +339 -0
  257. package/types/malva-ui-core-textarea.d.ts +79 -0
  258. package/types/malva-ui-core-tile.d.ts +373 -0
  259. package/types/malva-ui-core-time-picker.d.ts +141 -0
  260. package/types/malva-ui-core-timeline.d.ts +188 -0
  261. package/types/malva-ui-core-title.d.ts +66 -0
  262. package/types/malva-ui-core-toast.d.ts +432 -0
  263. package/types/malva-ui-core-tokenizer.d.ts +217 -0
  264. package/types/malva-ui-core-toolbar.d.ts +91 -0
  265. package/types/malva-ui-core-tooltip.d.ts +200 -0
  266. package/types/malva-ui-core-tree.d.ts +289 -0
  267. package/types/malva-ui-core-view-variant.d.ts +207 -0
  268. package/types/malva-ui-core.d.ts +72 -0
  269. package/view-variant/README.md +3 -0
  270. package/accordion/index.d.ts +0 -3
  271. package/accordion/lib/accordion/accordion.d.ts +0 -47
  272. package/accordion/lib/accordion-item/accordion-header.d.ts +0 -22
  273. package/accordion/lib/accordion-item/accordion-item.d.ts +0 -49
  274. package/accordion/malva-ui-core-accordion.d.ts +0 -5
  275. package/action-bar/index.d.ts +0 -4
  276. package/action-bar/lib/action-bar/action-bar.d.ts +0 -59
  277. package/action-bar/lib/action-bar/components/action-bar-actions.d.ts +0 -9
  278. package/action-bar/lib/action-bar/components/action-bar-logo.d.ts +0 -5
  279. package/action-bar/lib/action-bar/components/action-bar-spacer.d.ts +0 -5
  280. package/action-bar/malva-ui-core-action-bar.d.ts +0 -5
  281. package/alert/index.d.ts +0 -2
  282. package/alert/lib/alert/alert.d.ts +0 -84
  283. package/alert/lib/alert/alert.directives.d.ts +0 -44
  284. package/alert/malva-ui-core-alert.d.ts +0 -5
  285. package/autocomplete/index.d.ts +0 -1
  286. package/autocomplete/lib/autocomplete/autocomplete.d.ts +0 -296
  287. package/autocomplete/malva-ui-core-autocomplete.d.ts +0 -5
  288. package/avatar/index.d.ts +0 -2
  289. package/avatar/lib/avatar/avatar.d.ts +0 -125
  290. package/avatar/lib/color-from-text.pipe.d.ts +0 -21
  291. package/avatar/malva-ui-core-avatar.d.ts +0 -5
  292. package/avatar-group/index.d.ts +0 -1
  293. package/avatar-group/lib/avatar-group/avatar-group.d.ts +0 -115
  294. package/avatar-group/malva-ui-core-avatar-group.d.ts +0 -5
  295. package/badge/index.d.ts +0 -2
  296. package/badge/lib/badge/badge.d.ts +0 -59
  297. package/badge/lib/badge-icon.d.ts +0 -35
  298. package/badge/malva-ui-core-badge.d.ts +0 -5
  299. package/bottom-nav/index.d.ts +0 -1
  300. package/bottom-nav/lib/bottom-nav/bottom-nav.d.ts +0 -99
  301. package/bottom-nav/malva-ui-core-bottom-nav.d.ts +0 -5
  302. package/breadcrumb/index.d.ts +0 -5
  303. package/breadcrumb/lib/breadcrumb/breadcrumb-item-host.d.ts +0 -32
  304. package/breadcrumb/lib/breadcrumb/breadcrumb-item.d.ts +0 -41
  305. package/breadcrumb/lib/breadcrumb/breadcrumb-separator.d.ts +0 -31
  306. package/breadcrumb/lib/breadcrumb/breadcrumb.d.ts +0 -151
  307. package/breadcrumb/lib/breadcrumb/breadcrumb.types.d.ts +0 -26
  308. package/breadcrumb/malva-ui-core-breadcrumb.d.ts +0 -5
  309. package/button/index.d.ts +0 -7
  310. package/button/lib/button/button.d.ts +0 -61
  311. package/button/lib/button-close/button-close.d.ts +0 -24
  312. package/button/lib/button-group/button-group.d.ts +0 -21
  313. package/button/lib/button-split/button-split.d.ts +0 -21
  314. package/button/lib/button-toggle/button-toggle.d.ts +0 -33
  315. package/button/lib/button-variant.token.d.ts +0 -13
  316. package/button/lib/button.directives.d.ts +0 -14
  317. package/button/lib/button.types.d.ts +0 -8
  318. package/button/malva-ui-core-button.d.ts +0 -5
  319. package/calendar/index.d.ts +0 -3
  320. package/calendar/lib/calendar/calendar.d.ts +0 -182
  321. package/calendar/lib/date-provider/date-adapter.d.ts +0 -92
  322. package/calendar/lib/date-provider/native-date-adapter.d.ts +0 -60
  323. package/calendar/malva-ui-core-calendar.d.ts +0 -5
  324. package/card/index.d.ts +0 -5
  325. package/card/lib/card/card.d.ts +0 -43
  326. package/card/lib/card-actions-def.d.ts +0 -10
  327. package/card/lib/card-footer-def.d.ts +0 -13
  328. package/card/lib/card-header-def.d.ts +0 -10
  329. package/card/lib/card-subheader-def.d.ts +0 -16
  330. package/card/malva-ui-core-card.d.ts +0 -5
  331. package/chat/index.d.ts +0 -9
  332. package/chat/lib/chat/chat.d.ts +0 -133
  333. package/chat/lib/chat-audio/chat-audio.d.ts +0 -51
  334. package/chat/lib/chat-audio/chat-audio.service.d.ts +0 -21
  335. package/chat/lib/chat-date/chat-date.d.ts +0 -16
  336. package/chat/lib/chat-format.d.ts +0 -5
  337. package/chat/lib/chat-media-grid/chat-media-grid.d.ts +0 -32
  338. package/chat/lib/chat-message/chat-message.d.ts +0 -45
  339. package/chat/lib/chat-render-list.d.ts +0 -16
  340. package/chat/lib/chat-tokens.d.ts +0 -25
  341. package/chat/lib/chat-typing/chat-typing.d.ts +0 -16
  342. package/chat/lib/chat.types.d.ts +0 -80
  343. package/chat/lib/defs/chat-author-def.d.ts +0 -30
  344. package/chat/lib/defs/chat-date-def.d.ts +0 -22
  345. package/chat/lib/defs/chat-message-def.d.ts +0 -23
  346. package/chat/malva-ui-core-chat.d.ts +0 -5
  347. package/checkbox/index.d.ts +0 -3
  348. package/checkbox/lib/checkbox/checkbox.d.ts +0 -129
  349. package/checkbox/lib/checkbox-group/checkbox-group.d.ts +0 -24
  350. package/checkbox/lib/checkbox-group-token.d.ts +0 -6
  351. package/checkbox/malva-ui-core-checkbox.d.ts +0 -5
  352. package/chip/index.d.ts +0 -2
  353. package/chip/lib/chip/chip.d.ts +0 -107
  354. package/chip/lib/chip/chip.directives.d.ts +0 -18
  355. package/chip/malva-ui-core-chip.d.ts +0 -5
  356. package/color-picker/index.d.ts +0 -3
  357. package/color-picker/lib/color-picker/color-picker.d.ts +0 -188
  358. package/color-picker/lib/color-picker-popup/color-picker-popup.d.ts +0 -151
  359. package/color-picker/lib/color-utils/color-utils.d.ts +0 -102
  360. package/color-picker/malva-ui-core-color-picker.d.ts +0 -5
  361. package/combobox/index.d.ts +0 -2
  362. package/combobox/lib/combobox/combobox.d.ts +0 -400
  363. package/combobox/lib/combobox-template.directives.d.ts +0 -10
  364. package/combobox/malva-ui-core-combobox.d.ts +0 -5
  365. package/copy-to-clipboard/index.d.ts +0 -1
  366. package/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.d.ts +0 -130
  367. package/copy-to-clipboard/malva-ui-core-copy-to-clipboard.d.ts +0 -5
  368. package/data-table/index.d.ts +0 -8
  369. package/data-table/lib/data-source.d.ts +0 -5
  370. package/data-table/lib/data-table/data-table-layout.d.ts +0 -31
  371. package/data-table/lib/data-table/data-table.d.ts +0 -699
  372. package/data-table/lib/data-table/services/data-table-column-visibility.service.d.ts +0 -19
  373. package/data-table/lib/data-table/services/data-table-editing.service.d.ts +0 -37
  374. package/data-table/lib/data-table/services/data-table-pinning.service.d.ts +0 -37
  375. package/data-table/lib/data-table-cell.d.ts +0 -44
  376. package/data-table/lib/data-table-edit-cell.d.ts +0 -44
  377. package/data-table/lib/data-table-error.d.ts +0 -37
  378. package/data-table/lib/data-table-footer.d.ts +0 -26
  379. package/data-table/lib/data-table-no-data.d.ts +0 -19
  380. package/data-table/lib/filter-dropdown/filter-dropdown.d.ts +0 -54
  381. package/data-table/lib/types.d.ts +0 -134
  382. package/data-table/malva-ui-core-data-table.d.ts +0 -5
  383. package/date-range-picker/index.d.ts +0 -1
  384. package/date-range-picker/lib/date-range-picker/date-range-picker.d.ts +0 -145
  385. package/date-range-picker/malva-ui-core-date-range-picker.d.ts +0 -5
  386. package/day-picker/index.d.ts +0 -1
  387. package/day-picker/lib/day-picker/day-picker.d.ts +0 -51
  388. package/day-picker/malva-ui-core-day-picker.d.ts +0 -5
  389. package/dialog/index.d.ts +0 -11
  390. package/dialog/lib/confirm-dialog-options.d.ts +0 -41
  391. package/dialog/lib/confirm-dialog.d.ts +0 -52
  392. package/dialog/lib/dialog/dialog.d.ts +0 -22
  393. package/dialog/lib/dialog-body.d.ts +0 -9
  394. package/dialog/lib/dialog-close.d.ts +0 -27
  395. package/dialog/lib/dialog-config.d.ts +0 -112
  396. package/dialog/lib/dialog-container.d.ts +0 -40
  397. package/dialog/lib/dialog-footer.d.ts +0 -13
  398. package/dialog/lib/dialog-header.d.ts +0 -74
  399. package/dialog/lib/dialog-ref.d.ts +0 -95
  400. package/dialog/lib/dialog-template.d.ts +0 -65
  401. package/dialog/lib/dialog-text-content.d.ts +0 -24
  402. package/dialog/lib/dialog.service.d.ts +0 -63
  403. package/dialog/lib/generate-routable-dialog-route.d.ts +0 -49
  404. package/dialog/lib/inject-dialog-ref.d.ts +0 -8
  405. package/dialog/lib/routable-dialog.d.ts +0 -30
  406. package/dialog/malva-ui-core-dialog.d.ts +0 -5
  407. package/divider/index.d.ts +0 -1
  408. package/divider/lib/divider/divider.d.ts +0 -64
  409. package/divider/malva-ui-core-divider.d.ts +0 -5
  410. package/drawer/index.d.ts +0 -11
  411. package/drawer/lib/drawer/drawer.d.ts +0 -106
  412. package/drawer/lib/drawer-body.d.ts +0 -8
  413. package/drawer/lib/drawer-content.d.ts +0 -6
  414. package/drawer/lib/drawer-footer.d.ts +0 -5
  415. package/drawer/lib/drawer-header.d.ts +0 -5
  416. package/drawer/lib/drawer-ref.d.ts +0 -29
  417. package/drawer/lib/drawer-resize.d.ts +0 -65
  418. package/drawer/lib/drawer-section/drawer-section.d.ts +0 -15
  419. package/drawer/lib/drawer-sections/drawer-sections.d.ts +0 -22
  420. package/drawer/lib/drawer-sections.service.d.ts +0 -42
  421. package/drawer/lib/drawer.service.d.ts +0 -66
  422. package/drawer/lib/generate-routable-drawer-route.d.ts +0 -42
  423. package/drawer/lib/routable-drawer.d.ts +0 -30
  424. package/drawer/malva-ui-core-drawer.d.ts +0 -5
  425. package/dropdown/index.d.ts +0 -9
  426. package/dropdown/lib/active-descendant.d.ts +0 -64
  427. package/dropdown/lib/dropdown-panel/dropdown-panel.d.ts +0 -178
  428. package/dropdown/lib/highlight-match.pipe.d.ts +0 -27
  429. package/dropdown/lib/option-matcher.d.ts +0 -87
  430. package/dropdown/lib/options-adapter.d.ts +0 -142
  431. package/dropdown/lib/options-result.d.ts +0 -6
  432. package/dropdown/lib/reconciliation.d.ts +0 -19
  433. package/dropdown/lib/select-data-source.d.ts +0 -18
  434. package/dropdown/lib/select-option.d.ts +0 -37
  435. package/dropdown/malva-ui-core-dropdown.d.ts +0 -5
  436. package/empty-state/index.d.ts +0 -1
  437. package/empty-state/lib/empty-state/empty-state.d.ts +0 -34
  438. package/empty-state/malva-ui-core-empty-state.d.ts +0 -5
  439. package/esm2022/accordion/index.js +0 -4
  440. package/esm2022/accordion/index.js.map +0 -1
  441. package/esm2022/accordion/lib/accordion/accordion.js +0 -65
  442. package/esm2022/accordion/lib/accordion/accordion.js.map +0 -1
  443. package/esm2022/accordion/lib/accordion-item/accordion-header.js +0 -30
  444. package/esm2022/accordion/lib/accordion-item/accordion-header.js.map +0 -1
  445. package/esm2022/accordion/lib/accordion-item/accordion-item.js +0 -70
  446. package/esm2022/accordion/lib/accordion-item/accordion-item.js.map +0 -1
  447. package/esm2022/accordion/malva-ui-core-accordion.js +0 -5
  448. package/esm2022/accordion/malva-ui-core-accordion.js.map +0 -1
  449. package/esm2022/action-bar/index.js +0 -5
  450. package/esm2022/action-bar/index.js.map +0 -1
  451. package/esm2022/action-bar/lib/action-bar/action-bar.js +0 -64
  452. package/esm2022/action-bar/lib/action-bar/action-bar.js.map +0 -1
  453. package/esm2022/action-bar/lib/action-bar/components/action-bar-actions.js +0 -20
  454. package/esm2022/action-bar/lib/action-bar/components/action-bar-actions.js.map +0 -1
  455. package/esm2022/action-bar/lib/action-bar/components/action-bar-logo.js +0 -13
  456. package/esm2022/action-bar/lib/action-bar/components/action-bar-logo.js.map +0 -1
  457. package/esm2022/action-bar/lib/action-bar/components/action-bar-spacer.js +0 -13
  458. package/esm2022/action-bar/lib/action-bar/components/action-bar-spacer.js.map +0 -1
  459. package/esm2022/action-bar/malva-ui-core-action-bar.js +0 -5
  460. package/esm2022/action-bar/malva-ui-core-action-bar.js.map +0 -1
  461. package/esm2022/alert/index.js +0 -3
  462. package/esm2022/alert/index.js.map +0 -1
  463. package/esm2022/alert/lib/alert/alert.directives.js +0 -53
  464. package/esm2022/alert/lib/alert/alert.directives.js.map +0 -1
  465. package/esm2022/alert/lib/alert/alert.js +0 -118
  466. package/esm2022/alert/lib/alert/alert.js.map +0 -1
  467. package/esm2022/alert/malva-ui-core-alert.js +0 -5
  468. package/esm2022/alert/malva-ui-core-alert.js.map +0 -1
  469. package/esm2022/autocomplete/index.js +0 -2
  470. package/esm2022/autocomplete/index.js.map +0 -1
  471. package/esm2022/autocomplete/lib/autocomplete/autocomplete.js +0 -765
  472. package/esm2022/autocomplete/lib/autocomplete/autocomplete.js.map +0 -1
  473. package/esm2022/autocomplete/malva-ui-core-autocomplete.js +0 -5
  474. package/esm2022/autocomplete/malva-ui-core-autocomplete.js.map +0 -1
  475. package/esm2022/avatar/index.js +0 -3
  476. package/esm2022/avatar/index.js.map +0 -1
  477. package/esm2022/avatar/lib/avatar/avatar.js +0 -192
  478. package/esm2022/avatar/lib/avatar/avatar.js.map +0 -1
  479. package/esm2022/avatar/lib/color-from-text.pipe.js +0 -39
  480. package/esm2022/avatar/lib/color-from-text.pipe.js.map +0 -1
  481. package/esm2022/avatar/malva-ui-core-avatar.js +0 -5
  482. package/esm2022/avatar/malva-ui-core-avatar.js.map +0 -1
  483. package/esm2022/avatar-group/index.js +0 -2
  484. package/esm2022/avatar-group/index.js.map +0 -1
  485. package/esm2022/avatar-group/lib/avatar-group/avatar-group.js +0 -217
  486. package/esm2022/avatar-group/lib/avatar-group/avatar-group.js.map +0 -1
  487. package/esm2022/avatar-group/malva-ui-core-avatar-group.js +0 -5
  488. package/esm2022/avatar-group/malva-ui-core-avatar-group.js.map +0 -1
  489. package/esm2022/badge/index.js +0 -3
  490. package/esm2022/badge/index.js.map +0 -1
  491. package/esm2022/badge/lib/badge/badge.js +0 -71
  492. package/esm2022/badge/lib/badge/badge.js.map +0 -1
  493. package/esm2022/badge/lib/badge-icon.js +0 -47
  494. package/esm2022/badge/lib/badge-icon.js.map +0 -1
  495. package/esm2022/badge/malva-ui-core-badge.js +0 -5
  496. package/esm2022/badge/malva-ui-core-badge.js.map +0 -1
  497. package/esm2022/bottom-nav/index.js +0 -2
  498. package/esm2022/bottom-nav/index.js.map +0 -1
  499. package/esm2022/bottom-nav/lib/bottom-nav/bottom-nav.js +0 -155
  500. package/esm2022/bottom-nav/lib/bottom-nav/bottom-nav.js.map +0 -1
  501. package/esm2022/bottom-nav/malva-ui-core-bottom-nav.js +0 -5
  502. package/esm2022/bottom-nav/malva-ui-core-bottom-nav.js.map +0 -1
  503. package/esm2022/breadcrumb/index.js +0 -6
  504. package/esm2022/breadcrumb/index.js.map +0 -1
  505. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item-host.js +0 -43
  506. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item-host.js.map +0 -1
  507. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item.js +0 -110
  508. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item.js.map +0 -1
  509. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-separator.js +0 -38
  510. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-separator.js.map +0 -1
  511. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.js +0 -284
  512. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.js.map +0 -1
  513. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.types.js +0 -1
  514. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.types.js.map +0 -1
  515. package/esm2022/breadcrumb/malva-ui-core-breadcrumb.js +0 -5
  516. package/esm2022/breadcrumb/malva-ui-core-breadcrumb.js.map +0 -1
  517. package/esm2022/button/index.js +0 -8
  518. package/esm2022/button/index.js.map +0 -1
  519. package/esm2022/button/lib/button/button.js +0 -137
  520. package/esm2022/button/lib/button/button.js.map +0 -1
  521. package/esm2022/button/lib/button-close/button-close.js +0 -52
  522. package/esm2022/button/lib/button-close/button-close.js.map +0 -1
  523. package/esm2022/button/lib/button-group/button-group.js +0 -44
  524. package/esm2022/button/lib/button-group/button-group.js.map +0 -1
  525. package/esm2022/button/lib/button-split/button-split.js +0 -44
  526. package/esm2022/button/lib/button-split/button-split.js.map +0 -1
  527. package/esm2022/button/lib/button-toggle/button-toggle.js +0 -94
  528. package/esm2022/button/lib/button-toggle/button-toggle.js.map +0 -1
  529. package/esm2022/button/lib/button-variant.token.js +0 -4
  530. package/esm2022/button/lib/button-variant.token.js.map +0 -1
  531. package/esm2022/button/lib/button.directives.js +0 -37
  532. package/esm2022/button/lib/button.directives.js.map +0 -1
  533. package/esm2022/button/lib/button.types.js +0 -1
  534. package/esm2022/button/lib/button.types.js.map +0 -1
  535. package/esm2022/button/malva-ui-core-button.js +0 -5
  536. package/esm2022/button/malva-ui-core-button.js.map +0 -1
  537. package/esm2022/calendar/index.js +0 -4
  538. package/esm2022/calendar/index.js.map +0 -1
  539. package/esm2022/calendar/lib/calendar/calendar.js +0 -672
  540. package/esm2022/calendar/lib/calendar/calendar.js.map +0 -1
  541. package/esm2022/calendar/lib/date-provider/date-adapter.js +0 -111
  542. package/esm2022/calendar/lib/date-provider/date-adapter.js.map +0 -1
  543. package/esm2022/calendar/lib/date-provider/native-date-adapter.js +0 -151
  544. package/esm2022/calendar/lib/date-provider/native-date-adapter.js.map +0 -1
  545. package/esm2022/calendar/malva-ui-core-calendar.js +0 -5
  546. package/esm2022/calendar/malva-ui-core-calendar.js.map +0 -1
  547. package/esm2022/card/index.js +0 -6
  548. package/esm2022/card/index.js.map +0 -1
  549. package/esm2022/card/lib/card/card.js +0 -54
  550. package/esm2022/card/lib/card/card.js.map +0 -1
  551. package/esm2022/card/lib/card-actions-def.js +0 -27
  552. package/esm2022/card/lib/card-actions-def.js.map +0 -1
  553. package/esm2022/card/lib/card-footer-def.js +0 -32
  554. package/esm2022/card/lib/card-footer-def.js.map +0 -1
  555. package/esm2022/card/lib/card-header-def.js +0 -27
  556. package/esm2022/card/lib/card-header-def.js.map +0 -1
  557. package/esm2022/card/lib/card-subheader-def.js +0 -33
  558. package/esm2022/card/lib/card-subheader-def.js.map +0 -1
  559. package/esm2022/card/malva-ui-core-card.js +0 -5
  560. package/esm2022/card/malva-ui-core-card.js.map +0 -1
  561. package/esm2022/chat/index.js +0 -10
  562. package/esm2022/chat/index.js.map +0 -1
  563. package/esm2022/chat/lib/chat/chat.js +0 -326
  564. package/esm2022/chat/lib/chat/chat.js.map +0 -1
  565. package/esm2022/chat/lib/chat-audio/chat-audio.js +0 -110
  566. package/esm2022/chat/lib/chat-audio/chat-audio.js.map +0 -1
  567. package/esm2022/chat/lib/chat-audio/chat-audio.service.js +0 -28
  568. package/esm2022/chat/lib/chat-audio/chat-audio.service.js.map +0 -1
  569. package/esm2022/chat/lib/chat-date/chat-date.js +0 -46
  570. package/esm2022/chat/lib/chat-date/chat-date.js.map +0 -1
  571. package/esm2022/chat/lib/chat-format.js +0 -11
  572. package/esm2022/chat/lib/chat-format.js.map +0 -1
  573. package/esm2022/chat/lib/chat-media-grid/chat-media-grid.js +0 -53
  574. package/esm2022/chat/lib/chat-media-grid/chat-media-grid.js.map +0 -1
  575. package/esm2022/chat/lib/chat-message/chat-message.js +0 -86
  576. package/esm2022/chat/lib/chat-message/chat-message.js.map +0 -1
  577. package/esm2022/chat/lib/chat-render-list.js +0 -55
  578. package/esm2022/chat/lib/chat-render-list.js.map +0 -1
  579. package/esm2022/chat/lib/chat-tokens.js +0 -9
  580. package/esm2022/chat/lib/chat-tokens.js.map +0 -1
  581. package/esm2022/chat/lib/chat-typing/chat-typing.js +0 -50
  582. package/esm2022/chat/lib/chat-typing/chat-typing.js.map +0 -1
  583. package/esm2022/chat/lib/chat.types.js +0 -1
  584. package/esm2022/chat/lib/chat.types.js.map +0 -1
  585. package/esm2022/chat/lib/defs/chat-author-def.js +0 -27
  586. package/esm2022/chat/lib/defs/chat-author-def.js.map +0 -1
  587. package/esm2022/chat/lib/defs/chat-date-def.js +0 -24
  588. package/esm2022/chat/lib/defs/chat-date-def.js.map +0 -1
  589. package/esm2022/chat/lib/defs/chat-message-def.js +0 -30
  590. package/esm2022/chat/lib/defs/chat-message-def.js.map +0 -1
  591. package/esm2022/chat/malva-ui-core-chat.js +0 -5
  592. package/esm2022/chat/malva-ui-core-chat.js.map +0 -1
  593. package/esm2022/checkbox/index.js +0 -4
  594. package/esm2022/checkbox/index.js.map +0 -1
  595. package/esm2022/checkbox/lib/checkbox/checkbox.js +0 -201
  596. package/esm2022/checkbox/lib/checkbox/checkbox.js.map +0 -1
  597. package/esm2022/checkbox/lib/checkbox-group/checkbox-group.js +0 -68
  598. package/esm2022/checkbox/lib/checkbox-group/checkbox-group.js.map +0 -1
  599. package/esm2022/checkbox/lib/checkbox-group-token.js +0 -3
  600. package/esm2022/checkbox/lib/checkbox-group-token.js.map +0 -1
  601. package/esm2022/checkbox/malva-ui-core-checkbox.js +0 -5
  602. package/esm2022/checkbox/malva-ui-core-checkbox.js.map +0 -1
  603. package/esm2022/chip/index.js +0 -3
  604. package/esm2022/chip/index.js.map +0 -1
  605. package/esm2022/chip/lib/chip/chip.directives.js +0 -32
  606. package/esm2022/chip/lib/chip/chip.directives.js.map +0 -1
  607. package/esm2022/chip/lib/chip/chip.js +0 -140
  608. package/esm2022/chip/lib/chip/chip.js.map +0 -1
  609. package/esm2022/chip/malva-ui-core-chip.js +0 -5
  610. package/esm2022/chip/malva-ui-core-chip.js.map +0 -1
  611. package/esm2022/color-picker/index.js +0 -4
  612. package/esm2022/color-picker/index.js.map +0 -1
  613. package/esm2022/color-picker/lib/color-picker/color-picker.js +0 -530
  614. package/esm2022/color-picker/lib/color-picker/color-picker.js.map +0 -1
  615. package/esm2022/color-picker/lib/color-picker-popup/color-picker-popup.js +0 -419
  616. package/esm2022/color-picker/lib/color-picker-popup/color-picker-popup.js.map +0 -1
  617. package/esm2022/color-picker/lib/color-utils/color-utils.js +0 -256
  618. package/esm2022/color-picker/lib/color-utils/color-utils.js.map +0 -1
  619. package/esm2022/color-picker/malva-ui-core-color-picker.js +0 -5
  620. package/esm2022/color-picker/malva-ui-core-color-picker.js.map +0 -1
  621. package/esm2022/combobox/index.js +0 -3
  622. package/esm2022/combobox/index.js.map +0 -1
  623. package/esm2022/combobox/lib/combobox/combobox.js +0 -911
  624. package/esm2022/combobox/lib/combobox/combobox.js.map +0 -1
  625. package/esm2022/combobox/lib/combobox-template.directives.js +0 -24
  626. package/esm2022/combobox/lib/combobox-template.directives.js.map +0 -1
  627. package/esm2022/combobox/malva-ui-core-combobox.js +0 -5
  628. package/esm2022/combobox/malva-ui-core-combobox.js.map +0 -1
  629. package/esm2022/copy-to-clipboard/index.js +0 -2
  630. package/esm2022/copy-to-clipboard/index.js.map +0 -1
  631. package/esm2022/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.js +0 -201
  632. package/esm2022/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.js.map +0 -1
  633. package/esm2022/copy-to-clipboard/malva-ui-core-copy-to-clipboard.js +0 -5
  634. package/esm2022/copy-to-clipboard/malva-ui-core-copy-to-clipboard.js.map +0 -1
  635. package/esm2022/data-table/index.js +0 -9
  636. package/esm2022/data-table/index.js.map +0 -1
  637. package/esm2022/data-table/lib/data-source.js +0 -6
  638. package/esm2022/data-table/lib/data-source.js.map +0 -1
  639. package/esm2022/data-table/lib/data-table/data-table-layout.js +0 -84
  640. package/esm2022/data-table/lib/data-table/data-table-layout.js.map +0 -1
  641. package/esm2022/data-table/lib/data-table/data-table.js +0 -1846
  642. package/esm2022/data-table/lib/data-table/data-table.js.map +0 -1
  643. package/esm2022/data-table/lib/data-table/services/data-table-column-visibility.service.js +0 -37
  644. package/esm2022/data-table/lib/data-table/services/data-table-column-visibility.service.js.map +0 -1
  645. package/esm2022/data-table/lib/data-table/services/data-table-editing.service.js +0 -63
  646. package/esm2022/data-table/lib/data-table/services/data-table-editing.service.js.map +0 -1
  647. package/esm2022/data-table/lib/data-table/services/data-table-pinning.service.js +0 -68
  648. package/esm2022/data-table/lib/data-table/services/data-table-pinning.service.js.map +0 -1
  649. package/esm2022/data-table/lib/data-table-cell.js +0 -46
  650. package/esm2022/data-table/lib/data-table-cell.js.map +0 -1
  651. package/esm2022/data-table/lib/data-table-edit-cell.js +0 -46
  652. package/esm2022/data-table/lib/data-table-edit-cell.js.map +0 -1
  653. package/esm2022/data-table/lib/data-table-error.js +0 -37
  654. package/esm2022/data-table/lib/data-table-error.js.map +0 -1
  655. package/esm2022/data-table/lib/data-table-footer.js +0 -33
  656. package/esm2022/data-table/lib/data-table-footer.js.map +0 -1
  657. package/esm2022/data-table/lib/data-table-no-data.js +0 -26
  658. package/esm2022/data-table/lib/data-table-no-data.js.map +0 -1
  659. package/esm2022/data-table/lib/filter-dropdown/filter-dropdown.js +0 -224
  660. package/esm2022/data-table/lib/filter-dropdown/filter-dropdown.js.map +0 -1
  661. package/esm2022/data-table/lib/types.js +0 -1
  662. package/esm2022/data-table/lib/types.js.map +0 -1
  663. package/esm2022/data-table/malva-ui-core-data-table.js +0 -5
  664. package/esm2022/data-table/malva-ui-core-data-table.js.map +0 -1
  665. package/esm2022/date-range-picker/index.js +0 -2
  666. package/esm2022/date-range-picker/index.js.map +0 -1
  667. package/esm2022/date-range-picker/lib/date-range-picker/date-range-picker.js +0 -269
  668. package/esm2022/date-range-picker/lib/date-range-picker/date-range-picker.js.map +0 -1
  669. package/esm2022/date-range-picker/malva-ui-core-date-range-picker.js +0 -5
  670. package/esm2022/date-range-picker/malva-ui-core-date-range-picker.js.map +0 -1
  671. package/esm2022/day-picker/index.js +0 -2
  672. package/esm2022/day-picker/index.js.map +0 -1
  673. package/esm2022/day-picker/lib/day-picker/day-picker.js +0 -124
  674. package/esm2022/day-picker/lib/day-picker/day-picker.js.map +0 -1
  675. package/esm2022/day-picker/malva-ui-core-day-picker.js +0 -5
  676. package/esm2022/day-picker/malva-ui-core-day-picker.js.map +0 -1
  677. package/esm2022/dialog/index.js +0 -12
  678. package/esm2022/dialog/index.js.map +0 -1
  679. package/esm2022/dialog/lib/confirm-dialog-options.js +0 -1
  680. package/esm2022/dialog/lib/confirm-dialog-options.js.map +0 -1
  681. package/esm2022/dialog/lib/confirm-dialog.js +0 -155
  682. package/esm2022/dialog/lib/confirm-dialog.js.map +0 -1
  683. package/esm2022/dialog/lib/dialog/dialog.js +0 -40
  684. package/esm2022/dialog/lib/dialog/dialog.js.map +0 -1
  685. package/esm2022/dialog/lib/dialog-body.js +0 -33
  686. package/esm2022/dialog/lib/dialog-body.js.map +0 -1
  687. package/esm2022/dialog/lib/dialog-close.js +0 -45
  688. package/esm2022/dialog/lib/dialog-close.js.map +0 -1
  689. package/esm2022/dialog/lib/dialog-config.js +0 -23
  690. package/esm2022/dialog/lib/dialog-config.js.map +0 -1
  691. package/esm2022/dialog/lib/dialog-container.js +0 -69
  692. package/esm2022/dialog/lib/dialog-container.js.map +0 -1
  693. package/esm2022/dialog/lib/dialog-footer.js +0 -29
  694. package/esm2022/dialog/lib/dialog-footer.js.map +0 -1
  695. package/esm2022/dialog/lib/dialog-header.js +0 -181
  696. package/esm2022/dialog/lib/dialog-header.js.map +0 -1
  697. package/esm2022/dialog/lib/dialog-ref.js +0 -167
  698. package/esm2022/dialog/lib/dialog-ref.js.map +0 -1
  699. package/esm2022/dialog/lib/dialog-template.js +0 -136
  700. package/esm2022/dialog/lib/dialog-template.js.map +0 -1
  701. package/esm2022/dialog/lib/dialog-text-content.js +0 -59
  702. package/esm2022/dialog/lib/dialog-text-content.js.map +0 -1
  703. package/esm2022/dialog/lib/dialog.service.js +0 -205
  704. package/esm2022/dialog/lib/dialog.service.js.map +0 -1
  705. package/esm2022/dialog/lib/generate-routable-dialog-route.js +0 -59
  706. package/esm2022/dialog/lib/generate-routable-dialog-route.js.map +0 -1
  707. package/esm2022/dialog/lib/inject-dialog-ref.js +0 -16
  708. package/esm2022/dialog/lib/inject-dialog-ref.js.map +0 -1
  709. package/esm2022/dialog/lib/routable-dialog.js +0 -91
  710. package/esm2022/dialog/lib/routable-dialog.js.map +0 -1
  711. package/esm2022/dialog/malva-ui-core-dialog.js +0 -5
  712. package/esm2022/dialog/malva-ui-core-dialog.js.map +0 -1
  713. package/esm2022/divider/index.js +0 -2
  714. package/esm2022/divider/index.js.map +0 -1
  715. package/esm2022/divider/lib/divider/divider.js +0 -73
  716. package/esm2022/divider/lib/divider/divider.js.map +0 -1
  717. package/esm2022/divider/malva-ui-core-divider.js +0 -5
  718. package/esm2022/divider/malva-ui-core-divider.js.map +0 -1
  719. package/esm2022/drawer/index.js +0 -12
  720. package/esm2022/drawer/index.js.map +0 -1
  721. package/esm2022/drawer/lib/drawer/drawer.js +0 -180
  722. package/esm2022/drawer/lib/drawer/drawer.js.map +0 -1
  723. package/esm2022/drawer/lib/drawer-body.js +0 -32
  724. package/esm2022/drawer/lib/drawer-body.js.map +0 -1
  725. package/esm2022/drawer/lib/drawer-content.js +0 -14
  726. package/esm2022/drawer/lib/drawer-content.js.map +0 -1
  727. package/esm2022/drawer/lib/drawer-footer.js +0 -14
  728. package/esm2022/drawer/lib/drawer-footer.js.map +0 -1
  729. package/esm2022/drawer/lib/drawer-header.js +0 -14
  730. package/esm2022/drawer/lib/drawer-header.js.map +0 -1
  731. package/esm2022/drawer/lib/drawer-ref.js +0 -31
  732. package/esm2022/drawer/lib/drawer-ref.js.map +0 -1
  733. package/esm2022/drawer/lib/drawer-resize.js +0 -243
  734. package/esm2022/drawer/lib/drawer-resize.js.map +0 -1
  735. package/esm2022/drawer/lib/drawer-section/drawer-section.js +0 -26
  736. package/esm2022/drawer/lib/drawer-section/drawer-section.js.map +0 -1
  737. package/esm2022/drawer/lib/drawer-sections/drawer-sections.js +0 -58
  738. package/esm2022/drawer/lib/drawer-sections/drawer-sections.js.map +0 -1
  739. package/esm2022/drawer/lib/drawer-sections.service.js +0 -83
  740. package/esm2022/drawer/lib/drawer-sections.service.js.map +0 -1
  741. package/esm2022/drawer/lib/drawer.service.js +0 -86
  742. package/esm2022/drawer/lib/drawer.service.js.map +0 -1
  743. package/esm2022/drawer/lib/generate-routable-drawer-route.js +0 -52
  744. package/esm2022/drawer/lib/generate-routable-drawer-route.js.map +0 -1
  745. package/esm2022/drawer/lib/routable-drawer.js +0 -91
  746. package/esm2022/drawer/lib/routable-drawer.js.map +0 -1
  747. package/esm2022/drawer/malva-ui-core-drawer.js +0 -5
  748. package/esm2022/drawer/malva-ui-core-drawer.js.map +0 -1
  749. package/esm2022/dropdown/index.js +0 -10
  750. package/esm2022/dropdown/index.js.map +0 -1
  751. package/esm2022/dropdown/lib/active-descendant.js +0 -92
  752. package/esm2022/dropdown/lib/active-descendant.js.map +0 -1
  753. package/esm2022/dropdown/lib/dropdown-panel/dropdown-panel.js +0 -295
  754. package/esm2022/dropdown/lib/dropdown-panel/dropdown-panel.js.map +0 -1
  755. package/esm2022/dropdown/lib/highlight-match.pipe.js +0 -36
  756. package/esm2022/dropdown/lib/highlight-match.pipe.js.map +0 -1
  757. package/esm2022/dropdown/lib/option-matcher.js +0 -124
  758. package/esm2022/dropdown/lib/option-matcher.js.map +0 -1
  759. package/esm2022/dropdown/lib/options-adapter.js +0 -356
  760. package/esm2022/dropdown/lib/options-adapter.js.map +0 -1
  761. package/esm2022/dropdown/lib/options-result.js +0 -11
  762. package/esm2022/dropdown/lib/options-result.js.map +0 -1
  763. package/esm2022/dropdown/lib/reconciliation.js +0 -32
  764. package/esm2022/dropdown/lib/reconciliation.js.map +0 -1
  765. package/esm2022/dropdown/lib/select-data-source.js +0 -21
  766. package/esm2022/dropdown/lib/select-data-source.js.map +0 -1
  767. package/esm2022/dropdown/lib/select-option.js +0 -25
  768. package/esm2022/dropdown/lib/select-option.js.map +0 -1
  769. package/esm2022/dropdown/malva-ui-core-dropdown.js +0 -5
  770. package/esm2022/dropdown/malva-ui-core-dropdown.js.map +0 -1
  771. package/esm2022/empty-state/index.js +0 -2
  772. package/esm2022/empty-state/index.js.map +0 -1
  773. package/esm2022/empty-state/lib/empty-state/empty-state.js +0 -43
  774. package/esm2022/empty-state/lib/empty-state/empty-state.js.map +0 -1
  775. package/esm2022/empty-state/malva-ui-core-empty-state.js +0 -5
  776. package/esm2022/empty-state/malva-ui-core-empty-state.js.map +0 -1
  777. package/esm2022/expand/index.js +0 -3
  778. package/esm2022/expand/index.js.map +0 -1
  779. package/esm2022/expand/lib/expand/expand-content.js +0 -33
  780. package/esm2022/expand/lib/expand/expand-content.js.map +0 -1
  781. package/esm2022/expand/lib/expand/expand.js +0 -93
  782. package/esm2022/expand/lib/expand/expand.js.map +0 -1
  783. package/esm2022/expand/malva-ui-core-expand.js +0 -5
  784. package/esm2022/expand/malva-ui-core-expand.js.map +0 -1
  785. package/esm2022/file-upload/index.js +0 -5
  786. package/esm2022/file-upload/index.js.map +0 -1
  787. package/esm2022/file-upload/lib/file-upload/file-upload.js +0 -324
  788. package/esm2022/file-upload/lib/file-upload/file-upload.js.map +0 -1
  789. package/esm2022/file-upload/lib/file-upload/file-upload.types.js +0 -1
  790. package/esm2022/file-upload/lib/file-upload/file-upload.types.js.map +0 -1
  791. package/esm2022/file-upload/lib/file-upload-action.js +0 -65
  792. package/esm2022/file-upload/lib/file-upload-action.js.map +0 -1
  793. package/esm2022/file-upload/lib/file-upload-item/file-upload-item.js +0 -55
  794. package/esm2022/file-upload/lib/file-upload-item/file-upload-item.js.map +0 -1
  795. package/esm2022/file-upload/malva-ui-core-file-upload.js +0 -5
  796. package/esm2022/file-upload/malva-ui-core-file-upload.js.map +0 -1
  797. package/esm2022/filter/index.js +0 -4
  798. package/esm2022/filter/index.js.map +0 -1
  799. package/esm2022/filter/lib/filter/filter.js +0 -552
  800. package/esm2022/filter/lib/filter/filter.js.map +0 -1
  801. package/esm2022/filter/lib/filter.types.js +0 -1
  802. package/esm2022/filter/lib/filter.types.js.map +0 -1
  803. package/esm2022/filter/lib/smart-filter-bar/smart-filter-bar.js +0 -518
  804. package/esm2022/filter/lib/smart-filter-bar/smart-filter-bar.js.map +0 -1
  805. package/esm2022/filter/malva-ui-core-filter.js +0 -5
  806. package/esm2022/filter/malva-ui-core-filter.js.map +0 -1
  807. package/esm2022/form/index.js +0 -7
  808. package/esm2022/form/index.js.map +0 -1
  809. package/esm2022/form/lib/fieldset/fieldset.js +0 -101
  810. package/esm2022/form/lib/fieldset/fieldset.js.map +0 -1
  811. package/esm2022/form/lib/fieldset-span.js +0 -49
  812. package/esm2022/form/lib/fieldset-span.js.map +0 -1
  813. package/esm2022/form/lib/form/form.js +0 -60
  814. package/esm2022/form/lib/form/form.js.map +0 -1
  815. package/esm2022/form/lib/form-actions.js +0 -34
  816. package/esm2022/form/lib/form-actions.js.map +0 -1
  817. package/esm2022/form/lib/form-gap.js +0 -15
  818. package/esm2022/form/lib/form-gap.js.map +0 -1
  819. package/esm2022/form/lib/form-header.js +0 -27
  820. package/esm2022/form/lib/form-header.js.map +0 -1
  821. package/esm2022/form/lib/form.types.js +0 -1
  822. package/esm2022/form/lib/form.types.js.map +0 -1
  823. package/esm2022/form/malva-ui-core-form.js +0 -5
  824. package/esm2022/form/malva-ui-core-form.js.map +0 -1
  825. package/esm2022/form-utils/index.js +0 -16
  826. package/esm2022/form-utils/index.js.map +0 -1
  827. package/esm2022/form-utils/lib/aria-value-bridge.js +0 -57
  828. package/esm2022/form-utils/lib/aria-value-bridge.js.map +0 -1
  829. package/esm2022/form-utils/lib/description/description.js +0 -24
  830. package/esm2022/form-utils/lib/description/description.js.map +0 -1
  831. package/esm2022/form-utils/lib/focusable-group-base.js +0 -87
  832. package/esm2022/form-utils/lib/focusable-group-base.js.map +0 -1
  833. package/esm2022/form-utils/lib/form-control-base/signal-form-control-base.js +0 -192
  834. package/esm2022/form-utils/lib/form-control-base/signal-form-control-base.js.map +0 -1
  835. package/esm2022/form-utils/lib/form-control-sides.js +0 -34
  836. package/esm2022/form-utils/lib/form-control-sides.js.map +0 -1
  837. package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper-control.js +0 -14
  838. package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper-control.js.map +0 -1
  839. package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper.js +0 -47
  840. package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper.js.map +0 -1
  841. package/esm2022/form-utils/lib/form-field/form-field.js +0 -245
  842. package/esm2022/form-utils/lib/form-field/form-field.js.map +0 -1
  843. package/esm2022/form-utils/lib/hint/hint.js +0 -11
  844. package/esm2022/form-utils/lib/hint/hint.js.map +0 -1
  845. package/esm2022/form-utils/lib/label/label.js +0 -55
  846. package/esm2022/form-utils/lib/label/label.js.map +0 -1
  847. package/esm2022/form-utils/lib/message/message.js +0 -20
  848. package/esm2022/form-utils/lib/message/message.js.map +0 -1
  849. package/esm2022/form-utils/lib/models/error-display-strategy.js +0 -1
  850. package/esm2022/form-utils/lib/models/error-display-strategy.js.map +0 -1
  851. package/esm2022/form-utils/lib/models/form-control-connector.js +0 -3
  852. package/esm2022/form-utils/lib/models/form-control-connector.js.map +0 -1
  853. package/esm2022/form-utils/lib/models/form-state.js +0 -1
  854. package/esm2022/form-utils/lib/models/form-state.js.map +0 -1
  855. package/esm2022/form-utils/lib/selection.service.js +0 -81
  856. package/esm2022/form-utils/lib/selection.service.js.map +0 -1
  857. package/esm2022/form-utils/malva-ui-core-form-utils.js +0 -5
  858. package/esm2022/form-utils/malva-ui-core-form-utils.js.map +0 -1
  859. package/esm2022/form-utils/testing/index.js +0 -2
  860. package/esm2022/form-utils/testing/index.js.map +0 -1
  861. package/esm2022/form-utils/testing/lib/forms-binding-matrix.js +0 -32
  862. package/esm2022/form-utils/testing/lib/forms-binding-matrix.js.map +0 -1
  863. package/esm2022/form-utils/testing/malva-ui-core-form-utils-testing.js +0 -5
  864. package/esm2022/form-utils/testing/malva-ui-core-form-utils-testing.js.map +0 -1
  865. package/esm2022/index.js +0 -70
  866. package/esm2022/index.js.map +0 -1
  867. package/esm2022/input/index.js +0 -4
  868. package/esm2022/input/index.js.map +0 -1
  869. package/esm2022/input/lib/input/input-native.js +0 -49
  870. package/esm2022/input/lib/input/input-native.js.map +0 -1
  871. package/esm2022/input/lib/input/input-value-accessor.js +0 -4
  872. package/esm2022/input/lib/input/input-value-accessor.js.map +0 -1
  873. package/esm2022/input/lib/input/input.js +0 -277
  874. package/esm2022/input/lib/input/input.js.map +0 -1
  875. package/esm2022/input/lib/input/password-strength.js +0 -46
  876. package/esm2022/input/lib/input/password-strength.js.map +0 -1
  877. package/esm2022/input/malva-ui-core-input.js +0 -5
  878. package/esm2022/input/malva-ui-core-input.js.map +0 -1
  879. package/esm2022/kbd/index.js +0 -2
  880. package/esm2022/kbd/index.js.map +0 -1
  881. package/esm2022/kbd/lib/kbd/kbd.js +0 -124
  882. package/esm2022/kbd/lib/kbd/kbd.js.map +0 -1
  883. package/esm2022/kbd/malva-ui-core-kbd.js +0 -5
  884. package/esm2022/kbd/malva-ui-core-kbd.js.map +0 -1
  885. package/esm2022/layout/index.js +0 -5
  886. package/esm2022/layout/index.js.map +0 -1
  887. package/esm2022/layout/lib/layout/directives/MlvLayoutSide.js +0 -14
  888. package/esm2022/layout/lib/layout/directives/MlvLayoutSide.js.map +0 -1
  889. package/esm2022/layout/lib/layout/directives/MlvLayoutTop.js +0 -14
  890. package/esm2022/layout/lib/layout/directives/MlvLayoutTop.js.map +0 -1
  891. package/esm2022/layout/lib/layout/layout.js +0 -43
  892. package/esm2022/layout/lib/layout/layout.js.map +0 -1
  893. package/esm2022/layout/lib/layout/services/theme.service.js +0 -121
  894. package/esm2022/layout/lib/layout/services/theme.service.js.map +0 -1
  895. package/esm2022/layout/malva-ui-core-layout.js +0 -5
  896. package/esm2022/layout/malva-ui-core-layout.js.map +0 -1
  897. package/esm2022/link/index.js +0 -3
  898. package/esm2022/link/index.js.map +0 -1
  899. package/esm2022/link/lib/link/link.directives.js +0 -24
  900. package/esm2022/link/lib/link/link.directives.js.map +0 -1
  901. package/esm2022/link/lib/link/link.js +0 -61
  902. package/esm2022/link/lib/link/link.js.map +0 -1
  903. package/esm2022/link/malva-ui-core-link.js +0 -5
  904. package/esm2022/link/malva-ui-core-link.js.map +0 -1
  905. package/esm2022/list/index.js +0 -14
  906. package/esm2022/list/index.js.map +0 -1
  907. package/esm2022/list/lib/list/list.js +0 -28
  908. package/esm2022/list/lib/list/list.js.map +0 -1
  909. package/esm2022/list/lib/list-item/list-item.js +0 -125
  910. package/esm2022/list/lib/list-item/list-item.js.map +0 -1
  911. package/esm2022/list/lib/list-item-actions.js +0 -23
  912. package/esm2022/list/lib/list-item-actions.js.map +0 -1
  913. package/esm2022/list/lib/list-item-byline.js +0 -13
  914. package/esm2022/list/lib/list-item-byline.js.map +0 -1
  915. package/esm2022/list/lib/list-item-group/list-item-group.js +0 -25
  916. package/esm2022/list/lib/list-item-group/list-item-group.js.map +0 -1
  917. package/esm2022/list/lib/list-item-link/list-item-link.js +0 -20
  918. package/esm2022/list/lib/list-item-link/list-item-link.js.map +0 -1
  919. package/esm2022/list/lib/list-item-media.js +0 -13
  920. package/esm2022/list/lib/list-item-media.js.map +0 -1
  921. package/esm2022/list/lib/list-item-meta.js +0 -13
  922. package/esm2022/list/lib/list-item-meta.js.map +0 -1
  923. package/esm2022/list/lib/list-item-prefix.js +0 -13
  924. package/esm2022/list/lib/list-item-prefix.js.map +0 -1
  925. package/esm2022/list/lib/list-item-suffix.js +0 -13
  926. package/esm2022/list/lib/list-item-suffix.js.map +0 -1
  927. package/esm2022/list/lib/list-item-template.js +0 -14
  928. package/esm2022/list/lib/list-item-template.js.map +0 -1
  929. package/esm2022/list/lib/list-item-title.js +0 -13
  930. package/esm2022/list/lib/list-item-title.js.map +0 -1
  931. package/esm2022/list/lib/list-selectable.js +0 -116
  932. package/esm2022/list/lib/list-selectable.js.map +0 -1
  933. package/esm2022/list/malva-ui-core-list.js +0 -5
  934. package/esm2022/list/malva-ui-core-list.js.map +0 -1
  935. package/esm2022/loader/index.js +0 -2
  936. package/esm2022/loader/index.js.map +0 -1
  937. package/esm2022/loader/lib/loader/loader.js +0 -134
  938. package/esm2022/loader/lib/loader/loader.js.map +0 -1
  939. package/esm2022/loader/malva-ui-core-loader.js +0 -5
  940. package/esm2022/loader/malva-ui-core-loader.js.map +0 -1
  941. package/esm2022/malva-ui-core.js +0 -5
  942. package/esm2022/malva-ui-core.js.map +0 -1
  943. package/esm2022/menu/index.js +0 -10
  944. package/esm2022/menu/index.js.map +0 -1
  945. package/esm2022/menu/lib/menu/menu-group-label.js +0 -35
  946. package/esm2022/menu/lib/menu/menu-group-label.js.map +0 -1
  947. package/esm2022/menu/lib/menu/menu-group.js +0 -44
  948. package/esm2022/menu/lib/menu/menu-group.js.map +0 -1
  949. package/esm2022/menu/lib/menu/menu-item.js +0 -117
  950. package/esm2022/menu/lib/menu/menu-item.js.map +0 -1
  951. package/esm2022/menu/lib/menu/menu-separator.js +0 -41
  952. package/esm2022/menu/lib/menu/menu-separator.js.map +0 -1
  953. package/esm2022/menu/lib/menu/menu-trigger.js +0 -653
  954. package/esm2022/menu/lib/menu/menu-trigger.js.map +0 -1
  955. package/esm2022/menu/lib/menu/menu.js +0 -308
  956. package/esm2022/menu/lib/menu/menu.js.map +0 -1
  957. package/esm2022/menu/lib/menu/menu.types.js +0 -4
  958. package/esm2022/menu/lib/menu/menu.types.js.map +0 -1
  959. package/esm2022/menu/lib/menu/menubar.js +0 -257
  960. package/esm2022/menu/lib/menu/menubar.js.map +0 -1
  961. package/esm2022/menu/lib/menu/menubar.types.js +0 -4
  962. package/esm2022/menu/lib/menu/menubar.types.js.map +0 -1
  963. package/esm2022/menu/lib/menu/submenu-aim.js +0 -30
  964. package/esm2022/menu/lib/menu/submenu-aim.js.map +0 -1
  965. package/esm2022/menu/malva-ui-core-menu.js +0 -5
  966. package/esm2022/menu/malva-ui-core-menu.js.map +0 -1
  967. package/esm2022/notification/index.js +0 -5
  968. package/esm2022/notification/index.js.map +0 -1
  969. package/esm2022/notification/lib/notification-item/notification-item.js +0 -65
  970. package/esm2022/notification/lib/notification-item/notification-item.js.map +0 -1
  971. package/esm2022/notification/lib/notification-ref.js +0 -13
  972. package/esm2022/notification/lib/notification-ref.js.map +0 -1
  973. package/esm2022/notification/lib/notification.service.js +0 -118
  974. package/esm2022/notification/lib/notification.service.js.map +0 -1
  975. package/esm2022/notification/lib/notification.types.js +0 -6
  976. package/esm2022/notification/lib/notification.types.js.map +0 -1
  977. package/esm2022/notification/malva-ui-core-notification.js +0 -5
  978. package/esm2022/notification/malva-ui-core-notification.js.map +0 -1
  979. package/esm2022/number-input/index.js +0 -2
  980. package/esm2022/number-input/index.js.map +0 -1
  981. package/esm2022/number-input/lib/number-input/number-input.js +0 -395
  982. package/esm2022/number-input/lib/number-input/number-input.js.map +0 -1
  983. package/esm2022/number-input/malva-ui-core-number-input.js +0 -5
  984. package/esm2022/number-input/malva-ui-core-number-input.js.map +0 -1
  985. package/esm2022/page/index.js +0 -15
  986. package/esm2022/page/index.js.map +0 -1
  987. package/esm2022/page/lib/page/page-scroll.token.js +0 -9
  988. package/esm2022/page/lib/page/page-scroll.token.js.map +0 -1
  989. package/esm2022/page/lib/page/page-snap-controller.js +0 -170
  990. package/esm2022/page/lib/page/page-snap-controller.js.map +0 -1
  991. package/esm2022/page/lib/page/page-snap.directive.js +0 -65
  992. package/esm2022/page/lib/page/page-snap.directive.js.map +0 -1
  993. package/esm2022/page/lib/page/page.js +0 -173
  994. package/esm2022/page/lib/page/page.js.map +0 -1
  995. package/esm2022/page/lib/page-content/page-aside.js +0 -13
  996. package/esm2022/page/lib/page-content/page-aside.js.map +0 -1
  997. package/esm2022/page/lib/page-content/page-content.js +0 -72
  998. package/esm2022/page/lib/page-content/page-content.js.map +0 -1
  999. package/esm2022/page/lib/page-dock/page-dock.js +0 -128
  1000. package/esm2022/page/lib/page-dock/page-dock.js.map +0 -1
  1001. package/esm2022/page/lib/page-dock/page-dock.slots.js +0 -39
  1002. package/esm2022/page/lib/page-dock/page-dock.slots.js.map +0 -1
  1003. package/esm2022/page/lib/page-header/page-header.directives.js +0 -88
  1004. package/esm2022/page/lib/page-header/page-header.directives.js.map +0 -1
  1005. package/esm2022/page/lib/page-header/page-header.js +0 -124
  1006. package/esm2022/page/lib/page-header/page-header.js.map +0 -1
  1007. package/esm2022/page/lib/page-shell/page-shell-color.js +0 -193
  1008. package/esm2022/page/lib/page-shell/page-shell-color.js.map +0 -1
  1009. package/esm2022/page/lib/page-shell/page-shell-css-color.js +0 -207
  1010. package/esm2022/page/lib/page-shell/page-shell-css-color.js.map +0 -1
  1011. package/esm2022/page/lib/page-shell/page-shell.js +0 -131
  1012. package/esm2022/page/lib/page-shell/page-shell.js.map +0 -1
  1013. package/esm2022/page/lib/page-shell/page-shell.slots.js +0 -41
  1014. package/esm2022/page/lib/page-shell/page-shell.slots.js.map +0 -1
  1015. package/esm2022/page/lib/page-summary/page-summary-item.js +0 -26
  1016. package/esm2022/page/lib/page-summary/page-summary-item.js.map +0 -1
  1017. package/esm2022/page/lib/page-summary/page-summary.js +0 -87
  1018. package/esm2022/page/lib/page-summary/page-summary.js.map +0 -1
  1019. package/esm2022/page/malva-ui-core-page.js +0 -5
  1020. package/esm2022/page/malva-ui-core-page.js.map +0 -1
  1021. package/esm2022/pagination/index.js +0 -5
  1022. package/esm2022/pagination/index.js.map +0 -1
  1023. package/esm2022/pagination/lib/pagination/pagination.directives.js +0 -58
  1024. package/esm2022/pagination/lib/pagination/pagination.directives.js.map +0 -1
  1025. package/esm2022/pagination/lib/pagination/pagination.js +0 -293
  1026. package/esm2022/pagination/lib/pagination/pagination.js.map +0 -1
  1027. package/esm2022/pagination/lib/pagination/pagination.model.js +0 -1
  1028. package/esm2022/pagination/lib/pagination/pagination.model.js.map +0 -1
  1029. package/esm2022/pagination/lib/pagination/pagination.service.js +0 -108
  1030. package/esm2022/pagination/lib/pagination/pagination.service.js.map +0 -1
  1031. package/esm2022/pagination/malva-ui-core-pagination.js +0 -5
  1032. package/esm2022/pagination/malva-ui-core-pagination.js.map +0 -1
  1033. package/esm2022/pin-input/index.js +0 -3
  1034. package/esm2022/pin-input/index.js.map +0 -1
  1035. package/esm2022/pin-input/lib/pin-input/pin-input-separator.js +0 -31
  1036. package/esm2022/pin-input/lib/pin-input/pin-input-separator.js.map +0 -1
  1037. package/esm2022/pin-input/lib/pin-input/pin-input.js +0 -365
  1038. package/esm2022/pin-input/lib/pin-input/pin-input.js.map +0 -1
  1039. package/esm2022/pin-input/malva-ui-core-pin-input.js +0 -5
  1040. package/esm2022/pin-input/malva-ui-core-pin-input.js.map +0 -1
  1041. package/esm2022/popup/index.js +0 -10
  1042. package/esm2022/popup/index.js.map +0 -1
  1043. package/esm2022/popup/lib/popup/popup.js +0 -500
  1044. package/esm2022/popup/lib/popup/popup.js.map +0 -1
  1045. package/esm2022/popup/lib/popup-container/popup-container.js +0 -169
  1046. package/esm2022/popup/lib/popup-container/popup-container.js.map +0 -1
  1047. package/esm2022/popup/lib/popup-container/popup-container.token.js +0 -9
  1048. package/esm2022/popup/lib/popup-container/popup-container.token.js.map +0 -1
  1049. package/esm2022/popup/lib/popup-content.js +0 -14
  1050. package/esm2022/popup/lib/popup-content.js.map +0 -1
  1051. package/esm2022/popup/lib/popup-header-content.js +0 -26
  1052. package/esm2022/popup/lib/popup-header-content.js.map +0 -1
  1053. package/esm2022/popup/lib/popup-pinned-content.js +0 -25
  1054. package/esm2022/popup/lib/popup-pinned-content.js.map +0 -1
  1055. package/esm2022/popup/lib/popup-positions.js +0 -252
  1056. package/esm2022/popup/lib/popup-positions.js.map +0 -1
  1057. package/esm2022/popup/lib/popup-trigger/popup-trigger.js +0 -308
  1058. package/esm2022/popup/lib/popup-trigger/popup-trigger.js.map +0 -1
  1059. package/esm2022/popup/lib/popup.service.js +0 -188
  1060. package/esm2022/popup/lib/popup.service.js.map +0 -1
  1061. package/esm2022/popup/malva-ui-core-popup.js +0 -5
  1062. package/esm2022/popup/malva-ui-core-popup.js.map +0 -1
  1063. package/esm2022/progress/index.js +0 -2
  1064. package/esm2022/progress/index.js.map +0 -1
  1065. package/esm2022/progress/lib/progress/progress.js +0 -102
  1066. package/esm2022/progress/lib/progress/progress.js.map +0 -1
  1067. package/esm2022/progress/malva-ui-core-progress.js +0 -5
  1068. package/esm2022/progress/malva-ui-core-progress.js.map +0 -1
  1069. package/esm2022/radio/index.js +0 -3
  1070. package/esm2022/radio/index.js.map +0 -1
  1071. package/esm2022/radio/lib/radio/radio.js +0 -134
  1072. package/esm2022/radio/lib/radio/radio.js.map +0 -1
  1073. package/esm2022/radio/lib/radio-group/radio-group.js +0 -176
  1074. package/esm2022/radio/lib/radio-group/radio-group.js.map +0 -1
  1075. package/esm2022/radio/lib/radio-group-token.js +0 -3
  1076. package/esm2022/radio/lib/radio-group-token.js.map +0 -1
  1077. package/esm2022/radio/malva-ui-core-radio.js +0 -5
  1078. package/esm2022/radio/malva-ui-core-radio.js.map +0 -1
  1079. package/esm2022/rating/index.js +0 -2
  1080. package/esm2022/rating/index.js.map +0 -1
  1081. package/esm2022/rating/lib/rating/rating.js +0 -208
  1082. package/esm2022/rating/lib/rating/rating.js.map +0 -1
  1083. package/esm2022/rating/malva-ui-core-rating.js +0 -5
  1084. package/esm2022/rating/malva-ui-core-rating.js.map +0 -1
  1085. package/esm2022/scrollbar/index.js +0 -2
  1086. package/esm2022/scrollbar/index.js.map +0 -1
  1087. package/esm2022/scrollbar/lib/scrollbar/scrollbar.js +0 -388
  1088. package/esm2022/scrollbar/lib/scrollbar/scrollbar.js.map +0 -1
  1089. package/esm2022/scrollbar/malva-ui-core-scrollbar.js +0 -5
  1090. package/esm2022/scrollbar/malva-ui-core-scrollbar.js.map +0 -1
  1091. package/esm2022/search-field/index.js +0 -3
  1092. package/esm2022/search-field/index.js.map +0 -1
  1093. package/esm2022/search-field/lib/search-field/search-field.js +0 -535
  1094. package/esm2022/search-field/lib/search-field/search-field.js.map +0 -1
  1095. package/esm2022/search-field/lib/search-field/search-overlay-content.js +0 -35
  1096. package/esm2022/search-field/lib/search-field/search-overlay-content.js.map +0 -1
  1097. package/esm2022/search-field/malva-ui-core-search-field.js +0 -5
  1098. package/esm2022/search-field/malva-ui-core-search-field.js.map +0 -1
  1099. package/esm2022/segmented/index.js +0 -5
  1100. package/esm2022/segmented/index.js.map +0 -1
  1101. package/esm2022/segmented/lib/segmented/segmented.js +0 -248
  1102. package/esm2022/segmented/lib/segmented/segmented.js.map +0 -1
  1103. package/esm2022/segmented/lib/segmented-item/segmented-item.js +0 -194
  1104. package/esm2022/segmented/lib/segmented-item/segmented-item.js.map +0 -1
  1105. package/esm2022/segmented/lib/segmented-token.js +0 -4
  1106. package/esm2022/segmented/lib/segmented-token.js.map +0 -1
  1107. package/esm2022/segmented/lib/segmented.types.js +0 -1
  1108. package/esm2022/segmented/lib/segmented.types.js.map +0 -1
  1109. package/esm2022/segmented/malva-ui-core-segmented.js +0 -5
  1110. package/esm2022/segmented/malva-ui-core-segmented.js.map +0 -1
  1111. package/esm2022/select/index.js +0 -4
  1112. package/esm2022/select/index.js.map +0 -1
  1113. package/esm2022/select/lib/select/select.js +0 -685
  1114. package/esm2022/select/lib/select/select.js.map +0 -1
  1115. package/esm2022/select/lib/select-option.js +0 -2
  1116. package/esm2022/select/lib/select-option.js.map +0 -1
  1117. package/esm2022/select/lib/select-template.directives.js +0 -34
  1118. package/esm2022/select/lib/select-template.directives.js.map +0 -1
  1119. package/esm2022/select/malva-ui-core-select.js +0 -5
  1120. package/esm2022/select/malva-ui-core-select.js.map +0 -1
  1121. package/esm2022/sidebar/index.js +0 -16
  1122. package/esm2022/sidebar/index.js.map +0 -1
  1123. package/esm2022/sidebar/lib/sidebar/sidebar.js +0 -251
  1124. package/esm2022/sidebar/lib/sidebar/sidebar.js.map +0 -1
  1125. package/esm2022/sidebar/lib/sidebar-content.js +0 -37
  1126. package/esm2022/sidebar/lib/sidebar-content.js.map +0 -1
  1127. package/esm2022/sidebar/lib/sidebar-context.js +0 -3
  1128. package/esm2022/sidebar/lib/sidebar-context.js.map +0 -1
  1129. package/esm2022/sidebar/lib/sidebar-footer.js +0 -20
  1130. package/esm2022/sidebar/lib/sidebar-footer.js.map +0 -1
  1131. package/esm2022/sidebar/lib/sidebar-group/sidebar-group.js +0 -341
  1132. package/esm2022/sidebar/lib/sidebar-group/sidebar-group.js.map +0 -1
  1133. package/esm2022/sidebar/lib/sidebar-header.js +0 -20
  1134. package/esm2022/sidebar/lib/sidebar-header.js.map +0 -1
  1135. package/esm2022/sidebar/lib/sidebar-item/sidebar-item.js +0 -216
  1136. package/esm2022/sidebar/lib/sidebar-item/sidebar-item.js.map +0 -1
  1137. package/esm2022/sidebar/lib/sidebar-item-host.js +0 -39
  1138. package/esm2022/sidebar/lib/sidebar-item-host.js.map +0 -1
  1139. package/esm2022/sidebar/lib/sidebar-item-icon.js +0 -14
  1140. package/esm2022/sidebar/lib/sidebar-item-icon.js.map +0 -1
  1141. package/esm2022/sidebar/lib/sidebar-mode.js +0 -1
  1142. package/esm2022/sidebar/lib/sidebar-mode.js.map +0 -1
  1143. package/esm2022/sidebar/lib/sidebar-rail/sidebar-rail.js +0 -202
  1144. package/esm2022/sidebar/lib/sidebar-rail/sidebar-rail.js.map +0 -1
  1145. package/esm2022/sidebar/lib/sidebar-trigger/sidebar-trigger.js +0 -159
  1146. package/esm2022/sidebar/lib/sidebar-trigger/sidebar-trigger.js.map +0 -1
  1147. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.js +0 -35
  1148. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.js.map +0 -1
  1149. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.js +0 -107
  1150. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.js.map +0 -1
  1151. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.types.js +0 -1
  1152. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.types.js.map +0 -1
  1153. package/esm2022/sidebar/malva-ui-core-sidebar.js +0 -5
  1154. package/esm2022/sidebar/malva-ui-core-sidebar.js.map +0 -1
  1155. package/esm2022/skeleton/index.js +0 -2
  1156. package/esm2022/skeleton/index.js.map +0 -1
  1157. package/esm2022/skeleton/lib/skeleton/skeleton.js +0 -78
  1158. package/esm2022/skeleton/lib/skeleton/skeleton.js.map +0 -1
  1159. package/esm2022/skeleton/malva-ui-core-skeleton.js +0 -5
  1160. package/esm2022/skeleton/malva-ui-core-skeleton.js.map +0 -1
  1161. package/esm2022/slider/index.js +0 -3
  1162. package/esm2022/slider/index.js.map +0 -1
  1163. package/esm2022/slider/lib/slider/slider-tooltip-def.js +0 -31
  1164. package/esm2022/slider/lib/slider/slider-tooltip-def.js.map +0 -1
  1165. package/esm2022/slider/lib/slider/slider.js +0 -468
  1166. package/esm2022/slider/lib/slider/slider.js.map +0 -1
  1167. package/esm2022/slider/malva-ui-core-slider.js +0 -5
  1168. package/esm2022/slider/malva-ui-core-slider.js.map +0 -1
  1169. package/esm2022/split-pane/index.js +0 -4
  1170. package/esm2022/split-pane/index.js.map +0 -1
  1171. package/esm2022/split-pane/lib/split-pane/split-pane-panel.js +0 -49
  1172. package/esm2022/split-pane/lib/split-pane/split-pane-panel.js.map +0 -1
  1173. package/esm2022/split-pane/lib/split-pane/split-pane.js +0 -290
  1174. package/esm2022/split-pane/lib/split-pane/split-pane.js.map +0 -1
  1175. package/esm2022/split-pane/lib/split-pane/split-pane.types.js +0 -1
  1176. package/esm2022/split-pane/lib/split-pane/split-pane.types.js.map +0 -1
  1177. package/esm2022/split-pane/malva-ui-core-split-pane.js +0 -5
  1178. package/esm2022/split-pane/malva-ui-core-split-pane.js.map +0 -1
  1179. package/esm2022/status-indicator/index.js +0 -2
  1180. package/esm2022/status-indicator/index.js.map +0 -1
  1181. package/esm2022/status-indicator/lib/status-indicator/status-indicator.js +0 -71
  1182. package/esm2022/status-indicator/lib/status-indicator/status-indicator.js.map +0 -1
  1183. package/esm2022/status-indicator/malva-ui-core-status-indicator.js +0 -5
  1184. package/esm2022/status-indicator/malva-ui-core-status-indicator.js.map +0 -1
  1185. package/esm2022/stepper/index.js +0 -5
  1186. package/esm2022/stepper/index.js.map +0 -1
  1187. package/esm2022/stepper/lib/stepper/step-header.js +0 -46
  1188. package/esm2022/stepper/lib/stepper/step-header.js.map +0 -1
  1189. package/esm2022/stepper/lib/stepper/step.js +0 -65
  1190. package/esm2022/stepper/lib/stepper/step.js.map +0 -1
  1191. package/esm2022/stepper/lib/stepper/stepper-token.js +0 -4
  1192. package/esm2022/stepper/lib/stepper/stepper-token.js.map +0 -1
  1193. package/esm2022/stepper/lib/stepper/stepper.js +0 -216
  1194. package/esm2022/stepper/lib/stepper/stepper.js.map +0 -1
  1195. package/esm2022/stepper/lib/stepper/stepper.types.js +0 -1
  1196. package/esm2022/stepper/lib/stepper/stepper.types.js.map +0 -1
  1197. package/esm2022/stepper/malva-ui-core-stepper.js +0 -5
  1198. package/esm2022/stepper/malva-ui-core-stepper.js.map +0 -1
  1199. package/esm2022/switch/index.js +0 -3
  1200. package/esm2022/switch/index.js.map +0 -1
  1201. package/esm2022/switch/lib/switch/switch.js +0 -190
  1202. package/esm2022/switch/lib/switch/switch.js.map +0 -1
  1203. package/esm2022/switch/lib/switch-group/switch-group.js +0 -68
  1204. package/esm2022/switch/lib/switch-group/switch-group.js.map +0 -1
  1205. package/esm2022/switch/lib/switch-group-token.js +0 -3
  1206. package/esm2022/switch/lib/switch-group-token.js.map +0 -1
  1207. package/esm2022/switch/malva-ui-core-switch.js +0 -5
  1208. package/esm2022/switch/malva-ui-core-switch.js.map +0 -1
  1209. package/esm2022/tabs/index.js +0 -9
  1210. package/esm2022/tabs/index.js.map +0 -1
  1211. package/esm2022/tabs/lib/tab/tab.js +0 -72
  1212. package/esm2022/tabs/lib/tab/tab.js.map +0 -1
  1213. package/esm2022/tabs/lib/tab-content/tab-content.js +0 -19
  1214. package/esm2022/tabs/lib/tab-content/tab-content.js.map +0 -1
  1215. package/esm2022/tabs/lib/tab-content-def.js +0 -14
  1216. package/esm2022/tabs/lib/tab-content-def.js.map +0 -1
  1217. package/esm2022/tabs/lib/tab-def.js +0 -17
  1218. package/esm2022/tabs/lib/tab-def.js.map +0 -1
  1219. package/esm2022/tabs/lib/tab-group-token.js +0 -3
  1220. package/esm2022/tabs/lib/tab-group-token.js.map +0 -1
  1221. package/esm2022/tabs/lib/tab-item/tab-item.js +0 -44
  1222. package/esm2022/tabs/lib/tab-item/tab-item.js.map +0 -1
  1223. package/esm2022/tabs/lib/tabs/tabs.js +0 -542
  1224. package/esm2022/tabs/lib/tabs/tabs.js.map +0 -1
  1225. package/esm2022/tabs/lib/tabs.service.js +0 -83
  1226. package/esm2022/tabs/lib/tabs.service.js.map +0 -1
  1227. package/esm2022/tabs/malva-ui-core-tabs.js +0 -5
  1228. package/esm2022/tabs/malva-ui-core-tabs.js.map +0 -1
  1229. package/esm2022/textarea/index.js +0 -2
  1230. package/esm2022/textarea/index.js.map +0 -1
  1231. package/esm2022/textarea/lib/textarea/textarea.js +0 -194
  1232. package/esm2022/textarea/lib/textarea/textarea.js.map +0 -1
  1233. package/esm2022/textarea/malva-ui-core-textarea.js +0 -5
  1234. package/esm2022/textarea/malva-ui-core-textarea.js.map +0 -1
  1235. package/esm2022/tile/index.js +0 -3
  1236. package/esm2022/tile/index.js.map +0 -1
  1237. package/esm2022/tile/lib/tile/tile.js +0 -39
  1238. package/esm2022/tile/lib/tile/tile.js.map +0 -1
  1239. package/esm2022/tile/lib/tile-header.js +0 -14
  1240. package/esm2022/tile/lib/tile-header.js.map +0 -1
  1241. package/esm2022/tile/malva-ui-core-tile.js +0 -5
  1242. package/esm2022/tile/malva-ui-core-tile.js.map +0 -1
  1243. package/esm2022/time-picker/index.js +0 -2
  1244. package/esm2022/time-picker/index.js.map +0 -1
  1245. package/esm2022/time-picker/lib/time-picker/time-picker.js +0 -310
  1246. package/esm2022/time-picker/lib/time-picker/time-picker.js.map +0 -1
  1247. package/esm2022/time-picker/lib/time-picker-column/time-picker-column.js +0 -216
  1248. package/esm2022/time-picker/lib/time-picker-column/time-picker-column.js.map +0 -1
  1249. package/esm2022/time-picker/malva-ui-core-time-picker.js +0 -5
  1250. package/esm2022/time-picker/malva-ui-core-time-picker.js.map +0 -1
  1251. package/esm2022/timeline/index.js +0 -6
  1252. package/esm2022/timeline/index.js.map +0 -1
  1253. package/esm2022/timeline/lib/timeline/timeline-item-icon.js +0 -31
  1254. package/esm2022/timeline/lib/timeline/timeline-item-icon.js.map +0 -1
  1255. package/esm2022/timeline/lib/timeline/timeline-item-meta.js +0 -31
  1256. package/esm2022/timeline/lib/timeline/timeline-item-meta.js.map +0 -1
  1257. package/esm2022/timeline/lib/timeline/timeline-item.js +0 -69
  1258. package/esm2022/timeline/lib/timeline/timeline-item.js.map +0 -1
  1259. package/esm2022/timeline/lib/timeline/timeline.js +0 -36
  1260. package/esm2022/timeline/lib/timeline/timeline.js.map +0 -1
  1261. package/esm2022/timeline/lib/timeline/timeline.types.js +0 -1
  1262. package/esm2022/timeline/lib/timeline/timeline.types.js.map +0 -1
  1263. package/esm2022/timeline/malva-ui-core-timeline.js +0 -5
  1264. package/esm2022/timeline/malva-ui-core-timeline.js.map +0 -1
  1265. package/esm2022/title/index.js +0 -2
  1266. package/esm2022/title/index.js.map +0 -1
  1267. package/esm2022/title/lib/title/title.js +0 -171
  1268. package/esm2022/title/lib/title/title.js.map +0 -1
  1269. package/esm2022/title/malva-ui-core-title.js +0 -5
  1270. package/esm2022/title/malva-ui-core-title.js.map +0 -1
  1271. package/esm2022/toast/index.js +0 -13
  1272. package/esm2022/toast/index.js.map +0 -1
  1273. package/esm2022/toast/lib/abstract-toast-container.js +0 -50
  1274. package/esm2022/toast/lib/abstract-toast-container.js.map +0 -1
  1275. package/esm2022/toast/lib/abstract-toast-item.js +0 -75
  1276. package/esm2022/toast/lib/abstract-toast-item.js.map +0 -1
  1277. package/esm2022/toast/lib/abstract-toast.service.js +0 -176
  1278. package/esm2022/toast/lib/abstract-toast.service.js.map +0 -1
  1279. package/esm2022/toast/lib/toast-container/toast-container.js +0 -61
  1280. package/esm2022/toast/lib/toast-container/toast-container.js.map +0 -1
  1281. package/esm2022/toast/lib/toast-item/toast-item.js +0 -62
  1282. package/esm2022/toast/lib/toast-item/toast-item.js.map +0 -1
  1283. package/esm2022/toast/lib/toast-ref.js +0 -54
  1284. package/esm2022/toast/lib/toast-ref.js.map +0 -1
  1285. package/esm2022/toast/lib/toast-timer.js +0 -37
  1286. package/esm2022/toast/lib/toast-timer.js.map +0 -1
  1287. package/esm2022/toast/lib/toast.directives.js +0 -76
  1288. package/esm2022/toast/lib/toast.directives.js.map +0 -1
  1289. package/esm2022/toast/lib/toast.service.js +0 -127
  1290. package/esm2022/toast/lib/toast.service.js.map +0 -1
  1291. package/esm2022/toast/lib/toast.types.js +0 -39
  1292. package/esm2022/toast/lib/toast.types.js.map +0 -1
  1293. package/esm2022/toast/malva-ui-core-toast.js +0 -5
  1294. package/esm2022/toast/malva-ui-core-toast.js.map +0 -1
  1295. package/esm2022/tokenizer/index.js +0 -4
  1296. package/esm2022/tokenizer/index.js.map +0 -1
  1297. package/esm2022/tokenizer/lib/token/token.js +0 -123
  1298. package/esm2022/tokenizer/lib/token/token.js.map +0 -1
  1299. package/esm2022/tokenizer/lib/token-template.js +0 -23
  1300. package/esm2022/tokenizer/lib/token-template.js.map +0 -1
  1301. package/esm2022/tokenizer/lib/tokenizer/tokenizer.js +0 -324
  1302. package/esm2022/tokenizer/lib/tokenizer/tokenizer.js.map +0 -1
  1303. package/esm2022/tokenizer/malva-ui-core-tokenizer.js +0 -5
  1304. package/esm2022/tokenizer/malva-ui-core-tokenizer.js.map +0 -1
  1305. package/esm2022/toolbar/index.js +0 -4
  1306. package/esm2022/toolbar/index.js.map +0 -1
  1307. package/esm2022/toolbar/lib/toolbar/toolbar-spacer.js +0 -13
  1308. package/esm2022/toolbar/lib/toolbar/toolbar-spacer.js.map +0 -1
  1309. package/esm2022/toolbar/lib/toolbar/toolbar-widget.js +0 -106
  1310. package/esm2022/toolbar/lib/toolbar/toolbar-widget.js.map +0 -1
  1311. package/esm2022/toolbar/lib/toolbar/toolbar.js +0 -19
  1312. package/esm2022/toolbar/lib/toolbar/toolbar.js.map +0 -1
  1313. package/esm2022/toolbar/malva-ui-core-toolbar.js +0 -5
  1314. package/esm2022/toolbar/malva-ui-core-toolbar.js.map +0 -1
  1315. package/esm2022/tooltip/index.js +0 -4
  1316. package/esm2022/tooltip/index.js.map +0 -1
  1317. package/esm2022/tooltip/lib/tooltip/tooltip-panel.js +0 -69
  1318. package/esm2022/tooltip/lib/tooltip/tooltip-panel.js.map +0 -1
  1319. package/esm2022/tooltip/lib/tooltip/tooltip.js +0 -352
  1320. package/esm2022/tooltip/lib/tooltip/tooltip.js.map +0 -1
  1321. package/esm2022/tooltip/lib/tooltip/tooltip.types.js +0 -1
  1322. package/esm2022/tooltip/lib/tooltip/tooltip.types.js.map +0 -1
  1323. package/esm2022/tooltip/malva-ui-core-tooltip.js +0 -5
  1324. package/esm2022/tooltip/malva-ui-core-tooltip.js.map +0 -1
  1325. package/esm2022/tree/index.js +0 -5
  1326. package/esm2022/tree/index.js.map +0 -1
  1327. package/esm2022/tree/lib/tree/tree-context.js +0 -7
  1328. package/esm2022/tree/lib/tree/tree-context.js.map +0 -1
  1329. package/esm2022/tree/lib/tree/tree-node-def.js +0 -34
  1330. package/esm2022/tree/lib/tree/tree-node-def.js.map +0 -1
  1331. package/esm2022/tree/lib/tree/tree-node.js +0 -1
  1332. package/esm2022/tree/lib/tree/tree-node.js.map +0 -1
  1333. package/esm2022/tree/lib/tree/tree-subtree.js +0 -107
  1334. package/esm2022/tree/lib/tree/tree-subtree.js.map +0 -1
  1335. package/esm2022/tree/lib/tree/tree.js +0 -362
  1336. package/esm2022/tree/lib/tree/tree.js.map +0 -1
  1337. package/esm2022/tree/malva-ui-core-tree.js +0 -5
  1338. package/esm2022/tree/malva-ui-core-tree.js.map +0 -1
  1339. package/expand/index.d.ts +0 -2
  1340. package/expand/lib/expand/expand-content.d.ts +0 -26
  1341. package/expand/lib/expand/expand.d.ts +0 -74
  1342. package/expand/malva-ui-core-expand.d.ts +0 -5
  1343. package/file-upload/index.d.ts +0 -4
  1344. package/file-upload/lib/file-upload/file-upload.d.ts +0 -138
  1345. package/file-upload/lib/file-upload/file-upload.types.d.ts +0 -42
  1346. package/file-upload/lib/file-upload-action.d.ts +0 -53
  1347. package/file-upload/lib/file-upload-item/file-upload-item.d.ts +0 -30
  1348. package/file-upload/malva-ui-core-file-upload.d.ts +0 -5
  1349. package/filter/index.d.ts +0 -3
  1350. package/filter/lib/filter/filter.d.ts +0 -156
  1351. package/filter/lib/filter.types.d.ts +0 -75
  1352. package/filter/lib/smart-filter-bar/smart-filter-bar.d.ts +0 -153
  1353. package/filter/malva-ui-core-filter.d.ts +0 -5
  1354. package/form/index.d.ts +0 -6
  1355. package/form/lib/fieldset/fieldset.d.ts +0 -58
  1356. package/form/lib/fieldset-span.d.ts +0 -28
  1357. package/form/lib/form/form.d.ts +0 -37
  1358. package/form/lib/form-actions.d.ts +0 -20
  1359. package/form/lib/form-gap.d.ts +0 -5
  1360. package/form/lib/form-header.d.ts +0 -18
  1361. package/form/lib/form.types.d.ts +0 -13
  1362. package/form/malva-ui-core-form.d.ts +0 -5
  1363. package/form-utils/index.d.ts +0 -15
  1364. package/form-utils/lib/aria-value-bridge.d.ts +0 -45
  1365. package/form-utils/lib/description/description.d.ts +0 -16
  1366. package/form-utils/lib/focusable-group-base.d.ts +0 -76
  1367. package/form-utils/lib/form-control-base/signal-form-control-base.d.ts +0 -159
  1368. package/form-utils/lib/form-control-sides.d.ts +0 -20
  1369. package/form-utils/lib/form-control-wrapper/form-control-wrapper-control.d.ts +0 -6
  1370. package/form-utils/lib/form-control-wrapper/form-control-wrapper.d.ts +0 -20
  1371. package/form-utils/lib/form-field/form-field.d.ts +0 -68
  1372. package/form-utils/lib/hint/hint.d.ts +0 -5
  1373. package/form-utils/lib/label/label.d.ts +0 -22
  1374. package/form-utils/lib/message/message.d.ts +0 -7
  1375. package/form-utils/lib/models/error-display-strategy.d.ts +0 -1
  1376. package/form-utils/lib/models/form-control-connector.d.ts +0 -41
  1377. package/form-utils/lib/models/form-state.d.ts +0 -1
  1378. package/form-utils/lib/selection.service.d.ts +0 -27
  1379. package/form-utils/malva-ui-core-form-utils.d.ts +0 -5
  1380. package/form-utils/testing/index.d.ts +0 -1
  1381. package/form-utils/testing/lib/forms-binding-matrix.d.ts +0 -47
  1382. package/form-utils/testing/malva-ui-core-form-utils-testing.d.ts +0 -5
  1383. package/index.d.ts +0 -69
  1384. package/input/index.d.ts +0 -3
  1385. package/input/lib/input/input-native.d.ts +0 -36
  1386. package/input/lib/input/input-value-accessor.d.ts +0 -11
  1387. package/input/lib/input/input.d.ts +0 -189
  1388. package/input/lib/input/password-strength.d.ts +0 -34
  1389. package/input/malva-ui-core-input.d.ts +0 -5
  1390. package/kbd/index.d.ts +0 -1
  1391. package/kbd/lib/kbd/kbd.d.ts +0 -52
  1392. package/kbd/malva-ui-core-kbd.d.ts +0 -5
  1393. package/layout/index.d.ts +0 -4
  1394. package/layout/lib/layout/directives/MlvLayoutSide.d.ts +0 -6
  1395. package/layout/lib/layout/directives/MlvLayoutTop.d.ts +0 -6
  1396. package/layout/lib/layout/layout.d.ts +0 -20
  1397. package/layout/lib/layout/services/theme.service.d.ts +0 -33
  1398. package/layout/malva-ui-core-layout.d.ts +0 -5
  1399. package/link/index.d.ts +0 -2
  1400. package/link/lib/link/link.d.ts +0 -15
  1401. package/link/lib/link/link.directives.d.ts +0 -10
  1402. package/link/malva-ui-core-link.d.ts +0 -5
  1403. package/list/index.d.ts +0 -13
  1404. package/list/lib/list/list.d.ts +0 -25
  1405. package/list/lib/list-item/list-item.d.ts +0 -67
  1406. package/list/lib/list-item-actions.d.ts +0 -12
  1407. package/list/lib/list-item-byline.d.ts +0 -5
  1408. package/list/lib/list-item-group/list-item-group.d.ts +0 -11
  1409. package/list/lib/list-item-link/list-item-link.d.ts +0 -8
  1410. package/list/lib/list-item-media.d.ts +0 -5
  1411. package/list/lib/list-item-meta.d.ts +0 -5
  1412. package/list/lib/list-item-prefix.d.ts +0 -5
  1413. package/list/lib/list-item-suffix.d.ts +0 -5
  1414. package/list/lib/list-item-template.d.ts +0 -10
  1415. package/list/lib/list-item-title.d.ts +0 -5
  1416. package/list/lib/list-selectable.d.ts +0 -73
  1417. package/list/malva-ui-core-list.d.ts +0 -5
  1418. package/loader/index.d.ts +0 -1
  1419. package/loader/lib/loader/loader.d.ts +0 -84
  1420. package/loader/malva-ui-core-loader.d.ts +0 -5
  1421. package/malva-ui-core.d.ts +0 -5
  1422. package/menu/index.d.ts +0 -9
  1423. package/menu/lib/menu/menu-group-label.d.ts +0 -22
  1424. package/menu/lib/menu/menu-group.d.ts +0 -27
  1425. package/menu/lib/menu/menu-item.d.ts +0 -76
  1426. package/menu/lib/menu/menu-separator.d.ts +0 -18
  1427. package/menu/lib/menu/menu-trigger.d.ts +0 -255
  1428. package/menu/lib/menu/menu.d.ts +0 -149
  1429. package/menu/lib/menu/menu.types.d.ts +0 -13
  1430. package/menu/lib/menu/menubar.d.ts +0 -131
  1431. package/menu/lib/menu/menubar.types.d.ts +0 -82
  1432. package/menu/lib/menu/submenu-aim.d.ts +0 -10
  1433. package/menu/malva-ui-core-menu.d.ts +0 -5
  1434. package/notification/index.d.ts +0 -4
  1435. package/notification/lib/notification-item/notification-item.d.ts +0 -20
  1436. package/notification/lib/notification-ref.d.ts +0 -12
  1437. package/notification/lib/notification.service.d.ts +0 -43
  1438. package/notification/lib/notification.types.d.ts +0 -52
  1439. package/notification/malva-ui-core-notification.d.ts +0 -5
  1440. package/number-input/index.d.ts +0 -1
  1441. package/number-input/lib/number-input/number-input.d.ts +0 -162
  1442. package/number-input/malva-ui-core-number-input.d.ts +0 -5
  1443. package/page/index.d.ts +0 -14
  1444. package/page/lib/page/page-scroll.token.d.ts +0 -19
  1445. package/page/lib/page/page-snap-controller.d.ts +0 -87
  1446. package/page/lib/page/page-snap.directive.d.ts +0 -40
  1447. package/page/lib/page/page.d.ts +0 -74
  1448. package/page/lib/page-content/page-aside.d.ts +0 -7
  1449. package/page/lib/page-content/page-content.d.ts +0 -37
  1450. package/page/lib/page-dock/page-dock.d.ts +0 -50
  1451. package/page/lib/page-dock/page-dock.slots.d.ts +0 -16
  1452. package/page/lib/page-header/page-header.d.ts +0 -77
  1453. package/page/lib/page-header/page-header.directives.d.ts +0 -50
  1454. package/page/lib/page-shell/page-shell-color.d.ts +0 -48
  1455. package/page/lib/page-shell/page-shell-css-color.d.ts +0 -20
  1456. package/page/lib/page-shell/page-shell.d.ts +0 -44
  1457. package/page/lib/page-shell/page-shell.slots.d.ts +0 -16
  1458. package/page/lib/page-summary/page-summary-item.d.ts +0 -11
  1459. package/page/lib/page-summary/page-summary.d.ts +0 -36
  1460. package/page/malva-ui-core-page.d.ts +0 -5
  1461. package/pagination/index.d.ts +0 -4
  1462. package/pagination/lib/pagination/pagination.d.ts +0 -182
  1463. package/pagination/lib/pagination/pagination.directives.d.ts +0 -44
  1464. package/pagination/lib/pagination/pagination.model.d.ts +0 -6
  1465. package/pagination/lib/pagination/pagination.service.d.ts +0 -26
  1466. package/pagination/malva-ui-core-pagination.d.ts +0 -5
  1467. package/pin-input/index.d.ts +0 -2
  1468. package/pin-input/lib/pin-input/pin-input-separator.d.ts +0 -24
  1469. package/pin-input/lib/pin-input/pin-input.d.ts +0 -176
  1470. package/pin-input/malva-ui-core-pin-input.d.ts +0 -5
  1471. package/popup/index.d.ts +0 -9
  1472. package/popup/lib/popup/popup.d.ts +0 -343
  1473. package/popup/lib/popup-container/popup-container.d.ts +0 -61
  1474. package/popup/lib/popup-container/popup-container.token.d.ts +0 -34
  1475. package/popup/lib/popup-content.d.ts +0 -6
  1476. package/popup/lib/popup-header-content.d.ts +0 -18
  1477. package/popup/lib/popup-pinned-content.d.ts +0 -17
  1478. package/popup/lib/popup-positions.d.ts +0 -105
  1479. package/popup/lib/popup-trigger/popup-trigger.d.ts +0 -102
  1480. package/popup/lib/popup.service.d.ts +0 -159
  1481. package/popup/malva-ui-core-popup.d.ts +0 -5
  1482. package/progress/index.d.ts +0 -1
  1483. package/progress/lib/progress/progress.d.ts +0 -69
  1484. package/progress/malva-ui-core-progress.d.ts +0 -5
  1485. package/radio/index.d.ts +0 -2
  1486. package/radio/lib/radio/radio.d.ts +0 -87
  1487. package/radio/lib/radio-group/radio-group.d.ts +0 -35
  1488. package/radio/lib/radio-group-token.d.ts +0 -7
  1489. package/radio/malva-ui-core-radio.d.ts +0 -5
  1490. package/rating/index.d.ts +0 -1
  1491. package/rating/lib/rating/rating.d.ts +0 -100
  1492. package/rating/malva-ui-core-rating.d.ts +0 -5
  1493. package/scrollbar/index.d.ts +0 -1
  1494. package/scrollbar/lib/scrollbar/scrollbar.d.ts +0 -166
  1495. package/scrollbar/malva-ui-core-scrollbar.d.ts +0 -5
  1496. package/search-field/index.d.ts +0 -2
  1497. package/search-field/lib/search-field/search-field.d.ts +0 -347
  1498. package/search-field/lib/search-field/search-overlay-content.d.ts +0 -59
  1499. package/search-field/malva-ui-core-search-field.d.ts +0 -5
  1500. package/segmented/index.d.ts +0 -4
  1501. package/segmented/lib/segmented/segmented.d.ts +0 -80
  1502. package/segmented/lib/segmented-item/segmented-item.d.ts +0 -89
  1503. package/segmented/lib/segmented-token.d.ts +0 -22
  1504. package/segmented/lib/segmented.types.d.ts +0 -9
  1505. package/segmented/malva-ui-core-segmented.d.ts +0 -5
  1506. package/select/index.d.ts +0 -3
  1507. package/select/lib/select/select.d.ts +0 -379
  1508. package/select/lib/select-option.d.ts +0 -1
  1509. package/select/lib/select-template.directives.d.ts +0 -14
  1510. package/select/malva-ui-core-select.d.ts +0 -5
  1511. package/sidebar/index.d.ts +0 -15
  1512. package/sidebar/lib/sidebar/sidebar.d.ts +0 -134
  1513. package/sidebar/lib/sidebar-content.d.ts +0 -11
  1514. package/sidebar/lib/sidebar-context.d.ts +0 -23
  1515. package/sidebar/lib/sidebar-footer.d.ts +0 -9
  1516. package/sidebar/lib/sidebar-group/sidebar-group.d.ts +0 -127
  1517. package/sidebar/lib/sidebar-header.d.ts +0 -9
  1518. package/sidebar/lib/sidebar-item/sidebar-item.d.ts +0 -104
  1519. package/sidebar/lib/sidebar-item-host.d.ts +0 -18
  1520. package/sidebar/lib/sidebar-item-icon.d.ts +0 -6
  1521. package/sidebar/lib/sidebar-mode.d.ts +0 -2
  1522. package/sidebar/lib/sidebar-rail/sidebar-rail.d.ts +0 -54
  1523. package/sidebar/lib/sidebar-trigger/sidebar-trigger.d.ts +0 -67
  1524. package/sidebar/lib/sidebar-workspace/sidebar-workspace.d.ts +0 -54
  1525. package/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.d.ts +0 -19
  1526. package/sidebar/lib/sidebar-workspace/sidebar-workspace.types.d.ts +0 -20
  1527. package/sidebar/malva-ui-core-sidebar.d.ts +0 -5
  1528. package/skeleton/index.d.ts +0 -1
  1529. package/skeleton/lib/skeleton/skeleton.d.ts +0 -60
  1530. package/skeleton/malva-ui-core-skeleton.d.ts +0 -5
  1531. package/slider/index.d.ts +0 -2
  1532. package/slider/lib/slider/slider-tooltip-def.d.ts +0 -39
  1533. package/slider/lib/slider/slider.d.ts +0 -171
  1534. package/slider/malva-ui-core-slider.d.ts +0 -5
  1535. package/split-pane/index.d.ts +0 -3
  1536. package/split-pane/lib/split-pane/split-pane-panel.d.ts +0 -34
  1537. package/split-pane/lib/split-pane/split-pane.d.ts +0 -98
  1538. package/split-pane/lib/split-pane/split-pane.types.d.ts +0 -7
  1539. package/split-pane/malva-ui-core-split-pane.d.ts +0 -5
  1540. package/status-indicator/index.d.ts +0 -1
  1541. package/status-indicator/lib/status-indicator/status-indicator.d.ts +0 -61
  1542. package/status-indicator/malva-ui-core-status-indicator.d.ts +0 -5
  1543. package/stepper/index.d.ts +0 -4
  1544. package/stepper/lib/stepper/step-header.d.ts +0 -34
  1545. package/stepper/lib/stepper/step.d.ts +0 -51
  1546. package/stepper/lib/stepper/stepper-token.d.ts +0 -13
  1547. package/stepper/lib/stepper/stepper.d.ts +0 -98
  1548. package/stepper/lib/stepper/stepper.types.d.ts +0 -4
  1549. package/stepper/malva-ui-core-stepper.d.ts +0 -5
  1550. package/switch/index.d.ts +0 -2
  1551. package/switch/lib/switch/switch.d.ts +0 -118
  1552. package/switch/lib/switch-group/switch-group.d.ts +0 -24
  1553. package/switch/lib/switch-group-token.d.ts +0 -6
  1554. package/switch/malva-ui-core-switch.d.ts +0 -5
  1555. package/tabs/index.d.ts +0 -8
  1556. package/tabs/lib/tab/tab.d.ts +0 -46
  1557. package/tabs/lib/tab-content/tab-content.d.ts +0 -11
  1558. package/tabs/lib/tab-content-def.d.ts +0 -6
  1559. package/tabs/lib/tab-def.d.ts +0 -11
  1560. package/tabs/lib/tab-group-token.d.ts +0 -10
  1561. package/tabs/lib/tab-item/tab-item.d.ts +0 -28
  1562. package/tabs/lib/tabs/tabs.d.ts +0 -202
  1563. package/tabs/lib/tabs.service.d.ts +0 -24
  1564. package/tabs/malva-ui-core-tabs.d.ts +0 -5
  1565. package/textarea/index.d.ts +0 -1
  1566. package/textarea/lib/textarea/textarea.d.ts +0 -77
  1567. package/textarea/malva-ui-core-textarea.d.ts +0 -5
  1568. package/tile/index.d.ts +0 -2
  1569. package/tile/lib/tile/tile.d.ts +0 -20
  1570. package/tile/lib/tile-header.d.ts +0 -6
  1571. package/tile/malva-ui-core-tile.d.ts +0 -5
  1572. package/time-picker/index.d.ts +0 -1
  1573. package/time-picker/lib/time-picker/time-picker.d.ts +0 -135
  1574. package/time-picker/lib/time-picker-column/time-picker-column.d.ts +0 -111
  1575. package/time-picker/malva-ui-core-time-picker.d.ts +0 -5
  1576. package/timeline/index.d.ts +0 -5
  1577. package/timeline/lib/timeline/timeline-item-icon.d.ts +0 -24
  1578. package/timeline/lib/timeline/timeline-item-meta.d.ts +0 -24
  1579. package/timeline/lib/timeline/timeline-item.d.ts +0 -52
  1580. package/timeline/lib/timeline/timeline.d.ts +0 -27
  1581. package/timeline/lib/timeline/timeline.types.d.ts +0 -18
  1582. package/timeline/malva-ui-core-timeline.d.ts +0 -5
  1583. package/title/index.d.ts +0 -1
  1584. package/title/lib/title/title.d.ts +0 -63
  1585. package/title/malva-ui-core-title.d.ts +0 -5
  1586. package/toast/index.d.ts +0 -10
  1587. package/toast/lib/abstract-toast-container.d.ts +0 -29
  1588. package/toast/lib/abstract-toast-item.d.ts +0 -44
  1589. package/toast/lib/abstract-toast.service.d.ts +0 -75
  1590. package/toast/lib/toast-container/toast-container.d.ts +0 -23
  1591. package/toast/lib/toast-item/toast-item.d.ts +0 -25
  1592. package/toast/lib/toast-ref.d.ts +0 -33
  1593. package/toast/lib/toast-timer.d.ts +0 -24
  1594. package/toast/lib/toast.directives.d.ts +0 -13
  1595. package/toast/lib/toast.service.d.ts +0 -41
  1596. package/toast/lib/toast.types.d.ts +0 -139
  1597. package/toast/malva-ui-core-toast.d.ts +0 -5
  1598. package/tokenizer/index.d.ts +0 -3
  1599. package/tokenizer/lib/token/token.d.ts +0 -60
  1600. package/tokenizer/lib/token-template.d.ts +0 -29
  1601. package/tokenizer/lib/tokenizer/tokenizer.d.ts +0 -109
  1602. package/tokenizer/malva-ui-core-tokenizer.d.ts +0 -5
  1603. package/toolbar/index.d.ts +0 -3
  1604. package/toolbar/lib/toolbar/toolbar-spacer.d.ts +0 -5
  1605. package/toolbar/lib/toolbar/toolbar-widget.d.ts +0 -75
  1606. package/toolbar/lib/toolbar/toolbar.d.ts +0 -8
  1607. package/toolbar/malva-ui-core-toolbar.d.ts +0 -5
  1608. package/tooltip/index.d.ts +0 -3
  1609. package/tooltip/lib/tooltip/tooltip-panel.d.ts +0 -26
  1610. package/tooltip/lib/tooltip/tooltip.d.ts +0 -148
  1611. package/tooltip/lib/tooltip/tooltip.types.d.ts +0 -17
  1612. package/tooltip/malva-ui-core-tooltip.d.ts +0 -5
  1613. package/tree/index.d.ts +0 -4
  1614. package/tree/lib/tree/tree-context.d.ts +0 -62
  1615. package/tree/lib/tree/tree-node-def.d.ts +0 -33
  1616. package/tree/lib/tree/tree-node.d.ts +0 -45
  1617. package/tree/lib/tree/tree-subtree.d.ts +0 -63
  1618. package/tree/lib/tree/tree.d.ts +0 -156
  1619. package/tree/malva-ui-core-tree.d.ts +0 -5
@@ -0,0 +1,994 @@
1
+ import * as i0 from '@angular/core';
2
+ import { signal, Pipe, input, output, computed, inject, viewChild, ElementRef, effect, afterNextRender, isDevMode, untracked, afterRenderEffect, ChangeDetectionStrategy, ViewEncapsulation, Component, DestroyRef } from '@angular/core';
3
+ import { DOCUMENT, NgTemplateOutlet } from '@angular/common';
4
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
5
+ import { MlvListSelectable, MlvList, MlvListItem, MlvListItemSelectable } from '@malva-ui/core/list';
6
+ import { LucideCheck } from '@lucide/angular';
7
+ import { MlvSelectionService } from '@malva-ui/core/form-utils';
8
+ import { MlvScrollbar } from '@malva-ui/core/scrollbar';
9
+ import { MlvInfiniteScroll } from '@malva-ui/cdk/infinite-scroll';
10
+ import { normalizeForMatch, mlvNextId } from '@malva-ui/cdk/utils';
11
+ export { normalizeForMatch } from '@malva-ui/cdk/utils';
12
+ import { fromEvent, startWith, of, from, isObservable } from 'rxjs';
13
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
14
+ import { MlvArrayDataSource, MlvDataSource } from '@malva-ui/cdk/data-source';
15
+ import { take } from 'rxjs/operators';
16
+
17
+ function defaultOptionTransform(item) {
18
+ return isSelectOption(item) ? item : { label: String(item), value: item };
19
+ }
20
+ function isSelectOption(value) {
21
+ if (!value || typeof value !== 'object')
22
+ return false;
23
+ const candidate = value;
24
+ return !!candidate.label && !!candidate.value;
25
+ }
26
+ /**
27
+ * Type-guard predicate: whether an array of resolved options is "grouped",
28
+ * i.e. at least one option carries a non-empty {@link MlvSelectOption.group} label.
29
+ *
30
+ * The dropdown panel uses this to decide whether to render sticky group headers.
31
+ * Returns `false` for empty arrays and for arrays where no option declares a
32
+ * group, so ungrouped `MlvSelectOption` arrays (and plain primitive arrays) render
33
+ * exactly as before.
34
+ */
35
+ function hasOptionGroups(options) {
36
+ return options.some((option) => !!option.group);
37
+ }
38
+ function resolveOptions(items, transform) {
39
+ return items.map(transform);
40
+ }
41
+
42
+ /**
43
+ * Builds the deterministic DOM `id` for the option row at `index` within a
44
+ * listbox, matching the id `mlv-dropdown-panel` stamps on each option. An
45
+ * owning combobox / autocomplete computes the same id to point its input's
46
+ * `aria-activedescendant` at the active row.
47
+ *
48
+ * This is the single source of truth for the activedescendant option-id format
49
+ * (`<listboxId>-option-<index>`), shared by `mlv-dropdown-panel`,
50
+ * `mlv-combobox`, and `[mlvAutocomplete]` so the id the panel renders and the
51
+ * id the trigger references can never drift.
52
+ *
53
+ * @param listboxId - The id of the listbox that owns the option.
54
+ * @param index - The option's flat index within the listbox.
55
+ * @returns The option's DOM id, e.g. `"my-listbox-option-3"`.
56
+ */
57
+ function optionId(listboxId, index) {
58
+ return `${listboxId}-option-${index}`;
59
+ }
60
+ /**
61
+ * Signal-backed bookkeeping for the "active option" index of a WAI-ARIA
62
+ * activedescendant keyboard model — the shared engine behind `mlv-combobox`
63
+ * and `[mlvAutocomplete]`, where DOM focus stays on the text input and the
64
+ * highlighted option is tracked purely by index (mirrored into the input's
65
+ * `aria-activedescendant`).
66
+ *
67
+ * The active index is `-1` when no option is active. {@link move} advances it
68
+ * with wrap-around, treating a first move from `-1` as landing on the first
69
+ * (forward) or last (backward) option; {@link first} / {@link last} jump to the
70
+ * ends; {@link reset} clears it back to `-1`. The current option count is read
71
+ * lazily through the accessor supplied at construction, so the owner can back it
72
+ * with any signal / computed (e.g. a filtered-options length) without pushing
73
+ * the count on every keystroke.
74
+ */
75
+ class MlvActiveDescendant {
76
+ _count;
77
+ /** @private The active option index; `-1` = no active option. */
78
+ _index = signal(-1, /* @ts-ignore */
79
+ ...(ngDevMode ? [{ debugName: "_index" }] : /* istanbul ignore next */ []));
80
+ /**
81
+ * The active option index as a read-only signal; `-1` when no option is
82
+ * active. Read it reactively (template / effect) or imperatively (call it in
83
+ * an event handler) — both track the same underlying state.
84
+ */
85
+ index = this._index.asReadonly();
86
+ /**
87
+ * @param _count Accessor returning the current number of navigable options.
88
+ * Read lazily on each {@link move} / {@link first} / {@link last} call, so it
89
+ * always reflects the live count (e.g. after the options are filtered).
90
+ */
91
+ constructor(_count) {
92
+ this._count = _count;
93
+ }
94
+ /**
95
+ * Advances the active option by `delta` with wrap-around. With no option
96
+ * active (`-1`), a forward move (`delta > 0`) lands on the first option and a
97
+ * backward move (`delta < 0`) on the last; otherwise the index wraps modulo
98
+ * the option count. Resets to `-1` when there are no options.
99
+ *
100
+ * @param delta Step to move by (`+1` next, `-1` previous).
101
+ */
102
+ move(delta) {
103
+ const count = this._count();
104
+ if (count === 0) {
105
+ this._index.set(-1);
106
+ return;
107
+ }
108
+ const current = this._index();
109
+ const next = current < 0
110
+ ? delta > 0
111
+ ? 0
112
+ : count - 1
113
+ : (current + delta + count) % count;
114
+ this._index.set(next);
115
+ }
116
+ /** Activates the first option. No-op when there are no options. */
117
+ first() {
118
+ if (this._count() > 0)
119
+ this._index.set(0);
120
+ }
121
+ /** Activates the last option. No-op when there are no options. */
122
+ last() {
123
+ const count = this._count();
124
+ if (count > 0)
125
+ this._index.set(count - 1);
126
+ }
127
+ /** Clears the active option back to `-1` (nothing active). */
128
+ reset() {
129
+ this._index.set(-1);
130
+ }
131
+ }
132
+
133
+ /**
134
+ * The default option matcher: a case- and diacritic-insensitive substring match
135
+ * on {@link MlvSelectOption.label}. An empty (or whitespace-only) query matches
136
+ * every option.
137
+ *
138
+ * @param option - The option to test.
139
+ * @param query - The current search query (already trimmed by callers).
140
+ * @returns Whether the option label contains the query.
141
+ */
142
+ function defaultOptionMatcher(option, query) {
143
+ const q = normalizeForMatch(query.trim());
144
+ if (!q)
145
+ return true;
146
+ return normalizeForMatch(option.label).includes(q);
147
+ }
148
+ /**
149
+ * Filters a list of resolved options against a query using `matcher`
150
+ * ({@link defaultOptionMatcher} by default), then ranks **prefix matches
151
+ * first** ({@link rankPrefixMatchesFirst}) so the top suggestion is the one an
152
+ * inline completion can extend (`"Pe"` ranks `"Pear"` above `"Grape"`). A blank
153
+ * query returns a shallow copy of every option — the "show everything" state a
154
+ * combobox / autocomplete shows on focus. This is the single shared
155
+ * implementation of the substring filter that previously lived inline in
156
+ * `mlv-combobox`.
157
+ *
158
+ * @param options - The resolved options to filter.
159
+ * @param query - The raw search query (trimmed internally).
160
+ * @param matcher - Optional custom predicate; defaults to substring matching.
161
+ * @returns The matcher-satisfying options, prefix matches ranked first (all
162
+ * options, unranked, for a blank query).
163
+ */
164
+ function filterOptions(options, query, matcher = defaultOptionMatcher) {
165
+ const q = query.trim();
166
+ if (!q)
167
+ return [...options];
168
+ return rankPrefixMatchesFirst(options.filter((option) => matcher(option, q)), q);
169
+ }
170
+ /**
171
+ * Stable-partitions filtered options so labels that **start with** the query
172
+ * (case- and diacritic-insensitive) come before the remaining matches, keeping
173
+ * the original relative order inside each partition.
174
+ *
175
+ * Grouped options ({@link MlvSelectOption.group}) are ranked **within each
176
+ * consecutive same-group run** only — runs themselves never move or merge, so
177
+ * the panel's consecutive-run group rendering (sticky headers, flat-index
178
+ * alignment) is preserved. An ungrouped list is a single run and gets the full
179
+ * prefix-first ordering.
180
+ *
181
+ * @param options - The already-filtered options.
182
+ * @param query - The trimmed, non-empty query.
183
+ * @returns The options with prefix matches ranked first per group run.
184
+ */
185
+ function rankPrefixMatchesFirst(options, query) {
186
+ const q = normalizeForMatch(query);
187
+ const ranked = [];
188
+ let runStart = 0;
189
+ for (let i = 1; i <= options.length; i++) {
190
+ const runEnded = i === options.length ||
191
+ (options[i].group ?? '') !== (options[runStart].group ?? '');
192
+ if (!runEnded)
193
+ continue;
194
+ const run = options.slice(runStart, i);
195
+ const prefixed = [];
196
+ const rest = [];
197
+ for (const option of run) {
198
+ (normalizeForMatch(option.label).startsWith(q) ? prefixed : rest).push(option);
199
+ }
200
+ ranked.push(...prefixed, ...rest);
201
+ runStart = i;
202
+ }
203
+ return ranked;
204
+ }
205
+ /**
206
+ * Splits `label` into matched / unmatched {@link MlvMatchSegment}s for the first
207
+ * occurrence of `query`, so consumers can emphasise the matched substring in a
208
+ * suggestion (e.g. wrapping matched slices in `<mark>`).
209
+ *
210
+ * Matching is case- and diacritic-insensitive ({@link normalizeForMatch}); the
211
+ * returned segment `text` preserves the **original** label casing/diacritics.
212
+ * Because NFD folding can change string length (e.g. `"é"` → `"e"` + combining
213
+ * mark), the search runs over a per-code-point folded projection with an index
214
+ * map back to the original code points, keeping the highlighted slice aligned
215
+ * with the source label. Only the first match is highlighted.
216
+ *
217
+ * @param label - The option label to segment.
218
+ * @param query - The query to highlight within the label.
219
+ * @returns Ordered segments covering the whole label; a single unmatched
220
+ * segment when the query is empty or not found.
221
+ */
222
+ function matchSegments(label, query) {
223
+ const q = normalizeForMatch(query.trim());
224
+ if (!q)
225
+ return [{ text: label, matched: false }];
226
+ // Work in code points so surrogate pairs (e.g. emoji) are not split.
227
+ const chars = [...label];
228
+ let folded = '';
229
+ // For each folded code-unit position, the index of the originating code point.
230
+ const originIndex = [];
231
+ chars.forEach((char, index) => {
232
+ const foldedChar = normalizeForMatch(char);
233
+ for (const unit of foldedChar) {
234
+ folded += unit;
235
+ originIndex.push(index);
236
+ }
237
+ });
238
+ const start = folded.indexOf(q);
239
+ if (start === -1)
240
+ return [{ text: label, matched: false }];
241
+ const originStart = originIndex[start];
242
+ const originEnd = originIndex[start + q.length - 1];
243
+ const before = chars.slice(0, originStart).join('');
244
+ const match = chars.slice(originStart, originEnd + 1).join('');
245
+ const after = chars.slice(originEnd + 1).join('');
246
+ const segments = [];
247
+ if (before)
248
+ segments.push({ text: before, matched: false });
249
+ segments.push({ text: match, matched: true });
250
+ if (after)
251
+ segments.push({ text: after, matched: false });
252
+ return segments;
253
+ }
254
+
255
+ /**
256
+ * Splits a label into matched / unmatched {@link MlvMatchSegment}s for the given
257
+ * query so a template can emphasise the matched substring (case- and
258
+ * diacritic-insensitive; see {@link matchSegments}). Used by
259
+ * `mlv-dropdown-panel` to highlight the query inside each suggestion.
260
+ *
261
+ * @example
262
+ * ```html
263
+ * @for (seg of option.label | mlvHighlightMatch:query; track $index) {
264
+ * @if (seg.matched) { <mark>{{ seg.text }}</mark> }
265
+ * @else { {{ seg.text }} }
266
+ * }
267
+ * ```
268
+ */
269
+ class MlvHighlightMatchPipe {
270
+ /**
271
+ * @param label - The label to segment. Nullish input yields an empty result.
272
+ * @param query - The query to highlight; empty query returns one unmatched
273
+ * segment containing the whole label.
274
+ */
275
+ transform(label, query) {
276
+ if (!label)
277
+ return [];
278
+ return matchSegments(label, query ?? '');
279
+ }
280
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvHighlightMatchPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
281
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: MlvHighlightMatchPipe, isStandalone: true, name: "mlvHighlightMatch" });
282
+ }
283
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvHighlightMatchPipe, decorators: [{
284
+ type: Pipe,
285
+ args: [{ name: 'mlvHighlightMatch' }]
286
+ }] });
287
+
288
+ class MlvDropdownPanel {
289
+ /**
290
+ * Chooses the single scroll owner for this panel.
291
+ *
292
+ * Standalone panels scroll themselves. Panels composed inside `mlv-popup`
293
+ * delegate to the popup so the DOM never contains nested scroll regions.
294
+ */
295
+ scrollMode = input('self', /* @ts-ignore */
296
+ ...(ngDevMode ? [{ debugName: "scrollMode" }] : /* istanbul ignore next */ []));
297
+ minHeight = input(0, /* @ts-ignore */
298
+ ...(ngDevMode ? [{ debugName: "minHeight" }] : /* istanbul ignore next */ []));
299
+ maxHeight = input(0, /* @ts-ignore */
300
+ ...(ngDevMode ? [{ debugName: "maxHeight" }] : /* istanbul ignore next */ []));
301
+ options = input([], /* @ts-ignore */
302
+ ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
303
+ /** Whether multiple options can be selected. */
304
+ multiple = input(false, { ...(ngDevMode ? { debugName: "multiple" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
305
+ selectedValues = input([], /* @ts-ignore */
306
+ ...(ngDevMode ? [{ debugName: "selectedValues" }] : /* istanbul ignore next */ []));
307
+ itemTemplate = input(null, /* @ts-ignore */
308
+ ...(ngDevMode ? [{ debugName: "itemTemplate" }] : /* istanbul ignore next */ []));
309
+ /**
310
+ * Focus strategy forwarded to the inner aria listbox.
311
+ *
312
+ * - `'roving'` (default) — DOM focus moves onto the active option (`tabindex`).
313
+ * Used by `mlv-select`.
314
+ * - `'activedescendant'` — DOM focus stays on the owning trigger/input; the
315
+ * active option is tracked via `aria-activedescendant`. Used by
316
+ * `mlv-combobox`, whose text input must retain focus so typing keeps
317
+ * working while navigating options.
318
+ */
319
+ focusMode = input('roving', /* @ts-ignore */
320
+ ...(ngDevMode ? [{ debugName: "focusMode" }] : /* istanbul ignore next */ []));
321
+ /**
322
+ * Index of the option that is visually "active" (highlighted) under the
323
+ * activedescendant model. `-1` (default) means no active option. The panel
324
+ * renders a deterministic `[id]` on each option (`<listboxId>-option-<index>`)
325
+ * so an owning combobox can point its input's `aria-activedescendant` at the
326
+ * active row and keep the highlight in sync.
327
+ */
328
+ activeIndex = input(-1, /* @ts-ignore */
329
+ ...(ngDevMode ? [{ debugName: "activeIndex" }] : /* istanbul ignore next */ []));
330
+ /**
331
+ * Optional HTML `id` to assign to the inner `<mlv-list>` listbox element.
332
+ * Allows a parent combobox or select to reference this listbox via `aria-controls`.
333
+ */
334
+ listboxId = input(null, /* @ts-ignore */
335
+ ...(ngDevMode ? [{ debugName: "listboxId" }] : /* istanbul ignore next */ []));
336
+ /**
337
+ * Accessible name rendered as `aria-label` on the inner listbox. `role="listbox"`
338
+ * is an ARIA input field, so a panel that is not already named through an owning
339
+ * control (`mlv-filter`'s popover, for instance) needs one to satisfy WCAG 4.1.2.
340
+ * `null` (default) renders no attribute.
341
+ */
342
+ ariaLabel = input(null, /* @ts-ignore */
343
+ ...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
344
+ /**
345
+ * When non-empty, the default option row emphasises the matched substring of
346
+ * this query inside each suggestion label (case- and diacritic-insensitive;
347
+ * see {@link MlvHighlightMatchPipe}). Ignored for rows rendered by a custom
348
+ * {@link itemTemplate}. Empty (default) renders the label as plain text —
349
+ * ungrouped, un-highlighted lists are byte-for-byte unchanged.
350
+ */
351
+ highlightQuery = input('', /* @ts-ignore */
352
+ ...(ngDevMode ? [{ debugName: "highlightQuery" }] : /* istanbul ignore next */ []));
353
+ /**
354
+ * When `true`, the panel renders a loading affordance instead of the option
355
+ * list / empty state — used by `[mlvAutocomplete]` while an async `search`
356
+ * resolves. The {@link loadingText} is announced politely.
357
+ */
358
+ loading = input(false, { ...(ngDevMode ? { debugName: "loading" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
359
+ /**
360
+ * Text shown (and announced) inside the loading affordance while
361
+ * {@link loading} is `true`. Localise by binding a translated string.
362
+ * @default 'Loading…'
363
+ */
364
+ loadingText = input('Loading…', /* @ts-ignore */
365
+ ...(ngDevMode ? [{ debugName: "loadingText" }] : /* istanbul ignore next */ []));
366
+ /**
367
+ * When `true`, a page beyond the first is being fetched: renders a polite
368
+ * bottom status row (`loadingText`) after the last option. The listbox and
369
+ * existing options stay interactive.
370
+ * @default false
371
+ */
372
+ loadingMore = input(false, { ...(ngDevMode ? { debugName: "loadingMore" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
373
+ /**
374
+ * Whether more pages exist. When `true` the panel observes its scroll owner
375
+ * and emits {@link loadMore} as the user nears the end of the list.
376
+ * @default false
377
+ */
378
+ hasMore = input(false, { ...(ngDevMode ? { debugName: "hasMore" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
379
+ /** Distance (px) from the end of the scroll owner at which {@link loadMore} fires. */
380
+ infiniteScrollThreshold = input(150, /* @ts-ignore */
381
+ ...(ngDevMode ? [{ debugName: "infiniteScrollThreshold" }] : /* istanbul ignore next */ []));
382
+ /** Emits when the user scrolls within `infiniteScrollThreshold` of the end while `hasMore`. */
383
+ loadMore = output();
384
+ /**
385
+ * @protected Effective listbox id forwarded to the aria `Listbox.id` input on
386
+ * the inner `<mlv-list>`. Uses the consumer-provided {@link listboxId} when
387
+ * set, otherwise a stable generated fallback so the rendered listbox always
388
+ * carries a valid unique DOM id (aria would otherwise mint its own, breaking
389
+ * a parent trigger's `aria-controls` linkage).
390
+ */
391
+ _resolvedListboxId = computed(() => this.listboxId() ?? this._fallbackListboxId, /* @ts-ignore */
392
+ ...(ngDevMode ? [{ debugName: "_resolvedListboxId" }] : /* istanbul ignore next */ []));
393
+ /** @private Stable generated id used when no `listboxId` is supplied. */
394
+ _fallbackListboxId = mlvNextId('mlv-dropdown-listbox');
395
+ /**
396
+ * @protected Whether the current options declare groups (at least one option
397
+ * carries a non-empty `group`). When `false` the template renders the exact
398
+ * flat option list as before — plain / ungrouped arrays are unaffected.
399
+ */
400
+ _isGrouped = computed(() => hasOptionGroups(this.options()), /* @ts-ignore */
401
+ ...(ngDevMode ? [{ debugName: "_isGrouped" }] : /* istanbul ignore next */ []));
402
+ /**
403
+ * @protected The options clustered into consecutive same-group runs for
404
+ * rendering under sticky headers. Consecutive-run grouping (no reordering)
405
+ * keeps DOM order identical to the flat `options()` order, so option indices,
406
+ * `optionId`, `activeIndex`, and aria's DOM-order navigation all stay aligned.
407
+ * Each entry retains its flat index into `options()`. A run of options without
408
+ * a group (empty/undefined) becomes a headerless cluster (`label: null`).
409
+ */
410
+ _groups = computed(() => {
411
+ const listboxId = this._resolvedListboxId();
412
+ const groups = [];
413
+ this.options().forEach((option, index) => {
414
+ const label = option.group ? option.group : null;
415
+ const current = groups[groups.length - 1];
416
+ if (current && current.label === label) {
417
+ current.entries.push({ option, index });
418
+ }
419
+ else {
420
+ groups.push({
421
+ label,
422
+ headerId: label ? `${listboxId}-group-${groups.length}` : null,
423
+ entries: [{ option, index }],
424
+ });
425
+ }
426
+ });
427
+ return groups;
428
+ }, /* @ts-ignore */
429
+ ...(ngDevMode ? [{ debugName: "_groups" }] : /* istanbul ignore next */ []));
430
+ /** @protected Effective max panel height in px — the `maxHeight` input when set, else the viewport-derived default. */
431
+ _calculatedMaxHeight = computed(() => {
432
+ const inputMaxHeight = this.maxHeight();
433
+ return inputMaxHeight > 0 ? inputMaxHeight : this._defaultMaxHeight();
434
+ }, /* @ts-ignore */
435
+ ...(ngDevMode ? [{ debugName: "_calculatedMaxHeight" }] : /* istanbul ignore next */ []));
436
+ valueChange = output();
437
+ /** @private Selection service coordinating focus-first requests from a parent select/combobox. */
438
+ _selectionService = inject(MlvSelectionService);
439
+ /** @private Set of currently selected values for O(1) membership checks. */
440
+ _selectedSet = computed(() => new Set(this.selectedValues()), /* @ts-ignore */
441
+ ...(ngDevMode ? [{ debugName: "_selectedSet" }] : /* istanbul ignore next */ []));
442
+ /** @private Default max panel height (px) derived from the viewport height. */
443
+ _defaultMaxHeight = signal(0, /* @ts-ignore */
444
+ ...(ngDevMode ? [{ debugName: "_defaultMaxHeight" }] : /* istanbul ignore next */ []));
445
+ /** @private The inner selectable list directive, used to move focus to the first option. */
446
+ _listSelectable = viewChild(MlvListSelectable, /* @ts-ignore */
447
+ ...(ngDevMode ? [{ debugName: "_listSelectable" }] : /* istanbul ignore next */ []));
448
+ /** @private The panel's own scrollbar (`scrollMode="self"` only). */
449
+ _scrollbar = viewChild(MlvScrollbar, /* @ts-ignore */
450
+ ...(ngDevMode ? [{ debugName: "_scrollbar" }] : /* istanbul ignore next */ []));
451
+ /** @private The sentinel-hosted infinite-scroll directive, re-checked after each option append. */
452
+ _infiniteScroll = viewChild(MlvInfiniteScroll, /* @ts-ignore */
453
+ ...(ngDevMode ? [{ debugName: "_infiniteScroll" }] : /* istanbul ignore next */ []));
454
+ /**
455
+ * @protected The element that actually scrolls: the panel's own scrollbar
456
+ * viewport (`scrollMode="self"`) or the nearest ancestor `mlv-scrollbar`
457
+ * viewport — the owning `mlv-popup`'s — in parent mode. Resolved after the
458
+ * first render; the sentinel directive stays disabled until then.
459
+ */
460
+ _scrollContainer = signal(null, /* @ts-ignore */
461
+ ...(ngDevMode ? [{ debugName: "_scrollContainer" }] : /* istanbul ignore next */ []));
462
+ /**
463
+ * @private Whether the scroll-owner lookup has already run. It needs the first
464
+ * render, so a `null` {@link _scrollContainer} before that means "not resolved
465
+ * yet", not "no owner" — the dev warning must not fire on it.
466
+ */
467
+ _scrollOwnerResolved = signal(false, /* @ts-ignore */
468
+ ...(ngDevMode ? [{ debugName: "_scrollOwnerResolved" }] : /* istanbul ignore next */ []));
469
+ /** @private Latches the dev-mode "no scroll owner" warning to once per panel. */
470
+ _warnedNoScrollOwner = false;
471
+ /** @private Host element, used to scroll the active option into view (activedescendant model). */
472
+ _host = inject(ElementRef);
473
+ /** @private Angular-provided document used to access the browser viewport safely. */
474
+ _document = inject(DOCUMENT);
475
+ constructor() {
476
+ const viewport = this._document.defaultView;
477
+ if (viewport) {
478
+ fromEvent(viewport, 'resize')
479
+ .pipe(startWith(null), takeUntilDestroyed())
480
+ .subscribe(() => {
481
+ this._defaultMaxHeight.set(viewport.innerHeight * 0.4);
482
+ });
483
+ }
484
+ this._selectionService.focusFirst$
485
+ .pipe(takeUntilDestroyed())
486
+ .subscribe(() => {
487
+ this._listSelectable()?.focusFirst();
488
+ });
489
+ // Keep the activedescendant-active option scrolled into view. DOM focus
490
+ // never lands on the option in this mode (it stays on the owning combobox
491
+ // input), so the native scroll-on-focus does not apply.
492
+ effect(() => {
493
+ const index = this.activeIndex();
494
+ if (this.focusMode() !== 'activedescendant' || index < 0)
495
+ return;
496
+ const el = this._host.nativeElement.querySelector(`[id="${this.optionId(index)}"]`);
497
+ // Optional call: `scrollIntoView` is absent in some environments (jsdom).
498
+ el?.scrollIntoView?.({ block: 'nearest' });
499
+ });
500
+ // Resolve the paging sentinel's scroll owner once the view exists: the
501
+ // panel's own scrollbar viewport, or the ancestor popup viewport it
502
+ // delegates scrolling to.
503
+ afterNextRender(() => {
504
+ const own = this._scrollbar()?.viewportElement ?? null;
505
+ const parent = this._host.nativeElement.closest('.mlv-scrollbar__viewport');
506
+ this._scrollContainer.set(this.scrollMode() === 'self' ? own : parent);
507
+ this._scrollOwnerResolved.set(true);
508
+ });
509
+ // Dev-mode diagnostic: an armed sentinel with no scroll owner is silent —
510
+ // `scrollMode="parent"` finds nothing unless the panel renders inside an
511
+ // `mlv-scrollbar` viewport. Re-checked reactively so a `hasMore` that flips
512
+ // true later is caught too; warned at most once per panel instance.
513
+ if (isDevMode()) {
514
+ effect(() => {
515
+ const missing = this.hasMore() &&
516
+ this._scrollOwnerResolved() &&
517
+ this._scrollContainer() === null;
518
+ if (!missing)
519
+ return;
520
+ untracked(() => {
521
+ if (this._warnedNoScrollOwner)
522
+ return;
523
+ this._warnedNoScrollOwner = true;
524
+ console.warn('[mlv-dropdown-panel] hasMore is set but no scroll owner was found — in scrollMode="parent" the panel must render inside an mlv-scrollbar viewport (e.g. mlv-popup); lazy paging will not fire.');
525
+ });
526
+ });
527
+ }
528
+ // Auto-fill: after any render where the option set changed, re-measure so a
529
+ // short page immediately requests the next one.
530
+ afterRenderEffect(() => {
531
+ this.options();
532
+ this._infiniteScroll()?.check();
533
+ });
534
+ }
535
+ isValueSelected(value) {
536
+ return this._selectedSet().has(value);
537
+ }
538
+ /**
539
+ * Deterministic DOM `id` for the option at `index`, forwarded to aria's
540
+ * `ngOption` id. An owning combobox computes the same id (via the shared
541
+ * {@link optionId} helper) to wire its input's `aria-activedescendant`.
542
+ */
543
+ optionId(index) {
544
+ return optionId(this._resolvedListboxId(), index);
545
+ }
546
+ /**
547
+ * Re-emits the aria listbox selection. `@angular/aria`'s `ngListbox` emits the
548
+ * selected values array directly (unlike CdkListbox's `ListboxValueChangeEvent`).
549
+ */
550
+ onValueChange(values) {
551
+ this.valueChange.emit(values);
552
+ }
553
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvDropdownPanel, deps: [], target: i0.ɵɵFactoryTarget.Component });
554
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: MlvDropdownPanel, isStandalone: true, selector: "mlv-dropdown-panel", inputs: { scrollMode: { classPropertyName: "scrollMode", publicName: "scrollMode", isSignal: true, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, selectedValues: { classPropertyName: "selectedValues", publicName: "selectedValues", isSignal: true, isRequired: false, transformFunction: null }, itemTemplate: { classPropertyName: "itemTemplate", publicName: "itemTemplate", isSignal: true, isRequired: false, transformFunction: null }, focusMode: { classPropertyName: "focusMode", publicName: "focusMode", isSignal: true, isRequired: false, transformFunction: null }, activeIndex: { classPropertyName: "activeIndex", publicName: "activeIndex", isSignal: true, isRequired: false, transformFunction: null }, listboxId: { classPropertyName: "listboxId", publicName: "listboxId", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, highlightQuery: { classPropertyName: "highlightQuery", publicName: "highlightQuery", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, loadingText: { classPropertyName: "loadingText", publicName: "loadingText", isSignal: true, isRequired: false, transformFunction: null }, loadingMore: { classPropertyName: "loadingMore", publicName: "loadingMore", isSignal: true, isRequired: false, transformFunction: null }, hasMore: { classPropertyName: "hasMore", publicName: "hasMore", isSignal: true, isRequired: false, transformFunction: null }, infiniteScrollThreshold: { classPropertyName: "infiniteScrollThreshold", publicName: "infiniteScrollThreshold", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { loadMore: "loadMore", valueChange: "valueChange" }, host: { properties: { "class.mlv-dropdown-panel--parent-scroll": "scrollMode() === \"parent\"", "class.mlv-dropdown-panel--loading": "loading()", "style.max-height.px": "_calculatedMaxHeight()" }, classAttribute: "mlv-dropdown-panel" }, viewQueries: [{ propertyName: "_listSelectable", first: true, predicate: MlvListSelectable, descendants: true, isSignal: true }, { propertyName: "_scrollbar", first: true, predicate: MlvScrollbar, descendants: true, isSignal: true }, { propertyName: "_infiniteScroll", first: true, predicate: MlvInfiniteScroll, descendants: true, isSignal: true }], ngImport: i0, template: "@if (scrollMode() === 'self') {\n<mlv-scrollbar class=\"mlv-dropdown-panel__scrollbar\" [viewportTabIndex]=\"-1\">\n <ng-container [ngTemplateOutlet]=\"panelContent\" />\n</mlv-scrollbar>\n} @else {\n<ng-container [ngTemplateOutlet]=\"panelContent\" />\n}\n\n<ng-template #panelContent>\n <!-- Async loading affordance (used by [mlvAutocomplete]). Rendered above the\n listbox so the listbox element (aria-controls target) still exists while a\n search resolves; the empty \"no results\" projection is suppressed meanwhile. -->\n @if (loading()) {\n <div class=\"mlv-dropdown-panel__loading\" role=\"status\" aria-live=\"polite\">\n <span class=\"mlv-dropdown-panel__spinner\" aria-hidden=\"true\"></span>\n <span class=\"mlv-dropdown-panel__loading-text\">{{ loadingText() }}</span>\n </div>\n }\n\n <!-- selectionMode=\"explicit\" + softDisabled=\"false\" reproduce the previous CdkListbox\n behaviour: arrow keys move focus (never commit the value) and skip disabled options.\n listRole/itemRole are pinned to the listbox pattern so aria's pointer selection can\n resolve each option via closest('[role=\"option\"]').\n [listboxId] forwards the consumer id into aria's Listbox.id input so the rendered\n [attr.id]=\"id()\" equals it \u2014 otherwise aria mints its own id and a parent\n select/combobox trigger's aria-controls would dangle. -->\n <mlv-list\n class=\"mlv-dropdown-panel__listbox\"\n appearance=\"menu\"\n selectable\n listRole=\"listbox\"\n selectionMode=\"explicit\"\n [softDisabled]=\"false\"\n [focusMode]=\"focusMode()\"\n [attr.aria-busy]=\"loading() || loadingMore() ? true : null\"\n [attr.aria-label]=\"ariaLabel()\"\n [listboxId]=\"_resolvedListboxId()\"\n [multiple]=\"multiple()\"\n [value]=\"selectedValues()\"\n (valueChange)=\"onValueChange($event)\"\n >\n @if (_isGrouped()) {\n <!-- Grouped rendering: consecutive same-group runs become APG listbox groups\n (role=\"group\" + aria-labelledby \u2192 a non-selectable, presentational sticky\n header). Options stay flat descendants of the listbox, so aria registers\n and navigates them exactly as ungrouped; headers are not aria options and\n are skipped by keyboard nav / type-ahead. Each option keeps its flat index\n so optionId / activeIndex line up with an owning combobox. -->\n @for (group of _groups(); track $index) { @if (group.label) {\n <div\n class=\"mlv-dropdown-panel__group\"\n role=\"group\"\n [attr.aria-labelledby]=\"group.headerId\"\n >\n <div\n class=\"mlv-dropdown-panel__group-header\"\n role=\"presentation\"\n [id]=\"group.headerId\"\n >\n {{ group.label }}\n </div>\n @for (entry of group.entries; track entry.option.value) {\n <ng-container\n *ngTemplateOutlet=\"optionRow; context: { option: entry.option, index: entry.index }\"\n />\n }\n </div>\n } @else { @for (entry of group.entries; track entry.option.value) {\n <ng-container\n *ngTemplateOutlet=\"optionRow; context: { option: entry.option, index: entry.index }\"\n />\n } } } } @else { @for (option of options(); track option.value; let i =\n $index) {\n <ng-container\n *ngTemplateOutlet=\"optionRow; context: { option: option, index: i }\"\n />\n } @empty { @if (!loading()) {\n <ng-content />\n } } }\n\n <!-- Single source of truth for an option row, outlet-ed by both the flat and\n the grouped branches. Declared INSIDE <mlv-list> so its declaration\n injector carries the aria LISTBOX token \u2014 an outlet-ed <mlv-list-item>\n resolves DI from the template's declaration context, not its insertion\n point. `index` is the flat index into options(). -->\n <ng-template #optionRow let-option=\"option\" let-index=\"index\">\n <mlv-list-item\n class=\"mlv-dropdown-panel__item\"\n itemRole=\"option\"\n [class.mlv-dropdown-panel__item--active]=\"index === activeIndex()\"\n [value]=\"option.value\"\n [label]=\"option.label\"\n [disabled]=\"option.disabled ?? false\"\n [optionId]=\"optionId(index)\"\n >\n @if (itemTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"itemTemplate()!; context: { $implicit: option }\"\n />\n } @else {\n <span class=\"mlv-dropdown-panel__item-label\">\n @if (highlightQuery()) { @for (seg of option.label |\n mlvHighlightMatch: highlightQuery(); track $index) { @if (seg.matched)\n {<mark class=\"mlv-dropdown-panel__match\">{{ seg.text }}</mark>} @else\n {{{ seg.text }}} } } @else {{{ option.label }}}\n </span>\n @if (isValueSelected(option.value)) {\n <svg\n class=\"mlv-dropdown-panel__item-check\"\n lucideCheck\n size=\"16\"\n strokeWidth=\"2\"\n />\n } }\n </mlv-list-item>\n </ng-template>\n </mlv-list>\n\n <!-- Next-page affordance. Sits after the last option (unlike the top\n `__loading` row) so appended rows are not pushed around, and stays a\n polite status region \u2014 the listbox itself keeps its options interactive. -->\n @if (loadingMore()) {\n <div\n class=\"mlv-dropdown-panel__loading-more\"\n role=\"status\"\n aria-live=\"polite\"\n >\n <span class=\"mlv-dropdown-panel__spinner\" aria-hidden=\"true\"></span>\n <span class=\"mlv-dropdown-panel__loading-text\">{{ loadingText() }}</span>\n </div>\n }\n\n <!-- Paging sentinel. The directive listens on the real scroll owner via\n [scrollContainer]; it stays disabled until that element is resolved so\n its initial measurement never runs against the non-scrolling panel host. -->\n <div\n class=\"mlv-dropdown-panel__sentinel\"\n aria-hidden=\"true\"\n mlvInfiniteScroll\n [scrollContainer]=\"_scrollContainer()\"\n [disabled]=\"!hasMore() || !_scrollContainer()\"\n [hasMore]=\"hasMore()\"\n [loading]=\"loading() || loadingMore()\"\n [threshold]=\"infiniteScrollThreshold()\"\n (loadMore)=\"loadMore.emit()\"\n ></div>\n</ng-template>\n", styles: ["@layer mlv.components{.mlv-dropdown-panel{display:flex;flex-direction:column;overflow:hidden;min-height:0}.mlv-dropdown-panel--surface{background-color:var(--mlv-background-raised);border:var(--mlv-stroke-width) solid var(--mlv-border-subtle);border-radius:var(--mlv-popover-surface-radius);box-shadow:var(--mlv-shadow-floating)}.mlv-dropdown-panel--parent-scroll{overflow:visible}.mlv-dropdown-panel__scrollbar{flex:1 1 auto;width:100%;min-height:0}.mlv-dropdown-panel__scrollbar>.mlv-scrollbar__viewport{overflow-x:hidden}.mlv-dropdown-panel .mlv-dropdown-panel__item:focus-visible{outline-offset:calc(var(--mlv-focus-ring-offset) * -1)}.mlv-dropdown-panel .mlv-dropdown-panel__listbox{--mlv-list-padding-block: var(--mlv-popover-inset);--mlv-list-padding-inline: var(--mlv-popover-inset)}.mlv-dropdown-panel .mlv-dropdown-panel__listbox .mlv-list-item__content{display:flex;align-items:center;justify-content:space-between;width:100%}.mlv-dropdown-panel__item--active .mlv-list-item__surface{background-color:var(--mlv-popover-item-bg-hover)}.mlv-dropdown-panel__group{display:block}.mlv-dropdown-panel .mlv-dropdown-panel__group:not(:last-child){margin-bottom:var(--mlv-spacing-1)}.mlv-dropdown-panel__group-header{position:sticky;top:0;z-index:1;padding:var(--mlv-spacing-1-5) var(--mlv-spacing-2);font-size:var(--mlv-typography-body-s-size);font-weight:var(--mlv-font-weight-semibold);line-height:var(--mlv-typography-body-s-line-height);color:var(--mlv-text-secondary);text-transform:uppercase;letter-spacing:.06em;background-color:color-mix(in srgb,var(--mlv-background-raised) 88%,transparent);backdrop-filter:saturate(1.4) blur(.5rem);-webkit-backdrop-filter:saturate(1.4) blur(.5rem);pointer-events:none;-webkit-user-select:none;user-select:none}.mlv-dropdown-panel__item-label{flex:1;min-width:0}.mlv-dropdown-panel__item-check{color:var(--mlv-text-action);flex-shrink:0}.mlv-dropdown-panel__match{background-color:transparent;color:var(--mlv-text-action);font-weight:var(--mlv-font-weight-semibold);padding:0}.mlv-dropdown-panel__loading,.mlv-dropdown-panel__loading-more{display:flex;align-items:center;gap:var(--mlv-spacing-2);padding:var(--mlv-spacing-2) var(--mlv-spacing-3);color:var(--mlv-text-secondary);font-size:var(--mlv-typography-body-s-size);line-height:var(--mlv-typography-body-s-line-height)}.mlv-dropdown-panel--loading .mlv-dropdown-panel__item-label,.mlv-dropdown-panel--loading .mlv-dropdown-panel__item-check{color:var(--mlv-text-secondary);transition:color var(--mlv-duration-fast) var(--mlv-ease-default)}.mlv-dropdown-panel__sentinel{height:0;overflow:hidden}.mlv-dropdown-panel__spinner{width:1rem;height:1rem;flex-shrink:0;border:var(--mlv-stroke-width) solid var(--mlv-border-normal);border-top-color:var(--mlv-text-action);border-radius:var(--mlv-radius-full);animation:mlv-dropdown-panel-spin var(--mlv-duration-slower) linear infinite}@media(prefers-reduced-motion:reduce){.mlv-dropdown-panel__spinner{animation-duration:calc(var(--mlv-duration-slower) * 4)}.mlv-dropdown-panel--loading .mlv-dropdown-panel__item-label,.mlv-dropdown-panel--loading .mlv-dropdown-panel__item-check{transition:none}}@keyframes mlv-dropdown-panel-spin{to{transform:rotate(360deg)}}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MlvList, selector: "mlv-list", inputs: ["listRole", "variant", "appearance"] }, { kind: "component", type: MlvListItem, selector: "mlv-list-item", inputs: ["itemRole", "unread", "accent"] }, { kind: "directive", type: MlvListItemSelectable, selector: "mlv-list-item[value]", exportAs: ["uiListItemSelectable"] }, { kind: "directive", type: MlvListSelectable, selector: "mlv-list[selectable]" }, { kind: "component", type: LucideCheck, selector: "svg[lucideCheck]" }, { kind: "component", type: MlvScrollbar, selector: "mlv-scrollbar", inputs: ["orientation", "scrollbarSize", "disabled", "ariaLabel", "viewportTabIndex"] }, { kind: "directive", type: MlvInfiniteScroll, selector: "[mlvInfiniteScroll]", inputs: ["threshold", "loading", "hasMore", "disabled", "orientation", "scrollContainer"], outputs: ["loadMore"], exportAs: ["mlvInfiniteScroll"] }, { kind: "pipe", type: MlvHighlightMatchPipe, name: "mlvHighlightMatch" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
555
+ }
556
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvDropdownPanel, decorators: [{
557
+ type: Component,
558
+ args: [{ selector: 'mlv-dropdown-panel', imports: [
559
+ NgTemplateOutlet,
560
+ MlvList,
561
+ MlvListItem,
562
+ MlvListItemSelectable,
563
+ MlvListSelectable,
564
+ LucideCheck,
565
+ MlvHighlightMatchPipe,
566
+ MlvScrollbar,
567
+ MlvInfiniteScroll,
568
+ ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
569
+ class: 'mlv-dropdown-panel',
570
+ '[class.mlv-dropdown-panel--parent-scroll]': 'scrollMode() === "parent"',
571
+ '[class.mlv-dropdown-panel--loading]': 'loading()',
572
+ '[style.max-height.px]': '_calculatedMaxHeight()',
573
+ }, template: "@if (scrollMode() === 'self') {\n<mlv-scrollbar class=\"mlv-dropdown-panel__scrollbar\" [viewportTabIndex]=\"-1\">\n <ng-container [ngTemplateOutlet]=\"panelContent\" />\n</mlv-scrollbar>\n} @else {\n<ng-container [ngTemplateOutlet]=\"panelContent\" />\n}\n\n<ng-template #panelContent>\n <!-- Async loading affordance (used by [mlvAutocomplete]). Rendered above the\n listbox so the listbox element (aria-controls target) still exists while a\n search resolves; the empty \"no results\" projection is suppressed meanwhile. -->\n @if (loading()) {\n <div class=\"mlv-dropdown-panel__loading\" role=\"status\" aria-live=\"polite\">\n <span class=\"mlv-dropdown-panel__spinner\" aria-hidden=\"true\"></span>\n <span class=\"mlv-dropdown-panel__loading-text\">{{ loadingText() }}</span>\n </div>\n }\n\n <!-- selectionMode=\"explicit\" + softDisabled=\"false\" reproduce the previous CdkListbox\n behaviour: arrow keys move focus (never commit the value) and skip disabled options.\n listRole/itemRole are pinned to the listbox pattern so aria's pointer selection can\n resolve each option via closest('[role=\"option\"]').\n [listboxId] forwards the consumer id into aria's Listbox.id input so the rendered\n [attr.id]=\"id()\" equals it \u2014 otherwise aria mints its own id and a parent\n select/combobox trigger's aria-controls would dangle. -->\n <mlv-list\n class=\"mlv-dropdown-panel__listbox\"\n appearance=\"menu\"\n selectable\n listRole=\"listbox\"\n selectionMode=\"explicit\"\n [softDisabled]=\"false\"\n [focusMode]=\"focusMode()\"\n [attr.aria-busy]=\"loading() || loadingMore() ? true : null\"\n [attr.aria-label]=\"ariaLabel()\"\n [listboxId]=\"_resolvedListboxId()\"\n [multiple]=\"multiple()\"\n [value]=\"selectedValues()\"\n (valueChange)=\"onValueChange($event)\"\n >\n @if (_isGrouped()) {\n <!-- Grouped rendering: consecutive same-group runs become APG listbox groups\n (role=\"group\" + aria-labelledby \u2192 a non-selectable, presentational sticky\n header). Options stay flat descendants of the listbox, so aria registers\n and navigates them exactly as ungrouped; headers are not aria options and\n are skipped by keyboard nav / type-ahead. Each option keeps its flat index\n so optionId / activeIndex line up with an owning combobox. -->\n @for (group of _groups(); track $index) { @if (group.label) {\n <div\n class=\"mlv-dropdown-panel__group\"\n role=\"group\"\n [attr.aria-labelledby]=\"group.headerId\"\n >\n <div\n class=\"mlv-dropdown-panel__group-header\"\n role=\"presentation\"\n [id]=\"group.headerId\"\n >\n {{ group.label }}\n </div>\n @for (entry of group.entries; track entry.option.value) {\n <ng-container\n *ngTemplateOutlet=\"optionRow; context: { option: entry.option, index: entry.index }\"\n />\n }\n </div>\n } @else { @for (entry of group.entries; track entry.option.value) {\n <ng-container\n *ngTemplateOutlet=\"optionRow; context: { option: entry.option, index: entry.index }\"\n />\n } } } } @else { @for (option of options(); track option.value; let i =\n $index) {\n <ng-container\n *ngTemplateOutlet=\"optionRow; context: { option: option, index: i }\"\n />\n } @empty { @if (!loading()) {\n <ng-content />\n } } }\n\n <!-- Single source of truth for an option row, outlet-ed by both the flat and\n the grouped branches. Declared INSIDE <mlv-list> so its declaration\n injector carries the aria LISTBOX token \u2014 an outlet-ed <mlv-list-item>\n resolves DI from the template's declaration context, not its insertion\n point. `index` is the flat index into options(). -->\n <ng-template #optionRow let-option=\"option\" let-index=\"index\">\n <mlv-list-item\n class=\"mlv-dropdown-panel__item\"\n itemRole=\"option\"\n [class.mlv-dropdown-panel__item--active]=\"index === activeIndex()\"\n [value]=\"option.value\"\n [label]=\"option.label\"\n [disabled]=\"option.disabled ?? false\"\n [optionId]=\"optionId(index)\"\n >\n @if (itemTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"itemTemplate()!; context: { $implicit: option }\"\n />\n } @else {\n <span class=\"mlv-dropdown-panel__item-label\">\n @if (highlightQuery()) { @for (seg of option.label |\n mlvHighlightMatch: highlightQuery(); track $index) { @if (seg.matched)\n {<mark class=\"mlv-dropdown-panel__match\">{{ seg.text }}</mark>} @else\n {{{ seg.text }}} } } @else {{{ option.label }}}\n </span>\n @if (isValueSelected(option.value)) {\n <svg\n class=\"mlv-dropdown-panel__item-check\"\n lucideCheck\n size=\"16\"\n strokeWidth=\"2\"\n />\n } }\n </mlv-list-item>\n </ng-template>\n </mlv-list>\n\n <!-- Next-page affordance. Sits after the last option (unlike the top\n `__loading` row) so appended rows are not pushed around, and stays a\n polite status region \u2014 the listbox itself keeps its options interactive. -->\n @if (loadingMore()) {\n <div\n class=\"mlv-dropdown-panel__loading-more\"\n role=\"status\"\n aria-live=\"polite\"\n >\n <span class=\"mlv-dropdown-panel__spinner\" aria-hidden=\"true\"></span>\n <span class=\"mlv-dropdown-panel__loading-text\">{{ loadingText() }}</span>\n </div>\n }\n\n <!-- Paging sentinel. The directive listens on the real scroll owner via\n [scrollContainer]; it stays disabled until that element is resolved so\n its initial measurement never runs against the non-scrolling panel host. -->\n <div\n class=\"mlv-dropdown-panel__sentinel\"\n aria-hidden=\"true\"\n mlvInfiniteScroll\n [scrollContainer]=\"_scrollContainer()\"\n [disabled]=\"!hasMore() || !_scrollContainer()\"\n [hasMore]=\"hasMore()\"\n [loading]=\"loading() || loadingMore()\"\n [threshold]=\"infiniteScrollThreshold()\"\n (loadMore)=\"loadMore.emit()\"\n ></div>\n</ng-template>\n", styles: ["@layer mlv.components{.mlv-dropdown-panel{display:flex;flex-direction:column;overflow:hidden;min-height:0}.mlv-dropdown-panel--surface{background-color:var(--mlv-background-raised);border:var(--mlv-stroke-width) solid var(--mlv-border-subtle);border-radius:var(--mlv-popover-surface-radius);box-shadow:var(--mlv-shadow-floating)}.mlv-dropdown-panel--parent-scroll{overflow:visible}.mlv-dropdown-panel__scrollbar{flex:1 1 auto;width:100%;min-height:0}.mlv-dropdown-panel__scrollbar>.mlv-scrollbar__viewport{overflow-x:hidden}.mlv-dropdown-panel .mlv-dropdown-panel__item:focus-visible{outline-offset:calc(var(--mlv-focus-ring-offset) * -1)}.mlv-dropdown-panel .mlv-dropdown-panel__listbox{--mlv-list-padding-block: var(--mlv-popover-inset);--mlv-list-padding-inline: var(--mlv-popover-inset)}.mlv-dropdown-panel .mlv-dropdown-panel__listbox .mlv-list-item__content{display:flex;align-items:center;justify-content:space-between;width:100%}.mlv-dropdown-panel__item--active .mlv-list-item__surface{background-color:var(--mlv-popover-item-bg-hover)}.mlv-dropdown-panel__group{display:block}.mlv-dropdown-panel .mlv-dropdown-panel__group:not(:last-child){margin-bottom:var(--mlv-spacing-1)}.mlv-dropdown-panel__group-header{position:sticky;top:0;z-index:1;padding:var(--mlv-spacing-1-5) var(--mlv-spacing-2);font-size:var(--mlv-typography-body-s-size);font-weight:var(--mlv-font-weight-semibold);line-height:var(--mlv-typography-body-s-line-height);color:var(--mlv-text-secondary);text-transform:uppercase;letter-spacing:.06em;background-color:color-mix(in srgb,var(--mlv-background-raised) 88%,transparent);backdrop-filter:saturate(1.4) blur(.5rem);-webkit-backdrop-filter:saturate(1.4) blur(.5rem);pointer-events:none;-webkit-user-select:none;user-select:none}.mlv-dropdown-panel__item-label{flex:1;min-width:0}.mlv-dropdown-panel__item-check{color:var(--mlv-text-action);flex-shrink:0}.mlv-dropdown-panel__match{background-color:transparent;color:var(--mlv-text-action);font-weight:var(--mlv-font-weight-semibold);padding:0}.mlv-dropdown-panel__loading,.mlv-dropdown-panel__loading-more{display:flex;align-items:center;gap:var(--mlv-spacing-2);padding:var(--mlv-spacing-2) var(--mlv-spacing-3);color:var(--mlv-text-secondary);font-size:var(--mlv-typography-body-s-size);line-height:var(--mlv-typography-body-s-line-height)}.mlv-dropdown-panel--loading .mlv-dropdown-panel__item-label,.mlv-dropdown-panel--loading .mlv-dropdown-panel__item-check{color:var(--mlv-text-secondary);transition:color var(--mlv-duration-fast) var(--mlv-ease-default)}.mlv-dropdown-panel__sentinel{height:0;overflow:hidden}.mlv-dropdown-panel__spinner{width:1rem;height:1rem;flex-shrink:0;border:var(--mlv-stroke-width) solid var(--mlv-border-normal);border-top-color:var(--mlv-text-action);border-radius:var(--mlv-radius-full);animation:mlv-dropdown-panel-spin var(--mlv-duration-slower) linear infinite}@media(prefers-reduced-motion:reduce){.mlv-dropdown-panel__spinner{animation-duration:calc(var(--mlv-duration-slower) * 4)}.mlv-dropdown-panel--loading .mlv-dropdown-panel__item-label,.mlv-dropdown-panel--loading .mlv-dropdown-panel__item-check{transition:none}}@keyframes mlv-dropdown-panel-spin{to{transform:rotate(360deg)}}}\n"] }]
574
+ }], ctorParameters: () => [], propDecorators: { scrollMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollMode", required: false }] }], minHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "minHeight", required: false }] }], maxHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxHeight", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], selectedValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedValues", required: false }] }], itemTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemTemplate", required: false }] }], focusMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusMode", required: false }] }], activeIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeIndex", required: false }] }], listboxId: [{ type: i0.Input, args: [{ isSignal: true, alias: "listboxId", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], highlightQuery: [{ type: i0.Input, args: [{ isSignal: true, alias: "highlightQuery", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], loadingText: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadingText", required: false }] }], loadingMore: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadingMore", required: false }] }], hasMore: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasMore", required: false }] }], infiniteScrollThreshold: [{ type: i0.Input, args: [{ isSignal: true, alias: "infiniteScrollThreshold", required: false }] }], loadMore: [{ type: i0.Output, args: ["loadMore"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }], _listSelectable: [{ type: i0.ViewChild, args: [i0.forwardRef(() => MlvListSelectable), { isSignal: true }] }], _scrollbar: [{ type: i0.ViewChild, args: [i0.forwardRef(() => MlvScrollbar), { isSignal: true }] }], _infiniteScroll: [{ type: i0.ViewChild, args: [i0.forwardRef(() => MlvInfiniteScroll), { isSignal: true }] }] } });
575
+
576
+ /**
577
+ * In-memory data source for option controls (`mlv-select`, `mlv-combobox`,
578
+ * `[mlvAutocomplete]`). Identical to `MlvArrayDataSource` except that it is
579
+ * **unpaged** (`perPage = Infinity`) so the whole list renders; the shared
580
+ * natural-field search (`setSearch({ query, keys: [] })`) and sorting are
581
+ * inherited. Reach for it when you want a data-source-shaped API over an
582
+ * in-memory array (e.g. to swap for a remote subclass later); a plain `T[]`
583
+ * remains the simplest input.
584
+ */
585
+ class MlvSelectDataSource extends MlvArrayDataSource {
586
+ /**
587
+ * @param data A plain array (wrapped in a signal automatically) or a
588
+ * `Signal<T[]>` to track reactively.
589
+ */
590
+ constructor(data) {
591
+ super(data);
592
+ this._perPage.set(Infinity);
593
+ }
594
+ }
595
+
596
+ /**
597
+ * Normalises every supported search result into a one-shot observable. Shared
598
+ * by `MlvOptionsAdapter` and `[mlvAutocomplete]`.
599
+ */
600
+ function toOptionsResult(result) {
601
+ return Array.isArray(result)
602
+ ? of(result)
603
+ : from(result);
604
+ }
605
+
606
+ /**
607
+ * Normalises `T[] | Observable<T[]> | MlvDataSource<T>` (+ optional
608
+ * `searchFn`) into one reactive shape shared by `mlv-select`, `mlv-combobox`
609
+ * and `[mlvAutocomplete]`. Construct it inside an injection context (a
610
+ * component field initialiser or constructor) — it uses `effect()` and
611
+ * `DestroyRef`.
612
+ *
613
+ * Paging (`MlvDataSource` only): `connect()` emits the current page's slice and
614
+ * the adapter accumulates, tracking the **applied page** — the page whose slice
615
+ * is currently in `items` — alongside the items accumulated before it:
616
+ *
617
+ * - `page <= 1` → the slice replaces `items` and accumulation restarts.
618
+ * - `page === appliedPage` → the source re-emitted the page already shown (a
619
+ * backing array changed, a refetch landed): its **tail is replaced**, never
620
+ * appended, so rows are not duplicated.
621
+ * - `page > appliedPage` → the slice is appended.
622
+ * - A run where the slice reference has not changed (a `page` bump whose data
623
+ * has not arrived yet) applies nothing.
624
+ *
625
+ * `loadMore()` is therefore a no-op while a page is pending — a scroll sentinel
626
+ * firing repeatedly cannot skip a page.
627
+ *
628
+ * Swapping the `searchFn` **only re-arms the lazy gate** (the next
629
+ * `ensureLoaded()` calls the new function): the in-flight call is left running
630
+ * and `items` / `ready` / `loading` are untouched, so results stay on screen
631
+ * until the new function answers and a control bound to an inline arrow — a
632
+ * fresh reference on every change detection run — is not reset on every pass.
633
+ */
634
+ class MlvOptionsAdapter {
635
+ _config;
636
+ /** @private Lifetime for the in-flight `searchFn` subscription / debounce timer. */
637
+ _destroyRef = inject(DestroyRef);
638
+ /** @private Which branch the current inputs select. `searchFn` wins over the source. */
639
+ _kind = computed(() => {
640
+ if (this._config.searchFn())
641
+ return 'fn';
642
+ const source = this._config.source();
643
+ if (source instanceof MlvDataSource)
644
+ return 'ds';
645
+ if (isObservable(source))
646
+ return 'observable';
647
+ return 'array';
648
+ }, /* @ts-ignore */
649
+ ...(ngDevMode ? [{ debugName: "_kind" }] : /* istanbul ignore next */ []));
650
+ // ─── observable branch ────────────────────────────────────────────────────
651
+ /** @private Latest emission of the observable source. */
652
+ _obsItems = signal([], /* @ts-ignore */
653
+ ...(ngDevMode ? [{ debugName: "_obsItems" }] : /* istanbul ignore next */ []));
654
+ /** @private Whether the observable source has emitted at least once. */
655
+ _obsReady = signal(false, /* @ts-ignore */
656
+ ...(ngDevMode ? [{ debugName: "_obsReady" }] : /* istanbul ignore next */ []));
657
+ // ─── data-source branch ───────────────────────────────────────────────────
658
+ /** @private The connected source and its (memoised) `connect()` signal. */
659
+ _connected = signal(null, /* @ts-ignore */
660
+ ...(ngDevMode ? [{ debugName: "_connected" }] : /* istanbul ignore next */ []));
661
+ /** @private Accumulated pages. */
662
+ _dsItems = signal([], /* @ts-ignore */
663
+ ...(ngDevMode ? [{ debugName: "_dsItems" }] : /* istanbul ignore next */ []));
664
+ /** @private Whether the source has been observed not-loading at least once since connect. */
665
+ _dsReady = signal(false, /* @ts-ignore */
666
+ ...(ngDevMode ? [{ debugName: "_dsReady" }] : /* istanbul ignore next */ []));
667
+ /** @private Last slice reference applied — a `page` bump whose slice has not arrived yet must not append. */
668
+ _dsLastSlice = null;
669
+ /** @private The page whose slice is currently applied (`0` = none yet). Distinguishes an append from a re-emit of the page already shown. */
670
+ _dsAppliedPage = 0;
671
+ /** @private Items accumulated *before* the applied page — the prefix a re-emit of that page is re-appended to. */
672
+ _dsBase = [];
673
+ // ─── searchFn branch ──────────────────────────────────────────────────────
674
+ /** @private Last `searchFn` result. */
675
+ _fnItems = signal([], /* @ts-ignore */
676
+ ...(ngDevMode ? [{ debugName: "_fnItems" }] : /* istanbul ignore next */ []));
677
+ /** @private Whether a `searchFn` call is in flight. */
678
+ _fnLoading = signal(false, /* @ts-ignore */
679
+ ...(ngDevMode ? [{ debugName: "_fnLoading" }] : /* istanbul ignore next */ []));
680
+ /** @private Whether `searchFn` has produced (or failed) at least once. */
681
+ _fnReady = signal(false, /* @ts-ignore */
682
+ ...(ngDevMode ? [{ debugName: "_fnReady" }] : /* istanbul ignore next */ []));
683
+ /** @private Whether `searchFn` has been invoked at least once (lazy-load gate). */
684
+ _fnStarted = false;
685
+ /**
686
+ * @private The `searchFn` reference the swap effect last observed, normalised
687
+ * to `null` when unset. Stays `undefined` until that effect's first run, which
688
+ * is how `undefined → fn` at construction is told apart from a genuine swap.
689
+ */
690
+ _fnSeen;
691
+ /** @private In-flight `searchFn` subscription (superseded by a newer query). */
692
+ _fnSub = null;
693
+ /** @private Monotonic token discarding stale `searchFn` results. */
694
+ _fnToken = 0;
695
+ /** @private Pending debounce timer for remote searches. */
696
+ _debounceTimer = null;
697
+ /** @private Last query handed to `search()`; replayed by `ensureLoaded()`. */
698
+ _lastQuery = '';
699
+ /** `'local'` for arrays / observables (consumer filters); `'remote'` for a data source or `searchFn`. */
700
+ mode = computed(() => {
701
+ const kind = this._kind();
702
+ return kind === 'array' || kind === 'observable' ? 'local' : 'remote';
703
+ }, /* @ts-ignore */
704
+ ...(ngDevMode ? [{ debugName: "mode" }] : /* istanbul ignore next */ []));
705
+ /** The current raw items (accumulated pages for a data source). */
706
+ items = computed(() => {
707
+ switch (this._kind()) {
708
+ case 'fn':
709
+ return this._fnItems();
710
+ case 'ds':
711
+ return this._dsItems();
712
+ case 'observable':
713
+ return this._obsItems();
714
+ default:
715
+ return this._config.source() ?? [];
716
+ }
717
+ }, /* @ts-ignore */
718
+ ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
719
+ /** Source-owned "first page / search in flight" flag (drives the top spinner row). */
720
+ loading = computed(() => {
721
+ switch (this._kind()) {
722
+ case 'fn':
723
+ return this._fnLoading();
724
+ case 'ds': {
725
+ const connected = this._connected();
726
+ return (!!connected && connected.ds.loading() && connected.ds.page() === 1);
727
+ }
728
+ case 'observable':
729
+ return !this._obsReady();
730
+ default:
731
+ return false;
732
+ }
733
+ }, /* @ts-ignore */
734
+ ...(ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []));
735
+ /** A page beyond the first is in flight (drives the bottom spinner row). Data source only. */
736
+ loadingMore = computed(() => {
737
+ if (this._kind() !== 'ds')
738
+ return false;
739
+ const connected = this._connected();
740
+ return !!connected && connected.ds.loading() && connected.ds.page() > 1;
741
+ }, /* @ts-ignore */
742
+ ...(ngDevMode ? [{ debugName: "loadingMore" }] : /* istanbul ignore next */ []));
743
+ /** The first payload has arrived — arrays immediately, observables on first emit, data sources once observed not-loading, `searchFn` after its first result. */
744
+ ready = computed(() => {
745
+ switch (this._kind()) {
746
+ case 'fn':
747
+ return this._fnReady();
748
+ case 'ds':
749
+ return this._dsReady();
750
+ case 'observable':
751
+ return this._obsReady();
752
+ default:
753
+ return true;
754
+ }
755
+ }, /* @ts-ignore */
756
+ ...(ngDevMode ? [{ debugName: "ready" }] : /* istanbul ignore next */ []));
757
+ /** More pages exist (`items.length < totalItems`). Data source only. */
758
+ hasMore = computed(() => {
759
+ if (this._kind() !== 'ds')
760
+ return false;
761
+ const connected = this._connected();
762
+ return !!connected && this._dsItems().length < connected.ds.totalItems();
763
+ }, /* @ts-ignore */
764
+ ...(ngDevMode ? [{ debugName: "hasMore" }] : /* istanbul ignore next */ []));
765
+ constructor(_config) {
766
+ this._config = _config;
767
+ // Observable source: (re)subscribe whenever the reference changes.
768
+ effect((onCleanup) => {
769
+ const source = this._config.source();
770
+ if (!isObservable(source))
771
+ return;
772
+ untracked(() => {
773
+ this._obsReady.set(false);
774
+ this._obsItems.set([]);
775
+ });
776
+ const sub = source.subscribe((items) => {
777
+ this._obsItems.set(items);
778
+ this._obsReady.set(true);
779
+ });
780
+ onCleanup(() => sub.unsubscribe());
781
+ });
782
+ // Data source: connect once per source — but only while the data source is
783
+ // the branch in use. A `searchFn` supersedes it, and connecting anyway would
784
+ // fire a fetch whose slice is never read.
785
+ effect(() => {
786
+ const kind = this._kind();
787
+ const source = this._config.source();
788
+ untracked(() => {
789
+ if (kind === 'ds' && source instanceof MlvDataSource) {
790
+ this._resetDataSource();
791
+ this._connected.set({ ds: source, items: source.connect() });
792
+ }
793
+ else if (this._connected()) {
794
+ this._resetDataSource();
795
+ this._connected.set(null);
796
+ }
797
+ });
798
+ });
799
+ // Data source: accumulate slices against the applied page.
800
+ effect(() => {
801
+ const connected = this._connected();
802
+ if (!connected)
803
+ return;
804
+ const slice = connected.items();
805
+ const page = connected.ds.page();
806
+ const loading = connected.ds.loading();
807
+ untracked(() => {
808
+ // A page bump whose slice has not arrived yet applies nothing.
809
+ if (slice === this._dsLastSlice) {
810
+ if (!loading)
811
+ this._dsReady.set(true);
812
+ return;
813
+ }
814
+ if (page <= 1) {
815
+ this._dsBase = [];
816
+ this._dsItems.set([...slice]);
817
+ }
818
+ else if (page === this._dsAppliedPage) {
819
+ // Same page re-emitted — replace its tail rather than duplicating it.
820
+ this._dsItems.set([...this._dsBase, ...slice]);
821
+ }
822
+ else {
823
+ this._dsBase = this._dsItems();
824
+ this._dsItems.set([...this._dsBase, ...slice]);
825
+ }
826
+ this._dsAppliedPage = page;
827
+ this._dsLastSlice = slice;
828
+ if (!loading)
829
+ this._dsReady.set(true);
830
+ });
831
+ });
832
+ // searchFn: a swapped function re-arms the lazy gate so the next
833
+ // `ensureLoaded()` calls it — and nothing else. Tearing down the in-flight
834
+ // call or clearing `items` would make the control sensitive to the
835
+ // *reference* identity of the bound function, and an inline arrow
836
+ // (`[search]="(q) => api.find(q)"`) is a fresh reference on every change
837
+ // detection run. Stale items therefore stay until the new function answers,
838
+ // matching the "results kept while loading" contract; once the new function
839
+ // starts, a late result from the old one is discarded by the monotonic
840
+ // token. The effect's first run is `undefined → fn` at construction, which
841
+ // is not a swap.
842
+ effect(() => {
843
+ const fn = this._config.searchFn() ?? null;
844
+ untracked(() => {
845
+ const previous = this._fnSeen;
846
+ this._fnSeen = fn;
847
+ if (previous === undefined || previous === fn)
848
+ return;
849
+ this._fnStarted = false;
850
+ if (this._kind() === 'fn' && this._config.eager())
851
+ this.ensureLoaded();
852
+ });
853
+ });
854
+ // searchFn: eager first load.
855
+ effect(() => {
856
+ if (this._kind() === 'fn' && this._config.eager()) {
857
+ untracked(() => this.ensureLoaded());
858
+ }
859
+ });
860
+ this._destroyRef.onDestroy(() => {
861
+ this._fnSub?.unsubscribe();
862
+ if (this._debounceTimer)
863
+ clearTimeout(this._debounceTimer);
864
+ });
865
+ }
866
+ /**
867
+ * Remote-mode search entry point (debounced). Data source → `setSearch({ query, keys: [] })`
868
+ * (or `null` for a blank query); `searchFn` → invoked with the query. No-op in local mode.
869
+ */
870
+ search(query) {
871
+ this._lastQuery = query;
872
+ const kind = this._kind();
873
+ if (kind === 'ds')
874
+ this._debounced(() => this._searchDataSource(query));
875
+ else if (kind === 'fn')
876
+ this._debounced(() => this._runSearchFn(query));
877
+ }
878
+ /** Runs the initial `searchFn` load if it has not run yet (data sources connect eagerly; local modes need nothing). */
879
+ ensureLoaded() {
880
+ if (this._kind() === 'fn' && !this._fnStarted)
881
+ this._runSearchFn(this._lastQuery);
882
+ }
883
+ /**
884
+ * Requests the next data-source page. No-op unless `hasMore()`, nothing is in
885
+ * flight, and the source's current page is the one already applied — a page
886
+ * requested but not yet accumulated (or a search that reset the source to page
887
+ * one) blocks the next bump, so a scroll sentinel cannot skip a page.
888
+ */
889
+ loadMore() {
890
+ const connected = this._connected();
891
+ if (!connected ||
892
+ !this.hasMore() ||
893
+ connected.ds.loading() ||
894
+ connected.ds.page() !== this._dsAppliedPage)
895
+ return;
896
+ connected.ds.setPage(connected.ds.page() + 1);
897
+ }
898
+ /** @private Clears every accumulation bookkeeping field — on connect, and when a source is disconnected. */
899
+ _resetDataSource() {
900
+ this._dsLastSlice = null;
901
+ this._dsAppliedPage = 0;
902
+ this._dsBase = [];
903
+ this._dsItems.set([]);
904
+ this._dsReady.set(false);
905
+ }
906
+ /** @private Schedules `run` after `debounce` ms (immediately when 0), cancelling a pending one. */
907
+ _debounced(run) {
908
+ if (this._debounceTimer)
909
+ clearTimeout(this._debounceTimer);
910
+ const ms = Math.max(0, this._config.debounce());
911
+ if (ms === 0) {
912
+ run();
913
+ return;
914
+ }
915
+ this._debounceTimer = setTimeout(() => {
916
+ this._debounceTimer = null;
917
+ run();
918
+ }, ms);
919
+ }
920
+ /** @private Forwards a query to the connected data source using the option-control contract (`keys: []`). */
921
+ _searchDataSource(query) {
922
+ const connected = this._connected();
923
+ if (!connected)
924
+ return;
925
+ connected.ds.setSearch(query.trim() ? { query, keys: [] } : null);
926
+ }
927
+ /** @private Invokes `searchFn`, superseding any in-flight call; keeps stale items until the result. */
928
+ _runSearchFn(query) {
929
+ const fn = this._config.searchFn();
930
+ if (!fn)
931
+ return;
932
+ this._fnStarted = true;
933
+ const token = ++this._fnToken;
934
+ this._fnSub?.unsubscribe();
935
+ this._fnLoading.set(true);
936
+ this._fnSub = toOptionsResult(fn(query))
937
+ .pipe(take(1))
938
+ .subscribe({
939
+ next: (items) => {
940
+ if (token !== this._fnToken)
941
+ return;
942
+ this._fnItems.set(items);
943
+ this._fnLoading.set(false);
944
+ this._fnReady.set(true);
945
+ },
946
+ error: () => {
947
+ if (token !== this._fnToken)
948
+ return;
949
+ this._fnItems.set([]);
950
+ this._fnLoading.set(false);
951
+ this._fnReady.set(true);
952
+ },
953
+ });
954
+ }
955
+ }
956
+
957
+ /**
958
+ * `@angular/aria`'s `ngListbox` reconciles its `value` model against the
959
+ * currently **rendered** options and re-emits `valueChange` whenever the
960
+ * rendered set changes — not only on user interaction. These helpers let an
961
+ * owning control tell that noise apart from a genuine selection.
962
+ */
963
+ /**
964
+ * Whether an incoming listbox `valueChange` is pure aria reconciliation: it
965
+ * (a) adds no value that is not already committed and (b) only removes values
966
+ * whose option is currently not rendered (`visible`). An emit that exactly
967
+ * restates the committed selection is reconciliation too.
968
+ */
969
+ function isReconciliationEmit(incoming, committed, visible, compare) {
970
+ const inArr = (arr, v) => arr.some((x) => compare(x, v));
971
+ // (a) No additions relative to the committed selection.
972
+ if (incoming.some((v) => !inArr(committed, v)))
973
+ return false;
974
+ // (b) Every removed value is currently filtered out of view.
975
+ return committed
976
+ .filter((v) => !inArr(incoming, v))
977
+ .every((v) => !inArr(visible, v));
978
+ }
979
+ /**
980
+ * Committed values that aria dropped only because their option is not
981
+ * rendered (not in `visible`) and that are not in `incoming`. Re-add them to
982
+ * a genuine multi-select pick so earlier selections survive filtering.
983
+ */
984
+ function filteredOutCommitted(incoming, committed, visible, compare) {
985
+ return committed.filter((v) => !incoming.some((iv) => compare(iv, v)) &&
986
+ !visible.some((vv) => compare(vv, v)));
987
+ }
988
+
989
+ /**
990
+ * Generated bundle index. Do not edit.
991
+ */
992
+
993
+ export { MlvActiveDescendant, MlvDropdownPanel, MlvHighlightMatchPipe, MlvOptionsAdapter, MlvSelectDataSource, defaultOptionMatcher, defaultOptionTransform, filterOptions, filteredOutCommitted, hasOptionGroups, isReconciliationEmit, isSelectOption, matchSegments, optionId, rankPrefixMatchesFirst, resolveOptions, toOptionsResult };
994
+ //# sourceMappingURL=malva-ui-core-dropdown.mjs.map