@malva-ui/core 0.1.13 → 0.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1618) hide show
  1. package/AGENTS.md +4 -1
  2. package/README.md +15 -0
  3. package/docs/ai/avatar.md +2 -0
  4. package/docs/ai/breadcrumb.md +67 -7
  5. package/docs/ai/button.md +74 -19
  6. package/docs/ai/card.md +8 -6
  7. package/docs/ai/chat.md +59 -45
  8. package/docs/ai/checkbox.md +12 -0
  9. package/docs/ai/combobox.md +18 -2
  10. package/docs/ai/copy-to-clipboard.md +1 -1
  11. package/docs/ai/core.md +15 -0
  12. package/docs/ai/data-table.md +89 -54
  13. package/docs/ai/dialog.md +76 -67
  14. package/docs/ai/drawer.md +15 -12
  15. package/docs/ai/dropdown.md +24 -19
  16. package/docs/ai/empty-state.md +3 -3
  17. package/docs/ai/filter.md +24 -5
  18. package/docs/ai/form-utils.md +160 -5
  19. package/docs/ai/icon-toggle.md +160 -0
  20. package/docs/ai/input.md +30 -0
  21. package/docs/ai/layout.md +23 -0
  22. package/docs/ai/list.md +10 -6
  23. package/docs/ai/menu.md +75 -1
  24. package/docs/ai/page.md +220 -60
  25. package/docs/ai/radio.md +9 -0
  26. package/docs/ai/scrollbar.md +30 -8
  27. package/docs/ai/segmented.md +35 -35
  28. package/docs/ai/select.md +30 -5
  29. package/docs/ai/sidebar.md +45 -27
  30. package/docs/ai/switch.md +114 -19
  31. package/docs/ai/table.md +69 -0
  32. package/docs/ai/tabs.md +2 -1
  33. package/docs/ai/tile.md +311 -85
  34. package/docs/ai/timeline.md +63 -39
  35. package/docs/ai/tokenizer.md +21 -5
  36. package/docs/ai/tooltip.md +5 -5
  37. package/docs/ai/view-variant.md +75 -0
  38. package/fesm2022/malva-ui-core-accordion.mjs +167 -0
  39. package/fesm2022/malva-ui-core-accordion.mjs.map +1 -0
  40. package/fesm2022/malva-ui-core-action-bar.mjs +111 -0
  41. package/fesm2022/malva-ui-core-action-bar.mjs.map +1 -0
  42. package/fesm2022/malva-ui-core-alert.mjs +173 -0
  43. package/fesm2022/malva-ui-core-alert.mjs.map +1 -0
  44. package/fesm2022/malva-ui-core-autocomplete.mjs +775 -0
  45. package/fesm2022/malva-ui-core-autocomplete.mjs.map +1 -0
  46. package/fesm2022/malva-ui-core-avatar-group.mjs +224 -0
  47. package/fesm2022/malva-ui-core-avatar-group.mjs.map +1 -0
  48. package/fesm2022/malva-ui-core-avatar.mjs +247 -0
  49. package/fesm2022/malva-ui-core-avatar.mjs.map +1 -0
  50. package/fesm2022/malva-ui-core-badge.mjs +122 -0
  51. package/fesm2022/malva-ui-core-badge.mjs.map +1 -0
  52. package/fesm2022/malva-ui-core-bottom-nav.mjs +161 -0
  53. package/fesm2022/malva-ui-core-bottom-nav.mjs.map +1 -0
  54. package/fesm2022/malva-ui-core-breadcrumb.mjs +494 -0
  55. package/fesm2022/malva-ui-core-breadcrumb.mjs.map +1 -0
  56. package/fesm2022/malva-ui-core-button.mjs +406 -0
  57. package/fesm2022/malva-ui-core-button.mjs.map +1 -0
  58. package/fesm2022/malva-ui-core-calendar.mjs +938 -0
  59. package/fesm2022/malva-ui-core-calendar.mjs.map +1 -0
  60. package/fesm2022/malva-ui-core-card.mjs +164 -0
  61. package/fesm2022/malva-ui-core-card.mjs.map +1 -0
  62. package/fesm2022/malva-ui-core-chat.mjs +825 -0
  63. package/fesm2022/malva-ui-core-chat.mjs.map +1 -0
  64. package/fesm2022/malva-ui-core-checkbox.mjs +272 -0
  65. package/fesm2022/malva-ui-core-checkbox.mjs.map +1 -0
  66. package/fesm2022/malva-ui-core-chip.mjs +176 -0
  67. package/fesm2022/malva-ui-core-chip.mjs.map +1 -0
  68. package/fesm2022/malva-ui-core-color-picker.mjs +1204 -0
  69. package/fesm2022/malva-ui-core-color-picker.mjs.map +1 -0
  70. package/fesm2022/malva-ui-core-combobox.mjs +945 -0
  71. package/fesm2022/malva-ui-core-combobox.mjs.map +1 -0
  72. package/fesm2022/malva-ui-core-copy-to-clipboard.mjs +255 -0
  73. package/fesm2022/malva-ui-core-copy-to-clipboard.mjs.map +1 -0
  74. package/fesm2022/malva-ui-core-data-table.mjs +2696 -0
  75. package/fesm2022/malva-ui-core-data-table.mjs.map +1 -0
  76. package/fesm2022/malva-ui-core-date-range-picker.mjs +276 -0
  77. package/fesm2022/malva-ui-core-date-range-picker.mjs.map +1 -0
  78. package/fesm2022/malva-ui-core-day-picker.mjs +131 -0
  79. package/fesm2022/malva-ui-core-day-picker.mjs.map +1 -0
  80. package/fesm2022/malva-ui-core-dialog-routable-dialog-CvjXMtlD.mjs +94 -0
  81. package/fesm2022/malva-ui-core-dialog-routable-dialog-CvjXMtlD.mjs.map +1 -0
  82. package/fesm2022/malva-ui-core-dialog.mjs +1223 -0
  83. package/fesm2022/malva-ui-core-dialog.mjs.map +1 -0
  84. package/fesm2022/malva-ui-core-divider.mjs +80 -0
  85. package/fesm2022/malva-ui-core-divider.mjs.map +1 -0
  86. package/fesm2022/malva-ui-core-drawer-routable-drawer-qUk6Etnx.mjs +94 -0
  87. package/fesm2022/malva-ui-core-drawer-routable-drawer-qUk6Etnx.mjs.map +1 -0
  88. package/fesm2022/malva-ui-core-drawer.mjs +814 -0
  89. package/fesm2022/malva-ui-core-drawer.mjs.map +1 -0
  90. package/fesm2022/malva-ui-core-dropdown.mjs +994 -0
  91. package/fesm2022/malva-ui-core-dropdown.mjs.map +1 -0
  92. package/fesm2022/malva-ui-core-empty-state.mjs +50 -0
  93. package/fesm2022/malva-ui-core-empty-state.mjs.map +1 -0
  94. package/fesm2022/malva-ui-core-expand.mjs +130 -0
  95. package/fesm2022/malva-ui-core-expand.mjs.map +1 -0
  96. package/fesm2022/malva-ui-core-file-upload.mjs +451 -0
  97. package/fesm2022/malva-ui-core-file-upload.mjs.map +1 -0
  98. package/fesm2022/malva-ui-core-filter.mjs +1627 -0
  99. package/fesm2022/malva-ui-core-filter.mjs.map +1 -0
  100. package/fesm2022/malva-ui-core-form-utils-testing.mjs +39 -0
  101. package/fesm2022/malva-ui-core-form-utils-testing.mjs.map +1 -0
  102. package/fesm2022/malva-ui-core-form-utils.mjs +977 -0
  103. package/fesm2022/malva-ui-core-form-utils.mjs.map +1 -0
  104. package/fesm2022/malva-ui-core-form.mjs +283 -0
  105. package/fesm2022/malva-ui-core-form.mjs.map +1 -0
  106. package/fesm2022/malva-ui-core-icon-toggle.mjs +120 -0
  107. package/fesm2022/malva-ui-core-icon-toggle.mjs.map +1 -0
  108. package/fesm2022/malva-ui-core-input.mjs +375 -0
  109. package/fesm2022/malva-ui-core-input.mjs.map +1 -0
  110. package/fesm2022/malva-ui-core-kbd.mjs +131 -0
  111. package/fesm2022/malva-ui-core-kbd.mjs.map +1 -0
  112. package/fesm2022/malva-ui-core-layout.mjs +212 -0
  113. package/fesm2022/malva-ui-core-layout.mjs.map +1 -0
  114. package/fesm2022/malva-ui-core-link.mjs +89 -0
  115. package/fesm2022/malva-ui-core-link.mjs.map +1 -0
  116. package/fesm2022/malva-ui-core-list.mjs +413 -0
  117. package/fesm2022/malva-ui-core-list.mjs.map +1 -0
  118. package/fesm2022/malva-ui-core-loader.mjs +141 -0
  119. package/fesm2022/malva-ui-core-loader.mjs.map +1 -0
  120. package/fesm2022/malva-ui-core-menu.mjs +2540 -0
  121. package/fesm2022/malva-ui-core-menu.mjs.map +1 -0
  122. package/fesm2022/malva-ui-core-notification.mjs +201 -0
  123. package/fesm2022/malva-ui-core-notification.mjs.map +1 -0
  124. package/fesm2022/malva-ui-core-number-input.mjs +404 -0
  125. package/fesm2022/malva-ui-core-number-input.mjs.map +1 -0
  126. package/fesm2022/malva-ui-core-page.mjs +1898 -0
  127. package/fesm2022/malva-ui-core-page.mjs.map +1 -0
  128. package/fesm2022/malva-ui-core-pagination.mjs +458 -0
  129. package/fesm2022/malva-ui-core-pagination.mjs.map +1 -0
  130. package/fesm2022/malva-ui-core-pin-input.mjs +405 -0
  131. package/fesm2022/malva-ui-core-pin-input.mjs.map +1 -0
  132. package/fesm2022/malva-ui-core-popup.mjs +1488 -0
  133. package/fesm2022/malva-ui-core-popup.mjs.map +1 -0
  134. package/fesm2022/malva-ui-core-progress.mjs +109 -0
  135. package/fesm2022/malva-ui-core-progress.mjs.map +1 -0
  136. package/fesm2022/malva-ui-core-radio.mjs +317 -0
  137. package/fesm2022/malva-ui-core-radio.mjs.map +1 -0
  138. package/fesm2022/malva-ui-core-rating.mjs +236 -0
  139. package/fesm2022/malva-ui-core-rating.mjs.map +1 -0
  140. package/fesm2022/malva-ui-core-scrollbar.mjs +430 -0
  141. package/fesm2022/malva-ui-core-scrollbar.mjs.map +1 -0
  142. package/fesm2022/malva-ui-core-search-field.mjs +578 -0
  143. package/fesm2022/malva-ui-core-search-field.mjs.map +1 -0
  144. package/fesm2022/malva-ui-core-segmented.mjs +458 -0
  145. package/fesm2022/malva-ui-core-segmented.mjs.map +1 -0
  146. package/fesm2022/malva-ui-core-select.mjs +855 -0
  147. package/fesm2022/malva-ui-core-select.mjs.map +1 -0
  148. package/fesm2022/malva-ui-core-sidebar.mjs +1504 -0
  149. package/fesm2022/malva-ui-core-sidebar.mjs.map +1 -0
  150. package/fesm2022/malva-ui-core-skeleton.mjs +85 -0
  151. package/fesm2022/malva-ui-core-skeleton.mjs.map +1 -0
  152. package/fesm2022/malva-ui-core-slider.mjs +514 -0
  153. package/fesm2022/malva-ui-core-slider.mjs.map +1 -0
  154. package/fesm2022/malva-ui-core-split-pane.mjs +359 -0
  155. package/fesm2022/malva-ui-core-split-pane.mjs.map +1 -0
  156. package/fesm2022/malva-ui-core-status-indicator.mjs +78 -0
  157. package/fesm2022/malva-ui-core-status-indicator.mjs.map +1 -0
  158. package/fesm2022/malva-ui-core-stepper.mjs +332 -0
  159. package/fesm2022/malva-ui-core-stepper.mjs.map +1 -0
  160. package/fesm2022/malva-ui-core-switch.mjs +272 -0
  161. package/fesm2022/malva-ui-core-switch.mjs.map +1 -0
  162. package/fesm2022/malva-ui-core-table.mjs +79 -0
  163. package/fesm2022/malva-ui-core-table.mjs.map +1 -0
  164. package/fesm2022/malva-ui-core-tabs.mjs +794 -0
  165. package/fesm2022/malva-ui-core-tabs.mjs.map +1 -0
  166. package/fesm2022/malva-ui-core-textarea.mjs +201 -0
  167. package/fesm2022/malva-ui-core-textarea.mjs.map +1 -0
  168. package/fesm2022/malva-ui-core-tile.mjs +1404 -0
  169. package/fesm2022/malva-ui-core-tile.mjs.map +1 -0
  170. package/fesm2022/malva-ui-core-time-picker.mjs +533 -0
  171. package/fesm2022/malva-ui-core-time-picker.mjs.map +1 -0
  172. package/fesm2022/malva-ui-core-timeline.mjs +216 -0
  173. package/fesm2022/malva-ui-core-timeline.mjs.map +1 -0
  174. package/fesm2022/malva-ui-core-title.mjs +178 -0
  175. package/fesm2022/malva-ui-core-title.mjs.map +1 -0
  176. package/fesm2022/malva-ui-core-toast.mjs +749 -0
  177. package/fesm2022/malva-ui-core-toast.mjs.map +1 -0
  178. package/fesm2022/malva-ui-core-tokenizer.mjs +502 -0
  179. package/fesm2022/malva-ui-core-tokenizer.mjs.map +1 -0
  180. package/fesm2022/malva-ui-core-toolbar.mjs +141 -0
  181. package/fesm2022/malva-ui-core-toolbar.mjs.map +1 -0
  182. package/fesm2022/malva-ui-core-tooltip.mjs +432 -0
  183. package/fesm2022/malva-ui-core-tooltip.mjs.map +1 -0
  184. package/fesm2022/malva-ui-core-tree.mjs +505 -0
  185. package/fesm2022/malva-ui-core-tree.mjs.map +1 -0
  186. package/fesm2022/malva-ui-core-view-variant.mjs +292 -0
  187. package/fesm2022/malva-ui-core-view-variant.mjs.map +1 -0
  188. package/fesm2022/malva-ui-core.mjs +77 -0
  189. package/fesm2022/malva-ui-core.mjs.map +1 -0
  190. package/package.json +179 -156
  191. package/styles/malva-ui.css +253 -220
  192. package/styles/tokens.md +174 -173
  193. package/table/README.md +46 -0
  194. package/types/malva-ui-core-accordion.d.ts +121 -0
  195. package/types/malva-ui-core-action-bar.d.ts +82 -0
  196. package/types/malva-ui-core-alert.d.ts +131 -0
  197. package/types/malva-ui-core-autocomplete.d.ts +301 -0
  198. package/types/malva-ui-core-avatar-group.d.ts +119 -0
  199. package/types/malva-ui-core-avatar.d.ts +156 -0
  200. package/types/malva-ui-core-badge.d.ts +97 -0
  201. package/types/malva-ui-core-bottom-nav.d.ts +104 -0
  202. package/types/malva-ui-core-breadcrumb.d.ts +308 -0
  203. package/types/malva-ui-core-button.d.ts +194 -0
  204. package/types/malva-ui-core-calendar.d.ts +339 -0
  205. package/types/malva-ui-core-card.d.ts +88 -0
  206. package/types/malva-ui-core-chat.d.ts +375 -0
  207. package/types/malva-ui-core-checkbox.d.ts +158 -0
  208. package/types/malva-ui-core-chip.d.ts +128 -0
  209. package/types/malva-ui-core-color-picker.d.ts +442 -0
  210. package/types/malva-ui-core-combobox.d.ts +419 -0
  211. package/types/malva-ui-core-copy-to-clipboard.d.ts +148 -0
  212. package/types/malva-ui-core-data-table.d.ts +1074 -0
  213. package/types/malva-ui-core-date-range-picker.d.ts +149 -0
  214. package/types/malva-ui-core-day-picker.d.ts +55 -0
  215. package/types/malva-ui-core-dialog.d.ts +597 -0
  216. package/types/malva-ui-core-divider.d.ts +68 -0
  217. package/types/malva-ui-core-drawer.d.ts +333 -0
  218. package/types/malva-ui-core-dropdown.d.ts +592 -0
  219. package/types/malva-ui-core-empty-state.d.ts +37 -0
  220. package/types/malva-ui-core-expand.d.ts +102 -0
  221. package/types/malva-ui-core-file-upload.d.ts +267 -0
  222. package/types/malva-ui-core-filter.d.ts +552 -0
  223. package/types/malva-ui-core-form-utils-testing.d.ts +50 -0
  224. package/types/malva-ui-core-form-utils.d.ts +579 -0
  225. package/types/malva-ui-core-form.d.ts +176 -0
  226. package/types/malva-ui-core-icon-toggle.d.ts +80 -0
  227. package/types/malva-ui-core-input.d.ts +262 -0
  228. package/types/malva-ui-core-kbd.d.ts +56 -0
  229. package/types/malva-ui-core-layout.d.ts +70 -0
  230. package/types/malva-ui-core-link.d.ts +28 -0
  231. package/types/malva-ui-core-list.d.ts +252 -0
  232. package/types/malva-ui-core-loader.d.ts +89 -0
  233. package/types/malva-ui-core-menu.d.ts +954 -0
  234. package/types/malva-ui-core-notification.d.ts +122 -0
  235. package/types/malva-ui-core-number-input.d.ts +167 -0
  236. package/types/malva-ui-core-page.d.ts +799 -0
  237. package/types/malva-ui-core-pagination.d.ts +261 -0
  238. package/types/malva-ui-core-pin-input.d.ts +203 -0
  239. package/types/malva-ui-core-popup.d.ts +834 -0
  240. package/types/malva-ui-core-progress.d.ts +73 -0
  241. package/types/malva-ui-core-radio.d.ts +130 -0
  242. package/types/malva-ui-core-rating.d.ts +115 -0
  243. package/types/malva-ui-core-scrollbar.d.ts +203 -0
  244. package/types/malva-ui-core-search-field.d.ts +408 -0
  245. package/types/malva-ui-core-segmented.d.ts +206 -0
  246. package/types/malva-ui-core-select.d.ts +456 -0
  247. package/types/malva-ui-core-sidebar.d.ts +698 -0
  248. package/types/malva-ui-core-skeleton.d.ts +64 -0
  249. package/types/malva-ui-core-slider.d.ts +219 -0
  250. package/types/malva-ui-core-split-pane.d.ts +149 -0
  251. package/types/malva-ui-core-status-indicator.d.ts +65 -0
  252. package/types/malva-ui-core-stepper.d.ts +168 -0
  253. package/types/malva-ui-core-switch.d.ts +146 -0
  254. package/types/malva-ui-core-table.d.ts +37 -0
  255. package/types/malva-ui-core-tabs.d.ts +339 -0
  256. package/types/malva-ui-core-textarea.d.ts +79 -0
  257. package/types/malva-ui-core-tile.d.ts +373 -0
  258. package/types/malva-ui-core-time-picker.d.ts +141 -0
  259. package/types/malva-ui-core-timeline.d.ts +188 -0
  260. package/types/malva-ui-core-title.d.ts +66 -0
  261. package/types/malva-ui-core-toast.d.ts +432 -0
  262. package/types/malva-ui-core-tokenizer.d.ts +217 -0
  263. package/types/malva-ui-core-toolbar.d.ts +91 -0
  264. package/types/malva-ui-core-tooltip.d.ts +200 -0
  265. package/types/malva-ui-core-tree.d.ts +289 -0
  266. package/types/malva-ui-core-view-variant.d.ts +207 -0
  267. package/types/malva-ui-core.d.ts +72 -0
  268. package/view-variant/README.md +3 -0
  269. package/accordion/index.d.ts +0 -3
  270. package/accordion/lib/accordion/accordion.d.ts +0 -47
  271. package/accordion/lib/accordion-item/accordion-header.d.ts +0 -22
  272. package/accordion/lib/accordion-item/accordion-item.d.ts +0 -49
  273. package/accordion/malva-ui-core-accordion.d.ts +0 -5
  274. package/action-bar/index.d.ts +0 -4
  275. package/action-bar/lib/action-bar/action-bar.d.ts +0 -59
  276. package/action-bar/lib/action-bar/components/action-bar-actions.d.ts +0 -9
  277. package/action-bar/lib/action-bar/components/action-bar-logo.d.ts +0 -5
  278. package/action-bar/lib/action-bar/components/action-bar-spacer.d.ts +0 -5
  279. package/action-bar/malva-ui-core-action-bar.d.ts +0 -5
  280. package/alert/index.d.ts +0 -2
  281. package/alert/lib/alert/alert.d.ts +0 -84
  282. package/alert/lib/alert/alert.directives.d.ts +0 -44
  283. package/alert/malva-ui-core-alert.d.ts +0 -5
  284. package/autocomplete/index.d.ts +0 -1
  285. package/autocomplete/lib/autocomplete/autocomplete.d.ts +0 -296
  286. package/autocomplete/malva-ui-core-autocomplete.d.ts +0 -5
  287. package/avatar/index.d.ts +0 -2
  288. package/avatar/lib/avatar/avatar.d.ts +0 -125
  289. package/avatar/lib/color-from-text.pipe.d.ts +0 -21
  290. package/avatar/malva-ui-core-avatar.d.ts +0 -5
  291. package/avatar-group/index.d.ts +0 -1
  292. package/avatar-group/lib/avatar-group/avatar-group.d.ts +0 -115
  293. package/avatar-group/malva-ui-core-avatar-group.d.ts +0 -5
  294. package/badge/index.d.ts +0 -2
  295. package/badge/lib/badge/badge.d.ts +0 -59
  296. package/badge/lib/badge-icon.d.ts +0 -35
  297. package/badge/malva-ui-core-badge.d.ts +0 -5
  298. package/bottom-nav/index.d.ts +0 -1
  299. package/bottom-nav/lib/bottom-nav/bottom-nav.d.ts +0 -99
  300. package/bottom-nav/malva-ui-core-bottom-nav.d.ts +0 -5
  301. package/breadcrumb/index.d.ts +0 -5
  302. package/breadcrumb/lib/breadcrumb/breadcrumb-item-host.d.ts +0 -32
  303. package/breadcrumb/lib/breadcrumb/breadcrumb-item.d.ts +0 -41
  304. package/breadcrumb/lib/breadcrumb/breadcrumb-separator.d.ts +0 -31
  305. package/breadcrumb/lib/breadcrumb/breadcrumb.d.ts +0 -151
  306. package/breadcrumb/lib/breadcrumb/breadcrumb.types.d.ts +0 -26
  307. package/breadcrumb/malva-ui-core-breadcrumb.d.ts +0 -5
  308. package/button/index.d.ts +0 -7
  309. package/button/lib/button/button.d.ts +0 -61
  310. package/button/lib/button-close/button-close.d.ts +0 -24
  311. package/button/lib/button-group/button-group.d.ts +0 -21
  312. package/button/lib/button-split/button-split.d.ts +0 -21
  313. package/button/lib/button-toggle/button-toggle.d.ts +0 -33
  314. package/button/lib/button-variant.token.d.ts +0 -13
  315. package/button/lib/button.directives.d.ts +0 -14
  316. package/button/lib/button.types.d.ts +0 -8
  317. package/button/malva-ui-core-button.d.ts +0 -5
  318. package/calendar/index.d.ts +0 -3
  319. package/calendar/lib/calendar/calendar.d.ts +0 -182
  320. package/calendar/lib/date-provider/date-adapter.d.ts +0 -92
  321. package/calendar/lib/date-provider/native-date-adapter.d.ts +0 -60
  322. package/calendar/malva-ui-core-calendar.d.ts +0 -5
  323. package/card/index.d.ts +0 -5
  324. package/card/lib/card/card.d.ts +0 -43
  325. package/card/lib/card-actions-def.d.ts +0 -10
  326. package/card/lib/card-footer-def.d.ts +0 -13
  327. package/card/lib/card-header-def.d.ts +0 -10
  328. package/card/lib/card-subheader-def.d.ts +0 -16
  329. package/card/malva-ui-core-card.d.ts +0 -5
  330. package/chat/index.d.ts +0 -9
  331. package/chat/lib/chat/chat.d.ts +0 -133
  332. package/chat/lib/chat-audio/chat-audio.d.ts +0 -51
  333. package/chat/lib/chat-audio/chat-audio.service.d.ts +0 -21
  334. package/chat/lib/chat-date/chat-date.d.ts +0 -16
  335. package/chat/lib/chat-format.d.ts +0 -5
  336. package/chat/lib/chat-media-grid/chat-media-grid.d.ts +0 -32
  337. package/chat/lib/chat-message/chat-message.d.ts +0 -45
  338. package/chat/lib/chat-render-list.d.ts +0 -16
  339. package/chat/lib/chat-tokens.d.ts +0 -25
  340. package/chat/lib/chat-typing/chat-typing.d.ts +0 -16
  341. package/chat/lib/chat.types.d.ts +0 -80
  342. package/chat/lib/defs/chat-author-def.d.ts +0 -30
  343. package/chat/lib/defs/chat-date-def.d.ts +0 -22
  344. package/chat/lib/defs/chat-message-def.d.ts +0 -23
  345. package/chat/malva-ui-core-chat.d.ts +0 -5
  346. package/checkbox/index.d.ts +0 -3
  347. package/checkbox/lib/checkbox/checkbox.d.ts +0 -129
  348. package/checkbox/lib/checkbox-group/checkbox-group.d.ts +0 -24
  349. package/checkbox/lib/checkbox-group-token.d.ts +0 -6
  350. package/checkbox/malva-ui-core-checkbox.d.ts +0 -5
  351. package/chip/index.d.ts +0 -2
  352. package/chip/lib/chip/chip.d.ts +0 -107
  353. package/chip/lib/chip/chip.directives.d.ts +0 -18
  354. package/chip/malva-ui-core-chip.d.ts +0 -5
  355. package/color-picker/index.d.ts +0 -3
  356. package/color-picker/lib/color-picker/color-picker.d.ts +0 -188
  357. package/color-picker/lib/color-picker-popup/color-picker-popup.d.ts +0 -151
  358. package/color-picker/lib/color-utils/color-utils.d.ts +0 -102
  359. package/color-picker/malva-ui-core-color-picker.d.ts +0 -5
  360. package/combobox/index.d.ts +0 -2
  361. package/combobox/lib/combobox/combobox.d.ts +0 -400
  362. package/combobox/lib/combobox-template.directives.d.ts +0 -10
  363. package/combobox/malva-ui-core-combobox.d.ts +0 -5
  364. package/copy-to-clipboard/index.d.ts +0 -1
  365. package/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.d.ts +0 -130
  366. package/copy-to-clipboard/malva-ui-core-copy-to-clipboard.d.ts +0 -5
  367. package/data-table/index.d.ts +0 -8
  368. package/data-table/lib/data-source.d.ts +0 -5
  369. package/data-table/lib/data-table/data-table-layout.d.ts +0 -31
  370. package/data-table/lib/data-table/data-table.d.ts +0 -699
  371. package/data-table/lib/data-table/services/data-table-column-visibility.service.d.ts +0 -19
  372. package/data-table/lib/data-table/services/data-table-editing.service.d.ts +0 -37
  373. package/data-table/lib/data-table/services/data-table-pinning.service.d.ts +0 -37
  374. package/data-table/lib/data-table-cell.d.ts +0 -44
  375. package/data-table/lib/data-table-edit-cell.d.ts +0 -44
  376. package/data-table/lib/data-table-error.d.ts +0 -37
  377. package/data-table/lib/data-table-footer.d.ts +0 -26
  378. package/data-table/lib/data-table-no-data.d.ts +0 -19
  379. package/data-table/lib/filter-dropdown/filter-dropdown.d.ts +0 -54
  380. package/data-table/lib/types.d.ts +0 -134
  381. package/data-table/malva-ui-core-data-table.d.ts +0 -5
  382. package/date-range-picker/index.d.ts +0 -1
  383. package/date-range-picker/lib/date-range-picker/date-range-picker.d.ts +0 -145
  384. package/date-range-picker/malva-ui-core-date-range-picker.d.ts +0 -5
  385. package/day-picker/index.d.ts +0 -1
  386. package/day-picker/lib/day-picker/day-picker.d.ts +0 -51
  387. package/day-picker/malva-ui-core-day-picker.d.ts +0 -5
  388. package/dialog/index.d.ts +0 -11
  389. package/dialog/lib/confirm-dialog-options.d.ts +0 -41
  390. package/dialog/lib/confirm-dialog.d.ts +0 -52
  391. package/dialog/lib/dialog/dialog.d.ts +0 -22
  392. package/dialog/lib/dialog-body.d.ts +0 -9
  393. package/dialog/lib/dialog-close.d.ts +0 -27
  394. package/dialog/lib/dialog-config.d.ts +0 -112
  395. package/dialog/lib/dialog-container.d.ts +0 -40
  396. package/dialog/lib/dialog-footer.d.ts +0 -13
  397. package/dialog/lib/dialog-header.d.ts +0 -74
  398. package/dialog/lib/dialog-ref.d.ts +0 -95
  399. package/dialog/lib/dialog-template.d.ts +0 -65
  400. package/dialog/lib/dialog-text-content.d.ts +0 -24
  401. package/dialog/lib/dialog.service.d.ts +0 -63
  402. package/dialog/lib/generate-routable-dialog-route.d.ts +0 -49
  403. package/dialog/lib/inject-dialog-ref.d.ts +0 -8
  404. package/dialog/lib/routable-dialog.d.ts +0 -30
  405. package/dialog/malva-ui-core-dialog.d.ts +0 -5
  406. package/divider/index.d.ts +0 -1
  407. package/divider/lib/divider/divider.d.ts +0 -64
  408. package/divider/malva-ui-core-divider.d.ts +0 -5
  409. package/drawer/index.d.ts +0 -11
  410. package/drawer/lib/drawer/drawer.d.ts +0 -106
  411. package/drawer/lib/drawer-body.d.ts +0 -8
  412. package/drawer/lib/drawer-content.d.ts +0 -6
  413. package/drawer/lib/drawer-footer.d.ts +0 -5
  414. package/drawer/lib/drawer-header.d.ts +0 -5
  415. package/drawer/lib/drawer-ref.d.ts +0 -29
  416. package/drawer/lib/drawer-resize.d.ts +0 -65
  417. package/drawer/lib/drawer-section/drawer-section.d.ts +0 -15
  418. package/drawer/lib/drawer-sections/drawer-sections.d.ts +0 -22
  419. package/drawer/lib/drawer-sections.service.d.ts +0 -42
  420. package/drawer/lib/drawer.service.d.ts +0 -66
  421. package/drawer/lib/generate-routable-drawer-route.d.ts +0 -42
  422. package/drawer/lib/routable-drawer.d.ts +0 -30
  423. package/drawer/malva-ui-core-drawer.d.ts +0 -5
  424. package/dropdown/index.d.ts +0 -9
  425. package/dropdown/lib/active-descendant.d.ts +0 -64
  426. package/dropdown/lib/dropdown-panel/dropdown-panel.d.ts +0 -178
  427. package/dropdown/lib/highlight-match.pipe.d.ts +0 -27
  428. package/dropdown/lib/option-matcher.d.ts +0 -87
  429. package/dropdown/lib/options-adapter.d.ts +0 -142
  430. package/dropdown/lib/options-result.d.ts +0 -6
  431. package/dropdown/lib/reconciliation.d.ts +0 -19
  432. package/dropdown/lib/select-data-source.d.ts +0 -18
  433. package/dropdown/lib/select-option.d.ts +0 -37
  434. package/dropdown/malva-ui-core-dropdown.d.ts +0 -5
  435. package/empty-state/index.d.ts +0 -1
  436. package/empty-state/lib/empty-state/empty-state.d.ts +0 -34
  437. package/empty-state/malva-ui-core-empty-state.d.ts +0 -5
  438. package/esm2022/accordion/index.js +0 -4
  439. package/esm2022/accordion/index.js.map +0 -1
  440. package/esm2022/accordion/lib/accordion/accordion.js +0 -65
  441. package/esm2022/accordion/lib/accordion/accordion.js.map +0 -1
  442. package/esm2022/accordion/lib/accordion-item/accordion-header.js +0 -30
  443. package/esm2022/accordion/lib/accordion-item/accordion-header.js.map +0 -1
  444. package/esm2022/accordion/lib/accordion-item/accordion-item.js +0 -70
  445. package/esm2022/accordion/lib/accordion-item/accordion-item.js.map +0 -1
  446. package/esm2022/accordion/malva-ui-core-accordion.js +0 -5
  447. package/esm2022/accordion/malva-ui-core-accordion.js.map +0 -1
  448. package/esm2022/action-bar/index.js +0 -5
  449. package/esm2022/action-bar/index.js.map +0 -1
  450. package/esm2022/action-bar/lib/action-bar/action-bar.js +0 -64
  451. package/esm2022/action-bar/lib/action-bar/action-bar.js.map +0 -1
  452. package/esm2022/action-bar/lib/action-bar/components/action-bar-actions.js +0 -20
  453. package/esm2022/action-bar/lib/action-bar/components/action-bar-actions.js.map +0 -1
  454. package/esm2022/action-bar/lib/action-bar/components/action-bar-logo.js +0 -13
  455. package/esm2022/action-bar/lib/action-bar/components/action-bar-logo.js.map +0 -1
  456. package/esm2022/action-bar/lib/action-bar/components/action-bar-spacer.js +0 -13
  457. package/esm2022/action-bar/lib/action-bar/components/action-bar-spacer.js.map +0 -1
  458. package/esm2022/action-bar/malva-ui-core-action-bar.js +0 -5
  459. package/esm2022/action-bar/malva-ui-core-action-bar.js.map +0 -1
  460. package/esm2022/alert/index.js +0 -3
  461. package/esm2022/alert/index.js.map +0 -1
  462. package/esm2022/alert/lib/alert/alert.directives.js +0 -53
  463. package/esm2022/alert/lib/alert/alert.directives.js.map +0 -1
  464. package/esm2022/alert/lib/alert/alert.js +0 -118
  465. package/esm2022/alert/lib/alert/alert.js.map +0 -1
  466. package/esm2022/alert/malva-ui-core-alert.js +0 -5
  467. package/esm2022/alert/malva-ui-core-alert.js.map +0 -1
  468. package/esm2022/autocomplete/index.js +0 -2
  469. package/esm2022/autocomplete/index.js.map +0 -1
  470. package/esm2022/autocomplete/lib/autocomplete/autocomplete.js +0 -765
  471. package/esm2022/autocomplete/lib/autocomplete/autocomplete.js.map +0 -1
  472. package/esm2022/autocomplete/malva-ui-core-autocomplete.js +0 -5
  473. package/esm2022/autocomplete/malva-ui-core-autocomplete.js.map +0 -1
  474. package/esm2022/avatar/index.js +0 -3
  475. package/esm2022/avatar/index.js.map +0 -1
  476. package/esm2022/avatar/lib/avatar/avatar.js +0 -192
  477. package/esm2022/avatar/lib/avatar/avatar.js.map +0 -1
  478. package/esm2022/avatar/lib/color-from-text.pipe.js +0 -39
  479. package/esm2022/avatar/lib/color-from-text.pipe.js.map +0 -1
  480. package/esm2022/avatar/malva-ui-core-avatar.js +0 -5
  481. package/esm2022/avatar/malva-ui-core-avatar.js.map +0 -1
  482. package/esm2022/avatar-group/index.js +0 -2
  483. package/esm2022/avatar-group/index.js.map +0 -1
  484. package/esm2022/avatar-group/lib/avatar-group/avatar-group.js +0 -217
  485. package/esm2022/avatar-group/lib/avatar-group/avatar-group.js.map +0 -1
  486. package/esm2022/avatar-group/malva-ui-core-avatar-group.js +0 -5
  487. package/esm2022/avatar-group/malva-ui-core-avatar-group.js.map +0 -1
  488. package/esm2022/badge/index.js +0 -3
  489. package/esm2022/badge/index.js.map +0 -1
  490. package/esm2022/badge/lib/badge/badge.js +0 -71
  491. package/esm2022/badge/lib/badge/badge.js.map +0 -1
  492. package/esm2022/badge/lib/badge-icon.js +0 -47
  493. package/esm2022/badge/lib/badge-icon.js.map +0 -1
  494. package/esm2022/badge/malva-ui-core-badge.js +0 -5
  495. package/esm2022/badge/malva-ui-core-badge.js.map +0 -1
  496. package/esm2022/bottom-nav/index.js +0 -2
  497. package/esm2022/bottom-nav/index.js.map +0 -1
  498. package/esm2022/bottom-nav/lib/bottom-nav/bottom-nav.js +0 -155
  499. package/esm2022/bottom-nav/lib/bottom-nav/bottom-nav.js.map +0 -1
  500. package/esm2022/bottom-nav/malva-ui-core-bottom-nav.js +0 -5
  501. package/esm2022/bottom-nav/malva-ui-core-bottom-nav.js.map +0 -1
  502. package/esm2022/breadcrumb/index.js +0 -6
  503. package/esm2022/breadcrumb/index.js.map +0 -1
  504. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item-host.js +0 -43
  505. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item-host.js.map +0 -1
  506. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item.js +0 -110
  507. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item.js.map +0 -1
  508. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-separator.js +0 -38
  509. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-separator.js.map +0 -1
  510. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.js +0 -284
  511. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.js.map +0 -1
  512. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.types.js +0 -1
  513. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.types.js.map +0 -1
  514. package/esm2022/breadcrumb/malva-ui-core-breadcrumb.js +0 -5
  515. package/esm2022/breadcrumb/malva-ui-core-breadcrumb.js.map +0 -1
  516. package/esm2022/button/index.js +0 -8
  517. package/esm2022/button/index.js.map +0 -1
  518. package/esm2022/button/lib/button/button.js +0 -137
  519. package/esm2022/button/lib/button/button.js.map +0 -1
  520. package/esm2022/button/lib/button-close/button-close.js +0 -52
  521. package/esm2022/button/lib/button-close/button-close.js.map +0 -1
  522. package/esm2022/button/lib/button-group/button-group.js +0 -44
  523. package/esm2022/button/lib/button-group/button-group.js.map +0 -1
  524. package/esm2022/button/lib/button-split/button-split.js +0 -44
  525. package/esm2022/button/lib/button-split/button-split.js.map +0 -1
  526. package/esm2022/button/lib/button-toggle/button-toggle.js +0 -94
  527. package/esm2022/button/lib/button-toggle/button-toggle.js.map +0 -1
  528. package/esm2022/button/lib/button-variant.token.js +0 -4
  529. package/esm2022/button/lib/button-variant.token.js.map +0 -1
  530. package/esm2022/button/lib/button.directives.js +0 -37
  531. package/esm2022/button/lib/button.directives.js.map +0 -1
  532. package/esm2022/button/lib/button.types.js +0 -1
  533. package/esm2022/button/lib/button.types.js.map +0 -1
  534. package/esm2022/button/malva-ui-core-button.js +0 -5
  535. package/esm2022/button/malva-ui-core-button.js.map +0 -1
  536. package/esm2022/calendar/index.js +0 -4
  537. package/esm2022/calendar/index.js.map +0 -1
  538. package/esm2022/calendar/lib/calendar/calendar.js +0 -672
  539. package/esm2022/calendar/lib/calendar/calendar.js.map +0 -1
  540. package/esm2022/calendar/lib/date-provider/date-adapter.js +0 -111
  541. package/esm2022/calendar/lib/date-provider/date-adapter.js.map +0 -1
  542. package/esm2022/calendar/lib/date-provider/native-date-adapter.js +0 -151
  543. package/esm2022/calendar/lib/date-provider/native-date-adapter.js.map +0 -1
  544. package/esm2022/calendar/malva-ui-core-calendar.js +0 -5
  545. package/esm2022/calendar/malva-ui-core-calendar.js.map +0 -1
  546. package/esm2022/card/index.js +0 -6
  547. package/esm2022/card/index.js.map +0 -1
  548. package/esm2022/card/lib/card/card.js +0 -54
  549. package/esm2022/card/lib/card/card.js.map +0 -1
  550. package/esm2022/card/lib/card-actions-def.js +0 -27
  551. package/esm2022/card/lib/card-actions-def.js.map +0 -1
  552. package/esm2022/card/lib/card-footer-def.js +0 -32
  553. package/esm2022/card/lib/card-footer-def.js.map +0 -1
  554. package/esm2022/card/lib/card-header-def.js +0 -27
  555. package/esm2022/card/lib/card-header-def.js.map +0 -1
  556. package/esm2022/card/lib/card-subheader-def.js +0 -33
  557. package/esm2022/card/lib/card-subheader-def.js.map +0 -1
  558. package/esm2022/card/malva-ui-core-card.js +0 -5
  559. package/esm2022/card/malva-ui-core-card.js.map +0 -1
  560. package/esm2022/chat/index.js +0 -10
  561. package/esm2022/chat/index.js.map +0 -1
  562. package/esm2022/chat/lib/chat/chat.js +0 -326
  563. package/esm2022/chat/lib/chat/chat.js.map +0 -1
  564. package/esm2022/chat/lib/chat-audio/chat-audio.js +0 -110
  565. package/esm2022/chat/lib/chat-audio/chat-audio.js.map +0 -1
  566. package/esm2022/chat/lib/chat-audio/chat-audio.service.js +0 -28
  567. package/esm2022/chat/lib/chat-audio/chat-audio.service.js.map +0 -1
  568. package/esm2022/chat/lib/chat-date/chat-date.js +0 -46
  569. package/esm2022/chat/lib/chat-date/chat-date.js.map +0 -1
  570. package/esm2022/chat/lib/chat-format.js +0 -11
  571. package/esm2022/chat/lib/chat-format.js.map +0 -1
  572. package/esm2022/chat/lib/chat-media-grid/chat-media-grid.js +0 -53
  573. package/esm2022/chat/lib/chat-media-grid/chat-media-grid.js.map +0 -1
  574. package/esm2022/chat/lib/chat-message/chat-message.js +0 -86
  575. package/esm2022/chat/lib/chat-message/chat-message.js.map +0 -1
  576. package/esm2022/chat/lib/chat-render-list.js +0 -55
  577. package/esm2022/chat/lib/chat-render-list.js.map +0 -1
  578. package/esm2022/chat/lib/chat-tokens.js +0 -9
  579. package/esm2022/chat/lib/chat-tokens.js.map +0 -1
  580. package/esm2022/chat/lib/chat-typing/chat-typing.js +0 -50
  581. package/esm2022/chat/lib/chat-typing/chat-typing.js.map +0 -1
  582. package/esm2022/chat/lib/chat.types.js +0 -1
  583. package/esm2022/chat/lib/chat.types.js.map +0 -1
  584. package/esm2022/chat/lib/defs/chat-author-def.js +0 -27
  585. package/esm2022/chat/lib/defs/chat-author-def.js.map +0 -1
  586. package/esm2022/chat/lib/defs/chat-date-def.js +0 -24
  587. package/esm2022/chat/lib/defs/chat-date-def.js.map +0 -1
  588. package/esm2022/chat/lib/defs/chat-message-def.js +0 -30
  589. package/esm2022/chat/lib/defs/chat-message-def.js.map +0 -1
  590. package/esm2022/chat/malva-ui-core-chat.js +0 -5
  591. package/esm2022/chat/malva-ui-core-chat.js.map +0 -1
  592. package/esm2022/checkbox/index.js +0 -4
  593. package/esm2022/checkbox/index.js.map +0 -1
  594. package/esm2022/checkbox/lib/checkbox/checkbox.js +0 -201
  595. package/esm2022/checkbox/lib/checkbox/checkbox.js.map +0 -1
  596. package/esm2022/checkbox/lib/checkbox-group/checkbox-group.js +0 -68
  597. package/esm2022/checkbox/lib/checkbox-group/checkbox-group.js.map +0 -1
  598. package/esm2022/checkbox/lib/checkbox-group-token.js +0 -3
  599. package/esm2022/checkbox/lib/checkbox-group-token.js.map +0 -1
  600. package/esm2022/checkbox/malva-ui-core-checkbox.js +0 -5
  601. package/esm2022/checkbox/malva-ui-core-checkbox.js.map +0 -1
  602. package/esm2022/chip/index.js +0 -3
  603. package/esm2022/chip/index.js.map +0 -1
  604. package/esm2022/chip/lib/chip/chip.directives.js +0 -32
  605. package/esm2022/chip/lib/chip/chip.directives.js.map +0 -1
  606. package/esm2022/chip/lib/chip/chip.js +0 -140
  607. package/esm2022/chip/lib/chip/chip.js.map +0 -1
  608. package/esm2022/chip/malva-ui-core-chip.js +0 -5
  609. package/esm2022/chip/malva-ui-core-chip.js.map +0 -1
  610. package/esm2022/color-picker/index.js +0 -4
  611. package/esm2022/color-picker/index.js.map +0 -1
  612. package/esm2022/color-picker/lib/color-picker/color-picker.js +0 -530
  613. package/esm2022/color-picker/lib/color-picker/color-picker.js.map +0 -1
  614. package/esm2022/color-picker/lib/color-picker-popup/color-picker-popup.js +0 -419
  615. package/esm2022/color-picker/lib/color-picker-popup/color-picker-popup.js.map +0 -1
  616. package/esm2022/color-picker/lib/color-utils/color-utils.js +0 -256
  617. package/esm2022/color-picker/lib/color-utils/color-utils.js.map +0 -1
  618. package/esm2022/color-picker/malva-ui-core-color-picker.js +0 -5
  619. package/esm2022/color-picker/malva-ui-core-color-picker.js.map +0 -1
  620. package/esm2022/combobox/index.js +0 -3
  621. package/esm2022/combobox/index.js.map +0 -1
  622. package/esm2022/combobox/lib/combobox/combobox.js +0 -911
  623. package/esm2022/combobox/lib/combobox/combobox.js.map +0 -1
  624. package/esm2022/combobox/lib/combobox-template.directives.js +0 -24
  625. package/esm2022/combobox/lib/combobox-template.directives.js.map +0 -1
  626. package/esm2022/combobox/malva-ui-core-combobox.js +0 -5
  627. package/esm2022/combobox/malva-ui-core-combobox.js.map +0 -1
  628. package/esm2022/copy-to-clipboard/index.js +0 -2
  629. package/esm2022/copy-to-clipboard/index.js.map +0 -1
  630. package/esm2022/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.js +0 -201
  631. package/esm2022/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.js.map +0 -1
  632. package/esm2022/copy-to-clipboard/malva-ui-core-copy-to-clipboard.js +0 -5
  633. package/esm2022/copy-to-clipboard/malva-ui-core-copy-to-clipboard.js.map +0 -1
  634. package/esm2022/data-table/index.js +0 -9
  635. package/esm2022/data-table/index.js.map +0 -1
  636. package/esm2022/data-table/lib/data-source.js +0 -6
  637. package/esm2022/data-table/lib/data-source.js.map +0 -1
  638. package/esm2022/data-table/lib/data-table/data-table-layout.js +0 -84
  639. package/esm2022/data-table/lib/data-table/data-table-layout.js.map +0 -1
  640. package/esm2022/data-table/lib/data-table/data-table.js +0 -1846
  641. package/esm2022/data-table/lib/data-table/data-table.js.map +0 -1
  642. package/esm2022/data-table/lib/data-table/services/data-table-column-visibility.service.js +0 -37
  643. package/esm2022/data-table/lib/data-table/services/data-table-column-visibility.service.js.map +0 -1
  644. package/esm2022/data-table/lib/data-table/services/data-table-editing.service.js +0 -63
  645. package/esm2022/data-table/lib/data-table/services/data-table-editing.service.js.map +0 -1
  646. package/esm2022/data-table/lib/data-table/services/data-table-pinning.service.js +0 -68
  647. package/esm2022/data-table/lib/data-table/services/data-table-pinning.service.js.map +0 -1
  648. package/esm2022/data-table/lib/data-table-cell.js +0 -46
  649. package/esm2022/data-table/lib/data-table-cell.js.map +0 -1
  650. package/esm2022/data-table/lib/data-table-edit-cell.js +0 -46
  651. package/esm2022/data-table/lib/data-table-edit-cell.js.map +0 -1
  652. package/esm2022/data-table/lib/data-table-error.js +0 -37
  653. package/esm2022/data-table/lib/data-table-error.js.map +0 -1
  654. package/esm2022/data-table/lib/data-table-footer.js +0 -33
  655. package/esm2022/data-table/lib/data-table-footer.js.map +0 -1
  656. package/esm2022/data-table/lib/data-table-no-data.js +0 -26
  657. package/esm2022/data-table/lib/data-table-no-data.js.map +0 -1
  658. package/esm2022/data-table/lib/filter-dropdown/filter-dropdown.js +0 -224
  659. package/esm2022/data-table/lib/filter-dropdown/filter-dropdown.js.map +0 -1
  660. package/esm2022/data-table/lib/types.js +0 -1
  661. package/esm2022/data-table/lib/types.js.map +0 -1
  662. package/esm2022/data-table/malva-ui-core-data-table.js +0 -5
  663. package/esm2022/data-table/malva-ui-core-data-table.js.map +0 -1
  664. package/esm2022/date-range-picker/index.js +0 -2
  665. package/esm2022/date-range-picker/index.js.map +0 -1
  666. package/esm2022/date-range-picker/lib/date-range-picker/date-range-picker.js +0 -269
  667. package/esm2022/date-range-picker/lib/date-range-picker/date-range-picker.js.map +0 -1
  668. package/esm2022/date-range-picker/malva-ui-core-date-range-picker.js +0 -5
  669. package/esm2022/date-range-picker/malva-ui-core-date-range-picker.js.map +0 -1
  670. package/esm2022/day-picker/index.js +0 -2
  671. package/esm2022/day-picker/index.js.map +0 -1
  672. package/esm2022/day-picker/lib/day-picker/day-picker.js +0 -124
  673. package/esm2022/day-picker/lib/day-picker/day-picker.js.map +0 -1
  674. package/esm2022/day-picker/malva-ui-core-day-picker.js +0 -5
  675. package/esm2022/day-picker/malva-ui-core-day-picker.js.map +0 -1
  676. package/esm2022/dialog/index.js +0 -12
  677. package/esm2022/dialog/index.js.map +0 -1
  678. package/esm2022/dialog/lib/confirm-dialog-options.js +0 -1
  679. package/esm2022/dialog/lib/confirm-dialog-options.js.map +0 -1
  680. package/esm2022/dialog/lib/confirm-dialog.js +0 -155
  681. package/esm2022/dialog/lib/confirm-dialog.js.map +0 -1
  682. package/esm2022/dialog/lib/dialog/dialog.js +0 -40
  683. package/esm2022/dialog/lib/dialog/dialog.js.map +0 -1
  684. package/esm2022/dialog/lib/dialog-body.js +0 -33
  685. package/esm2022/dialog/lib/dialog-body.js.map +0 -1
  686. package/esm2022/dialog/lib/dialog-close.js +0 -45
  687. package/esm2022/dialog/lib/dialog-close.js.map +0 -1
  688. package/esm2022/dialog/lib/dialog-config.js +0 -23
  689. package/esm2022/dialog/lib/dialog-config.js.map +0 -1
  690. package/esm2022/dialog/lib/dialog-container.js +0 -69
  691. package/esm2022/dialog/lib/dialog-container.js.map +0 -1
  692. package/esm2022/dialog/lib/dialog-footer.js +0 -29
  693. package/esm2022/dialog/lib/dialog-footer.js.map +0 -1
  694. package/esm2022/dialog/lib/dialog-header.js +0 -181
  695. package/esm2022/dialog/lib/dialog-header.js.map +0 -1
  696. package/esm2022/dialog/lib/dialog-ref.js +0 -167
  697. package/esm2022/dialog/lib/dialog-ref.js.map +0 -1
  698. package/esm2022/dialog/lib/dialog-template.js +0 -136
  699. package/esm2022/dialog/lib/dialog-template.js.map +0 -1
  700. package/esm2022/dialog/lib/dialog-text-content.js +0 -59
  701. package/esm2022/dialog/lib/dialog-text-content.js.map +0 -1
  702. package/esm2022/dialog/lib/dialog.service.js +0 -205
  703. package/esm2022/dialog/lib/dialog.service.js.map +0 -1
  704. package/esm2022/dialog/lib/generate-routable-dialog-route.js +0 -59
  705. package/esm2022/dialog/lib/generate-routable-dialog-route.js.map +0 -1
  706. package/esm2022/dialog/lib/inject-dialog-ref.js +0 -16
  707. package/esm2022/dialog/lib/inject-dialog-ref.js.map +0 -1
  708. package/esm2022/dialog/lib/routable-dialog.js +0 -91
  709. package/esm2022/dialog/lib/routable-dialog.js.map +0 -1
  710. package/esm2022/dialog/malva-ui-core-dialog.js +0 -5
  711. package/esm2022/dialog/malva-ui-core-dialog.js.map +0 -1
  712. package/esm2022/divider/index.js +0 -2
  713. package/esm2022/divider/index.js.map +0 -1
  714. package/esm2022/divider/lib/divider/divider.js +0 -73
  715. package/esm2022/divider/lib/divider/divider.js.map +0 -1
  716. package/esm2022/divider/malva-ui-core-divider.js +0 -5
  717. package/esm2022/divider/malva-ui-core-divider.js.map +0 -1
  718. package/esm2022/drawer/index.js +0 -12
  719. package/esm2022/drawer/index.js.map +0 -1
  720. package/esm2022/drawer/lib/drawer/drawer.js +0 -180
  721. package/esm2022/drawer/lib/drawer/drawer.js.map +0 -1
  722. package/esm2022/drawer/lib/drawer-body.js +0 -32
  723. package/esm2022/drawer/lib/drawer-body.js.map +0 -1
  724. package/esm2022/drawer/lib/drawer-content.js +0 -14
  725. package/esm2022/drawer/lib/drawer-content.js.map +0 -1
  726. package/esm2022/drawer/lib/drawer-footer.js +0 -14
  727. package/esm2022/drawer/lib/drawer-footer.js.map +0 -1
  728. package/esm2022/drawer/lib/drawer-header.js +0 -14
  729. package/esm2022/drawer/lib/drawer-header.js.map +0 -1
  730. package/esm2022/drawer/lib/drawer-ref.js +0 -31
  731. package/esm2022/drawer/lib/drawer-ref.js.map +0 -1
  732. package/esm2022/drawer/lib/drawer-resize.js +0 -243
  733. package/esm2022/drawer/lib/drawer-resize.js.map +0 -1
  734. package/esm2022/drawer/lib/drawer-section/drawer-section.js +0 -26
  735. package/esm2022/drawer/lib/drawer-section/drawer-section.js.map +0 -1
  736. package/esm2022/drawer/lib/drawer-sections/drawer-sections.js +0 -58
  737. package/esm2022/drawer/lib/drawer-sections/drawer-sections.js.map +0 -1
  738. package/esm2022/drawer/lib/drawer-sections.service.js +0 -83
  739. package/esm2022/drawer/lib/drawer-sections.service.js.map +0 -1
  740. package/esm2022/drawer/lib/drawer.service.js +0 -86
  741. package/esm2022/drawer/lib/drawer.service.js.map +0 -1
  742. package/esm2022/drawer/lib/generate-routable-drawer-route.js +0 -52
  743. package/esm2022/drawer/lib/generate-routable-drawer-route.js.map +0 -1
  744. package/esm2022/drawer/lib/routable-drawer.js +0 -91
  745. package/esm2022/drawer/lib/routable-drawer.js.map +0 -1
  746. package/esm2022/drawer/malva-ui-core-drawer.js +0 -5
  747. package/esm2022/drawer/malva-ui-core-drawer.js.map +0 -1
  748. package/esm2022/dropdown/index.js +0 -10
  749. package/esm2022/dropdown/index.js.map +0 -1
  750. package/esm2022/dropdown/lib/active-descendant.js +0 -92
  751. package/esm2022/dropdown/lib/active-descendant.js.map +0 -1
  752. package/esm2022/dropdown/lib/dropdown-panel/dropdown-panel.js +0 -295
  753. package/esm2022/dropdown/lib/dropdown-panel/dropdown-panel.js.map +0 -1
  754. package/esm2022/dropdown/lib/highlight-match.pipe.js +0 -36
  755. package/esm2022/dropdown/lib/highlight-match.pipe.js.map +0 -1
  756. package/esm2022/dropdown/lib/option-matcher.js +0 -124
  757. package/esm2022/dropdown/lib/option-matcher.js.map +0 -1
  758. package/esm2022/dropdown/lib/options-adapter.js +0 -356
  759. package/esm2022/dropdown/lib/options-adapter.js.map +0 -1
  760. package/esm2022/dropdown/lib/options-result.js +0 -11
  761. package/esm2022/dropdown/lib/options-result.js.map +0 -1
  762. package/esm2022/dropdown/lib/reconciliation.js +0 -32
  763. package/esm2022/dropdown/lib/reconciliation.js.map +0 -1
  764. package/esm2022/dropdown/lib/select-data-source.js +0 -21
  765. package/esm2022/dropdown/lib/select-data-source.js.map +0 -1
  766. package/esm2022/dropdown/lib/select-option.js +0 -25
  767. package/esm2022/dropdown/lib/select-option.js.map +0 -1
  768. package/esm2022/dropdown/malva-ui-core-dropdown.js +0 -5
  769. package/esm2022/dropdown/malva-ui-core-dropdown.js.map +0 -1
  770. package/esm2022/empty-state/index.js +0 -2
  771. package/esm2022/empty-state/index.js.map +0 -1
  772. package/esm2022/empty-state/lib/empty-state/empty-state.js +0 -43
  773. package/esm2022/empty-state/lib/empty-state/empty-state.js.map +0 -1
  774. package/esm2022/empty-state/malva-ui-core-empty-state.js +0 -5
  775. package/esm2022/empty-state/malva-ui-core-empty-state.js.map +0 -1
  776. package/esm2022/expand/index.js +0 -3
  777. package/esm2022/expand/index.js.map +0 -1
  778. package/esm2022/expand/lib/expand/expand-content.js +0 -33
  779. package/esm2022/expand/lib/expand/expand-content.js.map +0 -1
  780. package/esm2022/expand/lib/expand/expand.js +0 -93
  781. package/esm2022/expand/lib/expand/expand.js.map +0 -1
  782. package/esm2022/expand/malva-ui-core-expand.js +0 -5
  783. package/esm2022/expand/malva-ui-core-expand.js.map +0 -1
  784. package/esm2022/file-upload/index.js +0 -5
  785. package/esm2022/file-upload/index.js.map +0 -1
  786. package/esm2022/file-upload/lib/file-upload/file-upload.js +0 -324
  787. package/esm2022/file-upload/lib/file-upload/file-upload.js.map +0 -1
  788. package/esm2022/file-upload/lib/file-upload/file-upload.types.js +0 -1
  789. package/esm2022/file-upload/lib/file-upload/file-upload.types.js.map +0 -1
  790. package/esm2022/file-upload/lib/file-upload-action.js +0 -65
  791. package/esm2022/file-upload/lib/file-upload-action.js.map +0 -1
  792. package/esm2022/file-upload/lib/file-upload-item/file-upload-item.js +0 -55
  793. package/esm2022/file-upload/lib/file-upload-item/file-upload-item.js.map +0 -1
  794. package/esm2022/file-upload/malva-ui-core-file-upload.js +0 -5
  795. package/esm2022/file-upload/malva-ui-core-file-upload.js.map +0 -1
  796. package/esm2022/filter/index.js +0 -4
  797. package/esm2022/filter/index.js.map +0 -1
  798. package/esm2022/filter/lib/filter/filter.js +0 -552
  799. package/esm2022/filter/lib/filter/filter.js.map +0 -1
  800. package/esm2022/filter/lib/filter.types.js +0 -1
  801. package/esm2022/filter/lib/filter.types.js.map +0 -1
  802. package/esm2022/filter/lib/smart-filter-bar/smart-filter-bar.js +0 -518
  803. package/esm2022/filter/lib/smart-filter-bar/smart-filter-bar.js.map +0 -1
  804. package/esm2022/filter/malva-ui-core-filter.js +0 -5
  805. package/esm2022/filter/malva-ui-core-filter.js.map +0 -1
  806. package/esm2022/form/index.js +0 -7
  807. package/esm2022/form/index.js.map +0 -1
  808. package/esm2022/form/lib/fieldset/fieldset.js +0 -101
  809. package/esm2022/form/lib/fieldset/fieldset.js.map +0 -1
  810. package/esm2022/form/lib/fieldset-span.js +0 -49
  811. package/esm2022/form/lib/fieldset-span.js.map +0 -1
  812. package/esm2022/form/lib/form/form.js +0 -60
  813. package/esm2022/form/lib/form/form.js.map +0 -1
  814. package/esm2022/form/lib/form-actions.js +0 -34
  815. package/esm2022/form/lib/form-actions.js.map +0 -1
  816. package/esm2022/form/lib/form-gap.js +0 -15
  817. package/esm2022/form/lib/form-gap.js.map +0 -1
  818. package/esm2022/form/lib/form-header.js +0 -27
  819. package/esm2022/form/lib/form-header.js.map +0 -1
  820. package/esm2022/form/lib/form.types.js +0 -1
  821. package/esm2022/form/lib/form.types.js.map +0 -1
  822. package/esm2022/form/malva-ui-core-form.js +0 -5
  823. package/esm2022/form/malva-ui-core-form.js.map +0 -1
  824. package/esm2022/form-utils/index.js +0 -16
  825. package/esm2022/form-utils/index.js.map +0 -1
  826. package/esm2022/form-utils/lib/aria-value-bridge.js +0 -57
  827. package/esm2022/form-utils/lib/aria-value-bridge.js.map +0 -1
  828. package/esm2022/form-utils/lib/description/description.js +0 -24
  829. package/esm2022/form-utils/lib/description/description.js.map +0 -1
  830. package/esm2022/form-utils/lib/focusable-group-base.js +0 -87
  831. package/esm2022/form-utils/lib/focusable-group-base.js.map +0 -1
  832. package/esm2022/form-utils/lib/form-control-base/signal-form-control-base.js +0 -192
  833. package/esm2022/form-utils/lib/form-control-base/signal-form-control-base.js.map +0 -1
  834. package/esm2022/form-utils/lib/form-control-sides.js +0 -34
  835. package/esm2022/form-utils/lib/form-control-sides.js.map +0 -1
  836. package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper-control.js +0 -14
  837. package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper-control.js.map +0 -1
  838. package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper.js +0 -47
  839. package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper.js.map +0 -1
  840. package/esm2022/form-utils/lib/form-field/form-field.js +0 -245
  841. package/esm2022/form-utils/lib/form-field/form-field.js.map +0 -1
  842. package/esm2022/form-utils/lib/hint/hint.js +0 -11
  843. package/esm2022/form-utils/lib/hint/hint.js.map +0 -1
  844. package/esm2022/form-utils/lib/label/label.js +0 -55
  845. package/esm2022/form-utils/lib/label/label.js.map +0 -1
  846. package/esm2022/form-utils/lib/message/message.js +0 -20
  847. package/esm2022/form-utils/lib/message/message.js.map +0 -1
  848. package/esm2022/form-utils/lib/models/error-display-strategy.js +0 -1
  849. package/esm2022/form-utils/lib/models/error-display-strategy.js.map +0 -1
  850. package/esm2022/form-utils/lib/models/form-control-connector.js +0 -3
  851. package/esm2022/form-utils/lib/models/form-control-connector.js.map +0 -1
  852. package/esm2022/form-utils/lib/models/form-state.js +0 -1
  853. package/esm2022/form-utils/lib/models/form-state.js.map +0 -1
  854. package/esm2022/form-utils/lib/selection.service.js +0 -81
  855. package/esm2022/form-utils/lib/selection.service.js.map +0 -1
  856. package/esm2022/form-utils/malva-ui-core-form-utils.js +0 -5
  857. package/esm2022/form-utils/malva-ui-core-form-utils.js.map +0 -1
  858. package/esm2022/form-utils/testing/index.js +0 -2
  859. package/esm2022/form-utils/testing/index.js.map +0 -1
  860. package/esm2022/form-utils/testing/lib/forms-binding-matrix.js +0 -32
  861. package/esm2022/form-utils/testing/lib/forms-binding-matrix.js.map +0 -1
  862. package/esm2022/form-utils/testing/malva-ui-core-form-utils-testing.js +0 -5
  863. package/esm2022/form-utils/testing/malva-ui-core-form-utils-testing.js.map +0 -1
  864. package/esm2022/index.js +0 -70
  865. package/esm2022/index.js.map +0 -1
  866. package/esm2022/input/index.js +0 -4
  867. package/esm2022/input/index.js.map +0 -1
  868. package/esm2022/input/lib/input/input-native.js +0 -49
  869. package/esm2022/input/lib/input/input-native.js.map +0 -1
  870. package/esm2022/input/lib/input/input-value-accessor.js +0 -4
  871. package/esm2022/input/lib/input/input-value-accessor.js.map +0 -1
  872. package/esm2022/input/lib/input/input.js +0 -277
  873. package/esm2022/input/lib/input/input.js.map +0 -1
  874. package/esm2022/input/lib/input/password-strength.js +0 -46
  875. package/esm2022/input/lib/input/password-strength.js.map +0 -1
  876. package/esm2022/input/malva-ui-core-input.js +0 -5
  877. package/esm2022/input/malva-ui-core-input.js.map +0 -1
  878. package/esm2022/kbd/index.js +0 -2
  879. package/esm2022/kbd/index.js.map +0 -1
  880. package/esm2022/kbd/lib/kbd/kbd.js +0 -124
  881. package/esm2022/kbd/lib/kbd/kbd.js.map +0 -1
  882. package/esm2022/kbd/malva-ui-core-kbd.js +0 -5
  883. package/esm2022/kbd/malva-ui-core-kbd.js.map +0 -1
  884. package/esm2022/layout/index.js +0 -5
  885. package/esm2022/layout/index.js.map +0 -1
  886. package/esm2022/layout/lib/layout/directives/MlvLayoutSide.js +0 -14
  887. package/esm2022/layout/lib/layout/directives/MlvLayoutSide.js.map +0 -1
  888. package/esm2022/layout/lib/layout/directives/MlvLayoutTop.js +0 -14
  889. package/esm2022/layout/lib/layout/directives/MlvLayoutTop.js.map +0 -1
  890. package/esm2022/layout/lib/layout/layout.js +0 -43
  891. package/esm2022/layout/lib/layout/layout.js.map +0 -1
  892. package/esm2022/layout/lib/layout/services/theme.service.js +0 -121
  893. package/esm2022/layout/lib/layout/services/theme.service.js.map +0 -1
  894. package/esm2022/layout/malva-ui-core-layout.js +0 -5
  895. package/esm2022/layout/malva-ui-core-layout.js.map +0 -1
  896. package/esm2022/link/index.js +0 -3
  897. package/esm2022/link/index.js.map +0 -1
  898. package/esm2022/link/lib/link/link.directives.js +0 -24
  899. package/esm2022/link/lib/link/link.directives.js.map +0 -1
  900. package/esm2022/link/lib/link/link.js +0 -61
  901. package/esm2022/link/lib/link/link.js.map +0 -1
  902. package/esm2022/link/malva-ui-core-link.js +0 -5
  903. package/esm2022/link/malva-ui-core-link.js.map +0 -1
  904. package/esm2022/list/index.js +0 -14
  905. package/esm2022/list/index.js.map +0 -1
  906. package/esm2022/list/lib/list/list.js +0 -28
  907. package/esm2022/list/lib/list/list.js.map +0 -1
  908. package/esm2022/list/lib/list-item/list-item.js +0 -125
  909. package/esm2022/list/lib/list-item/list-item.js.map +0 -1
  910. package/esm2022/list/lib/list-item-actions.js +0 -23
  911. package/esm2022/list/lib/list-item-actions.js.map +0 -1
  912. package/esm2022/list/lib/list-item-byline.js +0 -13
  913. package/esm2022/list/lib/list-item-byline.js.map +0 -1
  914. package/esm2022/list/lib/list-item-group/list-item-group.js +0 -25
  915. package/esm2022/list/lib/list-item-group/list-item-group.js.map +0 -1
  916. package/esm2022/list/lib/list-item-link/list-item-link.js +0 -20
  917. package/esm2022/list/lib/list-item-link/list-item-link.js.map +0 -1
  918. package/esm2022/list/lib/list-item-media.js +0 -13
  919. package/esm2022/list/lib/list-item-media.js.map +0 -1
  920. package/esm2022/list/lib/list-item-meta.js +0 -13
  921. package/esm2022/list/lib/list-item-meta.js.map +0 -1
  922. package/esm2022/list/lib/list-item-prefix.js +0 -13
  923. package/esm2022/list/lib/list-item-prefix.js.map +0 -1
  924. package/esm2022/list/lib/list-item-suffix.js +0 -13
  925. package/esm2022/list/lib/list-item-suffix.js.map +0 -1
  926. package/esm2022/list/lib/list-item-template.js +0 -14
  927. package/esm2022/list/lib/list-item-template.js.map +0 -1
  928. package/esm2022/list/lib/list-item-title.js +0 -13
  929. package/esm2022/list/lib/list-item-title.js.map +0 -1
  930. package/esm2022/list/lib/list-selectable.js +0 -116
  931. package/esm2022/list/lib/list-selectable.js.map +0 -1
  932. package/esm2022/list/malva-ui-core-list.js +0 -5
  933. package/esm2022/list/malva-ui-core-list.js.map +0 -1
  934. package/esm2022/loader/index.js +0 -2
  935. package/esm2022/loader/index.js.map +0 -1
  936. package/esm2022/loader/lib/loader/loader.js +0 -134
  937. package/esm2022/loader/lib/loader/loader.js.map +0 -1
  938. package/esm2022/loader/malva-ui-core-loader.js +0 -5
  939. package/esm2022/loader/malva-ui-core-loader.js.map +0 -1
  940. package/esm2022/malva-ui-core.js +0 -5
  941. package/esm2022/malva-ui-core.js.map +0 -1
  942. package/esm2022/menu/index.js +0 -10
  943. package/esm2022/menu/index.js.map +0 -1
  944. package/esm2022/menu/lib/menu/menu-group-label.js +0 -35
  945. package/esm2022/menu/lib/menu/menu-group-label.js.map +0 -1
  946. package/esm2022/menu/lib/menu/menu-group.js +0 -44
  947. package/esm2022/menu/lib/menu/menu-group.js.map +0 -1
  948. package/esm2022/menu/lib/menu/menu-item.js +0 -117
  949. package/esm2022/menu/lib/menu/menu-item.js.map +0 -1
  950. package/esm2022/menu/lib/menu/menu-separator.js +0 -41
  951. package/esm2022/menu/lib/menu/menu-separator.js.map +0 -1
  952. package/esm2022/menu/lib/menu/menu-trigger.js +0 -653
  953. package/esm2022/menu/lib/menu/menu-trigger.js.map +0 -1
  954. package/esm2022/menu/lib/menu/menu.js +0 -308
  955. package/esm2022/menu/lib/menu/menu.js.map +0 -1
  956. package/esm2022/menu/lib/menu/menu.types.js +0 -4
  957. package/esm2022/menu/lib/menu/menu.types.js.map +0 -1
  958. package/esm2022/menu/lib/menu/menubar.js +0 -257
  959. package/esm2022/menu/lib/menu/menubar.js.map +0 -1
  960. package/esm2022/menu/lib/menu/menubar.types.js +0 -4
  961. package/esm2022/menu/lib/menu/menubar.types.js.map +0 -1
  962. package/esm2022/menu/lib/menu/submenu-aim.js +0 -30
  963. package/esm2022/menu/lib/menu/submenu-aim.js.map +0 -1
  964. package/esm2022/menu/malva-ui-core-menu.js +0 -5
  965. package/esm2022/menu/malva-ui-core-menu.js.map +0 -1
  966. package/esm2022/notification/index.js +0 -5
  967. package/esm2022/notification/index.js.map +0 -1
  968. package/esm2022/notification/lib/notification-item/notification-item.js +0 -65
  969. package/esm2022/notification/lib/notification-item/notification-item.js.map +0 -1
  970. package/esm2022/notification/lib/notification-ref.js +0 -13
  971. package/esm2022/notification/lib/notification-ref.js.map +0 -1
  972. package/esm2022/notification/lib/notification.service.js +0 -118
  973. package/esm2022/notification/lib/notification.service.js.map +0 -1
  974. package/esm2022/notification/lib/notification.types.js +0 -6
  975. package/esm2022/notification/lib/notification.types.js.map +0 -1
  976. package/esm2022/notification/malva-ui-core-notification.js +0 -5
  977. package/esm2022/notification/malva-ui-core-notification.js.map +0 -1
  978. package/esm2022/number-input/index.js +0 -2
  979. package/esm2022/number-input/index.js.map +0 -1
  980. package/esm2022/number-input/lib/number-input/number-input.js +0 -395
  981. package/esm2022/number-input/lib/number-input/number-input.js.map +0 -1
  982. package/esm2022/number-input/malva-ui-core-number-input.js +0 -5
  983. package/esm2022/number-input/malva-ui-core-number-input.js.map +0 -1
  984. package/esm2022/page/index.js +0 -15
  985. package/esm2022/page/index.js.map +0 -1
  986. package/esm2022/page/lib/page/page-scroll.token.js +0 -9
  987. package/esm2022/page/lib/page/page-scroll.token.js.map +0 -1
  988. package/esm2022/page/lib/page/page-snap-controller.js +0 -170
  989. package/esm2022/page/lib/page/page-snap-controller.js.map +0 -1
  990. package/esm2022/page/lib/page/page-snap.directive.js +0 -65
  991. package/esm2022/page/lib/page/page-snap.directive.js.map +0 -1
  992. package/esm2022/page/lib/page/page.js +0 -173
  993. package/esm2022/page/lib/page/page.js.map +0 -1
  994. package/esm2022/page/lib/page-content/page-aside.js +0 -13
  995. package/esm2022/page/lib/page-content/page-aside.js.map +0 -1
  996. package/esm2022/page/lib/page-content/page-content.js +0 -72
  997. package/esm2022/page/lib/page-content/page-content.js.map +0 -1
  998. package/esm2022/page/lib/page-dock/page-dock.js +0 -128
  999. package/esm2022/page/lib/page-dock/page-dock.js.map +0 -1
  1000. package/esm2022/page/lib/page-dock/page-dock.slots.js +0 -39
  1001. package/esm2022/page/lib/page-dock/page-dock.slots.js.map +0 -1
  1002. package/esm2022/page/lib/page-header/page-header.directives.js +0 -88
  1003. package/esm2022/page/lib/page-header/page-header.directives.js.map +0 -1
  1004. package/esm2022/page/lib/page-header/page-header.js +0 -124
  1005. package/esm2022/page/lib/page-header/page-header.js.map +0 -1
  1006. package/esm2022/page/lib/page-shell/page-shell-color.js +0 -193
  1007. package/esm2022/page/lib/page-shell/page-shell-color.js.map +0 -1
  1008. package/esm2022/page/lib/page-shell/page-shell-css-color.js +0 -207
  1009. package/esm2022/page/lib/page-shell/page-shell-css-color.js.map +0 -1
  1010. package/esm2022/page/lib/page-shell/page-shell.js +0 -131
  1011. package/esm2022/page/lib/page-shell/page-shell.js.map +0 -1
  1012. package/esm2022/page/lib/page-shell/page-shell.slots.js +0 -41
  1013. package/esm2022/page/lib/page-shell/page-shell.slots.js.map +0 -1
  1014. package/esm2022/page/lib/page-summary/page-summary-item.js +0 -26
  1015. package/esm2022/page/lib/page-summary/page-summary-item.js.map +0 -1
  1016. package/esm2022/page/lib/page-summary/page-summary.js +0 -87
  1017. package/esm2022/page/lib/page-summary/page-summary.js.map +0 -1
  1018. package/esm2022/page/malva-ui-core-page.js +0 -5
  1019. package/esm2022/page/malva-ui-core-page.js.map +0 -1
  1020. package/esm2022/pagination/index.js +0 -5
  1021. package/esm2022/pagination/index.js.map +0 -1
  1022. package/esm2022/pagination/lib/pagination/pagination.directives.js +0 -58
  1023. package/esm2022/pagination/lib/pagination/pagination.directives.js.map +0 -1
  1024. package/esm2022/pagination/lib/pagination/pagination.js +0 -293
  1025. package/esm2022/pagination/lib/pagination/pagination.js.map +0 -1
  1026. package/esm2022/pagination/lib/pagination/pagination.model.js +0 -1
  1027. package/esm2022/pagination/lib/pagination/pagination.model.js.map +0 -1
  1028. package/esm2022/pagination/lib/pagination/pagination.service.js +0 -108
  1029. package/esm2022/pagination/lib/pagination/pagination.service.js.map +0 -1
  1030. package/esm2022/pagination/malva-ui-core-pagination.js +0 -5
  1031. package/esm2022/pagination/malva-ui-core-pagination.js.map +0 -1
  1032. package/esm2022/pin-input/index.js +0 -3
  1033. package/esm2022/pin-input/index.js.map +0 -1
  1034. package/esm2022/pin-input/lib/pin-input/pin-input-separator.js +0 -31
  1035. package/esm2022/pin-input/lib/pin-input/pin-input-separator.js.map +0 -1
  1036. package/esm2022/pin-input/lib/pin-input/pin-input.js +0 -365
  1037. package/esm2022/pin-input/lib/pin-input/pin-input.js.map +0 -1
  1038. package/esm2022/pin-input/malva-ui-core-pin-input.js +0 -5
  1039. package/esm2022/pin-input/malva-ui-core-pin-input.js.map +0 -1
  1040. package/esm2022/popup/index.js +0 -10
  1041. package/esm2022/popup/index.js.map +0 -1
  1042. package/esm2022/popup/lib/popup/popup.js +0 -500
  1043. package/esm2022/popup/lib/popup/popup.js.map +0 -1
  1044. package/esm2022/popup/lib/popup-container/popup-container.js +0 -169
  1045. package/esm2022/popup/lib/popup-container/popup-container.js.map +0 -1
  1046. package/esm2022/popup/lib/popup-container/popup-container.token.js +0 -9
  1047. package/esm2022/popup/lib/popup-container/popup-container.token.js.map +0 -1
  1048. package/esm2022/popup/lib/popup-content.js +0 -14
  1049. package/esm2022/popup/lib/popup-content.js.map +0 -1
  1050. package/esm2022/popup/lib/popup-header-content.js +0 -26
  1051. package/esm2022/popup/lib/popup-header-content.js.map +0 -1
  1052. package/esm2022/popup/lib/popup-pinned-content.js +0 -25
  1053. package/esm2022/popup/lib/popup-pinned-content.js.map +0 -1
  1054. package/esm2022/popup/lib/popup-positions.js +0 -252
  1055. package/esm2022/popup/lib/popup-positions.js.map +0 -1
  1056. package/esm2022/popup/lib/popup-trigger/popup-trigger.js +0 -308
  1057. package/esm2022/popup/lib/popup-trigger/popup-trigger.js.map +0 -1
  1058. package/esm2022/popup/lib/popup.service.js +0 -188
  1059. package/esm2022/popup/lib/popup.service.js.map +0 -1
  1060. package/esm2022/popup/malva-ui-core-popup.js +0 -5
  1061. package/esm2022/popup/malva-ui-core-popup.js.map +0 -1
  1062. package/esm2022/progress/index.js +0 -2
  1063. package/esm2022/progress/index.js.map +0 -1
  1064. package/esm2022/progress/lib/progress/progress.js +0 -102
  1065. package/esm2022/progress/lib/progress/progress.js.map +0 -1
  1066. package/esm2022/progress/malva-ui-core-progress.js +0 -5
  1067. package/esm2022/progress/malva-ui-core-progress.js.map +0 -1
  1068. package/esm2022/radio/index.js +0 -3
  1069. package/esm2022/radio/index.js.map +0 -1
  1070. package/esm2022/radio/lib/radio/radio.js +0 -134
  1071. package/esm2022/radio/lib/radio/radio.js.map +0 -1
  1072. package/esm2022/radio/lib/radio-group/radio-group.js +0 -176
  1073. package/esm2022/radio/lib/radio-group/radio-group.js.map +0 -1
  1074. package/esm2022/radio/lib/radio-group-token.js +0 -3
  1075. package/esm2022/radio/lib/radio-group-token.js.map +0 -1
  1076. package/esm2022/radio/malva-ui-core-radio.js +0 -5
  1077. package/esm2022/radio/malva-ui-core-radio.js.map +0 -1
  1078. package/esm2022/rating/index.js +0 -2
  1079. package/esm2022/rating/index.js.map +0 -1
  1080. package/esm2022/rating/lib/rating/rating.js +0 -208
  1081. package/esm2022/rating/lib/rating/rating.js.map +0 -1
  1082. package/esm2022/rating/malva-ui-core-rating.js +0 -5
  1083. package/esm2022/rating/malva-ui-core-rating.js.map +0 -1
  1084. package/esm2022/scrollbar/index.js +0 -2
  1085. package/esm2022/scrollbar/index.js.map +0 -1
  1086. package/esm2022/scrollbar/lib/scrollbar/scrollbar.js +0 -388
  1087. package/esm2022/scrollbar/lib/scrollbar/scrollbar.js.map +0 -1
  1088. package/esm2022/scrollbar/malva-ui-core-scrollbar.js +0 -5
  1089. package/esm2022/scrollbar/malva-ui-core-scrollbar.js.map +0 -1
  1090. package/esm2022/search-field/index.js +0 -3
  1091. package/esm2022/search-field/index.js.map +0 -1
  1092. package/esm2022/search-field/lib/search-field/search-field.js +0 -535
  1093. package/esm2022/search-field/lib/search-field/search-field.js.map +0 -1
  1094. package/esm2022/search-field/lib/search-field/search-overlay-content.js +0 -35
  1095. package/esm2022/search-field/lib/search-field/search-overlay-content.js.map +0 -1
  1096. package/esm2022/search-field/malva-ui-core-search-field.js +0 -5
  1097. package/esm2022/search-field/malva-ui-core-search-field.js.map +0 -1
  1098. package/esm2022/segmented/index.js +0 -5
  1099. package/esm2022/segmented/index.js.map +0 -1
  1100. package/esm2022/segmented/lib/segmented/segmented.js +0 -248
  1101. package/esm2022/segmented/lib/segmented/segmented.js.map +0 -1
  1102. package/esm2022/segmented/lib/segmented-item/segmented-item.js +0 -194
  1103. package/esm2022/segmented/lib/segmented-item/segmented-item.js.map +0 -1
  1104. package/esm2022/segmented/lib/segmented-token.js +0 -4
  1105. package/esm2022/segmented/lib/segmented-token.js.map +0 -1
  1106. package/esm2022/segmented/lib/segmented.types.js +0 -1
  1107. package/esm2022/segmented/lib/segmented.types.js.map +0 -1
  1108. package/esm2022/segmented/malva-ui-core-segmented.js +0 -5
  1109. package/esm2022/segmented/malva-ui-core-segmented.js.map +0 -1
  1110. package/esm2022/select/index.js +0 -4
  1111. package/esm2022/select/index.js.map +0 -1
  1112. package/esm2022/select/lib/select/select.js +0 -685
  1113. package/esm2022/select/lib/select/select.js.map +0 -1
  1114. package/esm2022/select/lib/select-option.js +0 -2
  1115. package/esm2022/select/lib/select-option.js.map +0 -1
  1116. package/esm2022/select/lib/select-template.directives.js +0 -34
  1117. package/esm2022/select/lib/select-template.directives.js.map +0 -1
  1118. package/esm2022/select/malva-ui-core-select.js +0 -5
  1119. package/esm2022/select/malva-ui-core-select.js.map +0 -1
  1120. package/esm2022/sidebar/index.js +0 -16
  1121. package/esm2022/sidebar/index.js.map +0 -1
  1122. package/esm2022/sidebar/lib/sidebar/sidebar.js +0 -251
  1123. package/esm2022/sidebar/lib/sidebar/sidebar.js.map +0 -1
  1124. package/esm2022/sidebar/lib/sidebar-content.js +0 -37
  1125. package/esm2022/sidebar/lib/sidebar-content.js.map +0 -1
  1126. package/esm2022/sidebar/lib/sidebar-context.js +0 -3
  1127. package/esm2022/sidebar/lib/sidebar-context.js.map +0 -1
  1128. package/esm2022/sidebar/lib/sidebar-footer.js +0 -20
  1129. package/esm2022/sidebar/lib/sidebar-footer.js.map +0 -1
  1130. package/esm2022/sidebar/lib/sidebar-group/sidebar-group.js +0 -341
  1131. package/esm2022/sidebar/lib/sidebar-group/sidebar-group.js.map +0 -1
  1132. package/esm2022/sidebar/lib/sidebar-header.js +0 -20
  1133. package/esm2022/sidebar/lib/sidebar-header.js.map +0 -1
  1134. package/esm2022/sidebar/lib/sidebar-item/sidebar-item.js +0 -216
  1135. package/esm2022/sidebar/lib/sidebar-item/sidebar-item.js.map +0 -1
  1136. package/esm2022/sidebar/lib/sidebar-item-host.js +0 -39
  1137. package/esm2022/sidebar/lib/sidebar-item-host.js.map +0 -1
  1138. package/esm2022/sidebar/lib/sidebar-item-icon.js +0 -14
  1139. package/esm2022/sidebar/lib/sidebar-item-icon.js.map +0 -1
  1140. package/esm2022/sidebar/lib/sidebar-mode.js +0 -1
  1141. package/esm2022/sidebar/lib/sidebar-mode.js.map +0 -1
  1142. package/esm2022/sidebar/lib/sidebar-rail/sidebar-rail.js +0 -202
  1143. package/esm2022/sidebar/lib/sidebar-rail/sidebar-rail.js.map +0 -1
  1144. package/esm2022/sidebar/lib/sidebar-trigger/sidebar-trigger.js +0 -159
  1145. package/esm2022/sidebar/lib/sidebar-trigger/sidebar-trigger.js.map +0 -1
  1146. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.js +0 -35
  1147. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.js.map +0 -1
  1148. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.js +0 -107
  1149. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.js.map +0 -1
  1150. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.types.js +0 -1
  1151. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.types.js.map +0 -1
  1152. package/esm2022/sidebar/malva-ui-core-sidebar.js +0 -5
  1153. package/esm2022/sidebar/malva-ui-core-sidebar.js.map +0 -1
  1154. package/esm2022/skeleton/index.js +0 -2
  1155. package/esm2022/skeleton/index.js.map +0 -1
  1156. package/esm2022/skeleton/lib/skeleton/skeleton.js +0 -78
  1157. package/esm2022/skeleton/lib/skeleton/skeleton.js.map +0 -1
  1158. package/esm2022/skeleton/malva-ui-core-skeleton.js +0 -5
  1159. package/esm2022/skeleton/malva-ui-core-skeleton.js.map +0 -1
  1160. package/esm2022/slider/index.js +0 -3
  1161. package/esm2022/slider/index.js.map +0 -1
  1162. package/esm2022/slider/lib/slider/slider-tooltip-def.js +0 -31
  1163. package/esm2022/slider/lib/slider/slider-tooltip-def.js.map +0 -1
  1164. package/esm2022/slider/lib/slider/slider.js +0 -468
  1165. package/esm2022/slider/lib/slider/slider.js.map +0 -1
  1166. package/esm2022/slider/malva-ui-core-slider.js +0 -5
  1167. package/esm2022/slider/malva-ui-core-slider.js.map +0 -1
  1168. package/esm2022/split-pane/index.js +0 -4
  1169. package/esm2022/split-pane/index.js.map +0 -1
  1170. package/esm2022/split-pane/lib/split-pane/split-pane-panel.js +0 -49
  1171. package/esm2022/split-pane/lib/split-pane/split-pane-panel.js.map +0 -1
  1172. package/esm2022/split-pane/lib/split-pane/split-pane.js +0 -290
  1173. package/esm2022/split-pane/lib/split-pane/split-pane.js.map +0 -1
  1174. package/esm2022/split-pane/lib/split-pane/split-pane.types.js +0 -1
  1175. package/esm2022/split-pane/lib/split-pane/split-pane.types.js.map +0 -1
  1176. package/esm2022/split-pane/malva-ui-core-split-pane.js +0 -5
  1177. package/esm2022/split-pane/malva-ui-core-split-pane.js.map +0 -1
  1178. package/esm2022/status-indicator/index.js +0 -2
  1179. package/esm2022/status-indicator/index.js.map +0 -1
  1180. package/esm2022/status-indicator/lib/status-indicator/status-indicator.js +0 -71
  1181. package/esm2022/status-indicator/lib/status-indicator/status-indicator.js.map +0 -1
  1182. package/esm2022/status-indicator/malva-ui-core-status-indicator.js +0 -5
  1183. package/esm2022/status-indicator/malva-ui-core-status-indicator.js.map +0 -1
  1184. package/esm2022/stepper/index.js +0 -5
  1185. package/esm2022/stepper/index.js.map +0 -1
  1186. package/esm2022/stepper/lib/stepper/step-header.js +0 -46
  1187. package/esm2022/stepper/lib/stepper/step-header.js.map +0 -1
  1188. package/esm2022/stepper/lib/stepper/step.js +0 -65
  1189. package/esm2022/stepper/lib/stepper/step.js.map +0 -1
  1190. package/esm2022/stepper/lib/stepper/stepper-token.js +0 -4
  1191. package/esm2022/stepper/lib/stepper/stepper-token.js.map +0 -1
  1192. package/esm2022/stepper/lib/stepper/stepper.js +0 -216
  1193. package/esm2022/stepper/lib/stepper/stepper.js.map +0 -1
  1194. package/esm2022/stepper/lib/stepper/stepper.types.js +0 -1
  1195. package/esm2022/stepper/lib/stepper/stepper.types.js.map +0 -1
  1196. package/esm2022/stepper/malva-ui-core-stepper.js +0 -5
  1197. package/esm2022/stepper/malva-ui-core-stepper.js.map +0 -1
  1198. package/esm2022/switch/index.js +0 -3
  1199. package/esm2022/switch/index.js.map +0 -1
  1200. package/esm2022/switch/lib/switch/switch.js +0 -190
  1201. package/esm2022/switch/lib/switch/switch.js.map +0 -1
  1202. package/esm2022/switch/lib/switch-group/switch-group.js +0 -68
  1203. package/esm2022/switch/lib/switch-group/switch-group.js.map +0 -1
  1204. package/esm2022/switch/lib/switch-group-token.js +0 -3
  1205. package/esm2022/switch/lib/switch-group-token.js.map +0 -1
  1206. package/esm2022/switch/malva-ui-core-switch.js +0 -5
  1207. package/esm2022/switch/malva-ui-core-switch.js.map +0 -1
  1208. package/esm2022/tabs/index.js +0 -9
  1209. package/esm2022/tabs/index.js.map +0 -1
  1210. package/esm2022/tabs/lib/tab/tab.js +0 -72
  1211. package/esm2022/tabs/lib/tab/tab.js.map +0 -1
  1212. package/esm2022/tabs/lib/tab-content/tab-content.js +0 -19
  1213. package/esm2022/tabs/lib/tab-content/tab-content.js.map +0 -1
  1214. package/esm2022/tabs/lib/tab-content-def.js +0 -14
  1215. package/esm2022/tabs/lib/tab-content-def.js.map +0 -1
  1216. package/esm2022/tabs/lib/tab-def.js +0 -17
  1217. package/esm2022/tabs/lib/tab-def.js.map +0 -1
  1218. package/esm2022/tabs/lib/tab-group-token.js +0 -3
  1219. package/esm2022/tabs/lib/tab-group-token.js.map +0 -1
  1220. package/esm2022/tabs/lib/tab-item/tab-item.js +0 -44
  1221. package/esm2022/tabs/lib/tab-item/tab-item.js.map +0 -1
  1222. package/esm2022/tabs/lib/tabs/tabs.js +0 -542
  1223. package/esm2022/tabs/lib/tabs/tabs.js.map +0 -1
  1224. package/esm2022/tabs/lib/tabs.service.js +0 -83
  1225. package/esm2022/tabs/lib/tabs.service.js.map +0 -1
  1226. package/esm2022/tabs/malva-ui-core-tabs.js +0 -5
  1227. package/esm2022/tabs/malva-ui-core-tabs.js.map +0 -1
  1228. package/esm2022/textarea/index.js +0 -2
  1229. package/esm2022/textarea/index.js.map +0 -1
  1230. package/esm2022/textarea/lib/textarea/textarea.js +0 -194
  1231. package/esm2022/textarea/lib/textarea/textarea.js.map +0 -1
  1232. package/esm2022/textarea/malva-ui-core-textarea.js +0 -5
  1233. package/esm2022/textarea/malva-ui-core-textarea.js.map +0 -1
  1234. package/esm2022/tile/index.js +0 -3
  1235. package/esm2022/tile/index.js.map +0 -1
  1236. package/esm2022/tile/lib/tile/tile.js +0 -39
  1237. package/esm2022/tile/lib/tile/tile.js.map +0 -1
  1238. package/esm2022/tile/lib/tile-header.js +0 -14
  1239. package/esm2022/tile/lib/tile-header.js.map +0 -1
  1240. package/esm2022/tile/malva-ui-core-tile.js +0 -5
  1241. package/esm2022/tile/malva-ui-core-tile.js.map +0 -1
  1242. package/esm2022/time-picker/index.js +0 -2
  1243. package/esm2022/time-picker/index.js.map +0 -1
  1244. package/esm2022/time-picker/lib/time-picker/time-picker.js +0 -310
  1245. package/esm2022/time-picker/lib/time-picker/time-picker.js.map +0 -1
  1246. package/esm2022/time-picker/lib/time-picker-column/time-picker-column.js +0 -216
  1247. package/esm2022/time-picker/lib/time-picker-column/time-picker-column.js.map +0 -1
  1248. package/esm2022/time-picker/malva-ui-core-time-picker.js +0 -5
  1249. package/esm2022/time-picker/malva-ui-core-time-picker.js.map +0 -1
  1250. package/esm2022/timeline/index.js +0 -6
  1251. package/esm2022/timeline/index.js.map +0 -1
  1252. package/esm2022/timeline/lib/timeline/timeline-item-icon.js +0 -31
  1253. package/esm2022/timeline/lib/timeline/timeline-item-icon.js.map +0 -1
  1254. package/esm2022/timeline/lib/timeline/timeline-item-meta.js +0 -31
  1255. package/esm2022/timeline/lib/timeline/timeline-item-meta.js.map +0 -1
  1256. package/esm2022/timeline/lib/timeline/timeline-item.js +0 -69
  1257. package/esm2022/timeline/lib/timeline/timeline-item.js.map +0 -1
  1258. package/esm2022/timeline/lib/timeline/timeline.js +0 -36
  1259. package/esm2022/timeline/lib/timeline/timeline.js.map +0 -1
  1260. package/esm2022/timeline/lib/timeline/timeline.types.js +0 -1
  1261. package/esm2022/timeline/lib/timeline/timeline.types.js.map +0 -1
  1262. package/esm2022/timeline/malva-ui-core-timeline.js +0 -5
  1263. package/esm2022/timeline/malva-ui-core-timeline.js.map +0 -1
  1264. package/esm2022/title/index.js +0 -2
  1265. package/esm2022/title/index.js.map +0 -1
  1266. package/esm2022/title/lib/title/title.js +0 -171
  1267. package/esm2022/title/lib/title/title.js.map +0 -1
  1268. package/esm2022/title/malva-ui-core-title.js +0 -5
  1269. package/esm2022/title/malva-ui-core-title.js.map +0 -1
  1270. package/esm2022/toast/index.js +0 -13
  1271. package/esm2022/toast/index.js.map +0 -1
  1272. package/esm2022/toast/lib/abstract-toast-container.js +0 -50
  1273. package/esm2022/toast/lib/abstract-toast-container.js.map +0 -1
  1274. package/esm2022/toast/lib/abstract-toast-item.js +0 -75
  1275. package/esm2022/toast/lib/abstract-toast-item.js.map +0 -1
  1276. package/esm2022/toast/lib/abstract-toast.service.js +0 -176
  1277. package/esm2022/toast/lib/abstract-toast.service.js.map +0 -1
  1278. package/esm2022/toast/lib/toast-container/toast-container.js +0 -61
  1279. package/esm2022/toast/lib/toast-container/toast-container.js.map +0 -1
  1280. package/esm2022/toast/lib/toast-item/toast-item.js +0 -62
  1281. package/esm2022/toast/lib/toast-item/toast-item.js.map +0 -1
  1282. package/esm2022/toast/lib/toast-ref.js +0 -54
  1283. package/esm2022/toast/lib/toast-ref.js.map +0 -1
  1284. package/esm2022/toast/lib/toast-timer.js +0 -37
  1285. package/esm2022/toast/lib/toast-timer.js.map +0 -1
  1286. package/esm2022/toast/lib/toast.directives.js +0 -76
  1287. package/esm2022/toast/lib/toast.directives.js.map +0 -1
  1288. package/esm2022/toast/lib/toast.service.js +0 -127
  1289. package/esm2022/toast/lib/toast.service.js.map +0 -1
  1290. package/esm2022/toast/lib/toast.types.js +0 -39
  1291. package/esm2022/toast/lib/toast.types.js.map +0 -1
  1292. package/esm2022/toast/malva-ui-core-toast.js +0 -5
  1293. package/esm2022/toast/malva-ui-core-toast.js.map +0 -1
  1294. package/esm2022/tokenizer/index.js +0 -4
  1295. package/esm2022/tokenizer/index.js.map +0 -1
  1296. package/esm2022/tokenizer/lib/token/token.js +0 -123
  1297. package/esm2022/tokenizer/lib/token/token.js.map +0 -1
  1298. package/esm2022/tokenizer/lib/token-template.js +0 -23
  1299. package/esm2022/tokenizer/lib/token-template.js.map +0 -1
  1300. package/esm2022/tokenizer/lib/tokenizer/tokenizer.js +0 -324
  1301. package/esm2022/tokenizer/lib/tokenizer/tokenizer.js.map +0 -1
  1302. package/esm2022/tokenizer/malva-ui-core-tokenizer.js +0 -5
  1303. package/esm2022/tokenizer/malva-ui-core-tokenizer.js.map +0 -1
  1304. package/esm2022/toolbar/index.js +0 -4
  1305. package/esm2022/toolbar/index.js.map +0 -1
  1306. package/esm2022/toolbar/lib/toolbar/toolbar-spacer.js +0 -13
  1307. package/esm2022/toolbar/lib/toolbar/toolbar-spacer.js.map +0 -1
  1308. package/esm2022/toolbar/lib/toolbar/toolbar-widget.js +0 -106
  1309. package/esm2022/toolbar/lib/toolbar/toolbar-widget.js.map +0 -1
  1310. package/esm2022/toolbar/lib/toolbar/toolbar.js +0 -19
  1311. package/esm2022/toolbar/lib/toolbar/toolbar.js.map +0 -1
  1312. package/esm2022/toolbar/malva-ui-core-toolbar.js +0 -5
  1313. package/esm2022/toolbar/malva-ui-core-toolbar.js.map +0 -1
  1314. package/esm2022/tooltip/index.js +0 -4
  1315. package/esm2022/tooltip/index.js.map +0 -1
  1316. package/esm2022/tooltip/lib/tooltip/tooltip-panel.js +0 -69
  1317. package/esm2022/tooltip/lib/tooltip/tooltip-panel.js.map +0 -1
  1318. package/esm2022/tooltip/lib/tooltip/tooltip.js +0 -352
  1319. package/esm2022/tooltip/lib/tooltip/tooltip.js.map +0 -1
  1320. package/esm2022/tooltip/lib/tooltip/tooltip.types.js +0 -1
  1321. package/esm2022/tooltip/lib/tooltip/tooltip.types.js.map +0 -1
  1322. package/esm2022/tooltip/malva-ui-core-tooltip.js +0 -5
  1323. package/esm2022/tooltip/malva-ui-core-tooltip.js.map +0 -1
  1324. package/esm2022/tree/index.js +0 -5
  1325. package/esm2022/tree/index.js.map +0 -1
  1326. package/esm2022/tree/lib/tree/tree-context.js +0 -7
  1327. package/esm2022/tree/lib/tree/tree-context.js.map +0 -1
  1328. package/esm2022/tree/lib/tree/tree-node-def.js +0 -34
  1329. package/esm2022/tree/lib/tree/tree-node-def.js.map +0 -1
  1330. package/esm2022/tree/lib/tree/tree-node.js +0 -1
  1331. package/esm2022/tree/lib/tree/tree-node.js.map +0 -1
  1332. package/esm2022/tree/lib/tree/tree-subtree.js +0 -107
  1333. package/esm2022/tree/lib/tree/tree-subtree.js.map +0 -1
  1334. package/esm2022/tree/lib/tree/tree.js +0 -362
  1335. package/esm2022/tree/lib/tree/tree.js.map +0 -1
  1336. package/esm2022/tree/malva-ui-core-tree.js +0 -5
  1337. package/esm2022/tree/malva-ui-core-tree.js.map +0 -1
  1338. package/expand/index.d.ts +0 -2
  1339. package/expand/lib/expand/expand-content.d.ts +0 -26
  1340. package/expand/lib/expand/expand.d.ts +0 -74
  1341. package/expand/malva-ui-core-expand.d.ts +0 -5
  1342. package/file-upload/index.d.ts +0 -4
  1343. package/file-upload/lib/file-upload/file-upload.d.ts +0 -138
  1344. package/file-upload/lib/file-upload/file-upload.types.d.ts +0 -42
  1345. package/file-upload/lib/file-upload-action.d.ts +0 -53
  1346. package/file-upload/lib/file-upload-item/file-upload-item.d.ts +0 -30
  1347. package/file-upload/malva-ui-core-file-upload.d.ts +0 -5
  1348. package/filter/index.d.ts +0 -3
  1349. package/filter/lib/filter/filter.d.ts +0 -156
  1350. package/filter/lib/filter.types.d.ts +0 -75
  1351. package/filter/lib/smart-filter-bar/smart-filter-bar.d.ts +0 -153
  1352. package/filter/malva-ui-core-filter.d.ts +0 -5
  1353. package/form/index.d.ts +0 -6
  1354. package/form/lib/fieldset/fieldset.d.ts +0 -58
  1355. package/form/lib/fieldset-span.d.ts +0 -28
  1356. package/form/lib/form/form.d.ts +0 -37
  1357. package/form/lib/form-actions.d.ts +0 -20
  1358. package/form/lib/form-gap.d.ts +0 -5
  1359. package/form/lib/form-header.d.ts +0 -18
  1360. package/form/lib/form.types.d.ts +0 -13
  1361. package/form/malva-ui-core-form.d.ts +0 -5
  1362. package/form-utils/index.d.ts +0 -15
  1363. package/form-utils/lib/aria-value-bridge.d.ts +0 -45
  1364. package/form-utils/lib/description/description.d.ts +0 -16
  1365. package/form-utils/lib/focusable-group-base.d.ts +0 -76
  1366. package/form-utils/lib/form-control-base/signal-form-control-base.d.ts +0 -159
  1367. package/form-utils/lib/form-control-sides.d.ts +0 -20
  1368. package/form-utils/lib/form-control-wrapper/form-control-wrapper-control.d.ts +0 -6
  1369. package/form-utils/lib/form-control-wrapper/form-control-wrapper.d.ts +0 -20
  1370. package/form-utils/lib/form-field/form-field.d.ts +0 -68
  1371. package/form-utils/lib/hint/hint.d.ts +0 -5
  1372. package/form-utils/lib/label/label.d.ts +0 -22
  1373. package/form-utils/lib/message/message.d.ts +0 -7
  1374. package/form-utils/lib/models/error-display-strategy.d.ts +0 -1
  1375. package/form-utils/lib/models/form-control-connector.d.ts +0 -41
  1376. package/form-utils/lib/models/form-state.d.ts +0 -1
  1377. package/form-utils/lib/selection.service.d.ts +0 -27
  1378. package/form-utils/malva-ui-core-form-utils.d.ts +0 -5
  1379. package/form-utils/testing/index.d.ts +0 -1
  1380. package/form-utils/testing/lib/forms-binding-matrix.d.ts +0 -47
  1381. package/form-utils/testing/malva-ui-core-form-utils-testing.d.ts +0 -5
  1382. package/index.d.ts +0 -69
  1383. package/input/index.d.ts +0 -3
  1384. package/input/lib/input/input-native.d.ts +0 -36
  1385. package/input/lib/input/input-value-accessor.d.ts +0 -11
  1386. package/input/lib/input/input.d.ts +0 -189
  1387. package/input/lib/input/password-strength.d.ts +0 -34
  1388. package/input/malva-ui-core-input.d.ts +0 -5
  1389. package/kbd/index.d.ts +0 -1
  1390. package/kbd/lib/kbd/kbd.d.ts +0 -52
  1391. package/kbd/malva-ui-core-kbd.d.ts +0 -5
  1392. package/layout/index.d.ts +0 -4
  1393. package/layout/lib/layout/directives/MlvLayoutSide.d.ts +0 -6
  1394. package/layout/lib/layout/directives/MlvLayoutTop.d.ts +0 -6
  1395. package/layout/lib/layout/layout.d.ts +0 -20
  1396. package/layout/lib/layout/services/theme.service.d.ts +0 -33
  1397. package/layout/malva-ui-core-layout.d.ts +0 -5
  1398. package/link/index.d.ts +0 -2
  1399. package/link/lib/link/link.d.ts +0 -15
  1400. package/link/lib/link/link.directives.d.ts +0 -10
  1401. package/link/malva-ui-core-link.d.ts +0 -5
  1402. package/list/index.d.ts +0 -13
  1403. package/list/lib/list/list.d.ts +0 -25
  1404. package/list/lib/list-item/list-item.d.ts +0 -67
  1405. package/list/lib/list-item-actions.d.ts +0 -12
  1406. package/list/lib/list-item-byline.d.ts +0 -5
  1407. package/list/lib/list-item-group/list-item-group.d.ts +0 -11
  1408. package/list/lib/list-item-link/list-item-link.d.ts +0 -8
  1409. package/list/lib/list-item-media.d.ts +0 -5
  1410. package/list/lib/list-item-meta.d.ts +0 -5
  1411. package/list/lib/list-item-prefix.d.ts +0 -5
  1412. package/list/lib/list-item-suffix.d.ts +0 -5
  1413. package/list/lib/list-item-template.d.ts +0 -10
  1414. package/list/lib/list-item-title.d.ts +0 -5
  1415. package/list/lib/list-selectable.d.ts +0 -73
  1416. package/list/malva-ui-core-list.d.ts +0 -5
  1417. package/loader/index.d.ts +0 -1
  1418. package/loader/lib/loader/loader.d.ts +0 -84
  1419. package/loader/malva-ui-core-loader.d.ts +0 -5
  1420. package/malva-ui-core.d.ts +0 -5
  1421. package/menu/index.d.ts +0 -9
  1422. package/menu/lib/menu/menu-group-label.d.ts +0 -22
  1423. package/menu/lib/menu/menu-group.d.ts +0 -27
  1424. package/menu/lib/menu/menu-item.d.ts +0 -76
  1425. package/menu/lib/menu/menu-separator.d.ts +0 -18
  1426. package/menu/lib/menu/menu-trigger.d.ts +0 -255
  1427. package/menu/lib/menu/menu.d.ts +0 -149
  1428. package/menu/lib/menu/menu.types.d.ts +0 -13
  1429. package/menu/lib/menu/menubar.d.ts +0 -131
  1430. package/menu/lib/menu/menubar.types.d.ts +0 -82
  1431. package/menu/lib/menu/submenu-aim.d.ts +0 -10
  1432. package/menu/malva-ui-core-menu.d.ts +0 -5
  1433. package/notification/index.d.ts +0 -4
  1434. package/notification/lib/notification-item/notification-item.d.ts +0 -20
  1435. package/notification/lib/notification-ref.d.ts +0 -12
  1436. package/notification/lib/notification.service.d.ts +0 -43
  1437. package/notification/lib/notification.types.d.ts +0 -52
  1438. package/notification/malva-ui-core-notification.d.ts +0 -5
  1439. package/number-input/index.d.ts +0 -1
  1440. package/number-input/lib/number-input/number-input.d.ts +0 -162
  1441. package/number-input/malva-ui-core-number-input.d.ts +0 -5
  1442. package/page/index.d.ts +0 -14
  1443. package/page/lib/page/page-scroll.token.d.ts +0 -19
  1444. package/page/lib/page/page-snap-controller.d.ts +0 -87
  1445. package/page/lib/page/page-snap.directive.d.ts +0 -40
  1446. package/page/lib/page/page.d.ts +0 -74
  1447. package/page/lib/page-content/page-aside.d.ts +0 -7
  1448. package/page/lib/page-content/page-content.d.ts +0 -37
  1449. package/page/lib/page-dock/page-dock.d.ts +0 -50
  1450. package/page/lib/page-dock/page-dock.slots.d.ts +0 -16
  1451. package/page/lib/page-header/page-header.d.ts +0 -77
  1452. package/page/lib/page-header/page-header.directives.d.ts +0 -50
  1453. package/page/lib/page-shell/page-shell-color.d.ts +0 -48
  1454. package/page/lib/page-shell/page-shell-css-color.d.ts +0 -20
  1455. package/page/lib/page-shell/page-shell.d.ts +0 -44
  1456. package/page/lib/page-shell/page-shell.slots.d.ts +0 -16
  1457. package/page/lib/page-summary/page-summary-item.d.ts +0 -11
  1458. package/page/lib/page-summary/page-summary.d.ts +0 -36
  1459. package/page/malva-ui-core-page.d.ts +0 -5
  1460. package/pagination/index.d.ts +0 -4
  1461. package/pagination/lib/pagination/pagination.d.ts +0 -182
  1462. package/pagination/lib/pagination/pagination.directives.d.ts +0 -44
  1463. package/pagination/lib/pagination/pagination.model.d.ts +0 -6
  1464. package/pagination/lib/pagination/pagination.service.d.ts +0 -26
  1465. package/pagination/malva-ui-core-pagination.d.ts +0 -5
  1466. package/pin-input/index.d.ts +0 -2
  1467. package/pin-input/lib/pin-input/pin-input-separator.d.ts +0 -24
  1468. package/pin-input/lib/pin-input/pin-input.d.ts +0 -176
  1469. package/pin-input/malva-ui-core-pin-input.d.ts +0 -5
  1470. package/popup/index.d.ts +0 -9
  1471. package/popup/lib/popup/popup.d.ts +0 -343
  1472. package/popup/lib/popup-container/popup-container.d.ts +0 -61
  1473. package/popup/lib/popup-container/popup-container.token.d.ts +0 -34
  1474. package/popup/lib/popup-content.d.ts +0 -6
  1475. package/popup/lib/popup-header-content.d.ts +0 -18
  1476. package/popup/lib/popup-pinned-content.d.ts +0 -17
  1477. package/popup/lib/popup-positions.d.ts +0 -105
  1478. package/popup/lib/popup-trigger/popup-trigger.d.ts +0 -102
  1479. package/popup/lib/popup.service.d.ts +0 -159
  1480. package/popup/malva-ui-core-popup.d.ts +0 -5
  1481. package/progress/index.d.ts +0 -1
  1482. package/progress/lib/progress/progress.d.ts +0 -69
  1483. package/progress/malva-ui-core-progress.d.ts +0 -5
  1484. package/radio/index.d.ts +0 -2
  1485. package/radio/lib/radio/radio.d.ts +0 -87
  1486. package/radio/lib/radio-group/radio-group.d.ts +0 -35
  1487. package/radio/lib/radio-group-token.d.ts +0 -7
  1488. package/radio/malva-ui-core-radio.d.ts +0 -5
  1489. package/rating/index.d.ts +0 -1
  1490. package/rating/lib/rating/rating.d.ts +0 -100
  1491. package/rating/malva-ui-core-rating.d.ts +0 -5
  1492. package/scrollbar/index.d.ts +0 -1
  1493. package/scrollbar/lib/scrollbar/scrollbar.d.ts +0 -166
  1494. package/scrollbar/malva-ui-core-scrollbar.d.ts +0 -5
  1495. package/search-field/index.d.ts +0 -2
  1496. package/search-field/lib/search-field/search-field.d.ts +0 -347
  1497. package/search-field/lib/search-field/search-overlay-content.d.ts +0 -59
  1498. package/search-field/malva-ui-core-search-field.d.ts +0 -5
  1499. package/segmented/index.d.ts +0 -4
  1500. package/segmented/lib/segmented/segmented.d.ts +0 -80
  1501. package/segmented/lib/segmented-item/segmented-item.d.ts +0 -89
  1502. package/segmented/lib/segmented-token.d.ts +0 -22
  1503. package/segmented/lib/segmented.types.d.ts +0 -9
  1504. package/segmented/malva-ui-core-segmented.d.ts +0 -5
  1505. package/select/index.d.ts +0 -3
  1506. package/select/lib/select/select.d.ts +0 -379
  1507. package/select/lib/select-option.d.ts +0 -1
  1508. package/select/lib/select-template.directives.d.ts +0 -14
  1509. package/select/malva-ui-core-select.d.ts +0 -5
  1510. package/sidebar/index.d.ts +0 -15
  1511. package/sidebar/lib/sidebar/sidebar.d.ts +0 -134
  1512. package/sidebar/lib/sidebar-content.d.ts +0 -11
  1513. package/sidebar/lib/sidebar-context.d.ts +0 -23
  1514. package/sidebar/lib/sidebar-footer.d.ts +0 -9
  1515. package/sidebar/lib/sidebar-group/sidebar-group.d.ts +0 -127
  1516. package/sidebar/lib/sidebar-header.d.ts +0 -9
  1517. package/sidebar/lib/sidebar-item/sidebar-item.d.ts +0 -104
  1518. package/sidebar/lib/sidebar-item-host.d.ts +0 -18
  1519. package/sidebar/lib/sidebar-item-icon.d.ts +0 -6
  1520. package/sidebar/lib/sidebar-mode.d.ts +0 -2
  1521. package/sidebar/lib/sidebar-rail/sidebar-rail.d.ts +0 -54
  1522. package/sidebar/lib/sidebar-trigger/sidebar-trigger.d.ts +0 -67
  1523. package/sidebar/lib/sidebar-workspace/sidebar-workspace.d.ts +0 -54
  1524. package/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.d.ts +0 -19
  1525. package/sidebar/lib/sidebar-workspace/sidebar-workspace.types.d.ts +0 -20
  1526. package/sidebar/malva-ui-core-sidebar.d.ts +0 -5
  1527. package/skeleton/index.d.ts +0 -1
  1528. package/skeleton/lib/skeleton/skeleton.d.ts +0 -60
  1529. package/skeleton/malva-ui-core-skeleton.d.ts +0 -5
  1530. package/slider/index.d.ts +0 -2
  1531. package/slider/lib/slider/slider-tooltip-def.d.ts +0 -39
  1532. package/slider/lib/slider/slider.d.ts +0 -171
  1533. package/slider/malva-ui-core-slider.d.ts +0 -5
  1534. package/split-pane/index.d.ts +0 -3
  1535. package/split-pane/lib/split-pane/split-pane-panel.d.ts +0 -34
  1536. package/split-pane/lib/split-pane/split-pane.d.ts +0 -98
  1537. package/split-pane/lib/split-pane/split-pane.types.d.ts +0 -7
  1538. package/split-pane/malva-ui-core-split-pane.d.ts +0 -5
  1539. package/status-indicator/index.d.ts +0 -1
  1540. package/status-indicator/lib/status-indicator/status-indicator.d.ts +0 -61
  1541. package/status-indicator/malva-ui-core-status-indicator.d.ts +0 -5
  1542. package/stepper/index.d.ts +0 -4
  1543. package/stepper/lib/stepper/step-header.d.ts +0 -34
  1544. package/stepper/lib/stepper/step.d.ts +0 -51
  1545. package/stepper/lib/stepper/stepper-token.d.ts +0 -13
  1546. package/stepper/lib/stepper/stepper.d.ts +0 -98
  1547. package/stepper/lib/stepper/stepper.types.d.ts +0 -4
  1548. package/stepper/malva-ui-core-stepper.d.ts +0 -5
  1549. package/switch/index.d.ts +0 -2
  1550. package/switch/lib/switch/switch.d.ts +0 -118
  1551. package/switch/lib/switch-group/switch-group.d.ts +0 -24
  1552. package/switch/lib/switch-group-token.d.ts +0 -6
  1553. package/switch/malva-ui-core-switch.d.ts +0 -5
  1554. package/tabs/index.d.ts +0 -8
  1555. package/tabs/lib/tab/tab.d.ts +0 -46
  1556. package/tabs/lib/tab-content/tab-content.d.ts +0 -11
  1557. package/tabs/lib/tab-content-def.d.ts +0 -6
  1558. package/tabs/lib/tab-def.d.ts +0 -11
  1559. package/tabs/lib/tab-group-token.d.ts +0 -10
  1560. package/tabs/lib/tab-item/tab-item.d.ts +0 -28
  1561. package/tabs/lib/tabs/tabs.d.ts +0 -202
  1562. package/tabs/lib/tabs.service.d.ts +0 -24
  1563. package/tabs/malva-ui-core-tabs.d.ts +0 -5
  1564. package/textarea/index.d.ts +0 -1
  1565. package/textarea/lib/textarea/textarea.d.ts +0 -77
  1566. package/textarea/malva-ui-core-textarea.d.ts +0 -5
  1567. package/tile/index.d.ts +0 -2
  1568. package/tile/lib/tile/tile.d.ts +0 -20
  1569. package/tile/lib/tile-header.d.ts +0 -6
  1570. package/tile/malva-ui-core-tile.d.ts +0 -5
  1571. package/time-picker/index.d.ts +0 -1
  1572. package/time-picker/lib/time-picker/time-picker.d.ts +0 -135
  1573. package/time-picker/lib/time-picker-column/time-picker-column.d.ts +0 -111
  1574. package/time-picker/malva-ui-core-time-picker.d.ts +0 -5
  1575. package/timeline/index.d.ts +0 -5
  1576. package/timeline/lib/timeline/timeline-item-icon.d.ts +0 -24
  1577. package/timeline/lib/timeline/timeline-item-meta.d.ts +0 -24
  1578. package/timeline/lib/timeline/timeline-item.d.ts +0 -52
  1579. package/timeline/lib/timeline/timeline.d.ts +0 -27
  1580. package/timeline/lib/timeline/timeline.types.d.ts +0 -18
  1581. package/timeline/malva-ui-core-timeline.d.ts +0 -5
  1582. package/title/index.d.ts +0 -1
  1583. package/title/lib/title/title.d.ts +0 -63
  1584. package/title/malva-ui-core-title.d.ts +0 -5
  1585. package/toast/index.d.ts +0 -10
  1586. package/toast/lib/abstract-toast-container.d.ts +0 -29
  1587. package/toast/lib/abstract-toast-item.d.ts +0 -44
  1588. package/toast/lib/abstract-toast.service.d.ts +0 -75
  1589. package/toast/lib/toast-container/toast-container.d.ts +0 -23
  1590. package/toast/lib/toast-item/toast-item.d.ts +0 -25
  1591. package/toast/lib/toast-ref.d.ts +0 -33
  1592. package/toast/lib/toast-timer.d.ts +0 -24
  1593. package/toast/lib/toast.directives.d.ts +0 -13
  1594. package/toast/lib/toast.service.d.ts +0 -41
  1595. package/toast/lib/toast.types.d.ts +0 -139
  1596. package/toast/malva-ui-core-toast.d.ts +0 -5
  1597. package/tokenizer/index.d.ts +0 -3
  1598. package/tokenizer/lib/token/token.d.ts +0 -60
  1599. package/tokenizer/lib/token-template.d.ts +0 -29
  1600. package/tokenizer/lib/tokenizer/tokenizer.d.ts +0 -109
  1601. package/tokenizer/malva-ui-core-tokenizer.d.ts +0 -5
  1602. package/toolbar/index.d.ts +0 -3
  1603. package/toolbar/lib/toolbar/toolbar-spacer.d.ts +0 -5
  1604. package/toolbar/lib/toolbar/toolbar-widget.d.ts +0 -75
  1605. package/toolbar/lib/toolbar/toolbar.d.ts +0 -8
  1606. package/toolbar/malva-ui-core-toolbar.d.ts +0 -5
  1607. package/tooltip/index.d.ts +0 -3
  1608. package/tooltip/lib/tooltip/tooltip-panel.d.ts +0 -26
  1609. package/tooltip/lib/tooltip/tooltip.d.ts +0 -148
  1610. package/tooltip/lib/tooltip/tooltip.types.d.ts +0 -17
  1611. package/tooltip/malva-ui-core-tooltip.d.ts +0 -5
  1612. package/tree/index.d.ts +0 -4
  1613. package/tree/lib/tree/tree-context.d.ts +0 -62
  1614. package/tree/lib/tree/tree-node-def.d.ts +0 -33
  1615. package/tree/lib/tree/tree-node.d.ts +0 -45
  1616. package/tree/lib/tree/tree-subtree.d.ts +0 -63
  1617. package/tree/lib/tree/tree.d.ts +0 -156
  1618. package/tree/malva-ui-core-tree.d.ts +0 -5
