@malva-ui/core 0.1.12
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 +92 -0
- package/README.md +61 -0
- package/accordion/index.d.ts +3 -0
- package/accordion/lib/accordion/accordion.d.ts +47 -0
- package/accordion/lib/accordion-item/accordion-header.d.ts +22 -0
- package/accordion/lib/accordion-item/accordion-item.d.ts +49 -0
- package/accordion/malva-ui-core-accordion.d.ts +5 -0
- package/action-bar/index.d.ts +4 -0
- package/action-bar/lib/action-bar/action-bar.d.ts +59 -0
- package/action-bar/lib/action-bar/components/action-bar-actions.d.ts +9 -0
- package/action-bar/lib/action-bar/components/action-bar-logo.d.ts +5 -0
- package/action-bar/lib/action-bar/components/action-bar-spacer.d.ts +5 -0
- package/action-bar/malva-ui-core-action-bar.d.ts +5 -0
- package/alert/index.d.ts +2 -0
- package/alert/lib/alert/alert.d.ts +84 -0
- package/alert/lib/alert/alert.directives.d.ts +44 -0
- package/alert/malva-ui-core-alert.d.ts +5 -0
- package/autocomplete/index.d.ts +1 -0
- package/autocomplete/lib/autocomplete/autocomplete.d.ts +296 -0
- package/autocomplete/malva-ui-core-autocomplete.d.ts +5 -0
- package/avatar/index.d.ts +2 -0
- package/avatar/lib/avatar/avatar.d.ts +125 -0
- package/avatar/lib/color-from-text.pipe.d.ts +21 -0
- package/avatar/malva-ui-core-avatar.d.ts +5 -0
- package/avatar-group/index.d.ts +1 -0
- package/avatar-group/lib/avatar-group/avatar-group.d.ts +115 -0
- package/avatar-group/malva-ui-core-avatar-group.d.ts +5 -0
- package/badge/index.d.ts +2 -0
- package/badge/lib/badge/badge.d.ts +59 -0
- package/badge/lib/badge-icon.d.ts +35 -0
- package/badge/malva-ui-core-badge.d.ts +5 -0
- package/bottom-nav/index.d.ts +1 -0
- package/bottom-nav/lib/bottom-nav/bottom-nav.d.ts +99 -0
- package/bottom-nav/malva-ui-core-bottom-nav.d.ts +5 -0
- package/breadcrumb/index.d.ts +5 -0
- package/breadcrumb/lib/breadcrumb/breadcrumb-item-host.d.ts +32 -0
- package/breadcrumb/lib/breadcrumb/breadcrumb-item.d.ts +41 -0
- package/breadcrumb/lib/breadcrumb/breadcrumb-separator.d.ts +31 -0
- package/breadcrumb/lib/breadcrumb/breadcrumb.d.ts +151 -0
- package/breadcrumb/lib/breadcrumb/breadcrumb.types.d.ts +26 -0
- package/breadcrumb/malva-ui-core-breadcrumb.d.ts +5 -0
- package/button/index.d.ts +7 -0
- package/button/lib/button/button.d.ts +61 -0
- package/button/lib/button-close/button-close.d.ts +24 -0
- package/button/lib/button-group/button-group.d.ts +21 -0
- package/button/lib/button-split/button-split.d.ts +21 -0
- package/button/lib/button-toggle/button-toggle.d.ts +33 -0
- package/button/lib/button-variant.token.d.ts +13 -0
- package/button/lib/button.directives.d.ts +14 -0
- package/button/lib/button.types.d.ts +8 -0
- package/button/malva-ui-core-button.d.ts +5 -0
- package/calendar/index.d.ts +3 -0
- package/calendar/lib/calendar/calendar.d.ts +182 -0
- package/calendar/lib/date-provider/date-adapter.d.ts +92 -0
- package/calendar/lib/date-provider/native-date-adapter.d.ts +60 -0
- package/calendar/malva-ui-core-calendar.d.ts +5 -0
- package/card/index.d.ts +5 -0
- package/card/lib/card/card.d.ts +43 -0
- package/card/lib/card-actions-def.d.ts +10 -0
- package/card/lib/card-footer-def.d.ts +13 -0
- package/card/lib/card-header-def.d.ts +10 -0
- package/card/lib/card-subheader-def.d.ts +16 -0
- package/card/malva-ui-core-card.d.ts +5 -0
- package/chat/index.d.ts +9 -0
- package/chat/lib/chat/chat.d.ts +133 -0
- package/chat/lib/chat-audio/chat-audio.d.ts +51 -0
- package/chat/lib/chat-audio/chat-audio.service.d.ts +21 -0
- package/chat/lib/chat-date/chat-date.d.ts +16 -0
- package/chat/lib/chat-format.d.ts +5 -0
- package/chat/lib/chat-media-grid/chat-media-grid.d.ts +32 -0
- package/chat/lib/chat-message/chat-message.d.ts +45 -0
- package/chat/lib/chat-render-list.d.ts +16 -0
- package/chat/lib/chat-tokens.d.ts +25 -0
- package/chat/lib/chat-typing/chat-typing.d.ts +16 -0
- package/chat/lib/chat.types.d.ts +80 -0
- package/chat/lib/defs/chat-author-def.d.ts +30 -0
- package/chat/lib/defs/chat-date-def.d.ts +22 -0
- package/chat/lib/defs/chat-message-def.d.ts +23 -0
- package/chat/malva-ui-core-chat.d.ts +5 -0
- package/checkbox/index.d.ts +3 -0
- package/checkbox/lib/checkbox/checkbox.d.ts +129 -0
- package/checkbox/lib/checkbox-group/checkbox-group.d.ts +24 -0
- package/checkbox/lib/checkbox-group-token.d.ts +6 -0
- package/checkbox/malva-ui-core-checkbox.d.ts +5 -0
- package/chip/index.d.ts +2 -0
- package/chip/lib/chip/chip.d.ts +107 -0
- package/chip/lib/chip/chip.directives.d.ts +18 -0
- package/chip/malva-ui-core-chip.d.ts +5 -0
- package/color-picker/index.d.ts +3 -0
- package/color-picker/lib/color-picker/color-picker.d.ts +188 -0
- package/color-picker/lib/color-picker-popup/color-picker-popup.d.ts +151 -0
- package/color-picker/lib/color-utils/color-utils.d.ts +102 -0
- package/color-picker/malva-ui-core-color-picker.d.ts +5 -0
- package/combobox/index.d.ts +2 -0
- package/combobox/lib/combobox/combobox.d.ts +400 -0
- package/combobox/lib/combobox-template.directives.d.ts +10 -0
- package/combobox/malva-ui-core-combobox.d.ts +5 -0
- package/copy-to-clipboard/index.d.ts +1 -0
- package/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.d.ts +130 -0
- package/copy-to-clipboard/malva-ui-core-copy-to-clipboard.d.ts +5 -0
- package/data-table/index.d.ts +8 -0
- package/data-table/lib/data-source.d.ts +5 -0
- package/data-table/lib/data-table/data-table-layout.d.ts +31 -0
- package/data-table/lib/data-table/data-table.d.ts +699 -0
- package/data-table/lib/data-table/services/data-table-column-visibility.service.d.ts +19 -0
- package/data-table/lib/data-table/services/data-table-editing.service.d.ts +37 -0
- package/data-table/lib/data-table/services/data-table-pinning.service.d.ts +37 -0
- package/data-table/lib/data-table-cell.d.ts +44 -0
- package/data-table/lib/data-table-edit-cell.d.ts +44 -0
- package/data-table/lib/data-table-error.d.ts +37 -0
- package/data-table/lib/data-table-footer.d.ts +26 -0
- package/data-table/lib/data-table-no-data.d.ts +19 -0
- package/data-table/lib/filter-dropdown/filter-dropdown.d.ts +54 -0
- package/data-table/lib/types.d.ts +134 -0
- package/data-table/malva-ui-core-data-table.d.ts +5 -0
- package/date-range-picker/index.d.ts +1 -0
- package/date-range-picker/lib/date-range-picker/date-range-picker.d.ts +145 -0
- package/date-range-picker/malva-ui-core-date-range-picker.d.ts +5 -0
- package/day-picker/index.d.ts +1 -0
- package/day-picker/lib/day-picker/day-picker.d.ts +51 -0
- package/day-picker/malva-ui-core-day-picker.d.ts +5 -0
- package/dialog/index.d.ts +11 -0
- package/dialog/lib/confirm-dialog-options.d.ts +41 -0
- package/dialog/lib/confirm-dialog.d.ts +52 -0
- package/dialog/lib/dialog/dialog.d.ts +22 -0
- package/dialog/lib/dialog-body.d.ts +9 -0
- package/dialog/lib/dialog-close.d.ts +27 -0
- package/dialog/lib/dialog-config.d.ts +112 -0
- package/dialog/lib/dialog-container.d.ts +40 -0
- package/dialog/lib/dialog-footer.d.ts +13 -0
- package/dialog/lib/dialog-header.d.ts +74 -0
- package/dialog/lib/dialog-ref.d.ts +95 -0
- package/dialog/lib/dialog-template.d.ts +65 -0
- package/dialog/lib/dialog-text-content.d.ts +24 -0
- package/dialog/lib/dialog.service.d.ts +63 -0
- package/dialog/lib/generate-routable-dialog-route.d.ts +49 -0
- package/dialog/lib/inject-dialog-ref.d.ts +8 -0
- package/dialog/lib/routable-dialog.d.ts +30 -0
- package/dialog/malva-ui-core-dialog.d.ts +5 -0
- package/divider/index.d.ts +1 -0
- package/divider/lib/divider/divider.d.ts +64 -0
- package/divider/malva-ui-core-divider.d.ts +5 -0
- package/docs/ai/accordion.md +102 -0
- package/docs/ai/action-bar.md +198 -0
- package/docs/ai/alert.md +190 -0
- package/docs/ai/autocomplete.md +111 -0
- package/docs/ai/avatar-group.md +184 -0
- package/docs/ai/avatar.md +150 -0
- package/docs/ai/badge.md +163 -0
- package/docs/ai/bottom-nav.md +267 -0
- package/docs/ai/breadcrumb.md +174 -0
- package/docs/ai/button.md +306 -0
- package/docs/ai/calendar.md +237 -0
- package/docs/ai/card.md +196 -0
- package/docs/ai/chat.md +145 -0
- package/docs/ai/checkbox.md +193 -0
- package/docs/ai/chip.md +139 -0
- package/docs/ai/color-picker.md +270 -0
- package/docs/ai/combobox.md +325 -0
- package/docs/ai/copy-to-clipboard.md +159 -0
- package/docs/ai/core.md +216 -0
- package/docs/ai/data-table.md +917 -0
- package/docs/ai/date-range-picker.md +101 -0
- package/docs/ai/day-picker.md +135 -0
- package/docs/ai/dialog.md +852 -0
- package/docs/ai/divider.md +159 -0
- package/docs/ai/drawer.md +607 -0
- package/docs/ai/dropdown.md +343 -0
- package/docs/ai/empty-state.md +167 -0
- package/docs/ai/expand.md +234 -0
- package/docs/ai/file-upload.md +402 -0
- package/docs/ai/filter.md +43 -0
- package/docs/ai/form-utils.md +319 -0
- package/docs/ai/form.md +129 -0
- package/docs/ai/input.md +175 -0
- package/docs/ai/kbd.md +70 -0
- package/docs/ai/layout.md +192 -0
- package/docs/ai/link.md +179 -0
- package/docs/ai/list.md +249 -0
- package/docs/ai/loader.md +122 -0
- package/docs/ai/menu.md +335 -0
- package/docs/ai/notification.md +281 -0
- package/docs/ai/number-input.md +123 -0
- package/docs/ai/page.md +422 -0
- package/docs/ai/pagination.md +237 -0
- package/docs/ai/pin-input.md +173 -0
- package/docs/ai/popup.md +347 -0
- package/docs/ai/progress.md +84 -0
- package/docs/ai/radio.md +201 -0
- package/docs/ai/rating.md +76 -0
- package/docs/ai/scrollbar.md +170 -0
- package/docs/ai/search-field.md +85 -0
- package/docs/ai/segmented.md +331 -0
- package/docs/ai/select.md +512 -0
- package/docs/ai/sidebar.md +992 -0
- package/docs/ai/skeleton.md +187 -0
- package/docs/ai/slider.md +180 -0
- package/docs/ai/split-pane.md +235 -0
- package/docs/ai/status-indicator.md +95 -0
- package/docs/ai/stepper.md +385 -0
- package/docs/ai/switch.md +216 -0
- package/docs/ai/tabs.md +564 -0
- package/docs/ai/textarea.md +249 -0
- package/docs/ai/tile.md +150 -0
- package/docs/ai/time-picker.md +214 -0
- package/docs/ai/timeline.md +320 -0
- package/docs/ai/title.md +105 -0
- package/docs/ai/toast.md +484 -0
- package/docs/ai/tokenizer.md +236 -0
- package/docs/ai/toolbar.md +155 -0
- package/docs/ai/tooltip.md +154 -0
- package/docs/ai/tree.md +177 -0
- package/drawer/index.d.ts +11 -0
- package/drawer/lib/drawer/drawer.d.ts +106 -0
- package/drawer/lib/drawer-body.d.ts +8 -0
- package/drawer/lib/drawer-content.d.ts +6 -0
- package/drawer/lib/drawer-footer.d.ts +5 -0
- package/drawer/lib/drawer-header.d.ts +5 -0
- package/drawer/lib/drawer-ref.d.ts +29 -0
- package/drawer/lib/drawer-resize.d.ts +65 -0
- package/drawer/lib/drawer-section/drawer-section.d.ts +15 -0
- package/drawer/lib/drawer-sections/drawer-sections.d.ts +22 -0
- package/drawer/lib/drawer-sections.service.d.ts +42 -0
- package/drawer/lib/drawer.service.d.ts +66 -0
- package/drawer/lib/generate-routable-drawer-route.d.ts +42 -0
- package/drawer/lib/routable-drawer.d.ts +30 -0
- package/drawer/malva-ui-core-drawer.d.ts +5 -0
- package/dropdown/index.d.ts +9 -0
- package/dropdown/lib/active-descendant.d.ts +64 -0
- package/dropdown/lib/dropdown-panel/dropdown-panel.d.ts +178 -0
- package/dropdown/lib/highlight-match.pipe.d.ts +27 -0
- package/dropdown/lib/option-matcher.d.ts +87 -0
- package/dropdown/lib/options-adapter.d.ts +142 -0
- package/dropdown/lib/options-result.d.ts +6 -0
- package/dropdown/lib/reconciliation.d.ts +19 -0
- package/dropdown/lib/select-data-source.d.ts +18 -0
- package/dropdown/lib/select-option.d.ts +37 -0
- package/dropdown/malva-ui-core-dropdown.d.ts +5 -0
- package/empty-state/index.d.ts +1 -0
- package/empty-state/lib/empty-state/empty-state.d.ts +34 -0
- package/empty-state/malva-ui-core-empty-state.d.ts +5 -0
- package/esm2022/accordion/index.js +4 -0
- package/esm2022/accordion/index.js.map +1 -0
- package/esm2022/accordion/lib/accordion/accordion.js +65 -0
- package/esm2022/accordion/lib/accordion/accordion.js.map +1 -0
- package/esm2022/accordion/lib/accordion-item/accordion-header.js +30 -0
- package/esm2022/accordion/lib/accordion-item/accordion-header.js.map +1 -0
- package/esm2022/accordion/lib/accordion-item/accordion-item.js +70 -0
- package/esm2022/accordion/lib/accordion-item/accordion-item.js.map +1 -0
- package/esm2022/accordion/malva-ui-core-accordion.js +5 -0
- package/esm2022/accordion/malva-ui-core-accordion.js.map +1 -0
- package/esm2022/action-bar/index.js +5 -0
- package/esm2022/action-bar/index.js.map +1 -0
- package/esm2022/action-bar/lib/action-bar/action-bar.js +64 -0
- package/esm2022/action-bar/lib/action-bar/action-bar.js.map +1 -0
- package/esm2022/action-bar/lib/action-bar/components/action-bar-actions.js +20 -0
- package/esm2022/action-bar/lib/action-bar/components/action-bar-actions.js.map +1 -0
- package/esm2022/action-bar/lib/action-bar/components/action-bar-logo.js +13 -0
- package/esm2022/action-bar/lib/action-bar/components/action-bar-logo.js.map +1 -0
- package/esm2022/action-bar/lib/action-bar/components/action-bar-spacer.js +13 -0
- package/esm2022/action-bar/lib/action-bar/components/action-bar-spacer.js.map +1 -0
- package/esm2022/action-bar/malva-ui-core-action-bar.js +5 -0
- package/esm2022/action-bar/malva-ui-core-action-bar.js.map +1 -0
- package/esm2022/alert/index.js +3 -0
- package/esm2022/alert/index.js.map +1 -0
- package/esm2022/alert/lib/alert/alert.directives.js +53 -0
- package/esm2022/alert/lib/alert/alert.directives.js.map +1 -0
- package/esm2022/alert/lib/alert/alert.js +118 -0
- package/esm2022/alert/lib/alert/alert.js.map +1 -0
- package/esm2022/alert/malva-ui-core-alert.js +5 -0
- package/esm2022/alert/malva-ui-core-alert.js.map +1 -0
- package/esm2022/autocomplete/index.js +2 -0
- package/esm2022/autocomplete/index.js.map +1 -0
- package/esm2022/autocomplete/lib/autocomplete/autocomplete.js +765 -0
- package/esm2022/autocomplete/lib/autocomplete/autocomplete.js.map +1 -0
- package/esm2022/autocomplete/malva-ui-core-autocomplete.js +5 -0
- package/esm2022/autocomplete/malva-ui-core-autocomplete.js.map +1 -0
- package/esm2022/avatar/index.js +3 -0
- package/esm2022/avatar/index.js.map +1 -0
- package/esm2022/avatar/lib/avatar/avatar.js +192 -0
- package/esm2022/avatar/lib/avatar/avatar.js.map +1 -0
- package/esm2022/avatar/lib/color-from-text.pipe.js +39 -0
- package/esm2022/avatar/lib/color-from-text.pipe.js.map +1 -0
- package/esm2022/avatar/malva-ui-core-avatar.js +5 -0
- package/esm2022/avatar/malva-ui-core-avatar.js.map +1 -0
- package/esm2022/avatar-group/index.js +2 -0
- package/esm2022/avatar-group/index.js.map +1 -0
- package/esm2022/avatar-group/lib/avatar-group/avatar-group.js +217 -0
- package/esm2022/avatar-group/lib/avatar-group/avatar-group.js.map +1 -0
- package/esm2022/avatar-group/malva-ui-core-avatar-group.js +5 -0
- package/esm2022/avatar-group/malva-ui-core-avatar-group.js.map +1 -0
- package/esm2022/badge/index.js +3 -0
- package/esm2022/badge/index.js.map +1 -0
- package/esm2022/badge/lib/badge/badge.js +71 -0
- package/esm2022/badge/lib/badge/badge.js.map +1 -0
- package/esm2022/badge/lib/badge-icon.js +47 -0
- package/esm2022/badge/lib/badge-icon.js.map +1 -0
- package/esm2022/badge/malva-ui-core-badge.js +5 -0
- package/esm2022/badge/malva-ui-core-badge.js.map +1 -0
- package/esm2022/bottom-nav/index.js +2 -0
- package/esm2022/bottom-nav/index.js.map +1 -0
- package/esm2022/bottom-nav/lib/bottom-nav/bottom-nav.js +155 -0
- package/esm2022/bottom-nav/lib/bottom-nav/bottom-nav.js.map +1 -0
- package/esm2022/bottom-nav/malva-ui-core-bottom-nav.js +5 -0
- package/esm2022/bottom-nav/malva-ui-core-bottom-nav.js.map +1 -0
- package/esm2022/breadcrumb/index.js +6 -0
- package/esm2022/breadcrumb/index.js.map +1 -0
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item-host.js +43 -0
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item-host.js.map +1 -0
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item.js +110 -0
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item.js.map +1 -0
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-separator.js +38 -0
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-separator.js.map +1 -0
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.js +284 -0
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.js.map +1 -0
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.types.js +1 -0
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.types.js.map +1 -0
- package/esm2022/breadcrumb/malva-ui-core-breadcrumb.js +5 -0
- package/esm2022/breadcrumb/malva-ui-core-breadcrumb.js.map +1 -0
- package/esm2022/button/index.js +8 -0
- package/esm2022/button/index.js.map +1 -0
- package/esm2022/button/lib/button/button.js +137 -0
- package/esm2022/button/lib/button/button.js.map +1 -0
- package/esm2022/button/lib/button-close/button-close.js +52 -0
- package/esm2022/button/lib/button-close/button-close.js.map +1 -0
- package/esm2022/button/lib/button-group/button-group.js +44 -0
- package/esm2022/button/lib/button-group/button-group.js.map +1 -0
- package/esm2022/button/lib/button-split/button-split.js +44 -0
- package/esm2022/button/lib/button-split/button-split.js.map +1 -0
- package/esm2022/button/lib/button-toggle/button-toggle.js +94 -0
- package/esm2022/button/lib/button-toggle/button-toggle.js.map +1 -0
- package/esm2022/button/lib/button-variant.token.js +4 -0
- package/esm2022/button/lib/button-variant.token.js.map +1 -0
- package/esm2022/button/lib/button.directives.js +37 -0
- package/esm2022/button/lib/button.directives.js.map +1 -0
- package/esm2022/button/lib/button.types.js +1 -0
- package/esm2022/button/lib/button.types.js.map +1 -0
- package/esm2022/button/malva-ui-core-button.js +5 -0
- package/esm2022/button/malva-ui-core-button.js.map +1 -0
- package/esm2022/calendar/index.js +4 -0
- package/esm2022/calendar/index.js.map +1 -0
- package/esm2022/calendar/lib/calendar/calendar.js +672 -0
- package/esm2022/calendar/lib/calendar/calendar.js.map +1 -0
- package/esm2022/calendar/lib/date-provider/date-adapter.js +111 -0
- package/esm2022/calendar/lib/date-provider/date-adapter.js.map +1 -0
- package/esm2022/calendar/lib/date-provider/native-date-adapter.js +151 -0
- package/esm2022/calendar/lib/date-provider/native-date-adapter.js.map +1 -0
- package/esm2022/calendar/malva-ui-core-calendar.js +5 -0
- package/esm2022/calendar/malva-ui-core-calendar.js.map +1 -0
- package/esm2022/card/index.js +6 -0
- package/esm2022/card/index.js.map +1 -0
- package/esm2022/card/lib/card/card.js +54 -0
- package/esm2022/card/lib/card/card.js.map +1 -0
- package/esm2022/card/lib/card-actions-def.js +27 -0
- package/esm2022/card/lib/card-actions-def.js.map +1 -0
- package/esm2022/card/lib/card-footer-def.js +32 -0
- package/esm2022/card/lib/card-footer-def.js.map +1 -0
- package/esm2022/card/lib/card-header-def.js +27 -0
- package/esm2022/card/lib/card-header-def.js.map +1 -0
- package/esm2022/card/lib/card-subheader-def.js +33 -0
- package/esm2022/card/lib/card-subheader-def.js.map +1 -0
- package/esm2022/card/malva-ui-core-card.js +5 -0
- package/esm2022/card/malva-ui-core-card.js.map +1 -0
- package/esm2022/chat/index.js +10 -0
- package/esm2022/chat/index.js.map +1 -0
- package/esm2022/chat/lib/chat/chat.js +326 -0
- package/esm2022/chat/lib/chat/chat.js.map +1 -0
- package/esm2022/chat/lib/chat-audio/chat-audio.js +110 -0
- package/esm2022/chat/lib/chat-audio/chat-audio.js.map +1 -0
- package/esm2022/chat/lib/chat-audio/chat-audio.service.js +28 -0
- package/esm2022/chat/lib/chat-audio/chat-audio.service.js.map +1 -0
- package/esm2022/chat/lib/chat-date/chat-date.js +46 -0
- package/esm2022/chat/lib/chat-date/chat-date.js.map +1 -0
- package/esm2022/chat/lib/chat-format.js +11 -0
- package/esm2022/chat/lib/chat-format.js.map +1 -0
- package/esm2022/chat/lib/chat-media-grid/chat-media-grid.js +53 -0
- package/esm2022/chat/lib/chat-media-grid/chat-media-grid.js.map +1 -0
- package/esm2022/chat/lib/chat-message/chat-message.js +86 -0
- package/esm2022/chat/lib/chat-message/chat-message.js.map +1 -0
- package/esm2022/chat/lib/chat-render-list.js +55 -0
- package/esm2022/chat/lib/chat-render-list.js.map +1 -0
- package/esm2022/chat/lib/chat-tokens.js +9 -0
- package/esm2022/chat/lib/chat-tokens.js.map +1 -0
- package/esm2022/chat/lib/chat-typing/chat-typing.js +50 -0
- package/esm2022/chat/lib/chat-typing/chat-typing.js.map +1 -0
- package/esm2022/chat/lib/chat.types.js +1 -0
- package/esm2022/chat/lib/chat.types.js.map +1 -0
- package/esm2022/chat/lib/defs/chat-author-def.js +27 -0
- package/esm2022/chat/lib/defs/chat-author-def.js.map +1 -0
- package/esm2022/chat/lib/defs/chat-date-def.js +24 -0
- package/esm2022/chat/lib/defs/chat-date-def.js.map +1 -0
- package/esm2022/chat/lib/defs/chat-message-def.js +30 -0
- package/esm2022/chat/lib/defs/chat-message-def.js.map +1 -0
- package/esm2022/chat/malva-ui-core-chat.js +5 -0
- package/esm2022/chat/malva-ui-core-chat.js.map +1 -0
- package/esm2022/checkbox/index.js +4 -0
- package/esm2022/checkbox/index.js.map +1 -0
- package/esm2022/checkbox/lib/checkbox/checkbox.js +201 -0
- package/esm2022/checkbox/lib/checkbox/checkbox.js.map +1 -0
- package/esm2022/checkbox/lib/checkbox-group/checkbox-group.js +68 -0
- package/esm2022/checkbox/lib/checkbox-group/checkbox-group.js.map +1 -0
- package/esm2022/checkbox/lib/checkbox-group-token.js +3 -0
- package/esm2022/checkbox/lib/checkbox-group-token.js.map +1 -0
- package/esm2022/checkbox/malva-ui-core-checkbox.js +5 -0
- package/esm2022/checkbox/malva-ui-core-checkbox.js.map +1 -0
- package/esm2022/chip/index.js +3 -0
- package/esm2022/chip/index.js.map +1 -0
- package/esm2022/chip/lib/chip/chip.directives.js +32 -0
- package/esm2022/chip/lib/chip/chip.directives.js.map +1 -0
- package/esm2022/chip/lib/chip/chip.js +140 -0
- package/esm2022/chip/lib/chip/chip.js.map +1 -0
- package/esm2022/chip/malva-ui-core-chip.js +5 -0
- package/esm2022/chip/malva-ui-core-chip.js.map +1 -0
- package/esm2022/color-picker/index.js +4 -0
- package/esm2022/color-picker/index.js.map +1 -0
- package/esm2022/color-picker/lib/color-picker/color-picker.js +530 -0
- package/esm2022/color-picker/lib/color-picker/color-picker.js.map +1 -0
- package/esm2022/color-picker/lib/color-picker-popup/color-picker-popup.js +419 -0
- package/esm2022/color-picker/lib/color-picker-popup/color-picker-popup.js.map +1 -0
- package/esm2022/color-picker/lib/color-utils/color-utils.js +256 -0
- package/esm2022/color-picker/lib/color-utils/color-utils.js.map +1 -0
- package/esm2022/color-picker/malva-ui-core-color-picker.js +5 -0
- package/esm2022/color-picker/malva-ui-core-color-picker.js.map +1 -0
- package/esm2022/combobox/index.js +3 -0
- package/esm2022/combobox/index.js.map +1 -0
- package/esm2022/combobox/lib/combobox/combobox.js +911 -0
- package/esm2022/combobox/lib/combobox/combobox.js.map +1 -0
- package/esm2022/combobox/lib/combobox-template.directives.js +24 -0
- package/esm2022/combobox/lib/combobox-template.directives.js.map +1 -0
- package/esm2022/combobox/malva-ui-core-combobox.js +5 -0
- package/esm2022/combobox/malva-ui-core-combobox.js.map +1 -0
- package/esm2022/copy-to-clipboard/index.js +2 -0
- package/esm2022/copy-to-clipboard/index.js.map +1 -0
- package/esm2022/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.js +201 -0
- package/esm2022/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.js.map +1 -0
- package/esm2022/copy-to-clipboard/malva-ui-core-copy-to-clipboard.js +5 -0
- package/esm2022/copy-to-clipboard/malva-ui-core-copy-to-clipboard.js.map +1 -0
- package/esm2022/data-table/index.js +9 -0
- package/esm2022/data-table/index.js.map +1 -0
- package/esm2022/data-table/lib/data-source.js +6 -0
- package/esm2022/data-table/lib/data-source.js.map +1 -0
- package/esm2022/data-table/lib/data-table/data-table-layout.js +84 -0
- package/esm2022/data-table/lib/data-table/data-table-layout.js.map +1 -0
- package/esm2022/data-table/lib/data-table/data-table.js +1846 -0
- package/esm2022/data-table/lib/data-table/data-table.js.map +1 -0
- package/esm2022/data-table/lib/data-table/services/data-table-column-visibility.service.js +37 -0
- package/esm2022/data-table/lib/data-table/services/data-table-column-visibility.service.js.map +1 -0
- package/esm2022/data-table/lib/data-table/services/data-table-editing.service.js +63 -0
- package/esm2022/data-table/lib/data-table/services/data-table-editing.service.js.map +1 -0
- package/esm2022/data-table/lib/data-table/services/data-table-pinning.service.js +68 -0
- package/esm2022/data-table/lib/data-table/services/data-table-pinning.service.js.map +1 -0
- package/esm2022/data-table/lib/data-table-cell.js +46 -0
- package/esm2022/data-table/lib/data-table-cell.js.map +1 -0
- package/esm2022/data-table/lib/data-table-edit-cell.js +46 -0
- package/esm2022/data-table/lib/data-table-edit-cell.js.map +1 -0
- package/esm2022/data-table/lib/data-table-error.js +37 -0
- package/esm2022/data-table/lib/data-table-error.js.map +1 -0
- package/esm2022/data-table/lib/data-table-footer.js +33 -0
- package/esm2022/data-table/lib/data-table-footer.js.map +1 -0
- package/esm2022/data-table/lib/data-table-no-data.js +26 -0
- package/esm2022/data-table/lib/data-table-no-data.js.map +1 -0
- package/esm2022/data-table/lib/filter-dropdown/filter-dropdown.js +224 -0
- package/esm2022/data-table/lib/filter-dropdown/filter-dropdown.js.map +1 -0
- package/esm2022/data-table/lib/types.js +1 -0
- package/esm2022/data-table/lib/types.js.map +1 -0
- package/esm2022/data-table/malva-ui-core-data-table.js +5 -0
- package/esm2022/data-table/malva-ui-core-data-table.js.map +1 -0
- package/esm2022/date-range-picker/index.js +2 -0
- package/esm2022/date-range-picker/index.js.map +1 -0
- package/esm2022/date-range-picker/lib/date-range-picker/date-range-picker.js +269 -0
- package/esm2022/date-range-picker/lib/date-range-picker/date-range-picker.js.map +1 -0
- package/esm2022/date-range-picker/malva-ui-core-date-range-picker.js +5 -0
- package/esm2022/date-range-picker/malva-ui-core-date-range-picker.js.map +1 -0
- package/esm2022/day-picker/index.js +2 -0
- package/esm2022/day-picker/index.js.map +1 -0
- package/esm2022/day-picker/lib/day-picker/day-picker.js +124 -0
- package/esm2022/day-picker/lib/day-picker/day-picker.js.map +1 -0
- package/esm2022/day-picker/malva-ui-core-day-picker.js +5 -0
- package/esm2022/day-picker/malva-ui-core-day-picker.js.map +1 -0
- package/esm2022/dialog/index.js +12 -0
- package/esm2022/dialog/index.js.map +1 -0
- package/esm2022/dialog/lib/confirm-dialog-options.js +1 -0
- package/esm2022/dialog/lib/confirm-dialog-options.js.map +1 -0
- package/esm2022/dialog/lib/confirm-dialog.js +155 -0
- package/esm2022/dialog/lib/confirm-dialog.js.map +1 -0
- package/esm2022/dialog/lib/dialog/dialog.js +40 -0
- package/esm2022/dialog/lib/dialog/dialog.js.map +1 -0
- package/esm2022/dialog/lib/dialog-body.js +33 -0
- package/esm2022/dialog/lib/dialog-body.js.map +1 -0
- package/esm2022/dialog/lib/dialog-close.js +45 -0
- package/esm2022/dialog/lib/dialog-close.js.map +1 -0
- package/esm2022/dialog/lib/dialog-config.js +23 -0
- package/esm2022/dialog/lib/dialog-config.js.map +1 -0
- package/esm2022/dialog/lib/dialog-container.js +69 -0
- package/esm2022/dialog/lib/dialog-container.js.map +1 -0
- package/esm2022/dialog/lib/dialog-footer.js +29 -0
- package/esm2022/dialog/lib/dialog-footer.js.map +1 -0
- package/esm2022/dialog/lib/dialog-header.js +181 -0
- package/esm2022/dialog/lib/dialog-header.js.map +1 -0
- package/esm2022/dialog/lib/dialog-ref.js +167 -0
- package/esm2022/dialog/lib/dialog-ref.js.map +1 -0
- package/esm2022/dialog/lib/dialog-template.js +136 -0
- package/esm2022/dialog/lib/dialog-template.js.map +1 -0
- package/esm2022/dialog/lib/dialog-text-content.js +59 -0
- package/esm2022/dialog/lib/dialog-text-content.js.map +1 -0
- package/esm2022/dialog/lib/dialog.service.js +205 -0
- package/esm2022/dialog/lib/dialog.service.js.map +1 -0
- package/esm2022/dialog/lib/generate-routable-dialog-route.js +59 -0
- package/esm2022/dialog/lib/generate-routable-dialog-route.js.map +1 -0
- package/esm2022/dialog/lib/inject-dialog-ref.js +16 -0
- package/esm2022/dialog/lib/inject-dialog-ref.js.map +1 -0
- package/esm2022/dialog/lib/routable-dialog.js +91 -0
- package/esm2022/dialog/lib/routable-dialog.js.map +1 -0
- package/esm2022/dialog/malva-ui-core-dialog.js +5 -0
- package/esm2022/dialog/malva-ui-core-dialog.js.map +1 -0
- package/esm2022/divider/index.js +2 -0
- package/esm2022/divider/index.js.map +1 -0
- package/esm2022/divider/lib/divider/divider.js +73 -0
- package/esm2022/divider/lib/divider/divider.js.map +1 -0
- package/esm2022/divider/malva-ui-core-divider.js +5 -0
- package/esm2022/divider/malva-ui-core-divider.js.map +1 -0
- package/esm2022/drawer/index.js +12 -0
- package/esm2022/drawer/index.js.map +1 -0
- package/esm2022/drawer/lib/drawer/drawer.js +180 -0
- package/esm2022/drawer/lib/drawer/drawer.js.map +1 -0
- package/esm2022/drawer/lib/drawer-body.js +32 -0
- package/esm2022/drawer/lib/drawer-body.js.map +1 -0
- package/esm2022/drawer/lib/drawer-content.js +14 -0
- package/esm2022/drawer/lib/drawer-content.js.map +1 -0
- package/esm2022/drawer/lib/drawer-footer.js +14 -0
- package/esm2022/drawer/lib/drawer-footer.js.map +1 -0
- package/esm2022/drawer/lib/drawer-header.js +14 -0
- package/esm2022/drawer/lib/drawer-header.js.map +1 -0
- package/esm2022/drawer/lib/drawer-ref.js +31 -0
- package/esm2022/drawer/lib/drawer-ref.js.map +1 -0
- package/esm2022/drawer/lib/drawer-resize.js +243 -0
- package/esm2022/drawer/lib/drawer-resize.js.map +1 -0
- package/esm2022/drawer/lib/drawer-section/drawer-section.js +26 -0
- package/esm2022/drawer/lib/drawer-section/drawer-section.js.map +1 -0
- package/esm2022/drawer/lib/drawer-sections/drawer-sections.js +58 -0
- package/esm2022/drawer/lib/drawer-sections/drawer-sections.js.map +1 -0
- package/esm2022/drawer/lib/drawer-sections.service.js +83 -0
- package/esm2022/drawer/lib/drawer-sections.service.js.map +1 -0
- package/esm2022/drawer/lib/drawer.service.js +86 -0
- package/esm2022/drawer/lib/drawer.service.js.map +1 -0
- package/esm2022/drawer/lib/generate-routable-drawer-route.js +52 -0
- package/esm2022/drawer/lib/generate-routable-drawer-route.js.map +1 -0
- package/esm2022/drawer/lib/routable-drawer.js +91 -0
- package/esm2022/drawer/lib/routable-drawer.js.map +1 -0
- package/esm2022/drawer/malva-ui-core-drawer.js +5 -0
- package/esm2022/drawer/malva-ui-core-drawer.js.map +1 -0
- package/esm2022/dropdown/index.js +10 -0
- package/esm2022/dropdown/index.js.map +1 -0
- package/esm2022/dropdown/lib/active-descendant.js +92 -0
- package/esm2022/dropdown/lib/active-descendant.js.map +1 -0
- package/esm2022/dropdown/lib/dropdown-panel/dropdown-panel.js +295 -0
- package/esm2022/dropdown/lib/dropdown-panel/dropdown-panel.js.map +1 -0
- package/esm2022/dropdown/lib/highlight-match.pipe.js +36 -0
- package/esm2022/dropdown/lib/highlight-match.pipe.js.map +1 -0
- package/esm2022/dropdown/lib/option-matcher.js +124 -0
- package/esm2022/dropdown/lib/option-matcher.js.map +1 -0
- package/esm2022/dropdown/lib/options-adapter.js +356 -0
- package/esm2022/dropdown/lib/options-adapter.js.map +1 -0
- package/esm2022/dropdown/lib/options-result.js +11 -0
- package/esm2022/dropdown/lib/options-result.js.map +1 -0
- package/esm2022/dropdown/lib/reconciliation.js +32 -0
- package/esm2022/dropdown/lib/reconciliation.js.map +1 -0
- package/esm2022/dropdown/lib/select-data-source.js +21 -0
- package/esm2022/dropdown/lib/select-data-source.js.map +1 -0
- package/esm2022/dropdown/lib/select-option.js +25 -0
- package/esm2022/dropdown/lib/select-option.js.map +1 -0
- package/esm2022/dropdown/malva-ui-core-dropdown.js +5 -0
- package/esm2022/dropdown/malva-ui-core-dropdown.js.map +1 -0
- package/esm2022/empty-state/index.js +2 -0
- package/esm2022/empty-state/index.js.map +1 -0
- package/esm2022/empty-state/lib/empty-state/empty-state.js +43 -0
- package/esm2022/empty-state/lib/empty-state/empty-state.js.map +1 -0
- package/esm2022/empty-state/malva-ui-core-empty-state.js +5 -0
- package/esm2022/empty-state/malva-ui-core-empty-state.js.map +1 -0
- package/esm2022/expand/index.js +3 -0
- package/esm2022/expand/index.js.map +1 -0
- package/esm2022/expand/lib/expand/expand-content.js +33 -0
- package/esm2022/expand/lib/expand/expand-content.js.map +1 -0
- package/esm2022/expand/lib/expand/expand.js +93 -0
- package/esm2022/expand/lib/expand/expand.js.map +1 -0
- package/esm2022/expand/malva-ui-core-expand.js +5 -0
- package/esm2022/expand/malva-ui-core-expand.js.map +1 -0
- package/esm2022/file-upload/index.js +5 -0
- package/esm2022/file-upload/index.js.map +1 -0
- package/esm2022/file-upload/lib/file-upload/file-upload.js +324 -0
- package/esm2022/file-upload/lib/file-upload/file-upload.js.map +1 -0
- package/esm2022/file-upload/lib/file-upload/file-upload.types.js +1 -0
- package/esm2022/file-upload/lib/file-upload/file-upload.types.js.map +1 -0
- package/esm2022/file-upload/lib/file-upload-action.js +65 -0
- package/esm2022/file-upload/lib/file-upload-action.js.map +1 -0
- package/esm2022/file-upload/lib/file-upload-item/file-upload-item.js +55 -0
- package/esm2022/file-upload/lib/file-upload-item/file-upload-item.js.map +1 -0
- package/esm2022/file-upload/malva-ui-core-file-upload.js +5 -0
- package/esm2022/file-upload/malva-ui-core-file-upload.js.map +1 -0
- package/esm2022/filter/index.js +4 -0
- package/esm2022/filter/index.js.map +1 -0
- package/esm2022/filter/lib/filter/filter.js +552 -0
- package/esm2022/filter/lib/filter/filter.js.map +1 -0
- package/esm2022/filter/lib/filter.types.js +1 -0
- package/esm2022/filter/lib/filter.types.js.map +1 -0
- package/esm2022/filter/lib/smart-filter-bar/smart-filter-bar.js +518 -0
- package/esm2022/filter/lib/smart-filter-bar/smart-filter-bar.js.map +1 -0
- package/esm2022/filter/malva-ui-core-filter.js +5 -0
- package/esm2022/filter/malva-ui-core-filter.js.map +1 -0
- package/esm2022/form/index.js +7 -0
- package/esm2022/form/index.js.map +1 -0
- package/esm2022/form/lib/fieldset/fieldset.js +101 -0
- package/esm2022/form/lib/fieldset/fieldset.js.map +1 -0
- package/esm2022/form/lib/fieldset-span.js +49 -0
- package/esm2022/form/lib/fieldset-span.js.map +1 -0
- package/esm2022/form/lib/form/form.js +60 -0
- package/esm2022/form/lib/form/form.js.map +1 -0
- package/esm2022/form/lib/form-actions.js +34 -0
- package/esm2022/form/lib/form-actions.js.map +1 -0
- package/esm2022/form/lib/form-gap.js +15 -0
- package/esm2022/form/lib/form-gap.js.map +1 -0
- package/esm2022/form/lib/form-header.js +27 -0
- package/esm2022/form/lib/form-header.js.map +1 -0
- package/esm2022/form/lib/form.types.js +1 -0
- package/esm2022/form/lib/form.types.js.map +1 -0
- package/esm2022/form/malva-ui-core-form.js +5 -0
- package/esm2022/form/malva-ui-core-form.js.map +1 -0
- package/esm2022/form-utils/index.js +16 -0
- package/esm2022/form-utils/index.js.map +1 -0
- package/esm2022/form-utils/lib/aria-value-bridge.js +57 -0
- package/esm2022/form-utils/lib/aria-value-bridge.js.map +1 -0
- package/esm2022/form-utils/lib/description/description.js +24 -0
- package/esm2022/form-utils/lib/description/description.js.map +1 -0
- package/esm2022/form-utils/lib/focusable-group-base.js +87 -0
- package/esm2022/form-utils/lib/focusable-group-base.js.map +1 -0
- package/esm2022/form-utils/lib/form-control-base/signal-form-control-base.js +192 -0
- package/esm2022/form-utils/lib/form-control-base/signal-form-control-base.js.map +1 -0
- package/esm2022/form-utils/lib/form-control-sides.js +34 -0
- package/esm2022/form-utils/lib/form-control-sides.js.map +1 -0
- package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper-control.js +14 -0
- package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper-control.js.map +1 -0
- package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper.js +47 -0
- package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper.js.map +1 -0
- package/esm2022/form-utils/lib/form-field/form-field.js +245 -0
- package/esm2022/form-utils/lib/form-field/form-field.js.map +1 -0
- package/esm2022/form-utils/lib/hint/hint.js +11 -0
- package/esm2022/form-utils/lib/hint/hint.js.map +1 -0
- package/esm2022/form-utils/lib/label/label.js +55 -0
- package/esm2022/form-utils/lib/label/label.js.map +1 -0
- package/esm2022/form-utils/lib/message/message.js +20 -0
- package/esm2022/form-utils/lib/message/message.js.map +1 -0
- package/esm2022/form-utils/lib/models/error-display-strategy.js +1 -0
- package/esm2022/form-utils/lib/models/error-display-strategy.js.map +1 -0
- package/esm2022/form-utils/lib/models/form-control-connector.js +3 -0
- package/esm2022/form-utils/lib/models/form-control-connector.js.map +1 -0
- package/esm2022/form-utils/lib/models/form-state.js +1 -0
- package/esm2022/form-utils/lib/models/form-state.js.map +1 -0
- package/esm2022/form-utils/lib/selection.service.js +81 -0
- package/esm2022/form-utils/lib/selection.service.js.map +1 -0
- package/esm2022/form-utils/malva-ui-core-form-utils.js +5 -0
- package/esm2022/form-utils/malva-ui-core-form-utils.js.map +1 -0
- package/esm2022/form-utils/testing/index.js +2 -0
- package/esm2022/form-utils/testing/index.js.map +1 -0
- package/esm2022/form-utils/testing/lib/forms-binding-matrix.js +32 -0
- package/esm2022/form-utils/testing/lib/forms-binding-matrix.js.map +1 -0
- package/esm2022/form-utils/testing/malva-ui-core-form-utils-testing.js +5 -0
- package/esm2022/form-utils/testing/malva-ui-core-form-utils-testing.js.map +1 -0
- package/esm2022/index.js +70 -0
- package/esm2022/index.js.map +1 -0
- package/esm2022/input/index.js +4 -0
- package/esm2022/input/index.js.map +1 -0
- package/esm2022/input/lib/input/input-native.js +49 -0
- package/esm2022/input/lib/input/input-native.js.map +1 -0
- package/esm2022/input/lib/input/input-value-accessor.js +4 -0
- package/esm2022/input/lib/input/input-value-accessor.js.map +1 -0
- package/esm2022/input/lib/input/input.js +277 -0
- package/esm2022/input/lib/input/input.js.map +1 -0
- package/esm2022/input/lib/input/password-strength.js +46 -0
- package/esm2022/input/lib/input/password-strength.js.map +1 -0
- package/esm2022/input/malva-ui-core-input.js +5 -0
- package/esm2022/input/malva-ui-core-input.js.map +1 -0
- package/esm2022/kbd/index.js +2 -0
- package/esm2022/kbd/index.js.map +1 -0
- package/esm2022/kbd/lib/kbd/kbd.js +124 -0
- package/esm2022/kbd/lib/kbd/kbd.js.map +1 -0
- package/esm2022/kbd/malva-ui-core-kbd.js +5 -0
- package/esm2022/kbd/malva-ui-core-kbd.js.map +1 -0
- package/esm2022/layout/index.js +5 -0
- package/esm2022/layout/index.js.map +1 -0
- package/esm2022/layout/lib/layout/directives/MlvLayoutSide.js +14 -0
- package/esm2022/layout/lib/layout/directives/MlvLayoutSide.js.map +1 -0
- package/esm2022/layout/lib/layout/directives/MlvLayoutTop.js +14 -0
- package/esm2022/layout/lib/layout/directives/MlvLayoutTop.js.map +1 -0
- package/esm2022/layout/lib/layout/layout.js +43 -0
- package/esm2022/layout/lib/layout/layout.js.map +1 -0
- package/esm2022/layout/lib/layout/services/theme.service.js +121 -0
- package/esm2022/layout/lib/layout/services/theme.service.js.map +1 -0
- package/esm2022/layout/malva-ui-core-layout.js +5 -0
- package/esm2022/layout/malva-ui-core-layout.js.map +1 -0
- package/esm2022/link/index.js +3 -0
- package/esm2022/link/index.js.map +1 -0
- package/esm2022/link/lib/link/link.directives.js +24 -0
- package/esm2022/link/lib/link/link.directives.js.map +1 -0
- package/esm2022/link/lib/link/link.js +61 -0
- package/esm2022/link/lib/link/link.js.map +1 -0
- package/esm2022/link/malva-ui-core-link.js +5 -0
- package/esm2022/link/malva-ui-core-link.js.map +1 -0
- package/esm2022/list/index.js +14 -0
- package/esm2022/list/index.js.map +1 -0
- package/esm2022/list/lib/list/list.js +28 -0
- package/esm2022/list/lib/list/list.js.map +1 -0
- package/esm2022/list/lib/list-item/list-item.js +125 -0
- package/esm2022/list/lib/list-item/list-item.js.map +1 -0
- package/esm2022/list/lib/list-item-actions.js +23 -0
- package/esm2022/list/lib/list-item-actions.js.map +1 -0
- package/esm2022/list/lib/list-item-byline.js +13 -0
- package/esm2022/list/lib/list-item-byline.js.map +1 -0
- package/esm2022/list/lib/list-item-group/list-item-group.js +25 -0
- package/esm2022/list/lib/list-item-group/list-item-group.js.map +1 -0
- package/esm2022/list/lib/list-item-link/list-item-link.js +20 -0
- package/esm2022/list/lib/list-item-link/list-item-link.js.map +1 -0
- package/esm2022/list/lib/list-item-media.js +13 -0
- package/esm2022/list/lib/list-item-media.js.map +1 -0
- package/esm2022/list/lib/list-item-meta.js +13 -0
- package/esm2022/list/lib/list-item-meta.js.map +1 -0
- package/esm2022/list/lib/list-item-prefix.js +13 -0
- package/esm2022/list/lib/list-item-prefix.js.map +1 -0
- package/esm2022/list/lib/list-item-suffix.js +13 -0
- package/esm2022/list/lib/list-item-suffix.js.map +1 -0
- package/esm2022/list/lib/list-item-template.js +14 -0
- package/esm2022/list/lib/list-item-template.js.map +1 -0
- package/esm2022/list/lib/list-item-title.js +13 -0
- package/esm2022/list/lib/list-item-title.js.map +1 -0
- package/esm2022/list/lib/list-selectable.js +116 -0
- package/esm2022/list/lib/list-selectable.js.map +1 -0
- package/esm2022/list/malva-ui-core-list.js +5 -0
- package/esm2022/list/malva-ui-core-list.js.map +1 -0
- package/esm2022/loader/index.js +2 -0
- package/esm2022/loader/index.js.map +1 -0
- package/esm2022/loader/lib/loader/loader.js +134 -0
- package/esm2022/loader/lib/loader/loader.js.map +1 -0
- package/esm2022/loader/malva-ui-core-loader.js +5 -0
- package/esm2022/loader/malva-ui-core-loader.js.map +1 -0
- package/esm2022/malva-ui-core.js +5 -0
- package/esm2022/malva-ui-core.js.map +1 -0
- package/esm2022/menu/index.js +10 -0
- package/esm2022/menu/index.js.map +1 -0
- package/esm2022/menu/lib/menu/menu-group-label.js +35 -0
- package/esm2022/menu/lib/menu/menu-group-label.js.map +1 -0
- package/esm2022/menu/lib/menu/menu-group.js +44 -0
- package/esm2022/menu/lib/menu/menu-group.js.map +1 -0
- package/esm2022/menu/lib/menu/menu-item.js +117 -0
- package/esm2022/menu/lib/menu/menu-item.js.map +1 -0
- package/esm2022/menu/lib/menu/menu-separator.js +41 -0
- package/esm2022/menu/lib/menu/menu-separator.js.map +1 -0
- package/esm2022/menu/lib/menu/menu-trigger.js +653 -0
- package/esm2022/menu/lib/menu/menu-trigger.js.map +1 -0
- package/esm2022/menu/lib/menu/menu.js +308 -0
- package/esm2022/menu/lib/menu/menu.js.map +1 -0
- package/esm2022/menu/lib/menu/menu.types.js +4 -0
- package/esm2022/menu/lib/menu/menu.types.js.map +1 -0
- package/esm2022/menu/lib/menu/menubar.js +257 -0
- package/esm2022/menu/lib/menu/menubar.js.map +1 -0
- package/esm2022/menu/lib/menu/menubar.types.js +4 -0
- package/esm2022/menu/lib/menu/menubar.types.js.map +1 -0
- package/esm2022/menu/lib/menu/submenu-aim.js +30 -0
- package/esm2022/menu/lib/menu/submenu-aim.js.map +1 -0
- package/esm2022/menu/malva-ui-core-menu.js +5 -0
- package/esm2022/menu/malva-ui-core-menu.js.map +1 -0
- package/esm2022/notification/index.js +5 -0
- package/esm2022/notification/index.js.map +1 -0
- package/esm2022/notification/lib/notification-item/notification-item.js +65 -0
- package/esm2022/notification/lib/notification-item/notification-item.js.map +1 -0
- package/esm2022/notification/lib/notification-ref.js +13 -0
- package/esm2022/notification/lib/notification-ref.js.map +1 -0
- package/esm2022/notification/lib/notification.service.js +118 -0
- package/esm2022/notification/lib/notification.service.js.map +1 -0
- package/esm2022/notification/lib/notification.types.js +6 -0
- package/esm2022/notification/lib/notification.types.js.map +1 -0
- package/esm2022/notification/malva-ui-core-notification.js +5 -0
- package/esm2022/notification/malva-ui-core-notification.js.map +1 -0
- package/esm2022/number-input/index.js +2 -0
- package/esm2022/number-input/index.js.map +1 -0
- package/esm2022/number-input/lib/number-input/number-input.js +395 -0
- package/esm2022/number-input/lib/number-input/number-input.js.map +1 -0
- package/esm2022/number-input/malva-ui-core-number-input.js +5 -0
- package/esm2022/number-input/malva-ui-core-number-input.js.map +1 -0
- package/esm2022/page/index.js +15 -0
- package/esm2022/page/index.js.map +1 -0
- package/esm2022/page/lib/page/page-scroll.token.js +9 -0
- package/esm2022/page/lib/page/page-scroll.token.js.map +1 -0
- package/esm2022/page/lib/page/page-snap-controller.js +170 -0
- package/esm2022/page/lib/page/page-snap-controller.js.map +1 -0
- package/esm2022/page/lib/page/page-snap.directive.js +65 -0
- package/esm2022/page/lib/page/page-snap.directive.js.map +1 -0
- package/esm2022/page/lib/page/page.js +173 -0
- package/esm2022/page/lib/page/page.js.map +1 -0
- package/esm2022/page/lib/page-content/page-aside.js +13 -0
- package/esm2022/page/lib/page-content/page-aside.js.map +1 -0
- package/esm2022/page/lib/page-content/page-content.js +72 -0
- package/esm2022/page/lib/page-content/page-content.js.map +1 -0
- package/esm2022/page/lib/page-dock/page-dock.js +128 -0
- package/esm2022/page/lib/page-dock/page-dock.js.map +1 -0
- package/esm2022/page/lib/page-dock/page-dock.slots.js +39 -0
- package/esm2022/page/lib/page-dock/page-dock.slots.js.map +1 -0
- package/esm2022/page/lib/page-header/page-header.directives.js +88 -0
- package/esm2022/page/lib/page-header/page-header.directives.js.map +1 -0
- package/esm2022/page/lib/page-header/page-header.js +124 -0
- package/esm2022/page/lib/page-header/page-header.js.map +1 -0
- package/esm2022/page/lib/page-shell/page-shell-color.js +193 -0
- package/esm2022/page/lib/page-shell/page-shell-color.js.map +1 -0
- package/esm2022/page/lib/page-shell/page-shell-css-color.js +207 -0
- package/esm2022/page/lib/page-shell/page-shell-css-color.js.map +1 -0
- package/esm2022/page/lib/page-shell/page-shell.js +131 -0
- package/esm2022/page/lib/page-shell/page-shell.js.map +1 -0
- package/esm2022/page/lib/page-shell/page-shell.slots.js +41 -0
- package/esm2022/page/lib/page-shell/page-shell.slots.js.map +1 -0
- package/esm2022/page/lib/page-summary/page-summary-item.js +26 -0
- package/esm2022/page/lib/page-summary/page-summary-item.js.map +1 -0
- package/esm2022/page/lib/page-summary/page-summary.js +87 -0
- package/esm2022/page/lib/page-summary/page-summary.js.map +1 -0
- package/esm2022/page/malva-ui-core-page.js +5 -0
- package/esm2022/page/malva-ui-core-page.js.map +1 -0
- package/esm2022/pagination/index.js +5 -0
- package/esm2022/pagination/index.js.map +1 -0
- package/esm2022/pagination/lib/pagination/pagination.directives.js +58 -0
- package/esm2022/pagination/lib/pagination/pagination.directives.js.map +1 -0
- package/esm2022/pagination/lib/pagination/pagination.js +293 -0
- package/esm2022/pagination/lib/pagination/pagination.js.map +1 -0
- package/esm2022/pagination/lib/pagination/pagination.model.js +1 -0
- package/esm2022/pagination/lib/pagination/pagination.model.js.map +1 -0
- package/esm2022/pagination/lib/pagination/pagination.service.js +108 -0
- package/esm2022/pagination/lib/pagination/pagination.service.js.map +1 -0
- package/esm2022/pagination/malva-ui-core-pagination.js +5 -0
- package/esm2022/pagination/malva-ui-core-pagination.js.map +1 -0
- package/esm2022/pin-input/index.js +3 -0
- package/esm2022/pin-input/index.js.map +1 -0
- package/esm2022/pin-input/lib/pin-input/pin-input-separator.js +31 -0
- package/esm2022/pin-input/lib/pin-input/pin-input-separator.js.map +1 -0
- package/esm2022/pin-input/lib/pin-input/pin-input.js +365 -0
- package/esm2022/pin-input/lib/pin-input/pin-input.js.map +1 -0
- package/esm2022/pin-input/malva-ui-core-pin-input.js +5 -0
- package/esm2022/pin-input/malva-ui-core-pin-input.js.map +1 -0
- package/esm2022/popup/index.js +10 -0
- package/esm2022/popup/index.js.map +1 -0
- package/esm2022/popup/lib/popup/popup.js +500 -0
- package/esm2022/popup/lib/popup/popup.js.map +1 -0
- package/esm2022/popup/lib/popup-container/popup-container.js +169 -0
- package/esm2022/popup/lib/popup-container/popup-container.js.map +1 -0
- package/esm2022/popup/lib/popup-container/popup-container.token.js +9 -0
- package/esm2022/popup/lib/popup-container/popup-container.token.js.map +1 -0
- package/esm2022/popup/lib/popup-content.js +14 -0
- package/esm2022/popup/lib/popup-content.js.map +1 -0
- package/esm2022/popup/lib/popup-header-content.js +26 -0
- package/esm2022/popup/lib/popup-header-content.js.map +1 -0
- package/esm2022/popup/lib/popup-pinned-content.js +25 -0
- package/esm2022/popup/lib/popup-pinned-content.js.map +1 -0
- package/esm2022/popup/lib/popup-positions.js +252 -0
- package/esm2022/popup/lib/popup-positions.js.map +1 -0
- package/esm2022/popup/lib/popup-trigger/popup-trigger.js +308 -0
- package/esm2022/popup/lib/popup-trigger/popup-trigger.js.map +1 -0
- package/esm2022/popup/lib/popup.service.js +188 -0
- package/esm2022/popup/lib/popup.service.js.map +1 -0
- package/esm2022/popup/malva-ui-core-popup.js +5 -0
- package/esm2022/popup/malva-ui-core-popup.js.map +1 -0
- package/esm2022/progress/index.js +2 -0
- package/esm2022/progress/index.js.map +1 -0
- package/esm2022/progress/lib/progress/progress.js +102 -0
- package/esm2022/progress/lib/progress/progress.js.map +1 -0
- package/esm2022/progress/malva-ui-core-progress.js +5 -0
- package/esm2022/progress/malva-ui-core-progress.js.map +1 -0
- package/esm2022/radio/index.js +3 -0
- package/esm2022/radio/index.js.map +1 -0
- package/esm2022/radio/lib/radio/radio.js +134 -0
- package/esm2022/radio/lib/radio/radio.js.map +1 -0
- package/esm2022/radio/lib/radio-group/radio-group.js +176 -0
- package/esm2022/radio/lib/radio-group/radio-group.js.map +1 -0
- package/esm2022/radio/lib/radio-group-token.js +3 -0
- package/esm2022/radio/lib/radio-group-token.js.map +1 -0
- package/esm2022/radio/malva-ui-core-radio.js +5 -0
- package/esm2022/radio/malva-ui-core-radio.js.map +1 -0
- package/esm2022/rating/index.js +2 -0
- package/esm2022/rating/index.js.map +1 -0
- package/esm2022/rating/lib/rating/rating.js +208 -0
- package/esm2022/rating/lib/rating/rating.js.map +1 -0
- package/esm2022/rating/malva-ui-core-rating.js +5 -0
- package/esm2022/rating/malva-ui-core-rating.js.map +1 -0
- package/esm2022/scrollbar/index.js +2 -0
- package/esm2022/scrollbar/index.js.map +1 -0
- package/esm2022/scrollbar/lib/scrollbar/scrollbar.js +388 -0
- package/esm2022/scrollbar/lib/scrollbar/scrollbar.js.map +1 -0
- package/esm2022/scrollbar/malva-ui-core-scrollbar.js +5 -0
- package/esm2022/scrollbar/malva-ui-core-scrollbar.js.map +1 -0
- package/esm2022/search-field/index.js +3 -0
- package/esm2022/search-field/index.js.map +1 -0
- package/esm2022/search-field/lib/search-field/search-field.js +535 -0
- package/esm2022/search-field/lib/search-field/search-field.js.map +1 -0
- package/esm2022/search-field/lib/search-field/search-overlay-content.js +35 -0
- package/esm2022/search-field/lib/search-field/search-overlay-content.js.map +1 -0
- package/esm2022/search-field/malva-ui-core-search-field.js +5 -0
- package/esm2022/search-field/malva-ui-core-search-field.js.map +1 -0
- package/esm2022/segmented/index.js +5 -0
- package/esm2022/segmented/index.js.map +1 -0
- package/esm2022/segmented/lib/segmented/segmented.js +248 -0
- package/esm2022/segmented/lib/segmented/segmented.js.map +1 -0
- package/esm2022/segmented/lib/segmented-item/segmented-item.js +194 -0
- package/esm2022/segmented/lib/segmented-item/segmented-item.js.map +1 -0
- package/esm2022/segmented/lib/segmented-token.js +4 -0
- package/esm2022/segmented/lib/segmented-token.js.map +1 -0
- package/esm2022/segmented/lib/segmented.types.js +1 -0
- package/esm2022/segmented/lib/segmented.types.js.map +1 -0
- package/esm2022/segmented/malva-ui-core-segmented.js +5 -0
- package/esm2022/segmented/malva-ui-core-segmented.js.map +1 -0
- package/esm2022/select/index.js +4 -0
- package/esm2022/select/index.js.map +1 -0
- package/esm2022/select/lib/select/select.js +685 -0
- package/esm2022/select/lib/select/select.js.map +1 -0
- package/esm2022/select/lib/select-option.js +2 -0
- package/esm2022/select/lib/select-option.js.map +1 -0
- package/esm2022/select/lib/select-template.directives.js +34 -0
- package/esm2022/select/lib/select-template.directives.js.map +1 -0
- package/esm2022/select/malva-ui-core-select.js +5 -0
- package/esm2022/select/malva-ui-core-select.js.map +1 -0
- package/esm2022/sidebar/index.js +16 -0
- package/esm2022/sidebar/index.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar/sidebar.js +251 -0
- package/esm2022/sidebar/lib/sidebar/sidebar.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-content.js +37 -0
- package/esm2022/sidebar/lib/sidebar-content.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-context.js +3 -0
- package/esm2022/sidebar/lib/sidebar-context.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-footer.js +20 -0
- package/esm2022/sidebar/lib/sidebar-footer.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-group/sidebar-group.js +341 -0
- package/esm2022/sidebar/lib/sidebar-group/sidebar-group.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-header.js +20 -0
- package/esm2022/sidebar/lib/sidebar-header.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-item/sidebar-item.js +216 -0
- package/esm2022/sidebar/lib/sidebar-item/sidebar-item.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-item-host.js +39 -0
- package/esm2022/sidebar/lib/sidebar-item-host.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-item-icon.js +14 -0
- package/esm2022/sidebar/lib/sidebar-item-icon.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-mode.js +1 -0
- package/esm2022/sidebar/lib/sidebar-mode.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-rail/sidebar-rail.js +202 -0
- package/esm2022/sidebar/lib/sidebar-rail/sidebar-rail.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-trigger/sidebar-trigger.js +159 -0
- package/esm2022/sidebar/lib/sidebar-trigger/sidebar-trigger.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.js +35 -0
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.js +107 -0
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.types.js +1 -0
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.types.js.map +1 -0
- package/esm2022/sidebar/malva-ui-core-sidebar.js +5 -0
- package/esm2022/sidebar/malva-ui-core-sidebar.js.map +1 -0
- package/esm2022/skeleton/index.js +2 -0
- package/esm2022/skeleton/index.js.map +1 -0
- package/esm2022/skeleton/lib/skeleton/skeleton.js +78 -0
- package/esm2022/skeleton/lib/skeleton/skeleton.js.map +1 -0
- package/esm2022/skeleton/malva-ui-core-skeleton.js +5 -0
- package/esm2022/skeleton/malva-ui-core-skeleton.js.map +1 -0
- package/esm2022/slider/index.js +3 -0
- package/esm2022/slider/index.js.map +1 -0
- package/esm2022/slider/lib/slider/slider-tooltip-def.js +31 -0
- package/esm2022/slider/lib/slider/slider-tooltip-def.js.map +1 -0
- package/esm2022/slider/lib/slider/slider.js +468 -0
- package/esm2022/slider/lib/slider/slider.js.map +1 -0
- package/esm2022/slider/malva-ui-core-slider.js +5 -0
- package/esm2022/slider/malva-ui-core-slider.js.map +1 -0
- package/esm2022/split-pane/index.js +4 -0
- package/esm2022/split-pane/index.js.map +1 -0
- package/esm2022/split-pane/lib/split-pane/split-pane-panel.js +49 -0
- package/esm2022/split-pane/lib/split-pane/split-pane-panel.js.map +1 -0
- package/esm2022/split-pane/lib/split-pane/split-pane.js +290 -0
- package/esm2022/split-pane/lib/split-pane/split-pane.js.map +1 -0
- package/esm2022/split-pane/lib/split-pane/split-pane.types.js +1 -0
- package/esm2022/split-pane/lib/split-pane/split-pane.types.js.map +1 -0
- package/esm2022/split-pane/malva-ui-core-split-pane.js +5 -0
- package/esm2022/split-pane/malva-ui-core-split-pane.js.map +1 -0
- package/esm2022/status-indicator/index.js +2 -0
- package/esm2022/status-indicator/index.js.map +1 -0
- package/esm2022/status-indicator/lib/status-indicator/status-indicator.js +71 -0
- package/esm2022/status-indicator/lib/status-indicator/status-indicator.js.map +1 -0
- package/esm2022/status-indicator/malva-ui-core-status-indicator.js +5 -0
- package/esm2022/status-indicator/malva-ui-core-status-indicator.js.map +1 -0
- package/esm2022/stepper/index.js +5 -0
- package/esm2022/stepper/index.js.map +1 -0
- package/esm2022/stepper/lib/stepper/step-header.js +46 -0
- package/esm2022/stepper/lib/stepper/step-header.js.map +1 -0
- package/esm2022/stepper/lib/stepper/step.js +65 -0
- package/esm2022/stepper/lib/stepper/step.js.map +1 -0
- package/esm2022/stepper/lib/stepper/stepper-token.js +4 -0
- package/esm2022/stepper/lib/stepper/stepper-token.js.map +1 -0
- package/esm2022/stepper/lib/stepper/stepper.js +216 -0
- package/esm2022/stepper/lib/stepper/stepper.js.map +1 -0
- package/esm2022/stepper/lib/stepper/stepper.types.js +1 -0
- package/esm2022/stepper/lib/stepper/stepper.types.js.map +1 -0
- package/esm2022/stepper/malva-ui-core-stepper.js +5 -0
- package/esm2022/stepper/malva-ui-core-stepper.js.map +1 -0
- package/esm2022/switch/index.js +3 -0
- package/esm2022/switch/index.js.map +1 -0
- package/esm2022/switch/lib/switch/switch.js +190 -0
- package/esm2022/switch/lib/switch/switch.js.map +1 -0
- package/esm2022/switch/lib/switch-group/switch-group.js +68 -0
- package/esm2022/switch/lib/switch-group/switch-group.js.map +1 -0
- package/esm2022/switch/lib/switch-group-token.js +3 -0
- package/esm2022/switch/lib/switch-group-token.js.map +1 -0
- package/esm2022/switch/malva-ui-core-switch.js +5 -0
- package/esm2022/switch/malva-ui-core-switch.js.map +1 -0
- package/esm2022/tabs/index.js +9 -0
- package/esm2022/tabs/index.js.map +1 -0
- package/esm2022/tabs/lib/tab/tab.js +72 -0
- package/esm2022/tabs/lib/tab/tab.js.map +1 -0
- package/esm2022/tabs/lib/tab-content/tab-content.js +19 -0
- package/esm2022/tabs/lib/tab-content/tab-content.js.map +1 -0
- package/esm2022/tabs/lib/tab-content-def.js +14 -0
- package/esm2022/tabs/lib/tab-content-def.js.map +1 -0
- package/esm2022/tabs/lib/tab-def.js +17 -0
- package/esm2022/tabs/lib/tab-def.js.map +1 -0
- package/esm2022/tabs/lib/tab-group-token.js +3 -0
- package/esm2022/tabs/lib/tab-group-token.js.map +1 -0
- package/esm2022/tabs/lib/tab-item/tab-item.js +44 -0
- package/esm2022/tabs/lib/tab-item/tab-item.js.map +1 -0
- package/esm2022/tabs/lib/tabs/tabs.js +542 -0
- package/esm2022/tabs/lib/tabs/tabs.js.map +1 -0
- package/esm2022/tabs/lib/tabs.service.js +83 -0
- package/esm2022/tabs/lib/tabs.service.js.map +1 -0
- package/esm2022/tabs/malva-ui-core-tabs.js +5 -0
- package/esm2022/tabs/malva-ui-core-tabs.js.map +1 -0
- package/esm2022/textarea/index.js +2 -0
- package/esm2022/textarea/index.js.map +1 -0
- package/esm2022/textarea/lib/textarea/textarea.js +194 -0
- package/esm2022/textarea/lib/textarea/textarea.js.map +1 -0
- package/esm2022/textarea/malva-ui-core-textarea.js +5 -0
- package/esm2022/textarea/malva-ui-core-textarea.js.map +1 -0
- package/esm2022/tile/index.js +3 -0
- package/esm2022/tile/index.js.map +1 -0
- package/esm2022/tile/lib/tile/tile.js +39 -0
- package/esm2022/tile/lib/tile/tile.js.map +1 -0
- package/esm2022/tile/lib/tile-header.js +14 -0
- package/esm2022/tile/lib/tile-header.js.map +1 -0
- package/esm2022/tile/malva-ui-core-tile.js +5 -0
- package/esm2022/tile/malva-ui-core-tile.js.map +1 -0
- package/esm2022/time-picker/index.js +2 -0
- package/esm2022/time-picker/index.js.map +1 -0
- package/esm2022/time-picker/lib/time-picker/time-picker.js +310 -0
- package/esm2022/time-picker/lib/time-picker/time-picker.js.map +1 -0
- package/esm2022/time-picker/lib/time-picker-column/time-picker-column.js +216 -0
- package/esm2022/time-picker/lib/time-picker-column/time-picker-column.js.map +1 -0
- package/esm2022/time-picker/malva-ui-core-time-picker.js +5 -0
- package/esm2022/time-picker/malva-ui-core-time-picker.js.map +1 -0
- package/esm2022/timeline/index.js +6 -0
- package/esm2022/timeline/index.js.map +1 -0
- package/esm2022/timeline/lib/timeline/timeline-item-icon.js +31 -0
- package/esm2022/timeline/lib/timeline/timeline-item-icon.js.map +1 -0
- package/esm2022/timeline/lib/timeline/timeline-item-meta.js +31 -0
- package/esm2022/timeline/lib/timeline/timeline-item-meta.js.map +1 -0
- package/esm2022/timeline/lib/timeline/timeline-item.js +69 -0
- package/esm2022/timeline/lib/timeline/timeline-item.js.map +1 -0
- package/esm2022/timeline/lib/timeline/timeline.js +36 -0
- package/esm2022/timeline/lib/timeline/timeline.js.map +1 -0
- package/esm2022/timeline/lib/timeline/timeline.types.js +1 -0
- package/esm2022/timeline/lib/timeline/timeline.types.js.map +1 -0
- package/esm2022/timeline/malva-ui-core-timeline.js +5 -0
- package/esm2022/timeline/malva-ui-core-timeline.js.map +1 -0
- package/esm2022/title/index.js +2 -0
- package/esm2022/title/index.js.map +1 -0
- package/esm2022/title/lib/title/title.js +171 -0
- package/esm2022/title/lib/title/title.js.map +1 -0
- package/esm2022/title/malva-ui-core-title.js +5 -0
- package/esm2022/title/malva-ui-core-title.js.map +1 -0
- package/esm2022/toast/index.js +13 -0
- package/esm2022/toast/index.js.map +1 -0
- package/esm2022/toast/lib/abstract-toast-container.js +50 -0
- package/esm2022/toast/lib/abstract-toast-container.js.map +1 -0
- package/esm2022/toast/lib/abstract-toast-item.js +75 -0
- package/esm2022/toast/lib/abstract-toast-item.js.map +1 -0
- package/esm2022/toast/lib/abstract-toast.service.js +176 -0
- package/esm2022/toast/lib/abstract-toast.service.js.map +1 -0
- package/esm2022/toast/lib/toast-container/toast-container.js +61 -0
- package/esm2022/toast/lib/toast-container/toast-container.js.map +1 -0
- package/esm2022/toast/lib/toast-item/toast-item.js +62 -0
- package/esm2022/toast/lib/toast-item/toast-item.js.map +1 -0
- package/esm2022/toast/lib/toast-ref.js +54 -0
- package/esm2022/toast/lib/toast-ref.js.map +1 -0
- package/esm2022/toast/lib/toast-timer.js +37 -0
- package/esm2022/toast/lib/toast-timer.js.map +1 -0
- package/esm2022/toast/lib/toast.directives.js +76 -0
- package/esm2022/toast/lib/toast.directives.js.map +1 -0
- package/esm2022/toast/lib/toast.service.js +127 -0
- package/esm2022/toast/lib/toast.service.js.map +1 -0
- package/esm2022/toast/lib/toast.types.js +39 -0
- package/esm2022/toast/lib/toast.types.js.map +1 -0
- package/esm2022/toast/malva-ui-core-toast.js +5 -0
- package/esm2022/toast/malva-ui-core-toast.js.map +1 -0
- package/esm2022/tokenizer/index.js +4 -0
- package/esm2022/tokenizer/index.js.map +1 -0
- package/esm2022/tokenizer/lib/token/token.js +123 -0
- package/esm2022/tokenizer/lib/token/token.js.map +1 -0
- package/esm2022/tokenizer/lib/token-template.js +23 -0
- package/esm2022/tokenizer/lib/token-template.js.map +1 -0
- package/esm2022/tokenizer/lib/tokenizer/tokenizer.js +324 -0
- package/esm2022/tokenizer/lib/tokenizer/tokenizer.js.map +1 -0
- package/esm2022/tokenizer/malva-ui-core-tokenizer.js +5 -0
- package/esm2022/tokenizer/malva-ui-core-tokenizer.js.map +1 -0
- package/esm2022/toolbar/index.js +4 -0
- package/esm2022/toolbar/index.js.map +1 -0
- package/esm2022/toolbar/lib/toolbar/toolbar-spacer.js +13 -0
- package/esm2022/toolbar/lib/toolbar/toolbar-spacer.js.map +1 -0
- package/esm2022/toolbar/lib/toolbar/toolbar-widget.js +106 -0
- package/esm2022/toolbar/lib/toolbar/toolbar-widget.js.map +1 -0
- package/esm2022/toolbar/lib/toolbar/toolbar.js +19 -0
- package/esm2022/toolbar/lib/toolbar/toolbar.js.map +1 -0
- package/esm2022/toolbar/malva-ui-core-toolbar.js +5 -0
- package/esm2022/toolbar/malva-ui-core-toolbar.js.map +1 -0
- package/esm2022/tooltip/index.js +4 -0
- package/esm2022/tooltip/index.js.map +1 -0
- package/esm2022/tooltip/lib/tooltip/tooltip-panel.js +69 -0
- package/esm2022/tooltip/lib/tooltip/tooltip-panel.js.map +1 -0
- package/esm2022/tooltip/lib/tooltip/tooltip.js +352 -0
- package/esm2022/tooltip/lib/tooltip/tooltip.js.map +1 -0
- package/esm2022/tooltip/lib/tooltip/tooltip.types.js +1 -0
- package/esm2022/tooltip/lib/tooltip/tooltip.types.js.map +1 -0
- package/esm2022/tooltip/malva-ui-core-tooltip.js +5 -0
- package/esm2022/tooltip/malva-ui-core-tooltip.js.map +1 -0
- package/esm2022/tree/index.js +5 -0
- package/esm2022/tree/index.js.map +1 -0
- package/esm2022/tree/lib/tree/tree-context.js +7 -0
- package/esm2022/tree/lib/tree/tree-context.js.map +1 -0
- package/esm2022/tree/lib/tree/tree-node-def.js +34 -0
- package/esm2022/tree/lib/tree/tree-node-def.js.map +1 -0
- package/esm2022/tree/lib/tree/tree-node.js +1 -0
- package/esm2022/tree/lib/tree/tree-node.js.map +1 -0
- package/esm2022/tree/lib/tree/tree-subtree.js +107 -0
- package/esm2022/tree/lib/tree/tree-subtree.js.map +1 -0
- package/esm2022/tree/lib/tree/tree.js +362 -0
- package/esm2022/tree/lib/tree/tree.js.map +1 -0
- package/esm2022/tree/malva-ui-core-tree.js +5 -0
- package/esm2022/tree/malva-ui-core-tree.js.map +1 -0
- package/expand/index.d.ts +2 -0
- package/expand/lib/expand/expand-content.d.ts +26 -0
- package/expand/lib/expand/expand.d.ts +74 -0
- package/expand/malva-ui-core-expand.d.ts +5 -0
- package/file-upload/README.md +7 -0
- package/file-upload/index.d.ts +4 -0
- package/file-upload/lib/file-upload/file-upload.d.ts +138 -0
- package/file-upload/lib/file-upload/file-upload.types.d.ts +42 -0
- package/file-upload/lib/file-upload-action.d.ts +53 -0
- package/file-upload/lib/file-upload-item/file-upload-item.d.ts +30 -0
- package/file-upload/malva-ui-core-file-upload.d.ts +5 -0
- package/filter/README.md +22 -0
- package/filter/index.d.ts +3 -0
- package/filter/lib/filter/filter.d.ts +156 -0
- package/filter/lib/filter.types.d.ts +75 -0
- package/filter/lib/smart-filter-bar/smart-filter-bar.d.ts +153 -0
- package/filter/malva-ui-core-filter.d.ts +5 -0
- package/form/index.d.ts +6 -0
- package/form/lib/fieldset/fieldset.d.ts +58 -0
- package/form/lib/fieldset-span.d.ts +28 -0
- package/form/lib/form/form.d.ts +37 -0
- package/form/lib/form-actions.d.ts +20 -0
- package/form/lib/form-gap.d.ts +5 -0
- package/form/lib/form-header.d.ts +18 -0
- package/form/lib/form.types.d.ts +13 -0
- package/form/malva-ui-core-form.d.ts +5 -0
- package/form-utils/index.d.ts +15 -0
- package/form-utils/lib/aria-value-bridge.d.ts +45 -0
- package/form-utils/lib/description/description.d.ts +16 -0
- package/form-utils/lib/focusable-group-base.d.ts +76 -0
- package/form-utils/lib/form-control-base/signal-form-control-base.d.ts +159 -0
- package/form-utils/lib/form-control-sides.d.ts +20 -0
- package/form-utils/lib/form-control-wrapper/form-control-wrapper-control.d.ts +6 -0
- package/form-utils/lib/form-control-wrapper/form-control-wrapper.d.ts +20 -0
- package/form-utils/lib/form-field/form-field.d.ts +68 -0
- package/form-utils/lib/hint/hint.d.ts +5 -0
- package/form-utils/lib/label/label.d.ts +22 -0
- package/form-utils/lib/message/message.d.ts +7 -0
- package/form-utils/lib/models/error-display-strategy.d.ts +1 -0
- package/form-utils/lib/models/form-control-connector.d.ts +41 -0
- package/form-utils/lib/models/form-state.d.ts +1 -0
- package/form-utils/lib/selection.service.d.ts +27 -0
- package/form-utils/malva-ui-core-form-utils.d.ts +5 -0
- package/form-utils/testing/index.d.ts +1 -0
- package/form-utils/testing/lib/forms-binding-matrix.d.ts +47 -0
- package/form-utils/testing/malva-ui-core-form-utils-testing.d.ts +5 -0
- package/index.d.ts +69 -0
- package/input/index.d.ts +3 -0
- package/input/lib/input/input-native.d.ts +36 -0
- package/input/lib/input/input-value-accessor.d.ts +11 -0
- package/input/lib/input/input.d.ts +189 -0
- package/input/lib/input/password-strength.d.ts +34 -0
- package/input/malva-ui-core-input.d.ts +5 -0
- package/kbd/index.d.ts +1 -0
- package/kbd/lib/kbd/kbd.d.ts +52 -0
- package/kbd/malva-ui-core-kbd.d.ts +5 -0
- package/layout/index.d.ts +4 -0
- package/layout/lib/layout/directives/MlvLayoutSide.d.ts +6 -0
- package/layout/lib/layout/directives/MlvLayoutTop.d.ts +6 -0
- package/layout/lib/layout/layout.d.ts +20 -0
- package/layout/lib/layout/services/theme.service.d.ts +33 -0
- package/layout/malva-ui-core-layout.d.ts +5 -0
- package/link/index.d.ts +2 -0
- package/link/lib/link/link.d.ts +15 -0
- package/link/lib/link/link.directives.d.ts +10 -0
- package/link/malva-ui-core-link.d.ts +5 -0
- package/list/index.d.ts +13 -0
- package/list/lib/list/list.d.ts +25 -0
- package/list/lib/list-item/list-item.d.ts +67 -0
- package/list/lib/list-item-actions.d.ts +12 -0
- package/list/lib/list-item-byline.d.ts +5 -0
- package/list/lib/list-item-group/list-item-group.d.ts +11 -0
- package/list/lib/list-item-link/list-item-link.d.ts +8 -0
- package/list/lib/list-item-media.d.ts +5 -0
- package/list/lib/list-item-meta.d.ts +5 -0
- package/list/lib/list-item-prefix.d.ts +5 -0
- package/list/lib/list-item-suffix.d.ts +5 -0
- package/list/lib/list-item-template.d.ts +10 -0
- package/list/lib/list-item-title.d.ts +5 -0
- package/list/lib/list-selectable.d.ts +73 -0
- package/list/malva-ui-core-list.d.ts +5 -0
- package/loader/index.d.ts +1 -0
- package/loader/lib/loader/loader.d.ts +84 -0
- package/loader/malva-ui-core-loader.d.ts +5 -0
- package/malva-ui-core.d.ts +5 -0
- package/menu/index.d.ts +9 -0
- package/menu/lib/menu/menu-group-label.d.ts +22 -0
- package/menu/lib/menu/menu-group.d.ts +27 -0
- package/menu/lib/menu/menu-item.d.ts +76 -0
- package/menu/lib/menu/menu-separator.d.ts +18 -0
- package/menu/lib/menu/menu-trigger.d.ts +255 -0
- package/menu/lib/menu/menu.d.ts +149 -0
- package/menu/lib/menu/menu.types.d.ts +13 -0
- package/menu/lib/menu/menubar.d.ts +131 -0
- package/menu/lib/menu/menubar.types.d.ts +82 -0
- package/menu/lib/menu/submenu-aim.d.ts +10 -0
- package/menu/malva-ui-core-menu.d.ts +5 -0
- package/notification/index.d.ts +4 -0
- package/notification/lib/notification-item/notification-item.d.ts +20 -0
- package/notification/lib/notification-ref.d.ts +12 -0
- package/notification/lib/notification.service.d.ts +43 -0
- package/notification/lib/notification.types.d.ts +52 -0
- package/notification/malva-ui-core-notification.d.ts +5 -0
- package/number-input/index.d.ts +1 -0
- package/number-input/lib/number-input/number-input.d.ts +162 -0
- package/number-input/malva-ui-core-number-input.d.ts +5 -0
- package/package.json +315 -0
- package/page/README.md +8 -0
- package/page/index.d.ts +14 -0
- package/page/lib/page/page-scroll.token.d.ts +19 -0
- package/page/lib/page/page-snap-controller.d.ts +87 -0
- package/page/lib/page/page-snap.directive.d.ts +40 -0
- package/page/lib/page/page.d.ts +74 -0
- package/page/lib/page-content/page-aside.d.ts +7 -0
- package/page/lib/page-content/page-content.d.ts +37 -0
- package/page/lib/page-dock/page-dock.d.ts +50 -0
- package/page/lib/page-dock/page-dock.slots.d.ts +16 -0
- package/page/lib/page-header/page-header.d.ts +77 -0
- package/page/lib/page-header/page-header.directives.d.ts +50 -0
- package/page/lib/page-shell/page-shell-color.d.ts +48 -0
- package/page/lib/page-shell/page-shell-css-color.d.ts +20 -0
- package/page/lib/page-shell/page-shell.d.ts +44 -0
- package/page/lib/page-shell/page-shell.slots.d.ts +16 -0
- package/page/lib/page-summary/page-summary-item.d.ts +11 -0
- package/page/lib/page-summary/page-summary.d.ts +36 -0
- package/page/malva-ui-core-page.d.ts +5 -0
- package/pagination/index.d.ts +4 -0
- package/pagination/lib/pagination/pagination.d.ts +182 -0
- package/pagination/lib/pagination/pagination.directives.d.ts +44 -0
- package/pagination/lib/pagination/pagination.model.d.ts +6 -0
- package/pagination/lib/pagination/pagination.service.d.ts +26 -0
- package/pagination/malva-ui-core-pagination.d.ts +5 -0
- package/pin-input/index.d.ts +2 -0
- package/pin-input/lib/pin-input/pin-input-separator.d.ts +24 -0
- package/pin-input/lib/pin-input/pin-input.d.ts +176 -0
- package/pin-input/malva-ui-core-pin-input.d.ts +5 -0
- package/popup/index.d.ts +9 -0
- package/popup/lib/popup/popup.d.ts +343 -0
- package/popup/lib/popup-container/popup-container.d.ts +61 -0
- package/popup/lib/popup-container/popup-container.token.d.ts +34 -0
- package/popup/lib/popup-content.d.ts +6 -0
- package/popup/lib/popup-header-content.d.ts +18 -0
- package/popup/lib/popup-pinned-content.d.ts +17 -0
- package/popup/lib/popup-positions.d.ts +105 -0
- package/popup/lib/popup-trigger/popup-trigger.d.ts +102 -0
- package/popup/lib/popup.service.d.ts +159 -0
- package/popup/malva-ui-core-popup.d.ts +5 -0
- package/progress/index.d.ts +1 -0
- package/progress/lib/progress/progress.d.ts +69 -0
- package/progress/malva-ui-core-progress.d.ts +5 -0
- package/radio/index.d.ts +2 -0
- package/radio/lib/radio/radio.d.ts +87 -0
- package/radio/lib/radio-group/radio-group.d.ts +35 -0
- package/radio/lib/radio-group-token.d.ts +7 -0
- package/radio/malva-ui-core-radio.d.ts +5 -0
- package/rating/index.d.ts +1 -0
- package/rating/lib/rating/rating.d.ts +100 -0
- package/rating/malva-ui-core-rating.d.ts +5 -0
- package/schematics/collection.json +12 -0
- package/schematics/ng-add/index.cjs +272 -0
- package/schematics/ng-add/schema.json +92 -0
- package/scrollbar/index.d.ts +1 -0
- package/scrollbar/lib/scrollbar/scrollbar.d.ts +166 -0
- package/scrollbar/malva-ui-core-scrollbar.d.ts +5 -0
- package/search-field/README.md +32 -0
- package/search-field/index.d.ts +2 -0
- package/search-field/lib/search-field/search-field.d.ts +347 -0
- package/search-field/lib/search-field/search-overlay-content.d.ts +59 -0
- package/search-field/malva-ui-core-search-field.d.ts +5 -0
- package/segmented/index.d.ts +4 -0
- package/segmented/lib/segmented/segmented.d.ts +80 -0
- package/segmented/lib/segmented-item/segmented-item.d.ts +89 -0
- package/segmented/lib/segmented-token.d.ts +22 -0
- package/segmented/lib/segmented.types.d.ts +9 -0
- package/segmented/malva-ui-core-segmented.d.ts +5 -0
- package/select/index.d.ts +3 -0
- package/select/lib/select/select.d.ts +379 -0
- package/select/lib/select-option.d.ts +1 -0
- package/select/lib/select-template.directives.d.ts +14 -0
- package/select/malva-ui-core-select.d.ts +5 -0
- package/sidebar/index.d.ts +15 -0
- package/sidebar/lib/sidebar/sidebar.d.ts +134 -0
- package/sidebar/lib/sidebar-content.d.ts +11 -0
- package/sidebar/lib/sidebar-context.d.ts +23 -0
- package/sidebar/lib/sidebar-footer.d.ts +9 -0
- package/sidebar/lib/sidebar-group/sidebar-group.d.ts +127 -0
- package/sidebar/lib/sidebar-header.d.ts +9 -0
- package/sidebar/lib/sidebar-item/sidebar-item.d.ts +104 -0
- package/sidebar/lib/sidebar-item-host.d.ts +18 -0
- package/sidebar/lib/sidebar-item-icon.d.ts +6 -0
- package/sidebar/lib/sidebar-mode.d.ts +2 -0
- package/sidebar/lib/sidebar-rail/sidebar-rail.d.ts +54 -0
- package/sidebar/lib/sidebar-trigger/sidebar-trigger.d.ts +67 -0
- package/sidebar/lib/sidebar-workspace/sidebar-workspace.d.ts +54 -0
- package/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.d.ts +19 -0
- package/sidebar/lib/sidebar-workspace/sidebar-workspace.types.d.ts +20 -0
- package/sidebar/malva-ui-core-sidebar.d.ts +5 -0
- package/skeleton/index.d.ts +1 -0
- package/skeleton/lib/skeleton/skeleton.d.ts +60 -0
- package/skeleton/malva-ui-core-skeleton.d.ts +5 -0
- package/slider/index.d.ts +2 -0
- package/slider/lib/slider/slider-tooltip-def.d.ts +39 -0
- package/slider/lib/slider/slider.d.ts +171 -0
- package/slider/malva-ui-core-slider.d.ts +5 -0
- package/split-pane/index.d.ts +3 -0
- package/split-pane/lib/split-pane/split-pane-panel.d.ts +34 -0
- package/split-pane/lib/split-pane/split-pane.d.ts +98 -0
- package/split-pane/lib/split-pane/split-pane.types.d.ts +7 -0
- package/split-pane/malva-ui-core-split-pane.d.ts +5 -0
- package/status-indicator/index.d.ts +1 -0
- package/status-indicator/lib/status-indicator/status-indicator.d.ts +61 -0
- package/status-indicator/malva-ui-core-status-indicator.d.ts +5 -0
- package/stepper/index.d.ts +4 -0
- package/stepper/lib/stepper/step-header.d.ts +34 -0
- package/stepper/lib/stepper/step.d.ts +51 -0
- package/stepper/lib/stepper/stepper-token.d.ts +13 -0
- package/stepper/lib/stepper/stepper.d.ts +98 -0
- package/stepper/lib/stepper/stepper.types.d.ts +4 -0
- package/stepper/malva-ui-core-stepper.d.ts +5 -0
- package/styles/malva-ui.css +1706 -0
- package/styles/tokens.md +698 -0
- package/switch/index.d.ts +2 -0
- package/switch/lib/switch/switch.d.ts +118 -0
- package/switch/lib/switch-group/switch-group.d.ts +24 -0
- package/switch/lib/switch-group-token.d.ts +6 -0
- package/switch/malva-ui-core-switch.d.ts +5 -0
- package/tabs/index.d.ts +8 -0
- package/tabs/lib/tab/tab.d.ts +46 -0
- package/tabs/lib/tab-content/tab-content.d.ts +11 -0
- package/tabs/lib/tab-content-def.d.ts +6 -0
- package/tabs/lib/tab-def.d.ts +11 -0
- package/tabs/lib/tab-group-token.d.ts +10 -0
- package/tabs/lib/tab-item/tab-item.d.ts +28 -0
- package/tabs/lib/tabs/tabs.d.ts +202 -0
- package/tabs/lib/tabs.service.d.ts +24 -0
- package/tabs/malva-ui-core-tabs.d.ts +5 -0
- package/textarea/index.d.ts +1 -0
- package/textarea/lib/textarea/textarea.d.ts +77 -0
- package/textarea/malva-ui-core-textarea.d.ts +5 -0
- package/tile/index.d.ts +2 -0
- package/tile/lib/tile/tile.d.ts +20 -0
- package/tile/lib/tile-header.d.ts +6 -0
- package/tile/malva-ui-core-tile.d.ts +5 -0
- package/time-picker/README.md +7 -0
- package/time-picker/index.d.ts +1 -0
- package/time-picker/lib/time-picker/time-picker.d.ts +135 -0
- package/time-picker/lib/time-picker-column/time-picker-column.d.ts +111 -0
- package/time-picker/malva-ui-core-time-picker.d.ts +5 -0
- package/timeline/index.d.ts +5 -0
- package/timeline/lib/timeline/timeline-item-icon.d.ts +24 -0
- package/timeline/lib/timeline/timeline-item-meta.d.ts +24 -0
- package/timeline/lib/timeline/timeline-item.d.ts +52 -0
- package/timeline/lib/timeline/timeline.d.ts +27 -0
- package/timeline/lib/timeline/timeline.types.d.ts +18 -0
- package/timeline/malva-ui-core-timeline.d.ts +5 -0
- package/title/index.d.ts +1 -0
- package/title/lib/title/title.d.ts +63 -0
- package/title/malva-ui-core-title.d.ts +5 -0
- package/toast/index.d.ts +10 -0
- package/toast/lib/abstract-toast-container.d.ts +29 -0
- package/toast/lib/abstract-toast-item.d.ts +44 -0
- package/toast/lib/abstract-toast.service.d.ts +75 -0
- package/toast/lib/toast-container/toast-container.d.ts +23 -0
- package/toast/lib/toast-item/toast-item.d.ts +25 -0
- package/toast/lib/toast-ref.d.ts +33 -0
- package/toast/lib/toast-timer.d.ts +24 -0
- package/toast/lib/toast.directives.d.ts +13 -0
- package/toast/lib/toast.service.d.ts +41 -0
- package/toast/lib/toast.types.d.ts +139 -0
- package/toast/malva-ui-core-toast.d.ts +5 -0
- package/tokenizer/index.d.ts +3 -0
- package/tokenizer/lib/token/token.d.ts +60 -0
- package/tokenizer/lib/token-template.d.ts +29 -0
- package/tokenizer/lib/tokenizer/tokenizer.d.ts +109 -0
- package/tokenizer/malva-ui-core-tokenizer.d.ts +5 -0
- package/toolbar/index.d.ts +3 -0
- package/toolbar/lib/toolbar/toolbar-spacer.d.ts +5 -0
- package/toolbar/lib/toolbar/toolbar-widget.d.ts +75 -0
- package/toolbar/lib/toolbar/toolbar.d.ts +8 -0
- package/toolbar/malva-ui-core-toolbar.d.ts +5 -0
- package/tooltip/README.md +7 -0
- package/tooltip/index.d.ts +3 -0
- package/tooltip/lib/tooltip/tooltip-panel.d.ts +26 -0
- package/tooltip/lib/tooltip/tooltip.d.ts +148 -0
- package/tooltip/lib/tooltip/tooltip.types.d.ts +17 -0
- package/tooltip/malva-ui-core-tooltip.d.ts +5 -0
- package/tree/index.d.ts +4 -0
- package/tree/lib/tree/tree-context.d.ts +62 -0
- package/tree/lib/tree/tree-node-def.d.ts +33 -0
- package/tree/lib/tree/tree-node.d.ts +45 -0
- package/tree/lib/tree/tree-subtree.d.ts +63 -0
- package/tree/lib/tree/tree.d.ts +156 -0
- package/tree/malva-ui-core-tree.d.ts +5 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../../../../libs/core/select/src/lib/select/select.ts","../../../../../../../libs/core/select/src/lib/select/select.html"],"names":[],"mappings":"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","sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n effect,\n ElementRef,\n forwardRef,\n inject,\n input,\n model,\n signal,\n untracked,\n ViewEncapsulation,\n viewChild,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport type { ConnectedPosition } from '@angular/cdk/overlay';\nimport {\n MlvPopup,\n MlvPopupContent,\n MlvPopupContainer,\n MlvPopupPinnedContent,\n} from '@malva-ui/core/popup';\nimport type { MlvPopupMobileMode } from '@malva-ui/core/popup';\nimport type { MlvFormState, MlvFormControl } from '@malva-ui/core/form-utils';\nimport {\n MlvDescription,\n MlvFormControlWrapper,\n MlvFormControlWrapperControl,\n fromAriaValues,\n MlvHint,\n MlvLabel,\n MLV_FORM_CONTROL,\n MlvMessage,\n MlvSelectionService,\n toAriaValues,\n MlvSignalFormControlBase,\n} from '@malva-ui/core/form-utils';\nimport {\n MlvSelectItemTemplate,\n MlvSelectSelectedTemplate,\n} from '../select-template.directives';\nimport { LucideChevronDown, LucideSearch } from '@lucide/angular';\nimport { MlvClick } from '@malva-ui/cdk/accessibility';\nimport { MlvResizeObserver } from '@malva-ui/cdk/utils';\nimport type { MlvDensity } from '@malva-ui/cdk/density';\nimport {\n filteredOutCommitted,\n filterOptions,\n isReconciliationEmit,\n MlvActiveDescendant,\n MlvDropdownPanel,\n MlvOptionsAdapter,\n optionId,\n} from '@malva-ui/core/dropdown';\nimport type {\n MlvOptionMatcher,\n MlvOptionsInput,\n MlvOptionsSearchFn,\n} from '@malva-ui/core/dropdown';\nimport type { MlvSelectOptionTransform } from '../select-option';\nimport { defaultOptionTransform } from '../select-option';\nimport { MlvButtonClose } from '@malva-ui/core/button';\nimport { MlvInput } from '@malva-ui/core/input';\nimport { MlvLoader } from '@malva-ui/core/loader';\nimport {\n MLV_FORM_UTILS_I18N,\n MLV_SELECT_I18N,\n MlvI18nResolverService,\n} from '@malva-ui/i18n';\n\n/**\n * Visual/validation state of the select. Mirrors {@link MlvFormState}.\n */\nexport type MlvSelectState = MlvFormState;\n\n@Component({\n selector: 'mlv-select',\n imports: [\n NgTemplateOutlet,\n MlvPopup,\n MlvPopupContent,\n MlvPopupContainer,\n MlvPopupPinnedContent,\n MlvDescription,\n MlvFormControlWrapper,\n MlvHint,\n MlvLabel,\n MlvFormControlWrapperControl,\n MlvMessage,\n MlvClick,\n LucideChevronDown,\n MlvResizeObserver,\n MlvDropdownPanel,\n MlvButtonClose,\n MlvInput,\n MlvLoader,\n LucideSearch,\n ],\n templateUrl: './select.html',\n styleUrl: './select.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n MlvSelectionService,\n {\n provide: MLV_FORM_CONTROL,\n useExisting: forwardRef(() => MlvSelect),\n },\n ],\n host: {\n class: 'mlv-select',\n '[class]': '\"mlv-select--\" + resolvedState()',\n '[class.mlv-select--disabled]': 'computedDisabled()',\n '[class.mlv-select--open]': 'isOpen()',\n '[class.mlv-select--loading]': '_awaitingValueLabel()',\n },\n})\nexport class MlvSelect<T>\n extends MlvSignalFormControlBase<T | T[] | null>\n implements MlvFormControl\n{\n /** The scalar, array, or null selection used by all Angular forms APIs. */\n readonly value = model<T | T[] | null>(null);\n /**\n * Selectable options: a plain array, an observable of arrays, or an\n * `MlvDataSource` (source-side search + lazy paging). Readonly arrays are\n * accepted because options are never mutated.\n */\n readonly options = input<MlvOptionsInput<T>>([]);\n /**\n * Remote search used by the searchable dropdown:\n * `(query) => T[] | Promise<T[]> | Observable<T[]>`. When set it supersedes\n * {@link options} as the item source; the list is not filtered locally. Bind\n * `[loading]` yourself for any spinner beyond the source-owned one.\n */\n readonly searchFn = input<MlvOptionsSearchFn<T> | null>(null);\n /** Debounce (ms) for remote searches (`MlvDataSource` / {@link searchFn}). Local filtering stays instant. */\n readonly searchDebounce = input<number>(200);\n /** Enables multi-selection mode. */\n readonly multiple = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n /** Custom placeholder override. Falls back to the i18n-provided placeholder. */\n readonly placeholder = input<string | undefined>(undefined);\n readonly toOption = input<MlvSelectOptionTransform<T>>(\n defaultOptionTransform as MlvSelectOptionTransform<T>,\n );\n\n /**\n * Equality predicate used to match option values against the current\n * selection and against values written through any forms binding. Defaults\n * to reference equality. Provide e.g. `(a, b) => a.id === b.id` so a\n * deserialised object value collapses onto its option instance (label and\n * check-mark agree, and a value that arrives before its options resolves once\n * they load).\n */\n readonly compareWith = input<(a: T, b: T) => boolean>((a, b) => a === b);\n\n /**\n * Renders a search field as the first row of the open dropdown. Local sources\n * (array / observable) are filtered by label; remote sources (`MlvDataSource`\n * / {@link searchFn}) search server-side through the shared adapter.\n *\n * While the searchable dropdown is open the combobox semantics move from the\n * trigger onto the search input and navigation switches to the WAI-ARIA\n * activedescendant model (DOM focus stays in the search field). A\n * non-searchable select is untouched.\n */\n readonly searchable = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /** Placeholder of the in-dropdown search field. Falls back to the i18n default. */\n readonly searchPlaceholder = input<string | undefined>(undefined);\n\n /**\n * Custom local-filter predicate (fuzzy / secondary-field matching). Threaded\n * into the shared `filterOptions`, whose results are always ranked\n * prefix-matches-first. Ignored for remote sources, which own their filtering.\n */\n readonly matcher = input<MlvOptionMatcher<T> | undefined>(undefined);\n\n /**\n * Controls whether the dropdown renders as a full-screen mobile sheet.\n *\n * Passed straight through to the underlying `mlv-popup`. Defaults to\n * `'auto'` — the dropdown is full-screen below the `md` breakpoint\n * (viewport < 768px) and trigger-anchored above it, matching the date/time\n * pickers. Set to `'off'` to always anchor to the trigger, or `'fullscreen'`\n * to always render the sheet (e.g. demos). Unlike `mlv-combobox` (whose\n * search input lives outside the overlay panel), the select trigger is a plain\n * button and its dropdown is the entire interaction surface, so full-screen\n * mode composes cleanly.\n */\n readonly mobileMode = input<MlvPopupMobileMode>('auto');\n\n /**\n * Density applied to the dropdown's option list.\n *\n * The dropdown panel is portaled to the CDK overlay container, outside the\n * component's DOM tree, so ancestor density classes cannot cascade into it.\n * This input is forwarded to the underlying `mlv-popup`, which stamps the\n * resolved `mlv--{density}` class on the detached panel. When omitted, the\n * nearest ancestor `MLV_DENSITY_CONTEXT` (e.g. a `form[mlvForm]`) applies,\n * then the global `MlvDensityService`.\n */\n readonly mlvDensity = input<MlvDensity | undefined>(undefined);\n\n /**\n * Optional visible heading rendered in the full-screen sheet's header bar.\n * When omitted, falls back to the field's `label` (or, when unset, the\n * resolved placeholder). Only shown while the dropdown is full-screen.\n */\n readonly mobileTitle = input<string | undefined>(undefined);\n\n /**\n * @protected Resolved full-screen sheet title: explicit `mobileTitle` input\n * takes precedence over the field's label, then the resolved placeholder.\n */\n protected readonly _resolvedMobileTitle = computed(\n () => this.mobileTitle() ?? (this.label() || this._resolvedPlaceholder()),\n );\n\n /** @protected The component's i18n strings signal. */\n protected readonly _i18n = inject(MLV_SELECT_I18N);\n\n protected readonly _formI18n = inject(MLV_FORM_UTILS_I18N);\n\n /** @protected Resolved placeholder: explicit input takes precedence over i18n default. */\n protected readonly _resolvedPlaceholder = computed(\n () => this.placeholder() ?? this._i18n().placeholder,\n );\n\n // Override focused to also be true when the popup is open\n override readonly focused = computed(() => this._focused() || this.isOpen());\n\n /**\n * @private Latches `true` the first time a **remote** source reports\n * `ready()`, and never flips back. It gates {@link _adapter}'s `eager` flag\n * off for good.\n *\n * Without the latch, a `searchFn` bound to an inline arrow — a fresh\n * reference on every change detection run — re-arms the adapter's lazy gate\n * on every pass; while `eager` is still `true` (a committed value the first\n * response did not contain) each pass would fire another request, whose\n * result triggers the next pass. The latch bounds that to exactly one eager\n * load per mount.\n */\n private readonly _eagerDone = signal(false);\n\n /**\n * @protected Shared source adapter — arrays / observables are local, a data\n * source or a `searchFn` is remote (the source filters and the items render\n * as-is). Template-facing: the paging bindings (`hasMore` / `loadingMore` /\n * `loadMore`) read straight off it.\n *\n * The `eager` closure reads {@link hasValue} / {@link _allValuesMatched}\n * lazily, so declaring those below is fine — the adapter's effects run after\n * construction. A committed value with no resolvable label is what makes a\n * `searchFn` load without waiting for the first open. The explicit type\n * annotation breaks the inference cycle that closure creates\n * (`_adapter` → `eager` → `_allValuesMatched` → `resolvedOptions` → `_adapter`).\n */\n protected readonly _adapter: MlvOptionsAdapter<T> = new MlvOptionsAdapter<T>({\n source: this.options,\n searchFn: this.searchFn,\n debounce: this.searchDebounce,\n eager: computed(\n () => this.hasValue() && !this._allValuesMatched() && !this._eagerDone(),\n ),\n });\n\n readonly resolvedOptions = computed(() =>\n this._adapter.items().map((item) => this.toOption()(item)),\n );\n\n /** @protected Whether every committed value has a matching option (by `compareWith`). */\n protected readonly _allValuesMatched = computed(() => {\n const compare = this.compareWith();\n const opts = this.resolvedOptions();\n return this.selectionService\n .selectedValues()\n .every((v) => opts.some((o) => compare(o.value, v)));\n });\n\n /** @protected First payload arrived and the consumer is not reporting `loading`. */\n protected readonly _ready = computed(\n () => this._adapter.ready() && !this.loading(),\n );\n\n /**\n * @protected Loading variant: a value is committed but no option resolves its\n * label yet. The trigger is inert (no open) but stays tabbable, shows a\n * spinner instead of the chevron and the i18n loading text instead of a raw\n * value.\n */\n protected readonly _awaitingValueLabel = computed(\n () => this.hasValue() && !this._ready() && !this._allValuesMatched(),\n );\n\n /** @protected Panel spinner row: source-owned loading OR the consumer's `[loading]`. */\n protected readonly _panelLoading = computed(\n () => this._adapter.loading() || this.loading(),\n );\n\n readonly isOpen = signal(false);\n readonly triggerWidth = signal(0);\n\n /**\n * Current text of the in-dropdown search field. Always `''` while the\n * dropdown is closed — closing resets it (see `_onPopupClosed`).\n */\n readonly searchQuery = signal('');\n\n /**\n * The options actually rendered in the panel: locally filtered by\n * {@link searchQuery} while searchable over a local source, the source's\n * items as-is otherwise (a remote source filters server-side, and a\n * non-searchable select never filters).\n */\n readonly filteredOptions = computed(() => {\n const resolved = this.resolvedOptions();\n if (!this.searchable() || this._adapter.mode() === 'remote')\n return resolved;\n return filterOptions(resolved, this.searchQuery(), this.matcher());\n });\n\n /**\n * @private Shared activedescendant bookkeeping over {@link filteredOptions}\n * (searchable mode only) — the same engine behind `mlv-combobox` and\n * `[mlvAutocomplete]`. The count is read lazily, so it always reflects the\n * live filtered list.\n */\n private readonly _activeDescendant = new MlvActiveDescendant(\n () => this.filteredOptions().length,\n );\n\n /**\n * @protected Active option index handed to the panel. Pinned to `-1` while\n * not searchable so the roving-focus panel never renders an active row.\n */\n protected readonly _activeIndex = computed(() =>\n this.searchable() ? this._activeDescendant.index() : -1,\n );\n\n /** @protected `aria-activedescendant` target of the search input, or `null`. */\n protected readonly _activeOptionId = computed(() => {\n const index = this._activeDescendant.index();\n if (index < 0 || index >= this.filteredOptions().length) return null;\n return optionId(this.listboxId(), index);\n });\n\n /**\n * @protected DOM `id` of the in-dropdown search input. Distinct from the\n * trigger's `id()` so both can coexist, and deterministic so the field can be\n * focus-targeted by id once the popup has opened.\n */\n protected readonly _searchInputId = computed(() => `${this.id()}-search`);\n\n /**\n * @protected Whether the trigger owns the combobox semantics. `false` only\n * while the searchable dropdown is open — the search input is the live\n * combobox then, so exactly one `role=\"combobox\"` is ever exposed. The\n * trigger becomes a plain `role=\"button\"` there rather than losing its role:\n * a role-less `<div>` may carry no ARIA state at all, whereas a button that\n * opened a popup legitimately keeps `aria-expanded` / `aria-haspopup` /\n * `aria-controls`. Only `aria-required` (invalid on `button`) is dropped.\n */\n protected readonly _outerIsCombobox = computed(\n () => !(this.searchable() && this.isOpen()),\n );\n\n /**\n * @protected Matched-substring emphasis for the option rows. Only while\n * searching a **local** source — a remote source's results need not contain\n * the query at all.\n */\n protected readonly _highlightQuery = computed(() =>\n this.searchable() && this._adapter.mode() === 'local'\n ? this.searchQuery().trim()\n : '',\n );\n\n /** @protected Resolved search placeholder: explicit input takes precedence over i18n default. */\n protected readonly _resolvedSearchPlaceholder = computed(\n () => this.searchPlaceholder() ?? this._i18n().searchPlaceholder,\n );\n\n /** @private ICU resolver for parameterised i18n strings. */\n private readonly _resolver = inject(MlvI18nResolverService);\n\n /**\n * @protected Polite screen-reader announcement of the current result count.\n * Empty unless the searchable dropdown is open, so no stale count is read out.\n * Mirrors the visible empty-state copy rendered inside the panel.\n */\n protected readonly _resultsAnnouncement = computed(() => {\n if (!this.isOpen() || !this.searchable()) return '';\n const count = this.filteredOptions().length;\n if (count === 0) return this._i18n().noResults;\n return this._resolver.resolve(\n this._i18n() as unknown as Record<string, string>,\n 'resultsAvailable',\n { count },\n );\n });\n\n /** The HTML `id` assigned to the inner listbox element for `aria-controls` linking. */\n readonly listboxId = computed(() => `${this.id()}-listbox`);\n\n /**\n * The HTML `id` assigned to the visible `<mlv-label>` element. The trigger\n * references it via `aria-labelledby` (a `<label for>` cannot name a `<div>`).\n */\n readonly labelId = computed(() => `${this.id()}-label`);\n\n readonly dropdownPositions: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 8,\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -8,\n },\n ];\n\n readonly selectionService = inject(MlvSelectionService);\n\n itemTemplate = contentChild(MlvSelectItemTemplate);\n selectedTemplate = contentChild(MlvSelectSelectedTemplate);\n\n /** @private Reference to the trigger element, used to restore focus after selection. */\n private readonly _triggerElement = viewChild('trigger', { read: ElementRef });\n /** @private Reference to the rendered dropdown panel component. */\n private readonly _dropdownPanel = viewChild(MlvDropdownPanel);\n\n /** @private Raw values last written through a forms binding, pre-normalisation. */\n private _pendingValues: T[] = [];\n\n constructor() {\n super();\n effect(() => {\n this.selectionService.multiple.set(this.multiple());\n });\n effect(() => {\n this.selectionService.compareWith.set(this.compareWith());\n });\n effect(() => {\n this._pendingValues = toAriaValues(this.value());\n // Reads resolvedOptions()/compareWith() → re-runs when options arrive later.\n this._applyPendingValues();\n });\n // A `searchFn` is lazy: the first open is what triggers its initial load.\n effect(() => {\n if (this.isOpen()) untracked(() => this._adapter.ensureLoaded());\n });\n // Latch the eager gate off once a *remote* source has answered — see\n // `_eagerDone`. The mode check matters: an array source is `ready()` from\n // the first tick, so latching on readiness alone would disarm the gate\n // before a `searchFn` bound through a signal/late input ever became the\n // active branch.\n effect(() => {\n if (this._adapter.mode() === 'remote' && this._adapter.ready()) {\n untracked(() => this._eagerDone.set(true));\n }\n });\n // A remote response (or a narrowing local filter) can shrink the list out\n // from under a stale active index. Drop it rather than leave\n // `aria-activedescendant` pointing at a row that no longer exists — and so\n // the next arrow press restarts from the top of the new list.\n effect(() => {\n const count = this.filteredOptions().length;\n untracked(() => {\n if (this._activeDescendant.index() >= count) {\n this._activeDescendant.reset();\n }\n });\n });\n }\n\n get displayValue(): string {\n const values = this.selectionService.selectedValues();\n if (values.length === 0) return '';\n const transform = this.toOption();\n if (values.length === 1) return transform(values[0]).label;\n return `${values.length} items selected`;\n }\n\n /**\n * Toggles the dropdown. Closing is always allowed — a panel opened before the\n * control turned inert (a late `[loading]`, a value written under an open\n * list) must stay dismissable from its own trigger; only opening is gated.\n */\n toggleDropdown(): void {\n if (this.isOpen()) {\n this.isOpen.set(false);\n return;\n }\n if (this._isInert()) return;\n this.isOpen.set(true);\n }\n\n setInitialFocus(): void {\n this._triggerElement()?.nativeElement.focus();\n }\n\n /**\n * Focuses the trigger and opens the dropdown. Focus moves even while merely\n * awaiting a value's label — this is the label's click target, and a click on\n * a field's label must always land the caret on that field; only the open is\n * suppressed. A **disabled** field is the exception: it takes neither the\n * caret nor the open (the trigger's `tabindex=\"-1\"` would still accept\n * programmatic focus).\n */\n openDropdown(): void {\n if (this.computedDisabled()) return;\n this.setInitialFocus();\n if (this._isInert()) return;\n this.isOpen.set(true);\n }\n\n /**\n * @protected Trigger keyboard open. ArrowUp / ArrowDown open the dropdown and\n * move focus onto the first option (`focusFirst`); Home / End only open it,\n * leaving the roving focus where the panel puts it. No-op while inert, but the\n * default is always prevented so a still-resolving trigger never scrolls the\n * page instead.\n *\n * The focus request is roving-mode only: a searchable dropdown hands focus to\n * its search input instead (`_onPopupOpened`), and pulling it onto an option\n * would break the activedescendant model.\n */\n protected _openFromKey(event: Event, focusFirst: boolean): void {\n event.preventDefault();\n if (this._isInert()) return;\n this.isOpen.set(true);\n if (focusFirst && !this.searchable()) {\n this.selectionService.requestFocusFirst();\n }\n }\n\n /**\n * @protected Whether every open / interaction path is suppressed: the control\n * is disabled, or a committed value's label is still resolving (the trigger\n * stays tabbable and readable, but must not open a list that cannot yet show\n * the current selection).\n */\n protected _isInert(): boolean {\n return this.computedDisabled() || this._awaitingValueLabel();\n }\n\n /**\n * Handles a selection change emitted by the aria listbox panel. The panel\n * always emits the flat `V[]` array that `@angular/aria`'s `ngListbox`\n * models; {@link fromAriaValues} collapses it back to the public forms value\n * shape (`T` for single-select, `T[]` for multi-select, `null` when cleared).\n *\n * aria re-emits its value whenever the *rendered* option set changes (an\n * async load landing while the panel is open, later search filtering) — those\n * reconciliation emits are ignored via the shared guard, so they can never\n * wipe the committed value. A genuine multi-select pick re-adds the committed\n * values aria dropped only because their option is not rendered.\n */\n selectOption(values: readonly T[]): void {\n const committed = this.selectionService.selectedValues();\n const visible = this._visibleValues();\n const compare = this.compareWith();\n if (isReconciliationEmit(values, committed, visible, compare)) return;\n const next = this.multiple()\n ? [\n ...values,\n ...filteredOutCommitted(values, committed, visible, compare),\n ]\n : [...values];\n this._commitSelection(next);\n }\n\n /**\n * @private Writes a genuine selection — the single commit path shared by the\n * panel's `valueChange` and the search field's Enter. Single-select closes the\n * dropdown and returns focus to the trigger; multi-select stays open so the\n * next option can be picked.\n */\n private _commitSelection(next: T[]): void {\n if (!this.multiple()) {\n this.isOpen.set(false);\n this.setInitialFocus();\n }\n this.value.set(fromAriaValues(next, this.multiple()));\n this.selectionService.setValues(next);\n this._markTouched();\n }\n\n /**\n * @protected Values of the options currently rendered in the panel (the\n * reconciliation guard's \"visible\" set) — the filtered set while searching.\n */\n protected _visibleValues(): T[] {\n return this.filteredOptions().map((o) => o.value);\n }\n\n // ─── In-dropdown search field ────────────────────────────────────────────\n\n /**\n * @protected Search-field input. Local sources narrow {@link filteredOptions}\n * instantly; remote ones are asked (debounced) instead, because filtering\n * locally as well would hide server results and empty the list while a newer\n * query is still in flight.\n */\n protected _onSearchInput(event: Event): void {\n const value = (event.target as HTMLInputElement).value;\n this.searchQuery.set(value);\n this._activeDescendant.reset();\n if (this._adapter.mode() === 'remote') this._adapter.search(value);\n }\n\n /** @protected ArrowDown — activate the next option (wrap-around). */\n protected _onSearchArrowDown(event: Event): void {\n event.preventDefault();\n this._activeDescendant.move(1);\n }\n\n /** @protected ArrowUp — activate the previous option (wrap-around). */\n protected _onSearchArrowUp(event: Event): void {\n event.preventDefault();\n this._activeDescendant.move(-1);\n }\n\n /** @protected Home — activate the first option. */\n protected _onSearchHome(event: Event): void {\n event.preventDefault();\n this._activeDescendant.first();\n }\n\n /** @protected End — activate the last option. */\n protected _onSearchEnd(event: Event): void {\n event.preventDefault();\n this._activeDescendant.last();\n }\n\n /**\n * @protected Enter — commit the active option (APG \"Enter selects active\").\n * No-op when nothing is active. Multi-select toggles the option and resets the\n * active index so the narrowed list is navigated from the top again.\n */\n protected _onSearchEnter(event: Event): void {\n event.preventDefault();\n const index = this._activeDescendant.index();\n const opts = this.filteredOptions();\n if (index < 0 || index >= opts.length) return;\n const picked = opts[index].value;\n const compare = this.compareWith();\n const committed = this.selectionService.selectedValues();\n const next = this.multiple()\n ? committed.some((v) => compare(v, picked))\n ? committed.filter((v) => !compare(v, picked))\n : [...committed, picked]\n : [picked];\n this._commitSelection(next);\n if (this.multiple()) this._activeDescendant.reset();\n }\n\n /** @protected Escape — closes the dropdown (the close resets the query). */\n protected _onSearchEscape(event: Event): void {\n event.preventDefault();\n this.isOpen.set(false);\n }\n\n /**\n * @protected Tab / Shift+Tab — closes the dropdown. The default is prevented\n * because the search field lives in a detached overlay: letting Tab run would\n * move focus to whatever follows the overlay in the DOM rather than to the\n * field after the select. `_onPopupClosed` puts focus back on the trigger.\n */\n protected _onSearchTab(event: Event): void {\n event.preventDefault();\n this.isOpen.set(false);\n }\n\n /**\n * @protected Panel `mousedown`. In searchable mode the default is prevented\n * so pointing at an option (or the scrollbar) cannot blur the search input —\n * the activedescendant model and the open state both depend on focus staying\n * there. It must stay a **method**: an inline `searchable() && preventDefault()`\n * expression evaluates to `false` on the non-searchable path, and Angular\n * treats a `false` listener return as `preventDefault()`, which would swallow\n * the default for every select dropdown (breaking roving focus transfer to a\n * clicked option and text selection).\n */\n protected _onPanelMousedown(event: MouseEvent): void {\n if (this.searchable()) event.preventDefault();\n }\n\n /**\n * @protected After the popup opens: hand focus to the search field. The input\n * is stamped inside the overlay (a detached embedded view), so it is not\n * reachable through this component's view queries — locate it by its\n * deterministic id, the same pattern `mlv-combobox` / `mlv-day-picker` use.\n * The lazy first load is triggered by the `isOpen` effect, not here.\n */\n protected _onPopupOpened(): void {\n if (!this.searchable()) return;\n document.getElementById(this._searchInputId())?.focus();\n }\n\n /**\n * @protected After the popup closes: restore focus to the trigger and (when\n * searchable) drop the query, so the next open starts from the full list. A\n * remote source is re-asked for `''` once, otherwise a blank search field\n * would sit above a list still filtered by the previous query.\n */\n protected _onPopupClosed(): void {\n this.setInitialFocus();\n if (!this.searchable()) return;\n this._activeDescendant.reset();\n if (this.searchQuery() !== '') {\n this.searchQuery.set('');\n if (this._adapter.mode() === 'remote') this._adapter.search('');\n }\n }\n\n override setFocused(isFocused = true): void {\n this._focused.set(isFocused);\n }\n\n /** @protected Marks the select touched when its trigger loses focus. */\n protected _onTriggerBlur(): void {\n this.setFocused(false);\n this._markTouched();\n }\n\n updateTriggerWidth(evt: ResizeObserverEntry[]): void {\n this.triggerWidth.set(evt[0].target.getBoundingClientRect().width);\n }\n\n /** Whether the control holds a clearable value — At least one option selected. */\n readonly hasValue = computed(\n () => this.selectionService.selectedValues().length > 0,\n );\n\n /**\n * The select renders its own clear button overlaid in the trigger row,\n * before the chevron — the wrapper must not render its trailing copy.\n */\n readonly ownsClearButton = computed(() => true);\n\n /**\n * @protected Whether the inline clear affordance is visible: clearable, a\n * value present, and the control interactive. Shared by the template's @if\n * and the trigger's padding-reserve class.\n *\n * Deliberately **not** gated on {@link _awaitingValueLabel}: the loading\n * variant makes every open path inert, so the clear button is the only\n * escape hatch left when a source never answers. `onClear()` works there —\n * dropping the value clears `hasValue()`, which ends the variant.\n */\n protected readonly _showClear = computed(\n () =>\n this.clearable() &&\n this.hasValue() &&\n !this.computedDisabled() &&\n !this.readonly(),\n );\n\n /** Clears the selection, writes the cleared forms value, and marks touched. */\n onClear(): void {\n this.selectionService.clear();\n this.value.set(fromAriaValues([], this.multiple()));\n this._markTouched();\n }\n\n /**\n * @private Syncs the selection service (the aria listbox panel's `value`\n * source) from the values last written through a forms binding. Each pending\n * value is matched against the current options via {@link compareWith} and\n * replaced by the option's own instance, so the check-marks and the displayed\n * label agree — and a value written before its options exist resolves as soon\n * as they arrive (the caller effect tracks `resolvedOptions()`).\n */\n private _applyPendingValues(): void {\n const compare = this.compareWith();\n const opts = this.resolvedOptions();\n const normalized = this._pendingValues.map(\n (v) => opts.find((o) => compare(o.value, v))?.value ?? v,\n );\n this.selectionService.setValues(normalized);\n }\n}\n","<mlv-form-control-wrapper>\n @if (label() || hint()) {\n <mlv-label\n [id]=\"labelId()\"\n [for]=\"id()\"\n [required]=\"required()\"\n (click)=\"openDropdown()\"\n >\n {{ label() }} @if (hint()) {\n <mlv-hint>{{ hint() }}</mlv-hint>\n }\n </mlv-label>\n }\n\n <ng-template mlvFormControlWrapperControl>\n <mlv-popup-container class=\"mlv-select__popup-container\">\n <div\n class=\"mlv-select__trigger\"\n [class.mlv-select__trigger--with-clear]=\"_showClear()\"\n [id]=\"id()\"\n [hostRole]=\"_outerIsCombobox() ? 'combobox' : 'button'\"\n [disabled]=\"computedDisabled()\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-haspopup]=\"'listbox'\"\n [attr.aria-controls]=\"isOpen() ? listboxId() : null\"\n [attr.aria-disabled]=\"computedDisabled() || null\"\n [attr.aria-labelledby]=\"label() ? labelId() : null\"\n [attr.aria-label]=\"label() ? null : ariaLabel()\"\n [attr.aria-required]=\"_outerIsCombobox() && required() ? true : null\"\n [attr.aria-describedby]=\"_describedBy()\"\n [attr.aria-busy]=\"_awaitingValueLabel() || null\"\n mlvResizeObserver\n #trigger\n (resized)=\"updateTriggerWidth($event)\"\n (mlvClick)=\"toggleDropdown()\"\n (keydown.arrowDown)=\"_openFromKey($event, true)\"\n (keydown.arrowUp)=\"_openFromKey($event, true)\"\n (keydown.home)=\"_openFromKey($event, false)\"\n (keydown.end)=\"_openFromKey($event, false)\"\n (keydown.escape)=\"isOpen.set(false)\"\n (focus)=\"setFocused(true)\"\n (blur)=\"_onTriggerBlur()\"\n >\n <!-- While a committed value's label is still resolving the trigger shows\n the i18n loading text instead of a raw (often unreadable) value. -->\n @if (_awaitingValueLabel()) {\n <span class=\"mlv-select__placeholder\">{{ _i18n().loading }}</span>\n } @else if (displayValue) {\n <span class=\"mlv-select__value\">\n @if (selectedTemplate(); as templateTpl) {\n <ng-container\n *ngTemplateOutlet=\"templateTpl.templateRef; context: { $implicit: selectionService.selectedValues() }\"\n />\n } @else { {{ displayValue }} }\n </span>\n } @else {\n <span class=\"mlv-select__placeholder\"\n >{{ _resolvedPlaceholder() }}</span\n >\n }\n <span class=\"mlv-select__arrow\">\n <!-- The chevron is replaced by a spinner while the value's label\n resolves — the trigger is inert then, so the affordance would be\n a dead control. -->\n @if (_awaitingValueLabel()) {\n <mlv-loader\n variant=\"circle\"\n indeterminate\n [size]=\"18\"\n [strokeWidth]=\"2\"\n [ariaLabel]=\"_i18n().loading\"\n />\n } @else {\n <svg size=\"20\" lucideChevronDown></svg>\n }\n </span>\n </div>\n\n @if (_showClear()) {\n <!-- DOM sibling of the role=\"combobox\" trigger (a button nested inside it\n would trip nested-interactive); CSS overlays it just BEFORE the\n chevron. Tab order: trigger, then clear. -->\n <mlv-button-close\n class=\"mlv-select__clear\"\n (mlvClick)=\"onClear()\"\n mlvDensity=\"tight\"\n [ariaLabel]=\"_formI18n().clear\"\n />\n }\n\n <mlv-popup\n [(opened)]=\"isOpen\"\n [width]=\"triggerWidth()\"\n [hasShadow]=\"true\"\n [flexibleDimensions]=\"true\"\n [positions]=\"dropdownPositions\"\n [mobileMode]=\"mobileMode()\"\n [mobileTitle]=\"_resolvedMobileTitle()\"\n [mlvDensity]=\"mlvDensity()\"\n class=\"mlv-select__popup\"\n (afterOpened)=\"_onPopupOpened()\"\n (afterClosed)=\"_onPopupClosed()\"\n >\n @if (searchable()) {\n <!-- Pinned first row of the dropdown: projected into the popup's pinned\n slot, so it sits above the scroll region and a long option list can\n never push it out of view. While the dropdown is open this input —\n not the trigger — is the single exposed role=\"combobox\". -->\n <ng-template mlvPopupPinnedContent>\n <div class=\"mlv-select__search\">\n <svg\n class=\"mlv-select__search-icon\"\n lucideSearch\n size=\"16\"\n aria-hidden=\"true\"\n ></svg>\n <mlv-input\n bare\n class=\"mlv-select__search-input\"\n [id]=\"_searchInputId()\"\n [role]=\"'combobox'\"\n [ariaExpanded]=\"true\"\n [ariaHasPopup]=\"'listbox'\"\n [ariaAutocomplete]=\"'list'\"\n [ariaControls]=\"listboxId()\"\n [ariaActiveDescendant]=\"_activeOptionId()\"\n [ariaLabel]=\"label() || _resolvedPlaceholder()\"\n [required]=\"required()\"\n [placeholder]=\"_resolvedSearchPlaceholder()\"\n [value]=\"searchQuery()\"\n [autocomplete]=\"'off'\"\n (input)=\"_onSearchInput($event)\"\n (keydown.arrowDown)=\"_onSearchArrowDown($event)\"\n (keydown.arrowUp)=\"_onSearchArrowUp($event)\"\n (keydown.home)=\"_onSearchHome($event)\"\n (keydown.end)=\"_onSearchEnd($event)\"\n (keydown.enter)=\"_onSearchEnter($event)\"\n (keydown.escape)=\"_onSearchEscape($event)\"\n (keydown.tab)=\"_onSearchTab($event)\"\n (keydown.shift.tab)=\"_onSearchTab($event)\"\n />\n </div>\n </ng-template>\n }\n\n <ng-template mlvPopupContent>\n <!-- Keep DOM focus in the search input while pointing at options\n (activedescendant model): prevent the mousedown from blurring it\n so the active index and the open state survive option clicks.\n Routed through a method, not an inline `searchable() && …`\n expression — a `false` listener return means preventDefault() to\n Angular, which would swallow the default on the non-searchable\n path too. The pinned search row deliberately stays outside this\n wrapper: swallowing its mousedown would make the input\n unclickable. -->\n <div\n class=\"mlv-select__panel\"\n (mousedown)=\"_onPanelMousedown($event)\"\n >\n <mlv-dropdown-panel\n scrollMode=\"parent\"\n [options]=\"filteredOptions()\"\n [multiple]=\"multiple()\"\n [selectedValues]=\"selectionService.selectedValues()\"\n [itemTemplate]=\"itemTemplate()?.templateRef ?? null\"\n [listboxId]=\"listboxId()\"\n [focusMode]=\"searchable() ? 'activedescendant' : 'roving'\"\n [activeIndex]=\"_activeIndex()\"\n [highlightQuery]=\"_highlightQuery()\"\n [loading]=\"_panelLoading()\"\n [loadingText]=\"_i18n().loading\"\n [hasMore]=\"_adapter.hasMore()\"\n [loadingMore]=\"_adapter.loadingMore()\"\n (loadMore)=\"_adapter.loadMore()\"\n (valueChange)=\"selectOption($event)\"\n >\n @if (searchable()) {\n <div class=\"mlv-select__empty\">{{ _i18n().noResults }}</div>\n }\n </mlv-dropdown-panel>\n </div>\n </ng-template>\n </mlv-popup>\n </mlv-popup-container>\n\n <!-- Polite announcement of the current result count for screen-reader\n users (searchable + open only). -->\n <div class=\"mlv-select__sr-status\" aria-live=\"polite\" role=\"status\">\n {{ _resultsAnnouncement() }}\n </div>\n </ng-template>\n\n @if (description()) {\n <mlv-description [id]=\"_descriptionId()\">{{ description() }}</mlv-description>\n } @if (message()) {\n <mlv-message [id]=\"_messageId()\" [state]=\"resolvedState()\">\n {{ message() }}\n </mlv-message>\n }\n</mlv-form-control-wrapper>\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-option.js","sourceRoot":"","sources":["../../../../../../libs/core/select/src/lib/select-option.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC","sourcesContent":["export * from '@malva-ui/core/dropdown';\n"]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Directive } from '@angular/core';
|
|
2
|
+
import { MlvStructural } from '@malva-ui/cdk/utils';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class MlvSelectListTemplate extends MlvStructural {
|
|
5
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvSelectListTemplate, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
6
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: MlvSelectListTemplate, isStandalone: true, selector: "[mlvSelectListTemplate]", usesInheritance: true, ngImport: i0 });
|
|
7
|
+
}
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvSelectListTemplate, decorators: [{
|
|
9
|
+
type: Directive,
|
|
10
|
+
args: [{
|
|
11
|
+
selector: '[mlvSelectListTemplate]',
|
|
12
|
+
}]
|
|
13
|
+
}] });
|
|
14
|
+
export class MlvSelectItemTemplate extends MlvStructural {
|
|
15
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvSelectItemTemplate, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
16
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: MlvSelectItemTemplate, isStandalone: true, selector: "[mlvSelectItemTemplate]", usesInheritance: true, ngImport: i0 });
|
|
17
|
+
}
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvSelectItemTemplate, decorators: [{
|
|
19
|
+
type: Directive,
|
|
20
|
+
args: [{
|
|
21
|
+
selector: '[mlvSelectItemTemplate]',
|
|
22
|
+
}]
|
|
23
|
+
}] });
|
|
24
|
+
export class MlvSelectSelectedTemplate extends MlvStructural {
|
|
25
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvSelectSelectedTemplate, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
26
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: MlvSelectSelectedTemplate, isStandalone: true, selector: "[mlvSelectSelectedTemplate]", usesInheritance: true, ngImport: i0 });
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvSelectSelectedTemplate, decorators: [{
|
|
29
|
+
type: Directive,
|
|
30
|
+
args: [{
|
|
31
|
+
selector: '[mlvSelectSelectedTemplate]',
|
|
32
|
+
}]
|
|
33
|
+
}] });
|
|
34
|
+
//# sourceMappingURL=select-template.directives.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-template.directives.js","sourceRoot":"","sources":["../../../../../../libs/core/select/src/lib/select-template.directives.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;;AAKpD,MAAM,OAAO,qBAAsB,SAAQ,aAAa;uGAA3C,qBAAqB;2FAArB,qBAAqB;;2FAArB,qBAAqB;kBAHjC,SAAS;mBAAC;oBACT,QAAQ,EAAE,yBAAyB;iBACpC;;AAMD,MAAM,OAAO,qBAAsB,SAAQ,aAAa;uGAA3C,qBAAqB;2FAArB,qBAAqB;;2FAArB,qBAAqB;kBAHjC,SAAS;mBAAC;oBACT,QAAQ,EAAE,yBAAyB;iBACpC;;AAMD,MAAM,OAAO,yBAA0B,SAAQ,aAAa;uGAA/C,yBAAyB;2FAAzB,yBAAyB;;2FAAzB,yBAAyB;kBAHrC,SAAS;mBAAC;oBACT,QAAQ,EAAE,6BAA6B;iBACxC","sourcesContent":["import { Directive } from '@angular/core';\nimport { MlvStructural } from '@malva-ui/cdk/utils';\n\n@Directive({\n selector: '[mlvSelectListTemplate]',\n})\nexport class MlvSelectListTemplate extends MlvStructural {}\n\n@Directive({\n selector: '[mlvSelectItemTemplate]',\n})\nexport class MlvSelectItemTemplate extends MlvStructural {}\n\n@Directive({\n selector: '[mlvSelectSelectedTemplate]',\n})\nexport class MlvSelectSelectedTemplate extends MlvStructural {}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"malva-ui-core-select.js","sourceRoot":"","sources":["../../../../../libs/core/select/src/malva-ui-core-select.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC","sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export * from './lib/sidebar/sidebar';
|
|
2
|
+
export * from './lib/sidebar-group/sidebar-group';
|
|
3
|
+
export * from './lib/sidebar-item/sidebar-item';
|
|
4
|
+
export * from './lib/sidebar-item-icon';
|
|
5
|
+
export * from './lib/sidebar-item-host';
|
|
6
|
+
export * from './lib/sidebar-context';
|
|
7
|
+
export * from './lib/sidebar-mode';
|
|
8
|
+
export * from './lib/sidebar-header';
|
|
9
|
+
export * from './lib/sidebar-footer';
|
|
10
|
+
export * from './lib/sidebar-content';
|
|
11
|
+
export * from './lib/sidebar-rail/sidebar-rail';
|
|
12
|
+
export * from './lib/sidebar-trigger/sidebar-trigger';
|
|
13
|
+
export * from './lib/sidebar-workspace/sidebar-workspace';
|
|
14
|
+
export * from './lib/sidebar-workspace/sidebar-workspace.directives';
|
|
15
|
+
export * from './lib/sidebar-workspace/sidebar-workspace.types';
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/core/sidebar/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AACtD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sDAAsD,CAAC;AACrE,cAAc,iDAAiD,CAAC","sourcesContent":["export * from './lib/sidebar/sidebar';\nexport * from './lib/sidebar-group/sidebar-group';\nexport * from './lib/sidebar-item/sidebar-item';\nexport * from './lib/sidebar-item-icon';\nexport * from './lib/sidebar-item-host';\nexport * from './lib/sidebar-context';\nexport * from './lib/sidebar-mode';\nexport * from './lib/sidebar-header';\nexport * from './lib/sidebar-footer';\nexport * from './lib/sidebar-content';\nexport * from './lib/sidebar-rail/sidebar-rail';\nexport * from './lib/sidebar-trigger/sidebar-trigger';\nexport * from './lib/sidebar-workspace/sidebar-workspace';\nexport * from './lib/sidebar-workspace/sidebar-workspace.directives';\nexport * from './lib/sidebar-workspace/sidebar-workspace.types';\n"]}
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, contentChild, effect, forwardRef, inject, model, input, untracked, } from '@angular/core';
|
|
2
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
3
|
+
import { clamp, MlvBreakpointService } from '@malva-ui/cdk/utils';
|
|
4
|
+
import { SIDEBAR_CONTEXT } from '../sidebar-context';
|
|
5
|
+
import { MlvSidebarHeader } from '../sidebar-header';
|
|
6
|
+
import { MlvSidebarFooter } from '../sidebar-footer';
|
|
7
|
+
import { SidebarContentDirective } from '../sidebar-content';
|
|
8
|
+
import { NgTemplateOutlet } from '@angular/common';
|
|
9
|
+
import { MlvDrawer, MlvDrawerContent } from '@malva-ui/core/drawer';
|
|
10
|
+
import { MLV_SIDEBAR_I18N } from '@malva-ui/i18n';
|
|
11
|
+
import { MlvScrollbar } from '@malva-ui/core/scrollbar';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
export class MlvSidebar {
|
|
14
|
+
/** @protected The component's i18n strings signal. */
|
|
15
|
+
_i18n = inject(MLV_SIDEBAR_I18N);
|
|
16
|
+
/**
|
|
17
|
+
* @private Signal-based viewport breakpoint service. Wraps the CDK
|
|
18
|
+
* `BreakpointObserver`, so it is SSR-safe — no direct `matchMedia` access.
|
|
19
|
+
*/
|
|
20
|
+
_breakpoint = inject(MlvBreakpointService);
|
|
21
|
+
/**
|
|
22
|
+
* @private Collapsed value captured when the responsive override kicked in,
|
|
23
|
+
* so leaving the breakpoint restores what the author/user had before.
|
|
24
|
+
* `null` while no responsive override is active.
|
|
25
|
+
*/
|
|
26
|
+
_collapsedBeforeAutoOffcanvas = null;
|
|
27
|
+
/**
|
|
28
|
+
* Controls expanded vs. collapsed (icon-only) mode.
|
|
29
|
+
* Accepts truthy strings via `coerceBooleanProperty`.
|
|
30
|
+
* Two-way bindable via `[(collapsed)]`.
|
|
31
|
+
*/
|
|
32
|
+
collapsed = model(false, /* @ts-ignore */
|
|
33
|
+
...(ngDevMode ? [{ debugName: "collapsed" }] : /* istanbul ignore next */ []));
|
|
34
|
+
/**
|
|
35
|
+
* Total width of the sidebar host when expanded, including border and padding.
|
|
36
|
+
* Two-way bindable — updated by `setWidth()` during rail drag.
|
|
37
|
+
*/
|
|
38
|
+
width = model('260px', /* @ts-ignore */
|
|
39
|
+
...(ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []));
|
|
40
|
+
/**
|
|
41
|
+
* Total width of the sidebar host when collapsed, including border and padding.
|
|
42
|
+
*/
|
|
43
|
+
collapsedWidth = input('56px', /* @ts-ignore */
|
|
44
|
+
...(ngDevMode ? [{ debugName: "collapsedWidth" }] : /* istanbul ignore next */ []));
|
|
45
|
+
/**
|
|
46
|
+
* MlvLayout mode controlling how the sidebar renders and collapses.
|
|
47
|
+
* - `'icon'` — collapses to an icon-only rail (default).
|
|
48
|
+
* - `'offcanvas'` — slides off-screen when collapsed.
|
|
49
|
+
* - `'floating'` — floats over content when expanded.
|
|
50
|
+
* - `'fixed'` — always fully expanded; collapse is a no-op.
|
|
51
|
+
*/
|
|
52
|
+
mode = input('icon', /* @ts-ignore */
|
|
53
|
+
...(ngDevMode ? [{ debugName: "mode" }] : /* istanbul ignore next */ []));
|
|
54
|
+
/**
|
|
55
|
+
* Viewport breakpoint below which the sidebar automatically behaves as an
|
|
56
|
+
* `'offcanvas'` drawer, regardless of {@link mode}.
|
|
57
|
+
*
|
|
58
|
+
* `null` (the default) keeps the sidebar on {@link mode} at every width.
|
|
59
|
+
* Setting it to `'md'` makes the sidebar an overlay drawer below 768px — it
|
|
60
|
+
* closes itself on entering that range, opens from a `mlv-sidebar-trigger`,
|
|
61
|
+
* and dismisses on Escape, backdrop click, or focus leaving the drawer, like
|
|
62
|
+
* any `mode="offcanvas"` sidebar. The previous collapsed state is restored
|
|
63
|
+
* when the viewport grows back past the breakpoint.
|
|
64
|
+
*
|
|
65
|
+
* Thresholds come from `MLV_BREAKPOINT_CONFIG` (`provideMlvBreakpoints()`),
|
|
66
|
+
* so they stay in sync with the SCSS `breakpoint-*` mixins.
|
|
67
|
+
*/
|
|
68
|
+
collapseBelow = input(null, /* @ts-ignore */
|
|
69
|
+
...(ngDevMode ? [{ debugName: "collapseBelow" }] : /* istanbul ignore next */ []));
|
|
70
|
+
/**
|
|
71
|
+
* When true, the sidebar stretches to full viewport height.
|
|
72
|
+
* Adds the `mlv-sidebar--full-height` modifier class.
|
|
73
|
+
*/
|
|
74
|
+
fullHeight = input(false, { ...(ngDevMode ? { debugName: "fullHeight" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
|
|
75
|
+
/**
|
|
76
|
+
* Accessible name for the `navigation` landmark.
|
|
77
|
+
*
|
|
78
|
+
* Set this whenever a page renders more than one sidebar (or another
|
|
79
|
+
* `navigation` landmark) so assistive technology can tell them apart.
|
|
80
|
+
* When omitted, the localized `MLV_SIDEBAR_I18N.navigation` default is used.
|
|
81
|
+
*
|
|
82
|
+
* Note: a plain `aria-label` attribute on `<mlv-sidebar>` cannot be used for
|
|
83
|
+
* this — the host binding owns the attribute and would overwrite it.
|
|
84
|
+
*/
|
|
85
|
+
ariaLabel = input(undefined, /* @ts-ignore */
|
|
86
|
+
...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
|
|
87
|
+
/**
|
|
88
|
+
* Minimum width in pixels the sidebar may be resized to via the drag rail.
|
|
89
|
+
*/
|
|
90
|
+
minWidth = input(200, /* @ts-ignore */
|
|
91
|
+
...(ngDevMode ? [{ debugName: "minWidth" }] : /* istanbul ignore next */ []));
|
|
92
|
+
/**
|
|
93
|
+
* Maximum width in pixels the sidebar may be resized to via the drag rail.
|
|
94
|
+
*/
|
|
95
|
+
maxWidth = input(480, /* @ts-ignore */
|
|
96
|
+
...(ngDevMode ? [{ debugName: "maxWidth" }] : /* istanbul ignore next */ []));
|
|
97
|
+
/**
|
|
98
|
+
* @private True when {@link collapseBelow} is set and the viewport is
|
|
99
|
+
* narrower than that breakpoint.
|
|
100
|
+
*/
|
|
101
|
+
_isBelowCollapseBreakpoint = computed(() => {
|
|
102
|
+
const breakpoint = this.collapseBelow();
|
|
103
|
+
return breakpoint !== null && this._breakpoint.isDown(breakpoint)();
|
|
104
|
+
}, /* @ts-ignore */
|
|
105
|
+
...(ngDevMode ? [{ debugName: "_isBelowCollapseBreakpoint" }] : /* istanbul ignore next */ []));
|
|
106
|
+
/**
|
|
107
|
+
* The layout mode actually in effect.
|
|
108
|
+
*
|
|
109
|
+
* Equals {@link mode} unless {@link collapseBelow} is set and the viewport is
|
|
110
|
+
* narrower than that breakpoint, in which case it is `'offcanvas'`. Bind
|
|
111
|
+
* against this (not `mode`) when mirroring the sidebar's layout elsewhere.
|
|
112
|
+
*/
|
|
113
|
+
effectiveMode = computed(() => this._isBelowCollapseBreakpoint() ? 'offcanvas' : this.mode(), /* @ts-ignore */
|
|
114
|
+
...(ngDevMode ? [{ debugName: "effectiveMode" }] : /* istanbul ignore next */ []));
|
|
115
|
+
/**
|
|
116
|
+
* Effective collapsed state. Always `false` in `'fixed'` mode so the sidebar
|
|
117
|
+
* never visually collapses regardless of the `collapsed` model value.
|
|
118
|
+
*/
|
|
119
|
+
_effectiveCollapsed = computed(() => this.effectiveMode() !== 'fixed' && this.collapsed(), /* @ts-ignore */
|
|
120
|
+
...(ngDevMode ? [{ debugName: "_effectiveCollapsed" }] : /* istanbul ignore next */ []));
|
|
121
|
+
/**
|
|
122
|
+
* @protected Accessible name bound to the host `aria-label`. Prefers the
|
|
123
|
+
* author-supplied {@link ariaLabel} and falls back to the localized default.
|
|
124
|
+
*/
|
|
125
|
+
_resolvedAriaLabel = computed(() => this.ariaLabel() ?? this._i18n().navigation, /* @ts-ignore */
|
|
126
|
+
...(ngDevMode ? [{ debugName: "_resolvedAriaLabel" }] : /* istanbul ignore next */ []));
|
|
127
|
+
/** @protected Header slot directive reference. */
|
|
128
|
+
_headerRef = contentChild(MlvSidebarHeader, /* @ts-ignore */
|
|
129
|
+
...(ngDevMode ? [{ debugName: "_headerRef" }] : /* istanbul ignore next */ []));
|
|
130
|
+
/** @protected Footer slot directive reference. */
|
|
131
|
+
_footerRef = contentChild(MlvSidebarFooter, /* @ts-ignore */
|
|
132
|
+
...(ngDevMode ? [{ debugName: "_footerRef" }] : /* istanbul ignore next */ []));
|
|
133
|
+
/** @protected Content slot directive reference. */
|
|
134
|
+
_contentRef = contentChild(SidebarContentDirective, /* @ts-ignore */
|
|
135
|
+
...(ngDevMode ? [{ debugName: "_contentRef" }] : /* istanbul ignore next */ []));
|
|
136
|
+
/** @protected True when at least one slot directive is projected. */
|
|
137
|
+
_hasSlots = computed(() => !!(this._headerRef() || this._footerRef() || this._contentRef()), /* @ts-ignore */
|
|
138
|
+
...(ngDevMode ? [{ debugName: "_hasSlots" }] : /* istanbul ignore next */ []));
|
|
139
|
+
constructor() {
|
|
140
|
+
// Entering the responsive offcanvas range must start closed — an open
|
|
141
|
+
// drawer covering the page on a viewport change is never what the author
|
|
142
|
+
// asked for. Leaving the range restores the pre-override collapsed value.
|
|
143
|
+
effect(() => {
|
|
144
|
+
const below = this._isBelowCollapseBreakpoint();
|
|
145
|
+
untracked(() => {
|
|
146
|
+
if (below) {
|
|
147
|
+
if (this._collapsedBeforeAutoOffcanvas === null) {
|
|
148
|
+
this._collapsedBeforeAutoOffcanvas = this.collapsed();
|
|
149
|
+
this.collapsed.set(true);
|
|
150
|
+
}
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
if (this._collapsedBeforeAutoOffcanvas !== null) {
|
|
154
|
+
this.collapsed.set(this._collapsedBeforeAutoOffcanvas);
|
|
155
|
+
this._collapsedBeforeAutoOffcanvas = null;
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Toggles the sidebar between collapsed and expanded.
|
|
162
|
+
* This is a no-op when the effective mode is `'fixed'`.
|
|
163
|
+
*/
|
|
164
|
+
toggle() {
|
|
165
|
+
if (this.effectiveMode() === 'fixed')
|
|
166
|
+
return;
|
|
167
|
+
this.collapsed.update((v) => !v);
|
|
168
|
+
}
|
|
169
|
+
/** Set the sidebar width in pixels. Clamps to the [minWidth, maxWidth] range. */
|
|
170
|
+
setWidth(px) {
|
|
171
|
+
const clamped = clamp(px, this.minWidth(), this.maxWidth());
|
|
172
|
+
this.width.set(`${clamped}px`);
|
|
173
|
+
}
|
|
174
|
+
/** @protected Syncs drawer open/close back to collapsed model. */
|
|
175
|
+
_onDrawerOpenedChange(opened) {
|
|
176
|
+
this.collapsed.set(!opened);
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* @protected Handles `ArrowDown`/`ArrowUp` keydown events on the sidebar container
|
|
180
|
+
* to move focus between focusable sidebar items and group triggers in DOM order.
|
|
181
|
+
* Wraps around at the list boundaries and skips elements inside `.cdk-overlay-container`.
|
|
182
|
+
*/
|
|
183
|
+
onContainerKeydown(event) {
|
|
184
|
+
const e = event;
|
|
185
|
+
if (e.key !== 'ArrowDown' && e.key !== 'ArrowUp')
|
|
186
|
+
return;
|
|
187
|
+
e.preventDefault();
|
|
188
|
+
const container = e.currentTarget;
|
|
189
|
+
// Collect the focus target for each navigable row in DOM order. A
|
|
190
|
+
// `mlv-sidebar-item` may itself be focusable (button-style rows) or defer
|
|
191
|
+
// to a projected link/button (navigational rows), so resolve each to its
|
|
192
|
+
// actual focus target and de-duplicate.
|
|
193
|
+
const items = [];
|
|
194
|
+
const seen = new Set();
|
|
195
|
+
const add = (el) => {
|
|
196
|
+
if (el && !seen.has(el) && !el.closest('.cdk-overlay-container')) {
|
|
197
|
+
seen.add(el);
|
|
198
|
+
items.push(el);
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
container
|
|
202
|
+
.querySelectorAll('mlv-sidebar-item, .mlv-sidebar-group__header, .mlv-sidebar-group__icon-btn, button, a[href]')
|
|
203
|
+
.forEach((el) => {
|
|
204
|
+
if (el.tagName.toLowerCase() === 'mlv-sidebar-item') {
|
|
205
|
+
add(el.hasAttribute('tabindex')
|
|
206
|
+
? el
|
|
207
|
+
: el.querySelector('a[href], button, [tabindex]'));
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
// Focusable elements inside a sidebar item are resolved via the item above.
|
|
211
|
+
if (el.closest('mlv-sidebar-item'))
|
|
212
|
+
return;
|
|
213
|
+
add(el);
|
|
214
|
+
});
|
|
215
|
+
const idx = items.indexOf(document.activeElement);
|
|
216
|
+
if (idx === -1)
|
|
217
|
+
return;
|
|
218
|
+
if (e.key === 'ArrowDown') {
|
|
219
|
+
items[(idx + 1) % items.length]?.focus();
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
items[(idx - 1 + items.length) % items.length]?.focus();
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvSidebar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
226
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: MlvSidebar, isStandalone: true, selector: "mlv-sidebar", inputs: { collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, collapsedWidth: { classPropertyName: "collapsedWidth", publicName: "collapsedWidth", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, collapseBelow: { classPropertyName: "collapseBelow", publicName: "collapseBelow", isSignal: true, isRequired: false, transformFunction: null }, fullHeight: { classPropertyName: "fullHeight", publicName: "fullHeight", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { collapsed: "collapsedChange", width: "widthChange" }, host: { attributes: { "role": "navigation" }, properties: { "class.mlv-sidebar--collapsed": "_effectiveCollapsed()", "class": "\"mlv-sidebar--\" + effectiveMode()", "class.mlv-sidebar--full-height": "fullHeight()", "style.--mlv-sidebar-expanded-width": "width()", "style.--mlv-sidebar-collapsed-width": "collapsedWidth()", "attr.aria-label": "_resolvedAriaLabel()" }, classAttribute: "mlv-sidebar" }, providers: [
|
|
227
|
+
{
|
|
228
|
+
provide: SIDEBAR_CONTEXT,
|
|
229
|
+
useExisting: forwardRef(() => MlvSidebar),
|
|
230
|
+
},
|
|
231
|
+
], queries: [{ propertyName: "_headerRef", first: true, predicate: MlvSidebarHeader, descendants: true, isSignal: true }, { propertyName: "_footerRef", first: true, predicate: MlvSidebarFooter, descendants: true, isSignal: true }, { propertyName: "_contentRef", first: true, predicate: SidebarContentDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<!-- Container captured once so the single <ng-content/> projection works in\n both the offcanvas (drawer overlay) and the inline branches. Two default\n <ng-content> slots would leave one empty (Angular projects into the last). -->\n<ng-template #projectedContent>\n <ng-content />\n</ng-template>\n\n<ng-template #body>\n <div\n class=\"mlv-sidebar__container\"\n (keydown)=\"onContainerKeydown($event)\"\n tabindex=\"-1\"\n >\n @if (_hasSlots()) {\n <ng-container [ngTemplateOutlet]=\"projectedContent\" />\n } @else {\n <mlv-scrollbar class=\"mlv-sidebar__scrollbar\">\n <ng-container [ngTemplateOutlet]=\"projectedContent\" />\n </mlv-scrollbar>\n }\n </div>\n</ng-template>\n\n@if (effectiveMode() === 'offcanvas') {\n<mlv-drawer\n [opened]=\"!_effectiveCollapsed()\"\n position=\"left\"\n [size]=\"width()\"\n [hasBackdrop]=\"true\"\n (openedChange)=\"_onDrawerOpenedChange($event)\"\n>\n <ng-template mlvDrawerContent>\n <ng-container [ngTemplateOutlet]=\"body\" />\n </ng-template>\n</mlv-drawer>\n} @else {\n<ng-container [ngTemplateOutlet]=\"body\" />\n}\n", styles: ["@charset \"UTF-8\";.mlv-sidebar{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-m)}.mlv-sidebar *{box-sizing:border-box}.mlv-sidebar{--mlv-sidebar-border-width: .0625rem;--mlv-sidebar-gutter: var(--mlv-spacing-2);--mlv-sidebar-row-height: 2.25rem;--mlv-sidebar-hover-bg: var(--mlv-background-neutral-1);--mlv-sidebar-active-bg: var(--mlv-background-accent-1-pale);--mlv-sidebar-rail-color: var(--mlv-border-normal);--mlv-sidebar-icon-column-width: calc( var(--mlv-sidebar-collapsed-width, 3.5rem) - var( --mlv-sidebar-gutter ) - var(--mlv-sidebar-gutter) - var(--mlv-sidebar-border-width) - var( --mlv-sidebar-border-width ) );display:block;position:relative;width:var(--mlv-sidebar-expanded-width, 16.25rem);border:var(--mlv-sidebar-border-width) solid var(--mlv-border-subtle);border-radius:calc(var(--mlv-radius-m) + var(--mlv-spacing-2));box-shadow:var(--mlv-shadow-1);padding:var(--mlv-sidebar-gutter);background:var(--mlv-background-raised);overflow:visible;transition:width var(--mlv-duration-normal) var(--mlv-ease-in-out-strong)}.mlv-sidebar__container{display:flex;flex-direction:column;height:100%;gap:.0625rem;width:100%;overflow:hidden}.mlv-sidebar--collapsed{width:var(--mlv-sidebar-collapsed-width, 3.5rem)}.mlv-sidebar__header{flex-shrink:0;width:100%}.mlv-sidebar__content{flex:1 1 0;display:flex;overflow:hidden;min-height:0;width:100%}.mlv-sidebar__scrollbar,.mlv-sidebar__content-scrollbar{flex:1 1 auto;width:100%;min-height:0}.mlv-sidebar__scrollbar>.mlv-scrollbar__viewport>.mlv-scrollbar__content,.mlv-sidebar__content-scrollbar>.mlv-scrollbar__viewport>.mlv-scrollbar__content{display:flex;flex-direction:column;gap:.0625rem}.mlv-sidebar__scrollbar>.mlv-scrollbar__viewport,.mlv-sidebar__content-scrollbar>.mlv-scrollbar__viewport{overflow-x:hidden}.mlv-sidebar__footer{flex-shrink:0;width:100%}.mlv-sidebar--offcanvas{width:0;min-width:0;flex:0 0 auto;overflow:hidden;border:none;box-shadow:none;padding:0;background:transparent}.mlv-sidebar--floating{position:absolute;z-index:100;box-shadow:var(--mlv-shadow-3);height:100%;transition:width var(--mlv-duration-normal) var(--mlv-ease-in-out-strong),transform var(--mlv-duration-normal) var(--mlv-ease-drawer)}.mlv-sidebar--floating.mlv-sidebar--collapsed{transform:translate(-100%)}.mlv-sidebar--full-height{position:sticky;top:var(--mlv-sidebar-offset-top, 0px);height:calc(100dvh - var(--mlv-sidebar-offset-top, 0px) - var(--mlv-sidebar-offset-bottom, 0px));align-self:flex-start}.mlv-sidebar--full-height .mlv-sidebar__container{overflow:hidden}[class*=--tight] .mlv-sidebar:not([class*=--compact],[class*=--comfortable],[class*=--spacious],[class*=--airy]),.mlv-sidebar[class*=--tight]{--mlv-sidebar-row-height: 1.875rem}[class*=--compact] .mlv-sidebar:not([class*=--tight],[class*=--comfortable],[class*=--spacious],[class*=--airy]),.mlv-sidebar[class*=--compact]{--mlv-sidebar-row-height: var(--mlv-height-xs)}[class*=--spacious] .mlv-sidebar:not([class*=--tight],[class*=--compact],[class*=--comfortable],[class*=--airy]),.mlv-sidebar[class*=--spacious]{--mlv-sidebar-row-height: var(--mlv-height-s)}[class*=--airy] .mlv-sidebar:not([class*=--tight],[class*=--compact],[class*=--comfortable],[class*=--spacious]),.mlv-sidebar[class*=--airy]{--mlv-sidebar-row-height: var(--mlv-height-m)}@media(prefers-reduced-motion:reduce){.mlv-sidebar,.mlv-sidebar--floating{transition-duration:var(--mlv-duration-instant)}}.mlv-drawer .mlv-sidebar,.mlv-drawer .mlv-sidebar .mlv-sidebar__container{width:100%}.mlv-drawer .mlv-sidebar .mlv-sidebar-item__label{display:block;width:auto;opacity:1}\n"], dependencies: [{ kind: "component", type: MlvDrawer, selector: "mlv-drawer", inputs: ["position", "ariaLabel", "ariaLabelledBy", "size", "resizable", "snapPoints", "defaultSnap", "minSize", "maxSize"] }, { kind: "directive", type: MlvDrawerContent, selector: "[mlvDrawerContent]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MlvScrollbar, selector: "mlv-scrollbar", inputs: ["orientation", "scrollbarSize", "disabled", "ariaLabel", "viewportTabIndex"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
232
|
+
}
|
|
233
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvSidebar, decorators: [{
|
|
234
|
+
type: Component,
|
|
235
|
+
args: [{ selector: 'mlv-sidebar', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [MlvDrawer, MlvDrawerContent, NgTemplateOutlet, MlvScrollbar], providers: [
|
|
236
|
+
{
|
|
237
|
+
provide: SIDEBAR_CONTEXT,
|
|
238
|
+
useExisting: forwardRef(() => MlvSidebar),
|
|
239
|
+
},
|
|
240
|
+
], host: {
|
|
241
|
+
class: 'mlv-sidebar',
|
|
242
|
+
'[class.mlv-sidebar--collapsed]': '_effectiveCollapsed()',
|
|
243
|
+
'[class]': '"mlv-sidebar--" + effectiveMode()',
|
|
244
|
+
'[class.mlv-sidebar--full-height]': 'fullHeight()',
|
|
245
|
+
'[style.--mlv-sidebar-expanded-width]': 'width()',
|
|
246
|
+
'[style.--mlv-sidebar-collapsed-width]': 'collapsedWidth()',
|
|
247
|
+
role: 'navigation',
|
|
248
|
+
'[attr.aria-label]': '_resolvedAriaLabel()',
|
|
249
|
+
}, template: "<!-- Container captured once so the single <ng-content/> projection works in\n both the offcanvas (drawer overlay) and the inline branches. Two default\n <ng-content> slots would leave one empty (Angular projects into the last). -->\n<ng-template #projectedContent>\n <ng-content />\n</ng-template>\n\n<ng-template #body>\n <div\n class=\"mlv-sidebar__container\"\n (keydown)=\"onContainerKeydown($event)\"\n tabindex=\"-1\"\n >\n @if (_hasSlots()) {\n <ng-container [ngTemplateOutlet]=\"projectedContent\" />\n } @else {\n <mlv-scrollbar class=\"mlv-sidebar__scrollbar\">\n <ng-container [ngTemplateOutlet]=\"projectedContent\" />\n </mlv-scrollbar>\n }\n </div>\n</ng-template>\n\n@if (effectiveMode() === 'offcanvas') {\n<mlv-drawer\n [opened]=\"!_effectiveCollapsed()\"\n position=\"left\"\n [size]=\"width()\"\n [hasBackdrop]=\"true\"\n (openedChange)=\"_onDrawerOpenedChange($event)\"\n>\n <ng-template mlvDrawerContent>\n <ng-container [ngTemplateOutlet]=\"body\" />\n </ng-template>\n</mlv-drawer>\n} @else {\n<ng-container [ngTemplateOutlet]=\"body\" />\n}\n", styles: ["@charset \"UTF-8\";.mlv-sidebar{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-m)}.mlv-sidebar *{box-sizing:border-box}.mlv-sidebar{--mlv-sidebar-border-width: .0625rem;--mlv-sidebar-gutter: var(--mlv-spacing-2);--mlv-sidebar-row-height: 2.25rem;--mlv-sidebar-hover-bg: var(--mlv-background-neutral-1);--mlv-sidebar-active-bg: var(--mlv-background-accent-1-pale);--mlv-sidebar-rail-color: var(--mlv-border-normal);--mlv-sidebar-icon-column-width: calc( var(--mlv-sidebar-collapsed-width, 3.5rem) - var( --mlv-sidebar-gutter ) - var(--mlv-sidebar-gutter) - var(--mlv-sidebar-border-width) - var( --mlv-sidebar-border-width ) );display:block;position:relative;width:var(--mlv-sidebar-expanded-width, 16.25rem);border:var(--mlv-sidebar-border-width) solid var(--mlv-border-subtle);border-radius:calc(var(--mlv-radius-m) + var(--mlv-spacing-2));box-shadow:var(--mlv-shadow-1);padding:var(--mlv-sidebar-gutter);background:var(--mlv-background-raised);overflow:visible;transition:width var(--mlv-duration-normal) var(--mlv-ease-in-out-strong)}.mlv-sidebar__container{display:flex;flex-direction:column;height:100%;gap:.0625rem;width:100%;overflow:hidden}.mlv-sidebar--collapsed{width:var(--mlv-sidebar-collapsed-width, 3.5rem)}.mlv-sidebar__header{flex-shrink:0;width:100%}.mlv-sidebar__content{flex:1 1 0;display:flex;overflow:hidden;min-height:0;width:100%}.mlv-sidebar__scrollbar,.mlv-sidebar__content-scrollbar{flex:1 1 auto;width:100%;min-height:0}.mlv-sidebar__scrollbar>.mlv-scrollbar__viewport>.mlv-scrollbar__content,.mlv-sidebar__content-scrollbar>.mlv-scrollbar__viewport>.mlv-scrollbar__content{display:flex;flex-direction:column;gap:.0625rem}.mlv-sidebar__scrollbar>.mlv-scrollbar__viewport,.mlv-sidebar__content-scrollbar>.mlv-scrollbar__viewport{overflow-x:hidden}.mlv-sidebar__footer{flex-shrink:0;width:100%}.mlv-sidebar--offcanvas{width:0;min-width:0;flex:0 0 auto;overflow:hidden;border:none;box-shadow:none;padding:0;background:transparent}.mlv-sidebar--floating{position:absolute;z-index:100;box-shadow:var(--mlv-shadow-3);height:100%;transition:width var(--mlv-duration-normal) var(--mlv-ease-in-out-strong),transform var(--mlv-duration-normal) var(--mlv-ease-drawer)}.mlv-sidebar--floating.mlv-sidebar--collapsed{transform:translate(-100%)}.mlv-sidebar--full-height{position:sticky;top:var(--mlv-sidebar-offset-top, 0px);height:calc(100dvh - var(--mlv-sidebar-offset-top, 0px) - var(--mlv-sidebar-offset-bottom, 0px));align-self:flex-start}.mlv-sidebar--full-height .mlv-sidebar__container{overflow:hidden}[class*=--tight] .mlv-sidebar:not([class*=--compact],[class*=--comfortable],[class*=--spacious],[class*=--airy]),.mlv-sidebar[class*=--tight]{--mlv-sidebar-row-height: 1.875rem}[class*=--compact] .mlv-sidebar:not([class*=--tight],[class*=--comfortable],[class*=--spacious],[class*=--airy]),.mlv-sidebar[class*=--compact]{--mlv-sidebar-row-height: var(--mlv-height-xs)}[class*=--spacious] .mlv-sidebar:not([class*=--tight],[class*=--compact],[class*=--comfortable],[class*=--airy]),.mlv-sidebar[class*=--spacious]{--mlv-sidebar-row-height: var(--mlv-height-s)}[class*=--airy] .mlv-sidebar:not([class*=--tight],[class*=--compact],[class*=--comfortable],[class*=--spacious]),.mlv-sidebar[class*=--airy]{--mlv-sidebar-row-height: var(--mlv-height-m)}@media(prefers-reduced-motion:reduce){.mlv-sidebar,.mlv-sidebar--floating{transition-duration:var(--mlv-duration-instant)}}.mlv-drawer .mlv-sidebar,.mlv-drawer .mlv-sidebar .mlv-sidebar__container{width:100%}.mlv-drawer .mlv-sidebar .mlv-sidebar-item__label{display:block;width:auto;opacity:1}\n"] }]
|
|
250
|
+
}], ctorParameters: () => [], propDecorators: { collapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsed", required: false }] }, { type: i0.Output, args: ["collapsedChange"] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }, { type: i0.Output, args: ["widthChange"] }], collapsedWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsedWidth", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], collapseBelow: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapseBelow", required: false }] }], fullHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullHeight", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], minWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "minWidth", required: false }] }], maxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxWidth", required: false }] }], _headerRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => MlvSidebarHeader), { isSignal: true }] }], _footerRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => MlvSidebarFooter), { isSignal: true }] }], _contentRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SidebarContentDirective), { isSignal: true }] }] } });
|
|
251
|
+
//# sourceMappingURL=sidebar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../../../../../../../libs/core/sidebar/src/lib/sidebar/sidebar.ts","../../../../../../../libs/core/sidebar/src/lib/sidebar/sidebar.html"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,SAAS,EACT,iBAAiB,EACjB,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,UAAU,EACV,MAAM,EACN,KAAK,EACL,KAAK,EACL,SAAS,GACV,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;;AA0BxD,MAAM,OAAO,UAAU;IACrB,sDAAsD;IACnC,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAEpD;;;OAGG;IACc,WAAW,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAE5D;;;;OAIG;IACK,6BAA6B,GAAmB,IAAI,CAAC;IAE7D;;;;OAIG;IACM,SAAS,GAAG,KAAK,CAAU,KAAK;kFAAC,CAAC;IAE3C;;;OAGG;IACM,KAAK,GAAG,KAAK,CAAC,OAAO;8EAAC,CAAC;IAEhC;;OAEG;IACM,cAAc,GAAG,KAAK,CAAC,MAAM;uFAAC,CAAC;IAExC;;;;;;OAMG;IACM,IAAI,GAAG,KAAK,CAAiB,MAAM;6EAAC,CAAC;IAE9C;;;;;;;;;;;;;OAaG;IACM,aAAa,GAAG,KAAK,CAAuB,IAAI;sFAAC,CAAC;IAE3D;;;OAGG;IACM,UAAU,GAAG,KAAK,CAAwB,KAAK,kFACtD,SAAS,EAAE,qBAAqB,GAChC,CAAC;IAEH;;;;;;;;;OASG;IACM,SAAS,GAAG,KAAK,CAAqB,SAAS;kFAAC,CAAC;IAE1D;;OAEG;IACM,QAAQ,GAAG,KAAK,CAAS,GAAG;iFAAC,CAAC;IAEvC;;OAEG;IACM,QAAQ,GAAG,KAAK,CAAS,GAAG;iFAAC,CAAC;IAEvC;;;OAGG;IACc,0BAA0B,GAAG,QAAQ,CAAC,GAAG,EAAE;QAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,OAAO,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;IACtE,CAAC;mGAAC,CAAC;IAEH;;;;;;OAMG;IACM,aAAa,GAAG,QAAQ,CAAiB,GAAG,EAAE,CACrD,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;sFAC9D,CAAC;IAEF;;;OAGG;IACgB,mBAAmB,GAAG,QAAQ,CAC/C,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE;4FAC3D,CAAC;IAEF;;;OAGG;IACgB,kBAAkB,GAAG,QAAQ,CAC9C,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,UAAU;2FAClD,CAAC;IAEF,kDAAkD;IAC/B,UAAU,GAAG,YAAY,CAAC,gBAAgB;mFAAC,CAAC;IAE/D,kDAAkD;IAC/B,UAAU,GAAG,YAAY,CAAC,gBAAgB;mFAAC,CAAC;IAE/D,mDAAmD;IAChC,WAAW,GAAG,YAAY,CAAC,uBAAuB;oFAAC,CAAC;IAEvE,qEAAqE;IAClD,SAAS,GAAG,QAAQ,CACrC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;kFACvE,CAAC;IAEF;QACE,sEAAsE;QACtE,yEAAyE;QACzE,0EAA0E;QAC1E,MAAM,CAAC,GAAG,EAAE;YACV,MAAM,KAAK,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAEhD,SAAS,CAAC,GAAG,EAAE;gBACb,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,IAAI,CAAC,6BAA6B,KAAK,IAAI,EAAE,CAAC;wBAChD,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;wBACtD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC3B,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,IAAI,IAAI,CAAC,6BAA6B,KAAK,IAAI,EAAE,CAAC;oBAChD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;oBACvD,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC;gBAC5C,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,OAAO;YAAE,OAAO;QAC7C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,iFAAiF;IACjF,QAAQ,CAAC,EAAU;QACjB,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,kEAAkE;IACxD,qBAAqB,CAAC,MAAe;QAC7C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACO,kBAAkB,CAAC,KAAY;QACvC,MAAM,CAAC,GAAG,KAAsB,CAAC;QACjC,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS;YAAE,OAAO;QAEzD,CAAC,CAAC,cAAc,EAAE,CAAC;QAEnB,MAAM,SAAS,GAAG,CAAC,CAAC,aAA4B,CAAC;QAEjD,kEAAkE;QAClE,0EAA0E;QAC1E,yEAAyE;QACzE,wCAAwC;QACxC,MAAM,KAAK,GAAkB,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAe,CAAC;QACpC,MAAM,GAAG,GAAG,CAAC,EAAkC,EAAQ,EAAE;YACvD,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC,EAAE,CAAC;gBACjE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACb,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;QACH,CAAC,CAAC;QAEF,SAAS;aACN,gBAAgB,CACf,6FAA6F,CAC9F;aACA,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YACd,IAAI,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,kBAAkB,EAAE,CAAC;gBACpD,GAAG,CACD,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC;oBACzB,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,CAAC,aAAa,CAAc,6BAA6B,CAAC,CACjE,CAAC;gBACF,OAAO;YACT,CAAC;YACD,4EAA4E;YAC5E,IAAI,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;gBAAE,OAAO;YAC3C,GAAG,CAAC,EAAE,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;QAEL,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,aAA4B,CAAC,CAAC;QACjE,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,OAAO;QAEvB,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;YAC1B,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;QAC1D,CAAC;IACH,CAAC;uGA5OU,UAAU;2FAAV,UAAU,yrDAjBV;YACT;gBACE,OAAO,EAAE,eAAe;gBACxB,WAAW,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC;aAC1C;SACF,kEA2I4C,gBAAgB,6FAGhB,gBAAgB,8FAGf,uBAAuB,gECzLvE,mmCAsCA,4mHDJY,SAAS,oLAAE,gBAAgB,+DAAE,gBAAgB,oJAAE,YAAY;;2FAkB1D,UAAU;kBAxBtB,SAAS;+BACE,aAAa,iBAGR,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,WACtC,CAAC,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,CAAC,aAC3D;wBACT;4BACE,OAAO,EAAE,eAAe;4BACxB,WAAW,EAAE,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC;yBAC1C;qBACF,QACK;wBACJ,KAAK,EAAE,aAAa;wBACpB,gCAAgC,EAAE,uBAAuB;wBACzD,SAAS,EAAE,mCAAmC;wBAC9C,kCAAkC,EAAE,cAAc;wBAClD,sCAAsC,EAAE,SAAS;wBACjD,uCAAuC,EAAE,kBAAkB;wBAC3D,IAAI,EAAE,YAAY;wBAClB,mBAAmB,EAAE,sBAAsB;qBAC5C;qkCAiI4C,gBAAgB,4FAGhB,gBAAgB,6FAGf,uBAAuB","sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n contentChild,\n effect,\n forwardRef,\n inject,\n model,\n input,\n untracked,\n} from '@angular/core';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport type { MlvBreakpoint } from '@malva-ui/cdk/utils';\nimport { clamp, MlvBreakpointService } from '@malva-ui/cdk/utils';\nimport type { MlvSidebarContextValue } from '../sidebar-context';\nimport { SIDEBAR_CONTEXT } from '../sidebar-context';\nimport type { MlvSidebarMode } from '../sidebar-mode';\nimport { MlvSidebarHeader } from '../sidebar-header';\nimport { MlvSidebarFooter } from '../sidebar-footer';\nimport { SidebarContentDirective } from '../sidebar-content';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { MlvDrawer, MlvDrawerContent } from '@malva-ui/core/drawer';\nimport { MLV_SIDEBAR_I18N } from '@malva-ui/i18n';\nimport { MlvScrollbar } from '@malva-ui/core/scrollbar';\n\n@Component({\n selector: 'mlv-sidebar',\n templateUrl: './sidebar.html',\n styleUrl: './sidebar.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MlvDrawer, MlvDrawerContent, NgTemplateOutlet, MlvScrollbar],\n providers: [\n {\n provide: SIDEBAR_CONTEXT,\n useExisting: forwardRef(() => MlvSidebar),\n },\n ],\n host: {\n class: 'mlv-sidebar',\n '[class.mlv-sidebar--collapsed]': '_effectiveCollapsed()',\n '[class]': '\"mlv-sidebar--\" + effectiveMode()',\n '[class.mlv-sidebar--full-height]': 'fullHeight()',\n '[style.--mlv-sidebar-expanded-width]': 'width()',\n '[style.--mlv-sidebar-collapsed-width]': 'collapsedWidth()',\n role: 'navigation',\n '[attr.aria-label]': '_resolvedAriaLabel()',\n },\n})\nexport class MlvSidebar implements MlvSidebarContextValue {\n /** @protected The component's i18n strings signal. */\n protected readonly _i18n = inject(MLV_SIDEBAR_I18N);\n\n /**\n * @private Signal-based viewport breakpoint service. Wraps the CDK\n * `BreakpointObserver`, so it is SSR-safe — no direct `matchMedia` access.\n */\n private readonly _breakpoint = inject(MlvBreakpointService);\n\n /**\n * @private Collapsed value captured when the responsive override kicked in,\n * so leaving the breakpoint restores what the author/user had before.\n * `null` while no responsive override is active.\n */\n private _collapsedBeforeAutoOffcanvas: boolean | null = null;\n\n /**\n * Controls expanded vs. collapsed (icon-only) mode.\n * Accepts truthy strings via `coerceBooleanProperty`.\n * Two-way bindable via `[(collapsed)]`.\n */\n readonly collapsed = model<boolean>(false);\n\n /**\n * Total width of the sidebar host when expanded, including border and padding.\n * Two-way bindable — updated by `setWidth()` during rail drag.\n */\n readonly width = model('260px');\n\n /**\n * Total width of the sidebar host when collapsed, including border and padding.\n */\n readonly collapsedWidth = input('56px');\n\n /**\n * MlvLayout mode controlling how the sidebar renders and collapses.\n * - `'icon'` — collapses to an icon-only rail (default).\n * - `'offcanvas'` — slides off-screen when collapsed.\n * - `'floating'` — floats over content when expanded.\n * - `'fixed'` — always fully expanded; collapse is a no-op.\n */\n readonly mode = input<MlvSidebarMode>('icon');\n\n /**\n * Viewport breakpoint below which the sidebar automatically behaves as an\n * `'offcanvas'` drawer, regardless of {@link mode}.\n *\n * `null` (the default) keeps the sidebar on {@link mode} at every width.\n * Setting it to `'md'` makes the sidebar an overlay drawer below 768px — it\n * closes itself on entering that range, opens from a `mlv-sidebar-trigger`,\n * and dismisses on Escape, backdrop click, or focus leaving the drawer, like\n * any `mode=\"offcanvas\"` sidebar. The previous collapsed state is restored\n * when the viewport grows back past the breakpoint.\n *\n * Thresholds come from `MLV_BREAKPOINT_CONFIG` (`provideMlvBreakpoints()`),\n * so they stay in sync with the SCSS `breakpoint-*` mixins.\n */\n readonly collapseBelow = input<MlvBreakpoint | null>(null);\n\n /**\n * When true, the sidebar stretches to full viewport height.\n * Adds the `mlv-sidebar--full-height` modifier class.\n */\n readonly fullHeight = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * Accessible name for the `navigation` landmark.\n *\n * Set this whenever a page renders more than one sidebar (or another\n * `navigation` landmark) so assistive technology can tell them apart.\n * When omitted, the localized `MLV_SIDEBAR_I18N.navigation` default is used.\n *\n * Note: a plain `aria-label` attribute on `<mlv-sidebar>` cannot be used for\n * this — the host binding owns the attribute and would overwrite it.\n */\n readonly ariaLabel = input<string | undefined>(undefined);\n\n /**\n * Minimum width in pixels the sidebar may be resized to via the drag rail.\n */\n readonly minWidth = input<number>(200);\n\n /**\n * Maximum width in pixels the sidebar may be resized to via the drag rail.\n */\n readonly maxWidth = input<number>(480);\n\n /**\n * @private True when {@link collapseBelow} is set and the viewport is\n * narrower than that breakpoint.\n */\n private readonly _isBelowCollapseBreakpoint = computed(() => {\n const breakpoint = this.collapseBelow();\n return breakpoint !== null && this._breakpoint.isDown(breakpoint)();\n });\n\n /**\n * The layout mode actually in effect.\n *\n * Equals {@link mode} unless {@link collapseBelow} is set and the viewport is\n * narrower than that breakpoint, in which case it is `'offcanvas'`. Bind\n * against this (not `mode`) when mirroring the sidebar's layout elsewhere.\n */\n readonly effectiveMode = computed<MlvSidebarMode>(() =>\n this._isBelowCollapseBreakpoint() ? 'offcanvas' : this.mode(),\n );\n\n /**\n * Effective collapsed state. Always `false` in `'fixed'` mode so the sidebar\n * never visually collapses regardless of the `collapsed` model value.\n */\n protected readonly _effectiveCollapsed = computed(\n () => this.effectiveMode() !== 'fixed' && this.collapsed(),\n );\n\n /**\n * @protected Accessible name bound to the host `aria-label`. Prefers the\n * author-supplied {@link ariaLabel} and falls back to the localized default.\n */\n protected readonly _resolvedAriaLabel = computed(\n () => this.ariaLabel() ?? this._i18n().navigation,\n );\n\n /** @protected Header slot directive reference. */\n protected readonly _headerRef = contentChild(MlvSidebarHeader);\n\n /** @protected Footer slot directive reference. */\n protected readonly _footerRef = contentChild(MlvSidebarFooter);\n\n /** @protected Content slot directive reference. */\n protected readonly _contentRef = contentChild(SidebarContentDirective);\n\n /** @protected True when at least one slot directive is projected. */\n protected readonly _hasSlots = computed(\n () => !!(this._headerRef() || this._footerRef() || this._contentRef()),\n );\n\n constructor() {\n // Entering the responsive offcanvas range must start closed — an open\n // drawer covering the page on a viewport change is never what the author\n // asked for. Leaving the range restores the pre-override collapsed value.\n effect(() => {\n const below = this._isBelowCollapseBreakpoint();\n\n untracked(() => {\n if (below) {\n if (this._collapsedBeforeAutoOffcanvas === null) {\n this._collapsedBeforeAutoOffcanvas = this.collapsed();\n this.collapsed.set(true);\n }\n return;\n }\n\n if (this._collapsedBeforeAutoOffcanvas !== null) {\n this.collapsed.set(this._collapsedBeforeAutoOffcanvas);\n this._collapsedBeforeAutoOffcanvas = null;\n }\n });\n });\n }\n\n /**\n * Toggles the sidebar between collapsed and expanded.\n * This is a no-op when the effective mode is `'fixed'`.\n */\n toggle(): void {\n if (this.effectiveMode() === 'fixed') return;\n this.collapsed.update((v) => !v);\n }\n\n /** Set the sidebar width in pixels. Clamps to the [minWidth, maxWidth] range. */\n setWidth(px: number): void {\n const clamped = clamp(px, this.minWidth(), this.maxWidth());\n this.width.set(`${clamped}px`);\n }\n\n /** @protected Syncs drawer open/close back to collapsed model. */\n protected _onDrawerOpenedChange(opened: boolean): void {\n this.collapsed.set(!opened);\n }\n\n /**\n * @protected Handles `ArrowDown`/`ArrowUp` keydown events on the sidebar container\n * to move focus between focusable sidebar items and group triggers in DOM order.\n * Wraps around at the list boundaries and skips elements inside `.cdk-overlay-container`.\n */\n protected onContainerKeydown(event: Event): void {\n const e = event as KeyboardEvent;\n if (e.key !== 'ArrowDown' && e.key !== 'ArrowUp') return;\n\n e.preventDefault();\n\n const container = e.currentTarget as HTMLElement;\n\n // Collect the focus target for each navigable row in DOM order. A\n // `mlv-sidebar-item` may itself be focusable (button-style rows) or defer\n // to a projected link/button (navigational rows), so resolve each to its\n // actual focus target and de-duplicate.\n const items: HTMLElement[] = [];\n const seen = new Set<HTMLElement>();\n const add = (el: HTMLElement | null | undefined): void => {\n if (el && !seen.has(el) && !el.closest('.cdk-overlay-container')) {\n seen.add(el);\n items.push(el);\n }\n };\n\n container\n .querySelectorAll<HTMLElement>(\n 'mlv-sidebar-item, .mlv-sidebar-group__header, .mlv-sidebar-group__icon-btn, button, a[href]',\n )\n .forEach((el) => {\n if (el.tagName.toLowerCase() === 'mlv-sidebar-item') {\n add(\n el.hasAttribute('tabindex')\n ? el\n : el.querySelector<HTMLElement>('a[href], button, [tabindex]'),\n );\n return;\n }\n // Focusable elements inside a sidebar item are resolved via the item above.\n if (el.closest('mlv-sidebar-item')) return;\n add(el);\n });\n\n const idx = items.indexOf(document.activeElement as HTMLElement);\n if (idx === -1) return;\n\n if (e.key === 'ArrowDown') {\n items[(idx + 1) % items.length]?.focus();\n } else {\n items[(idx - 1 + items.length) % items.length]?.focus();\n }\n }\n}\n","<!-- Container captured once so the single <ng-content/> projection works in\n both the offcanvas (drawer overlay) and the inline branches. Two default\n <ng-content> slots would leave one empty (Angular projects into the last). -->\n<ng-template #projectedContent>\n <ng-content />\n</ng-template>\n\n<ng-template #body>\n <div\n class=\"mlv-sidebar__container\"\n (keydown)=\"onContainerKeydown($event)\"\n tabindex=\"-1\"\n >\n @if (_hasSlots()) {\n <ng-container [ngTemplateOutlet]=\"projectedContent\" />\n } @else {\n <mlv-scrollbar class=\"mlv-sidebar__scrollbar\">\n <ng-container [ngTemplateOutlet]=\"projectedContent\" />\n </mlv-scrollbar>\n }\n </div>\n</ng-template>\n\n@if (effectiveMode() === 'offcanvas') {\n<mlv-drawer\n [opened]=\"!_effectiveCollapsed()\"\n position=\"left\"\n [size]=\"width()\"\n [hasBackdrop]=\"true\"\n (openedChange)=\"_onDrawerOpenedChange($event)\"\n>\n <ng-template mlvDrawerContent>\n <ng-container [ngTemplateOutlet]=\"body\" />\n </ng-template>\n</mlv-drawer>\n} @else {\n<ng-container [ngTemplateOutlet]=\"body\" />\n}\n"]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import { MlvScrollbar } from '@malva-ui/core/scrollbar';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Marks the scrollable middle region between header and footer inside the sidebar.
|
|
6
|
+
* Gets `flex: 1 1 0` so it fills the remaining space. Intended to hold sidebar items and groups.
|
|
7
|
+
*/
|
|
8
|
+
export class MlvSidebarContent {
|
|
9
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvSidebarContent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.7", type: MlvSidebarContent, isStandalone: true, selector: "[mlvSidebarContent]", host: { classAttribute: "mlv-sidebar__content" }, ngImport: i0, template: `
|
|
11
|
+
<mlv-scrollbar class="mlv-sidebar__content-scrollbar">
|
|
12
|
+
<ng-content />
|
|
13
|
+
</mlv-scrollbar>
|
|
14
|
+
`, isInline: true, dependencies: [{ kind: "component", type: MlvScrollbar, selector: "mlv-scrollbar", inputs: ["orientation", "scrollbarSize", "disabled", "ariaLabel", "viewportTabIndex"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
15
|
+
}
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvSidebarContent, decorators: [{
|
|
17
|
+
type: Component,
|
|
18
|
+
args: [{
|
|
19
|
+
// Attribute-selector component intentionally enhances the consumer's content container.
|
|
20
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
21
|
+
selector: '[mlvSidebarContent]',
|
|
22
|
+
template: `
|
|
23
|
+
<mlv-scrollbar class="mlv-sidebar__content-scrollbar">
|
|
24
|
+
<ng-content />
|
|
25
|
+
</mlv-scrollbar>
|
|
26
|
+
`,
|
|
27
|
+
imports: [MlvScrollbar],
|
|
28
|
+
encapsulation: ViewEncapsulation.None,
|
|
29
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
30
|
+
host: {
|
|
31
|
+
class: 'mlv-sidebar__content',
|
|
32
|
+
},
|
|
33
|
+
}]
|
|
34
|
+
}] });
|
|
35
|
+
/** Backwards-compatible public name retained for existing imports. */
|
|
36
|
+
export { MlvSidebarContent as SidebarContentDirective };
|
|
37
|
+
//# sourceMappingURL=sidebar-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidebar-content.js","sourceRoot":"","sources":["../../../../../../libs/core/sidebar/src/lib/sidebar-content.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,SAAS,EACT,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;;AAExD;;;GAGG;AAiBH,MAAM,OAAO,iBAAiB;uGAAjB,iBAAiB;2FAAjB,iBAAiB,iIAZlB;;;;GAIT,4DACS,YAAY;;2FAOX,iBAAiB;kBAhB7B,SAAS;mBAAC;oBACT,wFAAwF;oBACxF,8DAA8D;oBAC9D,QAAQ,EAAE,qBAAqB;oBAC/B,QAAQ,EAAE;;;;GAIT;oBACD,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,IAAI,EAAE;wBACJ,KAAK,EAAE,sBAAsB;qBAC9B;iBACF;;AAGD,sEAAsE;AACtE,OAAO,EAAE,iBAAiB,IAAI,uBAAuB,EAAE,CAAC","sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MlvScrollbar } from '@malva-ui/core/scrollbar';\n\n/**\n * Marks the scrollable middle region between header and footer inside the sidebar.\n * Gets `flex: 1 1 0` so it fills the remaining space. Intended to hold sidebar items and groups.\n */\n@Component({\n // Attribute-selector component intentionally enhances the consumer's content container.\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[mlvSidebarContent]',\n template: `\n <mlv-scrollbar class=\"mlv-sidebar__content-scrollbar\">\n <ng-content />\n </mlv-scrollbar>\n `,\n imports: [MlvScrollbar],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'mlv-sidebar__content',\n },\n})\nexport class MlvSidebarContent {}\n\n/** Backwards-compatible public name retained for existing imports. */\nexport { MlvSidebarContent as SidebarContentDirective };\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidebar-context.js","sourceRoot":"","sources":["../../../../../../libs/core/sidebar/src/lib/sidebar-context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAuB/C,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,cAAc,CAC/C,iBAAiB,CAClB,CAAC","sourcesContent":["import type { Signal } from '@angular/core';\nimport { InjectionToken } from '@angular/core';\nimport type { MlvSidebarMode } from './sidebar-mode';\n\nexport interface MlvSidebarContextValue {\n /** Whether the sidebar is collapsed. */\n readonly collapsed: Signal<boolean>;\n /** Whether the current rendering context is inside a flyout popup. */\n readonly inFlyout?: Signal<boolean>;\n /** The layout mode requested by the author. */\n readonly mode: Signal<MlvSidebarMode>;\n /**\n * The layout mode actually in effect. Equals {@link mode} unless a\n * responsive override (`MlvSidebar.collapseBelow`) is active, in which case\n * it reports `'offcanvas'`. Optional so externally implemented contexts stay\n * valid — read it as `effectiveMode?.() ?? mode()`.\n */\n readonly effectiveMode?: Signal<MlvSidebarMode>;\n /** Toggle between collapsed and expanded. */\n toggle(): void;\n /** Set the sidebar width in pixels (used by the rail during drag). */\n setWidth(px: number): void;\n}\n\nexport const SIDEBAR_CONTEXT = new InjectionToken<MlvSidebarContextValue>(\n 'SIDEBAR_CONTEXT',\n);\n"]}
|