@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,343 @@
|
|
|
1
|
+
# Library: dropdown
|
|
2
|
+
|
|
3
|
+
Viewport sizing uses `DOCUMENT.defaultView` when available and skips browser
|
|
4
|
+
event subscriptions during server rendering.
|
|
5
|
+
|
|
6
|
+
## Overview
|
|
7
|
+
|
|
8
|
+
The Dropdown library (`@malva-ui/core/dropdown`) provides a generic dropdown panel component and option utilities. It is primarily used as the content panel inside `MlvCombobox` and `MlvSelect`. Supports single and multiple selection, custom item templates, configurable height constraints, and the shared Malva themed scrollbar.
|
|
9
|
+
|
|
10
|
+
## Public API
|
|
11
|
+
|
|
12
|
+
Exported from `@malva-ui/core/dropdown`:
|
|
13
|
+
|
|
14
|
+
| Export | Kind | Description |
|
|
15
|
+
|--------|------|-------------|
|
|
16
|
+
| `MlvDropdownPanel<T>` | Component | Dropdown list panel — `mlv-dropdown-panel` |
|
|
17
|
+
| `MlvSelectOption<T>` | Interface | `{ label: string; value: T; group?: string }` |
|
|
18
|
+
| `MlvSelectOptionTransform<T>` | Type | `(item: T) => MlvSelectOption<T>` |
|
|
19
|
+
| `defaultOptionTransform<T>` | Function | Converts item using `String(item)` as label |
|
|
20
|
+
| `isSelectOption<T>` | Function | Type-guard: value is `MlvSelectOption`-shaped (`label` + `value`) |
|
|
21
|
+
| `hasOptionGroups<T>` | Function | Type-guard: any option carries a non-empty `group` (drives grouped rendering) |
|
|
22
|
+
| `resolveOptions<T>` | Function | `(items: T[], transform) => MlvSelectOption<T>[]` |
|
|
23
|
+
| `MlvOptionMatcher<T>` | Type | `(option: MlvSelectOption<T>, query: string) => boolean` — suggestion filter predicate |
|
|
24
|
+
| `defaultOptionMatcher<T>` | Function | Case- and diacritic-insensitive substring match on the label |
|
|
25
|
+
| `filterOptions<T>` | Function | `(options, query, matcher?) => MlvSelectOption<T>[]` — shared substring filter (blank query returns all); results ranked prefix-matches-first via `rankPrefixMatchesFirst`. Extracted from `mlv-combobox`; also powers `[mlvAutocomplete]` |
|
|
26
|
+
| `rankPrefixMatchesFirst<T>` | Function | Stable partition: labels starting with the query (case/diacritic-insensitive) rank before other matches, applied **within each consecutive group run** so grouped panels keep contiguous runs. Makes the top suggestion inline-completable |
|
|
27
|
+
| `normalizeForMatch` | Function | NFD-fold + strip diacritics + lower-case (matching/highlighting normalisation); re-exported from `@malva-ui/cdk/utils`, which now owns the implementation |
|
|
28
|
+
| `matchSegments` | Function | `(label, query) => MlvMatchSegment[]` — splits a label around the first match (diacritic-aligned) for highlighting |
|
|
29
|
+
| `MlvMatchSegment` | Interface | `{ text: string; matched: boolean }` |
|
|
30
|
+
| `optionId` | Function | `(listboxId, index) => string` — deterministic activedescendant option id (`<listboxId>-option-<index>`). Single source of truth for the format, shared by `MlvDropdownPanel.optionId`, `mlv-combobox`, and `[mlvAutocomplete]` so the rendered id and the trigger's `aria-activedescendant` never drift |
|
|
31
|
+
| `MlvActiveDescendant` | Class | Signal-backed active-option index bookkeeping for the activedescendant keyboard model: read-only `index` signal, `move(delta)` (wrap-around), `first`/`last`/`reset`; option count read lazily via a `() => number` constructor accessor. Extracted from the byte-identical `_moveActive` in `mlv-combobox` / `[mlvAutocomplete]`; now backs both |
|
|
32
|
+
| `MlvHighlightMatchPipe` | Pipe | `mlvHighlightMatch` — `label \| mlvHighlightMatch:query` → `MlvMatchSegment[]` |
|
|
33
|
+
| `MlvSelectDataSource<T>` | Class | `extends MlvArrayDataSource<T>` from `@malva-ui/cdk/data-source`, unpaged (`perPage = Infinity`) — the default in-memory data source for option controls |
|
|
34
|
+
| `toOptionsResult<T>` | Function | `(result: T[] \| Promise<T[]> \| Observable<T[]>) => Observable<T[]>` — normalises every supported search result into a one-shot observable. Moved here from `[mlvAutocomplete]`, which used to keep it private; shared by `MlvOptionsAdapter` and the directive |
|
|
35
|
+
| `MlvOptionsAdapter<T>` | Class | Normalises `T[] \| Observable<T[]> \| MlvDataSource<T>` (+ optional `searchFn`) into one reactive shape — `mode`, `items`, `loading`, `loadingMore`, `ready`, `hasMore`, `search()`, `ensureLoaded()`, `loadMore()` — with lazy page accumulation for a data source. Shared engine behind `mlv-select`, `mlv-combobox` and `[mlvAutocomplete]`; construct it in an injection context |
|
|
36
|
+
| `MlvOptionsAdapterConfig<T>` | Interface | `{ source, searchFn, debounce, eager }` — all `Signal`s, so a control passes its `input()`s straight through |
|
|
37
|
+
| `MlvOptionsInput<T>` | Type | `readonly T[] \| Observable<readonly T[]> \| MlvDataSource<T> \| null \| undefined` — everything an option control accepts as `options` |
|
|
38
|
+
| `MlvOptionsSearchFn<T>` | Type | `(query: string) => T[] \| Promise<T[]> \| Observable<T[]>` — remote search function |
|
|
39
|
+
| `MlvOptionsMode` | Type | `'local'` (consumer filters) \| `'remote'` (source filters, consumer calls `search()`) |
|
|
40
|
+
| `isReconciliationEmit<T>` | Function | `(incoming, committed, visible, compare) => boolean` — whether an aria listbox `valueChange` is pure reconciliation noise rather than a user selection (see below) |
|
|
41
|
+
| `filteredOutCommitted<T>` | Function | `(incoming, committed, visible, compare) => T[]` — committed values aria dropped only because their option is not rendered; re-added to a genuine multi-select pick |
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Components
|
|
46
|
+
|
|
47
|
+
### `MlvDropdownPanel<T>`
|
|
48
|
+
|
|
49
|
+
- **Selector:** `mlv-dropdown-panel`
|
|
50
|
+
- **Change Detection:** `OnPush`
|
|
51
|
+
- **Encapsulation:** `None`
|
|
52
|
+
|
|
53
|
+
#### Inputs
|
|
54
|
+
|
|
55
|
+
| Name | Type | Default | Description |
|
|
56
|
+
| ------------------------- | -------------------------------------------------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
57
|
+
| `options` | `MlvSelectOption<T>[]` | `[]` | Options to display |
|
|
58
|
+
| `multiple` | `boolean` | `false` | Multi-select mode |
|
|
59
|
+
| `selectedValues` | `T[]` | `[]` | Currently selected values |
|
|
60
|
+
| `minHeight` | `number` | `0` | Minimum height in px |
|
|
61
|
+
| `maxHeight` | `number` | `0` | Max height in px; `0` = 40% of viewport |
|
|
62
|
+
| `itemTemplate` | `TemplateRef<{ $implicit: MlvSelectOption<T> }> \| null` | `null` | Custom item renderer |
|
|
63
|
+
| `listboxId` | `string \| null` | `null` | HTML `id` set on the inner `<mlv-list>` so a parent select/combobox can reference the listbox via `aria-controls` |
|
|
64
|
+
| `focusMode` | `'roving' \| 'activedescendant'` | `'roving'` | Forwarded to the inner aria listbox. `'activedescendant'` keeps DOM focus on the owning trigger/input (used by `mlv-combobox`); `'roving'` moves focus onto the active option (used by `mlv-select`). |
|
|
65
|
+
| `activeIndex` | `number` | `-1` | Index of the activedescendant-active (highlighted) option; `-1` = none. Renders `.mlv-dropdown-panel__item--active` on that row and drives a deterministic option `id`. |
|
|
66
|
+
| `highlightQuery` | `string` | `''` | When non-empty, the default option row emphasises the matched substring of this query in each label (via `MlvHighlightMatchPipe` → `<mark class="mlv-dropdown-panel__match">`). Ignored for custom `itemTemplate` rows. Empty = plain label (unchanged). Used by `mlv-combobox` and `[mlvAutocomplete]`. |
|
|
67
|
+
| `loading` | `boolean` | `false` | Renders a loading affordance (spinner + `loadingText`, `role="status"`) above the list and suppresses the empty `<ng-content>` projection. Also sets the `--loading` host modifier and `aria-busy` on the listbox — previous options stay mounted, readable and interactive; the default row renders in the secondary text colour while loading (custom `itemTemplate` rows own their colours and are untouched). |
|
|
68
|
+
| `loadingText` | `string` | `'Loading…'` | Text announced inside both loading affordances (top row and `loadingMore` bottom row). |
|
|
69
|
+
| `loadingMore` | `boolean` | `false` | A page **beyond the first** is in flight: renders a polite `role="status"` row (`.mlv-dropdown-panel__loading-more`) after the last option and sets `aria-busy` on the listbox. Options stay interactive and are not dimmed. |
|
|
70
|
+
| `hasMore` | `boolean` | `false` | Whether more pages exist. Arms the paging sentinel — see **Lazy-loading pagination** below. |
|
|
71
|
+
| `infiniteScrollThreshold` | `number` | `150` | Distance (px) from the end of the scroll owner at which `loadMore` fires. |
|
|
72
|
+
| `scrollMode` | `'self' \| 'parent'` | `'self'` | Selects the single scroll owner. Standalone panels render their own `mlv-scrollbar`; panels inside `mlv-popup` delegate scrolling to the popup to avoid nested scroll regions. |
|
|
73
|
+
|
|
74
|
+
#### Outputs
|
|
75
|
+
|
|
76
|
+
| Name | Type | Description |
|
|
77
|
+
| ------------- | ---------------------- | --------------------------------------------------------------------------------------- |
|
|
78
|
+
| `valueChange` | `output<readonly T[]>` | Emits when selection changes |
|
|
79
|
+
| `loadMore` | `output<void>` | Emits when the user scrolls within `infiniteScrollThreshold` of the end while `hasMore` |
|
|
80
|
+
|
|
81
|
+
#### Host Bindings
|
|
82
|
+
|
|
83
|
+
```ts
|
|
84
|
+
host: {
|
|
85
|
+
'class': 'mlv-dropdown-panel',
|
|
86
|
+
'[class.mlv-dropdown-panel--parent-scroll]': 'scrollMode() === "parent"',
|
|
87
|
+
'[class.mlv-dropdown-panel--loading]': 'loading()',
|
|
88
|
+
'[style.max-height.px]': '_calculatedMaxHeight()',
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
`_calculatedMaxHeight` is computed from `maxHeight` input or `window.innerHeight * 0.4` as default.
|
|
93
|
+
|
|
94
|
+
`--loading` recedes the **default** option rows to `--mlv-text-secondary` (a contrast-validated token) rather than fading the listbox: the rows stay mounted, readable and clickable while a refresh resolves, and an opacity dim on live controls would fail WCAG 1.4.3. Custom `itemTemplate` rows own their colours and are untouched.
|
|
95
|
+
|
|
96
|
+
#### Lazy-loading pagination
|
|
97
|
+
|
|
98
|
+
A zero-height sentinel `<div class="mlv-dropdown-panel__sentinel" aria-hidden="true">` at the end of the panel content hosts `[mlvInfiniteScroll]` (`@malva-ui/cdk/infinite-scroll`) and re-emits its trigger as the panel's `loadMore`. The sentinel does not own the scrollbar, so it is pointed at the real scroll owner via `[scrollContainer]`:
|
|
99
|
+
|
|
100
|
+
- `scrollMode="self"` — the panel's own `mlv-scrollbar` viewport (`MlvScrollbar.viewportElement`).
|
|
101
|
+
- `scrollMode="parent"` — the nearest ancestor `.mlv-scrollbar__viewport`, i.e. the owning `mlv-popup`'s.
|
|
102
|
+
|
|
103
|
+
That element is resolved in `afterNextRender` (it does not exist earlier) into the `_scrollContainer` signal; until it resolves the sentinel is `[disabled]`, so the directive's initial `afterNextRender` measurement never runs against the non-scrolling panel host. The sentinel is also disabled while `!hasMore()`, and passes `[loading]="loading() || loadingMore()"` so a fetch in flight cannot trigger another.
|
|
104
|
+
|
|
105
|
+
**Dev-mode warning for a missing scroll owner.** In `scrollMode="parent"` the lookup finds nothing unless the panel really renders inside an `mlv-scrollbar` viewport — and an unresolved owner keeps the sentinel disabled, so lazy paging fails _silently_. Under `isDevMode()` the panel therefore `console.warn`s once per instance when `hasMore()` is `true`, the owner lookup has run (`_scrollOwnerResolved`), and `_scrollContainer()` is still `null`. It is an `effect` reading both signals (warning `untracked`, latched by `_warnedNoScrollOwner`), so a `hasMore` that flips true long after the first render is caught too. Never fires in `self` mode (the panel's own scrollbar always resolves) or while `hasMore` is `false`.
|
|
106
|
+
|
|
107
|
+
**Auto-fill.** An `afterRenderEffect` re-runs `MlvInfiniteScroll.check()` whenever the option set (or the sentinel's own armed state) changes, so a page too short to fill the scroll owner immediately requests the next one instead of stalling until the user scrolls. `MlvOptionsAdapter.loadMore()` is a no-op until the requested page has been applied, so repeated firing cannot skip a page.
|
|
108
|
+
|
|
109
|
+
Consumers bind `[loadingMore]`, `[hasMore]` and `(loadMore)` straight from `MlvOptionsAdapter` (`loadingMore`, `hasMore`, `loadMore()`).
|
|
110
|
+
|
|
111
|
+
#### Option groups (sticky headers)
|
|
112
|
+
|
|
113
|
+
When the resolved options declare groups — at least one option carries a non-empty `group` string (`hasOptionGroups()` → `_isGrouped`) — the panel clusters **consecutive same-group runs** under a sticky, non-selectable section header (APG listbox grouping):
|
|
114
|
+
|
|
115
|
+
- Each run is wrapped in `<div role="group" [attr.aria-labelledby]="headerId">`; the header is `<div role="presentation" [id]="headerId" class="mlv-dropdown-panel__group-header">` (uppercase, `position: sticky; top: 0` inside the active scroll owner: the panel's own `mlv-scrollbar` or its parent `mlv-popup` viewport).
|
|
116
|
+
- **Consecutive-run grouping (no reordering).** DOM order stays identical to the flat `options()` order, so option flat indices, `optionId(index)`, `activeIndex`, and aria's DOM-order navigation all stay aligned. A run of options with no `group` renders as a headerless cluster.
|
|
117
|
+
- Headers are **not** aria options: they are skipped by keyboard nav / type-ahead (never registered on the `Listbox`), excluded from a combobox's filtered result set (a header shows only while ≥1 of its options survives the filter), and never enter the value.
|
|
118
|
+
- Verified safe against `@angular/aria`'s `Listbox`: options register via DI (`inject(LISTBOX)`) and sort by `compareDocumentPosition` under a `subtree:true` MutationObserver, so nesting one level deep inside a `role="group"` div does not break registration, ordering, pointer `closest('[role="option"]')`, or navigation.
|
|
119
|
+
- **Ungrouped arrays are byte-for-byte unchanged** — the template branches to the exact previous flat `@for` when `_isGrouped()` is false (plain primitive arrays never carry a `group`).
|
|
120
|
+
|
|
121
|
+
The shared option-row markup lives in a single `<ng-template #optionRow>` **declared inside `<mlv-list>`** (so an outlet-ed `<mlv-list-item>` resolves the aria `LISTBOX` token from its declaration injector, not its insertion point), outlet-ed by both the flat and grouped branches with the option's flat `index`.
|
|
122
|
+
|
|
123
|
+
#### Template Summary
|
|
124
|
+
|
|
125
|
+
Renders a `mlv-list[selectable]` (backed by `@angular/aria`'s `ngListbox` after the Task 2.1 migration) through a shared `panelContent` template. With the default `scrollMode="self"`, that template is wrapped in `mlv-scrollbar`; with `scrollMode="parent"`, it renders directly into the owning popup scrollbar. The self-owned scrollbar viewport uses `viewportTabIndex="-1"` because the listbox already owns focus. Each `mlv-list-item[value]` renders either a custom `itemTemplate` or the default (label text + `LucideCheck` when selected). Options are optionally clustered under sticky group headers — see **Option groups** above.
|
|
126
|
+
|
|
127
|
+
The panel always has exactly one themed scroll owner. Standalone/autocomplete panels use their nested Malva scrollbar; select and combobox bind `scrollMode="parent"` and rely on `mlv-popup`'s scrollbar. The `--parent-scroll` modifier exposes overflow to that ancestor rather than clipping it. The panel pins the listbox to the previous CdkListbox behaviour and the correct listbox roles:
|
|
128
|
+
|
|
129
|
+
- `listRole="listbox"` on the `<mlv-list>` and `itemRole="option"` on each `<mlv-list-item>` — required so aria's pointer selection can resolve options via `closest('[role="option"]')`.
|
|
130
|
+
- `selectionMode="explicit"` + `[softDisabled]="false"` — arrow keys move focus without committing the value and skip disabled options.
|
|
131
|
+
- `[label]="option.label"` on each item — feeds aria's type-ahead search.
|
|
132
|
+
- `[listboxId]="_resolvedListboxId()"` on the `<mlv-list>` — forwards the id into aria's `Listbox.id` input (re-exposed as `listboxId` by `MlvListSelectable`). aria renders it via `[attr.id]="id()"`, so the DOM id equals the value the parent select/combobox `aria-controls` points to. Binding the native `[id]` instead does **not** work — aria's own `[attr.id]` overrides it, minting a `ng-listbox-*` id and dangling `aria-controls`. `_resolvedListboxId()` is `listboxId()` when set, else a stable `mlvNextId('mlv-dropdown-listbox')` fallback so the listbox always carries a valid unique id.
|
|
133
|
+
|
|
134
|
+
The listbox sets `--mlv-list-padding-block` and `--mlv-list-padding-inline` so option rows keep x-axis breathing room inside select/combobox popups.
|
|
135
|
+
|
|
136
|
+
#### Styling — `--surface` modifier
|
|
137
|
+
|
|
138
|
+
`.mlv-dropdown-panel--surface` is an **opt-in** BEM modifier (in `dropdown-panel.scss`) that paints a standalone floating surface on the panel: `background-color: var(--mlv-background-raised)`, a `var(--mlv-stroke-width)` `var(--mlv-border-subtle)` hairline border, `border-radius: var(--mlv-radius-panel)`, `box-shadow: var(--mlv-shadow-floating)` — the same visual vocabulary as the `mlv-popup` surface, so an autocomplete popup reads identically to a combobox popup. It exists because `[mlvAutocomplete]` hosts the panel in a **bare CDK overlay** (nothing paints chrome), unlike `mlv-combobox` / `mlv-select`, which nest the panel inside a styled `mlv-popup`. The directive adds the class to the panel's host element after attach; the panel component itself is untouched. Combobox / select never receive the class, so their visuals are unaffected. The panel's host `[style.max-height.px]` bounds its self-owned `mlv-scrollbar`.
|
|
139
|
+
|
|
140
|
+
#### Styling — classes
|
|
141
|
+
|
|
142
|
+
| Class | Purpose |
|
|
143
|
+
| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
144
|
+
| `mlv-dropdown-panel--surface` | Opt-in standalone floating surface — see above |
|
|
145
|
+
| `mlv-dropdown-panel--parent-scroll` | `scrollMode="parent"` — overflow visible so the ancestor popup scrolls |
|
|
146
|
+
| `mlv-dropdown-panel--loading` | Set while `loading()`; recedes `__item-label` / `__item-check` to `--mlv-text-secondary` (short `--mlv-duration-fast` colour transition, instant under `prefers-reduced-motion`). No opacity — the rows stay interactive |
|
|
147
|
+
| `mlv-dropdown-panel__loading` | Top `role="status"` loading row |
|
|
148
|
+
| `mlv-dropdown-panel__loading-more` | Bottom `role="status"` next-page row (`loadingMore`); shares one rule block with `__loading`, same spinner + `__loading-text` markup |
|
|
149
|
+
| `mlv-dropdown-panel__sentinel` | Zero-height (`height: 0; overflow: hidden`) `aria-hidden` marker hosting `[mlvInfiniteScroll]`; never occupies layout |
|
|
150
|
+
|
|
151
|
+
#### Public Methods
|
|
152
|
+
|
|
153
|
+
- `isValueSelected(value: T): boolean`
|
|
154
|
+
- `onValueChange(values: readonly T[]): void` — re-emits the aria listbox selection array (aria's `ngListbox` emits the values array directly; the previous `ListboxValueChangeEvent` wrapper is gone).
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Interfaces / Types
|
|
159
|
+
|
|
160
|
+
```ts
|
|
161
|
+
export interface MlvSelectOption<T = unknown> {
|
|
162
|
+
label: string;
|
|
163
|
+
value: T;
|
|
164
|
+
/** Optional group label — clusters options under a sticky, non-selectable header. */
|
|
165
|
+
group?: string;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
export type MlvSelectOptionTransform<T> = (item: T) => MlvSelectOption<T>;
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## Utility Functions
|
|
174
|
+
|
|
175
|
+
```ts
|
|
176
|
+
// Default transform — uses String(item)
|
|
177
|
+
export function defaultOptionTransform<T>(item: T): MlvSelectOption<T>;
|
|
178
|
+
|
|
179
|
+
// Type-guard: MlvSelectOption-shaped value (label + value)
|
|
180
|
+
export function isSelectOption<T>(value: unknown): value is MlvSelectOption<T>;
|
|
181
|
+
|
|
182
|
+
// Type-guard: at least one option declares a non-empty `group` (drives grouped
|
|
183
|
+
// rendering). false for empty / ungrouped arrays, so ungrouped lists are unchanged.
|
|
184
|
+
export function hasOptionGroups<T>(options: readonly MlvSelectOption<T>[]): boolean;
|
|
185
|
+
|
|
186
|
+
// Map items array to MlvSelectOption array
|
|
187
|
+
export function resolveOptions<T>(items: T[], transform: MlvSelectOptionTransform<T>): MlvSelectOption<T>[];
|
|
188
|
+
|
|
189
|
+
// Deterministic activedescendant option id (`<listboxId>-option-<index>`).
|
|
190
|
+
// Canonical format owner — `MlvDropdownPanel.optionId`, `mlv-combobox`,
|
|
191
|
+
// and `[mlvAutocomplete]` all call this so the id never drifts.
|
|
192
|
+
export function optionId(listboxId: string, index: number): string;
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### `MlvActiveDescendant` (activedescendant keyboard model)
|
|
196
|
+
|
|
197
|
+
Signal-backed active-option index bookkeeping shared by `mlv-combobox` and `[mlvAutocomplete]` (both previously carried a byte-identical `_moveActive`). The option count is read lazily via a constructor accessor, so the owner backs it with any signal/computed (e.g. `filteredOptions().length`, `_results().length`) without pushing the count on every keystroke.
|
|
198
|
+
|
|
199
|
+
```ts
|
|
200
|
+
class MlvActiveDescendant {
|
|
201
|
+
/** Read-only active index; -1 = none. Reactive (template/effect) or imperative. */
|
|
202
|
+
readonly index: Signal<number>;
|
|
203
|
+
constructor(count: () => number);
|
|
204
|
+
/** Advance by delta with wrap-around; a first move from -1 lands on first (delta>0) / last (delta<0); resets to -1 when count is 0. */
|
|
205
|
+
move(delta: number): void;
|
|
206
|
+
first(): void; // activate index 0; no-op when empty
|
|
207
|
+
last(): void; // activate count-1; no-op when empty
|
|
208
|
+
reset(): void; // clear back to -1
|
|
209
|
+
}
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### `MlvSelectDataSource<T>`
|
|
213
|
+
|
|
214
|
+
`extends MlvArrayDataSource<T>` (`@malva-ui/cdk/data-source`) with `perPage` forced to `Infinity` in the constructor — the only override. Everything else (filtering, natural-field search via `setSearch({ query, keys: [] })`, sorting, `loading`) is inherited unchanged. Reach for it when option controls (`mlv-select`, `mlv-combobox`, `[mlvAutocomplete]`) want the data-source shape over an in-memory array so a swap to a remote subclass later is a one-line change; a plain `T[]` is still the simplest input when no data-source features are needed.
|
|
215
|
+
|
|
216
|
+
```ts
|
|
217
|
+
const ds = new MlvSelectDataSource(['a', 'b', 'c']); // or a Signal<T[]>
|
|
218
|
+
ds.perPage(); // Infinity
|
|
219
|
+
ds.connect()(); // ['a', 'b', 'c'] — unpaged
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### Async result normalization (`options-result.ts`)
|
|
223
|
+
|
|
224
|
+
```ts
|
|
225
|
+
// Array / Promise / Observable → one-shot Observable<T[]>.
|
|
226
|
+
export function toOptionsResult<T>(result: T[] | Promise<T[]> | Observable<T[]>): Observable<T[]>;
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
Lived as a private helper inside `[mlvAutocomplete]` until every option control needed the same async boundary.
|
|
230
|
+
|
|
231
|
+
### Options adapter (`options-adapter.ts`)
|
|
232
|
+
|
|
233
|
+
`MlvOptionsAdapter<T>` normalises everything an option control accepts as `options` — plus an optional `searchFn` — into one reactive shape shared by `mlv-select`, `mlv-combobox` and `[mlvAutocomplete]`. **Construct it inside an injection context** (a component field initialiser or constructor): it creates `effect()`s and injects `DestroyRef`.
|
|
234
|
+
|
|
235
|
+
```ts
|
|
236
|
+
export type MlvOptionsSearchFn<T> = (query: string) => T[] | Promise<T[]> | Observable<T[]>;
|
|
237
|
+
export type MlvOptionsInput<T> = readonly T[] | Observable<readonly T[]> | MlvDataSource<T> | null | undefined;
|
|
238
|
+
export type MlvOptionsMode = 'local' | 'remote';
|
|
239
|
+
|
|
240
|
+
readonly adapter = new MlvOptionsAdapter<T>({
|
|
241
|
+
source: this.options, // Signal<MlvOptionsInput<T>>
|
|
242
|
+
searchFn: this.searchFn, // Signal<MlvOptionsSearchFn<T> | null | undefined>
|
|
243
|
+
debounce: this.debounce, // Signal<number> — remote searches only
|
|
244
|
+
eager: this.eager, // Signal<boolean> — searchFn('') at construction
|
|
245
|
+
});
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
**Config** (`MlvOptionsAdapterConfig<T>`) — every field is a `Signal`, so the control passes its `input()`s straight through:
|
|
249
|
+
|
|
250
|
+
| Field | Type | Purpose |
|
|
251
|
+
| ---------- | ---------------------------------------------------- | --------------------------------------------------------------------------------- |
|
|
252
|
+
| `source` | `Signal<MlvOptionsInput<T>>` | The control's `options` input |
|
|
253
|
+
| `searchFn` | `Signal<MlvOptionsSearchFn<T> \| null \| undefined>` | Optional remote search; **supersedes `source`** when set |
|
|
254
|
+
| `debounce` | `Signal<number>` | Debounce (ms) for `search()`; `0` runs immediately. Remote modes only |
|
|
255
|
+
| `eager` | `Signal<boolean>` | `true` → `searchFn('')` runs at construction instead of on first `ensureLoaded()` |
|
|
256
|
+
|
|
257
|
+
**Signals**
|
|
258
|
+
|
|
259
|
+
| Signal | Meaning |
|
|
260
|
+
| ------------- | ------------------------------------------------------------------------------------------------------------------------- |
|
|
261
|
+
| `mode` | `'local'` (consumer filters `items` itself) vs `'remote'` (source owns filtering — call `search()`, render `items` as-is) |
|
|
262
|
+
| `items` | Current raw items — accumulated page slices for a data source |
|
|
263
|
+
| `loading` | First page / search in flight — drives the panel's top loading affordance |
|
|
264
|
+
| `loadingMore` | A page **beyond the first** is in flight — drives the bottom loading row. Data source only |
|
|
265
|
+
| `ready` | The first payload has arrived; lets a consumer tell "empty" from "not loaded yet" |
|
|
266
|
+
| `hasMore` | `items.length < totalItems()` — more pages exist. Data source only |
|
|
267
|
+
|
|
268
|
+
**Methods** — `search(query)` (debounced; no-op in local mode), `ensureLoaded()` (runs the initial `searchFn` load once, e.g. on first panel open), `loadMore()` (requests the next data-source page).
|
|
269
|
+
|
|
270
|
+
**Per-source semantics**
|
|
271
|
+
|
|
272
|
+
| Source | `mode` | `items` | `loading` | `loadingMore` | `ready` | `hasMore` | `search(q)` |
|
|
273
|
+
| ------------------------------------- | -------- | ---------------------------- | --------------------------------- | ------------------------------- | --------------------------------------- | -------------------------------- | --------------------------------------------------------------------------- |
|
|
274
|
+
| `readonly T[]` / `null` / `undefined` | `local` | the array (`[]` for nullish) | `false` | `false` | `true` immediately | `false` | no-op |
|
|
275
|
+
| `Observable<readonly T[]>` | `local` | latest emission | `true` until the first emission | `false` | after the first emission | `false` | no-op |
|
|
276
|
+
| `MlvDataSource<T>` | `remote` | accumulated page slices | `ds.loading() && ds.page() === 1` | `ds.loading() && ds.page() > 1` | once observed not-loading since connect | `items.length < ds.totalItems()` | `ds.setSearch({ query, keys: [] })`, or `null` for a blank/whitespace query |
|
|
277
|
+
| `searchFn` (wins over `source`) | `remote` | last result (`[]` on error) | while a call is in flight | `false` | after the first result **or error** | `false` | invokes `searchFn(q)` |
|
|
278
|
+
|
|
279
|
+
- Observable source: a **new observable reference** unsubscribes the old one, clears `items` and resets `ready` — a late emission from the previous observable is dropped.
|
|
280
|
+
- `searchFn`: a newer query supersedes an in-flight one (the older subscription is torn down and its result discarded by a monotonic token); **stale `items` stay visible until the new result lands**. Errors resolve to `[]` and end `loading` — they never leave the control stuck in a loading state. Only the first emission of an observable result is taken.
|
|
281
|
+
- `searchFn` is **lazy** by default: nothing runs until `ensureLoaded()` (or `search()`). `ensureLoaded()` replays the last `search()` query and is a no-op once a load has started. `eager: true` runs `searchFn('')` at construction.
|
|
282
|
+
- A **swapped `searchFn`** re-arms the lazy gate and **nothing else** — the next `ensureLoaded()` calls the new function (immediately, if `eager`). The in-flight call is left running and `items` / `ready` / `loading` are untouched, so results stay on screen until the new function answers (the same "stale results kept while loading" contract a newer query follows); a late result from the old function is discarded by the monotonic token once the new one starts. Clearing/reset semantics are deliberately absent because they would make the control sensitive to the _reference_ identity of the bound function, and an inline arrow (`[search]="(q) => api.find(q)"`) is a fresh reference on every change-detection run. The very first observation (`undefined → fn` at construction) is not a swap. Binding a stable function reference is still the recommendation — it is just no longer load-bearing for correctness.
|
|
283
|
+
- A `searchFn` **supersedes the source without connecting it**: a `MlvDataSource` passed alongside is left untouched (no `connect()`, no fetch). Clearing the `searchFn` hands the branch back to the data source, which connects then.
|
|
284
|
+
|
|
285
|
+
**Paging accumulation contract** (data source only) — `MlvDataSource.connect()` emits the **current page's slice**; the adapter is what turns slices into a growing list:
|
|
286
|
+
|
|
287
|
+
The adapter tracks the **applied page** (the page whose slice is currently in `items`) and the items accumulated _before_ it, then routes each new slice by comparing the source's page against it:
|
|
288
|
+
|
|
289
|
+
| Incoming slice | Result |
|
|
290
|
+
| --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
291
|
+
| same slice reference as the one applied | **nothing applied** — a `page` bump whose data has not arrived yet must not append |
|
|
292
|
+
| `page <= 1` | **replaces** `items`; accumulation restarts |
|
|
293
|
+
| `page === appliedPage` | the page already shown was re-emitted (backing array changed, refetch landed) → its **tail is replaced**, never appended, so rows are not duplicated |
|
|
294
|
+
| `page > appliedPage` | **appended** to the accumulated items |
|
|
295
|
+
|
|
296
|
+
- `loadMore()` calls `setPage(page + 1)` and is a **no-op** unless `hasMore()`, nothing is in flight, **and the source's page is the one already applied**. A page requested but not yet accumulated blocks the next bump, so a scroll sentinel firing repeatedly cannot skip a page — including for sources that never report `loading` (`MlvArrayDataSource` / `MlvSelectDataSource`), where the loading flag alone would guard nothing.
|
|
297
|
+
- A same-page re-emit replaces **only the last applied page's tail** — the pages accumulated before it are kept as-is and never refreshed. By design: the adapter holds no per-page provenance for earlier slices, and a paged source that mutates an earlier page is expected to reset (a new search / a fresh source), which restarts accumulation from page 1.
|
|
298
|
+
- `setSearch()` resets the source to page 1 (base-class behaviour), so the next slice replaces rather than appends — accumulation restarts per search, and `loadMore()` stays blocked until it lands. Stale items stay visible while that search is in flight.
|
|
299
|
+
- Reconnecting (a new `source`, or a `searchFn` being cleared) resets `items`, `ready` and all the accumulation bookkeeping.
|
|
300
|
+
|
|
301
|
+
### aria reconciliation guard (`reconciliation.ts`)
|
|
302
|
+
|
|
303
|
+
`@angular/aria`'s `ngListbox` reconciles its `value` model against the currently **rendered** options and re-emits `valueChange` whenever the rendered set changes — not only on user interaction. Any control that filters the panel's options while a selection is committed (`mlv-combobox` today, `mlv-select` once it filters) must tell that noise apart from a genuine pick, or typing wipes the committed value. Both helpers are pure: the owner passes the currently visible option **values** and its own `compareWith`.
|
|
304
|
+
|
|
305
|
+
```ts
|
|
306
|
+
// True when the emit (a) adds no value that is not already committed and
|
|
307
|
+
// (b) only removes values whose option is currently not rendered. An emit that
|
|
308
|
+
// exactly restates the committed selection counts as reconciliation too.
|
|
309
|
+
export function isReconciliationEmit<T>(incoming: readonly T[], committed: readonly T[], visible: readonly T[], compare: (a: T, b: T) => boolean): boolean;
|
|
310
|
+
|
|
311
|
+
// Committed values aria dropped only because their option is not rendered (and
|
|
312
|
+
// that are not incoming) — re-add them to a genuine multi-select pick so
|
|
313
|
+
// earlier selections survive filtering.
|
|
314
|
+
export function filteredOutCommitted<T>(incoming: readonly T[], committed: readonly T[], visible: readonly T[], compare: (a: T, b: T) => boolean): T[];
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
`mlv-combobox` keeps its private `_isReconciliationEmit` / `_filteredOutCommitted` method names and delegates to these, passing `filteredOptions().map((o) => o.value)` as `visible`.
|
|
318
|
+
|
|
319
|
+
---
|
|
320
|
+
|
|
321
|
+
## Testing
|
|
322
|
+
|
|
323
|
+
- Nx project: **`core-dropdown`** — `yarn nx test core-dropdown`.
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
## Usage Example
|
|
328
|
+
|
|
329
|
+
```html
|
|
330
|
+
<mlv-dropdown-panel [options]="options()" [selectedValues]="selected()" [multiple]="false" (valueChange)="onSelect($event)" />
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
## Dependencies
|
|
336
|
+
|
|
337
|
+
- `@malva-ui/core/list` — `MlvList`, `MlvListItem`, `MlvListSelectable`, `MlvListItemSelectable` (the listbox accessibility now comes from `@angular/aria` via these list directives; the panel no longer imports `@angular/cdk/listbox` directly)
|
|
338
|
+
- `@malva-ui/core/form-utils` — `MlvSelectionService`
|
|
339
|
+
- `@malva-ui/core/scrollbar` — themed vertical scrolling without adding another composite-widget tab stop; its `viewportElement` getter is the sentinel's scroll owner in `scrollMode="self"`
|
|
340
|
+
- `@malva-ui/cdk/infinite-scroll` — `MlvInfiniteScroll` on the paging sentinel (`scrollContainer`, `threshold`, `check()`)
|
|
341
|
+
- `@malva-ui/cdk/utils` — `mlvNextId` (stable fallback id for the inner listbox when no `listboxId` is supplied), `normalizeForMatch` (re-exported for existing consumers; implementation now lives here)
|
|
342
|
+
- `@malva-ui/cdk/data-source` — `MlvArrayDataSource`, extended by `MlvSelectDataSource`; `MlvDataSource` + `MlvSearchState`, the paged/remote branch of `MlvOptionsAdapter`
|
|
343
|
+
- `@lucide/angular` — `LucideCheck` icon
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
# Library: empty-state
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
`@malva-ui/core/empty-state` provides a placeholder component (`mlv-empty-state`) for displaying when there is no content to show. It is a pure content-projection component with four named slots: icon/illustration, title, description, and actions. All slots are optional — compose only the ones required for a given use-case. Slots that receive no content automatically collapse via `:empty { display: none }`.
|
|
6
|
+
|
|
7
|
+
Package import path: `@malva-ui/core/empty-state`
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Public API
|
|
12
|
+
|
|
13
|
+
| Export | Kind | Description |
|
|
14
|
+
| --------------- | --------- | ------------------------------------------------------------------------------- |
|
|
15
|
+
| `MlvEmptyState` | Component | Placeholder panel (`mlv-empty-state`) with four named content-projection slots. |
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Components
|
|
20
|
+
|
|
21
|
+
### `MlvEmptyState`
|
|
22
|
+
|
|
23
|
+
| Property | Value |
|
|
24
|
+
| ------------------ | ------------------ |
|
|
25
|
+
| Selector | `mlv-empty-state` |
|
|
26
|
+
| Change Detection | `OnPush` |
|
|
27
|
+
| View Encapsulation | `None` |
|
|
28
|
+
| Template | `empty-state.html` |
|
|
29
|
+
| Styles | `empty-state.scss` |
|
|
30
|
+
|
|
31
|
+
#### Inputs
|
|
32
|
+
|
|
33
|
+
None. The component is entirely driven by content projection.
|
|
34
|
+
|
|
35
|
+
#### Outputs
|
|
36
|
+
|
|
37
|
+
None.
|
|
38
|
+
|
|
39
|
+
#### Host Bindings
|
|
40
|
+
|
|
41
|
+
| Binding | Value |
|
|
42
|
+
| ------- | -------------------------------------------------------------- |
|
|
43
|
+
| `class` | `'mlv-empty-state'` (static block class) |
|
|
44
|
+
| `role` | `'status'` (announces the empty state to assistive technology) |
|
|
45
|
+
|
|
46
|
+
#### Content Projection Slots
|
|
47
|
+
|
|
48
|
+
| Attribute selector | Wrapper element | Description |
|
|
49
|
+
| ---------------------------- | ---------------------------------- | ----------------------------------------------------------------------------------------------------- |
|
|
50
|
+
| `[mlvEmptyStateIcon]` | `div.mlv-empty-state__icon` | Icon or illustration rendered above the text body. Use Lucide icons or any `<img>` / `<svg>` element. |
|
|
51
|
+
| `[mlvEmptyStateTitle]` | `div.mlv-empty-state__title` | Short heading text for the empty state. |
|
|
52
|
+
| `[mlvEmptyStateDescription]` | `div.mlv-empty-state__description` | Supporting description text (max-width 28rem, capped for readability). |
|
|
53
|
+
| `[mlvEmptyStateActions]` | `div.mlv-empty-state__actions` | One or more action buttons (e.g. `button[mlvButton]`). Wraps with `flex-wrap`. |
|
|
54
|
+
|
|
55
|
+
Each slot wrapper hides itself with `display: none` when empty, so unused slots do not contribute layout gaps.
|
|
56
|
+
|
|
57
|
+
#### Template Summary
|
|
58
|
+
|
|
59
|
+
```html
|
|
60
|
+
<div class="mlv-empty-state__icon">
|
|
61
|
+
<ng-content select="[mlvEmptyStateIcon]" />
|
|
62
|
+
</div>
|
|
63
|
+
|
|
64
|
+
<div class="mlv-empty-state__body">
|
|
65
|
+
<div class="mlv-empty-state__title">
|
|
66
|
+
<ng-content select="[mlvEmptyStateTitle]" />
|
|
67
|
+
</div>
|
|
68
|
+
<div class="mlv-empty-state__description">
|
|
69
|
+
<ng-content select="[mlvEmptyStateDescription]" />
|
|
70
|
+
</div>
|
|
71
|
+
</div>
|
|
72
|
+
|
|
73
|
+
<div class="mlv-empty-state__actions">
|
|
74
|
+
<ng-content select="[mlvEmptyStateActions]" />
|
|
75
|
+
</div>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
#### SCSS Structure
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
.mlv-empty-state — block: flex column, centered, gap 1rem, padding 2rem, text-align center
|
|
82
|
+
&__icon — flex center; color: --mlv-text-tertiary; :empty → display:none
|
|
83
|
+
&__body — flex column, center, gap 0.5rem; :empty → display:none
|
|
84
|
+
&__title — h4-sized heading, font-weight 600, color --mlv-text-secondary; :empty → display:none
|
|
85
|
+
&__description — body text, color --mlv-text-tertiary, max-width 28rem; :empty → display:none
|
|
86
|
+
&__actions — flex wrap, centered, gap 0.5rem; :empty → display:none
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**Design tokens used:**
|
|
90
|
+
|
|
91
|
+
| Token | Where used |
|
|
92
|
+
| ------------------------------ | --------------------------------- |
|
|
93
|
+
| `--mlv-text-tertiary` | Icon color, description color |
|
|
94
|
+
| `--mlv-text-secondary` | Title color |
|
|
95
|
+
| `--mlv-typography-family-text` | Title and description font family |
|
|
96
|
+
| `--mlv-typography-heading-h4` | Title font size |
|
|
97
|
+
| `--mlv-font-size-m` | Description font size |
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Usage Examples
|
|
102
|
+
|
|
103
|
+
### Minimal — icon and title only
|
|
104
|
+
|
|
105
|
+
```html
|
|
106
|
+
<mlv-empty-state>
|
|
107
|
+
<ng-container mlvEmptyStateIcon>
|
|
108
|
+
<svg lucideInbox [size]="48" />
|
|
109
|
+
</ng-container>
|
|
110
|
+
<span mlvEmptyStateTitle>No items found</span>
|
|
111
|
+
</mlv-empty-state>
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Full — icon, title, description, and action
|
|
115
|
+
|
|
116
|
+
```html
|
|
117
|
+
<mlv-empty-state>
|
|
118
|
+
<ng-container mlvEmptyStateIcon>
|
|
119
|
+
<svg lucideFolder [size]="48" />
|
|
120
|
+
</ng-container>
|
|
121
|
+
<span mlvEmptyStateTitle>No projects yet</span>
|
|
122
|
+
<span mlvEmptyStateDescription> Create your first project to get started. Projects let you organise your work. </span>
|
|
123
|
+
<ng-container mlvEmptyStateActions>
|
|
124
|
+
<button mlvButton>Create project</button>
|
|
125
|
+
<button mlvButton variant="secondary">Import</button>
|
|
126
|
+
</ng-container>
|
|
127
|
+
</mlv-empty-state>
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Search / filter empty state
|
|
131
|
+
|
|
132
|
+
```html
|
|
133
|
+
<mlv-empty-state>
|
|
134
|
+
<ng-container mlvEmptyStateIcon>
|
|
135
|
+
<svg lucideSearch [size]="48" />
|
|
136
|
+
</ng-container>
|
|
137
|
+
<span mlvEmptyStateTitle>No results for "{{ searchQuery }}"</span>
|
|
138
|
+
<span mlvEmptyStateDescription>Try different keywords or clear the filter.</span>
|
|
139
|
+
<ng-container mlvEmptyStateActions>
|
|
140
|
+
<button mlvButton variant="secondary" (click)="clearSearch()">Clear search</button>
|
|
141
|
+
</ng-container>
|
|
142
|
+
</mlv-empty-state>
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Title and actions only (no icon or description)
|
|
146
|
+
|
|
147
|
+
```html
|
|
148
|
+
<mlv-empty-state>
|
|
149
|
+
<span mlvEmptyStateTitle>Nothing here</span>
|
|
150
|
+
<ng-container mlvEmptyStateActions>
|
|
151
|
+
<button mlvButton>Add item</button>
|
|
152
|
+
</ng-container>
|
|
153
|
+
</mlv-empty-state>
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Dependencies
|
|
159
|
+
|
|
160
|
+
### Angular / third-party
|
|
161
|
+
|
|
162
|
+
- `@angular/core`
|
|
163
|
+
|
|
164
|
+
### Internal
|
|
165
|
+
|
|
166
|
+
- `@malva-ui/styles` (SCSS design tokens referenced in `empty-state.scss`)
|
|
167
|
+
- `@malva-ui/core/button` (recommended for action slot content, not a hard dependency)
|