@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-input.mjs","sources":["../../../../libs/core/input/src/lib/input/input-native.ts","../../../../libs/core/input/src/lib/input/input-value-accessor.ts","../../../../libs/core/input/src/lib/input/input.ts","../../../../libs/core/input/src/lib/input/input.html","../../../../libs/core/input/src/lib/input/password-strength.ts","../../../../libs/core/input/src/malva-ui-core-input.ts"],"sourcesContent":["import { Directive, ElementRef, inject } from '@angular/core';\n\n/**\n * Marks a consumer-provided native `<input>` that should be adopted as the\n * control element of a `<mlv-input projectControl>`.\n *\n * `mlv-input` normally renders and owns its own internal `<input>`. Some\n * headless behaviours — most notably `@angular/aria`'s combobox family, whose\n * trigger directive (`[ngCombobox]`, formerly `input[ngComboboxInput]`) must\n * sit directly on the interactive `<input>` element — need to attach their own\n * attribute directives to that input. Because Angular cannot attach an external\n * directive to a component's *internal* template element, `mlv-input` instead\n * exposes an opt-in projection slot: set `projectControl` on `<mlv-input>` and\n * project your own `<input mlvInputNative …>` carrying whatever directives you\n * need. This directive applies the shared `mlv-input__native` styling hook and\n * makes the element discoverable to the host `mlv-input` so focus/selection\n * helpers keep working.\n *\n * @example\n * ```html\n * <mlv-input bare projectControl>\n * <input mlvInputNative ngCombobox [(value)]=\"query\" [(expanded)]=\"open\" />\n * </mlv-input>\n * ```\n */\n@Directive({\n selector: 'input[mlvInputNative]',\n exportAs: 'mlvInputNative',\n host: {\n class: 'mlv-input__native',\n },\n})\nexport class MlvInputNative {\n /**\n * @protected The projected native `<input>` element reference, used by the\n * host `mlv-input` to forward `focus()` / `select()` calls.\n */\n protected readonly _elementRef =\n inject<ElementRef<HTMLInputElement>>(ElementRef);\n\n /** The projected native `<input>` element. */\n get nativeElement(): HTMLInputElement {\n return this._elementRef.nativeElement;\n }\n}\n","import type { Signal } from '@angular/core';\nimport { InjectionToken } from '@angular/core';\n\n/**\n * @internal Minimal host contract consumed by input-attached behavior\n * directives without importing the concrete input component.\n */\nexport interface MlvInputValueAccessor {\n readonly value: Signal<string>;\n}\n\n/** @internal Injection token for the active input value signal. */\nexport const MLV_INPUT_VALUE = new InjectionToken<MlvInputValueAccessor>(\n 'MLV_INPUT_VALUE',\n);\n","import type { ElementRef } from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n contentChild,\n forwardRef,\n input,\n model,\n output,\n viewChild,\n ViewEncapsulation,\n computed,\n} from '@angular/core';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport type { MlvFormState, MlvFormControl } from '@malva-ui/core/form-utils';\nimport {\n MlvSignalFormControlBase,\n MlvDescription,\n MlvFormControlWrapper,\n MlvFormControlWrapperControl,\n MlvHint,\n MlvLabel,\n MLV_FORM_CONTROL,\n MlvMessage,\n} from '@malva-ui/core/form-utils';\nimport { MlvInputNative } from './input-native';\nimport { MLV_INPUT_VALUE } from './input-value-accessor';\n\nexport type MlvInputType =\n | 'text'\n | 'password'\n | 'email'\n | 'number'\n | 'tel'\n | 'search'\n | 'url';\n/**\n * Visual/validation state of the input. Mirrors {@link MlvFormState}.\n */\nexport type MlvInputState = MlvFormState;\nexport type MlvInputInputMode =\n | 'none'\n | 'text'\n | 'decimal'\n | 'numeric'\n | 'tel'\n | 'search'\n | 'email'\n | 'url';\n\n@Component({\n selector: 'mlv-input',\n imports: [\n MlvLabel,\n MlvHint,\n MlvDescription,\n MlvFormControlWrapper,\n MlvFormControlWrapperControl,\n MlvMessage,\n ],\n templateUrl: './input.html',\n styleUrl: './input.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: MLV_FORM_CONTROL,\n useExisting: forwardRef(() => MlvInput),\n },\n {\n provide: MLV_INPUT_VALUE,\n useExisting: forwardRef(() => MlvInput),\n },\n ],\n host: {\n class: 'mlv-input',\n '[class.mlv-input--default]': 'resolvedState() === \"default\"',\n '[class.mlv-input--success]': 'resolvedState() === \"success\"',\n '[class.mlv-input--info]': 'resolvedState() === \"info\"',\n '[class.mlv-input--warning]': 'resolvedState() === \"warning\"',\n '[class.mlv-input--error]': 'resolvedState() === \"error\"',\n '[class.mlv-input--disabled]': 'disabled()',\n '[class.mlv-input--focused]': 'focused()',\n },\n})\nexport class MlvInput\n extends MlvSignalFormControlBase<string>\n implements MlvFormControl\n{\n readonly type = input<MlvInputType>('text');\n readonly placeholder = input('');\n\n /**\n * Native HTML `autocomplete` hint forwarded to the underlying `<input>`.\n * When empty, no `autocomplete` attribute is rendered.\n * @default ''\n */\n readonly autocomplete = input<string>('');\n\n /**\n * Native HTML `inputmode` attribute forwarded to the underlying `<input>`.\n * Controls the virtual keyboard on mobile devices.\n * @default null\n */\n readonly inputMode = input<MlvInputInputMode | null>(null);\n\n /**\n * Maximum number of characters the user may enter. Forwarded to the\n * underlying `<input>` `maxlength` attribute. `null` removes the cap.\n */\n readonly maxLength = input<number | null, number | null | undefined>(null, {\n transform: (value) => value ?? null,\n });\n\n /**\n * Minimum number of characters the user must enter for the form control\n * to validate. Forwarded to the underlying `<input>` `minlength` attribute.\n */\n readonly minLength = input<number | null, number | null | undefined>(null, {\n transform: (value) => value ?? null,\n });\n\n /**\n * Native HTML5 validation pattern (regular-expression source) forwarded\n * to the underlying `<input>` `pattern` attribute.\n */\n readonly pattern = input<\n string | null,\n string | RegExp | readonly RegExp[] | null | undefined\n >(null, {\n // Signal forms' `pattern` rule binds `readonly RegExp[]`; the native\n // attribute wants one regex source. Normalise: single source pass-through,\n // multiple sources OR-combined.\n transform: (value) => {\n if (value == null) return null;\n if (typeof value === 'string') return value;\n if (value instanceof RegExp) return value.source;\n if (value.length === 0) return null;\n return value.length === 1\n ? value[0].source\n : value.map((r) => `(?:${r.source})`).join('|');\n },\n });\n\n /**\n * Native HTML `name` attribute. Required for non-Angular form submission;\n * Reactive Forms / template-driven forms do not need this.\n */\n readonly name = input<string | null, string | null | undefined>(null, {\n transform: (value) => value ?? null,\n });\n\n /**\n * When `true`, the underlying `<input>` is focused as soon as it mounts.\n * Use sparingly — autofocus is generally an a11y anti-pattern outside of\n * dialogs and confirmation flows.\n */\n readonly autofocus = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * Numeric `min` attribute forwarded to the underlying `<input>`.\n * Only meaningful when `type` is `'number'`.\n */\n readonly min = input<\n number | string | null,\n number | string | null | undefined\n >(null, { transform: (value) => value ?? null });\n\n /**\n * Numeric `max` attribute forwarded to the underlying `<input>`.\n * Only meaningful when `type` is `'number'`.\n */\n readonly max = input<\n number | string | null,\n number | string | null | undefined\n >(null, { transform: (value) => value ?? null });\n\n /**\n * Numeric `step` attribute forwarded to the underlying `<input>`.\n * Only meaningful when `type` is `'number'`. `null` falls back to the\n * browser default of `1`.\n */\n readonly step = input<number | null, number | null | undefined>(null, {\n transform: (value) => value ?? null,\n });\n\n /**\n * When `true`, renders only the bare `<input>` element with no\n * `mlv-form-control-wrapper` chrome (no label, no message, no\n * prefix/suffix slots). Used by composite controls (combobox,\n * tokenizer, command-palette, color-picker) that own their own\n * surrounding container.\n */\n readonly bare = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * When `true`, `mlv-input` does not render its own internal `<input>` and\n * instead adopts a consumer-projected `<input mlvInputNative>` as the control\n * element. Opt in when an external attribute directive must sit directly on\n * the native input — e.g. `@angular/aria`'s combobox trigger, which requires\n * `[ngCombobox]` on the `<input>` itself. In this mode the projected input\n * owns its own value/keyboard wiring; `mlv-input` provides the surrounding\n * chrome, styling hook (`mlv-input__native`), and focus/select forwarding.\n *\n * Ignored unless a matching `<input mlvInputNative>` is projected.\n */\n readonly projectControl = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * Optional explicit `role` attribute forwarded to the underlying\n * `<input>`. Use for combobox-style consumers — leave `null` for\n * a vanilla text field.\n */\n readonly role = input<string | null>(null);\n\n /**\n * Forwarded to `aria-expanded`. Use with `role=\"combobox\"` to\n * communicate dropdown state.\n */\n readonly ariaExpanded = input<boolean | string | null>(null);\n\n /**\n * Forwarded to `aria-haspopup` (typically `'listbox'`).\n */\n readonly ariaHasPopup = input<string | null>(null);\n\n /**\n * Forwarded to `aria-autocomplete` (typically `'list'`). Use with\n * `role=\"combobox\"` to describe the autocomplete behaviour of the field.\n */\n readonly ariaAutocomplete = input<string | null>(null);\n\n /**\n * Forwarded to `aria-controls` — the id of the listbox / popup the\n * input drives.\n */\n readonly ariaControls = input<string | null>(null);\n\n /**\n * Forwarded to `aria-activedescendant` — the id of the currently\n * highlighted option in the listbox.\n */\n readonly ariaActiveDescendant = input<string | null>(null);\n\n /**\n * Explicit `aria-describedby` for the underlying `<input>`, overriding the\n * ids the control derives from its own `description` / `message`. Composite\n * controls (`mlv-pin-input`, `mlv-tokenizer`, `mlv-combobox`) that render the\n * description and message themselves point the inner input here.\n */\n readonly ariaDescribedBy = input<string | null>(null);\n\n /**\n * The input's text value — the signal-forms `FormValueControl` model.\n * Two-way bindable (`[(value)]`), one-way bindable by composite controls\n * (`[value]=\"searchQuery()\"`), and kept in sync with the bound field by\n * `[formField]` / `[formControl]` / `ngModel`.\n */\n readonly value = model<string>('');\n\n /**\n * Emitted when the underlying native `<input>` gains focus. Re-emitted from\n * the input's own `focus` handler so composite controls (e.g. `mlv-combobox`)\n * can react to focus without relying on the non-bubbling native `focus`\n * event reaching the `mlv-input` host. Carries the original `FocusEvent`.\n */\n readonly inputFocus = output<FocusEvent>();\n\n /**\n * Emitted when the underlying native `<input>` loses focus. Re-emitted from\n * the input's own `blur` handler (fired after the touch output), so composite\n * controls can run blur-driven logic (close dropdowns, revert text, mark\n * touched) reliably. Carries the original `FocusEvent`.\n */\n readonly inputBlur = output<FocusEvent>();\n\n /**\n * @private Reference to the internally-rendered native `<input>` element so\n * the component can imperatively focus / select its contents.\n */\n private readonly _nativeRef =\n viewChild<ElementRef<HTMLInputElement>>('native');\n\n /**\n * @private Reference to a consumer-projected `<input mlvInputNative>` used\n * when {@link projectControl} is enabled.\n */\n private readonly _projectedNative = contentChild(MlvInputNative);\n\n /**\n * @private Resolves the active native `<input>` — the projected one when\n * projection is enabled and present, otherwise the internally-rendered input.\n */\n private _resolveNative(): HTMLInputElement | null {\n if (this.projectControl()) {\n return this._projectedNative()?.nativeElement ?? null;\n }\n return this._nativeRef()?.nativeElement ?? null;\n }\n\n /**\n * Direct access to the underlying native `<input>`. Use sparingly —\n * required only for selection-range / paste-distribution flows in\n * composite controls. Resolves to the projected input when\n * {@link projectControl} is enabled.\n */\n get nativeElement(): HTMLInputElement | null {\n return this._resolveNative();\n }\n\n /**\n * Focuses the underlying native input.\n */\n focus(): void {\n this._resolveNative()?.focus();\n }\n\n /**\n * Selects the current text inside the underlying native input.\n */\n select(): void {\n this._resolveNative()?.select();\n }\n\n onInput(event: Event): void {\n this.value.set((event.target as HTMLInputElement).value);\n }\n\n /**\n * Handles the native `<input>` focus event: sets the focused state and\n * re-emits {@link inputFocus} for composite-control consumers.\n */\n onFocus(event: FocusEvent): void {\n this.setFocused(true);\n this.inputFocus.emit(event);\n }\n\n onBlur(event: FocusEvent): void {\n this.setFocused(false);\n this._markTouched();\n this.inputBlur.emit(event);\n }\n\n /** Whether the control holds a clearable value — Non-empty text present. */\n readonly hasValue = computed(() => (this.value() ?? '').length > 0);\n\n /** Clears the text value (wired to the wrapper's clear button). */\n clearValue(): void {\n this.value.set('');\n }\n}\n","@if (bare()) { @if (projectControl()) {\n<!-- Consumer-projected native input (e.g. carrying @angular/aria's [ngCombobox]). -->\n<ng-content select=\"input[mlvInputNative]\" />\n} @else {\n<!-- autofocus is an opt-in API forwarded to the native input (see best-practices.md);\n it stays off unless the consumer explicitly sets it. -->\n<!-- eslint-disable @angular-eslint/template/no-autofocus -->\n<input\n #native\n class=\"mlv-input__native\"\n [id]=\"id()\"\n [type]=\"type()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"computedDisabled()\"\n [readOnly]=\"readonly()\"\n [value]=\"value() ?? ''\"\n [attr.name]=\"name()\"\n [attr.autocomplete]=\"autocomplete() || null\"\n [attr.autofocus]=\"autofocus() ? '' : null\"\n [attr.inputmode]=\"inputMode()\"\n [attr.maxlength]=\"maxLength()\"\n [attr.minlength]=\"minLength()\"\n [attr.pattern]=\"pattern()\"\n [attr.min]=\"min()\"\n [attr.max]=\"max()\"\n [attr.step]=\"step()\"\n [attr.role]=\"role()\"\n [attr.aria-expanded]=\"ariaExpanded()\"\n [attr.aria-haspopup]=\"ariaHasPopup()\"\n [attr.aria-autocomplete]=\"ariaAutocomplete()\"\n [attr.aria-controls]=\"ariaControls()\"\n [attr.aria-activedescendant]=\"ariaActiveDescendant()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-required]=\"required() || null\"\n [attr.aria-invalid]=\"resolvedState() === 'error'\"\n [attr.aria-describedby]=\"ariaDescribedBy() ?? _describedBy()\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n/>\n<!-- eslint-enable @angular-eslint/template/no-autofocus -->\n} } @else {\n<mlv-form-control-wrapper (clear)=\"clearValue()\">\n @if (label() || hint()) {\n <mlv-label [for]=\"id()\" [required]=\"required()\">\n {{ label() }} @if (hint()) {\n <mlv-hint>{{ hint() }}</mlv-hint>\n }\n </mlv-label>\n }\n\n <ng-template mlvFormControlWrapperControl>\n @if (projectControl()) {\n <!-- Consumer-projected native input (e.g. carrying @angular/aria's [ngCombobox]). -->\n <ng-content select=\"input[mlvInputNative]\" />\n } @else {\n <!-- eslint-disable @angular-eslint/template/no-autofocus -->\n <input\n #native\n class=\"mlv-input__native\"\n [id]=\"id()\"\n [type]=\"type()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"computedDisabled()\"\n [readOnly]=\"readonly()\"\n [value]=\"value() ?? ''\"\n [attr.name]=\"name()\"\n [attr.autocomplete]=\"autocomplete() || null\"\n [attr.autofocus]=\"autofocus() ? '' : null\"\n [attr.inputmode]=\"inputMode()\"\n [attr.maxlength]=\"maxLength()\"\n [attr.minlength]=\"minLength()\"\n [attr.pattern]=\"pattern()\"\n [attr.min]=\"min()\"\n [attr.max]=\"max()\"\n [attr.step]=\"step()\"\n [attr.role]=\"role()\"\n [attr.aria-expanded]=\"ariaExpanded()\"\n [attr.aria-haspopup]=\"ariaHasPopup()\"\n [attr.aria-autocomplete]=\"ariaAutocomplete()\"\n [attr.aria-controls]=\"ariaControls()\"\n [attr.aria-activedescendant]=\"ariaActiveDescendant()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-required]=\"required() || null\"\n [attr.aria-invalid]=\"resolvedState() === 'error'\"\n [attr.aria-describedby]=\"ariaDescribedBy() ?? _describedBy()\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n <!-- eslint-enable @angular-eslint/template/no-autofocus -->\n }\n </ng-template>\n\n @if (description()) {\n <mlv-description [id]=\"_descriptionId()\">{{ description() }}</mlv-description>\n } @if (message()) {\n <mlv-message [id]=\"_messageId()\" [state]=\"resolvedState()\">\n {{ message() }}\n </mlv-message>\n }\n</mlv-form-control-wrapper>\n}\n","import { computed, Directive, inject, input } from '@angular/core';\nimport { MLV_INPUT_VALUE } from './input-value-accessor';\n\n/**\n * A synchronous password-strength rule supplied by the consumer.\n *\n * Return `true` when the password satisfies the rule and `false` otherwise.\n */\nexport interface MlvPasswordStrengthRule {\n (value: string): boolean;\n}\n\n/**\n * Headless password-strength calculator for `mlv-input`.\n *\n * The directive evaluates consumer-provided rules against the input's current\n * value and exposes reactive score metadata through `exportAs`. It renders no\n * UI, allowing consumers to present bars, text, emoji, or another indicator.\n */\n@Directive({\n selector: 'mlv-input[mlvPasswordStrength]',\n exportAs: 'mlvPasswordStrength',\n})\nexport class MlvPasswordStrength {\n /**\n * Synchronous rules evaluated against the current input value.\n */\n readonly mlvPasswordStrength = input<readonly MlvPasswordStrengthRule[]>([]);\n\n /** @private Input value accessor provided by the host `mlv-input`. */\n private readonly _input = inject(MLV_INPUT_VALUE);\n\n /** Number of rules currently satisfied by the input value. */\n readonly score = computed(() => {\n const value = this._input.value() ?? '';\n return this.mlvPasswordStrength().reduce(\n (total, rule) => total + (rule(value) ? 1 : 0),\n 0,\n );\n });\n\n /** Total number of configured rules. */\n readonly maxScore = computed(() => this.mlvPasswordStrength().length);\n\n /**\n * Normalized score from `0` to `1`. Returns `0` when no rules are configured.\n */\n readonly ratio = computed(() => {\n const maximum = this.maxScore();\n return maximum === 0 ? 0 : this.score() / maximum;\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, inject, PLATFORM_ID, computed, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
|
|
3
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
4
|
+
|
|
5
|
+
/** Returns `true` when running in a macOS browser. */
|
|
6
|
+
function isMacPlatform(platformId) {
|
|
7
|
+
if (!isPlatformBrowser(platformId))
|
|
8
|
+
return false;
|
|
9
|
+
return (/mac/i.test(navigator.platform ?? '') || /mac/i.test(navigator.userAgent));
|
|
10
|
+
}
|
|
11
|
+
const MAC_LABELS = {
|
|
12
|
+
cmd: '⌘',
|
|
13
|
+
command: '⌘',
|
|
14
|
+
meta: '⌘',
|
|
15
|
+
ctrl: '⌃',
|
|
16
|
+
control: '⌃',
|
|
17
|
+
shift: '⇧',
|
|
18
|
+
alt: '⌥',
|
|
19
|
+
option: '⌥',
|
|
20
|
+
enter: '↵',
|
|
21
|
+
return: '↵',
|
|
22
|
+
backspace: '⌫',
|
|
23
|
+
delete: '⌦',
|
|
24
|
+
escape: '⎋',
|
|
25
|
+
esc: '⎋',
|
|
26
|
+
tab: '⇥',
|
|
27
|
+
space: '␣',
|
|
28
|
+
up: '↑',
|
|
29
|
+
down: '↓',
|
|
30
|
+
left: '←',
|
|
31
|
+
right: '→',
|
|
32
|
+
home: 'Home',
|
|
33
|
+
end: 'End',
|
|
34
|
+
pageup: 'PgUp',
|
|
35
|
+
pagedown: 'PgDn',
|
|
36
|
+
};
|
|
37
|
+
const WIN_LABELS = {
|
|
38
|
+
cmd: 'Ctrl',
|
|
39
|
+
command: 'Ctrl',
|
|
40
|
+
meta: 'Win',
|
|
41
|
+
ctrl: 'Ctrl',
|
|
42
|
+
control: 'Ctrl',
|
|
43
|
+
shift: 'Shift',
|
|
44
|
+
alt: 'Alt',
|
|
45
|
+
option: 'Alt',
|
|
46
|
+
enter: 'Enter',
|
|
47
|
+
return: 'Enter',
|
|
48
|
+
backspace: 'Backspace',
|
|
49
|
+
delete: 'Del',
|
|
50
|
+
escape: 'Esc',
|
|
51
|
+
esc: 'Esc',
|
|
52
|
+
tab: 'Tab',
|
|
53
|
+
space: 'Space',
|
|
54
|
+
up: '↑',
|
|
55
|
+
down: '↓',
|
|
56
|
+
left: '←',
|
|
57
|
+
right: '→',
|
|
58
|
+
home: 'Home',
|
|
59
|
+
end: 'End',
|
|
60
|
+
pageup: 'PgUp',
|
|
61
|
+
pagedown: 'PgDn',
|
|
62
|
+
};
|
|
63
|
+
/** Resolves a raw key string to a display label for the given OS. */
|
|
64
|
+
function resolveKeyLabel(key, isMac) {
|
|
65
|
+
const normalized = key.toLowerCase();
|
|
66
|
+
const map = isMac ? MAC_LABELS : WIN_LABELS;
|
|
67
|
+
return map[normalized] ?? key.toUpperCase();
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Keyboard shortcut display component. Renders an array of key names
|
|
71
|
+
* as styled `<kbd>` elements separated by a configurable separator.
|
|
72
|
+
*
|
|
73
|
+
* OS detection swaps modifier labels: Mac shows `⌘`, `⌃`, `⇧`, `⌥`;
|
|
74
|
+
* Windows/Linux shows `Ctrl`, `Shift`, `Alt`, etc.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```html
|
|
78
|
+
* <!-- Renders ⌘ + K on Mac, Ctrl + K on Windows -->
|
|
79
|
+
* <mlv-kbd [keys]="['cmd', 'k']" />
|
|
80
|
+
*
|
|
81
|
+
* <!-- Custom separator -->
|
|
82
|
+
* <mlv-kbd [keys]="['ctrl', 'shift', 'p']" separator=" " />
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
class MlvKbd {
|
|
86
|
+
/**
|
|
87
|
+
* The ordered list of key names to display.
|
|
88
|
+
* Accepts canonical names (`'cmd'`, `'shift'`, `'enter'`, etc.) or any
|
|
89
|
+
* plain string which will be uppercased as a fallback label.
|
|
90
|
+
*
|
|
91
|
+
* @example `['cmd', 'k']` → `⌘ + K` (Mac) / `Ctrl + K` (Win)
|
|
92
|
+
*/
|
|
93
|
+
keys = input.required(/* @ts-ignore */
|
|
94
|
+
...(ngDevMode ? [{ debugName: "keys" }] : /* istanbul ignore next */ []));
|
|
95
|
+
/**
|
|
96
|
+
* The string rendered between each key element.
|
|
97
|
+
* Defaults to `'+'`.
|
|
98
|
+
*/
|
|
99
|
+
separator = input('+', /* @ts-ignore */
|
|
100
|
+
...(ngDevMode ? [{ debugName: "separator" }] : /* istanbul ignore next */ []));
|
|
101
|
+
/** @private Resolved OS flag — true on macOS browsers. */
|
|
102
|
+
_isMac = isMacPlatform(inject(PLATFORM_ID));
|
|
103
|
+
/** @protected Resolved key labels for the template. */
|
|
104
|
+
_resolvedKeys = computed(() => this.keys().map((k) => ({
|
|
105
|
+
key: k,
|
|
106
|
+
label: resolveKeyLabel(k, this._isMac),
|
|
107
|
+
})), /* @ts-ignore */
|
|
108
|
+
...(ngDevMode ? [{ debugName: "_resolvedKeys" }] : /* istanbul ignore next */ []));
|
|
109
|
+
/** @private Accessible label joining all resolved key names. */
|
|
110
|
+
_ariaLabel = computed(() => this._resolvedKeys()
|
|
111
|
+
.map((rk) => rk.label)
|
|
112
|
+
.join(' ' + this.separator() + ' '), /* @ts-ignore */
|
|
113
|
+
...(ngDevMode ? [{ debugName: "_ariaLabel" }] : /* istanbul ignore next */ []));
|
|
114
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvKbd, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
115
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: MlvKbd, isStandalone: true, selector: "mlv-kbd", inputs: { keys: { classPropertyName: "keys", publicName: "keys", isSignal: true, isRequired: true, transformFunction: null }, separator: { classPropertyName: "separator", publicName: "separator", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "aria-label": "" }, properties: { "attr.aria-label": "_ariaLabel()" }, classAttribute: "mlv-kbd" }, ngImport: i0, template: "@for (rk of _resolvedKeys(); track rk.key + $index) { @if ($index > 0) {\n<span class=\"mlv-kbd__separator\" aria-hidden=\"true\">{{ separator() }}</span>\n}\n<kbd class=\"mlv-kbd__key\">{{ rk.label }}</kbd>\n}\n", styles: ["@layer mlv.components{.mlv-kbd{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-code);font-size:var(--mlv-typography-body-s-size)}.mlv-kbd *{box-sizing:border-box}.mlv-kbd{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.25rem;vertical-align:middle}.mlv-kbd__key{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;padding:0 .375rem;font-family:var(--mlv-typography-family-code);font-size:var(--mlv-typography-body-s-size);font-weight:500;line-height:1;white-space:nowrap;color:var(--mlv-text-primary);background-color:var(--mlv-background-raised);border:var(--mlv-stroke-width) solid var(--mlv-border-normal);border-bottom-width:.1875rem;border-radius:var(--mlv-radius-s);box-shadow:0 .0625rem 0 var(--mlv-border-normal);-webkit-user-select:none;user-select:none}.mlv-kbd__separator{display:inline-flex;align-items:center;color:var(--mlv-text-secondary);font-size:var(--mlv-typography-body-s-size);-webkit-user-select:none;user-select:none}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
116
|
+
}
|
|
117
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvKbd, decorators: [{
|
|
118
|
+
type: Component,
|
|
119
|
+
args: [{ selector: 'mlv-kbd', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [], host: {
|
|
120
|
+
class: 'mlv-kbd',
|
|
121
|
+
'aria-label': '',
|
|
122
|
+
'[attr.aria-label]': '_ariaLabel()',
|
|
123
|
+
}, template: "@for (rk of _resolvedKeys(); track rk.key + $index) { @if ($index > 0) {\n<span class=\"mlv-kbd__separator\" aria-hidden=\"true\">{{ separator() }}</span>\n}\n<kbd class=\"mlv-kbd__key\">{{ rk.label }}</kbd>\n}\n", styles: ["@layer mlv.components{.mlv-kbd{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-code);font-size:var(--mlv-typography-body-s-size)}.mlv-kbd *{box-sizing:border-box}.mlv-kbd{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.25rem;vertical-align:middle}.mlv-kbd__key{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;padding:0 .375rem;font-family:var(--mlv-typography-family-code);font-size:var(--mlv-typography-body-s-size);font-weight:500;line-height:1;white-space:nowrap;color:var(--mlv-text-primary);background-color:var(--mlv-background-raised);border:var(--mlv-stroke-width) solid var(--mlv-border-normal);border-bottom-width:.1875rem;border-radius:var(--mlv-radius-s);box-shadow:0 .0625rem 0 var(--mlv-border-normal);-webkit-user-select:none;user-select:none}.mlv-kbd__separator{display:inline-flex;align-items:center;color:var(--mlv-text-secondary);font-size:var(--mlv-typography-body-s-size);-webkit-user-select:none;user-select:none}}\n"] }]
|
|
124
|
+
}], propDecorators: { keys: [{ type: i0.Input, args: [{ isSignal: true, alias: "keys", required: true }] }], separator: [{ type: i0.Input, args: [{ isSignal: true, alias: "separator", required: false }] }] } });
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Generated bundle index. Do not edit.
|
|
128
|
+
*/
|
|
129
|
+
|
|
130
|
+
export { MlvKbd };
|
|
131
|
+
//# sourceMappingURL=malva-ui-core-kbd.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"malva-ui-core-kbd.mjs","sources":["../../../../libs/core/kbd/src/lib/kbd/kbd.ts","../../../../libs/core/kbd/src/lib/kbd/kbd.html","../../../../libs/core/kbd/src/malva-ui-core-kbd.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n PLATFORM_ID,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\n/**\n * Canonical key names accepted by the `keys` input.\n * These map to human-readable labels and OS-specific symbols.\n */\nexport type MlvKbdKey =\n | 'cmd'\n | 'command'\n | 'ctrl'\n | 'control'\n | 'shift'\n | 'alt'\n | 'option'\n | 'meta'\n | 'enter'\n | 'return'\n | 'backspace'\n | 'delete'\n | 'escape'\n | 'esc'\n | 'tab'\n | 'space'\n | 'up'\n | 'down'\n | 'left'\n | 'right'\n | 'home'\n | 'end'\n | 'pageup'\n | 'pagedown'\n | (string & {});\n\n/** Resolved label/symbol for a single key. */\nexport interface MlvResolvedKey {\n /** Display label rendered inside the `<kbd>` element. */\n label: string;\n /** Original key name, for aria labelling. */\n key: string;\n}\n\n/** Returns `true` when running in a macOS browser. */\nfunction isMacPlatform(platformId: object): boolean {\n if (!isPlatformBrowser(platformId)) return false;\n return (\n /mac/i.test(navigator.platform ?? '') || /mac/i.test(navigator.userAgent)\n );\n}\n\nconst MAC_LABELS: Record<string, string> = {\n cmd: '⌘',\n command: '⌘',\n meta: '⌘',\n ctrl: '⌃',\n control: '⌃',\n shift: '⇧',\n alt: '⌥',\n option: '⌥',\n enter: '↵',\n return: '↵',\n backspace: '⌫',\n delete: '⌦',\n escape: '⎋',\n esc: '⎋',\n tab: '⇥',\n space: '␣',\n up: '↑',\n down: '↓',\n left: '←',\n right: '→',\n home: 'Home',\n end: 'End',\n pageup: 'PgUp',\n pagedown: 'PgDn',\n};\n\nconst WIN_LABELS: Record<string, string> = {\n cmd: 'Ctrl',\n command: 'Ctrl',\n meta: 'Win',\n ctrl: 'Ctrl',\n control: 'Ctrl',\n shift: 'Shift',\n alt: 'Alt',\n option: 'Alt',\n enter: 'Enter',\n return: 'Enter',\n backspace: 'Backspace',\n delete: 'Del',\n escape: 'Esc',\n esc: 'Esc',\n tab: 'Tab',\n space: 'Space',\n up: '↑',\n down: '↓',\n left: '←',\n right: '→',\n home: 'Home',\n end: 'End',\n pageup: 'PgUp',\n pagedown: 'PgDn',\n};\n\n/** Resolves a raw key string to a display label for the given OS. */\nfunction resolveKeyLabel(key: string, isMac: boolean): string {\n const normalized = key.toLowerCase();\n const map = isMac ? MAC_LABELS : WIN_LABELS;\n return map[normalized] ?? key.toUpperCase();\n}\n\n/**\n * Keyboard shortcut display component. Renders an array of key names\n * as styled `<kbd>` elements separated by a configurable separator.\n *\n * OS detection swaps modifier labels: Mac shows `⌘`, `⌃`, `⇧`, `⌥`;\n * Windows/Linux shows `Ctrl`, `Shift`, `Alt`, etc.\n *\n * @example\n * ```html\n * <!-- Renders ⌘ + K on Mac, Ctrl + K on Windows -->\n * <mlv-kbd [keys]=\"['cmd', 'k']\" />\n *\n * <!-- Custom separator -->\n * <mlv-kbd [keys]=\"['ctrl', 'shift', 'p']\" separator=\" \" />\n * ```\n */\n@Component({\n selector: 'mlv-kbd',\n templateUrl: './kbd.html',\n styleUrl: './kbd.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [],\n host: {\n class: 'mlv-kbd',\n 'aria-label': '',\n '[attr.aria-label]': '_ariaLabel()',\n },\n})\nexport class MlvKbd {\n /**\n * The ordered list of key names to display.\n * Accepts canonical names (`'cmd'`, `'shift'`, `'enter'`, etc.) or any\n * plain string which will be uppercased as a fallback label.\n *\n * @example `['cmd', 'k']` → `⌘ + K` (Mac) / `Ctrl + K` (Win)\n */\n readonly keys = input.required<MlvKbdKey[]>();\n\n /**\n * The string rendered between each key element.\n * Defaults to `'+'`.\n */\n readonly separator = input<string>('+');\n\n /** @private Resolved OS flag — true on macOS browsers. */\n private readonly _isMac = isMacPlatform(inject(PLATFORM_ID));\n\n /** @protected Resolved key labels for the template. */\n protected readonly _resolvedKeys = computed<MlvResolvedKey[]>(() =>\n this.keys().map((k) => ({\n key: k,\n label: resolveKeyLabel(k, this._isMac),\n })),\n );\n\n /** @private Accessible label joining all resolved key names. */\n protected readonly _ariaLabel = computed(() =>\n this._resolvedKeys()\n .map((rk) => rk.label)\n .join(' ' + this.separator() + ' '),\n );\n}\n","@for (rk of _resolvedKeys(); track rk.key + $index) { @if ($index > 0) {\n<span class=\"mlv-kbd__separator\" aria-hidden=\"true\">{{ separator() }}</span>\n}\n<kbd class=\"mlv-kbd__key\">{{ rk.label }}</kbd>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Directive, InjectionToken, inject, PLATFORM_ID, signal, DestroyRef, effect, Injectable, contentChild, computed, input, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
|
|
3
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
4
|
+
import { MlvStructural } from '@malva-ui/cdk/utils';
|
|
5
|
+
import { isPlatformBrowser, DOCUMENT, NgTemplateOutlet } from '@angular/common';
|
|
6
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
7
|
+
import { fromEvent } from 'rxjs';
|
|
8
|
+
|
|
9
|
+
class MlvLayoutTop extends MlvStructural {
|
|
10
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvLayoutTop, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
11
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: MlvLayoutTop, isStandalone: true, selector: "[mlvLayoutTop]", usesInheritance: true, ngImport: i0 });
|
|
12
|
+
}
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvLayoutTop, decorators: [{
|
|
14
|
+
type: Directive,
|
|
15
|
+
args: [{
|
|
16
|
+
selector: '[mlvLayoutTop]',
|
|
17
|
+
}]
|
|
18
|
+
}] });
|
|
19
|
+
|
|
20
|
+
class MlvLayoutSide extends MlvStructural {
|
|
21
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvLayoutSide, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
22
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: MlvLayoutSide, isStandalone: true, selector: "[mlvLayoutSide]", usesInheritance: true, ngImport: i0 });
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvLayoutSide, decorators: [{
|
|
25
|
+
type: Directive,
|
|
26
|
+
args: [{
|
|
27
|
+
selector: '[mlvLayoutSide]',
|
|
28
|
+
}]
|
|
29
|
+
}] });
|
|
30
|
+
|
|
31
|
+
function getFromStorage(key) {
|
|
32
|
+
if (typeof localStorage === 'undefined' &&
|
|
33
|
+
typeof sessionStorage === 'undefined') {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
let value;
|
|
37
|
+
try {
|
|
38
|
+
value = localStorage.getItem(key);
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
try {
|
|
42
|
+
value = sessionStorage.getItem(key);
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
value = null;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (!value) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
try {
|
|
52
|
+
return JSON.parse(value);
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
// Legacy or hand-edited storage value (e.g. a bare `dark` string instead
|
|
56
|
+
// of the JSON-encoded `"dark"`). Accept it as-is so a malformed/legacy
|
|
57
|
+
// entry degrades gracefully instead of throwing during construction —
|
|
58
|
+
// `isMlvThemeMode` still validates it before use.
|
|
59
|
+
return value;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function setToStorage(key, value) {
|
|
63
|
+
if (typeof localStorage === 'undefined' &&
|
|
64
|
+
typeof sessionStorage === 'undefined') {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
try {
|
|
68
|
+
localStorage.setItem(key, JSON.stringify(value));
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
try {
|
|
72
|
+
sessionStorage.setItem(key, JSON.stringify(value));
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
// SSR or fully blocked storage — drop silently.
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function isMlvThemeMode(value) {
|
|
80
|
+
return value === 'auto' || value === 'light' || value === 'dark';
|
|
81
|
+
}
|
|
82
|
+
const MLV_THEME = new InjectionToken('MLV_THEME');
|
|
83
|
+
const MLV_THEME_KEY = new InjectionToken('MLV_THEME_KEY');
|
|
84
|
+
const defaultThemeKey = 'mlv-theme';
|
|
85
|
+
const defaultTheme = 'light';
|
|
86
|
+
function provideDefaultTheme(theme = defaultTheme, themeKey = defaultThemeKey) {
|
|
87
|
+
return [
|
|
88
|
+
{
|
|
89
|
+
provide: MLV_THEME,
|
|
90
|
+
useValue: theme,
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
provide: MLV_THEME_KEY,
|
|
94
|
+
useValue: themeKey,
|
|
95
|
+
},
|
|
96
|
+
];
|
|
97
|
+
}
|
|
98
|
+
class MlvThemeService {
|
|
99
|
+
/** @private Whether the service is running in a browser (vs. server-side rendering). */
|
|
100
|
+
_isBrowser = isPlatformBrowser(inject(PLATFORM_ID));
|
|
101
|
+
/**
|
|
102
|
+
* Lazily-resolved `prefers-color-scheme: dark` media query list. `null` on
|
|
103
|
+
* the server where `window` is undefined.
|
|
104
|
+
*/
|
|
105
|
+
_darkModeMedia = this._isBrowser
|
|
106
|
+
? window.matchMedia('(prefers-color-scheme: dark)')
|
|
107
|
+
: null;
|
|
108
|
+
/** @protected System dark-mode preference from the `prefers-color-scheme` media query. */
|
|
109
|
+
_prefersDark = signal(this._darkModeMedia?.matches ?? false, /* @ts-ignore */
|
|
110
|
+
...(ngDevMode ? [{ debugName: "_prefersDark" }] : /* istanbul ignore next */ []));
|
|
111
|
+
defaultTheme = inject(MLV_THEME, { optional: true }) ?? defaultTheme;
|
|
112
|
+
/** @private Storage key used to persist the selected theme. */
|
|
113
|
+
_themeKey = inject(MLV_THEME_KEY, { optional: true }) ?? defaultThemeKey;
|
|
114
|
+
/** @private Platform document, used to publish the theme on the root element. */
|
|
115
|
+
_document = inject(DOCUMENT);
|
|
116
|
+
themeMode = signal(this.defaultTheme, /* @ts-ignore */
|
|
117
|
+
...(ngDevMode ? [{ debugName: "themeMode" }] : /* istanbul ignore next */ []));
|
|
118
|
+
currentTheme = signal(this._resolveTheme(this.defaultTheme), /* @ts-ignore */
|
|
119
|
+
...(ngDevMode ? [{ debugName: "currentTheme" }] : /* istanbul ignore next */ []));
|
|
120
|
+
constructor() {
|
|
121
|
+
const savedTheme = getFromStorage(this._themeKey);
|
|
122
|
+
if (isMlvThemeMode(savedTheme)) {
|
|
123
|
+
this.themeMode.set(savedTheme);
|
|
124
|
+
this._syncResolvedTheme();
|
|
125
|
+
}
|
|
126
|
+
if (this._darkModeMedia) {
|
|
127
|
+
fromEvent(this._darkModeMedia, 'change')
|
|
128
|
+
.pipe(takeUntilDestroyed(inject(DestroyRef)))
|
|
129
|
+
.subscribe(() => {
|
|
130
|
+
this._prefersDark.set(this._darkModeMedia?.matches ?? false);
|
|
131
|
+
if (this.themeMode() === 'auto') {
|
|
132
|
+
this._syncResolvedTheme();
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
// Publish the resolved theme on the document element. `theme.scss` keys its
|
|
137
|
+
// dark token map off a plain `[mlvTheme='dark']` attribute selector, so
|
|
138
|
+
// nothing changes colour until that attribute exists somewhere above the
|
|
139
|
+
// content. This used to be a side effect of rendering `mlv-layout`, which
|
|
140
|
+
// meant any application — or any single route — that renders no layout got
|
|
141
|
+
// a theme switcher that flipped a signal nobody read. Owning it here makes
|
|
142
|
+
// the switch work regardless of which components happen to be on screen;
|
|
143
|
+
// `mlv-layout` still carries its own `[attr.mlvTheme]` host binding, and a
|
|
144
|
+
// scoped `mlvTheme` attribute further down the tree still wins locally.
|
|
145
|
+
if (this._isBrowser) {
|
|
146
|
+
effect(() => {
|
|
147
|
+
this._document.documentElement.setAttribute('mlvTheme', this.currentTheme());
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
setTheme(mode) {
|
|
152
|
+
setToStorage(this._themeKey, mode);
|
|
153
|
+
this.themeMode.set(mode);
|
|
154
|
+
this._syncResolvedTheme();
|
|
155
|
+
}
|
|
156
|
+
_resolveTheme(mode) {
|
|
157
|
+
if (mode === 'auto') {
|
|
158
|
+
return this._prefersDark() ? 'dark' : 'light';
|
|
159
|
+
}
|
|
160
|
+
return mode;
|
|
161
|
+
}
|
|
162
|
+
_syncResolvedTheme() {
|
|
163
|
+
this.currentTheme.set(this._resolveTheme(this.themeMode()));
|
|
164
|
+
}
|
|
165
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
166
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvThemeService, providedIn: 'root' });
|
|
167
|
+
}
|
|
168
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvThemeService, decorators: [{
|
|
169
|
+
type: Injectable,
|
|
170
|
+
args: [{
|
|
171
|
+
providedIn: 'root',
|
|
172
|
+
}]
|
|
173
|
+
}], ctorParameters: () => [] });
|
|
174
|
+
|
|
175
|
+
class MlvLayout {
|
|
176
|
+
/** @protected Header slot directive projected via `[mlvLayoutTop]`. */
|
|
177
|
+
topRef = contentChild(MlvLayoutTop, /* @ts-ignore */
|
|
178
|
+
...(ngDevMode ? [{ debugName: "topRef" }] : /* istanbul ignore next */ []));
|
|
179
|
+
/** @protected Sidebar slot directive projected via `[mlvLayoutSide]`. */
|
|
180
|
+
sideRef = contentChild(MlvLayoutSide, /* @ts-ignore */
|
|
181
|
+
...(ngDevMode ? [{ debugName: "sideRef" }] : /* istanbul ignore next */ []));
|
|
182
|
+
/** @protected Current active theme, sourced from the theme service. */
|
|
183
|
+
_theme = computed(() => {
|
|
184
|
+
return this._themeService.currentTheme();
|
|
185
|
+
}, /* @ts-ignore */
|
|
186
|
+
...(ngDevMode ? [{ debugName: "_theme" }] : /* istanbul ignore next */ []));
|
|
187
|
+
plain = input(false, { ...(ngDevMode ? { debugName: "plain" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
|
|
188
|
+
/**
|
|
189
|
+
* @private Theme service providing the current light/dark theme signal.
|
|
190
|
+
* Injected so the host reflects the theme locally; publishing it on the
|
|
191
|
+
* document element is `MlvThemeService`'s own job, so that a route rendering
|
|
192
|
+
* no `mlv-layout` still themes correctly.
|
|
193
|
+
*/
|
|
194
|
+
_themeService = inject(MlvThemeService);
|
|
195
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvLayout, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
196
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: MlvLayout, isStandalone: true, selector: "mlv-layout", inputs: { plain: { classPropertyName: "plain", publicName: "plain", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.mlv-layout--plain": "plain()", "attr.mlvTheme": "_theme()" }, classAttribute: "mlv-layout" }, queries: [{ propertyName: "topRef", first: true, predicate: MlvLayoutTop, descendants: true, isSignal: true }, { propertyName: "sideRef", first: true, predicate: MlvLayoutSide, descendants: true, isSignal: true }], ngImport: i0, template: "@if (topRef(); as topTpl) {\n<header class=\"mlv-layout__header\">\n <ng-template [ngTemplateOutlet]=\"topTpl.templateRef\"></ng-template>\n</header>\n}\n\n<section class=\"mlv-layout__container\">\n @if (sideRef(); as sideTpl) {\n <aside class=\"mlv-layout__side\">\n <ng-template [ngTemplateOutlet]=\"sideTpl.templateRef\"></ng-template>\n </aside>\n }\n\n <ng-content />\n</section>\n", styles: ["@layer mlv.components{.mlv-layout{display:flex;flex-direction:column;background-color:var(--mlv-background-base);color:var(--mlv-text-primary);font-family:var(--mlv-typography-family-heading),sans-serif;font-size:var(--mlv-font-size-l)}.mlv-layout__container{display:flex;flex-direction:row;gap:1rem;padding:1rem}@media(min-width:768px){.mlv-layout__container{gap:1.5rem;padding:1.5rem}}@media(min-width:1200px){.mlv-layout__container{gap:2rem;padding:2rem}}.mlv-layout--plain .mlv-layout__container{padding:0;gap:0}.mlv-layout--plain{padding:0}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
197
|
+
}
|
|
198
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvLayout, decorators: [{
|
|
199
|
+
type: Component,
|
|
200
|
+
args: [{ selector: 'mlv-layout', imports: [NgTemplateOutlet], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
201
|
+
class: 'mlv-layout',
|
|
202
|
+
'[class.mlv-layout--plain]': 'plain()',
|
|
203
|
+
'[attr.mlvTheme]': '_theme()',
|
|
204
|
+
}, template: "@if (topRef(); as topTpl) {\n<header class=\"mlv-layout__header\">\n <ng-template [ngTemplateOutlet]=\"topTpl.templateRef\"></ng-template>\n</header>\n}\n\n<section class=\"mlv-layout__container\">\n @if (sideRef(); as sideTpl) {\n <aside class=\"mlv-layout__side\">\n <ng-template [ngTemplateOutlet]=\"sideTpl.templateRef\"></ng-template>\n </aside>\n }\n\n <ng-content />\n</section>\n", styles: ["@layer mlv.components{.mlv-layout{display:flex;flex-direction:column;background-color:var(--mlv-background-base);color:var(--mlv-text-primary);font-family:var(--mlv-typography-family-heading),sans-serif;font-size:var(--mlv-font-size-l)}.mlv-layout__container{display:flex;flex-direction:row;gap:1rem;padding:1rem}@media(min-width:768px){.mlv-layout__container{gap:1.5rem;padding:1.5rem}}@media(min-width:1200px){.mlv-layout__container{gap:2rem;padding:2rem}}.mlv-layout--plain .mlv-layout__container{padding:0;gap:0}.mlv-layout--plain{padding:0}}\n"] }]
|
|
205
|
+
}], propDecorators: { topRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => MlvLayoutTop), { isSignal: true }] }], sideRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => MlvLayoutSide), { isSignal: true }] }], plain: [{ type: i0.Input, args: [{ isSignal: true, alias: "plain", required: false }] }] } });
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Generated bundle index. Do not edit.
|
|
209
|
+
*/
|
|
210
|
+
|
|
211
|
+
export { MLV_THEME, MLV_THEME_KEY, MlvLayout, MlvLayoutSide, MlvLayoutTop, MlvThemeService, defaultTheme, defaultThemeKey, isMlvThemeMode, provideDefaultTheme };
|
|
212
|
+
//# sourceMappingURL=malva-ui-core-layout.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"malva-ui-core-layout.mjs","sources":["../../../../libs/core/layout/src/lib/layout/directives/MlvLayoutTop.ts","../../../../libs/core/layout/src/lib/layout/directives/MlvLayoutSide.ts","../../../../libs/core/layout/src/lib/layout/services/theme.service.ts","../../../../libs/core/layout/src/lib/layout/layout.ts","../../../../libs/core/layout/src/lib/layout/layout.html","../../../../libs/core/layout/src/malva-ui-core-layout.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { MlvStructural } from '@malva-ui/cdk/utils';\n\n@Directive({\n selector: '[mlvLayoutTop]',\n})\nexport class MlvLayoutTop extends MlvStructural {}\n","import { Directive } from '@angular/core';\nimport { MlvStructural } from '@malva-ui/cdk/utils';\n\n@Directive({\n selector: '[mlvLayoutSide]',\n})\nexport class MlvLayoutSide extends MlvStructural {}\n","import type { Provider } from '@angular/core';\nimport {\n DestroyRef,\n effect,\n inject,\n Injectable,\n InjectionToken,\n PLATFORM_ID,\n signal,\n} from '@angular/core';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent } from 'rxjs';\n\nfunction getFromStorage(key: string): unknown {\n if (\n typeof localStorage === 'undefined' &&\n typeof sessionStorage === 'undefined'\n ) {\n return null;\n }\n let value: string | null;\n try {\n value = localStorage.getItem(key);\n } catch {\n try {\n value = sessionStorage.getItem(key);\n } catch {\n value = null;\n }\n }\n\n if (!value) {\n return null;\n }\n\n try {\n return JSON.parse(value);\n } catch {\n // Legacy or hand-edited storage value (e.g. a bare `dark` string instead\n // of the JSON-encoded `\"dark\"`). Accept it as-is so a malformed/legacy\n // entry degrades gracefully instead of throwing during construction —\n // `isMlvThemeMode` still validates it before use.\n return value;\n }\n}\n\nfunction setToStorage(key: string, value: string): void {\n if (\n typeof localStorage === 'undefined' &&\n typeof sessionStorage === 'undefined'\n ) {\n return;\n }\n try {\n localStorage.setItem(key, JSON.stringify(value));\n } catch {\n try {\n sessionStorage.setItem(key, JSON.stringify(value));\n } catch {\n // SSR or fully blocked storage — drop silently.\n }\n }\n}\n\nexport type MlvTheme = 'light' | 'dark';\nexport type MlvThemeMode = MlvTheme | 'auto';\n\nexport function isMlvThemeMode(value: unknown): value is MlvThemeMode {\n return value === 'auto' || value === 'light' || value === 'dark';\n}\n\nexport const MLV_THEME = new InjectionToken<MlvThemeMode>('MLV_THEME');\nexport const MLV_THEME_KEY = new InjectionToken<string>('MLV_THEME_KEY');\n\nexport const defaultThemeKey = 'mlv-theme' as const;\nexport const defaultTheme: MlvThemeMode = 'light' as const;\n\nexport function provideDefaultTheme(\n theme: MlvThemeMode = defaultTheme,\n themeKey = defaultThemeKey,\n): Provider[] {\n return [\n {\n provide: MLV_THEME,\n useValue: theme,\n },\n {\n provide: MLV_THEME_KEY,\n useValue: themeKey,\n },\n ];\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MlvThemeService {\n /** @private Whether the service is running in a browser (vs. server-side rendering). */\n private readonly _isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n\n /**\n * Lazily-resolved `prefers-color-scheme: dark` media query list. `null` on\n * the server where `window` is undefined.\n */\n private readonly _darkModeMedia: MediaQueryList | null = this._isBrowser\n ? window.matchMedia('(prefers-color-scheme: dark)')\n : null;\n\n /** @protected System dark-mode preference from the `prefers-color-scheme` media query. */\n protected readonly _prefersDark = signal(\n this._darkModeMedia?.matches ?? false,\n );\n\n readonly defaultTheme = inject(MLV_THEME, { optional: true }) ?? defaultTheme;\n /** @private Storage key used to persist the selected theme. */\n private readonly _themeKey =\n inject(MLV_THEME_KEY, { optional: true }) ?? defaultThemeKey;\n\n /** @private Platform document, used to publish the theme on the root element. */\n private readonly _document = inject(DOCUMENT);\n\n readonly themeMode = signal<MlvThemeMode>(this.defaultTheme);\n readonly currentTheme = signal<MlvTheme>(\n this._resolveTheme(this.defaultTheme),\n );\n\n constructor() {\n const savedTheme = getFromStorage(this._themeKey);\n if (isMlvThemeMode(savedTheme)) {\n this.themeMode.set(savedTheme);\n this._syncResolvedTheme();\n }\n\n if (this._darkModeMedia) {\n fromEvent(this._darkModeMedia, 'change')\n .pipe(takeUntilDestroyed(inject(DestroyRef)))\n .subscribe(() => {\n this._prefersDark.set(this._darkModeMedia?.matches ?? false);\n if (this.themeMode() === 'auto') {\n this._syncResolvedTheme();\n }\n });\n }\n\n // Publish the resolved theme on the document element. `theme.scss` keys its\n // dark token map off a plain `[mlvTheme='dark']` attribute selector, so\n // nothing changes colour until that attribute exists somewhere above the\n // content. This used to be a side effect of rendering `mlv-layout`, which\n // meant any application — or any single route — that renders no layout got\n // a theme switcher that flipped a signal nobody read. Owning it here makes\n // the switch work regardless of which components happen to be on screen;\n // `mlv-layout` still carries its own `[attr.mlvTheme]` host binding, and a\n // scoped `mlvTheme` attribute further down the tree still wins locally.\n if (this._isBrowser) {\n effect(() => {\n this._document.documentElement.setAttribute(\n 'mlvTheme',\n this.currentTheme(),\n );\n });\n }\n }\n\n setTheme(mode: MlvThemeMode): void {\n setToStorage(this._themeKey, mode);\n this.themeMode.set(mode);\n this._syncResolvedTheme();\n }\n\n private _resolveTheme(mode: MlvThemeMode): MlvTheme {\n if (mode === 'auto') {\n return this._prefersDark() ? 'dark' : 'light';\n }\n return mode;\n }\n\n private _syncResolvedTheme(): void {\n this.currentTheme.set(this._resolveTheme(this.themeMode()));\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n inject,\n ViewEncapsulation,\n input,\n} from '@angular/core';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { MlvLayoutTop } from './directives/MlvLayoutTop';\nimport { MlvLayoutSide } from './directives/MlvLayoutSide';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { MlvThemeService } from './services/theme.service';\n\n@Component({\n selector: 'mlv-layout',\n imports: [NgTemplateOutlet],\n templateUrl: './layout.html',\n styleUrl: './layout.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'mlv-layout',\n '[class.mlv-layout--plain]': 'plain()',\n '[attr.mlvTheme]': '_theme()',\n },\n})\nexport class MlvLayout {\n /** @protected Header slot directive projected via `[mlvLayoutTop]`. */\n protected readonly topRef = contentChild(MlvLayoutTop);\n\n /** @protected Sidebar slot directive projected via `[mlvLayoutSide]`. */\n protected readonly sideRef = contentChild(MlvLayoutSide);\n\n /** @protected Current active theme, sourced from the theme service. */\n protected readonly _theme = computed(() => {\n return this._themeService.currentTheme();\n });\n\n readonly plain = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * @private Theme service providing the current light/dark theme signal.\n * Injected so the host reflects the theme locally; publishing it on the\n * document element is `MlvThemeService`'s own job, so that a route rendering\n * no `mlv-layout` still themes correctly.\n */\n private readonly _themeService = inject(MlvThemeService);\n}\n","@if (topRef(); as topTpl) {\n<header class=\"mlv-layout__header\">\n <ng-template [ngTemplateOutlet]=\"topTpl.templateRef\"></ng-template>\n</header>\n}\n\n<section class=\"mlv-layout__container\">\n @if (sideRef(); as sideTpl) {\n <aside class=\"mlv-layout__side\">\n <ng-template [ngTemplateOutlet]=\"sideTpl.templateRef\"></ng-template>\n </aside>\n }\n\n <ng-content />\n</section>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Directive, input, contentChild, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
4
|
+
import { MlvStructural } from '@malva-ui/cdk/utils';
|
|
5
|
+
import { NgTemplateOutlet } from '@angular/common';
|
|
6
|
+
|
|
7
|
+
class MlvLinkBefore extends MlvStructural {
|
|
8
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvLinkBefore, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
9
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: MlvLinkBefore, isStandalone: true, selector: "[mlvLinkBefore]", usesInheritance: true, ngImport: i0 });
|
|
10
|
+
}
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvLinkBefore, decorators: [{
|
|
12
|
+
type: Directive,
|
|
13
|
+
args: [{
|
|
14
|
+
selector: '[mlvLinkBefore]',
|
|
15
|
+
}]
|
|
16
|
+
}] });
|
|
17
|
+
class MlvLinkAfter extends MlvStructural {
|
|
18
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvLinkAfter, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
19
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: MlvLinkAfter, isStandalone: true, selector: "[mlvLinkAfter]", usesInheritance: true, ngImport: i0 });
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvLinkAfter, decorators: [{
|
|
22
|
+
type: Directive,
|
|
23
|
+
args: [{
|
|
24
|
+
selector: '[mlvLinkAfter]',
|
|
25
|
+
}]
|
|
26
|
+
}] });
|
|
27
|
+
|
|
28
|
+
class MlvLink {
|
|
29
|
+
variant = input('default', /* @ts-ignore */
|
|
30
|
+
...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
31
|
+
/** Whether the link is disabled — prevents activation and removes it from the tab order. */
|
|
32
|
+
disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
|
|
33
|
+
/** @protected Optional leading-slot template projected before the link text. */
|
|
34
|
+
_before = contentChild(MlvLinkBefore, /* @ts-ignore */
|
|
35
|
+
...(ngDevMode ? [{ debugName: "_before" }] : /* istanbul ignore next */ []));
|
|
36
|
+
/** @protected Optional trailing-slot template projected after the link text. */
|
|
37
|
+
_after = contentChild(MlvLinkAfter, /* @ts-ignore */
|
|
38
|
+
...(ngDevMode ? [{ debugName: "_after" }] : /* istanbul ignore next */ []));
|
|
39
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvLink, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
40
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: MlvLink, isStandalone: true, selector: "a[mlvLink]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "disabled() && $event.preventDefault()", "keydown.enter": "disabled() && $event.preventDefault()", "keydown.space": "disabled() && $event.preventDefault()" }, properties: { "class": "\"mlv-link--\" + variant()", "class.mlv-link--disabled": "disabled()", "attr.aria-disabled": "disabled() || null", "attr.tabindex": "disabled() ? -1 : null" }, classAttribute: "mlv-link" }, queries: [{ propertyName: "_before", first: true, predicate: MlvLinkBefore, descendants: true, isSignal: true }, { propertyName: "_after", first: true, predicate: MlvLinkAfter, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
41
|
+
@if (_before()?.templateRef; as beforeTpl) {
|
|
42
|
+
<span class="mlv-link__side">
|
|
43
|
+
<ng-template [ngTemplateOutlet]="beforeTpl"></ng-template>
|
|
44
|
+
</span>
|
|
45
|
+
}
|
|
46
|
+
<span class="mlv-link__text">
|
|
47
|
+
<ng-content />
|
|
48
|
+
</span>
|
|
49
|
+
@if (_after()?.templateRef; as afterTpl) {
|
|
50
|
+
<span class="mlv-link__side">
|
|
51
|
+
<ng-template [ngTemplateOutlet]="afterTpl"></ng-template>
|
|
52
|
+
</span>
|
|
53
|
+
}
|
|
54
|
+
`, isInline: true, styles: ["@layer mlv.components{.mlv-link{color:var(--mlv-text-action);text-decoration:none;cursor:pointer;transition:color var(--mlv-duration-normal) var(--mlv-ease-default);display:inline-flex;align-items:center;gap:var(--mlv-spacing-1);border-radius:var(--mlv-radius-xs)}.mlv-link *{color:inherit}.mlv-link__side{display:flex}.mlv-link__side svg{width:1.25em;height:1.25em}.mlv-link__text{text-decoration:none}.mlv-link:hover{color:var(--mlv-text-action-hover)}.mlv-link:hover .mlv-link__text{text-decoration:underline}.mlv-link:focus-visible{outline:var(--mlv-stroke-width-medium) solid var(--mlv-border-focus);outline-offset:var(--mlv-focus-ring-offset);color:var(--mlv-text-action-hover)}.mlv-link:focus-visible .mlv-link__text{text-decoration:underline}.mlv-link--subtle{color:var(--mlv-text-secondary)}.mlv-link--subtle:hover{color:var(--mlv-text-action-hover)}.mlv-link--emphasized{font-weight:600;text-decoration:underline}.mlv-link--disabled{cursor:not-allowed;pointer-events:none;opacity:var(--mlv-disabled-opacity)}@media(prefers-reduced-motion:reduce){.mlv-link,.mlv-link *,.mlv-link:before,.mlv-link:after,[class^=mlv-link__],[class*=\" mlv-link__\"],[class^=mlv-link--],[class*=\" mlv-link--\"]{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:var(--mlv-duration-instant)!important}}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
55
|
+
}
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvLink, decorators: [{
|
|
57
|
+
type: Component,
|
|
58
|
+
args: [{ selector: 'a[mlvLink]', template: `
|
|
59
|
+
@if (_before()?.templateRef; as beforeTpl) {
|
|
60
|
+
<span class="mlv-link__side">
|
|
61
|
+
<ng-template [ngTemplateOutlet]="beforeTpl"></ng-template>
|
|
62
|
+
</span>
|
|
63
|
+
}
|
|
64
|
+
<span class="mlv-link__text">
|
|
65
|
+
<ng-content />
|
|
66
|
+
</span>
|
|
67
|
+
@if (_after()?.templateRef; as afterTpl) {
|
|
68
|
+
<span class="mlv-link__side">
|
|
69
|
+
<ng-template [ngTemplateOutlet]="afterTpl"></ng-template>
|
|
70
|
+
</span>
|
|
71
|
+
}
|
|
72
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
73
|
+
class: 'mlv-link',
|
|
74
|
+
'[class]': '"mlv-link--" + variant()',
|
|
75
|
+
'[class.mlv-link--disabled]': 'disabled()',
|
|
76
|
+
'[attr.aria-disabled]': 'disabled() || null',
|
|
77
|
+
'[attr.tabindex]': 'disabled() ? -1 : null',
|
|
78
|
+
'(click)': 'disabled() && $event.preventDefault()',
|
|
79
|
+
'(keydown.enter)': 'disabled() && $event.preventDefault()',
|
|
80
|
+
'(keydown.space)': 'disabled() && $event.preventDefault()',
|
|
81
|
+
}, imports: [NgTemplateOutlet], styles: ["@layer mlv.components{.mlv-link{color:var(--mlv-text-action);text-decoration:none;cursor:pointer;transition:color var(--mlv-duration-normal) var(--mlv-ease-default);display:inline-flex;align-items:center;gap:var(--mlv-spacing-1);border-radius:var(--mlv-radius-xs)}.mlv-link *{color:inherit}.mlv-link__side{display:flex}.mlv-link__side svg{width:1.25em;height:1.25em}.mlv-link__text{text-decoration:none}.mlv-link:hover{color:var(--mlv-text-action-hover)}.mlv-link:hover .mlv-link__text{text-decoration:underline}.mlv-link:focus-visible{outline:var(--mlv-stroke-width-medium) solid var(--mlv-border-focus);outline-offset:var(--mlv-focus-ring-offset);color:var(--mlv-text-action-hover)}.mlv-link:focus-visible .mlv-link__text{text-decoration:underline}.mlv-link--subtle{color:var(--mlv-text-secondary)}.mlv-link--subtle:hover{color:var(--mlv-text-action-hover)}.mlv-link--emphasized{font-weight:600;text-decoration:underline}.mlv-link--disabled{cursor:not-allowed;pointer-events:none;opacity:var(--mlv-disabled-opacity)}@media(prefers-reduced-motion:reduce){.mlv-link,.mlv-link *,.mlv-link:before,.mlv-link:after,[class^=mlv-link__],[class*=\" mlv-link__\"],[class^=mlv-link--],[class*=\" mlv-link--\"]{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:var(--mlv-duration-instant)!important}}}\n"] }]
|
|
82
|
+
}], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], _before: [{ type: i0.ContentChild, args: [i0.forwardRef(() => MlvLinkBefore), { isSignal: true }] }], _after: [{ type: i0.ContentChild, args: [i0.forwardRef(() => MlvLinkAfter), { isSignal: true }] }] } });
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Generated bundle index. Do not edit.
|
|
86
|
+
*/
|
|
87
|
+
|
|
88
|
+
export { MlvLink, MlvLinkAfter, MlvLinkBefore };
|
|
89
|
+
//# sourceMappingURL=malva-ui-core-link.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"malva-ui-core-link.mjs","sources":["../../../../libs/core/link/src/lib/link/link.directives.ts","../../../../libs/core/link/src/lib/link/link.ts","../../../../libs/core/link/src/malva-ui-core-link.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { MlvStructural } from '@malva-ui/cdk/utils';\n\n@Directive({\n selector: '[mlvLinkBefore]',\n})\nexport class MlvLinkBefore extends MlvStructural {}\n\n@Directive({\n selector: '[mlvLinkAfter]',\n})\nexport class MlvLinkAfter extends MlvStructural {}\n","import {\n ChangeDetectionStrategy,\n Component,\n contentChild,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { MlvLinkAfter, MlvLinkBefore } from './link.directives';\nimport { NgTemplateOutlet } from '@angular/common';\n\nexport type MlvLinkVariant = 'default' | 'subtle' | 'emphasized';\n\n@Component({\n // Attribute-selector component — camelCase [mlvX] is the documented pattern\n // (see .claude/rules/angular-component.md); the rule only models kebab-case.\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'a[mlvLink]',\n template: `\n @if (_before()?.templateRef; as beforeTpl) {\n <span class=\"mlv-link__side\">\n <ng-template [ngTemplateOutlet]=\"beforeTpl\"></ng-template>\n </span>\n }\n <span class=\"mlv-link__text\">\n <ng-content />\n </span>\n @if (_after()?.templateRef; as afterTpl) {\n <span class=\"mlv-link__side\">\n <ng-template [ngTemplateOutlet]=\"afterTpl\"></ng-template>\n </span>\n }\n `,\n styleUrl: './link.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'mlv-link',\n '[class]': '\"mlv-link--\" + variant()',\n '[class.mlv-link--disabled]': 'disabled()',\n '[attr.aria-disabled]': 'disabled() || null',\n '[attr.tabindex]': 'disabled() ? -1 : null',\n '(click)': 'disabled() && $event.preventDefault()',\n '(keydown.enter)': 'disabled() && $event.preventDefault()',\n '(keydown.space)': 'disabled() && $event.preventDefault()',\n },\n imports: [NgTemplateOutlet],\n})\nexport class MlvLink {\n readonly variant = input<MlvLinkVariant>('default');\n /** Whether the link is disabled — prevents activation and removes it from the tab order. */\n readonly disabled = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /** @protected Optional leading-slot template projected before the link text. */\n protected readonly _before = contentChild(MlvLinkBefore);\n /** @protected Optional trailing-slot template projected after the link text. */\n protected readonly _after = contentChild(MlvLinkAfter);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|