@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-popup.mjs","sources":["../../../../libs/core/popup/src/lib/popup-content.ts","../../../../libs/core/popup/src/lib/popup-header-content.ts","../../../../libs/core/popup/src/lib/popup-pinned-content.ts","../../../../libs/core/popup/src/lib/popup-positions.ts","../../../../libs/core/popup/src/lib/popup/popup.ts","../../../../libs/core/popup/src/lib/popup/popup.html","../../../../libs/core/popup/src/lib/popup.service.ts","../../../../libs/core/popup/src/lib/popup-container/popup-container.token.ts","../../../../libs/core/popup/src/lib/popup-trigger/popup-trigger.ts","../../../../libs/core/popup/src/lib/popup-container/popup-container.ts","../../../../libs/core/popup/src/malva-ui-core-popup.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { MlvStructural } from '@malva-ui/cdk/utils';\n\n@Directive({\n selector: '[mlvPopupContent]',\n})\nexport class MlvPopupContent extends MlvStructural {}\n","import { Directive } from '@angular/core';\nimport { MlvStructural } from '@malva-ui/cdk/utils';\n\n/**\n * Marks an `<ng-template>` as extra chrome rendered inside the popup's\n * full-screen mobile header, directly beneath the title/close row.\n *\n * Generic and reusable: the popup renders it only while\n * {@link MlvPopup.isFullscreen} is `true`, and no-ops when the slot is\n * absent or the popup is trigger-anchored. Consumers use it to move controls\n * that must stay reachable inside the full-screen sheet — e.g. `mlv-combobox`\n * projects an in-sheet search input here so type-to-filter keeps working when\n * the solid backdrop and focus trap would otherwise occlude/block the outer\n * trigger input.\n */\n@Directive({\n selector: '[mlvPopupHeaderContent]',\n})\nexport class MlvPopupHeaderContent extends MlvStructural {}\n","import { Directive } from '@angular/core';\nimport { MlvStructural } from '@malva-ui/cdk/utils';\n\n/**\n * Marks an `<ng-template>` as extra chrome pinned above the popup's scroll\n * region in every mode — never scrolls with the content.\n *\n * Generic and reusable: the popup stamps it directly above\n * `.mlv-popup__scrollbar` whether the panel is trigger-anchored or a\n * full-screen sheet (where it sits below the header), and no-ops when the slot\n * is absent. Consumers use it for chrome that must stay visible no matter how\n * far the content scrolls — e.g. `mlv-select` projects its in-dropdown search\n * field here so a long option list cannot push it out of view.\n */\n@Directive({\n selector: '[mlvPopupPinnedContent]',\n})\nexport class MlvPopupPinnedContent extends MlvStructural {}\n","import type { Provider } from '@angular/core';\nimport { InjectionToken } from '@angular/core';\nimport type { ConnectedPosition } from '@angular/cdk/overlay';\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\n/**\n * The set of named popup positions supported out of the box.\n *\n * Positions follow the `{side}-{alignment}` convention:\n * - **side** — the side of the trigger the popup appears on (`top`, `bottom`, `left`, `right`)\n * - **alignment** — where the popup edge aligns to the trigger:\n * `start` = top (for left/right) or left (for top/bottom),\n * `end` = bottom (for left/right) or right (for top/bottom),\n * _(omitted)_ = centered\n *\n * All positions include an 8px gap between the trigger and the popup.\n */\nexport type MlvPopupPositionName =\n | 'top-start'\n | 'top'\n | 'top-end'\n | 'bottom-start'\n | 'bottom'\n | 'bottom-end'\n | 'left-start'\n | 'left'\n | 'left-end'\n | 'right-start'\n | 'right'\n | 'right-end';\n\n// ---------------------------------------------------------------------------\n// Default position map\n// ---------------------------------------------------------------------------\n\n/**\n * The default named-position map used when no custom `POPUP_POSITIONS` provider\n * is registered. Contains all twelve standard popup placements.\n *\n * Override globally with `providePopupPositions()`, or per-component via\n * the `POPUP_POSITIONS` injection token.\n */\nexport const POPUP_POSITION_MAP: ReadonlyMap<\n MlvPopupPositionName,\n ConnectedPosition\n> = new Map<MlvPopupPositionName, ConnectedPosition>([\n // ── Top ──────────────────────────────────────────────────────────────────\n [\n 'top-start',\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -8,\n },\n ],\n [\n 'top',\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: -8,\n },\n ],\n [\n 'top-end',\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetY: -8,\n },\n ],\n // ── Bottom ───────────────────────────────────────────────────────────────\n [\n 'bottom-start',\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 8,\n },\n ],\n [\n 'bottom',\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: 8,\n },\n ],\n [\n 'bottom-end',\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: 8,\n },\n ],\n // ── Left ─────────────────────────────────────────────────────────────────\n [\n 'left-start',\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: -8,\n },\n ],\n [\n 'left',\n {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: -8,\n },\n ],\n [\n 'left-end',\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: -8,\n },\n ],\n // ── Right ────────────────────────────────────────────────────────────────\n [\n 'right-start',\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: 8,\n },\n ],\n [\n 'right',\n {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: 8,\n },\n ],\n [\n 'right-end',\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: 8,\n },\n ],\n]);\n\n// ---------------------------------------------------------------------------\n// Injection token\n// ---------------------------------------------------------------------------\n\n/**\n * Injection token that holds the active named-position map.\n *\n * Defaults to {@link POPUP_POSITION_MAP}. Override at the application or\n * component level with {@link providePopupPositions} to add, remove, or\n * replace named positions.\n *\n * @example Override globally in app providers\n * ```ts\n * providePopupPositions(new Map([\n * ['bottom', { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top', offsetY: 4 }],\n * ]))\n * ```\n */\nexport const POPUP_POSITIONS = new InjectionToken<\n ReadonlyMap<MlvPopupPositionName, ConnectedPosition>\n>('POPUP_POSITIONS', {\n providedIn: 'root',\n factory: () => POPUP_POSITION_MAP,\n});\n\n// ---------------------------------------------------------------------------\n// Provider factory\n// ---------------------------------------------------------------------------\n\n/**\n * Registers a custom named-position map as the active `POPUP_POSITIONS`.\n *\n * Call in the root `providers` array (or a component's `providers`) to\n * replace all default positions with a custom set.\n *\n * @param positions — A `Map` of {@link MlvPopupPositionName} → CDK `ConnectedPosition`.\n *\n * @example\n * ```ts\n * // app.config.ts\n * providers: [\n * providePopupPositions(new Map([\n * ...POPUP_POSITION_MAP,\n * ['bottom', { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top', offsetY: 4 }],\n * ]))\n * ]\n * ```\n */\nexport function providePopupPositions(\n positions: ReadonlyMap<MlvPopupPositionName, ConnectedPosition>,\n): Provider {\n return { provide: POPUP_POSITIONS, useValue: positions };\n}\n\n// ---------------------------------------------------------------------------\n// Static helper — MlvPopupPositionResolver\n// ---------------------------------------------------------------------------\n\n/**\n * Static utility class for resolving named popup positions.\n *\n * Centralises all lookup logic so that {@link MlvPopup} and\n * {@link MlvPopupService} share one consistent resolution path.\n */\nexport class MlvPopupPositionResolver {\n /**\n * Resolves one or more {@link MlvPopupPositionName} strings to CDK\n * `ConnectedPosition` objects using the provided map.\n *\n * - Positions are returned in the same order as `names`.\n * - If a name is not found in the map, it is skipped and a warning is\n * emitted in dev mode via `console.warn`.\n * - Returns an empty array if no names resolve successfully.\n *\n * @param names — A single name or ordered array of names (CDK uses\n * the first one that fits in the viewport).\n * @param positionMap — The active position map (from `POPUP_POSITIONS` token).\n */\n static resolve(\n names: MlvPopupPositionName | MlvPopupPositionName[],\n positionMap: ReadonlyMap<MlvPopupPositionName, ConnectedPosition>,\n ): ConnectedPosition[] {\n const nameList = Array.isArray(names) ? names : [names];\n const resolved: ConnectedPosition[] = [];\n\n for (const name of nameList) {\n const pos = positionMap.get(name);\n if (pos !== undefined) {\n resolved.push(pos);\n } else if (typeof ngDevMode !== 'undefined' && ngDevMode) {\n console.warn(\n `[MlvPopup] Position \"${name}\" was not found in the POPUP_POSITIONS map. ` +\n `Available positions: [${Array.from(positionMap.keys()).join(', ')}].`,\n );\n }\n }\n\n return resolved;\n }\n\n /**\n * Returns all positions in the map as an ordered array.\n * Used as the CDK fallback sequence when no explicit `position` is set.\n *\n * @param positionMap — The active position map (from `POPUP_POSITIONS` token).\n */\n static allPositions(\n positionMap: ReadonlyMap<MlvPopupPositionName, ConnectedPosition>,\n ): ConnectedPosition[] {\n return Array.from(positionMap.values());\n }\n}\n\n// ---------------------------------------------------------------------------\n// Shared named-position sequences\n// ---------------------------------------------------------------------------\n\n/**\n * Ordered CDK positions for a dropdown menu panel that opens below its trigger:\n * `bottom-start` preferred, flipping vertically (`top-start`) then aligning to\n * the trigger's end edge (`bottom-end`, `top-end`) when space is constrained.\n *\n * Derived from {@link POPUP_POSITION_MAP} so menu overlays stay consistent with\n * the rest of the Malva UI overlay system. Consumed by `MlvMenuTrigger`.\n */\nexport const MENU_POSITIONS: ConnectedPosition[] =\n MlvPopupPositionResolver.resolve(\n ['bottom-start', 'top-start', 'bottom-end', 'top-end'],\n POPUP_POSITION_MAP,\n );\n\n/**\n * Ordered CDK positions for a submenu panel that opens to the right of its\n * parent item (`right-start`), flipping to the left (`left-start`) when there\n * is no room on the right.\n *\n * Derived from {@link POPUP_POSITION_MAP}. Consumed by `MlvMenuTrigger`.\n */\nexport const SUBMENU_POSITIONS: ConnectedPosition[] =\n MlvPopupPositionResolver.resolve(\n ['right-start', 'left-start'],\n POPUP_POSITION_MAP,\n );\n","import type { TemplateRef } from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n DestroyRef,\n effect,\n inject,\n input,\n model,\n output,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { Subject } from 'rxjs';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport type {\n ConnectedPosition,\n HorizontalConnectionPos,\n} from '@angular/cdk/overlay';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { MlvScrollbar } from '@malva-ui/core/scrollbar';\nimport { MlvBreakpointService } from '@malva-ui/cdk/utils';\nimport type { MlvBreakpoint } from '@malva-ui/cdk/utils';\nimport { MLV_DENSITY_CONTEXT, MlvDensityService } from '@malva-ui/cdk/density';\nimport type { MlvDensity } from '@malva-ui/cdk/density';\nimport { MLV_POPUP_I18N } from '@malva-ui/i18n';\nimport { MlvPopupContent } from '../popup-content';\nimport { MlvPopupHeaderContent } from '../popup-header-content';\nimport { MlvPopupPinnedContent } from '../popup-pinned-content';\nimport type {\n MlvPopupScrollStrategy,\n MlvPopupSizeConfig,\n} from '../popup.service';\nimport type { MlvPopupPositionName } from '../popup-positions';\nimport { MlvPopupPositionResolver, POPUP_POSITIONS } from '../popup-positions';\nimport { MlvButtonClose } from '@malva-ui/core/button';\n\nexport type MlvPopupArrowEdge = 'top' | 'bottom' | 'left' | 'right';\nexport type MlvPopupArrowAlign = 'start' | 'center' | 'end';\n\n/**\n * Fallback delay (ms) after which a pending leave is force-completed when the\n * panel's `animationend` never fires — `prefers-reduced-motion` removes the\n * leave animation entirely, and hidden/background tabs throttle CSS animations.\n * Comfortably above the default leave duration (`--mlv-duration-fast`, 100ms);\n * matches the dialog's `LEAVE_FALLBACK_MS` (250 ms).\n */\nexport const POPUP_LEAVE_FALLBACK_MS = 250;\n\n/**\n * Delay (ms) after which an overlay owner force-detaches a popup whose leave\n * animation never completed. Sits just past {@link POPUP_LEAVE_FALLBACK_MS} so\n * the normal `animationend` / fallback path always wins when it works.\n */\nexport const POPUP_DETACH_WATCHDOG_MS = POPUP_LEAVE_FALLBACK_MS + 100;\n\n/**\n * Controls whether the popup renders as a full-screen mobile sheet.\n *\n * - `'off'` (default) — always anchored to the trigger (byte-identical to the\n * original popup behaviour). Consumers must opt in to enable the mechanism.\n * - `'auto'` — full-screen when the viewport is below {@link MlvPopup.mobileBreakpoint},\n * anchored otherwise.\n * - `'fullscreen'` — always full-screen regardless of viewport (useful for demos/forcing).\n */\nexport type MlvPopupMobileMode = 'auto' | 'fullscreen' | 'off';\n\n@Component({\n selector: 'mlv-popup',\n imports: [\n OverlayModule,\n A11yModule,\n PortalModule,\n NgTemplateOutlet,\n MlvScrollbar,\n MlvButtonClose,\n ],\n templateUrl: './popup.html',\n styleUrl: './popup.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MlvPopup {\n /** @private Active named-position map (overridable via `POPUP_POSITIONS` token). */\n private readonly _positionMap = inject(POPUP_POSITIONS);\n\n /**\n * Named position(s) controlling where the popup appears relative to its trigger.\n *\n * Accepts a single {@link MlvPopupPositionName} or an ordered array of names.\n * CDK tries positions in array order and uses the first one that fits in the\n * viewport — useful for automatic flip behaviour.\n *\n * When set, takes precedence over the raw {@link positions} input.\n * When both are omitted, all twelve default positions are passed to CDK.\n *\n * An unrecognised name is skipped and a `console.warn` is emitted in dev mode.\n *\n * @example Single preferred position\n * ```html\n * <mlv-popup position=\"bottom-end\" />\n * ```\n *\n * @example Preferred + fallback\n * ```html\n * <mlv-popup [position]=\"['bottom-end', 'top-end']\" />\n * ```\n */\n readonly position = input<\n MlvPopupPositionName | MlvPopupPositionName[] | undefined\n >(undefined);\n\n /**\n * Raw CDK `ConnectedPosition` array for advanced use cases where named\n * positions are insufficient.\n *\n * When set and `position` is not set, these positions are passed directly\n * to the CDK overlay. Prefer `position` for standard placements.\n */\n readonly positions = input<ConnectedPosition[] | undefined>(undefined);\n\n /** Explicit CSS width of the popup panel. */\n readonly width = input<number | string | undefined>(undefined);\n /** Explicit CSS height of the popup panel. */\n readonly height = input<number | string | undefined>(undefined);\n /** Minimum CSS width of the popup panel. */\n readonly minWidth = input<number | string | undefined>(undefined);\n /** Minimum CSS height of the popup panel. */\n readonly minHeight = input<number | string | undefined>(undefined);\n /** Maximum CSS width of the popup panel. */\n readonly maxWidth = input<number | string | undefined>(undefined);\n /** Maximum CSS height of the popup panel. */\n readonly maxHeight = input<number | string | undefined>(undefined);\n /** When `true`, a directional arrow is rendered pointing toward the trigger. */\n readonly hasArrow = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n /** When `true` (default), a drop-shadow is applied to the popup panel. */\n readonly hasShadow = input<boolean, BooleanInput>(true, {\n transform: coerceBooleanProperty,\n });\n /** Additional CSS classes forwarded to the popup panel host. */\n readonly class = input<string>();\n\n /**\n * Density applied to the popup's content.\n *\n * The popup panel is portaled to the CDK overlay container on `<body>`, so it\n * sits outside any `mlvDensityRoot` / ancestor density cascade in the page.\n * This input restores the cascade on the detached panel: the resolved density\n * is stamped as a `mlv--{density}` class on the panel element, and every\n * density-aware descendant (e.g. `mlv-list-item` rows in a dropdown panel)\n * responds through the standard CSS cascade.\n *\n * When omitted, the nearest ancestor `MLV_DENSITY_CONTEXT` (e.g. a\n * `form[mlvForm]`) is used, then the global `MlvDensityService`, so popovers\n * follow the surrounding / app-wide density without extra wiring. Components\n * that embed a popup (select, combobox, pagination, menu, …) forward their\n * own `mlvDensity` input here.\n */\n readonly mlvDensity = input<MlvDensity | undefined>(undefined);\n\n /**\n * @private Global density service — fallback when no explicit\n * {@link mlvDensity} is supplied.\n */\n private readonly _densityService = inject(MlvDensityService);\n\n /**\n * @private Density projected by an ancestor container (e.g. `form[mlvForm]`).\n * Consulted after the explicit {@link mlvDensity} input, before the service.\n */\n private readonly _densityContext = inject(MLV_DENSITY_CONTEXT, {\n optional: true,\n });\n\n /**\n * @protected Class list for the detached panel element: consumer classes from\n * {@link class} plus the resolved `mlv--{density}` cascade class.\n */\n protected readonly _panelClasses = computed(() => {\n const density =\n this.mlvDensity() ??\n this._densityContext?.() ??\n this._densityService.density();\n const extra = this.class();\n return extra ? `${extra} mlv--${density}` : `mlv--${density}`;\n });\n /** Allow the overlay panel to grow to fill available viewport space. */\n readonly flexibleDimensions = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * Controls overlay behaviour when the page is scrolled.\n *\n * - `'reposition'` (default) — overlay follows the trigger.\n * - `'close'` — overlay closes on scroll.\n * - `'block'` — page scroll is blocked while the overlay is open.\n * - `'noop'` — overlay stays fixed.\n */\n readonly scrollStrategy = input<MlvPopupScrollStrategy>('reposition');\n\n /**\n * Whether to render a transparent backdrop behind the popup.\n *\n * When `undefined` (default), the trigger decides — click/keyboard triggers\n * use a backdrop; hover triggers do not.\n *\n * Set to `false` to suppress the backdrop while keeping click-outside and\n * Escape detection active.\n */\n readonly hasBackdrop = input<boolean | undefined, BooleanInput | undefined>(\n undefined,\n {\n transform: (v): boolean | undefined =>\n v == null ? undefined : coerceBooleanProperty(v as BooleanInput),\n },\n );\n\n /**\n * When `true` (default), only the explicitly provided position(s) are passed to CDK.\n * CDK will push the popup into the viewport if none of them fit, but won't try other\n * named positions automatically.\n *\n * When `false`, the provided position(s) are used first and all remaining positions\n * from the active `POPUP_POSITIONS` map are appended as ordered fallbacks. CDK will\n * try them in sequence and use the first one that fits — useful for popups near edges\n * that should freely reposition rather than be pushed.\n *\n * @example Prefer bottom-start, fall back to any position that fits\n * ```html\n * <mlv-popup position=\"bottom-start\" [restrictPosition]=\"false\" />\n * ```\n */\n readonly restrictPosition = input<boolean, BooleanInput>(true, {\n transform: coerceBooleanProperty,\n });\n /**\n * ARIA role applied to the popup panel element.\n *\n * Defaults to `null` — the panel is a neutral positioning/chrome container and\n * the semantic role is expected to come from the projected content\n * (e.g. a `role=\"menu\"` list, a `role=\"listbox\"`, or a `role=\"tooltip\"`).\n *\n * Set to `'dialog'` (together with {@link modal}`= true`) for genuine modal\n * dialog surfaces such as a date-picker calendar. When `panelRole === 'dialog'`\n * and {@link modal} is `true`, an accessible name via {@link ariaLabel} (or a\n * projected labelling element) is required.\n */\n readonly panelRole = input<string | null>(null);\n\n /**\n * Whether the popup panel behaves as a modal surface.\n *\n * When `true`, the panel renders `aria-modal=\"true\"` and enables the CDK focus\n * trap (Tab / Shift+Tab cycle within the panel). When `false` (default), no\n * `aria-modal` is emitted and focus is free to leave the panel — the correct\n * behaviour for menus, listboxes, and tooltips whose focus is managed by their\n * own trigger / roving-tabindex logic.\n */\n readonly modal = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * Optional accessible name for the popup panel.\n * Applied as `aria-label` on the popup element.\n */\n readonly ariaLabel = input<string | undefined>(undefined);\n\n /**\n * Extra elements that count as \"inside\" the popup for click-outside dismissal.\n *\n * When the popup is opened without a backdrop (`[hasBackdrop]=\"false\"`),\n * dismissal is detected by a document-level click listener that closes the\n * popup on any click outside the overlay panel. The trigger/anchor lives in\n * the normal document flow — outside the floating panel — so a click on it\n * (or on any control it owns) would otherwise be treated as \"outside\" and\n * dismiss the popup. List these elements (typically the trigger) so clicks\n * within them do not close the popup; e.g. `mlv-combobox` passes its input\n * row so caret repositioning while the list is open keeps the list open.\n *\n * Has no effect when a backdrop is used.\n */\n readonly dismissExcludeElements = input<readonly HTMLElement[]>([]);\n\n // ─── Mobile fullscreen mode ──────────────────────────────────────────────\n\n /** @private Signal-based viewport breakpoint service (SSR-safe via CDK). */\n private readonly _breakpoint = inject(MlvBreakpointService);\n\n /**\n * @private Optional popup i18n slice — provides the fullscreen close-button\n * label. Injected optionally so the popup keeps working when no i18n provider\n * is configured (falls back to the English default).\n */\n private readonly _i18n = inject(MLV_POPUP_I18N, { optional: true });\n\n /**\n * Controls whether the popup renders as a full-screen mobile sheet with a\n * header bar and close button instead of a trigger-anchored panel.\n *\n * Defaults to `'off'` so existing consumers are unaffected — the pickers\n * (day/date-range/time) opt into `'auto'`.\n */\n readonly mobileMode = input<MlvPopupMobileMode>('off');\n\n /**\n * Breakpoint below which `mobileMode=\"auto\"` switches the popup to full-screen.\n * Defaults to `'md'` (viewport narrower than 768px, per `MLV_BREAKPOINT_CONFIG`).\n */\n readonly mobileBreakpoint = input<MlvBreakpoint>('md');\n\n /**\n * Optional visible title rendered in the full-screen header bar. When omitted,\n * the header shows only the close button.\n */\n readonly mobileTitle = input<string | undefined>(undefined);\n\n /**\n * Optional override for the full-screen close-button accessible name.\n * Falls back to the `MLV_POPUP_I18N` `close` string, then to `'Close'`.\n */\n readonly mobileCloseLabel = input<string | undefined>(undefined);\n\n /**\n * Whether the popup is currently rendering as a full-screen mobile sheet.\n *\n * `'off'` → always `false`; `'fullscreen'` → always `true`; `'auto'` → `true`\n * when the viewport is below {@link mobileBreakpoint}. Public so consumers with\n * their own inner focus trap (e.g. `mlv-date-range-picker`) can disable it to\n * avoid nesting two traps inside the full-screen panel.\n */\n readonly isFullscreen = computed<boolean>(() => {\n const mode = this.mobileMode();\n if (mode === 'off') return false;\n if (mode === 'fullscreen') return true;\n return this._breakpoint.isDown(this.mobileBreakpoint())();\n });\n\n /** @protected Resolved accessible name for the full-screen close button. */\n protected readonly _closeLabel = computed(\n () => this.mobileCloseLabel() ?? this._i18n?.().close ?? 'Close',\n );\n\n /** Two-way binding for the open/closed state. */\n readonly opened = model(false);\n /** Emitted after the popup enters the view and the enter animation completes. */\n readonly afterOpened = output<void>();\n /** Emitted after the popup leaves the view and the leave animation completes. */\n readonly afterClosed = output<void>();\n\n readonly animationState = signal<'enter' | 'leave' | 'idle'>('idle');\n readonly arrowEdge = signal<MlvPopupArrowEdge>('top');\n readonly arrowAlign = signal<MlvPopupArrowAlign>('start');\n\n /**\n * CSS transform value for the popup's hidden/offscreen position.\n * Used as `--mlv-popup-hidden-transform` so the enter/leave keyframes\n * slide in from the correct edge depending on where the popup is placed.\n */\n readonly popupHiddenTransform = computed(() => {\n switch (this.arrowEdge()) {\n case 'top':\n return 'translateY(-4px)';\n case 'bottom':\n return 'translateY(4px)';\n case 'left':\n return 'translateX(-4px)';\n case 'right':\n return 'translateX(4px)';\n }\n });\n\n /** @protected Projected popup content template, rendered into the overlay panel. */\n protected readonly contentRef = contentChild(MlvPopupContent);\n\n /**\n * @protected Optional header-extension template projected via\n * `[mlvPopupHeaderContent]`. Rendered inside the full-screen header, directly\n * beneath the title/close row. Ignored while the popup is trigger-anchored\n * (only stamped when {@link isFullscreen} is `true`), so anchored popups are\n * byte-identical whether or not the slot is supplied.\n */\n protected readonly headerContentRef = contentChild(MlvPopupHeaderContent);\n\n /**\n * @protected Optional pinned-chrome template projected via\n * `[mlvPopupPinnedContent]`. Rendered in **every** mode, directly above\n * `.mlv-popup__scrollbar`, so it never scrolls with the content (in\n * full-screen it sits below the header). An absent slot stamps nothing —\n * byte-identical markup to a popup that never declared one.\n */\n protected readonly pinnedContentRef = contentChild(MlvPopupPinnedContent);\n\n /** @internal Emits when the leave animation finishes so the container can dispose the overlay. */\n readonly leaveAnimationDone$ = new Subject<void>();\n\n /**\n * @private Fallback timer guaranteeing `leaveAnimationDone$` fires even when\n * the panel's `animationend` never arrives — `prefers-reduced-motion` strips\n * the leave animation entirely, and hidden/background tabs throttle CSS\n * animations indefinitely. Without it the overlay would never dispose.\n * Mirrors `MlvOverlayRef`'s `_leaveFallbackMs` used by the drawer, and the\n * dialog's `LEAVE_FALLBACK_MS`.\n */\n private _leaveFallbackTimer: ReturnType<typeof setTimeout> | null = null;\n\n constructor() {\n // Arm the fallback whenever a leave starts; disarm on any state change\n // (the real `animationend` path resets the state to 'idle' on dispose).\n effect(() => {\n const state = this.animationState();\n if (this._leaveFallbackTimer !== null) {\n clearTimeout(this._leaveFallbackTimer);\n this._leaveFallbackTimer = null;\n }\n if (state === 'leave') {\n this._leaveFallbackTimer = setTimeout(() => {\n this._leaveFallbackTimer = null;\n this.onAnimationEnd();\n }, POPUP_LEAVE_FALLBACK_MS);\n }\n });\n\n inject(DestroyRef).onDestroy(() => {\n if (this._leaveFallbackTimer !== null) {\n clearTimeout(this._leaveFallbackTimer);\n this._leaveFallbackTimer = null;\n }\n });\n }\n\n readonly popupTemplate =\n viewChild.required<TemplateRef<unknown>>('popupTemplate');\n\n // ─── Position resolution ─────────────────────────────────────────────────\n\n /**\n * Resolves the active CDK `ConnectedPosition[]` to pass to the overlay.\n *\n * **Position source** (first match wins):\n * 1. `position` input — named position(s) looked up in `POPUP_POSITIONS` map.\n * 2. `positions` input — raw CDK positions for advanced use.\n * 3. All defaults — every position in the active `POPUP_POSITIONS` map.\n *\n * **`restrictPosition` modifier:**\n * - `true` (default) — return the resolved positions as-is; CDK pushes the popup\n * if none fit.\n * - `false` — append all remaining map positions (deduped by reference) after the\n * resolved ones so CDK can freely choose a fitting position.\n */\n resolvedPositions(): ConnectedPosition[] {\n const named = this.position();\n let preferred: ConnectedPosition[] | undefined;\n\n if (named !== undefined) {\n preferred = MlvPopupPositionResolver.resolve(named, this._positionMap);\n } else {\n preferred = this.positions();\n }\n\n const base =\n preferred ?? MlvPopupPositionResolver.allPositions(this._positionMap);\n\n if (this.restrictPosition()) {\n return base;\n }\n\n // Append every map position not already present as a fallback.\n // Position objects from the map share the same reference, so Set dedup works.\n const all = MlvPopupPositionResolver.allPositions(this._positionMap);\n const seen = new Set(base);\n return [...base, ...all.filter((p) => !seen.has(p))];\n }\n\n buildSizeConfig(): MlvPopupSizeConfig {\n const size: MlvPopupSizeConfig = {};\n const width = this.width();\n const height = this.height();\n const minWidth = this.minWidth();\n const minHeight = this.minHeight();\n const maxWidth = this.maxWidth();\n const maxHeight = this.maxHeight();\n\n if (width !== undefined) size.width = width;\n if (height !== undefined) size.height = height;\n if (minWidth !== undefined) size.minWidth = minWidth;\n if (minHeight !== undefined) size.minHeight = minHeight;\n if (maxWidth !== undefined) size.maxWidth = maxWidth;\n if (maxHeight !== undefined) size.maxHeight = maxHeight;\n\n return size;\n }\n\n onAnimationEnd(): void {\n if (this.animationState() === 'leave') {\n this.leaveAnimationDone$.next();\n }\n }\n\n /**\n * @internal Promotes a freshly attached panel from `'idle'` to `'enter'`.\n *\n * Overlay owners (`MlvPopupContainer`, `MlvPopupTrigger`, `MlvMenuTrigger`)\n * call this from a microtask so the panel is in the DOM before the enter\n * keyframes start. A close requested in the same tick as the attach already\n * moved the state to `'leave'` by then, and overwriting it would strand the\n * overlay: the leave keyframes never play, so no `animationend` arrives, and\n * the write itself cancels the leave fallback timer — leaving no path back to\n * a detach. Promote only from the exact state the attach left behind.\n */\n beginEnterAnimation(): void {\n if (this.animationState() === 'idle') {\n this.animationState.set('enter');\n }\n }\n\n /**\n * @protected Handles the full-screen header close button. Requests closure via\n * the two-way `opened` model so the consumer's `afterClosed` (focus restore)\n * and the container/trigger leave-animation machinery run — identical to the\n * Escape / backdrop close path.\n */\n protected _onCloseClick(): void {\n this.opened.set(false);\n }\n\n /**\n * Derives `arrowEdge` and `arrowAlign` from a resolved CDK `ConnectedPosition`.\n *\n * Detection logic:\n * - `overlayX='end'` + `originX='start'` → popup is to the **left** of the trigger → arrow on right edge\n * - `overlayX='start'` + `originX='end'` → popup is to the **right** of the trigger → arrow on left edge\n * - `overlayY='top'` (all other cases) → popup is **below** the trigger → arrow on top edge\n * - `overlayY='bottom'` (all other cases) → popup is **above** the trigger → arrow on bottom edge\n *\n * For left/right arrows the vertical alignment is read from `overlayY`\n * (`'top'` → `'start'`, `'center'` → `'center'`, `'bottom'` → `'end'`).\n * For top/bottom arrows the horizontal alignment comes directly from `overlayX`.\n */\n updateArrowFromPosition(pair: ConnectedPosition): void {\n const { originX, overlayX, overlayY } = pair;\n\n if (overlayX === 'end' && originX === 'start') {\n // Popup is to the LEFT of the trigger — arrow on the right edge\n this.arrowEdge.set('right');\n this.arrowAlign.set(\n overlayY === 'top' ? 'start' : overlayY === 'bottom' ? 'end' : 'center',\n );\n } else if (overlayX === 'start' && originX === 'end') {\n // Popup is to the RIGHT of the trigger — arrow on the left edge\n this.arrowEdge.set('left');\n this.arrowAlign.set(\n overlayY === 'top' ? 'start' : overlayY === 'bottom' ? 'end' : 'center',\n );\n } else if (overlayY === 'top') {\n // Popup is BELOW the trigger — arrow on the top edge\n this.arrowEdge.set('top');\n this.arrowAlign.set(\n overlayX as HorizontalConnectionPos & MlvPopupArrowAlign,\n );\n } else {\n // Popup is ABOVE the trigger — arrow on the bottom edge\n this.arrowEdge.set('bottom');\n this.arrowAlign.set(\n overlayX as HorizontalConnectionPos & MlvPopupArrowAlign,\n );\n }\n }\n}\n","<ng-template #popupTemplate>\n <div\n class=\"mlv-popup\"\n [style.--mlv-popup-hidden-transform]=\"popupHiddenTransform()\"\n [class]=\"_panelClasses()\"\n [class.mlv-popup--fullscreen]=\"isFullscreen()\"\n [class.mlv-popup--arrow]=\"hasArrow() && !isFullscreen()\"\n [class.mlv-popup--shadow]=\"hasShadow() && !isFullscreen()\"\n [class.mlv-popup--arrow-top]=\"hasArrow() && !isFullscreen() && arrowEdge() === 'top'\"\n [class.mlv-popup--arrow-bottom]=\"hasArrow() && !isFullscreen() && arrowEdge() === 'bottom'\"\n [class.mlv-popup--arrow-left]=\"hasArrow() && !isFullscreen() && arrowEdge() === 'left'\"\n [class.mlv-popup--arrow-right]=\"hasArrow() && !isFullscreen() && arrowEdge() === 'right'\"\n [class.mlv-popup--arrow-start]=\"hasArrow() && !isFullscreen() && arrowAlign() === 'start'\"\n [class.mlv-popup--arrow-center]=\"hasArrow() && !isFullscreen() && arrowAlign() === 'center'\"\n [class.mlv-popup--arrow-end]=\"hasArrow() && !isFullscreen() && arrowAlign() === 'end'\"\n [class.mlv-popup--enter]=\"animationState() === 'enter'\"\n [class.mlv-popup--leave]=\"animationState() === 'leave'\"\n (animationend)=\"onAnimationEnd()\"\n [attr.role]=\"panelRole()\"\n [attr.aria-modal]=\"modal() ? 'true' : null\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [cdkTrapFocus]=\"modal() || isFullscreen()\"\n >\n @if (isFullscreen()) {\n <div class=\"mlv-popup__header\">\n <div class=\"mlv-popup__header-row\">\n @if (mobileTitle(); as title) {\n <span class=\"mlv-popup__title\">{{ title }}</span>\n }\n <mlv-button-close\n class=\"mlv-popup__close\"\n [ariaLabel]=\"_closeLabel()\"\n (click)=\"_onCloseClick()\"\n variant=\"secondary\"\n ></mlv-button-close>\n </div>\n @if (headerContentRef(); as headerTpl) {\n <div class=\"mlv-popup__header-content\">\n <ng-template [ngTemplateOutlet]=\"headerTpl.templateRef\" />\n </div>\n }\n </div>\n } @if (pinnedContentRef(); as pinnedTpl) {\n <div class=\"mlv-popup__pinned\">\n <ng-template [ngTemplateOutlet]=\"pinnedTpl.templateRef\" />\n </div>\n }\n <mlv-scrollbar class=\"mlv-popup__scrollbar\">\n <div class=\"mlv-popup__inner\">\n @if (contentRef(); as contentTpl) {\n <ng-template [ngTemplateOutlet]=\"contentTpl.templateRef\" />\n }\n </div>\n </mlv-scrollbar>\n </div>\n</ng-template>\n","import type { ElementRef, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { Injectable, NgZone, inject } from '@angular/core';\nimport type {\n OverlayRef,\n ConnectedPosition,\n ConnectedOverlayPositionChange,\n FlexibleConnectedPositionStrategy,\n} from '@angular/cdk/overlay';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { MlvRtlService } from '@malva-ui/cdk/utils';\nimport type { MlvPopupPositionName } from './popup-positions';\nimport { MlvPopupPositionResolver, POPUP_POSITIONS } from './popup-positions';\n\n/**\n * Controls what happens to the popup when the user scrolls.\n *\n * - `'reposition'` (default) — the overlay repositions with the trigger as the page scrolls.\n * - `'close'` — the overlay closes as soon as the user scrolls.\n * - `'block'` — scroll is blocked while the overlay is open.\n * - `'noop'` — the overlay stays fixed at its original position; no repositioning or closing.\n */\nexport type MlvPopupScrollStrategy = 'reposition' | 'close' | 'block' | 'noop';\n\n// ---------------------------------------------------------------------------\n// Interfaces\n// ---------------------------------------------------------------------------\n\n/** Size constraints passed to the CDK overlay on creation. */\nexport interface MlvPopupSizeConfig {\n /** Explicit panel width (CSS value or pixel number). */\n width?: number | string;\n /** Explicit panel height (CSS value or pixel number). */\n height?: number | string;\n /** Minimum panel width. */\n minWidth?: number | string;\n /** Minimum panel height. */\n minHeight?: number | string;\n /** Maximum panel width. */\n maxWidth?: number | string;\n /** Maximum panel height. */\n maxHeight?: number | string;\n}\n\n/** Configuration object passed to {@link MlvPopupService.open}. */\nexport interface MlvPopupOpenConfig {\n /** The element the overlay attaches to. */\n origin: ElementRef;\n /** The `<ng-template>` to render inside the overlay. */\n template: TemplateRef<unknown>;\n /** The `ViewContainerRef` used to instantiate the portal. */\n vcr: ViewContainerRef;\n /**\n * Ordered list of CDK `ConnectedPosition` objects the overlay will try in\n * sequence until one fits within the viewport.\n *\n * Use {@link MlvPopupService.resolvePositions} to build this list from named\n * positions when working programmatically.\n */\n positions: ConnectedPosition[];\n /** Optional size constraints applied to the overlay panel. */\n size?: MlvPopupSizeConfig;\n /**\n * When `true`, the overlay is rendered as a full-screen mobile sheet:\n * a global (viewport-filling) position strategy replaces the connected\n * strategy, a solid backdrop is always shown, page scroll is locked\n * (block scroll strategy), and the connected {@link positions}/{@link size}\n * are ignored. Defaults to `false` (trigger-anchored behaviour).\n */\n fullscreen?: boolean;\n /**\n * When `true` (default), a transparent CDK backdrop is created; clicking it\n * triggers `onRequestClose`.\n *\n * When `false`, no visual backdrop is rendered, but click-outside detection\n * is preserved via a document-level click listener (attached after a\n * `setTimeout(0)` to avoid catching the opening click). Escape key closure\n * is always active regardless of this flag.\n */\n hasBackdrop?: boolean;\n /** Optional CDK backdrop class. Defaults to `cdk-overlay-transparent-backdrop`. */\n backdropClass?: string;\n /**\n * Controls overlay behaviour when the page is scrolled.\n * Defaults to `'reposition'`.\n */\n scrollStrategy?: MlvPopupScrollStrategy;\n /** Allow the overlay to grow in the axis constrained by the viewport. */\n flexibleDimensions?: boolean;\n /**\n * Extra elements treated as \"inside\" the popup for click-outside detection\n * (backdrop-less mode only). A click within any of these — in addition to the\n * overlay panel itself — does not trigger `onRequestClose`. Typically the\n * trigger/anchor element, which lives outside the floating overlay panel.\n */\n dismissExcludeElements?: readonly HTMLElement[];\n /** Called after the overlay is fully disposed. */\n onClose: () => void;\n /**\n * Called when the user requests closure (backdrop click, Escape key).\n * Defaults to `onClose` when not provided.\n */\n onRequestClose?: () => void;\n /** Called each time CDK selects a different `ConnectedPosition`. */\n onPositionChange?: (change: ConnectedOverlayPositionChange) => void;\n}\n\n/** Return value of {@link MlvPopupService.open}. */\nexport interface MlvPopupHandle {\n /** The underlying CDK overlay reference. */\n overlayRef: OverlayRef;\n /** Disposes the overlay and triggers `onClose`. */\n close: () => void;\n}\n\n// ---------------------------------------------------------------------------\n// Service\n// ---------------------------------------------------------------------------\n\n/**\n * Low-level CDK overlay service for Malva UI popup components.\n *\n * Handles overlay creation, portal attachment, position strategy,\n * backdrop clicks, and Escape-key closure.\n *\n * For template-driven usage prefer `[mlvPopupTrigger]` or\n * `<mlv-popup-container>`. Use this service directly only when you need\n * full programmatic control.\n *\n * @example Programmatic usage\n * ```ts\n * const handle = this.popupService.open({\n * origin: this.triggerRef,\n * template: this.tpl,\n * vcr: this.vcr,\n * positions: this.popupService.resolvePositions(['bottom', 'top']),\n * onClose: () => this.isOpen.set(false),\n * });\n * // Later:\n * handle.close();\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class MlvPopupService {\n /** @private CDK overlay service. */\n private readonly _overlay = inject(Overlay);\n\n /**\n * @private Resolves the direction scoped to each popup's origin so portaled\n * panes mirror with their trigger rather than with the document.\n */\n private readonly _rtl = inject(MlvRtlService);\n\n /** @private Active named-position map (overridable via `POPUP_POSITIONS` token). */\n private readonly _positionMap = inject(POPUP_POSITIONS);\n\n /** @private Angular zone for running document-level event handlers inside change detection. */\n private readonly _ngZone = inject(NgZone);\n\n // ─── Public API ────────────────────────────────────────────────────────────\n\n /**\n * Resolves one or more {@link MlvPopupPositionName} strings to CDK\n * `ConnectedPosition` objects.\n *\n * Positions are resolved from the active `POPUP_POSITIONS` map. If a name\n * is not found, it is skipped and a `console.warn` is emitted in dev mode.\n * CDK uses the first position in the returned array that fits in the viewport.\n *\n * @param names — A single name or ordered array of fallback names.\n *\n * @example\n * ```ts\n * positions: this.popupService.resolvePositions('bottom-end')\n * positions: this.popupService.resolvePositions(['bottom-end', 'top-end'])\n * ```\n */\n resolvePositions(\n names: MlvPopupPositionName | MlvPopupPositionName[],\n ): ConnectedPosition[] {\n return MlvPopupPositionResolver.resolve(names, this._positionMap);\n }\n\n /**\n * Creates a CDK overlay, attaches the given template portal, and wires up\n * backdrop and Escape-key closure.\n *\n * @param config — Full overlay configuration.\n * @returns A {@link MlvPopupHandle} with the `overlayRef` and a `close()` method.\n */\n open(config: MlvPopupOpenConfig): MlvPopupHandle {\n const fullscreen = config.fullscreen ?? false;\n const flexible = config.flexibleDimensions ?? false;\n\n // Full-screen mode uses a global (viewport-centred) strategy that the pane\n // stretches to fill; the connected positions are irrelevant. Otherwise use\n // the trigger-anchored flexible-connected strategy (unchanged behaviour).\n // withPush(false) for 'reposition': the overlay moves with the trigger and\n // naturally disappears when the trigger scrolls out of the viewport.\n // withPush(true) for all other strategies: CDK keeps the overlay inside the\n // viewport until the strategy itself decides what to do (close, block, noop).\n const push = (config.scrollStrategy ?? 'reposition') !== 'reposition';\n const positionStrategy = fullscreen\n ? this._overlay.position().global()\n : this._overlay\n .position()\n .flexibleConnectedTo(config.origin)\n .withPositions(config.positions)\n .withPush(push)\n .withFlexibleDimensions(flexible)\n .withGrowAfterOpen(flexible);\n\n // The backdrop is always shown in full-screen mode regardless of the\n // trigger's preference (it doubles as the scrim behind the sheet).\n const hasBackdrop = fullscreen ? true : (config.hasBackdrop ?? true);\n\n const overlayRef = this._overlay.create({\n positionStrategy,\n // The pane is portaled to the overlay container on <body>, outside any\n // `[dir]` scope the origin sits in, so the origin's direction has to be\n // passed explicitly. It also drives `start`/`end` position mirroring in\n // `FlexibleConnectedPositionStrategy`.\n direction: this._rtl.resolveDirection(config.origin),\n hasBackdrop,\n ...(hasBackdrop\n ? {\n backdropClass: fullscreen\n ? 'mlv-popup-fullscreen-backdrop'\n : (config.backdropClass ?? 'cdk-overlay-transparent-backdrop'),\n }\n : {}),\n // Full-screen locks the page behind the sheet (no layout shift — the block\n // strategy compensates for the removed scrollbar width).\n scrollStrategy: fullscreen\n ? this._overlay.scrollStrategies.block()\n : this._resolveScrollStrategy(config.scrollStrategy),\n ...(fullscreen\n ? { panelClass: 'mlv-popup-fullscreen-pane' }\n : config.size),\n });\n\n const portal = new TemplatePortal(config.template, config.vcr);\n overlayRef.attach(portal);\n\n // Position changes only occur for the connected strategy; the global\n // (full-screen) strategy exposes no positionChanges stream.\n if (config.onPositionChange && !fullscreen) {\n (\n positionStrategy as FlexibleConnectedPositionStrategy\n ).positionChanges.subscribe(config.onPositionChange);\n }\n\n // Collect cleanup callbacks so they all run on close regardless of how it was triggered.\n const cleanups: (() => void)[] = [];\n\n // The direction is resolved once above, but the pane now lives outside the\n // origin's `[dir]` scope: nothing re-mirrors it if the direction flips while\n // the popup is open. Without this the pane keeps its stale `dir` (its content\n // stays LTR under an RTL page) and the connected strategy keeps resolving\n // `start`/`end` against the old direction, so the panel stays put while the\n // trigger moves to the other edge.\n cleanups.push(\n this._rtl.watchDirection(config.origin, (direction) => {\n overlayRef.setDirection(direction);\n overlayRef.updatePosition();\n }),\n );\n\n let disposed = false;\n const close = () => {\n if (disposed) return;\n disposed = true;\n for (const fn of cleanups) fn();\n overlayRef.dispose();\n config.onClose();\n };\n\n // Detect when CDK closes the overlay externally (e.g. CloseScrollStrategy calls\n // overlayRef.detach() — bypassing our close() — leaving handle/opened out of sync).\n const detachSub = overlayRef.detachments().subscribe(() => close());\n cleanups.push(() => detachSub.unsubscribe());\n\n const requestClose = config.onRequestClose ?? close;\n\n if (hasBackdrop) {\n const sub = overlayRef.backdropClick().subscribe(() => requestClose());\n cleanups.push(() => sub.unsubscribe());\n } else {\n // Defer the document listener to avoid catching the same click that opened the popup.\n const excludeElements = config.dismissExcludeElements ?? [];\n const timerId = setTimeout(() => {\n const handler = (event: MouseEvent) => {\n const target = event.target as Node;\n const insidePanel =\n overlayRef.hasAttached() &&\n overlayRef.overlayElement.contains(target);\n // Clicks on the trigger/anchor (outside the floating panel) are not\n // \"outside\" — e.g. repositioning the caret in a combobox's input\n // must not dismiss its open list.\n const insideExcluded = excludeElements.some((el) =>\n el.contains(target),\n );\n if (overlayRef.hasAttached() && !insidePanel && !insideExcluded) {\n this._ngZone.run(() => requestClose());\n }\n };\n document.addEventListener('click', handler, true);\n cleanups.push(() =>\n document.removeEventListener('click', handler, true),\n );\n }, 0);\n cleanups.push(() => clearTimeout(timerId));\n }\n\n const keySub = overlayRef.keydownEvents().subscribe((event) => {\n if (event.key === 'Escape') {\n requestClose();\n event.preventDefault();\n }\n });\n cleanups.push(() => keySub.unsubscribe());\n\n return { overlayRef, close };\n }\n\n /**\n * @private Maps a {@link MlvPopupScrollStrategy} name to a CDK scroll-strategy instance.\n */\n private _resolveScrollStrategy(\n strategy: MlvPopupScrollStrategy = 'reposition',\n ) {\n switch (strategy) {\n case 'close':\n return this._overlay.scrollStrategies.close();\n case 'block':\n return this._overlay.scrollStrategies.block();\n case 'noop':\n return this._overlay.scrollStrategies.noop();\n default:\n return this._overlay.scrollStrategies.reposition();\n }\n }\n}\n","import type { ElementRef } from '@angular/core';\nimport { InjectionToken } from '@angular/core';\n\n/**\n * Interface implemented by {@link MlvPopupContainer}.\n *\n * Injected by {@link MlvPopupTrigger} when it detects a parent container,\n * enabling the trigger to delegate lifecycle management without needing an explicit\n * `[mlvPopupTrigger]` binding.\n */\nexport interface MlvPopupContainerRef {\n /** Open the popup. */\n open(): void;\n /** Close the popup. */\n close(): void;\n /** Toggle the popup open/closed. */\n toggle(): void;\n /** Returns whether the popup is currently open. */\n isOpen?(): boolean;\n /**\n * Called by a child `MlvPopupTrigger` to register its host element as the\n * visual anchor for the overlay and to indicate whether a backdrop should be used.\n *\n * @param origin — The trigger element used as the CDK overlay origin.\n * @param hasBackdrop — `false` for hover triggers (no transparent backdrop needed).\n */\n registerTrigger(origin: ElementRef, hasBackdrop: boolean): void;\n}\n\n/**\n * Injection token for the nearest `MlvPopupContainer`.\n *\n * Used by `MlvPopupTrigger` to detect container mode and delegate\n * open/close/toggle calls without creating a conflicting overlay.\n */\nexport const POPUP_CONTAINER = new InjectionToken<MlvPopupContainerRef>(\n 'POPUP_CONTAINER',\n);\n","import type { OnDestroy } from '@angular/core';\nimport {\n computed,\n Directive,\n ElementRef,\n NgZone,\n ViewContainerRef,\n effect,\n inject,\n input,\n} from '@angular/core';\nimport type { Subscription } from 'rxjs';\nimport type { MlvPopup } from '../popup/popup';\nimport { POPUP_DETACH_WATCHDOG_MS } from '../popup/popup';\nimport type { MlvPopupHandle } from '../popup.service';\nimport { MlvPopupService } from '../popup.service';\nimport { POPUP_CONTAINER } from '../popup-container/popup-container.token';\n\nexport type MlvPopupTriggerType = 'click' | 'hover' | 'focus';\n\nconst HOVER_CLOSE_DELAY = 20;\n\n@Directive({\n selector: '[mlvPopupTrigger]',\n host: {\n '[attr.aria-expanded]': '_isOpen()',\n '[attr.aria-haspopup]': 'ariaHasPopup()',\n '(click)': 'onClick()',\n '(mouseenter)': 'onMouseEnter()',\n '(mouseleave)': 'onMouseLeave()',\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()',\n },\n exportAs: 'mlvPopupTrigger',\n})\nexport class MlvPopupTrigger implements OnDestroy {\n /** @private Low-level overlay API used in standalone mode. */\n private readonly _popupService = inject(MlvPopupService);\n /** @private Host element ref used as the overlay anchor. */\n private readonly _elementRef = inject(ElementRef);\n /** @private View container used to instantiate the popup template portal. */\n private readonly _vcr = inject(ViewContainerRef);\n /** @private Zone used to re-enter Angular after out-of-zone hover timers. */\n private readonly _ngZone = inject(NgZone);\n\n /**\n * Optional injection of a parent {@link MlvPopupContainer}.\n *\n * When present the trigger operates in **container mode**: it delegates\n * open/close/toggle to the container instead of creating its own overlay,\n * and registers its host element as the visual anchor.\n *\n * When absent the trigger operates in **standalone mode** and manages the\n * overlay lifecycle itself (legacy behaviour).\n */\n private readonly _container = inject(POPUP_CONTAINER, { optional: true });\n\n /** @private The active overlay handle in standalone mode, or `null` when closed. */\n private _handle: MlvPopupHandle | null = null;\n /** @private Guards against re-triggering the leave animation while already closing. */\n private _closing = false;\n /** @private Subscription to the popup's leave-animation-done stream. */\n private _leaveSubscription: Subscription | null = null;\n /** @private Pending hover-close timer handle, or `null` when none is scheduled. */\n private _hoverCloseTimer: ReturnType<typeof setTimeout> | null = null;\n /**\n * @private Last-resort timer that force-detaches an overlay whose leave never\n * completed — without it a lost `animationState` write latches `_closing`\n * with no path back to a detach.\n */\n private _detachWatchdog: ReturnType<typeof setTimeout> | null = null;\n /** @private Teardown callbacks for the overlay hover mouse listeners. */\n private _overlayMouseListeners: (() => void)[] = [];\n\n /**\n * The `MlvPopup` to control.\n *\n * **Standalone mode** (no parent `mlv-popup-container`): must be bound to the\n * target `<mlv-popup>` element: `[mlvPopupTrigger]=\"myPopup\"`.\n *\n * **Container mode** (inside `mlv-popup-container`): can be used as a bare\n * attribute (`mlvPopupTrigger`) without a value — the container already holds\n * the popup reference and orchestrates the overlay. The empty-string value from\n * the bare attribute is coerced to `undefined` by the transform.\n */\n readonly mlvPopupTrigger = input<\n MlvPopup | undefined,\n MlvPopup | string | undefined\n >(undefined, {\n transform: (v): MlvPopup | undefined =>\n typeof v === 'string' ? undefined : v,\n });\n\n /** One or more event types that open the popup. Defaults to `'click'`. */\n readonly triggerOn = input<MlvPopupTriggerType | MlvPopupTriggerType[]>(\n 'click',\n );\n\n /**\n * Value applied to the trigger's `aria-haspopup` attribute. Should match the\n * semantic role of the popup panel's content — e.g. `'menu'` for a menu\n * flyout, `'listbox'` for a select, `'dialog'` for a modal surface. Defaults\n * to `'dialog'` for backwards compatibility. Set to `null` to omit the\n * attribute entirely (e.g. for a tooltip-only popup).\n */\n readonly ariaHasPopup = input<string | null>('dialog');\n\n /** @protected Whether the associated popup is currently open. */\n protected readonly _isOpen = computed(() => {\n const popup = this.mlvPopupTrigger();\n if (popup) return popup.opened();\n if (this._container) return this._container.isOpen?.() ?? false;\n return false;\n });\n\n constructor() {\n if (this._container) {\n // ── Container mode ──────────────────────────────────────────────────\n // Register this element as the overlay anchor. Re-runs if triggerOn changes\n // so the container can update its backdrop preference accordingly.\n const container = this._container;\n effect(() => {\n container.registerTrigger(this._elementRef, !this.hasTrigger('hover'));\n });\n } else {\n // ── Standalone mode ─────────────────────────────────────────────────\n // Watch the popup's opened signal and manage the CDK overlay ourselves.\n effect(() => {\n const popup = this.mlvPopupTrigger();\n if (!popup) return;\n const isOpen = popup.opened();\n if (isOpen && !this._handle) {\n this._attachOverlay();\n } else if (!isOpen && this._handle && !this._closing) {\n this._startLeaveAnimation();\n }\n });\n }\n }\n\n open(): void {\n if (this._container) {\n this._container.open();\n } else {\n this.mlvPopupTrigger()?.opened.set(true);\n }\n }\n\n close(): void {\n if (this._container) {\n this._container.close();\n } else {\n this.mlvPopupTrigger()?.opened.set(false);\n }\n }\n\n toggle(): void {\n if (this._container) {\n this._container.toggle();\n } else if (this._handle) {\n this.close();\n } else {\n this.open();\n }\n }\n\n ngOnDestroy(): void {\n this._clearHoverTimer();\n this._clearDetachWatchdog();\n this._removeOverlayMouseListeners();\n this._cleanupSubscription();\n this._detachOverlay();\n }\n\n onClick(): void {\n if (this.hasTrigger('click')) {\n this.toggle();\n }\n }\n\n onMouseEnter(): void {\n if (this.hasTrigger('hover')) {\n this._clearHoverTimer();\n this.open();\n }\n }\n\n onMouseLeave(): void {\n if (this.hasTrigger('hover')) {\n this._scheduleHoverClose();\n }\n }\n\n onFocus(): void {\n if (this.hasTrigger('focus')) {\n this.open();\n }\n }\n\n onBlur(): void {\n if (this.hasTrigger('focus')) {\n this.close();\n }\n }\n\n hasTrigger(type: MlvPopupTriggerType): boolean {\n const trigger = this.triggerOn();\n return Array.isArray(trigger) ? trigger.includes(type) : trigger === type;\n }\n\n /** @private Schedules a delayed close after the pointer leaves the trigger. */\n private _scheduleHoverClose(): void {\n this._clearHoverTimer();\n this._hoverCloseTimer = setTimeout(() => {\n this._hoverCloseTimer = null;\n this._ngZone.run(() => this.close());\n }, HOVER_CLOSE_DELAY);\n }\n\n /** @private Cancels any pending hover-close timer. */\n private _clearHoverTimer(): void {\n if (this._hoverCloseTimer !== null) {\n clearTimeout(this._hoverCloseTimer);\n this._hoverCloseTimer = null;\n }\n }\n\n /** @private Creates the CDK overlay and plays the enter animation (standalone mode). */\n private _attachOverlay(): void {\n if (this._handle) return;\n\n const popup = this.mlvPopupTrigger();\n if (!popup) return;\n\n popup.animationState.set('idle');\n\n const isHover = this.hasTrigger('hover');\n\n this._handle = this._popupService.open({\n origin: this._elementRef,\n template: popup.popupTemplate(),\n vcr: this._vcr,\n positions: popup.resolvedPositions(),\n size: popup.buildSizeConfig(),\n fullscreen: popup.isFullscreen(),\n hasBackdrop: popup.hasBackdrop() ?? !isHover,\n scrollStrategy: popup.scrollStrategy(),\n onPositionChange: (change) =>\n popup.updateArrowFromPosition(change.connectionPair),\n onClose: () => {\n this._removeOverlayMouseListeners();\n this._clearHoverTimer();\n this._clearDetachWatchdog();\n this._handle = null;\n this._closing = false;\n popup.animationState.set('idle');\n popup.opened.set(false);\n popup.afterClosed.emit();\n },\n onRequestClose: () => this.close(),\n });\n\n if (isHover) {\n this._addOverlayMouseListeners();\n }\n\n this._cleanupSubscription();\n this._leaveSubscription = popup.leaveAnimationDone$.subscribe(() => {\n this._detachOverlay();\n });\n\n // Deferred so the panel is in the DOM before the enter keyframes start;\n // `beginEnterAnimation()` refuses to overwrite a close that beat it here.\n queueMicrotask(() => popup.beginEnterAnimation());\n\n popup.afterOpened.emit();\n }\n\n /** @private Wires hover enter/leave listeners on the overlay panel to keep it open on hover. */\n private _addOverlayMouseListeners(): void {\n if (!this._handle) return;\n const overlayEl = this._handle.overlayRef.overlayElement;\n\n const onEnter = () => this._clearHoverTimer();\n const onLeave = () => this._scheduleHoverClose();\n\n overlayEl.addEventListener('mouseenter', onEnter);\n overlayEl.addEventListener('mouseleave', onLeave);\n\n this._overlayMouseListeners = [\n () => overlayEl.removeEventListener('mouseenter', onEnter),\n () => overlayEl.removeEventListener('mouseleave', onLeave),\n ];\n }\n\n /** @private Removes the overlay hover listeners. */\n private _removeOverlayMouseListeners(): void {\n for (const cleanup of this._overlayMouseListeners) {\n cleanup();\n }\n this._overlayMouseListeners = [];\n }\n\n /** @private Triggers the popup leave animation before detaching the overlay. */\n private _startLeaveAnimation(): void {\n if (!this._handle) return;\n this._closing = true;\n this.mlvPopupTrigger()?.animationState.set('leave');\n this._armDetachWatchdog();\n }\n\n /** @private Tears down the overlay, its subscriptions, and pending timers. */\n private _detachOverlay(): void {\n this._cleanupSubscription();\n this._clearDetachWatchdog();\n if (this._handle) {\n this._handle.close();\n }\n }\n\n /**\n * @private Arms the force-detach timer for the pending leave. Detaching is\n * what resets `_closing` and `_handle`, so a leave that never completes must\n * still end in a detach or the trigger latches permanently.\n */\n private _armDetachWatchdog(): void {\n this._clearDetachWatchdog();\n this._detachWatchdog = setTimeout(() => {\n this._detachWatchdog = null;\n if (this._closing && this._handle) {\n this._detachOverlay();\n }\n }, POPUP_DETACH_WATCHDOG_MS);\n }\n\n /** @private Cancels a pending force-detach timer. */\n private _clearDetachWatchdog(): void {\n if (this._detachWatchdog !== null) {\n clearTimeout(this._detachWatchdog);\n this._detachWatchdog = null;\n }\n }\n\n /** @private Unsubscribes from the leave-animation-done stream. */\n private _cleanupSubscription(): void {\n this._leaveSubscription?.unsubscribe();\n this._leaveSubscription = null;\n }\n}\n","import type { OnDestroy } from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewContainerRef,\n ViewEncapsulation,\n contentChild,\n effect,\n inject,\n} from '@angular/core';\nimport type { Subscription } from 'rxjs';\nimport { MlvPopup, POPUP_DETACH_WATCHDOG_MS } from '../popup/popup';\nimport type { MlvPopupHandle } from '../popup.service';\nimport { MlvPopupService } from '../popup.service';\nimport type { MlvPopupContainerRef } from './popup-container.token';\nimport { POPUP_CONTAINER } from './popup-container.token';\n\n@Component({\n selector: 'mlv-popup-container',\n template: `<ng-content />`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: POPUP_CONTAINER, useExisting: MlvPopupContainer }],\n})\nexport class MlvPopupContainer implements OnDestroy, MlvPopupContainerRef {\n /** @private Low-level popup overlay service used to open/close the CDK overlay. */\n private readonly _popupService = inject(MlvPopupService);\n\n /** @private View container used as the anchor for the popup's template portal. */\n private readonly _vcr = inject(ViewContainerRef);\n\n /** @private Host element reference, used as the overlay origin when no trigger is registered. */\n private readonly _elementRef = inject(ElementRef);\n\n /** @private Handle to the currently-open overlay, or `null` when closed. */\n private _handle: MlvPopupHandle | null = null;\n\n /** @private True while the leave animation is playing, before the overlay detaches. */\n private _closing = false;\n\n /** @private Subscription to the popup's leave-animation-done stream. */\n private _leaveSubscription: Subscription | null = null;\n\n /**\n * @private Last-resort timer that force-detaches an overlay whose leave never\n * completed. The popup's own animation fallback normally gets there first;\n * this one also covers a lost `animationState` write, which would otherwise\n * latch `_closing` with no path back to a detach.\n */\n private _detachWatchdog: ReturnType<typeof setTimeout> | null = null;\n\n /** @private Origin registered by a child `MlvPopupTrigger`, if any. */\n private _triggerOrigin: ElementRef | null = null;\n /** @private Backdrop preference registered by a child `MlvPopupTrigger`. */\n private _hasBackdrop = true;\n\n readonly popup = contentChild.required(MlvPopup);\n\n /**\n * Called by a child {@link MlvPopupTrigger} to register its host element\n * as the visual anchor for the CDK overlay.\n */\n registerTrigger(origin: ElementRef, hasBackdrop: boolean): void {\n this._triggerOrigin = origin;\n this._hasBackdrop = hasBackdrop;\n }\n\n constructor() {\n effect(() => {\n const popup = this.popup();\n const isOpen = popup.opened();\n if (isOpen && !this._handle) {\n this._attachOverlay();\n } else if (!isOpen && this._handle && !this._closing) {\n this._startLeaveAnimation();\n }\n });\n }\n\n open(): void {\n if (this._handle) return;\n this.popup().opened.set(true);\n }\n\n close(): void {\n this.popup().opened.set(false);\n }\n\n toggle(): void {\n if (this._handle) {\n this.close();\n } else {\n this.open();\n }\n }\n\n /** Returns whether the popup is currently open. */\n isOpen(): boolean {\n return this.popup().opened();\n }\n\n ngOnDestroy(): void {\n this._cleanupSubscription();\n this._clearDetachWatchdog();\n this._detachOverlay();\n }\n\n /** @private Opens the CDK overlay for the popup and subscribes to its leave-animation completion. */\n private _attachOverlay(): void {\n if (this._handle) return;\n\n const popup = this.popup();\n popup.animationState.set('idle');\n\n this._handle = this._popupService.open({\n origin: this._triggerOrigin ?? this._elementRef,\n template: popup.popupTemplate(),\n vcr: this._vcr,\n positions: popup.resolvedPositions(),\n size: popup.buildSizeConfig(),\n fullscreen: popup.isFullscreen(),\n hasBackdrop: popup.hasBackdrop() ?? this._hasBackdrop,\n scrollStrategy: popup.scrollStrategy(),\n flexibleDimensions: popup.flexibleDimensions(),\n dismissExcludeElements: popup.dismissExcludeElements(),\n onPositionChange: (change) =>\n popup.updateArrowFromPosition(change.connectionPair),\n onClose: () => {\n this._clearDetachWatchdog();\n this._handle = null;\n this._closing = false;\n popup.animationState.set('idle');\n popup.opened.set(false);\n popup.afterClosed.emit();\n },\n onRequestClose: () => this.close(),\n });\n\n this._cleanupSubscription();\n this._leaveSubscription = popup.leaveAnimationDone$.subscribe(() => {\n this._detachOverlay();\n });\n\n // Deferred so the panel is in the DOM before the enter keyframes start;\n // `beginEnterAnimation()` refuses to overwrite a close that beat it here.\n queueMicrotask(() => popup.beginEnterAnimation());\n\n popup.afterOpened.emit();\n }\n\n /** @private Marks the container as closing and triggers the popup's leave animation. */\n private _startLeaveAnimation(): void {\n if (!this._handle) return;\n this._closing = true;\n this.popup().animationState.set('leave');\n this._armDetachWatchdog();\n }\n\n /** @private Cleans up subscriptions, timers, and closes the overlay handle. */\n private _detachOverlay(): void {\n this._cleanupSubscription();\n this._clearDetachWatchdog();\n if (this._handle) {\n this._handle.close();\n }\n }\n\n /**\n * @private Arms the force-detach timer for the pending leave. Detaching is\n * what resets `_closing` and `_handle`, so a leave that never completes must\n * still end in a detach or the container latches permanently.\n */\n private _armDetachWatchdog(): void {\n this._clearDetachWatchdog();\n this._detachWatchdog = setTimeout(() => {\n this._detachWatchdog = null;\n if (this._closing && this._handle) {\n this._detachOverlay();\n }\n }, POPUP_DETACH_WATCHDOG_MS);\n }\n\n /** @private Cancels a pending force-detach timer. */\n private _clearDetachWatchdog(): void {\n if (this._detachWatchdog !== null) {\n clearTimeout(this._detachWatchdog);\n this._detachWatchdog = null;\n }\n }\n\n /** @private Unsubscribes from and clears the leave-animation subscription. */\n private _cleanupSubscription(): void {\n this._leaveSubscription?.unsubscribe();\n this._leaveSubscription = null;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAMM,MAAO,eAAgB,SAAQ,aAAa,CAAA;uGAArC,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC9B,iBAAA;;;ACFD;;;;;;;;;;;AAWG;AAIG,MAAO,qBAAsB,SAAQ,aAAa,CAAA;uGAA3C,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;AACpC,iBAAA;;;ACdD;;;;;;;;;;AAUG;AAIG,MAAO,qBAAsB,SAAQ,aAAa,CAAA;uGAA3C,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;AACpC,iBAAA;;;ACkBD;AACA;AACA;AAEA;;;;;;AAMG;AACI,MAAM,kBAAkB,GAG3B,IAAI,GAAG,CAA0C;;AAEnD,IAAA;QACE,WAAW;AACX,QAAA;AACE,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,CAAC;AACZ,SAAA;AACF,KAAA;AACD,IAAA;QACE,KAAK;AACL,QAAA;AACE,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,CAAC;AACZ,SAAA;AACF,KAAA;AACD,IAAA;QACE,SAAS;AACT,QAAA;AACE,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,CAAC;AACZ,SAAA;AACF,KAAA;;AAED,IAAA;QACE,cAAc;AACd,QAAA;AACE,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;AACF,KAAA;AACD,IAAA;QACE,QAAQ;AACR,QAAA;AACE,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;AACF,KAAA;AACD,IAAA;QACE,YAAY;AACZ,QAAA;AACE,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;AACF,KAAA;;AAED,IAAA;QACE,YAAY;AACZ,QAAA;AACE,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,CAAC,CAAC;AACZ,SAAA;AACF,KAAA;AACD,IAAA;QACE,MAAM;AACN,QAAA;AACE,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,CAAC;AACZ,SAAA;AACF,KAAA;AACD,IAAA;QACE,UAAU;AACV,QAAA;AACE,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,CAAC;AACZ,SAAA;AACF,KAAA;;AAED,IAAA;QACE,aAAa;AACb,QAAA;AACE,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;AACF,KAAA;AACD,IAAA;QACE,OAAO;AACP,QAAA;AACE,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;AACF,KAAA;AACD,IAAA;QACE,WAAW;AACX,QAAA;AACE,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;AACF,KAAA;AACF,CAAA;AAED;AACA;AACA;AAEA;;;;;;;;;;;;;AAaG;MACU,eAAe,GAAG,IAAI,cAAc,CAE/C,iBAAiB,EAAE;AACnB,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,MAAM,kBAAkB;AAClC,CAAA;AAED;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;AAkBG;AACG,SAAU,qBAAqB,CACnC,SAA+D,EAAA;IAE/D,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE;AAC1D;AAEA;AACA;AACA;AAEA;;;;;AAKG;MACU,wBAAwB,CAAA;AACnC;;;;;;;;;;;;AAYG;AACH,IAAA,OAAO,OAAO,CACZ,KAAoD,EACpD,WAAiE,EAAA;AAEjE,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC;QACvD,MAAM,QAAQ,GAAwB,EAAE;AAExC,QAAA,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;YAC3B,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;AACjC,YAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AACrB,gBAAA,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;YACpB;AAAO,iBAAA,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,EAAE;AACxD,gBAAA,OAAO,CAAC,IAAI,CACV,CAAA,qBAAA,EAAwB,IAAI,CAAA,4CAAA,CAA8C;AACxE,oBAAA,CAAA,sBAAA,EAAyB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAA,CAAI,CACzE;YACH;QACF;AAEA,QAAA,OAAO,QAAQ;IACjB;AAEA;;;;;AAKG;IACH,OAAO,YAAY,CACjB,WAAiE,EAAA;QAEjE,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;IACzC;AACD;AAED;AACA;AACA;AAEA;;;;;;;AAOG;MACU,cAAc,GACzB,wBAAwB,CAAC,OAAO,CAC9B,CAAC,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,EACtD,kBAAkB;AAGtB;;;;;;AAMG;AACI,MAAM,iBAAiB,GAC5B,wBAAwB,CAAC,OAAO,CAC9B,CAAC,aAAa,EAAE,YAAY,CAAC,EAC7B,kBAAkB;;AC7QtB;;;;;;AAMG;AACI,MAAM,uBAAuB,GAAG;AAEvC;;;;AAIG;AACI,MAAM,wBAAwB,GAAG,uBAAuB,GAAG;MA4BrD,QAAQ,CAAA;;AAEF,IAAA,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;AAqBG;IACM,QAAQ,GAAG,KAAK,CAEvB,SAAS;iFAAC;AAEZ;;;;;;AAMG;IACM,SAAS,GAAG,KAAK,CAAkC,SAAS;kFAAC;;IAG7D,KAAK,GAAG,KAAK,CAA8B,SAAS;8EAAC;;IAErD,MAAM,GAAG,KAAK,CAA8B,SAAS;+EAAC;;IAEtD,QAAQ,GAAG,KAAK,CAA8B,SAAS;iFAAC;;IAExD,SAAS,GAAG,KAAK,CAA8B,SAAS;kFAAC;;IAEzD,QAAQ,GAAG,KAAK,CAA8B,SAAS;iFAAC;;IAExD,SAAS,GAAG,KAAK,CAA8B,SAAS;kFAAC;;IAEzD,QAAQ,GAAG,KAAK,CAAwB,KAAK,gFACpD,SAAS,EAAE,qBAAqB,EAAA,CAChC;;IAEO,SAAS,GAAG,KAAK,CAAwB,IAAI,iFACpD,SAAS,EAAE,qBAAqB,EAAA,CAChC;;AAEO,IAAA,KAAK,GAAG,KAAK;yFAAU;AAEhC;;;;;;;;;;;;;;;AAeG;IACM,UAAU,GAAG,KAAK,CAAyB,SAAS;mFAAC;AAE9D;;;AAGG;AACc,IAAA,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAE5D;;;AAGG;AACc,IAAA,eAAe,GAAG,MAAM,CAAC,mBAAmB,EAAE;AAC7D,QAAA,QAAQ,EAAE,IAAI;AACf,KAAA,CAAC;AAEF;;;AAGG;AACgB,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;AAC/C,QAAA,MAAM,OAAO,GACX,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,eAAe,IAAI;AACxB,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE;AAChC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,OAAO,KAAK,GAAG,GAAG,KAAK,CAAA,MAAA,EAAS,OAAO,CAAA,CAAE,GAAG,CAAA,KAAA,EAAQ,OAAO,EAAE;IAC/D,CAAC;sFAAC;;IAEO,kBAAkB,GAAG,KAAK,CAAwB,KAAK,0FAC9D,SAAS,EAAE,qBAAqB,EAAA,CAChC;AAEF;;;;;;;AAOG;IACM,cAAc,GAAG,KAAK,CAAyB,YAAY;uFAAC;AAErE;;;;;;;;AAQG;IACM,WAAW,GAAG,KAAK,CAC1B,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,aAAA,EAAA,8BAAA,EAAA,CAAA,EAEP,SAAS,EAAE,CAAC,CAAC,KACX,CAAC,IAAI,IAAI,GAAG,SAAS,GAAG,qBAAqB,CAAC,CAAiB,CAAC,EAAA,CAErE;AAED;;;;;;;;;;;;;;AAcG;IACM,gBAAgB,GAAG,KAAK,CAAwB,IAAI,wFAC3D,SAAS,EAAE,qBAAqB,EAAA,CAChC;AACF;;;;;;;;;;;AAWG;IACM,SAAS,GAAG,KAAK,CAAgB,IAAI;kFAAC;AAE/C;;;;;;;;AAQG;IACM,KAAK,GAAG,KAAK,CAAwB,KAAK,6EACjD,SAAS,EAAE,qBAAqB,EAAA,CAChC;AAEF;;;AAGG;IACM,SAAS,GAAG,KAAK,CAAqB,SAAS;kFAAC;AAEzD;;;;;;;;;;;;;AAaG;IACM,sBAAsB,GAAG,KAAK,CAAyB,EAAE;+FAAC;;;AAKlD,IAAA,WAAW,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAE3D;;;;AAIG;IACc,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAEnE;;;;;;AAMG;IACM,UAAU,GAAG,KAAK,CAAqB,KAAK;mFAAC;AAEtD;;;AAGG;IACM,gBAAgB,GAAG,KAAK,CAAgB,IAAI;yFAAC;AAEtD;;;AAGG;IACM,WAAW,GAAG,KAAK,CAAqB,SAAS;oFAAC;AAE3D;;;AAGG;IACM,gBAAgB,GAAG,KAAK,CAAqB,SAAS;yFAAC;AAEhE;;;;;;;AAOG;AACM,IAAA,YAAY,GAAG,QAAQ,CAAU,MAAK;AAC7C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE;QAC9B,IAAI,IAAI,KAAK,KAAK;AAAE,YAAA,OAAO,KAAK;QAChC,IAAI,IAAI,KAAK,YAAY;AAAE,YAAA,OAAO,IAAI;AACtC,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE;IAC3D,CAAC;qFAAC;;AAGiB,IAAA,WAAW,GAAG,QAAQ,CACvC,MAAM,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,OAAO;oFACjE;;IAGQ,MAAM,GAAG,KAAK,CAAC,KAAK;+EAAC;;IAErB,WAAW,GAAG,MAAM,EAAQ;;IAE5B,WAAW,GAAG,MAAM,EAAQ;IAE5B,cAAc,GAAG,MAAM,CAA6B,MAAM;uFAAC;IAC3D,SAAS,GAAG,MAAM,CAAoB,KAAK;kFAAC;IAC5C,UAAU,GAAG,MAAM,CAAqB,OAAO;mFAAC;AAEzD;;;;AAIG;AACM,IAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAK;AAC5C,QAAA,QAAQ,IAAI,CAAC,SAAS,EAAE;AACtB,YAAA,KAAK,KAAK;AACR,gBAAA,OAAO,kBAAkB;AAC3B,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,iBAAiB;AAC1B,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,kBAAkB;AAC3B,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,iBAAiB;;IAE9B,CAAC;6FAAC;;IAGiB,UAAU,GAAG,YAAY,CAAC,eAAe;mFAAC;AAE7D;;;;;;AAMG;IACgB,gBAAgB,GAAG,YAAY,CAAC,qBAAqB;yFAAC;AAEzE;;;;;;AAMG;IACgB,gBAAgB,GAAG,YAAY,CAAC,qBAAqB;yFAAC;;AAGhE,IAAA,mBAAmB,GAAG,IAAI,OAAO,EAAQ;AAElD;;;;;;;AAOG;IACK,mBAAmB,GAAyC,IAAI;AAExE,IAAA,WAAA,GAAA;;;QAGE,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE;AACnC,YAAA,IAAI,IAAI,CAAC,mBAAmB,KAAK,IAAI,EAAE;AACrC,gBAAA,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC;AACtC,gBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;YACjC;AACA,YAAA,IAAI,KAAK,KAAK,OAAO,EAAE;AACrB,gBAAA,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,MAAK;AACzC,oBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;oBAC/B,IAAI,CAAC,cAAc,EAAE;gBACvB,CAAC,EAAE,uBAAuB,CAAC;YAC7B;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAK;AAChC,YAAA,IAAI,IAAI,CAAC,mBAAmB,KAAK,IAAI,EAAE;AACrC,gBAAA,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC;AACtC,gBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;YACjC;AACF,QAAA,CAAC,CAAC;IACJ;AAES,IAAA,aAAa,GACpB,SAAS,CAAC,QAAQ,CAAuB,eAAe;sFAAC;;AAI3D;;;;;;;;;;;;;AAaG;IACH,iBAAiB,GAAA;AACf,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC7B,QAAA,IAAI,SAA0C;AAE9C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,SAAS,GAAG,wBAAwB,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC;QACxE;aAAO;AACL,YAAA,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE;QAC9B;AAEA,QAAA,MAAM,IAAI,GACR,SAAS,IAAI,wBAAwB,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC;AAEvE,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;AAC3B,YAAA,OAAO,IAAI;QACb;;;QAIA,MAAM,GAAG,GAAG,wBAAwB,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC;AACpE,QAAA,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC;QAC1B,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD;IAEA,eAAe,GAAA;QACb,MAAM,IAAI,GAAuB,EAAE;AACnC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AAChC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE;AAClC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AAChC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE;QAElC,IAAI,KAAK,KAAK,SAAS;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;QAC3C,IAAI,MAAM,KAAK,SAAS;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;QAC9C,IAAI,QAAQ,KAAK,SAAS;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;QACpD,IAAI,SAAS,KAAK,SAAS;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;QACvD,IAAI,QAAQ,KAAK,SAAS;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;QACpD,IAAI,SAAS,KAAK,SAAS;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAEvD,QAAA,OAAO,IAAI;IACb;IAEA,cAAc,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,OAAO,EAAE;AACrC,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE;QACjC;IACF;AAEA;;;;;;;;;;AAUG;IACH,mBAAmB,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,MAAM,EAAE;AACpC,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC;QAClC;IACF;AAEA;;;;;AAKG;IACO,aAAa,GAAA;AACrB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;IACxB;AAEA;;;;;;;;;;;;AAYG;AACH,IAAA,uBAAuB,CAAC,IAAuB,EAAA;QAC7C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI;QAE5C,IAAI,QAAQ,KAAK,KAAK,IAAI,OAAO,KAAK,OAAO,EAAE;;AAE7C,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;YAC3B,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,QAAQ,KAAK,KAAK,GAAG,OAAO,GAAG,QAAQ,KAAK,QAAQ,GAAG,KAAK,GAAG,QAAQ,CACxE;QACH;aAAO,IAAI,QAAQ,KAAK,OAAO,IAAI,OAAO,KAAK,KAAK,EAAE;;AAEpD,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,QAAQ,KAAK,KAAK,GAAG,OAAO,GAAG,QAAQ,KAAK,QAAQ,GAAG,KAAK,GAAG,QAAQ,CACxE;QACH;AAAO,aAAA,IAAI,QAAQ,KAAK,KAAK,EAAE;;AAE7B,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,QAAwD,CACzD;QACH;aAAO;;AAEL,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC5B,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,QAAwD,CACzD;QACH;IACF;uGAxeW,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAR,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAQ,0hHAsS0B,eAAe,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAST,qBAAqB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EASrB,qBAAqB,gMCjZ1E,o7EAwDA,EAAA,MAAA,EAAA,CAAA,0yIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDqBI,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,UAAU,yLACV,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,YAAY,iJACZ,cAAc,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAOL,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAfpB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAAA,OAAA,EACZ;wBACP,aAAa;wBACb,UAAU;wBACV,YAAY;wBACZ,gBAAgB;wBAChB,YAAY;wBACZ,cAAc;AACf,qBAAA,EAAA,aAAA,EAGc,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,o7EAAA,EAAA,MAAA,EAAA,CAAA,0yIAAA,CAAA,EAAA;AAwSF,SAAA,CAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,eAAe,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAST,qBAAqB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MASrB,qBAAqB,wEAyC7B,eAAe,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AEvU5D;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;AAsBG;MAEU,eAAe,CAAA;;AAET,IAAA,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;AAE3C;;;AAGG;AACc,IAAA,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC;;AAG5B,IAAA,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC;;AAGtC,IAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;;AAIzC;;;;;;;;;;;;;;;AAeG;AACH,IAAA,gBAAgB,CACd,KAAoD,EAAA;QAEpD,OAAO,wBAAwB,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC;IACnE;AAEA;;;;;;AAMG;AACH,IAAA,IAAI,CAAC,MAA0B,EAAA;AAC7B,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,KAAK;AAC7C,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,IAAI,KAAK;;;;;;;;QASnD,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,cAAc,IAAI,YAAY,MAAM,YAAY;QACrE,MAAM,gBAAgB,GAAG;cACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM;cAC/B,IAAI,CAAC;AACF,iBAAA,QAAQ;AACR,iBAAA,mBAAmB,CAAC,MAAM,CAAC,MAAM;AACjC,iBAAA,aAAa,CAAC,MAAM,CAAC,SAAS;iBAC9B,QAAQ,CAAC,IAAI;iBACb,sBAAsB,CAAC,QAAQ;iBAC/B,iBAAiB,CAAC,QAAQ,CAAC;;;AAIlC,QAAA,MAAM,WAAW,GAAG,UAAU,GAAG,IAAI,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC;AAEpE,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACtC,gBAAgB;;;;;YAKhB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC;YACpD,WAAW;AACX,YAAA,IAAI;AACF,kBAAE;AACE,oBAAA,aAAa,EAAE;AACb,0BAAE;AACF,2BAAG,MAAM,CAAC,aAAa,IAAI,kCAAkC,CAAC;AACjE;kBACD,EAAE,CAAC;;;AAGP,YAAA,cAAc,EAAE;kBACZ,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK;kBACpC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,cAAc,CAAC;AACtD,YAAA,IAAI;AACF,kBAAE,EAAE,UAAU,EAAE,2BAA2B;AAC3C,kBAAE,MAAM,CAAC,IAAI,CAAC;AACjB,SAAA,CAAC;AAEF,QAAA,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC;AAC9D,QAAA,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;;;AAIzB,QAAA,IAAI,MAAM,CAAC,gBAAgB,IAAI,CAAC,UAAU,EAAE;YAExC,gBACD,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACtD;;QAGA,MAAM,QAAQ,GAAmB,EAAE;;;;;;;AAQnC,QAAA,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,SAAS,KAAI;AACpD,YAAA,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC;YAClC,UAAU,CAAC,cAAc,EAAE;QAC7B,CAAC,CAAC,CACH;QAED,IAAI,QAAQ,GAAG,KAAK;QACpB,MAAM,KAAK,GAAG,MAAK;AACjB,YAAA,IAAI,QAAQ;gBAAE;YACd,QAAQ,GAAG,IAAI;YACf,KAAK,MAAM,EAAE,IAAI,QAAQ;AAAE,gBAAA,EAAE,EAAE;YAC/B,UAAU,CAAC,OAAO,EAAE;YACpB,MAAM,CAAC,OAAO,EAAE;AAClB,QAAA,CAAC;;;AAID,QAAA,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,EAAE,CAAC;QACnE,QAAQ,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,WAAW,EAAE,CAAC;AAE5C,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,IAAI,KAAK;QAEnD,IAAI,WAAW,EAAE;AACf,YAAA,MAAM,GAAG,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,MAAM,YAAY,EAAE,CAAC;YACtE,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;QACxC;aAAO;;AAEL,YAAA,MAAM,eAAe,GAAG,MAAM,CAAC,sBAAsB,IAAI,EAAE;AAC3D,YAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAK;AAC9B,gBAAA,MAAM,OAAO,GAAG,CAAC,KAAiB,KAAI;AACpC,oBAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAc;AACnC,oBAAA,MAAM,WAAW,GACf,UAAU,CAAC,WAAW,EAAE;AACxB,wBAAA,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC;;;;AAI5C,oBAAA,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,KAC7C,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CACpB;oBACD,IAAI,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,CAAC,cAAc,EAAE;wBAC/D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,YAAY,EAAE,CAAC;oBACxC;AACF,gBAAA,CAAC;gBACD,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;AACjD,gBAAA,QAAQ,CAAC,IAAI,CAAC,MACZ,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CACrD;YACH,CAAC,EAAE,CAAC,CAAC;YACL,QAAQ,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;QAC5C;AAEA,QAAA,MAAM,MAAM,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAC5D,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;AAC1B,gBAAA,YAAY,EAAE;gBACd,KAAK,CAAC,cAAc,EAAE;YACxB;AACF,QAAA,CAAC,CAAC;QACF,QAAQ,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;AAEzC,QAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE;IAC9B;AAEA;;AAEG;IACK,sBAAsB,CAC5B,WAAmC,YAAY,EAAA;QAE/C,QAAQ,QAAQ;AACd,YAAA,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE;AAC/C,YAAA,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE;AAC/C,YAAA,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE;AAC9C,YAAA;gBACE,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE;;IAExD;uGAtMW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAf,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cADF,MAAM,EAAA,CAAA;;2FACnB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACjHlC;;;;;AAKG;MACU,eAAe,GAAG,IAAI,cAAc,CAC/C,iBAAiB;;AChBnB,MAAM,iBAAiB,GAAG,EAAE;MAef,eAAe,CAAA;;AAET,IAAA,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC;;AAEvC,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;;AAEhC,IAAA,IAAI,GAAG,MAAM,CAAC,gBAAgB,CAAC;;AAE/B,IAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;AAEzC;;;;;;;;;AASG;IACc,UAAU,GAAG,MAAM,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;IAGjE,OAAO,GAA0B,IAAI;;IAErC,QAAQ,GAAG,KAAK;;IAEhB,kBAAkB,GAAwB,IAAI;;IAE9C,gBAAgB,GAAyC,IAAI;AACrE;;;;AAIG;IACK,eAAe,GAAyC,IAAI;;IAE5D,sBAAsB,GAAmB,EAAE;AAEnD;;;;;;;;;;AAUG;IACM,eAAe,GAAG,KAAK,CAG9B,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,8BAAA,EAAA,CAAA,EACT,SAAS,EAAE,CAAC,CAAC,KACX,OAAO,CAAC,KAAK,QAAQ,GAAG,SAAS,GAAG,CAAC,EAAA,CACvC;;IAGO,SAAS,GAAG,KAAK,CACxB,OAAO;kFACR;AAED;;;;;;AAMG;IACM,YAAY,GAAG,KAAK,CAAgB,QAAQ;qFAAC;;AAGnC,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;AACzC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE;AACpC,QAAA,IAAI,KAAK;AAAE,YAAA,OAAO,KAAK,CAAC,MAAM,EAAE;QAChC,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,KAAK;AAC/D,QAAA,OAAO,KAAK;IACd,CAAC;gFAAC;AAEF,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;;;;AAInB,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU;YACjC,MAAM,CAAC,MAAK;AACV,gBAAA,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACxE,YAAA,CAAC,CAAC;QACJ;aAAO;;;YAGL,MAAM,CAAC,MAAK;AACV,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE;AACpC,gBAAA,IAAI,CAAC,KAAK;oBAAE;AACZ,gBAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE;AAC7B,gBAAA,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;oBAC3B,IAAI,CAAC,cAAc,EAAE;gBACvB;AAAO,qBAAA,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;oBACpD,IAAI,CAAC,oBAAoB,EAAE;gBAC7B;AACF,YAAA,CAAC,CAAC;QACJ;IACF;IAEA,IAAI,GAAA;AACF,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;QACxB;aAAO;YACL,IAAI,CAAC,eAAe,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QAC1C;IACF;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;QACzB;aAAO;YACL,IAAI,CAAC,eAAe,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;QAC3C;IACF;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QAC1B;AAAO,aAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YACvB,IAAI,CAAC,KAAK,EAAE;QACd;aAAO;YACL,IAAI,CAAC,IAAI,EAAE;QACb;IACF;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,gBAAgB,EAAE;QACvB,IAAI,CAAC,oBAAoB,EAAE;QAC3B,IAAI,CAAC,4BAA4B,EAAE;QACnC,IAAI,CAAC,oBAAoB,EAAE;QAC3B,IAAI,CAAC,cAAc,EAAE;IACvB;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAC5B,IAAI,CAAC,MAAM,EAAE;QACf;IACF;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAC5B,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,IAAI,EAAE;QACb;IACF;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAC5B,IAAI,CAAC,mBAAmB,EAAE;QAC5B;IACF;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAC5B,IAAI,CAAC,IAAI,EAAE;QACb;IACF;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAC5B,IAAI,CAAC,KAAK,EAAE;QACd;IACF;AAEA,IAAA,UAAU,CAAC,IAAyB,EAAA;AAClC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE;QAChC,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,KAAK,IAAI;IAC3E;;IAGQ,mBAAmB,GAAA;QACzB,IAAI,CAAC,gBAAgB,EAAE;AACvB,QAAA,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,MAAK;AACtC,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;AAC5B,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACtC,CAAC,EAAE,iBAAiB,CAAC;IACvB;;IAGQ,gBAAgB,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,EAAE;AAClC,YAAA,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC;AACnC,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;QAC9B;IACF;;IAGQ,cAAc,GAAA;QACpB,IAAI,IAAI,CAAC,OAAO;YAAE;AAElB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE;AACpC,QAAA,IAAI,CAAC,KAAK;YAAE;AAEZ,QAAA,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;QAEhC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAExC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACrC,MAAM,EAAE,IAAI,CAAC,WAAW;AACxB,YAAA,QAAQ,EAAE,KAAK,CAAC,aAAa,EAAE;YAC/B,GAAG,EAAE,IAAI,CAAC,IAAI;AACd,YAAA,SAAS,EAAE,KAAK,CAAC,iBAAiB,EAAE;AACpC,YAAA,IAAI,EAAE,KAAK,CAAC,eAAe,EAAE;AAC7B,YAAA,UAAU,EAAE,KAAK,CAAC,YAAY,EAAE;AAChC,YAAA,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO;AAC5C,YAAA,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE;AACtC,YAAA,gBAAgB,EAAE,CAAC,MAAM,KACvB,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,cAAc,CAAC;YACtD,OAAO,EAAE,MAAK;gBACZ,IAAI,CAAC,4BAA4B,EAAE;gBACnC,IAAI,CAAC,gBAAgB,EAAE;gBACvB,IAAI,CAAC,oBAAoB,EAAE;AAC3B,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,gBAAA,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;AAChC,gBAAA,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACvB,gBAAA,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE;YAC1B,CAAC;AACD,YAAA,cAAc,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE;AACnC,SAAA,CAAC;QAEF,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,yBAAyB,EAAE;QAClC;QAEA,IAAI,CAAC,oBAAoB,EAAE;QAC3B,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,mBAAmB,CAAC,SAAS,CAAC,MAAK;YACjE,IAAI,CAAC,cAAc,EAAE;AACvB,QAAA,CAAC,CAAC;;;QAIF,cAAc,CAAC,MAAM,KAAK,CAAC,mBAAmB,EAAE,CAAC;AAEjD,QAAA,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE;IAC1B;;IAGQ,yBAAyB,GAAA;QAC/B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc;QAExD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE;QAC7C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE;AAEhD,QAAA,SAAS,CAAC,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC;AACjD,QAAA,SAAS,CAAC,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC;QAEjD,IAAI,CAAC,sBAAsB,GAAG;YAC5B,MAAM,SAAS,CAAC,mBAAmB,CAAC,YAAY,EAAE,OAAO,CAAC;YAC1D,MAAM,SAAS,CAAC,mBAAmB,CAAC,YAAY,EAAE,OAAO,CAAC;SAC3D;IACH;;IAGQ,4BAA4B,GAAA;AAClC,QAAA,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,sBAAsB,EAAE;AACjD,YAAA,OAAO,EAAE;QACX;AACA,QAAA,IAAI,CAAC,sBAAsB,GAAG,EAAE;IAClC;;IAGQ,oBAAoB,GAAA;QAC1B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE;AACnB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;QACpB,IAAI,CAAC,eAAe,EAAE,EAAE,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC;QACnD,IAAI,CAAC,kBAAkB,EAAE;IAC3B;;IAGQ,cAAc,GAAA;QACpB,IAAI,CAAC,oBAAoB,EAAE;QAC3B,IAAI,CAAC,oBAAoB,EAAE;AAC3B,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;QACtB;IACF;AAEA;;;;AAIG;IACK,kBAAkB,GAAA;QACxB,IAAI,CAAC,oBAAoB,EAAE;AAC3B,QAAA,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,MAAK;AACrC,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI;YAC3B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE;gBACjC,IAAI,CAAC,cAAc,EAAE;YACvB;QACF,CAAC,EAAE,wBAAwB,CAAC;IAC9B;;IAGQ,oBAAoB,GAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE;AACjC,YAAA,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC;AAClC,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI;QAC7B;IACF;;IAGQ,oBAAoB,GAAA;AAC1B,QAAA,IAAI,CAAC,kBAAkB,EAAE,WAAW,EAAE;AACtC,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;IAChC;uGAxTW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAb3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,IAAI,EAAE;AACJ,wBAAA,sBAAsB,EAAE,WAAW;AACnC,wBAAA,sBAAsB,EAAE,gBAAgB;AACxC,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,cAAc,EAAE,gBAAgB;AAChC,wBAAA,cAAc,EAAE,gBAAgB;AAChC,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,QAAQ,EAAE,UAAU;AACrB,qBAAA;AACD,oBAAA,QAAQ,EAAE,iBAAiB;AAC5B,iBAAA;;;MCTY,iBAAiB,CAAA;;AAEX,IAAA,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC;;AAGvC,IAAA,IAAI,GAAG,MAAM,CAAC,gBAAgB,CAAC;;AAG/B,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;;IAGzC,OAAO,GAA0B,IAAI;;IAGrC,QAAQ,GAAG,KAAK;;IAGhB,kBAAkB,GAAwB,IAAI;AAEtD;;;;;AAKG;IACK,eAAe,GAAyC,IAAI;;IAG5D,cAAc,GAAsB,IAAI;;IAExC,YAAY,GAAG,IAAI;AAElB,IAAA,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ;8EAAC;AAEhD;;;AAGG;IACH,eAAe,CAAC,MAAkB,EAAE,WAAoB,EAAA;AACtD,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM;AAC5B,QAAA,IAAI,CAAC,YAAY,GAAG,WAAW;IACjC;AAEA,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE;AAC7B,YAAA,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBAC3B,IAAI,CAAC,cAAc,EAAE;YACvB;AAAO,iBAAA,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACpD,IAAI,CAAC,oBAAoB,EAAE;YAC7B;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,IAAI,GAAA;QACF,IAAI,IAAI,CAAC,OAAO;YAAE;QAClB,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;IAC/B;IAEA,KAAK,GAAA;QACH,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;IAChC;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,KAAK,EAAE;QACd;aAAO;YACL,IAAI,CAAC,IAAI,EAAE;QACb;IACF;;IAGA,MAAM,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE;IAC9B;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,oBAAoB,EAAE;QAC3B,IAAI,CAAC,oBAAoB,EAAE;QAC3B,IAAI,CAAC,cAAc,EAAE;IACvB;;IAGQ,cAAc,GAAA;QACpB,IAAI,IAAI,CAAC,OAAO;YAAE;AAElB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;QAEhC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AACrC,YAAA,MAAM,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,WAAW;AAC/C,YAAA,QAAQ,EAAE,KAAK,CAAC,aAAa,EAAE;YAC/B,GAAG,EAAE,IAAI,CAAC,IAAI;AACd,YAAA,SAAS,EAAE,KAAK,CAAC,iBAAiB,EAAE;AACpC,YAAA,IAAI,EAAE,KAAK,CAAC,eAAe,EAAE;AAC7B,YAAA,UAAU,EAAE,KAAK,CAAC,YAAY,EAAE;YAChC,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,YAAY;AACrD,YAAA,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE;AACtC,YAAA,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAAE;AAC9C,YAAA,sBAAsB,EAAE,KAAK,CAAC,sBAAsB,EAAE;AACtD,YAAA,gBAAgB,EAAE,CAAC,MAAM,KACvB,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,cAAc,CAAC;YACtD,OAAO,EAAE,MAAK;gBACZ,IAAI,CAAC,oBAAoB,EAAE;AAC3B,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,gBAAA,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;AAChC,gBAAA,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACvB,gBAAA,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE;YAC1B,CAAC;AACD,YAAA,cAAc,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE;AACnC,SAAA,CAAC;QAEF,IAAI,CAAC,oBAAoB,EAAE;QAC3B,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,mBAAmB,CAAC,SAAS,CAAC,MAAK;YACjE,IAAI,CAAC,cAAc,EAAE;AACvB,QAAA,CAAC,CAAC;;;QAIF,cAAc,CAAC,MAAM,KAAK,CAAC,mBAAmB,EAAE,CAAC;AAEjD,QAAA,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE;IAC1B;;IAGQ,oBAAoB,GAAA;QAC1B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE;AACnB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;QACpB,IAAI,CAAC,KAAK,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC;QACxC,IAAI,CAAC,kBAAkB,EAAE;IAC3B;;IAGQ,cAAc,GAAA;QACpB,IAAI,CAAC,oBAAoB,EAAE;QAC3B,IAAI,CAAC,oBAAoB,EAAE;AAC3B,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;QACtB;IACF;AAEA;;;;AAIG;IACK,kBAAkB,GAAA;QACxB,IAAI,CAAC,oBAAoB,EAAE;AAC3B,QAAA,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,MAAK;AACrC,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI;YAC3B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE;gBACjC,IAAI,CAAC,cAAc,EAAE;YACvB;QACF,CAAC,EAAE,wBAAwB,CAAC;IAC9B;;IAGQ,oBAAoB,GAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE;AACjC,YAAA,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC;AAClC,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI;QAC7B;IACF;;IAGQ,oBAAoB,GAAA;AAC1B,QAAA,IAAI,CAAC,kBAAkB,EAAE,WAAW,EAAE;AACtC,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;IAChC;uGA1KW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,SAAA,EAFjB,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAkClC,QAAQ,gEArCrC,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAKf,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;oBAC1B,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAA,iBAAmB,EAAE,CAAC;AAC1E,iBAAA;oHAiCwC,QAAQ,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;ACzDjD;;AAEG;;;;"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, inject, computed, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
|
|
3
|
+
import { toSignal } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { of, delay } from 'rxjs';
|
|
5
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
6
|
+
import { MLV_PROGRESS_I18N } from '@malva-ui/i18n';
|
|
7
|
+
|
|
8
|
+
class MlvProgress {
|
|
9
|
+
/** Visual shape variant — `'bar'` for a horizontal track, `'circle'` for an SVG ring. */
|
|
10
|
+
shape = input('bar', /* @ts-ignore */
|
|
11
|
+
...(ngDevMode ? [{ debugName: "shape" }] : /* istanbul ignore next */ []));
|
|
12
|
+
/**
|
|
13
|
+
* Current progress value between 0 and 100.
|
|
14
|
+
* Clamped to the `[0, 100]` range internally.
|
|
15
|
+
*/
|
|
16
|
+
value = input.required(/* @ts-ignore */
|
|
17
|
+
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
18
|
+
/** Size variant controlling track height (bar) or diameter (circle). */
|
|
19
|
+
size = input('m', /* @ts-ignore */
|
|
20
|
+
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
21
|
+
/** Semantic tone applied to the fill element. */
|
|
22
|
+
tone = input('default', /* @ts-ignore */
|
|
23
|
+
...(ngDevMode ? [{ debugName: "tone" }] : /* istanbul ignore next */ []));
|
|
24
|
+
/**
|
|
25
|
+
* When `true`, displays the current value as a percentage text.
|
|
26
|
+
* Bar: appears above the track (right-aligned).
|
|
27
|
+
* Circle: appears centred inside the ring.
|
|
28
|
+
*/
|
|
29
|
+
showPercentage = input(false, { ...(ngDevMode ? { debugName: "showPercentage" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
|
|
30
|
+
/** Custom aria-label override. Falls back to the i18n-provided label. */
|
|
31
|
+
ariaLabel = input(undefined, /* @ts-ignore */
|
|
32
|
+
...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
|
|
33
|
+
/** @protected The component's i18n strings signal. */
|
|
34
|
+
_i18n = inject(MLV_PROGRESS_I18N);
|
|
35
|
+
/** @protected Resolved aria-label: explicit input takes precedence over i18n default. */
|
|
36
|
+
_resolvedAriaLabel = computed(() => this.ariaLabel() ?? this._i18n().progress, /* @ts-ignore */
|
|
37
|
+
...(ngDevMode ? [{ debugName: "_resolvedAriaLabel" }] : /* istanbul ignore next */ []));
|
|
38
|
+
/** @protected Progress clamped to [0, 100]. */
|
|
39
|
+
_clampedValue = computed(() => Math.max(0, Math.min(this.value(), 100)), /* @ts-ignore */
|
|
40
|
+
...(ngDevMode ? [{ debugName: "_clampedValue" }] : /* istanbul ignore next */ []));
|
|
41
|
+
/** @protected Formatted percentage text. */
|
|
42
|
+
_percentageText = computed(() => `${Math.round(this._clampedValue())}%`, /* @ts-ignore */
|
|
43
|
+
...(ngDevMode ? [{ debugName: "_percentageText" }] : /* istanbul ignore next */ []));
|
|
44
|
+
/**
|
|
45
|
+
* @protected Delays enabling the CSS fill transition by one tick so the browser
|
|
46
|
+
* has a defined starting state before the transition begins.
|
|
47
|
+
*/
|
|
48
|
+
_progressVisible = toSignal(of(true).pipe(delay(0)));
|
|
49
|
+
/** @protected Computed circle SVG dimensions based on the size input. */
|
|
50
|
+
_circleDimensions = computed(() => {
|
|
51
|
+
const size = this.size();
|
|
52
|
+
// SVG internal coordinate space: 100×100 for all sizes
|
|
53
|
+
const svgSize = 100;
|
|
54
|
+
const strokeWidthMap = {
|
|
55
|
+
s: 10,
|
|
56
|
+
m: 8,
|
|
57
|
+
l: 7,
|
|
58
|
+
};
|
|
59
|
+
const sw = strokeWidthMap[size];
|
|
60
|
+
const center = svgSize / 2;
|
|
61
|
+
const radius = center - sw / 2;
|
|
62
|
+
const circumference = 2 * Math.PI * radius;
|
|
63
|
+
return {
|
|
64
|
+
viewBox: `0 0 ${svgSize} ${svgSize}`,
|
|
65
|
+
center,
|
|
66
|
+
radius,
|
|
67
|
+
circumference,
|
|
68
|
+
strokeWidth: sw,
|
|
69
|
+
};
|
|
70
|
+
}, /* @ts-ignore */
|
|
71
|
+
...(ngDevMode ? [{ debugName: "_circleDimensions" }] : /* istanbul ignore next */ []));
|
|
72
|
+
/** @protected The stroke-dashoffset for the circle fill, derived from clamped value. */
|
|
73
|
+
_strokeDashoffset = computed(() => {
|
|
74
|
+
const { circumference } = this._circleDimensions();
|
|
75
|
+
return circumference * (1 - this._clampedValue() / 100);
|
|
76
|
+
}, /* @ts-ignore */
|
|
77
|
+
...(ngDevMode ? [{ debugName: "_strokeDashoffset" }] : /* istanbul ignore next */ []));
|
|
78
|
+
/** @protected Host CSS class string. */
|
|
79
|
+
_hostClasses = computed(() => {
|
|
80
|
+
const classes = [
|
|
81
|
+
`mlv-progress--${this.shape()}`,
|
|
82
|
+
`mlv-progress--${this.size()}`,
|
|
83
|
+
`mlv-progress--${this.tone()}`,
|
|
84
|
+
];
|
|
85
|
+
return classes.join(' ');
|
|
86
|
+
}, /* @ts-ignore */
|
|
87
|
+
...(ngDevMode ? [{ debugName: "_hostClasses" }] : /* istanbul ignore next */ []));
|
|
88
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvProgress, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
89
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: MlvProgress, isStandalone: true, selector: "mlv-progress", inputs: { shape: { classPropertyName: "shape", publicName: "shape", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, showPercentage: { classPropertyName: "showPercentage", publicName: "showPercentage", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "progressbar" }, properties: { "class": "_hostClasses()", "attr.aria-valuenow": "_clampedValue()", "attr.aria-valuemin": "0", "attr.aria-valuemax": "100", "attr.aria-label": "_resolvedAriaLabel()" }, classAttribute: "mlv-progress" }, ngImport: i0, template: "@if (shape() === 'bar') { @if (showPercentage()) {\n<span class=\"mlv-progress__percentage\" aria-hidden=\"true\"\n >{{ _percentageText() }}</span\n>\n}\n<div class=\"mlv-progress__track\">\n <div\n class=\"mlv-progress__fill\"\n [class.mlv-progress__fill--animated]=\"_progressVisible()\"\n [style.width.%]=\"_clampedValue()\"\n ></div>\n</div>\n<div class=\"mlv-progress__label\" aria-hidden=\"true\">\n <ng-content />\n</div>\n} @else {\n<div class=\"mlv-progress__svg-wrapper\">\n <svg\n aria-hidden=\"true\"\n class=\"mlv-progress__svg\"\n [attr.viewBox]=\"_circleDimensions().viewBox\"\n width=\"100%\"\n height=\"100%\"\n >\n <circle\n class=\"mlv-progress__circle-track\"\n [attr.cx]=\"_circleDimensions().center\"\n [attr.cy]=\"_circleDimensions().center\"\n [attr.r]=\"_circleDimensions().radius\"\n [attr.stroke-width]=\"_circleDimensions().strokeWidth\"\n />\n <circle\n class=\"mlv-progress__circle-fill\"\n [class.mlv-progress__circle-fill--animated]=\"_progressVisible()\"\n [attr.cx]=\"_circleDimensions().center\"\n [attr.cy]=\"_circleDimensions().center\"\n [attr.r]=\"_circleDimensions().radius\"\n [attr.stroke-width]=\"_circleDimensions().strokeWidth\"\n [attr.stroke-dasharray]=\"_circleDimensions().circumference\"\n [attr.stroke-dashoffset]=\"_strokeDashoffset()\"\n />\n </svg>\n @if (showPercentage()) {\n <span class=\"mlv-progress__percentage\" aria-hidden=\"true\"\n >{{ _percentageText() }}</span\n >\n }\n</div>\n<div class=\"mlv-progress__label\" aria-hidden=\"true\">\n <ng-content />\n</div>\n}\n", styles: ["@layer mlv.components{.mlv-progress{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-s)}.mlv-progress *{box-sizing:border-box}.mlv-progress{display:block;--mlv-p-color: var(--mlv-background-accent-1);--mlv-p-bar-height: .375rem;--mlv-p-diameter: 3rem;--mlv-p-font-size: var(--mlv-font-size-s)}.mlv-progress--default{--mlv-p-color: var(--mlv-background-accent-1)}.mlv-progress--success{--mlv-p-color: var(--mlv-palette-success-500)}.mlv-progress--warning{--mlv-p-color: var(--mlv-background-warning-1)}.mlv-progress--danger{--mlv-p-color: var(--mlv-background-danger-1)}.mlv-progress--info{--mlv-p-color: var(--mlv-palette-info-500)}.mlv-progress--s{--mlv-p-bar-height: .25rem;--mlv-p-diameter: 2rem;--mlv-p-font-size: var(--mlv-font-size-xs)}.mlv-progress--m{--mlv-p-bar-height: .375rem;--mlv-p-diameter: 3rem;--mlv-p-font-size: var(--mlv-font-size-s)}.mlv-progress--l{--mlv-p-bar-height: .5rem;--mlv-p-diameter: 4rem;--mlv-p-font-size: var(--mlv-font-size-m)}.mlv-progress--bar{display:flex;flex-direction:column;width:100%}.mlv-progress--bar .mlv-progress__percentage{display:block;align-self:flex-end;font-size:var(--mlv-p-font-size);font-weight:var(--mlv-font-weight-medium);color:var(--mlv-text-secondary);margin-bottom:.25rem;line-height:1}.mlv-progress--bar .mlv-progress__track{position:relative;width:100%;height:var(--mlv-p-bar-height);border-radius:var(--mlv-radius-full);background:var(--mlv-border-subtle);overflow:hidden}.mlv-progress--bar .mlv-progress__fill{position:absolute;inset-block:0;inset-inline-start:0;border-radius:inherit;background:var(--mlv-p-color)}.mlv-progress--bar .mlv-progress__fill--animated{transition:width var(--mlv-duration-normal) var(--mlv-ease-default)}.mlv-progress--bar .mlv-progress__label{display:block;margin-top:.25rem;font-size:var(--mlv-font-size-xs);color:var(--mlv-text-secondary)}.mlv-progress--bar .mlv-progress__label:empty{display:none}.mlv-progress--circle{display:inline-flex;flex-direction:column;align-items:center;gap:.5rem}.mlv-progress--circle .mlv-progress__svg-wrapper{position:relative;inline-size:var(--mlv-p-diameter);block-size:var(--mlv-p-diameter);flex-shrink:0}.mlv-progress--circle .mlv-progress__svg{display:block;overflow:visible;shape-rendering:geometricPrecision}.mlv-progress--circle .mlv-progress__circle-track{fill:transparent;stroke:var(--mlv-border-subtle);stroke-linecap:round}.mlv-progress--circle .mlv-progress__circle-fill{fill:transparent;stroke:var(--mlv-p-color);stroke-linecap:round;transform-box:fill-box;transform-origin:center;transform:rotate(-90deg)}.mlv-progress--circle .mlv-progress__circle-fill--animated{transition:stroke-dashoffset var(--mlv-duration-normal) var(--mlv-ease-default),stroke var(--mlv-duration-normal) var(--mlv-ease-default)}.mlv-progress--circle .mlv-progress__percentage{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:var(--mlv-p-font-size);font-weight:var(--mlv-font-weight-medium);color:var(--mlv-text-secondary);line-height:1;pointer-events:none}.mlv-progress--circle .mlv-progress__label{font-size:var(--mlv-font-size-xs);color:var(--mlv-text-secondary);text-align:center}.mlv-progress--circle .mlv-progress__label:empty{display:none}@media(prefers-reduced-motion:reduce){.mlv-progress,.mlv-progress *,.mlv-progress:before,.mlv-progress:after,[class^=mlv-progress__],[class*=\" mlv-progress__\"],[class^=mlv-progress--],[class*=\" mlv-progress--\"]{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:var(--mlv-duration-instant)!important}}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
90
|
+
}
|
|
91
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvProgress, decorators: [{
|
|
92
|
+
type: Component,
|
|
93
|
+
args: [{ selector: 'mlv-progress', imports: [], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
94
|
+
class: 'mlv-progress',
|
|
95
|
+
'[class]': '_hostClasses()',
|
|
96
|
+
role: 'progressbar',
|
|
97
|
+
'[attr.aria-valuenow]': '_clampedValue()',
|
|
98
|
+
'[attr.aria-valuemin]': '0',
|
|
99
|
+
'[attr.aria-valuemax]': '100',
|
|
100
|
+
'[attr.aria-label]': '_resolvedAriaLabel()',
|
|
101
|
+
}, template: "@if (shape() === 'bar') { @if (showPercentage()) {\n<span class=\"mlv-progress__percentage\" aria-hidden=\"true\"\n >{{ _percentageText() }}</span\n>\n}\n<div class=\"mlv-progress__track\">\n <div\n class=\"mlv-progress__fill\"\n [class.mlv-progress__fill--animated]=\"_progressVisible()\"\n [style.width.%]=\"_clampedValue()\"\n ></div>\n</div>\n<div class=\"mlv-progress__label\" aria-hidden=\"true\">\n <ng-content />\n</div>\n} @else {\n<div class=\"mlv-progress__svg-wrapper\">\n <svg\n aria-hidden=\"true\"\n class=\"mlv-progress__svg\"\n [attr.viewBox]=\"_circleDimensions().viewBox\"\n width=\"100%\"\n height=\"100%\"\n >\n <circle\n class=\"mlv-progress__circle-track\"\n [attr.cx]=\"_circleDimensions().center\"\n [attr.cy]=\"_circleDimensions().center\"\n [attr.r]=\"_circleDimensions().radius\"\n [attr.stroke-width]=\"_circleDimensions().strokeWidth\"\n />\n <circle\n class=\"mlv-progress__circle-fill\"\n [class.mlv-progress__circle-fill--animated]=\"_progressVisible()\"\n [attr.cx]=\"_circleDimensions().center\"\n [attr.cy]=\"_circleDimensions().center\"\n [attr.r]=\"_circleDimensions().radius\"\n [attr.stroke-width]=\"_circleDimensions().strokeWidth\"\n [attr.stroke-dasharray]=\"_circleDimensions().circumference\"\n [attr.stroke-dashoffset]=\"_strokeDashoffset()\"\n />\n </svg>\n @if (showPercentage()) {\n <span class=\"mlv-progress__percentage\" aria-hidden=\"true\"\n >{{ _percentageText() }}</span\n >\n }\n</div>\n<div class=\"mlv-progress__label\" aria-hidden=\"true\">\n <ng-content />\n</div>\n}\n", styles: ["@layer mlv.components{.mlv-progress{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-s)}.mlv-progress *{box-sizing:border-box}.mlv-progress{display:block;--mlv-p-color: var(--mlv-background-accent-1);--mlv-p-bar-height: .375rem;--mlv-p-diameter: 3rem;--mlv-p-font-size: var(--mlv-font-size-s)}.mlv-progress--default{--mlv-p-color: var(--mlv-background-accent-1)}.mlv-progress--success{--mlv-p-color: var(--mlv-palette-success-500)}.mlv-progress--warning{--mlv-p-color: var(--mlv-background-warning-1)}.mlv-progress--danger{--mlv-p-color: var(--mlv-background-danger-1)}.mlv-progress--info{--mlv-p-color: var(--mlv-palette-info-500)}.mlv-progress--s{--mlv-p-bar-height: .25rem;--mlv-p-diameter: 2rem;--mlv-p-font-size: var(--mlv-font-size-xs)}.mlv-progress--m{--mlv-p-bar-height: .375rem;--mlv-p-diameter: 3rem;--mlv-p-font-size: var(--mlv-font-size-s)}.mlv-progress--l{--mlv-p-bar-height: .5rem;--mlv-p-diameter: 4rem;--mlv-p-font-size: var(--mlv-font-size-m)}.mlv-progress--bar{display:flex;flex-direction:column;width:100%}.mlv-progress--bar .mlv-progress__percentage{display:block;align-self:flex-end;font-size:var(--mlv-p-font-size);font-weight:var(--mlv-font-weight-medium);color:var(--mlv-text-secondary);margin-bottom:.25rem;line-height:1}.mlv-progress--bar .mlv-progress__track{position:relative;width:100%;height:var(--mlv-p-bar-height);border-radius:var(--mlv-radius-full);background:var(--mlv-border-subtle);overflow:hidden}.mlv-progress--bar .mlv-progress__fill{position:absolute;inset-block:0;inset-inline-start:0;border-radius:inherit;background:var(--mlv-p-color)}.mlv-progress--bar .mlv-progress__fill--animated{transition:width var(--mlv-duration-normal) var(--mlv-ease-default)}.mlv-progress--bar .mlv-progress__label{display:block;margin-top:.25rem;font-size:var(--mlv-font-size-xs);color:var(--mlv-text-secondary)}.mlv-progress--bar .mlv-progress__label:empty{display:none}.mlv-progress--circle{display:inline-flex;flex-direction:column;align-items:center;gap:.5rem}.mlv-progress--circle .mlv-progress__svg-wrapper{position:relative;inline-size:var(--mlv-p-diameter);block-size:var(--mlv-p-diameter);flex-shrink:0}.mlv-progress--circle .mlv-progress__svg{display:block;overflow:visible;shape-rendering:geometricPrecision}.mlv-progress--circle .mlv-progress__circle-track{fill:transparent;stroke:var(--mlv-border-subtle);stroke-linecap:round}.mlv-progress--circle .mlv-progress__circle-fill{fill:transparent;stroke:var(--mlv-p-color);stroke-linecap:round;transform-box:fill-box;transform-origin:center;transform:rotate(-90deg)}.mlv-progress--circle .mlv-progress__circle-fill--animated{transition:stroke-dashoffset var(--mlv-duration-normal) var(--mlv-ease-default),stroke var(--mlv-duration-normal) var(--mlv-ease-default)}.mlv-progress--circle .mlv-progress__percentage{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:var(--mlv-p-font-size);font-weight:var(--mlv-font-weight-medium);color:var(--mlv-text-secondary);line-height:1;pointer-events:none}.mlv-progress--circle .mlv-progress__label{font-size:var(--mlv-font-size-xs);color:var(--mlv-text-secondary);text-align:center}.mlv-progress--circle .mlv-progress__label:empty{display:none}@media(prefers-reduced-motion:reduce){.mlv-progress,.mlv-progress *,.mlv-progress:before,.mlv-progress:after,[class^=mlv-progress__],[class*=\" mlv-progress__\"],[class^=mlv-progress--],[class*=\" mlv-progress--\"]{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:var(--mlv-duration-instant)!important}}}\n"] }]
|
|
102
|
+
}], propDecorators: { shape: [{ type: i0.Input, args: [{ isSignal: true, alias: "shape", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], showPercentage: [{ type: i0.Input, args: [{ isSignal: true, alias: "showPercentage", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }] } });
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Generated bundle index. Do not edit.
|
|
106
|
+
*/
|
|
107
|
+
|
|
108
|
+
export { MlvProgress };
|
|
109
|
+
//# sourceMappingURL=malva-ui-core-progress.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"malva-ui-core-progress.mjs","sources":["../../../../libs/core/progress/src/lib/progress/progress.ts","../../../../libs/core/progress/src/lib/progress/progress.html","../../../../libs/core/progress/src/malva-ui-core-progress.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { delay, of } from 'rxjs';\nimport {\n type BooleanInput,\n coerceBooleanProperty,\n} from '@angular/cdk/coercion';\nimport { MLV_PROGRESS_I18N } from '@malva-ui/i18n';\nimport type { MlvTone } from '@malva-ui/cdk/utils';\n\n/**\n * Semantic tone for the progress component. Extends the shared {@link MlvTone}\n * vocabulary (`'info' | 'success' | 'warning' | 'danger'`) with a neutral\n * `'default'`.\n */\nexport type MlvProgressTone = MlvTone | 'default';\n\n/** Visual shape of the progress component. */\nexport type MlvProgressShape = 'bar' | 'circle';\n\n/** Size variant of the progress component. */\nexport type MlvProgressSize = 's' | 'm' | 'l';\n\n/** SVG dimensions used for the circle variant. */\ninterface CircleDimensions {\n /** SVG viewBox string. */\n viewBox: string;\n /** Circle center X/Y coordinate. */\n center: number;\n /** Circle radius. */\n radius: number;\n /** Full stroke circumference. */\n circumference: number;\n /** Stroke width in viewBox units. */\n strokeWidth: number;\n}\n\n@Component({\n selector: 'mlv-progress',\n imports: [],\n templateUrl: './progress.html',\n styleUrl: './progress.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'mlv-progress',\n '[class]': '_hostClasses()',\n role: 'progressbar',\n '[attr.aria-valuenow]': '_clampedValue()',\n '[attr.aria-valuemin]': '0',\n '[attr.aria-valuemax]': '100',\n '[attr.aria-label]': '_resolvedAriaLabel()',\n },\n})\nexport class MlvProgress {\n /** Visual shape variant — `'bar'` for a horizontal track, `'circle'` for an SVG ring. */\n readonly shape = input<MlvProgressShape>('bar');\n\n /**\n * Current progress value between 0 and 100.\n * Clamped to the `[0, 100]` range internally.\n */\n readonly value = input.required<number>();\n\n /** Size variant controlling track height (bar) or diameter (circle). */\n readonly size = input<MlvProgressSize>('m');\n\n /** Semantic tone applied to the fill element. */\n readonly tone = input<MlvProgressTone>('default');\n\n /**\n * When `true`, displays the current value as a percentage text.\n * Bar: appears above the track (right-aligned).\n * Circle: appears centred inside the ring.\n */\n readonly showPercentage = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /** Custom aria-label override. Falls back to the i18n-provided label. */\n readonly ariaLabel = input<string | undefined>(undefined);\n\n /** @protected The component's i18n strings signal. */\n protected readonly _i18n = inject(MLV_PROGRESS_I18N);\n\n /** @protected Resolved aria-label: explicit input takes precedence over i18n default. */\n protected readonly _resolvedAriaLabel = computed(\n () => this.ariaLabel() ?? this._i18n().progress,\n );\n\n /** @protected Progress clamped to [0, 100]. */\n protected readonly _clampedValue = computed(() =>\n Math.max(0, Math.min(this.value(), 100)),\n );\n\n /** @protected Formatted percentage text. */\n protected readonly _percentageText = computed(\n () => `${Math.round(this._clampedValue())}%`,\n );\n\n /**\n * @protected Delays enabling the CSS fill transition by one tick so the browser\n * has a defined starting state before the transition begins.\n */\n protected readonly _progressVisible = toSignal(of(true).pipe(delay(0)));\n\n /** @protected Computed circle SVG dimensions based on the size input. */\n protected readonly _circleDimensions = computed<CircleDimensions>(() => {\n const size = this.size();\n // SVG internal coordinate space: 100×100 for all sizes\n const svgSize = 100;\n const strokeWidthMap: Record<MlvProgressSize, number> = {\n s: 10,\n m: 8,\n l: 7,\n };\n const sw = strokeWidthMap[size];\n const center = svgSize / 2;\n const radius = center - sw / 2;\n const circumference = 2 * Math.PI * radius;\n return {\n viewBox: `0 0 ${svgSize} ${svgSize}`,\n center,\n radius,\n circumference,\n strokeWidth: sw,\n };\n });\n\n /** @protected The stroke-dashoffset for the circle fill, derived from clamped value. */\n protected readonly _strokeDashoffset = computed(() => {\n const { circumference } = this._circleDimensions();\n return circumference * (1 - this._clampedValue() / 100);\n });\n\n /** @protected Host CSS class string. */\n protected readonly _hostClasses = computed(() => {\n const classes = [\n `mlv-progress--${this.shape()}`,\n `mlv-progress--${this.size()}`,\n `mlv-progress--${this.tone()}`,\n ];\n return classes.join(' ');\n });\n}\n","@if (shape() === 'bar') { @if (showPercentage()) {\n<span class=\"mlv-progress__percentage\" aria-hidden=\"true\"\n >{{ _percentageText() }}</span\n>\n}\n<div class=\"mlv-progress__track\">\n <div\n class=\"mlv-progress__fill\"\n [class.mlv-progress__fill--animated]=\"_progressVisible()\"\n [style.width.%]=\"_clampedValue()\"\n ></div>\n</div>\n<div class=\"mlv-progress__label\" aria-hidden=\"true\">\n <ng-content />\n</div>\n} @else {\n<div class=\"mlv-progress__svg-wrapper\">\n <svg\n aria-hidden=\"true\"\n class=\"mlv-progress__svg\"\n [attr.viewBox]=\"_circleDimensions().viewBox\"\n width=\"100%\"\n height=\"100%\"\n >\n <circle\n class=\"mlv-progress__circle-track\"\n [attr.cx]=\"_circleDimensions().center\"\n [attr.cy]=\"_circleDimensions().center\"\n [attr.r]=\"_circleDimensions().radius\"\n [attr.stroke-width]=\"_circleDimensions().strokeWidth\"\n />\n <circle\n class=\"mlv-progress__circle-fill\"\n [class.mlv-progress__circle-fill--animated]=\"_progressVisible()\"\n [attr.cx]=\"_circleDimensions().center\"\n [attr.cy]=\"_circleDimensions().center\"\n [attr.r]=\"_circleDimensions().radius\"\n [attr.stroke-width]=\"_circleDimensions().strokeWidth\"\n [attr.stroke-dasharray]=\"_circleDimensions().circumference\"\n [attr.stroke-dashoffset]=\"_strokeDashoffset()\"\n />\n </svg>\n @if (showPercentage()) {\n <span class=\"mlv-progress__percentage\" aria-hidden=\"true\"\n >{{ _percentageText() }}</span\n >\n }\n</div>\n<div class=\"mlv-progress__label\" aria-hidden=\"true\">\n <ng-content />\n</div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|