@malva-ui/core 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1434) hide show
  1. package/AGENTS.md +92 -0
  2. package/README.md +61 -0
  3. package/accordion/index.d.ts +3 -0
  4. package/accordion/lib/accordion/accordion.d.ts +47 -0
  5. package/accordion/lib/accordion-item/accordion-header.d.ts +22 -0
  6. package/accordion/lib/accordion-item/accordion-item.d.ts +49 -0
  7. package/accordion/malva-ui-core-accordion.d.ts +5 -0
  8. package/action-bar/index.d.ts +4 -0
  9. package/action-bar/lib/action-bar/action-bar.d.ts +59 -0
  10. package/action-bar/lib/action-bar/components/action-bar-actions.d.ts +9 -0
  11. package/action-bar/lib/action-bar/components/action-bar-logo.d.ts +5 -0
  12. package/action-bar/lib/action-bar/components/action-bar-spacer.d.ts +5 -0
  13. package/action-bar/malva-ui-core-action-bar.d.ts +5 -0
  14. package/alert/index.d.ts +2 -0
  15. package/alert/lib/alert/alert.d.ts +84 -0
  16. package/alert/lib/alert/alert.directives.d.ts +44 -0
  17. package/alert/malva-ui-core-alert.d.ts +5 -0
  18. package/autocomplete/index.d.ts +1 -0
  19. package/autocomplete/lib/autocomplete/autocomplete.d.ts +296 -0
  20. package/autocomplete/malva-ui-core-autocomplete.d.ts +5 -0
  21. package/avatar/index.d.ts +2 -0
  22. package/avatar/lib/avatar/avatar.d.ts +125 -0
  23. package/avatar/lib/color-from-text.pipe.d.ts +21 -0
  24. package/avatar/malva-ui-core-avatar.d.ts +5 -0
  25. package/avatar-group/index.d.ts +1 -0
  26. package/avatar-group/lib/avatar-group/avatar-group.d.ts +115 -0
  27. package/avatar-group/malva-ui-core-avatar-group.d.ts +5 -0
  28. package/badge/index.d.ts +2 -0
  29. package/badge/lib/badge/badge.d.ts +59 -0
  30. package/badge/lib/badge-icon.d.ts +35 -0
  31. package/badge/malva-ui-core-badge.d.ts +5 -0
  32. package/bottom-nav/index.d.ts +1 -0
  33. package/bottom-nav/lib/bottom-nav/bottom-nav.d.ts +99 -0
  34. package/bottom-nav/malva-ui-core-bottom-nav.d.ts +5 -0
  35. package/breadcrumb/index.d.ts +5 -0
  36. package/breadcrumb/lib/breadcrumb/breadcrumb-item-host.d.ts +32 -0
  37. package/breadcrumb/lib/breadcrumb/breadcrumb-item.d.ts +41 -0
  38. package/breadcrumb/lib/breadcrumb/breadcrumb-separator.d.ts +31 -0
  39. package/breadcrumb/lib/breadcrumb/breadcrumb.d.ts +151 -0
  40. package/breadcrumb/lib/breadcrumb/breadcrumb.types.d.ts +26 -0
  41. package/breadcrumb/malva-ui-core-breadcrumb.d.ts +5 -0
  42. package/button/index.d.ts +7 -0
  43. package/button/lib/button/button.d.ts +61 -0
  44. package/button/lib/button-close/button-close.d.ts +24 -0
  45. package/button/lib/button-group/button-group.d.ts +21 -0
  46. package/button/lib/button-split/button-split.d.ts +21 -0
  47. package/button/lib/button-toggle/button-toggle.d.ts +33 -0
  48. package/button/lib/button-variant.token.d.ts +13 -0
  49. package/button/lib/button.directives.d.ts +14 -0
  50. package/button/lib/button.types.d.ts +8 -0
  51. package/button/malva-ui-core-button.d.ts +5 -0
  52. package/calendar/index.d.ts +3 -0
  53. package/calendar/lib/calendar/calendar.d.ts +182 -0
  54. package/calendar/lib/date-provider/date-adapter.d.ts +92 -0
  55. package/calendar/lib/date-provider/native-date-adapter.d.ts +60 -0
  56. package/calendar/malva-ui-core-calendar.d.ts +5 -0
  57. package/card/index.d.ts +5 -0
  58. package/card/lib/card/card.d.ts +43 -0
  59. package/card/lib/card-actions-def.d.ts +10 -0
  60. package/card/lib/card-footer-def.d.ts +13 -0
  61. package/card/lib/card-header-def.d.ts +10 -0
  62. package/card/lib/card-subheader-def.d.ts +16 -0
  63. package/card/malva-ui-core-card.d.ts +5 -0
  64. package/chat/index.d.ts +9 -0
  65. package/chat/lib/chat/chat.d.ts +133 -0
  66. package/chat/lib/chat-audio/chat-audio.d.ts +51 -0
  67. package/chat/lib/chat-audio/chat-audio.service.d.ts +21 -0
  68. package/chat/lib/chat-date/chat-date.d.ts +16 -0
  69. package/chat/lib/chat-format.d.ts +5 -0
  70. package/chat/lib/chat-media-grid/chat-media-grid.d.ts +32 -0
  71. package/chat/lib/chat-message/chat-message.d.ts +45 -0
  72. package/chat/lib/chat-render-list.d.ts +16 -0
  73. package/chat/lib/chat-tokens.d.ts +25 -0
  74. package/chat/lib/chat-typing/chat-typing.d.ts +16 -0
  75. package/chat/lib/chat.types.d.ts +80 -0
  76. package/chat/lib/defs/chat-author-def.d.ts +30 -0
  77. package/chat/lib/defs/chat-date-def.d.ts +22 -0
  78. package/chat/lib/defs/chat-message-def.d.ts +23 -0
  79. package/chat/malva-ui-core-chat.d.ts +5 -0
  80. package/checkbox/index.d.ts +3 -0
  81. package/checkbox/lib/checkbox/checkbox.d.ts +129 -0
  82. package/checkbox/lib/checkbox-group/checkbox-group.d.ts +24 -0
  83. package/checkbox/lib/checkbox-group-token.d.ts +6 -0
  84. package/checkbox/malva-ui-core-checkbox.d.ts +5 -0
  85. package/chip/index.d.ts +2 -0
  86. package/chip/lib/chip/chip.d.ts +107 -0
  87. package/chip/lib/chip/chip.directives.d.ts +18 -0
  88. package/chip/malva-ui-core-chip.d.ts +5 -0
  89. package/color-picker/index.d.ts +3 -0
  90. package/color-picker/lib/color-picker/color-picker.d.ts +188 -0
  91. package/color-picker/lib/color-picker-popup/color-picker-popup.d.ts +151 -0
  92. package/color-picker/lib/color-utils/color-utils.d.ts +102 -0
  93. package/color-picker/malva-ui-core-color-picker.d.ts +5 -0
  94. package/combobox/index.d.ts +2 -0
  95. package/combobox/lib/combobox/combobox.d.ts +400 -0
  96. package/combobox/lib/combobox-template.directives.d.ts +10 -0
  97. package/combobox/malva-ui-core-combobox.d.ts +5 -0
  98. package/copy-to-clipboard/index.d.ts +1 -0
  99. package/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.d.ts +130 -0
  100. package/copy-to-clipboard/malva-ui-core-copy-to-clipboard.d.ts +5 -0
  101. package/data-table/index.d.ts +8 -0
  102. package/data-table/lib/data-source.d.ts +5 -0
  103. package/data-table/lib/data-table/data-table-layout.d.ts +31 -0
  104. package/data-table/lib/data-table/data-table.d.ts +699 -0
  105. package/data-table/lib/data-table/services/data-table-column-visibility.service.d.ts +19 -0
  106. package/data-table/lib/data-table/services/data-table-editing.service.d.ts +37 -0
  107. package/data-table/lib/data-table/services/data-table-pinning.service.d.ts +37 -0
  108. package/data-table/lib/data-table-cell.d.ts +44 -0
  109. package/data-table/lib/data-table-edit-cell.d.ts +44 -0
  110. package/data-table/lib/data-table-error.d.ts +37 -0
  111. package/data-table/lib/data-table-footer.d.ts +26 -0
  112. package/data-table/lib/data-table-no-data.d.ts +19 -0
  113. package/data-table/lib/filter-dropdown/filter-dropdown.d.ts +54 -0
  114. package/data-table/lib/types.d.ts +134 -0
  115. package/data-table/malva-ui-core-data-table.d.ts +5 -0
  116. package/date-range-picker/index.d.ts +1 -0
  117. package/date-range-picker/lib/date-range-picker/date-range-picker.d.ts +145 -0
  118. package/date-range-picker/malva-ui-core-date-range-picker.d.ts +5 -0
  119. package/day-picker/index.d.ts +1 -0
  120. package/day-picker/lib/day-picker/day-picker.d.ts +51 -0
  121. package/day-picker/malva-ui-core-day-picker.d.ts +5 -0
  122. package/dialog/index.d.ts +11 -0
  123. package/dialog/lib/confirm-dialog-options.d.ts +41 -0
  124. package/dialog/lib/confirm-dialog.d.ts +52 -0
  125. package/dialog/lib/dialog/dialog.d.ts +22 -0
  126. package/dialog/lib/dialog-body.d.ts +9 -0
  127. package/dialog/lib/dialog-close.d.ts +27 -0
  128. package/dialog/lib/dialog-config.d.ts +112 -0
  129. package/dialog/lib/dialog-container.d.ts +40 -0
  130. package/dialog/lib/dialog-footer.d.ts +13 -0
  131. package/dialog/lib/dialog-header.d.ts +74 -0
  132. package/dialog/lib/dialog-ref.d.ts +95 -0
  133. package/dialog/lib/dialog-template.d.ts +65 -0
  134. package/dialog/lib/dialog-text-content.d.ts +24 -0
  135. package/dialog/lib/dialog.service.d.ts +63 -0
  136. package/dialog/lib/generate-routable-dialog-route.d.ts +49 -0
  137. package/dialog/lib/inject-dialog-ref.d.ts +8 -0
  138. package/dialog/lib/routable-dialog.d.ts +30 -0
  139. package/dialog/malva-ui-core-dialog.d.ts +5 -0
  140. package/divider/index.d.ts +1 -0
  141. package/divider/lib/divider/divider.d.ts +64 -0
  142. package/divider/malva-ui-core-divider.d.ts +5 -0
  143. package/docs/ai/accordion.md +102 -0
  144. package/docs/ai/action-bar.md +198 -0
  145. package/docs/ai/alert.md +190 -0
  146. package/docs/ai/autocomplete.md +111 -0
  147. package/docs/ai/avatar-group.md +184 -0
  148. package/docs/ai/avatar.md +150 -0
  149. package/docs/ai/badge.md +163 -0
  150. package/docs/ai/bottom-nav.md +267 -0
  151. package/docs/ai/breadcrumb.md +174 -0
  152. package/docs/ai/button.md +306 -0
  153. package/docs/ai/calendar.md +237 -0
  154. package/docs/ai/card.md +196 -0
  155. package/docs/ai/chat.md +145 -0
  156. package/docs/ai/checkbox.md +193 -0
  157. package/docs/ai/chip.md +139 -0
  158. package/docs/ai/color-picker.md +270 -0
  159. package/docs/ai/combobox.md +325 -0
  160. package/docs/ai/copy-to-clipboard.md +159 -0
  161. package/docs/ai/core.md +216 -0
  162. package/docs/ai/data-table.md +917 -0
  163. package/docs/ai/date-range-picker.md +101 -0
  164. package/docs/ai/day-picker.md +135 -0
  165. package/docs/ai/dialog.md +852 -0
  166. package/docs/ai/divider.md +159 -0
  167. package/docs/ai/drawer.md +607 -0
  168. package/docs/ai/dropdown.md +343 -0
  169. package/docs/ai/empty-state.md +167 -0
  170. package/docs/ai/expand.md +234 -0
  171. package/docs/ai/file-upload.md +402 -0
  172. package/docs/ai/filter.md +43 -0
  173. package/docs/ai/form-utils.md +319 -0
  174. package/docs/ai/form.md +129 -0
  175. package/docs/ai/input.md +175 -0
  176. package/docs/ai/kbd.md +70 -0
  177. package/docs/ai/layout.md +192 -0
  178. package/docs/ai/link.md +179 -0
  179. package/docs/ai/list.md +249 -0
  180. package/docs/ai/loader.md +122 -0
  181. package/docs/ai/menu.md +335 -0
  182. package/docs/ai/notification.md +281 -0
  183. package/docs/ai/number-input.md +123 -0
  184. package/docs/ai/page.md +422 -0
  185. package/docs/ai/pagination.md +237 -0
  186. package/docs/ai/pin-input.md +173 -0
  187. package/docs/ai/popup.md +347 -0
  188. package/docs/ai/progress.md +84 -0
  189. package/docs/ai/radio.md +201 -0
  190. package/docs/ai/rating.md +76 -0
  191. package/docs/ai/scrollbar.md +170 -0
  192. package/docs/ai/search-field.md +85 -0
  193. package/docs/ai/segmented.md +331 -0
  194. package/docs/ai/select.md +512 -0
  195. package/docs/ai/sidebar.md +992 -0
  196. package/docs/ai/skeleton.md +187 -0
  197. package/docs/ai/slider.md +180 -0
  198. package/docs/ai/split-pane.md +235 -0
  199. package/docs/ai/status-indicator.md +95 -0
  200. package/docs/ai/stepper.md +385 -0
  201. package/docs/ai/switch.md +216 -0
  202. package/docs/ai/tabs.md +564 -0
  203. package/docs/ai/textarea.md +249 -0
  204. package/docs/ai/tile.md +150 -0
  205. package/docs/ai/time-picker.md +214 -0
  206. package/docs/ai/timeline.md +320 -0
  207. package/docs/ai/title.md +105 -0
  208. package/docs/ai/toast.md +484 -0
  209. package/docs/ai/tokenizer.md +236 -0
  210. package/docs/ai/toolbar.md +155 -0
  211. package/docs/ai/tooltip.md +154 -0
  212. package/docs/ai/tree.md +177 -0
  213. package/drawer/index.d.ts +11 -0
  214. package/drawer/lib/drawer/drawer.d.ts +106 -0
  215. package/drawer/lib/drawer-body.d.ts +8 -0
  216. package/drawer/lib/drawer-content.d.ts +6 -0
  217. package/drawer/lib/drawer-footer.d.ts +5 -0
  218. package/drawer/lib/drawer-header.d.ts +5 -0
  219. package/drawer/lib/drawer-ref.d.ts +29 -0
  220. package/drawer/lib/drawer-resize.d.ts +65 -0
  221. package/drawer/lib/drawer-section/drawer-section.d.ts +15 -0
  222. package/drawer/lib/drawer-sections/drawer-sections.d.ts +22 -0
  223. package/drawer/lib/drawer-sections.service.d.ts +42 -0
  224. package/drawer/lib/drawer.service.d.ts +66 -0
  225. package/drawer/lib/generate-routable-drawer-route.d.ts +42 -0
  226. package/drawer/lib/routable-drawer.d.ts +30 -0
  227. package/drawer/malva-ui-core-drawer.d.ts +5 -0
  228. package/dropdown/index.d.ts +9 -0
  229. package/dropdown/lib/active-descendant.d.ts +64 -0
  230. package/dropdown/lib/dropdown-panel/dropdown-panel.d.ts +178 -0
  231. package/dropdown/lib/highlight-match.pipe.d.ts +27 -0
  232. package/dropdown/lib/option-matcher.d.ts +87 -0
  233. package/dropdown/lib/options-adapter.d.ts +142 -0
  234. package/dropdown/lib/options-result.d.ts +6 -0
  235. package/dropdown/lib/reconciliation.d.ts +19 -0
  236. package/dropdown/lib/select-data-source.d.ts +18 -0
  237. package/dropdown/lib/select-option.d.ts +37 -0
  238. package/dropdown/malva-ui-core-dropdown.d.ts +5 -0
  239. package/empty-state/index.d.ts +1 -0
  240. package/empty-state/lib/empty-state/empty-state.d.ts +34 -0
  241. package/empty-state/malva-ui-core-empty-state.d.ts +5 -0
  242. package/esm2022/accordion/index.js +4 -0
  243. package/esm2022/accordion/index.js.map +1 -0
  244. package/esm2022/accordion/lib/accordion/accordion.js +65 -0
  245. package/esm2022/accordion/lib/accordion/accordion.js.map +1 -0
  246. package/esm2022/accordion/lib/accordion-item/accordion-header.js +30 -0
  247. package/esm2022/accordion/lib/accordion-item/accordion-header.js.map +1 -0
  248. package/esm2022/accordion/lib/accordion-item/accordion-item.js +70 -0
  249. package/esm2022/accordion/lib/accordion-item/accordion-item.js.map +1 -0
  250. package/esm2022/accordion/malva-ui-core-accordion.js +5 -0
  251. package/esm2022/accordion/malva-ui-core-accordion.js.map +1 -0
  252. package/esm2022/action-bar/index.js +5 -0
  253. package/esm2022/action-bar/index.js.map +1 -0
  254. package/esm2022/action-bar/lib/action-bar/action-bar.js +64 -0
  255. package/esm2022/action-bar/lib/action-bar/action-bar.js.map +1 -0
  256. package/esm2022/action-bar/lib/action-bar/components/action-bar-actions.js +20 -0
  257. package/esm2022/action-bar/lib/action-bar/components/action-bar-actions.js.map +1 -0
  258. package/esm2022/action-bar/lib/action-bar/components/action-bar-logo.js +13 -0
  259. package/esm2022/action-bar/lib/action-bar/components/action-bar-logo.js.map +1 -0
  260. package/esm2022/action-bar/lib/action-bar/components/action-bar-spacer.js +13 -0
  261. package/esm2022/action-bar/lib/action-bar/components/action-bar-spacer.js.map +1 -0
  262. package/esm2022/action-bar/malva-ui-core-action-bar.js +5 -0
  263. package/esm2022/action-bar/malva-ui-core-action-bar.js.map +1 -0
  264. package/esm2022/alert/index.js +3 -0
  265. package/esm2022/alert/index.js.map +1 -0
  266. package/esm2022/alert/lib/alert/alert.directives.js +53 -0
  267. package/esm2022/alert/lib/alert/alert.directives.js.map +1 -0
  268. package/esm2022/alert/lib/alert/alert.js +118 -0
  269. package/esm2022/alert/lib/alert/alert.js.map +1 -0
  270. package/esm2022/alert/malva-ui-core-alert.js +5 -0
  271. package/esm2022/alert/malva-ui-core-alert.js.map +1 -0
  272. package/esm2022/autocomplete/index.js +2 -0
  273. package/esm2022/autocomplete/index.js.map +1 -0
  274. package/esm2022/autocomplete/lib/autocomplete/autocomplete.js +765 -0
  275. package/esm2022/autocomplete/lib/autocomplete/autocomplete.js.map +1 -0
  276. package/esm2022/autocomplete/malva-ui-core-autocomplete.js +5 -0
  277. package/esm2022/autocomplete/malva-ui-core-autocomplete.js.map +1 -0
  278. package/esm2022/avatar/index.js +3 -0
  279. package/esm2022/avatar/index.js.map +1 -0
  280. package/esm2022/avatar/lib/avatar/avatar.js +192 -0
  281. package/esm2022/avatar/lib/avatar/avatar.js.map +1 -0
  282. package/esm2022/avatar/lib/color-from-text.pipe.js +39 -0
  283. package/esm2022/avatar/lib/color-from-text.pipe.js.map +1 -0
  284. package/esm2022/avatar/malva-ui-core-avatar.js +5 -0
  285. package/esm2022/avatar/malva-ui-core-avatar.js.map +1 -0
  286. package/esm2022/avatar-group/index.js +2 -0
  287. package/esm2022/avatar-group/index.js.map +1 -0
  288. package/esm2022/avatar-group/lib/avatar-group/avatar-group.js +217 -0
  289. package/esm2022/avatar-group/lib/avatar-group/avatar-group.js.map +1 -0
  290. package/esm2022/avatar-group/malva-ui-core-avatar-group.js +5 -0
  291. package/esm2022/avatar-group/malva-ui-core-avatar-group.js.map +1 -0
  292. package/esm2022/badge/index.js +3 -0
  293. package/esm2022/badge/index.js.map +1 -0
  294. package/esm2022/badge/lib/badge/badge.js +71 -0
  295. package/esm2022/badge/lib/badge/badge.js.map +1 -0
  296. package/esm2022/badge/lib/badge-icon.js +47 -0
  297. package/esm2022/badge/lib/badge-icon.js.map +1 -0
  298. package/esm2022/badge/malva-ui-core-badge.js +5 -0
  299. package/esm2022/badge/malva-ui-core-badge.js.map +1 -0
  300. package/esm2022/bottom-nav/index.js +2 -0
  301. package/esm2022/bottom-nav/index.js.map +1 -0
  302. package/esm2022/bottom-nav/lib/bottom-nav/bottom-nav.js +155 -0
  303. package/esm2022/bottom-nav/lib/bottom-nav/bottom-nav.js.map +1 -0
  304. package/esm2022/bottom-nav/malva-ui-core-bottom-nav.js +5 -0
  305. package/esm2022/bottom-nav/malva-ui-core-bottom-nav.js.map +1 -0
  306. package/esm2022/breadcrumb/index.js +6 -0
  307. package/esm2022/breadcrumb/index.js.map +1 -0
  308. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item-host.js +43 -0
  309. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item-host.js.map +1 -0
  310. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item.js +110 -0
  311. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item.js.map +1 -0
  312. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-separator.js +38 -0
  313. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-separator.js.map +1 -0
  314. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.js +284 -0
  315. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.js.map +1 -0
  316. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.types.js +1 -0
  317. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.types.js.map +1 -0
  318. package/esm2022/breadcrumb/malva-ui-core-breadcrumb.js +5 -0
  319. package/esm2022/breadcrumb/malva-ui-core-breadcrumb.js.map +1 -0
  320. package/esm2022/button/index.js +8 -0
  321. package/esm2022/button/index.js.map +1 -0
  322. package/esm2022/button/lib/button/button.js +137 -0
  323. package/esm2022/button/lib/button/button.js.map +1 -0
  324. package/esm2022/button/lib/button-close/button-close.js +52 -0
  325. package/esm2022/button/lib/button-close/button-close.js.map +1 -0
  326. package/esm2022/button/lib/button-group/button-group.js +44 -0
  327. package/esm2022/button/lib/button-group/button-group.js.map +1 -0
  328. package/esm2022/button/lib/button-split/button-split.js +44 -0
  329. package/esm2022/button/lib/button-split/button-split.js.map +1 -0
  330. package/esm2022/button/lib/button-toggle/button-toggle.js +94 -0
  331. package/esm2022/button/lib/button-toggle/button-toggle.js.map +1 -0
  332. package/esm2022/button/lib/button-variant.token.js +4 -0
  333. package/esm2022/button/lib/button-variant.token.js.map +1 -0
  334. package/esm2022/button/lib/button.directives.js +37 -0
  335. package/esm2022/button/lib/button.directives.js.map +1 -0
  336. package/esm2022/button/lib/button.types.js +1 -0
  337. package/esm2022/button/lib/button.types.js.map +1 -0
  338. package/esm2022/button/malva-ui-core-button.js +5 -0
  339. package/esm2022/button/malva-ui-core-button.js.map +1 -0
  340. package/esm2022/calendar/index.js +4 -0
  341. package/esm2022/calendar/index.js.map +1 -0
  342. package/esm2022/calendar/lib/calendar/calendar.js +672 -0
  343. package/esm2022/calendar/lib/calendar/calendar.js.map +1 -0
  344. package/esm2022/calendar/lib/date-provider/date-adapter.js +111 -0
  345. package/esm2022/calendar/lib/date-provider/date-adapter.js.map +1 -0
  346. package/esm2022/calendar/lib/date-provider/native-date-adapter.js +151 -0
  347. package/esm2022/calendar/lib/date-provider/native-date-adapter.js.map +1 -0
  348. package/esm2022/calendar/malva-ui-core-calendar.js +5 -0
  349. package/esm2022/calendar/malva-ui-core-calendar.js.map +1 -0
  350. package/esm2022/card/index.js +6 -0
  351. package/esm2022/card/index.js.map +1 -0
  352. package/esm2022/card/lib/card/card.js +54 -0
  353. package/esm2022/card/lib/card/card.js.map +1 -0
  354. package/esm2022/card/lib/card-actions-def.js +27 -0
  355. package/esm2022/card/lib/card-actions-def.js.map +1 -0
  356. package/esm2022/card/lib/card-footer-def.js +32 -0
  357. package/esm2022/card/lib/card-footer-def.js.map +1 -0
  358. package/esm2022/card/lib/card-header-def.js +27 -0
  359. package/esm2022/card/lib/card-header-def.js.map +1 -0
  360. package/esm2022/card/lib/card-subheader-def.js +33 -0
  361. package/esm2022/card/lib/card-subheader-def.js.map +1 -0
  362. package/esm2022/card/malva-ui-core-card.js +5 -0
  363. package/esm2022/card/malva-ui-core-card.js.map +1 -0
  364. package/esm2022/chat/index.js +10 -0
  365. package/esm2022/chat/index.js.map +1 -0
  366. package/esm2022/chat/lib/chat/chat.js +326 -0
  367. package/esm2022/chat/lib/chat/chat.js.map +1 -0
  368. package/esm2022/chat/lib/chat-audio/chat-audio.js +110 -0
  369. package/esm2022/chat/lib/chat-audio/chat-audio.js.map +1 -0
  370. package/esm2022/chat/lib/chat-audio/chat-audio.service.js +28 -0
  371. package/esm2022/chat/lib/chat-audio/chat-audio.service.js.map +1 -0
  372. package/esm2022/chat/lib/chat-date/chat-date.js +46 -0
  373. package/esm2022/chat/lib/chat-date/chat-date.js.map +1 -0
  374. package/esm2022/chat/lib/chat-format.js +11 -0
  375. package/esm2022/chat/lib/chat-format.js.map +1 -0
  376. package/esm2022/chat/lib/chat-media-grid/chat-media-grid.js +53 -0
  377. package/esm2022/chat/lib/chat-media-grid/chat-media-grid.js.map +1 -0
  378. package/esm2022/chat/lib/chat-message/chat-message.js +86 -0
  379. package/esm2022/chat/lib/chat-message/chat-message.js.map +1 -0
  380. package/esm2022/chat/lib/chat-render-list.js +55 -0
  381. package/esm2022/chat/lib/chat-render-list.js.map +1 -0
  382. package/esm2022/chat/lib/chat-tokens.js +9 -0
  383. package/esm2022/chat/lib/chat-tokens.js.map +1 -0
  384. package/esm2022/chat/lib/chat-typing/chat-typing.js +50 -0
  385. package/esm2022/chat/lib/chat-typing/chat-typing.js.map +1 -0
  386. package/esm2022/chat/lib/chat.types.js +1 -0
  387. package/esm2022/chat/lib/chat.types.js.map +1 -0
  388. package/esm2022/chat/lib/defs/chat-author-def.js +27 -0
  389. package/esm2022/chat/lib/defs/chat-author-def.js.map +1 -0
  390. package/esm2022/chat/lib/defs/chat-date-def.js +24 -0
  391. package/esm2022/chat/lib/defs/chat-date-def.js.map +1 -0
  392. package/esm2022/chat/lib/defs/chat-message-def.js +30 -0
  393. package/esm2022/chat/lib/defs/chat-message-def.js.map +1 -0
  394. package/esm2022/chat/malva-ui-core-chat.js +5 -0
  395. package/esm2022/chat/malva-ui-core-chat.js.map +1 -0
  396. package/esm2022/checkbox/index.js +4 -0
  397. package/esm2022/checkbox/index.js.map +1 -0
  398. package/esm2022/checkbox/lib/checkbox/checkbox.js +201 -0
  399. package/esm2022/checkbox/lib/checkbox/checkbox.js.map +1 -0
  400. package/esm2022/checkbox/lib/checkbox-group/checkbox-group.js +68 -0
  401. package/esm2022/checkbox/lib/checkbox-group/checkbox-group.js.map +1 -0
  402. package/esm2022/checkbox/lib/checkbox-group-token.js +3 -0
  403. package/esm2022/checkbox/lib/checkbox-group-token.js.map +1 -0
  404. package/esm2022/checkbox/malva-ui-core-checkbox.js +5 -0
  405. package/esm2022/checkbox/malva-ui-core-checkbox.js.map +1 -0
  406. package/esm2022/chip/index.js +3 -0
  407. package/esm2022/chip/index.js.map +1 -0
  408. package/esm2022/chip/lib/chip/chip.directives.js +32 -0
  409. package/esm2022/chip/lib/chip/chip.directives.js.map +1 -0
  410. package/esm2022/chip/lib/chip/chip.js +140 -0
  411. package/esm2022/chip/lib/chip/chip.js.map +1 -0
  412. package/esm2022/chip/malva-ui-core-chip.js +5 -0
  413. package/esm2022/chip/malva-ui-core-chip.js.map +1 -0
  414. package/esm2022/color-picker/index.js +4 -0
  415. package/esm2022/color-picker/index.js.map +1 -0
  416. package/esm2022/color-picker/lib/color-picker/color-picker.js +530 -0
  417. package/esm2022/color-picker/lib/color-picker/color-picker.js.map +1 -0
  418. package/esm2022/color-picker/lib/color-picker-popup/color-picker-popup.js +419 -0
  419. package/esm2022/color-picker/lib/color-picker-popup/color-picker-popup.js.map +1 -0
  420. package/esm2022/color-picker/lib/color-utils/color-utils.js +256 -0
  421. package/esm2022/color-picker/lib/color-utils/color-utils.js.map +1 -0
  422. package/esm2022/color-picker/malva-ui-core-color-picker.js +5 -0
  423. package/esm2022/color-picker/malva-ui-core-color-picker.js.map +1 -0
  424. package/esm2022/combobox/index.js +3 -0
  425. package/esm2022/combobox/index.js.map +1 -0
  426. package/esm2022/combobox/lib/combobox/combobox.js +911 -0
  427. package/esm2022/combobox/lib/combobox/combobox.js.map +1 -0
  428. package/esm2022/combobox/lib/combobox-template.directives.js +24 -0
  429. package/esm2022/combobox/lib/combobox-template.directives.js.map +1 -0
  430. package/esm2022/combobox/malva-ui-core-combobox.js +5 -0
  431. package/esm2022/combobox/malva-ui-core-combobox.js.map +1 -0
  432. package/esm2022/copy-to-clipboard/index.js +2 -0
  433. package/esm2022/copy-to-clipboard/index.js.map +1 -0
  434. package/esm2022/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.js +201 -0
  435. package/esm2022/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.js.map +1 -0
  436. package/esm2022/copy-to-clipboard/malva-ui-core-copy-to-clipboard.js +5 -0
  437. package/esm2022/copy-to-clipboard/malva-ui-core-copy-to-clipboard.js.map +1 -0
  438. package/esm2022/data-table/index.js +9 -0
  439. package/esm2022/data-table/index.js.map +1 -0
  440. package/esm2022/data-table/lib/data-source.js +6 -0
  441. package/esm2022/data-table/lib/data-source.js.map +1 -0
  442. package/esm2022/data-table/lib/data-table/data-table-layout.js +84 -0
  443. package/esm2022/data-table/lib/data-table/data-table-layout.js.map +1 -0
  444. package/esm2022/data-table/lib/data-table/data-table.js +1846 -0
  445. package/esm2022/data-table/lib/data-table/data-table.js.map +1 -0
  446. package/esm2022/data-table/lib/data-table/services/data-table-column-visibility.service.js +37 -0
  447. package/esm2022/data-table/lib/data-table/services/data-table-column-visibility.service.js.map +1 -0
  448. package/esm2022/data-table/lib/data-table/services/data-table-editing.service.js +63 -0
  449. package/esm2022/data-table/lib/data-table/services/data-table-editing.service.js.map +1 -0
  450. package/esm2022/data-table/lib/data-table/services/data-table-pinning.service.js +68 -0
  451. package/esm2022/data-table/lib/data-table/services/data-table-pinning.service.js.map +1 -0
  452. package/esm2022/data-table/lib/data-table-cell.js +46 -0
  453. package/esm2022/data-table/lib/data-table-cell.js.map +1 -0
  454. package/esm2022/data-table/lib/data-table-edit-cell.js +46 -0
  455. package/esm2022/data-table/lib/data-table-edit-cell.js.map +1 -0
  456. package/esm2022/data-table/lib/data-table-error.js +37 -0
  457. package/esm2022/data-table/lib/data-table-error.js.map +1 -0
  458. package/esm2022/data-table/lib/data-table-footer.js +33 -0
  459. package/esm2022/data-table/lib/data-table-footer.js.map +1 -0
  460. package/esm2022/data-table/lib/data-table-no-data.js +26 -0
  461. package/esm2022/data-table/lib/data-table-no-data.js.map +1 -0
  462. package/esm2022/data-table/lib/filter-dropdown/filter-dropdown.js +224 -0
  463. package/esm2022/data-table/lib/filter-dropdown/filter-dropdown.js.map +1 -0
  464. package/esm2022/data-table/lib/types.js +1 -0
  465. package/esm2022/data-table/lib/types.js.map +1 -0
  466. package/esm2022/data-table/malva-ui-core-data-table.js +5 -0
  467. package/esm2022/data-table/malva-ui-core-data-table.js.map +1 -0
  468. package/esm2022/date-range-picker/index.js +2 -0
  469. package/esm2022/date-range-picker/index.js.map +1 -0
  470. package/esm2022/date-range-picker/lib/date-range-picker/date-range-picker.js +269 -0
  471. package/esm2022/date-range-picker/lib/date-range-picker/date-range-picker.js.map +1 -0
  472. package/esm2022/date-range-picker/malva-ui-core-date-range-picker.js +5 -0
  473. package/esm2022/date-range-picker/malva-ui-core-date-range-picker.js.map +1 -0
  474. package/esm2022/day-picker/index.js +2 -0
  475. package/esm2022/day-picker/index.js.map +1 -0
  476. package/esm2022/day-picker/lib/day-picker/day-picker.js +124 -0
  477. package/esm2022/day-picker/lib/day-picker/day-picker.js.map +1 -0
  478. package/esm2022/day-picker/malva-ui-core-day-picker.js +5 -0
  479. package/esm2022/day-picker/malva-ui-core-day-picker.js.map +1 -0
  480. package/esm2022/dialog/index.js +12 -0
  481. package/esm2022/dialog/index.js.map +1 -0
  482. package/esm2022/dialog/lib/confirm-dialog-options.js +1 -0
  483. package/esm2022/dialog/lib/confirm-dialog-options.js.map +1 -0
  484. package/esm2022/dialog/lib/confirm-dialog.js +155 -0
  485. package/esm2022/dialog/lib/confirm-dialog.js.map +1 -0
  486. package/esm2022/dialog/lib/dialog/dialog.js +40 -0
  487. package/esm2022/dialog/lib/dialog/dialog.js.map +1 -0
  488. package/esm2022/dialog/lib/dialog-body.js +33 -0
  489. package/esm2022/dialog/lib/dialog-body.js.map +1 -0
  490. package/esm2022/dialog/lib/dialog-close.js +45 -0
  491. package/esm2022/dialog/lib/dialog-close.js.map +1 -0
  492. package/esm2022/dialog/lib/dialog-config.js +23 -0
  493. package/esm2022/dialog/lib/dialog-config.js.map +1 -0
  494. package/esm2022/dialog/lib/dialog-container.js +69 -0
  495. package/esm2022/dialog/lib/dialog-container.js.map +1 -0
  496. package/esm2022/dialog/lib/dialog-footer.js +29 -0
  497. package/esm2022/dialog/lib/dialog-footer.js.map +1 -0
  498. package/esm2022/dialog/lib/dialog-header.js +181 -0
  499. package/esm2022/dialog/lib/dialog-header.js.map +1 -0
  500. package/esm2022/dialog/lib/dialog-ref.js +167 -0
  501. package/esm2022/dialog/lib/dialog-ref.js.map +1 -0
  502. package/esm2022/dialog/lib/dialog-template.js +136 -0
  503. package/esm2022/dialog/lib/dialog-template.js.map +1 -0
  504. package/esm2022/dialog/lib/dialog-text-content.js +59 -0
  505. package/esm2022/dialog/lib/dialog-text-content.js.map +1 -0
  506. package/esm2022/dialog/lib/dialog.service.js +205 -0
  507. package/esm2022/dialog/lib/dialog.service.js.map +1 -0
  508. package/esm2022/dialog/lib/generate-routable-dialog-route.js +59 -0
  509. package/esm2022/dialog/lib/generate-routable-dialog-route.js.map +1 -0
  510. package/esm2022/dialog/lib/inject-dialog-ref.js +16 -0
  511. package/esm2022/dialog/lib/inject-dialog-ref.js.map +1 -0
  512. package/esm2022/dialog/lib/routable-dialog.js +91 -0
  513. package/esm2022/dialog/lib/routable-dialog.js.map +1 -0
  514. package/esm2022/dialog/malva-ui-core-dialog.js +5 -0
  515. package/esm2022/dialog/malva-ui-core-dialog.js.map +1 -0
  516. package/esm2022/divider/index.js +2 -0
  517. package/esm2022/divider/index.js.map +1 -0
  518. package/esm2022/divider/lib/divider/divider.js +73 -0
  519. package/esm2022/divider/lib/divider/divider.js.map +1 -0
  520. package/esm2022/divider/malva-ui-core-divider.js +5 -0
  521. package/esm2022/divider/malva-ui-core-divider.js.map +1 -0
  522. package/esm2022/drawer/index.js +12 -0
  523. package/esm2022/drawer/index.js.map +1 -0
  524. package/esm2022/drawer/lib/drawer/drawer.js +180 -0
  525. package/esm2022/drawer/lib/drawer/drawer.js.map +1 -0
  526. package/esm2022/drawer/lib/drawer-body.js +32 -0
  527. package/esm2022/drawer/lib/drawer-body.js.map +1 -0
  528. package/esm2022/drawer/lib/drawer-content.js +14 -0
  529. package/esm2022/drawer/lib/drawer-content.js.map +1 -0
  530. package/esm2022/drawer/lib/drawer-footer.js +14 -0
  531. package/esm2022/drawer/lib/drawer-footer.js.map +1 -0
  532. package/esm2022/drawer/lib/drawer-header.js +14 -0
  533. package/esm2022/drawer/lib/drawer-header.js.map +1 -0
  534. package/esm2022/drawer/lib/drawer-ref.js +31 -0
  535. package/esm2022/drawer/lib/drawer-ref.js.map +1 -0
  536. package/esm2022/drawer/lib/drawer-resize.js +243 -0
  537. package/esm2022/drawer/lib/drawer-resize.js.map +1 -0
  538. package/esm2022/drawer/lib/drawer-section/drawer-section.js +26 -0
  539. package/esm2022/drawer/lib/drawer-section/drawer-section.js.map +1 -0
  540. package/esm2022/drawer/lib/drawer-sections/drawer-sections.js +58 -0
  541. package/esm2022/drawer/lib/drawer-sections/drawer-sections.js.map +1 -0
  542. package/esm2022/drawer/lib/drawer-sections.service.js +83 -0
  543. package/esm2022/drawer/lib/drawer-sections.service.js.map +1 -0
  544. package/esm2022/drawer/lib/drawer.service.js +86 -0
  545. package/esm2022/drawer/lib/drawer.service.js.map +1 -0
  546. package/esm2022/drawer/lib/generate-routable-drawer-route.js +52 -0
  547. package/esm2022/drawer/lib/generate-routable-drawer-route.js.map +1 -0
  548. package/esm2022/drawer/lib/routable-drawer.js +91 -0
  549. package/esm2022/drawer/lib/routable-drawer.js.map +1 -0
  550. package/esm2022/drawer/malva-ui-core-drawer.js +5 -0
  551. package/esm2022/drawer/malva-ui-core-drawer.js.map +1 -0
  552. package/esm2022/dropdown/index.js +10 -0
  553. package/esm2022/dropdown/index.js.map +1 -0
  554. package/esm2022/dropdown/lib/active-descendant.js +92 -0
  555. package/esm2022/dropdown/lib/active-descendant.js.map +1 -0
  556. package/esm2022/dropdown/lib/dropdown-panel/dropdown-panel.js +295 -0
  557. package/esm2022/dropdown/lib/dropdown-panel/dropdown-panel.js.map +1 -0
  558. package/esm2022/dropdown/lib/highlight-match.pipe.js +36 -0
  559. package/esm2022/dropdown/lib/highlight-match.pipe.js.map +1 -0
  560. package/esm2022/dropdown/lib/option-matcher.js +124 -0
  561. package/esm2022/dropdown/lib/option-matcher.js.map +1 -0
  562. package/esm2022/dropdown/lib/options-adapter.js +356 -0
  563. package/esm2022/dropdown/lib/options-adapter.js.map +1 -0
  564. package/esm2022/dropdown/lib/options-result.js +11 -0
  565. package/esm2022/dropdown/lib/options-result.js.map +1 -0
  566. package/esm2022/dropdown/lib/reconciliation.js +32 -0
  567. package/esm2022/dropdown/lib/reconciliation.js.map +1 -0
  568. package/esm2022/dropdown/lib/select-data-source.js +21 -0
  569. package/esm2022/dropdown/lib/select-data-source.js.map +1 -0
  570. package/esm2022/dropdown/lib/select-option.js +25 -0
  571. package/esm2022/dropdown/lib/select-option.js.map +1 -0
  572. package/esm2022/dropdown/malva-ui-core-dropdown.js +5 -0
  573. package/esm2022/dropdown/malva-ui-core-dropdown.js.map +1 -0
  574. package/esm2022/empty-state/index.js +2 -0
  575. package/esm2022/empty-state/index.js.map +1 -0
  576. package/esm2022/empty-state/lib/empty-state/empty-state.js +43 -0
  577. package/esm2022/empty-state/lib/empty-state/empty-state.js.map +1 -0
  578. package/esm2022/empty-state/malva-ui-core-empty-state.js +5 -0
  579. package/esm2022/empty-state/malva-ui-core-empty-state.js.map +1 -0
  580. package/esm2022/expand/index.js +3 -0
  581. package/esm2022/expand/index.js.map +1 -0
  582. package/esm2022/expand/lib/expand/expand-content.js +33 -0
  583. package/esm2022/expand/lib/expand/expand-content.js.map +1 -0
  584. package/esm2022/expand/lib/expand/expand.js +93 -0
  585. package/esm2022/expand/lib/expand/expand.js.map +1 -0
  586. package/esm2022/expand/malva-ui-core-expand.js +5 -0
  587. package/esm2022/expand/malva-ui-core-expand.js.map +1 -0
  588. package/esm2022/file-upload/index.js +5 -0
  589. package/esm2022/file-upload/index.js.map +1 -0
  590. package/esm2022/file-upload/lib/file-upload/file-upload.js +324 -0
  591. package/esm2022/file-upload/lib/file-upload/file-upload.js.map +1 -0
  592. package/esm2022/file-upload/lib/file-upload/file-upload.types.js +1 -0
  593. package/esm2022/file-upload/lib/file-upload/file-upload.types.js.map +1 -0
  594. package/esm2022/file-upload/lib/file-upload-action.js +65 -0
  595. package/esm2022/file-upload/lib/file-upload-action.js.map +1 -0
  596. package/esm2022/file-upload/lib/file-upload-item/file-upload-item.js +55 -0
  597. package/esm2022/file-upload/lib/file-upload-item/file-upload-item.js.map +1 -0
  598. package/esm2022/file-upload/malva-ui-core-file-upload.js +5 -0
  599. package/esm2022/file-upload/malva-ui-core-file-upload.js.map +1 -0
  600. package/esm2022/filter/index.js +4 -0
  601. package/esm2022/filter/index.js.map +1 -0
  602. package/esm2022/filter/lib/filter/filter.js +552 -0
  603. package/esm2022/filter/lib/filter/filter.js.map +1 -0
  604. package/esm2022/filter/lib/filter.types.js +1 -0
  605. package/esm2022/filter/lib/filter.types.js.map +1 -0
  606. package/esm2022/filter/lib/smart-filter-bar/smart-filter-bar.js +518 -0
  607. package/esm2022/filter/lib/smart-filter-bar/smart-filter-bar.js.map +1 -0
  608. package/esm2022/filter/malva-ui-core-filter.js +5 -0
  609. package/esm2022/filter/malva-ui-core-filter.js.map +1 -0
  610. package/esm2022/form/index.js +7 -0
  611. package/esm2022/form/index.js.map +1 -0
  612. package/esm2022/form/lib/fieldset/fieldset.js +101 -0
  613. package/esm2022/form/lib/fieldset/fieldset.js.map +1 -0
  614. package/esm2022/form/lib/fieldset-span.js +49 -0
  615. package/esm2022/form/lib/fieldset-span.js.map +1 -0
  616. package/esm2022/form/lib/form/form.js +60 -0
  617. package/esm2022/form/lib/form/form.js.map +1 -0
  618. package/esm2022/form/lib/form-actions.js +34 -0
  619. package/esm2022/form/lib/form-actions.js.map +1 -0
  620. package/esm2022/form/lib/form-gap.js +15 -0
  621. package/esm2022/form/lib/form-gap.js.map +1 -0
  622. package/esm2022/form/lib/form-header.js +27 -0
  623. package/esm2022/form/lib/form-header.js.map +1 -0
  624. package/esm2022/form/lib/form.types.js +1 -0
  625. package/esm2022/form/lib/form.types.js.map +1 -0
  626. package/esm2022/form/malva-ui-core-form.js +5 -0
  627. package/esm2022/form/malva-ui-core-form.js.map +1 -0
  628. package/esm2022/form-utils/index.js +16 -0
  629. package/esm2022/form-utils/index.js.map +1 -0
  630. package/esm2022/form-utils/lib/aria-value-bridge.js +57 -0
  631. package/esm2022/form-utils/lib/aria-value-bridge.js.map +1 -0
  632. package/esm2022/form-utils/lib/description/description.js +24 -0
  633. package/esm2022/form-utils/lib/description/description.js.map +1 -0
  634. package/esm2022/form-utils/lib/focusable-group-base.js +87 -0
  635. package/esm2022/form-utils/lib/focusable-group-base.js.map +1 -0
  636. package/esm2022/form-utils/lib/form-control-base/signal-form-control-base.js +192 -0
  637. package/esm2022/form-utils/lib/form-control-base/signal-form-control-base.js.map +1 -0
  638. package/esm2022/form-utils/lib/form-control-sides.js +34 -0
  639. package/esm2022/form-utils/lib/form-control-sides.js.map +1 -0
  640. package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper-control.js +14 -0
  641. package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper-control.js.map +1 -0
  642. package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper.js +47 -0
  643. package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper.js.map +1 -0
  644. package/esm2022/form-utils/lib/form-field/form-field.js +245 -0
  645. package/esm2022/form-utils/lib/form-field/form-field.js.map +1 -0
  646. package/esm2022/form-utils/lib/hint/hint.js +11 -0
  647. package/esm2022/form-utils/lib/hint/hint.js.map +1 -0
  648. package/esm2022/form-utils/lib/label/label.js +55 -0
  649. package/esm2022/form-utils/lib/label/label.js.map +1 -0
  650. package/esm2022/form-utils/lib/message/message.js +20 -0
  651. package/esm2022/form-utils/lib/message/message.js.map +1 -0
  652. package/esm2022/form-utils/lib/models/error-display-strategy.js +1 -0
  653. package/esm2022/form-utils/lib/models/error-display-strategy.js.map +1 -0
  654. package/esm2022/form-utils/lib/models/form-control-connector.js +3 -0
  655. package/esm2022/form-utils/lib/models/form-control-connector.js.map +1 -0
  656. package/esm2022/form-utils/lib/models/form-state.js +1 -0
  657. package/esm2022/form-utils/lib/models/form-state.js.map +1 -0
  658. package/esm2022/form-utils/lib/selection.service.js +81 -0
  659. package/esm2022/form-utils/lib/selection.service.js.map +1 -0
  660. package/esm2022/form-utils/malva-ui-core-form-utils.js +5 -0
  661. package/esm2022/form-utils/malva-ui-core-form-utils.js.map +1 -0
  662. package/esm2022/form-utils/testing/index.js +2 -0
  663. package/esm2022/form-utils/testing/index.js.map +1 -0
  664. package/esm2022/form-utils/testing/lib/forms-binding-matrix.js +32 -0
  665. package/esm2022/form-utils/testing/lib/forms-binding-matrix.js.map +1 -0
  666. package/esm2022/form-utils/testing/malva-ui-core-form-utils-testing.js +5 -0
  667. package/esm2022/form-utils/testing/malva-ui-core-form-utils-testing.js.map +1 -0
  668. package/esm2022/index.js +70 -0
  669. package/esm2022/index.js.map +1 -0
  670. package/esm2022/input/index.js +4 -0
  671. package/esm2022/input/index.js.map +1 -0
  672. package/esm2022/input/lib/input/input-native.js +49 -0
  673. package/esm2022/input/lib/input/input-native.js.map +1 -0
  674. package/esm2022/input/lib/input/input-value-accessor.js +4 -0
  675. package/esm2022/input/lib/input/input-value-accessor.js.map +1 -0
  676. package/esm2022/input/lib/input/input.js +277 -0
  677. package/esm2022/input/lib/input/input.js.map +1 -0
  678. package/esm2022/input/lib/input/password-strength.js +46 -0
  679. package/esm2022/input/lib/input/password-strength.js.map +1 -0
  680. package/esm2022/input/malva-ui-core-input.js +5 -0
  681. package/esm2022/input/malva-ui-core-input.js.map +1 -0
  682. package/esm2022/kbd/index.js +2 -0
  683. package/esm2022/kbd/index.js.map +1 -0
  684. package/esm2022/kbd/lib/kbd/kbd.js +124 -0
  685. package/esm2022/kbd/lib/kbd/kbd.js.map +1 -0
  686. package/esm2022/kbd/malva-ui-core-kbd.js +5 -0
  687. package/esm2022/kbd/malva-ui-core-kbd.js.map +1 -0
  688. package/esm2022/layout/index.js +5 -0
  689. package/esm2022/layout/index.js.map +1 -0
  690. package/esm2022/layout/lib/layout/directives/MlvLayoutSide.js +14 -0
  691. package/esm2022/layout/lib/layout/directives/MlvLayoutSide.js.map +1 -0
  692. package/esm2022/layout/lib/layout/directives/MlvLayoutTop.js +14 -0
  693. package/esm2022/layout/lib/layout/directives/MlvLayoutTop.js.map +1 -0
  694. package/esm2022/layout/lib/layout/layout.js +43 -0
  695. package/esm2022/layout/lib/layout/layout.js.map +1 -0
  696. package/esm2022/layout/lib/layout/services/theme.service.js +121 -0
  697. package/esm2022/layout/lib/layout/services/theme.service.js.map +1 -0
  698. package/esm2022/layout/malva-ui-core-layout.js +5 -0
  699. package/esm2022/layout/malva-ui-core-layout.js.map +1 -0
  700. package/esm2022/link/index.js +3 -0
  701. package/esm2022/link/index.js.map +1 -0
  702. package/esm2022/link/lib/link/link.directives.js +24 -0
  703. package/esm2022/link/lib/link/link.directives.js.map +1 -0
  704. package/esm2022/link/lib/link/link.js +61 -0
  705. package/esm2022/link/lib/link/link.js.map +1 -0
  706. package/esm2022/link/malva-ui-core-link.js +5 -0
  707. package/esm2022/link/malva-ui-core-link.js.map +1 -0
  708. package/esm2022/list/index.js +14 -0
  709. package/esm2022/list/index.js.map +1 -0
  710. package/esm2022/list/lib/list/list.js +28 -0
  711. package/esm2022/list/lib/list/list.js.map +1 -0
  712. package/esm2022/list/lib/list-item/list-item.js +125 -0
  713. package/esm2022/list/lib/list-item/list-item.js.map +1 -0
  714. package/esm2022/list/lib/list-item-actions.js +23 -0
  715. package/esm2022/list/lib/list-item-actions.js.map +1 -0
  716. package/esm2022/list/lib/list-item-byline.js +13 -0
  717. package/esm2022/list/lib/list-item-byline.js.map +1 -0
  718. package/esm2022/list/lib/list-item-group/list-item-group.js +25 -0
  719. package/esm2022/list/lib/list-item-group/list-item-group.js.map +1 -0
  720. package/esm2022/list/lib/list-item-link/list-item-link.js +20 -0
  721. package/esm2022/list/lib/list-item-link/list-item-link.js.map +1 -0
  722. package/esm2022/list/lib/list-item-media.js +13 -0
  723. package/esm2022/list/lib/list-item-media.js.map +1 -0
  724. package/esm2022/list/lib/list-item-meta.js +13 -0
  725. package/esm2022/list/lib/list-item-meta.js.map +1 -0
  726. package/esm2022/list/lib/list-item-prefix.js +13 -0
  727. package/esm2022/list/lib/list-item-prefix.js.map +1 -0
  728. package/esm2022/list/lib/list-item-suffix.js +13 -0
  729. package/esm2022/list/lib/list-item-suffix.js.map +1 -0
  730. package/esm2022/list/lib/list-item-template.js +14 -0
  731. package/esm2022/list/lib/list-item-template.js.map +1 -0
  732. package/esm2022/list/lib/list-item-title.js +13 -0
  733. package/esm2022/list/lib/list-item-title.js.map +1 -0
  734. package/esm2022/list/lib/list-selectable.js +116 -0
  735. package/esm2022/list/lib/list-selectable.js.map +1 -0
  736. package/esm2022/list/malva-ui-core-list.js +5 -0
  737. package/esm2022/list/malva-ui-core-list.js.map +1 -0
  738. package/esm2022/loader/index.js +2 -0
  739. package/esm2022/loader/index.js.map +1 -0
  740. package/esm2022/loader/lib/loader/loader.js +134 -0
  741. package/esm2022/loader/lib/loader/loader.js.map +1 -0
  742. package/esm2022/loader/malva-ui-core-loader.js +5 -0
  743. package/esm2022/loader/malva-ui-core-loader.js.map +1 -0
  744. package/esm2022/malva-ui-core.js +5 -0
  745. package/esm2022/malva-ui-core.js.map +1 -0
  746. package/esm2022/menu/index.js +10 -0
  747. package/esm2022/menu/index.js.map +1 -0
  748. package/esm2022/menu/lib/menu/menu-group-label.js +35 -0
  749. package/esm2022/menu/lib/menu/menu-group-label.js.map +1 -0
  750. package/esm2022/menu/lib/menu/menu-group.js +44 -0
  751. package/esm2022/menu/lib/menu/menu-group.js.map +1 -0
  752. package/esm2022/menu/lib/menu/menu-item.js +117 -0
  753. package/esm2022/menu/lib/menu/menu-item.js.map +1 -0
  754. package/esm2022/menu/lib/menu/menu-separator.js +41 -0
  755. package/esm2022/menu/lib/menu/menu-separator.js.map +1 -0
  756. package/esm2022/menu/lib/menu/menu-trigger.js +653 -0
  757. package/esm2022/menu/lib/menu/menu-trigger.js.map +1 -0
  758. package/esm2022/menu/lib/menu/menu.js +308 -0
  759. package/esm2022/menu/lib/menu/menu.js.map +1 -0
  760. package/esm2022/menu/lib/menu/menu.types.js +4 -0
  761. package/esm2022/menu/lib/menu/menu.types.js.map +1 -0
  762. package/esm2022/menu/lib/menu/menubar.js +257 -0
  763. package/esm2022/menu/lib/menu/menubar.js.map +1 -0
  764. package/esm2022/menu/lib/menu/menubar.types.js +4 -0
  765. package/esm2022/menu/lib/menu/menubar.types.js.map +1 -0
  766. package/esm2022/menu/lib/menu/submenu-aim.js +30 -0
  767. package/esm2022/menu/lib/menu/submenu-aim.js.map +1 -0
  768. package/esm2022/menu/malva-ui-core-menu.js +5 -0
  769. package/esm2022/menu/malva-ui-core-menu.js.map +1 -0
  770. package/esm2022/notification/index.js +5 -0
  771. package/esm2022/notification/index.js.map +1 -0
  772. package/esm2022/notification/lib/notification-item/notification-item.js +65 -0
  773. package/esm2022/notification/lib/notification-item/notification-item.js.map +1 -0
  774. package/esm2022/notification/lib/notification-ref.js +13 -0
  775. package/esm2022/notification/lib/notification-ref.js.map +1 -0
  776. package/esm2022/notification/lib/notification.service.js +118 -0
  777. package/esm2022/notification/lib/notification.service.js.map +1 -0
  778. package/esm2022/notification/lib/notification.types.js +6 -0
  779. package/esm2022/notification/lib/notification.types.js.map +1 -0
  780. package/esm2022/notification/malva-ui-core-notification.js +5 -0
  781. package/esm2022/notification/malva-ui-core-notification.js.map +1 -0
  782. package/esm2022/number-input/index.js +2 -0
  783. package/esm2022/number-input/index.js.map +1 -0
  784. package/esm2022/number-input/lib/number-input/number-input.js +395 -0
  785. package/esm2022/number-input/lib/number-input/number-input.js.map +1 -0
  786. package/esm2022/number-input/malva-ui-core-number-input.js +5 -0
  787. package/esm2022/number-input/malva-ui-core-number-input.js.map +1 -0
  788. package/esm2022/page/index.js +15 -0
  789. package/esm2022/page/index.js.map +1 -0
  790. package/esm2022/page/lib/page/page-scroll.token.js +9 -0
  791. package/esm2022/page/lib/page/page-scroll.token.js.map +1 -0
  792. package/esm2022/page/lib/page/page-snap-controller.js +170 -0
  793. package/esm2022/page/lib/page/page-snap-controller.js.map +1 -0
  794. package/esm2022/page/lib/page/page-snap.directive.js +65 -0
  795. package/esm2022/page/lib/page/page-snap.directive.js.map +1 -0
  796. package/esm2022/page/lib/page/page.js +173 -0
  797. package/esm2022/page/lib/page/page.js.map +1 -0
  798. package/esm2022/page/lib/page-content/page-aside.js +13 -0
  799. package/esm2022/page/lib/page-content/page-aside.js.map +1 -0
  800. package/esm2022/page/lib/page-content/page-content.js +72 -0
  801. package/esm2022/page/lib/page-content/page-content.js.map +1 -0
  802. package/esm2022/page/lib/page-dock/page-dock.js +128 -0
  803. package/esm2022/page/lib/page-dock/page-dock.js.map +1 -0
  804. package/esm2022/page/lib/page-dock/page-dock.slots.js +39 -0
  805. package/esm2022/page/lib/page-dock/page-dock.slots.js.map +1 -0
  806. package/esm2022/page/lib/page-header/page-header.directives.js +88 -0
  807. package/esm2022/page/lib/page-header/page-header.directives.js.map +1 -0
  808. package/esm2022/page/lib/page-header/page-header.js +124 -0
  809. package/esm2022/page/lib/page-header/page-header.js.map +1 -0
  810. package/esm2022/page/lib/page-shell/page-shell-color.js +193 -0
  811. package/esm2022/page/lib/page-shell/page-shell-color.js.map +1 -0
  812. package/esm2022/page/lib/page-shell/page-shell-css-color.js +207 -0
  813. package/esm2022/page/lib/page-shell/page-shell-css-color.js.map +1 -0
  814. package/esm2022/page/lib/page-shell/page-shell.js +131 -0
  815. package/esm2022/page/lib/page-shell/page-shell.js.map +1 -0
  816. package/esm2022/page/lib/page-shell/page-shell.slots.js +41 -0
  817. package/esm2022/page/lib/page-shell/page-shell.slots.js.map +1 -0
  818. package/esm2022/page/lib/page-summary/page-summary-item.js +26 -0
  819. package/esm2022/page/lib/page-summary/page-summary-item.js.map +1 -0
  820. package/esm2022/page/lib/page-summary/page-summary.js +87 -0
  821. package/esm2022/page/lib/page-summary/page-summary.js.map +1 -0
  822. package/esm2022/page/malva-ui-core-page.js +5 -0
  823. package/esm2022/page/malva-ui-core-page.js.map +1 -0
  824. package/esm2022/pagination/index.js +5 -0
  825. package/esm2022/pagination/index.js.map +1 -0
  826. package/esm2022/pagination/lib/pagination/pagination.directives.js +58 -0
  827. package/esm2022/pagination/lib/pagination/pagination.directives.js.map +1 -0
  828. package/esm2022/pagination/lib/pagination/pagination.js +293 -0
  829. package/esm2022/pagination/lib/pagination/pagination.js.map +1 -0
  830. package/esm2022/pagination/lib/pagination/pagination.model.js +1 -0
  831. package/esm2022/pagination/lib/pagination/pagination.model.js.map +1 -0
  832. package/esm2022/pagination/lib/pagination/pagination.service.js +108 -0
  833. package/esm2022/pagination/lib/pagination/pagination.service.js.map +1 -0
  834. package/esm2022/pagination/malva-ui-core-pagination.js +5 -0
  835. package/esm2022/pagination/malva-ui-core-pagination.js.map +1 -0
  836. package/esm2022/pin-input/index.js +3 -0
  837. package/esm2022/pin-input/index.js.map +1 -0
  838. package/esm2022/pin-input/lib/pin-input/pin-input-separator.js +31 -0
  839. package/esm2022/pin-input/lib/pin-input/pin-input-separator.js.map +1 -0
  840. package/esm2022/pin-input/lib/pin-input/pin-input.js +365 -0
  841. package/esm2022/pin-input/lib/pin-input/pin-input.js.map +1 -0
  842. package/esm2022/pin-input/malva-ui-core-pin-input.js +5 -0
  843. package/esm2022/pin-input/malva-ui-core-pin-input.js.map +1 -0
  844. package/esm2022/popup/index.js +10 -0
  845. package/esm2022/popup/index.js.map +1 -0
  846. package/esm2022/popup/lib/popup/popup.js +500 -0
  847. package/esm2022/popup/lib/popup/popup.js.map +1 -0
  848. package/esm2022/popup/lib/popup-container/popup-container.js +169 -0
  849. package/esm2022/popup/lib/popup-container/popup-container.js.map +1 -0
  850. package/esm2022/popup/lib/popup-container/popup-container.token.js +9 -0
  851. package/esm2022/popup/lib/popup-container/popup-container.token.js.map +1 -0
  852. package/esm2022/popup/lib/popup-content.js +14 -0
  853. package/esm2022/popup/lib/popup-content.js.map +1 -0
  854. package/esm2022/popup/lib/popup-header-content.js +26 -0
  855. package/esm2022/popup/lib/popup-header-content.js.map +1 -0
  856. package/esm2022/popup/lib/popup-pinned-content.js +25 -0
  857. package/esm2022/popup/lib/popup-pinned-content.js.map +1 -0
  858. package/esm2022/popup/lib/popup-positions.js +252 -0
  859. package/esm2022/popup/lib/popup-positions.js.map +1 -0
  860. package/esm2022/popup/lib/popup-trigger/popup-trigger.js +308 -0
  861. package/esm2022/popup/lib/popup-trigger/popup-trigger.js.map +1 -0
  862. package/esm2022/popup/lib/popup.service.js +188 -0
  863. package/esm2022/popup/lib/popup.service.js.map +1 -0
  864. package/esm2022/popup/malva-ui-core-popup.js +5 -0
  865. package/esm2022/popup/malva-ui-core-popup.js.map +1 -0
  866. package/esm2022/progress/index.js +2 -0
  867. package/esm2022/progress/index.js.map +1 -0
  868. package/esm2022/progress/lib/progress/progress.js +102 -0
  869. package/esm2022/progress/lib/progress/progress.js.map +1 -0
  870. package/esm2022/progress/malva-ui-core-progress.js +5 -0
  871. package/esm2022/progress/malva-ui-core-progress.js.map +1 -0
  872. package/esm2022/radio/index.js +3 -0
  873. package/esm2022/radio/index.js.map +1 -0
  874. package/esm2022/radio/lib/radio/radio.js +134 -0
  875. package/esm2022/radio/lib/radio/radio.js.map +1 -0
  876. package/esm2022/radio/lib/radio-group/radio-group.js +176 -0
  877. package/esm2022/radio/lib/radio-group/radio-group.js.map +1 -0
  878. package/esm2022/radio/lib/radio-group-token.js +3 -0
  879. package/esm2022/radio/lib/radio-group-token.js.map +1 -0
  880. package/esm2022/radio/malva-ui-core-radio.js +5 -0
  881. package/esm2022/radio/malva-ui-core-radio.js.map +1 -0
  882. package/esm2022/rating/index.js +2 -0
  883. package/esm2022/rating/index.js.map +1 -0
  884. package/esm2022/rating/lib/rating/rating.js +208 -0
  885. package/esm2022/rating/lib/rating/rating.js.map +1 -0
  886. package/esm2022/rating/malva-ui-core-rating.js +5 -0
  887. package/esm2022/rating/malva-ui-core-rating.js.map +1 -0
  888. package/esm2022/scrollbar/index.js +2 -0
  889. package/esm2022/scrollbar/index.js.map +1 -0
  890. package/esm2022/scrollbar/lib/scrollbar/scrollbar.js +388 -0
  891. package/esm2022/scrollbar/lib/scrollbar/scrollbar.js.map +1 -0
  892. package/esm2022/scrollbar/malva-ui-core-scrollbar.js +5 -0
  893. package/esm2022/scrollbar/malva-ui-core-scrollbar.js.map +1 -0
  894. package/esm2022/search-field/index.js +3 -0
  895. package/esm2022/search-field/index.js.map +1 -0
  896. package/esm2022/search-field/lib/search-field/search-field.js +535 -0
  897. package/esm2022/search-field/lib/search-field/search-field.js.map +1 -0
  898. package/esm2022/search-field/lib/search-field/search-overlay-content.js +35 -0
  899. package/esm2022/search-field/lib/search-field/search-overlay-content.js.map +1 -0
  900. package/esm2022/search-field/malva-ui-core-search-field.js +5 -0
  901. package/esm2022/search-field/malva-ui-core-search-field.js.map +1 -0
  902. package/esm2022/segmented/index.js +5 -0
  903. package/esm2022/segmented/index.js.map +1 -0
  904. package/esm2022/segmented/lib/segmented/segmented.js +248 -0
  905. package/esm2022/segmented/lib/segmented/segmented.js.map +1 -0
  906. package/esm2022/segmented/lib/segmented-item/segmented-item.js +194 -0
  907. package/esm2022/segmented/lib/segmented-item/segmented-item.js.map +1 -0
  908. package/esm2022/segmented/lib/segmented-token.js +4 -0
  909. package/esm2022/segmented/lib/segmented-token.js.map +1 -0
  910. package/esm2022/segmented/lib/segmented.types.js +1 -0
  911. package/esm2022/segmented/lib/segmented.types.js.map +1 -0
  912. package/esm2022/segmented/malva-ui-core-segmented.js +5 -0
  913. package/esm2022/segmented/malva-ui-core-segmented.js.map +1 -0
  914. package/esm2022/select/index.js +4 -0
  915. package/esm2022/select/index.js.map +1 -0
  916. package/esm2022/select/lib/select/select.js +685 -0
  917. package/esm2022/select/lib/select/select.js.map +1 -0
  918. package/esm2022/select/lib/select-option.js +2 -0
  919. package/esm2022/select/lib/select-option.js.map +1 -0
  920. package/esm2022/select/lib/select-template.directives.js +34 -0
  921. package/esm2022/select/lib/select-template.directives.js.map +1 -0
  922. package/esm2022/select/malva-ui-core-select.js +5 -0
  923. package/esm2022/select/malva-ui-core-select.js.map +1 -0
  924. package/esm2022/sidebar/index.js +16 -0
  925. package/esm2022/sidebar/index.js.map +1 -0
  926. package/esm2022/sidebar/lib/sidebar/sidebar.js +251 -0
  927. package/esm2022/sidebar/lib/sidebar/sidebar.js.map +1 -0
  928. package/esm2022/sidebar/lib/sidebar-content.js +37 -0
  929. package/esm2022/sidebar/lib/sidebar-content.js.map +1 -0
  930. package/esm2022/sidebar/lib/sidebar-context.js +3 -0
  931. package/esm2022/sidebar/lib/sidebar-context.js.map +1 -0
  932. package/esm2022/sidebar/lib/sidebar-footer.js +20 -0
  933. package/esm2022/sidebar/lib/sidebar-footer.js.map +1 -0
  934. package/esm2022/sidebar/lib/sidebar-group/sidebar-group.js +341 -0
  935. package/esm2022/sidebar/lib/sidebar-group/sidebar-group.js.map +1 -0
  936. package/esm2022/sidebar/lib/sidebar-header.js +20 -0
  937. package/esm2022/sidebar/lib/sidebar-header.js.map +1 -0
  938. package/esm2022/sidebar/lib/sidebar-item/sidebar-item.js +216 -0
  939. package/esm2022/sidebar/lib/sidebar-item/sidebar-item.js.map +1 -0
  940. package/esm2022/sidebar/lib/sidebar-item-host.js +39 -0
  941. package/esm2022/sidebar/lib/sidebar-item-host.js.map +1 -0
  942. package/esm2022/sidebar/lib/sidebar-item-icon.js +14 -0
  943. package/esm2022/sidebar/lib/sidebar-item-icon.js.map +1 -0
  944. package/esm2022/sidebar/lib/sidebar-mode.js +1 -0
  945. package/esm2022/sidebar/lib/sidebar-mode.js.map +1 -0
  946. package/esm2022/sidebar/lib/sidebar-rail/sidebar-rail.js +202 -0
  947. package/esm2022/sidebar/lib/sidebar-rail/sidebar-rail.js.map +1 -0
  948. package/esm2022/sidebar/lib/sidebar-trigger/sidebar-trigger.js +159 -0
  949. package/esm2022/sidebar/lib/sidebar-trigger/sidebar-trigger.js.map +1 -0
  950. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.js +35 -0
  951. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.js.map +1 -0
  952. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.js +107 -0
  953. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.js.map +1 -0
  954. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.types.js +1 -0
  955. package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.types.js.map +1 -0
  956. package/esm2022/sidebar/malva-ui-core-sidebar.js +5 -0
  957. package/esm2022/sidebar/malva-ui-core-sidebar.js.map +1 -0
  958. package/esm2022/skeleton/index.js +2 -0
  959. package/esm2022/skeleton/index.js.map +1 -0
  960. package/esm2022/skeleton/lib/skeleton/skeleton.js +78 -0
  961. package/esm2022/skeleton/lib/skeleton/skeleton.js.map +1 -0
  962. package/esm2022/skeleton/malva-ui-core-skeleton.js +5 -0
  963. package/esm2022/skeleton/malva-ui-core-skeleton.js.map +1 -0
  964. package/esm2022/slider/index.js +3 -0
  965. package/esm2022/slider/index.js.map +1 -0
  966. package/esm2022/slider/lib/slider/slider-tooltip-def.js +31 -0
  967. package/esm2022/slider/lib/slider/slider-tooltip-def.js.map +1 -0
  968. package/esm2022/slider/lib/slider/slider.js +468 -0
  969. package/esm2022/slider/lib/slider/slider.js.map +1 -0
  970. package/esm2022/slider/malva-ui-core-slider.js +5 -0
  971. package/esm2022/slider/malva-ui-core-slider.js.map +1 -0
  972. package/esm2022/split-pane/index.js +4 -0
  973. package/esm2022/split-pane/index.js.map +1 -0
  974. package/esm2022/split-pane/lib/split-pane/split-pane-panel.js +49 -0
  975. package/esm2022/split-pane/lib/split-pane/split-pane-panel.js.map +1 -0
  976. package/esm2022/split-pane/lib/split-pane/split-pane.js +290 -0
  977. package/esm2022/split-pane/lib/split-pane/split-pane.js.map +1 -0
  978. package/esm2022/split-pane/lib/split-pane/split-pane.types.js +1 -0
  979. package/esm2022/split-pane/lib/split-pane/split-pane.types.js.map +1 -0
  980. package/esm2022/split-pane/malva-ui-core-split-pane.js +5 -0
  981. package/esm2022/split-pane/malva-ui-core-split-pane.js.map +1 -0
  982. package/esm2022/status-indicator/index.js +2 -0
  983. package/esm2022/status-indicator/index.js.map +1 -0
  984. package/esm2022/status-indicator/lib/status-indicator/status-indicator.js +71 -0
  985. package/esm2022/status-indicator/lib/status-indicator/status-indicator.js.map +1 -0
  986. package/esm2022/status-indicator/malva-ui-core-status-indicator.js +5 -0
  987. package/esm2022/status-indicator/malva-ui-core-status-indicator.js.map +1 -0
  988. package/esm2022/stepper/index.js +5 -0
  989. package/esm2022/stepper/index.js.map +1 -0
  990. package/esm2022/stepper/lib/stepper/step-header.js +46 -0
  991. package/esm2022/stepper/lib/stepper/step-header.js.map +1 -0
  992. package/esm2022/stepper/lib/stepper/step.js +65 -0
  993. package/esm2022/stepper/lib/stepper/step.js.map +1 -0
  994. package/esm2022/stepper/lib/stepper/stepper-token.js +4 -0
  995. package/esm2022/stepper/lib/stepper/stepper-token.js.map +1 -0
  996. package/esm2022/stepper/lib/stepper/stepper.js +216 -0
  997. package/esm2022/stepper/lib/stepper/stepper.js.map +1 -0
  998. package/esm2022/stepper/lib/stepper/stepper.types.js +1 -0
  999. package/esm2022/stepper/lib/stepper/stepper.types.js.map +1 -0
  1000. package/esm2022/stepper/malva-ui-core-stepper.js +5 -0
  1001. package/esm2022/stepper/malva-ui-core-stepper.js.map +1 -0
  1002. package/esm2022/switch/index.js +3 -0
  1003. package/esm2022/switch/index.js.map +1 -0
  1004. package/esm2022/switch/lib/switch/switch.js +190 -0
  1005. package/esm2022/switch/lib/switch/switch.js.map +1 -0
  1006. package/esm2022/switch/lib/switch-group/switch-group.js +68 -0
  1007. package/esm2022/switch/lib/switch-group/switch-group.js.map +1 -0
  1008. package/esm2022/switch/lib/switch-group-token.js +3 -0
  1009. package/esm2022/switch/lib/switch-group-token.js.map +1 -0
  1010. package/esm2022/switch/malva-ui-core-switch.js +5 -0
  1011. package/esm2022/switch/malva-ui-core-switch.js.map +1 -0
  1012. package/esm2022/tabs/index.js +9 -0
  1013. package/esm2022/tabs/index.js.map +1 -0
  1014. package/esm2022/tabs/lib/tab/tab.js +72 -0
  1015. package/esm2022/tabs/lib/tab/tab.js.map +1 -0
  1016. package/esm2022/tabs/lib/tab-content/tab-content.js +19 -0
  1017. package/esm2022/tabs/lib/tab-content/tab-content.js.map +1 -0
  1018. package/esm2022/tabs/lib/tab-content-def.js +14 -0
  1019. package/esm2022/tabs/lib/tab-content-def.js.map +1 -0
  1020. package/esm2022/tabs/lib/tab-def.js +17 -0
  1021. package/esm2022/tabs/lib/tab-def.js.map +1 -0
  1022. package/esm2022/tabs/lib/tab-group-token.js +3 -0
  1023. package/esm2022/tabs/lib/tab-group-token.js.map +1 -0
  1024. package/esm2022/tabs/lib/tab-item/tab-item.js +44 -0
  1025. package/esm2022/tabs/lib/tab-item/tab-item.js.map +1 -0
  1026. package/esm2022/tabs/lib/tabs/tabs.js +542 -0
  1027. package/esm2022/tabs/lib/tabs/tabs.js.map +1 -0
  1028. package/esm2022/tabs/lib/tabs.service.js +83 -0
  1029. package/esm2022/tabs/lib/tabs.service.js.map +1 -0
  1030. package/esm2022/tabs/malva-ui-core-tabs.js +5 -0
  1031. package/esm2022/tabs/malva-ui-core-tabs.js.map +1 -0
  1032. package/esm2022/textarea/index.js +2 -0
  1033. package/esm2022/textarea/index.js.map +1 -0
  1034. package/esm2022/textarea/lib/textarea/textarea.js +194 -0
  1035. package/esm2022/textarea/lib/textarea/textarea.js.map +1 -0
  1036. package/esm2022/textarea/malva-ui-core-textarea.js +5 -0
  1037. package/esm2022/textarea/malva-ui-core-textarea.js.map +1 -0
  1038. package/esm2022/tile/index.js +3 -0
  1039. package/esm2022/tile/index.js.map +1 -0
  1040. package/esm2022/tile/lib/tile/tile.js +39 -0
  1041. package/esm2022/tile/lib/tile/tile.js.map +1 -0
  1042. package/esm2022/tile/lib/tile-header.js +14 -0
  1043. package/esm2022/tile/lib/tile-header.js.map +1 -0
  1044. package/esm2022/tile/malva-ui-core-tile.js +5 -0
  1045. package/esm2022/tile/malva-ui-core-tile.js.map +1 -0
  1046. package/esm2022/time-picker/index.js +2 -0
  1047. package/esm2022/time-picker/index.js.map +1 -0
  1048. package/esm2022/time-picker/lib/time-picker/time-picker.js +310 -0
  1049. package/esm2022/time-picker/lib/time-picker/time-picker.js.map +1 -0
  1050. package/esm2022/time-picker/lib/time-picker-column/time-picker-column.js +216 -0
  1051. package/esm2022/time-picker/lib/time-picker-column/time-picker-column.js.map +1 -0
  1052. package/esm2022/time-picker/malva-ui-core-time-picker.js +5 -0
  1053. package/esm2022/time-picker/malva-ui-core-time-picker.js.map +1 -0
  1054. package/esm2022/timeline/index.js +6 -0
  1055. package/esm2022/timeline/index.js.map +1 -0
  1056. package/esm2022/timeline/lib/timeline/timeline-item-icon.js +31 -0
  1057. package/esm2022/timeline/lib/timeline/timeline-item-icon.js.map +1 -0
  1058. package/esm2022/timeline/lib/timeline/timeline-item-meta.js +31 -0
  1059. package/esm2022/timeline/lib/timeline/timeline-item-meta.js.map +1 -0
  1060. package/esm2022/timeline/lib/timeline/timeline-item.js +69 -0
  1061. package/esm2022/timeline/lib/timeline/timeline-item.js.map +1 -0
  1062. package/esm2022/timeline/lib/timeline/timeline.js +36 -0
  1063. package/esm2022/timeline/lib/timeline/timeline.js.map +1 -0
  1064. package/esm2022/timeline/lib/timeline/timeline.types.js +1 -0
  1065. package/esm2022/timeline/lib/timeline/timeline.types.js.map +1 -0
  1066. package/esm2022/timeline/malva-ui-core-timeline.js +5 -0
  1067. package/esm2022/timeline/malva-ui-core-timeline.js.map +1 -0
  1068. package/esm2022/title/index.js +2 -0
  1069. package/esm2022/title/index.js.map +1 -0
  1070. package/esm2022/title/lib/title/title.js +171 -0
  1071. package/esm2022/title/lib/title/title.js.map +1 -0
  1072. package/esm2022/title/malva-ui-core-title.js +5 -0
  1073. package/esm2022/title/malva-ui-core-title.js.map +1 -0
  1074. package/esm2022/toast/index.js +13 -0
  1075. package/esm2022/toast/index.js.map +1 -0
  1076. package/esm2022/toast/lib/abstract-toast-container.js +50 -0
  1077. package/esm2022/toast/lib/abstract-toast-container.js.map +1 -0
  1078. package/esm2022/toast/lib/abstract-toast-item.js +75 -0
  1079. package/esm2022/toast/lib/abstract-toast-item.js.map +1 -0
  1080. package/esm2022/toast/lib/abstract-toast.service.js +176 -0
  1081. package/esm2022/toast/lib/abstract-toast.service.js.map +1 -0
  1082. package/esm2022/toast/lib/toast-container/toast-container.js +61 -0
  1083. package/esm2022/toast/lib/toast-container/toast-container.js.map +1 -0
  1084. package/esm2022/toast/lib/toast-item/toast-item.js +62 -0
  1085. package/esm2022/toast/lib/toast-item/toast-item.js.map +1 -0
  1086. package/esm2022/toast/lib/toast-ref.js +54 -0
  1087. package/esm2022/toast/lib/toast-ref.js.map +1 -0
  1088. package/esm2022/toast/lib/toast-timer.js +37 -0
  1089. package/esm2022/toast/lib/toast-timer.js.map +1 -0
  1090. package/esm2022/toast/lib/toast.directives.js +76 -0
  1091. package/esm2022/toast/lib/toast.directives.js.map +1 -0
  1092. package/esm2022/toast/lib/toast.service.js +127 -0
  1093. package/esm2022/toast/lib/toast.service.js.map +1 -0
  1094. package/esm2022/toast/lib/toast.types.js +39 -0
  1095. package/esm2022/toast/lib/toast.types.js.map +1 -0
  1096. package/esm2022/toast/malva-ui-core-toast.js +5 -0
  1097. package/esm2022/toast/malva-ui-core-toast.js.map +1 -0
  1098. package/esm2022/tokenizer/index.js +4 -0
  1099. package/esm2022/tokenizer/index.js.map +1 -0
  1100. package/esm2022/tokenizer/lib/token/token.js +123 -0
  1101. package/esm2022/tokenizer/lib/token/token.js.map +1 -0
  1102. package/esm2022/tokenizer/lib/token-template.js +23 -0
  1103. package/esm2022/tokenizer/lib/token-template.js.map +1 -0
  1104. package/esm2022/tokenizer/lib/tokenizer/tokenizer.js +324 -0
  1105. package/esm2022/tokenizer/lib/tokenizer/tokenizer.js.map +1 -0
  1106. package/esm2022/tokenizer/malva-ui-core-tokenizer.js +5 -0
  1107. package/esm2022/tokenizer/malva-ui-core-tokenizer.js.map +1 -0
  1108. package/esm2022/toolbar/index.js +4 -0
  1109. package/esm2022/toolbar/index.js.map +1 -0
  1110. package/esm2022/toolbar/lib/toolbar/toolbar-spacer.js +13 -0
  1111. package/esm2022/toolbar/lib/toolbar/toolbar-spacer.js.map +1 -0
  1112. package/esm2022/toolbar/lib/toolbar/toolbar-widget.js +106 -0
  1113. package/esm2022/toolbar/lib/toolbar/toolbar-widget.js.map +1 -0
  1114. package/esm2022/toolbar/lib/toolbar/toolbar.js +19 -0
  1115. package/esm2022/toolbar/lib/toolbar/toolbar.js.map +1 -0
  1116. package/esm2022/toolbar/malva-ui-core-toolbar.js +5 -0
  1117. package/esm2022/toolbar/malva-ui-core-toolbar.js.map +1 -0
  1118. package/esm2022/tooltip/index.js +4 -0
  1119. package/esm2022/tooltip/index.js.map +1 -0
  1120. package/esm2022/tooltip/lib/tooltip/tooltip-panel.js +69 -0
  1121. package/esm2022/tooltip/lib/tooltip/tooltip-panel.js.map +1 -0
  1122. package/esm2022/tooltip/lib/tooltip/tooltip.js +352 -0
  1123. package/esm2022/tooltip/lib/tooltip/tooltip.js.map +1 -0
  1124. package/esm2022/tooltip/lib/tooltip/tooltip.types.js +1 -0
  1125. package/esm2022/tooltip/lib/tooltip/tooltip.types.js.map +1 -0
  1126. package/esm2022/tooltip/malva-ui-core-tooltip.js +5 -0
  1127. package/esm2022/tooltip/malva-ui-core-tooltip.js.map +1 -0
  1128. package/esm2022/tree/index.js +5 -0
  1129. package/esm2022/tree/index.js.map +1 -0
  1130. package/esm2022/tree/lib/tree/tree-context.js +7 -0
  1131. package/esm2022/tree/lib/tree/tree-context.js.map +1 -0
  1132. package/esm2022/tree/lib/tree/tree-node-def.js +34 -0
  1133. package/esm2022/tree/lib/tree/tree-node-def.js.map +1 -0
  1134. package/esm2022/tree/lib/tree/tree-node.js +1 -0
  1135. package/esm2022/tree/lib/tree/tree-node.js.map +1 -0
  1136. package/esm2022/tree/lib/tree/tree-subtree.js +107 -0
  1137. package/esm2022/tree/lib/tree/tree-subtree.js.map +1 -0
  1138. package/esm2022/tree/lib/tree/tree.js +362 -0
  1139. package/esm2022/tree/lib/tree/tree.js.map +1 -0
  1140. package/esm2022/tree/malva-ui-core-tree.js +5 -0
  1141. package/esm2022/tree/malva-ui-core-tree.js.map +1 -0
  1142. package/expand/index.d.ts +2 -0
  1143. package/expand/lib/expand/expand-content.d.ts +26 -0
  1144. package/expand/lib/expand/expand.d.ts +74 -0
  1145. package/expand/malva-ui-core-expand.d.ts +5 -0
  1146. package/file-upload/README.md +7 -0
  1147. package/file-upload/index.d.ts +4 -0
  1148. package/file-upload/lib/file-upload/file-upload.d.ts +138 -0
  1149. package/file-upload/lib/file-upload/file-upload.types.d.ts +42 -0
  1150. package/file-upload/lib/file-upload-action.d.ts +53 -0
  1151. package/file-upload/lib/file-upload-item/file-upload-item.d.ts +30 -0
  1152. package/file-upload/malva-ui-core-file-upload.d.ts +5 -0
  1153. package/filter/README.md +22 -0
  1154. package/filter/index.d.ts +3 -0
  1155. package/filter/lib/filter/filter.d.ts +156 -0
  1156. package/filter/lib/filter.types.d.ts +75 -0
  1157. package/filter/lib/smart-filter-bar/smart-filter-bar.d.ts +153 -0
  1158. package/filter/malva-ui-core-filter.d.ts +5 -0
  1159. package/form/index.d.ts +6 -0
  1160. package/form/lib/fieldset/fieldset.d.ts +58 -0
  1161. package/form/lib/fieldset-span.d.ts +28 -0
  1162. package/form/lib/form/form.d.ts +37 -0
  1163. package/form/lib/form-actions.d.ts +20 -0
  1164. package/form/lib/form-gap.d.ts +5 -0
  1165. package/form/lib/form-header.d.ts +18 -0
  1166. package/form/lib/form.types.d.ts +13 -0
  1167. package/form/malva-ui-core-form.d.ts +5 -0
  1168. package/form-utils/index.d.ts +15 -0
  1169. package/form-utils/lib/aria-value-bridge.d.ts +45 -0
  1170. package/form-utils/lib/description/description.d.ts +16 -0
  1171. package/form-utils/lib/focusable-group-base.d.ts +76 -0
  1172. package/form-utils/lib/form-control-base/signal-form-control-base.d.ts +159 -0
  1173. package/form-utils/lib/form-control-sides.d.ts +20 -0
  1174. package/form-utils/lib/form-control-wrapper/form-control-wrapper-control.d.ts +6 -0
  1175. package/form-utils/lib/form-control-wrapper/form-control-wrapper.d.ts +20 -0
  1176. package/form-utils/lib/form-field/form-field.d.ts +68 -0
  1177. package/form-utils/lib/hint/hint.d.ts +5 -0
  1178. package/form-utils/lib/label/label.d.ts +22 -0
  1179. package/form-utils/lib/message/message.d.ts +7 -0
  1180. package/form-utils/lib/models/error-display-strategy.d.ts +1 -0
  1181. package/form-utils/lib/models/form-control-connector.d.ts +41 -0
  1182. package/form-utils/lib/models/form-state.d.ts +1 -0
  1183. package/form-utils/lib/selection.service.d.ts +27 -0
  1184. package/form-utils/malva-ui-core-form-utils.d.ts +5 -0
  1185. package/form-utils/testing/index.d.ts +1 -0
  1186. package/form-utils/testing/lib/forms-binding-matrix.d.ts +47 -0
  1187. package/form-utils/testing/malva-ui-core-form-utils-testing.d.ts +5 -0
  1188. package/index.d.ts +69 -0
  1189. package/input/index.d.ts +3 -0
  1190. package/input/lib/input/input-native.d.ts +36 -0
  1191. package/input/lib/input/input-value-accessor.d.ts +11 -0
  1192. package/input/lib/input/input.d.ts +189 -0
  1193. package/input/lib/input/password-strength.d.ts +34 -0
  1194. package/input/malva-ui-core-input.d.ts +5 -0
  1195. package/kbd/index.d.ts +1 -0
  1196. package/kbd/lib/kbd/kbd.d.ts +52 -0
  1197. package/kbd/malva-ui-core-kbd.d.ts +5 -0
  1198. package/layout/index.d.ts +4 -0
  1199. package/layout/lib/layout/directives/MlvLayoutSide.d.ts +6 -0
  1200. package/layout/lib/layout/directives/MlvLayoutTop.d.ts +6 -0
  1201. package/layout/lib/layout/layout.d.ts +20 -0
  1202. package/layout/lib/layout/services/theme.service.d.ts +33 -0
  1203. package/layout/malva-ui-core-layout.d.ts +5 -0
  1204. package/link/index.d.ts +2 -0
  1205. package/link/lib/link/link.d.ts +15 -0
  1206. package/link/lib/link/link.directives.d.ts +10 -0
  1207. package/link/malva-ui-core-link.d.ts +5 -0
  1208. package/list/index.d.ts +13 -0
  1209. package/list/lib/list/list.d.ts +25 -0
  1210. package/list/lib/list-item/list-item.d.ts +67 -0
  1211. package/list/lib/list-item-actions.d.ts +12 -0
  1212. package/list/lib/list-item-byline.d.ts +5 -0
  1213. package/list/lib/list-item-group/list-item-group.d.ts +11 -0
  1214. package/list/lib/list-item-link/list-item-link.d.ts +8 -0
  1215. package/list/lib/list-item-media.d.ts +5 -0
  1216. package/list/lib/list-item-meta.d.ts +5 -0
  1217. package/list/lib/list-item-prefix.d.ts +5 -0
  1218. package/list/lib/list-item-suffix.d.ts +5 -0
  1219. package/list/lib/list-item-template.d.ts +10 -0
  1220. package/list/lib/list-item-title.d.ts +5 -0
  1221. package/list/lib/list-selectable.d.ts +73 -0
  1222. package/list/malva-ui-core-list.d.ts +5 -0
  1223. package/loader/index.d.ts +1 -0
  1224. package/loader/lib/loader/loader.d.ts +84 -0
  1225. package/loader/malva-ui-core-loader.d.ts +5 -0
  1226. package/malva-ui-core.d.ts +5 -0
  1227. package/menu/index.d.ts +9 -0
  1228. package/menu/lib/menu/menu-group-label.d.ts +22 -0
  1229. package/menu/lib/menu/menu-group.d.ts +27 -0
  1230. package/menu/lib/menu/menu-item.d.ts +76 -0
  1231. package/menu/lib/menu/menu-separator.d.ts +18 -0
  1232. package/menu/lib/menu/menu-trigger.d.ts +255 -0
  1233. package/menu/lib/menu/menu.d.ts +149 -0
  1234. package/menu/lib/menu/menu.types.d.ts +13 -0
  1235. package/menu/lib/menu/menubar.d.ts +131 -0
  1236. package/menu/lib/menu/menubar.types.d.ts +82 -0
  1237. package/menu/lib/menu/submenu-aim.d.ts +10 -0
  1238. package/menu/malva-ui-core-menu.d.ts +5 -0
  1239. package/notification/index.d.ts +4 -0
  1240. package/notification/lib/notification-item/notification-item.d.ts +20 -0
  1241. package/notification/lib/notification-ref.d.ts +12 -0
  1242. package/notification/lib/notification.service.d.ts +43 -0
  1243. package/notification/lib/notification.types.d.ts +52 -0
  1244. package/notification/malva-ui-core-notification.d.ts +5 -0
  1245. package/number-input/index.d.ts +1 -0
  1246. package/number-input/lib/number-input/number-input.d.ts +162 -0
  1247. package/number-input/malva-ui-core-number-input.d.ts +5 -0
  1248. package/package.json +315 -0
  1249. package/page/README.md +8 -0
  1250. package/page/index.d.ts +14 -0
  1251. package/page/lib/page/page-scroll.token.d.ts +19 -0
  1252. package/page/lib/page/page-snap-controller.d.ts +87 -0
  1253. package/page/lib/page/page-snap.directive.d.ts +40 -0
  1254. package/page/lib/page/page.d.ts +74 -0
  1255. package/page/lib/page-content/page-aside.d.ts +7 -0
  1256. package/page/lib/page-content/page-content.d.ts +37 -0
  1257. package/page/lib/page-dock/page-dock.d.ts +50 -0
  1258. package/page/lib/page-dock/page-dock.slots.d.ts +16 -0
  1259. package/page/lib/page-header/page-header.d.ts +77 -0
  1260. package/page/lib/page-header/page-header.directives.d.ts +50 -0
  1261. package/page/lib/page-shell/page-shell-color.d.ts +48 -0
  1262. package/page/lib/page-shell/page-shell-css-color.d.ts +20 -0
  1263. package/page/lib/page-shell/page-shell.d.ts +44 -0
  1264. package/page/lib/page-shell/page-shell.slots.d.ts +16 -0
  1265. package/page/lib/page-summary/page-summary-item.d.ts +11 -0
  1266. package/page/lib/page-summary/page-summary.d.ts +36 -0
  1267. package/page/malva-ui-core-page.d.ts +5 -0
  1268. package/pagination/index.d.ts +4 -0
  1269. package/pagination/lib/pagination/pagination.d.ts +182 -0
  1270. package/pagination/lib/pagination/pagination.directives.d.ts +44 -0
  1271. package/pagination/lib/pagination/pagination.model.d.ts +6 -0
  1272. package/pagination/lib/pagination/pagination.service.d.ts +26 -0
  1273. package/pagination/malva-ui-core-pagination.d.ts +5 -0
  1274. package/pin-input/index.d.ts +2 -0
  1275. package/pin-input/lib/pin-input/pin-input-separator.d.ts +24 -0
  1276. package/pin-input/lib/pin-input/pin-input.d.ts +176 -0
  1277. package/pin-input/malva-ui-core-pin-input.d.ts +5 -0
  1278. package/popup/index.d.ts +9 -0
  1279. package/popup/lib/popup/popup.d.ts +343 -0
  1280. package/popup/lib/popup-container/popup-container.d.ts +61 -0
  1281. package/popup/lib/popup-container/popup-container.token.d.ts +34 -0
  1282. package/popup/lib/popup-content.d.ts +6 -0
  1283. package/popup/lib/popup-header-content.d.ts +18 -0
  1284. package/popup/lib/popup-pinned-content.d.ts +17 -0
  1285. package/popup/lib/popup-positions.d.ts +105 -0
  1286. package/popup/lib/popup-trigger/popup-trigger.d.ts +102 -0
  1287. package/popup/lib/popup.service.d.ts +159 -0
  1288. package/popup/malva-ui-core-popup.d.ts +5 -0
  1289. package/progress/index.d.ts +1 -0
  1290. package/progress/lib/progress/progress.d.ts +69 -0
  1291. package/progress/malva-ui-core-progress.d.ts +5 -0
  1292. package/radio/index.d.ts +2 -0
  1293. package/radio/lib/radio/radio.d.ts +87 -0
  1294. package/radio/lib/radio-group/radio-group.d.ts +35 -0
  1295. package/radio/lib/radio-group-token.d.ts +7 -0
  1296. package/radio/malva-ui-core-radio.d.ts +5 -0
  1297. package/rating/index.d.ts +1 -0
  1298. package/rating/lib/rating/rating.d.ts +100 -0
  1299. package/rating/malva-ui-core-rating.d.ts +5 -0
  1300. package/schematics/collection.json +12 -0
  1301. package/schematics/ng-add/index.cjs +272 -0
  1302. package/schematics/ng-add/schema.json +92 -0
  1303. package/scrollbar/index.d.ts +1 -0
  1304. package/scrollbar/lib/scrollbar/scrollbar.d.ts +166 -0
  1305. package/scrollbar/malva-ui-core-scrollbar.d.ts +5 -0
  1306. package/search-field/README.md +32 -0
  1307. package/search-field/index.d.ts +2 -0
  1308. package/search-field/lib/search-field/search-field.d.ts +347 -0
  1309. package/search-field/lib/search-field/search-overlay-content.d.ts +59 -0
  1310. package/search-field/malva-ui-core-search-field.d.ts +5 -0
  1311. package/segmented/index.d.ts +4 -0
  1312. package/segmented/lib/segmented/segmented.d.ts +80 -0
  1313. package/segmented/lib/segmented-item/segmented-item.d.ts +89 -0
  1314. package/segmented/lib/segmented-token.d.ts +22 -0
  1315. package/segmented/lib/segmented.types.d.ts +9 -0
  1316. package/segmented/malva-ui-core-segmented.d.ts +5 -0
  1317. package/select/index.d.ts +3 -0
  1318. package/select/lib/select/select.d.ts +379 -0
  1319. package/select/lib/select-option.d.ts +1 -0
  1320. package/select/lib/select-template.directives.d.ts +14 -0
  1321. package/select/malva-ui-core-select.d.ts +5 -0
  1322. package/sidebar/index.d.ts +15 -0
  1323. package/sidebar/lib/sidebar/sidebar.d.ts +134 -0
  1324. package/sidebar/lib/sidebar-content.d.ts +11 -0
  1325. package/sidebar/lib/sidebar-context.d.ts +23 -0
  1326. package/sidebar/lib/sidebar-footer.d.ts +9 -0
  1327. package/sidebar/lib/sidebar-group/sidebar-group.d.ts +127 -0
  1328. package/sidebar/lib/sidebar-header.d.ts +9 -0
  1329. package/sidebar/lib/sidebar-item/sidebar-item.d.ts +104 -0
  1330. package/sidebar/lib/sidebar-item-host.d.ts +18 -0
  1331. package/sidebar/lib/sidebar-item-icon.d.ts +6 -0
  1332. package/sidebar/lib/sidebar-mode.d.ts +2 -0
  1333. package/sidebar/lib/sidebar-rail/sidebar-rail.d.ts +54 -0
  1334. package/sidebar/lib/sidebar-trigger/sidebar-trigger.d.ts +67 -0
  1335. package/sidebar/lib/sidebar-workspace/sidebar-workspace.d.ts +54 -0
  1336. package/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.d.ts +19 -0
  1337. package/sidebar/lib/sidebar-workspace/sidebar-workspace.types.d.ts +20 -0
  1338. package/sidebar/malva-ui-core-sidebar.d.ts +5 -0
  1339. package/skeleton/index.d.ts +1 -0
  1340. package/skeleton/lib/skeleton/skeleton.d.ts +60 -0
  1341. package/skeleton/malva-ui-core-skeleton.d.ts +5 -0
  1342. package/slider/index.d.ts +2 -0
  1343. package/slider/lib/slider/slider-tooltip-def.d.ts +39 -0
  1344. package/slider/lib/slider/slider.d.ts +171 -0
  1345. package/slider/malva-ui-core-slider.d.ts +5 -0
  1346. package/split-pane/index.d.ts +3 -0
  1347. package/split-pane/lib/split-pane/split-pane-panel.d.ts +34 -0
  1348. package/split-pane/lib/split-pane/split-pane.d.ts +98 -0
  1349. package/split-pane/lib/split-pane/split-pane.types.d.ts +7 -0
  1350. package/split-pane/malva-ui-core-split-pane.d.ts +5 -0
  1351. package/status-indicator/index.d.ts +1 -0
  1352. package/status-indicator/lib/status-indicator/status-indicator.d.ts +61 -0
  1353. package/status-indicator/malva-ui-core-status-indicator.d.ts +5 -0
  1354. package/stepper/index.d.ts +4 -0
  1355. package/stepper/lib/stepper/step-header.d.ts +34 -0
  1356. package/stepper/lib/stepper/step.d.ts +51 -0
  1357. package/stepper/lib/stepper/stepper-token.d.ts +13 -0
  1358. package/stepper/lib/stepper/stepper.d.ts +98 -0
  1359. package/stepper/lib/stepper/stepper.types.d.ts +4 -0
  1360. package/stepper/malva-ui-core-stepper.d.ts +5 -0
  1361. package/styles/malva-ui.css +1706 -0
  1362. package/styles/tokens.md +698 -0
  1363. package/switch/index.d.ts +2 -0
  1364. package/switch/lib/switch/switch.d.ts +118 -0
  1365. package/switch/lib/switch-group/switch-group.d.ts +24 -0
  1366. package/switch/lib/switch-group-token.d.ts +6 -0
  1367. package/switch/malva-ui-core-switch.d.ts +5 -0
  1368. package/tabs/index.d.ts +8 -0
  1369. package/tabs/lib/tab/tab.d.ts +46 -0
  1370. package/tabs/lib/tab-content/tab-content.d.ts +11 -0
  1371. package/tabs/lib/tab-content-def.d.ts +6 -0
  1372. package/tabs/lib/tab-def.d.ts +11 -0
  1373. package/tabs/lib/tab-group-token.d.ts +10 -0
  1374. package/tabs/lib/tab-item/tab-item.d.ts +28 -0
  1375. package/tabs/lib/tabs/tabs.d.ts +202 -0
  1376. package/tabs/lib/tabs.service.d.ts +24 -0
  1377. package/tabs/malva-ui-core-tabs.d.ts +5 -0
  1378. package/textarea/index.d.ts +1 -0
  1379. package/textarea/lib/textarea/textarea.d.ts +77 -0
  1380. package/textarea/malva-ui-core-textarea.d.ts +5 -0
  1381. package/tile/index.d.ts +2 -0
  1382. package/tile/lib/tile/tile.d.ts +20 -0
  1383. package/tile/lib/tile-header.d.ts +6 -0
  1384. package/tile/malva-ui-core-tile.d.ts +5 -0
  1385. package/time-picker/README.md +7 -0
  1386. package/time-picker/index.d.ts +1 -0
  1387. package/time-picker/lib/time-picker/time-picker.d.ts +135 -0
  1388. package/time-picker/lib/time-picker-column/time-picker-column.d.ts +111 -0
  1389. package/time-picker/malva-ui-core-time-picker.d.ts +5 -0
  1390. package/timeline/index.d.ts +5 -0
  1391. package/timeline/lib/timeline/timeline-item-icon.d.ts +24 -0
  1392. package/timeline/lib/timeline/timeline-item-meta.d.ts +24 -0
  1393. package/timeline/lib/timeline/timeline-item.d.ts +52 -0
  1394. package/timeline/lib/timeline/timeline.d.ts +27 -0
  1395. package/timeline/lib/timeline/timeline.types.d.ts +18 -0
  1396. package/timeline/malva-ui-core-timeline.d.ts +5 -0
  1397. package/title/index.d.ts +1 -0
  1398. package/title/lib/title/title.d.ts +63 -0
  1399. package/title/malva-ui-core-title.d.ts +5 -0
  1400. package/toast/index.d.ts +10 -0
  1401. package/toast/lib/abstract-toast-container.d.ts +29 -0
  1402. package/toast/lib/abstract-toast-item.d.ts +44 -0
  1403. package/toast/lib/abstract-toast.service.d.ts +75 -0
  1404. package/toast/lib/toast-container/toast-container.d.ts +23 -0
  1405. package/toast/lib/toast-item/toast-item.d.ts +25 -0
  1406. package/toast/lib/toast-ref.d.ts +33 -0
  1407. package/toast/lib/toast-timer.d.ts +24 -0
  1408. package/toast/lib/toast.directives.d.ts +13 -0
  1409. package/toast/lib/toast.service.d.ts +41 -0
  1410. package/toast/lib/toast.types.d.ts +139 -0
  1411. package/toast/malva-ui-core-toast.d.ts +5 -0
  1412. package/tokenizer/index.d.ts +3 -0
  1413. package/tokenizer/lib/token/token.d.ts +60 -0
  1414. package/tokenizer/lib/token-template.d.ts +29 -0
  1415. package/tokenizer/lib/tokenizer/tokenizer.d.ts +109 -0
  1416. package/tokenizer/malva-ui-core-tokenizer.d.ts +5 -0
  1417. package/toolbar/index.d.ts +3 -0
  1418. package/toolbar/lib/toolbar/toolbar-spacer.d.ts +5 -0
  1419. package/toolbar/lib/toolbar/toolbar-widget.d.ts +75 -0
  1420. package/toolbar/lib/toolbar/toolbar.d.ts +8 -0
  1421. package/toolbar/malva-ui-core-toolbar.d.ts +5 -0
  1422. package/tooltip/README.md +7 -0
  1423. package/tooltip/index.d.ts +3 -0
  1424. package/tooltip/lib/tooltip/tooltip-panel.d.ts +26 -0
  1425. package/tooltip/lib/tooltip/tooltip.d.ts +148 -0
  1426. package/tooltip/lib/tooltip/tooltip.types.d.ts +17 -0
  1427. package/tooltip/malva-ui-core-tooltip.d.ts +5 -0
  1428. package/tree/index.d.ts +4 -0
  1429. package/tree/lib/tree/tree-context.d.ts +62 -0
  1430. package/tree/lib/tree/tree-node-def.d.ts +33 -0
  1431. package/tree/lib/tree/tree-node.d.ts +45 -0
  1432. package/tree/lib/tree/tree-subtree.d.ts +63 -0
  1433. package/tree/lib/tree/tree.d.ts +156 -0
  1434. package/tree/malva-ui-core-tree.d.ts +5 -0
