@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-slider.mjs","sources":["../../../../libs/core/slider/src/lib/slider/slider-tooltip-def.ts","../../../../libs/core/slider/src/lib/slider/slider.ts","../../../../libs/core/slider/src/lib/slider/slider.html","../../../../libs/core/slider/src/malva-ui-core-slider.ts"],"sourcesContent":["import { Directive, inject, TemplateRef } from '@angular/core';\n\n/**\n * Identifies the thumb whose tooltip is being rendered.\n *\n * Single-value sliders use `'value'`; range sliders use `'min'` and `'max'`.\n */\nexport type MlvSliderTooltipThumb = 'value' | 'min' | 'max';\n\n/**\n * Context provided to a custom `[mlvSliderTooltipDef]` template.\n */\nexport interface MlvSliderTooltipDefContext {\n /** Current thumb value, also exposed as `let-value`. */\n $implicit: number;\n /** Current thumb value exposed as the named `value` property. */\n value: number;\n /** Semantic identity of the thumb being rendered. */\n thumb: MlvSliderTooltipThumb;\n}\n\n/**\n * Structural directive that provides custom slider tooltip text.\n *\n * @example\n * ```html\n * <mlv-slider tooltip>\n * <ng-template mlvSliderTooltipDef let-value>\n * {{ value }}%\n * </ng-template>\n * </mlv-slider>\n * ```\n */\n@Directive({\n selector: '[mlvSliderTooltipDef]',\n})\nexport class MlvSliderTooltipDef {\n /** Template used to render the current thumb value. */\n readonly templateRef = inject(TemplateRef<MlvSliderTooltipDefContext>);\n\n /** Type guard for `let-value`, `let-value=\"value\"`, and `let-thumb=\"thumb\"`. */\n static ngTemplateContextGuard(\n _dir: MlvSliderTooltipDef,\n _ctx: unknown,\n ): _ctx is MlvSliderTooltipDefContext {\n return true;\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n DestroyRef,\n ElementRef,\n forwardRef,\n inject,\n input,\n model,\n Renderer2,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport type { MlvFormControl } from '@malva-ui/core/form-utils';\nimport {\n MLV_FORM_CONTROL,\n MlvSignalFormControlBase,\n} from '@malva-ui/core/form-utils';\nimport {\n MlvCompactComfortableDensity,\n MLV_DENSITY_ELEMENT,\n} from '@malva-ui/cdk/density';\nimport { MlvRtlService, clamp } from '@malva-ui/cdk/utils';\nimport { MLV_SLIDER_I18N } from '@malva-ui/i18n';\nimport {\n MlvSliderTooltipDef,\n type MlvSliderTooltipDefContext,\n} from './slider-tooltip-def';\n\n/**\n * The value type for the slider in single-thumb mode (number) or\n * dual-thumb range mode ([number, number]).\n */\nexport type MlvSliderValue = number | [number, number];\n\n@Component({\n selector: 'mlv-slider',\n imports: [NgTemplateOutlet],\n templateUrl: './slider.html',\n styleUrl: './slider.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: MlvCompactComfortableDensity,\n inputs: ['mlvDensity'],\n },\n ],\n providers: [\n {\n provide: MLV_DENSITY_ELEMENT,\n useValue: 'slider',\n },\n {\n provide: MLV_FORM_CONTROL,\n useExisting: forwardRef(() => MlvSlider),\n },\n ],\n host: {\n class: 'mlv-slider',\n '[class.mlv-slider--disabled]': 'computedDisabled()',\n '[class.mlv-slider--range]': 'range()',\n '[class.mlv-slider--has-ticks]': 'showTicks()',\n '[class.mlv-slider--vertical]': '_isVertical()',\n '[class.mlv-slider--dragging]': '_activeDragThumb() !== null',\n '[style.--mlv-slider-fill-start]': '_fillStart()',\n '[style.--mlv-slider-fill-end]': '_fillEnd()',\n '(pointerdown)': '_onTrackPointerDown($event)',\n },\n})\nexport class MlvSlider\n extends MlvSignalFormControlBase<MlvSliderValue>\n implements MlvFormControl\n{\n /** @protected The component's i18n strings signal. */\n protected readonly _i18n = inject(MLV_SLIDER_I18N);\n\n /**\n * Orientation of the slider.\n * In `'vertical'` mode the track runs bottom-to-top, thumbs are positioned\n * with `bottom`, and the host must have an explicit height set.\n */\n readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\n\n /** Minimum value of the slider. */\n readonly min = input<number, MlvSliderValue | null | undefined>(0, {\n transform: (value) => (typeof value === 'number' ? value : 0),\n });\n\n /** Maximum value of the slider. */\n readonly max = input<number, MlvSliderValue | null | undefined>(100, {\n transform: (value) => (typeof value === 'number' ? value : 100),\n });\n\n /** Step increment between values. */\n readonly step = input<number, number | null | undefined>(1, {\n transform: (value) => value ?? 1,\n });\n\n /** Whether to display tick marks at each step interval. */\n readonly showTicks = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /** When true, the slider operates in dual-thumb range mode. */\n readonly range = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * Shows the current value in a tooltip while a thumb is hovered, dragged,\n * or keyboard-focused.\n */\n readonly tooltip = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /** The selected scalar or range value used by all Angular forms APIs. */\n readonly value = model<MlvSliderValue>(0);\n\n /** @protected Optional consumer template used to render tooltip text. */\n protected readonly _tooltipDef = contentChild(MlvSliderTooltipDef);\n\n /** @private True when orientation is vertical. */\n protected readonly _isVertical = computed(\n () => this.orientation() === 'vertical',\n );\n\n /** @private Low (or sole) thumb value derived directly from the forms model. */\n protected readonly _lowValue = computed<number>(() => {\n const value = this.value();\n return this._clamp(Array.isArray(value) ? value[0] : value);\n });\n\n /** @private High thumb value derived directly from the forms model. */\n protected readonly _highValue = computed<number>(() => {\n const value = this.value();\n return this._clamp(Array.isArray(value) ? value[1] : this.max());\n });\n\n /** @protected Template context for the low or single-value thumb tooltip. */\n protected readonly _lowTooltipContext = computed<MlvSliderTooltipDefContext>(\n () => {\n const value = this._lowValue();\n return {\n $implicit: value,\n value,\n thumb: this.range() ? 'min' : 'value',\n };\n },\n );\n\n /** @protected Template context for the high thumb tooltip in range mode. */\n protected readonly _highTooltipContext = computed<MlvSliderTooltipDefContext>(\n () => {\n const value = this._highValue();\n return {\n $implicit: value,\n value,\n thumb: 'max',\n };\n },\n );\n\n /**\n * @private The thumb currently being dragged: 'low', 'high', or null.\n */\n protected readonly _activeDragThumb = signal<'low' | 'high' | null>(null);\n\n /**\n * @private Raw drag position (0–100%) for the low thumb while dragging.\n * Null when not dragging — thumb reverts to the snapped value's position.\n */\n private readonly _lowDragPercent = signal<number | null>(null);\n private readonly _rtlService = inject(MlvRtlService);\n\n /**\n * @private Effective direction of this slider, tracking the global direction\n * and any `[dir]` scope above the host. Mirrors pointer-to-value mapping.\n */\n private readonly _direction = this._rtlService.elementDirection(\n inject(ElementRef<HTMLElement>),\n );\n\n /**\n * @private Raw drag position (0–100%) for the high thumb while dragging.\n * Null when not dragging — thumb reverts to the snapped value's position.\n */\n private readonly _highDragPercent = signal<number | null>(null);\n\n /**\n * @private Visual percentage position of the low thumb.\n * Uses the raw drag position while dragging for a smooth feel;\n * snaps back to the step-aligned position on pointer release.\n */\n protected readonly _lowPercent = computed<number>(() => {\n const drag = this._lowDragPercent();\n return drag !== null ? drag : this._valueToPercent(this._lowValue());\n });\n\n /**\n * @private Visual percentage position of the high thumb.\n * Uses the raw drag position while dragging for a smooth feel;\n * snaps back to the step-aligned position on pointer release.\n */\n protected readonly _highPercent = computed<number>(() => {\n const drag = this._highDragPercent();\n return drag !== null ? drag : this._valueToPercent(this._highValue());\n });\n\n /**\n * @private Computed percentage for the fill region start (0–100%).\n * In single mode this is always 0; in range mode it tracks the low thumb visual position.\n */\n protected readonly _fillStart = computed<string>(() => {\n if (!this.range()) return '0%';\n return `${this._lowPercent()}%`;\n });\n\n /**\n * @private Computed percentage for the fill region end (0–100%).\n * Tracks the visual (drag or snapped) position of the active thumb.\n */\n protected readonly _fillEnd = computed<string>(() => {\n return `${this.range() ? this._highPercent() : this._lowPercent()}%`;\n });\n\n /**\n * @private Array of tick positions (percentages) shown when showTicks is true.\n */\n protected readonly _ticks = computed<number[]>(() => {\n const min = this.min();\n const max = this.max();\n const step = this.step();\n if (step <= 0) return [];\n const ticks: number[] = [];\n for (let v = min; v <= max; v += step) {\n ticks.push(this._valueToPercent(v));\n }\n return ticks;\n });\n\n constructor() {\n super();\n this._elementRef = inject(ElementRef);\n this._renderer = inject(Renderer2);\n this._destroyRef = inject(DestroyRef);\n }\n\n /** @private Host element ref for pointer-to-value calculation. */\n private _elementRef: ElementRef<HTMLElement>;\n\n /** @private Renderer2 for SSR-safe + auto-cleanup window listeners during drag. */\n private _renderer: Renderer2;\n\n /** @private DestroyRef so a destroy mid-drag releases the listeners. */\n private _destroyRef: DestroyRef;\n\n /**\n * @private The `.mlv-slider__track` element — a static child of this\n * component's own template, so it is resolved via a signal `viewChild` query\n * (repo rule: no `querySelector` for own-template elements) rather than a DOM\n * lookup on the host.\n */\n private readonly _trackRef = viewChild<ElementRef<HTMLElement>>('track');\n\n /**\n * @private Track bounding rect captured at pointerdown and reused for the whole\n * drag, so `_pointerToPercent` does not force a `getBoundingClientRect` layout\n * read on every pointermove. Dropped when the pointer ends or is cancelled.\n */\n private _dragTrackRect: DOMRect | null = null;\n\n // -------------------------------------------------------------------------\n // Forms value\n // -------------------------------------------------------------------------\n\n /** Whether the control holds a clearable value — A slider always carries a numeric value. */\n readonly hasValue = computed(() => true);\n\n // -------------------------------------------------------------------------\n // Keyboard handling (delegated from thumb elements)\n // -------------------------------------------------------------------------\n\n /**\n * @protected Handles keydown events on the low thumb.\n */\n protected _onLowThumbKeydown(event: KeyboardEvent): void {\n if (this.computedDisabled()) return;\n const newValue = this._computeKeyValue(event, this._lowValue());\n if (newValue !== null) {\n event.preventDefault();\n const clamped = this.range()\n ? Math.min(newValue, this._highValue())\n : newValue;\n this._setLowValue(clamped);\n this._emitChange();\n }\n }\n\n /**\n * @protected Handles keydown events on the high thumb (range mode only).\n */\n protected _onHighThumbKeydown(event: KeyboardEvent): void {\n if (this.computedDisabled() || !this.range()) return;\n const newValue = this._computeKeyValue(event, this._highValue());\n if (newValue !== null) {\n event.preventDefault();\n const clamped = Math.max(newValue, this._lowValue());\n this._setHighValue(clamped);\n this._emitChange();\n }\n }\n\n // -------------------------------------------------------------------------\n // Pointer / drag handling\n // -------------------------------------------------------------------------\n\n /**\n * @protected Handles pointerdown events on the track area to begin thumb dragging.\n */\n protected _onTrackPointerDown(event: PointerEvent): void {\n if (this.computedDisabled()) return;\n\n // Cache the track rect once per drag so the per-move percent math (track\n // click and every pointermove) avoids a repeated getBoundingClientRect\n // layout read. Cleared on pointerup. The element itself comes from the\n // `viewChild` query, not a DOM lookup.\n this._dragTrackRect =\n this._trackRef()?.nativeElement.getBoundingClientRect() ?? null;\n\n const target = event.target;\n const thumbElement =\n target instanceof Element\n ? target.closest<HTMLElement>('.mlv-slider__thumb')\n : null;\n if (thumbElement && this._elementRef.nativeElement.contains(thumbElement)) {\n const thumb = (thumbElement.dataset['thumb'] ?? 'low') as 'low' | 'high';\n this._activeDragThumb.set(thumb);\n thumbElement.setPointerCapture(event.pointerId);\n this._attachPointerListeners(event.pointerId);\n return;\n }\n\n // Click on track — jump the nearest thumb to that position\n const value = this._pointerEventToValue(event);\n if (!this.range()) {\n this._setLowValue(value);\n this._emitChange();\n this._activeDragThumb.set('low');\n } else {\n const lowDist = Math.abs(this._lowValue() - value);\n const highDist = Math.abs(this._highValue() - value);\n if (lowDist <= highDist) {\n this._setLowValue(Math.min(value, this._highValue()));\n this._activeDragThumb.set('low');\n } else {\n this._setHighValue(Math.max(value, this._lowValue()));\n this._activeDragThumb.set('high');\n }\n this._emitChange();\n }\n this._attachPointerListeners(event.pointerId);\n }\n\n /**\n * @private Attaches pointermove/end listeners on the window for drag tracking.\n * During drag the thumb follows the pointer freely (no step snapping) while the\n * emitted value snaps to the nearest step on every move. On pointer release the\n * raw drag position is cleared so the thumb animates to the snapped position.\n */\n private _attachPointerListeners(pointerId: number): void {\n let release: (() => void) | null = null;\n\n const onMove = (e: PointerEvent) => {\n if (e.pointerId !== pointerId) return;\n const rawPercent = this._pointerToPercent(e);\n const rawValue =\n this.min() + (rawPercent / 100) * (this.max() - this.min());\n const snappedValue = this._snap(this._clamp(rawValue));\n const thumb = this._activeDragThumb();\n\n if (thumb === 'low') {\n const maxPercent = this.range() ? this._highPercent() : 100;\n const clampedPercent = Math.min(rawPercent, maxPercent);\n this._lowDragPercent.set(clampedPercent);\n this._setLowValue(\n this.range()\n ? Math.min(snappedValue, this._highValue())\n : snappedValue,\n );\n } else if (thumb === 'high') {\n const minPercent = this._lowPercent();\n const clampedPercent = Math.max(rawPercent, minPercent);\n this._highDragPercent.set(clampedPercent);\n this._setHighValue(Math.max(snappedValue, this._lowValue()));\n }\n this._emitChange();\n };\n\n const onEnd = (e: PointerEvent) => {\n if (e.pointerId !== pointerId) return;\n this._lowDragPercent.set(null);\n this._highDragPercent.set(null);\n this._activeDragThumb.set(null);\n // Drop the cached track geometry so the next drag re-measures.\n this._dragTrackRect = null;\n this._markTouched();\n release?.();\n release = null;\n };\n\n const moveDispose = this._renderer.listen('window', 'pointermove', onMove);\n const upDispose = this._renderer.listen('window', 'pointerup', onEnd);\n const cancelDispose = this._renderer.listen(\n 'window',\n 'pointercancel',\n onEnd,\n );\n release = () => {\n moveDispose();\n upDispose();\n cancelDispose();\n };\n\n // Guarantee cleanup if the component is destroyed mid-drag — prevents\n // stale window listeners against a detached host.\n this._destroyRef.onDestroy(() => release?.());\n }\n\n // -------------------------------------------------------------------------\n // Private utilities\n // -------------------------------------------------------------------------\n\n /**\n * @private Converts a keyboard event into a new value, or null if unhandled.\n */\n private _computeKeyValue(\n event: KeyboardEvent,\n currentValue: number,\n ): number | null {\n const min = this.min();\n const max = this.max();\n const step = this.step();\n const pageStep = Math.max(step, (max - min) * 0.1);\n\n switch (this._rtlService.normalizeArrowKey(event) ?? event.key) {\n case RIGHT_ARROW:\n case UP_ARROW:\n return this._clamp(currentValue + step);\n case LEFT_ARROW:\n case DOWN_ARROW:\n return this._clamp(currentValue - step);\n case 'Home':\n return min;\n case 'End':\n return max;\n case 'PageUp':\n return this._clamp(currentValue + pageStep);\n case 'PageDown':\n return this._clamp(currentValue - pageStep);\n default:\n return null;\n }\n }\n\n /**\n * @private Converts a pointer event position to a clamped percentage (0–100).\n * Horizontal: left → 0%, right → 100%.\n * Vertical: bottom → 0%, top → 100% (inverted Y axis).\n * Does not snap — use this for free drag tracking.\n */\n private _pointerToPercent(event: PointerEvent): number {\n // Reuse the rect cached at pointerdown; fall back to a fresh measurement of\n // the `viewChild` track element if reached outside a drag sequence.\n const rect =\n this._dragTrackRect ??\n this._trackRef()?.nativeElement.getBoundingClientRect() ??\n null;\n if (!rect) return this._valueToPercent(this._lowValue());\n if (this._isVertical()) {\n return Math.min(\n 100,\n Math.max(0, (1 - (event.clientY - rect.top) / rect.height) * 100),\n );\n }\n // 0% sits at the inline-start edge, which is the track's right edge in RTL.\n const offset = this._direction() === 'rtl'\n ? rect.right - event.clientX\n : event.clientX - rect.left;\n return Math.min(100, Math.max(0, (offset / rect.width) * 100));\n }\n\n /**\n * @private Converts a pointer event's X position to a clamped, snapped slider value.\n * Used for track clicks (immediate snap) — not for drag moves.\n */\n private _pointerEventToValue(event: PointerEvent): number {\n const percent = this._pointerToPercent(event);\n const rawValue = this.min() + (percent / 100) * (this.max() - this.min());\n return this._snap(this._clamp(rawValue));\n }\n\n /**\n * @private Converts a value to a percentage between 0 and 100.\n */\n private _valueToPercent(value: number): number {\n const range = this.max() - this.min();\n if (range === 0) return 0;\n return ((value - this.min()) / range) * 100;\n }\n\n /**\n * @private Clamps a value to [min, max].\n */\n private _clamp(value: number): number {\n return clamp(value, this.min(), this.max());\n }\n\n /**\n * @private Snaps a value to the nearest step.\n */\n private _snap(value: number): number {\n const step = this.step();\n if (step <= 0) return value;\n const snapped = Math.round((value - this.min()) / step) * step + this.min();\n return this._clamp(snapped);\n }\n\n /** @private Writes the low/sole thumb while preserving the range shape. */\n private _setLowValue(value: number): void {\n if (this.range()) {\n this.value.set([value, this._highValue()]);\n } else {\n this.value.set(value);\n }\n }\n\n /** @private Writes the high thumb while preserving the current low value. */\n private _setHighValue(value: number): void {\n this.value.set([this._lowValue(), value]);\n }\n\n /**\n * @private Writes the current value through the signal-forms model.\n */\n private _emitChange(): void {\n if (this.range()) {\n this.value.set([this._lowValue(), this._highValue()]);\n } else {\n this.value.set(this._lowValue());\n }\n }\n\n /** @protected Marks the control touched when either thumb loses focus. */\n protected _onThumbBlur(): void {\n this.setFocused(false);\n this._markTouched();\n }\n}\n","<div class=\"mlv-slider__track\" #track>\n <div class=\"mlv-slider__fill\"></div>\n\n @if (showTicks()) {\n <div class=\"mlv-slider__ticks\" aria-hidden=\"true\">\n @for (tick of _ticks(); track tick) {\n <span\n class=\"mlv-slider__tick\"\n [style.left]=\"!_isVertical() ? tick + '%' : null\"\n [style.bottom]=\"_isVertical() ? tick + '%' : null\"\n ></span>\n }\n </div>\n }\n</div>\n\n<div\n class=\"mlv-slider__thumb mlv-slider__thumb--low\"\n [class.mlv-slider__thumb--dragging]=\"_activeDragThumb() === 'low'\"\n role=\"slider\"\n [attr.data-thumb]=\"'low'\"\n [attr.tabindex]=\"computedDisabled() ? -1 : 0\"\n [attr.aria-valuenow]=\"_lowValue()\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"range() ? _highValue() : max()\"\n [attr.aria-label]=\"\n range() ? _i18n().minValue : ariaLabel() || label() || _i18n().value\n \"\n [attr.aria-disabled]=\"computedDisabled() || null\"\n [attr.aria-orientation]=\"orientation()\"\n [style.left]=\"!_isVertical() ? _lowPercent() + '%' : null\"\n [style.bottom]=\"_isVertical() ? _lowPercent() + '%' : null\"\n (keydown)=\"_onLowThumbKeydown($event)\"\n (focus)=\"setFocused(true)\"\n (blur)=\"_onThumbBlur()\"\n></div>\n\n@if (tooltip()) {\n<span\n class=\"mlv-slider__tooltip mlv-slider__tooltip--low\"\n aria-hidden=\"true\"\n [style.left]=\"!_isVertical() ? _lowPercent() + '%' : null\"\n [style.bottom]=\"_isVertical() ? _lowPercent() + '%' : null\"\n>\n @if (_tooltipDef(); as tooltipDef) {\n <ng-container\n [ngTemplateOutlet]=\"tooltipDef.templateRef\"\n [ngTemplateOutletContext]=\"_lowTooltipContext()\"\n />\n } @else { {{ _lowValue() }} }\n</span>\n} @if (range()) {\n<div\n class=\"mlv-slider__thumb mlv-slider__thumb--high\"\n [class.mlv-slider__thumb--dragging]=\"_activeDragThumb() === 'high'\"\n role=\"slider\"\n [attr.data-thumb]=\"'high'\"\n [attr.tabindex]=\"computedDisabled() ? -1 : 0\"\n [attr.aria-valuenow]=\"_highValue()\"\n [attr.aria-valuemin]=\"_lowValue()\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-label]=\"_i18n().maxValue\"\n [attr.aria-disabled]=\"computedDisabled() || null\"\n [attr.aria-orientation]=\"orientation()\"\n [style.left]=\"!_isVertical() ? _highPercent() + '%' : null\"\n [style.bottom]=\"_isVertical() ? _highPercent() + '%' : null\"\n (keydown)=\"_onHighThumbKeydown($event)\"\n (focus)=\"setFocused(true)\"\n (blur)=\"_onThumbBlur()\"\n></div>\n\n@if (tooltip()) {\n<span\n class=\"mlv-slider__tooltip mlv-slider__tooltip--high\"\n aria-hidden=\"true\"\n [style.left]=\"!_isVertical() ? _highPercent() + '%' : null\"\n [style.bottom]=\"_isVertical() ? _highPercent() + '%' : null\"\n>\n @if (_tooltipDef(); as tooltipDef) {\n <ng-container\n [ngTemplateOutlet]=\"tooltipDef.templateRef\"\n [ngTemplateOutletContext]=\"_highTooltipContext()\"\n />\n } @else { {{ _highValue() }} }\n</span>\n} }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, ElementRef, input, ChangeDetectionStrategy, ViewEncapsulation, Component, signal, contentChildren, Renderer2, DestroyRef, NgZone } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { fromEvent, filter, switchMap, takeUntil, tap, map } from 'rxjs';
|
|
5
|
+
import { LEFT_ARROW, UP_ARROW, RIGHT_ARROW, DOWN_ARROW } from '@angular/cdk/keycodes';
|
|
6
|
+
import { MlvRtlService, clamp } from '@malva-ui/cdk/utils';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Individual panel inside a `mlv-split-pane`.
|
|
10
|
+
*
|
|
11
|
+
* Panels are placed side-by-side (horizontal) or stacked (vertical) with a
|
|
12
|
+
* draggable handle between each pair. The parent component manages all sizes
|
|
13
|
+
* and inserts the handles automatically.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```html
|
|
17
|
+
* <mlv-split-pane>
|
|
18
|
+
* <mlv-split-pane-panel [size]="30">Sidebar</mlv-split-pane-panel>
|
|
19
|
+
* <mlv-split-pane-panel>Main content</mlv-split-pane-panel>
|
|
20
|
+
* </mlv-split-pane>
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
class MlvSplitPanePanel {
|
|
24
|
+
/** @internal Direct reference to the host element, used by the parent for DOM measurement. */
|
|
25
|
+
_elementRef = inject((ElementRef));
|
|
26
|
+
/**
|
|
27
|
+
* Initial size of this panel as a percentage of the container.
|
|
28
|
+
* When omitted the panel shares the remaining space equally with other unsized panels.
|
|
29
|
+
*/
|
|
30
|
+
size = input(undefined, /* @ts-ignore */
|
|
31
|
+
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
32
|
+
/**
|
|
33
|
+
* Minimum size of this panel as a percentage.
|
|
34
|
+
* Drag and keyboard resize will not reduce this panel below this value.
|
|
35
|
+
* Defaults to `5`.
|
|
36
|
+
*/
|
|
37
|
+
minSize = input(5, /* @ts-ignore */
|
|
38
|
+
...(ngDevMode ? [{ debugName: "minSize" }] : /* istanbul ignore next */ []));
|
|
39
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvSplitPanePanel, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
40
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.7", type: MlvSplitPanePanel, isStandalone: true, selector: "mlv-split-pane-panel", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, minSize: { classPropertyName: "minSize", publicName: "minSize", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "mlv-split-pane__panel" }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
41
|
+
}
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvSplitPanePanel, decorators: [{
|
|
43
|
+
type: Component,
|
|
44
|
+
args: [{
|
|
45
|
+
selector: 'mlv-split-pane-panel',
|
|
46
|
+
template: `<ng-content />`,
|
|
47
|
+
encapsulation: ViewEncapsulation.None,
|
|
48
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
49
|
+
host: {
|
|
50
|
+
class: 'mlv-split-pane__panel',
|
|
51
|
+
},
|
|
52
|
+
}]
|
|
53
|
+
}], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], minSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "minSize", required: false }] }] } });
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Split pane container that divides space into two or more resizable panels.
|
|
57
|
+
*
|
|
58
|
+
* Panels are declared as `<mlv-split-pane-panel>` children. The component
|
|
59
|
+
* automatically inserts a drag handle between each adjacent pair. Sizes are
|
|
60
|
+
* managed via CSS `grid-template-columns` (horizontal) or
|
|
61
|
+
* `grid-template-rows` (vertical), ensuring the DOM always reflects the true
|
|
62
|
+
* rendered widths/heights.
|
|
63
|
+
*
|
|
64
|
+
* @example Basic 2-panel
|
|
65
|
+
* ```html
|
|
66
|
+
* <mlv-split-pane style="height: 300px;">
|
|
67
|
+
* <mlv-split-pane-panel [size]="30">Sidebar</mlv-split-pane-panel>
|
|
68
|
+
* <mlv-split-pane-panel>Main</mlv-split-pane-panel>
|
|
69
|
+
* </mlv-split-pane>
|
|
70
|
+
* ```
|
|
71
|
+
*
|
|
72
|
+
* @example 3-panel
|
|
73
|
+
* ```html
|
|
74
|
+
* <mlv-split-pane style="height: 300px;">
|
|
75
|
+
* <mlv-split-pane-panel [size]="20">Nav</mlv-split-pane-panel>
|
|
76
|
+
* <mlv-split-pane-panel>Editor</mlv-split-pane-panel>
|
|
77
|
+
* <mlv-split-pane-panel [size]="25">Properties</mlv-split-pane-panel>
|
|
78
|
+
* </mlv-split-pane>
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
class MlvSplitPane {
|
|
82
|
+
/**
|
|
83
|
+
* Orientation of the split. `'horizontal'` places panels side-by-side;
|
|
84
|
+
* `'vertical'` stacks them top to bottom.
|
|
85
|
+
*/
|
|
86
|
+
orientation = input('horizontal', /* @ts-ignore */
|
|
87
|
+
...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
|
|
88
|
+
/** @protected Whether a drag is currently in progress. Drives the `--dragging` modifier class. */
|
|
89
|
+
_isDragging = signal(false, /* @ts-ignore */
|
|
90
|
+
...(ngDevMode ? [{ debugName: "_isDragging" }] : /* istanbul ignore next */ []));
|
|
91
|
+
/** @private Queried panel children. */
|
|
92
|
+
_panels = contentChildren(MlvSplitPanePanel, /* @ts-ignore */
|
|
93
|
+
...(ngDevMode ? [{ debugName: "_panels" }] : /* istanbul ignore next */ []));
|
|
94
|
+
/** @private Current sizes of each panel in `fr` units (≈ percentage). */
|
|
95
|
+
_sizes = signal([], /* @ts-ignore */
|
|
96
|
+
...(ngDevMode ? [{ debugName: "_sizes" }] : /* istanbul ignore next */ []));
|
|
97
|
+
/**
|
|
98
|
+
* @private Latest sizes produced during an active pointer drag. The drag
|
|
99
|
+
* stream runs outside Angular and mutates the grid template imperatively; this
|
|
100
|
+
* buffer holds the running value so it can be committed to the `_sizes` signal
|
|
101
|
+
* exactly once, on pointerup, inside the zone.
|
|
102
|
+
*/
|
|
103
|
+
_dragSizes = null;
|
|
104
|
+
/** @private The inserted drag-handle elements, indexed by the pair they split. */
|
|
105
|
+
_handles = [];
|
|
106
|
+
/** @private Host element reference. */
|
|
107
|
+
_elementRef = inject((ElementRef));
|
|
108
|
+
/** @private Angular Renderer2 for all DOM mutations. */
|
|
109
|
+
_renderer = inject(Renderer2);
|
|
110
|
+
/** @private DestroyRef for observable cleanup. */
|
|
111
|
+
_destroyRef = inject(DestroyRef);
|
|
112
|
+
/** @private Angular zone — the drag stream runs outside it to avoid a change-detection pass per pointermove. */
|
|
113
|
+
_ngZone = inject(NgZone);
|
|
114
|
+
_rtlService = inject(MlvRtlService);
|
|
115
|
+
/**
|
|
116
|
+
* @private Effective direction of this split pane, tracking the global
|
|
117
|
+
* direction and any `[dir]` scope above the host. Mirrors drag geometry:
|
|
118
|
+
* panel[0] is the inline-first panel, which sits on the right in RTL.
|
|
119
|
+
*/
|
|
120
|
+
_direction = this._rtlService.elementDirection(this._elementRef);
|
|
121
|
+
ngAfterContentInit() {
|
|
122
|
+
const panels = this._panels();
|
|
123
|
+
if (panels.length < 2)
|
|
124
|
+
return;
|
|
125
|
+
const sizes = this._computeInitialSizes(panels);
|
|
126
|
+
this._sizes.set(sizes);
|
|
127
|
+
this._applyGridTemplate(sizes);
|
|
128
|
+
// Insert a drag handle between each adjacent pair of panels.
|
|
129
|
+
panels.forEach((panel, i) => {
|
|
130
|
+
if (i >= panels.length - 1)
|
|
131
|
+
return;
|
|
132
|
+
const handle = this._createHandle(i);
|
|
133
|
+
this._handles[i] = handle;
|
|
134
|
+
this._renderer.insertBefore(this._elementRef.nativeElement, handle, panel._elementRef.nativeElement.nextSibling);
|
|
135
|
+
this._initDragForHandle(handle, i);
|
|
136
|
+
});
|
|
137
|
+
// Handles exist now — publish their initial ARIA window-splitter values.
|
|
138
|
+
this._updateHandleAria(sizes);
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* @private Calculates the initial size for each panel.
|
|
142
|
+
* Panels with an explicit `size` input use that value.
|
|
143
|
+
* Panels without one share the remaining percentage equally.
|
|
144
|
+
*/
|
|
145
|
+
_computeInitialSizes(panels) {
|
|
146
|
+
const explicit = panels.map((p) => p.size());
|
|
147
|
+
const fixedTotal = explicit.reduce((sum, s) => sum + (s ?? 0), 0);
|
|
148
|
+
const autoCount = explicit.filter((s) => s === undefined).length;
|
|
149
|
+
const autoSize = autoCount > 0 ? (100 - fixedTotal) / autoCount : 0;
|
|
150
|
+
return explicit.map((s) => s ?? autoSize);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* @private Updates `grid-template-columns` (horizontal) or `grid-template-rows`
|
|
154
|
+
* (vertical) so each panel occupies its current `fr` share. Handles always
|
|
155
|
+
* occupy a fixed `0.125rem` track, so they never eat into panel space.
|
|
156
|
+
*/
|
|
157
|
+
_applyGridTemplate(sizes) {
|
|
158
|
+
const isHorizontal = this.orientation() === 'horizontal';
|
|
159
|
+
const tracks = [];
|
|
160
|
+
sizes.forEach((size, i) => {
|
|
161
|
+
tracks.push(`${size}fr`);
|
|
162
|
+
if (i < sizes.length - 1)
|
|
163
|
+
tracks.push('0.125rem');
|
|
164
|
+
});
|
|
165
|
+
const prop = isHorizontal ? 'grid-template-columns' : 'grid-template-rows';
|
|
166
|
+
this._renderer.setStyle(this._elementRef.nativeElement, prop, tracks.join(' '));
|
|
167
|
+
// Keep each separator's ARIA value in sync with the rendered sizes.
|
|
168
|
+
this._updateHandleAria(sizes);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* @private Syncs the ARIA window-splitter values on every drag handle.
|
|
172
|
+
* A focusable `role="separator"` is a window splitter and therefore requires
|
|
173
|
+
* `aria-valuenow` (with `aria-valuemin`/`aria-valuemax`). `aria-valuenow`
|
|
174
|
+
* tracks the leading panel's size (%), bounded by the two adjacent panels'
|
|
175
|
+
* `minSize` values.
|
|
176
|
+
*/
|
|
177
|
+
_updateHandleAria(sizes) {
|
|
178
|
+
const panels = this._panels();
|
|
179
|
+
this._handles.forEach((handle, i) => {
|
|
180
|
+
if (!handle)
|
|
181
|
+
return;
|
|
182
|
+
const leadMin = panels[i]?.minSize() ?? 0;
|
|
183
|
+
const trailMin = panels[i + 1]?.minSize() ?? 0;
|
|
184
|
+
this._renderer.setAttribute(handle, 'aria-valuenow', String(Math.round(sizes[i] ?? 0)));
|
|
185
|
+
this._renderer.setAttribute(handle, 'aria-valuemin', String(Math.round(leadMin)));
|
|
186
|
+
this._renderer.setAttribute(handle, 'aria-valuemax', String(Math.round(100 - trailMin)));
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* @private Creates and returns a drag handle DOM element for the given handle index.
|
|
191
|
+
* The grip visual is drawn entirely with CSS — no Angular directives required.
|
|
192
|
+
*/
|
|
193
|
+
_createHandle(handleIndex) {
|
|
194
|
+
const isHorizontal = this.orientation() === 'horizontal';
|
|
195
|
+
const handle = this._renderer.createElement('div');
|
|
196
|
+
this._renderer.addClass(handle, 'mlv-split-pane__handle');
|
|
197
|
+
this._renderer.setAttribute(handle, 'role', 'separator');
|
|
198
|
+
this._renderer.setAttribute(handle, 'tabindex', '0');
|
|
199
|
+
this._renderer.setAttribute(handle, 'aria-label', isHorizontal ? 'Resize panels horizontally' : 'Resize panels vertically');
|
|
200
|
+
this._renderer.setAttribute(handle, 'aria-orientation', isHorizontal ? 'vertical' : 'horizontal');
|
|
201
|
+
const grip = this._renderer.createElement('span');
|
|
202
|
+
this._renderer.addClass(grip, 'mlv-split-pane__handle-grip');
|
|
203
|
+
this._renderer.addClass(grip, isHorizontal
|
|
204
|
+
? 'mlv-split-pane__handle-grip--vertical'
|
|
205
|
+
: 'mlv-split-pane__handle-grip--horizontal');
|
|
206
|
+
this._renderer.setAttribute(grip, 'aria-hidden', 'true');
|
|
207
|
+
this._renderer.appendChild(handle, grip);
|
|
208
|
+
const dispose = this._renderer.listen(handle, 'keydown', (e) => {
|
|
209
|
+
this._onHandleKeydown(e, handleIndex);
|
|
210
|
+
});
|
|
211
|
+
// Renderer2.listen returns a disposer — register it so the keydown
|
|
212
|
+
// listener does not outlive this component instance.
|
|
213
|
+
this._destroyRef.onDestroy(dispose);
|
|
214
|
+
return handle;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* @private Wires pointer-capture drag behavior for a single handle.
|
|
218
|
+
* Only the two panels adjacent to the handle change size during drag;
|
|
219
|
+
* all other panels remain fixed.
|
|
220
|
+
*/
|
|
221
|
+
_initDragForHandle(handleEl, handleIndex) {
|
|
222
|
+
const containerEl = this._elementRef.nativeElement;
|
|
223
|
+
const isHorizontal = () => this.orientation() === 'horizontal';
|
|
224
|
+
// The drag stream runs OUTSIDE Angular: each pointermove writes the grid
|
|
225
|
+
// template imperatively (Renderer2) and never touches a signal, so a fast
|
|
226
|
+
// drag no longer schedules an OnPush change-detection pass per move. Only
|
|
227
|
+
// the `_isDragging` host-class flag and the single final `_sizes` commit
|
|
228
|
+
// re-enter the zone. Split-pane exposes no per-move output, so there is no
|
|
229
|
+
// emission-timing contract to preserve.
|
|
230
|
+
this._ngZone.runOutsideAngular(() => {
|
|
231
|
+
fromEvent(handleEl, 'pointerdown')
|
|
232
|
+
.pipe(takeUntilDestroyed(this._destroyRef), filter((e) => e.button === 0), switchMap((startEvent) => {
|
|
233
|
+
startEvent.preventDefault();
|
|
234
|
+
handleEl.setPointerCapture(startEvent.pointerId);
|
|
235
|
+
const containerRect = containerEl.getBoundingClientRect();
|
|
236
|
+
const containerSize = isHorizontal()
|
|
237
|
+
? containerRect.width
|
|
238
|
+
: containerRect.height;
|
|
239
|
+
const resizeCursor = isHorizontal() ? 'col-resize' : 'row-resize';
|
|
240
|
+
// `_isDragging` drives a host-class binding — flip it in the zone.
|
|
241
|
+
this._ngZone.run(() => this._isDragging.set(true));
|
|
242
|
+
this._renderer.setStyle(document.documentElement, 'cursor', resizeCursor);
|
|
243
|
+
this._renderer.setStyle(document.documentElement, 'user-select', 'none');
|
|
244
|
+
const panels = this._panels();
|
|
245
|
+
const panelI = panels[handleIndex];
|
|
246
|
+
const panelI1 = panels[handleIndex + 1];
|
|
247
|
+
const sizes = [...this._sizes()];
|
|
248
|
+
const pairTotal = sizes[handleIndex] + sizes[handleIndex + 1];
|
|
249
|
+
// Seed the drag buffer so a press/release with no move still commits
|
|
250
|
+
// a well-defined (unchanged) size array on pointerup.
|
|
251
|
+
this._dragSizes = sizes;
|
|
252
|
+
// Capture panel[i]'s start position in the viewport at drag start.
|
|
253
|
+
// Since only panel[i] and panel[i+1] will change, all panels before [i]
|
|
254
|
+
// remain fixed, so this reference stays valid throughout the drag.
|
|
255
|
+
const panelIEl = panelI._elementRef.nativeElement;
|
|
256
|
+
const panelIRect = panelIEl.getBoundingClientRect();
|
|
257
|
+
// Panel[i]'s inline-start edge is its right edge in RTL, and the
|
|
258
|
+
// pointer then travels away from it as the panel grows.
|
|
259
|
+
const mirrored = isHorizontal() && this._direction() === 'rtl';
|
|
260
|
+
const panelIStart = isHorizontal()
|
|
261
|
+
? mirrored
|
|
262
|
+
? panelIRect.right
|
|
263
|
+
: panelIRect.left
|
|
264
|
+
: panelIRect.top;
|
|
265
|
+
return fromEvent(handleEl, 'pointermove').pipe(takeUntil(fromEvent(handleEl, 'pointerup').pipe(tap(() => {
|
|
266
|
+
this._renderer.removeStyle(document.documentElement, 'cursor');
|
|
267
|
+
this._renderer.removeStyle(document.documentElement, 'user-select');
|
|
268
|
+
// Commit the final sizes + clear dragging once, in the zone,
|
|
269
|
+
// so OnPush change detection runs a single time per drag.
|
|
270
|
+
this._ngZone.run(() => {
|
|
271
|
+
this._isDragging.set(false);
|
|
272
|
+
if (this._dragSizes)
|
|
273
|
+
this._sizes.set(this._dragSizes);
|
|
274
|
+
});
|
|
275
|
+
}))), map((moveEvent) => {
|
|
276
|
+
const pointerPos = isHorizontal()
|
|
277
|
+
? moveEvent.clientX
|
|
278
|
+
: moveEvent.clientY;
|
|
279
|
+
// Pixel distance from panel[i]'s inline-start edge to the pointer
|
|
280
|
+
const newPanelI_px = mirrored
|
|
281
|
+
? panelIStart - pointerPos
|
|
282
|
+
: pointerPos - panelIStart;
|
|
283
|
+
// Convert to the same fr-unit space (fr ≈ % of container)
|
|
284
|
+
const newPanelI_fr = (newPanelI_px / containerSize) * 100;
|
|
285
|
+
// Clamp: both adjacent panels must respect their minSize
|
|
286
|
+
const minI = panelI.minSize();
|
|
287
|
+
const minI1 = panelI1.minSize();
|
|
288
|
+
const clampedI = clamp(newPanelI_fr, minI, pairTotal - minI1);
|
|
289
|
+
const newSizes = [...this._sizes()];
|
|
290
|
+
newSizes[handleIndex] = clampedI;
|
|
291
|
+
newSizes[handleIndex + 1] = pairTotal - clampedI;
|
|
292
|
+
return newSizes;
|
|
293
|
+
}));
|
|
294
|
+
}))
|
|
295
|
+
.subscribe((sizes) => {
|
|
296
|
+
// Per move (outside the zone): buffer the value and apply the grid
|
|
297
|
+
// template imperatively — no signal writes, so no CD pass.
|
|
298
|
+
this._dragSizes = sizes;
|
|
299
|
+
this._applyGridTemplate(sizes);
|
|
300
|
+
});
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* @protected Keyboard handler on each dynamically created handle.
|
|
305
|
+
* Arrow keys move by 1%, Home/End jump to the adjacent panel's minSize.
|
|
306
|
+
*/
|
|
307
|
+
_onHandleKeydown(event, handleIndex) {
|
|
308
|
+
const isHorizontal = this.orientation() === 'horizontal';
|
|
309
|
+
const key = this._rtlService.normalizeArrowKey(event);
|
|
310
|
+
const shouldDecrease = (isHorizontal && key === LEFT_ARROW) ||
|
|
311
|
+
(!isHorizontal && key === UP_ARROW);
|
|
312
|
+
const shouldIncrease = (isHorizontal && key === RIGHT_ARROW) ||
|
|
313
|
+
(!isHorizontal && key === DOWN_ARROW);
|
|
314
|
+
if (!shouldDecrease &&
|
|
315
|
+
!shouldIncrease &&
|
|
316
|
+
event.key !== 'Home' &&
|
|
317
|
+
event.key !== 'End')
|
|
318
|
+
return;
|
|
319
|
+
event.preventDefault();
|
|
320
|
+
const panels = this._panels();
|
|
321
|
+
const sizes = [...this._sizes()];
|
|
322
|
+
const pairTotal = sizes[handleIndex] + sizes[handleIndex + 1];
|
|
323
|
+
const minI = panels[handleIndex].minSize();
|
|
324
|
+
const minI1 = panels[handleIndex + 1].minSize();
|
|
325
|
+
let newI;
|
|
326
|
+
if (event.key === 'Home') {
|
|
327
|
+
newI = minI;
|
|
328
|
+
}
|
|
329
|
+
else if (event.key === 'End') {
|
|
330
|
+
newI = pairTotal - minI1;
|
|
331
|
+
}
|
|
332
|
+
else {
|
|
333
|
+
newI = sizes[handleIndex] + (shouldDecrease ? -1 : 1);
|
|
334
|
+
}
|
|
335
|
+
newI = clamp(newI, minI, pairTotal - minI1);
|
|
336
|
+
sizes[handleIndex] = newI;
|
|
337
|
+
sizes[handleIndex + 1] = pairTotal - newI;
|
|
338
|
+
this._sizes.set(sizes);
|
|
339
|
+
this._applyGridTemplate(sizes);
|
|
340
|
+
}
|
|
341
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvSplitPane, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
342
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.7", type: MlvSplitPane, isStandalone: true, selector: "mlv-split-pane", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.mlv-split-pane--horizontal": "orientation() === \"horizontal\"", "class.mlv-split-pane--vertical": "orientation() === \"vertical\"", "class.mlv-split-pane--dragging": "_isDragging()" }, classAttribute: "mlv-split-pane" }, queries: [{ propertyName: "_panels", predicate: MlvSplitPanePanel, isSignal: true }], ngImport: i0, template: `<ng-content />`, isInline: true, styles: ["@layer mlv.components{.mlv-split-pane{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-m)}.mlv-split-pane *{box-sizing:border-box}.mlv-split-pane{display:grid;width:100%;height:100%}.mlv-split-pane--horizontal{grid-template-rows:1fr}.mlv-split-pane--horizontal .mlv-split-pane__handle{width:.125rem;height:100%;cursor:col-resize}.mlv-split-pane--horizontal .mlv-split-pane__handle:before{width:1.5rem;height:100%;inset-inline-start:-.6875rem;top:0;cursor:col-resize}.mlv-split-pane--horizontal .mlv-split-pane__handle .mlv-split-pane__handle-grip--vertical{display:flex}.mlv-split-pane--horizontal .mlv-split-pane__handle .mlv-split-pane__handle-grip--horizontal{display:none}.mlv-split-pane--vertical{grid-template-columns:1fr}.mlv-split-pane--vertical .mlv-split-pane__handle{width:100%;height:.125rem;cursor:row-resize}.mlv-split-pane--vertical .mlv-split-pane__handle:before{height:1.5rem;width:100%;top:-.6875rem;inset-inline-start:0;cursor:row-resize}.mlv-split-pane--vertical .mlv-split-pane__handle .mlv-split-pane__handle-grip--horizontal{display:flex}.mlv-split-pane--vertical .mlv-split-pane__handle .mlv-split-pane__handle-grip--vertical{display:none}.mlv-split-pane__panel{min-width:0;min-height:0;overflow:hidden;position:relative}.mlv-split-pane__handle{display:flex;align-items:center;justify-content:center;touch-action:none;background:linear-gradient(to bottom,transparent,var(--mlv-border-subtle) 20%,var(--mlv-border-normal) 50%,var(--mlv-border-subtle) 80%,transparent);transition:background var(--mlv-duration-normal) var(--mlv-ease-out);-webkit-user-select:none;user-select:none;outline:none;position:relative;z-index:1}.mlv-split-pane__handle:before{content:\"\";position:absolute;display:block}.mlv-split-pane__handle:hover,.mlv-split-pane--dragging .mlv-split-pane__handle{background:color-mix(in srgb,var(--mlv-background-accent-1) 20%,transparent)}.mlv-split-pane__handle:focus-visible{outline:var(--mlv-stroke-width-medium) solid var(--mlv-border-focus);outline-offset:var(--mlv-focus-ring-offset);background:color-mix(in srgb,var(--mlv-background-accent-1) 20%,transparent)}.mlv-split-pane__handle-grip{align-items:center;justify-content:center;pointer-events:none;opacity:0;transition:opacity var(--mlv-duration-normal) var(--mlv-ease-out);z-index:1;position:relative}.mlv-split-pane__handle:hover .mlv-split-pane__handle-grip,.mlv-split-pane--dragging .mlv-split-pane__handle .mlv-split-pane__handle-grip{opacity:1}.mlv-split-pane__handle:focus-visible .mlv-split-pane__handle-grip{opacity:1}.mlv-split-pane__handle-grip--vertical{width:.1875rem;height:1.25rem;background-image:radial-gradient(circle,var(--mlv-background-accent-1) 1.5px,transparent 1.5px);background-size:.1875rem .375rem;background-repeat:repeat-y;background-position:center}.mlv-split-pane__handle-grip--horizontal{height:.1875rem;width:1.25rem;background-image:radial-gradient(circle,var(--mlv-background-accent-1) 1.5px,transparent 1.5px);background-size:.375rem .1875rem;background-repeat:repeat-x;background-position:center}@media(prefers-reduced-motion:reduce){.mlv-split-pane,.mlv-split-pane *,.mlv-split-pane:before,.mlv-split-pane:after,[class^=mlv-split-pane__],[class*=\" mlv-split-pane__\"],[class^=mlv-split-pane--],[class*=\" mlv-split-pane--\"]{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:var(--mlv-duration-instant)!important}}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
343
|
+
}
|
|
344
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvSplitPane, decorators: [{
|
|
345
|
+
type: Component,
|
|
346
|
+
args: [{ selector: 'mlv-split-pane', template: `<ng-content />`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
347
|
+
class: 'mlv-split-pane',
|
|
348
|
+
'[class.mlv-split-pane--horizontal]': 'orientation() === "horizontal"',
|
|
349
|
+
'[class.mlv-split-pane--vertical]': 'orientation() === "vertical"',
|
|
350
|
+
'[class.mlv-split-pane--dragging]': '_isDragging()',
|
|
351
|
+
}, styles: ["@layer mlv.components{.mlv-split-pane{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-m)}.mlv-split-pane *{box-sizing:border-box}.mlv-split-pane{display:grid;width:100%;height:100%}.mlv-split-pane--horizontal{grid-template-rows:1fr}.mlv-split-pane--horizontal .mlv-split-pane__handle{width:.125rem;height:100%;cursor:col-resize}.mlv-split-pane--horizontal .mlv-split-pane__handle:before{width:1.5rem;height:100%;inset-inline-start:-.6875rem;top:0;cursor:col-resize}.mlv-split-pane--horizontal .mlv-split-pane__handle .mlv-split-pane__handle-grip--vertical{display:flex}.mlv-split-pane--horizontal .mlv-split-pane__handle .mlv-split-pane__handle-grip--horizontal{display:none}.mlv-split-pane--vertical{grid-template-columns:1fr}.mlv-split-pane--vertical .mlv-split-pane__handle{width:100%;height:.125rem;cursor:row-resize}.mlv-split-pane--vertical .mlv-split-pane__handle:before{height:1.5rem;width:100%;top:-.6875rem;inset-inline-start:0;cursor:row-resize}.mlv-split-pane--vertical .mlv-split-pane__handle .mlv-split-pane__handle-grip--horizontal{display:flex}.mlv-split-pane--vertical .mlv-split-pane__handle .mlv-split-pane__handle-grip--vertical{display:none}.mlv-split-pane__panel{min-width:0;min-height:0;overflow:hidden;position:relative}.mlv-split-pane__handle{display:flex;align-items:center;justify-content:center;touch-action:none;background:linear-gradient(to bottom,transparent,var(--mlv-border-subtle) 20%,var(--mlv-border-normal) 50%,var(--mlv-border-subtle) 80%,transparent);transition:background var(--mlv-duration-normal) var(--mlv-ease-out);-webkit-user-select:none;user-select:none;outline:none;position:relative;z-index:1}.mlv-split-pane__handle:before{content:\"\";position:absolute;display:block}.mlv-split-pane__handle:hover,.mlv-split-pane--dragging .mlv-split-pane__handle{background:color-mix(in srgb,var(--mlv-background-accent-1) 20%,transparent)}.mlv-split-pane__handle:focus-visible{outline:var(--mlv-stroke-width-medium) solid var(--mlv-border-focus);outline-offset:var(--mlv-focus-ring-offset);background:color-mix(in srgb,var(--mlv-background-accent-1) 20%,transparent)}.mlv-split-pane__handle-grip{align-items:center;justify-content:center;pointer-events:none;opacity:0;transition:opacity var(--mlv-duration-normal) var(--mlv-ease-out);z-index:1;position:relative}.mlv-split-pane__handle:hover .mlv-split-pane__handle-grip,.mlv-split-pane--dragging .mlv-split-pane__handle .mlv-split-pane__handle-grip{opacity:1}.mlv-split-pane__handle:focus-visible .mlv-split-pane__handle-grip{opacity:1}.mlv-split-pane__handle-grip--vertical{width:.1875rem;height:1.25rem;background-image:radial-gradient(circle,var(--mlv-background-accent-1) 1.5px,transparent 1.5px);background-size:.1875rem .375rem;background-repeat:repeat-y;background-position:center}.mlv-split-pane__handle-grip--horizontal{height:.1875rem;width:1.25rem;background-image:radial-gradient(circle,var(--mlv-background-accent-1) 1.5px,transparent 1.5px);background-size:.375rem .1875rem;background-repeat:repeat-x;background-position:center}@media(prefers-reduced-motion:reduce){.mlv-split-pane,.mlv-split-pane *,.mlv-split-pane:before,.mlv-split-pane:after,[class^=mlv-split-pane__],[class*=\" mlv-split-pane__\"],[class^=mlv-split-pane--],[class*=\" mlv-split-pane--\"]{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:var(--mlv-duration-instant)!important}}}\n"] }]
|
|
352
|
+
}], propDecorators: { orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], _panels: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => MlvSplitPanePanel), { isSignal: true }] }] } });
|
|
353
|
+
|
|
354
|
+
/**
|
|
355
|
+
* Generated bundle index. Do not edit.
|
|
356
|
+
*/
|
|
357
|
+
|
|
358
|
+
export { MlvSplitPane, MlvSplitPanePanel };
|
|
359
|
+
//# sourceMappingURL=malva-ui-core-split-pane.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"malva-ui-core-split-pane.mjs","sources":["../../../../libs/core/split-pane/src/lib/split-pane/split-pane-panel.ts","../../../../libs/core/split-pane/src/lib/split-pane/split-pane.ts","../../../../libs/core/split-pane/src/malva-ui-core-split-pane.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\n/**\n * Individual panel inside a `mlv-split-pane`.\n *\n * Panels are placed side-by-side (horizontal) or stacked (vertical) with a\n * draggable handle between each pair. The parent component manages all sizes\n * and inserts the handles automatically.\n *\n * @example\n * ```html\n * <mlv-split-pane>\n * <mlv-split-pane-panel [size]=\"30\">Sidebar</mlv-split-pane-panel>\n * <mlv-split-pane-panel>Main content</mlv-split-pane-panel>\n * </mlv-split-pane>\n * ```\n */\n@Component({\n selector: 'mlv-split-pane-panel',\n template: `<ng-content />`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'mlv-split-pane__panel',\n },\n})\nexport class MlvSplitPanePanel {\n /** @internal Direct reference to the host element, used by the parent for DOM measurement. */\n readonly _elementRef = inject(ElementRef<HTMLElement>);\n\n /**\n * Initial size of this panel as a percentage of the container.\n * When omitted the panel shares the remaining space equally with other unsized panels.\n */\n readonly size = input<number | undefined>(undefined);\n\n /**\n * Minimum size of this panel as a percentage.\n * Drag and keyboard resize will not reduce this panel below this value.\n * Defaults to `5`.\n */\n readonly minSize = input(5);\n}\n","import {\n type AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n DestroyRef,\n ElementRef,\n inject,\n input,\n NgZone,\n Renderer2,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { filter, fromEvent, map, switchMap, tap, takeUntil } from 'rxjs';\nimport { LEFT_ARROW, RIGHT_ARROW, UP_ARROW, DOWN_ARROW } from '@angular/cdk/keycodes';\nimport { MlvRtlService, clamp } from '@malva-ui/cdk/utils';\nimport type { MlvSplitPaneOrientation } from './split-pane.types';\nimport { MlvSplitPanePanel } from './split-pane-panel';\n\n/**\n * Split pane container that divides space into two or more resizable panels.\n *\n * Panels are declared as `<mlv-split-pane-panel>` children. The component\n * automatically inserts a drag handle between each adjacent pair. Sizes are\n * managed via CSS `grid-template-columns` (horizontal) or\n * `grid-template-rows` (vertical), ensuring the DOM always reflects the true\n * rendered widths/heights.\n *\n * @example Basic 2-panel\n * ```html\n * <mlv-split-pane style=\"height: 300px;\">\n * <mlv-split-pane-panel [size]=\"30\">Sidebar</mlv-split-pane-panel>\n * <mlv-split-pane-panel>Main</mlv-split-pane-panel>\n * </mlv-split-pane>\n * ```\n *\n * @example 3-panel\n * ```html\n * <mlv-split-pane style=\"height: 300px;\">\n * <mlv-split-pane-panel [size]=\"20\">Nav</mlv-split-pane-panel>\n * <mlv-split-pane-panel>Editor</mlv-split-pane-panel>\n * <mlv-split-pane-panel [size]=\"25\">Properties</mlv-split-pane-panel>\n * </mlv-split-pane>\n * ```\n */\n@Component({\n selector: 'mlv-split-pane',\n template: `<ng-content />`,\n styleUrl: './split-pane.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'mlv-split-pane',\n '[class.mlv-split-pane--horizontal]': 'orientation() === \"horizontal\"',\n '[class.mlv-split-pane--vertical]': 'orientation() === \"vertical\"',\n '[class.mlv-split-pane--dragging]': '_isDragging()',\n },\n})\nexport class MlvSplitPane implements AfterContentInit {\n /**\n * Orientation of the split. `'horizontal'` places panels side-by-side;\n * `'vertical'` stacks them top to bottom.\n */\n readonly orientation = input<MlvSplitPaneOrientation>('horizontal');\n\n /** @protected Whether a drag is currently in progress. Drives the `--dragging` modifier class. */\n protected readonly _isDragging = signal(false);\n\n /** @private Queried panel children. */\n private readonly _panels = contentChildren(MlvSplitPanePanel);\n\n /** @private Current sizes of each panel in `fr` units (≈ percentage). */\n private readonly _sizes = signal<number[]>([]);\n\n /**\n * @private Latest sizes produced during an active pointer drag. The drag\n * stream runs outside Angular and mutates the grid template imperatively; this\n * buffer holds the running value so it can be committed to the `_sizes` signal\n * exactly once, on pointerup, inside the zone.\n */\n private _dragSizes: number[] | null = null;\n\n /** @private The inserted drag-handle elements, indexed by the pair they split. */\n private readonly _handles: HTMLElement[] = [];\n\n /** @private Host element reference. */\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n\n /** @private Angular Renderer2 for all DOM mutations. */\n private readonly _renderer = inject(Renderer2);\n\n /** @private DestroyRef for observable cleanup. */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @private Angular zone — the drag stream runs outside it to avoid a change-detection pass per pointermove. */\n private readonly _ngZone = inject(NgZone);\n private readonly _rtlService = inject(MlvRtlService);\n\n /**\n * @private Effective direction of this split pane, tracking the global\n * direction and any `[dir]` scope above the host. Mirrors drag geometry:\n * panel[0] is the inline-first panel, which sits on the right in RTL.\n */\n private readonly _direction = this._rtlService.elementDirection(\n this._elementRef,\n );\n\n ngAfterContentInit(): void {\n const panels = this._panels();\n if (panels.length < 2) return;\n\n const sizes = this._computeInitialSizes(panels);\n this._sizes.set(sizes);\n this._applyGridTemplate(sizes);\n\n // Insert a drag handle between each adjacent pair of panels.\n panels.forEach((panel, i) => {\n if (i >= panels.length - 1) return;\n const handle = this._createHandle(i);\n this._handles[i] = handle;\n this._renderer.insertBefore(\n this._elementRef.nativeElement,\n handle,\n panel._elementRef.nativeElement.nextSibling,\n );\n this._initDragForHandle(handle, i);\n });\n\n // Handles exist now — publish their initial ARIA window-splitter values.\n this._updateHandleAria(sizes);\n }\n\n /**\n * @private Calculates the initial size for each panel.\n * Panels with an explicit `size` input use that value.\n * Panels without one share the remaining percentage equally.\n */\n private _computeInitialSizes(panels: readonly MlvSplitPanePanel[]): number[] {\n const explicit = panels.map((p) => p.size());\n const fixedTotal = explicit.reduce<number>((sum, s) => sum + (s ?? 0), 0);\n const autoCount = explicit.filter((s) => s === undefined).length;\n const autoSize = autoCount > 0 ? (100 - fixedTotal) / autoCount : 0;\n return explicit.map((s) => s ?? autoSize);\n }\n\n /**\n * @private Updates `grid-template-columns` (horizontal) or `grid-template-rows`\n * (vertical) so each panel occupies its current `fr` share. Handles always\n * occupy a fixed `0.125rem` track, so they never eat into panel space.\n */\n private _applyGridTemplate(sizes: number[]): void {\n const isHorizontal = this.orientation() === 'horizontal';\n const tracks: string[] = [];\n sizes.forEach((size, i) => {\n tracks.push(`${size}fr`);\n if (i < sizes.length - 1) tracks.push('0.125rem');\n });\n const prop = isHorizontal ? 'grid-template-columns' : 'grid-template-rows';\n this._renderer.setStyle(\n this._elementRef.nativeElement,\n prop,\n tracks.join(' '),\n );\n // Keep each separator's ARIA value in sync with the rendered sizes.\n this._updateHandleAria(sizes);\n }\n\n /**\n * @private Syncs the ARIA window-splitter values on every drag handle.\n * A focusable `role=\"separator\"` is a window splitter and therefore requires\n * `aria-valuenow` (with `aria-valuemin`/`aria-valuemax`). `aria-valuenow`\n * tracks the leading panel's size (%), bounded by the two adjacent panels'\n * `minSize` values.\n */\n private _updateHandleAria(sizes: number[]): void {\n const panels = this._panels();\n this._handles.forEach((handle, i) => {\n if (!handle) return;\n const leadMin = panels[i]?.minSize() ?? 0;\n const trailMin = panels[i + 1]?.minSize() ?? 0;\n this._renderer.setAttribute(\n handle,\n 'aria-valuenow',\n String(Math.round(sizes[i] ?? 0)),\n );\n this._renderer.setAttribute(\n handle,\n 'aria-valuemin',\n String(Math.round(leadMin)),\n );\n this._renderer.setAttribute(\n handle,\n 'aria-valuemax',\n String(Math.round(100 - trailMin)),\n );\n });\n }\n\n /**\n * @private Creates and returns a drag handle DOM element for the given handle index.\n * The grip visual is drawn entirely with CSS — no Angular directives required.\n */\n private _createHandle(handleIndex: number): HTMLElement {\n const isHorizontal = this.orientation() === 'horizontal';\n const handle = this._renderer.createElement('div') as HTMLElement;\n this._renderer.addClass(handle, 'mlv-split-pane__handle');\n this._renderer.setAttribute(handle, 'role', 'separator');\n this._renderer.setAttribute(handle, 'tabindex', '0');\n this._renderer.setAttribute(\n handle,\n 'aria-label',\n isHorizontal ? 'Resize panels horizontally' : 'Resize panels vertically',\n );\n this._renderer.setAttribute(\n handle,\n 'aria-orientation',\n isHorizontal ? 'vertical' : 'horizontal',\n );\n\n const grip = this._renderer.createElement('span') as HTMLElement;\n this._renderer.addClass(grip, 'mlv-split-pane__handle-grip');\n this._renderer.addClass(\n grip,\n isHorizontal\n ? 'mlv-split-pane__handle-grip--vertical'\n : 'mlv-split-pane__handle-grip--horizontal',\n );\n this._renderer.setAttribute(grip, 'aria-hidden', 'true');\n this._renderer.appendChild(handle, grip);\n\n const dispose = this._renderer.listen(\n handle,\n 'keydown',\n (e: KeyboardEvent) => {\n this._onHandleKeydown(e, handleIndex);\n },\n );\n // Renderer2.listen returns a disposer — register it so the keydown\n // listener does not outlive this component instance.\n this._destroyRef.onDestroy(dispose);\n\n return handle;\n }\n\n /**\n * @private Wires pointer-capture drag behavior for a single handle.\n * Only the two panels adjacent to the handle change size during drag;\n * all other panels remain fixed.\n */\n private _initDragForHandle(handleEl: HTMLElement, handleIndex: number): void {\n const containerEl = this._elementRef.nativeElement as HTMLElement;\n const isHorizontal = () => this.orientation() === 'horizontal';\n\n // The drag stream runs OUTSIDE Angular: each pointermove writes the grid\n // template imperatively (Renderer2) and never touches a signal, so a fast\n // drag no longer schedules an OnPush change-detection pass per move. Only\n // the `_isDragging` host-class flag and the single final `_sizes` commit\n // re-enter the zone. Split-pane exposes no per-move output, so there is no\n // emission-timing contract to preserve.\n this._ngZone.runOutsideAngular(() => {\n fromEvent<PointerEvent>(handleEl, 'pointerdown')\n .pipe(\n takeUntilDestroyed(this._destroyRef),\n filter((e) => e.button === 0),\n switchMap((startEvent: PointerEvent) => {\n startEvent.preventDefault();\n handleEl.setPointerCapture(startEvent.pointerId);\n\n const containerRect = containerEl.getBoundingClientRect();\n const containerSize = isHorizontal()\n ? containerRect.width\n : containerRect.height;\n const resizeCursor = isHorizontal() ? 'col-resize' : 'row-resize';\n\n // `_isDragging` drives a host-class binding — flip it in the zone.\n this._ngZone.run(() => this._isDragging.set(true));\n this._renderer.setStyle(\n document.documentElement,\n 'cursor',\n resizeCursor,\n );\n this._renderer.setStyle(\n document.documentElement,\n 'user-select',\n 'none',\n );\n\n const panels = this._panels();\n const panelI = panels[handleIndex];\n const panelI1 = panels[handleIndex + 1];\n const sizes = [...this._sizes()];\n const pairTotal = sizes[handleIndex] + sizes[handleIndex + 1];\n // Seed the drag buffer so a press/release with no move still commits\n // a well-defined (unchanged) size array on pointerup.\n this._dragSizes = sizes;\n\n // Capture panel[i]'s start position in the viewport at drag start.\n // Since only panel[i] and panel[i+1] will change, all panels before [i]\n // remain fixed, so this reference stays valid throughout the drag.\n const panelIEl = panelI._elementRef.nativeElement;\n const panelIRect = panelIEl.getBoundingClientRect();\n // Panel[i]'s inline-start edge is its right edge in RTL, and the\n // pointer then travels away from it as the panel grows.\n const mirrored = isHorizontal() && this._direction() === 'rtl';\n const panelIStart = isHorizontal()\n ? mirrored\n ? panelIRect.right\n : panelIRect.left\n : panelIRect.top;\n\n return fromEvent<PointerEvent>(handleEl, 'pointermove').pipe(\n takeUntil(\n fromEvent<PointerEvent>(handleEl, 'pointerup').pipe(\n tap(() => {\n this._renderer.removeStyle(\n document.documentElement,\n 'cursor',\n );\n this._renderer.removeStyle(\n document.documentElement,\n 'user-select',\n );\n // Commit the final sizes + clear dragging once, in the zone,\n // so OnPush change detection runs a single time per drag.\n this._ngZone.run(() => {\n this._isDragging.set(false);\n if (this._dragSizes) this._sizes.set(this._dragSizes);\n });\n }),\n ),\n ),\n map((moveEvent: PointerEvent) => {\n const pointerPos = isHorizontal()\n ? moveEvent.clientX\n : moveEvent.clientY;\n // Pixel distance from panel[i]'s inline-start edge to the pointer\n const newPanelI_px = mirrored\n ? panelIStart - pointerPos\n : pointerPos - panelIStart;\n // Convert to the same fr-unit space (fr ≈ % of container)\n const newPanelI_fr = (newPanelI_px / containerSize) * 100;\n // Clamp: both adjacent panels must respect their minSize\n const minI = panelI.minSize();\n const minI1 = panelI1.minSize();\n const clampedI = clamp(newPanelI_fr, minI, pairTotal - minI1);\n\n const newSizes = [...this._sizes()];\n newSizes[handleIndex] = clampedI;\n newSizes[handleIndex + 1] = pairTotal - clampedI;\n return newSizes;\n }),\n );\n }),\n )\n .subscribe((sizes) => {\n // Per move (outside the zone): buffer the value and apply the grid\n // template imperatively — no signal writes, so no CD pass.\n this._dragSizes = sizes;\n this._applyGridTemplate(sizes);\n });\n });\n }\n\n /**\n * @protected Keyboard handler on each dynamically created handle.\n * Arrow keys move by 1%, Home/End jump to the adjacent panel's minSize.\n */\n private _onHandleKeydown(event: KeyboardEvent, handleIndex: number): void {\n const isHorizontal = this.orientation() === 'horizontal';\n const key = this._rtlService.normalizeArrowKey(event);\n const shouldDecrease =\n (isHorizontal && key === LEFT_ARROW) ||\n (!isHorizontal && key === UP_ARROW);\n const shouldIncrease =\n (isHorizontal && key === RIGHT_ARROW) ||\n (!isHorizontal && key === DOWN_ARROW);\n\n if (\n !shouldDecrease &&\n !shouldIncrease &&\n event.key !== 'Home' &&\n event.key !== 'End'\n )\n return;\n event.preventDefault();\n\n const panels = this._panels();\n const sizes = [...this._sizes()];\n const pairTotal = sizes[handleIndex] + sizes[handleIndex + 1];\n const minI = panels[handleIndex].minSize();\n const minI1 = panels[handleIndex + 1].minSize();\n\n let newI: number;\n if (event.key === 'Home') {\n newI = minI;\n } else if (event.key === 'End') {\n newI = pairTotal - minI1;\n } else {\n newI = sizes[handleIndex] + (shouldDecrease ? -1 : 1);\n }\n\n newI = clamp(newI, minI, pairTotal - minI1);\n sizes[handleIndex] = newI;\n sizes[handleIndex + 1] = pairTotal - newI;\n this._sizes.set(sizes);\n this._applyGridTemplate(sizes);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, computed, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
|
|
3
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Small circular status dot for conveying presence, health, or state (online,
|
|
7
|
+
* busy, error, …). Renders a `0.5rem` (8px) coloured dot using the same
|
|
8
|
+
* semantic {@link MlvStatusIndicatorTone} vocabulary as `mlv-badge` / `mlv-chip`,
|
|
9
|
+
* with an optional infinite ripple pulse.
|
|
10
|
+
*
|
|
11
|
+
* Decorative by default (`aria-hidden`); provide {@link MlvStatusIndicator.ariaLabel}
|
|
12
|
+
* to expose an accessible name (`role="img"`) when the dot carries meaning that
|
|
13
|
+
* is not conveyed by adjacent text.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```html
|
|
17
|
+
* <mlv-status-indicator tone="success" pulse />
|
|
18
|
+
* <mlv-status-indicator tone="danger" ariaLabel="Offline" />
|
|
19
|
+
* <span><mlv-status-indicator tone="warning" /> Degraded</span>
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
class MlvStatusIndicator {
|
|
23
|
+
/**
|
|
24
|
+
* The semantic tone of the dot, mapped to a solid fill colour token.
|
|
25
|
+
* Defaults to `'default'` (neutral grey).
|
|
26
|
+
*/
|
|
27
|
+
tone = input('default', /* @ts-ignore */
|
|
28
|
+
...(ngDevMode ? [{ debugName: "tone" }] : /* istanbul ignore next */ []));
|
|
29
|
+
/**
|
|
30
|
+
* When `true`, an expanding ripple ring animates outward from the dot on an
|
|
31
|
+
* infinite loop to draw attention (e.g. "live"/"recording" states).
|
|
32
|
+
* Respects `prefers-reduced-motion: reduce`, which suppresses the ripple.
|
|
33
|
+
* Supports attribute usage: `<mlv-status-indicator pulse>`.
|
|
34
|
+
*/
|
|
35
|
+
pulse = input(false, { ...(ngDevMode ? { debugName: "pulse" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
|
|
36
|
+
/**
|
|
37
|
+
* Diameter of the dot in pixels. Defaults to `8` (`0.5rem`), matching the
|
|
38
|
+
* design spec. Converted to `rem` internally so the dot scales with the
|
|
39
|
+
* user's root font-size. Overridable per-instance (e.g. `[size]="4"`).
|
|
40
|
+
*/
|
|
41
|
+
size = input(8, /* @ts-ignore */
|
|
42
|
+
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
43
|
+
/**
|
|
44
|
+
* Optional accessible name. When set, the dot is exposed to assistive
|
|
45
|
+
* technology as `role="img"` with this label; when omitted, the dot is purely
|
|
46
|
+
* decorative (`aria-hidden`) on the assumption that adjacent text conveys the
|
|
47
|
+
* status. Use this only when the colour/pulse is the sole carrier of meaning.
|
|
48
|
+
*/
|
|
49
|
+
ariaLabel = input('', /* @ts-ignore */
|
|
50
|
+
...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
|
|
51
|
+
/**
|
|
52
|
+
* @protected Dot size expressed in `rem` for the `--mlv-status-indicator-size`
|
|
53
|
+
* custom property (keeps the value scalable rather than binding raw px).
|
|
54
|
+
*/
|
|
55
|
+
_sizeVar = computed(() => `${this.size() / 16}rem`, /* @ts-ignore */
|
|
56
|
+
...(ngDevMode ? [{ debugName: "_sizeVar" }] : /* istanbul ignore next */ []));
|
|
57
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvStatusIndicator, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
58
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.7", type: MlvStatusIndicator, isStandalone: true, selector: "mlv-status-indicator", inputs: { tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, pulse: { classPropertyName: "pulse", publicName: "pulse", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "\"mlv-status-indicator--tone-\" + tone()", "class.mlv-status-indicator--pulse": "pulse()", "style.--mlv-status-indicator-size": "_sizeVar()", "attr.role": "ariaLabel() ? \"img\" : null", "attr.aria-label": "ariaLabel() || null", "attr.aria-hidden": "ariaLabel() ? null : \"true\"" }, classAttribute: "mlv-status-indicator" }, ngImport: i0, template: '', isInline: true, styles: ["@layer mlv.components{.mlv-status-indicator{--mlv-status-indicator-size: .5rem;--mlv-status-indicator-color: var(--mlv-text-secondary);box-sizing:border-box;display:inline-block;flex:none;position:relative;inline-size:var(--mlv-status-indicator-size);block-size:var(--mlv-status-indicator-size);border-radius:var(--mlv-radius-full);background-color:var(--mlv-status-indicator-color);vertical-align:middle}.mlv-status-indicator--tone-default{--mlv-status-indicator-color: var(--mlv-text-secondary)}.mlv-status-indicator--tone-primary{--mlv-status-indicator-color: var(--mlv-background-accent-1)}.mlv-status-indicator--tone-secondary{--mlv-status-indicator-color: var(--mlv-text-action)}.mlv-status-indicator--tone-accent{--mlv-status-indicator-color: var(--mlv-background-accent-2)}.mlv-status-indicator--tone-success{--mlv-status-indicator-color: var(--mlv-background-success-1)}.mlv-status-indicator--tone-info{--mlv-status-indicator-color: var(--mlv-background-info-1)}.mlv-status-indicator--tone-warning{--mlv-status-indicator-color: var(--mlv-background-warning-1)}.mlv-status-indicator--tone-danger{--mlv-status-indicator-color: var(--mlv-background-danger-1)}.mlv-status-indicator--pulse:after{content:\"\";position:absolute;inset:0;border-radius:inherit;background-color:var(--mlv-status-indicator-color);transform-origin:center;animation:mlv-status-indicator-ripple 2s var(--mlv-ease-out) infinite;pointer-events:none}@media(prefers-reduced-motion:reduce){.mlv-status-indicator--pulse:after{animation:none;display:none}}@keyframes mlv-status-indicator-ripple{0%{transform:scale(1);opacity:.6}to{transform:scale(3);opacity:0}}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
59
|
+
}
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvStatusIndicator, decorators: [{
|
|
61
|
+
type: Component,
|
|
62
|
+
args: [{ selector: 'mlv-status-indicator', template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
63
|
+
class: 'mlv-status-indicator',
|
|
64
|
+
'[class]': '"mlv-status-indicator--tone-" + tone()',
|
|
65
|
+
'[class.mlv-status-indicator--pulse]': 'pulse()',
|
|
66
|
+
'[style.--mlv-status-indicator-size]': '_sizeVar()',
|
|
67
|
+
'[attr.role]': 'ariaLabel() ? "img" : null',
|
|
68
|
+
'[attr.aria-label]': 'ariaLabel() || null',
|
|
69
|
+
'[attr.aria-hidden]': 'ariaLabel() ? null : "true"',
|
|
70
|
+
}, styles: ["@layer mlv.components{.mlv-status-indicator{--mlv-status-indicator-size: .5rem;--mlv-status-indicator-color: var(--mlv-text-secondary);box-sizing:border-box;display:inline-block;flex:none;position:relative;inline-size:var(--mlv-status-indicator-size);block-size:var(--mlv-status-indicator-size);border-radius:var(--mlv-radius-full);background-color:var(--mlv-status-indicator-color);vertical-align:middle}.mlv-status-indicator--tone-default{--mlv-status-indicator-color: var(--mlv-text-secondary)}.mlv-status-indicator--tone-primary{--mlv-status-indicator-color: var(--mlv-background-accent-1)}.mlv-status-indicator--tone-secondary{--mlv-status-indicator-color: var(--mlv-text-action)}.mlv-status-indicator--tone-accent{--mlv-status-indicator-color: var(--mlv-background-accent-2)}.mlv-status-indicator--tone-success{--mlv-status-indicator-color: var(--mlv-background-success-1)}.mlv-status-indicator--tone-info{--mlv-status-indicator-color: var(--mlv-background-info-1)}.mlv-status-indicator--tone-warning{--mlv-status-indicator-color: var(--mlv-background-warning-1)}.mlv-status-indicator--tone-danger{--mlv-status-indicator-color: var(--mlv-background-danger-1)}.mlv-status-indicator--pulse:after{content:\"\";position:absolute;inset:0;border-radius:inherit;background-color:var(--mlv-status-indicator-color);transform-origin:center;animation:mlv-status-indicator-ripple 2s var(--mlv-ease-out) infinite;pointer-events:none}@media(prefers-reduced-motion:reduce){.mlv-status-indicator--pulse:after{animation:none;display:none}}@keyframes mlv-status-indicator-ripple{0%{transform:scale(1);opacity:.6}to{transform:scale(3);opacity:0}}}\n"] }]
|
|
71
|
+
}], propDecorators: { tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], pulse: [{ type: i0.Input, args: [{ isSignal: true, alias: "pulse", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }] } });
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Generated bundle index. Do not edit.
|
|
75
|
+
*/
|
|
76
|
+
|
|
77
|
+
export { MlvStatusIndicator };
|
|
78
|
+
//# sourceMappingURL=malva-ui-core-status-indicator.mjs.map
|