@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-rating.mjs","sources":["../../../../libs/core/rating/src/lib/rating/rating.ts","../../../../libs/core/rating/src/lib/rating/rating.html","../../../../libs/core/rating/src/malva-ui-core-rating.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n inject,\n input,\n model,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { coerceNumberProperty } 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 MlvSignalFormControlBase,\n MLV_FORM_CONTROL,\n} from '@malva-ui/core/form-utils';\nimport { LucideStar } from '@lucide/angular';\nimport { MlvRtlService } from '@malva-ui/cdk/utils';\nimport { MLV_RATING_I18N, MlvI18nResolverService } from '@malva-ui/i18n';\n\n/**\n * Star rating component with half-star precision and read-only mode.\n *\n * Extends {@link MlvSignalFormControlBase}, inheriting the shared `disabled`,\n * `readonly`, `state`, `id`, `label`, `hint` and `message` inputs plus the\n * signal-forms field contract.\n *\n * - Hover preview highlights stars up to the cursor.\n * - Half-star precision via clip-path technique when `step=\"0.5\"`.\n * - Keyboard: ArrowRight/ArrowLeft step up/down, Home for min, End for max.\n * - Integrates with signal, reactive, and template-driven Angular forms.\n *\n * @example Basic\n * ```html\n * <mlv-rating [max]=\"5\" [(ngModel)]=\"rating\" />\n * ```\n *\n * @example Half-star precision\n * ```html\n * <mlv-rating [step]=\"0.5\" [formField]=\"ratingForm.score\" />\n * ```\n *\n * @example Read-only display\n * ```html\n * <mlv-rating [value]=\"4.5\" [readonly]=\"true\" />\n * ```\n */\n@Component({\n selector: 'mlv-rating',\n templateUrl: './rating.html',\n styleUrl: './rating.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [LucideStar],\n providers: [\n {\n provide: MLV_FORM_CONTROL,\n useExisting: forwardRef(() => MlvRating),\n },\n ],\n host: {\n class: 'mlv-rating',\n '[class]': '\"mlv-rating--state-\" + resolvedState()',\n '[class.mlv-rating--readonly]': 'readonly()',\n '[class.mlv-rating--disabled]': 'computedDisabled()',\n '[attr.id]': 'id()',\n '[attr.role]': '\"group\"',\n '[attr.aria-label]': '_i18n().rating',\n '[attr.aria-disabled]': 'computedDisabled() || null',\n '(mouseleave)': '_onHostMouseLeave()',\n '(keydown)': '_onHostKeydown($event)',\n '[attr.tabindex]': 'readonly() || computedDisabled() ? null : -1',\n },\n})\nexport class MlvRating\n extends MlvSignalFormControlBase<number>\n implements MlvFormControl\n{\n /** @protected The component's i18n strings signal. */\n protected readonly _i18n = inject(MLV_RATING_I18N);\n\n /** @private Resolver for ICU parameterized i18n strings. */\n private readonly _resolver = inject(MlvI18nResolverService);\n private readonly _rtlService = inject(MlvRtlService);\n\n /**\n * @private Effective direction of this rating, tracking the global direction\n * and any `[dir]` scope above the host. Mirrors half-star hit testing.\n */\n private readonly _direction = this._rtlService.elementDirection(\n inject(ElementRef<HTMLElement>),\n );\n\n /**\n * @private Whether the pointer is over the leading (lower-value) half of a\n * star. `offsetX` is always measured from the physical left edge, so RTL —\n * where the leading half is the right one — has to mirror it.\n */\n private _isLeadingHalf(event: MouseEvent, star: HTMLElement): boolean {\n const half = star.offsetWidth / 2;\n return this._direction() === 'rtl'\n ? event.offsetX > half\n : event.offsetX < half;\n }\n\n /**\n * Total number of stars.\n * @default 5\n */\n readonly max = input<number, number | string | null | undefined>(5, {\n transform: (value) =>\n Math.max(1, Math.floor(coerceNumberProperty(value, 5))),\n });\n\n /**\n * Step increment — `1` for whole stars, `0.5` for half-star precision.\n * @default 1\n */\n readonly step = input<1 | 0.5, number | null | undefined>(1, {\n transform: (value) => (value === 0.5 ? 0.5 : 1),\n });\n\n // ── Internal state ─────────────────────────────────────────────────────────\n\n /**\n * The committed rating — the signal-forms `FormValueControl` model. Kept in\n * sync by `[formField]`, `[formControl]`, and `ngModel` bindings.\n */\n readonly value = model(0);\n\n /** Tracks the hover preview value (0 = not hovering). */\n protected readonly _hoverValue = signal<number>(0);\n\n /** The value visually displayed — hover preview takes precedence. */\n protected readonly _displayValue = computed(\n () => this._hoverValue() || this.value(),\n );\n\n /** Indices `[0 … max-1]` for `@for` iteration. */\n protected readonly _indices = computed(() =>\n Array.from({ length: this.max() }, (_, i) => i),\n );\n\n /**\n * The 0-based index of the star that is in the tab order (roving tabindex).\n * The star covering the current value is tabbable; when no value is set the\n * first star is. All other stars are removed from the tab order so the rating\n * is a single tab stop, with Arrow keys moving between values.\n */\n protected readonly _activeIndex = computed(() => {\n const value = this.value();\n if (value <= 0) return 0;\n return Math.min(this.max() - 1, Math.ceil(value) - 1);\n });\n\n /** Whether the control holds a clearable value — A non-zero rating is set. */\n readonly hasValue = computed(() => this.value() > 0);\n\n // ── Fill calculation ────────────────────────────────────────────────────────\n\n /**\n * Returns the percentage of star `starIndex` (1-indexed) that should be filled.\n * 100 = full, 50 = half, 0 = empty.\n */\n protected _getFillPercent(starIndex: number): number {\n const display = this._displayValue();\n if (display >= starIndex) return 100;\n if (display >= starIndex - 0.5) return 50;\n return 0;\n }\n\n /**\n * Returns the CSS `clip-path` value for the filled star overlay.\n * `inset(0 {remainder}% 0 0)` clips the right side.\n */\n protected _clipPath(starIndex: number): string {\n const remainder = 100 - this._getFillPercent(starIndex);\n return `inset(0 ${remainder}% 0 0)`;\n }\n\n /**\n * @internal Resolves the per-star aria-label, e.g. \"Rate 3 out of 5\".\n * @param starIndex 1-based star number.\n */\n protected _rateLabel(starIndex: number): string {\n return this._resolver.resolve(\n this._i18n() as unknown as Record<string, string>,\n 'rateValue',\n { value: starIndex, max: this.max() },\n );\n }\n\n /**\n * @internal Roving tabindex for star `index` (0-based): `0` for the active\n * star, `-1` for the rest. Always `-1` when read-only or disabled.\n */\n protected _starTabIndex(index: number): number {\n if (this.readonly() || this.computedDisabled()) return -1;\n return index === this._activeIndex() ? 0 : -1;\n }\n\n // ── Event handlers ─────────────────────────────────────────────────────────\n\n /** @internal */\n protected _onStarMouseMove(starIndex: number, event: MouseEvent): void {\n if (this.readonly() || this.computedDisabled()) return;\n const el = event.currentTarget as HTMLElement;\n this._hoverValue.set(\n this.step() === 0.5 && this._isLeadingHalf(event, el)\n ? starIndex - 0.5\n : starIndex,\n );\n }\n\n /** @internal */\n protected _onStarClick(starIndex: number, event: MouseEvent): void {\n if (this.readonly() || this.computedDisabled()) return;\n const el = event.currentTarget as HTMLElement;\n const newValue =\n this.step() === 0.5 && this._isLeadingHalf(event, el)\n ? starIndex - 0.5\n : starIndex;\n this.value.set(newValue);\n }\n\n /** @internal */\n protected _onHostMouseLeave(): void {\n this._hoverValue.set(0);\n }\n\n /** @internal */\n protected _onHostKeydown(event: KeyboardEvent): void {\n if (this.readonly() || this.computedDisabled()) return;\n const current = this.value();\n const stepSize = this.step();\n let next: number | null = null;\n\n switch (this._rtlService.normalizeArrowKey(event) ?? event.key) {\n case RIGHT_ARROW:\n case UP_ARROW:\n next = Math.min(this.max(), current + stepSize);\n break;\n case LEFT_ARROW:\n case DOWN_ARROW:\n next = Math.max(0, current - stepSize);\n break;\n case 'Home':\n next = 0;\n break;\n case 'End':\n next = this.max();\n break;\n default:\n return;\n }\n\n if (next !== null) {\n event.preventDefault();\n this.value.set(next);\n }\n }\n\n /** @internal */\n protected _onStarFocus(starIndex: number): void {\n this._hoverValue.set(starIndex);\n }\n\n /** @internal */\n protected _onStarBlur(): void {\n this._hoverValue.set(0);\n this._markTouched();\n }\n}\n","@for (i of _indices(); track i) {\n<button\n type=\"button\"\n class=\"mlv-rating__star\"\n [attr.aria-label]=\"_rateLabel(i + 1)\"\n [attr.aria-pressed]=\"value() >= (i + 1)\"\n [disabled]=\"computedDisabled() || readonly() || null\"\n [tabindex]=\"_starTabIndex(i)\"\n (mousemove)=\"_onStarMouseMove(i + 1, $event)\"\n (click)=\"_onStarClick(i + 1, $event)\"\n (focus)=\"_onStarFocus(i + 1)\"\n (blur)=\"_onStarBlur()\"\n>\n <!-- Empty star (always rendered, forms the \"outline\") -->\n <svg\n lucideStar\n class=\"mlv-rating__icon mlv-rating__icon--empty\"\n [size]=\"20\"\n aria-hidden=\"true\"\n />\n <!-- Filled star (clipped to show partial fill) -->\n <svg\n lucideStar\n class=\"mlv-rating__icon mlv-rating__icon--filled\"\n [size]=\"20\"\n aria-hidden=\"true\"\n [style.clip-path]=\"_clipPath(i + 1)\"\n />\n</button>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,430 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, inject, computed, signal, viewChild, DestroyRef, Renderer2, afterNextRender, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
|
|
3
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
4
|
+
import { InteractivityChecker } from '@angular/cdk/a11y';
|
|
5
|
+
import { MLV_SCROLLBAR_I18N } from '@malva-ui/i18n';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Elements that can plausibly be tab stops. A cheap prefilter — every hit is
|
|
9
|
+
* still confirmed with the CDK's `InteractivityChecker`.
|
|
10
|
+
*/
|
|
11
|
+
const FOCUSABLE_CANDIDATE_SELECTOR = [
|
|
12
|
+
'a[href]',
|
|
13
|
+
'area[href]',
|
|
14
|
+
'button',
|
|
15
|
+
'input',
|
|
16
|
+
'select',
|
|
17
|
+
'textarea',
|
|
18
|
+
'iframe',
|
|
19
|
+
'object',
|
|
20
|
+
'embed',
|
|
21
|
+
'audio[controls]',
|
|
22
|
+
'video[controls]',
|
|
23
|
+
'details',
|
|
24
|
+
'summary',
|
|
25
|
+
'[contenteditable]',
|
|
26
|
+
'[tabindex]',
|
|
27
|
+
].join(',');
|
|
28
|
+
/**
|
|
29
|
+
* Custom scrollbar component that hides the native browser scrollbar and
|
|
30
|
+
* renders a minimalistic custom one in accordance with the Malva UI theme.
|
|
31
|
+
*
|
|
32
|
+
* Wrap any scrollable content in `<mlv-scrollbar>`. The component must have
|
|
33
|
+
* a defined height (set via CSS or via flex/grid sizing from a parent).
|
|
34
|
+
* Native scroll behaviour is **never intercepted** — the viewport scrolls
|
|
35
|
+
* exactly as if the component were not present. The custom thumb is a pure
|
|
36
|
+
* visual overlay that stays in sync with the viewport's scroll position.
|
|
37
|
+
*
|
|
38
|
+
* @example Vertical (default)
|
|
39
|
+
* ```html
|
|
40
|
+
* <mlv-scrollbar style="height: 12rem">
|
|
41
|
+
* <p>Long content…</p>
|
|
42
|
+
* </mlv-scrollbar>
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* @example Horizontal
|
|
46
|
+
* ```html
|
|
47
|
+
* <mlv-scrollbar orientation="horizontal" style="width: 20rem">
|
|
48
|
+
* <div style="width: 60rem">Wide content…</div>
|
|
49
|
+
* </mlv-scrollbar>
|
|
50
|
+
* ```
|
|
51
|
+
*
|
|
52
|
+
* @example Both axes
|
|
53
|
+
* ```html
|
|
54
|
+
* <mlv-scrollbar orientation="both" style="height: 12rem; width: 20rem">
|
|
55
|
+
* <div style="height: 30rem; width: 60rem">…</div>
|
|
56
|
+
* </mlv-scrollbar>
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
class MlvScrollbar {
|
|
60
|
+
/**
|
|
61
|
+
* Which scroll axes to show the custom scrollbar on.
|
|
62
|
+
* Default: `'vertical'`.
|
|
63
|
+
*/
|
|
64
|
+
orientation = input('vertical', /* @ts-ignore */
|
|
65
|
+
...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
|
|
66
|
+
/**
|
|
67
|
+
* CSS length value for the scrollbar track zone width (vertical) or height
|
|
68
|
+
* (horizontal). Maps to the `--mlv-sb-size` custom property on the host.
|
|
69
|
+
* The visible thumb is narrower due to the cross-axis inset (`--mlv-sb-inset`).
|
|
70
|
+
* Default: `'0.75rem'` (12 px track zone → 4 px visible thumb after 4 px inset each side).
|
|
71
|
+
*/
|
|
72
|
+
scrollbarSize = input('0.75rem', /* @ts-ignore */
|
|
73
|
+
...(ngDevMode ? [{ debugName: "scrollbarSize" }] : /* istanbul ignore next */ []));
|
|
74
|
+
/**
|
|
75
|
+
* When `true`, hides the custom scrollbar tracks and restores the browser's
|
|
76
|
+
* native scrollbar. Supports attribute syntax: `<mlv-scrollbar disabled>`.
|
|
77
|
+
*/
|
|
78
|
+
disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
|
|
79
|
+
/**
|
|
80
|
+
* Custom aria-label override for the scrollable viewport region.
|
|
81
|
+
* Falls back to the i18n-provided label.
|
|
82
|
+
* Override when the component wraps content with a more specific purpose,
|
|
83
|
+
* e.g. `ariaLabel="Chat messages"`.
|
|
84
|
+
*
|
|
85
|
+
* The label is only written to the DOM while the viewport is itself a tab
|
|
86
|
+
* stop — see `viewportTabIndex`. A viewport that is not keyboard-reachable
|
|
87
|
+
* is left as a plain container, because `aria-label` is prohibited on a
|
|
88
|
+
* role-less element and naming a non-interactive wrapper only adds noise.
|
|
89
|
+
*/
|
|
90
|
+
ariaLabel = input(undefined, /* @ts-ignore */
|
|
91
|
+
...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
|
|
92
|
+
/**
|
|
93
|
+
* Tab index applied to the native scroll viewport.
|
|
94
|
+
*
|
|
95
|
+
* The default `0` means **auto**: the viewport is a tab stop only while its
|
|
96
|
+
* content holds nothing tabbable. A text-only region stays reachable so
|
|
97
|
+
* keyboard users can scroll it (WCAG 2.1.1), but a region full of form
|
|
98
|
+
* controls does not add a redundant stop in front of them — which is what
|
|
99
|
+
* put a focus ring around an entire dialog body on open.
|
|
100
|
+
*
|
|
101
|
+
* Any non-zero value is applied verbatim; composite widgets that manage
|
|
102
|
+
* their own focus pass `-1`.
|
|
103
|
+
*/
|
|
104
|
+
viewportTabIndex = input(0, /* @ts-ignore */
|
|
105
|
+
...(ngDevMode ? [{ debugName: "viewportTabIndex" }] : /* istanbul ignore next */ []));
|
|
106
|
+
/** @protected The component's i18n strings signal. */
|
|
107
|
+
_i18n = inject(MLV_SCROLLBAR_I18N, { optional: true });
|
|
108
|
+
/** @protected Resolved aria-label: explicit input takes precedence over i18n default. */
|
|
109
|
+
_resolvedAriaLabel = computed(() => this.ariaLabel() ??
|
|
110
|
+
this._i18n?.().scrollableRegion ??
|
|
111
|
+
'Scrollable region', /* @ts-ignore */
|
|
112
|
+
...(ngDevMode ? [{ debugName: "_resolvedAriaLabel" }] : /* istanbul ignore next */ []));
|
|
113
|
+
/**
|
|
114
|
+
* @protected Whether the scrolled content currently holds a tabbable element.
|
|
115
|
+
* Recomputed after render and on every content mutation.
|
|
116
|
+
*/
|
|
117
|
+
_hasTabbableContent = signal(false, /* @ts-ignore */
|
|
118
|
+
...(ngDevMode ? [{ debugName: "_hasTabbableContent" }] : /* istanbul ignore next */ []));
|
|
119
|
+
/**
|
|
120
|
+
* @protected Tab index actually written to the viewport.
|
|
121
|
+
*
|
|
122
|
+
* `0` is treated as "auto" and collapses to `-1` once the content itself is
|
|
123
|
+
* keyboard-reachable; every other value passes through unchanged.
|
|
124
|
+
*/
|
|
125
|
+
_effectiveViewportTabIndex = computed(() => {
|
|
126
|
+
const requested = this.viewportTabIndex();
|
|
127
|
+
if (requested !== 0) {
|
|
128
|
+
return requested;
|
|
129
|
+
}
|
|
130
|
+
return this._hasTabbableContent() ? -1 : 0;
|
|
131
|
+
}, /* @ts-ignore */
|
|
132
|
+
...(ngDevMode ? [{ debugName: "_effectiveViewportTabIndex" }] : /* istanbul ignore next */ []));
|
|
133
|
+
/**
|
|
134
|
+
* @protected Whether the viewport is itself reachable by keyboard.
|
|
135
|
+
*
|
|
136
|
+
* Only a viewport that is a tab stop is a control the user can land on, and
|
|
137
|
+
* therefore the only case in which the region has to introduce and name
|
|
138
|
+
* itself (WCAG 4.1.2).
|
|
139
|
+
*/
|
|
140
|
+
_isViewportFocusable = computed(() => this._effectiveViewportTabIndex() >= 0, /* @ts-ignore */
|
|
141
|
+
...(ngDevMode ? [{ debugName: "_isViewportFocusable" }] : /* istanbul ignore next */ []));
|
|
142
|
+
/**
|
|
143
|
+
* @protected ARIA role written to the viewport, or `null` for none.
|
|
144
|
+
*
|
|
145
|
+
* `aria-label` is prohibited on an element with no role (implicit
|
|
146
|
+
* `generic`), so the label was previously discarded by assistive technology.
|
|
147
|
+
* A focusable scroll container is exposed as `group` rather than the
|
|
148
|
+
* landmark `region`, so that wrapping content in `mlv-scrollbar` never
|
|
149
|
+
* injects a landmark — nor a repeated "Scrollable region" landmark name —
|
|
150
|
+
* into the page. When the viewport is not a tab stop it stays role-less and
|
|
151
|
+
* unnamed: the projected content owns its own semantics.
|
|
152
|
+
*/
|
|
153
|
+
_viewportRole = computed(() => this._isViewportFocusable() ? 'group' : null, /* @ts-ignore */
|
|
154
|
+
...(ngDevMode ? [{ debugName: "_viewportRole" }] : /* istanbul ignore next */ []));
|
|
155
|
+
/**
|
|
156
|
+
* @protected The label actually written to the viewport, or `null`.
|
|
157
|
+
*
|
|
158
|
+
* Mirrors `_viewportRole` so the name is never emitted without a role that
|
|
159
|
+
* permits it.
|
|
160
|
+
*/
|
|
161
|
+
_viewportAriaLabel = computed(() => this._isViewportFocusable() ? this._resolvedAriaLabel() : null, /* @ts-ignore */
|
|
162
|
+
...(ngDevMode ? [{ debugName: "_viewportAriaLabel" }] : /* istanbul ignore next */ []));
|
|
163
|
+
/** @protected Whether the vertical track should be rendered. */
|
|
164
|
+
_showVertical = computed(() => !this.disabled() &&
|
|
165
|
+
(this.orientation() === 'vertical' || this.orientation() === 'both'), /* @ts-ignore */
|
|
166
|
+
...(ngDevMode ? [{ debugName: "_showVertical" }] : /* istanbul ignore next */ []));
|
|
167
|
+
/** @protected Whether the horizontal track should be rendered. */
|
|
168
|
+
_showHorizontal = computed(() => !this.disabled() &&
|
|
169
|
+
(this.orientation() === 'horizontal' || this.orientation() === 'both'), /* @ts-ignore */
|
|
170
|
+
...(ngDevMode ? [{ debugName: "_showHorizontal" }] : /* istanbul ignore next */ []));
|
|
171
|
+
/** @protected True when scrollHeight > clientHeight (vertical overflow present). */
|
|
172
|
+
_hasVerticalOverflow = signal(false, /* @ts-ignore */
|
|
173
|
+
...(ngDevMode ? [{ debugName: "_hasVerticalOverflow" }] : /* istanbul ignore next */ []));
|
|
174
|
+
/** @protected True when scrollWidth > clientWidth (horizontal overflow present). */
|
|
175
|
+
_hasHorizontalOverflow = signal(false, /* @ts-ignore */
|
|
176
|
+
...(ngDevMode ? [{ debugName: "_hasHorizontalOverflow" }] : /* istanbul ignore next */ []));
|
|
177
|
+
/** @protected Vertical thumb top offset in pixels (set as inline style). */
|
|
178
|
+
_thumbTop = signal(0, /* @ts-ignore */
|
|
179
|
+
...(ngDevMode ? [{ debugName: "_thumbTop" }] : /* istanbul ignore next */ []));
|
|
180
|
+
/** @protected Vertical thumb height in pixels (set as inline style). */
|
|
181
|
+
_thumbHeight = signal(0, /* @ts-ignore */
|
|
182
|
+
...(ngDevMode ? [{ debugName: "_thumbHeight" }] : /* istanbul ignore next */ []));
|
|
183
|
+
/** @protected Horizontal thumb left offset in pixels (set as inline style). */
|
|
184
|
+
_thumbLeft = signal(0, /* @ts-ignore */
|
|
185
|
+
...(ngDevMode ? [{ debugName: "_thumbLeft" }] : /* istanbul ignore next */ []));
|
|
186
|
+
/** @protected Horizontal thumb width in pixels (set as inline style). */
|
|
187
|
+
_thumbWidth = signal(0, /* @ts-ignore */
|
|
188
|
+
...(ngDevMode ? [{ debugName: "_thumbWidth" }] : /* istanbul ignore next */ []));
|
|
189
|
+
/** @protected True while the user is actively dragging a thumb. Adds `--dragging` modifier. */
|
|
190
|
+
_isDragging = signal(false, /* @ts-ignore */
|
|
191
|
+
...(ngDevMode ? [{ debugName: "_isDragging" }] : /* istanbul ignore next */ []));
|
|
192
|
+
/** @protected True while scroll events are firing. Cleared after 150 ms idle. Adds `--scrolling` modifier. */
|
|
193
|
+
_isScrolling = signal(false, /* @ts-ignore */
|
|
194
|
+
...(ngDevMode ? [{ debugName: "_isScrolling" }] : /* istanbul ignore next */ []));
|
|
195
|
+
/** @private Reference to the inner scrollable viewport element. */
|
|
196
|
+
_viewport = viewChild.required('viewport', /* @ts-ignore */
|
|
197
|
+
...(ngDevMode ? [{ debugName: "_viewport" }] : /* istanbul ignore next */ []));
|
|
198
|
+
/**
|
|
199
|
+
* The native scrollable viewport element.
|
|
200
|
+
* Lets wrapping components (e.g. `main[mlvPage]`) observe scroll position
|
|
201
|
+
* without reaching into the component's private DOM.
|
|
202
|
+
*/
|
|
203
|
+
get viewportElement() {
|
|
204
|
+
return this._viewport().nativeElement;
|
|
205
|
+
}
|
|
206
|
+
/** @private Reference to the vertical track element. */
|
|
207
|
+
_trackV = viewChild.required('trackV', /* @ts-ignore */
|
|
208
|
+
...(ngDevMode ? [{ debugName: "_trackV" }] : /* istanbul ignore next */ []));
|
|
209
|
+
/** @private Reference to the horizontal track element. */
|
|
210
|
+
_trackH = viewChild.required('trackH', /* @ts-ignore */
|
|
211
|
+
...(ngDevMode ? [{ debugName: "_trackH" }] : /* istanbul ignore next */ []));
|
|
212
|
+
/** @private Minimum rendered thumb length in pixels — prevents thumb from becoming unclickable. */
|
|
213
|
+
_minThumbSize = 32;
|
|
214
|
+
/** @private Native ResizeObserver watching viewport and content size. */
|
|
215
|
+
_resizeObserver = null;
|
|
216
|
+
/** @private Native MutationObserver keeping `_hasTabbableContent` in sync with projected content. */
|
|
217
|
+
_contentObserver = null;
|
|
218
|
+
/** @private CDK checker used to decide whether projected content is keyboard-reachable. */
|
|
219
|
+
_interactivityChecker = inject(InteractivityChecker);
|
|
220
|
+
/** @private Timeout ID for clearing the `--scrolling` modifier after idle. */
|
|
221
|
+
_scrollTimeout = null;
|
|
222
|
+
/** @private DestroyRef used to clean up the ResizeObserver, timers, and drag listeners. */
|
|
223
|
+
_destroyRef = inject(DestroyRef);
|
|
224
|
+
/** @private Renderer2 used so DOM listeners are SSR-safe and unsubscribable. */
|
|
225
|
+
_renderer = inject(Renderer2);
|
|
226
|
+
constructor() {
|
|
227
|
+
afterNextRender(() => {
|
|
228
|
+
this._updateGeometry();
|
|
229
|
+
this._updateTabbableContent();
|
|
230
|
+
const viewportEl = this._viewport().nativeElement;
|
|
231
|
+
const contentEl = viewportEl.firstElementChild;
|
|
232
|
+
if (contentEl && typeof MutationObserver !== 'undefined') {
|
|
233
|
+
// Projected content is opaque to the component, so tabbability has to
|
|
234
|
+
// be re-read whenever it changes shape — a lazily rendered form, a
|
|
235
|
+
// button that becomes disabled, an @if that swaps text for controls.
|
|
236
|
+
this._contentObserver = new MutationObserver(() => this._updateTabbableContent());
|
|
237
|
+
this._contentObserver.observe(contentEl, {
|
|
238
|
+
childList: true,
|
|
239
|
+
subtree: true,
|
|
240
|
+
attributes: true,
|
|
241
|
+
attributeFilter: ['tabindex', 'disabled', 'hidden', 'href', 'type'],
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
if (typeof ResizeObserver === 'undefined') {
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
this._resizeObserver = new ResizeObserver(() => {
|
|
248
|
+
this._updateGeometry();
|
|
249
|
+
});
|
|
250
|
+
// Observe the viewport to detect host resize (viewport fills host via position:absolute).
|
|
251
|
+
this._resizeObserver.observe(viewportEl);
|
|
252
|
+
// Observe the content wrapper to detect content size changes.
|
|
253
|
+
if (contentEl) {
|
|
254
|
+
this._resizeObserver.observe(contentEl);
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
this._destroyRef.onDestroy(() => {
|
|
258
|
+
this._resizeObserver?.disconnect();
|
|
259
|
+
this._contentObserver?.disconnect();
|
|
260
|
+
if (this._scrollTimeout !== null) {
|
|
261
|
+
clearTimeout(this._scrollTimeout);
|
|
262
|
+
}
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* @private Re-reads whether the projected content contains a tab stop.
|
|
267
|
+
*
|
|
268
|
+
* Drives `_effectiveViewportTabIndex`: a scroll region only needs to be a tab
|
|
269
|
+
* stop of its own when nothing inside it already is (WCAG 2.1.1). Keeping it
|
|
270
|
+
* unconditionally tabbable put a redundant stop — and a focus ring around the
|
|
271
|
+
* whole region — in front of every dialog body's form controls.
|
|
272
|
+
*/
|
|
273
|
+
_updateTabbableContent() {
|
|
274
|
+
const contentEl = this._viewport().nativeElement.firstElementChild;
|
|
275
|
+
if (!contentEl) {
|
|
276
|
+
this._hasTabbableContent.set(false);
|
|
277
|
+
return;
|
|
278
|
+
}
|
|
279
|
+
const candidates = contentEl.querySelectorAll(FOCUSABLE_CANDIDATE_SELECTOR);
|
|
280
|
+
for (const candidate of Array.from(candidates)) {
|
|
281
|
+
// `ignoreVisibility` because the CDK's visibility test is geometric and
|
|
282
|
+
// the content may not have been laid out yet (and never is under jsdom).
|
|
283
|
+
if (this._interactivityChecker.isFocusable(candidate, {
|
|
284
|
+
ignoreVisibility: true,
|
|
285
|
+
}) &&
|
|
286
|
+
this._interactivityChecker.isTabbable(candidate)) {
|
|
287
|
+
this._hasTabbableContent.set(true);
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
this._hasTabbableContent.set(false);
|
|
292
|
+
}
|
|
293
|
+
/** @protected Handles scroll events on the viewport. Updates thumb positions and `--scrolling` state. */
|
|
294
|
+
_onScroll() {
|
|
295
|
+
this._updateThumbPositions();
|
|
296
|
+
this._isScrolling.set(true);
|
|
297
|
+
if (this._scrollTimeout !== null) {
|
|
298
|
+
clearTimeout(this._scrollTimeout);
|
|
299
|
+
}
|
|
300
|
+
this._scrollTimeout = setTimeout(() => {
|
|
301
|
+
this._isScrolling.set(false);
|
|
302
|
+
this._scrollTimeout = null;
|
|
303
|
+
}, 150);
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* @protected Handles `pointerdown` on a scrollbar thumb.
|
|
307
|
+
* Captures the pointer and translates subsequent `pointermove` deltas into
|
|
308
|
+
* viewport scroll offsets. Releases on `pointerup` or `pointercancel`.
|
|
309
|
+
*/
|
|
310
|
+
_onThumbPointerDown(event, axis) {
|
|
311
|
+
event.preventDefault();
|
|
312
|
+
event.stopPropagation();
|
|
313
|
+
const thumb = event.currentTarget;
|
|
314
|
+
thumb.setPointerCapture(event.pointerId);
|
|
315
|
+
const viewportEl = this._viewport().nativeElement;
|
|
316
|
+
const trackEl = (axis === 'vertical' ? this._trackV() : this._trackH())
|
|
317
|
+
.nativeElement;
|
|
318
|
+
const paddingPx = axis === 'vertical'
|
|
319
|
+
? parseFloat(getComputedStyle(trackEl).paddingTop)
|
|
320
|
+
: parseFloat(getComputedStyle(trackEl).paddingLeft);
|
|
321
|
+
const trackSize = axis === 'vertical'
|
|
322
|
+
? trackEl.offsetHeight - paddingPx * 2
|
|
323
|
+
: trackEl.offsetWidth - paddingPx * 2;
|
|
324
|
+
const thumbSize = axis === 'vertical' ? this._thumbHeight() : this._thumbWidth();
|
|
325
|
+
const scrollRange = axis === 'vertical'
|
|
326
|
+
? viewportEl.scrollHeight - viewportEl.clientHeight
|
|
327
|
+
: viewportEl.scrollWidth - viewportEl.clientWidth;
|
|
328
|
+
const startPointer = axis === 'vertical' ? event.clientY : event.clientX;
|
|
329
|
+
const startScroll = axis === 'vertical' ? viewportEl.scrollTop : viewportEl.scrollLeft;
|
|
330
|
+
const scrollPerPixel = thumbSize < trackSize && scrollRange > 0
|
|
331
|
+
? scrollRange / (trackSize - thumbSize)
|
|
332
|
+
: 0;
|
|
333
|
+
this._isDragging.set(true);
|
|
334
|
+
const onPointerMove = (moveEvent) => {
|
|
335
|
+
const delta = (axis === 'vertical' ? moveEvent.clientY : moveEvent.clientX) -
|
|
336
|
+
startPointer;
|
|
337
|
+
if (axis === 'vertical') {
|
|
338
|
+
viewportEl.scrollTop = startScroll + delta * scrollPerPixel;
|
|
339
|
+
}
|
|
340
|
+
else {
|
|
341
|
+
viewportEl.scrollLeft = startScroll + delta * scrollPerPixel;
|
|
342
|
+
}
|
|
343
|
+
};
|
|
344
|
+
let releaseListeners = null;
|
|
345
|
+
const onPointerUp = () => {
|
|
346
|
+
this._isDragging.set(false);
|
|
347
|
+
releaseListeners?.();
|
|
348
|
+
releaseListeners = null;
|
|
349
|
+
};
|
|
350
|
+
const moveDispose = this._renderer.listen(thumb, 'pointermove', onPointerMove);
|
|
351
|
+
const upDispose = this._renderer.listen(thumb, 'pointerup', onPointerUp);
|
|
352
|
+
const cancelDispose = this._renderer.listen(thumb, 'pointercancel', onPointerUp);
|
|
353
|
+
releaseListeners = () => {
|
|
354
|
+
moveDispose();
|
|
355
|
+
upDispose();
|
|
356
|
+
cancelDispose();
|
|
357
|
+
};
|
|
358
|
+
// Guarantee cleanup if the component is destroyed mid-drag — without this
|
|
359
|
+
// the listeners would leak against the detached thumb element and
|
|
360
|
+
// _isDragging would stay true.
|
|
361
|
+
this._destroyRef.onDestroy(() => {
|
|
362
|
+
releaseListeners?.();
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* @private Recalculates overflow detection and thumb geometry.
|
|
367
|
+
* Called after first render, on ResizeObserver notifications, and on scroll.
|
|
368
|
+
*/
|
|
369
|
+
_updateGeometry() {
|
|
370
|
+
const viewportEl = this._viewport().nativeElement;
|
|
371
|
+
// +1 tolerance for sub-pixel rounding
|
|
372
|
+
this._hasVerticalOverflow.set(viewportEl.scrollHeight > viewportEl.clientHeight + 1);
|
|
373
|
+
this._hasHorizontalOverflow.set(viewportEl.scrollWidth > viewportEl.clientWidth + 1);
|
|
374
|
+
this._updateThumbPositions();
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* @private Recomputes thumb position and size signals from the current viewport
|
|
378
|
+
* scroll state. Fast path — called on every scroll event.
|
|
379
|
+
*/
|
|
380
|
+
_updateThumbPositions() {
|
|
381
|
+
const viewportEl = this._viewport().nativeElement;
|
|
382
|
+
if (this._showVertical() && this._hasVerticalOverflow()) {
|
|
383
|
+
const trackEl = this._trackV().nativeElement;
|
|
384
|
+
const paddingPx = parseFloat(getComputedStyle(trackEl).paddingTop);
|
|
385
|
+
const usableHeight = trackEl.offsetHeight - paddingPx * 2;
|
|
386
|
+
const ratio = viewportEl.clientHeight / viewportEl.scrollHeight;
|
|
387
|
+
const thumbH = Math.max(this._minThumbSize, usableHeight * ratio);
|
|
388
|
+
const scrollRange = viewportEl.scrollHeight - viewportEl.clientHeight;
|
|
389
|
+
const thumbT = scrollRange > 0
|
|
390
|
+
? paddingPx +
|
|
391
|
+
(viewportEl.scrollTop / scrollRange) * (usableHeight - thumbH)
|
|
392
|
+
: paddingPx;
|
|
393
|
+
this._thumbHeight.set(Math.round(thumbH));
|
|
394
|
+
this._thumbTop.set(Math.round(thumbT));
|
|
395
|
+
}
|
|
396
|
+
if (this._showHorizontal() && this._hasHorizontalOverflow()) {
|
|
397
|
+
const trackEl = this._trackH().nativeElement;
|
|
398
|
+
const paddingPx = parseFloat(getComputedStyle(trackEl).paddingLeft);
|
|
399
|
+
const usableWidth = trackEl.offsetWidth - paddingPx * 2;
|
|
400
|
+
const ratio = viewportEl.clientWidth / viewportEl.scrollWidth;
|
|
401
|
+
const thumbW = Math.max(this._minThumbSize, usableWidth * ratio);
|
|
402
|
+
const scrollRange = viewportEl.scrollWidth - viewportEl.clientWidth;
|
|
403
|
+
const thumbL = scrollRange > 0
|
|
404
|
+
? paddingPx +
|
|
405
|
+
(viewportEl.scrollLeft / scrollRange) * (usableWidth - thumbW)
|
|
406
|
+
: paddingPx;
|
|
407
|
+
this._thumbWidth.set(Math.round(thumbW));
|
|
408
|
+
this._thumbLeft.set(Math.round(thumbL));
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvScrollbar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
412
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.7", type: MlvScrollbar, isStandalone: true, selector: "mlv-scrollbar", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, scrollbarSize: { classPropertyName: "scrollbarSize", publicName: "scrollbarSize", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, viewportTabIndex: { classPropertyName: "viewportTabIndex", publicName: "viewportTabIndex", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.mlv-scrollbar--disabled": "disabled()", "class.mlv-scrollbar--dragging": "_isDragging()", "class.mlv-scrollbar--scrolling": "_isScrolling()", "style.--mlv-sb-size": "scrollbarSize()" }, classAttribute: "mlv-scrollbar" }, viewQueries: [{ propertyName: "_viewport", first: true, predicate: ["viewport"], descendants: true, isSignal: true }, { propertyName: "_trackV", first: true, predicate: ["trackV"], descendants: true, isSignal: true }, { propertyName: "_trackH", first: true, predicate: ["trackH"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n class=\"mlv-scrollbar__viewport\"\n #viewport\n [attr.tabindex]=\"_effectiveViewportTabIndex()\"\n [attr.role]=\"_viewportRole()\"\n [attr.aria-label]=\"_viewportAriaLabel()\"\n (scroll)=\"_onScroll()\"\n>\n <div class=\"mlv-scrollbar__content\" #content>\n <ng-content />\n </div>\n</div>\n\n<!-- Custom track and thumb elements are purely visual overlays.\n Screen readers use the viewport's native scroll semantics above. -->\n<div\n class=\"mlv-scrollbar__track mlv-scrollbar__track--vertical\"\n [class.mlv-scrollbar__track--hidden]=\"!_showVertical() || !_hasVerticalOverflow()\"\n aria-hidden=\"true\"\n #trackV\n>\n <div\n class=\"mlv-scrollbar__thumb\"\n [style.top.px]=\"_thumbTop()\"\n [style.height.px]=\"_thumbHeight()\"\n (pointerdown)=\"_onThumbPointerDown($event, 'vertical')\"\n ></div>\n</div>\n\n<div\n class=\"mlv-scrollbar__track mlv-scrollbar__track--horizontal\"\n [class.mlv-scrollbar__track--hidden]=\"!_showHorizontal() || !_hasHorizontalOverflow()\"\n aria-hidden=\"true\"\n #trackH\n>\n <div\n class=\"mlv-scrollbar__thumb\"\n [style.left.px]=\"_thumbLeft()\"\n [style.width.px]=\"_thumbWidth()\"\n (pointerdown)=\"_onThumbPointerDown($event, 'horizontal')\"\n ></div>\n</div>\n", styles: ["@layer mlv.components{.mlv-scrollbar{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-m)}.mlv-scrollbar *{box-sizing:border-box}.mlv-scrollbar{position:relative;display:grid;--mlv-sb-size: .75rem;--mlv-sb-inset: .25rem;--mlv-sb-edge-padding: .1875rem;--mlv-sb-thumb-bg: var(--mlv-border-strong);--mlv-sb-thumb-opacity: .5;--mlv-sb-track-bg: transparent;--mlv-sb-radius: var(--mlv-radius-full);--mlv-sb-min-thumb-size: 1.75rem;--mlv-sb-edge-gap: 0rem}.mlv-scrollbar:hover .mlv-scrollbar__thumb{--mlv-sb-inset: .1875rem;opacity:.8}.mlv-scrollbar--scrolling .mlv-scrollbar__thumb{opacity:1}.mlv-scrollbar--dragging{-webkit-user-select:none;user-select:none}.mlv-scrollbar--dragging .mlv-scrollbar__thumb{--mlv-sb-inset: .1875rem;--mlv-sb-thumb-bg: var(--mlv-text-secondary);opacity:1;cursor:grabbing}.mlv-scrollbar--disabled .mlv-scrollbar__track{display:none}.mlv-scrollbar--disabled .mlv-scrollbar__viewport{scrollbar-width:auto}.mlv-scrollbar--disabled .mlv-scrollbar__viewport::-webkit-scrollbar{display:revert}.mlv-scrollbar:hover .mlv-scrollbar__track{opacity:1}.mlv-scrollbar__viewport{min-height:0;min-width:0;overflow:auto;scrollbar-width:none;outline:none}.mlv-scrollbar__viewport::-webkit-scrollbar{display:none}.mlv-scrollbar__viewport:focus-visible{outline:var(--mlv-stroke-width-medium) solid var(--mlv-border-focus);outline-offset:calc(var(--mlv-focus-ring-offset) * -1)}.mlv-scrollbar__content{min-height:100%;min-width:100%}.mlv-scrollbar__track{position:absolute;background:var(--mlv-sb-track-bg);border-radius:var(--mlv-sb-radius);z-index:var(--mlv-z-raised);opacity:0;transition:opacity var(--mlv-duration-normal) var(--mlv-ease-default)}.mlv-scrollbar__track--vertical{top:var(--mlv-sb-edge-gap);bottom:var(--mlv-sb-edge-gap);inset-inline-end:var(--mlv-sb-edge-gap);width:var(--mlv-sb-size);padding:var(--mlv-sb-edge-padding) 0}.mlv-scrollbar__track--horizontal{bottom:var(--mlv-sb-edge-gap);inset-inline-start:var(--mlv-sb-edge-gap);inset-inline-end:var(--mlv-sb-edge-gap);height:var(--mlv-sb-size);padding:0 var(--mlv-sb-edge-padding)}.mlv-scrollbar__track--hidden{display:none}.mlv-scrollbar:has(.mlv-scrollbar__track--vertical:not(.mlv-scrollbar__track--hidden)):has(.mlv-scrollbar__track--horizontal:not(.mlv-scrollbar__track--hidden)) .mlv-scrollbar__track--vertical{bottom:calc(var(--mlv-sb-size) + var(--mlv-sb-edge-gap))}.mlv-scrollbar:has(.mlv-scrollbar__track--vertical:not(.mlv-scrollbar__track--hidden)):has(.mlv-scrollbar__track--horizontal:not(.mlv-scrollbar__track--hidden)) .mlv-scrollbar__track--horizontal{inset-inline-end:calc(var(--mlv-sb-size) + var(--mlv-sb-edge-gap))}.mlv-scrollbar__thumb{position:absolute;background:var(--mlv-sb-thumb-bg);border-radius:var(--mlv-sb-radius);opacity:var(--mlv-sb-thumb-opacity);cursor:grab}.mlv-scrollbar__track--vertical .mlv-scrollbar__thumb{inset-inline-start:var(--mlv-sb-inset);inset-inline-end:var(--mlv-sb-inset);min-block-size:var(--mlv-sb-min-thumb-size);transition:opacity var(--mlv-duration-normal) var(--mlv-ease-default),background-color var(--mlv-duration-fast) var(--mlv-ease-default),inset-inline-start var(--mlv-duration-normal) var(--mlv-ease-default),inset-inline-end var(--mlv-duration-normal) var(--mlv-ease-default)}.mlv-scrollbar__track--horizontal .mlv-scrollbar__thumb{top:var(--mlv-sb-inset);bottom:var(--mlv-sb-inset);min-inline-size:var(--mlv-sb-min-thumb-size);transition:opacity var(--mlv-duration-normal) var(--mlv-ease-default),background-color var(--mlv-duration-fast) var(--mlv-ease-default),top var(--mlv-duration-normal) var(--mlv-ease-default),bottom var(--mlv-duration-normal) var(--mlv-ease-default)}@media(prefers-reduced-motion:reduce){.mlv-scrollbar,.mlv-scrollbar *,.mlv-scrollbar:before,.mlv-scrollbar:after,[class^=mlv-scrollbar__],[class*=\" mlv-scrollbar__\"],[class^=mlv-scrollbar--],[class*=\" mlv-scrollbar--\"]{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 });
|
|
413
|
+
}
|
|
414
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvScrollbar, decorators: [{
|
|
415
|
+
type: Component,
|
|
416
|
+
args: [{ selector: 'mlv-scrollbar', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
417
|
+
class: 'mlv-scrollbar',
|
|
418
|
+
'[class.mlv-scrollbar--disabled]': 'disabled()',
|
|
419
|
+
'[class.mlv-scrollbar--dragging]': '_isDragging()',
|
|
420
|
+
'[class.mlv-scrollbar--scrolling]': '_isScrolling()',
|
|
421
|
+
'[style.--mlv-sb-size]': 'scrollbarSize()',
|
|
422
|
+
}, template: "<div\n class=\"mlv-scrollbar__viewport\"\n #viewport\n [attr.tabindex]=\"_effectiveViewportTabIndex()\"\n [attr.role]=\"_viewportRole()\"\n [attr.aria-label]=\"_viewportAriaLabel()\"\n (scroll)=\"_onScroll()\"\n>\n <div class=\"mlv-scrollbar__content\" #content>\n <ng-content />\n </div>\n</div>\n\n<!-- Custom track and thumb elements are purely visual overlays.\n Screen readers use the viewport's native scroll semantics above. -->\n<div\n class=\"mlv-scrollbar__track mlv-scrollbar__track--vertical\"\n [class.mlv-scrollbar__track--hidden]=\"!_showVertical() || !_hasVerticalOverflow()\"\n aria-hidden=\"true\"\n #trackV\n>\n <div\n class=\"mlv-scrollbar__thumb\"\n [style.top.px]=\"_thumbTop()\"\n [style.height.px]=\"_thumbHeight()\"\n (pointerdown)=\"_onThumbPointerDown($event, 'vertical')\"\n ></div>\n</div>\n\n<div\n class=\"mlv-scrollbar__track mlv-scrollbar__track--horizontal\"\n [class.mlv-scrollbar__track--hidden]=\"!_showHorizontal() || !_hasHorizontalOverflow()\"\n aria-hidden=\"true\"\n #trackH\n>\n <div\n class=\"mlv-scrollbar__thumb\"\n [style.left.px]=\"_thumbLeft()\"\n [style.width.px]=\"_thumbWidth()\"\n (pointerdown)=\"_onThumbPointerDown($event, 'horizontal')\"\n ></div>\n</div>\n", styles: ["@layer mlv.components{.mlv-scrollbar{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-m)}.mlv-scrollbar *{box-sizing:border-box}.mlv-scrollbar{position:relative;display:grid;--mlv-sb-size: .75rem;--mlv-sb-inset: .25rem;--mlv-sb-edge-padding: .1875rem;--mlv-sb-thumb-bg: var(--mlv-border-strong);--mlv-sb-thumb-opacity: .5;--mlv-sb-track-bg: transparent;--mlv-sb-radius: var(--mlv-radius-full);--mlv-sb-min-thumb-size: 1.75rem;--mlv-sb-edge-gap: 0rem}.mlv-scrollbar:hover .mlv-scrollbar__thumb{--mlv-sb-inset: .1875rem;opacity:.8}.mlv-scrollbar--scrolling .mlv-scrollbar__thumb{opacity:1}.mlv-scrollbar--dragging{-webkit-user-select:none;user-select:none}.mlv-scrollbar--dragging .mlv-scrollbar__thumb{--mlv-sb-inset: .1875rem;--mlv-sb-thumb-bg: var(--mlv-text-secondary);opacity:1;cursor:grabbing}.mlv-scrollbar--disabled .mlv-scrollbar__track{display:none}.mlv-scrollbar--disabled .mlv-scrollbar__viewport{scrollbar-width:auto}.mlv-scrollbar--disabled .mlv-scrollbar__viewport::-webkit-scrollbar{display:revert}.mlv-scrollbar:hover .mlv-scrollbar__track{opacity:1}.mlv-scrollbar__viewport{min-height:0;min-width:0;overflow:auto;scrollbar-width:none;outline:none}.mlv-scrollbar__viewport::-webkit-scrollbar{display:none}.mlv-scrollbar__viewport:focus-visible{outline:var(--mlv-stroke-width-medium) solid var(--mlv-border-focus);outline-offset:calc(var(--mlv-focus-ring-offset) * -1)}.mlv-scrollbar__content{min-height:100%;min-width:100%}.mlv-scrollbar__track{position:absolute;background:var(--mlv-sb-track-bg);border-radius:var(--mlv-sb-radius);z-index:var(--mlv-z-raised);opacity:0;transition:opacity var(--mlv-duration-normal) var(--mlv-ease-default)}.mlv-scrollbar__track--vertical{top:var(--mlv-sb-edge-gap);bottom:var(--mlv-sb-edge-gap);inset-inline-end:var(--mlv-sb-edge-gap);width:var(--mlv-sb-size);padding:var(--mlv-sb-edge-padding) 0}.mlv-scrollbar__track--horizontal{bottom:var(--mlv-sb-edge-gap);inset-inline-start:var(--mlv-sb-edge-gap);inset-inline-end:var(--mlv-sb-edge-gap);height:var(--mlv-sb-size);padding:0 var(--mlv-sb-edge-padding)}.mlv-scrollbar__track--hidden{display:none}.mlv-scrollbar:has(.mlv-scrollbar__track--vertical:not(.mlv-scrollbar__track--hidden)):has(.mlv-scrollbar__track--horizontal:not(.mlv-scrollbar__track--hidden)) .mlv-scrollbar__track--vertical{bottom:calc(var(--mlv-sb-size) + var(--mlv-sb-edge-gap))}.mlv-scrollbar:has(.mlv-scrollbar__track--vertical:not(.mlv-scrollbar__track--hidden)):has(.mlv-scrollbar__track--horizontal:not(.mlv-scrollbar__track--hidden)) .mlv-scrollbar__track--horizontal{inset-inline-end:calc(var(--mlv-sb-size) + var(--mlv-sb-edge-gap))}.mlv-scrollbar__thumb{position:absolute;background:var(--mlv-sb-thumb-bg);border-radius:var(--mlv-sb-radius);opacity:var(--mlv-sb-thumb-opacity);cursor:grab}.mlv-scrollbar__track--vertical .mlv-scrollbar__thumb{inset-inline-start:var(--mlv-sb-inset);inset-inline-end:var(--mlv-sb-inset);min-block-size:var(--mlv-sb-min-thumb-size);transition:opacity var(--mlv-duration-normal) var(--mlv-ease-default),background-color var(--mlv-duration-fast) var(--mlv-ease-default),inset-inline-start var(--mlv-duration-normal) var(--mlv-ease-default),inset-inline-end var(--mlv-duration-normal) var(--mlv-ease-default)}.mlv-scrollbar__track--horizontal .mlv-scrollbar__thumb{top:var(--mlv-sb-inset);bottom:var(--mlv-sb-inset);min-inline-size:var(--mlv-sb-min-thumb-size);transition:opacity var(--mlv-duration-normal) var(--mlv-ease-default),background-color var(--mlv-duration-fast) var(--mlv-ease-default),top var(--mlv-duration-normal) var(--mlv-ease-default),bottom var(--mlv-duration-normal) var(--mlv-ease-default)}@media(prefers-reduced-motion:reduce){.mlv-scrollbar,.mlv-scrollbar *,.mlv-scrollbar:before,.mlv-scrollbar:after,[class^=mlv-scrollbar__],[class*=\" mlv-scrollbar__\"],[class^=mlv-scrollbar--],[class*=\" mlv-scrollbar--\"]{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:var(--mlv-duration-instant)!important}}}\n"] }]
|
|
423
|
+
}], ctorParameters: () => [], propDecorators: { orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], scrollbarSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollbarSize", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], viewportTabIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewportTabIndex", required: false }] }], _viewport: [{ type: i0.ViewChild, args: ['viewport', { isSignal: true }] }], _trackV: [{ type: i0.ViewChild, args: ['trackV', { isSignal: true }] }], _trackH: [{ type: i0.ViewChild, args: ['trackH', { isSignal: true }] }] } });
|
|
424
|
+
|
|
425
|
+
/**
|
|
426
|
+
* Generated bundle index. Do not edit.
|
|
427
|
+
*/
|
|
428
|
+
|
|
429
|
+
export { MlvScrollbar };
|
|
430
|
+
//# sourceMappingURL=malva-ui-core-scrollbar.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"malva-ui-core-scrollbar.mjs","sources":["../../../../libs/core/scrollbar/src/lib/scrollbar/scrollbar.ts","../../../../libs/core/scrollbar/src/lib/scrollbar/scrollbar.html","../../../../libs/core/scrollbar/src/malva-ui-core-scrollbar.ts"],"sourcesContent":["import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n type ElementRef,\n inject,\n input,\n Renderer2,\n signal,\n ViewEncapsulation,\n viewChild,\n} from '@angular/core';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { InteractivityChecker } from '@angular/cdk/a11y';\nimport { MLV_SCROLLBAR_I18N } from '@malva-ui/i18n';\n\n/**\n * Elements that can plausibly be tab stops. A cheap prefilter — every hit is\n * still confirmed with the CDK's `InteractivityChecker`.\n */\nconst FOCUSABLE_CANDIDATE_SELECTOR = [\n 'a[href]',\n 'area[href]',\n 'button',\n 'input',\n 'select',\n 'textarea',\n 'iframe',\n 'object',\n 'embed',\n 'audio[controls]',\n 'video[controls]',\n 'details',\n 'summary',\n '[contenteditable]',\n '[tabindex]',\n].join(',');\n\n/** Controls which scroll axes render a custom scrollbar. */\nexport type MlvScrollbarOrientation = 'vertical' | 'horizontal' | 'both';\n\n/**\n * Custom scrollbar component that hides the native browser scrollbar and\n * renders a minimalistic custom one in accordance with the Malva UI theme.\n *\n * Wrap any scrollable content in `<mlv-scrollbar>`. The component must have\n * a defined height (set via CSS or via flex/grid sizing from a parent).\n * Native scroll behaviour is **never intercepted** — the viewport scrolls\n * exactly as if the component were not present. The custom thumb is a pure\n * visual overlay that stays in sync with the viewport's scroll position.\n *\n * @example Vertical (default)\n * ```html\n * <mlv-scrollbar style=\"height: 12rem\">\n * <p>Long content…</p>\n * </mlv-scrollbar>\n * ```\n *\n * @example Horizontal\n * ```html\n * <mlv-scrollbar orientation=\"horizontal\" style=\"width: 20rem\">\n * <div style=\"width: 60rem\">Wide content…</div>\n * </mlv-scrollbar>\n * ```\n *\n * @example Both axes\n * ```html\n * <mlv-scrollbar orientation=\"both\" style=\"height: 12rem; width: 20rem\">\n * <div style=\"height: 30rem; width: 60rem\">…</div>\n * </mlv-scrollbar>\n * ```\n */\n@Component({\n selector: 'mlv-scrollbar',\n templateUrl: './scrollbar.html',\n styleUrl: './scrollbar.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'mlv-scrollbar',\n '[class.mlv-scrollbar--disabled]': 'disabled()',\n '[class.mlv-scrollbar--dragging]': '_isDragging()',\n '[class.mlv-scrollbar--scrolling]': '_isScrolling()',\n '[style.--mlv-sb-size]': 'scrollbarSize()',\n },\n})\nexport class MlvScrollbar {\n /**\n * Which scroll axes to show the custom scrollbar on.\n * Default: `'vertical'`.\n */\n readonly orientation = input<MlvScrollbarOrientation>('vertical');\n\n /**\n * CSS length value for the scrollbar track zone width (vertical) or height\n * (horizontal). Maps to the `--mlv-sb-size` custom property on the host.\n * The visible thumb is narrower due to the cross-axis inset (`--mlv-sb-inset`).\n * Default: `'0.75rem'` (12 px track zone → 4 px visible thumb after 4 px inset each side).\n */\n readonly scrollbarSize = input<string>('0.75rem');\n\n /**\n * When `true`, hides the custom scrollbar tracks and restores the browser's\n * native scrollbar. Supports attribute syntax: `<mlv-scrollbar disabled>`.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * Custom aria-label override for the scrollable viewport region.\n * Falls back to the i18n-provided label.\n * Override when the component wraps content with a more specific purpose,\n * e.g. `ariaLabel=\"Chat messages\"`.\n *\n * The label is only written to the DOM while the viewport is itself a tab\n * stop — see `viewportTabIndex`. A viewport that is not keyboard-reachable\n * is left as a plain container, because `aria-label` is prohibited on a\n * role-less element and naming a non-interactive wrapper only adds noise.\n */\n readonly ariaLabel = input<string | undefined>(undefined);\n\n /**\n * Tab index applied to the native scroll viewport.\n *\n * The default `0` means **auto**: the viewport is a tab stop only while its\n * content holds nothing tabbable. A text-only region stays reachable so\n * keyboard users can scroll it (WCAG 2.1.1), but a region full of form\n * controls does not add a redundant stop in front of them — which is what\n * put a focus ring around an entire dialog body on open.\n *\n * Any non-zero value is applied verbatim; composite widgets that manage\n * their own focus pass `-1`.\n */\n readonly viewportTabIndex = input<number>(0);\n\n /** @protected The component's i18n strings signal. */\n protected readonly _i18n = inject(MLV_SCROLLBAR_I18N, { optional: true });\n\n /** @protected Resolved aria-label: explicit input takes precedence over i18n default. */\n protected readonly _resolvedAriaLabel = computed(\n () =>\n this.ariaLabel() ??\n this._i18n?.().scrollableRegion ??\n 'Scrollable region',\n );\n\n /**\n * @protected Whether the scrolled content currently holds a tabbable element.\n * Recomputed after render and on every content mutation.\n */\n protected readonly _hasTabbableContent = signal(false);\n\n /**\n * @protected Tab index actually written to the viewport.\n *\n * `0` is treated as \"auto\" and collapses to `-1` once the content itself is\n * keyboard-reachable; every other value passes through unchanged.\n */\n protected readonly _effectiveViewportTabIndex = computed(() => {\n const requested = this.viewportTabIndex();\n if (requested !== 0) {\n return requested;\n }\n return this._hasTabbableContent() ? -1 : 0;\n });\n\n /**\n * @protected Whether the viewport is itself reachable by keyboard.\n *\n * Only a viewport that is a tab stop is a control the user can land on, and\n * therefore the only case in which the region has to introduce and name\n * itself (WCAG 4.1.2).\n */\n protected readonly _isViewportFocusable = computed(\n () => this._effectiveViewportTabIndex() >= 0,\n );\n\n /**\n * @protected ARIA role written to the viewport, or `null` for none.\n *\n * `aria-label` is prohibited on an element with no role (implicit\n * `generic`), so the label was previously discarded by assistive technology.\n * A focusable scroll container is exposed as `group` rather than the\n * landmark `region`, so that wrapping content in `mlv-scrollbar` never\n * injects a landmark — nor a repeated \"Scrollable region\" landmark name —\n * into the page. When the viewport is not a tab stop it stays role-less and\n * unnamed: the projected content owns its own semantics.\n */\n protected readonly _viewportRole = computed(() =>\n this._isViewportFocusable() ? 'group' : null,\n );\n\n /**\n * @protected The label actually written to the viewport, or `null`.\n *\n * Mirrors `_viewportRole` so the name is never emitted without a role that\n * permits it.\n */\n protected readonly _viewportAriaLabel = computed(() =>\n this._isViewportFocusable() ? this._resolvedAriaLabel() : null,\n );\n\n /** @protected Whether the vertical track should be rendered. */\n protected readonly _showVertical = computed(\n () =>\n !this.disabled() &&\n (this.orientation() === 'vertical' || this.orientation() === 'both'),\n );\n\n /** @protected Whether the horizontal track should be rendered. */\n protected readonly _showHorizontal = computed(\n () =>\n !this.disabled() &&\n (this.orientation() === 'horizontal' || this.orientation() === 'both'),\n );\n\n /** @protected True when scrollHeight > clientHeight (vertical overflow present). */\n protected readonly _hasVerticalOverflow = signal(false);\n\n /** @protected True when scrollWidth > clientWidth (horizontal overflow present). */\n protected readonly _hasHorizontalOverflow = signal(false);\n\n /** @protected Vertical thumb top offset in pixels (set as inline style). */\n protected readonly _thumbTop = signal(0);\n\n /** @protected Vertical thumb height in pixels (set as inline style). */\n protected readonly _thumbHeight = signal(0);\n\n /** @protected Horizontal thumb left offset in pixels (set as inline style). */\n protected readonly _thumbLeft = signal(0);\n\n /** @protected Horizontal thumb width in pixels (set as inline style). */\n protected readonly _thumbWidth = signal(0);\n\n /** @protected True while the user is actively dragging a thumb. Adds `--dragging` modifier. */\n protected readonly _isDragging = signal(false);\n\n /** @protected True while scroll events are firing. Cleared after 150 ms idle. Adds `--scrolling` modifier. */\n protected readonly _isScrolling = signal(false);\n\n /** @private Reference to the inner scrollable viewport element. */\n private readonly _viewport =\n viewChild.required<ElementRef<HTMLDivElement>>('viewport');\n\n /**\n * The native scrollable viewport element.\n * Lets wrapping components (e.g. `main[mlvPage]`) observe scroll position\n * without reaching into the component's private DOM.\n */\n get viewportElement(): HTMLElement {\n return this._viewport().nativeElement;\n }\n\n /** @private Reference to the vertical track element. */\n private readonly _trackV =\n viewChild.required<ElementRef<HTMLDivElement>>('trackV');\n\n /** @private Reference to the horizontal track element. */\n private readonly _trackH =\n viewChild.required<ElementRef<HTMLDivElement>>('trackH');\n\n /** @private Minimum rendered thumb length in pixels — prevents thumb from becoming unclickable. */\n private readonly _minThumbSize = 32;\n\n /** @private Native ResizeObserver watching viewport and content size. */\n private _resizeObserver: ResizeObserver | null = null;\n\n /** @private Native MutationObserver keeping `_hasTabbableContent` in sync with projected content. */\n private _contentObserver: MutationObserver | null = null;\n\n /** @private CDK checker used to decide whether projected content is keyboard-reachable. */\n private readonly _interactivityChecker = inject(InteractivityChecker);\n\n /** @private Timeout ID for clearing the `--scrolling` modifier after idle. */\n private _scrollTimeout: ReturnType<typeof setTimeout> | null = null;\n\n /** @private DestroyRef used to clean up the ResizeObserver, timers, and drag listeners. */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @private Renderer2 used so DOM listeners are SSR-safe and unsubscribable. */\n private readonly _renderer = inject(Renderer2);\n\n constructor() {\n afterNextRender(() => {\n this._updateGeometry();\n this._updateTabbableContent();\n\n const viewportEl = this._viewport().nativeElement;\n const contentEl = viewportEl.firstElementChild;\n\n if (contentEl && typeof MutationObserver !== 'undefined') {\n // Projected content is opaque to the component, so tabbability has to\n // be re-read whenever it changes shape — a lazily rendered form, a\n // button that becomes disabled, an @if that swaps text for controls.\n this._contentObserver = new MutationObserver(() =>\n this._updateTabbableContent(),\n );\n this._contentObserver.observe(contentEl, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['tabindex', 'disabled', 'hidden', 'href', 'type'],\n });\n }\n\n if (typeof ResizeObserver === 'undefined') {\n return;\n }\n\n this._resizeObserver = new ResizeObserver(() => {\n this._updateGeometry();\n });\n\n // Observe the viewport to detect host resize (viewport fills host via position:absolute).\n this._resizeObserver.observe(viewportEl);\n // Observe the content wrapper to detect content size changes.\n if (contentEl) {\n this._resizeObserver.observe(contentEl);\n }\n });\n\n this._destroyRef.onDestroy(() => {\n this._resizeObserver?.disconnect();\n this._contentObserver?.disconnect();\n if (this._scrollTimeout !== null) {\n clearTimeout(this._scrollTimeout);\n }\n });\n }\n\n /**\n * @private Re-reads whether the projected content contains a tab stop.\n *\n * Drives `_effectiveViewportTabIndex`: a scroll region only needs to be a tab\n * stop of its own when nothing inside it already is (WCAG 2.1.1). Keeping it\n * unconditionally tabbable put a redundant stop — and a focus ring around the\n * whole region — in front of every dialog body's form controls.\n */\n private _updateTabbableContent(): void {\n const contentEl = this._viewport().nativeElement.firstElementChild;\n if (!contentEl) {\n this._hasTabbableContent.set(false);\n return;\n }\n\n const candidates = contentEl.querySelectorAll<HTMLElement>(\n FOCUSABLE_CANDIDATE_SELECTOR,\n );\n\n for (const candidate of Array.from(candidates)) {\n // `ignoreVisibility` because the CDK's visibility test is geometric and\n // the content may not have been laid out yet (and never is under jsdom).\n if (\n this._interactivityChecker.isFocusable(candidate, {\n ignoreVisibility: true,\n }) &&\n this._interactivityChecker.isTabbable(candidate)\n ) {\n this._hasTabbableContent.set(true);\n return;\n }\n }\n\n this._hasTabbableContent.set(false);\n }\n\n /** @protected Handles scroll events on the viewport. Updates thumb positions and `--scrolling` state. */\n protected _onScroll(): void {\n this._updateThumbPositions();\n\n this._isScrolling.set(true);\n if (this._scrollTimeout !== null) {\n clearTimeout(this._scrollTimeout);\n }\n this._scrollTimeout = setTimeout(() => {\n this._isScrolling.set(false);\n this._scrollTimeout = null;\n }, 150);\n }\n\n /**\n * @protected Handles `pointerdown` on a scrollbar thumb.\n * Captures the pointer and translates subsequent `pointermove` deltas into\n * viewport scroll offsets. Releases on `pointerup` or `pointercancel`.\n */\n protected _onThumbPointerDown(\n event: PointerEvent,\n axis: 'vertical' | 'horizontal',\n ): void {\n event.preventDefault();\n event.stopPropagation();\n\n const thumb = event.currentTarget as HTMLElement;\n thumb.setPointerCapture(event.pointerId);\n\n const viewportEl = this._viewport().nativeElement;\n const trackEl = (axis === 'vertical' ? this._trackV() : this._trackH())\n .nativeElement;\n\n const paddingPx =\n axis === 'vertical'\n ? parseFloat(getComputedStyle(trackEl).paddingTop)\n : parseFloat(getComputedStyle(trackEl).paddingLeft);\n\n const trackSize =\n axis === 'vertical'\n ? trackEl.offsetHeight - paddingPx * 2\n : trackEl.offsetWidth - paddingPx * 2;\n\n const thumbSize =\n axis === 'vertical' ? this._thumbHeight() : this._thumbWidth();\n const scrollRange =\n axis === 'vertical'\n ? viewportEl.scrollHeight - viewportEl.clientHeight\n : viewportEl.scrollWidth - viewportEl.clientWidth;\n\n const startPointer = axis === 'vertical' ? event.clientY : event.clientX;\n const startScroll =\n axis === 'vertical' ? viewportEl.scrollTop : viewportEl.scrollLeft;\n const scrollPerPixel =\n thumbSize < trackSize && scrollRange > 0\n ? scrollRange / (trackSize - thumbSize)\n : 0;\n\n this._isDragging.set(true);\n\n const onPointerMove = (moveEvent: PointerEvent): void => {\n const delta =\n (axis === 'vertical' ? moveEvent.clientY : moveEvent.clientX) -\n startPointer;\n if (axis === 'vertical') {\n viewportEl.scrollTop = startScroll + delta * scrollPerPixel;\n } else {\n viewportEl.scrollLeft = startScroll + delta * scrollPerPixel;\n }\n };\n\n let releaseListeners: (() => void) | null = null;\n const onPointerUp = (): void => {\n this._isDragging.set(false);\n releaseListeners?.();\n releaseListeners = null;\n };\n\n const moveDispose = this._renderer.listen(\n thumb,\n 'pointermove',\n onPointerMove,\n );\n const upDispose = this._renderer.listen(thumb, 'pointerup', onPointerUp);\n const cancelDispose = this._renderer.listen(\n thumb,\n 'pointercancel',\n onPointerUp,\n );\n\n releaseListeners = () => {\n moveDispose();\n upDispose();\n cancelDispose();\n };\n\n // Guarantee cleanup if the component is destroyed mid-drag — without this\n // the listeners would leak against the detached thumb element and\n // _isDragging would stay true.\n this._destroyRef.onDestroy(() => {\n releaseListeners?.();\n });\n }\n\n /**\n * @private Recalculates overflow detection and thumb geometry.\n * Called after first render, on ResizeObserver notifications, and on scroll.\n */\n private _updateGeometry(): void {\n const viewportEl = this._viewport().nativeElement;\n // +1 tolerance for sub-pixel rounding\n this._hasVerticalOverflow.set(\n viewportEl.scrollHeight > viewportEl.clientHeight + 1,\n );\n this._hasHorizontalOverflow.set(\n viewportEl.scrollWidth > viewportEl.clientWidth + 1,\n );\n this._updateThumbPositions();\n }\n\n /**\n * @private Recomputes thumb position and size signals from the current viewport\n * scroll state. Fast path — called on every scroll event.\n */\n private _updateThumbPositions(): void {\n const viewportEl = this._viewport().nativeElement;\n\n if (this._showVertical() && this._hasVerticalOverflow()) {\n const trackEl = this._trackV().nativeElement;\n const paddingPx = parseFloat(getComputedStyle(trackEl).paddingTop);\n const usableHeight = trackEl.offsetHeight - paddingPx * 2;\n const ratio = viewportEl.clientHeight / viewportEl.scrollHeight;\n const thumbH = Math.max(this._minThumbSize, usableHeight * ratio);\n const scrollRange = viewportEl.scrollHeight - viewportEl.clientHeight;\n const thumbT =\n scrollRange > 0\n ? paddingPx +\n (viewportEl.scrollTop / scrollRange) * (usableHeight - thumbH)\n : paddingPx;\n this._thumbHeight.set(Math.round(thumbH));\n this._thumbTop.set(Math.round(thumbT));\n }\n\n if (this._showHorizontal() && this._hasHorizontalOverflow()) {\n const trackEl = this._trackH().nativeElement;\n const paddingPx = parseFloat(getComputedStyle(trackEl).paddingLeft);\n const usableWidth = trackEl.offsetWidth - paddingPx * 2;\n const ratio = viewportEl.clientWidth / viewportEl.scrollWidth;\n const thumbW = Math.max(this._minThumbSize, usableWidth * ratio);\n const scrollRange = viewportEl.scrollWidth - viewportEl.clientWidth;\n const thumbL =\n scrollRange > 0\n ? paddingPx +\n (viewportEl.scrollLeft / scrollRange) * (usableWidth - thumbW)\n : paddingPx;\n this._thumbWidth.set(Math.round(thumbW));\n this._thumbLeft.set(Math.round(thumbL));\n }\n }\n}\n","<div\n class=\"mlv-scrollbar__viewport\"\n #viewport\n [attr.tabindex]=\"_effectiveViewportTabIndex()\"\n [attr.role]=\"_viewportRole()\"\n [attr.aria-label]=\"_viewportAriaLabel()\"\n (scroll)=\"_onScroll()\"\n>\n <div class=\"mlv-scrollbar__content\" #content>\n <ng-content />\n </div>\n</div>\n\n<!-- Custom track and thumb elements are purely visual overlays.\n Screen readers use the viewport's native scroll semantics above. -->\n<div\n class=\"mlv-scrollbar__track mlv-scrollbar__track--vertical\"\n [class.mlv-scrollbar__track--hidden]=\"!_showVertical() || !_hasVerticalOverflow()\"\n aria-hidden=\"true\"\n #trackV\n>\n <div\n class=\"mlv-scrollbar__thumb\"\n [style.top.px]=\"_thumbTop()\"\n [style.height.px]=\"_thumbHeight()\"\n (pointerdown)=\"_onThumbPointerDown($event, 'vertical')\"\n ></div>\n</div>\n\n<div\n class=\"mlv-scrollbar__track mlv-scrollbar__track--horizontal\"\n [class.mlv-scrollbar__track--hidden]=\"!_showHorizontal() || !_hasHorizontalOverflow()\"\n aria-hidden=\"true\"\n #trackH\n>\n <div\n class=\"mlv-scrollbar__thumb\"\n [style.left.px]=\"_thumbLeft()\"\n [style.width.px]=\"_thumbWidth()\"\n (pointerdown)=\"_onThumbPointerDown($event, 'horizontal')\"\n ></div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|