@@ -0,0 +1,257 @@
1
+ import { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, HostAttributeToken, ViewEncapsulation, contentChildren, effect, inject, input, untracked, } from '@angular/core';
2
+ import { FocusKeyManager } from '@angular/cdk/a11y';
3
+ import { MlvMenuTrigger } from './menu-trigger';
4
+ import { MENUBAR_TOKEN } from './menubar.types';
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * Horizontal application menu bar (`mlv-menubar`) — a File / Edit / View style
8
+ * row of top-level menu triggers, implementing the
9
+ * [WAI-ARIA Menubar pattern](https://www.w3.org/WAI/ARIA/apg/patterns/menubar/).
10
+ *
11
+ * Wrap a set of `[mlvMenuTrigger]` elements. Each trigger opens a standard
12
+ * `mlv-menu` dropdown; the bar coordinates them:
13
+ *
14
+ * - `role="menubar"` container with a **roving tabindex** across the top-level
15
+ * items (only the active item is in the tab order).
16
+ * - `ArrowLeft` / `ArrowRight` move between top-level items (wrapping); `Home` /
17
+ * `End` jump to the first / last; printable characters type-ahead by label.
18
+ * - `ArrowDown` / `Enter` / `Space` open the focused item's menu with focus on
19
+ * its first item; `ArrowUp` opens with focus on the last item (handled by the
20
+ * trigger).
21
+ * - While any dropdown is open, hovering or arrowing to another top-level item
22
+ * closes the current menu and opens the sibling (hover-follow only-while-open).
23
+ * - `ArrowRight` / `ArrowLeft` at the top level of an open dropdown cross to the
24
+ * adjacent menubar menu; a focused submenu trigger's own `ArrowRight` wins.
25
+ * - `Escape` closes the menu and restores focus to its top-level item.
26
+ *
27
+ * Declare the `mlv-menu` panels **as siblings of the menubar** (outside its
28
+ * content), so the bar's `contentChildren` query only picks up the top-level
29
+ * triggers — see the example below.
30
+ *
31
+ * @example
32
+ * ```html
33
+ * <mlv-menubar aria-label="Main">
34
+ * <button mlvButton variant="transparent" [mlvMenuTrigger]="fileMenu">File</button>
35
+ * <button mlvButton variant="transparent" [mlvMenuTrigger]="editMenu">Edit</button>
36
+ * </mlv-menubar>
37
+ *
38
+ * <mlv-menu #fileMenu label="File">
39
+ * <mlv-list-item mlvMenuItem (itemClick)="onNew()">New</mlv-list-item>
40
+ * </mlv-menu>
41
+ * <mlv-menu #editMenu label="Edit">
42
+ * <mlv-list-item mlvMenuItem (itemClick)="onUndo()">Undo</mlv-list-item>
43
+ * </mlv-menu>
44
+ * ```
45
+ */
46
+ export class MlvMenubar {
47
+ // ─── Injected services ────────────────────────────────────────────────────
48
+ /** @private Host element reference. */
49
+ _elementRef = inject((ElementRef));
50
+ /**
51
+ * @private The `aria-label` the consumer placed directly on the `<mlv-menubar>`
52
+ * element, captured before the host binding runs. Used as the accessible-name
53
+ * fallback so a natively-provided `aria-label` is preserved when the `label`
54
+ * input is not used — without it the `[attr.aria-label]` host binding would
55
+ * clobber the consumer's attribute with `null`.
56
+ */
57
+ _initialAriaLabel = inject(new HostAttributeToken('aria-label'), { optional: true });
58
+ // ─── Content children ─────────────────────────────────────────────────────
59
+ /**
60
+ * @protected The top-level `[mlvMenuTrigger]` children, in DOM order. Only
61
+ * direct descendants of the menubar are found — the `mlv-menu` dropdown
62
+ * panels are declared as siblings, so their items and submenu triggers are
63
+ * never picked up here.
64
+ */
65
+ _items = contentChildren(MlvMenuTrigger, /* @ts-ignore */
66
+ ...(ngDevMode ? [{ debugName: "_items" }] : /* istanbul ignore next */ []));
67
+ // ─── Inputs ───────────────────────────────────────────────────────────────
68
+ /**
69
+ * Accessible label for the menubar (`aria-label`). Use when there is no
70
+ * visible heading that labels the bar.
71
+ */
72
+ label = input('', /* @ts-ignore */
73
+ ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
74
+ // ─── Internal state ───────────────────────────────────────────────────────
75
+ /**
76
+ * @private `FocusKeyManager` managing the roving tabindex and horizontal
77
+ * arrow / Home / End / type-ahead navigation across top-level items.
78
+ */
79
+ _keyManager = null;
80
+ /**
81
+ * @private Subscription to the key manager's `change` stream, keeping the
82
+ * roving tabindex in sync when type-ahead moves the active item.
83
+ */
84
+ _changeSub = null;
85
+ /**
86
+ * @private The top-level item whose dropdown is currently open, or `null`
87
+ * when the whole bar is closed.
88
+ */
89
+ _openItem = null;
90
+ constructor() {
91
+ // (Re)build the key manager whenever the set of top-level items changes.
92
+ //
93
+ // The effect deliberately depends ONLY on the `_items()` query. All the
94
+ // imperative work below both READS reactive signals (`menuTriggerDisabled()`
95
+ // via the key manager's `skipPredicate`) and WRITES them (`_tabIndex` in
96
+ // `_syncTabIndices`). Because writing `_tabIndex` dirties the child trigger
97
+ // effects — and therefore the view — leaving those reads tracked would let
98
+ // the effect re-notify itself on every view refresh, spinning synchronously.
99
+ // Running the side effects in `untracked` keeps the sole reactive dependency
100
+ // the item set, which is the only thing that should trigger a rebuild.
101
+ effect(() => {
102
+ const items = this._items();
103
+ untracked(() => {
104
+ if (items.length > 0) {
105
+ this._initKeyManager(items);
106
+ this._syncTabIndices();
107
+ }
108
+ });
109
+ });
110
+ inject(DestroyRef).onDestroy(() => this._changeSub?.unsubscribe());
111
+ }
112
+ // ─── MlvMenubarAccessor ──────────────────────────────────────────────────────
113
+ /** Host element of the menubar (used as a click-outside exclusion). */
114
+ get hostElement() {
115
+ return this._elementRef.nativeElement;
116
+ }
117
+ /**
118
+ * Records `item` as the open dropdown, closing any previously-open sibling
119
+ * and syncing the roving tabindex so the bar's active item follows the open
120
+ * menu. Called by a child trigger from its open path.
121
+ */
122
+ notifyItemOpened(item) {
123
+ const previous = this._openItem;
124
+ this._openItem = item;
125
+ if (previous && previous !== item) {
126
+ previous.closeMenu();
127
+ }
128
+ this._keyManager?.setActiveItem(item);
129
+ this._syncTabIndices();
130
+ }
131
+ /** Clears the open-item record when `item`'s dropdown closes. */
132
+ notifyItemClosed(item) {
133
+ if (this._openItem === item) {
134
+ this._openItem = null;
135
+ }
136
+ }
137
+ /** Whether any dropdown in the bar is currently open. */
138
+ hasOpenMenu() {
139
+ return this._openItem !== null;
140
+ }
141
+ /**
142
+ * Hover-follow: while a dropdown is already open, opening the hovered item's
143
+ * dropdown (which, via `notifyItemOpened`, closes the previous one). Does
144
+ * nothing when the bar is fully closed or the item is disabled/already open.
145
+ */
146
+ onItemPointerEnter(item) {
147
+ if (!this.hasOpenMenu())
148
+ return;
149
+ if (item === this._openItem || item.disabledBoolean)
150
+ return;
151
+ item.openMenu();
152
+ }
153
+ /**
154
+ * Crosses from the open dropdown to an adjacent top-level item's menu,
155
+ * wrapping over disabled items, and opens it with focus on its first item.
156
+ */
157
+ openAdjacentItemMenu(from, dir) {
158
+ const items = this._navigableItems();
159
+ const index = items.indexOf(from);
160
+ if (index === -1 || items.length === 0)
161
+ return;
162
+ const target = items[(index + dir + items.length) % items.length];
163
+ if (target === from)
164
+ return;
165
+ from.closeMenu();
166
+ this._keyManager?.setActiveItem(target);
167
+ this._syncTabIndices();
168
+ target.openMenuWithFirstItemFocused();
169
+ }
170
+ // ─── Protected handlers ───────────────────────────────────────────────────
171
+ /**
172
+ * @protected Menubar-level keyboard handler.
173
+ *
174
+ * Opening keys (`Enter`, `Space`, `ArrowDown`, `ArrowUp`) are handled by the
175
+ * focused trigger itself, so they are ignored here. Everything else is routed
176
+ * to `FocusKeyManager` for horizontal navigation, Home/End, and type-ahead.
177
+ * If a dropdown is open when the active item changes, the newly-focused item's
178
+ * menu is opened (open-follow).
179
+ */
180
+ _onKeydown(event) {
181
+ switch (event.key) {
182
+ case 'Enter':
183
+ case ' ':
184
+ case 'ArrowDown':
185
+ case 'ArrowUp':
186
+ return;
187
+ }
188
+ const keyManager = this._keyManager;
189
+ if (!keyManager)
190
+ return;
191
+ const before = keyManager.activeItem;
192
+ keyManager.onKeydown(event);
193
+ const after = keyManager.activeItem;
194
+ if (after && after !== before) {
195
+ this._syncTabIndices();
196
+ if (this._openItem && after !== this._openItem) {
197
+ after.openMenu();
198
+ }
199
+ }
200
+ }
201
+ // ─── Private helpers ──────────────────────────────────────────────────────
202
+ /**
203
+ * @private Creates or replaces the `FocusKeyManager` with the current items,
204
+ * using horizontal orientation, wrap, Home/End and type-ahead, skipping
205
+ * disabled items. Sets the first item active so the bar has a tabbable entry.
206
+ */
207
+ _initKeyManager(items) {
208
+ this._changeSub?.unsubscribe();
209
+ this._keyManager = new FocusKeyManager(items)
210
+ .withHorizontalOrientation('ltr')
211
+ .withWrap()
212
+ .withHomeAndEnd()
213
+ .withTypeAhead()
214
+ .skipPredicate((item) => item.disabledBoolean);
215
+ this._changeSub = this._keyManager.change.subscribe(() => this._syncTabIndices());
216
+ if (!this._keyManager.activeItem) {
217
+ this._keyManager.setFirstItemActive();
218
+ }
219
+ }
220
+ /**
221
+ * @private Updates `_tabIndex` on every item so that only the active item has
222
+ * `tabindex="0"` (roving tabindex). All others get `-1`.
223
+ */
224
+ _syncTabIndices() {
225
+ const active = this._keyManager?.activeItem;
226
+ this._items().forEach((item) => {
227
+ item._tabIndex.set(item === active ? 0 : -1);
228
+ });
229
+ }
230
+ /** @private The non-disabled top-level items, in DOM order. */
231
+ _navigableItems() {
232
+ return this._items().filter((item) => !item.disabledBoolean);
233
+ }
234
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvMenubar, deps: [], target: i0.ɵɵFactoryTarget.Component });
235
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.7", type: MlvMenubar, isStandalone: true, selector: "mlv-menubar", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "menubar" }, listeners: { "keydown": "_onKeydown($event)" }, properties: { "attr.aria-orientation": "\"horizontal\"", "attr.aria-label": "label() || _initialAriaLabel || null" }, classAttribute: "mlv-menubar" }, providers: [
236
+ {
237
+ provide: MENUBAR_TOKEN,
238
+ useExisting: MlvMenubar,
239
+ },
240
+ ], queries: [{ propertyName: "_items", predicate: MlvMenuTrigger, isSignal: true }], ngImport: i0, template: `<ng-content />`, isInline: true, styles: [".mlv-menubar{box-sizing:border-box;padding:var(--mlv-padding-xs);margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-typography-body-m-size)}.mlv-menubar *{box-sizing:border-box}.mlv-menubar{display:inline-flex;align-items:center;gap:var(--mlv-spacing-2);background-color:var(--mlv-background-raised);border:var(--mlv-stroke-width) solid var(--mlv-border-subtle);border-radius:var(--mlv-radius-m);color:var(--mlv-text-primary)}.mlv-menubar:focus-visible{outline:none}.mlv-menubar [role=menuitem]:focus-visible{outline:var(--mlv-stroke-width-medium) solid var(--mlv-border-focus);outline-offset:var(--mlv-focus-ring-offset)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
241
+ }
242
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvMenubar, decorators: [{
243
+ type: Component,
244
+ args: [{ selector: 'mlv-menubar', template: `<ng-content />`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
245
+ class: 'mlv-menubar',
246
+ role: 'menubar',
247
+ '[attr.aria-orientation]': '"horizontal"',
248
+ '[attr.aria-label]': 'label() || _initialAriaLabel || null',
249
+ '(keydown)': '_onKeydown($event)',
250
+ }, providers: [
251
+ {
252
+ provide: MENUBAR_TOKEN,
253
+ useExisting: MlvMenubar,
254
+ },
255
+ ], styles: [".mlv-menubar{box-sizing:border-box;padding:var(--mlv-padding-xs);margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-typography-body-m-size)}.mlv-menubar *{box-sizing:border-box}.mlv-menubar{display:inline-flex;align-items:center;gap:var(--mlv-spacing-2);background-color:var(--mlv-background-raised);border:var(--mlv-stroke-width) solid var(--mlv-border-subtle);border-radius:var(--mlv-radius-m);color:var(--mlv-text-primary)}.mlv-menubar:focus-visible{outline:none}.mlv-menubar [role=menuitem]:focus-visible{outline:var(--mlv-stroke-width-medium) solid var(--mlv-border-focus);outline-offset:var(--mlv-focus-ring-offset)}\n"] }]
256
+ }], ctorParameters: () => [], propDecorators: { _items: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => MlvMenuTrigger), { isSignal: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }] } });
257
+ //# sourceMappingURL=menubar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menubar.js","sourceRoot":"","sources":["../../../../../../../libs/core/menu/src/lib/menu/menubar.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,SAAS,EACT,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,MAAM,EACN,MAAM,EACN,KAAK,EACL,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAqBH,MAAM,OAAO,UAAU;IACrB,6EAA6E;IAE7E,uCAAuC;IACtB,WAAW,GAAG,MAAM,CAAC,CAAA,UAAuB,CAAA,CAAC,CAAC;IAE/D;;;;;;OAMG;IACgB,iBAAiB,GAAG,MAAM,CAC3C,IAAI,kBAAkB,CAAC,YAAY,CAAC,EACpC,EAAE,QAAQ,EAAE,IAAI,EAAE,CACnB,CAAC;IAEF,6EAA6E;IAE7E;;;;;OAKG;IACgB,MAAM,GAAG,eAAe,CAAC,cAAc;+EAAC,CAAC;IAE5D,6EAA6E;IAE7E;;;OAGG;IACM,KAAK,GAAG,KAAK,CAAS,EAAE;8EAAC,CAAC;IAEnC,6EAA6E;IAE7E;;;OAGG;IACK,WAAW,GAA2C,IAAI,CAAC;IAEnE;;;OAGG;IACK,UAAU,GAAwB,IAAI,CAAC;IAE/C;;;OAGG;IACK,SAAS,GAA0B,IAAI,CAAC;IAEhD;QACE,yEAAyE;QACzE,EAAE;QACF,wEAAwE;QACxE,6EAA6E;QAC7E,yEAAyE;QACzE,4EAA4E;QAC5E,2EAA2E;QAC3E,6EAA6E;QAC7E,6EAA6E;QAC7E,uEAAuE;QACvE,MAAM,CAAC,GAAG,EAAE;YACV,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAiC,CAAC;YAC3D,SAAS,CAAC,GAAG,EAAE;gBACb,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;oBAC5B,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,gFAAgF;IAEhF,uEAAuE;IACvE,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,IAAoB;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YAClC,QAAQ,CAAC,SAAS,EAAE,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,iEAAiE;IACjE,gBAAgB,CAAC,IAAoB;QACnC,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,IAAoB;QACrC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE,OAAO;QAChC,IAAI,IAAI,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO;QAC5D,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,oBAAoB,CAAC,IAAoB,EAAE,GAAW;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE/C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAClE,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO;QAE5B,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,MAAM,CAAC,4BAA4B,EAAE,CAAC;IACxC,CAAC;IAED,6EAA6E;IAE7E;;;;;;;;OAQG;IACO,UAAU,CAAC,KAAoB;QACvC,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC;YAClB,KAAK,OAAO,CAAC;YACb,KAAK,GAAG,CAAC;YACT,KAAK,WAAW,CAAC;YACjB,KAAK,SAAS;gBACZ,OAAO;QACX,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,UAAU;YAAE,OAAO;QAExB,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC;QACrC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC;QAEpC,IAAI,KAAK,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC/C,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,6EAA6E;IAE7E;;;;OAIG;IACK,eAAe,CAAC,KAAuB;QAC7C,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,eAAe,CAAiB,KAAK,CAAC;aAC1D,yBAAyB,CAAC,KAAK,CAAC;aAChC,QAAQ,EAAE;aACV,cAAc,EAAE;aAChB,aAAa,EAAE;aACf,aAAa,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CACvD,IAAI,CAAC,eAAe,EAAE,CACvB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;YACjC,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC;QACxC,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,eAAe;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC;QAC3C,IAAI,CAAC,MAAM,EAAkC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,+DAA+D;IACvD,eAAe;QACrB,OAAQ,IAAI,CAAC,MAAM,EAAkC,CAAC,MAAM,CAC1D,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAChC,CAAC;IACJ,CAAC;uGAzNU,UAAU;2FAAV,UAAU,gbAPV;YACT;gBACE,OAAO,EAAE,aAAa;gBACtB,WAAW,EAAE,UAAU;aACxB;SACF,iDA4B2C,cAAc,6CA5ChD,gBAAgB;;2FAkBf,UAAU;kBApBtB,SAAS;+BACE,aAAa,YACb,gBAAgB,iBAEX,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,QACzC;wBACJ,KAAK,EAAE,aAAa;wBACpB,IAAI,EAAE,SAAS;wBACf,yBAAyB,EAAE,cAAc;wBACzC,mBAAmB,EAAE,sCAAsC;wBAC3D,WAAW,EAAE,oBAAoB;qBAClC,aACU;wBACT;4BACE,OAAO,EAAE,aAAa;4BACtB,WAAW,YAAY;yBACxB;qBACF;wHA4B2C,cAAc","sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n HostAttributeToken,\n ViewEncapsulation,\n contentChildren,\n effect,\n inject,\n input,\n untracked,\n} from '@angular/core';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport type { Subscription } from 'rxjs';\nimport { MlvMenuTrigger } from './menu-trigger';\nimport { MENUBAR_TOKEN } from './menubar.types';\nimport type { MlvMenubarAccessor, MlvMenubarItem } from './menubar.types';\n\n/**\n * Horizontal application menu bar (`mlv-menubar`) — a File / Edit / View style\n * row of top-level menu triggers, implementing the\n * [WAI-ARIA Menubar pattern](https://www.w3.org/WAI/ARIA/apg/patterns/menubar/).\n *\n * Wrap a set of `[mlvMenuTrigger]` elements. Each trigger opens a standard\n * `mlv-menu` dropdown; the bar coordinates them:\n *\n * - `role=\"menubar\"` container with a **roving tabindex** across the top-level\n * items (only the active item is in the tab order).\n * - `ArrowLeft` / `ArrowRight` move between top-level items (wrapping); `Home` /\n * `End` jump to the first / last; printable characters type-ahead by label.\n * - `ArrowDown` / `Enter` / `Space` open the focused item's menu with focus on\n * its first item; `ArrowUp` opens with focus on the last item (handled by the\n * trigger).\n * - While any dropdown is open, hovering or arrowing to another top-level item\n * closes the current menu and opens the sibling (hover-follow only-while-open).\n * - `ArrowRight` / `ArrowLeft` at the top level of an open dropdown cross to the\n * adjacent menubar menu; a focused submenu trigger's own `ArrowRight` wins.\n * - `Escape` closes the menu and restores focus to its top-level item.\n *\n * Declare the `mlv-menu` panels **as siblings of the menubar** (outside its\n * content), so the bar's `contentChildren` query only picks up the top-level\n * triggers — see the example below.\n *\n * @example\n * ```html\n * <mlv-menubar aria-label=\"Main\">\n * <button mlvButton variant=\"transparent\" [mlvMenuTrigger]=\"fileMenu\">File</button>\n * <button mlvButton variant=\"transparent\" [mlvMenuTrigger]=\"editMenu\">Edit</button>\n * </mlv-menubar>\n *\n * <mlv-menu #fileMenu label=\"File\">\n * <mlv-list-item mlvMenuItem (itemClick)=\"onNew()\">New</mlv-list-item>\n * </mlv-menu>\n * <mlv-menu #editMenu label=\"Edit\">\n * <mlv-list-item mlvMenuItem (itemClick)=\"onUndo()\">Undo</mlv-list-item>\n * </mlv-menu>\n * ```\n */\n@Component({\n selector: 'mlv-menubar',\n template: `<ng-content />`,\n styleUrl: './menubar.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'mlv-menubar',\n role: 'menubar',\n '[attr.aria-orientation]': '\"horizontal\"',\n '[attr.aria-label]': 'label() || _initialAriaLabel || null',\n '(keydown)': '_onKeydown($event)',\n },\n providers: [\n {\n provide: MENUBAR_TOKEN,\n useExisting: MlvMenubar,\n },\n ],\n})\nexport class MlvMenubar implements MlvMenubarAccessor {\n // ─── Injected services ────────────────────────────────────────────────────\n\n /** @private Host element reference. */\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n\n /**\n * @private The `aria-label` the consumer placed directly on the `<mlv-menubar>`\n * element, captured before the host binding runs. Used as the accessible-name\n * fallback so a natively-provided `aria-label` is preserved when the `label`\n * input is not used — without it the `[attr.aria-label]` host binding would\n * clobber the consumer's attribute with `null`.\n */\n protected readonly _initialAriaLabel = inject(\n new HostAttributeToken('aria-label'),\n { optional: true },\n );\n\n // ─── Content children ─────────────────────────────────────────────────────\n\n /**\n * @protected The top-level `[mlvMenuTrigger]` children, in DOM order. Only\n * direct descendants of the menubar are found — the `mlv-menu` dropdown\n * panels are declared as siblings, so their items and submenu triggers are\n * never picked up here.\n */\n protected readonly _items = contentChildren(MlvMenuTrigger);\n\n // ─── Inputs ───────────────────────────────────────────────────────────────\n\n /**\n * Accessible label for the menubar (`aria-label`). Use when there is no\n * visible heading that labels the bar.\n */\n readonly label = input<string>('');\n\n // ─── Internal state ───────────────────────────────────────────────────────\n\n /**\n * @private `FocusKeyManager` managing the roving tabindex and horizontal\n * arrow / Home / End / type-ahead navigation across top-level items.\n */\n private _keyManager: FocusKeyManager<MlvMenubarItem> | null = null;\n\n /**\n * @private Subscription to the key manager's `change` stream, keeping the\n * roving tabindex in sync when type-ahead moves the active item.\n */\n private _changeSub: Subscription | null = null;\n\n /**\n * @private The top-level item whose dropdown is currently open, or `null`\n * when the whole bar is closed.\n */\n private _openItem: MlvMenubarItem | null = null;\n\n constructor() {\n // (Re)build the key manager whenever the set of top-level items changes.\n //\n // The effect deliberately depends ONLY on the `_items()` query. All the\n // imperative work below both READS reactive signals (`menuTriggerDisabled()`\n // via the key manager's `skipPredicate`) and WRITES them (`_tabIndex` in\n // `_syncTabIndices`). Because writing `_tabIndex` dirties the child trigger\n // effects — and therefore the view — leaving those reads tracked would let\n // the effect re-notify itself on every view refresh, spinning synchronously.\n // Running the side effects in `untracked` keeps the sole reactive dependency\n // the item set, which is the only thing that should trigger a rebuild.\n effect(() => {\n const items = this._items() as unknown as MlvMenubarItem[];\n untracked(() => {\n if (items.length > 0) {\n this._initKeyManager(items);\n this._syncTabIndices();\n }\n });\n });\n\n inject(DestroyRef).onDestroy(() => this._changeSub?.unsubscribe());\n }\n\n // ─── MlvMenubarAccessor ──────────────────────────────────────────────────────\n\n /** Host element of the menubar (used as a click-outside exclusion). */\n get hostElement(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n\n /**\n * Records `item` as the open dropdown, closing any previously-open sibling\n * and syncing the roving tabindex so the bar's active item follows the open\n * menu. Called by a child trigger from its open path.\n */\n notifyItemOpened(item: MlvMenubarItem): void {\n const previous = this._openItem;\n this._openItem = item;\n if (previous && previous !== item) {\n previous.closeMenu();\n }\n this._keyManager?.setActiveItem(item);\n this._syncTabIndices();\n }\n\n /** Clears the open-item record when `item`'s dropdown closes. */\n notifyItemClosed(item: MlvMenubarItem): void {\n if (this._openItem === item) {\n this._openItem = null;\n }\n }\n\n /** Whether any dropdown in the bar is currently open. */\n hasOpenMenu(): boolean {\n return this._openItem !== null;\n }\n\n /**\n * Hover-follow: while a dropdown is already open, opening the hovered item's\n * dropdown (which, via `notifyItemOpened`, closes the previous one). Does\n * nothing when the bar is fully closed or the item is disabled/already open.\n */\n onItemPointerEnter(item: MlvMenubarItem): void {\n if (!this.hasOpenMenu()) return;\n if (item === this._openItem || item.disabledBoolean) return;\n item.openMenu();\n }\n\n /**\n * Crosses from the open dropdown to an adjacent top-level item's menu,\n * wrapping over disabled items, and opens it with focus on its first item.\n */\n openAdjacentItemMenu(from: MlvMenubarItem, dir: 1 | -1): void {\n const items = this._navigableItems();\n const index = items.indexOf(from);\n if (index === -1 || items.length === 0) return;\n\n const target = items[(index + dir + items.length) % items.length];\n if (target === from) return;\n\n from.closeMenu();\n this._keyManager?.setActiveItem(target);\n this._syncTabIndices();\n target.openMenuWithFirstItemFocused();\n }\n\n // ─── Protected handlers ───────────────────────────────────────────────────\n\n /**\n * @protected Menubar-level keyboard handler.\n *\n * Opening keys (`Enter`, `Space`, `ArrowDown`, `ArrowUp`) are handled by the\n * focused trigger itself, so they are ignored here. Everything else is routed\n * to `FocusKeyManager` for horizontal navigation, Home/End, and type-ahead.\n * If a dropdown is open when the active item changes, the newly-focused item's\n * menu is opened (open-follow).\n */\n protected _onKeydown(event: KeyboardEvent): void {\n switch (event.key) {\n case 'Enter':\n case ' ':\n case 'ArrowDown':\n case 'ArrowUp':\n return;\n }\n\n const keyManager = this._keyManager;\n if (!keyManager) return;\n\n const before = keyManager.activeItem;\n keyManager.onKeydown(event);\n const after = keyManager.activeItem;\n\n if (after && after !== before) {\n this._syncTabIndices();\n if (this._openItem && after !== this._openItem) {\n after.openMenu();\n }\n }\n }\n\n // ─── Private helpers ──────────────────────────────────────────────────────\n\n /**\n * @private Creates or replaces the `FocusKeyManager` with the current items,\n * using horizontal orientation, wrap, Home/End and type-ahead, skipping\n * disabled items. Sets the first item active so the bar has a tabbable entry.\n */\n private _initKeyManager(items: MlvMenubarItem[]): void {\n this._changeSub?.unsubscribe();\n this._keyManager = new FocusKeyManager<MlvMenubarItem>(items)\n .withHorizontalOrientation('ltr')\n .withWrap()\n .withHomeAndEnd()\n .withTypeAhead()\n .skipPredicate((item) => item.disabledBoolean);\n this._changeSub = this._keyManager.change.subscribe(() =>\n this._syncTabIndices(),\n );\n if (!this._keyManager.activeItem) {\n this._keyManager.setFirstItemActive();\n }\n }\n\n /**\n * @private Updates `_tabIndex` on every item so that only the active item has\n * `tabindex=\"0\"` (roving tabindex). All others get `-1`.\n */\n private _syncTabIndices(): void {\n const active = this._keyManager?.activeItem;\n (this._items() as unknown as MlvMenubarItem[]).forEach((item) => {\n item._tabIndex.set(item === active ? 0 : -1);\n });\n }\n\n /** @private The non-disabled top-level items, in DOM order. */\n private _navigableItems(): MlvMenubarItem[] {\n return (this._items() as unknown as MlvMenubarItem[]).filter(\n (item) => !item.disabledBoolean,\n );\n }\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ /** Injection token for the parent `mlv-menubar`. */
3
+ export const MENUBAR_TOKEN = new InjectionToken('MENUBAR_TOKEN');
4
+ //# sourceMappingURL=menubar.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menubar.types.js","sourceRoot":"","sources":["../../../../../../../libs/core/menu/src/lib/menu/menubar.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAiG/C,oDAAoD;AACpD,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,cAAc,CAC7C,eAAe,CAChB,CAAC","sourcesContent":["import { InjectionToken } from '@angular/core';\nimport type { WritableSignal } from '@angular/core';\nimport type { FocusableOption } from '@angular/cdk/a11y';\n\n/**\n * The subset of the `MlvMenuTrigger` API a `mlv-menubar` needs to\n * coordinate its top-level items (roving tabindex, arrow navigation, and the\n * \"open-follow\" behaviour where moving to a sibling while a menu is open opens\n * that sibling's menu).\n *\n * `MlvMenuTrigger` implements this shape at runtime when it is a direct\n * child of a `mlv-menubar` (i.e. it can inject {@link MENUBAR_TOKEN}).\n */\nexport interface MlvMenubarItem extends FocusableOption {\n /** Whether this top-level item is disabled — used by the bar's `skipPredicate`. */\n readonly disabledBoolean: boolean;\n\n /**\n * Roving tabindex signal for this item — `0` for the currently active item,\n * `-1` for every other item. Written by the parent `mlv-menubar`.\n */\n readonly _tabIndex: WritableSignal<number>;\n\n /** Whether this item's dropdown menu is currently open. */\n isMenuOpen(): boolean;\n\n /** Opens this item's dropdown without moving focus into the panel. */\n openMenu(): void;\n\n /** Closes this item's dropdown. */\n closeMenu(): void;\n\n /** Opens this item's dropdown and moves focus to the first menu item. */\n openMenuWithFirstItemFocused(): void;\n\n /** Opens this item's dropdown and moves focus to the last menu item. */\n openMenuWithLastItemFocused(): void;\n\n /** Returns the item's visible text label, used for menubar type-ahead. */\n getLabel(): string;\n}\n\n/**\n * Accessor a `mlv-menubar` exposes to its child triggers via {@link MENUBAR_TOKEN}.\n * Child triggers use it to report open/close state and to request sibling-menu\n * navigation, without importing the concrete `MlvMenubar`.\n */\nexport interface MlvMenubarAccessor {\n /**\n * Host element of the menubar. Passed to `MlvPopupService` as a click-outside\n * exclusion so that clicking a sibling top-level item switches menus instead\n * of dismissing the open dropdown.\n */\n readonly hostElement: HTMLElement;\n\n /**\n * Called by a child when its dropdown opens. The bar records the open item,\n * closes any previously-open sibling, and syncs the roving tabindex.\n */\n notifyItemOpened(item: MlvMenubarItem): void;\n\n /** Called by a child when its dropdown closes. */\n notifyItemClosed(item: MlvMenubarItem): void;\n\n /**\n * Called on `mouseenter` of a child. Opens the hovered item's dropdown **only\n * while another dropdown in the bar is already open** (hover-follow); does\n * nothing when the bar is fully closed.\n */\n onItemPointerEnter(item: MlvMenubarItem): void;\n\n /** Whether any dropdown in the bar is currently open. */\n hasOpenMenu(): boolean;\n\n /**\n * Moves to the item adjacent to `from` (wrapping over disabled items) and\n * opens its dropdown with focus on the first item. Called from within an open\n * dropdown on ArrowRight (`dir = 1`) or ArrowLeft (`dir = -1`) to cross to a\n * sibling menubar menu.\n */\n openAdjacentItemMenu(from: MlvMenubarItem, dir: 1 | -1): void;\n}\n\n/**\n * Controller a menubar dropdown uses to cross to a sibling menubar menu when\n * ArrowRight / ArrowLeft is pressed at the top level of the open dropdown.\n * Registered on the `MlvMenu` by the opening `MlvMenuTrigger` when\n * (and only when) that trigger is a menubar child.\n */\nexport interface MlvMenubarMenuController {\n /** Cross to the next menubar item's menu (in-menu ArrowRight). */\n openNextItemMenu(): void;\n\n /** Cross to the previous menubar item's menu (in-menu ArrowLeft). */\n openPreviousItemMenu(): void;\n}\n\n/** Injection token for the parent `mlv-menubar`. */\nexport const MENUBAR_TOKEN = new InjectionToken<MlvMenubarAccessor>(\n 'MENUBAR_TOKEN',\n);\n"]}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Minimum horizontal travel, in CSS pixels, that counts as aiming at the submenu.
3
+ *
4
+ * Without it a purely vertical move qualifies: `deltaX === 0` is not "away from"
5
+ * the submenu, and the cone between the panel's top and bottom corners is very
6
+ * wide when measured from the far side of the item, so sliding straight down the
7
+ * item column read as heading toward the panel and kept cancelling the close.
8
+ *
9
+ * Small enough that a genuine diagonal still registers on the first move, large
10
+ * enough that jitter along one axis does not.
11
+ */
12
+ const MIN_HORIZONTAL_PROGRESS = 2;
13
+ /** Returns whether the current pointer trajectory is heading into a submenu. */
14
+ export function isCursorHeadingToSubmenu(currentX, currentY, state) {
15
+ const { lastX, lastY, submenuRect, side } = state;
16
+ const deltaX = currentX - lastX;
17
+ const progress = side === 'right' ? deltaX : -deltaX;
18
+ if (progress < MIN_HORIZONTAL_PROGRESS)
19
+ return false;
20
+ const edgeX = side === 'right' ? submenuRect.left : submenuRect.right;
21
+ const edgeDelta = edgeX - lastX;
22
+ if (Math.abs(edgeDelta) < 1)
23
+ return true;
24
+ const currentSlope = (currentY - lastY) / edgeDelta;
25
+ const topSlope = (submenuRect.top - lastY) / edgeDelta;
26
+ const bottomSlope = (submenuRect.bottom - lastY) / edgeDelta;
27
+ return (currentSlope >= Math.min(topSlope, bottomSlope) &&
28
+ currentSlope <= Math.max(topSlope, bottomSlope));
29
+ }
30
+ //# sourceMappingURL=submenu-aim.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submenu-aim.js","sourceRoot":"","sources":["../../../../../../../libs/core/menu/src/lib/menu/submenu-aim.ts"],"names":[],"mappings":"AASA;;;;;;;;;;GAUG;AACH,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAElC,gFAAgF;AAChF,MAAM,UAAU,wBAAwB,CACtC,QAAgB,EAChB,QAAgB,EAChB,KAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAClD,MAAM,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAChC,MAAM,QAAQ,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACrD,IAAI,QAAQ,GAAG,uBAAuB;QAAE,OAAO,KAAK,CAAC;IAErD,MAAM,KAAK,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC;IACtE,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC;IAChC,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzC,MAAM,YAAY,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC;IACpD,MAAM,QAAQ,GAAG,CAAC,WAAW,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC;IACvD,MAAM,WAAW,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC;IAC7D,OAAO,CACL,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC;QAC/C,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAChD,CAAC;AACJ,CAAC","sourcesContent":["/** Cursor history used by the submenu safe-triangle algorithm. */\nexport interface MlvSubmenuAimState {\n lastX: number;\n lastY: number;\n submenuRect: DOMRect;\n side: 'right' | 'left';\n cursorEnteredSubmenu: boolean;\n}\n\n/**\n * Minimum horizontal travel, in CSS pixels, that counts as aiming at the submenu.\n *\n * Without it a purely vertical move qualifies: `deltaX === 0` is not \"away from\"\n * the submenu, and the cone between the panel's top and bottom corners is very\n * wide when measured from the far side of the item, so sliding straight down the\n * item column read as heading toward the panel and kept cancelling the close.\n *\n * Small enough that a genuine diagonal still registers on the first move, large\n * enough that jitter along one axis does not.\n */\nconst MIN_HORIZONTAL_PROGRESS = 2;\n\n/** Returns whether the current pointer trajectory is heading into a submenu. */\nexport function isCursorHeadingToSubmenu(\n currentX: number,\n currentY: number,\n state: MlvSubmenuAimState,\n): boolean {\n const { lastX, lastY, submenuRect, side } = state;\n const deltaX = currentX - lastX;\n const progress = side === 'right' ? deltaX : -deltaX;\n if (progress < MIN_HORIZONTAL_PROGRESS) return false;\n\n const edgeX = side === 'right' ? submenuRect.left : submenuRect.right;\n const edgeDelta = edgeX - lastX;\n if (Math.abs(edgeDelta) < 1) return true;\n\n const currentSlope = (currentY - lastY) / edgeDelta;\n const topSlope = (submenuRect.top - lastY) / edgeDelta;\n const bottomSlope = (submenuRect.bottom - lastY) / edgeDelta;\n return (\n currentSlope >= Math.min(topSlope, bottomSlope) &&\n currentSlope <= Math.max(topSlope, bottomSlope)\n );\n}\n"]}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=malva-ui-core-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"malva-ui-core-menu.js","sourceRoot":"","sources":["../../../../../libs/core/menu/src/malva-ui-core-menu.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC","sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"]}
@@ -0,0 +1,5 @@
1
+ export * from './lib/notification.types';
2
+ export * from './lib/notification-ref';
3
+ export * from './lib/notification-item/notification-item';
4
+ export * from './lib/notification.service';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/core/notification/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,4BAA4B,CAAC","sourcesContent":["export * from './lib/notification.types';\nexport * from './lib/notification-ref';\nexport * from './lib/notification-item/notification-item';\nexport * from './lib/notification.service';\n"]}
@@ -0,0 +1,65 @@
1
+ import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, inject, TemplateRef, } from '@angular/core';
2
+ import { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';
3
+ import { LucideDynamicIcon, LucideInfo, LucideX, LucideCircleCheck, LucideCircleAlert, LucideTriangleAlert, } from '@lucide/angular';
4
+ import { MlvAbstractToastItem } from '@malva-ui/core/toast';
5
+ import { MlvButton } from '@malva-ui/core/button';
6
+ import { MlvClick } from '@malva-ui/cdk/accessibility';
7
+ import { MlvChip } from '@malva-ui/core/chip';
8
+ import { MLV_NOTIFICATION_I18N } from '@malva-ui/i18n';
9
+ import * as i0 from "@angular/core";
10
+ export class MlvNotificationItem extends MlvAbstractToastItem {
11
+ /** @protected The component's i18n strings signal. */
12
+ _i18n = inject(MLV_NOTIFICATION_I18N);
13
+ /** @protected Lucide icon class selected from the notification tone. */
14
+ toneIcon = computed(() => {
15
+ switch (this.toast().tone) {
16
+ case 'success':
17
+ return LucideCircleCheck;
18
+ case 'danger':
19
+ return LucideCircleAlert;
20
+ case 'warning':
21
+ return LucideTriangleAlert;
22
+ default:
23
+ return LucideInfo;
24
+ }
25
+ }, /* @ts-ignore */
26
+ ...(ngDevMode ? [{ debugName: "toneIcon" }] : /* istanbul ignore next */ []));
27
+ /** @protected Template branch of dynamic content, when supplied. */
28
+ _templateContent = computed(() => {
29
+ const content = this.toast().content;
30
+ return content instanceof TemplateRef ? content : null;
31
+ }, /* @ts-ignore */
32
+ ...(ngDevMode ? [{ debugName: "_templateContent" }] : /* istanbul ignore next */ []));
33
+ /** @protected Component branch of dynamic content, when supplied. */
34
+ _componentContent = computed(() => {
35
+ const content = this.toast().content;
36
+ return typeof content === 'function' ? content : null;
37
+ }, /* @ts-ignore */
38
+ ...(ngDevMode ? [{ debugName: "_componentContent" }] : /* istanbul ignore next */ []));
39
+ /** @protected Invokes an action's callback and then dismisses the notification. */
40
+ onActionClick(action) {
41
+ action.action();
42
+ this.onClose();
43
+ }
44
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvNotificationItem, deps: null, target: i0.ɵɵFactoryTarget.Component });
45
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: MlvNotificationItem, isStandalone: true, selector: "mlv-notification-item", host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "focusin": "onFocusIn()", "focusout": "onFocusOut($event)" }, properties: { "class": "\"mlv-notification-item mlv-notification-item--\" + toast().tone" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"mlv-notification-item__header\">\n @if (toast().showIcon) {\n <mlv-chip\n class=\"mlv-notification-item__icon\"\n muted\n [tone]=\"$any(toast().tone)\"\n >\n <svg [lucideIcon]=\"toneIcon()\" size=\"20\" />\n </mlv-chip>\n }\n <div class=\"mlv-notification-item__content\">\n @if (_templateContent(); as template) {\n <div class=\"mlv-notification-item__dynamic-content\">\n <ng-container\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"toast().contentContext\"\n [ngTemplateOutletInjector]=\"toast().contentInjector\"\n />\n </div>\n } @else if (_componentContent(); as component) {\n <div class=\"mlv-notification-item__dynamic-content\">\n <ng-container\n [ngComponentOutlet]=\"component\"\n [ngComponentOutletInjector]=\"toast().contentInjector\"\n />\n </div>\n } @else {\n <span class=\"mlv-notification-item__title\">{{ toast().title }}</span>\n } @if (toast().description; as description) {\n <p class=\"mlv-notification-item__description\">{{ description }}</p>\n }\n </div>\n @if (toast().closable) {\n <button\n type=\"button\"\n mlvButton\n mlvDensity=\"tight\"\n variant=\"transparent\"\n shape=\"square\"\n [attr.aria-label]=\"_i18n().dismiss\"\n (mlvClick)=\"onClose()\"\n >\n <svg lucideX size=\"16\" />\n </button>\n }\n</div>\n\n@if (toast().actions.length > 0) {\n<div class=\"mlv-notification-item__actions\">\n @for (action of toast().actions; track action.label) {\n <button\n type=\"button\"\n mlvButton\n (mlvClick)=\"onActionClick(action)\"\n [variant]=\"action.variant ?? 'transparent'\"\n mlvDensity=\"tight\"\n >\n {{ action.label }}\n </button>\n }\n</div>\n}\n", styles: [".mlv-notification-item{display:block;width:calc(100vw - 2rem)}@media(min-width:768px){.mlv-notification-item{width:25rem}}.mlv-notification-item{background:var(--mlv-elevation-bg-3);border:var(--mlv-stroke-width, .0625rem) solid var(--mlv-border-subtle);border-radius:var(--mlv-radius-xl);box-shadow:var(--mlv-shadow-3);color:var(--mlv-text-primary);font-size:var(--mlv-font-size-m);overflow:hidden}.mlv-notification-item__header{display:flex;align-items:flex-start;gap:var(--mlv-spacing-3);padding:var(--mlv-padding-l)}.mlv-notification-item__content{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--mlv-spacing-2)}.mlv-notification-item__title{font-weight:var(--mlv-font-weight-semibold);font-size:var(--mlv-font-size-l);color:var(--mlv-text-primary);line-height:var(--mlv-line-height-tight)}.mlv-notification-item__description{margin:0;color:var(--mlv-text-secondary);line-height:var(--mlv-line-height-loose);word-break:break-word}.mlv-notification-item__dynamic-content{min-width:0;color:var(--mlv-text-primary);overflow-wrap:anywhere}.mlv-notification-item.mlv-notification-item__icon,.mlv-notification-item .mlv-notification-item__icon{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding-block:0;padding-inline:0;line-height:1}.mlv-notification-item.mlv-notification-item__icon .mlv-chip__label,.mlv-notification-item .mlv-notification-item__icon .mlv-chip__label{display:block;width:1.25rem;height:1.25rem}.mlv-notification-item__actions{display:flex;align-items:center;gap:var(--mlv-spacing-3);padding:0 var(--mlv-spacing-6) .875rem 4rem}.mlv-notification-item{border-left:.25rem solid transparent}.mlv-notification-item--success{border-left-color:var(--mlv-border-success)}.mlv-notification-item--danger{border-left-color:var(--mlv-background-danger-1)}.mlv-notification-item--warning{border-left-color:var(--mlv-border-warning)}.mlv-notification-item--info{border-left-color:var(--mlv-border-info)}.mlv-notification-item--default{border-left-color:var(--mlv-background-accent-1)}\n"], dependencies: [{ kind: "component", type: LucideDynamicIcon, selector: "svg[lucideIcon]", inputs: ["lucideIcon"] }, { kind: "component", type: LucideX, selector: "svg[lucideX]" }, { kind: "component", type: MlvButton, selector: "button[mlvButton], a[mlvButton]", inputs: ["variant", "shape", "disabled", "loading"] }, { kind: "directive", type: MlvClick, selector: "[mlvClick]", inputs: ["disabled", "hostRole"], outputs: ["mlvClick"] }, { kind: "component", type: MlvChip, selector: "mlv-chip", inputs: ["tone", "muted", "rounded", "floating", "closable", "chipTabIndex", "closeAriaLabel"], outputs: ["chipClose"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
46
+ }
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvNotificationItem, decorators: [{
48
+ type: Component,
49
+ args: [{ selector: 'mlv-notification-item', imports: [
50
+ LucideDynamicIcon,
51
+ LucideX,
52
+ MlvButton,
53
+ MlvClick,
54
+ MlvChip,
55
+ NgComponentOutlet,
56
+ NgTemplateOutlet,
57
+ ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
58
+ '[class]': '"mlv-notification-item mlv-notification-item--" + toast().tone',
59
+ '(mouseenter)': 'onMouseEnter()',
60
+ '(mouseleave)': 'onMouseLeave()',
61
+ '(focusin)': 'onFocusIn()',
62
+ '(focusout)': 'onFocusOut($event)',
63
+ }, template: "<div class=\"mlv-notification-item__header\">\n @if (toast().showIcon) {\n <mlv-chip\n class=\"mlv-notification-item__icon\"\n muted\n [tone]=\"$any(toast().tone)\"\n >\n <svg [lucideIcon]=\"toneIcon()\" size=\"20\" />\n </mlv-chip>\n }\n <div class=\"mlv-notification-item__content\">\n @if (_templateContent(); as template) {\n <div class=\"mlv-notification-item__dynamic-content\">\n <ng-container\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"toast().contentContext\"\n [ngTemplateOutletInjector]=\"toast().contentInjector\"\n />\n </div>\n } @else if (_componentContent(); as component) {\n <div class=\"mlv-notification-item__dynamic-content\">\n <ng-container\n [ngComponentOutlet]=\"component\"\n [ngComponentOutletInjector]=\"toast().contentInjector\"\n />\n </div>\n } @else {\n <span class=\"mlv-notification-item__title\">{{ toast().title }}</span>\n } @if (toast().description; as description) {\n <p class=\"mlv-notification-item__description\">{{ description }}</p>\n }\n </div>\n @if (toast().closable) {\n <button\n type=\"button\"\n mlvButton\n mlvDensity=\"tight\"\n variant=\"transparent\"\n shape=\"square\"\n [attr.aria-label]=\"_i18n().dismiss\"\n (mlvClick)=\"onClose()\"\n >\n <svg lucideX size=\"16\" />\n </button>\n }\n</div>\n\n@if (toast().actions.length > 0) {\n<div class=\"mlv-notification-item__actions\">\n @for (action of toast().actions; track action.label) {\n <button\n type=\"button\"\n mlvButton\n (mlvClick)=\"onActionClick(action)\"\n [variant]=\"action.variant ?? 'transparent'\"\n mlvDensity=\"tight\"\n >\n {{ action.label }}\n </button>\n }\n</div>\n}\n", styles: [".mlv-notification-item{display:block;width:calc(100vw - 2rem)}@media(min-width:768px){.mlv-notification-item{width:25rem}}.mlv-notification-item{background:var(--mlv-elevation-bg-3);border:var(--mlv-stroke-width, .0625rem) solid var(--mlv-border-subtle);border-radius:var(--mlv-radius-xl);box-shadow:var(--mlv-shadow-3);color:var(--mlv-text-primary);font-size:var(--mlv-font-size-m);overflow:hidden}.mlv-notification-item__header{display:flex;align-items:flex-start;gap:var(--mlv-spacing-3);padding:var(--mlv-padding-l)}.mlv-notification-item__content{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--mlv-spacing-2)}.mlv-notification-item__title{font-weight:var(--mlv-font-weight-semibold);font-size:var(--mlv-font-size-l);color:var(--mlv-text-primary);line-height:var(--mlv-line-height-tight)}.mlv-notification-item__description{margin:0;color:var(--mlv-text-secondary);line-height:var(--mlv-line-height-loose);word-break:break-word}.mlv-notification-item__dynamic-content{min-width:0;color:var(--mlv-text-primary);overflow-wrap:anywhere}.mlv-notification-item.mlv-notification-item__icon,.mlv-notification-item .mlv-notification-item__icon{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding-block:0;padding-inline:0;line-height:1}.mlv-notification-item.mlv-notification-item__icon .mlv-chip__label,.mlv-notification-item .mlv-notification-item__icon .mlv-chip__label{display:block;width:1.25rem;height:1.25rem}.mlv-notification-item__actions{display:flex;align-items:center;gap:var(--mlv-spacing-3);padding:0 var(--mlv-spacing-6) .875rem 4rem}.mlv-notification-item{border-left:.25rem solid transparent}.mlv-notification-item--success{border-left-color:var(--mlv-border-success)}.mlv-notification-item--danger{border-left-color:var(--mlv-background-danger-1)}.mlv-notification-item--warning{border-left-color:var(--mlv-border-warning)}.mlv-notification-item--info{border-left-color:var(--mlv-border-info)}.mlv-notification-item--default{border-left-color:var(--mlv-background-accent-1)}\n"] }]
64
+ }] });
65
+ //# sourceMappingURL=notification-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-item.js","sourceRoot":"","sources":["../../../../../../../libs/core/notification/src/lib/notification-item/notification-item.ts","../../../../../../../libs/core/notification/src/lib/notification-item/notification-item.html"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EACvB,SAAS,EACT,iBAAiB,EACjB,QAAQ,EACR,MAAM,EACN,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,OAAO,EACP,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAK5D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;;AAyBvD,MAAM,OAAO,mBACX,SAAQ,oBAA6C;IAGrD,sDAAsD;IACnC,KAAK,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAEzD,wEAAwE;IACrD,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE;QAC1C,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;YAC1B,KAAK,SAAS;gBACZ,OAAO,iBAAiB,CAAC;YAC3B,KAAK,QAAQ;gBACX,OAAO,iBAAiB,CAAC;YAC3B,KAAK,SAAS;gBACZ,OAAO,mBAAmB,CAAC;YAC7B;gBACE,OAAO,UAAU,CAAC;QACtB,CAAC;IACH,CAAC;iFAAC,CAAC;IAEH,oEAAoE;IACjD,gBAAgB,GAAG,QAAQ,CAAC,GAAG,EAAE;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC;QACrC,OAAO,OAAO,YAAY,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IACzD,CAAC;yFAAC,CAAC;IAEH,qEAAqE;IAClD,iBAAiB,GAAG,QAAQ,CAAC,GAAG,EAAE;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC;QACrC,OAAO,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,CAAC;0FAAC,CAAC;IAEH,mFAAmF;IACzE,aAAa,CAAC,MAA6B;QACnD,MAAM,CAAC,MAAM,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;uGArCU,mBAAmB;2FAAnB,mBAAmB,0VCnDhC,mvDA8DA,wjED/BI,iBAAiB,oFACjB,OAAO,yDACP,SAAS,iIACT,QAAQ,gHACR,OAAO,6KACP,iBAAiB,yRACjB,gBAAgB;;2FAcP,mBAAmB;kBAvB/B,SAAS;+BACE,uBAAuB,WACxB;wBACP,iBAAiB;wBACjB,OAAO;wBACP,SAAS;wBACT,QAAQ;wBACR,OAAO;wBACP,iBAAiB;wBACjB,gBAAgB;qBACjB,iBAGc,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,QACzC;wBACJ,SAAS,EAAE,gEAAgE;wBAC3E,cAAc,EAAE,gBAAgB;wBAChC,cAAc,EAAE,gBAAgB;wBAChC,WAAW,EAAE,aAAa;wBAC1B,YAAY,EAAE,oBAAoB;qBACnC","sourcesContent":["import type { OnDestroy, OnInit } from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n TemplateRef,\n} from '@angular/core';\nimport { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport {\n LucideDynamicIcon,\n LucideInfo,\n LucideX,\n LucideCircleCheck,\n LucideCircleAlert,\n LucideTriangleAlert,\n} from '@lucide/angular';\nimport { MlvAbstractToastItem } from '@malva-ui/core/toast';\nimport type {\n MlvInternalNotification,\n MlvNotificationAction,\n} from '../notification.types';\nimport { MlvButton } from '@malva-ui/core/button';\nimport { MlvClick } from '@malva-ui/cdk/accessibility';\nimport { MlvChip } from '@malva-ui/core/chip';\nimport { MLV_NOTIFICATION_I18N } from '@malva-ui/i18n';\n\n@Component({\n selector: 'mlv-notification-item',\n imports: [\n LucideDynamicIcon,\n LucideX,\n MlvButton,\n MlvClick,\n MlvChip,\n NgComponentOutlet,\n NgTemplateOutlet,\n ],\n templateUrl: './notification-item.html',\n styleUrl: './notification-item.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': '\"mlv-notification-item mlv-notification-item--\" + toast().tone',\n '(mouseenter)': 'onMouseEnter()',\n '(mouseleave)': 'onMouseLeave()',\n '(focusin)': 'onFocusIn()',\n '(focusout)': 'onFocusOut($event)',\n },\n})\nexport class MlvNotificationItem\n extends MlvAbstractToastItem<MlvInternalNotification>\n implements OnInit, OnDestroy\n{\n /** @protected The component's i18n strings signal. */\n protected readonly _i18n = inject(MLV_NOTIFICATION_I18N);\n\n /** @protected Lucide icon class selected from the notification tone. */\n protected readonly toneIcon = computed(() => {\n switch (this.toast().tone) {\n case 'success':\n return LucideCircleCheck;\n case 'danger':\n return LucideCircleAlert;\n case 'warning':\n return LucideTriangleAlert;\n default:\n return LucideInfo;\n }\n });\n\n /** @protected Template branch of dynamic content, when supplied. */\n protected readonly _templateContent = computed(() => {\n const content = this.toast().content;\n return content instanceof TemplateRef ? content : null;\n });\n\n /** @protected Component branch of dynamic content, when supplied. */\n protected readonly _componentContent = computed(() => {\n const content = this.toast().content;\n return typeof content === 'function' ? content : null;\n });\n\n /** @protected Invokes an action's callback and then dismisses the notification. */\n protected onActionClick(action: MlvNotificationAction): void {\n action.action();\n this.onClose();\n }\n}\n","<div class=\"mlv-notification-item__header\">\n @if (toast().showIcon) {\n <mlv-chip\n class=\"mlv-notification-item__icon\"\n muted\n [tone]=\"$any(toast().tone)\"\n >\n <svg [lucideIcon]=\"toneIcon()\" size=\"20\" />\n </mlv-chip>\n }\n <div class=\"mlv-notification-item__content\">\n @if (_templateContent(); as template) {\n <div class=\"mlv-notification-item__dynamic-content\">\n <ng-container\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"toast().contentContext\"\n [ngTemplateOutletInjector]=\"toast().contentInjector\"\n />\n </div>\n } @else if (_componentContent(); as component) {\n <div class=\"mlv-notification-item__dynamic-content\">\n <ng-container\n [ngComponentOutlet]=\"component\"\n [ngComponentOutletInjector]=\"toast().contentInjector\"\n />\n </div>\n } @else {\n <span class=\"mlv-notification-item__title\">{{ toast().title }}</span>\n } @if (toast().description; as description) {\n <p class=\"mlv-notification-item__description\">{{ description }}</p>\n }\n </div>\n @if (toast().closable) {\n <button\n type=\"button\"\n mlvButton\n mlvDensity=\"tight\"\n variant=\"transparent\"\n shape=\"square\"\n [attr.aria-label]=\"_i18n().dismiss\"\n (mlvClick)=\"onClose()\"\n >\n <svg lucideX size=\"16\" />\n </button>\n }\n</div>\n\n@if (toast().actions.length > 0) {\n<div class=\"mlv-notification-item__actions\">\n @for (action of toast().actions; track action.label) {\n <button\n type=\"button\"\n mlvButton\n (mlvClick)=\"onActionClick(action)\"\n [variant]=\"action.variant ?? 'transparent'\"\n mlvDensity=\"tight\"\n >\n {{ action.label }}\n </button>\n }\n</div>\n}\n"]}
@@ -0,0 +1,13 @@
1
+ import { MlvToastRef } from '@malva-ui/core/toast';
2
+ /**
3
+ * Handle returned by `MlvNotificationService.show()` and
4
+ * `MlvNotificationService.open()`.
5
+ *
6
+ * Component content can inject this class and template content receives it in
7
+ * its context.
8
+ *
9
+ * @typeParam D - Type of the data supplied for this notification.
10
+ */
11
+ export class MlvNotificationRef extends MlvToastRef {
12
+ }
13
+ //# sourceMappingURL=notification-ref.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-ref.js","sourceRoot":"","sources":["../../../../../../libs/core/notification/src/lib/notification-ref.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;;;;;;;GAQG;AACH,MAAM,OAAO,kBAAgC,SAAQ,WAAc;CAAG","sourcesContent":["import { MlvToastRef } from '@malva-ui/core/toast';\n\n/**\n * Handle returned by `MlvNotificationService.show()` and\n * `MlvNotificationService.open()`.\n *\n * Component content can inject this class and template content receives it in\n * its context.\n *\n * @typeParam D - Type of the data supplied for this notification.\n */\nexport class MlvNotificationRef<D = unknown> extends MlvToastRef<D> {}\n"]}
@@ -0,0 +1,118 @@
1
+ import { Injectable, Injector } from '@angular/core';
2
+ import { MLV_TOAST_DEFAULT_POSITION, MlvAbstractToastService, MlvToastContainer, MlvToastRef, joinAnnouncementParts, resolveToastPoliteness, } from '@malva-ui/core/toast';
3
+ import { NOTIFICATION_CONFIG, NOTIFICATION_DATA } from './notification.types';
4
+ import { MlvNotificationItem } from './notification-item/notification-item';
5
+ import { MlvNotificationRef } from './notification-ref';
6
+ import * as i0 from "@angular/core";
7
+ export class MlvNotificationService extends MlvAbstractToastService {
8
+ /** @protected Overlay container component reused from `@malva-ui/core/toast`. */
9
+ containerType = MlvToastContainer;
10
+ /** @protected Concrete item component the container renders for each notification. */
11
+ toastItemType = MlvNotificationItem;
12
+ /**
13
+ * @protected Announces the title, description, and the labels of any action
14
+ * buttons — a keyboard or screen-reader user needs to know an action exists,
15
+ * since notifications never steal focus. Returns `null` for template and
16
+ * component content, whose rendered text the service cannot read.
17
+ */
18
+ resolveAnnouncement(config) {
19
+ if (config.dynamicContent) {
20
+ return null;
21
+ }
22
+ const message = joinAnnouncementParts([
23
+ config.title,
24
+ config.description,
25
+ ...(config.actions ?? []).map((action) => action.label),
26
+ ]);
27
+ return message
28
+ ? {
29
+ message,
30
+ politeness: resolveToastPoliteness(config.tone ?? 'default'),
31
+ }
32
+ : null;
33
+ }
34
+ /** @protected Builds a fully-resolved internal notification from user config, applying defaults. */
35
+ buildItem(id, config, ref) {
36
+ const internalConfig = config;
37
+ const openConfig = internalConfig.openConfig;
38
+ const contentContext = openConfig
39
+ ? {
40
+ $implicit: ref,
41
+ ref,
42
+ data: openConfig.data,
43
+ config: openConfig,
44
+ }
45
+ : undefined;
46
+ const contentInjector = openConfig
47
+ ? Injector.create({
48
+ parent: openConfig.injector ?? this._environmentInjector,
49
+ providers: [
50
+ { provide: MlvNotificationRef, useValue: ref },
51
+ { provide: MlvToastRef, useValue: ref },
52
+ { provide: NOTIFICATION_DATA, useValue: openConfig.data },
53
+ { provide: NOTIFICATION_CONFIG, useValue: openConfig },
54
+ ],
55
+ })
56
+ : undefined;
57
+ return {
58
+ id,
59
+ title: config.title,
60
+ description: config.description ?? '',
61
+ position: config.position ?? MLV_TOAST_DEFAULT_POSITION,
62
+ tone: config.tone ?? 'default',
63
+ displayTime: config.displayTime ?? 6000,
64
+ pauseOnHover: config.pauseOnHover ?? true,
65
+ closable: config.closable ?? true,
66
+ actions: config.actions ?? [],
67
+ showIcon: config.showIcon ?? true,
68
+ content: internalConfig.dynamicContent,
69
+ contentContext,
70
+ contentInjector,
71
+ };
72
+ }
73
+ /**
74
+ * Opens escaped string, template, or component content as a notification.
75
+ *
76
+ * Template content receives `MlvNotificationTemplateContext`; component content
77
+ * can inject `MlvNotificationRef`, `NOTIFICATION_DATA`, and
78
+ * `NOTIFICATION_CONFIG`.
79
+ */
80
+ open(content, config = {}) {
81
+ if (typeof content === 'string') {
82
+ return super.show({ ...config, title: content });
83
+ }
84
+ const internalConfig = {
85
+ ...config,
86
+ title: '',
87
+ dynamicContent: content,
88
+ openConfig: config,
89
+ };
90
+ return super.show(internalConfig);
91
+ }
92
+ /** @protected Creates a data-aware reference for each notification. */
93
+ _createRef(id, position, config) {
94
+ return new MlvNotificationRef(id, config.data, () => this.close(id, position));
95
+ }
96
+ success(title, config) {
97
+ return this.show({ ...config, title, tone: 'success' });
98
+ }
99
+ error(title, config) {
100
+ return this.show({ ...config, title, tone: 'danger' });
101
+ }
102
+ warning(title, config) {
103
+ return this.show({ ...config, title, tone: 'warning' });
104
+ }
105
+ info(title, config) {
106
+ return this.show({ ...config, title, tone: 'info' });
107
+ }
108
+ tone(v, title, config) {
109
+ return this.show({ ...config, title, tone: v });
110
+ }
111
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvNotificationService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
112
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvNotificationService, providedIn: 'root' });
113
+ }
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvNotificationService, decorators: [{
115
+ type: Injectable,
116
+ args: [{ providedIn: 'root' }]
117
+ }] });
118
+ //# sourceMappingURL=notification.service.js.map