@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 @@
1
+ {"version":3,"file":"popup-positions.js","sourceRoot":"","sources":["../../../../../../libs/core/popup/src/lib/popup-positions.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Provider } from '@angular/core';\nimport { InjectionToken } from '@angular/core';\nimport type { ConnectedPosition } from '@angular/cdk/overlay';\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\n/**\n * The set of named popup positions supported out of the box.\n *\n * Positions follow the `{side}-{alignment}` convention:\n * - **side** — the side of the trigger the popup appears on (`top`, `bottom`, `left`, `right`)\n * - **alignment** — where the popup edge aligns to the trigger:\n * `start` = top (for left/right) or left (for top/bottom),\n * `end` = bottom (for left/right) or right (for top/bottom),\n * _(omitted)_ = centered\n *\n * All positions include an 8px gap between the trigger and the popup.\n */\nexport type MlvPopupPositionName =\n | 'top-start'\n | 'top'\n | 'top-end'\n | 'bottom-start'\n | 'bottom'\n | 'bottom-end'\n | 'left-start'\n | 'left'\n | 'left-end'\n | 'right-start'\n | 'right'\n | 'right-end';\n\n// ---------------------------------------------------------------------------\n// Default position map\n// ---------------------------------------------------------------------------\n\n/**\n * The default named-position map used when no custom `POPUP_POSITIONS` provider\n * is registered. Contains all twelve standard popup placements.\n *\n * Override globally with `providePopupPositions()`, or per-component via\n * the `POPUP_POSITIONS` injection token.\n */\nexport const POPUP_POSITION_MAP: ReadonlyMap<\n MlvPopupPositionName,\n ConnectedPosition\n> = new Map<MlvPopupPositionName, ConnectedPosition>([\n // ── Top ──────────────────────────────────────────────────────────────────\n [\n 'top-start',\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -8,\n },\n ],\n [\n 'top',\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: -8,\n },\n ],\n [\n 'top-end',\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetY: -8,\n },\n ],\n // ── Bottom ───────────────────────────────────────────────────────────────\n [\n 'bottom-start',\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 8,\n },\n ],\n [\n 'bottom',\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: 8,\n },\n ],\n [\n 'bottom-end',\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: 8,\n },\n ],\n // ── Left ─────────────────────────────────────────────────────────────────\n [\n 'left-start',\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: -8,\n },\n ],\n [\n 'left',\n {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: -8,\n },\n ],\n [\n 'left-end',\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: -8,\n },\n ],\n // ── Right ────────────────────────────────────────────────────────────────\n [\n 'right-start',\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: 8,\n },\n ],\n [\n 'right',\n {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: 8,\n },\n ],\n [\n 'right-end',\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: 8,\n },\n ],\n]);\n\n// ---------------------------------------------------------------------------\n// Injection token\n// ---------------------------------------------------------------------------\n\n/**\n * Injection token that holds the active named-position map.\n *\n * Defaults to {@link POPUP_POSITION_MAP}. Override at the application or\n * component level with {@link providePopupPositions} to add, remove, or\n * replace named positions.\n *\n * @example Override globally in app providers\n * ```ts\n * providePopupPositions(new Map([\n * ['bottom', { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top', offsetY: 4 }],\n * ]))\n * ```\n */\nexport const POPUP_POSITIONS = new InjectionToken<\n ReadonlyMap<MlvPopupPositionName, ConnectedPosition>\n>('POPUP_POSITIONS', {\n providedIn: 'root',\n factory: () => POPUP_POSITION_MAP,\n});\n\n// ---------------------------------------------------------------------------\n// Provider factory\n// ---------------------------------------------------------------------------\n\n/**\n * Registers a custom named-position map as the active `POPUP_POSITIONS`.\n *\n * Call in the root `providers` array (or a component's `providers`) to\n * replace all default positions with a custom set.\n *\n * @param positions — A `Map` of {@link MlvPopupPositionName} → CDK `ConnectedPosition`.\n *\n * @example\n * ```ts\n * // app.config.ts\n * providers: [\n * providePopupPositions(new Map([\n * ...POPUP_POSITION_MAP,\n * ['bottom', { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top', offsetY: 4 }],\n * ]))\n * ]\n * ```\n */\nexport function providePopupPositions(\n positions: ReadonlyMap<MlvPopupPositionName, ConnectedPosition>,\n): Provider {\n return { provide: POPUP_POSITIONS, useValue: positions };\n}\n\n// ---------------------------------------------------------------------------\n// Static helper — MlvPopupPositionResolver\n// ---------------------------------------------------------------------------\n\n/**\n * Static utility class for resolving named popup positions.\n *\n * Centralises all lookup logic so that {@link MlvPopup} and\n * {@link MlvPopupService} share one consistent resolution path.\n */\nexport class MlvPopupPositionResolver {\n /**\n * Resolves one or more {@link MlvPopupPositionName} strings to CDK\n * `ConnectedPosition` objects using the provided map.\n *\n * - Positions are returned in the same order as `names`.\n * - If a name is not found in the map, it is skipped and a warning is\n * emitted in dev mode via `console.warn`.\n * - Returns an empty array if no names resolve successfully.\n *\n * @param names — A single name or ordered array of names (CDK uses\n * the first one that fits in the viewport).\n * @param positionMap — The active position map (from `POPUP_POSITIONS` token).\n */\n static resolve(\n names: MlvPopupPositionName | MlvPopupPositionName[],\n positionMap: ReadonlyMap<MlvPopupPositionName, ConnectedPosition>,\n ): ConnectedPosition[] {\n const nameList = Array.isArray(names) ? names : [names];\n const resolved: ConnectedPosition[] = [];\n\n for (const name of nameList) {\n const pos = positionMap.get(name);\n if (pos !== undefined) {\n resolved.push(pos);\n } else if (typeof ngDevMode !== 'undefined' && ngDevMode) {\n console.warn(\n `[MlvPopup] Position \"${name}\" was not found in the POPUP_POSITIONS map. ` +\n `Available positions: [${Array.from(positionMap.keys()).join(', ')}].`,\n );\n }\n }\n\n return resolved;\n }\n\n /**\n * Returns all positions in the map as an ordered array.\n * Used as the CDK fallback sequence when no explicit `position` is set.\n *\n * @param positionMap — The active position map (from `POPUP_POSITIONS` token).\n */\n static allPositions(\n positionMap: ReadonlyMap<MlvPopupPositionName, ConnectedPosition>,\n ): ConnectedPosition[] {\n return Array.from(positionMap.values());\n }\n}\n\n// ---------------------------------------------------------------------------\n// Shared named-position sequences\n// ---------------------------------------------------------------------------\n\n/**\n * Ordered CDK positions for a dropdown menu panel that opens below its trigger:\n * `bottom-start` preferred, flipping vertically (`top-start`) then aligning to\n * the trigger's end edge (`bottom-end`, `top-end`) when space is constrained.\n *\n * Derived from {@link POPUP_POSITION_MAP} so menu overlays stay consistent with\n * the rest of the Malva UI overlay system. Consumed by `MlvMenuTrigger`.\n */\nexport const MENU_POSITIONS: ConnectedPosition[] =\n MlvPopupPositionResolver.resolve(\n ['bottom-start', 'top-start', 'bottom-end', 'top-end'],\n POPUP_POSITION_MAP,\n );\n\n/**\n * Ordered CDK positions for a submenu panel that opens to the right of its\n * parent item (`right-start`), flipping to the left (`left-start`) when there\n * is no room on the right.\n *\n * Derived from {@link POPUP_POSITION_MAP}. Consumed by `MlvMenuTrigger`.\n */\nexport const SUBMENU_POSITIONS: ConnectedPosition[] =\n MlvPopupPositionResolver.resolve(\n ['right-start', 'left-start'],\n POPUP_POSITION_MAP,\n );\n"]}
@@ -0,0 +1,308 @@
1
+ import { computed, Directive, ElementRef, NgZone, ViewContainerRef, effect, inject, input, } from '@angular/core';
2
+ import { POPUP_DETACH_WATCHDOG_MS } from '../popup/popup';
3
+ import { MlvPopupService } from '../popup.service';
4
+ import { POPUP_CONTAINER } from '../popup-container/popup-container.token';
5
+ import * as i0 from "@angular/core";
6
+ const HOVER_CLOSE_DELAY = 20;
7
+ export class MlvPopupTrigger {
8
+ /** @private Low-level overlay API used in standalone mode. */
9
+ _popupService = inject(MlvPopupService);
10
+ /** @private Host element ref used as the overlay anchor. */
11
+ _elementRef = inject(ElementRef);
12
+ /** @private View container used to instantiate the popup template portal. */
13
+ _vcr = inject(ViewContainerRef);
14
+ /** @private Zone used to re-enter Angular after out-of-zone hover timers. */
15
+ _ngZone = inject(NgZone);
16
+ /**
17
+ * Optional injection of a parent {@link MlvPopupContainer}.
18
+ *
19
+ * When present the trigger operates in **container mode**: it delegates
20
+ * open/close/toggle to the container instead of creating its own overlay,
21
+ * and registers its host element as the visual anchor.
22
+ *
23
+ * When absent the trigger operates in **standalone mode** and manages the
24
+ * overlay lifecycle itself (legacy behaviour).
25
+ */
26
+ _container = inject(POPUP_CONTAINER, { optional: true });
27
+ /** @private The active overlay handle in standalone mode, or `null` when closed. */
28
+ _handle = null;
29
+ /** @private Guards against re-triggering the leave animation while already closing. */
30
+ _closing = false;
31
+ /** @private Subscription to the popup's leave-animation-done stream. */
32
+ _leaveSubscription = null;
33
+ /** @private Pending hover-close timer handle, or `null` when none is scheduled. */
34
+ _hoverCloseTimer = null;
35
+ /**
36
+ * @private Last-resort timer that force-detaches an overlay whose leave never
37
+ * completed — without it a lost `animationState` write latches `_closing`
38
+ * with no path back to a detach.
39
+ */
40
+ _detachWatchdog = null;
41
+ /** @private Teardown callbacks for the overlay hover mouse listeners. */
42
+ _overlayMouseListeners = [];
43
+ /**
44
+ * The `MlvPopup` to control.
45
+ *
46
+ * **Standalone mode** (no parent `mlv-popup-container`): must be bound to the
47
+ * target `<mlv-popup>` element: `[mlvPopupTrigger]="myPopup"`.
48
+ *
49
+ * **Container mode** (inside `mlv-popup-container`): can be used as a bare
50
+ * attribute (`mlvPopupTrigger`) without a value — the container already holds
51
+ * the popup reference and orchestrates the overlay. The empty-string value from
52
+ * the bare attribute is coerced to `undefined` by the transform.
53
+ */
54
+ mlvPopupTrigger = input(undefined, { ...(ngDevMode ? { debugName: "mlvPopupTrigger" } : /* istanbul ignore next */ {}), transform: (v) => typeof v === 'string' ? undefined : v });
55
+ /** One or more event types that open the popup. Defaults to `'click'`. */
56
+ triggerOn = input('click', /* @ts-ignore */
57
+ ...(ngDevMode ? [{ debugName: "triggerOn" }] : /* istanbul ignore next */ []));
58
+ /**
59
+ * Value applied to the trigger's `aria-haspopup` attribute. Should match the
60
+ * semantic role of the popup panel's content — e.g. `'menu'` for a menu
61
+ * flyout, `'listbox'` for a select, `'dialog'` for a modal surface. Defaults
62
+ * to `'dialog'` for backwards compatibility. Set to `null` to omit the
63
+ * attribute entirely (e.g. for a tooltip-only popup).
64
+ */
65
+ ariaHasPopup = input('dialog', /* @ts-ignore */
66
+ ...(ngDevMode ? [{ debugName: "ariaHasPopup" }] : /* istanbul ignore next */ []));
67
+ /** @protected Whether the associated popup is currently open. */
68
+ _isOpen = computed(() => {
69
+ const popup = this.mlvPopupTrigger();
70
+ if (popup)
71
+ return popup.opened();
72
+ if (this._container)
73
+ return this._container.isOpen?.() ?? false;
74
+ return false;
75
+ }, /* @ts-ignore */
76
+ ...(ngDevMode ? [{ debugName: "_isOpen" }] : /* istanbul ignore next */ []));
77
+ constructor() {
78
+ if (this._container) {
79
+ // ── Container mode ──────────────────────────────────────────────────
80
+ // Register this element as the overlay anchor. Re-runs if triggerOn changes
81
+ // so the container can update its backdrop preference accordingly.
82
+ const container = this._container;
83
+ effect(() => {
84
+ container.registerTrigger(this._elementRef, !this.hasTrigger('hover'));
85
+ });
86
+ }
87
+ else {
88
+ // ── Standalone mode ─────────────────────────────────────────────────
89
+ // Watch the popup's opened signal and manage the CDK overlay ourselves.
90
+ effect(() => {
91
+ const popup = this.mlvPopupTrigger();
92
+ if (!popup)
93
+ return;
94
+ const isOpen = popup.opened();
95
+ if (isOpen && !this._handle) {
96
+ this._attachOverlay();
97
+ }
98
+ else if (!isOpen && this._handle && !this._closing) {
99
+ this._startLeaveAnimation();
100
+ }
101
+ });
102
+ }
103
+ }
104
+ open() {
105
+ if (this._container) {
106
+ this._container.open();
107
+ }
108
+ else {
109
+ this.mlvPopupTrigger()?.opened.set(true);
110
+ }
111
+ }
112
+ close() {
113
+ if (this._container) {
114
+ this._container.close();
115
+ }
116
+ else {
117
+ this.mlvPopupTrigger()?.opened.set(false);
118
+ }
119
+ }
120
+ toggle() {
121
+ if (this._container) {
122
+ this._container.toggle();
123
+ }
124
+ else if (this._handle) {
125
+ this.close();
126
+ }
127
+ else {
128
+ this.open();
129
+ }
130
+ }
131
+ ngOnDestroy() {
132
+ this._clearHoverTimer();
133
+ this._clearDetachWatchdog();
134
+ this._removeOverlayMouseListeners();
135
+ this._cleanupSubscription();
136
+ this._detachOverlay();
137
+ }
138
+ onClick() {
139
+ if (this.hasTrigger('click')) {
140
+ this.toggle();
141
+ }
142
+ }
143
+ onMouseEnter() {
144
+ if (this.hasTrigger('hover')) {
145
+ this._clearHoverTimer();
146
+ this.open();
147
+ }
148
+ }
149
+ onMouseLeave() {
150
+ if (this.hasTrigger('hover')) {
151
+ this._scheduleHoverClose();
152
+ }
153
+ }
154
+ onFocus() {
155
+ if (this.hasTrigger('focus')) {
156
+ this.open();
157
+ }
158
+ }
159
+ onBlur() {
160
+ if (this.hasTrigger('focus')) {
161
+ this.close();
162
+ }
163
+ }
164
+ hasTrigger(type) {
165
+ const trigger = this.triggerOn();
166
+ return Array.isArray(trigger) ? trigger.includes(type) : trigger === type;
167
+ }
168
+ /** @private Schedules a delayed close after the pointer leaves the trigger. */
169
+ _scheduleHoverClose() {
170
+ this._clearHoverTimer();
171
+ this._hoverCloseTimer = setTimeout(() => {
172
+ this._hoverCloseTimer = null;
173
+ this._ngZone.run(() => this.close());
174
+ }, HOVER_CLOSE_DELAY);
175
+ }
176
+ /** @private Cancels any pending hover-close timer. */
177
+ _clearHoverTimer() {
178
+ if (this._hoverCloseTimer !== null) {
179
+ clearTimeout(this._hoverCloseTimer);
180
+ this._hoverCloseTimer = null;
181
+ }
182
+ }
183
+ /** @private Creates the CDK overlay and plays the enter animation (standalone mode). */
184
+ _attachOverlay() {
185
+ if (this._handle)
186
+ return;
187
+ const popup = this.mlvPopupTrigger();
188
+ if (!popup)
189
+ return;
190
+ popup.animationState.set('idle');
191
+ const isHover = this.hasTrigger('hover');
192
+ this._handle = this._popupService.open({
193
+ origin: this._elementRef,
194
+ template: popup.popupTemplate(),
195
+ vcr: this._vcr,
196
+ positions: popup.resolvedPositions(),
197
+ size: popup.buildSizeConfig(),
198
+ fullscreen: popup.isFullscreen(),
199
+ hasBackdrop: popup.hasBackdrop() ?? !isHover,
200
+ scrollStrategy: popup.scrollStrategy(),
201
+ onPositionChange: (change) => popup.updateArrowFromPosition(change.connectionPair),
202
+ onClose: () => {
203
+ this._removeOverlayMouseListeners();
204
+ this._clearHoverTimer();
205
+ this._clearDetachWatchdog();
206
+ this._handle = null;
207
+ this._closing = false;
208
+ popup.animationState.set('idle');
209
+ popup.opened.set(false);
210
+ popup.afterClosed.emit();
211
+ },
212
+ onRequestClose: () => this.close(),
213
+ });
214
+ if (isHover) {
215
+ this._addOverlayMouseListeners();
216
+ }
217
+ this._cleanupSubscription();
218
+ this._leaveSubscription = popup.leaveAnimationDone$.subscribe(() => {
219
+ this._detachOverlay();
220
+ });
221
+ // Deferred so the panel is in the DOM before the enter keyframes start;
222
+ // `beginEnterAnimation()` refuses to overwrite a close that beat it here.
223
+ queueMicrotask(() => popup.beginEnterAnimation());
224
+ popup.afterOpened.emit();
225
+ }
226
+ /** @private Wires hover enter/leave listeners on the overlay panel to keep it open on hover. */
227
+ _addOverlayMouseListeners() {
228
+ if (!this._handle)
229
+ return;
230
+ const overlayEl = this._handle.overlayRef.overlayElement;
231
+ const onEnter = () => this._clearHoverTimer();
232
+ const onLeave = () => this._scheduleHoverClose();
233
+ overlayEl.addEventListener('mouseenter', onEnter);
234
+ overlayEl.addEventListener('mouseleave', onLeave);
235
+ this._overlayMouseListeners = [
236
+ () => overlayEl.removeEventListener('mouseenter', onEnter),
237
+ () => overlayEl.removeEventListener('mouseleave', onLeave),
238
+ ];
239
+ }
240
+ /** @private Removes the overlay hover listeners. */
241
+ _removeOverlayMouseListeners() {
242
+ for (const cleanup of this._overlayMouseListeners) {
243
+ cleanup();
244
+ }
245
+ this._overlayMouseListeners = [];
246
+ }
247
+ /** @private Triggers the popup leave animation before detaching the overlay. */
248
+ _startLeaveAnimation() {
249
+ if (!this._handle)
250
+ return;
251
+ this._closing = true;
252
+ this.mlvPopupTrigger()?.animationState.set('leave');
253
+ this._armDetachWatchdog();
254
+ }
255
+ /** @private Tears down the overlay, its subscriptions, and pending timers. */
256
+ _detachOverlay() {
257
+ this._cleanupSubscription();
258
+ this._clearDetachWatchdog();
259
+ if (this._handle) {
260
+ this._handle.close();
261
+ }
262
+ }
263
+ /**
264
+ * @private Arms the force-detach timer for the pending leave. Detaching is
265
+ * what resets `_closing` and `_handle`, so a leave that never completes must
266
+ * still end in a detach or the trigger latches permanently.
267
+ */
268
+ _armDetachWatchdog() {
269
+ this._clearDetachWatchdog();
270
+ this._detachWatchdog = setTimeout(() => {
271
+ this._detachWatchdog = null;
272
+ if (this._closing && this._handle) {
273
+ this._detachOverlay();
274
+ }
275
+ }, POPUP_DETACH_WATCHDOG_MS);
276
+ }
277
+ /** @private Cancels a pending force-detach timer. */
278
+ _clearDetachWatchdog() {
279
+ if (this._detachWatchdog !== null) {
280
+ clearTimeout(this._detachWatchdog);
281
+ this._detachWatchdog = null;
282
+ }
283
+ }
284
+ /** @private Unsubscribes from the leave-animation-done stream. */
285
+ _cleanupSubscription() {
286
+ this._leaveSubscription?.unsubscribe();
287
+ this._leaveSubscription = null;
288
+ }
289
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvPopupTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
290
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: MlvPopupTrigger, isStandalone: true, selector: "[mlvPopupTrigger]", inputs: { mlvPopupTrigger: { classPropertyName: "mlvPopupTrigger", publicName: "mlvPopupTrigger", isSignal: true, isRequired: false, transformFunction: null }, triggerOn: { classPropertyName: "triggerOn", publicName: "triggerOn", isSignal: true, isRequired: false, transformFunction: null }, ariaHasPopup: { classPropertyName: "ariaHasPopup", publicName: "ariaHasPopup", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onClick()", "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "focus": "onFocus()", "blur": "onBlur()" }, properties: { "attr.aria-expanded": "_isOpen()", "attr.aria-haspopup": "ariaHasPopup()" } }, exportAs: ["mlvPopupTrigger"], ngImport: i0 });
291
+ }
292
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvPopupTrigger, decorators: [{
293
+ type: Directive,
294
+ args: [{
295
+ selector: '[mlvPopupTrigger]',
296
+ host: {
297
+ '[attr.aria-expanded]': '_isOpen()',
298
+ '[attr.aria-haspopup]': 'ariaHasPopup()',
299
+ '(click)': 'onClick()',
300
+ '(mouseenter)': 'onMouseEnter()',
301
+ '(mouseleave)': 'onMouseLeave()',
302
+ '(focus)': 'onFocus()',
303
+ '(blur)': 'onBlur()',
304
+ },
305
+ exportAs: 'mlvPopupTrigger',
306
+ }]
307
+ }], ctorParameters: () => [], propDecorators: { mlvPopupTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "mlvPopupTrigger", required: false }] }], triggerOn: [{ type: i0.Input, args: [{ isSignal: true, alias: "triggerOn", required: false }] }], ariaHasPopup: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaHasPopup", required: false }] }] } });
308
+ //# sourceMappingURL=popup-trigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popup-trigger.js","sourceRoot":"","sources":["../../../../../../../libs/core/popup/src/lib/popup-trigger/popup-trigger.ts"],"names":[],"mappings":"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","sourcesContent":["import type { OnDestroy } from '@angular/core';\nimport {\n computed,\n Directive,\n ElementRef,\n NgZone,\n ViewContainerRef,\n effect,\n inject,\n input,\n} from '@angular/core';\nimport type { Subscription } from 'rxjs';\nimport type { MlvPopup } from '../popup/popup';\nimport { POPUP_DETACH_WATCHDOG_MS } from '../popup/popup';\nimport type { MlvPopupHandle } from '../popup.service';\nimport { MlvPopupService } from '../popup.service';\nimport { POPUP_CONTAINER } from '../popup-container/popup-container.token';\n\nexport type MlvPopupTriggerType = 'click' | 'hover' | 'focus';\n\nconst HOVER_CLOSE_DELAY = 20;\n\n@Directive({\n selector: '[mlvPopupTrigger]',\n host: {\n '[attr.aria-expanded]': '_isOpen()',\n '[attr.aria-haspopup]': 'ariaHasPopup()',\n '(click)': 'onClick()',\n '(mouseenter)': 'onMouseEnter()',\n '(mouseleave)': 'onMouseLeave()',\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()',\n },\n exportAs: 'mlvPopupTrigger',\n})\nexport class MlvPopupTrigger implements OnDestroy {\n /** @private Low-level overlay API used in standalone mode. */\n private readonly _popupService = inject(MlvPopupService);\n /** @private Host element ref used as the overlay anchor. */\n private readonly _elementRef = inject(ElementRef);\n /** @private View container used to instantiate the popup template portal. */\n private readonly _vcr = inject(ViewContainerRef);\n /** @private Zone used to re-enter Angular after out-of-zone hover timers. */\n private readonly _ngZone = inject(NgZone);\n\n /**\n * Optional injection of a parent {@link MlvPopupContainer}.\n *\n * When present the trigger operates in **container mode**: it delegates\n * open/close/toggle to the container instead of creating its own overlay,\n * and registers its host element as the visual anchor.\n *\n * When absent the trigger operates in **standalone mode** and manages the\n * overlay lifecycle itself (legacy behaviour).\n */\n private readonly _container = inject(POPUP_CONTAINER, { optional: true });\n\n /** @private The active overlay handle in standalone mode, or `null` when closed. */\n private _handle: MlvPopupHandle | null = null;\n /** @private Guards against re-triggering the leave animation while already closing. */\n private _closing = false;\n /** @private Subscription to the popup's leave-animation-done stream. */\n private _leaveSubscription: Subscription | null = null;\n /** @private Pending hover-close timer handle, or `null` when none is scheduled. */\n private _hoverCloseTimer: ReturnType<typeof setTimeout> | null = null;\n /**\n * @private Last-resort timer that force-detaches an overlay whose leave never\n * completed — without it a lost `animationState` write latches `_closing`\n * with no path back to a detach.\n */\n private _detachWatchdog: ReturnType<typeof setTimeout> | null = null;\n /** @private Teardown callbacks for the overlay hover mouse listeners. */\n private _overlayMouseListeners: (() => void)[] = [];\n\n /**\n * The `MlvPopup` to control.\n *\n * **Standalone mode** (no parent `mlv-popup-container`): must be bound to the\n * target `<mlv-popup>` element: `[mlvPopupTrigger]=\"myPopup\"`.\n *\n * **Container mode** (inside `mlv-popup-container`): can be used as a bare\n * attribute (`mlvPopupTrigger`) without a value — the container already holds\n * the popup reference and orchestrates the overlay. The empty-string value from\n * the bare attribute is coerced to `undefined` by the transform.\n */\n readonly mlvPopupTrigger = input<\n MlvPopup | undefined,\n MlvPopup | string | undefined\n >(undefined, {\n transform: (v): MlvPopup | undefined =>\n typeof v === 'string' ? undefined : v,\n });\n\n /** One or more event types that open the popup. Defaults to `'click'`. */\n readonly triggerOn = input<MlvPopupTriggerType | MlvPopupTriggerType[]>(\n 'click',\n );\n\n /**\n * Value applied to the trigger's `aria-haspopup` attribute. Should match the\n * semantic role of the popup panel's content — e.g. `'menu'` for a menu\n * flyout, `'listbox'` for a select, `'dialog'` for a modal surface. Defaults\n * to `'dialog'` for backwards compatibility. Set to `null` to omit the\n * attribute entirely (e.g. for a tooltip-only popup).\n */\n readonly ariaHasPopup = input<string | null>('dialog');\n\n /** @protected Whether the associated popup is currently open. */\n protected readonly _isOpen = computed(() => {\n const popup = this.mlvPopupTrigger();\n if (popup) return popup.opened();\n if (this._container) return this._container.isOpen?.() ?? false;\n return false;\n });\n\n constructor() {\n if (this._container) {\n // ── Container mode ──────────────────────────────────────────────────\n // Register this element as the overlay anchor. Re-runs if triggerOn changes\n // so the container can update its backdrop preference accordingly.\n const container = this._container;\n effect(() => {\n container.registerTrigger(this._elementRef, !this.hasTrigger('hover'));\n });\n } else {\n // ── Standalone mode ─────────────────────────────────────────────────\n // Watch the popup's opened signal and manage the CDK overlay ourselves.\n effect(() => {\n const popup = this.mlvPopupTrigger();\n if (!popup) return;\n const isOpen = popup.opened();\n if (isOpen && !this._handle) {\n this._attachOverlay();\n } else if (!isOpen && this._handle && !this._closing) {\n this._startLeaveAnimation();\n }\n });\n }\n }\n\n open(): void {\n if (this._container) {\n this._container.open();\n } else {\n this.mlvPopupTrigger()?.opened.set(true);\n }\n }\n\n close(): void {\n if (this._container) {\n this._container.close();\n } else {\n this.mlvPopupTrigger()?.opened.set(false);\n }\n }\n\n toggle(): void {\n if (this._container) {\n this._container.toggle();\n } else if (this._handle) {\n this.close();\n } else {\n this.open();\n }\n }\n\n ngOnDestroy(): void {\n this._clearHoverTimer();\n this._clearDetachWatchdog();\n this._removeOverlayMouseListeners();\n this._cleanupSubscription();\n this._detachOverlay();\n }\n\n onClick(): void {\n if (this.hasTrigger('click')) {\n this.toggle();\n }\n }\n\n onMouseEnter(): void {\n if (this.hasTrigger('hover')) {\n this._clearHoverTimer();\n this.open();\n }\n }\n\n onMouseLeave(): void {\n if (this.hasTrigger('hover')) {\n this._scheduleHoverClose();\n }\n }\n\n onFocus(): void {\n if (this.hasTrigger('focus')) {\n this.open();\n }\n }\n\n onBlur(): void {\n if (this.hasTrigger('focus')) {\n this.close();\n }\n }\n\n hasTrigger(type: MlvPopupTriggerType): boolean {\n const trigger = this.triggerOn();\n return Array.isArray(trigger) ? trigger.includes(type) : trigger === type;\n }\n\n /** @private Schedules a delayed close after the pointer leaves the trigger. */\n private _scheduleHoverClose(): void {\n this._clearHoverTimer();\n this._hoverCloseTimer = setTimeout(() => {\n this._hoverCloseTimer = null;\n this._ngZone.run(() => this.close());\n }, HOVER_CLOSE_DELAY);\n }\n\n /** @private Cancels any pending hover-close timer. */\n private _clearHoverTimer(): void {\n if (this._hoverCloseTimer !== null) {\n clearTimeout(this._hoverCloseTimer);\n this._hoverCloseTimer = null;\n }\n }\n\n /** @private Creates the CDK overlay and plays the enter animation (standalone mode). */\n private _attachOverlay(): void {\n if (this._handle) return;\n\n const popup = this.mlvPopupTrigger();\n if (!popup) return;\n\n popup.animationState.set('idle');\n\n const isHover = this.hasTrigger('hover');\n\n this._handle = this._popupService.open({\n origin: this._elementRef,\n template: popup.popupTemplate(),\n vcr: this._vcr,\n positions: popup.resolvedPositions(),\n size: popup.buildSizeConfig(),\n fullscreen: popup.isFullscreen(),\n hasBackdrop: popup.hasBackdrop() ?? !isHover,\n scrollStrategy: popup.scrollStrategy(),\n onPositionChange: (change) =>\n popup.updateArrowFromPosition(change.connectionPair),\n onClose: () => {\n this._removeOverlayMouseListeners();\n this._clearHoverTimer();\n this._clearDetachWatchdog();\n this._handle = null;\n this._closing = false;\n popup.animationState.set('idle');\n popup.opened.set(false);\n popup.afterClosed.emit();\n },\n onRequestClose: () => this.close(),\n });\n\n if (isHover) {\n this._addOverlayMouseListeners();\n }\n\n this._cleanupSubscription();\n this._leaveSubscription = popup.leaveAnimationDone$.subscribe(() => {\n this._detachOverlay();\n });\n\n // Deferred so the panel is in the DOM before the enter keyframes start;\n // `beginEnterAnimation()` refuses to overwrite a close that beat it here.\n queueMicrotask(() => popup.beginEnterAnimation());\n\n popup.afterOpened.emit();\n }\n\n /** @private Wires hover enter/leave listeners on the overlay panel to keep it open on hover. */\n private _addOverlayMouseListeners(): void {\n if (!this._handle) return;\n const overlayEl = this._handle.overlayRef.overlayElement;\n\n const onEnter = () => this._clearHoverTimer();\n const onLeave = () => this._scheduleHoverClose();\n\n overlayEl.addEventListener('mouseenter', onEnter);\n overlayEl.addEventListener('mouseleave', onLeave);\n\n this._overlayMouseListeners = [\n () => overlayEl.removeEventListener('mouseenter', onEnter),\n () => overlayEl.removeEventListener('mouseleave', onLeave),\n ];\n }\n\n /** @private Removes the overlay hover listeners. */\n private _removeOverlayMouseListeners(): void {\n for (const cleanup of this._overlayMouseListeners) {\n cleanup();\n }\n this._overlayMouseListeners = [];\n }\n\n /** @private Triggers the popup leave animation before detaching the overlay. */\n private _startLeaveAnimation(): void {\n if (!this._handle) return;\n this._closing = true;\n this.mlvPopupTrigger()?.animationState.set('leave');\n this._armDetachWatchdog();\n }\n\n /** @private Tears down the overlay, its subscriptions, and pending timers. */\n private _detachOverlay(): void {\n this._cleanupSubscription();\n this._clearDetachWatchdog();\n if (this._handle) {\n this._handle.close();\n }\n }\n\n /**\n * @private Arms the force-detach timer for the pending leave. Detaching is\n * what resets `_closing` and `_handle`, so a leave that never completes must\n * still end in a detach or the trigger latches permanently.\n */\n private _armDetachWatchdog(): void {\n this._clearDetachWatchdog();\n this._detachWatchdog = setTimeout(() => {\n this._detachWatchdog = null;\n if (this._closing && this._handle) {\n this._detachOverlay();\n }\n }, POPUP_DETACH_WATCHDOG_MS);\n }\n\n /** @private Cancels a pending force-detach timer. */\n private _clearDetachWatchdog(): void {\n if (this._detachWatchdog !== null) {\n clearTimeout(this._detachWatchdog);\n this._detachWatchdog = null;\n }\n }\n\n /** @private Unsubscribes from the leave-animation-done stream. */\n private _cleanupSubscription(): void {\n this._leaveSubscription?.unsubscribe();\n this._leaveSubscription = null;\n }\n}\n"]}
@@ -0,0 +1,188 @@
1
+ import { Injectable, NgZone, inject } from '@angular/core';
2
+ import { Overlay } from '@angular/cdk/overlay';
3
+ import { TemplatePortal } from '@angular/cdk/portal';
4
+ import { MlvPopupPositionResolver, POPUP_POSITIONS } from './popup-positions';
5
+ import * as i0 from "@angular/core";
6
+ // ---------------------------------------------------------------------------
7
+ // Service
8
+ // ---------------------------------------------------------------------------
9
+ /**
10
+ * Low-level CDK overlay service for Malva UI popup components.
11
+ *
12
+ * Handles overlay creation, portal attachment, position strategy,
13
+ * backdrop clicks, and Escape-key closure.
14
+ *
15
+ * For template-driven usage prefer `[mlvPopupTrigger]` or
16
+ * `<mlv-popup-container>`. Use this service directly only when you need
17
+ * full programmatic control.
18
+ *
19
+ * @example Programmatic usage
20
+ * ```ts
21
+ * const handle = this.popupService.open({
22
+ * origin: this.triggerRef,
23
+ * template: this.tpl,
24
+ * vcr: this.vcr,
25
+ * positions: this.popupService.resolvePositions(['bottom', 'top']),
26
+ * onClose: () => this.isOpen.set(false),
27
+ * });
28
+ * // Later:
29
+ * handle.close();
30
+ * ```
31
+ */
32
+ export class MlvPopupService {
33
+ /** @private CDK overlay service. */
34
+ _overlay = inject(Overlay);
35
+ /** @private Active named-position map (overridable via `POPUP_POSITIONS` token). */
36
+ _positionMap = inject(POPUP_POSITIONS);
37
+ /** @private Angular zone for running document-level event handlers inside change detection. */
38
+ _ngZone = inject(NgZone);
39
+ // ─── Public API ────────────────────────────────────────────────────────────
40
+ /**
41
+ * Resolves one or more {@link MlvPopupPositionName} strings to CDK
42
+ * `ConnectedPosition` objects.
43
+ *
44
+ * Positions are resolved from the active `POPUP_POSITIONS` map. If a name
45
+ * is not found, it is skipped and a `console.warn` is emitted in dev mode.
46
+ * CDK uses the first position in the returned array that fits in the viewport.
47
+ *
48
+ * @param names — A single name or ordered array of fallback names.
49
+ *
50
+ * @example
51
+ * ```ts
52
+ * positions: this.popupService.resolvePositions('bottom-end')
53
+ * positions: this.popupService.resolvePositions(['bottom-end', 'top-end'])
54
+ * ```
55
+ */
56
+ resolvePositions(names) {
57
+ return MlvPopupPositionResolver.resolve(names, this._positionMap);
58
+ }
59
+ /**
60
+ * Creates a CDK overlay, attaches the given template portal, and wires up
61
+ * backdrop and Escape-key closure.
62
+ *
63
+ * @param config — Full overlay configuration.
64
+ * @returns A {@link MlvPopupHandle} with the `overlayRef` and a `close()` method.
65
+ */
66
+ open(config) {
67
+ const fullscreen = config.fullscreen ?? false;
68
+ const flexible = config.flexibleDimensions ?? false;
69
+ // Full-screen mode uses a global (viewport-centred) strategy that the pane
70
+ // stretches to fill; the connected positions are irrelevant. Otherwise use
71
+ // the trigger-anchored flexible-connected strategy (unchanged behaviour).
72
+ // withPush(false) for 'reposition': the overlay moves with the trigger and
73
+ // naturally disappears when the trigger scrolls out of the viewport.
74
+ // withPush(true) for all other strategies: CDK keeps the overlay inside the
75
+ // viewport until the strategy itself decides what to do (close, block, noop).
76
+ const push = (config.scrollStrategy ?? 'reposition') !== 'reposition';
77
+ const positionStrategy = fullscreen
78
+ ? this._overlay.position().global()
79
+ : this._overlay
80
+ .position()
81
+ .flexibleConnectedTo(config.origin)
82
+ .withPositions(config.positions)
83
+ .withPush(push)
84
+ .withFlexibleDimensions(flexible)
85
+ .withGrowAfterOpen(flexible);
86
+ // The backdrop is always shown in full-screen mode regardless of the
87
+ // trigger's preference (it doubles as the scrim behind the sheet).
88
+ const hasBackdrop = fullscreen ? true : (config.hasBackdrop ?? true);
89
+ const overlayRef = this._overlay.create({
90
+ positionStrategy,
91
+ hasBackdrop,
92
+ ...(hasBackdrop
93
+ ? {
94
+ backdropClass: fullscreen
95
+ ? 'mlv-popup-fullscreen-backdrop'
96
+ : (config.backdropClass ?? 'cdk-overlay-transparent-backdrop'),
97
+ }
98
+ : {}),
99
+ // Full-screen locks the page behind the sheet (no layout shift — the block
100
+ // strategy compensates for the removed scrollbar width).
101
+ scrollStrategy: fullscreen
102
+ ? this._overlay.scrollStrategies.block()
103
+ : this._resolveScrollStrategy(config.scrollStrategy),
104
+ ...(fullscreen
105
+ ? { panelClass: 'mlv-popup-fullscreen-pane' }
106
+ : config.size),
107
+ });
108
+ const portal = new TemplatePortal(config.template, config.vcr);
109
+ overlayRef.attach(portal);
110
+ // Position changes only occur for the connected strategy; the global
111
+ // (full-screen) strategy exposes no positionChanges stream.
112
+ if (config.onPositionChange && !fullscreen) {
113
+ positionStrategy.positionChanges.subscribe(config.onPositionChange);
114
+ }
115
+ // Collect cleanup callbacks so they all run on close regardless of how it was triggered.
116
+ const cleanups = [];
117
+ let disposed = false;
118
+ const close = () => {
119
+ if (disposed)
120
+ return;
121
+ disposed = true;
122
+ for (const fn of cleanups)
123
+ fn();
124
+ overlayRef.dispose();
125
+ config.onClose();
126
+ };
127
+ // Detect when CDK closes the overlay externally (e.g. CloseScrollStrategy calls
128
+ // overlayRef.detach() — bypassing our close() — leaving handle/opened out of sync).
129
+ const detachSub = overlayRef.detachments().subscribe(() => close());
130
+ cleanups.push(() => detachSub.unsubscribe());
131
+ const requestClose = config.onRequestClose ?? close;
132
+ if (hasBackdrop) {
133
+ const sub = overlayRef.backdropClick().subscribe(() => requestClose());
134
+ cleanups.push(() => sub.unsubscribe());
135
+ }
136
+ else {
137
+ // Defer the document listener to avoid catching the same click that opened the popup.
138
+ const excludeElements = config.dismissExcludeElements ?? [];
139
+ const timerId = setTimeout(() => {
140
+ const handler = (event) => {
141
+ const target = event.target;
142
+ const insidePanel = overlayRef.hasAttached() &&
143
+ overlayRef.overlayElement.contains(target);
144
+ // Clicks on the trigger/anchor (outside the floating panel) are not
145
+ // "outside" — e.g. repositioning the caret in a combobox's input
146
+ // must not dismiss its open list.
147
+ const insideExcluded = excludeElements.some((el) => el.contains(target));
148
+ if (overlayRef.hasAttached() && !insidePanel && !insideExcluded) {
149
+ this._ngZone.run(() => requestClose());
150
+ }
151
+ };
152
+ document.addEventListener('click', handler, true);
153
+ cleanups.push(() => document.removeEventListener('click', handler, true));
154
+ }, 0);
155
+ cleanups.push(() => clearTimeout(timerId));
156
+ }
157
+ const keySub = overlayRef.keydownEvents().subscribe((event) => {
158
+ if (event.key === 'Escape') {
159
+ requestClose();
160
+ event.preventDefault();
161
+ }
162
+ });
163
+ cleanups.push(() => keySub.unsubscribe());
164
+ return { overlayRef, close };
165
+ }
166
+ /**
167
+ * @private Maps a {@link MlvPopupScrollStrategy} name to a CDK scroll-strategy instance.
168
+ */
169
+ _resolveScrollStrategy(strategy = 'reposition') {
170
+ switch (strategy) {
171
+ case 'close':
172
+ return this._overlay.scrollStrategies.close();
173
+ case 'block':
174
+ return this._overlay.scrollStrategies.block();
175
+ case 'noop':
176
+ return this._overlay.scrollStrategies.noop();
177
+ default:
178
+ return this._overlay.scrollStrategies.reposition();
179
+ }
180
+ }
181
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvPopupService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
182
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvPopupService, providedIn: 'root' });
183
+ }
184
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvPopupService, decorators: [{
185
+ type: Injectable,
186
+ args: [{ providedIn: 'root' }]
187
+ }] });
188
+ //# sourceMappingURL=popup.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popup.service.js","sourceRoot":"","sources":["../../../../../../libs/core/popup/src/lib/popup.service.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ElementRef, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { Injectable, NgZone, inject } from '@angular/core';\nimport type {\n OverlayRef,\n ConnectedPosition,\n ConnectedOverlayPositionChange,\n FlexibleConnectedPositionStrategy,\n} from '@angular/cdk/overlay';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport type { MlvPopupPositionName } from './popup-positions';\nimport { MlvPopupPositionResolver, POPUP_POSITIONS } from './popup-positions';\n\n/**\n * Controls what happens to the popup when the user scrolls.\n *\n * - `'reposition'` (default) — the overlay repositions with the trigger as the page scrolls.\n * - `'close'` — the overlay closes as soon as the user scrolls.\n * - `'block'` — scroll is blocked while the overlay is open.\n * - `'noop'` — the overlay stays fixed at its original position; no repositioning or closing.\n */\nexport type MlvPopupScrollStrategy = 'reposition' | 'close' | 'block' | 'noop';\n\n// ---------------------------------------------------------------------------\n// Interfaces\n// ---------------------------------------------------------------------------\n\n/** Size constraints passed to the CDK overlay on creation. */\nexport interface MlvPopupSizeConfig {\n /** Explicit panel width (CSS value or pixel number). */\n width?: number | string;\n /** Explicit panel height (CSS value or pixel number). */\n height?: number | string;\n /** Minimum panel width. */\n minWidth?: number | string;\n /** Minimum panel height. */\n minHeight?: number | string;\n /** Maximum panel width. */\n maxWidth?: number | string;\n /** Maximum panel height. */\n maxHeight?: number | string;\n}\n\n/** Configuration object passed to {@link MlvPopupService.open}. */\nexport interface MlvPopupOpenConfig {\n /** The element the overlay attaches to. */\n origin: ElementRef;\n /** The `<ng-template>` to render inside the overlay. */\n template: TemplateRef<unknown>;\n /** The `ViewContainerRef` used to instantiate the portal. */\n vcr: ViewContainerRef;\n /**\n * Ordered list of CDK `ConnectedPosition` objects the overlay will try in\n * sequence until one fits within the viewport.\n *\n * Use {@link MlvPopupService.resolvePositions} to build this list from named\n * positions when working programmatically.\n */\n positions: ConnectedPosition[];\n /** Optional size constraints applied to the overlay panel. */\n size?: MlvPopupSizeConfig;\n /**\n * When `true`, the overlay is rendered as a full-screen mobile sheet:\n * a global (viewport-filling) position strategy replaces the connected\n * strategy, a solid backdrop is always shown, page scroll is locked\n * (block scroll strategy), and the connected {@link positions}/{@link size}\n * are ignored. Defaults to `false` (trigger-anchored behaviour).\n */\n fullscreen?: boolean;\n /**\n * When `true` (default), a transparent CDK backdrop is created; clicking it\n * triggers `onRequestClose`.\n *\n * When `false`, no visual backdrop is rendered, but click-outside detection\n * is preserved via a document-level click listener (attached after a\n * `setTimeout(0)` to avoid catching the opening click). Escape key closure\n * is always active regardless of this flag.\n */\n hasBackdrop?: boolean;\n /** Optional CDK backdrop class. Defaults to `cdk-overlay-transparent-backdrop`. */\n backdropClass?: string;\n /**\n * Controls overlay behaviour when the page is scrolled.\n * Defaults to `'reposition'`.\n */\n scrollStrategy?: MlvPopupScrollStrategy;\n /** Allow the overlay to grow in the axis constrained by the viewport. */\n flexibleDimensions?: boolean;\n /**\n * Extra elements treated as \"inside\" the popup for click-outside detection\n * (backdrop-less mode only). A click within any of these — in addition to the\n * overlay panel itself — does not trigger `onRequestClose`. Typically the\n * trigger/anchor element, which lives outside the floating overlay panel.\n */\n dismissExcludeElements?: readonly HTMLElement[];\n /** Called after the overlay is fully disposed. */\n onClose: () => void;\n /**\n * Called when the user requests closure (backdrop click, Escape key).\n * Defaults to `onClose` when not provided.\n */\n onRequestClose?: () => void;\n /** Called each time CDK selects a different `ConnectedPosition`. */\n onPositionChange?: (change: ConnectedOverlayPositionChange) => void;\n}\n\n/** Return value of {@link MlvPopupService.open}. */\nexport interface MlvPopupHandle {\n /** The underlying CDK overlay reference. */\n overlayRef: OverlayRef;\n /** Disposes the overlay and triggers `onClose`. */\n close: () => void;\n}\n\n// ---------------------------------------------------------------------------\n// Service\n// ---------------------------------------------------------------------------\n\n/**\n * Low-level CDK overlay service for Malva UI popup components.\n *\n * Handles overlay creation, portal attachment, position strategy,\n * backdrop clicks, and Escape-key closure.\n *\n * For template-driven usage prefer `[mlvPopupTrigger]` or\n * `<mlv-popup-container>`. Use this service directly only when you need\n * full programmatic control.\n *\n * @example Programmatic usage\n * ```ts\n * const handle = this.popupService.open({\n * origin: this.triggerRef,\n * template: this.tpl,\n * vcr: this.vcr,\n * positions: this.popupService.resolvePositions(['bottom', 'top']),\n * onClose: () => this.isOpen.set(false),\n * });\n * // Later:\n * handle.close();\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class MlvPopupService {\n /** @private CDK overlay service. */\n private readonly _overlay = inject(Overlay);\n\n /** @private Active named-position map (overridable via `POPUP_POSITIONS` token). */\n private readonly _positionMap = inject(POPUP_POSITIONS);\n\n /** @private Angular zone for running document-level event handlers inside change detection. */\n private readonly _ngZone = inject(NgZone);\n\n // ─── Public API ────────────────────────────────────────────────────────────\n\n /**\n * Resolves one or more {@link MlvPopupPositionName} strings to CDK\n * `ConnectedPosition` objects.\n *\n * Positions are resolved from the active `POPUP_POSITIONS` map. If a name\n * is not found, it is skipped and a `console.warn` is emitted in dev mode.\n * CDK uses the first position in the returned array that fits in the viewport.\n *\n * @param names — A single name or ordered array of fallback names.\n *\n * @example\n * ```ts\n * positions: this.popupService.resolvePositions('bottom-end')\n * positions: this.popupService.resolvePositions(['bottom-end', 'top-end'])\n * ```\n */\n resolvePositions(\n names: MlvPopupPositionName | MlvPopupPositionName[],\n ): ConnectedPosition[] {\n return MlvPopupPositionResolver.resolve(names, this._positionMap);\n }\n\n /**\n * Creates a CDK overlay, attaches the given template portal, and wires up\n * backdrop and Escape-key closure.\n *\n * @param config — Full overlay configuration.\n * @returns A {@link MlvPopupHandle} with the `overlayRef` and a `close()` method.\n */\n open(config: MlvPopupOpenConfig): MlvPopupHandle {\n const fullscreen = config.fullscreen ?? false;\n const flexible = config.flexibleDimensions ?? false;\n\n // Full-screen mode uses a global (viewport-centred) strategy that the pane\n // stretches to fill; the connected positions are irrelevant. Otherwise use\n // the trigger-anchored flexible-connected strategy (unchanged behaviour).\n // withPush(false) for 'reposition': the overlay moves with the trigger and\n // naturally disappears when the trigger scrolls out of the viewport.\n // withPush(true) for all other strategies: CDK keeps the overlay inside the\n // viewport until the strategy itself decides what to do (close, block, noop).\n const push = (config.scrollStrategy ?? 'reposition') !== 'reposition';\n const positionStrategy = fullscreen\n ? this._overlay.position().global()\n : this._overlay\n .position()\n .flexibleConnectedTo(config.origin)\n .withPositions(config.positions)\n .withPush(push)\n .withFlexibleDimensions(flexible)\n .withGrowAfterOpen(flexible);\n\n // The backdrop is always shown in full-screen mode regardless of the\n // trigger's preference (it doubles as the scrim behind the sheet).\n const hasBackdrop = fullscreen ? true : (config.hasBackdrop ?? true);\n\n const overlayRef = this._overlay.create({\n positionStrategy,\n hasBackdrop,\n ...(hasBackdrop\n ? {\n backdropClass: fullscreen\n ? 'mlv-popup-fullscreen-backdrop'\n : (config.backdropClass ?? 'cdk-overlay-transparent-backdrop'),\n }\n : {}),\n // Full-screen locks the page behind the sheet (no layout shift — the block\n // strategy compensates for the removed scrollbar width).\n scrollStrategy: fullscreen\n ? this._overlay.scrollStrategies.block()\n : this._resolveScrollStrategy(config.scrollStrategy),\n ...(fullscreen\n ? { panelClass: 'mlv-popup-fullscreen-pane' }\n : config.size),\n });\n\n const portal = new TemplatePortal(config.template, config.vcr);\n overlayRef.attach(portal);\n\n // Position changes only occur for the connected strategy; the global\n // (full-screen) strategy exposes no positionChanges stream.\n if (config.onPositionChange && !fullscreen) {\n (\n positionStrategy as FlexibleConnectedPositionStrategy\n ).positionChanges.subscribe(config.onPositionChange);\n }\n\n // Collect cleanup callbacks so they all run on close regardless of how it was triggered.\n const cleanups: (() => void)[] = [];\n\n let disposed = false;\n const close = () => {\n if (disposed) return;\n disposed = true;\n for (const fn of cleanups) fn();\n overlayRef.dispose();\n config.onClose();\n };\n\n // Detect when CDK closes the overlay externally (e.g. CloseScrollStrategy calls\n // overlayRef.detach() — bypassing our close() — leaving handle/opened out of sync).\n const detachSub = overlayRef.detachments().subscribe(() => close());\n cleanups.push(() => detachSub.unsubscribe());\n\n const requestClose = config.onRequestClose ?? close;\n\n if (hasBackdrop) {\n const sub = overlayRef.backdropClick().subscribe(() => requestClose());\n cleanups.push(() => sub.unsubscribe());\n } else {\n // Defer the document listener to avoid catching the same click that opened the popup.\n const excludeElements = config.dismissExcludeElements ?? [];\n const timerId = setTimeout(() => {\n const handler = (event: MouseEvent) => {\n const target = event.target as Node;\n const insidePanel =\n overlayRef.hasAttached() &&\n overlayRef.overlayElement.contains(target);\n // Clicks on the trigger/anchor (outside the floating panel) are not\n // \"outside\" — e.g. repositioning the caret in a combobox's input\n // must not dismiss its open list.\n const insideExcluded = excludeElements.some((el) =>\n el.contains(target),\n );\n if (overlayRef.hasAttached() && !insidePanel && !insideExcluded) {\n this._ngZone.run(() => requestClose());\n }\n };\n document.addEventListener('click', handler, true);\n cleanups.push(() =>\n document.removeEventListener('click', handler, true),\n );\n }, 0);\n cleanups.push(() => clearTimeout(timerId));\n }\n\n const keySub = overlayRef.keydownEvents().subscribe((event) => {\n if (event.key === 'Escape') {\n requestClose();\n event.preventDefault();\n }\n });\n cleanups.push(() => keySub.unsubscribe());\n\n return { overlayRef, close };\n }\n\n /**\n * @private Maps a {@link MlvPopupScrollStrategy} name to a CDK scroll-strategy instance.\n */\n private _resolveScrollStrategy(\n strategy: MlvPopupScrollStrategy = 'reposition',\n ) {\n switch (strategy) {\n case 'close':\n return this._overlay.scrollStrategies.close();\n case 'block':\n return this._overlay.scrollStrategies.block();\n case 'noop':\n return this._overlay.scrollStrategies.noop();\n default:\n return this._overlay.scrollStrategies.reposition();\n }\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-popup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"malva-ui-core-popup.js","sourceRoot":"","sources":["../../../../../libs/core/popup/src/malva-ui-core-popup.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,2 @@
1
+ export * from './lib/progress/progress';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/core/progress/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC","sourcesContent":["export * from './lib/progress/progress';\n"]}