@malva-ui/core 0.1.13 → 0.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +4 -1
- package/README.md +15 -0
- package/docs/ai/avatar.md +2 -0
- package/docs/ai/breadcrumb.md +67 -7
- package/docs/ai/button.md +74 -19
- package/docs/ai/card.md +8 -6
- package/docs/ai/chat.md +59 -45
- package/docs/ai/checkbox.md +12 -0
- package/docs/ai/combobox.md +18 -2
- package/docs/ai/copy-to-clipboard.md +1 -1
- package/docs/ai/core.md +15 -0
- package/docs/ai/data-table.md +89 -54
- package/docs/ai/dialog.md +76 -67
- package/docs/ai/drawer.md +15 -12
- package/docs/ai/dropdown.md +24 -19
- package/docs/ai/empty-state.md +3 -3
- package/docs/ai/filter.md +24 -5
- package/docs/ai/form-utils.md +160 -5
- package/docs/ai/icon-toggle.md +160 -0
- package/docs/ai/input.md +30 -0
- package/docs/ai/layout.md +23 -0
- package/docs/ai/list.md +10 -6
- package/docs/ai/menu.md +75 -1
- package/docs/ai/page.md +220 -60
- package/docs/ai/radio.md +9 -0
- package/docs/ai/scrollbar.md +30 -8
- package/docs/ai/segmented.md +35 -35
- package/docs/ai/select.md +30 -5
- package/docs/ai/sidebar.md +45 -27
- package/docs/ai/switch.md +114 -19
- package/docs/ai/table.md +69 -0
- package/docs/ai/tabs.md +2 -1
- package/docs/ai/tile.md +311 -85
- package/docs/ai/timeline.md +63 -39
- package/docs/ai/tokenizer.md +21 -5
- package/docs/ai/tooltip.md +5 -5
- package/docs/ai/view-variant.md +75 -0
- package/fesm2022/malva-ui-core-accordion.mjs +167 -0
- package/fesm2022/malva-ui-core-accordion.mjs.map +1 -0
- package/fesm2022/malva-ui-core-action-bar.mjs +111 -0
- package/fesm2022/malva-ui-core-action-bar.mjs.map +1 -0
- package/fesm2022/malva-ui-core-alert.mjs +173 -0
- package/fesm2022/malva-ui-core-alert.mjs.map +1 -0
- package/fesm2022/malva-ui-core-autocomplete.mjs +775 -0
- package/fesm2022/malva-ui-core-autocomplete.mjs.map +1 -0
- package/fesm2022/malva-ui-core-avatar-group.mjs +224 -0
- package/fesm2022/malva-ui-core-avatar-group.mjs.map +1 -0
- package/fesm2022/malva-ui-core-avatar.mjs +247 -0
- package/fesm2022/malva-ui-core-avatar.mjs.map +1 -0
- package/fesm2022/malva-ui-core-badge.mjs +122 -0
- package/fesm2022/malva-ui-core-badge.mjs.map +1 -0
- package/fesm2022/malva-ui-core-bottom-nav.mjs +161 -0
- package/fesm2022/malva-ui-core-bottom-nav.mjs.map +1 -0
- package/fesm2022/malva-ui-core-breadcrumb.mjs +494 -0
- package/fesm2022/malva-ui-core-breadcrumb.mjs.map +1 -0
- package/fesm2022/malva-ui-core-button.mjs +406 -0
- package/fesm2022/malva-ui-core-button.mjs.map +1 -0
- package/fesm2022/malva-ui-core-calendar.mjs +938 -0
- package/fesm2022/malva-ui-core-calendar.mjs.map +1 -0
- package/fesm2022/malva-ui-core-card.mjs +164 -0
- package/fesm2022/malva-ui-core-card.mjs.map +1 -0
- package/fesm2022/malva-ui-core-chat.mjs +825 -0
- package/fesm2022/malva-ui-core-chat.mjs.map +1 -0
- package/fesm2022/malva-ui-core-checkbox.mjs +272 -0
- package/fesm2022/malva-ui-core-checkbox.mjs.map +1 -0
- package/fesm2022/malva-ui-core-chip.mjs +176 -0
- package/fesm2022/malva-ui-core-chip.mjs.map +1 -0
- package/fesm2022/malva-ui-core-color-picker.mjs +1204 -0
- package/fesm2022/malva-ui-core-color-picker.mjs.map +1 -0
- package/fesm2022/malva-ui-core-combobox.mjs +945 -0
- package/fesm2022/malva-ui-core-combobox.mjs.map +1 -0
- package/fesm2022/malva-ui-core-copy-to-clipboard.mjs +255 -0
- package/fesm2022/malva-ui-core-copy-to-clipboard.mjs.map +1 -0
- package/fesm2022/malva-ui-core-data-table.mjs +2696 -0
- package/fesm2022/malva-ui-core-data-table.mjs.map +1 -0
- package/fesm2022/malva-ui-core-date-range-picker.mjs +276 -0
- package/fesm2022/malva-ui-core-date-range-picker.mjs.map +1 -0
- package/fesm2022/malva-ui-core-day-picker.mjs +131 -0
- package/fesm2022/malva-ui-core-day-picker.mjs.map +1 -0
- package/fesm2022/malva-ui-core-dialog-routable-dialog-CvjXMtlD.mjs +94 -0
- package/fesm2022/malva-ui-core-dialog-routable-dialog-CvjXMtlD.mjs.map +1 -0
- package/fesm2022/malva-ui-core-dialog.mjs +1223 -0
- package/fesm2022/malva-ui-core-dialog.mjs.map +1 -0
- package/fesm2022/malva-ui-core-divider.mjs +80 -0
- package/fesm2022/malva-ui-core-divider.mjs.map +1 -0
- package/fesm2022/malva-ui-core-drawer-routable-drawer-qUk6Etnx.mjs +94 -0
- package/fesm2022/malva-ui-core-drawer-routable-drawer-qUk6Etnx.mjs.map +1 -0
- package/fesm2022/malva-ui-core-drawer.mjs +814 -0
- package/fesm2022/malva-ui-core-drawer.mjs.map +1 -0
- package/fesm2022/malva-ui-core-dropdown.mjs +994 -0
- package/fesm2022/malva-ui-core-dropdown.mjs.map +1 -0
- package/fesm2022/malva-ui-core-empty-state.mjs +50 -0
- package/fesm2022/malva-ui-core-empty-state.mjs.map +1 -0
- package/fesm2022/malva-ui-core-expand.mjs +130 -0
- package/fesm2022/malva-ui-core-expand.mjs.map +1 -0
- package/fesm2022/malva-ui-core-file-upload.mjs +451 -0
- package/fesm2022/malva-ui-core-file-upload.mjs.map +1 -0
- package/fesm2022/malva-ui-core-filter.mjs +1627 -0
- package/fesm2022/malva-ui-core-filter.mjs.map +1 -0
- package/fesm2022/malva-ui-core-form-utils-testing.mjs +39 -0
- package/fesm2022/malva-ui-core-form-utils-testing.mjs.map +1 -0
- package/fesm2022/malva-ui-core-form-utils.mjs +977 -0
- package/fesm2022/malva-ui-core-form-utils.mjs.map +1 -0
- package/fesm2022/malva-ui-core-form.mjs +283 -0
- package/fesm2022/malva-ui-core-form.mjs.map +1 -0
- package/fesm2022/malva-ui-core-icon-toggle.mjs +120 -0
- package/fesm2022/malva-ui-core-icon-toggle.mjs.map +1 -0
- package/fesm2022/malva-ui-core-input.mjs +375 -0
- package/fesm2022/malva-ui-core-input.mjs.map +1 -0
- package/fesm2022/malva-ui-core-kbd.mjs +131 -0
- package/fesm2022/malva-ui-core-kbd.mjs.map +1 -0
- package/fesm2022/malva-ui-core-layout.mjs +212 -0
- package/fesm2022/malva-ui-core-layout.mjs.map +1 -0
- package/fesm2022/malva-ui-core-link.mjs +89 -0
- package/fesm2022/malva-ui-core-link.mjs.map +1 -0
- package/fesm2022/malva-ui-core-list.mjs +413 -0
- package/fesm2022/malva-ui-core-list.mjs.map +1 -0
- package/fesm2022/malva-ui-core-loader.mjs +141 -0
- package/fesm2022/malva-ui-core-loader.mjs.map +1 -0
- package/fesm2022/malva-ui-core-menu.mjs +2540 -0
- package/fesm2022/malva-ui-core-menu.mjs.map +1 -0
- package/fesm2022/malva-ui-core-notification.mjs +201 -0
- package/fesm2022/malva-ui-core-notification.mjs.map +1 -0
- package/fesm2022/malva-ui-core-number-input.mjs +404 -0
- package/fesm2022/malva-ui-core-number-input.mjs.map +1 -0
- package/fesm2022/malva-ui-core-page.mjs +1898 -0
- package/fesm2022/malva-ui-core-page.mjs.map +1 -0
- package/fesm2022/malva-ui-core-pagination.mjs +458 -0
- package/fesm2022/malva-ui-core-pagination.mjs.map +1 -0
- package/fesm2022/malva-ui-core-pin-input.mjs +405 -0
- package/fesm2022/malva-ui-core-pin-input.mjs.map +1 -0
- package/fesm2022/malva-ui-core-popup.mjs +1488 -0
- package/fesm2022/malva-ui-core-popup.mjs.map +1 -0
- package/fesm2022/malva-ui-core-progress.mjs +109 -0
- package/fesm2022/malva-ui-core-progress.mjs.map +1 -0
- package/fesm2022/malva-ui-core-radio.mjs +317 -0
- package/fesm2022/malva-ui-core-radio.mjs.map +1 -0
- package/fesm2022/malva-ui-core-rating.mjs +236 -0
- package/fesm2022/malva-ui-core-rating.mjs.map +1 -0
- package/fesm2022/malva-ui-core-scrollbar.mjs +430 -0
- package/fesm2022/malva-ui-core-scrollbar.mjs.map +1 -0
- package/fesm2022/malva-ui-core-search-field.mjs +578 -0
- package/fesm2022/malva-ui-core-search-field.mjs.map +1 -0
- package/fesm2022/malva-ui-core-segmented.mjs +458 -0
- package/fesm2022/malva-ui-core-segmented.mjs.map +1 -0
- package/fesm2022/malva-ui-core-select.mjs +855 -0
- package/fesm2022/malva-ui-core-select.mjs.map +1 -0
- package/fesm2022/malva-ui-core-sidebar.mjs +1504 -0
- package/fesm2022/malva-ui-core-sidebar.mjs.map +1 -0
- package/fesm2022/malva-ui-core-skeleton.mjs +85 -0
- package/fesm2022/malva-ui-core-skeleton.mjs.map +1 -0
- package/fesm2022/malva-ui-core-slider.mjs +514 -0
- package/fesm2022/malva-ui-core-slider.mjs.map +1 -0
- package/fesm2022/malva-ui-core-split-pane.mjs +359 -0
- package/fesm2022/malva-ui-core-split-pane.mjs.map +1 -0
- package/fesm2022/malva-ui-core-status-indicator.mjs +78 -0
- package/fesm2022/malva-ui-core-status-indicator.mjs.map +1 -0
- package/fesm2022/malva-ui-core-stepper.mjs +332 -0
- package/fesm2022/malva-ui-core-stepper.mjs.map +1 -0
- package/fesm2022/malva-ui-core-switch.mjs +272 -0
- package/fesm2022/malva-ui-core-switch.mjs.map +1 -0
- package/fesm2022/malva-ui-core-table.mjs +79 -0
- package/fesm2022/malva-ui-core-table.mjs.map +1 -0
- package/fesm2022/malva-ui-core-tabs.mjs +794 -0
- package/fesm2022/malva-ui-core-tabs.mjs.map +1 -0
- package/fesm2022/malva-ui-core-textarea.mjs +201 -0
- package/fesm2022/malva-ui-core-textarea.mjs.map +1 -0
- package/fesm2022/malva-ui-core-tile.mjs +1404 -0
- package/fesm2022/malva-ui-core-tile.mjs.map +1 -0
- package/fesm2022/malva-ui-core-time-picker.mjs +533 -0
- package/fesm2022/malva-ui-core-time-picker.mjs.map +1 -0
- package/fesm2022/malva-ui-core-timeline.mjs +216 -0
- package/fesm2022/malva-ui-core-timeline.mjs.map +1 -0
- package/fesm2022/malva-ui-core-title.mjs +178 -0
- package/fesm2022/malva-ui-core-title.mjs.map +1 -0
- package/fesm2022/malva-ui-core-toast.mjs +749 -0
- package/fesm2022/malva-ui-core-toast.mjs.map +1 -0
- package/fesm2022/malva-ui-core-tokenizer.mjs +502 -0
- package/fesm2022/malva-ui-core-tokenizer.mjs.map +1 -0
- package/fesm2022/malva-ui-core-toolbar.mjs +141 -0
- package/fesm2022/malva-ui-core-toolbar.mjs.map +1 -0
- package/fesm2022/malva-ui-core-tooltip.mjs +432 -0
- package/fesm2022/malva-ui-core-tooltip.mjs.map +1 -0
- package/fesm2022/malva-ui-core-tree.mjs +505 -0
- package/fesm2022/malva-ui-core-tree.mjs.map +1 -0
- package/fesm2022/malva-ui-core-view-variant.mjs +292 -0
- package/fesm2022/malva-ui-core-view-variant.mjs.map +1 -0
- package/fesm2022/malva-ui-core.mjs +77 -0
- package/fesm2022/malva-ui-core.mjs.map +1 -0
- package/package.json +179 -156
- package/styles/malva-ui.css +253 -220
- package/styles/tokens.md +174 -173
- package/table/README.md +46 -0
- package/types/malva-ui-core-accordion.d.ts +121 -0
- package/types/malva-ui-core-action-bar.d.ts +82 -0
- package/types/malva-ui-core-alert.d.ts +131 -0
- package/types/malva-ui-core-autocomplete.d.ts +301 -0
- package/types/malva-ui-core-avatar-group.d.ts +119 -0
- package/types/malva-ui-core-avatar.d.ts +156 -0
- package/types/malva-ui-core-badge.d.ts +97 -0
- package/types/malva-ui-core-bottom-nav.d.ts +104 -0
- package/types/malva-ui-core-breadcrumb.d.ts +308 -0
- package/types/malva-ui-core-button.d.ts +194 -0
- package/types/malva-ui-core-calendar.d.ts +339 -0
- package/types/malva-ui-core-card.d.ts +88 -0
- package/types/malva-ui-core-chat.d.ts +375 -0
- package/types/malva-ui-core-checkbox.d.ts +158 -0
- package/types/malva-ui-core-chip.d.ts +128 -0
- package/types/malva-ui-core-color-picker.d.ts +442 -0
- package/types/malva-ui-core-combobox.d.ts +419 -0
- package/types/malva-ui-core-copy-to-clipboard.d.ts +148 -0
- package/types/malva-ui-core-data-table.d.ts +1074 -0
- package/types/malva-ui-core-date-range-picker.d.ts +149 -0
- package/types/malva-ui-core-day-picker.d.ts +55 -0
- package/types/malva-ui-core-dialog.d.ts +597 -0
- package/types/malva-ui-core-divider.d.ts +68 -0
- package/types/malva-ui-core-drawer.d.ts +333 -0
- package/types/malva-ui-core-dropdown.d.ts +592 -0
- package/types/malva-ui-core-empty-state.d.ts +37 -0
- package/types/malva-ui-core-expand.d.ts +102 -0
- package/types/malva-ui-core-file-upload.d.ts +267 -0
- package/types/malva-ui-core-filter.d.ts +552 -0
- package/types/malva-ui-core-form-utils-testing.d.ts +50 -0
- package/types/malva-ui-core-form-utils.d.ts +579 -0
- package/types/malva-ui-core-form.d.ts +176 -0
- package/types/malva-ui-core-icon-toggle.d.ts +80 -0
- package/types/malva-ui-core-input.d.ts +262 -0
- package/types/malva-ui-core-kbd.d.ts +56 -0
- package/types/malva-ui-core-layout.d.ts +70 -0
- package/types/malva-ui-core-link.d.ts +28 -0
- package/types/malva-ui-core-list.d.ts +252 -0
- package/types/malva-ui-core-loader.d.ts +89 -0
- package/types/malva-ui-core-menu.d.ts +954 -0
- package/types/malva-ui-core-notification.d.ts +122 -0
- package/types/malva-ui-core-number-input.d.ts +167 -0
- package/types/malva-ui-core-page.d.ts +799 -0
- package/types/malva-ui-core-pagination.d.ts +261 -0
- package/types/malva-ui-core-pin-input.d.ts +203 -0
- package/types/malva-ui-core-popup.d.ts +834 -0
- package/types/malva-ui-core-progress.d.ts +73 -0
- package/types/malva-ui-core-radio.d.ts +130 -0
- package/types/malva-ui-core-rating.d.ts +115 -0
- package/types/malva-ui-core-scrollbar.d.ts +203 -0
- package/types/malva-ui-core-search-field.d.ts +408 -0
- package/types/malva-ui-core-segmented.d.ts +206 -0
- package/types/malva-ui-core-select.d.ts +456 -0
- package/types/malva-ui-core-sidebar.d.ts +698 -0
- package/types/malva-ui-core-skeleton.d.ts +64 -0
- package/types/malva-ui-core-slider.d.ts +219 -0
- package/types/malva-ui-core-split-pane.d.ts +149 -0
- package/types/malva-ui-core-status-indicator.d.ts +65 -0
- package/types/malva-ui-core-stepper.d.ts +168 -0
- package/types/malva-ui-core-switch.d.ts +146 -0
- package/types/malva-ui-core-table.d.ts +37 -0
- package/types/malva-ui-core-tabs.d.ts +339 -0
- package/types/malva-ui-core-textarea.d.ts +79 -0
- package/types/malva-ui-core-tile.d.ts +373 -0
- package/types/malva-ui-core-time-picker.d.ts +141 -0
- package/types/malva-ui-core-timeline.d.ts +188 -0
- package/types/malva-ui-core-title.d.ts +66 -0
- package/types/malva-ui-core-toast.d.ts +432 -0
- package/types/malva-ui-core-tokenizer.d.ts +217 -0
- package/types/malva-ui-core-toolbar.d.ts +91 -0
- package/types/malva-ui-core-tooltip.d.ts +200 -0
- package/types/malva-ui-core-tree.d.ts +289 -0
- package/types/malva-ui-core-view-variant.d.ts +207 -0
- package/types/malva-ui-core.d.ts +72 -0
- package/view-variant/README.md +3 -0
- package/accordion/index.d.ts +0 -3
- package/accordion/lib/accordion/accordion.d.ts +0 -47
- package/accordion/lib/accordion-item/accordion-header.d.ts +0 -22
- package/accordion/lib/accordion-item/accordion-item.d.ts +0 -49
- package/accordion/malva-ui-core-accordion.d.ts +0 -5
- package/action-bar/index.d.ts +0 -4
- package/action-bar/lib/action-bar/action-bar.d.ts +0 -59
- package/action-bar/lib/action-bar/components/action-bar-actions.d.ts +0 -9
- package/action-bar/lib/action-bar/components/action-bar-logo.d.ts +0 -5
- package/action-bar/lib/action-bar/components/action-bar-spacer.d.ts +0 -5
- package/action-bar/malva-ui-core-action-bar.d.ts +0 -5
- package/alert/index.d.ts +0 -2
- package/alert/lib/alert/alert.d.ts +0 -84
- package/alert/lib/alert/alert.directives.d.ts +0 -44
- package/alert/malva-ui-core-alert.d.ts +0 -5
- package/autocomplete/index.d.ts +0 -1
- package/autocomplete/lib/autocomplete/autocomplete.d.ts +0 -296
- package/autocomplete/malva-ui-core-autocomplete.d.ts +0 -5
- package/avatar/index.d.ts +0 -2
- package/avatar/lib/avatar/avatar.d.ts +0 -125
- package/avatar/lib/color-from-text.pipe.d.ts +0 -21
- package/avatar/malva-ui-core-avatar.d.ts +0 -5
- package/avatar-group/index.d.ts +0 -1
- package/avatar-group/lib/avatar-group/avatar-group.d.ts +0 -115
- package/avatar-group/malva-ui-core-avatar-group.d.ts +0 -5
- package/badge/index.d.ts +0 -2
- package/badge/lib/badge/badge.d.ts +0 -59
- package/badge/lib/badge-icon.d.ts +0 -35
- package/badge/malva-ui-core-badge.d.ts +0 -5
- package/bottom-nav/index.d.ts +0 -1
- package/bottom-nav/lib/bottom-nav/bottom-nav.d.ts +0 -99
- package/bottom-nav/malva-ui-core-bottom-nav.d.ts +0 -5
- package/breadcrumb/index.d.ts +0 -5
- package/breadcrumb/lib/breadcrumb/breadcrumb-item-host.d.ts +0 -32
- package/breadcrumb/lib/breadcrumb/breadcrumb-item.d.ts +0 -41
- package/breadcrumb/lib/breadcrumb/breadcrumb-separator.d.ts +0 -31
- package/breadcrumb/lib/breadcrumb/breadcrumb.d.ts +0 -151
- package/breadcrumb/lib/breadcrumb/breadcrumb.types.d.ts +0 -26
- package/breadcrumb/malva-ui-core-breadcrumb.d.ts +0 -5
- package/button/index.d.ts +0 -7
- package/button/lib/button/button.d.ts +0 -61
- package/button/lib/button-close/button-close.d.ts +0 -24
- package/button/lib/button-group/button-group.d.ts +0 -21
- package/button/lib/button-split/button-split.d.ts +0 -21
- package/button/lib/button-toggle/button-toggle.d.ts +0 -33
- package/button/lib/button-variant.token.d.ts +0 -13
- package/button/lib/button.directives.d.ts +0 -14
- package/button/lib/button.types.d.ts +0 -8
- package/button/malva-ui-core-button.d.ts +0 -5
- package/calendar/index.d.ts +0 -3
- package/calendar/lib/calendar/calendar.d.ts +0 -182
- package/calendar/lib/date-provider/date-adapter.d.ts +0 -92
- package/calendar/lib/date-provider/native-date-adapter.d.ts +0 -60
- package/calendar/malva-ui-core-calendar.d.ts +0 -5
- package/card/index.d.ts +0 -5
- package/card/lib/card/card.d.ts +0 -43
- package/card/lib/card-actions-def.d.ts +0 -10
- package/card/lib/card-footer-def.d.ts +0 -13
- package/card/lib/card-header-def.d.ts +0 -10
- package/card/lib/card-subheader-def.d.ts +0 -16
- package/card/malva-ui-core-card.d.ts +0 -5
- package/chat/index.d.ts +0 -9
- package/chat/lib/chat/chat.d.ts +0 -133
- package/chat/lib/chat-audio/chat-audio.d.ts +0 -51
- package/chat/lib/chat-audio/chat-audio.service.d.ts +0 -21
- package/chat/lib/chat-date/chat-date.d.ts +0 -16
- package/chat/lib/chat-format.d.ts +0 -5
- package/chat/lib/chat-media-grid/chat-media-grid.d.ts +0 -32
- package/chat/lib/chat-message/chat-message.d.ts +0 -45
- package/chat/lib/chat-render-list.d.ts +0 -16
- package/chat/lib/chat-tokens.d.ts +0 -25
- package/chat/lib/chat-typing/chat-typing.d.ts +0 -16
- package/chat/lib/chat.types.d.ts +0 -80
- package/chat/lib/defs/chat-author-def.d.ts +0 -30
- package/chat/lib/defs/chat-date-def.d.ts +0 -22
- package/chat/lib/defs/chat-message-def.d.ts +0 -23
- package/chat/malva-ui-core-chat.d.ts +0 -5
- package/checkbox/index.d.ts +0 -3
- package/checkbox/lib/checkbox/checkbox.d.ts +0 -129
- package/checkbox/lib/checkbox-group/checkbox-group.d.ts +0 -24
- package/checkbox/lib/checkbox-group-token.d.ts +0 -6
- package/checkbox/malva-ui-core-checkbox.d.ts +0 -5
- package/chip/index.d.ts +0 -2
- package/chip/lib/chip/chip.d.ts +0 -107
- package/chip/lib/chip/chip.directives.d.ts +0 -18
- package/chip/malva-ui-core-chip.d.ts +0 -5
- package/color-picker/index.d.ts +0 -3
- package/color-picker/lib/color-picker/color-picker.d.ts +0 -188
- package/color-picker/lib/color-picker-popup/color-picker-popup.d.ts +0 -151
- package/color-picker/lib/color-utils/color-utils.d.ts +0 -102
- package/color-picker/malva-ui-core-color-picker.d.ts +0 -5
- package/combobox/index.d.ts +0 -2
- package/combobox/lib/combobox/combobox.d.ts +0 -400
- package/combobox/lib/combobox-template.directives.d.ts +0 -10
- package/combobox/malva-ui-core-combobox.d.ts +0 -5
- package/copy-to-clipboard/index.d.ts +0 -1
- package/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.d.ts +0 -130
- package/copy-to-clipboard/malva-ui-core-copy-to-clipboard.d.ts +0 -5
- package/data-table/index.d.ts +0 -8
- package/data-table/lib/data-source.d.ts +0 -5
- package/data-table/lib/data-table/data-table-layout.d.ts +0 -31
- package/data-table/lib/data-table/data-table.d.ts +0 -699
- package/data-table/lib/data-table/services/data-table-column-visibility.service.d.ts +0 -19
- package/data-table/lib/data-table/services/data-table-editing.service.d.ts +0 -37
- package/data-table/lib/data-table/services/data-table-pinning.service.d.ts +0 -37
- package/data-table/lib/data-table-cell.d.ts +0 -44
- package/data-table/lib/data-table-edit-cell.d.ts +0 -44
- package/data-table/lib/data-table-error.d.ts +0 -37
- package/data-table/lib/data-table-footer.d.ts +0 -26
- package/data-table/lib/data-table-no-data.d.ts +0 -19
- package/data-table/lib/filter-dropdown/filter-dropdown.d.ts +0 -54
- package/data-table/lib/types.d.ts +0 -134
- package/data-table/malva-ui-core-data-table.d.ts +0 -5
- package/date-range-picker/index.d.ts +0 -1
- package/date-range-picker/lib/date-range-picker/date-range-picker.d.ts +0 -145
- package/date-range-picker/malva-ui-core-date-range-picker.d.ts +0 -5
- package/day-picker/index.d.ts +0 -1
- package/day-picker/lib/day-picker/day-picker.d.ts +0 -51
- package/day-picker/malva-ui-core-day-picker.d.ts +0 -5
- package/dialog/index.d.ts +0 -11
- package/dialog/lib/confirm-dialog-options.d.ts +0 -41
- package/dialog/lib/confirm-dialog.d.ts +0 -52
- package/dialog/lib/dialog/dialog.d.ts +0 -22
- package/dialog/lib/dialog-body.d.ts +0 -9
- package/dialog/lib/dialog-close.d.ts +0 -27
- package/dialog/lib/dialog-config.d.ts +0 -112
- package/dialog/lib/dialog-container.d.ts +0 -40
- package/dialog/lib/dialog-footer.d.ts +0 -13
- package/dialog/lib/dialog-header.d.ts +0 -74
- package/dialog/lib/dialog-ref.d.ts +0 -95
- package/dialog/lib/dialog-template.d.ts +0 -65
- package/dialog/lib/dialog-text-content.d.ts +0 -24
- package/dialog/lib/dialog.service.d.ts +0 -63
- package/dialog/lib/generate-routable-dialog-route.d.ts +0 -49
- package/dialog/lib/inject-dialog-ref.d.ts +0 -8
- package/dialog/lib/routable-dialog.d.ts +0 -30
- package/dialog/malva-ui-core-dialog.d.ts +0 -5
- package/divider/index.d.ts +0 -1
- package/divider/lib/divider/divider.d.ts +0 -64
- package/divider/malva-ui-core-divider.d.ts +0 -5
- package/drawer/index.d.ts +0 -11
- package/drawer/lib/drawer/drawer.d.ts +0 -106
- package/drawer/lib/drawer-body.d.ts +0 -8
- package/drawer/lib/drawer-content.d.ts +0 -6
- package/drawer/lib/drawer-footer.d.ts +0 -5
- package/drawer/lib/drawer-header.d.ts +0 -5
- package/drawer/lib/drawer-ref.d.ts +0 -29
- package/drawer/lib/drawer-resize.d.ts +0 -65
- package/drawer/lib/drawer-section/drawer-section.d.ts +0 -15
- package/drawer/lib/drawer-sections/drawer-sections.d.ts +0 -22
- package/drawer/lib/drawer-sections.service.d.ts +0 -42
- package/drawer/lib/drawer.service.d.ts +0 -66
- package/drawer/lib/generate-routable-drawer-route.d.ts +0 -42
- package/drawer/lib/routable-drawer.d.ts +0 -30
- package/drawer/malva-ui-core-drawer.d.ts +0 -5
- package/dropdown/index.d.ts +0 -9
- package/dropdown/lib/active-descendant.d.ts +0 -64
- package/dropdown/lib/dropdown-panel/dropdown-panel.d.ts +0 -178
- package/dropdown/lib/highlight-match.pipe.d.ts +0 -27
- package/dropdown/lib/option-matcher.d.ts +0 -87
- package/dropdown/lib/options-adapter.d.ts +0 -142
- package/dropdown/lib/options-result.d.ts +0 -6
- package/dropdown/lib/reconciliation.d.ts +0 -19
- package/dropdown/lib/select-data-source.d.ts +0 -18
- package/dropdown/lib/select-option.d.ts +0 -37
- package/dropdown/malva-ui-core-dropdown.d.ts +0 -5
- package/empty-state/index.d.ts +0 -1
- package/empty-state/lib/empty-state/empty-state.d.ts +0 -34
- package/empty-state/malva-ui-core-empty-state.d.ts +0 -5
- package/esm2022/accordion/index.js +0 -4
- package/esm2022/accordion/index.js.map +0 -1
- package/esm2022/accordion/lib/accordion/accordion.js +0 -65
- package/esm2022/accordion/lib/accordion/accordion.js.map +0 -1
- package/esm2022/accordion/lib/accordion-item/accordion-header.js +0 -30
- package/esm2022/accordion/lib/accordion-item/accordion-header.js.map +0 -1
- package/esm2022/accordion/lib/accordion-item/accordion-item.js +0 -70
- package/esm2022/accordion/lib/accordion-item/accordion-item.js.map +0 -1
- package/esm2022/accordion/malva-ui-core-accordion.js +0 -5
- package/esm2022/accordion/malva-ui-core-accordion.js.map +0 -1
- package/esm2022/action-bar/index.js +0 -5
- package/esm2022/action-bar/index.js.map +0 -1
- package/esm2022/action-bar/lib/action-bar/action-bar.js +0 -64
- package/esm2022/action-bar/lib/action-bar/action-bar.js.map +0 -1
- package/esm2022/action-bar/lib/action-bar/components/action-bar-actions.js +0 -20
- package/esm2022/action-bar/lib/action-bar/components/action-bar-actions.js.map +0 -1
- package/esm2022/action-bar/lib/action-bar/components/action-bar-logo.js +0 -13
- package/esm2022/action-bar/lib/action-bar/components/action-bar-logo.js.map +0 -1
- package/esm2022/action-bar/lib/action-bar/components/action-bar-spacer.js +0 -13
- package/esm2022/action-bar/lib/action-bar/components/action-bar-spacer.js.map +0 -1
- package/esm2022/action-bar/malva-ui-core-action-bar.js +0 -5
- package/esm2022/action-bar/malva-ui-core-action-bar.js.map +0 -1
- package/esm2022/alert/index.js +0 -3
- package/esm2022/alert/index.js.map +0 -1
- package/esm2022/alert/lib/alert/alert.directives.js +0 -53
- package/esm2022/alert/lib/alert/alert.directives.js.map +0 -1
- package/esm2022/alert/lib/alert/alert.js +0 -118
- package/esm2022/alert/lib/alert/alert.js.map +0 -1
- package/esm2022/alert/malva-ui-core-alert.js +0 -5
- package/esm2022/alert/malva-ui-core-alert.js.map +0 -1
- package/esm2022/autocomplete/index.js +0 -2
- package/esm2022/autocomplete/index.js.map +0 -1
- package/esm2022/autocomplete/lib/autocomplete/autocomplete.js +0 -765
- package/esm2022/autocomplete/lib/autocomplete/autocomplete.js.map +0 -1
- package/esm2022/autocomplete/malva-ui-core-autocomplete.js +0 -5
- package/esm2022/autocomplete/malva-ui-core-autocomplete.js.map +0 -1
- package/esm2022/avatar/index.js +0 -3
- package/esm2022/avatar/index.js.map +0 -1
- package/esm2022/avatar/lib/avatar/avatar.js +0 -192
- package/esm2022/avatar/lib/avatar/avatar.js.map +0 -1
- package/esm2022/avatar/lib/color-from-text.pipe.js +0 -39
- package/esm2022/avatar/lib/color-from-text.pipe.js.map +0 -1
- package/esm2022/avatar/malva-ui-core-avatar.js +0 -5
- package/esm2022/avatar/malva-ui-core-avatar.js.map +0 -1
- package/esm2022/avatar-group/index.js +0 -2
- package/esm2022/avatar-group/index.js.map +0 -1
- package/esm2022/avatar-group/lib/avatar-group/avatar-group.js +0 -217
- package/esm2022/avatar-group/lib/avatar-group/avatar-group.js.map +0 -1
- package/esm2022/avatar-group/malva-ui-core-avatar-group.js +0 -5
- package/esm2022/avatar-group/malva-ui-core-avatar-group.js.map +0 -1
- package/esm2022/badge/index.js +0 -3
- package/esm2022/badge/index.js.map +0 -1
- package/esm2022/badge/lib/badge/badge.js +0 -71
- package/esm2022/badge/lib/badge/badge.js.map +0 -1
- package/esm2022/badge/lib/badge-icon.js +0 -47
- package/esm2022/badge/lib/badge-icon.js.map +0 -1
- package/esm2022/badge/malva-ui-core-badge.js +0 -5
- package/esm2022/badge/malva-ui-core-badge.js.map +0 -1
- package/esm2022/bottom-nav/index.js +0 -2
- package/esm2022/bottom-nav/index.js.map +0 -1
- package/esm2022/bottom-nav/lib/bottom-nav/bottom-nav.js +0 -155
- package/esm2022/bottom-nav/lib/bottom-nav/bottom-nav.js.map +0 -1
- package/esm2022/bottom-nav/malva-ui-core-bottom-nav.js +0 -5
- package/esm2022/bottom-nav/malva-ui-core-bottom-nav.js.map +0 -1
- package/esm2022/breadcrumb/index.js +0 -6
- package/esm2022/breadcrumb/index.js.map +0 -1
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item-host.js +0 -43
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item-host.js.map +0 -1
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item.js +0 -110
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item.js.map +0 -1
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-separator.js +0 -38
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-separator.js.map +0 -1
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.js +0 -284
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.js.map +0 -1
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.types.js +0 -1
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.types.js.map +0 -1
- package/esm2022/breadcrumb/malva-ui-core-breadcrumb.js +0 -5
- package/esm2022/breadcrumb/malva-ui-core-breadcrumb.js.map +0 -1
- package/esm2022/button/index.js +0 -8
- package/esm2022/button/index.js.map +0 -1
- package/esm2022/button/lib/button/button.js +0 -137
- package/esm2022/button/lib/button/button.js.map +0 -1
- package/esm2022/button/lib/button-close/button-close.js +0 -52
- package/esm2022/button/lib/button-close/button-close.js.map +0 -1
- package/esm2022/button/lib/button-group/button-group.js +0 -44
- package/esm2022/button/lib/button-group/button-group.js.map +0 -1
- package/esm2022/button/lib/button-split/button-split.js +0 -44
- package/esm2022/button/lib/button-split/button-split.js.map +0 -1
- package/esm2022/button/lib/button-toggle/button-toggle.js +0 -94
- package/esm2022/button/lib/button-toggle/button-toggle.js.map +0 -1
- package/esm2022/button/lib/button-variant.token.js +0 -4
- package/esm2022/button/lib/button-variant.token.js.map +0 -1
- package/esm2022/button/lib/button.directives.js +0 -37
- package/esm2022/button/lib/button.directives.js.map +0 -1
- package/esm2022/button/lib/button.types.js +0 -1
- package/esm2022/button/lib/button.types.js.map +0 -1
- package/esm2022/button/malva-ui-core-button.js +0 -5
- package/esm2022/button/malva-ui-core-button.js.map +0 -1
- package/esm2022/calendar/index.js +0 -4
- package/esm2022/calendar/index.js.map +0 -1
- package/esm2022/calendar/lib/calendar/calendar.js +0 -672
- package/esm2022/calendar/lib/calendar/calendar.js.map +0 -1
- package/esm2022/calendar/lib/date-provider/date-adapter.js +0 -111
- package/esm2022/calendar/lib/date-provider/date-adapter.js.map +0 -1
- package/esm2022/calendar/lib/date-provider/native-date-adapter.js +0 -151
- package/esm2022/calendar/lib/date-provider/native-date-adapter.js.map +0 -1
- package/esm2022/calendar/malva-ui-core-calendar.js +0 -5
- package/esm2022/calendar/malva-ui-core-calendar.js.map +0 -1
- package/esm2022/card/index.js +0 -6
- package/esm2022/card/index.js.map +0 -1
- package/esm2022/card/lib/card/card.js +0 -54
- package/esm2022/card/lib/card/card.js.map +0 -1
- package/esm2022/card/lib/card-actions-def.js +0 -27
- package/esm2022/card/lib/card-actions-def.js.map +0 -1
- package/esm2022/card/lib/card-footer-def.js +0 -32
- package/esm2022/card/lib/card-footer-def.js.map +0 -1
- package/esm2022/card/lib/card-header-def.js +0 -27
- package/esm2022/card/lib/card-header-def.js.map +0 -1
- package/esm2022/card/lib/card-subheader-def.js +0 -33
- package/esm2022/card/lib/card-subheader-def.js.map +0 -1
- package/esm2022/card/malva-ui-core-card.js +0 -5
- package/esm2022/card/malva-ui-core-card.js.map +0 -1
- package/esm2022/chat/index.js +0 -10
- package/esm2022/chat/index.js.map +0 -1
- package/esm2022/chat/lib/chat/chat.js +0 -326
- package/esm2022/chat/lib/chat/chat.js.map +0 -1
- package/esm2022/chat/lib/chat-audio/chat-audio.js +0 -110
- package/esm2022/chat/lib/chat-audio/chat-audio.js.map +0 -1
- package/esm2022/chat/lib/chat-audio/chat-audio.service.js +0 -28
- package/esm2022/chat/lib/chat-audio/chat-audio.service.js.map +0 -1
- package/esm2022/chat/lib/chat-date/chat-date.js +0 -46
- package/esm2022/chat/lib/chat-date/chat-date.js.map +0 -1
- package/esm2022/chat/lib/chat-format.js +0 -11
- package/esm2022/chat/lib/chat-format.js.map +0 -1
- package/esm2022/chat/lib/chat-media-grid/chat-media-grid.js +0 -53
- package/esm2022/chat/lib/chat-media-grid/chat-media-grid.js.map +0 -1
- package/esm2022/chat/lib/chat-message/chat-message.js +0 -86
- package/esm2022/chat/lib/chat-message/chat-message.js.map +0 -1
- package/esm2022/chat/lib/chat-render-list.js +0 -55
- package/esm2022/chat/lib/chat-render-list.js.map +0 -1
- package/esm2022/chat/lib/chat-tokens.js +0 -9
- package/esm2022/chat/lib/chat-tokens.js.map +0 -1
- package/esm2022/chat/lib/chat-typing/chat-typing.js +0 -50
- package/esm2022/chat/lib/chat-typing/chat-typing.js.map +0 -1
- package/esm2022/chat/lib/chat.types.js +0 -1
- package/esm2022/chat/lib/chat.types.js.map +0 -1
- package/esm2022/chat/lib/defs/chat-author-def.js +0 -27
- package/esm2022/chat/lib/defs/chat-author-def.js.map +0 -1
- package/esm2022/chat/lib/defs/chat-date-def.js +0 -24
- package/esm2022/chat/lib/defs/chat-date-def.js.map +0 -1
- package/esm2022/chat/lib/defs/chat-message-def.js +0 -30
- package/esm2022/chat/lib/defs/chat-message-def.js.map +0 -1
- package/esm2022/chat/malva-ui-core-chat.js +0 -5
- package/esm2022/chat/malva-ui-core-chat.js.map +0 -1
- package/esm2022/checkbox/index.js +0 -4
- package/esm2022/checkbox/index.js.map +0 -1
- package/esm2022/checkbox/lib/checkbox/checkbox.js +0 -201
- package/esm2022/checkbox/lib/checkbox/checkbox.js.map +0 -1
- package/esm2022/checkbox/lib/checkbox-group/checkbox-group.js +0 -68
- package/esm2022/checkbox/lib/checkbox-group/checkbox-group.js.map +0 -1
- package/esm2022/checkbox/lib/checkbox-group-token.js +0 -3
- package/esm2022/checkbox/lib/checkbox-group-token.js.map +0 -1
- package/esm2022/checkbox/malva-ui-core-checkbox.js +0 -5
- package/esm2022/checkbox/malva-ui-core-checkbox.js.map +0 -1
- package/esm2022/chip/index.js +0 -3
- package/esm2022/chip/index.js.map +0 -1
- package/esm2022/chip/lib/chip/chip.directives.js +0 -32
- package/esm2022/chip/lib/chip/chip.directives.js.map +0 -1
- package/esm2022/chip/lib/chip/chip.js +0 -140
- package/esm2022/chip/lib/chip/chip.js.map +0 -1
- package/esm2022/chip/malva-ui-core-chip.js +0 -5
- package/esm2022/chip/malva-ui-core-chip.js.map +0 -1
- package/esm2022/color-picker/index.js +0 -4
- package/esm2022/color-picker/index.js.map +0 -1
- package/esm2022/color-picker/lib/color-picker/color-picker.js +0 -530
- package/esm2022/color-picker/lib/color-picker/color-picker.js.map +0 -1
- package/esm2022/color-picker/lib/color-picker-popup/color-picker-popup.js +0 -419
- package/esm2022/color-picker/lib/color-picker-popup/color-picker-popup.js.map +0 -1
- package/esm2022/color-picker/lib/color-utils/color-utils.js +0 -256
- package/esm2022/color-picker/lib/color-utils/color-utils.js.map +0 -1
- package/esm2022/color-picker/malva-ui-core-color-picker.js +0 -5
- package/esm2022/color-picker/malva-ui-core-color-picker.js.map +0 -1
- package/esm2022/combobox/index.js +0 -3
- package/esm2022/combobox/index.js.map +0 -1
- package/esm2022/combobox/lib/combobox/combobox.js +0 -911
- package/esm2022/combobox/lib/combobox/combobox.js.map +0 -1
- package/esm2022/combobox/lib/combobox-template.directives.js +0 -24
- package/esm2022/combobox/lib/combobox-template.directives.js.map +0 -1
- package/esm2022/combobox/malva-ui-core-combobox.js +0 -5
- package/esm2022/combobox/malva-ui-core-combobox.js.map +0 -1
- package/esm2022/copy-to-clipboard/index.js +0 -2
- package/esm2022/copy-to-clipboard/index.js.map +0 -1
- package/esm2022/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.js +0 -201
- package/esm2022/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.js.map +0 -1
- package/esm2022/copy-to-clipboard/malva-ui-core-copy-to-clipboard.js +0 -5
- package/esm2022/copy-to-clipboard/malva-ui-core-copy-to-clipboard.js.map +0 -1
- package/esm2022/data-table/index.js +0 -9
- package/esm2022/data-table/index.js.map +0 -1
- package/esm2022/data-table/lib/data-source.js +0 -6
- package/esm2022/data-table/lib/data-source.js.map +0 -1
- package/esm2022/data-table/lib/data-table/data-table-layout.js +0 -84
- package/esm2022/data-table/lib/data-table/data-table-layout.js.map +0 -1
- package/esm2022/data-table/lib/data-table/data-table.js +0 -1846
- package/esm2022/data-table/lib/data-table/data-table.js.map +0 -1
- package/esm2022/data-table/lib/data-table/services/data-table-column-visibility.service.js +0 -37
- package/esm2022/data-table/lib/data-table/services/data-table-column-visibility.service.js.map +0 -1
- package/esm2022/data-table/lib/data-table/services/data-table-editing.service.js +0 -63
- package/esm2022/data-table/lib/data-table/services/data-table-editing.service.js.map +0 -1
- package/esm2022/data-table/lib/data-table/services/data-table-pinning.service.js +0 -68
- package/esm2022/data-table/lib/data-table/services/data-table-pinning.service.js.map +0 -1
- package/esm2022/data-table/lib/data-table-cell.js +0 -46
- package/esm2022/data-table/lib/data-table-cell.js.map +0 -1
- package/esm2022/data-table/lib/data-table-edit-cell.js +0 -46
- package/esm2022/data-table/lib/data-table-edit-cell.js.map +0 -1
- package/esm2022/data-table/lib/data-table-error.js +0 -37
- package/esm2022/data-table/lib/data-table-error.js.map +0 -1
- package/esm2022/data-table/lib/data-table-footer.js +0 -33
- package/esm2022/data-table/lib/data-table-footer.js.map +0 -1
- package/esm2022/data-table/lib/data-table-no-data.js +0 -26
- package/esm2022/data-table/lib/data-table-no-data.js.map +0 -1
- package/esm2022/data-table/lib/filter-dropdown/filter-dropdown.js +0 -224
- package/esm2022/data-table/lib/filter-dropdown/filter-dropdown.js.map +0 -1
- package/esm2022/data-table/lib/types.js +0 -1
- package/esm2022/data-table/lib/types.js.map +0 -1
- package/esm2022/data-table/malva-ui-core-data-table.js +0 -5
- package/esm2022/data-table/malva-ui-core-data-table.js.map +0 -1
- package/esm2022/date-range-picker/index.js +0 -2
- package/esm2022/date-range-picker/index.js.map +0 -1
- package/esm2022/date-range-picker/lib/date-range-picker/date-range-picker.js +0 -269
- package/esm2022/date-range-picker/lib/date-range-picker/date-range-picker.js.map +0 -1
- package/esm2022/date-range-picker/malva-ui-core-date-range-picker.js +0 -5
- package/esm2022/date-range-picker/malva-ui-core-date-range-picker.js.map +0 -1
- package/esm2022/day-picker/index.js +0 -2
- package/esm2022/day-picker/index.js.map +0 -1
- package/esm2022/day-picker/lib/day-picker/day-picker.js +0 -124
- package/esm2022/day-picker/lib/day-picker/day-picker.js.map +0 -1
- package/esm2022/day-picker/malva-ui-core-day-picker.js +0 -5
- package/esm2022/day-picker/malva-ui-core-day-picker.js.map +0 -1
- package/esm2022/dialog/index.js +0 -12
- package/esm2022/dialog/index.js.map +0 -1
- package/esm2022/dialog/lib/confirm-dialog-options.js +0 -1
- package/esm2022/dialog/lib/confirm-dialog-options.js.map +0 -1
- package/esm2022/dialog/lib/confirm-dialog.js +0 -155
- package/esm2022/dialog/lib/confirm-dialog.js.map +0 -1
- package/esm2022/dialog/lib/dialog/dialog.js +0 -40
- package/esm2022/dialog/lib/dialog/dialog.js.map +0 -1
- package/esm2022/dialog/lib/dialog-body.js +0 -33
- package/esm2022/dialog/lib/dialog-body.js.map +0 -1
- package/esm2022/dialog/lib/dialog-close.js +0 -45
- package/esm2022/dialog/lib/dialog-close.js.map +0 -1
- package/esm2022/dialog/lib/dialog-config.js +0 -23
- package/esm2022/dialog/lib/dialog-config.js.map +0 -1
- package/esm2022/dialog/lib/dialog-container.js +0 -69
- package/esm2022/dialog/lib/dialog-container.js.map +0 -1
- package/esm2022/dialog/lib/dialog-footer.js +0 -29
- package/esm2022/dialog/lib/dialog-footer.js.map +0 -1
- package/esm2022/dialog/lib/dialog-header.js +0 -181
- package/esm2022/dialog/lib/dialog-header.js.map +0 -1
- package/esm2022/dialog/lib/dialog-ref.js +0 -167
- package/esm2022/dialog/lib/dialog-ref.js.map +0 -1
- package/esm2022/dialog/lib/dialog-template.js +0 -136
- package/esm2022/dialog/lib/dialog-template.js.map +0 -1
- package/esm2022/dialog/lib/dialog-text-content.js +0 -59
- package/esm2022/dialog/lib/dialog-text-content.js.map +0 -1
- package/esm2022/dialog/lib/dialog.service.js +0 -205
- package/esm2022/dialog/lib/dialog.service.js.map +0 -1
- package/esm2022/dialog/lib/generate-routable-dialog-route.js +0 -59
- package/esm2022/dialog/lib/generate-routable-dialog-route.js.map +0 -1
- package/esm2022/dialog/lib/inject-dialog-ref.js +0 -16
- package/esm2022/dialog/lib/inject-dialog-ref.js.map +0 -1
- package/esm2022/dialog/lib/routable-dialog.js +0 -91
- package/esm2022/dialog/lib/routable-dialog.js.map +0 -1
- package/esm2022/dialog/malva-ui-core-dialog.js +0 -5
- package/esm2022/dialog/malva-ui-core-dialog.js.map +0 -1
- package/esm2022/divider/index.js +0 -2
- package/esm2022/divider/index.js.map +0 -1
- package/esm2022/divider/lib/divider/divider.js +0 -73
- package/esm2022/divider/lib/divider/divider.js.map +0 -1
- package/esm2022/divider/malva-ui-core-divider.js +0 -5
- package/esm2022/divider/malva-ui-core-divider.js.map +0 -1
- package/esm2022/drawer/index.js +0 -12
- package/esm2022/drawer/index.js.map +0 -1
- package/esm2022/drawer/lib/drawer/drawer.js +0 -180
- package/esm2022/drawer/lib/drawer/drawer.js.map +0 -1
- package/esm2022/drawer/lib/drawer-body.js +0 -32
- package/esm2022/drawer/lib/drawer-body.js.map +0 -1
- package/esm2022/drawer/lib/drawer-content.js +0 -14
- package/esm2022/drawer/lib/drawer-content.js.map +0 -1
- package/esm2022/drawer/lib/drawer-footer.js +0 -14
- package/esm2022/drawer/lib/drawer-footer.js.map +0 -1
- package/esm2022/drawer/lib/drawer-header.js +0 -14
- package/esm2022/drawer/lib/drawer-header.js.map +0 -1
- package/esm2022/drawer/lib/drawer-ref.js +0 -31
- package/esm2022/drawer/lib/drawer-ref.js.map +0 -1
- package/esm2022/drawer/lib/drawer-resize.js +0 -243
- package/esm2022/drawer/lib/drawer-resize.js.map +0 -1
- package/esm2022/drawer/lib/drawer-section/drawer-section.js +0 -26
- package/esm2022/drawer/lib/drawer-section/drawer-section.js.map +0 -1
- package/esm2022/drawer/lib/drawer-sections/drawer-sections.js +0 -58
- package/esm2022/drawer/lib/drawer-sections/drawer-sections.js.map +0 -1
- package/esm2022/drawer/lib/drawer-sections.service.js +0 -83
- package/esm2022/drawer/lib/drawer-sections.service.js.map +0 -1
- package/esm2022/drawer/lib/drawer.service.js +0 -86
- package/esm2022/drawer/lib/drawer.service.js.map +0 -1
- package/esm2022/drawer/lib/generate-routable-drawer-route.js +0 -52
- package/esm2022/drawer/lib/generate-routable-drawer-route.js.map +0 -1
- package/esm2022/drawer/lib/routable-drawer.js +0 -91
- package/esm2022/drawer/lib/routable-drawer.js.map +0 -1
- package/esm2022/drawer/malva-ui-core-drawer.js +0 -5
- package/esm2022/drawer/malva-ui-core-drawer.js.map +0 -1
- package/esm2022/dropdown/index.js +0 -10
- package/esm2022/dropdown/index.js.map +0 -1
- package/esm2022/dropdown/lib/active-descendant.js +0 -92
- package/esm2022/dropdown/lib/active-descendant.js.map +0 -1
- package/esm2022/dropdown/lib/dropdown-panel/dropdown-panel.js +0 -295
- package/esm2022/dropdown/lib/dropdown-panel/dropdown-panel.js.map +0 -1
- package/esm2022/dropdown/lib/highlight-match.pipe.js +0 -36
- package/esm2022/dropdown/lib/highlight-match.pipe.js.map +0 -1
- package/esm2022/dropdown/lib/option-matcher.js +0 -124
- package/esm2022/dropdown/lib/option-matcher.js.map +0 -1
- package/esm2022/dropdown/lib/options-adapter.js +0 -356
- package/esm2022/dropdown/lib/options-adapter.js.map +0 -1
- package/esm2022/dropdown/lib/options-result.js +0 -11
- package/esm2022/dropdown/lib/options-result.js.map +0 -1
- package/esm2022/dropdown/lib/reconciliation.js +0 -32
- package/esm2022/dropdown/lib/reconciliation.js.map +0 -1
- package/esm2022/dropdown/lib/select-data-source.js +0 -21
- package/esm2022/dropdown/lib/select-data-source.js.map +0 -1
- package/esm2022/dropdown/lib/select-option.js +0 -25
- package/esm2022/dropdown/lib/select-option.js.map +0 -1
- package/esm2022/dropdown/malva-ui-core-dropdown.js +0 -5
- package/esm2022/dropdown/malva-ui-core-dropdown.js.map +0 -1
- package/esm2022/empty-state/index.js +0 -2
- package/esm2022/empty-state/index.js.map +0 -1
- package/esm2022/empty-state/lib/empty-state/empty-state.js +0 -43
- package/esm2022/empty-state/lib/empty-state/empty-state.js.map +0 -1
- package/esm2022/empty-state/malva-ui-core-empty-state.js +0 -5
- package/esm2022/empty-state/malva-ui-core-empty-state.js.map +0 -1
- package/esm2022/expand/index.js +0 -3
- package/esm2022/expand/index.js.map +0 -1
- package/esm2022/expand/lib/expand/expand-content.js +0 -33
- package/esm2022/expand/lib/expand/expand-content.js.map +0 -1
- package/esm2022/expand/lib/expand/expand.js +0 -93
- package/esm2022/expand/lib/expand/expand.js.map +0 -1
- package/esm2022/expand/malva-ui-core-expand.js +0 -5
- package/esm2022/expand/malva-ui-core-expand.js.map +0 -1
- package/esm2022/file-upload/index.js +0 -5
- package/esm2022/file-upload/index.js.map +0 -1
- package/esm2022/file-upload/lib/file-upload/file-upload.js +0 -324
- package/esm2022/file-upload/lib/file-upload/file-upload.js.map +0 -1
- package/esm2022/file-upload/lib/file-upload/file-upload.types.js +0 -1
- package/esm2022/file-upload/lib/file-upload/file-upload.types.js.map +0 -1
- package/esm2022/file-upload/lib/file-upload-action.js +0 -65
- package/esm2022/file-upload/lib/file-upload-action.js.map +0 -1
- package/esm2022/file-upload/lib/file-upload-item/file-upload-item.js +0 -55
- package/esm2022/file-upload/lib/file-upload-item/file-upload-item.js.map +0 -1
- package/esm2022/file-upload/malva-ui-core-file-upload.js +0 -5
- package/esm2022/file-upload/malva-ui-core-file-upload.js.map +0 -1
- package/esm2022/filter/index.js +0 -4
- package/esm2022/filter/index.js.map +0 -1
- package/esm2022/filter/lib/filter/filter.js +0 -552
- package/esm2022/filter/lib/filter/filter.js.map +0 -1
- package/esm2022/filter/lib/filter.types.js +0 -1
- package/esm2022/filter/lib/filter.types.js.map +0 -1
- package/esm2022/filter/lib/smart-filter-bar/smart-filter-bar.js +0 -518
- package/esm2022/filter/lib/smart-filter-bar/smart-filter-bar.js.map +0 -1
- package/esm2022/filter/malva-ui-core-filter.js +0 -5
- package/esm2022/filter/malva-ui-core-filter.js.map +0 -1
- package/esm2022/form/index.js +0 -7
- package/esm2022/form/index.js.map +0 -1
- package/esm2022/form/lib/fieldset/fieldset.js +0 -101
- package/esm2022/form/lib/fieldset/fieldset.js.map +0 -1
- package/esm2022/form/lib/fieldset-span.js +0 -49
- package/esm2022/form/lib/fieldset-span.js.map +0 -1
- package/esm2022/form/lib/form/form.js +0 -60
- package/esm2022/form/lib/form/form.js.map +0 -1
- package/esm2022/form/lib/form-actions.js +0 -34
- package/esm2022/form/lib/form-actions.js.map +0 -1
- package/esm2022/form/lib/form-gap.js +0 -15
- package/esm2022/form/lib/form-gap.js.map +0 -1
- package/esm2022/form/lib/form-header.js +0 -27
- package/esm2022/form/lib/form-header.js.map +0 -1
- package/esm2022/form/lib/form.types.js +0 -1
- package/esm2022/form/lib/form.types.js.map +0 -1
- package/esm2022/form/malva-ui-core-form.js +0 -5
- package/esm2022/form/malva-ui-core-form.js.map +0 -1
- package/esm2022/form-utils/index.js +0 -16
- package/esm2022/form-utils/index.js.map +0 -1
- package/esm2022/form-utils/lib/aria-value-bridge.js +0 -57
- package/esm2022/form-utils/lib/aria-value-bridge.js.map +0 -1
- package/esm2022/form-utils/lib/description/description.js +0 -24
- package/esm2022/form-utils/lib/description/description.js.map +0 -1
- package/esm2022/form-utils/lib/focusable-group-base.js +0 -87
- package/esm2022/form-utils/lib/focusable-group-base.js.map +0 -1
- package/esm2022/form-utils/lib/form-control-base/signal-form-control-base.js +0 -192
- package/esm2022/form-utils/lib/form-control-base/signal-form-control-base.js.map +0 -1
- package/esm2022/form-utils/lib/form-control-sides.js +0 -34
- package/esm2022/form-utils/lib/form-control-sides.js.map +0 -1
- package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper-control.js +0 -14
- package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper-control.js.map +0 -1
- package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper.js +0 -47
- package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper.js.map +0 -1
- package/esm2022/form-utils/lib/form-field/form-field.js +0 -245
- package/esm2022/form-utils/lib/form-field/form-field.js.map +0 -1
- package/esm2022/form-utils/lib/hint/hint.js +0 -11
- package/esm2022/form-utils/lib/hint/hint.js.map +0 -1
- package/esm2022/form-utils/lib/label/label.js +0 -55
- package/esm2022/form-utils/lib/label/label.js.map +0 -1
- package/esm2022/form-utils/lib/message/message.js +0 -20
- package/esm2022/form-utils/lib/message/message.js.map +0 -1
- package/esm2022/form-utils/lib/models/error-display-strategy.js +0 -1
- package/esm2022/form-utils/lib/models/error-display-strategy.js.map +0 -1
- package/esm2022/form-utils/lib/models/form-control-connector.js +0 -3
- package/esm2022/form-utils/lib/models/form-control-connector.js.map +0 -1
- package/esm2022/form-utils/lib/models/form-state.js +0 -1
- package/esm2022/form-utils/lib/models/form-state.js.map +0 -1
- package/esm2022/form-utils/lib/selection.service.js +0 -81
- package/esm2022/form-utils/lib/selection.service.js.map +0 -1
- package/esm2022/form-utils/malva-ui-core-form-utils.js +0 -5
- package/esm2022/form-utils/malva-ui-core-form-utils.js.map +0 -1
- package/esm2022/form-utils/testing/index.js +0 -2
- package/esm2022/form-utils/testing/index.js.map +0 -1
- package/esm2022/form-utils/testing/lib/forms-binding-matrix.js +0 -32
- package/esm2022/form-utils/testing/lib/forms-binding-matrix.js.map +0 -1
- package/esm2022/form-utils/testing/malva-ui-core-form-utils-testing.js +0 -5
- package/esm2022/form-utils/testing/malva-ui-core-form-utils-testing.js.map +0 -1
- package/esm2022/index.js +0 -70
- package/esm2022/index.js.map +0 -1
- package/esm2022/input/index.js +0 -4
- package/esm2022/input/index.js.map +0 -1
- package/esm2022/input/lib/input/input-native.js +0 -49
- package/esm2022/input/lib/input/input-native.js.map +0 -1
- package/esm2022/input/lib/input/input-value-accessor.js +0 -4
- package/esm2022/input/lib/input/input-value-accessor.js.map +0 -1
- package/esm2022/input/lib/input/input.js +0 -277
- package/esm2022/input/lib/input/input.js.map +0 -1
- package/esm2022/input/lib/input/password-strength.js +0 -46
- package/esm2022/input/lib/input/password-strength.js.map +0 -1
- package/esm2022/input/malva-ui-core-input.js +0 -5
- package/esm2022/input/malva-ui-core-input.js.map +0 -1
- package/esm2022/kbd/index.js +0 -2
- package/esm2022/kbd/index.js.map +0 -1
- package/esm2022/kbd/lib/kbd/kbd.js +0 -124
- package/esm2022/kbd/lib/kbd/kbd.js.map +0 -1
- package/esm2022/kbd/malva-ui-core-kbd.js +0 -5
- package/esm2022/kbd/malva-ui-core-kbd.js.map +0 -1
- package/esm2022/layout/index.js +0 -5
- package/esm2022/layout/index.js.map +0 -1
- package/esm2022/layout/lib/layout/directives/MlvLayoutSide.js +0 -14
- package/esm2022/layout/lib/layout/directives/MlvLayoutSide.js.map +0 -1
- package/esm2022/layout/lib/layout/directives/MlvLayoutTop.js +0 -14
- package/esm2022/layout/lib/layout/directives/MlvLayoutTop.js.map +0 -1
- package/esm2022/layout/lib/layout/layout.js +0 -43
- package/esm2022/layout/lib/layout/layout.js.map +0 -1
- package/esm2022/layout/lib/layout/services/theme.service.js +0 -121
- package/esm2022/layout/lib/layout/services/theme.service.js.map +0 -1
- package/esm2022/layout/malva-ui-core-layout.js +0 -5
- package/esm2022/layout/malva-ui-core-layout.js.map +0 -1
- package/esm2022/link/index.js +0 -3
- package/esm2022/link/index.js.map +0 -1
- package/esm2022/link/lib/link/link.directives.js +0 -24
- package/esm2022/link/lib/link/link.directives.js.map +0 -1
- package/esm2022/link/lib/link/link.js +0 -61
- package/esm2022/link/lib/link/link.js.map +0 -1
- package/esm2022/link/malva-ui-core-link.js +0 -5
- package/esm2022/link/malva-ui-core-link.js.map +0 -1
- package/esm2022/list/index.js +0 -14
- package/esm2022/list/index.js.map +0 -1
- package/esm2022/list/lib/list/list.js +0 -28
- package/esm2022/list/lib/list/list.js.map +0 -1
- package/esm2022/list/lib/list-item/list-item.js +0 -125
- package/esm2022/list/lib/list-item/list-item.js.map +0 -1
- package/esm2022/list/lib/list-item-actions.js +0 -23
- package/esm2022/list/lib/list-item-actions.js.map +0 -1
- package/esm2022/list/lib/list-item-byline.js +0 -13
- package/esm2022/list/lib/list-item-byline.js.map +0 -1
- package/esm2022/list/lib/list-item-group/list-item-group.js +0 -25
- package/esm2022/list/lib/list-item-group/list-item-group.js.map +0 -1
- package/esm2022/list/lib/list-item-link/list-item-link.js +0 -20
- package/esm2022/list/lib/list-item-link/list-item-link.js.map +0 -1
- package/esm2022/list/lib/list-item-media.js +0 -13
- package/esm2022/list/lib/list-item-media.js.map +0 -1
- package/esm2022/list/lib/list-item-meta.js +0 -13
- package/esm2022/list/lib/list-item-meta.js.map +0 -1
- package/esm2022/list/lib/list-item-prefix.js +0 -13
- package/esm2022/list/lib/list-item-prefix.js.map +0 -1
- package/esm2022/list/lib/list-item-suffix.js +0 -13
- package/esm2022/list/lib/list-item-suffix.js.map +0 -1
- package/esm2022/list/lib/list-item-template.js +0 -14
- package/esm2022/list/lib/list-item-template.js.map +0 -1
- package/esm2022/list/lib/list-item-title.js +0 -13
- package/esm2022/list/lib/list-item-title.js.map +0 -1
- package/esm2022/list/lib/list-selectable.js +0 -116
- package/esm2022/list/lib/list-selectable.js.map +0 -1
- package/esm2022/list/malva-ui-core-list.js +0 -5
- package/esm2022/list/malva-ui-core-list.js.map +0 -1
- package/esm2022/loader/index.js +0 -2
- package/esm2022/loader/index.js.map +0 -1
- package/esm2022/loader/lib/loader/loader.js +0 -134
- package/esm2022/loader/lib/loader/loader.js.map +0 -1
- package/esm2022/loader/malva-ui-core-loader.js +0 -5
- package/esm2022/loader/malva-ui-core-loader.js.map +0 -1
- package/esm2022/malva-ui-core.js +0 -5
- package/esm2022/malva-ui-core.js.map +0 -1
- package/esm2022/menu/index.js +0 -10
- package/esm2022/menu/index.js.map +0 -1
- package/esm2022/menu/lib/menu/menu-group-label.js +0 -35
- package/esm2022/menu/lib/menu/menu-group-label.js.map +0 -1
- package/esm2022/menu/lib/menu/menu-group.js +0 -44
- package/esm2022/menu/lib/menu/menu-group.js.map +0 -1
- package/esm2022/menu/lib/menu/menu-item.js +0 -117
- package/esm2022/menu/lib/menu/menu-item.js.map +0 -1
- package/esm2022/menu/lib/menu/menu-separator.js +0 -41
- package/esm2022/menu/lib/menu/menu-separator.js.map +0 -1
- package/esm2022/menu/lib/menu/menu-trigger.js +0 -653
- package/esm2022/menu/lib/menu/menu-trigger.js.map +0 -1
- package/esm2022/menu/lib/menu/menu.js +0 -308
- package/esm2022/menu/lib/menu/menu.js.map +0 -1
- package/esm2022/menu/lib/menu/menu.types.js +0 -4
- package/esm2022/menu/lib/menu/menu.types.js.map +0 -1
- package/esm2022/menu/lib/menu/menubar.js +0 -257
- package/esm2022/menu/lib/menu/menubar.js.map +0 -1
- package/esm2022/menu/lib/menu/menubar.types.js +0 -4
- package/esm2022/menu/lib/menu/menubar.types.js.map +0 -1
- package/esm2022/menu/lib/menu/submenu-aim.js +0 -30
- package/esm2022/menu/lib/menu/submenu-aim.js.map +0 -1
- package/esm2022/menu/malva-ui-core-menu.js +0 -5
- package/esm2022/menu/malva-ui-core-menu.js.map +0 -1
- package/esm2022/notification/index.js +0 -5
- package/esm2022/notification/index.js.map +0 -1
- package/esm2022/notification/lib/notification-item/notification-item.js +0 -65
- package/esm2022/notification/lib/notification-item/notification-item.js.map +0 -1
- package/esm2022/notification/lib/notification-ref.js +0 -13
- package/esm2022/notification/lib/notification-ref.js.map +0 -1
- package/esm2022/notification/lib/notification.service.js +0 -118
- package/esm2022/notification/lib/notification.service.js.map +0 -1
- package/esm2022/notification/lib/notification.types.js +0 -6
- package/esm2022/notification/lib/notification.types.js.map +0 -1
- package/esm2022/notification/malva-ui-core-notification.js +0 -5
- package/esm2022/notification/malva-ui-core-notification.js.map +0 -1
- package/esm2022/number-input/index.js +0 -2
- package/esm2022/number-input/index.js.map +0 -1
- package/esm2022/number-input/lib/number-input/number-input.js +0 -395
- package/esm2022/number-input/lib/number-input/number-input.js.map +0 -1
- package/esm2022/number-input/malva-ui-core-number-input.js +0 -5
- package/esm2022/number-input/malva-ui-core-number-input.js.map +0 -1
- package/esm2022/page/index.js +0 -15
- package/esm2022/page/index.js.map +0 -1
- package/esm2022/page/lib/page/page-scroll.token.js +0 -9
- package/esm2022/page/lib/page/page-scroll.token.js.map +0 -1
- package/esm2022/page/lib/page/page-snap-controller.js +0 -170
- package/esm2022/page/lib/page/page-snap-controller.js.map +0 -1
- package/esm2022/page/lib/page/page-snap.directive.js +0 -65
- package/esm2022/page/lib/page/page-snap.directive.js.map +0 -1
- package/esm2022/page/lib/page/page.js +0 -173
- package/esm2022/page/lib/page/page.js.map +0 -1
- package/esm2022/page/lib/page-content/page-aside.js +0 -13
- package/esm2022/page/lib/page-content/page-aside.js.map +0 -1
- package/esm2022/page/lib/page-content/page-content.js +0 -72
- package/esm2022/page/lib/page-content/page-content.js.map +0 -1
- package/esm2022/page/lib/page-dock/page-dock.js +0 -128
- package/esm2022/page/lib/page-dock/page-dock.js.map +0 -1
- package/esm2022/page/lib/page-dock/page-dock.slots.js +0 -39
- package/esm2022/page/lib/page-dock/page-dock.slots.js.map +0 -1
- package/esm2022/page/lib/page-header/page-header.directives.js +0 -88
- package/esm2022/page/lib/page-header/page-header.directives.js.map +0 -1
- package/esm2022/page/lib/page-header/page-header.js +0 -124
- package/esm2022/page/lib/page-header/page-header.js.map +0 -1
- package/esm2022/page/lib/page-shell/page-shell-color.js +0 -193
- package/esm2022/page/lib/page-shell/page-shell-color.js.map +0 -1
- package/esm2022/page/lib/page-shell/page-shell-css-color.js +0 -207
- package/esm2022/page/lib/page-shell/page-shell-css-color.js.map +0 -1
- package/esm2022/page/lib/page-shell/page-shell.js +0 -131
- package/esm2022/page/lib/page-shell/page-shell.js.map +0 -1
- package/esm2022/page/lib/page-shell/page-shell.slots.js +0 -41
- package/esm2022/page/lib/page-shell/page-shell.slots.js.map +0 -1
- package/esm2022/page/lib/page-summary/page-summary-item.js +0 -26
- package/esm2022/page/lib/page-summary/page-summary-item.js.map +0 -1
- package/esm2022/page/lib/page-summary/page-summary.js +0 -87
- package/esm2022/page/lib/page-summary/page-summary.js.map +0 -1
- package/esm2022/page/malva-ui-core-page.js +0 -5
- package/esm2022/page/malva-ui-core-page.js.map +0 -1
- package/esm2022/pagination/index.js +0 -5
- package/esm2022/pagination/index.js.map +0 -1
- package/esm2022/pagination/lib/pagination/pagination.directives.js +0 -58
- package/esm2022/pagination/lib/pagination/pagination.directives.js.map +0 -1
- package/esm2022/pagination/lib/pagination/pagination.js +0 -293
- package/esm2022/pagination/lib/pagination/pagination.js.map +0 -1
- package/esm2022/pagination/lib/pagination/pagination.model.js +0 -1
- package/esm2022/pagination/lib/pagination/pagination.model.js.map +0 -1
- package/esm2022/pagination/lib/pagination/pagination.service.js +0 -108
- package/esm2022/pagination/lib/pagination/pagination.service.js.map +0 -1
- package/esm2022/pagination/malva-ui-core-pagination.js +0 -5
- package/esm2022/pagination/malva-ui-core-pagination.js.map +0 -1
- package/esm2022/pin-input/index.js +0 -3
- package/esm2022/pin-input/index.js.map +0 -1
- package/esm2022/pin-input/lib/pin-input/pin-input-separator.js +0 -31
- package/esm2022/pin-input/lib/pin-input/pin-input-separator.js.map +0 -1
- package/esm2022/pin-input/lib/pin-input/pin-input.js +0 -365
- package/esm2022/pin-input/lib/pin-input/pin-input.js.map +0 -1
- package/esm2022/pin-input/malva-ui-core-pin-input.js +0 -5
- package/esm2022/pin-input/malva-ui-core-pin-input.js.map +0 -1
- package/esm2022/popup/index.js +0 -10
- package/esm2022/popup/index.js.map +0 -1
- package/esm2022/popup/lib/popup/popup.js +0 -500
- package/esm2022/popup/lib/popup/popup.js.map +0 -1
- package/esm2022/popup/lib/popup-container/popup-container.js +0 -169
- package/esm2022/popup/lib/popup-container/popup-container.js.map +0 -1
- package/esm2022/popup/lib/popup-container/popup-container.token.js +0 -9
- package/esm2022/popup/lib/popup-container/popup-container.token.js.map +0 -1
- package/esm2022/popup/lib/popup-content.js +0 -14
- package/esm2022/popup/lib/popup-content.js.map +0 -1
- package/esm2022/popup/lib/popup-header-content.js +0 -26
- package/esm2022/popup/lib/popup-header-content.js.map +0 -1
- package/esm2022/popup/lib/popup-pinned-content.js +0 -25
- package/esm2022/popup/lib/popup-pinned-content.js.map +0 -1
- package/esm2022/popup/lib/popup-positions.js +0 -252
- package/esm2022/popup/lib/popup-positions.js.map +0 -1
- package/esm2022/popup/lib/popup-trigger/popup-trigger.js +0 -308
- package/esm2022/popup/lib/popup-trigger/popup-trigger.js.map +0 -1
- package/esm2022/popup/lib/popup.service.js +0 -188
- package/esm2022/popup/lib/popup.service.js.map +0 -1
- package/esm2022/popup/malva-ui-core-popup.js +0 -5
- package/esm2022/popup/malva-ui-core-popup.js.map +0 -1
- package/esm2022/progress/index.js +0 -2
- package/esm2022/progress/index.js.map +0 -1
- package/esm2022/progress/lib/progress/progress.js +0 -102
- package/esm2022/progress/lib/progress/progress.js.map +0 -1
- package/esm2022/progress/malva-ui-core-progress.js +0 -5
- package/esm2022/progress/malva-ui-core-progress.js.map +0 -1
- package/esm2022/radio/index.js +0 -3
- package/esm2022/radio/index.js.map +0 -1
- package/esm2022/radio/lib/radio/radio.js +0 -134
- package/esm2022/radio/lib/radio/radio.js.map +0 -1
- package/esm2022/radio/lib/radio-group/radio-group.js +0 -176
- package/esm2022/radio/lib/radio-group/radio-group.js.map +0 -1
- package/esm2022/radio/lib/radio-group-token.js +0 -3
- package/esm2022/radio/lib/radio-group-token.js.map +0 -1
- package/esm2022/radio/malva-ui-core-radio.js +0 -5
- package/esm2022/radio/malva-ui-core-radio.js.map +0 -1
- package/esm2022/rating/index.js +0 -2
- package/esm2022/rating/index.js.map +0 -1
- package/esm2022/rating/lib/rating/rating.js +0 -208
- package/esm2022/rating/lib/rating/rating.js.map +0 -1
- package/esm2022/rating/malva-ui-core-rating.js +0 -5
- package/esm2022/rating/malva-ui-core-rating.js.map +0 -1
- package/esm2022/scrollbar/index.js +0 -2
- package/esm2022/scrollbar/index.js.map +0 -1
- package/esm2022/scrollbar/lib/scrollbar/scrollbar.js +0 -388
- package/esm2022/scrollbar/lib/scrollbar/scrollbar.js.map +0 -1
- package/esm2022/scrollbar/malva-ui-core-scrollbar.js +0 -5
- package/esm2022/scrollbar/malva-ui-core-scrollbar.js.map +0 -1
- package/esm2022/search-field/index.js +0 -3
- package/esm2022/search-field/index.js.map +0 -1
- package/esm2022/search-field/lib/search-field/search-field.js +0 -535
- package/esm2022/search-field/lib/search-field/search-field.js.map +0 -1
- package/esm2022/search-field/lib/search-field/search-overlay-content.js +0 -35
- package/esm2022/search-field/lib/search-field/search-overlay-content.js.map +0 -1
- package/esm2022/search-field/malva-ui-core-search-field.js +0 -5
- package/esm2022/search-field/malva-ui-core-search-field.js.map +0 -1
- package/esm2022/segmented/index.js +0 -5
- package/esm2022/segmented/index.js.map +0 -1
- package/esm2022/segmented/lib/segmented/segmented.js +0 -248
- package/esm2022/segmented/lib/segmented/segmented.js.map +0 -1
- package/esm2022/segmented/lib/segmented-item/segmented-item.js +0 -194
- package/esm2022/segmented/lib/segmented-item/segmented-item.js.map +0 -1
- package/esm2022/segmented/lib/segmented-token.js +0 -4
- package/esm2022/segmented/lib/segmented-token.js.map +0 -1
- package/esm2022/segmented/lib/segmented.types.js +0 -1
- package/esm2022/segmented/lib/segmented.types.js.map +0 -1
- package/esm2022/segmented/malva-ui-core-segmented.js +0 -5
- package/esm2022/segmented/malva-ui-core-segmented.js.map +0 -1
- package/esm2022/select/index.js +0 -4
- package/esm2022/select/index.js.map +0 -1
- package/esm2022/select/lib/select/select.js +0 -685
- package/esm2022/select/lib/select/select.js.map +0 -1
- package/esm2022/select/lib/select-option.js +0 -2
- package/esm2022/select/lib/select-option.js.map +0 -1
- package/esm2022/select/lib/select-template.directives.js +0 -34
- package/esm2022/select/lib/select-template.directives.js.map +0 -1
- package/esm2022/select/malva-ui-core-select.js +0 -5
- package/esm2022/select/malva-ui-core-select.js.map +0 -1
- package/esm2022/sidebar/index.js +0 -16
- package/esm2022/sidebar/index.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar/sidebar.js +0 -251
- package/esm2022/sidebar/lib/sidebar/sidebar.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-content.js +0 -37
- package/esm2022/sidebar/lib/sidebar-content.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-context.js +0 -3
- package/esm2022/sidebar/lib/sidebar-context.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-footer.js +0 -20
- package/esm2022/sidebar/lib/sidebar-footer.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-group/sidebar-group.js +0 -341
- package/esm2022/sidebar/lib/sidebar-group/sidebar-group.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-header.js +0 -20
- package/esm2022/sidebar/lib/sidebar-header.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-item/sidebar-item.js +0 -216
- package/esm2022/sidebar/lib/sidebar-item/sidebar-item.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-item-host.js +0 -39
- package/esm2022/sidebar/lib/sidebar-item-host.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-item-icon.js +0 -14
- package/esm2022/sidebar/lib/sidebar-item-icon.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-mode.js +0 -1
- package/esm2022/sidebar/lib/sidebar-mode.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-rail/sidebar-rail.js +0 -202
- package/esm2022/sidebar/lib/sidebar-rail/sidebar-rail.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-trigger/sidebar-trigger.js +0 -159
- package/esm2022/sidebar/lib/sidebar-trigger/sidebar-trigger.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.js +0 -35
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.js +0 -107
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.js.map +0 -1
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.types.js +0 -1
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.types.js.map +0 -1
- package/esm2022/sidebar/malva-ui-core-sidebar.js +0 -5
- package/esm2022/sidebar/malva-ui-core-sidebar.js.map +0 -1
- package/esm2022/skeleton/index.js +0 -2
- package/esm2022/skeleton/index.js.map +0 -1
- package/esm2022/skeleton/lib/skeleton/skeleton.js +0 -78
- package/esm2022/skeleton/lib/skeleton/skeleton.js.map +0 -1
- package/esm2022/skeleton/malva-ui-core-skeleton.js +0 -5
- package/esm2022/skeleton/malva-ui-core-skeleton.js.map +0 -1
- package/esm2022/slider/index.js +0 -3
- package/esm2022/slider/index.js.map +0 -1
- package/esm2022/slider/lib/slider/slider-tooltip-def.js +0 -31
- package/esm2022/slider/lib/slider/slider-tooltip-def.js.map +0 -1
- package/esm2022/slider/lib/slider/slider.js +0 -468
- package/esm2022/slider/lib/slider/slider.js.map +0 -1
- package/esm2022/slider/malva-ui-core-slider.js +0 -5
- package/esm2022/slider/malva-ui-core-slider.js.map +0 -1
- package/esm2022/split-pane/index.js +0 -4
- package/esm2022/split-pane/index.js.map +0 -1
- package/esm2022/split-pane/lib/split-pane/split-pane-panel.js +0 -49
- package/esm2022/split-pane/lib/split-pane/split-pane-panel.js.map +0 -1
- package/esm2022/split-pane/lib/split-pane/split-pane.js +0 -290
- package/esm2022/split-pane/lib/split-pane/split-pane.js.map +0 -1
- package/esm2022/split-pane/lib/split-pane/split-pane.types.js +0 -1
- package/esm2022/split-pane/lib/split-pane/split-pane.types.js.map +0 -1
- package/esm2022/split-pane/malva-ui-core-split-pane.js +0 -5
- package/esm2022/split-pane/malva-ui-core-split-pane.js.map +0 -1
- package/esm2022/status-indicator/index.js +0 -2
- package/esm2022/status-indicator/index.js.map +0 -1
- package/esm2022/status-indicator/lib/status-indicator/status-indicator.js +0 -71
- package/esm2022/status-indicator/lib/status-indicator/status-indicator.js.map +0 -1
- package/esm2022/status-indicator/malva-ui-core-status-indicator.js +0 -5
- package/esm2022/status-indicator/malva-ui-core-status-indicator.js.map +0 -1
- package/esm2022/stepper/index.js +0 -5
- package/esm2022/stepper/index.js.map +0 -1
- package/esm2022/stepper/lib/stepper/step-header.js +0 -46
- package/esm2022/stepper/lib/stepper/step-header.js.map +0 -1
- package/esm2022/stepper/lib/stepper/step.js +0 -65
- package/esm2022/stepper/lib/stepper/step.js.map +0 -1
- package/esm2022/stepper/lib/stepper/stepper-token.js +0 -4
- package/esm2022/stepper/lib/stepper/stepper-token.js.map +0 -1
- package/esm2022/stepper/lib/stepper/stepper.js +0 -216
- package/esm2022/stepper/lib/stepper/stepper.js.map +0 -1
- package/esm2022/stepper/lib/stepper/stepper.types.js +0 -1
- package/esm2022/stepper/lib/stepper/stepper.types.js.map +0 -1
- package/esm2022/stepper/malva-ui-core-stepper.js +0 -5
- package/esm2022/stepper/malva-ui-core-stepper.js.map +0 -1
- package/esm2022/switch/index.js +0 -3
- package/esm2022/switch/index.js.map +0 -1
- package/esm2022/switch/lib/switch/switch.js +0 -190
- package/esm2022/switch/lib/switch/switch.js.map +0 -1
- package/esm2022/switch/lib/switch-group/switch-group.js +0 -68
- package/esm2022/switch/lib/switch-group/switch-group.js.map +0 -1
- package/esm2022/switch/lib/switch-group-token.js +0 -3
- package/esm2022/switch/lib/switch-group-token.js.map +0 -1
- package/esm2022/switch/malva-ui-core-switch.js +0 -5
- package/esm2022/switch/malva-ui-core-switch.js.map +0 -1
- package/esm2022/tabs/index.js +0 -9
- package/esm2022/tabs/index.js.map +0 -1
- package/esm2022/tabs/lib/tab/tab.js +0 -72
- package/esm2022/tabs/lib/tab/tab.js.map +0 -1
- package/esm2022/tabs/lib/tab-content/tab-content.js +0 -19
- package/esm2022/tabs/lib/tab-content/tab-content.js.map +0 -1
- package/esm2022/tabs/lib/tab-content-def.js +0 -14
- package/esm2022/tabs/lib/tab-content-def.js.map +0 -1
- package/esm2022/tabs/lib/tab-def.js +0 -17
- package/esm2022/tabs/lib/tab-def.js.map +0 -1
- package/esm2022/tabs/lib/tab-group-token.js +0 -3
- package/esm2022/tabs/lib/tab-group-token.js.map +0 -1
- package/esm2022/tabs/lib/tab-item/tab-item.js +0 -44
- package/esm2022/tabs/lib/tab-item/tab-item.js.map +0 -1
- package/esm2022/tabs/lib/tabs/tabs.js +0 -542
- package/esm2022/tabs/lib/tabs/tabs.js.map +0 -1
- package/esm2022/tabs/lib/tabs.service.js +0 -83
- package/esm2022/tabs/lib/tabs.service.js.map +0 -1
- package/esm2022/tabs/malva-ui-core-tabs.js +0 -5
- package/esm2022/tabs/malva-ui-core-tabs.js.map +0 -1
- package/esm2022/textarea/index.js +0 -2
- package/esm2022/textarea/index.js.map +0 -1
- package/esm2022/textarea/lib/textarea/textarea.js +0 -194
- package/esm2022/textarea/lib/textarea/textarea.js.map +0 -1
- package/esm2022/textarea/malva-ui-core-textarea.js +0 -5
- package/esm2022/textarea/malva-ui-core-textarea.js.map +0 -1
- package/esm2022/tile/index.js +0 -3
- package/esm2022/tile/index.js.map +0 -1
- package/esm2022/tile/lib/tile/tile.js +0 -39
- package/esm2022/tile/lib/tile/tile.js.map +0 -1
- package/esm2022/tile/lib/tile-header.js +0 -14
- package/esm2022/tile/lib/tile-header.js.map +0 -1
- package/esm2022/tile/malva-ui-core-tile.js +0 -5
- package/esm2022/tile/malva-ui-core-tile.js.map +0 -1
- package/esm2022/time-picker/index.js +0 -2
- package/esm2022/time-picker/index.js.map +0 -1
- package/esm2022/time-picker/lib/time-picker/time-picker.js +0 -310
- package/esm2022/time-picker/lib/time-picker/time-picker.js.map +0 -1
- package/esm2022/time-picker/lib/time-picker-column/time-picker-column.js +0 -216
- package/esm2022/time-picker/lib/time-picker-column/time-picker-column.js.map +0 -1
- package/esm2022/time-picker/malva-ui-core-time-picker.js +0 -5
- package/esm2022/time-picker/malva-ui-core-time-picker.js.map +0 -1
- package/esm2022/timeline/index.js +0 -6
- package/esm2022/timeline/index.js.map +0 -1
- package/esm2022/timeline/lib/timeline/timeline-item-icon.js +0 -31
- package/esm2022/timeline/lib/timeline/timeline-item-icon.js.map +0 -1
- package/esm2022/timeline/lib/timeline/timeline-item-meta.js +0 -31
- package/esm2022/timeline/lib/timeline/timeline-item-meta.js.map +0 -1
- package/esm2022/timeline/lib/timeline/timeline-item.js +0 -69
- package/esm2022/timeline/lib/timeline/timeline-item.js.map +0 -1
- package/esm2022/timeline/lib/timeline/timeline.js +0 -36
- package/esm2022/timeline/lib/timeline/timeline.js.map +0 -1
- package/esm2022/timeline/lib/timeline/timeline.types.js +0 -1
- package/esm2022/timeline/lib/timeline/timeline.types.js.map +0 -1
- package/esm2022/timeline/malva-ui-core-timeline.js +0 -5
- package/esm2022/timeline/malva-ui-core-timeline.js.map +0 -1
- package/esm2022/title/index.js +0 -2
- package/esm2022/title/index.js.map +0 -1
- package/esm2022/title/lib/title/title.js +0 -171
- package/esm2022/title/lib/title/title.js.map +0 -1
- package/esm2022/title/malva-ui-core-title.js +0 -5
- package/esm2022/title/malva-ui-core-title.js.map +0 -1
- package/esm2022/toast/index.js +0 -13
- package/esm2022/toast/index.js.map +0 -1
- package/esm2022/toast/lib/abstract-toast-container.js +0 -50
- package/esm2022/toast/lib/abstract-toast-container.js.map +0 -1
- package/esm2022/toast/lib/abstract-toast-item.js +0 -75
- package/esm2022/toast/lib/abstract-toast-item.js.map +0 -1
- package/esm2022/toast/lib/abstract-toast.service.js +0 -176
- package/esm2022/toast/lib/abstract-toast.service.js.map +0 -1
- package/esm2022/toast/lib/toast-container/toast-container.js +0 -61
- package/esm2022/toast/lib/toast-container/toast-container.js.map +0 -1
- package/esm2022/toast/lib/toast-item/toast-item.js +0 -62
- package/esm2022/toast/lib/toast-item/toast-item.js.map +0 -1
- package/esm2022/toast/lib/toast-ref.js +0 -54
- package/esm2022/toast/lib/toast-ref.js.map +0 -1
- package/esm2022/toast/lib/toast-timer.js +0 -37
- package/esm2022/toast/lib/toast-timer.js.map +0 -1
- package/esm2022/toast/lib/toast.directives.js +0 -76
- package/esm2022/toast/lib/toast.directives.js.map +0 -1
- package/esm2022/toast/lib/toast.service.js +0 -127
- package/esm2022/toast/lib/toast.service.js.map +0 -1
- package/esm2022/toast/lib/toast.types.js +0 -39
- package/esm2022/toast/lib/toast.types.js.map +0 -1
- package/esm2022/toast/malva-ui-core-toast.js +0 -5
- package/esm2022/toast/malva-ui-core-toast.js.map +0 -1
- package/esm2022/tokenizer/index.js +0 -4
- package/esm2022/tokenizer/index.js.map +0 -1
- package/esm2022/tokenizer/lib/token/token.js +0 -123
- package/esm2022/tokenizer/lib/token/token.js.map +0 -1
- package/esm2022/tokenizer/lib/token-template.js +0 -23
- package/esm2022/tokenizer/lib/token-template.js.map +0 -1
- package/esm2022/tokenizer/lib/tokenizer/tokenizer.js +0 -324
- package/esm2022/tokenizer/lib/tokenizer/tokenizer.js.map +0 -1
- package/esm2022/tokenizer/malva-ui-core-tokenizer.js +0 -5
- package/esm2022/tokenizer/malva-ui-core-tokenizer.js.map +0 -1
- package/esm2022/toolbar/index.js +0 -4
- package/esm2022/toolbar/index.js.map +0 -1
- package/esm2022/toolbar/lib/toolbar/toolbar-spacer.js +0 -13
- package/esm2022/toolbar/lib/toolbar/toolbar-spacer.js.map +0 -1
- package/esm2022/toolbar/lib/toolbar/toolbar-widget.js +0 -106
- package/esm2022/toolbar/lib/toolbar/toolbar-widget.js.map +0 -1
- package/esm2022/toolbar/lib/toolbar/toolbar.js +0 -19
- package/esm2022/toolbar/lib/toolbar/toolbar.js.map +0 -1
- package/esm2022/toolbar/malva-ui-core-toolbar.js +0 -5
- package/esm2022/toolbar/malva-ui-core-toolbar.js.map +0 -1
- package/esm2022/tooltip/index.js +0 -4
- package/esm2022/tooltip/index.js.map +0 -1
- package/esm2022/tooltip/lib/tooltip/tooltip-panel.js +0 -69
- package/esm2022/tooltip/lib/tooltip/tooltip-panel.js.map +0 -1
- package/esm2022/tooltip/lib/tooltip/tooltip.js +0 -352
- package/esm2022/tooltip/lib/tooltip/tooltip.js.map +0 -1
- package/esm2022/tooltip/lib/tooltip/tooltip.types.js +0 -1
- package/esm2022/tooltip/lib/tooltip/tooltip.types.js.map +0 -1
- package/esm2022/tooltip/malva-ui-core-tooltip.js +0 -5
- package/esm2022/tooltip/malva-ui-core-tooltip.js.map +0 -1
- package/esm2022/tree/index.js +0 -5
- package/esm2022/tree/index.js.map +0 -1
- package/esm2022/tree/lib/tree/tree-context.js +0 -7
- package/esm2022/tree/lib/tree/tree-context.js.map +0 -1
- package/esm2022/tree/lib/tree/tree-node-def.js +0 -34
- package/esm2022/tree/lib/tree/tree-node-def.js.map +0 -1
- package/esm2022/tree/lib/tree/tree-node.js +0 -1
- package/esm2022/tree/lib/tree/tree-node.js.map +0 -1
- package/esm2022/tree/lib/tree/tree-subtree.js +0 -107
- package/esm2022/tree/lib/tree/tree-subtree.js.map +0 -1
- package/esm2022/tree/lib/tree/tree.js +0 -362
- package/esm2022/tree/lib/tree/tree.js.map +0 -1
- package/esm2022/tree/malva-ui-core-tree.js +0 -5
- package/esm2022/tree/malva-ui-core-tree.js.map +0 -1
- package/expand/index.d.ts +0 -2
- package/expand/lib/expand/expand-content.d.ts +0 -26
- package/expand/lib/expand/expand.d.ts +0 -74
- package/expand/malva-ui-core-expand.d.ts +0 -5
- package/file-upload/index.d.ts +0 -4
- package/file-upload/lib/file-upload/file-upload.d.ts +0 -138
- package/file-upload/lib/file-upload/file-upload.types.d.ts +0 -42
- package/file-upload/lib/file-upload-action.d.ts +0 -53
- package/file-upload/lib/file-upload-item/file-upload-item.d.ts +0 -30
- package/file-upload/malva-ui-core-file-upload.d.ts +0 -5
- package/filter/index.d.ts +0 -3
- package/filter/lib/filter/filter.d.ts +0 -156
- package/filter/lib/filter.types.d.ts +0 -75
- package/filter/lib/smart-filter-bar/smart-filter-bar.d.ts +0 -153
- package/filter/malva-ui-core-filter.d.ts +0 -5
- package/form/index.d.ts +0 -6
- package/form/lib/fieldset/fieldset.d.ts +0 -58
- package/form/lib/fieldset-span.d.ts +0 -28
- package/form/lib/form/form.d.ts +0 -37
- package/form/lib/form-actions.d.ts +0 -20
- package/form/lib/form-gap.d.ts +0 -5
- package/form/lib/form-header.d.ts +0 -18
- package/form/lib/form.types.d.ts +0 -13
- package/form/malva-ui-core-form.d.ts +0 -5
- package/form-utils/index.d.ts +0 -15
- package/form-utils/lib/aria-value-bridge.d.ts +0 -45
- package/form-utils/lib/description/description.d.ts +0 -16
- package/form-utils/lib/focusable-group-base.d.ts +0 -76
- package/form-utils/lib/form-control-base/signal-form-control-base.d.ts +0 -159
- package/form-utils/lib/form-control-sides.d.ts +0 -20
- package/form-utils/lib/form-control-wrapper/form-control-wrapper-control.d.ts +0 -6
- package/form-utils/lib/form-control-wrapper/form-control-wrapper.d.ts +0 -20
- package/form-utils/lib/form-field/form-field.d.ts +0 -68
- package/form-utils/lib/hint/hint.d.ts +0 -5
- package/form-utils/lib/label/label.d.ts +0 -22
- package/form-utils/lib/message/message.d.ts +0 -7
- package/form-utils/lib/models/error-display-strategy.d.ts +0 -1
- package/form-utils/lib/models/form-control-connector.d.ts +0 -41
- package/form-utils/lib/models/form-state.d.ts +0 -1
- package/form-utils/lib/selection.service.d.ts +0 -27
- package/form-utils/malva-ui-core-form-utils.d.ts +0 -5
- package/form-utils/testing/index.d.ts +0 -1
- package/form-utils/testing/lib/forms-binding-matrix.d.ts +0 -47
- package/form-utils/testing/malva-ui-core-form-utils-testing.d.ts +0 -5
- package/index.d.ts +0 -69
- package/input/index.d.ts +0 -3
- package/input/lib/input/input-native.d.ts +0 -36
- package/input/lib/input/input-value-accessor.d.ts +0 -11
- package/input/lib/input/input.d.ts +0 -189
- package/input/lib/input/password-strength.d.ts +0 -34
- package/input/malva-ui-core-input.d.ts +0 -5
- package/kbd/index.d.ts +0 -1
- package/kbd/lib/kbd/kbd.d.ts +0 -52
- package/kbd/malva-ui-core-kbd.d.ts +0 -5
- package/layout/index.d.ts +0 -4
- package/layout/lib/layout/directives/MlvLayoutSide.d.ts +0 -6
- package/layout/lib/layout/directives/MlvLayoutTop.d.ts +0 -6
- package/layout/lib/layout/layout.d.ts +0 -20
- package/layout/lib/layout/services/theme.service.d.ts +0 -33
- package/layout/malva-ui-core-layout.d.ts +0 -5
- package/link/index.d.ts +0 -2
- package/link/lib/link/link.d.ts +0 -15
- package/link/lib/link/link.directives.d.ts +0 -10
- package/link/malva-ui-core-link.d.ts +0 -5
- package/list/index.d.ts +0 -13
- package/list/lib/list/list.d.ts +0 -25
- package/list/lib/list-item/list-item.d.ts +0 -67
- package/list/lib/list-item-actions.d.ts +0 -12
- package/list/lib/list-item-byline.d.ts +0 -5
- package/list/lib/list-item-group/list-item-group.d.ts +0 -11
- package/list/lib/list-item-link/list-item-link.d.ts +0 -8
- package/list/lib/list-item-media.d.ts +0 -5
- package/list/lib/list-item-meta.d.ts +0 -5
- package/list/lib/list-item-prefix.d.ts +0 -5
- package/list/lib/list-item-suffix.d.ts +0 -5
- package/list/lib/list-item-template.d.ts +0 -10
- package/list/lib/list-item-title.d.ts +0 -5
- package/list/lib/list-selectable.d.ts +0 -73
- package/list/malva-ui-core-list.d.ts +0 -5
- package/loader/index.d.ts +0 -1
- package/loader/lib/loader/loader.d.ts +0 -84
- package/loader/malva-ui-core-loader.d.ts +0 -5
- package/malva-ui-core.d.ts +0 -5
- package/menu/index.d.ts +0 -9
- package/menu/lib/menu/menu-group-label.d.ts +0 -22
- package/menu/lib/menu/menu-group.d.ts +0 -27
- package/menu/lib/menu/menu-item.d.ts +0 -76
- package/menu/lib/menu/menu-separator.d.ts +0 -18
- package/menu/lib/menu/menu-trigger.d.ts +0 -255
- package/menu/lib/menu/menu.d.ts +0 -149
- package/menu/lib/menu/menu.types.d.ts +0 -13
- package/menu/lib/menu/menubar.d.ts +0 -131
- package/menu/lib/menu/menubar.types.d.ts +0 -82
- package/menu/lib/menu/submenu-aim.d.ts +0 -10
- package/menu/malva-ui-core-menu.d.ts +0 -5
- package/notification/index.d.ts +0 -4
- package/notification/lib/notification-item/notification-item.d.ts +0 -20
- package/notification/lib/notification-ref.d.ts +0 -12
- package/notification/lib/notification.service.d.ts +0 -43
- package/notification/lib/notification.types.d.ts +0 -52
- package/notification/malva-ui-core-notification.d.ts +0 -5
- package/number-input/index.d.ts +0 -1
- package/number-input/lib/number-input/number-input.d.ts +0 -162
- package/number-input/malva-ui-core-number-input.d.ts +0 -5
- package/page/index.d.ts +0 -14
- package/page/lib/page/page-scroll.token.d.ts +0 -19
- package/page/lib/page/page-snap-controller.d.ts +0 -87
- package/page/lib/page/page-snap.directive.d.ts +0 -40
- package/page/lib/page/page.d.ts +0 -74
- package/page/lib/page-content/page-aside.d.ts +0 -7
- package/page/lib/page-content/page-content.d.ts +0 -37
- package/page/lib/page-dock/page-dock.d.ts +0 -50
- package/page/lib/page-dock/page-dock.slots.d.ts +0 -16
- package/page/lib/page-header/page-header.d.ts +0 -77
- package/page/lib/page-header/page-header.directives.d.ts +0 -50
- package/page/lib/page-shell/page-shell-color.d.ts +0 -48
- package/page/lib/page-shell/page-shell-css-color.d.ts +0 -20
- package/page/lib/page-shell/page-shell.d.ts +0 -44
- package/page/lib/page-shell/page-shell.slots.d.ts +0 -16
- package/page/lib/page-summary/page-summary-item.d.ts +0 -11
- package/page/lib/page-summary/page-summary.d.ts +0 -36
- package/page/malva-ui-core-page.d.ts +0 -5
- package/pagination/index.d.ts +0 -4
- package/pagination/lib/pagination/pagination.d.ts +0 -182
- package/pagination/lib/pagination/pagination.directives.d.ts +0 -44
- package/pagination/lib/pagination/pagination.model.d.ts +0 -6
- package/pagination/lib/pagination/pagination.service.d.ts +0 -26
- package/pagination/malva-ui-core-pagination.d.ts +0 -5
- package/pin-input/index.d.ts +0 -2
- package/pin-input/lib/pin-input/pin-input-separator.d.ts +0 -24
- package/pin-input/lib/pin-input/pin-input.d.ts +0 -176
- package/pin-input/malva-ui-core-pin-input.d.ts +0 -5
- package/popup/index.d.ts +0 -9
- package/popup/lib/popup/popup.d.ts +0 -343
- package/popup/lib/popup-container/popup-container.d.ts +0 -61
- package/popup/lib/popup-container/popup-container.token.d.ts +0 -34
- package/popup/lib/popup-content.d.ts +0 -6
- package/popup/lib/popup-header-content.d.ts +0 -18
- package/popup/lib/popup-pinned-content.d.ts +0 -17
- package/popup/lib/popup-positions.d.ts +0 -105
- package/popup/lib/popup-trigger/popup-trigger.d.ts +0 -102
- package/popup/lib/popup.service.d.ts +0 -159
- package/popup/malva-ui-core-popup.d.ts +0 -5
- package/progress/index.d.ts +0 -1
- package/progress/lib/progress/progress.d.ts +0 -69
- package/progress/malva-ui-core-progress.d.ts +0 -5
- package/radio/index.d.ts +0 -2
- package/radio/lib/radio/radio.d.ts +0 -87
- package/radio/lib/radio-group/radio-group.d.ts +0 -35
- package/radio/lib/radio-group-token.d.ts +0 -7
- package/radio/malva-ui-core-radio.d.ts +0 -5
- package/rating/index.d.ts +0 -1
- package/rating/lib/rating/rating.d.ts +0 -100
- package/rating/malva-ui-core-rating.d.ts +0 -5
- package/scrollbar/index.d.ts +0 -1
- package/scrollbar/lib/scrollbar/scrollbar.d.ts +0 -166
- package/scrollbar/malva-ui-core-scrollbar.d.ts +0 -5
- package/search-field/index.d.ts +0 -2
- package/search-field/lib/search-field/search-field.d.ts +0 -347
- package/search-field/lib/search-field/search-overlay-content.d.ts +0 -59
- package/search-field/malva-ui-core-search-field.d.ts +0 -5
- package/segmented/index.d.ts +0 -4
- package/segmented/lib/segmented/segmented.d.ts +0 -80
- package/segmented/lib/segmented-item/segmented-item.d.ts +0 -89
- package/segmented/lib/segmented-token.d.ts +0 -22
- package/segmented/lib/segmented.types.d.ts +0 -9
- package/segmented/malva-ui-core-segmented.d.ts +0 -5
- package/select/index.d.ts +0 -3
- package/select/lib/select/select.d.ts +0 -379
- package/select/lib/select-option.d.ts +0 -1
- package/select/lib/select-template.directives.d.ts +0 -14
- package/select/malva-ui-core-select.d.ts +0 -5
- package/sidebar/index.d.ts +0 -15
- package/sidebar/lib/sidebar/sidebar.d.ts +0 -134
- package/sidebar/lib/sidebar-content.d.ts +0 -11
- package/sidebar/lib/sidebar-context.d.ts +0 -23
- package/sidebar/lib/sidebar-footer.d.ts +0 -9
- package/sidebar/lib/sidebar-group/sidebar-group.d.ts +0 -127
- package/sidebar/lib/sidebar-header.d.ts +0 -9
- package/sidebar/lib/sidebar-item/sidebar-item.d.ts +0 -104
- package/sidebar/lib/sidebar-item-host.d.ts +0 -18
- package/sidebar/lib/sidebar-item-icon.d.ts +0 -6
- package/sidebar/lib/sidebar-mode.d.ts +0 -2
- package/sidebar/lib/sidebar-rail/sidebar-rail.d.ts +0 -54
- package/sidebar/lib/sidebar-trigger/sidebar-trigger.d.ts +0 -67
- package/sidebar/lib/sidebar-workspace/sidebar-workspace.d.ts +0 -54
- package/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.d.ts +0 -19
- package/sidebar/lib/sidebar-workspace/sidebar-workspace.types.d.ts +0 -20
- package/sidebar/malva-ui-core-sidebar.d.ts +0 -5
- package/skeleton/index.d.ts +0 -1
- package/skeleton/lib/skeleton/skeleton.d.ts +0 -60
- package/skeleton/malva-ui-core-skeleton.d.ts +0 -5
- package/slider/index.d.ts +0 -2
- package/slider/lib/slider/slider-tooltip-def.d.ts +0 -39
- package/slider/lib/slider/slider.d.ts +0 -171
- package/slider/malva-ui-core-slider.d.ts +0 -5
- package/split-pane/index.d.ts +0 -3
- package/split-pane/lib/split-pane/split-pane-panel.d.ts +0 -34
- package/split-pane/lib/split-pane/split-pane.d.ts +0 -98
- package/split-pane/lib/split-pane/split-pane.types.d.ts +0 -7
- package/split-pane/malva-ui-core-split-pane.d.ts +0 -5
- package/status-indicator/index.d.ts +0 -1
- package/status-indicator/lib/status-indicator/status-indicator.d.ts +0 -61
- package/status-indicator/malva-ui-core-status-indicator.d.ts +0 -5
- package/stepper/index.d.ts +0 -4
- package/stepper/lib/stepper/step-header.d.ts +0 -34
- package/stepper/lib/stepper/step.d.ts +0 -51
- package/stepper/lib/stepper/stepper-token.d.ts +0 -13
- package/stepper/lib/stepper/stepper.d.ts +0 -98
- package/stepper/lib/stepper/stepper.types.d.ts +0 -4
- package/stepper/malva-ui-core-stepper.d.ts +0 -5
- package/switch/index.d.ts +0 -2
- package/switch/lib/switch/switch.d.ts +0 -118
- package/switch/lib/switch-group/switch-group.d.ts +0 -24
- package/switch/lib/switch-group-token.d.ts +0 -6
- package/switch/malva-ui-core-switch.d.ts +0 -5
- package/tabs/index.d.ts +0 -8
- package/tabs/lib/tab/tab.d.ts +0 -46
- package/tabs/lib/tab-content/tab-content.d.ts +0 -11
- package/tabs/lib/tab-content-def.d.ts +0 -6
- package/tabs/lib/tab-def.d.ts +0 -11
- package/tabs/lib/tab-group-token.d.ts +0 -10
- package/tabs/lib/tab-item/tab-item.d.ts +0 -28
- package/tabs/lib/tabs/tabs.d.ts +0 -202
- package/tabs/lib/tabs.service.d.ts +0 -24
- package/tabs/malva-ui-core-tabs.d.ts +0 -5
- package/textarea/index.d.ts +0 -1
- package/textarea/lib/textarea/textarea.d.ts +0 -77
- package/textarea/malva-ui-core-textarea.d.ts +0 -5
- package/tile/index.d.ts +0 -2
- package/tile/lib/tile/tile.d.ts +0 -20
- package/tile/lib/tile-header.d.ts +0 -6
- package/tile/malva-ui-core-tile.d.ts +0 -5
- package/time-picker/index.d.ts +0 -1
- package/time-picker/lib/time-picker/time-picker.d.ts +0 -135
- package/time-picker/lib/time-picker-column/time-picker-column.d.ts +0 -111
- package/time-picker/malva-ui-core-time-picker.d.ts +0 -5
- package/timeline/index.d.ts +0 -5
- package/timeline/lib/timeline/timeline-item-icon.d.ts +0 -24
- package/timeline/lib/timeline/timeline-item-meta.d.ts +0 -24
- package/timeline/lib/timeline/timeline-item.d.ts +0 -52
- package/timeline/lib/timeline/timeline.d.ts +0 -27
- package/timeline/lib/timeline/timeline.types.d.ts +0 -18
- package/timeline/malva-ui-core-timeline.d.ts +0 -5
- package/title/index.d.ts +0 -1
- package/title/lib/title/title.d.ts +0 -63
- package/title/malva-ui-core-title.d.ts +0 -5
- package/toast/index.d.ts +0 -10
- package/toast/lib/abstract-toast-container.d.ts +0 -29
- package/toast/lib/abstract-toast-item.d.ts +0 -44
- package/toast/lib/abstract-toast.service.d.ts +0 -75
- package/toast/lib/toast-container/toast-container.d.ts +0 -23
- package/toast/lib/toast-item/toast-item.d.ts +0 -25
- package/toast/lib/toast-ref.d.ts +0 -33
- package/toast/lib/toast-timer.d.ts +0 -24
- package/toast/lib/toast.directives.d.ts +0 -13
- package/toast/lib/toast.service.d.ts +0 -41
- package/toast/lib/toast.types.d.ts +0 -139
- package/toast/malva-ui-core-toast.d.ts +0 -5
- package/tokenizer/index.d.ts +0 -3
- package/tokenizer/lib/token/token.d.ts +0 -60
- package/tokenizer/lib/token-template.d.ts +0 -29
- package/tokenizer/lib/tokenizer/tokenizer.d.ts +0 -109
- package/tokenizer/malva-ui-core-tokenizer.d.ts +0 -5
- package/toolbar/index.d.ts +0 -3
- package/toolbar/lib/toolbar/toolbar-spacer.d.ts +0 -5
- package/toolbar/lib/toolbar/toolbar-widget.d.ts +0 -75
- package/toolbar/lib/toolbar/toolbar.d.ts +0 -8
- package/toolbar/malva-ui-core-toolbar.d.ts +0 -5
- package/tooltip/index.d.ts +0 -3
- package/tooltip/lib/tooltip/tooltip-panel.d.ts +0 -26
- package/tooltip/lib/tooltip/tooltip.d.ts +0 -148
- package/tooltip/lib/tooltip/tooltip.types.d.ts +0 -17
- package/tooltip/malva-ui-core-tooltip.d.ts +0 -5
- package/tree/index.d.ts +0 -4
- package/tree/lib/tree/tree-context.d.ts +0 -62
- package/tree/lib/tree/tree-node-def.d.ts +0 -33
- package/tree/lib/tree/tree-node.d.ts +0 -45
- package/tree/lib/tree/tree-subtree.d.ts +0 -63
- package/tree/lib/tree/tree.d.ts +0 -156
- package/tree/malva-ui-core-tree.d.ts +0 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"malva-ui-core-menu.mjs","sources":["../../../../libs/core/menu/src/lib/menu/menu-item-registry.ts","../../../../libs/core/menu/src/lib/menu/menu.types.ts","../../../../libs/core/menu/src/lib/menu/menubar-item-registry.ts","../../../../libs/core/menu/src/lib/menu/submenu-aim.ts","../../../../libs/core/menu/src/lib/menu/menu-overlay-controller.ts","../../../../libs/core/menu/src/lib/menu/menubar.types.ts","../../../../libs/core/menu/src/lib/menu/menu-trigger.ts","../../../../libs/core/menu/src/lib/menu/menu-item.ts","../../../../libs/core/menu/src/lib/menu/menu-data-source.ts","../../../../libs/core/menu/src/lib/menu/menu-data-item.ts","../../../../libs/core/menu/src/lib/menu/menu-data-renderer.ts","../../../../libs/core/menu/src/lib/menu/menu-item-def.ts","../../../../libs/core/menu/src/lib/menu/menu.ts","../../../../libs/core/menu/src/lib/menu/menu-separator.ts","../../../../libs/core/menu/src/lib/menu/menu-group-label.ts","../../../../libs/core/menu/src/lib/menu/menu-group.ts","../../../../libs/core/menu/src/lib/menu/menubar.ts","../../../../libs/core/menu/src/malva-ui-core-menu.ts"],"sourcesContent":["import { InjectionToken, signal } from '@angular/core';\nimport type { ElementRef, Signal, WritableSignal } from '@angular/core';\n\n/** Internal item shape the menu key manager navigates across. */\nexport interface MenuKeyItem {\n readonly disabledBoolean: boolean;\n readonly _tabIndex: WritableSignal<number>;\n readonly _elementRef?: ElementRef<HTMLElement>;\n focus(): void;\n getLabel(): string;\n}\n\n/** Internal ordered item collection consumed by `mlv-menu`. */\nexport interface MlvMenuItemRegistry {\n readonly items: Signal<readonly MenuKeyItem[]>;\n register(item: MenuKeyItem): void;\n unregister(item: MenuKeyItem): void;\n resync(): void;\n syncOrder(items: readonly MenuKeyItem[]): void;\n}\n\n/** Injection token for the nearest `mlv-menu` item registry. */\nexport const MLV_MENU_ITEM_REGISTRY = new InjectionToken<MlvMenuItemRegistry>(\n 'MLV_MENU_ITEM_REGISTRY',\n);\n\n/** Signal-backed ordered item registry used by `mlv-menu`. */\nexport class MlvMenuItemRegistryStore implements MlvMenuItemRegistry {\n private readonly _items = signal<readonly MenuKeyItem[]>([]);\n private _mutationObserver: MutationObserver | null = null;\n private _observedContainer: HTMLElement | null = null;\n\n readonly items = this._items.asReadonly();\n\n register(item: MenuKeyItem): void {\n this._items.update((items) =>\n items.includes(item) ? items : [...items, item],\n );\n this._syncObservedContainer();\n this._resyncItems();\n }\n\n unregister(item: MenuKeyItem): void {\n this._items.update((items) => {\n const nextItems = items.filter((candidate) => candidate !== item);\n return nextItems.length === items.length ? items : nextItems;\n });\n\n this._syncObservedContainer();\n this._resyncItems();\n }\n\n resync(): void {\n this._syncObservedContainer();\n this._resyncItems();\n }\n\n syncOrder(items: readonly MenuKeyItem[]): void {\n this._items.update((currentItems) => {\n const orderedItems = items.filter((item) => currentItems.includes(item));\n const unorderedItems = currentItems.filter(\n (item) => !orderedItems.includes(item),\n );\n const nextItems = [\n ...orderedItems,\n ...[...unorderedItems].sort(mlvCompareMenuItemsByDomOrder),\n ];\n\n return mlvMenuItemsMatchOrder(currentItems, nextItems)\n ? currentItems\n : nextItems;\n });\n this._syncObservedContainer();\n }\n\n private _syncObservedContainer(): void {\n const nextContainer = mlvGetSharedMenuContainer(this._items());\n\n if (nextContainer === this._observedContainer) {\n return;\n }\n\n this._mutationObserver?.disconnect();\n this._observedContainer = nextContainer;\n\n if (!nextContainer) {\n this._mutationObserver = null;\n return;\n }\n\n this._mutationObserver = new MutationObserver(() => this._resyncItems());\n this._mutationObserver.observe(nextContainer, {\n childList: true,\n subtree: true,\n });\n }\n\n private _resyncItems(): void {\n this._items.update((items) => {\n if (items.length < 2) {\n return items;\n }\n\n const nextItems = [...items].sort(mlvCompareMenuItemsByDomOrder);\n return mlvMenuItemsMatchOrder(items, nextItems) ? items : nextItems;\n });\n }\n}\n\nfunction mlvCompareMenuItemsByDomOrder(a: MenuKeyItem, b: MenuKeyItem): number {\n const aEl = a._elementRef?.nativeElement;\n const bEl = b._elementRef?.nativeElement;\n\n if (!aEl || !bEl || aEl === bEl) {\n return 0;\n }\n\n const panelContainer = mlvGetSharedMenuItemContainer(\n aEl,\n bEl,\n '[role=\"menu\"]',\n );\n if (panelContainer) {\n return mlvCompareWithinContainer(\n panelContainer,\n '[role=\"menuitem\"]',\n aEl,\n bEl,\n );\n }\n\n const hostContainer = mlvGetSharedMenuItemContainer(aEl, bEl, 'mlv-menu');\n if (hostContainer) {\n return mlvCompareWithinContainer(\n hostContainer,\n 'mlv-list-item[mlvMenuItem]',\n aEl,\n bEl,\n );\n }\n\n const position = aEl.compareDocumentPosition(bEl);\n if (position & Node.DOCUMENT_POSITION_DISCONNECTED) {\n return 0;\n }\n if (position & Node.DOCUMENT_POSITION_FOLLOWING) return -1;\n if (position & Node.DOCUMENT_POSITION_PRECEDING) return 1;\n return 0;\n}\n\nfunction mlvGetSharedMenuContainer(\n items: readonly MenuKeyItem[],\n): HTMLElement | null {\n const containers = items\n .map((item) => item._elementRef?.nativeElement)\n .filter((element): element is HTMLElement => element instanceof HTMLElement)\n .map(\n (element) =>\n element.closest('[role=\"menu\"]') ?? element.closest('mlv-menu'),\n )\n .filter(\n (container): container is HTMLElement => container instanceof HTMLElement,\n );\n\n if (containers.length === 0) {\n return null;\n }\n\n const [firstContainer, ...restContainers] = containers;\n return restContainers.every((container) => container === firstContainer)\n ? firstContainer\n : null;\n}\n\nfunction mlvMenuItemsMatchOrder(\n currentItems: readonly MenuKeyItem[],\n nextItems: readonly MenuKeyItem[],\n): boolean {\n return currentItems.every((item, index) => item === nextItems[index]);\n}\n\nfunction mlvGetSharedMenuItemContainer(\n aEl: HTMLElement,\n bEl: HTMLElement,\n selector: string,\n): HTMLElement | null {\n const aContainer = mlvAsHtmlElement(aEl.closest(selector));\n const bContainer = mlvAsHtmlElement(bEl.closest(selector));\n\n return aContainer && aContainer === bContainer ? aContainer : null;\n}\n\nfunction mlvAsHtmlElement(element: Element | null): HTMLElement | null {\n return element instanceof HTMLElement ? element : null;\n}\n\nfunction mlvCompareWithinContainer(\n container: HTMLElement,\n itemSelector: string,\n aEl: HTMLElement,\n bEl: HTMLElement,\n): number {\n const orderedItems = Array.from(\n container.querySelectorAll<HTMLElement>(itemSelector),\n );\n const aIndex = orderedItems.indexOf(aEl);\n const bIndex = orderedItems.indexOf(bEl);\n\n if (aIndex === -1 || bIndex === -1 || aIndex === bIndex) {\n return 0;\n }\n\n return aIndex < bIndex ? -1 : 1;\n}\n","import { InjectionToken } from '@angular/core';\n\n/**\n * Interface that a menu exposes to its child `MenuItemComponent` instances.\n * Used via the `MENU_TOKEN` injection token for decoupled parent–child communication.\n */\nexport interface MlvMenuAccessor {\n /** Closes this menu panel. */\n close(): void;\n\n /** Closes this menu panel and any ancestor menu panels. */\n closeAll(): void;\n}\n\n/** Injection token for the parent menu. */\nexport const MENU_TOKEN = new InjectionToken<MlvMenuAccessor>('MENU_TOKEN');\n\n/** Internal data-row controller injected into generated `mlvMenuItem` views. */\nexport interface MlvMenuDataItemContext {\n /** Whether the generated row currently owns a submenu. */\n hasChildren(): boolean;\n\n /** Whether the submenu's first child payload is still loading. */\n loading(): boolean;\n\n /** Whether the submenu overlay is currently open. */\n isOpen(): boolean;\n\n /** Stable submenu panel id used for `aria-controls`. */\n panelId(): string | null;\n\n /** Whether the generated row should be treated as disabled. */\n isDisabled(): boolean;\n\n /** Opens the generated submenu. */\n open(): void;\n\n /** Closes the generated submenu. */\n close(): void;\n\n /** Toggles the generated submenu. */\n toggle(): void;\n\n /** Opens the submenu and focuses its first enabled child row. */\n openWithFirstItemFocused(): void;\n\n /** Opens the submenu and focuses its last enabled child row. */\n openWithLastItemFocused(): void;\n\n /** Delegates pointer entry to the shared submenu controller. */\n onMouseEnter(): void;\n\n /** Delegates pointer exit to the shared submenu controller. */\n onMouseLeave(event: MouseEvent): void;\n}\n\n/** Internal injector token for generated menu-row submenu behaviour. */\nexport const MLV_MENU_DATA_ITEM = new InjectionToken<MlvMenuDataItemContext>(\n 'MLV_MENU_DATA_ITEM',\n);\n","import { InjectionToken, signal } from '@angular/core';\nimport type { ElementRef, Signal } from '@angular/core';\nimport type { MlvMenubarItem } from './menubar.types';\n\ninterface MlvOrderedMenubarItem extends MlvMenubarItem {\n readonly _elementRef?: ElementRef<HTMLElement>;\n}\n\n/** Internal ordered item collection consumed by `mlv-menubar`. */\nexport interface MlvMenubarItemRegistry {\n readonly items: Signal<readonly MlvMenubarItem[]>;\n register(item: MlvMenubarItem): void;\n unregister(item: MlvMenubarItem): void;\n resync(): void;\n syncOrder(items: readonly MlvMenubarItem[]): void;\n}\n\n/** Injection token for the nearest `mlv-menubar` item registry. */\nexport const MLV_MENUBAR_ITEM_REGISTRY =\n new InjectionToken<MlvMenubarItemRegistry>('MLV_MENUBAR_ITEM_REGISTRY');\n\n/** Signal-backed ordered item registry used by `mlv-menubar`. */\nexport class MlvMenubarItemRegistryStore implements MlvMenubarItemRegistry {\n private readonly _items = signal<readonly MlvMenubarItem[]>([]);\n private _mutationObserver: MutationObserver | null = null;\n private _observedContainer: HTMLElement | null = null;\n\n readonly items = this._items.asReadonly();\n\n register(item: MlvMenubarItem): void {\n this._items.update((items) =>\n items.includes(item) ? items : [...items, item],\n );\n this._syncObservedContainer();\n this._resyncItems();\n }\n\n unregister(item: MlvMenubarItem): void {\n this._items.update((items) => {\n const nextItems = items.filter((candidate) => candidate !== item);\n return nextItems.length === items.length ? items : nextItems;\n });\n\n this._syncObservedContainer();\n this._resyncItems();\n }\n\n resync(): void {\n this._syncObservedContainer();\n this._resyncItems();\n }\n\n syncOrder(items: readonly MlvMenubarItem[]): void {\n this._items.update((currentItems) => {\n const orderedItems = items.filter((item) => currentItems.includes(item));\n const unorderedItems = currentItems.filter(\n (item) => !orderedItems.includes(item),\n );\n const nextItems = [\n ...orderedItems,\n ...[...unorderedItems].sort(mlvCompareMenubarItemsByDomOrder),\n ];\n\n return mlvMenubarItemsMatchOrder(currentItems, nextItems)\n ? currentItems\n : nextItems;\n });\n this._syncObservedContainer();\n }\n\n private _syncObservedContainer(): void {\n const nextContainer = mlvGetSharedMenubarContainer(this._items());\n\n if (nextContainer === this._observedContainer) {\n return;\n }\n\n this._mutationObserver?.disconnect();\n this._observedContainer = nextContainer;\n\n if (!nextContainer) {\n this._mutationObserver = null;\n return;\n }\n\n this._mutationObserver = new MutationObserver(() => this._resyncItems());\n this._mutationObserver.observe(nextContainer, {\n childList: true,\n subtree: true,\n });\n }\n\n private _resyncItems(): void {\n this._items.update((items) => {\n if (items.length < 2) {\n return items;\n }\n\n const nextItems = [...items].sort(mlvCompareMenubarItemsByDomOrder);\n return mlvMenubarItemsMatchOrder(items, nextItems) ? items : nextItems;\n });\n }\n}\n\nfunction mlvCompareMenubarItemsByDomOrder(\n a: MlvMenubarItem,\n b: MlvMenubarItem,\n): number {\n const aEl = (a as MlvOrderedMenubarItem)._elementRef?.nativeElement;\n const bEl = (b as MlvOrderedMenubarItem)._elementRef?.nativeElement;\n\n if (!aEl || !bEl || aEl === bEl) {\n return 0;\n }\n\n const position = aEl.compareDocumentPosition(bEl);\n if (position & Node.DOCUMENT_POSITION_DISCONNECTED) {\n return 0;\n }\n if (position & Node.DOCUMENT_POSITION_FOLLOWING) return -1;\n if (position & Node.DOCUMENT_POSITION_PRECEDING) return 1;\n return 0;\n}\n\nfunction mlvGetSharedMenubarContainer(\n items: readonly MlvMenubarItem[],\n): HTMLElement | null {\n const containers = items\n .map((item) =>\n (item as MlvOrderedMenubarItem)._elementRef?.nativeElement.closest(\n 'mlv-menubar',\n ),\n )\n .filter(\n (container): container is HTMLElement => container instanceof HTMLElement,\n );\n\n if (containers.length === 0) {\n return null;\n }\n\n const [firstContainer, ...restContainers] = containers;\n return restContainers.every((container) => container === firstContainer)\n ? firstContainer\n : null;\n}\n\nfunction mlvMenubarItemsMatchOrder(\n currentItems: readonly MlvMenubarItem[],\n nextItems: readonly MlvMenubarItem[],\n): boolean {\n return currentItems.every((item, index) => item === nextItems[index]);\n}\n","/** Cursor history used by the submenu safe-triangle algorithm. */\nexport interface MlvSubmenuAimState {\n lastX: number;\n lastY: number;\n submenuRect: DOMRect;\n side: 'right' | 'left';\n cursorEnteredSubmenu: boolean;\n}\n\n/**\n * Minimum horizontal travel, in CSS pixels, that counts as aiming at the submenu.\n *\n * Without it a purely vertical move qualifies: `deltaX === 0` is not \"away from\"\n * the submenu, and the cone between the panel's top and bottom corners is very\n * wide when measured from the far side of the item, so sliding straight down the\n * item column read as heading toward the panel and kept cancelling the close.\n *\n * Small enough that a genuine diagonal still registers on the first move, large\n * enough that jitter along one axis does not.\n */\nconst MIN_HORIZONTAL_PROGRESS = 2;\n\n/** Returns whether the current pointer trajectory is heading into a submenu. */\nexport function isCursorHeadingToSubmenu(\n currentX: number,\n currentY: number,\n state: MlvSubmenuAimState,\n): boolean {\n const { lastX, lastY, submenuRect, side } = state;\n const deltaX = currentX - lastX;\n const progress = side === 'right' ? deltaX : -deltaX;\n if (progress < MIN_HORIZONTAL_PROGRESS) return false;\n\n const edgeX = side === 'right' ? submenuRect.left : submenuRect.right;\n const edgeDelta = edgeX - lastX;\n if (Math.abs(edgeDelta) < 1) return true;\n\n const currentSlope = (currentY - lastY) / edgeDelta;\n const topSlope = (submenuRect.top - lastY) / edgeDelta;\n const bottomSlope = (submenuRect.bottom - lastY) / edgeDelta;\n return (\n currentSlope >= Math.min(topSlope, bottomSlope) &&\n currentSlope <= Math.max(topSlope, bottomSlope)\n );\n}\n","import { DestroyRef, NgZone, inject, signal } from '@angular/core';\nimport type {\n ElementRef,\n OutputEmitterRef,\n Signal,\n ViewContainerRef,\n WritableSignal,\n} from '@angular/core';\nimport type { MlvPopup, MlvPopupHandle } from '@malva-ui/core/popup';\nimport {\n MENU_POSITIONS,\n MlvPopupService,\n SUBMENU_POSITIONS,\n} from '@malva-ui/core/popup';\nimport type { MlvMenuAccessor } from './menu.types';\nimport type { MlvMenubarAccessor, MlvMenubarItem } from './menubar.types';\nimport type { MlvMenubarMenuController } from './menubar.types';\nimport type { MlvSubmenuAimState } from './submenu-aim';\nimport { isCursorHeadingToSubmenu } from './submenu-aim';\n\n/**\n * Structural menu surface required by the overlay controller.\n *\n * Keeping the overlay contract structural lets `MlvMenuTrigger` accept menus\n * with any data item type without making the trigger itself generic.\n */\nexport interface MlvMenuOverlayTarget extends MlvMenuAccessor {\n readonly _popup: Signal<MlvPopup>;\n readonly _isOpen: WritableSignal<boolean>;\n readonly closed: OutputEmitterRef<void>;\n readonly panelId: string;\n registerParentMenu(parentMenu: MlvMenuAccessor | null): void;\n registerMenubarController(controller: MlvMenubarMenuController | null): void;\n focusFirstItem(): void;\n focusLastItem(): void;\n}\n\n/** Configuration used by the shared menu overlay controller. */\nexport interface MlvMenuOverlayControllerConfig {\n /** Resolves the menu panel opened by this controller. */\n readonly getMenu: () => MlvMenuOverlayTarget;\n /** Element from which the popup is positioned and to which focus returns. */\n readonly origin: ElementRef<HTMLElement>;\n /** View container used to instantiate the menu popup portal. */\n readonly vcr: ViewContainerRef;\n /** Parent menu accessor for submenu registration. */\n readonly parentMenu: MlvMenuAccessor | null;\n /** Parent menubar accessor for top-level coordination. */\n readonly menubar: MlvMenubarAccessor | null;\n /** Whether the current trigger is configured as a submenu trigger. */\n readonly isSubmenu: () => boolean;\n /** Whether the current trigger is a direct child of a menubar. */\n readonly isMenubarChild: boolean;\n /** Resolves the current disabled state. */\n readonly isDisabled: () => boolean;\n /** Returns the menubar item represented by the trigger. */\n readonly getMenubarItem: () => MlvMenubarItem;\n /** Requests closure through the owning trigger façade when available. */\n readonly requestClose?: () => void;\n /** Called after the popup has been opened. */\n readonly onOpened?: () => void;\n /** Called after the popup has been fully closed. */\n readonly onClosed?: () => void;\n}\n\n/**\n * Owns the common popup, focus restoration, and submenu hover-intent lifecycle\n * used by explicit and data-generated menu triggers.\n */\nexport class MlvMenuOverlayController {\n /** Whether the controlled menu overlay is currently open. */\n readonly isOpen = signal(false);\n\n private readonly _popupService: MlvPopupService;\n private readonly _ngZone: NgZone;\n private readonly _destroyRef = inject(DestroyRef);\n\n private _overlayRef: MlvPopupHandle | null = null;\n private _openSubscriptions: Array<{ unsubscribe(): void }> = [];\n private _triangleState: MlvSubmenuAimState | null = null;\n private _closeTimer: ReturnType<typeof setTimeout> | null = null;\n private _mousemoveCleanup: (() => void) | null = null;\n private _destroyed = false;\n\n constructor(\n private readonly _config: MlvMenuOverlayControllerConfig,\n dependencies?: {\n readonly popupService?: MlvPopupService;\n readonly ngZone?: NgZone;\n },\n ) {\n this._popupService = dependencies?.popupService ?? inject(MlvPopupService);\n this._ngZone = dependencies?.ngZone ?? inject(NgZone);\n this._destroyRef.onDestroy(() => this.destroy());\n }\n\n /** Opens the menu overlay unless it is already open or disabled. */\n open(): void {\n if (this._destroyed || this.isOpen() || this._config.isDisabled()) return;\n\n const menu = this._config.getMenu();\n const popup = menu._popup();\n const isSubmenu = this._config.isSubmenu();\n const isMenubarChild = this._config.isMenubarChild;\n const positions = isSubmenu ? SUBMENU_POSITIONS : MENU_POSITIONS;\n\n menu.registerParentMenu(isSubmenu ? this._config.parentMenu : null);\n menu.registerMenubarController(\n isMenubarChild && this._config.menubar\n ? {\n openNextItemMenu: () =>\n this._config.menubar?.openAdjacentItemMenu(\n this._config.getMenubarItem(),\n 1,\n ),\n openPreviousItemMenu: () =>\n this._config.menubar?.openAdjacentItemMenu(\n this._config.getMenubarItem(),\n -1,\n ),\n }\n : null,\n );\n popup.animationState.set('idle');\n\n this._overlayRef = this._popupService.open({\n origin: this._config.origin,\n template: popup.popupTemplate(),\n vcr: this._config.vcr,\n positions,\n hasBackdrop: !isSubmenu && !isMenubarChild,\n dismissExcludeElements:\n isMenubarChild && this._config.menubar\n ? [this._config.menubar.hostElement]\n : undefined,\n onClose: () => {\n this._overlayRef = null;\n this.isOpen.set(false);\n popup.animationState.set('idle');\n popup.opened.set(false);\n menu._isOpen.set(false);\n this._openSubscriptions.forEach((subscription) =>\n subscription.unsubscribe(),\n );\n this._openSubscriptions = [];\n this._triangleState = null;\n this._removeMousemoveListener();\n this._config.onClosed?.();\n if (isMenubarChild) {\n this._config.menubar?.notifyItemClosed(this._config.getMenubarItem());\n }\n },\n onRequestClose: () => menu.close(),\n onPositionChange: (change) =>\n popup.updateArrowFromPosition(change.connectionPair),\n });\n\n popup.opened.set(true);\n menu._isOpen.set(true);\n this.isOpen.set(true);\n this._config.onOpened?.();\n if (isMenubarChild) {\n this._config.menubar?.notifyItemOpened(this._config.getMenubarItem());\n }\n\n const leaveSubscription = popup.leaveAnimationDone$.subscribe(() => {\n this._overlayRef?.close();\n });\n this._openSubscriptions.push(leaveSubscription);\n\n const closedSubscription = menu.closed.subscribe(() => {\n this._restoreFocusToTrigger();\n if (this._overlayRef) {\n popup.animationState.set('leave');\n }\n });\n this._openSubscriptions.push(closedSubscription);\n\n queueMicrotask(() => popup.beginEnterAnimation());\n\n if (isSubmenu) {\n this._setupSubmenuTracking();\n }\n }\n\n /** Closes the menu overlay when it is open. */\n close(): void {\n if (!this.isOpen()) return;\n this._closeOverlay();\n }\n\n /** Toggles the controlled menu overlay. */\n toggle(): void {\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n }\n\n /** Opens the menu and focuses its first enabled item. */\n openWithFirstItemFocused(): void {\n this.open();\n if (this.isOpen()) {\n setTimeout(() => this._config.getMenu().focusFirstItem(), 0);\n }\n }\n\n /** Opens the menu and focuses its last enabled item. */\n openWithLastItemFocused(): void {\n this.open();\n if (this.isOpen()) {\n setTimeout(() => this._config.getMenu().focusLastItem(), 0);\n }\n }\n\n /** Handles pointer entry for menubar and submenu triggers. */\n onMouseEnter(): void {\n if (this._config.isMenubarChild) {\n if (this._config.isDisabled()) return;\n this._config.menubar?.onItemPointerEnter(this._config.getMenubarItem());\n return;\n }\n if (!this._config.isSubmenu() || this._config.isDisabled()) return;\n this._clearCloseTimer();\n if (!this.isOpen()) {\n this.open();\n }\n }\n\n /** Handles pointer exit for submenu triggers using triangle intent. */\n onMouseLeave(event: MouseEvent): void {\n if (!this._config.isSubmenu()) return;\n\n if (this._triangleState?.cursorEnteredSubmenu) {\n const overlayElement = this._overlayRef?.overlayRef.overlayElement;\n const entered = event.relatedTarget;\n const intoSubmenu =\n entered instanceof Node && !!overlayElement?.contains(entered);\n\n if (!intoSubmenu) this._scheduleClose();\n return;\n }\n\n if (this._triangleState) {\n const heading = isCursorHeadingToSubmenu(\n event.clientX,\n event.clientY,\n this._triangleState,\n );\n if (heading) return;\n }\n\n this._scheduleClose();\n }\n\n /** Cleans up listeners and disposes the controlled overlay. */\n destroy(): void {\n if (this._destroyed) return;\n this._destroyed = true;\n this._clearCloseTimer();\n this._removeMousemoveListener();\n this._overlayRef?.close();\n this._overlayRef = null;\n }\n\n private _restoreFocusToTrigger(): void {\n const overlayElement = this._overlayRef?.overlayRef.overlayElement;\n const active = document.activeElement;\n if (overlayElement && active && overlayElement.contains(active)) {\n this._config.origin.nativeElement.focus();\n }\n }\n\n private _closeOverlay(): void {\n if (!this._overlayRef) return;\n this._config.getMenu()._popup().animationState.set('leave');\n }\n\n private _setupSubmenuTracking(): void {\n setTimeout(() => {\n if (this._destroyed || !this._overlayRef || !this.isOpen()) return;\n const overlayElement = this._overlayRef.overlayRef.overlayElement;\n this._triangleState = {\n lastX: 0,\n lastY: 0,\n submenuRect: overlayElement.getBoundingClientRect(),\n side: 'right',\n cursorEnteredSubmenu: false,\n };\n this._installMousemoveListener();\n this._installSubmenuOverlayListeners(overlayElement);\n }, 0);\n }\n\n private _installSubmenuOverlayListeners(overlayElement: HTMLElement): void {\n const onEnter = () => {\n if (this._triangleState) {\n this._triangleState.cursorEnteredSubmenu = true;\n }\n this._clearCloseTimer();\n this._removeMousemoveListener();\n };\n\n const onLeave = () => this._scheduleClose();\n\n this._ngZone.runOutsideAngular(() => {\n overlayElement.addEventListener('mouseenter', onEnter);\n overlayElement.addEventListener('mouseleave', onLeave);\n });\n\n this._openSubscriptions.push({\n unsubscribe: () => {\n overlayElement.removeEventListener('mouseenter', onEnter);\n overlayElement.removeEventListener('mouseleave', onLeave);\n },\n });\n }\n\n private _installMousemoveListener(): void {\n this._removeMousemoveListener();\n\n const handler = (event: MouseEvent) => {\n if (!this._triangleState || !this.isOpen()) return;\n if (this._triangleState.cursorEnteredSubmenu) return;\n\n if (this._config.origin.nativeElement.contains(event.target as Node)) {\n this._clearCloseTimer();\n return;\n }\n\n if (this._isPointerOnSiblingItem(event.target)) {\n this._ngZone.run(() => this._config.requestClose?.() ?? this.close());\n return;\n }\n\n const { clientX, clientY } = event;\n const state = this._triangleState;\n const heading = isCursorHeadingToSubmenu(clientX, clientY, state);\n\n state.lastX = clientX;\n state.lastY = clientY;\n\n if (heading) {\n this._clearCloseTimer();\n } else if (this._overlayRef) {\n state.submenuRect =\n this._overlayRef.overlayRef.overlayElement.getBoundingClientRect();\n if (!isCursorHeadingToSubmenu(clientX, clientY, state)) {\n this._scheduleClose();\n }\n }\n };\n\n this._ngZone.runOutsideAngular(() => {\n document.addEventListener('mousemove', handler, true);\n this._mousemoveCleanup = () =>\n document.removeEventListener('mousemove', handler, true);\n });\n }\n\n private _isPointerOnSiblingItem(target: EventTarget | null): boolean {\n if (!(target instanceof Element)) return false;\n\n const item = target.closest('[role=\"menuitem\"]');\n if (!item || item === this._config.origin.nativeElement) return false;\n\n const panel = this._config.origin.nativeElement.closest('[role=\"menu\"]');\n return !!panel?.contains(item);\n }\n\n private _removeMousemoveListener(): void {\n if (this._mousemoveCleanup) {\n this._mousemoveCleanup();\n this._mousemoveCleanup = null;\n }\n }\n\n private _scheduleClose(): void {\n this._clearCloseTimer();\n this._closeTimer = setTimeout(() => {\n this._ngZone.run(() => this._config.requestClose?.() ?? this.close());\n }, 150);\n }\n\n private _clearCloseTimer(): void {\n if (this._closeTimer !== null) {\n clearTimeout(this._closeTimer);\n this._closeTimer = null;\n }\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport type { ElementRef, WritableSignal } from '@angular/core';\nimport type { FocusableOption } from '@angular/cdk/a11y';\nimport type { MlvDataSource } from '@malva-ui/cdk/data-source';\nimport type { MlvMenuItemData, MlvMenubarEntry } from './menu-data.types';\n\n/** Data source accepted by a data-driven menubar. */\nexport type MlvMenubarDataSource<\n TItem extends MlvMenuItemData<unknown> = MlvMenuItemData<unknown>,\n> = MlvMenubarEntry<TItem>[] | MlvDataSource<MlvMenubarEntry<TItem>>;\n\n/**\n * The subset of the `MlvMenuTrigger` API a `mlv-menubar` needs to\n * coordinate its top-level items (roving tabindex, arrow navigation, and the\n * \"open-follow\" behaviour where moving to a sibling while a menu is open opens\n * that sibling's menu).\n *\n * `MlvMenuTrigger` implements this shape at runtime when it is a direct\n * child of a `mlv-menubar` (i.e. it can inject {@link MENUBAR_TOKEN}).\n */\nexport interface MlvMenubarItem extends FocusableOption {\n /** Optional host element used to keep registry order aligned with the DOM. */\n readonly _elementRef?: ElementRef<HTMLElement>;\n /** Whether this top-level item is disabled — used by the bar's `skipPredicate`. */\n readonly disabledBoolean: boolean;\n\n /**\n * Roving tabindex signal for this item — `0` for the currently active item,\n * `-1` for every other item. Written by the parent `mlv-menubar`.\n */\n readonly _tabIndex: WritableSignal<number>;\n\n /** Whether this item's dropdown menu is currently open. */\n isMenuOpen(): boolean;\n\n /** Opens this item's dropdown without moving focus into the panel. */\n openMenu(): void;\n\n /** Closes this item's dropdown. */\n closeMenu(): void;\n\n /** Opens this item's dropdown and moves focus to the first menu item. */\n openMenuWithFirstItemFocused(): void;\n\n /** Opens this item's dropdown and moves focus to the last menu item. */\n openMenuWithLastItemFocused(): void;\n\n /** Returns the item's visible text label, used for menubar type-ahead. */\n getLabel(): string;\n}\n\n/**\n * Accessor a `mlv-menubar` exposes to its child triggers via {@link MENUBAR_TOKEN}.\n * Child triggers use it to report open/close state and to request sibling-menu\n * navigation, without importing the concrete `MlvMenubar`.\n */\nexport interface MlvMenubarAccessor {\n /**\n * Host element of the menubar. Passed to `MlvPopupService` as a click-outside\n * exclusion so that clicking a sibling top-level item switches menus instead\n * of dismissing the open dropdown.\n */\n readonly hostElement: HTMLElement;\n\n /**\n * Called by a child when its dropdown opens. The bar records the open item,\n * closes any previously-open sibling, and syncs the roving tabindex.\n */\n notifyItemOpened(item: MlvMenubarItem): void;\n\n /** Called by a child when its dropdown closes. */\n notifyItemClosed(item: MlvMenubarItem): void;\n\n /**\n * Called on `mouseenter` of a child. Opens the hovered item's dropdown **only\n * while another dropdown in the bar is already open** (hover-follow); does\n * nothing when the bar is fully closed.\n */\n onItemPointerEnter(item: MlvMenubarItem): void;\n\n /** Whether any dropdown in the bar is currently open. */\n hasOpenMenu(): boolean;\n\n /**\n * Moves to the item adjacent to `from` (wrapping over disabled items) and\n * opens its dropdown with focus on the first item. Called from within an open\n * dropdown on ArrowRight (`dir = 1`) or ArrowLeft (`dir = -1`) to cross to a\n * sibling menubar menu.\n */\n openAdjacentItemMenu(from: MlvMenubarItem, dir: 1 | -1): void;\n}\n\n/**\n * Controller a menubar dropdown uses to cross to a sibling menubar menu when\n * ArrowRight / ArrowLeft is pressed at the top level of the open dropdown.\n * Registered on the `MlvMenu` by the opening `MlvMenuTrigger` when\n * (and only when) that trigger is a menubar child.\n */\nexport interface MlvMenubarMenuController {\n /** Cross to the next menubar item's menu (in-menu ArrowRight). */\n openNextItemMenu(): void;\n\n /** Cross to the previous menubar item's menu (in-menu ArrowLeft). */\n openPreviousItemMenu(): void;\n}\n\n/** Injection token for the parent `mlv-menubar`. */\nexport const MENUBAR_TOKEN = new InjectionToken<MlvMenubarAccessor>(\n 'MENUBAR_TOKEN',\n);\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n ViewContainerRef,\n afterRenderEffect,\n effect,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { DOWN_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport { MlvRtlService } from '@malva-ui/cdk/utils';\nimport { MLV_MENUBAR_ITEM_REGISTRY } from './menubar-item-registry';\nimport {\n MlvMenuOverlayController,\n type MlvMenuOverlayTarget,\n} from './menu-overlay-controller';\nimport { MENU_TOKEN } from './menu.types';\nimport type { MlvMenuAccessor } from './menu.types';\nimport { MENUBAR_TOKEN } from './menubar.types';\nimport type { MlvMenubarAccessor, MlvMenubarItem } from './menubar.types';\n\n/**\n * Trigger directive for `mlv-menu`.\n *\n * Attach to any element to open a `mlv-menu` panel on click. Uses `MlvPopupService`\n * from `@malva-ui/core/popup` to create the CDK overlay with the popup component's\n * template for visual chrome (background, border, radius, shadow, animations).\n * The menu panel and items are declared inside `[mlvPopupContent]` in the menu's\n * template and are rendered directly into the overlay — no DOM manipulation required.\n *\n * When used as a submenu trigger (`[isSubmenuTrigger]=\"true\"`), the panel opens on\n * mouseenter and the triangle-pointer-tracking algorithm keeps it open while the\n * cursor moves diagonally toward it.\n *\n * Hover intent is resolved by what the pointer is over, with geometry used only\n * for the ambiguous space between item and panel:\n * - over the trigger item — stays open, whatever the trajectory;\n * - over a different row of the same menu — closes;\n * - in between (including the 8px `SUBMENU_POSITIONS` gap) — the safe cone\n * decides, and a short grace timer absorbs jitter and gap crossings.\n *\n * Once the cursor enters the submenu panel, triangle tracking stops and the\n * panel's own `mouseleave` schedules the close.\n *\n * @example Simple trigger\n * ```html\n * <button [mlvMenuTrigger]=\"menu\">Open menu</button>\n * <mlv-menu #menu>\n * <mlv-menu-item (itemClick)=\"onEdit()\">Edit</mlv-menu-item>\n * <mlv-menu-separator />\n * <mlv-menu-item (itemClick)=\"onDelete()\">Delete</mlv-menu-item>\n * </mlv-menu>\n * ```\n *\n * @example Submenu trigger on a menu item\n * ```html\n * <mlv-menu-item [mlvMenuTrigger]=\"sub\" [isSubmenuTrigger]=\"true\">\n * More options\n * </mlv-menu-item>\n * <mlv-menu #sub>\n * <mlv-menu-item (itemClick)=\"onOption()\">Option A</mlv-menu-item>\n * </mlv-menu>\n * ```\n */\n@Directive({\n selector: '[mlvMenuTrigger]',\n host: {\n '[attr.aria-haspopup]': '\"menu\"',\n '[attr.aria-expanded]': '_isOpen()',\n '[attr.aria-controls]': '_isOpen() ? mlvMenuTrigger().panelId : null',\n // NB: `role=\"menuitem\"` and the roving `tabindex` are applied imperatively\n // (see the constructor) *only* for menubar children. They are deliberately\n // NOT host bindings: a submenu trigger co-hosts `MlvMenuItem`, which\n // already owns `[attr.role]`/`[attr.tabindex]`, and two directives binding\n // the same attribute would clobber each other.\n '(click)': '_onTriggerClick()',\n '(mouseenter)': '_onTriggerMouseEnter()',\n '(mouseleave)': '_onTriggerMouseLeave($event)',\n '(keydown)': '_onKeydown($event)',\n },\n})\nexport class MlvMenuTrigger {\n /** @private Normalizes horizontal submenu opening for RTL layouts. */\n private readonly _rtlService = inject(MlvRtlService);\n\n // ─── Injected services ────────────────────────────────────────────────────\n\n /** @private Host element reference. */\n readonly _elementRef = inject(ElementRef<HTMLElement>);\n\n /** @private DestroyRef for cleanup on directive destruction. */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @private Parent menu for submenu triggers, if this trigger lives inside one. */\n private readonly _parentMenu = inject<MlvMenuAccessor | null>(MENU_TOKEN, {\n optional: true,\n });\n\n /**\n * @private Parent menubar, if this trigger is a direct child of a `mlv-menubar`\n * (i.e. a top-level File / Edit / View item). `null` for standalone triggers\n * and submenu triggers.\n */\n private readonly _menubar = inject<MlvMenubarAccessor | null>(MENUBAR_TOKEN, {\n optional: true,\n });\n private readonly _menubarItemRegistry = inject(MLV_MENUBAR_ITEM_REGISTRY, {\n optional: true,\n });\n\n /**\n * @private Whether this trigger is a top-level menubar item. When `true` the\n * host exposes `role=\"menuitem\"` + a roving tabindex, and open/close state is\n * coordinated with the parent `mlv-menubar`.\n */\n readonly _isMenubarChild = this._menubar !== null;\n\n // ─── Inputs ───────────────────────────────────────────────────────────────\n\n /**\n * The `mlv-menu` panel to open. Required.\n */\n readonly mlvMenuTrigger = input.required<MlvMenuOverlayTarget>();\n\n /**\n * When true, treats this trigger as a submenu trigger:\n * - Opens the panel using submenu positions (right-of-parent).\n * - Activates triangle pointer tracking while the submenu is open.\n * - Opens on `mouseenter` in addition to `click`.\n */\n readonly isSubmenuTrigger = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * When `true`, disables the trigger — no overlay will open.\n */\n readonly menuTriggerDisabled = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n // ─── Outputs ──────────────────────────────────────────────────────────────\n\n /** Emits when the menu panel opens. */\n readonly menuOpened = output<void>();\n\n /** Emits when the menu panel closes. */\n readonly menuClosed = output<void>();\n\n // ─── Internal state ───────────────────────────────────────────────────────\n\n /**\n * @private Roving tabindex for menubar top-level items — `0` for the active\n * item, `-1` otherwise. Written by the parent `mlv-menubar`; only reflected\n * on the host when `_isMenubarChild` is `true`.\n */\n readonly _tabIndex = signal(-1);\n\n /** @private Shared overlay and submenu hover-intent controller. */\n readonly _overlayController = new MlvMenuOverlayController({\n getMenu: () => this.mlvMenuTrigger(),\n origin: this._elementRef,\n vcr: inject(ViewContainerRef),\n parentMenu: this._parentMenu,\n menubar: this._menubar,\n isSubmenu: () => this.isSubmenuTrigger(),\n isMenubarChild: this._isMenubarChild,\n isDisabled: () => this.menuTriggerDisabled(),\n getMenubarItem: () => this as unknown as MlvMenubarItem,\n requestClose: () => this.close(),\n onOpened: () => this.menuOpened.emit(),\n onClosed: () => this.menuClosed.emit(),\n });\n\n /** @private Whether the menu overlay is currently open. */\n readonly _isOpen = this._overlayController.isOpen;\n\n constructor() {\n if (this._isMenubarChild) {\n this._menubarItemRegistry?.register(this as unknown as MlvMenubarItem);\n afterRenderEffect(() => this._menubarItemRegistry?.resync());\n }\n\n this._destroyRef.onDestroy(() => {\n if (this._isMenubarChild) {\n this._menubarItemRegistry?.unregister(\n this as unknown as MlvMenubarItem,\n );\n }\n });\n\n // Menubar top-level item: apply `role=\"menuitem\"` + a roving tabindex\n // imperatively. Only done for menubar children (never co-hosted with\n // `MlvMenuItem`), so it cannot collide with that directive's own\n // `role`/`tabindex` host bindings on submenu triggers.\n if (this._isMenubarChild) {\n const renderer = inject(Renderer2);\n const el = this._elementRef.nativeElement;\n renderer.setAttribute(el, 'role', 'menuitem');\n effect(() => {\n renderer.setAttribute(el, 'tabindex', String(this._tabIndex()));\n });\n }\n }\n\n // ─── Public API ───────────────────────────────────────────────────────────\n\n /**\n * Opens the menu overlay programmatically.\n * No-op if the overlay is already open or the trigger is disabled.\n */\n open(): void {\n this._overlayController.open();\n }\n\n /**\n * Closes the menu overlay programmatically.\n * No-op if the overlay is not open.\n */\n close(): void {\n this._overlayController.close();\n }\n\n /**\n * Toggles the menu overlay open/closed.\n */\n toggle(): void {\n this._overlayController.toggle();\n }\n\n // ─── MlvMenubarItem (used by the parent `mlv-menubar`) ─────────────────────\n\n /**\n * Whether this trigger is disabled. Bridges the `menuTriggerDisabled` signal\n * to the `MlvMenubarItem` / `FocusKeyManager.skipPredicate` contract.\n */\n get disabledBoolean(): boolean {\n return !!this.menuTriggerDisabled();\n }\n\n /**\n * Focuses the trigger host element. Required by CDK `FocusableOption` for the\n * menubar's `FocusKeyManager` roving tabindex.\n */\n focus(): void {\n this._elementRef.nativeElement.focus();\n }\n\n /**\n * Returns the trigger's trimmed visible text, used by the menubar's\n * `FocusKeyManager` type-ahead. Required by `FocusKeyManager.withTypeAhead()`.\n */\n getLabel(): string {\n return this._elementRef.nativeElement.textContent?.trim() ?? '';\n }\n\n /** Whether this item's dropdown menu is currently open (`MlvMenubarItem`). */\n isMenuOpen(): boolean {\n return this._isOpen();\n }\n\n /** Opens this item's dropdown without moving focus into the panel (`MlvMenubarItem`). */\n openMenu(): void {\n this.open();\n }\n\n /** Closes this item's dropdown (`MlvMenubarItem`). */\n closeMenu(): void {\n this.close();\n }\n\n /**\n * Opens this item's dropdown and moves focus to its first item (`MlvMenubarItem`).\n */\n openMenuWithFirstItemFocused(): void {\n this._overlayController.openWithFirstItemFocused();\n }\n\n /**\n * Opens this item's dropdown and moves focus to its last item (`MlvMenubarItem`).\n */\n openMenuWithLastItemFocused(): void {\n this._overlayController.openWithLastItemFocused();\n }\n\n // ─── Protected host event handlers ───────────────────────────────────────\n\n /**\n * @protected Click handler — toggles the menu.\n */\n protected _onTriggerClick(): void {\n if (this.menuTriggerDisabled()) return;\n this.toggle();\n }\n\n /**\n * @protected Mouseenter handler.\n *\n * - Menubar top-level item: delegates to the bar's hover-follow, which opens\n * this item's menu only while another dropdown in the bar is already open.\n * - Submenu trigger: opens the submenu on hover (triangle tracking).\n * - Standalone trigger: no-op (opens on click only).\n */\n protected _onTriggerMouseEnter(): void {\n this._overlayController.onMouseEnter();\n }\n\n /**\n * @protected Mouseleave handler — for submenu triggers, starts a delayed close\n * unless the cursor is heading into the submenu triangle.\n * Once the cursor has entered the submenu panel, the submenu overlay's own\n * mouseleave listener handles closing — no triangle tracking needed here.\n */\n protected _onTriggerMouseLeave(event: MouseEvent): void {\n this._overlayController.onMouseLeave(event);\n }\n\n /**\n * @protected Keyboard handler — Enter/Space opens; Escape closes;\n * ArrowDown/Up opens with keyboard focus.\n */\n protected _onKeydown(event: KeyboardEvent): void {\n if (this.menuTriggerDisabled()) return;\n\n const key = this._rtlService.normalizeArrowKey(event);\n switch (key ?? event.key) {\n case 'Enter':\n case ' ':\n event.preventDefault();\n this.toggle();\n if (this._isOpen()) {\n setTimeout(() => this.mlvMenuTrigger().focusFirstItem(), 0);\n }\n break;\n case DOWN_ARROW:\n if (!this._isOpen()) {\n event.preventDefault();\n this.open();\n setTimeout(() => this.mlvMenuTrigger().focusFirstItem(), 0);\n }\n break;\n case UP_ARROW:\n if (!this._isOpen()) {\n event.preventDefault();\n this.open();\n setTimeout(() => this.mlvMenuTrigger().focusLastItem(), 0);\n }\n break;\n case RIGHT_ARROW:\n // On a submenu trigger (a menu item), ArrowRight opens the submenu and\n // moves focus to its first item.\n if (this.isSubmenuTrigger() && !this._isOpen()) {\n event.preventDefault();\n event.stopPropagation();\n this.open();\n setTimeout(() => this.mlvMenuTrigger().focusFirstItem(), 0);\n }\n break;\n case 'Escape':\n if (this._isOpen()) {\n event.preventDefault();\n this.close();\n this._elementRef.nativeElement.focus();\n }\n break;\n }\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n afterRenderEffect,\n effect,\n inject,\n input,\n output,\n Renderer2,\n signal,\n} from '@angular/core';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { DOWN_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport { MlvRtlService } from '@malva-ui/cdk/utils';\nimport { MLV_MENU_ITEM_REGISTRY } from './menu-item-registry';\nimport { MLV_MENU_DATA_ITEM, MENU_TOKEN } from './menu.types';\nimport { MlvMenuTrigger } from './menu-trigger';\nimport { MENUBAR_TOKEN } from './menubar.types';\n\n/**\n * Menu item directive — applied to `mlv-list-item` to give it menu-item semantics\n * and behavior.\n *\n * Overrides the list item's default `role=\"listitem\"` with `role=\"menuitem\"`,\n * wires into the parent menu's `FocusKeyManager` (via `focus()` / `disabledBoolean`),\n * and closes the parent menu stack on leaf activation. A co-hosted enabled\n * submenu trigger owns its own activation so opening a child menu keeps the\n * ancestor open; a disabled submenu trigger falls back to leaf activation.\n *\n * Use `[mlvListItemPrefix]` for leading icons and `[mlvListItemSuffix]` for\n * trailing content (chevron, shortcut label, etc.).\n *\n * @example\n * ```html\n * <mlv-list-item mlvMenuItem (itemClick)=\"onSave()\">Save</mlv-list-item>\n *\n * <mlv-list-item mlvMenuItem disabled>Unavailable</mlv-list-item>\n *\n * <mlv-list-item mlvMenuItem (itemClick)=\"onEdit()\">\n * <svg mlvListItemPrefix lucideEdit [size]=\"14\" />\n * Edit\n * </mlv-list-item>\n * ```\n */\n@Directive({\n selector: 'mlv-list-item[mlvMenuItem]',\n host: {\n '[attr.role]': '\"menuitem\"',\n '[attr.tabindex]': '_isDisabled() ? -1 : _tabIndex()',\n '[attr.aria-disabled]': '_isDisabled() || null',\n '[class.mlv-list-item--disabled]': '_isDisabled()',\n '[class.mlv-menu-data-renderer__submenu-trigger]': '_hasAutomaticSubmenu()',\n '(click)': '_onClick()',\n '(mouseenter)': '_onMouseEnter()',\n '(mouseleave)': '_onMouseLeave($event)',\n '(keydown.enter)': '_onActivate($event)',\n '(keydown)': '_onKeydown($event)',\n '(keydown.space)': '_onActivate($event)',\n },\n})\nexport class MlvMenuItem {\n /** @private Normalizes horizontal submenu navigation for RTL layouts. */\n private readonly _rtlService = inject(MlvRtlService);\n\n /** @private Reference to parent menu, if any. Used to close on activation. */\n private readonly _menu = inject(MENU_TOKEN, { optional: true });\n private readonly _registry = inject(MLV_MENU_ITEM_REGISTRY, {\n optional: true,\n });\n private readonly _renderer = inject(Renderer2);\n private readonly _dataItemContext = inject(MLV_MENU_DATA_ITEM, {\n optional: true,\n });\n private readonly _menubar = inject(MENUBAR_TOKEN, { optional: true });\n\n /** @private A co-hosted submenu trigger owns activation instead of this leaf item. */\n private readonly _submenuTrigger = inject(MlvMenuTrigger, {\n optional: true,\n self: true,\n });\n\n /** @private Host element used to call `focus()` for `FocusKeyManager`. */\n readonly _elementRef = inject(ElementRef<HTMLElement>);\n\n constructor() {\n this._registry?.register(this);\n afterRenderEffect(() => this._registry?.resync());\n inject(DestroyRef).onDestroy(() => this._registry?.unregister(this));\n\n if (this._dataItemContext && !this._submenuTrigger) {\n effect(() => {\n const element = this._elementRef.nativeElement;\n\n if (!this._dataItemContext?.hasChildren()) {\n this._renderer.removeAttribute(element, 'aria-haspopup');\n this._renderer.removeAttribute(element, 'aria-expanded');\n this._renderer.removeAttribute(element, 'aria-controls');\n return;\n }\n\n this._renderer.setAttribute(element, 'aria-haspopup', 'menu');\n this._renderer.setAttribute(\n element,\n 'aria-expanded',\n String(this._dataItemContext.isOpen()),\n );\n\n const panelId = this._dataItemContext.panelId();\n if (this._dataItemContext.isOpen() && panelId) {\n this._renderer.setAttribute(element, 'aria-controls', panelId);\n } else {\n this._renderer.removeAttribute(element, 'aria-controls');\n }\n });\n }\n }\n\n // ─── Inputs ───────────────────────────────────────────────────────────────\n\n /**\n * When true, disables the item — removes it from the tab order and\n * prevents activation. Supports attribute syntax: `<mlv-list-item mlvMenuItem disabled>`.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n // ─── Outputs ──────────────────────────────────────────────────────────────\n\n /**\n * Emits when a leaf item is activated (click or Enter/Space key).\n * The parent menu stack closes automatically after this event. Submenu-trigger\n * rows delegate activation to `MlvMenuTrigger` and do not emit this output\n * while that trigger is enabled.\n */\n readonly itemClick = output<void>();\n\n // ─── FocusKeyManager interface ────────────────────────────────────────────\n\n /**\n * @private Tabindex managed by the parent menu's `FocusKeyManager`.\n * `0` for the active (focused) item, `-1` for all others (roving tabindex).\n * A signal so the host `[attr.tabindex]` binding updates under OnPush.\n */\n readonly _tabIndex = signal(-1);\n\n /**\n * Boolean getter for `FocusKeyManager.skipPredicate`.\n * The key manager calls `item.disabledBoolean` so this bridges\n * the signal API to the CDK interface.\n */\n get disabledBoolean(): boolean {\n return this._isDisabled();\n }\n\n /**\n * Focuses the host element.\n * Required by CDK `FocusableOption` for `FocusKeyManager`.\n */\n focus(): void {\n this._elementRef.nativeElement.focus();\n }\n\n /**\n * Returns the item's visible text label, used by the parent menu's\n * `FocusKeyManager` type-ahead (type a letter to jump to the first matching\n * item). Reads the host element's trimmed `textContent`.\n * Required by CDK `FocusKeyManager.withTypeAhead()`.\n */\n getLabel(): string {\n return this._elementRef.nativeElement.textContent?.trim() ?? '';\n }\n\n // ─── Handlers ─────────────────────────────────────────────────────────────\n\n /**\n * @protected Handles click activation.\n */\n protected _onClick(): void {\n if (this._isDisabled()) return;\n if (this._hasAutomaticSubmenu()) {\n this._dataItemContext?.toggle();\n return;\n }\n if (this._enabledSubmenuOwnsActivation()) return;\n this.itemClick.emit();\n this._menu?.closeAll();\n }\n\n /**\n * @protected Handles Enter / Space keyboard activation.\n * Prevents default scroll on Space and triggers the same logic as a click.\n */\n protected _onActivate(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n if (this._isDisabled()) return;\n if (this._hasAutomaticSubmenu()) {\n if (this._dataItemContext?.isOpen()) {\n this._dataItemContext.close();\n } else {\n this._dataItemContext?.openWithFirstItemFocused();\n }\n return;\n }\n if (this._enabledSubmenuOwnsActivation()) return;\n this.itemClick.emit();\n this._menu?.closeAll();\n }\n\n /** @protected Delegates hover-open behavior for generated submenu rows. */\n protected _onMouseEnter(): void {\n if (this._isDisabled() || !this._hasAutomaticSubmenu()) return;\n this._dataItemContext?.onMouseEnter();\n }\n\n /** @protected Delegates hover-close intent for generated submenu rows. */\n protected _onMouseLeave(event: MouseEvent): void {\n if (this._isDisabled() || !this._hasAutomaticSubmenu()) return;\n this._dataItemContext?.onMouseLeave(event);\n }\n\n /** @protected Handles submenu keyboard opening for generated rows. */\n protected _onKeydown(event: KeyboardEvent): void {\n if (this._isDisabled() || !this._hasAutomaticSubmenu()) return;\n\n const key = this._rtlService.normalizeArrowKey(event) ?? event.key;\n if (this._isMenubarDataItem()) {\n if (key === DOWN_ARROW && !this._dataItemContext?.isOpen()) {\n event.preventDefault();\n event.stopPropagation();\n this._dataItemContext?.openWithFirstItemFocused();\n } else if (key === UP_ARROW && !this._dataItemContext?.isOpen()) {\n event.preventDefault();\n event.stopPropagation();\n this._dataItemContext?.openWithLastItemFocused();\n }\n return;\n }\n\n if (key !== RIGHT_ARROW || this._dataItemContext?.isOpen()) return;\n\n event.preventDefault();\n event.stopPropagation();\n this._dataItemContext?.openWithFirstItemFocused();\n }\n\n /** @private Whether a co-hosted trigger can handle submenu activation. */\n private _enabledSubmenuOwnsActivation(): boolean {\n return !!(\n this._submenuTrigger?.isSubmenuTrigger() &&\n !this._submenuTrigger.menuTriggerDisabled()\n );\n }\n\n /** @private Whether this row is a generated submenu row without an explicit trigger. */\n protected _hasAutomaticSubmenu(): boolean {\n return !this._submenuTrigger && !!this._dataItemContext?.hasChildren();\n }\n\n /** @private Whether this generated row is a root item of a reactive menubar. */\n private _isMenubarDataItem(): boolean {\n return !!this._dataItemContext && this._menubar !== null;\n }\n\n /** @private Resolved disabled state from explicit input or generated row data. */\n protected _isDisabled(): boolean {\n return !!(this.disabled() || this._dataItemContext?.isDisabled());\n }\n}\n","import { DestroyRef, computed, inject, signal } from '@angular/core';\nimport type { Signal } from '@angular/core';\nimport { MlvDataSource } from '@malva-ui/cdk/data-source';\nimport type { Subscription } from 'rxjs';\nimport type { MlvMenuDataSource, MlvMenuItemData } from './menu-data.types';\n\n/** Internal adapter that normalizes arrays and `MlvDataSource` instances. */\nexport class MlvMenuDataSourceAdapter<T> {\n /** @private The current source identity the adapter exposes. */\n private readonly _source = signal<MlvMenuDataSource<T>>([]);\n /** @private Memoized `connect()` signals keyed by data-source identity. */\n private readonly _connected = new Map<MlvDataSource<T>, Signal<T[]>>();\n\n /** Current top-level menu items for the active source. */\n readonly items = computed<T[]>(() => {\n const source = this._source();\n\n if (source instanceof MlvDataSource) {\n const items = this._connected.get(source);\n return items ? items() : [];\n }\n\n return source;\n });\n\n readonly loading = computed(() => {\n const source = this._source();\n return source instanceof MlvDataSource ? source.loading() : false;\n });\n\n /** Replaces the active source, connecting data sources once per identity. */\n setSource(source: MlvMenuDataSource<T>): void {\n if (source instanceof MlvDataSource && !this._connected.has(source)) {\n this._connected.set(source, source.connect());\n }\n\n this._source.set(source);\n }\n}\n\n/** Internal lazy loader for submenu children streams. */\nexport class MlvMenuChildrenDataSource<T = unknown> {\n /** @private Destroy hook used to tear down the child subscription. */\n private readonly _destroyRef = inject(DestroyRef);\n /** @private Latest emitted child items. */\n private readonly _items = signal<MlvMenuItemData<T>[]>([]);\n /** @private Loading state for the first child request. */\n private readonly _loading = signal(false);\n /** @private Guards the one-time lazy subscription. */\n private _loaded = false;\n private _destroyed = false;\n /** @private Active child-stream subscription, if loading has started. */\n private _subscription: Subscription | null = null;\n\n /** Latest child items emitted by the submenu stream. */\n readonly items = this._items.asReadonly();\n /** Whether the first child payload is still pending. */\n readonly loading = this._loading.asReadonly();\n\n constructor(private readonly _children?: MlvMenuItemData<T>['children']) {\n this._destroyRef.onDestroy(() => this._subscription?.unsubscribe());\n }\n\n /** Starts the lazy child subscription the first time a submenu is opened. */\n ensureLoaded(): void {\n if (this._destroyed || this._loaded || !this._children) return;\n\n this._loaded = true;\n this._loading.set(true);\n this._subscription = this._children.subscribe({\n next: (items) => {\n this._items.set(items);\n this._loading.set(false);\n },\n error: () => {\n this._items.set([]);\n this._loading.set(false);\n },\n });\n }\n\n /** Stops the child stream when its owning row changes source identity. */\n destroy(): void {\n if (this._destroyed) return;\n this._destroyed = true;\n this._subscription?.unsubscribe();\n this._subscription = null;\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n Injector,\n ViewContainerRef,\n ViewEncapsulation,\n afterRenderEffect,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n runInInjectionContext,\n Renderer2,\n signal,\n viewChild,\n} from '@angular/core';\nimport { MlvLoader } from '@malva-ui/core/loader';\nimport {\n MLV_MENU_ITEM_REGISTRY,\n type MlvMenuItemRegistry,\n} from './menu-item-registry';\nimport {\n MLV_MENUBAR_ITEM_REGISTRY,\n type MlvMenubarItemRegistry,\n} from './menubar-item-registry';\nimport { MlvMenu } from './menu';\nimport { MlvMenuChildrenDataSource } from './menu-data-source';\nimport type { MlvMenuItemData, MlvMenuItemDefContext } from './menu-data.types';\nimport type { MlvMenuItemDef } from './menu-item-def';\nimport { MlvMenuItem } from './menu-item';\nimport { MlvMenuOverlayController } from './menu-overlay-controller';\nimport { MENUBAR_TOKEN } from './menubar.types';\nimport type { MlvMenubarAccessor, MlvMenubarItem } from './menubar.types';\nimport { MLV_MENU_DATA_ITEM, MENU_TOKEN } from './menu.types';\nimport type { MlvMenuAccessor, MlvMenuDataItemContext } from './menu.types';\nimport { MlvListItem } from '@malva-ui/core/list';\n\n/** Internal generated row host for one data-driven menu item. */\n@Component({\n selector: 'mlv-menu-data-item',\n template: `\n <ng-container\n [ngTemplateOutlet]=\"itemDef()?.templateRef ?? _defaultItemDef\"\n [ngTemplateOutletContext]=\"context()\"\n [ngTemplateOutletInjector]=\"rowInjector()\"\n />\n\n @if (hasChildren()) {\n <mlv-menu #childMenu [label]=\"item().label\">\n @if (loading()) {\n <div class=\"mlv-menu-data-renderer__loader\">\n <mlv-loader variant=\"circle\" indeterminate />\n </div>\n } @else {\n <mlv-menu-data-renderer\n [items]=\"childItems()\"\n [itemDef]=\"itemDef()\"\n mode=\"menu\"\n [parentMenu]=\"childMenu\"\n [menubar]=\"menubar()\"\n />\n }\n </mlv-menu>\n }\n\n <ng-template #_defaultItemDef let-item>\n <mlv-list-item mlvMenuItem>{{ item.label }}</mlv-list-item>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgTemplateOutlet,\n MlvListItem,\n MlvLoader,\n forwardRef(() => MlvMenu),\n MlvMenuItem,\n forwardRef(() => MlvMenuDataRenderer),\n ],\n host: {\n class: 'mlv-menu-data-item',\n },\n})\nexport class MlvMenuDataItem<\n TItem extends MlvMenuItemData<unknown> = MlvMenuItemData<unknown>,\n> {\n private readonly _injector = inject(Injector);\n private readonly _viewContainerRef = inject(ViewContainerRef);\n private readonly _menuItemRegistry = inject<MlvMenuItemRegistry | null>(\n MLV_MENU_ITEM_REGISTRY,\n { optional: true },\n );\n private readonly _menubarItemRegistry = inject<MlvMenubarItemRegistry | null>(\n MLV_MENUBAR_ITEM_REGISTRY,\n { optional: true },\n );\n private readonly _hostElement = inject(ElementRef<HTMLElement>);\n private readonly _renderer = inject(Renderer2);\n private readonly _childMenu = viewChild<MlvMenu>(forwardRef(() => MlvMenu));\n private readonly _childrenSource =\n signal<MlvMenuChildrenDataSource<unknown> | null>(null);\n private _childrenIdentity: MlvMenuItemData<unknown>['children'] | undefined;\n private _registeredMenubarItem = false;\n\n /** Current row data. */\n readonly item = input.required<TItem>();\n\n /** Zero-based row index within the current level. */\n readonly index = input.required<number>();\n\n /** Optional projected row definition to stamp for this item. */\n readonly itemDef = input<MlvMenuItemDef<TItem> | undefined>(undefined);\n\n /** Menu/menubar rendering mode for this level. */\n readonly mode = input<'menu' | 'menubar'>('menu');\n\n /** Owning parent menu accessor. */\n readonly parentMenu = input<MlvMenuAccessor | null>(null);\n\n /** Root menubar accessor when relevant. */\n readonly menubar = input<MlvMenubarAccessor | null>(null);\n\n /** Menubar registry façade for a generated root data row. */\n private readonly _menubarItem: MlvMenubarItem = this._createMenubarItem();\n\n /** Typed template context for the stamped row. */\n protected readonly context = computed<MlvMenuItemDefContext<TItem>>(() => ({\n $implicit: this.item(),\n index: this.index(),\n hasChildren: this.hasChildren(),\n loading: this.loading(),\n }));\n\n /** Injector that reconnects generated rows to the menu contracts. */\n protected readonly rowInjector = computed(() =>\n Injector.create({\n providers: [\n {\n provide: MENU_TOKEN,\n useValue: this.parentMenu(),\n },\n {\n provide: MLV_MENU_ITEM_REGISTRY,\n useValue: this._menuItemRegistry,\n },\n {\n provide: MENUBAR_TOKEN,\n useValue: this.mode() === 'menubar' ? this.menubar() : null,\n },\n {\n provide: MLV_MENU_DATA_ITEM,\n useValue: this._dataItemContext,\n },\n ],\n parent: this._injector,\n }),\n );\n\n /**\n * @private Overlay origin for the generated submenu.\n *\n * Must be a real `ElementRef` instance: CDK's\n * `FlexibleConnectedPositionStrategy` only measures the DOM node when the\n * origin passes `instanceof ElementRef` (or `instanceof Element`), and reads\n * anything else as an `{x, y}` point — which anchors the submenu to the\n * viewport origin instead of its row. The `nativeElement` accessor stays\n * lazy because the row is stamped by `ngTemplateOutlet` after construction.\n */\n private readonly _originElement = Object.defineProperty(\n new ElementRef<HTMLElement>(this._hostElement.nativeElement),\n 'nativeElement',\n {\n configurable: true,\n get: () =>\n this._getRenderedRowElement() ?? this._hostElement.nativeElement,\n },\n );\n\n private readonly _parentMenuProxy: MlvMenuAccessor = {\n close: () => this.parentMenu()?.close(),\n closeAll: () => this.parentMenu()?.closeAll(),\n };\n\n private readonly _menubarProxy: MlvMenubarAccessor =\n this._createMenubarProxy();\n\n private readonly _overlayController = new MlvMenuOverlayController({\n getMenu: () => {\n const menu = this._childMenu();\n if (!menu) {\n throw new Error('Generated submenu menu is not available.');\n }\n return menu;\n },\n origin: this._originElement,\n vcr: this._viewContainerRef,\n parentMenu: this._parentMenuProxy,\n menubar: null,\n isSubmenu: () => this.hasChildren(),\n isMenubarChild: false,\n isDisabled: () => !!this.item().disabled,\n getMenubarItem: () => {\n throw new Error('Generated data rows are not menubar triggers.');\n },\n });\n\n private readonly _menubarOverlayController = new MlvMenuOverlayController({\n getMenu: () => {\n const menu = this._childMenu();\n if (!menu) {\n throw new Error('Generated submenu menu is not available.');\n }\n return menu;\n },\n origin: this._originElement,\n vcr: this._viewContainerRef,\n parentMenu: null,\n menubar: this._menubarProxy,\n isSubmenu: () => false,\n isMenubarChild: true,\n isDisabled: () => !!this.item().disabled,\n getMenubarItem: () => this._menubarItem,\n });\n\n private readonly _dataItemContext: MlvMenuDataItemContext = {\n hasChildren: () => this.hasChildren(),\n loading: () => this.loading(),\n isOpen: () => this._activeOverlayController().isOpen(),\n panelId: () => this._childMenu()?.panelId ?? null,\n isDisabled: () => !!this.item().disabled,\n open: () => {\n this._ensureLoaded();\n this._activeOverlayController().open();\n },\n close: () => this._activeOverlayController().close(),\n toggle: () => {\n this._ensureLoaded();\n this._activeOverlayController().toggle();\n },\n openWithFirstItemFocused: () => {\n this._ensureLoaded();\n this._activeOverlayController().openWithFirstItemFocused();\n },\n openWithLastItemFocused: () => {\n this._ensureLoaded();\n this._activeOverlayController().openWithLastItemFocused();\n },\n onMouseEnter: () => {\n this._ensureLoaded();\n this._activeOverlayController().onMouseEnter();\n },\n onMouseLeave: (event: MouseEvent) =>\n this._activeOverlayController().onMouseLeave(event),\n };\n\n constructor() {\n const source = this._childrenSource;\n const injector = this._injector;\n\n effect(() => {\n const isMenubarItem =\n this.mode() === 'menubar' && this.menubar() !== null;\n if (\n isMenubarItem &&\n this._menubarItemRegistry &&\n !this._registeredMenubarItem\n ) {\n this._menubarItemRegistry.register(this._menubarItem);\n this._registeredMenubarItem = true;\n } else if (!isMenubarItem && this._registeredMenubarItem) {\n this._menubarItemRegistry?.unregister(this._menubarItem);\n this._registeredMenubarItem = false;\n }\n });\n\n afterRenderEffect(() => {\n const tabIndex = this._menubarItem._tabIndex();\n if (this.mode() !== 'menubar') return;\n const row = this._getRenderedRowElement();\n if (row) this._renderer.setAttribute(row, 'tabindex', String(tabIndex));\n });\n\n inject(DestroyRef).onDestroy(() => {\n if (this._registeredMenubarItem) {\n this._menubarItemRegistry?.unregister(this._menubarItem);\n }\n });\n\n effect(() => {\n const children = this.item().children;\n if (children === this._childrenIdentity) return;\n\n this._childrenSource()?.destroy();\n this._childrenIdentity = children;\n\n const nextSource = children\n ? runInInjectionContext(\n injector,\n () => new MlvMenuChildrenDataSource(children),\n )\n : null;\n source.set(nextSource);\n\n if (nextSource && this._activeOverlayController().isOpen()) {\n nextSource.ensureLoaded();\n }\n });\n }\n\n /** Whether this row currently advertises a generated submenu. */\n protected readonly hasChildren = computed(() => !!this.item().children);\n\n /** Whether the submenu is still waiting for its first child emission. */\n protected readonly loading = computed(\n () => this._childrenSource()?.loading() ?? false,\n );\n\n /** Current child collection for the generated submenu. */\n protected readonly childItems = computed(\n () => this._childrenSource()?.items() ?? [],\n );\n\n private _ensureLoaded(): void {\n this._childrenSource()?.ensureLoaded();\n }\n\n private _getRenderedRowElement(): HTMLElement | null {\n return this._hostElement.nativeElement.querySelector('mlv-list-item');\n }\n\n private _activeOverlayController(): MlvMenuOverlayController {\n return this.mode() === 'menubar'\n ? this._menubarOverlayController\n : this._overlayController;\n }\n\n private _createMenubarItem(): MlvMenubarItem {\n const item = {\n _elementRef: this._hostElement,\n _tabIndex: signal(-1),\n focus: () =>\n this._getRenderedRowElement()?.focus() ??\n this._hostElement.nativeElement.focus(),\n getLabel: () =>\n this._getRenderedRowElement()?.textContent?.trim() ?? this.item().label,\n isMenuOpen: () => this._menubarOverlayController.isOpen(),\n openMenu: () => {\n if (this.hasChildren()) this._menubarOverlayController.open();\n },\n closeMenu: () => this._menubarOverlayController.close(),\n openMenuWithFirstItemFocused: () => {\n if (this.hasChildren())\n this._menubarOverlayController.openWithFirstItemFocused();\n },\n openMenuWithLastItemFocused: () => {\n if (this.hasChildren())\n this._menubarOverlayController.openWithLastItemFocused();\n },\n } as MlvMenubarItem;\n Object.defineProperty(item, 'disabledBoolean', {\n get: () => !!this.item().disabled,\n });\n return item;\n }\n\n private _createMenubarProxy(): MlvMenubarAccessor {\n const proxy = {\n notifyItemOpened: (item) => this.menubar()?.notifyItemOpened(item),\n notifyItemClosed: (item) => this.menubar()?.notifyItemClosed(item),\n onItemPointerEnter: (item) => this.menubar()?.onItemPointerEnter(item),\n hasOpenMenu: () => this.menubar()?.hasOpenMenu() ?? false,\n openAdjacentItemMenu: (from, dir) =>\n this.menubar()?.openAdjacentItemMenu(from, dir),\n } as MlvMenubarAccessor;\n Object.defineProperty(proxy, 'hostElement', {\n get: () => this.menubar()?.hostElement ?? this._hostElement.nativeElement,\n });\n return proxy;\n }\n}\n\nimport { MlvMenuDataRenderer } from './menu-data-renderer';\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\nimport type { MlvMenuItemData } from './menu-data.types';\nimport type { MlvMenubarDividerData } from './menu-data.types';\nimport { MlvMenuDataItem } from './menu-data-item';\nimport type { MlvMenuItemDef } from './menu-item-def';\nimport { MENUBAR_TOKEN } from './menubar.types';\nimport type { MlvMenubarAccessor } from './menubar.types';\nimport { MENU_TOKEN } from './menu.types';\nimport type { MlvMenuAccessor } from './menu.types';\n\n/** Internal recursive renderer for data-driven menu rows. */\n@Component({\n selector: 'mlv-menu-data-renderer',\n template: `\n @for (item of items(); track item.id) {\n @if (mode() === 'menubar' && isDivider(item)) {\n <span\n class=\"mlv-menubar__divider\"\n role=\"separator\"\n aria-orientation=\"vertical\"\n ></span>\n } @else {\n <mlv-menu-data-item\n [item]=\"asItem(item)\"\n [index]=\"$index\"\n [itemDef]=\"itemDef()\"\n [mode]=\"mode()\"\n [parentMenu]=\"mode() === 'menu' ? _resolvedParentMenu() : null\"\n [menubar]=\"_resolvedMenubar()\"\n />\n }\n }\n `,\n styleUrl: './menu-data-renderer.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MlvMenuDataItem],\n host: {\n class: 'mlv-menu-data-renderer',\n },\n})\nexport class MlvMenuDataRenderer<\n TItem extends MlvMenuItemData<unknown> = MlvMenuItemData<unknown>,\n> {\n private readonly _injectedParentMenu = inject<MlvMenuAccessor | null>(\n MENU_TOKEN,\n { optional: true },\n );\n private readonly _injectedMenubar = inject<MlvMenubarAccessor | null>(\n MENUBAR_TOKEN,\n { optional: true },\n );\n\n /** Current collection to render at this menu level. */\n readonly items = input.required<readonly (TItem | MlvMenubarDividerData)[]>();\n\n /** Optional projected row template for each item. */\n readonly itemDef = input<MlvMenuItemDef<TItem> | undefined>(undefined);\n\n /** Whether this renderer is inside a menu or a root menubar. */\n readonly mode = input<'menu' | 'menubar'>('menu');\n\n /** Parent menu accessor for generated rows at this level. */\n readonly parentMenu = input<MlvMenuAccessor | null>(null);\n\n /** Parent menu input, falling back to the nearest menu provider. */\n protected readonly _resolvedParentMenu = computed(\n () => this.parentMenu() ?? this._injectedParentMenu,\n );\n\n /** Menubar accessor, falling back to the nearest menubar provider. */\n protected readonly _resolvedMenubar = computed(\n () => this.menubar() ?? this._injectedMenubar,\n );\n\n /** Root menubar accessor when rows need top-level menubar context. */\n readonly menubar = input<MlvMenubarAccessor | null>(null);\n\n /** Whether an entry is a root-level menubar divider. */\n protected isDivider(\n item: TItem | MlvMenubarDividerData,\n ): item is MlvMenubarDividerData {\n return 'kind' in item && item.kind === 'divider';\n }\n\n /** Narrows a mixed menubar entry to a renderable menu item. */\n protected asItem(item: TItem | MlvMenubarDividerData): TItem {\n return item as TItem;\n }\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\nimport type { MlvMenuItemData, MlvMenuItemDefContext } from './menu-data.types';\n\n/** Marks a custom template for rendering reactive menu items. */\n@Directive({\n selector: '[mlvMenuItemDef]',\n})\nexport class MlvMenuItemDef<\n T extends MlvMenuItemData<unknown> = MlvMenuItemData<unknown>,\n> {\n /** The template reference used for each rendered menu row. */\n readonly templateRef = inject(TemplateRef<MlvMenuItemDefContext<T>>);\n\n /** Type guard so `let-` variables infer from `MlvMenuItemDefContext<T>`. */\n static ngTemplateContextGuard<T extends MlvMenuItemData<unknown>>(\n _directive: MlvMenuItemDef<T>,\n _context: unknown,\n ): _context is MlvMenuItemDefContext<T> {\n return true;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n ViewEncapsulation,\n afterRenderEffect,\n computed,\n contentChild,\n contentChildren,\n effect,\n forwardRef,\n inject,\n input,\n output,\n signal,\n untracked,\n viewChild,\n} from '@angular/core';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\nimport type { Subscription } from 'rxjs';\nimport { MlvPopup, MlvPopupContent } from '@malva-ui/core/popup';\nimport { MlvList } from '@malva-ui/core/list';\nimport { MlvLoader } from '@malva-ui/core/loader';\nimport { MlvRtlService, mlvNextId } from '@malva-ui/cdk/utils';\nimport type { MlvDensity } from '@malva-ui/cdk/density';\nimport { MlvMenuItem } from './menu-item';\nimport { MlvMenuDataRenderer } from './menu-data-renderer';\nimport { MlvMenuDataSourceAdapter } from './menu-data-source';\nimport type { MlvMenuDataSource, MlvMenuItemData } from './menu-data.types';\nimport { MlvMenuItemDef } from './menu-item-def';\nimport {\n MLV_MENU_ITEM_REGISTRY,\n MlvMenuItemRegistryStore,\n type MenuKeyItem,\n} from './menu-item-registry';\nimport { MENU_TOKEN } from './menu.types';\nimport type { MlvMenuAccessor } from './menu.types';\nimport type { MlvMenubarMenuController } from './menubar.types';\n\n/**\n * Whether two item snapshots hold the same members in the same order.\n * Used to skip key-manager rebuilds when a change-detection pass re-runs the\n * content query without actually changing the projected items.\n * @private\n */\ninterface MlvMenuItemSnapshot {\n readonly item: MenuKeyItem;\n readonly disabled: boolean;\n}\n\nfunction mlvSameMenuItems(\n a: readonly MlvMenuItemSnapshot[],\n b: readonly MenuKeyItem[],\n): boolean {\n return (\n a.length === b.length &&\n a.every(\n (item, index) =>\n item.item === b[index] && item.disabled === b[index].disabledBoolean,\n )\n );\n}\n\n/**\n * The first item at or after `start` that is not disabled, falling back to the\n * closest enabled item before `start`. Returns `null` when every item is\n * disabled (or the list is empty).\n * @private\n */\nfunction mlvNearestEnabledItem(\n items: readonly MenuKeyItem[],\n start: number,\n): MenuKeyItem | null {\n for (let index = Math.max(start, 0); index < items.length; index++) {\n if (!items[index].disabledBoolean) return items[index];\n }\n for (let index = Math.min(start, items.length) - 1; index >= 0; index--) {\n if (!items[index].disabledBoolean) return items[index];\n }\n return null;\n}\n\n/**\n * Dropdown menu panel (`mlv-menu`).\n *\n * Renders a `role=\"menu\"` panel containing `mlv-menu-item`, `mlv-menu-separator`,\n * and `mlv-menu-group` children. Manages keyboard navigation (ArrowUp, ArrowDown,\n * Home, End, Escape) via `FocusKeyManager`.\n *\n * The menu uses `mlv-popup` for visual chrome (background, border, radius, shadow,\n * animations). The panel is rendered inside the popup's content template via\n * `[mlvPopupContent]`, so no DOM manipulation is required.\n *\n * @example\n * ```html\n * <button [mlvMenuTrigger]=\"myMenu\">Open</button>\n * <mlv-menu #myMenu>\n * <mlv-menu-item (itemClick)=\"onEdit()\">Edit</mlv-menu-item>\n * <mlv-menu-separator />\n * <mlv-menu-item (itemClick)=\"onDelete()\">Delete</mlv-menu-item>\n * </mlv-menu>\n * ```\n */\n@Component({\n selector: 'mlv-menu',\n template: `\n <mlv-popup\n #_popup\n [position]=\"['bottom-start', 'top-start', 'bottom-end', 'top-end']\"\n [hasShadow]=\"true\"\n [restrictPosition]=\"false\"\n [mlvDensity]=\"mlvDensity()\"\n [class]=\"'mlv-menu__popup'\"\n >\n <ng-template mlvPopupContent>\n <mlv-list\n listRole=\"menu\"\n appearance=\"menu\"\n class=\"mlv-menu__panel\"\n tabindex=\"-1\"\n [id]=\"panelId\"\n [attr.aria-label]=\"label() || null\"\n (keydown)=\"_onKeydown($event)\"\n (focusin)=\"_onFocusIn($event)\"\n >\n @if (_dataMode()) {\n @if (_dataSourceLoading()) {\n <div class=\"mlv-menu__loader\">\n <mlv-loader variant=\"circle\" indeterminate [size]=\"20\" />\n </div>\n } @else {\n <mlv-menu-data-renderer\n [items]=\"_dataSourceItems()\"\n [itemDef]=\"_itemDef()\"\n mode=\"menu\"\n />\n }\n } @else {\n <ng-content />\n }\n </mlv-list>\n </ng-template>\n </mlv-popup>\n `,\n styleUrl: './menu.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MlvPopup,\n MlvPopupContent,\n MlvList,\n MlvLoader,\n forwardRef(() => MlvMenuDataRenderer),\n ],\n host: {\n class: 'mlv-menu',\n '[class.mlv-menu--open]': '_isOpen()',\n },\n providers: [\n {\n provide: MENU_TOKEN,\n useExisting: MlvMenu,\n },\n {\n provide: MLV_MENU_ITEM_REGISTRY,\n useFactory: () => new MlvMenuItemRegistryStore(),\n },\n ],\n})\nexport class MlvMenu<\n TItem extends MlvMenuItemData<unknown> = MlvMenuItemData<unknown>,\n> implements MlvMenuAccessor\n{\n // ─── Injected services ────────────────────────────────────────────────────\n\n /**\n * @private Element reference for the host element.\n */\n readonly _elementRef = inject(ElementRef<HTMLElement>);\n private readonly _itemRegistry = inject(MLV_MENU_ITEM_REGISTRY);\n private readonly _dataSourceAdapter = new MlvMenuDataSourceAdapter<TItem>();\n\n // ─── View children ────────────────────────────────────────────────────────\n\n /**\n * @private The popup component managing the overlay chrome (background, border, shadow, animations).\n * Accessed by `MlvMenuTrigger` to open the overlay and manage animation state.\n * The menu panel (`mlv-list`) is declared inside this popup's `[mlvPopupContent]` template.\n */\n readonly _popup = viewChild.required<MlvPopup>('_popup');\n\n // ─── Content children ────────────────────────────────────────────────────\n\n private readonly _projectedItems = contentChildren(MlvMenuItem);\n\n /** @protected The projected row definition used by data-driven rendering. */\n protected readonly _itemDef = contentChild(MlvMenuItemDef<TItem>);\n\n /** @protected All registered menu items, in render order. */\n protected readonly _items = this._itemRegistry.items;\n\n /** @protected Items currently rendered in this menu panel. */\n protected readonly _navigationItems = computed(() => {\n const items = this._items() as readonly MenuKeyItem[];\n items.forEach((item) => void item.disabledBoolean);\n if (!this._dataMode()) return items;\n\n return items.filter((item) =>\n item._elementRef?.nativeElement.closest('[role=\"menu\"]'),\n );\n });\n\n // ─── Inputs ───────────────────────────────────────────────────────────────\n\n /**\n * Accessible label for the menu panel (`aria-label`).\n * Use when there is no visible heading that labels the menu.\n */\n readonly label = input<string>('');\n\n /**\n * Density applied to the menu panel's item rows.\n *\n * The panel is portaled to the CDK overlay container, outside the trigger's\n * DOM tree, so ancestor density classes cannot cascade into it. Forwarded to\n * the underlying `mlv-popup`, which stamps the resolved `mlv--{density}`\n * class on the detached panel. When omitted, the global `MlvDensityService`\n * density applies. Submenus are separate `mlv-menu` instances — set the\n * input on each when overriding the density of a nested menu tree.\n */\n readonly mlvDensity = input<MlvDensity | undefined>(undefined);\n\n /**\n * Optional data source for this menu. Arrays render immediately; an\n * `MlvDataSource` supplies the current collection and loading state.\n */\n readonly dataSource = input<MlvMenuDataSource<TItem> | undefined>(undefined);\n\n // ─── Public identifiers ────────────────────────────────────────────────────\n\n /**\n * Stable DOM id of the menu panel (`role=\"menu\"` list). Consumed by\n * `MlvMenuTrigger` to wire `aria-controls` from the trigger to the panel.\n */\n readonly panelId = mlvNextId('mlv-menu-panel');\n\n // ─── Outputs ──────────────────────────────────────────────────────────────\n\n /**\n * Emits when the menu requests to be closed (e.g., Escape key, Tab key,\n * or after a menu item is activated).\n */\n readonly closed = output<void>();\n\n // ─── Internal state ───────────────────────────────────────────────────────\n\n /**\n * @private Whether the panel is currently open. Set by `MlvMenuTrigger`.\n */\n readonly _isOpen = signal(false);\n\n /** @protected Whether this menu is using data-driven rather than projected content. */\n protected readonly _dataMode = computed(\n () => this.dataSource() !== undefined,\n );\n\n /** @protected Current data-driven items normalized from the active source. */\n protected readonly _dataSourceItems = this._dataSourceAdapter.items;\n\n /** @protected Current loading state normalized from the active source. */\n protected readonly _dataSourceLoading = this._dataSourceAdapter.loading;\n\n /**\n * @private Parent menu that opened this menu as a submenu.\n */\n private _parentMenu: MlvMenuAccessor | null = null;\n\n /**\n * @private Controller supplied by the opening `MlvMenuTrigger` when this\n * menu is a top-level menubar dropdown. Enables ArrowRight / ArrowLeft at the\n * top level of the panel to cross to the adjacent menubar menu. `null` for\n * standalone menus and submenus.\n */\n private _menubarController: MlvMenubarMenuController | null = null;\n\n /** @private Normalizes horizontal menu navigation for RTL layouts. */\n private readonly _rtlService = inject(MlvRtlService);\n\n /**\n * @private `FocusKeyManager` managing the menu items.\n * Initialized lazily when items are first available.\n */\n private _keyManager: FocusKeyManager<MenuKeyItem> | null = null;\n\n /**\n * @private Subscription to the key manager's `change` stream, used to keep the\n * roving tabindex in sync when type-ahead moves the active item asynchronously.\n */\n private _changeSub: Subscription | null = null;\n\n /**\n * @private Snapshot of the items the current `_keyManager` was built from.\n * Compared member-by-member so a change-detection pass that re-runs the content\n * query without changing the projected items does not rebuild the manager —\n * a rebuild resets `activeItemIndex` and would wipe the roving tabindex.\n */\n private _managedItems: readonly MlvMenuItemSnapshot[] | null = null;\n\n /** @private The last menu item that received focus, retained across row removal. */\n private _focusedItem: MenuKeyItem | null = null;\n\n constructor() {\n effect(() => {\n const source = this.dataSource();\n untracked(() => this._dataSourceAdapter.setSource(source ?? []));\n });\n\n afterRenderEffect(() => this._itemRegistry.resync());\n afterRenderEffect(() => {\n if (!this._dataMode()) return;\n this._dataSourceItems();\n untracked(() => this._syncKeyManager(this._navigationItems()));\n });\n effect(() => {\n const projectedItems =\n this._projectedItems() as unknown as readonly MenuKeyItem[];\n untracked(() => this._itemRegistry.syncOrder(projectedItems));\n });\n\n // Rebuild the key manager only when the projected item set actually changes.\n //\n // The work runs `untracked` on purpose. `_syncTabIndices()` reads\n // `FocusKeyManager.activeItem`, which CDK backs with a signal; reading it in\n // the effect's reactive context made the effect depend on the active item, so\n // *every* arrow keypress re-ran the effect, replaced the manager and reset\n // `activeItemIndex` to -1 — no item ever kept `tabindex=\"0\"` and ArrowDown /\n // ArrowUp always snapped back to the first / last item. `_navigationItems()`\n // must stay the effect's only dependency.\n effect(() => {\n const items = this._navigationItems();\n if (this._dataMode()) this._dataSourceItems();\n untracked(() => this._syncKeyManager(items));\n });\n\n inject(DestroyRef).onDestroy(() => this._teardownKeyManager());\n }\n\n // ─── Public API ───────────────────────────────────────────────────────────\n\n /**\n * Focuses the first non-disabled item in the menu.\n * Called by `MlvMenuTrigger` when the menu opens via keyboard ArrowDown or Enter.\n */\n focusFirstItem(): void {\n this._keyManager?.setFirstItemActive();\n this._syncTabIndices();\n }\n\n /**\n * Focuses the last non-disabled item in the menu.\n * Called by `MlvMenuTrigger` when the menu opens via keyboard ArrowUp.\n */\n focusLastItem(): void {\n this._keyManager?.setLastItemActive();\n this._syncTabIndices();\n }\n\n // ─── MlvMenuAccessor ─────────────────────────────────────────────────────────\n\n /**\n * Closes the menu panel by emitting the `closed` output.\n * Called by `MlvMenuItem` after item activation and by the keyboard handler.\n */\n close(): void {\n this._isOpen.set(false);\n this.closed.emit();\n }\n\n /**\n * Closes this menu panel and any ancestor menu panels.\n * Called by submenu items so selecting a nested action dismisses the full menu stack.\n */\n closeAll(): void {\n this.close();\n this._parentMenu?.closeAll();\n }\n\n /**\n * Registers the parent menu that owns this menu when it is opened as a submenu.\n * Called by `MlvMenuTrigger` while opening submenu overlays.\n */\n registerParentMenu(parentMenu: MlvMenuAccessor | null): void {\n this._parentMenu = parentMenu;\n }\n\n /**\n * Registers (or clears) the menubar controller when this menu is opened as a\n * top-level menubar dropdown. Called by `MlvMenuTrigger` while opening.\n */\n registerMenubarController(controller: MlvMenubarMenuController | null): void {\n this._menubarController = controller;\n }\n\n // ─── Protected handlers ──────────────────────────────────────────────────\n\n /**\n * @protected Routes keydown events to `FocusKeyManager` and handles Escape / Tab.\n */\n protected _onKeydown(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n event.preventDefault();\n this.close();\n return;\n }\n\n if (event.key === 'Tab') {\n // Close the menu and let the trigger restore focus (see MlvMenuTrigger).\n event.preventDefault();\n event.stopPropagation();\n this.close();\n return;\n }\n\n const key = this._rtlService.normalizeArrowKey(event);\n\n // Top-level menubar dropdown: ArrowRight / ArrowLeft cross to the adjacent\n // menubar menu. A focused submenu-trigger item handles ArrowRight itself\n // (and stops propagation), so the submenu opens instead — submenu wins.\n if (this._menubarController) {\n if (key === RIGHT_ARROW) {\n event.preventDefault();\n event.stopPropagation();\n this._menubarController.openNextItemMenu();\n return;\n }\n if (key === LEFT_ARROW && !this._parentMenu) {\n event.preventDefault();\n event.stopPropagation();\n this._menubarController.openPreviousItemMenu();\n return;\n }\n }\n\n // ArrowLeft inside a submenu closes it and returns focus to the parent\n // trigger item (handled by the submenu trigger's close-focus restore).\n if (key === LEFT_ARROW && this._parentMenu) {\n event.preventDefault();\n event.stopPropagation();\n this.close();\n return;\n }\n\n this._keyManager?.onKeydown(event);\n this._syncTabIndices();\n }\n\n /** @protected Remembers item focus before a live data update can remove its row. */\n protected _onFocusIn(event: FocusEvent): void {\n const target = event.target;\n this._focusedItem =\n this._navigationItems().find(\n (item) => item._elementRef?.nativeElement === target,\n ) ?? null;\n }\n\n // ─── Private helpers ──────────────────────────────────────────────────────\n\n /**\n * @private Reconciles the `FocusKeyManager` with the projected items.\n *\n * No-ops when the item set is unchanged — rebuilding a manager throws away its\n * `activeItemIndex`, which is what previously broke arrow navigation. When the\n * set really did change the manager is replaced and the active item carried\n * over, so the roving tabindex survives adding or removing an item.\n */\n private _syncKeyManager(items: readonly MenuKeyItem[]): void {\n if (this._managedItems && mlvSameMenuItems(this._managedItems, items)) {\n return;\n }\n\n const previousItem = this._keyManager?.activeItem ?? null;\n const previousIndex = this._keyManager?.activeItemIndex ?? -1;\n\n // Snapshot so later in-place mutation of the query result cannot make the\n // comparison above lie, and so the manager holds a stable item array.\n const snapshot = Array.from(items);\n this._managedItems = snapshot.map((item) => ({\n item,\n disabled: item.disabledBoolean,\n }));\n this._teardownKeyManager();\n\n if (snapshot.length > 0) {\n this._initKeyManager(snapshot);\n this._restoreActiveItem(snapshot, previousItem, previousIndex);\n }\n\n this._syncTabIndices();\n }\n\n /**\n * @private Creates the `FocusKeyManager` for `items`.\n * Skips items whose `disabled` property is `true`.\n *\n * `withTypeAhead()` enables type-to-focus (press a letter to jump to the\n * first matching item by its `getLabel()`). Type-ahead matching is debounced\n * and can move the active item outside of `_onKeydown`, so the manager's\n * `change` stream is used to keep the roving tabindex in sync.\n */\n private _initKeyManager(items: readonly MenuKeyItem[]): void {\n this._keyManager = new FocusKeyManager(items)\n .withVerticalOrientation()\n .withWrap()\n .withHomeAndEnd()\n .withTypeAhead()\n .skipPredicate((item) => item.disabledBoolean);\n this._changeSub = this._keyManager.change.subscribe(() =>\n this._syncTabIndices(),\n );\n }\n\n /**\n * @private Disposes the current key manager and its `change` subscription.\n */\n private _teardownKeyManager(): void {\n this._changeSub?.unsubscribe();\n this._changeSub = null;\n this._keyManager?.destroy();\n this._keyManager = null;\n }\n\n /**\n * @private Carries the active item of the previous key manager over to a freshly\n * built one, using `updateActiveItem()` so the roving tabindex is restored\n * without stealing DOM focus. When the previously active item was removed (or\n * became disabled) the nearest enabled item to its old position takes over.\n * Does nothing when no item was active yet.\n */\n private _restoreActiveItem(\n items: readonly MenuKeyItem[],\n previousItem: MenuKeyItem | null,\n previousIndex: number,\n ): void {\n const keyManager = this._keyManager;\n if (!keyManager || previousIndex < 0) return;\n const shouldRestoreFocus = this._focusedItem === previousItem;\n\n if (\n previousItem &&\n !previousItem.disabledBoolean &&\n items.indexOf(previousItem) > -1\n ) {\n keyManager.updateActiveItem(previousItem);\n return;\n }\n\n const fallback = mlvNearestEnabledItem(items, previousIndex);\n if (fallback) keyManager.updateActiveItem(fallback);\n\n if (fallback && shouldRestoreFocus && this._isOpen()) {\n this._focusedItem = fallback;\n fallback.focus();\n }\n }\n\n /**\n * @private Updates `_tabIndex` on every item so that exactly one item has\n * `tabindex=\"0\"` (roving tabindex pattern) and all others have `-1`.\n *\n * That is the active item once keyboard navigation has started. Before then —\n * a pointer-opened panel puts focus on the `role=\"menu\"` list itself — the first\n * enabled item is the tab stop, so the open menu is never entirely untabbable.\n */\n private _syncTabIndices(): void {\n const items = this._navigationItems();\n const activeItem = (this._keyManager?.activeItem ??\n null) as MenuKeyItem | null;\n const tabbableItem = activeItem ?? mlvNearestEnabledItem(items, 0);\n items.forEach((item) => item._tabIndex.set(item === tabbableItem ? 0 : -1));\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n/**\n * A visual separator between groups of menu items in a `mlv-menu`.\n *\n * Renders as a horizontal rule (`<hr role=\"separator\">`) styled to match\n * `mlv-divider` visual design.\n *\n * @example\n * ```html\n * <mlv-menu-item (itemClick)=\"onEdit()\">Edit</mlv-menu-item>\n * <mlv-menu-separator />\n * <mlv-menu-item (itemClick)=\"onDelete()\">Delete</mlv-menu-item>\n * ```\n */\n@Component({\n selector: 'mlv-menu-separator',\n template: `<hr\n class=\"mlv-menu-separator__line\"\n role=\"separator\"\n aria-orientation=\"horizontal\"\n />`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'mlv-menu-separator',\n role: 'presentation',\n },\n})\nexport class MlvMenuSeparator {}\n","import { Directive } from '@angular/core';\nimport { mlvNextId } from '@malva-ui/cdk/utils';\n\n/**\n * Marks an element as the label for a `mlv-menu-group`.\n * The group applies `aria-labelledby` pointing to this element's generated id.\n *\n * @example\n * ```html\n * <mlv-menu-group>\n * <span mlvMenuGroupLabel>File actions</span>\n * <mlv-menu-item>Open</mlv-menu-item>\n * </mlv-menu-group>\n * ```\n */\n@Directive({\n selector: '[mlvMenuGroupLabel]',\n host: {\n class: 'mlv-menu-group__label',\n '[id]': 'id',\n },\n})\nexport class MlvMenuGroupLabel {\n /**\n * Stable DOM id applied to the label element so the parent\n * `mlv-menu-group` can reference it via `aria-labelledby`.\n */\n readonly id = mlvNextId('mlv-menu-group-label');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n contentChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MlvMenuGroupLabel } from './menu-group-label';\n\n/**\n * Groups related menu items with an optional label inside a `mlv-menu`.\n *\n * Use `[mlvMenuGroupLabel]` on a child element to provide an accessible label\n * for the group. When present, the group's `role=\"group\"` is named via\n * `aria-labelledby` pointing at the label element.\n *\n * @example\n * ```html\n * <mlv-menu-group>\n * <span mlvMenuGroupLabel>File</span>\n * <mlv-menu-item (itemClick)=\"onNew()\">New</mlv-menu-item>\n * <mlv-menu-item (itemClick)=\"onOpen()\">Open</mlv-menu-item>\n * </mlv-menu-group>\n * ```\n */\n@Component({\n selector: 'mlv-menu-group',\n template: `<ng-content />`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'mlv-menu-group',\n role: 'group',\n '[attr.aria-labelledby]': '_label()?.id ?? null',\n },\n})\nexport class MlvMenuGroup {\n /**\n * @protected Projected `[mlvMenuGroupLabel]` element, if any. Its generated\n * id names this group via `aria-labelledby`.\n */\n protected readonly _label = contentChild(MlvMenuGroupLabel);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n HostAttributeToken,\n ViewEncapsulation,\n afterRenderEffect,\n computed,\n contentChild,\n contentChildren,\n effect,\n forwardRef,\n inject,\n input,\n untracked,\n} from '@angular/core';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { DOWN_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport type { Subscription } from 'rxjs';\nimport { MlvRtlService } from '@malva-ui/cdk/utils';\nimport { MlvLoader } from '@malva-ui/core/loader';\nimport { MlvMenuTrigger } from './menu-trigger';\nimport { MlvMenuDataRenderer } from './menu-data-renderer';\nimport { MlvMenuDataSourceAdapter } from './menu-data-source';\nimport { MlvMenuItemDef } from './menu-item-def';\nimport type { MlvMenuItemData, MlvMenubarEntry } from './menu-data.types';\nimport type { MlvMenubarDataSource } from './menubar.types';\nimport {\n MLV_MENUBAR_ITEM_REGISTRY,\n MlvMenubarItemRegistryStore,\n} from './menubar-item-registry';\nimport { MENUBAR_TOKEN } from './menubar.types';\nimport type { MlvMenubarAccessor, MlvMenubarItem } from './menubar.types';\n\n/**\n * Horizontal application menu bar (`mlv-menubar`) — a File / Edit / View style\n * row of top-level menu triggers, implementing the\n * [WAI-ARIA Menubar pattern](https://www.w3.org/WAI/ARIA/apg/patterns/menubar/).\n *\n * Wrap a set of `[mlvMenuTrigger]` elements. Each trigger opens a standard\n * `mlv-menu` dropdown; the bar coordinates them:\n *\n * - `role=\"menubar\"` container with a **roving tabindex** across the top-level\n * items (only the active item is in the tab order).\n * - `ArrowLeft` / `ArrowRight` move between top-level items (wrapping); `Home` /\n * `End` jump to the first / last; printable characters type-ahead by label.\n * - `ArrowDown` / `Enter` / `Space` open the focused item's menu with focus on\n * its first item; `ArrowUp` opens with focus on the last item (handled by the\n * trigger).\n * - While any dropdown is open, hovering or arrowing to another top-level item\n * closes the current menu and opens the sibling (hover-follow only-while-open).\n * - `ArrowRight` / `ArrowLeft` at the top level of an open dropdown cross to the\n * adjacent menubar menu; a focused submenu trigger's own `ArrowRight` wins.\n * - `Escape` closes the menu and restores focus to its top-level item.\n *\n * Declare the `mlv-menu` panels **as siblings of the menubar** (outside its\n * content), so the bar's `contentChildren` query only picks up the top-level\n * triggers — see the example below.\n *\n * @example\n * ```html\n * <mlv-menubar aria-label=\"Main\">\n * <button mlvButton variant=\"transparent\" [mlvMenuTrigger]=\"fileMenu\">File</button>\n * <button mlvButton variant=\"transparent\" [mlvMenuTrigger]=\"editMenu\">Edit</button>\n * </mlv-menubar>\n *\n * <mlv-menu #fileMenu label=\"File\">\n * <mlv-list-item mlvMenuItem (itemClick)=\"onNew()\">New</mlv-list-item>\n * </mlv-menu>\n * <mlv-menu #editMenu label=\"Edit\">\n * <mlv-list-item mlvMenuItem (itemClick)=\"onUndo()\">Undo</mlv-list-item>\n * </mlv-menu>\n * ```\n */\n@Component({\n selector: 'mlv-menubar',\n template: `\n @if (_dataMode()) {\n @if (_dataSourceLoading()) {\n <mlv-loader variant=\"circle\" indeterminate [size]=\"20\" />\n } @else {\n <mlv-menu-data-renderer\n [items]=\"_dataSourceItems()\"\n [itemDef]=\"_itemDef()\"\n mode=\"menubar\"\n />\n }\n } @else {\n <ng-content />\n }\n `,\n styleUrl: './menubar.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MlvLoader, forwardRef(() => MlvMenuDataRenderer)],\n host: {\n class: 'mlv-menubar',\n role: 'menubar',\n '[attr.aria-orientation]': '\"horizontal\"',\n '[attr.aria-label]': 'label() || _initialAriaLabel || null',\n '(keydown)': '_onKeydown($event)',\n },\n providers: [\n {\n provide: MENUBAR_TOKEN,\n useExisting: MlvMenubar,\n },\n {\n provide: MLV_MENUBAR_ITEM_REGISTRY,\n useFactory: () => new MlvMenubarItemRegistryStore(),\n },\n ],\n})\nexport class MlvMenubar<\n TItem extends MlvMenuItemData<unknown> = MlvMenuItemData<unknown>,\n> implements MlvMenubarAccessor\n{\n // ─── Injected services ────────────────────────────────────────────────────\n\n /** @private Host element reference. */\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n private readonly _itemRegistry = inject(MLV_MENUBAR_ITEM_REGISTRY);\n private readonly _rtlService = inject(MlvRtlService);\n private readonly _dataSourceAdapter = new MlvMenuDataSourceAdapter<\n MlvMenubarEntry<TItem>\n >();\n\n /**\n * @private The `aria-label` the consumer placed directly on the `<mlv-menubar>`\n * element, captured before the host binding runs. Used as the accessible-name\n * fallback so a natively-provided `aria-label` is preserved when the `label`\n * input is not used — without it the `[attr.aria-label]` host binding would\n * clobber the consumer's attribute with `null`.\n */\n protected readonly _initialAriaLabel = inject(\n new HostAttributeToken('aria-label'),\n { optional: true },\n );\n\n // ─── Content children ─────────────────────────────────────────────────────\n\n private readonly _projectedItems = contentChildren(MlvMenuTrigger);\n\n /** @protected The projected row definition used by data-driven rendering. */\n protected readonly _itemDef = contentChild(MlvMenuItemDef<TItem>);\n\n /** @protected The registered top-level menu triggers, in render order. */\n protected readonly _items = this._itemRegistry.items;\n\n // ─── Inputs ───────────────────────────────────────────────────────────────\n\n /**\n * Accessible label for the menubar (`aria-label`). Use when there is no\n * visible heading that labels the bar.\n */\n readonly label = input<string>('');\n\n /**\n * Optional reactive source for the root menubar entries. Entries may be\n * menu-item data or `{ kind: 'divider', id }` separator records.\n */\n readonly dataSource = input<MlvMenubarDataSource<TItem> | undefined>(\n undefined,\n );\n\n // ─── Internal state ───────────────────────────────────────────────────────\n\n /**\n * @private `FocusKeyManager` managing the roving tabindex and horizontal\n * arrow / Home / End / type-ahead navigation across top-level items.\n */\n private _keyManager: FocusKeyManager<MlvMenubarItem> | null = null;\n\n /**\n * @private Subscription to the key manager's `change` stream, keeping the\n * roving tabindex in sync when type-ahead moves the active item.\n */\n private _changeSub: Subscription | null = null;\n\n /**\n * @private The top-level item whose dropdown is currently open, or `null`\n * when the whole bar is closed.\n */\n private _openItem: MlvMenubarItem | null = null;\n\n /** @protected Whether the bar is rendering reactive data instead of projected triggers. */\n protected readonly _dataMode = computed(\n () => this.dataSource() !== undefined,\n );\n\n /** @protected Current entries normalized from the active reactive source. */\n protected readonly _dataSourceItems = this._dataSourceAdapter.items;\n\n /** @protected Current source loading state. */\n protected readonly _dataSourceLoading = this._dataSourceAdapter.loading;\n\n constructor() {\n effect(() => {\n const source = this.dataSource();\n untracked(() => this._dataSourceAdapter.setSource(source ?? []));\n });\n\n afterRenderEffect(() => this._itemRegistry.resync());\n effect(() => {\n const projectedItems =\n this._projectedItems() as unknown as readonly MlvMenubarItem[];\n if (this._dataMode()) return;\n untracked(() => this._itemRegistry.syncOrder(projectedItems));\n });\n\n // (Re)build the key manager whenever the set of top-level items changes.\n //\n // The effect deliberately depends ONLY on the `_items()` query. All the\n // imperative work below both READS reactive signals (`menuTriggerDisabled()`\n // via the key manager's `skipPredicate`) and WRITES them (`_tabIndex` in\n // `_syncTabIndices`). Because writing `_tabIndex` dirties the child trigger\n // effects — and therefore the view — leaving those reads tracked would let\n // the effect re-notify itself on every view refresh, spinning synchronously.\n // Running the side effects in `untracked` keeps the sole reactive dependency\n // the item set, which is the only thing that should trigger a rebuild.\n effect(() => {\n const items = this._items() as unknown as MlvMenubarItem[];\n const direction = this._rtlService.direction();\n untracked(() => {\n if (items.length > 0) {\n this._initKeyManager(items, direction);\n this._syncTabIndices();\n }\n });\n });\n\n inject(DestroyRef).onDestroy(() => this._changeSub?.unsubscribe());\n }\n\n // ─── MlvMenubarAccessor ──────────────────────────────────────────────────────\n\n /** Host element of the menubar (used as a click-outside exclusion). */\n get hostElement(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n\n /**\n * Records `item` as the open dropdown, closing any previously-open sibling\n * and syncing the roving tabindex so the bar's active item follows the open\n * menu. Called by a child trigger from its open path.\n */\n notifyItemOpened(item: MlvMenubarItem): void {\n const previous = this._openItem;\n this._openItem = item;\n if (previous && previous !== item) {\n previous.closeMenu();\n }\n this._keyManager?.setActiveItem(item);\n this._syncTabIndices();\n }\n\n /** Clears the open-item record when `item`'s dropdown closes. */\n notifyItemClosed(item: MlvMenubarItem): void {\n if (this._openItem === item) {\n this._openItem = null;\n }\n }\n\n /** Whether any dropdown in the bar is currently open. */\n hasOpenMenu(): boolean {\n return this._openItem !== null;\n }\n\n /**\n * Hover-follow: while a dropdown is already open, opening the hovered item's\n * dropdown (which, via `notifyItemOpened`, closes the previous one). Does\n * nothing when the bar is fully closed or the item is disabled/already open.\n */\n onItemPointerEnter(item: MlvMenubarItem): void {\n if (!this.hasOpenMenu()) return;\n if (item === this._openItem || item.disabledBoolean) return;\n item.openMenu();\n }\n\n /**\n * Crosses from the open dropdown to an adjacent top-level item's menu,\n * wrapping over disabled items, and opens it with focus on its first item.\n */\n openAdjacentItemMenu(from: MlvMenubarItem, dir: 1 | -1): void {\n const items = this._navigableItems();\n const index = items.indexOf(from);\n if (index === -1 || items.length === 0) return;\n\n const target = items[(index + dir + items.length) % items.length];\n if (target === from) return;\n\n from.closeMenu();\n this._keyManager?.setActiveItem(target);\n this._syncTabIndices();\n target.openMenuWithFirstItemFocused();\n }\n\n // ─── Protected handlers ───────────────────────────────────────────────────\n\n /**\n * @protected Menubar-level keyboard handler.\n *\n * Opening keys (`Enter`, `Space`, `ArrowDown`, `ArrowUp`) are handled by the\n * focused trigger itself, so they are ignored here. Everything else is routed\n * to `FocusKeyManager` for horizontal navigation, Home/End, and type-ahead.\n * If a dropdown is open when the active item changes, the newly-focused item's\n * menu is opened (open-follow).\n */\n protected _onKeydown(event: KeyboardEvent): void {\n const key = this._rtlService.normalizeArrowKey(event);\n switch (key ?? event.key) {\n case 'Enter':\n case ' ':\n case DOWN_ARROW:\n case UP_ARROW:\n return;\n }\n\n const keyManager = this._keyManager;\n if (!keyManager) return;\n\n const before = keyManager.activeItem;\n keyManager.onKeydown(event);\n const after = keyManager.activeItem;\n\n if (after && after !== before) {\n this._syncTabIndices();\n if (this._openItem && after !== this._openItem) {\n after.openMenu();\n }\n }\n }\n\n // ─── Private helpers ──────────────────────────────────────────────────────\n\n /**\n * @private Creates or replaces the `FocusKeyManager` with the current items,\n * using horizontal orientation, wrap, Home/End and type-ahead, skipping\n * disabled items. Sets the first item active so the bar has a tabbable entry.\n */\n private _initKeyManager(\n items: MlvMenubarItem[],\n direction: 'ltr' | 'rtl',\n ): void {\n this._changeSub?.unsubscribe();\n this._keyManager = new FocusKeyManager<MlvMenubarItem>(items)\n .withHorizontalOrientation(direction)\n .withWrap()\n .withHomeAndEnd()\n .withTypeAhead()\n .skipPredicate((item) => item.disabledBoolean);\n this._changeSub = this._keyManager.change.subscribe(() =>\n this._syncTabIndices(),\n );\n if (!this._keyManager.activeItem) {\n this._keyManager.setFirstItemActive();\n }\n }\n\n /**\n * @private Updates `_tabIndex` on every item so that only the active item has\n * `tabindex=\"0\"` (roving tabindex). All others get `-1`.\n */\n private _syncTabIndices(): void {\n const active = this._keyManager?.activeItem;\n (this._items() as unknown as MlvMenubarItem[]).forEach((item) => {\n item._tabIndex.set(item === active ? 0 : -1);\n });\n }\n\n /** @private The non-disabled top-level items, in DOM order. */\n private _navigableItems(): MlvMenubarItem[] {\n return (this._items() as unknown as MlvMenubarItem[]).filter(\n (item) => !item.disabledBoolean,\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|