@@ -0,0 +1,1204 @@
1
+ import * as i0 from '@angular/core';
2
+ import { model, inject, input, output, signal, computed, viewChild, DestroyRef, effect, forwardRef, ChangeDetectionStrategy, ViewEncapsulation, Component, ElementRef, untracked } from '@angular/core';
3
+ import { NgTemplateOutlet } from '@angular/common';
4
+ import { MlvTab, MlvTabContentDef, MlvTabDef, MlvTabGroup } from '@malva-ui/core/tabs';
5
+ import { MlvInput } from '@malva-ui/core/input';
6
+ import { MlvSignalFormControlBase, MLV_FORM_CONTROL, MlvFormControlWrapper, MlvFormControlWrapperControl, MlvHint, MlvDescription, MlvLabel, MlvMessage } from '@malva-ui/core/form-utils';
7
+ import { MLV_COLOR_PICKER_I18N, MLV_FORM_UTILS_I18N, MlvI18nResolverService } from '@malva-ui/i18n';
8
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
9
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
10
+ import { fromEvent } from 'rxjs';
11
+ import { takeUntil, take } from 'rxjs/operators';
12
+ import { MlvButton, MlvButtonIcon } from '@malva-ui/core/button';
13
+ import { MlvTooltip } from '@malva-ui/core/tooltip';
14
+ import { MlvPopup, MlvPopupContainer, MlvPopupContent } from '@malva-ui/core/popup';
15
+ import { MlvTabbableElementService } from '@malva-ui/cdk/accessibility';
16
+ import { mlvNextId } from '@malva-ui/cdk/utils';
17
+
18
+ /**
19
+ * Clamps a number to the range [min, max].
20
+ */
21
+ function clamp(value, min, max) {
22
+ return Math.min(max, Math.max(min, value));
23
+ }
24
+ /**
25
+ * Rounds a number to a given number of decimal places.
26
+ */
27
+ function round(value, decimals = 0) {
28
+ const factor = Math.pow(10, decimals);
29
+ return Math.round(value * factor) / factor;
30
+ }
31
+ /**
32
+ * Converts HSL (0-360, 0-100, 0-100) to RGB (0-255 each).
33
+ */
34
+ function hslToRgb(h, s, l) {
35
+ const sNorm = s / 100;
36
+ const lNorm = l / 100;
37
+ const a = sNorm * Math.min(lNorm, 1 - lNorm);
38
+ const f = (n) => {
39
+ const k = (n + h / 30) % 12;
40
+ return lNorm - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);
41
+ };
42
+ return {
43
+ r: Math.round(f(0) * 255),
44
+ g: Math.round(f(8) * 255),
45
+ b: Math.round(f(4) * 255),
46
+ };
47
+ }
48
+ /**
49
+ * Converts RGB (0-255) to HSL (0-360, 0-100, 0-100).
50
+ */
51
+ function rgbToHsl(r, g, b) {
52
+ const rNorm = r / 255;
53
+ const gNorm = g / 255;
54
+ const bNorm = b / 255;
55
+ const max = Math.max(rNorm, gNorm, bNorm);
56
+ const min = Math.min(rNorm, gNorm, bNorm);
57
+ const delta = max - min;
58
+ let h = 0;
59
+ let s = 0;
60
+ const l = (max + min) / 2;
61
+ if (delta !== 0) {
62
+ s = delta / (1 - Math.abs(2 * l - 1));
63
+ if (max === rNorm) {
64
+ h = ((gNorm - bNorm) / delta) % 6;
65
+ }
66
+ else if (max === gNorm) {
67
+ h = (bNorm - rNorm) / delta + 2;
68
+ }
69
+ else {
70
+ h = (rNorm - gNorm) / delta + 4;
71
+ }
72
+ h = h * 60;
73
+ if (h < 0)
74
+ h += 360;
75
+ }
76
+ return {
77
+ h: round(h, 1),
78
+ s: round(s * 100, 1),
79
+ l: round(l * 100, 1),
80
+ };
81
+ }
82
+ /**
83
+ * Converts a hex string (#RRGGBB or #RRGGBBAA) to RGBA.
84
+ * Returns null if the hex string is invalid.
85
+ */
86
+ function hexToRgba(hex) {
87
+ const cleaned = hex.replace('#', '');
88
+ if (cleaned.length !== 6 && cleaned.length !== 8)
89
+ return null;
90
+ const r = parseInt(cleaned.substring(0, 2), 16);
91
+ const g = parseInt(cleaned.substring(2, 4), 16);
92
+ const b = parseInt(cleaned.substring(4, 6), 16);
93
+ const a = cleaned.length === 8 ? parseInt(cleaned.substring(6, 8), 16) / 255 : 1;
94
+ if (isNaN(r) || isNaN(g) || isNaN(b))
95
+ return null;
96
+ return { r, g, b, a };
97
+ }
98
+ /**
99
+ * Converts RGBA to a hex string.
100
+ * Includes alpha channel as #RRGGBBAA if alpha < 1.
101
+ */
102
+ function rgbaToHex(r, g, b, a) {
103
+ const toHex = (n) => Math.round(clamp(n, 0, 255))
104
+ .toString(16)
105
+ .padStart(2, '0');
106
+ const hex = `#${toHex(r)}${toHex(g)}${toHex(b)}`;
107
+ if (a < 1) {
108
+ return hex + toHex(a * 255);
109
+ }
110
+ return hex;
111
+ }
112
+ /**
113
+ * Converts an HSLa object to a CSS color string.
114
+ * Produces hsla() when alpha < 1, otherwise hsl().
115
+ */
116
+ function hslaToString(color) {
117
+ const { h, s, l, a } = color;
118
+ if (a < 1) {
119
+ return `hsla(${round(h, 1)}, ${round(s, 1)}%, ${round(l, 1)}%, ${round(a, 2)})`;
120
+ }
121
+ return `hsl(${round(h, 1)}, ${round(s, 1)}%, ${round(l, 1)}%)`;
122
+ }
123
+ /**
124
+ * Converts an HSLa object to an RGBA object.
125
+ */
126
+ function hslaToRgba(color) {
127
+ const { r, g, b } = hslToRgb(color.h, color.s, color.l);
128
+ return { r, g, b, a: color.a };
129
+ }
130
+ /**
131
+ * Converts an HSLa object to a hex string (#RRGGBB or #RRGGBBAA).
132
+ */
133
+ function hslaToHex(color) {
134
+ const { r, g, b } = hslToRgb(color.h, color.s, color.l);
135
+ return rgbaToHex(r, g, b, color.a);
136
+ }
137
+ /**
138
+ * Strictly parses a supported concrete CSS color string into an HSLa object.
139
+ * Supports: #RGB, #RGBA, #RRGGBB, #RRGGBBAA, rgb(), rgba(), hsl(), hsla().
140
+ * Returns `null` when parsing fails.
141
+ *
142
+ * CSS custom-property references are intentionally not resolved here because
143
+ * their value depends on an element's computed cascade. Use
144
+ * {@link isCssColorValue} when validating editable color text.
145
+ */
146
+ function tryParseCssColor(css) {
147
+ const str = css.trim().toLowerCase();
148
+ // Handle hex
149
+ if (str.startsWith('#')) {
150
+ let hex = str.slice(1);
151
+ // Expand shorthand #RGB → #RRGGBB
152
+ if (hex.length === 3) {
153
+ hex = hex
154
+ .split('')
155
+ .map((c) => c + c)
156
+ .join('');
157
+ }
158
+ if (hex.length === 4) {
159
+ hex = hex
160
+ .split('')
161
+ .map((c) => c + c)
162
+ .join('');
163
+ }
164
+ const rgba = hexToRgba('#' + hex);
165
+ if (rgba) {
166
+ const hsl = rgbToHsl(rgba.r, rgba.g, rgba.b);
167
+ return { ...hsl, a: round(rgba.a, 2) };
168
+ }
169
+ }
170
+ // Handle rgb() / rgba()
171
+ const rgbMatch = str.match(/^rgba?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/);
172
+ if (rgbMatch) {
173
+ const r = parseFloat(rgbMatch[1]);
174
+ const g = parseFloat(rgbMatch[2]);
175
+ const b = parseFloat(rgbMatch[3]);
176
+ if ([r, g, b].some((channel) => channel < 0 || channel > 255)) {
177
+ return null;
178
+ }
179
+ const a = rgbMatch[4] !== undefined ? parseFloat(rgbMatch[4]) : 1;
180
+ const hsl = rgbToHsl(r, g, b);
181
+ return { ...hsl, a: clamp(a, 0, 1) };
182
+ }
183
+ // Handle hsl() / hsla()
184
+ const hslMatch = str.match(/^hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)%\s*,\s*(\d+(?:\.\d+)?)%\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/);
185
+ if (hslMatch) {
186
+ return {
187
+ h: clamp(parseFloat(hslMatch[1]), 0, 360),
188
+ s: clamp(parseFloat(hslMatch[2]), 0, 100),
189
+ l: clamp(parseFloat(hslMatch[3]), 0, 100),
190
+ a: hslMatch[4] !== undefined ? clamp(parseFloat(hslMatch[4]), 0, 1) : 1,
191
+ };
192
+ }
193
+ return null;
194
+ }
195
+ /**
196
+ * Returns whether a string is a supported concrete color or a syntactically
197
+ * valid CSS custom-property color reference.
198
+ *
199
+ * An unresolved `var(--name)` is valid editable input: the browser resolves it
200
+ * later against the element's computed cascade. Optional fallbacks are
201
+ * validated recursively, including nested `var(...)` references.
202
+ */
203
+ function isCssColorValue(css) {
204
+ const value = css.trim();
205
+ return tryParseCssColor(value) !== null || isCssVariableColor(value);
206
+ }
207
+ /**
208
+ * Parses the grammar needed for color-valued CSS custom-property references
209
+ * without requiring DOM/CSSOM globals, keeping the utility SSR- and test-safe.
210
+ */
211
+ function isCssVariableColor(value) {
212
+ if (!value.toLowerCase().startsWith('var(') || !value.endsWith(')')) {
213
+ return false;
214
+ }
215
+ const content = value.slice(4, -1);
216
+ let depth = 0;
217
+ let separator = -1;
218
+ for (let index = 0; index < content.length; index += 1) {
219
+ const character = content[index];
220
+ if (character === '(') {
221
+ depth += 1;
222
+ }
223
+ else if (character === ')') {
224
+ depth -= 1;
225
+ if (depth < 0)
226
+ return false;
227
+ }
228
+ else if (character === ',' && depth === 0 && separator === -1) {
229
+ separator = index;
230
+ }
231
+ }
232
+ if (depth !== 0)
233
+ return false;
234
+ const customProperty = (separator === -1 ? content : content.slice(0, separator)).trim();
235
+ if (!/^--[a-z0-9_-]+$/i.test(customProperty))
236
+ return false;
237
+ if (separator === -1)
238
+ return true;
239
+ const fallback = content.slice(separator + 1).trim();
240
+ return fallback.length > 0 && isCssColorValue(fallback);
241
+ }
242
+ /**
243
+ * Parses any supported concrete CSS color string into an HSLa object.
244
+ * Returns a default black color if parsing fails.
245
+ */
246
+ function parseCssColor(css) {
247
+ return tryParseCssColor(css) ?? { h: 0, s: 0, l: 0, a: 1 };
248
+ }
249
+ /**
250
+ * Converts an HSLa object to a CSS color string in the specified mode.
251
+ */
252
+ function hslaToModeString(color, mode) {
253
+ if (mode === 'hsl') {
254
+ return hslaToString(color);
255
+ }
256
+ const { r, g, b } = hslToRgb(color.h, color.s, color.l);
257
+ if (mode === 'hex') {
258
+ return rgbaToHex(r, g, b, color.a);
259
+ }
260
+ // rgb
261
+ if (color.a < 1) {
262
+ return `rgba(${r}, ${g}, ${b}, ${round(color.a, 2)})`;
263
+ }
264
+ return `rgb(${r}, ${g}, ${b})`;
265
+ }
266
+ /**
267
+ * Converts an HSLa color to a CSS rgba() string (used internally for canvas rendering).
268
+ */
269
+ function hslaToRgbaString(color) {
270
+ const { r, g, b } = hslToRgb(color.h, color.s, color.l);
271
+ return `rgba(${r}, ${g}, ${b}, ${color.a})`;
272
+ }
273
+
274
+ /**
275
+ * The MlvColorPicker provides an HSL/HEX/RGB color picker with:
276
+ * - A 2D saturation-lightness canvas (pointer-draggable)
277
+ * - A hue slider
278
+ * - An opacity slider
279
+ * - Input mode tabs for HEX, RGB, and HSL
280
+ * - Signal, reactive, and template-driven forms integration producing a CSS color string
281
+ */
282
+ class MlvColorPicker extends MlvSignalFormControlBase {
283
+ static _ALL_FORMATS = [
284
+ 'hex',
285
+ 'rgb',
286
+ 'hsl',
287
+ ];
288
+ /** The CSS color string used by all Angular forms APIs. */
289
+ value = model('#ff0000', /* @ts-ignore */
290
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
291
+ /** @protected Injected i18n translations for the color picker. */
292
+ _i18n = inject(MLV_COLOR_PICKER_I18N);
293
+ /** Whether to show the opacity slider. Defaults to true. */
294
+ showOpacity = input(true, { ...(ngDevMode ? { debugName: "showOpacity" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
295
+ /** The default input mode displayed when the picker opens. */
296
+ defaultMode = input('hex', /* @ts-ignore */
297
+ ...(ngDevMode ? [{ debugName: "defaultMode" }] : /* istanbul ignore next */ []));
298
+ /** Available color formats, in display order. */
299
+ supportedFormats = input(MlvColorPicker._ALL_FORMATS, /* @ts-ignore */
300
+ ...(ngDevMode ? [{ debugName: "supportedFormats" }] : /* istanbul ignore next */ []));
301
+ /** Emits the CSS color string whenever the color changes. */
302
+ colorChange = output();
303
+ /** @private Current color in HSLA space. */
304
+ _hsla = signal({ h: 0, s: 100, l: 50, a: 1 }, /* @ts-ignore */
305
+ ...(ngDevMode ? [{ debugName: "_hsla" }] : /* istanbul ignore next */ []));
306
+ /** @private Current input mode for the text inputs. */
307
+ _inputMode = signal('hex', /* @ts-ignore */
308
+ ...(ngDevMode ? [{ debugName: "_inputMode" }] : /* istanbul ignore next */ []));
309
+ /** Formats normalized to supported unique values, preserving caller order. */
310
+ _supportedFormats = computed(() => {
311
+ const formats = this.supportedFormats().filter((format, index, values) => MlvColorPicker._ALL_FORMATS.includes(format) &&
312
+ values.indexOf(format) === index);
313
+ return formats.length > 0 ? formats : MlvColorPicker._ALL_FORMATS;
314
+ }, /* @ts-ignore */
315
+ ...(ngDevMode ? [{ debugName: "_supportedFormats" }] : /* istanbul ignore next */ []));
316
+ /** @private The current raw hex input string (kept separate to avoid cursor-jump on typing). */
317
+ _hexInput = signal('#ff0000', /* @ts-ignore */
318
+ ...(ngDevMode ? [{ debugName: "_hexInput" }] : /* istanbul ignore next */ []));
319
+ /** @private The current raw red channel input. */
320
+ _rgbRInput = signal('255', /* @ts-ignore */
321
+ ...(ngDevMode ? [{ debugName: "_rgbRInput" }] : /* istanbul ignore next */ []));
322
+ /** @private The current raw green channel input. */
323
+ _rgbGInput = signal('0', /* @ts-ignore */
324
+ ...(ngDevMode ? [{ debugName: "_rgbGInput" }] : /* istanbul ignore next */ []));
325
+ /** @private The current raw blue channel input. */
326
+ _rgbBInput = signal('0', /* @ts-ignore */
327
+ ...(ngDevMode ? [{ debugName: "_rgbBInput" }] : /* istanbul ignore next */ []));
328
+ /** @private The current raw alpha input for RGB mode. */
329
+ _rgbAInput = signal('1', /* @ts-ignore */
330
+ ...(ngDevMode ? [{ debugName: "_rgbAInput" }] : /* istanbul ignore next */ []));
331
+ /** @private The current raw hue input for HSL mode. */
332
+ _hslHInput = signal('0', /* @ts-ignore */
333
+ ...(ngDevMode ? [{ debugName: "_hslHInput" }] : /* istanbul ignore next */ []));
334
+ /** @private The current raw saturation input for HSL mode. */
335
+ _hslSInput = signal('100', /* @ts-ignore */
336
+ ...(ngDevMode ? [{ debugName: "_hslSInput" }] : /* istanbul ignore next */ []));
337
+ /** @private The current raw lightness input for HSL mode. */
338
+ _hslLInput = signal('50', /* @ts-ignore */
339
+ ...(ngDevMode ? [{ debugName: "_hslLInput" }] : /* istanbul ignore next */ []));
340
+ /** @private The current raw alpha input for HSL mode. */
341
+ _hslAInput = signal('1', /* @ts-ignore */
342
+ ...(ngDevMode ? [{ debugName: "_hslAInput" }] : /* istanbul ignore next */ []));
343
+ /** @private Whether the canvas pointer is currently being dragged. */
344
+ _canvasDragging = signal(false, /* @ts-ignore */
345
+ ...(ngDevMode ? [{ debugName: "_canvasDragging" }] : /* istanbul ignore next */ []));
346
+ /**
347
+ * @private Computed CSS string for the hue thumb gradient stop.
348
+ * Used to show the pure hue color on the canvas gradient background.
349
+ */
350
+ _hueColor = computed(() => {
351
+ const { r, g, b } = hslToRgb(this._hsla().h, 100, 50);
352
+ return `rgb(${r},${g},${b})`;
353
+ }, /* @ts-ignore */
354
+ ...(ngDevMode ? [{ debugName: "_hueColor" }] : /* istanbul ignore next */ []));
355
+ /**
356
+ * @private Computed CSS color for the opacity slider checkerboard preview.
357
+ */
358
+ _rgbaString = computed(() => {
359
+ const c = this._hsla();
360
+ const { r, g, b } = hslToRgb(c.h, c.s, c.l);
361
+ return `rgba(${r},${g},${b},${c.a})`;
362
+ }, /* @ts-ignore */
363
+ ...(ngDevMode ? [{ debugName: "_rgbaString" }] : /* istanbul ignore next */ []));
364
+ /** @private Reference to the canvas element. */
365
+ _canvasRef = viewChild('slCanvas', /* @ts-ignore */
366
+ ...(ngDevMode ? [{ debugName: "_canvasRef" }] : /* istanbul ignore next */ []));
367
+ /** @private Reference to the canvas container for size calculation. */
368
+ _canvasContainerRef = viewChild('slContainer', /* @ts-ignore */
369
+ ...(ngDevMode ? [{ debugName: "_canvasContainerRef" }] : /* istanbul ignore next */ []));
370
+ /** @private DestroyRef for cleanup. */
371
+ _destroyRef = inject(DestroyRef);
372
+ /**
373
+ * @private The canvas bounding rect captured once at pointerdown and reused
374
+ * for every pointermove of that drag, avoiding a forced layout read
375
+ * (`getBoundingClientRect`) on every move. Cleared on pointerup.
376
+ */
377
+ _dragRect = null;
378
+ constructor() {
379
+ super();
380
+ effect(() => this._applyValue(this.value()));
381
+ effect(() => {
382
+ const formats = this._supportedFormats();
383
+ if (!formats.includes(this._inputMode())) {
384
+ this._inputMode.set(formats.includes(this.defaultMode())
385
+ ? this.defaultMode()
386
+ : formats[0]);
387
+ }
388
+ });
389
+ }
390
+ ngOnInit() {
391
+ const formats = this._supportedFormats();
392
+ this._inputMode.set(formats.includes(this.defaultMode()) ? this.defaultMode() : formats[0]);
393
+ this._syncFromHsla();
394
+ }
395
+ ngAfterViewInit() {
396
+ this._drawCanvas();
397
+ }
398
+ // ---------------------------------------------------------------------------
399
+ // Forms value
400
+ // ---------------------------------------------------------------------------
401
+ /** Whether the control holds a clearable value — The picker always holds a colour, so a clearable X (if enabled) is always actionable. */
402
+ hasValue = computed(() => true, /* @ts-ignore */
403
+ ...(ngDevMode ? [{ debugName: "hasValue" }] : /* istanbul ignore next */ []));
404
+ /** @private Synchronizes the color editor from an external value. */
405
+ _applyValue(value) {
406
+ if (!value)
407
+ return;
408
+ const parsed = parseCssColor(value);
409
+ this._hsla.set(parsed);
410
+ this._syncFromHsla();
411
+ // Draw after change detection settles
412
+ setTimeout(() => this._drawCanvas(), 0);
413
+ }
414
+ // ---------------------------------------------------------------------------
415
+ // Canvas drawing
416
+ // ---------------------------------------------------------------------------
417
+ /**
418
+ * @private Draws the 2D saturation-lightness canvas for the current hue.
419
+ * The canvas shows a gradient from white (top-left) to the pure hue (top-right)
420
+ * to black (bottom).
421
+ */
422
+ _drawCanvas() {
423
+ const canvasEl = this._canvasRef()?.nativeElement;
424
+ if (!canvasEl)
425
+ return;
426
+ const ctx = canvasEl.getContext('2d');
427
+ if (!ctx)
428
+ return;
429
+ const w = canvasEl.offsetWidth || canvasEl.width;
430
+ const h = canvasEl.offsetHeight || canvasEl.height;
431
+ // Set canvas resolution to match displayed size
432
+ if (canvasEl.width !== w || canvasEl.height !== h) {
433
+ canvasEl.width = w;
434
+ canvasEl.height = h;
435
+ }
436
+ const hue = this._hsla().h;
437
+ const { r, g, b } = hslToRgb(hue, 100, 50);
438
+ const pureHue = `rgb(${r},${g},${b})`;
439
+ // White → pure hue (horizontal)
440
+ const hGrad = ctx.createLinearGradient(0, 0, w, 0);
441
+ hGrad.addColorStop(0, '#ffffff');
442
+ hGrad.addColorStop(1, pureHue);
443
+ ctx.fillStyle = hGrad;
444
+ ctx.fillRect(0, 0, w, h);
445
+ // Transparent → black (vertical, overlaid)
446
+ const vGrad = ctx.createLinearGradient(0, 0, 0, h);
447
+ vGrad.addColorStop(0, 'rgba(0,0,0,0)');
448
+ vGrad.addColorStop(1, 'rgba(0,0,0,1)');
449
+ ctx.fillStyle = vGrad;
450
+ ctx.fillRect(0, 0, w, h);
451
+ }
452
+ // ---------------------------------------------------------------------------
453
+ // Canvas pointer interaction
454
+ // ---------------------------------------------------------------------------
455
+ /**
456
+ * @private Handles pointer down on the SL canvas.
457
+ * Begins drag and updates color immediately.
458
+ */
459
+ _onCanvasPointerDown(event) {
460
+ if (this.computedDisabled())
461
+ return;
462
+ event.preventDefault();
463
+ // Capture the canvas rect once, up front, and reuse it for the whole drag
464
+ // so pointermove never forces a layout read. It is fresh here, so the
465
+ // initial pointerdown update below also uses an up-to-date rect.
466
+ this._dragRect =
467
+ this._canvasRef()?.nativeElement.getBoundingClientRect() ?? null;
468
+ this._canvasDragging.set(true);
469
+ this._updateColorFromCanvas(event);
470
+ const target = event.currentTarget;
471
+ target.setPointerCapture(event.pointerId);
472
+ // Per-drag rxjs streams: the move stream completes on the first pointerup
473
+ // (takeUntil) and both streams complete on destroy (takeUntilDestroyed),
474
+ // so no window listener can leak or accumulate across drags — this
475
+ // replaces an earlier bug where each drag's pointermove listener stayed
476
+ // attached to `window`.
477
+ const pointerUp$ = fromEvent(window, 'pointerup');
478
+ fromEvent(window, 'pointermove')
479
+ .pipe(takeUntil(pointerUp$), takeUntilDestroyed(this._destroyRef))
480
+ .subscribe((e) => {
481
+ if (this._canvasDragging()) {
482
+ this._updateColorFromCanvas(e);
483
+ }
484
+ });
485
+ pointerUp$
486
+ .pipe(take(1), takeUntilDestroyed(this._destroyRef))
487
+ .subscribe(() => {
488
+ this._canvasDragging.set(false);
489
+ this._dragRect = null;
490
+ this._markTouched();
491
+ });
492
+ }
493
+ /**
494
+ * @private Converts a pointer position on the canvas to saturation/lightness values.
495
+ */
496
+ _updateColorFromCanvas(event) {
497
+ const canvasEl = this._canvasRef()?.nativeElement;
498
+ if (!canvasEl)
499
+ return;
500
+ // Reuse the rect captured at pointerdown during a drag; fall back to a live
501
+ // read for any standalone call.
502
+ const rect = this._dragRect ?? canvasEl.getBoundingClientRect();
503
+ const x = clamp((event.clientX - rect.left) / rect.width, 0, 1);
504
+ const y = clamp((event.clientY - rect.top) / rect.height, 0, 1);
505
+ // Convert canvas (x,y) → HSL via HSV intermediate:
506
+ // x = HSV saturation (Sv), y = 1 − HSV value (V = 1−y)
507
+ // L_hsl = V · (1 − Sv/2)
508
+ // S_hsl = ΔC / (1 − |2L−1|) where ΔC = V · Sv (NOT just Sv alone)
509
+ const sv = x;
510
+ const v = 1 - y;
511
+ const lightness = v * (1 - sv / 2);
512
+ const saturation = lightness === 0 || lightness === 1
513
+ ? 0
514
+ : (sv * v) / (1 - Math.abs(2 * lightness - 1));
515
+ this._hsla.update((c) => ({
516
+ ...c,
517
+ s: round(clamp(saturation * 100, 0, 100), 1),
518
+ l: round(clamp(lightness * 100, 0, 100), 1),
519
+ }));
520
+ this._syncFromHsla();
521
+ this._emitChange();
522
+ }
523
+ // ---------------------------------------------------------------------------
524
+ // Hue slider
525
+ // ---------------------------------------------------------------------------
526
+ /**
527
+ * @private Handles hue slider input change.
528
+ */
529
+ _onHueChange(event) {
530
+ if (this.computedDisabled())
531
+ return;
532
+ const value = parseFloat(event.target.value);
533
+ this._hsla.update((c) => ({ ...c, h: clamp(value, 0, 360) }));
534
+ this._syncFromHsla();
535
+ this._drawCanvas();
536
+ this._emitChange();
537
+ }
538
+ // ---------------------------------------------------------------------------
539
+ // Opacity slider
540
+ // ---------------------------------------------------------------------------
541
+ /**
542
+ * @private Handles opacity slider input change.
543
+ */
544
+ _onOpacityChange(event) {
545
+ if (this.computedDisabled())
546
+ return;
547
+ const value = parseFloat(event.target.value);
548
+ this._hsla.update((c) => ({ ...c, a: clamp(value / 100, 0, 1) }));
549
+ this._syncFromHsla();
550
+ this._emitChange();
551
+ }
552
+ // ---------------------------------------------------------------------------
553
+ // Input mode tabs
554
+ // ---------------------------------------------------------------------------
555
+ /**
556
+ * @private Switches the active input mode tab.
557
+ */
558
+ _setInputMode(mode) {
559
+ if (!this._supportedFormats().includes(mode))
560
+ return;
561
+ const nextMode = mode;
562
+ if (nextMode === this._inputMode())
563
+ return;
564
+ this._inputMode.set(nextMode);
565
+ this._emitChange();
566
+ }
567
+ // ---------------------------------------------------------------------------
568
+ // HEX input
569
+ // ---------------------------------------------------------------------------
570
+ /**
571
+ * @private Handles hex input changes.
572
+ */
573
+ _onHexInput(event) {
574
+ if (this.computedDisabled())
575
+ return;
576
+ const raw = event.target.value;
577
+ this._hexInput.set(raw);
578
+ const hex = raw.startsWith('#') ? raw : '#' + raw;
579
+ const parsed = parseCssColor(hex);
580
+ if (hex.replace('#', '').length >= 6) {
581
+ this._hsla.set({ ...parsed, a: this._hsla().a });
582
+ this._syncFromHsla('rgb', 'hsl');
583
+ this._drawCanvas();
584
+ this._emitChange();
585
+ }
586
+ }
587
+ // ---------------------------------------------------------------------------
588
+ // RGB inputs
589
+ // ---------------------------------------------------------------------------
590
+ /** @private Updates red channel from input. */
591
+ _onRgbRInput(event) {
592
+ this._rgbRInput.set(event.target.value);
593
+ this._applyRgbInputs();
594
+ }
595
+ /** @private Updates green channel from input. */
596
+ _onRgbGInput(event) {
597
+ this._rgbGInput.set(event.target.value);
598
+ this._applyRgbInputs();
599
+ }
600
+ /** @private Updates blue channel from input. */
601
+ _onRgbBInput(event) {
602
+ this._rgbBInput.set(event.target.value);
603
+ this._applyRgbInputs();
604
+ }
605
+ /** @private Updates alpha channel from RGB mode input. */
606
+ _onRgbAInput(event) {
607
+ this._rgbAInput.set(event.target.value);
608
+ this._applyRgbInputs();
609
+ }
610
+ /**
611
+ * @private Parses all RGB inputs and updates the internal HSLA state.
612
+ */
613
+ _applyRgbInputs() {
614
+ if (this.computedDisabled())
615
+ return;
616
+ const r = clamp(parseInt(this._rgbRInput(), 10), 0, 255);
617
+ const g = clamp(parseInt(this._rgbGInput(), 10), 0, 255);
618
+ const b = clamp(parseInt(this._rgbBInput(), 10), 0, 255);
619
+ const a = clamp(parseFloat(this._rgbAInput()), 0, 1);
620
+ if (!isNaN(r) && !isNaN(g) && !isNaN(b) && !isNaN(a)) {
621
+ const { h, s, l } = rgbToHsl(r, g, b);
622
+ this._hsla.set({ h, s, l, a });
623
+ this._syncFromHsla('hex', 'hsl');
624
+ this._drawCanvas();
625
+ this._emitChange();
626
+ }
627
+ }
628
+ // ---------------------------------------------------------------------------
629
+ // HSL inputs
630
+ // ---------------------------------------------------------------------------
631
+ /** @private Updates hue from HSL input. */
632
+ _onHslHInput(event) {
633
+ this._hslHInput.set(event.target.value);
634
+ this._applyHslInputs();
635
+ }
636
+ /** @private Updates saturation from HSL input. */
637
+ _onHslSInput(event) {
638
+ this._hslSInput.set(event.target.value);
639
+ this._applyHslInputs();
640
+ }
641
+ /** @private Updates lightness from HSL input. */
642
+ _onHslLInput(event) {
643
+ this._hslLInput.set(event.target.value);
644
+ this._applyHslInputs();
645
+ }
646
+ /** @private Updates alpha from HSL mode input. */
647
+ _onHslAInput(event) {
648
+ this._hslAInput.set(event.target.value);
649
+ this._applyHslInputs();
650
+ }
651
+ /**
652
+ * @private Parses all HSL inputs and updates internal state.
653
+ */
654
+ _applyHslInputs() {
655
+ if (this.computedDisabled())
656
+ return;
657
+ const h = clamp(parseFloat(this._hslHInput()), 0, 360);
658
+ const s = clamp(parseFloat(this._hslSInput()), 0, 100);
659
+ const l = clamp(parseFloat(this._hslLInput()), 0, 100);
660
+ const a = clamp(parseFloat(this._hslAInput()), 0, 1);
661
+ if (!isNaN(h) && !isNaN(s) && !isNaN(l) && !isNaN(a)) {
662
+ this._hsla.set({ h, s, l, a });
663
+ this._syncFromHsla('hex', 'rgb');
664
+ this._drawCanvas();
665
+ this._emitChange();
666
+ }
667
+ }
668
+ // ---------------------------------------------------------------------------
669
+ // Input sync helper (single, channel-targeted)
670
+ // ---------------------------------------------------------------------------
671
+ /**
672
+ * @private Refreshes the in-progress text-mirror signals for the requested
673
+ * channels from the canonical `_hsla()` state. Called after every external
674
+ * mutation (canvas drag, hue slider, opacity slider, external value write) to
675
+ * keep the unfocused channels in sync without clobbering the channel the
676
+ * user is currently typing into.
677
+ */
678
+ _syncFromHsla(...channels) {
679
+ const c = this._hsla();
680
+ if (channels.length === 0 || channels.includes('hex')) {
681
+ this._hexInput.set(hslaToHex(c));
682
+ }
683
+ if (channels.length === 0 || channels.includes('rgb')) {
684
+ const { r, g, b } = hslToRgb(c.h, c.s, c.l);
685
+ this._rgbRInput.set(String(r));
686
+ this._rgbGInput.set(String(g));
687
+ this._rgbBInput.set(String(b));
688
+ this._rgbAInput.set(String(round(c.a, 2)));
689
+ }
690
+ if (channels.length === 0 || channels.includes('hsl')) {
691
+ this._hslHInput.set(String(round(c.h, 1)));
692
+ this._hslSInput.set(String(round(c.s, 1)));
693
+ this._hslLInput.set(String(round(c.l, 1)));
694
+ this._hslAInput.set(String(round(c.a, 2)));
695
+ }
696
+ }
697
+ // ---------------------------------------------------------------------------
698
+ // Change emission
699
+ // ---------------------------------------------------------------------------
700
+ /**
701
+ * @private Emits the current color through the forms model and colorChange output.
702
+ */
703
+ _emitChange() {
704
+ const cssColor = hslaToModeString(this._hsla(), this._inputMode());
705
+ this.value.set(cssColor);
706
+ this.colorChange.emit(cssColor);
707
+ }
708
+ /**
709
+ * @private Returns the current CSS color string for a given mode.
710
+ * Used by the template to display the color in the active mode.
711
+ */
712
+ _getColorString(mode) {
713
+ return hslaToModeString(this._hsla(), mode);
714
+ }
715
+ /**
716
+ * @private Returns opacity value as 0-100 integer for the opacity slider.
717
+ */
718
+ _getOpacityPercent() {
719
+ return Math.round(this._hsla().a * 100);
720
+ }
721
+ /**
722
+ * @private Returns the hue value for the hue slider.
723
+ */
724
+ _getHue() {
725
+ return this._hsla().h;
726
+ }
727
+ /**
728
+ * @private Canvas thumb left position.
729
+ * The canvas uses HSV space (x = HSV saturation, y = 1 − HSV value).
730
+ * Converts the stored HSL to HSV to get the correct x coordinate.
731
+ */
732
+ _getThumbLeft() {
733
+ const { sv } = this._hslToHsv();
734
+ return `${clamp(sv * 100, 0, 100)}%`;
735
+ }
736
+ /**
737
+ * @private Canvas thumb top position.
738
+ * y = 1 − HSV value (top = bright/white, bottom = black).
739
+ */
740
+ _getThumbTop() {
741
+ const { v } = this._hslToHsv();
742
+ return `${clamp((1 - v) * 100, 0, 100)}%`;
743
+ }
744
+ /**
745
+ * @private Converts the current HSLA state to HSV (saturation + value),
746
+ * matching the coordinate system used by the SL canvas gradient.
747
+ *
748
+ * The canvas draws:
749
+ * - Horizontal: white (left) → pure hue (right) → x = HSV saturation
750
+ * - Vertical: full brightness (top) → black (bottom) → y = 1 − HSV value
751
+ *
752
+ * HSL → HSV:
753
+ * V = L + S · min(L, 1−L)
754
+ * Sv = V > 0 ? 2·(1 − L/V) : 0
755
+ */
756
+ _hslToHsv() {
757
+ const s = this._hsla().s / 100;
758
+ const l = this._hsla().l / 100;
759
+ const v = l + s * Math.min(l, 1 - l);
760
+ const sv = v > 0 ? 2 * (1 - l / v) : 0;
761
+ return { sv, v };
762
+ }
763
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvColorPicker, deps: [], target: i0.ɵɵFactoryTarget.Component });
764
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: MlvColorPicker, isStandalone: true, selector: "mlv-color-picker", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, showOpacity: { classPropertyName: "showOpacity", publicName: "showOpacity", isSignal: true, isRequired: false, transformFunction: null }, defaultMode: { classPropertyName: "defaultMode", publicName: "defaultMode", isSignal: true, isRequired: false, transformFunction: null }, supportedFormats: { classPropertyName: "supportedFormats", publicName: "supportedFormats", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", colorChange: "colorChange" }, host: { listeners: { "focusout": "_markTouched()" }, properties: { "class.mlv-color-picker--disabled": "computedDisabled()" }, classAttribute: "mlv-color-picker" }, providers: [
765
+ {
766
+ provide: MLV_FORM_CONTROL,
767
+ useExisting: forwardRef(() => MlvColorPicker),
768
+ },
769
+ ], viewQueries: [{ propertyName: "_canvasRef", first: true, predicate: ["slCanvas"], descendants: true, isSignal: true }, { propertyName: "_canvasContainerRef", first: true, predicate: ["slContainer"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"mlv-color-picker__canvas-container\" #slContainer>\n <canvas\n #slCanvas\n class=\"mlv-color-picker__canvas\"\n role=\"presentation\"\n aria-hidden=\"true\"\n (pointerdown)=\"_onCanvasPointerDown($event)\"\n ></canvas>\n <div\n class=\"mlv-color-picker__canvas-thumb\"\n [style.left]=\"_getThumbLeft()\"\n [style.top]=\"_getThumbTop()\"\n aria-hidden=\"true\"\n ></div>\n</div>\n\n<div class=\"mlv-color-picker__sliders\">\n <!-- Hue slider -->\n <div class=\"mlv-color-picker__slider-row\">\n <div\n class=\"mlv-color-picker__preview\"\n [style.background-color]=\"_rgbaString()\"\n aria-hidden=\"true\"\n ></div>\n <div\n class=\"mlv-color-picker__slider-track mlv-color-picker__slider-track--hue\"\n >\n <input\n type=\"range\"\n class=\"mlv-color-picker__range-input\"\n min=\"0\"\n max=\"360\"\n step=\"1\"\n [value]=\"_getHue()\"\n [disabled]=\"computedDisabled()\"\n (input)=\"_onHueChange($event)\"\n [attr.aria-label]=\"_i18n().hue\"\n />\n </div>\n </div>\n\n <!-- Opacity slider -->\n @if (showOpacity()) {\n <div class=\"mlv-color-picker__slider-row\">\n <div\n class=\"mlv-color-picker__slider-track mlv-color-picker__slider-track--opacity\"\n >\n <div\n class=\"mlv-color-picker__opacity-gradient\"\n [style.background]=\"'linear-gradient(to right, transparent, ' + _hueColor() + ')'\"\n aria-hidden=\"true\"\n ></div>\n <input\n type=\"range\"\n class=\"mlv-color-picker__range-input\"\n min=\"0\"\n max=\"100\"\n step=\"1\"\n [value]=\"_getOpacityPercent()\"\n [disabled]=\"computedDisabled()\"\n (input)=\"_onOpacityChange($event)\"\n [attr.aria-label]=\"_i18n().opacity\"\n />\n </div>\n </div>\n }\n</div>\n\n@if (_supportedFormats().length === 1) {\n<ng-container\n [ngTemplateOutlet]=\"modeInputs\"\n [ngTemplateOutletContext]=\"{ $implicit: _supportedFormats()[0] }\"\n/>\n} @else {\n<mlv-tab-group\n class=\"mlv-color-picker__format-tabs\"\n mlvDensity=\"tight\"\n [activeTab]=\"_inputMode()\"\n (activeTabChange)=\"_setInputMode($event)\"\n>\n @for (format of _supportedFormats(); track format) {\n <mlv-tab [value]=\"format\">\n <ng-template mlvTabDef>{{ format.toUpperCase() }}</ng-template>\n <ng-template mlvTabContent>\n <ng-container\n [ngTemplateOutlet]=\"modeInputs\"\n [ngTemplateOutletContext]=\"{ $implicit: format }\"\n />\n </ng-template>\n </mlv-tab>\n }\n</mlv-tab-group>\n}\n\n<ng-template #modeInputs let-mode>\n <div class=\"mlv-color-picker__inputs\">\n @switch (mode) { @case ('hex') {\n <div class=\"mlv-color-picker__input-group\">\n <mlv-input\n type=\"text\"\n class=\"mlv-color-picker__text-input\"\n [value]=\"_hexInput()\"\n [disabled]=\"computedDisabled()\"\n (input)=\"_onHexInput($event)\"\n [ariaLabel]=\"_i18n().hexColorValue\"\n autocomplete=\"off\"\n [maxLength]=\"9\"\n />\n <span class=\"mlv-color-picker__input-label\">HEX</span>\n </div>\n } @case ('rgb') {\n <div class=\"mlv-color-picker__input-group\">\n <mlv-input\n type=\"number\"\n class=\"mlv-color-picker__text-input\"\n [value]=\"_rgbRInput()\"\n [disabled]=\"computedDisabled()\"\n (input)=\"_onRgbRInput($event)\"\n [min]=\"0\"\n [max]=\"255\"\n [ariaLabel]=\"_i18n().redChannel\"\n />\n <span class=\"mlv-color-picker__input-label\">R</span>\n </div>\n <div class=\"mlv-color-picker__input-group\">\n <mlv-input\n type=\"number\"\n class=\"mlv-color-picker__text-input\"\n [value]=\"_rgbGInput()\"\n [disabled]=\"computedDisabled()\"\n (input)=\"_onRgbGInput($event)\"\n [min]=\"0\"\n [max]=\"255\"\n [ariaLabel]=\"_i18n().greenChannel\"\n />\n <span class=\"mlv-color-picker__input-label\">G</span>\n </div>\n <div class=\"mlv-color-picker__input-group\">\n <mlv-input\n type=\"number\"\n class=\"mlv-color-picker__text-input\"\n [value]=\"_rgbBInput()\"\n [disabled]=\"computedDisabled()\"\n (input)=\"_onRgbBInput($event)\"\n [min]=\"0\"\n [max]=\"255\"\n [ariaLabel]=\"_i18n().blueChannel\"\n />\n <span class=\"mlv-color-picker__input-label\">B</span>\n </div>\n @if (showOpacity()) {\n <div class=\"mlv-color-picker__input-group\">\n <mlv-input\n type=\"number\"\n class=\"mlv-color-picker__text-input\"\n [value]=\"_rgbAInput()\"\n [disabled]=\"computedDisabled()\"\n (input)=\"_onRgbAInput($event)\"\n [min]=\"0\"\n [max]=\"1\"\n [step]=\"0.01\"\n [ariaLabel]=\"_i18n().alphaChannel\"\n />\n <span class=\"mlv-color-picker__input-label\">A</span>\n </div>\n } } @case ('hsl') {\n <div class=\"mlv-color-picker__input-group\">\n <mlv-input\n type=\"number\"\n class=\"mlv-color-picker__text-input\"\n [value]=\"_hslHInput()\"\n [disabled]=\"computedDisabled()\"\n (input)=\"_onHslHInput($event)\"\n [min]=\"0\"\n [max]=\"360\"\n [ariaLabel]=\"_i18n().hslHue\"\n />\n <span class=\"mlv-color-picker__input-label\">H</span>\n </div>\n <div class=\"mlv-color-picker__input-group\">\n <mlv-input\n type=\"number\"\n class=\"mlv-color-picker__text-input\"\n [value]=\"_hslSInput()\"\n [disabled]=\"computedDisabled()\"\n (input)=\"_onHslSInput($event)\"\n [min]=\"0\"\n [max]=\"100\"\n [ariaLabel]=\"_i18n().hslSaturation\"\n />\n <span class=\"mlv-color-picker__input-label\">S</span>\n </div>\n <div class=\"mlv-color-picker__input-group\">\n <mlv-input\n type=\"number\"\n class=\"mlv-color-picker__text-input\"\n [value]=\"_hslLInput()\"\n [disabled]=\"computedDisabled()\"\n (input)=\"_onHslLInput($event)\"\n [min]=\"0\"\n [max]=\"100\"\n [ariaLabel]=\"_i18n().hslLightness\"\n />\n <span class=\"mlv-color-picker__input-label\">L</span>\n </div>\n @if (showOpacity()) {\n <div class=\"mlv-color-picker__input-group\">\n <mlv-input\n type=\"number\"\n class=\"mlv-color-picker__text-input\"\n [value]=\"_hslAInput()\"\n [disabled]=\"computedDisabled()\"\n (input)=\"_onHslAInput($event)\"\n [min]=\"0\"\n [max]=\"1\"\n [step]=\"0.01\"\n [ariaLabel]=\"_i18n().hslAlpha\"\n />\n <span class=\"mlv-color-picker__input-label\">A</span>\n </div>\n } } }\n </div>\n</ng-template>\n", styles: ["@layer mlv.components{.mlv-color-picker{display:flex;flex-direction:column;gap:.75rem;width:16rem;padding:.75rem;background-color:var(--mlv-elevation-bg-2);border:.0625rem solid var(--mlv-border-subtle);border-radius:var(--mlv-radius-2xl);box-shadow:var(--mlv-shadow-raised);box-sizing:border-box;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-typography-ui-s-size);-webkit-user-select:none;user-select:none}.mlv-color-picker__canvas-container{position:relative;width:100%;height:9rem;border-radius:var(--mlv-radius-m);overflow:hidden;cursor:crosshair;flex-shrink:0}.mlv-color-picker__canvas{display:block;width:100%;height:100%}.mlv-color-picker__canvas-thumb{position:absolute;width:.875rem;height:.875rem;border-radius:var(--mlv-radius-full);border:.125rem solid #fff;box-shadow:0 0 0 .0625rem #0006;transform:translate(-50%,-50%);pointer-events:none;box-sizing:border-box}.mlv-color-picker__sliders{display:flex;flex-direction:column;gap:.5rem}.mlv-color-picker__slider-row{display:flex;align-items:center;gap:.5rem}.mlv-color-picker__preview{width:1.5rem;height:1.5rem;border-radius:var(--mlv-radius-full);border:var(--mlv-stroke-width) solid var(--mlv-border-normal);flex-shrink:0;background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-size:.5rem .5rem;background-position:0 0,0 .25rem,.25rem -.25rem,-.25rem 0}.mlv-color-picker__slider-track{position:relative;flex:1;height:.75rem;border-radius:var(--mlv-radius-m)}.mlv-color-picker__slider-track--hue{background:linear-gradient(to right,red,#ff8000,#ff0,#80ff00,#0f0,#00ff80,#0ff,#0080ff,#00f,#7f00ff,#f0f,#ff0080,red)}.mlv-color-picker__slider-track--opacity{background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-size:.5rem .5rem;background-position:0 0,0 .25rem,.25rem -.25rem,-.25rem 0}.mlv-color-picker__opacity-gradient{position:absolute;inset:0;border-radius:inherit;pointer-events:none}.mlv-color-picker__range-input{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;background:transparent;cursor:pointer;appearance:none;z-index:1}.mlv-color-picker__range-input::-webkit-slider-runnable-track{height:.75rem;background:transparent;border-radius:var(--mlv-radius-m)}.mlv-color-picker__range-input::-moz-range-track{height:.75rem;background:transparent;border-radius:var(--mlv-radius-m)}.mlv-color-picker__range-input::-webkit-slider-thumb{appearance:none;width:1rem;height:1rem;border-radius:var(--mlv-radius-full);background:#fff;border:.125rem solid rgba(0,0,0,.15);box-shadow:0 .0625rem .25rem #00000059;cursor:grab;margin-top:-.125rem}.mlv-color-picker__range-input::-moz-range-thumb{width:1rem;height:1rem;border-radius:var(--mlv-radius-full);background:#fff;border:.125rem solid rgba(0,0,0,.15);box-shadow:0 .0625rem .25rem #00000059;cursor:grab}.mlv-color-picker__range-input:active::-webkit-slider-thumb,.mlv-color-picker__range-input:active::-moz-range-thumb{cursor:grabbing;box-shadow:0 .0625rem .375rem #00000073}.mlv-color-picker__range-input:focus-visible{outline:none}.mlv-color-picker__range-input:focus-visible::-webkit-slider-thumb{outline:var(--mlv-stroke-width-medium) solid var(--mlv-border-focus);outline-offset:var(--mlv-focus-ring-offset)}.mlv-color-picker__range-input:focus-visible::-moz-range-thumb{outline:var(--mlv-stroke-width-medium) solid var(--mlv-border-focus);outline-offset:var(--mlv-focus-ring-offset)}.mlv-color-picker__range-input:disabled{cursor:not-allowed}.mlv-color-picker__range-input:disabled::-webkit-slider-thumb,.mlv-color-picker__range-input:disabled::-moz-range-thumb{cursor:not-allowed}.mlv-color-picker__format-tabs{min-width:0}.mlv-color-picker__format-tabs>.mlv-tab-group__header>.mlv-tab-item{flex:1;justify-content:center;font-weight:600}.mlv-color-picker__format-tabs>.mlv-tab-group__body{padding-top:var(--mlv-spacing-2)}.mlv-color-picker__inputs{display:flex;gap:.375rem}.mlv-color-picker__input-group{display:flex;flex-direction:column;gap:.125rem;flex:1;min-width:0}.mlv-color-picker__input-label{font-size:var(--mlv-typography-caption-size);color:var(--mlv-text-secondary);text-align:center;display:block;font-weight:500}.mlv-color-picker--disabled{opacity:var(--mlv-disabled-opacity);pointer-events:none}.mlv-color-picker--disabled .mlv-color-picker__canvas-container{cursor:not-allowed}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MlvTab, selector: "mlv-tab", inputs: ["value", "disabled", "linkActiveOptions"] }, { kind: "directive", type: MlvTabContentDef, selector: "[mlvTabContent]" }, { kind: "directive", type: MlvTabDef, selector: "[mlvTabDef]" }, { kind: "component", type: MlvTabGroup, selector: "mlv-tab-group", inputs: ["orientation", "activeTab", "appearance"], outputs: ["orientationChange", "activeTabChange"] }, { kind: "component", type: MlvInput, selector: "mlv-input", inputs: ["type", "placeholder", "autocomplete", "inputMode", "maxLength", "minLength", "pattern", "name", "autofocus", "min", "max", "step", "bare", "projectControl", "role", "ariaExpanded", "ariaHasPopup", "ariaAutocomplete", "ariaControls", "ariaActiveDescendant", "ariaDescribedBy", "value"], outputs: ["valueChange", "inputFocus", "inputBlur"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
770
+ }
771
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvColorPicker, decorators: [{
772
+ type: Component,
773
+ args: [{ selector: 'mlv-color-picker', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
774
+ NgTemplateOutlet,
775
+ MlvTab,
776
+ MlvTabContentDef,
777
+ MlvTabDef,
778
+ MlvTabGroup,
779
+ MlvInput,
780
+ ], providers: [
781
+ {
782
+ provide: MLV_FORM_CONTROL,
783
+ useExisting: forwardRef(() => MlvColorPicker),
784
+ },
785
+ ], host: {
786
+ class: 'mlv-color-picker',
787
+ '[class.mlv-color-picker--disabled]': 'computedDisabled()',
788
+ '(focusout)': '_markTouched()',
789
+ }, template: "<div class=\"mlv-color-picker__canvas-container\" #slContainer>\n <canvas\n #slCanvas\n class=\"mlv-color-picker__canvas\"\n role=\"presentation\"\n aria-hidden=\"true\"\n (pointerdown)=\"_onCanvasPointerDown($event)\"\n ></canvas>\n <div\n class=\"mlv-color-picker__canvas-thumb\"\n [style.left]=\"_getThumbLeft()\"\n [style.top]=\"_getThumbTop()\"\n aria-hidden=\"true\"\n ></div>\n</div>\n\n<div class=\"mlv-color-picker__sliders\">\n <!-- Hue slider -->\n <div class=\"mlv-color-picker__slider-row\">\n <div\n class=\"mlv-color-picker__preview\"\n [style.background-color]=\"_rgbaString()\"\n aria-hidden=\"true\"\n ></div>\n <div\n class=\"mlv-color-picker__slider-track mlv-color-picker__slider-track--hue\"\n >\n <input\n type=\"range\"\n class=\"mlv-color-picker__range-input\"\n min=\"0\"\n max=\"360\"\n step=\"1\"\n [value]=\"_getHue()\"\n [disabled]=\"computedDisabled()\"\n (input)=\"_onHueChange($event)\"\n [attr.aria-label]=\"_i18n().hue\"\n />\n </div>\n </div>\n\n <!-- Opacity slider -->\n @if (showOpacity()) {\n <div class=\"mlv-color-picker__slider-row\">\n <div\n class=\"mlv-color-picker__slider-track mlv-color-picker__slider-track--opacity\"\n >\n <div\n class=\"mlv-color-picker__opacity-gradient\"\n [style.background]=\"'linear-gradient(to right, transparent, ' + _hueColor() + ')'\"\n aria-hidden=\"true\"\n ></div>\n <input\n type=\"range\"\n class=\"mlv-color-picker__range-input\"\n min=\"0\"\n max=\"100\"\n step=\"1\"\n [value]=\"_getOpacityPercent()\"\n [disabled]=\"computedDisabled()\"\n (input)=\"_onOpacityChange($event)\"\n [attr.aria-label]=\"_i18n().opacity\"\n />\n </div>\n </div>\n }\n</div>\n\n@if (_supportedFormats().length === 1) {\n<ng-container\n [ngTemplateOutlet]=\"modeInputs\"\n [ngTemplateOutletContext]=\"{ $implicit: _supportedFormats()[0] }\"\n/>\n} @else {\n<mlv-tab-group\n class=\"mlv-color-picker__format-tabs\"\n mlvDensity=\"tight\"\n [activeTab]=\"_inputMode()\"\n (activeTabChange)=\"_setInputMode($event)\"\n>\n @for (format of _supportedFormats(); track format) {\n <mlv-tab [value]=\"format\">\n <ng-template mlvTabDef>{{ format.toUpperCase() }}</ng-template>\n <ng-template mlvTabContent>\n <ng-container\n [ngTemplateOutlet]=\"modeInputs\"\n [ngTemplateOutletContext]=\"{ $implicit: format }\"\n />\n </ng-template>\n </mlv-tab>\n }\n</mlv-tab-group>\n}\n\n<ng-template #modeInputs let-mode>\n <div class=\"mlv-color-picker__inputs\">\n @switch (mode) { @case ('hex') {\n <div class=\"mlv-color-picker__input-group\">\n <mlv-input\n type=\"text\"\n class=\"mlv-color-picker__text-input\"\n [value]=\"_hexInput()\"\n [disabled]=\"computedDisabled()\"\n (input)=\"_onHexInput($event)\"\n [ariaLabel]=\"_i18n().hexColorValue\"\n autocomplete=\"off\"\n [maxLength]=\"9\"\n />\n <span class=\"mlv-color-picker__input-label\">HEX</span>\n </div>\n } @case ('rgb') {\n <div class=\"mlv-color-picker__input-group\">\n <mlv-input\n type=\"number\"\n class=\"mlv-color-picker__text-input\"\n [value]=\"_rgbRInput()\"\n [disabled]=\"computedDisabled()\"\n (input)=\"_onRgbRInput($event)\"\n [min]=\"0\"\n [max]=\"255\"\n [ariaLabel]=\"_i18n().redChannel\"\n />\n <span class=\"mlv-color-picker__input-label\">R</span>\n </div>\n <div class=\"mlv-color-picker__input-group\">\n <mlv-input\n type=\"number\"\n class=\"mlv-color-picker__text-input\"\n [value]=\"_rgbGInput()\"\n [disabled]=\"computedDisabled()\"\n (input)=\"_onRgbGInput($event)\"\n [min]=\"0\"\n [max]=\"255\"\n [ariaLabel]=\"_i18n().greenChannel\"\n />\n <span class=\"mlv-color-picker__input-label\">G</span>\n </div>\n <div class=\"mlv-color-picker__input-group\">\n <mlv-input\n type=\"number\"\n class=\"mlv-color-picker__text-input\"\n [value]=\"_rgbBInput()\"\n [disabled]=\"computedDisabled()\"\n (input)=\"_onRgbBInput($event)\"\n [min]=\"0\"\n [max]=\"255\"\n [ariaLabel]=\"_i18n().blueChannel\"\n />\n <span class=\"mlv-color-picker__input-label\">B</span>\n </div>\n @if (showOpacity()) {\n <div class=\"mlv-color-picker__input-group\">\n <mlv-input\n type=\"number\"\n class=\"mlv-color-picker__text-input\"\n [value]=\"_rgbAInput()\"\n [disabled]=\"computedDisabled()\"\n (input)=\"_onRgbAInput($event)\"\n [min]=\"0\"\n [max]=\"1\"\n [step]=\"0.01\"\n [ariaLabel]=\"_i18n().alphaChannel\"\n />\n <span class=\"mlv-color-picker__input-label\">A</span>\n </div>\n } } @case ('hsl') {\n <div class=\"mlv-color-picker__input-group\">\n <mlv-input\n type=\"number\"\n class=\"mlv-color-picker__text-input\"\n [value]=\"_hslHInput()\"\n [disabled]=\"computedDisabled()\"\n (input)=\"_onHslHInput($event)\"\n [min]=\"0\"\n [max]=\"360\"\n [ariaLabel]=\"_i18n().hslHue\"\n />\n <span class=\"mlv-color-picker__input-label\">H</span>\n </div>\n <div class=\"mlv-color-picker__input-group\">\n <mlv-input\n type=\"number\"\n class=\"mlv-color-picker__text-input\"\n [value]=\"_hslSInput()\"\n [disabled]=\"computedDisabled()\"\n (input)=\"_onHslSInput($event)\"\n [min]=\"0\"\n [max]=\"100\"\n [ariaLabel]=\"_i18n().hslSaturation\"\n />\n <span class=\"mlv-color-picker__input-label\">S</span>\n </div>\n <div class=\"mlv-color-picker__input-group\">\n <mlv-input\n type=\"number\"\n class=\"mlv-color-picker__text-input\"\n [value]=\"_hslLInput()\"\n [disabled]=\"computedDisabled()\"\n (input)=\"_onHslLInput($event)\"\n [min]=\"0\"\n [max]=\"100\"\n [ariaLabel]=\"_i18n().hslLightness\"\n />\n <span class=\"mlv-color-picker__input-label\">L</span>\n </div>\n @if (showOpacity()) {\n <div class=\"mlv-color-picker__input-group\">\n <mlv-input\n type=\"number\"\n class=\"mlv-color-picker__text-input\"\n [value]=\"_hslAInput()\"\n [disabled]=\"computedDisabled()\"\n (input)=\"_onHslAInput($event)\"\n [min]=\"0\"\n [max]=\"1\"\n [step]=\"0.01\"\n [ariaLabel]=\"_i18n().hslAlpha\"\n />\n <span class=\"mlv-color-picker__input-label\">A</span>\n </div>\n } } }\n </div>\n</ng-template>\n", styles: ["@layer mlv.components{.mlv-color-picker{display:flex;flex-direction:column;gap:.75rem;width:16rem;padding:.75rem;background-color:var(--mlv-elevation-bg-2);border:.0625rem solid var(--mlv-border-subtle);border-radius:var(--mlv-radius-2xl);box-shadow:var(--mlv-shadow-raised);box-sizing:border-box;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-typography-ui-s-size);-webkit-user-select:none;user-select:none}.mlv-color-picker__canvas-container{position:relative;width:100%;height:9rem;border-radius:var(--mlv-radius-m);overflow:hidden;cursor:crosshair;flex-shrink:0}.mlv-color-picker__canvas{display:block;width:100%;height:100%}.mlv-color-picker__canvas-thumb{position:absolute;width:.875rem;height:.875rem;border-radius:var(--mlv-radius-full);border:.125rem solid #fff;box-shadow:0 0 0 .0625rem #0006;transform:translate(-50%,-50%);pointer-events:none;box-sizing:border-box}.mlv-color-picker__sliders{display:flex;flex-direction:column;gap:.5rem}.mlv-color-picker__slider-row{display:flex;align-items:center;gap:.5rem}.mlv-color-picker__preview{width:1.5rem;height:1.5rem;border-radius:var(--mlv-radius-full);border:var(--mlv-stroke-width) solid var(--mlv-border-normal);flex-shrink:0;background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-size:.5rem .5rem;background-position:0 0,0 .25rem,.25rem -.25rem,-.25rem 0}.mlv-color-picker__slider-track{position:relative;flex:1;height:.75rem;border-radius:var(--mlv-radius-m)}.mlv-color-picker__slider-track--hue{background:linear-gradient(to right,red,#ff8000,#ff0,#80ff00,#0f0,#00ff80,#0ff,#0080ff,#00f,#7f00ff,#f0f,#ff0080,red)}.mlv-color-picker__slider-track--opacity{background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-size:.5rem .5rem;background-position:0 0,0 .25rem,.25rem -.25rem,-.25rem 0}.mlv-color-picker__opacity-gradient{position:absolute;inset:0;border-radius:inherit;pointer-events:none}.mlv-color-picker__range-input{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;background:transparent;cursor:pointer;appearance:none;z-index:1}.mlv-color-picker__range-input::-webkit-slider-runnable-track{height:.75rem;background:transparent;border-radius:var(--mlv-radius-m)}.mlv-color-picker__range-input::-moz-range-track{height:.75rem;background:transparent;border-radius:var(--mlv-radius-m)}.mlv-color-picker__range-input::-webkit-slider-thumb{appearance:none;width:1rem;height:1rem;border-radius:var(--mlv-radius-full);background:#fff;border:.125rem solid rgba(0,0,0,.15);box-shadow:0 .0625rem .25rem #00000059;cursor:grab;margin-top:-.125rem}.mlv-color-picker__range-input::-moz-range-thumb{width:1rem;height:1rem;border-radius:var(--mlv-radius-full);background:#fff;border:.125rem solid rgba(0,0,0,.15);box-shadow:0 .0625rem .25rem #00000059;cursor:grab}.mlv-color-picker__range-input:active::-webkit-slider-thumb,.mlv-color-picker__range-input:active::-moz-range-thumb{cursor:grabbing;box-shadow:0 .0625rem .375rem #00000073}.mlv-color-picker__range-input:focus-visible{outline:none}.mlv-color-picker__range-input:focus-visible::-webkit-slider-thumb{outline:var(--mlv-stroke-width-medium) solid var(--mlv-border-focus);outline-offset:var(--mlv-focus-ring-offset)}.mlv-color-picker__range-input:focus-visible::-moz-range-thumb{outline:var(--mlv-stroke-width-medium) solid var(--mlv-border-focus);outline-offset:var(--mlv-focus-ring-offset)}.mlv-color-picker__range-input:disabled{cursor:not-allowed}.mlv-color-picker__range-input:disabled::-webkit-slider-thumb,.mlv-color-picker__range-input:disabled::-moz-range-thumb{cursor:not-allowed}.mlv-color-picker__format-tabs{min-width:0}.mlv-color-picker__format-tabs>.mlv-tab-group__header>.mlv-tab-item{flex:1;justify-content:center;font-weight:600}.mlv-color-picker__format-tabs>.mlv-tab-group__body{padding-top:var(--mlv-spacing-2)}.mlv-color-picker__inputs{display:flex;gap:.375rem}.mlv-color-picker__input-group{display:flex;flex-direction:column;gap:.125rem;flex:1;min-width:0}.mlv-color-picker__input-label{font-size:var(--mlv-typography-caption-size);color:var(--mlv-text-secondary);text-align:center;display:block;font-weight:500}.mlv-color-picker--disabled{opacity:var(--mlv-disabled-opacity);pointer-events:none}.mlv-color-picker--disabled .mlv-color-picker__canvas-container{cursor:not-allowed}}\n"] }]
790
+ }], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], showOpacity: [{ type: i0.Input, args: [{ isSignal: true, alias: "showOpacity", required: false }] }], defaultMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultMode", required: false }] }], supportedFormats: [{ type: i0.Input, args: [{ isSignal: true, alias: "supportedFormats", required: false }] }], colorChange: [{ type: i0.Output, args: ["colorChange"] }], _canvasRef: [{ type: i0.ViewChild, args: ['slCanvas', { isSignal: true }] }], _canvasContainerRef: [{ type: i0.ViewChild, args: ['slContainer', { isSignal: true }] }] } });
791
+
792
+ /**
793
+ * Input-like CSS color control that opens the full `mlv-color-picker` in a
794
+ * connected popup with a light-dismiss backdrop.
795
+ *
796
+ * The editable draft stays separate from the committed forms value. Valid
797
+ * concrete colors and `var(--custom-property)` references commit on blur or
798
+ * popup close by default; `live` publishes every valid draft immediately.
799
+ * Invalid drafts roll back to the most recent valid draft.
800
+ */
801
+ class MlvColorPickerPopup extends MlvSignalFormControlBase {
802
+ /** The committed CSS color string used by all Angular forms APIs. */
803
+ value = model('#ff0000', /* @ts-ignore */
804
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
805
+ /** Visual trigger presentation. Field mode preserves the input-like control. */
806
+ presentation = input('field', /* @ts-ignore */
807
+ ...(ngDevMode ? [{ debugName: "presentation" }] : /* istanbul ignore next */ []));
808
+ /** Two-way bindable connected-overlay state. */
809
+ opened = model(false, /* @ts-ignore */
810
+ ...(ngDevMode ? [{ debugName: "opened" }] : /* istanbul ignore next */ []));
811
+ /** Emits after the detached picker panel has opened. */
812
+ afterOpened = output();
813
+ /** Emits after the detached picker panel has closed and torn down. */
814
+ afterClosed = output();
815
+ /** Whether to show the opacity slider inside the picker. */
816
+ showOpacity = input(true, { ...(ngDevMode ? { debugName: "showOpacity" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
817
+ /** The default input mode for the picker's text tabs. */
818
+ defaultMode = input('hex', /* @ts-ignore */
819
+ ...(ngDevMode ? [{ debugName: "defaultMode" }] : /* istanbul ignore next */ []));
820
+ /** Available picker formats, in display order. */
821
+ supportedFormats = input([
822
+ 'hex',
823
+ 'rgb',
824
+ 'hsl',
825
+ ], /* @ts-ignore */
826
+ ...(ngDevMode ? [{ debugName: "supportedFormats" }] : /* istanbul ignore next */ []));
827
+ /** Whether every valid draft is published immediately. */
828
+ live = input(false, { ...(ngDevMode ? { debugName: "live" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
829
+ /** Emits when user interaction commits a new CSS color string. */
830
+ colorChange = output();
831
+ /** Whether the committed value is non-empty and can be cleared. */
832
+ hasValue = computed(() => this.value().length > 0, /* @ts-ignore */
833
+ ...(ngDevMode ? [{ debugName: "hasValue" }] : /* istanbul ignore next */ []));
834
+ /**
835
+ * Suppresses the wrapper-owned clear affordance while readonly. Disabled
836
+ * wrappers already suppress pointer interaction through their shared state.
837
+ */
838
+ ownsClearButton = computed(() => this.readonly(), /* @ts-ignore */
839
+ ...(ngDevMode ? [{ debugName: "ownsClearButton" }] : /* istanbul ignore next */ []));
840
+ /** @protected Injected i18n translations for the color picker. */
841
+ _i18n = inject(MLV_COLOR_PICKER_I18N);
842
+ /** @protected Localized copy used by the swatch-mode clear action. */
843
+ _formI18n = inject(MLV_FORM_UTILS_I18N);
844
+ /** @private Resolver for ICU parameterized i18n strings. */
845
+ _resolver = inject(MlvI18nResolverService);
846
+ /** @protected Whether the connected popup is open. */
847
+ /** Keep the wrapper focus treatment active while its popup is visible. */
848
+ focused = computed(() => this._focused() || this.opened(), /* @ts-ignore */
849
+ ...(ngDevMode ? [{ debugName: "focused" }] : /* istanbul ignore next */ []));
850
+ /** @protected Editable text that has not necessarily been committed. */
851
+ _draftValue = signal(this.value(), /* @ts-ignore */
852
+ ...(ngDevMode ? [{ debugName: "_draftValue" }] : /* istanbul ignore next */ []));
853
+ /** @private Most recent valid draft used for invalid-input rollback. */
854
+ _lastValidDraft = signal(this.value(), /* @ts-ignore */
855
+ ...(ngDevMode ? [{ debugName: "_lastValidDraft" }] : /* istanbul ignore next */ []));
856
+ /** @protected Concrete color used to initialize the visual picker. */
857
+ _pickerValue = signal('#ff0000', /* @ts-ignore */
858
+ ...(ngDevMode ? [{ debugName: "_pickerValue" }] : /* istanbul ignore next */ []));
859
+ /** @protected Stable id linked from the input's `aria-controls`. */
860
+ _panelId = mlvNextId('mlv-color-picker-popup-panel');
861
+ /** @protected Stable id used by the input's `aria-describedby`. */
862
+ /**
863
+ * @protected Resolved accessible name for the swatch button, e.g.
864
+ * "Pick color: #ff0000".
865
+ */
866
+ _pickColorLabel = computed(() => this._resolver.resolve(this._i18n(), 'pickColor', { color: this._draftValue() }), /* @ts-ignore */
867
+ ...(ngDevMode ? [{ debugName: "_pickColorLabel" }] : /* istanbul ignore next */ []));
868
+ /** @private Native input used for synchronous rollback of invalid drafts. */
869
+ _inputRef = viewChild('nativeInput', /* @ts-ignore */
870
+ ...(ngDevMode ? [{ debugName: "_inputRef" }] : /* istanbul ignore next */ []));
871
+ /** @private Rounded color square used for computed CSS-variable resolution. */
872
+ _fieldSwatchColorRef = viewChild('fieldSwatchColor', /* @ts-ignore */
873
+ ...(ngDevMode ? [{ debugName: "_fieldSwatchColorRef" }] : /* istanbul ignore next */ []));
874
+ /** @private Swatch-only presentation color layer. */
875
+ _swatchTriggerColorRef = viewChild('swatchTriggerColor', /* @ts-ignore */
876
+ ...(ngDevMode ? [{ debugName: "_swatchTriggerColorRef" }] : /* istanbul ignore next */ []));
877
+ /** @private Field-mode swatch button used for keyboard focus restoration. */
878
+ _fieldSwatchButtonRef = viewChild('fieldSwatchButton', {
879
+ read: ElementRef,
880
+ });
881
+ /** @private Swatch-mode Malva trigger used by detached composition. */
882
+ _swatchTriggerRef = viewChild('swatchTrigger', {
883
+ read: ElementRef,
884
+ });
885
+ /** @private Field-mode detached picker surface. */
886
+ _fieldPanelRef = viewChild('fieldPickerPanel', /* @ts-ignore */
887
+ ...(ngDevMode ? [{ debugName: "_fieldPanelRef" }] : /* istanbul ignore next */ []));
888
+ /** @private Swatch-mode detached picker surface. */
889
+ _swatchPanelRef = viewChild('swatchPickerPanel', /* @ts-ignore */
890
+ ...(ngDevMode ? [{ debugName: "_swatchPanelRef" }] : /* istanbul ignore next */ []));
891
+ /** Public trigger element for toolbar/composite registration. */
892
+ triggerElement = computed(() => (this.presentation() !== 'field'
893
+ ? this._swatchTriggerRef()
894
+ : this._fieldSwatchButtonRef())?.nativeElement ?? null, /* @ts-ignore */
895
+ ...(ngDevMode ? [{ debugName: "triggerElement" }] : /* istanbul ignore next */ []));
896
+ /** Public detached panel element for overlay ownership registration. */
897
+ panelElement = computed(() => (this.presentation() !== 'field'
898
+ ? this._swatchPanelRef()
899
+ : this._fieldPanelRef())?.nativeElement ?? null, /* @ts-ignore */
900
+ ...(ngDevMode ? [{ debugName: "panelElement" }] : /* istanbul ignore next */ []));
901
+ /** @private Locates the first tabbable picker control for keyboard opening. */
902
+ _tabbable = inject(MlvTabbableElementService);
903
+ /** @private Whether the next completed close should restore swatch focus. */
904
+ _restoreSwatchFocus = false;
905
+ /** @private Whether `afterOpened` should transfer focus into the picker. */
906
+ _focusPickerAfterOpen = false;
907
+ /** @private Whether the shared overlay is attached or playing its leave animation. */
908
+ _popupAttached = false;
909
+ /** @private Previous open state used to detect every close request once. */
910
+ _wasOpen = false;
911
+ /** @private Reopens after a click/focus that occurs during the leave animation. */
912
+ _reopenAfterClose = false;
913
+ constructor() {
914
+ super();
915
+ // External form/model writes replace all local draft state.
916
+ effect(() => {
917
+ const committed = this.value();
918
+ this._draftValue.set(committed);
919
+ this._lastValidDraft.set(committed);
920
+ if (untracked(() => this.opened())) {
921
+ const swatch = this._swatchColorElement();
922
+ if (swatch) {
923
+ swatch.style.backgroundColor = committed || 'transparent';
924
+ }
925
+ this._syncPickerValue(committed);
926
+ }
927
+ });
928
+ // State changes can make an already-open picker inert. Close it
929
+ // immediately and discard any uncommitted draft in that case.
930
+ effect(() => {
931
+ if (!this._isInert() || !this.opened())
932
+ return;
933
+ this._restoreCommittedValue();
934
+ this._focusPickerAfterOpen = false;
935
+ this._restoreSwatchFocus = false;
936
+ this.opened.set(false);
937
+ });
938
+ // Commit at close intent rather than after the leave animation. This covers
939
+ // backdrop, Escape, programmatic, and reduced-motion close paths uniformly.
940
+ effect(() => {
941
+ const isOpen = this.opened();
942
+ const inert = this._isInert();
943
+ if (this._wasOpen && !isOpen && !inert) {
944
+ untracked(() => this._commitDraft());
945
+ }
946
+ this._wasOpen = isOpen;
947
+ });
948
+ }
949
+ /** @protected Stores text input without publishing a partial forms value. */
950
+ _onInput(event) {
951
+ if (this._isInert())
952
+ return;
953
+ const draft = event.target.value;
954
+ this._setDraftValue(draft);
955
+ if (draft === '' || isCssColorValue(draft)) {
956
+ this._lastValidDraft.set(draft);
957
+ if (this.live())
958
+ this._commitValue(draft);
959
+ }
960
+ }
961
+ /** @protected Opens the popup when the editable field receives focus. */
962
+ _onInputFocus() {
963
+ this.setFocused(true);
964
+ if (this._isInert())
965
+ return;
966
+ this._restoreSwatchFocus = false;
967
+ this._open(false);
968
+ }
969
+ /**
970
+ * @protected Reopens after Escape when the input retained focus (and thus
971
+ * cannot emit another native focus event).
972
+ */
973
+ _onInputClick() {
974
+ if (this._isInert())
975
+ return;
976
+ this._restoreSwatchFocus = false;
977
+ this._open(false);
978
+ }
979
+ /** @protected Commits or rolls back the draft when focus leaves the input. */
980
+ _onInputBlur() {
981
+ this.setFocused(false);
982
+ if (this._isInert())
983
+ return;
984
+ this._commitDraft();
985
+ this._markTouched();
986
+ }
987
+ /** @protected Closes the popup from the input on Escape. */
988
+ _onInputKeydown(event) {
989
+ if (event.key === 'Escape') {
990
+ event.preventDefault();
991
+ event.stopPropagation();
992
+ this._restoreSwatchFocus = false;
993
+ this.opened.set(false);
994
+ this._markTouched();
995
+ }
996
+ }
997
+ /**
998
+ * @protected Opens from the rounded square. Keyboard activation opts into
999
+ * focus transfer; pointer activation leaves focus on the trigger.
1000
+ */
1001
+ _openFromSwatch(focusPicker = false) {
1002
+ if (this._isInert())
1003
+ return;
1004
+ if (this.presentation() !== 'field')
1005
+ this._restoreSwatchFocus = true;
1006
+ if (focusPicker) {
1007
+ this._focusPickerAfterOpen = true;
1008
+ this._restoreSwatchFocus = true;
1009
+ }
1010
+ this._open(focusPicker);
1011
+ }
1012
+ /** @private Opens the connected popup and refreshes the picker's color. */
1013
+ _open(focusPicker) {
1014
+ if (this._isInert())
1015
+ return;
1016
+ this._syncPickerValue(this._draftValue());
1017
+ // PopupContainer keeps the overlay attached while its leave animation
1018
+ // runs. Queue a fresh attach instead of toggling the model back to true:
1019
+ // the closing handle would otherwise finish and overwrite it with false.
1020
+ if (!this.opened() && this._popupAttached) {
1021
+ this._reopenAfterClose = true;
1022
+ return;
1023
+ }
1024
+ if (this.opened()) {
1025
+ if (focusPicker)
1026
+ queueMicrotask(() => this._focusPicker());
1027
+ return;
1028
+ }
1029
+ this.opened.set(true);
1030
+ }
1031
+ /** @protected Performs post-attach focus work requested by keyboard opening. */
1032
+ _onPopupOpened() {
1033
+ this._popupAttached = true;
1034
+ this.afterOpened.emit();
1035
+ if (!this._focusPickerAfterOpen)
1036
+ return;
1037
+ this._focusPickerAfterOpen = false;
1038
+ queueMicrotask(() => this._focusPicker());
1039
+ }
1040
+ /** @protected Restores swatch focus only for keyboard/panel close flows. */
1041
+ _onPopupClosed() {
1042
+ this._popupAttached = false;
1043
+ if (this._reopenAfterClose) {
1044
+ this._reopenAfterClose = false;
1045
+ this._open(this._focusPickerAfterOpen);
1046
+ return;
1047
+ }
1048
+ if (this._restoreSwatchFocus) {
1049
+ this._restoreSwatchFocus = false;
1050
+ this.triggerElement()?.focus();
1051
+ }
1052
+ this.afterClosed.emit();
1053
+ }
1054
+ /** @protected Closes from the panel and commits the current draft. */
1055
+ _onPanelEscape(event) {
1056
+ event.preventDefault();
1057
+ event.stopPropagation();
1058
+ this._restoreSwatchFocus = true;
1059
+ this.opened.set(false);
1060
+ this._markTouched();
1061
+ }
1062
+ /** @protected Clears the committed forms value through the shared X button. */
1063
+ _clearValue() {
1064
+ if (this._isInert())
1065
+ return;
1066
+ this._lastValidDraft.set('');
1067
+ this._commitValue('');
1068
+ }
1069
+ /** @protected Updates the picker draft and optionally publishes it live. */
1070
+ _onColorChange(cssColor) {
1071
+ if (this._isInert())
1072
+ return;
1073
+ this._lastValidDraft.set(cssColor);
1074
+ this._setDraftValue(cssColor);
1075
+ if (this.live())
1076
+ this._commitValue(cssColor);
1077
+ }
1078
+ /** @private Commits valid/empty input or the most recent valid draft. */
1079
+ _commitDraft() {
1080
+ const draft = this._draftValue().trim();
1081
+ if (draft === '' || isCssColorValue(draft)) {
1082
+ this._lastValidDraft.set(draft);
1083
+ this._commitValue(draft);
1084
+ return;
1085
+ }
1086
+ const lastValid = this._lastValidDraft();
1087
+ this._setDraftValue(lastValid);
1088
+ const input = this._inputRef()?.nativeElement;
1089
+ if (input)
1090
+ input.value = lastValid;
1091
+ this._commitValue(lastValid);
1092
+ }
1093
+ /**
1094
+ * @private Restores local state from the committed value without publishing.
1095
+ */
1096
+ _restoreCommittedValue() {
1097
+ const committed = this.value();
1098
+ this._lastValidDraft.set(committed);
1099
+ this._setDraftValue(committed);
1100
+ const input = this._inputRef()?.nativeElement;
1101
+ if (input)
1102
+ input.value = committed;
1103
+ }
1104
+ /** @private Synchronizes all visual draft consumers without committing. */
1105
+ _setDraftValue(value) {
1106
+ this._draftValue.set(value);
1107
+ const swatch = this._swatchColorElement();
1108
+ if (swatch)
1109
+ swatch.style.backgroundColor = value || 'transparent';
1110
+ this._syncPickerValue(value);
1111
+ }
1112
+ /** @private Publishes one committed user change across forms and output. */
1113
+ _commitValue(value) {
1114
+ this._setDraftValue(value);
1115
+ this._lastValidDraft.set(value);
1116
+ if (value === this.value())
1117
+ return;
1118
+ this.value.set(value);
1119
+ this.colorChange.emit(value);
1120
+ }
1121
+ /**
1122
+ * @private Initializes the visual picker without replacing the committed
1123
+ * source string. Concrete formats pass through. CSS variables are resolved
1124
+ * from the swatch's computed background in the trigger's cascade.
1125
+ */
1126
+ _syncPickerValue(source = this._draftValue()) {
1127
+ if (tryParseCssColor(source)) {
1128
+ this._pickerValue.set(source);
1129
+ return;
1130
+ }
1131
+ const swatch = this._swatchColorElement();
1132
+ const resolved = swatch ? getComputedStyle(swatch).backgroundColor : '';
1133
+ this._pickerValue.set(tryParseCssColor(resolved) ? resolved : '#ff0000');
1134
+ }
1135
+ /** @private Moves focus into the picker after a keyboard swatch activation. */
1136
+ _focusPicker() {
1137
+ const panel = document.getElementById(this._panelId);
1138
+ if (!panel)
1139
+ return;
1140
+ const first = this._tabbable.getTabbableElement(panel, false, true);
1141
+ (first ?? panel).focus();
1142
+ }
1143
+ /** @private Current presentation's rendered colour layer. */
1144
+ _swatchColorElement() {
1145
+ const ref = this.presentation() === 'swatch'
1146
+ ? this._swatchTriggerColorRef()
1147
+ : this.presentation() === 'field'
1148
+ ? this._fieldSwatchColorRef()
1149
+ : undefined;
1150
+ return ref?.nativeElement;
1151
+ }
1152
+ /** @private Whether disabled/readonly state blocks all user mutation. */
1153
+ _isInert() {
1154
+ return this.computedDisabled() || this.readonly();
1155
+ }
1156
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvColorPickerPopup, deps: [], target: i0.ɵɵFactoryTarget.Component });
1157
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: MlvColorPickerPopup, isStandalone: true, selector: "mlv-color-picker-popup", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, presentation: { classPropertyName: "presentation", publicName: "presentation", isSignal: true, isRequired: false, transformFunction: null }, opened: { classPropertyName: "opened", publicName: "opened", isSignal: true, isRequired: false, transformFunction: null }, showOpacity: { classPropertyName: "showOpacity", publicName: "showOpacity", isSignal: true, isRequired: false, transformFunction: null }, defaultMode: { classPropertyName: "defaultMode", publicName: "defaultMode", isSignal: true, isRequired: false, transformFunction: null }, supportedFormats: { classPropertyName: "supportedFormats", publicName: "supportedFormats", isSignal: true, isRequired: false, transformFunction: null }, live: { classPropertyName: "live", publicName: "live", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", opened: "openedChange", afterOpened: "afterOpened", afterClosed: "afterClosed", colorChange: "colorChange" }, host: { properties: { "class": "\"mlv-color-picker-popup--state-\" + resolvedState()", "class.mlv-color-picker-popup--disabled": "computedDisabled()", "class.mlv-color-picker-popup--readonly": "readonly()", "class.mlv-color-picker-popup--open": "opened()", "class.mlv-color-picker-popup--swatch": "presentation() !== \"field\"" }, classAttribute: "mlv-color-picker-popup" }, providers: [
1158
+ {
1159
+ provide: MLV_FORM_CONTROL,
1160
+ useExisting: forwardRef(() => MlvColorPickerPopup),
1161
+ },
1162
+ ], viewQueries: [{ propertyName: "_inputRef", first: true, predicate: ["nativeInput"], descendants: true, isSignal: true }, { propertyName: "_fieldSwatchColorRef", first: true, predicate: ["fieldSwatchColor"], descendants: true, isSignal: true }, { propertyName: "_swatchTriggerColorRef", first: true, predicate: ["swatchTriggerColor"], descendants: true, isSignal: true }, { propertyName: "_fieldSwatchButtonRef", first: true, predicate: ["fieldSwatchButton"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "_swatchTriggerRef", first: true, predicate: ["swatchTrigger"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "_fieldPanelRef", first: true, predicate: ["fieldPickerPanel"], descendants: true, isSignal: true }, { propertyName: "_swatchPanelRef", first: true, predicate: ["swatchPickerPanel"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (presentation() === 'field') {\n<mlv-form-control-wrapper (clear)=\"_clearValue()\">\n @if (label() || hint()) {\n <mlv-label [for]=\"id()\" [required]=\"required()\">\n {{ label() }} @if (hint()) {\n <mlv-hint>{{ hint() }}</mlv-hint>\n }\n </mlv-label>\n }\n\n <ng-template mlvFormControlWrapperControl>\n <mlv-popup-container class=\"mlv-color-picker-popup__popup-container\">\n <div class=\"mlv-color-picker-popup__control\">\n <input\n #nativeInput\n class=\"mlv-color-picker-popup__input\"\n type=\"text\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [id]=\"id()\"\n [value]=\"_draftValue()\"\n [disabled]=\"computedDisabled()\"\n [readOnly]=\"readonly()\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"opened()\"\n [attr.aria-controls]=\"opened() ? _panelId : null\"\n [attr.aria-invalid]=\"resolvedState() === 'error'\"\n [attr.aria-required]=\"required() || null\"\n [attr.aria-describedby]=\"_describedBy()\"\n [attr.aria-label]=\"label() ? null : (ariaLabel() ?? _i18n().colorPicker)\"\n (input)=\"_onInput($event)\"\n (focus)=\"_onInputFocus()\"\n (click)=\"_onInputClick()\"\n (blur)=\"_onInputBlur()\"\n (keydown)=\"_onInputKeydown($event)\"\n />\n\n <button\n #fieldSwatchButton\n class=\"mlv-color-picker-popup__swatch-button\"\n type=\"button\"\n [disabled]=\"computedDisabled() || readonly()\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"opened()\"\n [attr.aria-controls]=\"opened() ? _panelId : null\"\n [attr.aria-label]=\"_pickColorLabel()\"\n (click)=\"_openFromSwatch()\"\n (keydown.enter)=\"_openFromSwatch(true); $event.preventDefault()\"\n (keydown.space)=\"_openFromSwatch(true); $event.preventDefault()\"\n >\n <span class=\"mlv-color-picker-popup__swatch\" aria-hidden=\"true\">\n <span\n #fieldSwatchColor\n class=\"mlv-color-picker-popup__swatch-color\"\n [style.background-color]=\"_draftValue() || 'transparent'\"\n ></span>\n </span>\n </button>\n </div>\n\n <mlv-popup\n [(opened)]=\"opened\"\n [position]=\"['bottom-start', 'top-start']\"\n [restrictPosition]=\"false\"\n [hasBackdrop]=\"true\"\n [hasShadow]=\"true\"\n panelRole=\"dialog\"\n [ariaLabel]=\"_i18n().colorPicker\"\n class=\"mlv-color-picker-popup__overlay\"\n (afterOpened)=\"_onPopupOpened()\"\n (afterClosed)=\"_onPopupClosed()\"\n >\n <ng-template mlvPopupContent>\n <div\n #fieldPickerPanel\n class=\"mlv-color-picker-popup__panel\"\n [id]=\"_panelId\"\n tabindex=\"-1\"\n (keydown.escape)=\"_onPanelEscape($event)\"\n >\n <mlv-color-picker\n [value]=\"_pickerValue()\"\n [showOpacity]=\"!!showOpacity()\"\n [defaultMode]=\"defaultMode()\"\n [supportedFormats]=\"supportedFormats()\"\n [disabled]=\"computedDisabled() || readonly()\"\n (colorChange)=\"_onColorChange($event)\"\n />\n </div>\n </ng-template>\n </mlv-popup>\n </mlv-popup-container>\n </ng-template>\n\n @if (description()) {\n <mlv-description [id]=\"_descriptionId()\">{{ description() }}</mlv-description>\n } @if (message()) {\n <mlv-message [attr.id]=\"_messageId()\" [state]=\"resolvedState()\">\n {{ message() }}\n </mlv-message>\n }\n</mlv-form-control-wrapper>\n} @else {\n<mlv-popup-container class=\"mlv-color-picker-popup__popup-container\">\n <button\n #swatchTrigger\n mlvButton\n class=\"mlv-color-picker-popup__swatch-trigger\"\n type=\"button\"\n shape=\"square\"\n mlvDensity=\"tight\"\n variant=\"transparent\"\n [disabled]=\"computedDisabled() || readonly()\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"opened()\"\n [attr.aria-controls]=\"opened() ? _panelId : null\"\n [attr.aria-label]=\"ariaLabel() ?? _pickColorLabel()\"\n [mlvTooltip]=\"ariaLabel() ?? _pickColorLabel()\"\n (click)=\"_openFromSwatch()\"\n (keydown.enter)=\"_openFromSwatch(true); $event.preventDefault()\"\n (keydown.space)=\"_openFromSwatch(true); $event.preventDefault()\"\n >\n @if (presentation() === 'icon') {\n <span mlvButtonIcon>\n <ng-content />\n </span>\n } @else {\n <span class=\"mlv-color-picker-popup__swatch\" aria-hidden=\"true\">\n <span\n #swatchTriggerColor\n class=\"mlv-color-picker-popup__swatch-color\"\n [style.background-color]=\"_draftValue() || 'transparent'\"\n ></span>\n </span>\n }\n </button>\n\n <mlv-popup\n [(opened)]=\"opened\"\n [position]=\"['bottom-start', 'top-start']\"\n [restrictPosition]=\"false\"\n [hasBackdrop]=\"true\"\n [hasShadow]=\"true\"\n panelRole=\"dialog\"\n [ariaLabel]=\"ariaLabel() ?? _i18n().colorPicker\"\n class=\"mlv-color-picker-popup__overlay\"\n (afterOpened)=\"_onPopupOpened()\"\n (afterClosed)=\"_onPopupClosed()\"\n >\n <ng-template mlvPopupContent>\n <div\n #swatchPickerPanel\n class=\"mlv-color-picker-popup__panel\"\n [id]=\"_panelId\"\n tabindex=\"-1\"\n (keydown.escape)=\"_onPanelEscape($event)\"\n >\n <mlv-color-picker\n [value]=\"_pickerValue()\"\n [showOpacity]=\"!!showOpacity()\"\n [defaultMode]=\"defaultMode()\"\n [supportedFormats]=\"supportedFormats()\"\n [disabled]=\"computedDisabled() || readonly()\"\n (colorChange)=\"_onColorChange($event)\"\n />\n @if (clearable() && hasValue()) {\n <button\n mlvButton\n class=\"mlv-color-picker-popup__clear\"\n type=\"button\"\n variant=\"secondary\"\n [disabled]=\"computedDisabled() || readonly()\"\n (click)=\"_clearValue()\"\n >\n {{ _formI18n().clear }}\n </button>\n }\n </div>\n </ng-template>\n </mlv-popup>\n</mlv-popup-container>\n}\n", styles: ["@layer mlv.components{.mlv-color-picker-popup{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-m)}.mlv-color-picker-popup *{box-sizing:border-box}.mlv-color-picker-popup,.mlv-color-picker-popup__popup-container,.mlv-color-picker-popup__control{display:block;width:100%}.mlv-color-picker-popup__control{display:flex;align-items:center;min-width:0}.mlv-color-picker-popup__input{position:relative;display:block;flex:1 1 auto;width:100%;min-width:0;height:100%;padding:var(--mlv-spacing-1);border:0;outline:0;appearance:none;background:transparent;color:var(--mlv-text-primary);font:inherit}.mlv-color-picker-popup__input::placeholder{color:var(--mlv-text-tertiary)}.mlv-color-picker-popup__input:read-only{cursor:default}.mlv-color-picker-popup__swatch-button{display:inline-grid;flex:0 0 auto;width:1.75rem;height:1.75rem;margin-inline-start:var(--mlv-spacing-1);padding:.1875rem;place-items:center;border:0;border-radius:var(--mlv-radius-s);outline:0;background:transparent;cursor:pointer}.mlv-color-picker-popup__swatch-button:hover:not(:disabled){background-color:var(--mlv-background-neutral-1-hover)}.mlv-color-picker-popup__swatch-button:focus-visible{box-shadow:var(--mlv-focus-ring)}.mlv-color-picker-popup__swatch-button:disabled{cursor:not-allowed}.mlv-color-picker-popup__swatch-trigger{padding:var(--mlv-padding-xs)}.mlv-color-picker-popup__swatch{position:relative;display:block;width:1.375rem;height:1.375rem;overflow:hidden;border:var(--mlv-stroke-width) solid var(--mlv-border-normal);border-radius:var(--mlv-radius-xs, var(--mlv-radius-s));background-color:var(--mlv-background-base);background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-position:0 0,0 .25rem,.25rem -.25rem,-.25rem 0;background-size:.5rem .5rem}.mlv-color-picker-popup__swatch-color{position:absolute;inset:0}.mlv-color-picker-popup__panel{width:min(16rem,100vw - 3.5rem);padding:var(--mlv-popover-inset)}.mlv-color-picker-popup__panel .mlv-color-picker{width:100%;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.mlv-color-picker-popup__clear{width:100%;margin-block-start:var(--mlv-spacing-2)}.mlv-color-picker-popup--swatch{display:inline-flex;width:auto}.mlv-color-picker-popup--disabled{opacity:var(--mlv-disabled-opacity)}}\n"], dependencies: [{ kind: "component", type: MlvColorPicker, selector: "mlv-color-picker", inputs: ["value", "showOpacity", "defaultMode", "supportedFormats"], outputs: ["valueChange", "colorChange"] }, { kind: "component", type: MlvButton, selector: "button[mlvButton], a[mlvButton]", inputs: ["variant", "shape", "disabled", "loading", "selected"] }, { kind: "directive", type: MlvTooltip, selector: "[mlvTooltip]", inputs: ["mlvTooltip", "tooltipPlacement", "tooltipTone", "tooltipDelay", "tooltipDisabled", "tooltipArrow"] }, { kind: "component", type: MlvFormControlWrapper, selector: "mlv-form-control-wrapper", outputs: ["clear"] }, { kind: "directive", type: MlvFormControlWrapperControl, selector: "[mlvFormControlWrapperControl]" }, { kind: "component", type: MlvHint, selector: "mlv-hint" }, { kind: "component", type: MlvDescription, selector: "mlv-description" }, { kind: "component", type: MlvLabel, selector: "mlv-label", inputs: ["for", "required"] }, { kind: "component", type: MlvMessage, selector: "mlv-message", inputs: ["state"] }, { kind: "component", type: MlvPopup, selector: "mlv-popup", inputs: ["position", "positions", "width", "height", "minWidth", "minHeight", "maxWidth", "maxHeight", "hasArrow", "hasShadow", "class", "mlvDensity", "flexibleDimensions", "scrollStrategy", "hasBackdrop", "restrictPosition", "panelRole", "modal", "ariaLabel", "dismissExcludeElements", "mobileMode", "mobileBreakpoint", "mobileTitle", "mobileCloseLabel", "opened"], outputs: ["openedChange", "afterOpened", "afterClosed"] }, { kind: "component", type: MlvPopupContainer, selector: "mlv-popup-container" }, { kind: "directive", type: MlvPopupContent, selector: "[mlvPopupContent]" }, { kind: "directive", type: MlvButtonIcon, selector: "[mlvButtonIcon]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1163
+ }
1164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvColorPickerPopup, decorators: [{
1165
+ type: Component,
1166
+ args: [{ selector: 'mlv-color-picker-popup', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
1167
+ MlvColorPicker,
1168
+ MlvButton,
1169
+ MlvTooltip,
1170
+ MlvFormControlWrapper,
1171
+ MlvFormControlWrapperControl,
1172
+ MlvHint,
1173
+ MlvDescription,
1174
+ MlvLabel,
1175
+ MlvMessage,
1176
+ MlvPopup,
1177
+ MlvPopupContainer,
1178
+ MlvPopupContent,
1179
+ MlvButtonIcon,
1180
+ ], providers: [
1181
+ {
1182
+ provide: MLV_FORM_CONTROL,
1183
+ useExisting: forwardRef(() => MlvColorPickerPopup),
1184
+ },
1185
+ ], host: {
1186
+ class: 'mlv-color-picker-popup',
1187
+ '[class]': '"mlv-color-picker-popup--state-" + resolvedState()',
1188
+ '[class.mlv-color-picker-popup--disabled]': 'computedDisabled()',
1189
+ '[class.mlv-color-picker-popup--readonly]': 'readonly()',
1190
+ '[class.mlv-color-picker-popup--open]': 'opened()',
1191
+ '[class.mlv-color-picker-popup--swatch]': 'presentation() !== "field"',
1192
+ }, template: "@if (presentation() === 'field') {\n<mlv-form-control-wrapper (clear)=\"_clearValue()\">\n @if (label() || hint()) {\n <mlv-label [for]=\"id()\" [required]=\"required()\">\n {{ label() }} @if (hint()) {\n <mlv-hint>{{ hint() }}</mlv-hint>\n }\n </mlv-label>\n }\n\n <ng-template mlvFormControlWrapperControl>\n <mlv-popup-container class=\"mlv-color-picker-popup__popup-container\">\n <div class=\"mlv-color-picker-popup__control\">\n <input\n #nativeInput\n class=\"mlv-color-picker-popup__input\"\n type=\"text\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [id]=\"id()\"\n [value]=\"_draftValue()\"\n [disabled]=\"computedDisabled()\"\n [readOnly]=\"readonly()\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"opened()\"\n [attr.aria-controls]=\"opened() ? _panelId : null\"\n [attr.aria-invalid]=\"resolvedState() === 'error'\"\n [attr.aria-required]=\"required() || null\"\n [attr.aria-describedby]=\"_describedBy()\"\n [attr.aria-label]=\"label() ? null : (ariaLabel() ?? _i18n().colorPicker)\"\n (input)=\"_onInput($event)\"\n (focus)=\"_onInputFocus()\"\n (click)=\"_onInputClick()\"\n (blur)=\"_onInputBlur()\"\n (keydown)=\"_onInputKeydown($event)\"\n />\n\n <button\n #fieldSwatchButton\n class=\"mlv-color-picker-popup__swatch-button\"\n type=\"button\"\n [disabled]=\"computedDisabled() || readonly()\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"opened()\"\n [attr.aria-controls]=\"opened() ? _panelId : null\"\n [attr.aria-label]=\"_pickColorLabel()\"\n (click)=\"_openFromSwatch()\"\n (keydown.enter)=\"_openFromSwatch(true); $event.preventDefault()\"\n (keydown.space)=\"_openFromSwatch(true); $event.preventDefault()\"\n >\n <span class=\"mlv-color-picker-popup__swatch\" aria-hidden=\"true\">\n <span\n #fieldSwatchColor\n class=\"mlv-color-picker-popup__swatch-color\"\n [style.background-color]=\"_draftValue() || 'transparent'\"\n ></span>\n </span>\n </button>\n </div>\n\n <mlv-popup\n [(opened)]=\"opened\"\n [position]=\"['bottom-start', 'top-start']\"\n [restrictPosition]=\"false\"\n [hasBackdrop]=\"true\"\n [hasShadow]=\"true\"\n panelRole=\"dialog\"\n [ariaLabel]=\"_i18n().colorPicker\"\n class=\"mlv-color-picker-popup__overlay\"\n (afterOpened)=\"_onPopupOpened()\"\n (afterClosed)=\"_onPopupClosed()\"\n >\n <ng-template mlvPopupContent>\n <div\n #fieldPickerPanel\n class=\"mlv-color-picker-popup__panel\"\n [id]=\"_panelId\"\n tabindex=\"-1\"\n (keydown.escape)=\"_onPanelEscape($event)\"\n >\n <mlv-color-picker\n [value]=\"_pickerValue()\"\n [showOpacity]=\"!!showOpacity()\"\n [defaultMode]=\"defaultMode()\"\n [supportedFormats]=\"supportedFormats()\"\n [disabled]=\"computedDisabled() || readonly()\"\n (colorChange)=\"_onColorChange($event)\"\n />\n </div>\n </ng-template>\n </mlv-popup>\n </mlv-popup-container>\n </ng-template>\n\n @if (description()) {\n <mlv-description [id]=\"_descriptionId()\">{{ description() }}</mlv-description>\n } @if (message()) {\n <mlv-message [attr.id]=\"_messageId()\" [state]=\"resolvedState()\">\n {{ message() }}\n </mlv-message>\n }\n</mlv-form-control-wrapper>\n} @else {\n<mlv-popup-container class=\"mlv-color-picker-popup__popup-container\">\n <button\n #swatchTrigger\n mlvButton\n class=\"mlv-color-picker-popup__swatch-trigger\"\n type=\"button\"\n shape=\"square\"\n mlvDensity=\"tight\"\n variant=\"transparent\"\n [disabled]=\"computedDisabled() || readonly()\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"opened()\"\n [attr.aria-controls]=\"opened() ? _panelId : null\"\n [attr.aria-label]=\"ariaLabel() ?? _pickColorLabel()\"\n [mlvTooltip]=\"ariaLabel() ?? _pickColorLabel()\"\n (click)=\"_openFromSwatch()\"\n (keydown.enter)=\"_openFromSwatch(true); $event.preventDefault()\"\n (keydown.space)=\"_openFromSwatch(true); $event.preventDefault()\"\n >\n @if (presentation() === 'icon') {\n <span mlvButtonIcon>\n <ng-content />\n </span>\n } @else {\n <span class=\"mlv-color-picker-popup__swatch\" aria-hidden=\"true\">\n <span\n #swatchTriggerColor\n class=\"mlv-color-picker-popup__swatch-color\"\n [style.background-color]=\"_draftValue() || 'transparent'\"\n ></span>\n </span>\n }\n </button>\n\n <mlv-popup\n [(opened)]=\"opened\"\n [position]=\"['bottom-start', 'top-start']\"\n [restrictPosition]=\"false\"\n [hasBackdrop]=\"true\"\n [hasShadow]=\"true\"\n panelRole=\"dialog\"\n [ariaLabel]=\"ariaLabel() ?? _i18n().colorPicker\"\n class=\"mlv-color-picker-popup__overlay\"\n (afterOpened)=\"_onPopupOpened()\"\n (afterClosed)=\"_onPopupClosed()\"\n >\n <ng-template mlvPopupContent>\n <div\n #swatchPickerPanel\n class=\"mlv-color-picker-popup__panel\"\n [id]=\"_panelId\"\n tabindex=\"-1\"\n (keydown.escape)=\"_onPanelEscape($event)\"\n >\n <mlv-color-picker\n [value]=\"_pickerValue()\"\n [showOpacity]=\"!!showOpacity()\"\n [defaultMode]=\"defaultMode()\"\n [supportedFormats]=\"supportedFormats()\"\n [disabled]=\"computedDisabled() || readonly()\"\n (colorChange)=\"_onColorChange($event)\"\n />\n @if (clearable() && hasValue()) {\n <button\n mlvButton\n class=\"mlv-color-picker-popup__clear\"\n type=\"button\"\n variant=\"secondary\"\n [disabled]=\"computedDisabled() || readonly()\"\n (click)=\"_clearValue()\"\n >\n {{ _formI18n().clear }}\n </button>\n }\n </div>\n </ng-template>\n </mlv-popup>\n</mlv-popup-container>\n}\n", styles: ["@layer mlv.components{.mlv-color-picker-popup{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-m)}.mlv-color-picker-popup *{box-sizing:border-box}.mlv-color-picker-popup,.mlv-color-picker-popup__popup-container,.mlv-color-picker-popup__control{display:block;width:100%}.mlv-color-picker-popup__control{display:flex;align-items:center;min-width:0}.mlv-color-picker-popup__input{position:relative;display:block;flex:1 1 auto;width:100%;min-width:0;height:100%;padding:var(--mlv-spacing-1);border:0;outline:0;appearance:none;background:transparent;color:var(--mlv-text-primary);font:inherit}.mlv-color-picker-popup__input::placeholder{color:var(--mlv-text-tertiary)}.mlv-color-picker-popup__input:read-only{cursor:default}.mlv-color-picker-popup__swatch-button{display:inline-grid;flex:0 0 auto;width:1.75rem;height:1.75rem;margin-inline-start:var(--mlv-spacing-1);padding:.1875rem;place-items:center;border:0;border-radius:var(--mlv-radius-s);outline:0;background:transparent;cursor:pointer}.mlv-color-picker-popup__swatch-button:hover:not(:disabled){background-color:var(--mlv-background-neutral-1-hover)}.mlv-color-picker-popup__swatch-button:focus-visible{box-shadow:var(--mlv-focus-ring)}.mlv-color-picker-popup__swatch-button:disabled{cursor:not-allowed}.mlv-color-picker-popup__swatch-trigger{padding:var(--mlv-padding-xs)}.mlv-color-picker-popup__swatch{position:relative;display:block;width:1.375rem;height:1.375rem;overflow:hidden;border:var(--mlv-stroke-width) solid var(--mlv-border-normal);border-radius:var(--mlv-radius-xs, var(--mlv-radius-s));background-color:var(--mlv-background-base);background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-position:0 0,0 .25rem,.25rem -.25rem,-.25rem 0;background-size:.5rem .5rem}.mlv-color-picker-popup__swatch-color{position:absolute;inset:0}.mlv-color-picker-popup__panel{width:min(16rem,100vw - 3.5rem);padding:var(--mlv-popover-inset)}.mlv-color-picker-popup__panel .mlv-color-picker{width:100%;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.mlv-color-picker-popup__clear{width:100%;margin-block-start:var(--mlv-spacing-2)}.mlv-color-picker-popup--swatch{display:inline-flex;width:auto}.mlv-color-picker-popup--disabled{opacity:var(--mlv-disabled-opacity)}}\n"] }]
1193
+ }], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], presentation: [{ type: i0.Input, args: [{ isSignal: true, alias: "presentation", required: false }] }], opened: [{ type: i0.Input, args: [{ isSignal: true, alias: "opened", required: false }] }, { type: i0.Output, args: ["openedChange"] }], afterOpened: [{ type: i0.Output, args: ["afterOpened"] }], afterClosed: [{ type: i0.Output, args: ["afterClosed"] }], showOpacity: [{ type: i0.Input, args: [{ isSignal: true, alias: "showOpacity", required: false }] }], defaultMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultMode", required: false }] }], supportedFormats: [{ type: i0.Input, args: [{ isSignal: true, alias: "supportedFormats", required: false }] }], live: [{ type: i0.Input, args: [{ isSignal: true, alias: "live", required: false }] }], colorChange: [{ type: i0.Output, args: ["colorChange"] }], _inputRef: [{ type: i0.ViewChild, args: ['nativeInput', { isSignal: true }] }], _fieldSwatchColorRef: [{ type: i0.ViewChild, args: ['fieldSwatchColor', { isSignal: true }] }], _swatchTriggerColorRef: [{ type: i0.ViewChild, args: ['swatchTriggerColor', { isSignal: true }] }], _fieldSwatchButtonRef: [{ type: i0.ViewChild, args: ['fieldSwatchButton', { ...{
1194
+ read: ElementRef,
1195
+ }, isSignal: true }] }], _swatchTriggerRef: [{ type: i0.ViewChild, args: ['swatchTrigger', { ...{
1196
+ read: ElementRef,
1197
+ }, isSignal: true }] }], _fieldPanelRef: [{ type: i0.ViewChild, args: ['fieldPickerPanel', { isSignal: true }] }], _swatchPanelRef: [{ type: i0.ViewChild, args: ['swatchPickerPanel', { isSignal: true }] }] } });
1198
+
1199
+ /**
1200
+ * Generated bundle index. Do not edit.
1201
+ */
1202
+
1203
+ export { MlvColorPicker, MlvColorPickerPopup, clamp, hexToRgba, hslToRgb, hslaToHex, hslaToModeString, hslaToRgba, hslaToRgbaString, hslaToString, isCssColorValue, parseCssColor, rgbToHsl, rgbaToHex, round, tryParseCssColor };
1204
+ //# sourceMappingURL=malva-ui-core-color-picker.mjs.map