@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-form-utils.mjs","sources":["../../../../libs/core/form-utils/src/lib/models/form-control-connector.ts","../../../../libs/core/form-utils/src/lib/label/label.ts","../../../../libs/core/form-utils/src/lib/hint/hint.ts","../../../../libs/core/form-utils/src/lib/description/description.ts","../../../../libs/core/form-utils/src/lib/message/message.ts","../../../../libs/core/form-utils/src/lib/form-field/form-field.ts","../../../../libs/core/form-utils/src/lib/form-control-sides.ts","../../../../libs/core/form-utils/src/lib/form-control-base/signal-form-control-base.ts","../../../../libs/core/form-utils/src/lib/form-control-wrapper/form-control-wrapper-control.ts","../../../../libs/core/form-utils/src/lib/form-control-wrapper/form-control-wrapper.ts","../../../../libs/core/form-utils/src/lib/form-control-wrapper/form-control-wrapper.html","../../../../libs/core/form-utils/src/lib/selection.service.ts","../../../../libs/core/form-utils/src/lib/aria-value-bridge.ts","../../../../libs/core/form-utils/src/lib/focusable-group-base.ts","../../../../libs/core/form-utils/src/malva-ui-core-form-utils.ts"],"sourcesContent":["import type { Signal } from '@angular/core';\nimport { InjectionToken } from '@angular/core';\nimport type { MlvFormState } from './form-state';\nimport type { MlvFormControlPrepend } from '../form-control-sides';\nimport type { MlvFormControlAppend } from '../form-control-sides';\nimport type { MlvFormControlInset } from '../form-control-sides';\n\nexport interface MlvFormControl {\n readonly focused: Signal<boolean>;\n readonly disabled: Signal<boolean>;\n readonly readonly: Signal<boolean>;\n readonly state: Signal<MlvFormState>;\n /**\n * Effective state after field-bound errors/touched state are considered.\n * Signal-form controls provide this; legacy controls fall back to `state`.\n */\n readonly resolvedState?: Signal<MlvFormState>;\n readonly loading: Signal<boolean>;\n readonly clearable: Signal<boolean>;\n /**\n * Fully rounded (stadium) control container. Optional — absent means the\n * regular radius.\n */\n readonly pill?: Signal<boolean>;\n /**\n * Whether the control currently holds a clearable (non-empty) value. The\n * wrapper renders the clear button only while `clearable() && hasValue()` —\n * an empty control never shows a dangling X.\n */\n readonly hasValue: Signal<boolean>;\n /**\n * When `true`, the control renders its own clear button inside its template\n * (e.g. select/combobox place it before the chevron) and the wrapper must\n * NOT render its default one. Optional — absent means wrapper-rendered.\n */\n readonly ownsClearButton?: Signal<boolean>;\n readonly prepend: Signal<MlvFormControlPrepend | undefined>;\n readonly append: Signal<MlvFormControlAppend | undefined>;\n /** Optional full-width content rendered inside the control border. */\n readonly inset: Signal<MlvFormControlInset | undefined>;\n}\n\nexport const MLV_FORM_CONTROL = new InjectionToken<MlvFormControl>(\n 'MLV_FORM_CONTROL',\n);\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { MLV_FORM_UTILS_I18N } from '@malva-ui/i18n';\n\n@Component({\n selector: 'mlv-label',\n template: `\n <label [attr.for]=\"for()\">\n <ng-content />\n @if (required()) {\n <span class=\"mlv-label__required\" aria-hidden=\"true\">*</span>\n <span class=\"cdk-visually-hidden\">{{ _requiredText() }}</span>\n }\n <span class=\"mlv-label__hint\">\n <ng-content select=\"mlv-hint\" />\n </span>\n </label>\n `,\n styleUrl: './label.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'mlv-label',\n },\n})\nexport class MlvLabel {\n /** Id of the control this label names, rendered as the native `for` attribute. */\n readonly for = input<string>('');\n\n /**\n * Whether the labelled control is required. Renders a visual `*` marker plus\n * a visually-hidden, translated \"required\" word so the requirement is\n * announced even where `aria-required` is not surfaced. Controls extending\n * `MlvSignalFormUiControlBase` forward their own `required` input here.\n */\n readonly required = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * @private The form-utils i18n strings. Optional so a bare `mlv-label` still\n * renders in applications that never called `provideMlvI18n()`.\n */\n private readonly _i18n = inject(MLV_FORM_UTILS_I18N, { optional: true });\n\n /** @protected Translated word announced after the label of a required control. */\n protected readonly _requiredText = computed(\n () => this._i18n?.().required ?? 'required',\n );\n}\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { ElementRef } from '@angular/core';\nimport { LucideCircleQuestionMark } from '@lucide/angular';\nimport { MlvTooltip } from '@malva-ui/core/tooltip';\n\n/**\n * Secondary hint for the control named by the enclosing `mlv-label`.\n *\n * The hint is authored as projected content — `<mlv-hint>Sent to your phone</mlv-hint>` —\n * but it renders as a small `circle-question-mark` icon button that reveals the\n * text in an `mlvTooltip` on hover and on keyboard focus. Rendering an icon\n * rather than inline text keeps the label row on one line no matter how long\n * the hint is, which inline text could not do inside the label's flex row.\n *\n * The projected content itself stays in the DOM (hidden) purely as the source\n * the tooltip string is read from; it is `aria-hidden` so the hint no longer\n * leaks into the accessible name of the labelled control. The same string is\n * put on the trigger's `aria-label`, so assistive tech still reaches it.\n *\n * Use `mlv-description` instead for sentence-length help text that should stay\n * permanently visible below the control.\n *\n * @example Inside a label\n * ```html\n * <mlv-label for=\"email\">\n * Email\n * <mlv-hint>We only use this for receipts</mlv-hint>\n * </mlv-label>\n * ```\n *\n * @example Interpolated, as every `hint`-input control renders it\n * ```html\n * <mlv-hint>{{ hint() }}</mlv-hint>\n * ```\n */\n@Component({\n selector: 'mlv-hint',\n template: `\n @if (_text(); as text) {\n <button\n type=\"button\"\n class=\"mlv-hint__trigger\"\n [attr.aria-label]=\"text\"\n [mlvTooltip]=\"text\"\n (click)=\"_onClick($event)\"\n >\n <svg lucideCircleQuestionMark aria-hidden=\"true\" [size]=\"14\"></svg>\n </button>\n }\n <span #source class=\"mlv-hint__source\" aria-hidden=\"true\"\n ><ng-content\n /></span>\n `,\n styleUrl: './hint.css',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'mlv-hint',\n },\n imports: [LucideCircleQuestionMark, MlvTooltip],\n})\nexport class MlvHint {\n /**\n * @protected Wrapper around the projected content. Kept in the DOM (only\n * `display: none`, never `@if`-ed away) because it is the sole source the\n * hint string can be read from, and `textContent` still resolves on a\n * non-displayed element.\n */\n protected readonly _source =\n viewChild.required<ElementRef<HTMLElement>>('source');\n\n /**\n * @protected Trimmed text of the projected content — used both as the tooltip\n * body and as the trigger's accessible name. Empty until the first render has\n * produced the projected DOM, and kept in sync afterwards by `_observer`.\n * While it is empty no trigger is rendered at all, so an empty `mlv-hint`\n * never leaves a nameless icon button behind.\n */\n protected readonly _text = signal('');\n\n /**\n * @private Watches the projected content for changes. Interpolated hints\n * (`<mlv-hint>{{ hint() }}</mlv-hint>`) mutate a text node owned by the\n * *parent* view, which no signal in this component can depend on — and\n * `textContent` is not a reactive read, so an effect would evaluate once and\n * never re-run. A MutationObserver is the only thing that sees the change.\n */\n private _observer: MutationObserver | null = null;\n\n /** @private Disconnects `_observer` when the component is destroyed. */\n private readonly _destroyRef = inject(DestroyRef);\n\n constructor() {\n // Deferred to `afterNextRender` so it never runs on the server, where there\n // is no DOM to read and no MutationObserver to construct.\n afterNextRender(() => {\n const sourceEl = this._source().nativeElement;\n this._readText(sourceEl);\n\n if (typeof MutationObserver === 'undefined') {\n return;\n }\n\n this._observer = new MutationObserver(() => this._readText(sourceEl));\n this._observer.observe(sourceEl, {\n childList: true,\n characterData: true,\n subtree: true,\n });\n });\n\n this._destroyRef.onDestroy(() => this._observer?.disconnect());\n }\n\n /**\n * @protected Swallows the trigger's click so it does not read as an\n * activation of the enclosing `<label>`. `preventDefault()` stops the label's\n * native \"focus the labelled control\" behaviour, and `stopPropagation()`\n * stops click handlers bound on `mlv-label` itself — `mlv-select` binds one\n * there to open its dropdown — from firing when the user only wanted the\n * hint. Both are required; neither alone covers the other case.\n */\n protected _onClick(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n }\n\n /**\n * @private Reads the trimmed projected text into `_text`. Setting a signal to\n * an identical string is a no-op, so re-reads triggered by unrelated DOM\n * mutations cannot loop.\n */\n private _readText(sourceEl: HTMLElement): void {\n this._text.set(sourceEl.textContent?.trim() ?? '');\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\n\n/**\n * Persistent help text rendered below a form control, in front of the\n * validation message. Projected into `mlv-form-control-wrapper` through its\n * `mlv-description` slot and referenced by the control's `aria-describedby`,\n * so it stays readable while a validation message is shown.\n *\n * @example\n * <mlv-description [id]=\"descriptionId\">\n * We only use this address for receipts.\n * </mlv-description>\n */\n@Component({\n selector: 'mlv-description',\n template: `<ng-content />`,\n styleUrl: './description.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'mlv-description',\n },\n})\nexport class MlvDescription {}\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { MlvFormState } from '../models/form-state';\n\n@Component({\n selector: 'mlv-message',\n host: {\n 'animate.enter': 'enter-animation',\n 'animate.leave': 'leave-animation',\n class: 'mlv-message',\n '[class]': '\"mlv-message--\" + state()',\n '[attr.role]': \"state() === 'error' ? 'alert' : null\",\n '[attr.aria-live]': \"state() !== 'default' ? 'polite' : null\",\n },\n template: ` <ng-content /> `,\n styleUrl: './message.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MlvMessage {\n readonly state = input<MlvFormState>('default');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n effect,\n inject,\n input,\n isDevMode,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { ValidationErrors } from '@angular/forms';\nimport {\n FormGroupDirective,\n NgControl,\n NgForm,\n PristineChangeEvent,\n StatusChangeEvent,\n TouchedChangeEvent,\n} from '@angular/forms';\nimport { FormField } from '@angular/forms/signals';\nimport type { MlvFormState } from '../models/form-state';\nimport type { MlvErrorDisplayStrategy } from '../models/error-display-strategy';\nimport { MlvMessage } from '../message/message';\nimport { MLV_FORM_UTILS_I18N } from '@malva-ui/i18n';\n\nconst DEFAULT_ERROR_MESSAGES: Record<string, (err: unknown) => string> = {\n required: () => 'This field is required',\n email: () => 'Please enter a valid email address',\n min: (err) => `Value must be at least ${(err as { min: number }).min}`,\n max: (err) => `Value must be at most ${(err as { max: number }).max}`,\n minlength: (err) => {\n const e = err as { requiredLength: number };\n return `Must be at least ${e.requiredLength} characters`;\n },\n maxlength: (err) => {\n const e = err as { requiredLength: number };\n return `Must be at most ${e.requiredLength} characters`;\n },\n pattern: () => 'Invalid format',\n};\n\n/**\n * Validator keys already reported through {@link MlvFormField}'s dev-mode\n * warning. Module-scoped so a key is named once per application run rather than\n * on every change-detection pass.\n */\nconst WARNED_UNMAPPED_KEYS = new Set<string>();\n\n@Component({\n selector: 'mlv-form-field',\n imports: [MlvMessage],\n template: `\n <div class=\"mlv-form-field\" [class]=\"'mlv-form-field--' + resolvedState()\">\n <ng-content select=\"mlv-label\" />\n <div class=\"mlv-form-field__control\">\n <ng-content />\n </div>\n <ng-content select=\"mlv-message\" />\n @if (autoErrorMessage()) {\n <mlv-message state=\"error\">{{ autoErrorMessage() }}</mlv-message>\n }\n </div>\n `,\n styleUrl: './form-field.css',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MlvFormField {\n /** Visual state of the field. Overridden to `'error'` when an auto error message is shown. */\n readonly state = input<MlvFormState>('default');\n /** Custom validator-key → message map (string or factory) overriding the built-in defaults. */\n readonly errorMessages = input<\n Record<string, string | ((err: unknown) => string)>\n >({});\n /** Controls when validation errors become visible. */\n readonly displayStrategy = input<MlvErrorDisplayStrategy>('touched');\n\n /**\n * @private The form-utils i18n strings. Optional so `mlv-form-field` keeps\n * rendering in applications that never called `provideMlvI18n()`.\n */\n private readonly _i18n = inject(MLV_FORM_UTILS_I18N, { optional: true });\n\n /** @private The projected `NgControl` whose validation state this field reflects. */\n private readonly _ngControl = contentChild(NgControl);\n\n /**\n * @private The projected signal-forms `[formField]` directive, when the\n * child control is bound through `@angular/forms/signals` instead of an\n * `NgControl`. Takes precedence over the NgControl path when present.\n */\n private readonly _signalField = contentChild(FormField);\n\n /**\n * @private The bound signal-forms `FieldState`, or `null` while no\n * `[formField]` child is projected. `field()` is the `FieldTree`; calling it\n * yields the reactive `FieldState`.\n */\n private readonly _signalFieldState = computed(() => {\n const formField = this._signalField();\n return formField ? formField.field()() : null;\n });\n /** @private The ancestor form directive, used to observe submission state. */\n private readonly _formDirective =\n inject(FormGroupDirective, { optional: true }) ??\n inject(NgForm, { optional: true });\n\n /** @private Current validation errors of the projected control. */\n private readonly _controlErrors = signal<ValidationErrors | null>(null);\n /** @private Whether the projected control has been touched. */\n private readonly _controlTouched = signal(false);\n /** @private Whether the projected control is dirty. */\n private readonly _controlDirty = signal(false);\n /** @private Whether the ancestor form has been submitted. */\n private readonly _formSubmitted = signal(false);\n\n constructor() {\n effect((onCleanup) => {\n // Signal-forms path: state is read reactively from the FieldState — no\n // event subscriptions. (The signals interop also exposes a shim\n // NgControl whose `.control` lacks the `events` stream, so the legacy\n // path below must not run for a [formField]-bound child.)\n if (this._signalField()) return;\n const control = this._ngControl()?.control;\n if (!control) return;\n\n this._controlErrors.set(control.errors);\n this._controlTouched.set(control.touched);\n this._controlDirty.set(control.dirty);\n this._formSubmitted.set(this._formDirective?.submitted ?? false);\n\n const subscription = control.events.subscribe((event) => {\n if (event instanceof StatusChangeEvent) {\n this._controlErrors.set(control.errors);\n } else if (event instanceof TouchedChangeEvent) {\n this._controlTouched.set(event.touched);\n } else if (event instanceof PristineChangeEvent) {\n this._controlDirty.set(!event.pristine);\n }\n });\n\n const formDirective = this._formDirective;\n if (formDirective) {\n const formControl = (formDirective as FormGroupDirective | NgForm).form;\n const formSub = formControl.events.subscribe(() => {\n this._formSubmitted.set(formDirective.submitted);\n });\n subscription.add(formSub);\n }\n\n onCleanup(() => subscription.unsubscribe());\n });\n\n // Dev-only diagnostic: a validator key with no mapped message renders the\n // generic fallback, which is correct for users but usually a gap for the\n // author. Warned once per key per application run.\n effect(() => {\n const key = this._unmappedErrorKey();\n if (!key || !isDevMode() || WARNED_UNMAPPED_KEYS.has(key)) return;\n WARNED_UNMAPPED_KEYS.add(key);\n console.warn(\n `[mlv-form-field] No message is mapped for the validator key \"${key}\"; ` +\n `showing the generic message instead. Supply one through [errorMessages].`,\n );\n });\n }\n\n /** @private Whether validation errors should currently be displayed, per {@link displayStrategy}. */\n private readonly _shouldDisplay = computed(() => {\n const signalState = this._signalFieldState();\n switch (this.displayStrategy()) {\n case 'touched':\n return signalState ? signalState.touched() : this._controlTouched();\n case 'dirty':\n return signalState ? signalState.dirty() : this._controlDirty();\n case 'submit':\n // Signal forms: submission is field-tree-level state; the closest\n // per-field proxy is touched (submit() marks all fields touched).\n return signalState ? signalState.touched() : this._formSubmitted();\n case 'immediate':\n return true;\n }\n });\n\n /**\n * @private Unified error view: `[key, errorPayload]` pairs from whichever\n * forms API the projected control is bound through. Signal-forms\n * `ValidationError`s are keyed by their lower-cased `kind` (matching the\n * legacy reactive keys: `minLength` → `minlength`); the payload is the\n * error object itself (it carries `message` when a rule supplied one).\n */\n private readonly _errorEntries = computed<[string, unknown][]>(() => {\n const signalState = this._signalFieldState();\n if (signalState) {\n return signalState\n .errors()\n .map((error) => [error.kind.toLowerCase(), error]);\n }\n const errors = this._controlErrors();\n return errors ? Object.entries(errors) : [];\n });\n\n /** The resolved auto error message for the projected control, or `''` when none should show. */\n readonly autoErrorMessage = computed(() => {\n const entries = this._errorEntries();\n if (entries.length === 0 || !this._shouldDisplay()) return '';\n\n const customMessages = this.errorMessages();\n const [key, payload] = entries[0];\n const custom = customMessages[key];\n if (custom) {\n return typeof custom === 'function' ? custom(payload) : custom;\n }\n // Signal-forms rules can carry their own message — prefer it.\n const ruleMessage = (payload as { message?: string } | null)?.message;\n if (ruleMessage) return ruleMessage;\n const defaultFn = DEFAULT_ERROR_MESSAGES[key];\n if (defaultFn) {\n return defaultFn(payload);\n }\n // Unknown validator key: never surface the raw key to end users.\n return this._genericErrorMessage();\n });\n\n /**\n * @private Neutral, translated message shown when a validator key has no\n * consumer-supplied, rule-supplied or built-in message.\n */\n private readonly _genericErrorMessage = computed(\n () => this._i18n?.().invalidValue ?? 'This value is invalid',\n );\n\n /**\n * @private The currently displayed validator key that has no mapped message\n * and therefore falls back to {@link _genericErrorMessage} — `null` when a\n * specific message applies. Drives the dev-mode warning only.\n */\n private readonly _unmappedErrorKey = computed<string | null>(() => {\n const entries = this._errorEntries();\n if (entries.length === 0 || !this._shouldDisplay()) return null;\n const [key, payload] = entries[0];\n if (this.errorMessages()[key]) return null;\n if ((payload as { message?: string } | null)?.message) return null;\n if (DEFAULT_ERROR_MESSAGES[key]) return null;\n return key;\n });\n\n /** The effective visual state: `'error'` when an auto error message is shown, otherwise {@link state}. */\n readonly resolvedState = computed<MlvFormState>(() => {\n if (this.autoErrorMessage()) return 'error';\n return this.state();\n });\n}\n","import { Directive } from '@angular/core';\nimport { MlvStructural } from '@malva-ui/cdk/utils';\n\n@Directive({ selector: '[mlvFormControlPrepend]' })\nexport class MlvFormControlPrepend extends MlvStructural {}\n\n@Directive({ selector: '[mlvFormControlAppend]' })\nexport class MlvFormControlAppend extends MlvStructural {}\n\n/**\n * Full-width content rendered inside the bordered control, after its main row.\n *\n * Use for secondary, non-interactive control presentation such as strength\n * meters. Prefix and suffix actions remain in their dedicated slots.\n */\n@Directive({ selector: '[mlvFormControlInset]' })\nexport class MlvFormControlInset extends MlvStructural {}\n","import type { ModelSignal, Signal } from '@angular/core';\nimport {\n computed,\n contentChild,\n Directive,\n input,\n output,\n signal,\n} from '@angular/core';\nimport type {\n FormCheckboxControl,\n FormValueControl,\n ValidationError,\n} from '@angular/forms/signals';\nimport type { MlvFormState } from '../models/form-state';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { mlvNextId } from '@malva-ui/cdk/utils';\nimport type { MlvFormControl } from '../models/form-control-connector';\nimport { MlvFormControlAppend } from '../form-control-sides';\nimport { MlvFormControlInset } from '../form-control-sides';\nimport { MlvFormControlPrepend } from '../form-control-sides';\n\n/**\n * Shared, forms-transport-agnostic surface for **signal-forms** Malva controls.\n * Owns everything EXCEPT the value/checked model: the\n * Malva field surface (`state`, `label`, `hint`, `message`, `clearable`,\n * `id`, prepend/append slots), the wrapper connector contract\n * ({@link MlvFormControl}), and the signal-forms field↔control bindings —\n * `errors` / `disabled` / `readonly` / `touched` / `dirty` input signals the\n * `[formField]` directive binds automatically, plus the `touch` output the\n * control emits when the user leaves the field.\n *\n * Per the signal-forms contract a component must NOT implement both\n * `ControlValueAccessor` and `FormValueControl`; controls therefore adopt\n * either {@link MlvSignalFormControlBase} or {@link MlvSignalCheckboxControlBase}\n * atomically. Reactive (`[formControl]`)\n * and template-driven (`ngModel`) bindings keep working — Angular binds the\n * signal contract from those directives without extra compatibility code.\n */\n@Directive()\nexport abstract class MlvSignalFormUiControlBase implements MlvFormControl {\n /** @protected Backing signal for {@link focused}. */\n protected readonly _focused = signal(false);\n\n /** Whether the control currently has focus (drives the wrapper's focus ring). */\n readonly focused: Signal<boolean> = this._focused;\n\n /** Sets the control's focus state (wired to the focus target's focus/blur). */\n setFocused(value: boolean): void {\n this._focused.set(value);\n }\n\n /** Explicit consumer-authored visual validation state. */\n readonly state = input<MlvFormState>('default');\n\n /**\n * Whether the control is read-only. Also a signal-forms field binding: when\n * bound via `[formField]`, a `readonly` schema rule drives this input.\n */\n readonly readonly = input<boolean, unknown>(false, {\n transform: (value: unknown) => coerceBooleanProperty(value as BooleanInput),\n });\n\n /**\n * Whether the control is disabled. Also a signal-forms field binding: when\n * bound via `[formField]`, the field's disabled state drives this input.\n */\n readonly disabled = input<boolean, unknown>(false, {\n transform: (value: unknown) => coerceBooleanProperty(value as BooleanInput),\n });\n\n /**\n * Whether the control must be filled in. Renders the required marker in\n * `mlv-label` and sets `aria-required` on the control's focus target. Also a\n * signal-forms field binding: when bound via `[formField]`, a `required()`\n * schema rule drives this input.\n */\n readonly required = input<boolean, unknown>(false, {\n transform: (value: unknown) => coerceBooleanProperty(value as BooleanInput),\n });\n\n /** Whether the control shows its loading affordance. */\n readonly loading = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /** Whether the control renders a clear (X) affordance while it has a value. */\n readonly clearable = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * Fully rounded (stadium) control container. Shared by every control that\n * renders through `mlv-form-control-wrapper`, mirroring `shape=\"pill\"` on\n * buttons and the pill action bar.\n */\n readonly pill = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * Signal-forms field binding: current validation errors of the bound field\n * (`[formField]` binds them automatically). Empty when unbound.\n */\n readonly errors = input<readonly ValidationError.WithOptionalFieldTree[]>([]);\n\n /** Signal-forms field binding: whether the bound field is touched. */\n readonly touched = input<boolean, unknown>(false, {\n transform: (value: unknown) => coerceBooleanProperty(value as BooleanInput),\n });\n\n /** Signal-forms field binding: whether the bound field is dirty. */\n readonly dirty = input<boolean, unknown>(false, {\n transform: (value: unknown) => coerceBooleanProperty(value as BooleanInput),\n });\n\n /**\n * Effective visual state exposed through the Malva form-control connector.\n * An explicit non-default state wins; otherwise a signal-form validation\n * error becomes visible after the field is touched, matching the default\n * `MlvFormField` error-display strategy.\n */\n readonly resolvedState = computed<MlvFormState>(() => {\n const explicitState = this.state();\n if (explicitState !== 'default') return explicitState;\n return this.errors().length > 0 && this.touched() ? 'error' : 'default';\n });\n\n /**\n * Emits when the user finishes interacting with the field (blur) — the\n * signal-forms replacement for the CVA `onTouched` callback; `[formField]`\n * subscribes and marks the bound field touched.\n */\n readonly touch = output<void>();\n\n /**\n * Whether the control currently holds a clearable (non-empty) value.\n */\n abstract readonly hasValue: Signal<boolean>;\n\n /** HTML id applied to the control's focus target. */\n readonly id = input<string>(mlvNextId('mlv-control'));\n /** Label text rendered above the control. */\n readonly label = input('');\n /** Hint text rendered inside the label. */\n readonly hint = input('');\n /**\n * Persistent help text rendered **below** the control, in front of the\n * validation message. Unlike {@link hint} (a short inline aside inside the\n * label) this is meant for sentence-length descriptions, and it stays\n * visible while {@link message} is shown. Referenced by `aria-describedby`.\n */\n readonly description = input('');\n /** Validation/status message rendered below the control. */\n readonly message = input('');\n\n /**\n * Accessible name applied to the control's focus target (`aria-label`).\n * Use it when the control renders no visible `<mlv-label>`.\n */\n readonly ariaLabel = input<string | null>(null);\n\n /** @protected Id of the rendered `<mlv-description>` element. */\n protected readonly _descriptionId = computed(\n () => `${this.id()}-description`,\n );\n\n /** @protected Id of the rendered `<mlv-message>` element. */\n protected readonly _messageId = computed(() => `${this.id()}-message`);\n\n /**\n * @protected Space-separated `aria-describedby` value covering the rendered\n * description and message elements — `null` when neither is rendered, so no\n * dangling IDREF is emitted.\n */\n protected readonly _describedBy = computed(() => {\n const ids: string[] = [];\n if (this.description()) ids.push(this._descriptionId());\n if (this.message()) ids.push(this._messageId());\n return ids.length > 0 ? ids.join(' ') : null;\n });\n\n /** Projected prefix slot. */\n readonly prepend = contentChild(MlvFormControlPrepend);\n /** Projected suffix slot. */\n readonly append = contentChild(MlvFormControlAppend);\n /** Projected full-width content rendered inside the control border. */\n readonly inset = contentChild(MlvFormControlInset);\n\n /**\n * Effective disabled state. In the signal base there is no CVA\n * `setDisabledState` side channel — the `disabled` input is the single\n * source (consumer-bound or field-bound), kept as a computed so existing\n * control templates retain one consistent disabled-state signal.\n */\n readonly computedDisabled = computed(() => this.disabled());\n\n /** @protected Notifies the field that the user left the control. */\n protected _markTouched(): void {\n this.touch.emit();\n }\n}\n\n/**\n * Signal-forms base for **value** controls: adds the required\n * `value: ModelSignal<T>` of the `FormValueControl` contract. Each control\n * supplies the model itself (`readonly value = model<T>(initial)`), mirroring\n * how `hasValue` is supplied.\n */\n@Directive()\nexport abstract class MlvSignalFormControlBase<T>\n extends MlvSignalFormUiControlBase\n implements FormValueControl<T>\n{\n /** The control's value — kept in sync with the bound field by `[formField]`. */\n abstract readonly value: ModelSignal<T>;\n}\n\n/**\n * Signal-forms base for **checkbox-shaped** controls (checkbox, switch): adds\n * the required `checked: ModelSignal<boolean>` of the `FormCheckboxControl`\n * contract. The contract forbids a `value` member on this variant.\n */\n@Directive()\nexport abstract class MlvSignalCheckboxControlBase\n extends MlvSignalFormUiControlBase\n implements FormCheckboxControl\n{\n /** The control's checked state — kept in sync with the bound field by `[formField]`. */\n abstract readonly checked: ModelSignal<boolean>;\n}\n","import { Directive } from '@angular/core';\nimport { MlvStructural } from '@malva-ui/cdk/utils';\n\n@Directive({\n selector: '[mlvFormControlWrapperControl]',\n})\nexport class MlvFormControlWrapperControl extends MlvStructural {}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n inject,\n output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MlvFormControlWrapperControl } from './form-control-wrapper-control';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { MLV_FORM_CONTROL } from '../models/form-control-connector';\nimport { MlvButtonClose } from '@malva-ui/core/button';\nimport { MLV_FORM_UTILS_I18N } from '@malva-ui/i18n';\n\n@Component({\n selector: 'mlv-form-control-wrapper',\n imports: [NgTemplateOutlet, MlvButtonClose],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './form-control-wrapper.html',\n styleUrl: './form-control-wrapper.scss',\n host: {\n class: 'mlv-form-control-wrapper',\n '[class]': '_stateClass()',\n '[class.mlv-form-control-wrapper--focused]': 'formControl?.focused()',\n '[class.mlv-form-control-wrapper--disabled]': 'formControl?.disabled()',\n '[class.mlv-form-control-wrapper--readonly]': 'formControl?.readonly()',\n '[class.mlv-form-control-wrapper--loading]': 'formControl?.loading()',\n '[class.mlv-form-control-wrapper--pill]': 'formControl?.pill?.() ?? false',\n },\n})\nexport class MlvFormControlWrapper {\n /** @protected Optional injected form control connector for state/focus/disabled bindings. */\n protected readonly formControl = inject(MLV_FORM_CONTROL, {\n optional: true,\n });\n\n /** @protected Computed BEM state modifier class derived from the control's validation state. */\n protected readonly _stateClass = computed(\n () =>\n `mlv-form-control-wrapper--state-${\n this.formControl?.resolvedState?.() ??\n this.formControl?.state() ??\n 'default'\n }`,\n );\n\n /** @protected Required projected control-slot directive rendered inside the wrapper. */\n protected readonly renderer = contentChild.required(\n MlvFormControlWrapperControl,\n );\n\n /** @protected The component's i18n strings signal. */\n protected readonly _i18n = inject(MLV_FORM_UTILS_I18N);\n\n /**\n * Clear event emitter. Emits when user clicks on clear button\n */\n readonly clear = output<void>();\n\n /** @protected Handles the clear-button click by emitting the `clear` output. */\n protected _onClearClick(): void {\n this.clear.emit();\n }\n}\n","<div class=\"mlv-form-control-wrapper__label-container\">\n <ng-content select=\"mlv-label\"></ng-content>\n</div>\n<div\n class=\"mlv-form-control-wrapper__control-container\"\n [class.mlv-form-control-wrapper__control-container--with-inset]=\"\n formControl?.inset()\n \"\n>\n <div class=\"mlv-form-control-wrapper__control-row\">\n @if (formControl?.prepend(); as prependTpl) {\n <div class=\"mlv-form-control-wrapper__side-content\">\n <ng-template [ngTemplateOutlet]=\"prependTpl.templateRef\"></ng-template>\n </div>\n }\n\n <ng-template [ngTemplateOutlet]=\"renderer().templateRef\"></ng-template>\n\n @if ( formControl?.clearable() && formControl?.hasValue() &&\n !formControl?.ownsClearButton?.() ) {\n <div class=\"mlv-form-control-wrapper__clear\">\n <mlv-button-close\n (click)=\"_onClearClick()\"\n mlvDensity=\"tight\"\n [ariaLabel]=\"_i18n().clear\"\n />\n </div>\n } @if (formControl?.append(); as appendTpl) {\n <div class=\"mlv-form-control-wrapper__side-content\">\n <ng-template [ngTemplateOutlet]=\"appendTpl.templateRef\"></ng-template>\n </div>\n }\n </div>\n\n @if (formControl?.inset(); as insetTpl) {\n <div class=\"mlv-form-control-wrapper__inset\">\n <ng-template [ngTemplateOutlet]=\"insetTpl.templateRef\"></ng-template>\n </div>\n }\n</div>\n\n<!-- Below-control slots. `mlv-description` is persistent help text, `mlv-message`\n the stateful validation line, and `[mlvFormControlWrapperAside]` any\n control-owned auxiliary readout (e.g. the textarea character counter). -->\n<div class=\"mlv-form-control-wrapper__message-container\">\n <ng-content select=\"mlv-description\"></ng-content>\n <ng-content select=\"mlv-message\"></ng-content>\n <ng-content select=\"[mlvFormControlWrapperAside]\"></ng-content>\n</div>\n","import { Injectable, signal, computed } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class MlvSelectionService<T = unknown> {\n readonly multiple = signal(false);\n readonly selectedValues = signal<T[]>([]);\n readonly focusFirst$ = new Subject<void>();\n\n /**\n * Equality predicate used for all membership checks (`isSelected`,\n * `deselect`, and the `select`/`toggle` de-dup path). Defaults to reference\n * equality (`a === b`). Set a custom comparator (e.g. compare by id) so object\n * values written via `writeValue` after deserialization match the option\n * instances and check-marks / display value stay in agreement.\n */\n readonly compareWith = signal<(a: T, b: T) => boolean>((a, b) => a === b);\n\n readonly displayValue = computed(() => {\n const values = this.selectedValues();\n if (values.length === 0) return '';\n if (values.length === 1) return String(values[0]);\n return `${values.length} items selected`;\n });\n\n /** @private Index of `value` within the current selection, or `-1`. */\n private _indexOf(value: T): number {\n const compare = this.compareWith();\n return this.selectedValues().findIndex((v) => compare(v, value));\n }\n\n select(value: T): void {\n if (this.multiple()) {\n const current = this.selectedValues();\n const index = this._indexOf(value);\n if (index >= 0) {\n this.selectedValues.set([\n ...current.slice(0, index),\n ...current.slice(index + 1),\n ]);\n } else {\n this.selectedValues.set([...current, value]);\n }\n } else {\n this.selectedValues.set([value]);\n }\n }\n\n deselect(value: T): void {\n const compare = this.compareWith();\n this.selectedValues.set(\n this.selectedValues().filter((v) => !compare(v, value)),\n );\n }\n\n isSelected(value: T): boolean {\n return this._indexOf(value) >= 0;\n }\n\n clear(): void {\n this.selectedValues.set([]);\n }\n\n setValues(values: T[]): void {\n this.selectedValues.set(values);\n }\n\n toggle(value: T): void {\n if (this.isSelected(value)) {\n this.deselect(value);\n } else {\n this.select(value);\n }\n }\n\n requestFocusFirst(): void {\n this.focusFirst$.next();\n }\n}\n","/**\n * Forms ↔ `@angular/aria` value bridge.\n *\n * The headless `@angular/aria` selection patterns (`ngListbox`, `ngMenu`,\n * `ngTree`, …) always model their selection as an **array** of values\n * (`value: ModelSignal<V[]>`), even in single-select mode where the array holds\n * at most one entry. Malva UI form controls expose the idiomatic public shape:\n * a bare `T` for single-select and a `T[]` for multi-select, with `null` used\n * to represent \"no selection\".\n *\n * These helpers translate between the two representations so a component can\n * keep its public single/multi forms contract while driving an aria pattern\n * underneath. They are pure and allocation-light, and are designed to\n * round-trip: `fromAriaValues(toAriaValues(v, multi), multi)` yields the\n * canonical form of `v`.\n *\n * @remarks\n * `toAriaValues` treats an incoming array as an already-expanded multi-select\n * value. If your single-select `T` is itself an array type, wrap it before\n * bridging — this is the same ambiguity the aria patterns themselves carry.\n */\n\n/**\n * Normalises a control value (`T`, `T[]`, or `null`/`undefined`) into the flat\n * `V[]` array that `@angular/aria` selection patterns expect.\n *\n * - `null` / `undefined` → `[]` (cleared selection)\n * - an array → a shallow copy of that array (multi-select)\n * - any other value → a single-element array (single-select)\n *\n * @param value The control-side value to convert.\n * @returns A fresh array suitable for assigning to an aria `value` model.\n */\nexport function toAriaValues<V>(\n value: V | readonly V[] | null | undefined,\n): V[] {\n if (value === null || value === undefined) {\n return [];\n }\n return Array.isArray(value) ? [...(value as readonly V[])] : [value as V];\n}\n\n/**\n * Collapses the flat `V[]` array produced by an `@angular/aria` selection\n * pattern back into the control-side value shape.\n *\n * - `multiple === true` → a shallow copy of the array (empty array stays `[]`)\n * - `multiple === false` → the first entry, or `null` when the array is empty\n *\n * @param values The aria-side selection array.\n * @param multiple Whether the control is in multi-select mode.\n * @returns The control-side value: `V[]` for multi-select, `V | null` for single.\n */\nexport function fromAriaValues<V>(\n values: readonly V[] | null | undefined,\n multiple: boolean,\n): V | V[] | null {\n const list = values ?? [];\n if (multiple) {\n return [...list];\n }\n return list.length > 0 ? list[0] : null;\n}\n","import type { Signal, WritableSignal } from '@angular/core';\nimport { Directive, DestroyRef, effect, inject } from '@angular/core';\nimport type { FocusOrigin } from '@angular/cdk/a11y';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { DOWN_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport type { Subscription } from 'rxjs';\nimport { MlvRtlService } from '@malva-ui/cdk/utils';\n\n/**\n * The per-item contract a roving-tabindex group needs from each child: a\n * focusable element whose `tabIndex` is a writable signal the group flips\n * between `0` (the single tab stop) and `-1` (the rest). Satisfied by\n * `mlv-checkbox` and `mlv-switch`, whose native input binds `[attr.tabindex]`\n * to this signal.\n *\n * Deliberately NOT `extends FocusableOption`: components type `disabled` as a\n * coerced input signal (`InputSignalWithTransform<boolean, BooleanInput>`),\n * which is incompatible with `FocusableOption`'s plain `disabled?: boolean`.\n * Disabled-skipping is expressed through the group's\n * {@link MlvFocusableGroupBase._isDisabled} predicate instead, and\n * `FocusKeyManager<T>` needs no constraint (it intersects `FocusableOption & T`\n * internally).\n */\nexport interface MlvFocusableGroupItem {\n /** Focuses the item's focus target (the visually-hidden native input). */\n focus(origin?: FocusOrigin): void;\n\n /** Roving tabindex applied to the item's focus target. */\n readonly tabIndex: WritableSignal<number>;\n}\n\n/**\n * Shared, selection-agnostic scaffold for composite groups that navigate their\n * children with a vertical, wrapping {@link FocusKeyManager} and a roving\n * tabindex that follows focus (only the active child is tabbable).\n *\n * Extracted from the duplicated lifecycle in `MlvCheckboxGroup` and\n * `MlvSwitchGroup`. It owns **only** the focus / roving-tabindex concern:\n * key-manager creation over the current children, the `change`→tabindex sync,\n * keydown delegation, child-focus tracking, and teardown. Subclasses supply the\n * live children signal ({@link _items}) and the skip predicate\n * ({@link _isDisabled}); everything else (selection, CVA, templates) stays in\n * the concrete component.\n *\n * NB: this is a *focus-roving* base — the tab stop follows the focused child.\n * Groups whose tab stop must follow a *selected* child instead (e.g.\n * `mlv-radio-group`, whose checked radio is the tab stop and whose arrow keys\n * also move selection) do not fit this contract and keep their own manager.\n *\n * @typeParam T The concrete focusable child component type.\n */\n@Directive()\nexport abstract class MlvFocusableGroupBase<T extends MlvFocusableGroupItem> {\n /** @private Normalizes the vertical arrow keys delegated to the key manager. */\n private readonly _rtlService = inject(MlvRtlService);\n\n /**\n * @protected The live children in DOM order — typically a `contentChildren`\n * signal on the subclass. Read reactively inside the base effect so the key\n * manager is rebuilt whenever the projected set changes.\n */\n protected abstract readonly _items: Signal<readonly T[]>;\n\n /**\n * @protected Predicate marking a child as skipped by arrow navigation. Groups\n * bridge their own disabled model here (e.g. `computedDisabled()`).\n */\n protected abstract _isDisabled(item: T): boolean;\n\n /** @private FocusKeyManager driving roving-tabindex arrow navigation between children. */\n private _keyManager?: FocusKeyManager<T>;\n\n /** @private Subscription to the key manager's active-item changes. */\n private _changeSub?: Subscription;\n\n constructor() {\n inject(DestroyRef).onDestroy(() => {\n this._changeSub?.unsubscribe();\n this._keyManager?.destroy();\n });\n\n effect(() => {\n const items = [...this._items()];\n if (items.length === 0) return;\n\n // Destroy the previous instance before allocating a new one — without\n // this, every children emission accumulates a live FocusKeyManager\n // (subscriptions, change-detection refs) against detached items.\n this._changeSub?.unsubscribe();\n this._keyManager?.destroy();\n this._keyManager = new FocusKeyManager<T>(items)\n .skipPredicate((item) => this._isDisabled(item))\n .withVerticalOrientation()\n .withWrap();\n\n // Keep the roving tabindex in sync as focus moves between children so only\n // the active item is tabbable. `tabIndex` is a signal, so the host binding\n // updates under OnPush without an extra change-detection trigger.\n this._changeSub = this._keyManager.change.subscribe((index) =>\n this._syncTabIndices(index),\n );\n\n // Initial roving state: the first child is the single tab stop.\n this._syncTabIndices(0);\n });\n }\n\n /**\n * Notifies the manager which child took focus so arrow navigation resumes from\n * it. Wire to each child's focus notification (group accessor token).\n */\n onChildFocus(item: T): void {\n const index = this._items().indexOf(item);\n if (index >= 0) {\n this._keyManager?.setActiveItem(index);\n }\n }\n\n /**\n * Delegates ArrowUp/ArrowDown to the key manager (moving focus + the tab stop)\n * and suppresses the default page scroll. Wire to the group's `(keydown)`.\n */\n onKeydown(event: KeyboardEvent): void {\n const key = this._rtlService.normalizeArrowKey(event);\n if (key === UP_ARROW || key === DOWN_ARROW) {\n this._keyManager?.onKeydown(event);\n event.preventDefault();\n }\n }\n\n /** @private Sets tabindex 0 on the active child and -1 on the rest. */\n private _syncTabIndices(activeIndex: number): void {\n this._items().forEach((item, i) => {\n item.tabIndex.set(i === activeIndex ? 0 : -1);\n });\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,283 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, computed, ChangeDetectionStrategy, ViewEncapsulation, Component, inject, ElementRef, Directive } from '@angular/core';
|
|
3
|
+
import * as i1 from '@malva-ui/cdk/density';
|
|
4
|
+
import { MLV_DENSITY_ELEMENT, provideMlvDensityContext, MlvDensityDirective } from '@malva-ui/cdk/density';
|
|
5
|
+
import { mlvNextId } from '@malva-ui/cdk/utils';
|
|
6
|
+
|
|
7
|
+
/** @internal Spacing token behind each {@link MlvFormGap} step. */
|
|
8
|
+
const GAP_TOKENS = {
|
|
9
|
+
xs: 'var(--mlv-spacing-2)',
|
|
10
|
+
s: 'var(--mlv-spacing-3)',
|
|
11
|
+
m: 'var(--mlv-spacing-4)',
|
|
12
|
+
l: 'var(--mlv-spacing-5)',
|
|
13
|
+
xl: 'var(--mlv-spacing-6)',
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* @internal Resolves a gap step to the CSS value written into `--mlv-form-gap`.
|
|
17
|
+
*/
|
|
18
|
+
function mlvFormGapValue(gap) {
|
|
19
|
+
return GAP_TOKENS[gap];
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Layout shell for a native `<form>`: vertical stack with a density-scaled gap,
|
|
24
|
+
* and the density source for everything inside it.
|
|
25
|
+
*
|
|
26
|
+
* - `mlvDensity` (host directive) stamps `mlv-form--<density>` for cascade-only
|
|
27
|
+
* controls **and** provides `MLV_DENSITY_CONTEXT` for directive-bearing ones
|
|
28
|
+
* (buttons, selects, chips…), so one attribute sizes the whole form.
|
|
29
|
+
* - `gap` overrides the rhythm explicitly; `--mlv-form-gap` is the CSS hook.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```html
|
|
33
|
+
* <form mlvForm mlvDensity="compact" maxWidth="32rem" [formGroup]="form">
|
|
34
|
+
* <mlv-input formControlName="name" label="Name" />
|
|
35
|
+
* <footer mlvFormActions align="end"><button mlvButton type="submit">Save</button></footer>
|
|
36
|
+
* </form>
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
class MlvForm {
|
|
40
|
+
/**
|
|
41
|
+
* Explicit rhythm between the form's direct children (and, by inheritance,
|
|
42
|
+
* inside every `mlvFieldset`). Unset = density-scaled default
|
|
43
|
+
* (tight 0.5rem → airy 1.5rem).
|
|
44
|
+
*/
|
|
45
|
+
gap = input(undefined, /* @ts-ignore */
|
|
46
|
+
...(ngDevMode ? [{ debugName: "gap" }] : /* istanbul ignore next */ []));
|
|
47
|
+
/** Caps the form's inline size (`max-inline-size`), e.g. `'32rem'`. */
|
|
48
|
+
maxWidth = input(undefined, /* @ts-ignore */
|
|
49
|
+
...(ngDevMode ? [{ debugName: "maxWidth" }] : /* istanbul ignore next */ []));
|
|
50
|
+
/**
|
|
51
|
+
* @internal Inline `--mlv-form-gap` value; `null` removes the override so the
|
|
52
|
+
* stylesheet's density-scaled default applies.
|
|
53
|
+
*/
|
|
54
|
+
_gapValue = computed(() => {
|
|
55
|
+
const gap = this.gap();
|
|
56
|
+
return gap ? mlvFormGapValue(gap) : null;
|
|
57
|
+
}, /* @ts-ignore */
|
|
58
|
+
...(ngDevMode ? [{ debugName: "_gapValue" }] : /* istanbul ignore next */ []));
|
|
59
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvForm, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
60
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.7", type: MlvForm, isStandalone: true, selector: "form[mlvForm]", inputs: { gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--mlv-form-gap": "_gapValue()", "style.max-inline-size": "maxWidth() ?? null" }, classAttribute: "mlv-form" }, providers: [
|
|
61
|
+
{ provide: MLV_DENSITY_ELEMENT, useValue: 'form' },
|
|
62
|
+
provideMlvDensityContext(MlvDensityDirective),
|
|
63
|
+
], hostDirectives: [{ directive: i1.MlvDensityDirective, inputs: ["mlvDensity", "mlvDensity"] }], ngImport: i0, template: '<ng-content />', isInline: true, styles: ["@layer mlv.components{.mlv-form{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-m)}.mlv-form *{box-sizing:border-box}.mlv-form{--mlv-form-gap: var(--mlv-spacing-4)}[class*=--tight] .mlv-form:not([class*=--compact],[class*=--comfortable],[class*=--spacious],[class*=--airy]),.mlv-form[class*=--tight]{--mlv-form-gap: var(--mlv-spacing-2)}[class*=--compact] .mlv-form:not([class*=--tight],[class*=--comfortable],[class*=--spacious],[class*=--airy]),.mlv-form[class*=--compact]{--mlv-form-gap: var(--mlv-spacing-3)}[class*=--spacious] .mlv-form:not([class*=--tight],[class*=--compact],[class*=--comfortable],[class*=--airy]),.mlv-form[class*=--spacious]{--mlv-form-gap: var(--mlv-spacing-5)}[class*=--airy] .mlv-form:not([class*=--tight],[class*=--compact],[class*=--comfortable],[class*=--spacious]),.mlv-form[class*=--airy]{--mlv-form-gap: var(--mlv-spacing-6)}.mlv-form{display:flex;flex-direction:column;align-items:stretch;min-inline-size:0;gap:var(--mlv-form-gap)}.mlv-form>.mlv-button{align-self:flex-start}.mlv-form__header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--mlv-spacing-3)}.mlv-form__header>:is(h1,h2,h3,h4,h5,h6){margin:0}.mlv-form__actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:var(--mlv-spacing-3)}.mlv-form__actions--align-end{justify-content:flex-end}.mlv-form__actions--align-center{justify-content:center}.mlv-form__actions--align-between{justify-content:space-between}.mlv-form fieldset:not(.mlv-fieldset){border:0;padding:0;margin:0;min-inline-size:0;display:flex;flex-direction:column;gap:var(--mlv-form-gap)}.mlv-form fieldset:not(.mlv-fieldset)>legend{float:none;inline-size:100%;margin:0;padding:0 0 var(--mlv-spacing-2);font-family:var(--mlv-typography-family-text);font-size:var(--mlv-typography-body-l-size);font-weight:var(--mlv-font-weight-semibold);line-height:var(--mlv-typography-body-l-line-height);color:var(--mlv-text-primary)}.mlv-form[class*=--tight] fieldset:not(.mlv-fieldset)>legend,.mlv-form[class*=--compact] fieldset:not(.mlv-fieldset)>legend{font-size:var(--mlv-typography-body-m-size);line-height:var(--mlv-typography-body-m-line-height)}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
64
|
+
}
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvForm, decorators: [{
|
|
66
|
+
type: Component,
|
|
67
|
+
args: [{ selector: 'form[mlvForm]', template: '<ng-content />', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [{ directive: MlvDensityDirective, inputs: ['mlvDensity'] }], providers: [
|
|
68
|
+
{ provide: MLV_DENSITY_ELEMENT, useValue: 'form' },
|
|
69
|
+
provideMlvDensityContext(MlvDensityDirective),
|
|
70
|
+
], host: {
|
|
71
|
+
class: 'mlv-form',
|
|
72
|
+
'[style.--mlv-form-gap]': '_gapValue()',
|
|
73
|
+
'[style.max-inline-size]': 'maxWidth() ?? null',
|
|
74
|
+
}, styles: ["@layer mlv.components{.mlv-form{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-m)}.mlv-form *{box-sizing:border-box}.mlv-form{--mlv-form-gap: var(--mlv-spacing-4)}[class*=--tight] .mlv-form:not([class*=--compact],[class*=--comfortable],[class*=--spacious],[class*=--airy]),.mlv-form[class*=--tight]{--mlv-form-gap: var(--mlv-spacing-2)}[class*=--compact] .mlv-form:not([class*=--tight],[class*=--comfortable],[class*=--spacious],[class*=--airy]),.mlv-form[class*=--compact]{--mlv-form-gap: var(--mlv-spacing-3)}[class*=--spacious] .mlv-form:not([class*=--tight],[class*=--compact],[class*=--comfortable],[class*=--airy]),.mlv-form[class*=--spacious]{--mlv-form-gap: var(--mlv-spacing-5)}[class*=--airy] .mlv-form:not([class*=--tight],[class*=--compact],[class*=--comfortable],[class*=--spacious]),.mlv-form[class*=--airy]{--mlv-form-gap: var(--mlv-spacing-6)}.mlv-form{display:flex;flex-direction:column;align-items:stretch;min-inline-size:0;gap:var(--mlv-form-gap)}.mlv-form>.mlv-button{align-self:flex-start}.mlv-form__header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--mlv-spacing-3)}.mlv-form__header>:is(h1,h2,h3,h4,h5,h6){margin:0}.mlv-form__actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:var(--mlv-spacing-3)}.mlv-form__actions--align-end{justify-content:flex-end}.mlv-form__actions--align-center{justify-content:center}.mlv-form__actions--align-between{justify-content:space-between}.mlv-form fieldset:not(.mlv-fieldset){border:0;padding:0;margin:0;min-inline-size:0;display:flex;flex-direction:column;gap:var(--mlv-form-gap)}.mlv-form fieldset:not(.mlv-fieldset)>legend{float:none;inline-size:100%;margin:0;padding:0 0 var(--mlv-spacing-2);font-family:var(--mlv-typography-family-text);font-size:var(--mlv-typography-body-l-size);font-weight:var(--mlv-font-weight-semibold);line-height:var(--mlv-typography-body-l-line-height);color:var(--mlv-text-primary)}.mlv-form[class*=--tight] fieldset:not(.mlv-fieldset)>legend,.mlv-form[class*=--compact] fieldset:not(.mlv-fieldset)>legend{font-size:var(--mlv-typography-body-m-size);line-height:var(--mlv-typography-body-m-line-height)}}\n"] }]
|
|
75
|
+
}], propDecorators: { gap: [{ type: i0.Input, args: [{ isSignal: true, alias: "gap", required: false }] }], maxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxWidth", required: false }] }] } });
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* @internal Accepts `'auto'`, a positive integer, or a numeric string
|
|
79
|
+
* (`columns="2"`); anything else falls back to `'auto'`.
|
|
80
|
+
*/
|
|
81
|
+
function coerceColumns(value) {
|
|
82
|
+
if (value === 'auto' || value === '')
|
|
83
|
+
return 'auto';
|
|
84
|
+
const n = typeof value === 'number' ? value : Number(value);
|
|
85
|
+
return Number.isFinite(n) && n >= 1 ? Math.floor(n) : 'auto';
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Group of related controls on a native `<fieldset>`: styled legend, optional
|
|
89
|
+
* description (wired to `aria-describedby`), and a responsive grid body.
|
|
90
|
+
*
|
|
91
|
+
* - `columns='auto'` (default): auto-fit columns of at least `minColumnWidth`.
|
|
92
|
+
* - `columns=n`: **at most** `n` columns; still collapses when the container is
|
|
93
|
+
* narrower than `n × minColumnWidth`.
|
|
94
|
+
* - Gap inherits the surrounding `form[mlvForm]` rhythm (`--mlv-form-gap`);
|
|
95
|
+
* `gap` overrides it for this fieldset and nested ones.
|
|
96
|
+
* - Rich headings: project a native `<legend>` instead of the `legend` input
|
|
97
|
+
* (the input wins when both are present).
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```html
|
|
101
|
+
* <fieldset mlvFieldset legend="Address" description="Where we ship." [columns]="2">
|
|
102
|
+
* <mlv-input label="Street" mlvFieldsetSpan="full" />
|
|
103
|
+
* <mlv-input label="City" />
|
|
104
|
+
* <mlv-input label="Postal code" />
|
|
105
|
+
* </fieldset>
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
class MlvFieldset {
|
|
109
|
+
/** Element id; auto-generated (`mlv-fieldset-<n>`) unless bound. Seeds the description id. */
|
|
110
|
+
id = input(mlvNextId('mlv-fieldset'), /* @ts-ignore */
|
|
111
|
+
...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
|
|
112
|
+
/** Group heading rendered as `<legend class="mlv-fieldset__legend">`. Omit and project a native `<legend>` for rich content. */
|
|
113
|
+
legend = input(undefined, /* @ts-ignore */
|
|
114
|
+
...(ngDevMode ? [{ debugName: "legend" }] : /* istanbul ignore next */ []));
|
|
115
|
+
/** Help text rendered under the legend and announced via `aria-describedby`. */
|
|
116
|
+
description = input(undefined, /* @ts-ignore */
|
|
117
|
+
...(ngDevMode ? [{ debugName: "description" }] : /* istanbul ignore next */ []));
|
|
118
|
+
/** `'auto'` (responsive auto-fit) or a maximum column count. Numeric strings are accepted. */
|
|
119
|
+
columns = input('auto', { ...(ngDevMode ? { debugName: "columns" } : /* istanbul ignore next */ {}), transform: coerceColumns });
|
|
120
|
+
/** Smallest inline size a column may shrink to before the grid drops a column. */
|
|
121
|
+
minColumnWidth = input('10rem', /* @ts-ignore */
|
|
122
|
+
...(ngDevMode ? [{ debugName: "minColumnWidth" }] : /* istanbul ignore next */ []));
|
|
123
|
+
/** Explicit gap for this fieldset (and nested ones); unset = inherited form rhythm / density default. */
|
|
124
|
+
gap = input(undefined, /* @ts-ignore */
|
|
125
|
+
...(ngDevMode ? [{ debugName: "gap" }] : /* istanbul ignore next */ []));
|
|
126
|
+
/** @internal Whether `columns` is a number (capped grid). */
|
|
127
|
+
_capped = computed(() => typeof this.columns() === 'number', /* @ts-ignore */
|
|
128
|
+
...(ngDevMode ? [{ debugName: "_capped" }] : /* istanbul ignore next */ []));
|
|
129
|
+
/** @internal Id of the description paragraph, `<id>-description`. */
|
|
130
|
+
_descriptionId = computed(() => `${this.id()}-description`, /* @ts-ignore */
|
|
131
|
+
...(ngDevMode ? [{ debugName: "_descriptionId" }] : /* istanbul ignore next */ []));
|
|
132
|
+
/**
|
|
133
|
+
* @private A static `aria-describedby` authored by the consumer, read once at
|
|
134
|
+
* construction (before the host binding takes the attribute over). `null` when
|
|
135
|
+
* absent or blank. A *bound* `[attr.aria-describedby]` is not supported — the
|
|
136
|
+
* host binding owns the attribute from the first change detection run.
|
|
137
|
+
*/
|
|
138
|
+
_authoredDescribedBy = (inject((ElementRef)).nativeElement.getAttribute('aria-describedby') ?? '').trim() || null;
|
|
139
|
+
/**
|
|
140
|
+
* @internal Host `aria-describedby`: the rendered description id (when
|
|
141
|
+
* `description` is set) merged with any consumer-authored value, `null` when
|
|
142
|
+
* neither is present.
|
|
143
|
+
*/
|
|
144
|
+
_describedBy = computed(() => {
|
|
145
|
+
const parts = [
|
|
146
|
+
this.description() ? this._descriptionId() : null,
|
|
147
|
+
this._authoredDescribedBy,
|
|
148
|
+
].filter((part) => !!part);
|
|
149
|
+
return parts.length ? parts.join(' ') : null;
|
|
150
|
+
}, /* @ts-ignore */
|
|
151
|
+
...(ngDevMode ? [{ debugName: "_describedBy" }] : /* istanbul ignore next */ []));
|
|
152
|
+
/** @internal Inline `--mlv-form-gap` value, `null` when unset. */
|
|
153
|
+
_gapValue = computed(() => {
|
|
154
|
+
const gap = this.gap();
|
|
155
|
+
return gap ? mlvFormGapValue(gap) : null;
|
|
156
|
+
}, /* @ts-ignore */
|
|
157
|
+
...(ngDevMode ? [{ debugName: "_gapValue" }] : /* istanbul ignore next */ []));
|
|
158
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvFieldset, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
159
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: MlvFieldset, isStandalone: true, selector: "fieldset[mlvFieldset]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, legend: { classPropertyName: "legend", publicName: "legend", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, minColumnWidth: { classPropertyName: "minColumnWidth", publicName: "minColumnWidth", isSignal: true, isRequired: false, transformFunction: null }, gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.id": "id()", "class.mlv-fieldset--capped": "_capped()", "style.--mlv-fieldset-columns": "_capped() ? columns() : null", "style.--mlv-fieldset-min-column-width": "minColumnWidth()", "style.--mlv-form-gap": "_gapValue()", "attr.aria-describedby": "_describedBy()" }, classAttribute: "mlv-fieldset" }, ngImport: i0, template: "@if (legend(); as text) {\n<legend class=\"mlv-fieldset__legend\">{{ text }}</legend>\n} @else {\n<ng-content select=\"legend\" />\n} @if (description(); as text) {\n<p class=\"mlv-fieldset__description\" [id]=\"_descriptionId()\">{{ text }}</p>\n}\n<div class=\"mlv-fieldset__body\"><ng-content /></div>\n", styles: ["@layer mlv.components{.mlv-fieldset{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-m)}.mlv-fieldset *{box-sizing:border-box}.mlv-fieldset{border:0;padding:0;margin:0;min-inline-size:0;--mlv-fieldset-default-gap: var(--mlv-spacing-4)}[class*=--tight] .mlv-fieldset:not([class*=--compact],[class*=--comfortable],[class*=--spacious],[class*=--airy]),.mlv-fieldset[class*=--tight]{--mlv-fieldset-default-gap: var(--mlv-spacing-2)}[class*=--compact] .mlv-fieldset:not([class*=--tight],[class*=--comfortable],[class*=--spacious],[class*=--airy]),.mlv-fieldset[class*=--compact]{--mlv-fieldset-default-gap: var(--mlv-spacing-3)}[class*=--spacious] .mlv-fieldset:not([class*=--tight],[class*=--compact],[class*=--comfortable],[class*=--airy]),.mlv-fieldset[class*=--spacious]{--mlv-fieldset-default-gap: var(--mlv-spacing-5)}[class*=--airy] .mlv-fieldset:not([class*=--tight],[class*=--compact],[class*=--comfortable],[class*=--spacious]),.mlv-fieldset[class*=--airy]{--mlv-fieldset-default-gap: var(--mlv-spacing-6)}.mlv-fieldset{--mlv-fieldset-min-column-width: 10rem;display:block}.mlv-fieldset__legend,.mlv-fieldset>legend{float:none;inline-size:100%;margin:0;padding:0 0 var(--mlv-spacing-2);font-family:var(--mlv-typography-family-text);font-size:var(--mlv-typography-body-l-size);font-weight:var(--mlv-font-weight-semibold);line-height:var(--mlv-typography-body-l-line-height);color:var(--mlv-text-primary)}[class*=--tight] .mlv-fieldset__legend:not([class*=--compact],[class*=--comfortable],[class*=--spacious],[class*=--airy]),.mlv-fieldset__legend[class*=--tight],[class*=--tight] .mlv-fieldset>legend:not([class*=--compact],[class*=--comfortable],[class*=--spacious],[class*=--airy]),.mlv-fieldset>legend[class*=--tight]{font-size:var(--mlv-typography-body-m-size);line-height:var(--mlv-typography-body-m-line-height)}[class*=--compact] .mlv-fieldset__legend:not([class*=--tight],[class*=--comfortable],[class*=--spacious],[class*=--airy]),.mlv-fieldset__legend[class*=--compact],[class*=--compact] .mlv-fieldset>legend:not([class*=--tight],[class*=--comfortable],[class*=--spacious],[class*=--airy]),.mlv-fieldset>legend[class*=--compact]{font-size:var(--mlv-typography-body-m-size);line-height:var(--mlv-typography-body-m-line-height)}.mlv-fieldset__description{margin:0 0 var(--mlv-spacing-3);font-size:var(--mlv-typography-body-s-size);line-height:var(--mlv-typography-body-s-line-height);color:var(--mlv-text-secondary)}.mlv-fieldset__body{display:grid;min-inline-size:0;gap:var(--mlv-form-gap, var(--mlv-fieldset-default-gap));grid-template-columns:repeat(auto-fit,minmax(min(var(--mlv-fieldset-min-column-width),100%),1fr))}.mlv-fieldset--capped>.mlv-fieldset__body{grid-template-columns:repeat(auto-fit,minmax(max(min(var(--mlv-fieldset-min-column-width),100%),(100% - (var(--mlv-fieldset-columns) - 1) * var(--mlv-form-gap, var(--mlv-fieldset-default-gap))) / var(--mlv-fieldset-columns)),1fr))}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
160
|
+
}
|
|
161
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvFieldset, decorators: [{
|
|
162
|
+
type: Component,
|
|
163
|
+
args: [{ selector: 'fieldset[mlvFieldset]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
164
|
+
class: 'mlv-fieldset',
|
|
165
|
+
'[attr.id]': 'id()',
|
|
166
|
+
'[class.mlv-fieldset--capped]': '_capped()',
|
|
167
|
+
'[style.--mlv-fieldset-columns]': '_capped() ? columns() : null',
|
|
168
|
+
'[style.--mlv-fieldset-min-column-width]': 'minColumnWidth()',
|
|
169
|
+
'[style.--mlv-form-gap]': '_gapValue()',
|
|
170
|
+
'[attr.aria-describedby]': '_describedBy()',
|
|
171
|
+
}, template: "@if (legend(); as text) {\n<legend class=\"mlv-fieldset__legend\">{{ text }}</legend>\n} @else {\n<ng-content select=\"legend\" />\n} @if (description(); as text) {\n<p class=\"mlv-fieldset__description\" [id]=\"_descriptionId()\">{{ text }}</p>\n}\n<div class=\"mlv-fieldset__body\"><ng-content /></div>\n", styles: ["@layer mlv.components{.mlv-fieldset{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-m)}.mlv-fieldset *{box-sizing:border-box}.mlv-fieldset{border:0;padding:0;margin:0;min-inline-size:0;--mlv-fieldset-default-gap: var(--mlv-spacing-4)}[class*=--tight] .mlv-fieldset:not([class*=--compact],[class*=--comfortable],[class*=--spacious],[class*=--airy]),.mlv-fieldset[class*=--tight]{--mlv-fieldset-default-gap: var(--mlv-spacing-2)}[class*=--compact] .mlv-fieldset:not([class*=--tight],[class*=--comfortable],[class*=--spacious],[class*=--airy]),.mlv-fieldset[class*=--compact]{--mlv-fieldset-default-gap: var(--mlv-spacing-3)}[class*=--spacious] .mlv-fieldset:not([class*=--tight],[class*=--compact],[class*=--comfortable],[class*=--airy]),.mlv-fieldset[class*=--spacious]{--mlv-fieldset-default-gap: var(--mlv-spacing-5)}[class*=--airy] .mlv-fieldset:not([class*=--tight],[class*=--compact],[class*=--comfortable],[class*=--spacious]),.mlv-fieldset[class*=--airy]{--mlv-fieldset-default-gap: var(--mlv-spacing-6)}.mlv-fieldset{--mlv-fieldset-min-column-width: 10rem;display:block}.mlv-fieldset__legend,.mlv-fieldset>legend{float:none;inline-size:100%;margin:0;padding:0 0 var(--mlv-spacing-2);font-family:var(--mlv-typography-family-text);font-size:var(--mlv-typography-body-l-size);font-weight:var(--mlv-font-weight-semibold);line-height:var(--mlv-typography-body-l-line-height);color:var(--mlv-text-primary)}[class*=--tight] .mlv-fieldset__legend:not([class*=--compact],[class*=--comfortable],[class*=--spacious],[class*=--airy]),.mlv-fieldset__legend[class*=--tight],[class*=--tight] .mlv-fieldset>legend:not([class*=--compact],[class*=--comfortable],[class*=--spacious],[class*=--airy]),.mlv-fieldset>legend[class*=--tight]{font-size:var(--mlv-typography-body-m-size);line-height:var(--mlv-typography-body-m-line-height)}[class*=--compact] .mlv-fieldset__legend:not([class*=--tight],[class*=--comfortable],[class*=--spacious],[class*=--airy]),.mlv-fieldset__legend[class*=--compact],[class*=--compact] .mlv-fieldset>legend:not([class*=--tight],[class*=--comfortable],[class*=--spacious],[class*=--airy]),.mlv-fieldset>legend[class*=--compact]{font-size:var(--mlv-typography-body-m-size);line-height:var(--mlv-typography-body-m-line-height)}.mlv-fieldset__description{margin:0 0 var(--mlv-spacing-3);font-size:var(--mlv-typography-body-s-size);line-height:var(--mlv-typography-body-s-line-height);color:var(--mlv-text-secondary)}.mlv-fieldset__body{display:grid;min-inline-size:0;gap:var(--mlv-form-gap, var(--mlv-fieldset-default-gap));grid-template-columns:repeat(auto-fit,minmax(min(var(--mlv-fieldset-min-column-width),100%),1fr))}.mlv-fieldset--capped>.mlv-fieldset__body{grid-template-columns:repeat(auto-fit,minmax(max(min(var(--mlv-fieldset-min-column-width),100%),(100% - (var(--mlv-fieldset-columns) - 1) * var(--mlv-form-gap, var(--mlv-fieldset-default-gap))) / var(--mlv-fieldset-columns)),1fr))}}\n"] }]
|
|
172
|
+
}], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], legend: [{ type: i0.Input, args: [{ isSignal: true, alias: "legend", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: false }] }], minColumnWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "minColumnWidth", required: false }] }], gap: [{ type: i0.Input, args: [{ isSignal: true, alias: "gap", required: false }] }] } });
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Marks the title row of a `form[mlvForm]`: a wrapping flex row that keeps a
|
|
176
|
+
* heading (`h*[mlvTitle]`) on the start side and accessories (badges,
|
|
177
|
+
* segmented controls) on the end side.
|
|
178
|
+
*
|
|
179
|
+
* @example
|
|
180
|
+
* ```html
|
|
181
|
+
* <header mlvFormHeader>
|
|
182
|
+
* <h2 mlvTitle>Registration</h2>
|
|
183
|
+
* <mlv-badge tone="info" muted>Step 1 of 3</mlv-badge>
|
|
184
|
+
* </header>
|
|
185
|
+
* ```
|
|
186
|
+
*/
|
|
187
|
+
class MlvFormHeader {
|
|
188
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvFormHeader, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
189
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: MlvFormHeader, isStandalone: true, selector: "[mlvFormHeader]", host: { classAttribute: "mlv-form__header" }, ngImport: i0 });
|
|
190
|
+
}
|
|
191
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvFormHeader, decorators: [{
|
|
192
|
+
type: Directive,
|
|
193
|
+
args: [{
|
|
194
|
+
selector: '[mlvFormHeader]',
|
|
195
|
+
host: { class: 'mlv-form__header' },
|
|
196
|
+
}]
|
|
197
|
+
}] });
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Marks the actions row of a `form[mlvForm]` (submit / cancel buttons): a
|
|
201
|
+
* wrapping flex row with the standard button gap.
|
|
202
|
+
*
|
|
203
|
+
* @example
|
|
204
|
+
* ```html
|
|
205
|
+
* <footer mlvFormActions align="end">
|
|
206
|
+
* <button mlvButton variant="secondary" type="button">Cancel</button>
|
|
207
|
+
* <button mlvButton type="submit">Save</button>
|
|
208
|
+
* </footer>
|
|
209
|
+
* ```
|
|
210
|
+
*/
|
|
211
|
+
class MlvFormActions {
|
|
212
|
+
/** Horizontal distribution of the actions. `'start'` (default) hugs the start edge. */
|
|
213
|
+
align = input('start', /* @ts-ignore */
|
|
214
|
+
...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
|
|
215
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvFormActions, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
216
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: MlvFormActions, isStandalone: true, selector: "[mlvFormActions]", inputs: { align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.mlv-form__actions--align-end": "align() === \"end\"", "class.mlv-form__actions--align-center": "align() === \"center\"", "class.mlv-form__actions--align-between": "align() === \"between\"" }, classAttribute: "mlv-form__actions" }, ngImport: i0 });
|
|
217
|
+
}
|
|
218
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvFormActions, decorators: [{
|
|
219
|
+
type: Directive,
|
|
220
|
+
args: [{
|
|
221
|
+
selector: '[mlvFormActions]',
|
|
222
|
+
host: {
|
|
223
|
+
class: 'mlv-form__actions',
|
|
224
|
+
'[class.mlv-form__actions--align-end]': 'align() === "end"',
|
|
225
|
+
'[class.mlv-form__actions--align-center]': 'align() === "center"',
|
|
226
|
+
'[class.mlv-form__actions--align-between]': 'align() === "between"',
|
|
227
|
+
},
|
|
228
|
+
}]
|
|
229
|
+
}], propDecorators: { align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }] } });
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* @internal `'full'` stays; positive numbers / numeric strings become the
|
|
233
|
+
* count; anything else falls back to `'full'` (never overflows the grid).
|
|
234
|
+
*/
|
|
235
|
+
function coerceSpan(value) {
|
|
236
|
+
if (value === 'full')
|
|
237
|
+
return 'full';
|
|
238
|
+
const n = typeof value === 'number' ? value : Number(value);
|
|
239
|
+
return Number.isFinite(n) && n >= 1 ? Math.floor(n) : 'full';
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Makes a direct child of a `fieldset[mlvFieldset]` grid span several columns.
|
|
243
|
+
*
|
|
244
|
+
* `'full'` (`grid-column: 1 / -1`) is safe in every grid. A numeric span is
|
|
245
|
+
* `grid-column: span n` — in an auto-fit grid that collapsed to fewer than `n`
|
|
246
|
+
* columns it creates implicit columns and overflows, so prefer `'full'` there
|
|
247
|
+
* and reserve numbers for `[columns]="n"` grids wide enough to hold them.
|
|
248
|
+
*
|
|
249
|
+
* @example
|
|
250
|
+
* ```html
|
|
251
|
+
* <fieldset mlvFieldset [columns]="2">
|
|
252
|
+
* <mlv-input label="Street" mlvFieldsetSpan="full" />
|
|
253
|
+
* <mlv-input label="City" />
|
|
254
|
+
* <mlv-input label="Postal code" />
|
|
255
|
+
* </fieldset>
|
|
256
|
+
* ```
|
|
257
|
+
*/
|
|
258
|
+
class MlvFieldsetSpan {
|
|
259
|
+
/** Column span: a positive integer (also as a string) or `'full'` for the whole row. */
|
|
260
|
+
mlvFieldsetSpan = input.required({ ...(ngDevMode ? { debugName: "mlvFieldsetSpan" } : /* istanbul ignore next */ {}), transform: coerceSpan });
|
|
261
|
+
/** @internal Resolved `grid-column` value. */
|
|
262
|
+
_gridColumn = computed(() => {
|
|
263
|
+
const span = this.mlvFieldsetSpan();
|
|
264
|
+
return span === 'full' ? '1 / -1' : `span ${span}`;
|
|
265
|
+
}, /* @ts-ignore */
|
|
266
|
+
...(ngDevMode ? [{ debugName: "_gridColumn" }] : /* istanbul ignore next */ []));
|
|
267
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvFieldsetSpan, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
268
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: MlvFieldsetSpan, isStandalone: true, selector: "[mlvFieldsetSpan]", inputs: { mlvFieldsetSpan: { classPropertyName: "mlvFieldsetSpan", publicName: "mlvFieldsetSpan", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "style.grid-column": "_gridColumn()" } }, ngImport: i0 });
|
|
269
|
+
}
|
|
270
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvFieldsetSpan, decorators: [{
|
|
271
|
+
type: Directive,
|
|
272
|
+
args: [{
|
|
273
|
+
selector: '[mlvFieldsetSpan]',
|
|
274
|
+
host: { '[style.grid-column]': '_gridColumn()' },
|
|
275
|
+
}]
|
|
276
|
+
}], propDecorators: { mlvFieldsetSpan: [{ type: i0.Input, args: [{ isSignal: true, alias: "mlvFieldsetSpan", required: true }] }] } });
|
|
277
|
+
|
|
278
|
+
/**
|
|
279
|
+
* Generated bundle index. Do not edit.
|
|
280
|
+
*/
|
|
281
|
+
|
|
282
|
+
export { MlvFieldset, MlvFieldsetSpan, MlvForm, MlvFormActions, MlvFormHeader };
|
|
283
|
+
//# sourceMappingURL=malva-ui-core-form.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"malva-ui-core-form.mjs","sources":["../../../../libs/core/form/src/lib/form-gap.ts","../../../../libs/core/form/src/lib/form/form.ts","../../../../libs/core/form/src/lib/fieldset/fieldset.ts","../../../../libs/core/form/src/lib/fieldset/fieldset.html","../../../../libs/core/form/src/lib/form-header.ts","../../../../libs/core/form/src/lib/form-actions.ts","../../../../libs/core/form/src/lib/fieldset-span.ts","../../../../libs/core/form/src/malva-ui-core-form.ts"],"sourcesContent":["import type { MlvFormGap } from './form.types';\n\n/** @internal Spacing token behind each {@link MlvFormGap} step. */\nconst GAP_TOKENS: Record<MlvFormGap, string> = {\n xs: 'var(--mlv-spacing-2)',\n s: 'var(--mlv-spacing-3)',\n m: 'var(--mlv-spacing-4)',\n l: 'var(--mlv-spacing-5)',\n xl: 'var(--mlv-spacing-6)',\n};\n\n/**\n * @internal Resolves a gap step to the CSS value written into `--mlv-form-gap`.\n */\nexport function mlvFormGapValue(gap: MlvFormGap): string {\n return GAP_TOKENS[gap];\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n MLV_DENSITY_ELEMENT,\n MlvDensityDirective,\n provideMlvDensityContext,\n} from '@malva-ui/cdk/density';\nimport type { MlvFormGap } from '../form.types';\nimport { mlvFormGapValue } from '../form-gap';\n\n/**\n * Layout shell for a native `<form>`: vertical stack with a density-scaled gap,\n * and the density source for everything inside it.\n *\n * - `mlvDensity` (host directive) stamps `mlv-form--<density>` for cascade-only\n * controls **and** provides `MLV_DENSITY_CONTEXT` for directive-bearing ones\n * (buttons, selects, chips…), so one attribute sizes the whole form.\n * - `gap` overrides the rhythm explicitly; `--mlv-form-gap` is the CSS hook.\n *\n * @example\n * ```html\n * <form mlvForm mlvDensity=\"compact\" maxWidth=\"32rem\" [formGroup]=\"form\">\n * <mlv-input formControlName=\"name\" label=\"Name\" />\n * <footer mlvFormActions align=\"end\"><button mlvButton type=\"submit\">Save</button></footer>\n * </form>\n * ```\n */\n@Component({\n // Attribute-selector component on the native element it enhances — same\n // pattern as `button[mlvButton]` / `main[mlvPage]`.\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'form[mlvForm]',\n template: '<ng-content />',\n styleUrl: './form.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [{ directive: MlvDensityDirective, inputs: ['mlvDensity'] }],\n providers: [\n { provide: MLV_DENSITY_ELEMENT, useValue: 'form' },\n provideMlvDensityContext(MlvDensityDirective),\n ],\n host: {\n class: 'mlv-form',\n '[style.--mlv-form-gap]': '_gapValue()',\n '[style.max-inline-size]': 'maxWidth() ?? null',\n },\n})\nexport class MlvForm {\n /**\n * Explicit rhythm between the form's direct children (and, by inheritance,\n * inside every `mlvFieldset`). Unset = density-scaled default\n * (tight 0.5rem → airy 1.5rem).\n */\n readonly gap = input<MlvFormGap | undefined>(undefined);\n\n /** Caps the form's inline size (`max-inline-size`), e.g. `'32rem'`. */\n readonly maxWidth = input<string | undefined>(undefined);\n\n /**\n * @internal Inline `--mlv-form-gap` value; `null` removes the override so the\n * stylesheet's density-scaled default applies.\n */\n protected readonly _gapValue = computed(() => {\n const gap = this.gap();\n return gap ? mlvFormGapValue(gap) : null;\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { mlvNextId } from '@malva-ui/cdk/utils';\nimport type { MlvFieldsetColumns, MlvFormGap } from '../form.types';\nimport { mlvFormGapValue } from '../form-gap';\n\n/**\n * @internal Accepts `'auto'`, a positive integer, or a numeric string\n * (`columns=\"2\"`); anything else falls back to `'auto'`.\n */\nfunction coerceColumns(value: MlvFieldsetColumns | string): MlvFieldsetColumns {\n if (value === 'auto' || value === '') return 'auto';\n const n = typeof value === 'number' ? value : Number(value);\n return Number.isFinite(n) && n >= 1 ? Math.floor(n) : 'auto';\n}\n\n/**\n * Group of related controls on a native `<fieldset>`: styled legend, optional\n * description (wired to `aria-describedby`), and a responsive grid body.\n *\n * - `columns='auto'` (default): auto-fit columns of at least `minColumnWidth`.\n * - `columns=n`: **at most** `n` columns; still collapses when the container is\n * narrower than `n × minColumnWidth`.\n * - Gap inherits the surrounding `form[mlvForm]` rhythm (`--mlv-form-gap`);\n * `gap` overrides it for this fieldset and nested ones.\n * - Rich headings: project a native `<legend>` instead of the `legend` input\n * (the input wins when both are present).\n *\n * @example\n * ```html\n * <fieldset mlvFieldset legend=\"Address\" description=\"Where we ship.\" [columns]=\"2\">\n * <mlv-input label=\"Street\" mlvFieldsetSpan=\"full\" />\n * <mlv-input label=\"City\" />\n * <mlv-input label=\"Postal code\" />\n * </fieldset>\n * ```\n */\n@Component({\n // Attribute-selector component on the native element it enhances.\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'fieldset[mlvFieldset]',\n templateUrl: './fieldset.html',\n styleUrl: './fieldset.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'mlv-fieldset',\n '[attr.id]': 'id()',\n '[class.mlv-fieldset--capped]': '_capped()',\n '[style.--mlv-fieldset-columns]': '_capped() ? columns() : null',\n '[style.--mlv-fieldset-min-column-width]': 'minColumnWidth()',\n '[style.--mlv-form-gap]': '_gapValue()',\n '[attr.aria-describedby]': '_describedBy()',\n },\n})\nexport class MlvFieldset {\n /** Element id; auto-generated (`mlv-fieldset-<n>`) unless bound. Seeds the description id. */\n readonly id = input<string>(mlvNextId('mlv-fieldset'));\n\n /** Group heading rendered as `<legend class=\"mlv-fieldset__legend\">`. Omit and project a native `<legend>` for rich content. */\n readonly legend = input<string | undefined>(undefined);\n\n /** Help text rendered under the legend and announced via `aria-describedby`. */\n readonly description = input<string | undefined>(undefined);\n\n /** `'auto'` (responsive auto-fit) or a maximum column count. Numeric strings are accepted. */\n readonly columns = input<MlvFieldsetColumns, MlvFieldsetColumns | string>(\n 'auto',\n { transform: coerceColumns },\n );\n\n /** Smallest inline size a column may shrink to before the grid drops a column. */\n readonly minColumnWidth = input<string>('10rem');\n\n /** Explicit gap for this fieldset (and nested ones); unset = inherited form rhythm / density default. */\n readonly gap = input<MlvFormGap | undefined>(undefined);\n\n /** @internal Whether `columns` is a number (capped grid). */\n protected readonly _capped = computed(\n () => typeof this.columns() === 'number',\n );\n\n /** @internal Id of the description paragraph, `<id>-description`. */\n protected readonly _descriptionId = computed(\n () => `${this.id()}-description`,\n );\n\n /**\n * @private A static `aria-describedby` authored by the consumer, read once at\n * construction (before the host binding takes the attribute over). `null` when\n * absent or blank. A *bound* `[attr.aria-describedby]` is not supported — the\n * host binding owns the attribute from the first change detection run.\n */\n private readonly _authoredDescribedBy =\n (\n inject(ElementRef<HTMLElement>).nativeElement.getAttribute(\n 'aria-describedby',\n ) ?? ''\n ).trim() || null;\n\n /**\n * @internal Host `aria-describedby`: the rendered description id (when\n * `description` is set) merged with any consumer-authored value, `null` when\n * neither is present.\n */\n protected readonly _describedBy = computed(() => {\n const parts = [\n this.description() ? this._descriptionId() : null,\n this._authoredDescribedBy,\n ].filter((part): part is string => !!part);\n return parts.length ? parts.join(' ') : null;\n });\n\n /** @internal Inline `--mlv-form-gap` value, `null` when unset. */\n protected readonly _gapValue = computed(() => {\n const gap = this.gap();\n return gap ? mlvFormGapValue(gap) : null;\n });\n}\n","@if (legend(); as text) {\n<legend class=\"mlv-fieldset__legend\">{{ text }}</legend>\n} @else {\n<ng-content select=\"legend\" />\n} @if (description(); as text) {\n<p class=\"mlv-fieldset__description\" [id]=\"_descriptionId()\">{{ text }}</p>\n}\n<div class=\"mlv-fieldset__body\"><ng-content /></div>\n","import { Directive } from '@angular/core';\n\n/**\n * Marks the title row of a `form[mlvForm]`: a wrapping flex row that keeps a\n * heading (`h*[mlvTitle]`) on the start side and accessories (badges,\n * segmented controls) on the end side.\n *\n * @example\n * ```html\n * <header mlvFormHeader>\n * <h2 mlvTitle>Registration</h2>\n * <mlv-badge tone=\"info\" muted>Step 1 of 3</mlv-badge>\n * </header>\n * ```\n */\n@Directive({\n selector: '[mlvFormHeader]',\n host: { class: 'mlv-form__header' },\n})\nexport class MlvFormHeader {}\n","import { Directive, input } from '@angular/core';\nimport type { MlvFormActionsAlign } from './form.types';\n\n/**\n * Marks the actions row of a `form[mlvForm]` (submit / cancel buttons): a\n * wrapping flex row with the standard button gap.\n *\n * @example\n * ```html\n * <footer mlvFormActions align=\"end\">\n * <button mlvButton variant=\"secondary\" type=\"button\">Cancel</button>\n * <button mlvButton type=\"submit\">Save</button>\n * </footer>\n * ```\n */\n@Directive({\n selector: '[mlvFormActions]',\n host: {\n class: 'mlv-form__actions',\n '[class.mlv-form__actions--align-end]': 'align() === \"end\"',\n '[class.mlv-form__actions--align-center]': 'align() === \"center\"',\n '[class.mlv-form__actions--align-between]': 'align() === \"between\"',\n },\n})\nexport class MlvFormActions {\n /** Horizontal distribution of the actions. `'start'` (default) hugs the start edge. */\n readonly align = input<MlvFormActionsAlign>('start');\n}\n","import { computed, Directive, input } from '@angular/core';\n\n/** Column span of a fieldset grid child: a column count or the whole row. */\nexport type MlvFieldsetSpanValue = number | 'full';\n\n/**\n * @internal `'full'` stays; positive numbers / numeric strings become the\n * count; anything else falls back to `'full'` (never overflows the grid).\n */\nfunction coerceSpan(\n value: MlvFieldsetSpanValue | string,\n): MlvFieldsetSpanValue {\n if (value === 'full') return 'full';\n const n = typeof value === 'number' ? value : Number(value);\n return Number.isFinite(n) && n >= 1 ? Math.floor(n) : 'full';\n}\n\n/**\n * Makes a direct child of a `fieldset[mlvFieldset]` grid span several columns.\n *\n * `'full'` (`grid-column: 1 / -1`) is safe in every grid. A numeric span is\n * `grid-column: span n` — in an auto-fit grid that collapsed to fewer than `n`\n * columns it creates implicit columns and overflows, so prefer `'full'` there\n * and reserve numbers for `[columns]=\"n\"` grids wide enough to hold them.\n *\n * @example\n * ```html\n * <fieldset mlvFieldset [columns]=\"2\">\n * <mlv-input label=\"Street\" mlvFieldsetSpan=\"full\" />\n * <mlv-input label=\"City\" />\n * <mlv-input label=\"Postal code\" />\n * </fieldset>\n * ```\n */\n@Directive({\n selector: '[mlvFieldsetSpan]',\n host: { '[style.grid-column]': '_gridColumn()' },\n})\nexport class MlvFieldsetSpan {\n /** Column span: a positive integer (also as a string) or `'full'` for the whole row. */\n readonly mlvFieldsetSpan = input.required<\n MlvFieldsetSpanValue,\n MlvFieldsetSpanValue | string\n >({ transform: coerceSpan });\n\n /** @internal Resolved `grid-column` value. */\n protected readonly _gridColumn = computed(() => {\n const span = this.mlvFieldsetSpan();\n return span === 'full' ? '1 / -1' : `span ${span}`;\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|