@malva-ui/core 0.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +92 -0
- package/README.md +61 -0
- package/accordion/index.d.ts +3 -0
- package/accordion/lib/accordion/accordion.d.ts +47 -0
- package/accordion/lib/accordion-item/accordion-header.d.ts +22 -0
- package/accordion/lib/accordion-item/accordion-item.d.ts +49 -0
- package/accordion/malva-ui-core-accordion.d.ts +5 -0
- package/action-bar/index.d.ts +4 -0
- package/action-bar/lib/action-bar/action-bar.d.ts +59 -0
- package/action-bar/lib/action-bar/components/action-bar-actions.d.ts +9 -0
- package/action-bar/lib/action-bar/components/action-bar-logo.d.ts +5 -0
- package/action-bar/lib/action-bar/components/action-bar-spacer.d.ts +5 -0
- package/action-bar/malva-ui-core-action-bar.d.ts +5 -0
- package/alert/index.d.ts +2 -0
- package/alert/lib/alert/alert.d.ts +84 -0
- package/alert/lib/alert/alert.directives.d.ts +44 -0
- package/alert/malva-ui-core-alert.d.ts +5 -0
- package/autocomplete/index.d.ts +1 -0
- package/autocomplete/lib/autocomplete/autocomplete.d.ts +296 -0
- package/autocomplete/malva-ui-core-autocomplete.d.ts +5 -0
- package/avatar/index.d.ts +2 -0
- package/avatar/lib/avatar/avatar.d.ts +125 -0
- package/avatar/lib/color-from-text.pipe.d.ts +21 -0
- package/avatar/malva-ui-core-avatar.d.ts +5 -0
- package/avatar-group/index.d.ts +1 -0
- package/avatar-group/lib/avatar-group/avatar-group.d.ts +115 -0
- package/avatar-group/malva-ui-core-avatar-group.d.ts +5 -0
- package/badge/index.d.ts +2 -0
- package/badge/lib/badge/badge.d.ts +59 -0
- package/badge/lib/badge-icon.d.ts +35 -0
- package/badge/malva-ui-core-badge.d.ts +5 -0
- package/bottom-nav/index.d.ts +1 -0
- package/bottom-nav/lib/bottom-nav/bottom-nav.d.ts +99 -0
- package/bottom-nav/malva-ui-core-bottom-nav.d.ts +5 -0
- package/breadcrumb/index.d.ts +5 -0
- package/breadcrumb/lib/breadcrumb/breadcrumb-item-host.d.ts +32 -0
- package/breadcrumb/lib/breadcrumb/breadcrumb-item.d.ts +41 -0
- package/breadcrumb/lib/breadcrumb/breadcrumb-separator.d.ts +31 -0
- package/breadcrumb/lib/breadcrumb/breadcrumb.d.ts +151 -0
- package/breadcrumb/lib/breadcrumb/breadcrumb.types.d.ts +26 -0
- package/breadcrumb/malva-ui-core-breadcrumb.d.ts +5 -0
- package/button/index.d.ts +7 -0
- package/button/lib/button/button.d.ts +61 -0
- package/button/lib/button-close/button-close.d.ts +24 -0
- package/button/lib/button-group/button-group.d.ts +21 -0
- package/button/lib/button-split/button-split.d.ts +21 -0
- package/button/lib/button-toggle/button-toggle.d.ts +33 -0
- package/button/lib/button-variant.token.d.ts +13 -0
- package/button/lib/button.directives.d.ts +14 -0
- package/button/lib/button.types.d.ts +8 -0
- package/button/malva-ui-core-button.d.ts +5 -0
- package/calendar/index.d.ts +3 -0
- package/calendar/lib/calendar/calendar.d.ts +182 -0
- package/calendar/lib/date-provider/date-adapter.d.ts +92 -0
- package/calendar/lib/date-provider/native-date-adapter.d.ts +60 -0
- package/calendar/malva-ui-core-calendar.d.ts +5 -0
- package/card/index.d.ts +5 -0
- package/card/lib/card/card.d.ts +43 -0
- package/card/lib/card-actions-def.d.ts +10 -0
- package/card/lib/card-footer-def.d.ts +13 -0
- package/card/lib/card-header-def.d.ts +10 -0
- package/card/lib/card-subheader-def.d.ts +16 -0
- package/card/malva-ui-core-card.d.ts +5 -0
- package/chat/index.d.ts +9 -0
- package/chat/lib/chat/chat.d.ts +133 -0
- package/chat/lib/chat-audio/chat-audio.d.ts +51 -0
- package/chat/lib/chat-audio/chat-audio.service.d.ts +21 -0
- package/chat/lib/chat-date/chat-date.d.ts +16 -0
- package/chat/lib/chat-format.d.ts +5 -0
- package/chat/lib/chat-media-grid/chat-media-grid.d.ts +32 -0
- package/chat/lib/chat-message/chat-message.d.ts +45 -0
- package/chat/lib/chat-render-list.d.ts +16 -0
- package/chat/lib/chat-tokens.d.ts +25 -0
- package/chat/lib/chat-typing/chat-typing.d.ts +16 -0
- package/chat/lib/chat.types.d.ts +80 -0
- package/chat/lib/defs/chat-author-def.d.ts +30 -0
- package/chat/lib/defs/chat-date-def.d.ts +22 -0
- package/chat/lib/defs/chat-message-def.d.ts +23 -0
- package/chat/malva-ui-core-chat.d.ts +5 -0
- package/checkbox/index.d.ts +3 -0
- package/checkbox/lib/checkbox/checkbox.d.ts +129 -0
- package/checkbox/lib/checkbox-group/checkbox-group.d.ts +24 -0
- package/checkbox/lib/checkbox-group-token.d.ts +6 -0
- package/checkbox/malva-ui-core-checkbox.d.ts +5 -0
- package/chip/index.d.ts +2 -0
- package/chip/lib/chip/chip.d.ts +107 -0
- package/chip/lib/chip/chip.directives.d.ts +18 -0
- package/chip/malva-ui-core-chip.d.ts +5 -0
- package/color-picker/index.d.ts +3 -0
- package/color-picker/lib/color-picker/color-picker.d.ts +188 -0
- package/color-picker/lib/color-picker-popup/color-picker-popup.d.ts +151 -0
- package/color-picker/lib/color-utils/color-utils.d.ts +102 -0
- package/color-picker/malva-ui-core-color-picker.d.ts +5 -0
- package/combobox/index.d.ts +2 -0
- package/combobox/lib/combobox/combobox.d.ts +400 -0
- package/combobox/lib/combobox-template.directives.d.ts +10 -0
- package/combobox/malva-ui-core-combobox.d.ts +5 -0
- package/copy-to-clipboard/index.d.ts +1 -0
- package/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.d.ts +130 -0
- package/copy-to-clipboard/malva-ui-core-copy-to-clipboard.d.ts +5 -0
- package/data-table/index.d.ts +8 -0
- package/data-table/lib/data-source.d.ts +5 -0
- package/data-table/lib/data-table/data-table-layout.d.ts +31 -0
- package/data-table/lib/data-table/data-table.d.ts +699 -0
- package/data-table/lib/data-table/services/data-table-column-visibility.service.d.ts +19 -0
- package/data-table/lib/data-table/services/data-table-editing.service.d.ts +37 -0
- package/data-table/lib/data-table/services/data-table-pinning.service.d.ts +37 -0
- package/data-table/lib/data-table-cell.d.ts +44 -0
- package/data-table/lib/data-table-edit-cell.d.ts +44 -0
- package/data-table/lib/data-table-error.d.ts +37 -0
- package/data-table/lib/data-table-footer.d.ts +26 -0
- package/data-table/lib/data-table-no-data.d.ts +19 -0
- package/data-table/lib/filter-dropdown/filter-dropdown.d.ts +54 -0
- package/data-table/lib/types.d.ts +134 -0
- package/data-table/malva-ui-core-data-table.d.ts +5 -0
- package/date-range-picker/index.d.ts +1 -0
- package/date-range-picker/lib/date-range-picker/date-range-picker.d.ts +145 -0
- package/date-range-picker/malva-ui-core-date-range-picker.d.ts +5 -0
- package/day-picker/index.d.ts +1 -0
- package/day-picker/lib/day-picker/day-picker.d.ts +51 -0
- package/day-picker/malva-ui-core-day-picker.d.ts +5 -0
- package/dialog/index.d.ts +11 -0
- package/dialog/lib/confirm-dialog-options.d.ts +41 -0
- package/dialog/lib/confirm-dialog.d.ts +52 -0
- package/dialog/lib/dialog/dialog.d.ts +22 -0
- package/dialog/lib/dialog-body.d.ts +9 -0
- package/dialog/lib/dialog-close.d.ts +27 -0
- package/dialog/lib/dialog-config.d.ts +112 -0
- package/dialog/lib/dialog-container.d.ts +40 -0
- package/dialog/lib/dialog-footer.d.ts +13 -0
- package/dialog/lib/dialog-header.d.ts +74 -0
- package/dialog/lib/dialog-ref.d.ts +95 -0
- package/dialog/lib/dialog-template.d.ts +65 -0
- package/dialog/lib/dialog-text-content.d.ts +24 -0
- package/dialog/lib/dialog.service.d.ts +63 -0
- package/dialog/lib/generate-routable-dialog-route.d.ts +49 -0
- package/dialog/lib/inject-dialog-ref.d.ts +8 -0
- package/dialog/lib/routable-dialog.d.ts +30 -0
- package/dialog/malva-ui-core-dialog.d.ts +5 -0
- package/divider/index.d.ts +1 -0
- package/divider/lib/divider/divider.d.ts +64 -0
- package/divider/malva-ui-core-divider.d.ts +5 -0
- package/docs/ai/accordion.md +102 -0
- package/docs/ai/action-bar.md +198 -0
- package/docs/ai/alert.md +190 -0
- package/docs/ai/autocomplete.md +111 -0
- package/docs/ai/avatar-group.md +184 -0
- package/docs/ai/avatar.md +150 -0
- package/docs/ai/badge.md +163 -0
- package/docs/ai/bottom-nav.md +267 -0
- package/docs/ai/breadcrumb.md +174 -0
- package/docs/ai/button.md +306 -0
- package/docs/ai/calendar.md +237 -0
- package/docs/ai/card.md +196 -0
- package/docs/ai/chat.md +145 -0
- package/docs/ai/checkbox.md +193 -0
- package/docs/ai/chip.md +139 -0
- package/docs/ai/color-picker.md +270 -0
- package/docs/ai/combobox.md +325 -0
- package/docs/ai/copy-to-clipboard.md +159 -0
- package/docs/ai/core.md +216 -0
- package/docs/ai/data-table.md +917 -0
- package/docs/ai/date-range-picker.md +101 -0
- package/docs/ai/day-picker.md +135 -0
- package/docs/ai/dialog.md +852 -0
- package/docs/ai/divider.md +159 -0
- package/docs/ai/drawer.md +607 -0
- package/docs/ai/dropdown.md +343 -0
- package/docs/ai/empty-state.md +167 -0
- package/docs/ai/expand.md +234 -0
- package/docs/ai/file-upload.md +402 -0
- package/docs/ai/filter.md +43 -0
- package/docs/ai/form-utils.md +319 -0
- package/docs/ai/form.md +129 -0
- package/docs/ai/input.md +175 -0
- package/docs/ai/kbd.md +70 -0
- package/docs/ai/layout.md +192 -0
- package/docs/ai/link.md +179 -0
- package/docs/ai/list.md +249 -0
- package/docs/ai/loader.md +122 -0
- package/docs/ai/menu.md +335 -0
- package/docs/ai/notification.md +281 -0
- package/docs/ai/number-input.md +123 -0
- package/docs/ai/page.md +422 -0
- package/docs/ai/pagination.md +237 -0
- package/docs/ai/pin-input.md +173 -0
- package/docs/ai/popup.md +347 -0
- package/docs/ai/progress.md +84 -0
- package/docs/ai/radio.md +201 -0
- package/docs/ai/rating.md +76 -0
- package/docs/ai/scrollbar.md +170 -0
- package/docs/ai/search-field.md +85 -0
- package/docs/ai/segmented.md +331 -0
- package/docs/ai/select.md +512 -0
- package/docs/ai/sidebar.md +992 -0
- package/docs/ai/skeleton.md +187 -0
- package/docs/ai/slider.md +180 -0
- package/docs/ai/split-pane.md +235 -0
- package/docs/ai/status-indicator.md +95 -0
- package/docs/ai/stepper.md +385 -0
- package/docs/ai/switch.md +216 -0
- package/docs/ai/tabs.md +564 -0
- package/docs/ai/textarea.md +249 -0
- package/docs/ai/tile.md +150 -0
- package/docs/ai/time-picker.md +214 -0
- package/docs/ai/timeline.md +320 -0
- package/docs/ai/title.md +105 -0
- package/docs/ai/toast.md +484 -0
- package/docs/ai/tokenizer.md +236 -0
- package/docs/ai/toolbar.md +155 -0
- package/docs/ai/tooltip.md +154 -0
- package/docs/ai/tree.md +177 -0
- package/drawer/index.d.ts +11 -0
- package/drawer/lib/drawer/drawer.d.ts +106 -0
- package/drawer/lib/drawer-body.d.ts +8 -0
- package/drawer/lib/drawer-content.d.ts +6 -0
- package/drawer/lib/drawer-footer.d.ts +5 -0
- package/drawer/lib/drawer-header.d.ts +5 -0
- package/drawer/lib/drawer-ref.d.ts +29 -0
- package/drawer/lib/drawer-resize.d.ts +65 -0
- package/drawer/lib/drawer-section/drawer-section.d.ts +15 -0
- package/drawer/lib/drawer-sections/drawer-sections.d.ts +22 -0
- package/drawer/lib/drawer-sections.service.d.ts +42 -0
- package/drawer/lib/drawer.service.d.ts +66 -0
- package/drawer/lib/generate-routable-drawer-route.d.ts +42 -0
- package/drawer/lib/routable-drawer.d.ts +30 -0
- package/drawer/malva-ui-core-drawer.d.ts +5 -0
- package/dropdown/index.d.ts +9 -0
- package/dropdown/lib/active-descendant.d.ts +64 -0
- package/dropdown/lib/dropdown-panel/dropdown-panel.d.ts +178 -0
- package/dropdown/lib/highlight-match.pipe.d.ts +27 -0
- package/dropdown/lib/option-matcher.d.ts +87 -0
- package/dropdown/lib/options-adapter.d.ts +142 -0
- package/dropdown/lib/options-result.d.ts +6 -0
- package/dropdown/lib/reconciliation.d.ts +19 -0
- package/dropdown/lib/select-data-source.d.ts +18 -0
- package/dropdown/lib/select-option.d.ts +37 -0
- package/dropdown/malva-ui-core-dropdown.d.ts +5 -0
- package/empty-state/index.d.ts +1 -0
- package/empty-state/lib/empty-state/empty-state.d.ts +34 -0
- package/empty-state/malva-ui-core-empty-state.d.ts +5 -0
- package/esm2022/accordion/index.js +4 -0
- package/esm2022/accordion/index.js.map +1 -0
- package/esm2022/accordion/lib/accordion/accordion.js +65 -0
- package/esm2022/accordion/lib/accordion/accordion.js.map +1 -0
- package/esm2022/accordion/lib/accordion-item/accordion-header.js +30 -0
- package/esm2022/accordion/lib/accordion-item/accordion-header.js.map +1 -0
- package/esm2022/accordion/lib/accordion-item/accordion-item.js +70 -0
- package/esm2022/accordion/lib/accordion-item/accordion-item.js.map +1 -0
- package/esm2022/accordion/malva-ui-core-accordion.js +5 -0
- package/esm2022/accordion/malva-ui-core-accordion.js.map +1 -0
- package/esm2022/action-bar/index.js +5 -0
- package/esm2022/action-bar/index.js.map +1 -0
- package/esm2022/action-bar/lib/action-bar/action-bar.js +64 -0
- package/esm2022/action-bar/lib/action-bar/action-bar.js.map +1 -0
- package/esm2022/action-bar/lib/action-bar/components/action-bar-actions.js +20 -0
- package/esm2022/action-bar/lib/action-bar/components/action-bar-actions.js.map +1 -0
- package/esm2022/action-bar/lib/action-bar/components/action-bar-logo.js +13 -0
- package/esm2022/action-bar/lib/action-bar/components/action-bar-logo.js.map +1 -0
- package/esm2022/action-bar/lib/action-bar/components/action-bar-spacer.js +13 -0
- package/esm2022/action-bar/lib/action-bar/components/action-bar-spacer.js.map +1 -0
- package/esm2022/action-bar/malva-ui-core-action-bar.js +5 -0
- package/esm2022/action-bar/malva-ui-core-action-bar.js.map +1 -0
- package/esm2022/alert/index.js +3 -0
- package/esm2022/alert/index.js.map +1 -0
- package/esm2022/alert/lib/alert/alert.directives.js +53 -0
- package/esm2022/alert/lib/alert/alert.directives.js.map +1 -0
- package/esm2022/alert/lib/alert/alert.js +118 -0
- package/esm2022/alert/lib/alert/alert.js.map +1 -0
- package/esm2022/alert/malva-ui-core-alert.js +5 -0
- package/esm2022/alert/malva-ui-core-alert.js.map +1 -0
- package/esm2022/autocomplete/index.js +2 -0
- package/esm2022/autocomplete/index.js.map +1 -0
- package/esm2022/autocomplete/lib/autocomplete/autocomplete.js +765 -0
- package/esm2022/autocomplete/lib/autocomplete/autocomplete.js.map +1 -0
- package/esm2022/autocomplete/malva-ui-core-autocomplete.js +5 -0
- package/esm2022/autocomplete/malva-ui-core-autocomplete.js.map +1 -0
- package/esm2022/avatar/index.js +3 -0
- package/esm2022/avatar/index.js.map +1 -0
- package/esm2022/avatar/lib/avatar/avatar.js +192 -0
- package/esm2022/avatar/lib/avatar/avatar.js.map +1 -0
- package/esm2022/avatar/lib/color-from-text.pipe.js +39 -0
- package/esm2022/avatar/lib/color-from-text.pipe.js.map +1 -0
- package/esm2022/avatar/malva-ui-core-avatar.js +5 -0
- package/esm2022/avatar/malva-ui-core-avatar.js.map +1 -0
- package/esm2022/avatar-group/index.js +2 -0
- package/esm2022/avatar-group/index.js.map +1 -0
- package/esm2022/avatar-group/lib/avatar-group/avatar-group.js +217 -0
- package/esm2022/avatar-group/lib/avatar-group/avatar-group.js.map +1 -0
- package/esm2022/avatar-group/malva-ui-core-avatar-group.js +5 -0
- package/esm2022/avatar-group/malva-ui-core-avatar-group.js.map +1 -0
- package/esm2022/badge/index.js +3 -0
- package/esm2022/badge/index.js.map +1 -0
- package/esm2022/badge/lib/badge/badge.js +71 -0
- package/esm2022/badge/lib/badge/badge.js.map +1 -0
- package/esm2022/badge/lib/badge-icon.js +47 -0
- package/esm2022/badge/lib/badge-icon.js.map +1 -0
- package/esm2022/badge/malva-ui-core-badge.js +5 -0
- package/esm2022/badge/malva-ui-core-badge.js.map +1 -0
- package/esm2022/bottom-nav/index.js +2 -0
- package/esm2022/bottom-nav/index.js.map +1 -0
- package/esm2022/bottom-nav/lib/bottom-nav/bottom-nav.js +155 -0
- package/esm2022/bottom-nav/lib/bottom-nav/bottom-nav.js.map +1 -0
- package/esm2022/bottom-nav/malva-ui-core-bottom-nav.js +5 -0
- package/esm2022/bottom-nav/malva-ui-core-bottom-nav.js.map +1 -0
- package/esm2022/breadcrumb/index.js +6 -0
- package/esm2022/breadcrumb/index.js.map +1 -0
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item-host.js +43 -0
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item-host.js.map +1 -0
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item.js +110 -0
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-item.js.map +1 -0
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-separator.js +38 -0
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-separator.js.map +1 -0
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.js +284 -0
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.js.map +1 -0
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.types.js +1 -0
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.types.js.map +1 -0
- package/esm2022/breadcrumb/malva-ui-core-breadcrumb.js +5 -0
- package/esm2022/breadcrumb/malva-ui-core-breadcrumb.js.map +1 -0
- package/esm2022/button/index.js +8 -0
- package/esm2022/button/index.js.map +1 -0
- package/esm2022/button/lib/button/button.js +137 -0
- package/esm2022/button/lib/button/button.js.map +1 -0
- package/esm2022/button/lib/button-close/button-close.js +52 -0
- package/esm2022/button/lib/button-close/button-close.js.map +1 -0
- package/esm2022/button/lib/button-group/button-group.js +44 -0
- package/esm2022/button/lib/button-group/button-group.js.map +1 -0
- package/esm2022/button/lib/button-split/button-split.js +44 -0
- package/esm2022/button/lib/button-split/button-split.js.map +1 -0
- package/esm2022/button/lib/button-toggle/button-toggle.js +94 -0
- package/esm2022/button/lib/button-toggle/button-toggle.js.map +1 -0
- package/esm2022/button/lib/button-variant.token.js +4 -0
- package/esm2022/button/lib/button-variant.token.js.map +1 -0
- package/esm2022/button/lib/button.directives.js +37 -0
- package/esm2022/button/lib/button.directives.js.map +1 -0
- package/esm2022/button/lib/button.types.js +1 -0
- package/esm2022/button/lib/button.types.js.map +1 -0
- package/esm2022/button/malva-ui-core-button.js +5 -0
- package/esm2022/button/malva-ui-core-button.js.map +1 -0
- package/esm2022/calendar/index.js +4 -0
- package/esm2022/calendar/index.js.map +1 -0
- package/esm2022/calendar/lib/calendar/calendar.js +672 -0
- package/esm2022/calendar/lib/calendar/calendar.js.map +1 -0
- package/esm2022/calendar/lib/date-provider/date-adapter.js +111 -0
- package/esm2022/calendar/lib/date-provider/date-adapter.js.map +1 -0
- package/esm2022/calendar/lib/date-provider/native-date-adapter.js +151 -0
- package/esm2022/calendar/lib/date-provider/native-date-adapter.js.map +1 -0
- package/esm2022/calendar/malva-ui-core-calendar.js +5 -0
- package/esm2022/calendar/malva-ui-core-calendar.js.map +1 -0
- package/esm2022/card/index.js +6 -0
- package/esm2022/card/index.js.map +1 -0
- package/esm2022/card/lib/card/card.js +54 -0
- package/esm2022/card/lib/card/card.js.map +1 -0
- package/esm2022/card/lib/card-actions-def.js +27 -0
- package/esm2022/card/lib/card-actions-def.js.map +1 -0
- package/esm2022/card/lib/card-footer-def.js +32 -0
- package/esm2022/card/lib/card-footer-def.js.map +1 -0
- package/esm2022/card/lib/card-header-def.js +27 -0
- package/esm2022/card/lib/card-header-def.js.map +1 -0
- package/esm2022/card/lib/card-subheader-def.js +33 -0
- package/esm2022/card/lib/card-subheader-def.js.map +1 -0
- package/esm2022/card/malva-ui-core-card.js +5 -0
- package/esm2022/card/malva-ui-core-card.js.map +1 -0
- package/esm2022/chat/index.js +10 -0
- package/esm2022/chat/index.js.map +1 -0
- package/esm2022/chat/lib/chat/chat.js +326 -0
- package/esm2022/chat/lib/chat/chat.js.map +1 -0
- package/esm2022/chat/lib/chat-audio/chat-audio.js +110 -0
- package/esm2022/chat/lib/chat-audio/chat-audio.js.map +1 -0
- package/esm2022/chat/lib/chat-audio/chat-audio.service.js +28 -0
- package/esm2022/chat/lib/chat-audio/chat-audio.service.js.map +1 -0
- package/esm2022/chat/lib/chat-date/chat-date.js +46 -0
- package/esm2022/chat/lib/chat-date/chat-date.js.map +1 -0
- package/esm2022/chat/lib/chat-format.js +11 -0
- package/esm2022/chat/lib/chat-format.js.map +1 -0
- package/esm2022/chat/lib/chat-media-grid/chat-media-grid.js +53 -0
- package/esm2022/chat/lib/chat-media-grid/chat-media-grid.js.map +1 -0
- package/esm2022/chat/lib/chat-message/chat-message.js +86 -0
- package/esm2022/chat/lib/chat-message/chat-message.js.map +1 -0
- package/esm2022/chat/lib/chat-render-list.js +55 -0
- package/esm2022/chat/lib/chat-render-list.js.map +1 -0
- package/esm2022/chat/lib/chat-tokens.js +9 -0
- package/esm2022/chat/lib/chat-tokens.js.map +1 -0
- package/esm2022/chat/lib/chat-typing/chat-typing.js +50 -0
- package/esm2022/chat/lib/chat-typing/chat-typing.js.map +1 -0
- package/esm2022/chat/lib/chat.types.js +1 -0
- package/esm2022/chat/lib/chat.types.js.map +1 -0
- package/esm2022/chat/lib/defs/chat-author-def.js +27 -0
- package/esm2022/chat/lib/defs/chat-author-def.js.map +1 -0
- package/esm2022/chat/lib/defs/chat-date-def.js +24 -0
- package/esm2022/chat/lib/defs/chat-date-def.js.map +1 -0
- package/esm2022/chat/lib/defs/chat-message-def.js +30 -0
- package/esm2022/chat/lib/defs/chat-message-def.js.map +1 -0
- package/esm2022/chat/malva-ui-core-chat.js +5 -0
- package/esm2022/chat/malva-ui-core-chat.js.map +1 -0
- package/esm2022/checkbox/index.js +4 -0
- package/esm2022/checkbox/index.js.map +1 -0
- package/esm2022/checkbox/lib/checkbox/checkbox.js +201 -0
- package/esm2022/checkbox/lib/checkbox/checkbox.js.map +1 -0
- package/esm2022/checkbox/lib/checkbox-group/checkbox-group.js +68 -0
- package/esm2022/checkbox/lib/checkbox-group/checkbox-group.js.map +1 -0
- package/esm2022/checkbox/lib/checkbox-group-token.js +3 -0
- package/esm2022/checkbox/lib/checkbox-group-token.js.map +1 -0
- package/esm2022/checkbox/malva-ui-core-checkbox.js +5 -0
- package/esm2022/checkbox/malva-ui-core-checkbox.js.map +1 -0
- package/esm2022/chip/index.js +3 -0
- package/esm2022/chip/index.js.map +1 -0
- package/esm2022/chip/lib/chip/chip.directives.js +32 -0
- package/esm2022/chip/lib/chip/chip.directives.js.map +1 -0
- package/esm2022/chip/lib/chip/chip.js +140 -0
- package/esm2022/chip/lib/chip/chip.js.map +1 -0
- package/esm2022/chip/malva-ui-core-chip.js +5 -0
- package/esm2022/chip/malva-ui-core-chip.js.map +1 -0
- package/esm2022/color-picker/index.js +4 -0
- package/esm2022/color-picker/index.js.map +1 -0
- package/esm2022/color-picker/lib/color-picker/color-picker.js +530 -0
- package/esm2022/color-picker/lib/color-picker/color-picker.js.map +1 -0
- package/esm2022/color-picker/lib/color-picker-popup/color-picker-popup.js +419 -0
- package/esm2022/color-picker/lib/color-picker-popup/color-picker-popup.js.map +1 -0
- package/esm2022/color-picker/lib/color-utils/color-utils.js +256 -0
- package/esm2022/color-picker/lib/color-utils/color-utils.js.map +1 -0
- package/esm2022/color-picker/malva-ui-core-color-picker.js +5 -0
- package/esm2022/color-picker/malva-ui-core-color-picker.js.map +1 -0
- package/esm2022/combobox/index.js +3 -0
- package/esm2022/combobox/index.js.map +1 -0
- package/esm2022/combobox/lib/combobox/combobox.js +911 -0
- package/esm2022/combobox/lib/combobox/combobox.js.map +1 -0
- package/esm2022/combobox/lib/combobox-template.directives.js +24 -0
- package/esm2022/combobox/lib/combobox-template.directives.js.map +1 -0
- package/esm2022/combobox/malva-ui-core-combobox.js +5 -0
- package/esm2022/combobox/malva-ui-core-combobox.js.map +1 -0
- package/esm2022/copy-to-clipboard/index.js +2 -0
- package/esm2022/copy-to-clipboard/index.js.map +1 -0
- package/esm2022/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.js +201 -0
- package/esm2022/copy-to-clipboard/lib/copy-to-clipboard/copy-to-clipboard.js.map +1 -0
- package/esm2022/copy-to-clipboard/malva-ui-core-copy-to-clipboard.js +5 -0
- package/esm2022/copy-to-clipboard/malva-ui-core-copy-to-clipboard.js.map +1 -0
- package/esm2022/data-table/index.js +9 -0
- package/esm2022/data-table/index.js.map +1 -0
- package/esm2022/data-table/lib/data-source.js +6 -0
- package/esm2022/data-table/lib/data-source.js.map +1 -0
- package/esm2022/data-table/lib/data-table/data-table-layout.js +84 -0
- package/esm2022/data-table/lib/data-table/data-table-layout.js.map +1 -0
- package/esm2022/data-table/lib/data-table/data-table.js +1846 -0
- package/esm2022/data-table/lib/data-table/data-table.js.map +1 -0
- package/esm2022/data-table/lib/data-table/services/data-table-column-visibility.service.js +37 -0
- package/esm2022/data-table/lib/data-table/services/data-table-column-visibility.service.js.map +1 -0
- package/esm2022/data-table/lib/data-table/services/data-table-editing.service.js +63 -0
- package/esm2022/data-table/lib/data-table/services/data-table-editing.service.js.map +1 -0
- package/esm2022/data-table/lib/data-table/services/data-table-pinning.service.js +68 -0
- package/esm2022/data-table/lib/data-table/services/data-table-pinning.service.js.map +1 -0
- package/esm2022/data-table/lib/data-table-cell.js +46 -0
- package/esm2022/data-table/lib/data-table-cell.js.map +1 -0
- package/esm2022/data-table/lib/data-table-edit-cell.js +46 -0
- package/esm2022/data-table/lib/data-table-edit-cell.js.map +1 -0
- package/esm2022/data-table/lib/data-table-error.js +37 -0
- package/esm2022/data-table/lib/data-table-error.js.map +1 -0
- package/esm2022/data-table/lib/data-table-footer.js +33 -0
- package/esm2022/data-table/lib/data-table-footer.js.map +1 -0
- package/esm2022/data-table/lib/data-table-no-data.js +26 -0
- package/esm2022/data-table/lib/data-table-no-data.js.map +1 -0
- package/esm2022/data-table/lib/filter-dropdown/filter-dropdown.js +224 -0
- package/esm2022/data-table/lib/filter-dropdown/filter-dropdown.js.map +1 -0
- package/esm2022/data-table/lib/types.js +1 -0
- package/esm2022/data-table/lib/types.js.map +1 -0
- package/esm2022/data-table/malva-ui-core-data-table.js +5 -0
- package/esm2022/data-table/malva-ui-core-data-table.js.map +1 -0
- package/esm2022/date-range-picker/index.js +2 -0
- package/esm2022/date-range-picker/index.js.map +1 -0
- package/esm2022/date-range-picker/lib/date-range-picker/date-range-picker.js +269 -0
- package/esm2022/date-range-picker/lib/date-range-picker/date-range-picker.js.map +1 -0
- package/esm2022/date-range-picker/malva-ui-core-date-range-picker.js +5 -0
- package/esm2022/date-range-picker/malva-ui-core-date-range-picker.js.map +1 -0
- package/esm2022/day-picker/index.js +2 -0
- package/esm2022/day-picker/index.js.map +1 -0
- package/esm2022/day-picker/lib/day-picker/day-picker.js +124 -0
- package/esm2022/day-picker/lib/day-picker/day-picker.js.map +1 -0
- package/esm2022/day-picker/malva-ui-core-day-picker.js +5 -0
- package/esm2022/day-picker/malva-ui-core-day-picker.js.map +1 -0
- package/esm2022/dialog/index.js +12 -0
- package/esm2022/dialog/index.js.map +1 -0
- package/esm2022/dialog/lib/confirm-dialog-options.js +1 -0
- package/esm2022/dialog/lib/confirm-dialog-options.js.map +1 -0
- package/esm2022/dialog/lib/confirm-dialog.js +155 -0
- package/esm2022/dialog/lib/confirm-dialog.js.map +1 -0
- package/esm2022/dialog/lib/dialog/dialog.js +40 -0
- package/esm2022/dialog/lib/dialog/dialog.js.map +1 -0
- package/esm2022/dialog/lib/dialog-body.js +33 -0
- package/esm2022/dialog/lib/dialog-body.js.map +1 -0
- package/esm2022/dialog/lib/dialog-close.js +45 -0
- package/esm2022/dialog/lib/dialog-close.js.map +1 -0
- package/esm2022/dialog/lib/dialog-config.js +23 -0
- package/esm2022/dialog/lib/dialog-config.js.map +1 -0
- package/esm2022/dialog/lib/dialog-container.js +69 -0
- package/esm2022/dialog/lib/dialog-container.js.map +1 -0
- package/esm2022/dialog/lib/dialog-footer.js +29 -0
- package/esm2022/dialog/lib/dialog-footer.js.map +1 -0
- package/esm2022/dialog/lib/dialog-header.js +181 -0
- package/esm2022/dialog/lib/dialog-header.js.map +1 -0
- package/esm2022/dialog/lib/dialog-ref.js +167 -0
- package/esm2022/dialog/lib/dialog-ref.js.map +1 -0
- package/esm2022/dialog/lib/dialog-template.js +136 -0
- package/esm2022/dialog/lib/dialog-template.js.map +1 -0
- package/esm2022/dialog/lib/dialog-text-content.js +59 -0
- package/esm2022/dialog/lib/dialog-text-content.js.map +1 -0
- package/esm2022/dialog/lib/dialog.service.js +205 -0
- package/esm2022/dialog/lib/dialog.service.js.map +1 -0
- package/esm2022/dialog/lib/generate-routable-dialog-route.js +59 -0
- package/esm2022/dialog/lib/generate-routable-dialog-route.js.map +1 -0
- package/esm2022/dialog/lib/inject-dialog-ref.js +16 -0
- package/esm2022/dialog/lib/inject-dialog-ref.js.map +1 -0
- package/esm2022/dialog/lib/routable-dialog.js +91 -0
- package/esm2022/dialog/lib/routable-dialog.js.map +1 -0
- package/esm2022/dialog/malva-ui-core-dialog.js +5 -0
- package/esm2022/dialog/malva-ui-core-dialog.js.map +1 -0
- package/esm2022/divider/index.js +2 -0
- package/esm2022/divider/index.js.map +1 -0
- package/esm2022/divider/lib/divider/divider.js +73 -0
- package/esm2022/divider/lib/divider/divider.js.map +1 -0
- package/esm2022/divider/malva-ui-core-divider.js +5 -0
- package/esm2022/divider/malva-ui-core-divider.js.map +1 -0
- package/esm2022/drawer/index.js +12 -0
- package/esm2022/drawer/index.js.map +1 -0
- package/esm2022/drawer/lib/drawer/drawer.js +180 -0
- package/esm2022/drawer/lib/drawer/drawer.js.map +1 -0
- package/esm2022/drawer/lib/drawer-body.js +32 -0
- package/esm2022/drawer/lib/drawer-body.js.map +1 -0
- package/esm2022/drawer/lib/drawer-content.js +14 -0
- package/esm2022/drawer/lib/drawer-content.js.map +1 -0
- package/esm2022/drawer/lib/drawer-footer.js +14 -0
- package/esm2022/drawer/lib/drawer-footer.js.map +1 -0
- package/esm2022/drawer/lib/drawer-header.js +14 -0
- package/esm2022/drawer/lib/drawer-header.js.map +1 -0
- package/esm2022/drawer/lib/drawer-ref.js +31 -0
- package/esm2022/drawer/lib/drawer-ref.js.map +1 -0
- package/esm2022/drawer/lib/drawer-resize.js +243 -0
- package/esm2022/drawer/lib/drawer-resize.js.map +1 -0
- package/esm2022/drawer/lib/drawer-section/drawer-section.js +26 -0
- package/esm2022/drawer/lib/drawer-section/drawer-section.js.map +1 -0
- package/esm2022/drawer/lib/drawer-sections/drawer-sections.js +58 -0
- package/esm2022/drawer/lib/drawer-sections/drawer-sections.js.map +1 -0
- package/esm2022/drawer/lib/drawer-sections.service.js +83 -0
- package/esm2022/drawer/lib/drawer-sections.service.js.map +1 -0
- package/esm2022/drawer/lib/drawer.service.js +86 -0
- package/esm2022/drawer/lib/drawer.service.js.map +1 -0
- package/esm2022/drawer/lib/generate-routable-drawer-route.js +52 -0
- package/esm2022/drawer/lib/generate-routable-drawer-route.js.map +1 -0
- package/esm2022/drawer/lib/routable-drawer.js +91 -0
- package/esm2022/drawer/lib/routable-drawer.js.map +1 -0
- package/esm2022/drawer/malva-ui-core-drawer.js +5 -0
- package/esm2022/drawer/malva-ui-core-drawer.js.map +1 -0
- package/esm2022/dropdown/index.js +10 -0
- package/esm2022/dropdown/index.js.map +1 -0
- package/esm2022/dropdown/lib/active-descendant.js +92 -0
- package/esm2022/dropdown/lib/active-descendant.js.map +1 -0
- package/esm2022/dropdown/lib/dropdown-panel/dropdown-panel.js +295 -0
- package/esm2022/dropdown/lib/dropdown-panel/dropdown-panel.js.map +1 -0
- package/esm2022/dropdown/lib/highlight-match.pipe.js +36 -0
- package/esm2022/dropdown/lib/highlight-match.pipe.js.map +1 -0
- package/esm2022/dropdown/lib/option-matcher.js +124 -0
- package/esm2022/dropdown/lib/option-matcher.js.map +1 -0
- package/esm2022/dropdown/lib/options-adapter.js +356 -0
- package/esm2022/dropdown/lib/options-adapter.js.map +1 -0
- package/esm2022/dropdown/lib/options-result.js +11 -0
- package/esm2022/dropdown/lib/options-result.js.map +1 -0
- package/esm2022/dropdown/lib/reconciliation.js +32 -0
- package/esm2022/dropdown/lib/reconciliation.js.map +1 -0
- package/esm2022/dropdown/lib/select-data-source.js +21 -0
- package/esm2022/dropdown/lib/select-data-source.js.map +1 -0
- package/esm2022/dropdown/lib/select-option.js +25 -0
- package/esm2022/dropdown/lib/select-option.js.map +1 -0
- package/esm2022/dropdown/malva-ui-core-dropdown.js +5 -0
- package/esm2022/dropdown/malva-ui-core-dropdown.js.map +1 -0
- package/esm2022/empty-state/index.js +2 -0
- package/esm2022/empty-state/index.js.map +1 -0
- package/esm2022/empty-state/lib/empty-state/empty-state.js +43 -0
- package/esm2022/empty-state/lib/empty-state/empty-state.js.map +1 -0
- package/esm2022/empty-state/malva-ui-core-empty-state.js +5 -0
- package/esm2022/empty-state/malva-ui-core-empty-state.js.map +1 -0
- package/esm2022/expand/index.js +3 -0
- package/esm2022/expand/index.js.map +1 -0
- package/esm2022/expand/lib/expand/expand-content.js +33 -0
- package/esm2022/expand/lib/expand/expand-content.js.map +1 -0
- package/esm2022/expand/lib/expand/expand.js +93 -0
- package/esm2022/expand/lib/expand/expand.js.map +1 -0
- package/esm2022/expand/malva-ui-core-expand.js +5 -0
- package/esm2022/expand/malva-ui-core-expand.js.map +1 -0
- package/esm2022/file-upload/index.js +5 -0
- package/esm2022/file-upload/index.js.map +1 -0
- package/esm2022/file-upload/lib/file-upload/file-upload.js +324 -0
- package/esm2022/file-upload/lib/file-upload/file-upload.js.map +1 -0
- package/esm2022/file-upload/lib/file-upload/file-upload.types.js +1 -0
- package/esm2022/file-upload/lib/file-upload/file-upload.types.js.map +1 -0
- package/esm2022/file-upload/lib/file-upload-action.js +65 -0
- package/esm2022/file-upload/lib/file-upload-action.js.map +1 -0
- package/esm2022/file-upload/lib/file-upload-item/file-upload-item.js +55 -0
- package/esm2022/file-upload/lib/file-upload-item/file-upload-item.js.map +1 -0
- package/esm2022/file-upload/malva-ui-core-file-upload.js +5 -0
- package/esm2022/file-upload/malva-ui-core-file-upload.js.map +1 -0
- package/esm2022/filter/index.js +4 -0
- package/esm2022/filter/index.js.map +1 -0
- package/esm2022/filter/lib/filter/filter.js +552 -0
- package/esm2022/filter/lib/filter/filter.js.map +1 -0
- package/esm2022/filter/lib/filter.types.js +1 -0
- package/esm2022/filter/lib/filter.types.js.map +1 -0
- package/esm2022/filter/lib/smart-filter-bar/smart-filter-bar.js +518 -0
- package/esm2022/filter/lib/smart-filter-bar/smart-filter-bar.js.map +1 -0
- package/esm2022/filter/malva-ui-core-filter.js +5 -0
- package/esm2022/filter/malva-ui-core-filter.js.map +1 -0
- package/esm2022/form/index.js +7 -0
- package/esm2022/form/index.js.map +1 -0
- package/esm2022/form/lib/fieldset/fieldset.js +101 -0
- package/esm2022/form/lib/fieldset/fieldset.js.map +1 -0
- package/esm2022/form/lib/fieldset-span.js +49 -0
- package/esm2022/form/lib/fieldset-span.js.map +1 -0
- package/esm2022/form/lib/form/form.js +60 -0
- package/esm2022/form/lib/form/form.js.map +1 -0
- package/esm2022/form/lib/form-actions.js +34 -0
- package/esm2022/form/lib/form-actions.js.map +1 -0
- package/esm2022/form/lib/form-gap.js +15 -0
- package/esm2022/form/lib/form-gap.js.map +1 -0
- package/esm2022/form/lib/form-header.js +27 -0
- package/esm2022/form/lib/form-header.js.map +1 -0
- package/esm2022/form/lib/form.types.js +1 -0
- package/esm2022/form/lib/form.types.js.map +1 -0
- package/esm2022/form/malva-ui-core-form.js +5 -0
- package/esm2022/form/malva-ui-core-form.js.map +1 -0
- package/esm2022/form-utils/index.js +16 -0
- package/esm2022/form-utils/index.js.map +1 -0
- package/esm2022/form-utils/lib/aria-value-bridge.js +57 -0
- package/esm2022/form-utils/lib/aria-value-bridge.js.map +1 -0
- package/esm2022/form-utils/lib/description/description.js +24 -0
- package/esm2022/form-utils/lib/description/description.js.map +1 -0
- package/esm2022/form-utils/lib/focusable-group-base.js +87 -0
- package/esm2022/form-utils/lib/focusable-group-base.js.map +1 -0
- package/esm2022/form-utils/lib/form-control-base/signal-form-control-base.js +192 -0
- package/esm2022/form-utils/lib/form-control-base/signal-form-control-base.js.map +1 -0
- package/esm2022/form-utils/lib/form-control-sides.js +34 -0
- package/esm2022/form-utils/lib/form-control-sides.js.map +1 -0
- package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper-control.js +14 -0
- package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper-control.js.map +1 -0
- package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper.js +47 -0
- package/esm2022/form-utils/lib/form-control-wrapper/form-control-wrapper.js.map +1 -0
- package/esm2022/form-utils/lib/form-field/form-field.js +245 -0
- package/esm2022/form-utils/lib/form-field/form-field.js.map +1 -0
- package/esm2022/form-utils/lib/hint/hint.js +11 -0
- package/esm2022/form-utils/lib/hint/hint.js.map +1 -0
- package/esm2022/form-utils/lib/label/label.js +55 -0
- package/esm2022/form-utils/lib/label/label.js.map +1 -0
- package/esm2022/form-utils/lib/message/message.js +20 -0
- package/esm2022/form-utils/lib/message/message.js.map +1 -0
- package/esm2022/form-utils/lib/models/error-display-strategy.js +1 -0
- package/esm2022/form-utils/lib/models/error-display-strategy.js.map +1 -0
- package/esm2022/form-utils/lib/models/form-control-connector.js +3 -0
- package/esm2022/form-utils/lib/models/form-control-connector.js.map +1 -0
- package/esm2022/form-utils/lib/models/form-state.js +1 -0
- package/esm2022/form-utils/lib/models/form-state.js.map +1 -0
- package/esm2022/form-utils/lib/selection.service.js +81 -0
- package/esm2022/form-utils/lib/selection.service.js.map +1 -0
- package/esm2022/form-utils/malva-ui-core-form-utils.js +5 -0
- package/esm2022/form-utils/malva-ui-core-form-utils.js.map +1 -0
- package/esm2022/form-utils/testing/index.js +2 -0
- package/esm2022/form-utils/testing/index.js.map +1 -0
- package/esm2022/form-utils/testing/lib/forms-binding-matrix.js +32 -0
- package/esm2022/form-utils/testing/lib/forms-binding-matrix.js.map +1 -0
- package/esm2022/form-utils/testing/malva-ui-core-form-utils-testing.js +5 -0
- package/esm2022/form-utils/testing/malva-ui-core-form-utils-testing.js.map +1 -0
- package/esm2022/index.js +70 -0
- package/esm2022/index.js.map +1 -0
- package/esm2022/input/index.js +4 -0
- package/esm2022/input/index.js.map +1 -0
- package/esm2022/input/lib/input/input-native.js +49 -0
- package/esm2022/input/lib/input/input-native.js.map +1 -0
- package/esm2022/input/lib/input/input-value-accessor.js +4 -0
- package/esm2022/input/lib/input/input-value-accessor.js.map +1 -0
- package/esm2022/input/lib/input/input.js +277 -0
- package/esm2022/input/lib/input/input.js.map +1 -0
- package/esm2022/input/lib/input/password-strength.js +46 -0
- package/esm2022/input/lib/input/password-strength.js.map +1 -0
- package/esm2022/input/malva-ui-core-input.js +5 -0
- package/esm2022/input/malva-ui-core-input.js.map +1 -0
- package/esm2022/kbd/index.js +2 -0
- package/esm2022/kbd/index.js.map +1 -0
- package/esm2022/kbd/lib/kbd/kbd.js +124 -0
- package/esm2022/kbd/lib/kbd/kbd.js.map +1 -0
- package/esm2022/kbd/malva-ui-core-kbd.js +5 -0
- package/esm2022/kbd/malva-ui-core-kbd.js.map +1 -0
- package/esm2022/layout/index.js +5 -0
- package/esm2022/layout/index.js.map +1 -0
- package/esm2022/layout/lib/layout/directives/MlvLayoutSide.js +14 -0
- package/esm2022/layout/lib/layout/directives/MlvLayoutSide.js.map +1 -0
- package/esm2022/layout/lib/layout/directives/MlvLayoutTop.js +14 -0
- package/esm2022/layout/lib/layout/directives/MlvLayoutTop.js.map +1 -0
- package/esm2022/layout/lib/layout/layout.js +43 -0
- package/esm2022/layout/lib/layout/layout.js.map +1 -0
- package/esm2022/layout/lib/layout/services/theme.service.js +121 -0
- package/esm2022/layout/lib/layout/services/theme.service.js.map +1 -0
- package/esm2022/layout/malva-ui-core-layout.js +5 -0
- package/esm2022/layout/malva-ui-core-layout.js.map +1 -0
- package/esm2022/link/index.js +3 -0
- package/esm2022/link/index.js.map +1 -0
- package/esm2022/link/lib/link/link.directives.js +24 -0
- package/esm2022/link/lib/link/link.directives.js.map +1 -0
- package/esm2022/link/lib/link/link.js +61 -0
- package/esm2022/link/lib/link/link.js.map +1 -0
- package/esm2022/link/malva-ui-core-link.js +5 -0
- package/esm2022/link/malva-ui-core-link.js.map +1 -0
- package/esm2022/list/index.js +14 -0
- package/esm2022/list/index.js.map +1 -0
- package/esm2022/list/lib/list/list.js +28 -0
- package/esm2022/list/lib/list/list.js.map +1 -0
- package/esm2022/list/lib/list-item/list-item.js +125 -0
- package/esm2022/list/lib/list-item/list-item.js.map +1 -0
- package/esm2022/list/lib/list-item-actions.js +23 -0
- package/esm2022/list/lib/list-item-actions.js.map +1 -0
- package/esm2022/list/lib/list-item-byline.js +13 -0
- package/esm2022/list/lib/list-item-byline.js.map +1 -0
- package/esm2022/list/lib/list-item-group/list-item-group.js +25 -0
- package/esm2022/list/lib/list-item-group/list-item-group.js.map +1 -0
- package/esm2022/list/lib/list-item-link/list-item-link.js +20 -0
- package/esm2022/list/lib/list-item-link/list-item-link.js.map +1 -0
- package/esm2022/list/lib/list-item-media.js +13 -0
- package/esm2022/list/lib/list-item-media.js.map +1 -0
- package/esm2022/list/lib/list-item-meta.js +13 -0
- package/esm2022/list/lib/list-item-meta.js.map +1 -0
- package/esm2022/list/lib/list-item-prefix.js +13 -0
- package/esm2022/list/lib/list-item-prefix.js.map +1 -0
- package/esm2022/list/lib/list-item-suffix.js +13 -0
- package/esm2022/list/lib/list-item-suffix.js.map +1 -0
- package/esm2022/list/lib/list-item-template.js +14 -0
- package/esm2022/list/lib/list-item-template.js.map +1 -0
- package/esm2022/list/lib/list-item-title.js +13 -0
- package/esm2022/list/lib/list-item-title.js.map +1 -0
- package/esm2022/list/lib/list-selectable.js +116 -0
- package/esm2022/list/lib/list-selectable.js.map +1 -0
- package/esm2022/list/malva-ui-core-list.js +5 -0
- package/esm2022/list/malva-ui-core-list.js.map +1 -0
- package/esm2022/loader/index.js +2 -0
- package/esm2022/loader/index.js.map +1 -0
- package/esm2022/loader/lib/loader/loader.js +134 -0
- package/esm2022/loader/lib/loader/loader.js.map +1 -0
- package/esm2022/loader/malva-ui-core-loader.js +5 -0
- package/esm2022/loader/malva-ui-core-loader.js.map +1 -0
- package/esm2022/malva-ui-core.js +5 -0
- package/esm2022/malva-ui-core.js.map +1 -0
- package/esm2022/menu/index.js +10 -0
- package/esm2022/menu/index.js.map +1 -0
- package/esm2022/menu/lib/menu/menu-group-label.js +35 -0
- package/esm2022/menu/lib/menu/menu-group-label.js.map +1 -0
- package/esm2022/menu/lib/menu/menu-group.js +44 -0
- package/esm2022/menu/lib/menu/menu-group.js.map +1 -0
- package/esm2022/menu/lib/menu/menu-item.js +117 -0
- package/esm2022/menu/lib/menu/menu-item.js.map +1 -0
- package/esm2022/menu/lib/menu/menu-separator.js +41 -0
- package/esm2022/menu/lib/menu/menu-separator.js.map +1 -0
- package/esm2022/menu/lib/menu/menu-trigger.js +653 -0
- package/esm2022/menu/lib/menu/menu-trigger.js.map +1 -0
- package/esm2022/menu/lib/menu/menu.js +308 -0
- package/esm2022/menu/lib/menu/menu.js.map +1 -0
- package/esm2022/menu/lib/menu/menu.types.js +4 -0
- package/esm2022/menu/lib/menu/menu.types.js.map +1 -0
- package/esm2022/menu/lib/menu/menubar.js +257 -0
- package/esm2022/menu/lib/menu/menubar.js.map +1 -0
- package/esm2022/menu/lib/menu/menubar.types.js +4 -0
- package/esm2022/menu/lib/menu/menubar.types.js.map +1 -0
- package/esm2022/menu/lib/menu/submenu-aim.js +30 -0
- package/esm2022/menu/lib/menu/submenu-aim.js.map +1 -0
- package/esm2022/menu/malva-ui-core-menu.js +5 -0
- package/esm2022/menu/malva-ui-core-menu.js.map +1 -0
- package/esm2022/notification/index.js +5 -0
- package/esm2022/notification/index.js.map +1 -0
- package/esm2022/notification/lib/notification-item/notification-item.js +65 -0
- package/esm2022/notification/lib/notification-item/notification-item.js.map +1 -0
- package/esm2022/notification/lib/notification-ref.js +13 -0
- package/esm2022/notification/lib/notification-ref.js.map +1 -0
- package/esm2022/notification/lib/notification.service.js +118 -0
- package/esm2022/notification/lib/notification.service.js.map +1 -0
- package/esm2022/notification/lib/notification.types.js +6 -0
- package/esm2022/notification/lib/notification.types.js.map +1 -0
- package/esm2022/notification/malva-ui-core-notification.js +5 -0
- package/esm2022/notification/malva-ui-core-notification.js.map +1 -0
- package/esm2022/number-input/index.js +2 -0
- package/esm2022/number-input/index.js.map +1 -0
- package/esm2022/number-input/lib/number-input/number-input.js +395 -0
- package/esm2022/number-input/lib/number-input/number-input.js.map +1 -0
- package/esm2022/number-input/malva-ui-core-number-input.js +5 -0
- package/esm2022/number-input/malva-ui-core-number-input.js.map +1 -0
- package/esm2022/page/index.js +15 -0
- package/esm2022/page/index.js.map +1 -0
- package/esm2022/page/lib/page/page-scroll.token.js +9 -0
- package/esm2022/page/lib/page/page-scroll.token.js.map +1 -0
- package/esm2022/page/lib/page/page-snap-controller.js +170 -0
- package/esm2022/page/lib/page/page-snap-controller.js.map +1 -0
- package/esm2022/page/lib/page/page-snap.directive.js +65 -0
- package/esm2022/page/lib/page/page-snap.directive.js.map +1 -0
- package/esm2022/page/lib/page/page.js +173 -0
- package/esm2022/page/lib/page/page.js.map +1 -0
- package/esm2022/page/lib/page-content/page-aside.js +13 -0
- package/esm2022/page/lib/page-content/page-aside.js.map +1 -0
- package/esm2022/page/lib/page-content/page-content.js +72 -0
- package/esm2022/page/lib/page-content/page-content.js.map +1 -0
- package/esm2022/page/lib/page-dock/page-dock.js +128 -0
- package/esm2022/page/lib/page-dock/page-dock.js.map +1 -0
- package/esm2022/page/lib/page-dock/page-dock.slots.js +39 -0
- package/esm2022/page/lib/page-dock/page-dock.slots.js.map +1 -0
- package/esm2022/page/lib/page-header/page-header.directives.js +88 -0
- package/esm2022/page/lib/page-header/page-header.directives.js.map +1 -0
- package/esm2022/page/lib/page-header/page-header.js +124 -0
- package/esm2022/page/lib/page-header/page-header.js.map +1 -0
- package/esm2022/page/lib/page-shell/page-shell-color.js +193 -0
- package/esm2022/page/lib/page-shell/page-shell-color.js.map +1 -0
- package/esm2022/page/lib/page-shell/page-shell-css-color.js +207 -0
- package/esm2022/page/lib/page-shell/page-shell-css-color.js.map +1 -0
- package/esm2022/page/lib/page-shell/page-shell.js +131 -0
- package/esm2022/page/lib/page-shell/page-shell.js.map +1 -0
- package/esm2022/page/lib/page-shell/page-shell.slots.js +41 -0
- package/esm2022/page/lib/page-shell/page-shell.slots.js.map +1 -0
- package/esm2022/page/lib/page-summary/page-summary-item.js +26 -0
- package/esm2022/page/lib/page-summary/page-summary-item.js.map +1 -0
- package/esm2022/page/lib/page-summary/page-summary.js +87 -0
- package/esm2022/page/lib/page-summary/page-summary.js.map +1 -0
- package/esm2022/page/malva-ui-core-page.js +5 -0
- package/esm2022/page/malva-ui-core-page.js.map +1 -0
- package/esm2022/pagination/index.js +5 -0
- package/esm2022/pagination/index.js.map +1 -0
- package/esm2022/pagination/lib/pagination/pagination.directives.js +58 -0
- package/esm2022/pagination/lib/pagination/pagination.directives.js.map +1 -0
- package/esm2022/pagination/lib/pagination/pagination.js +293 -0
- package/esm2022/pagination/lib/pagination/pagination.js.map +1 -0
- package/esm2022/pagination/lib/pagination/pagination.model.js +1 -0
- package/esm2022/pagination/lib/pagination/pagination.model.js.map +1 -0
- package/esm2022/pagination/lib/pagination/pagination.service.js +108 -0
- package/esm2022/pagination/lib/pagination/pagination.service.js.map +1 -0
- package/esm2022/pagination/malva-ui-core-pagination.js +5 -0
- package/esm2022/pagination/malva-ui-core-pagination.js.map +1 -0
- package/esm2022/pin-input/index.js +3 -0
- package/esm2022/pin-input/index.js.map +1 -0
- package/esm2022/pin-input/lib/pin-input/pin-input-separator.js +31 -0
- package/esm2022/pin-input/lib/pin-input/pin-input-separator.js.map +1 -0
- package/esm2022/pin-input/lib/pin-input/pin-input.js +365 -0
- package/esm2022/pin-input/lib/pin-input/pin-input.js.map +1 -0
- package/esm2022/pin-input/malva-ui-core-pin-input.js +5 -0
- package/esm2022/pin-input/malva-ui-core-pin-input.js.map +1 -0
- package/esm2022/popup/index.js +10 -0
- package/esm2022/popup/index.js.map +1 -0
- package/esm2022/popup/lib/popup/popup.js +500 -0
- package/esm2022/popup/lib/popup/popup.js.map +1 -0
- package/esm2022/popup/lib/popup-container/popup-container.js +169 -0
- package/esm2022/popup/lib/popup-container/popup-container.js.map +1 -0
- package/esm2022/popup/lib/popup-container/popup-container.token.js +9 -0
- package/esm2022/popup/lib/popup-container/popup-container.token.js.map +1 -0
- package/esm2022/popup/lib/popup-content.js +14 -0
- package/esm2022/popup/lib/popup-content.js.map +1 -0
- package/esm2022/popup/lib/popup-header-content.js +26 -0
- package/esm2022/popup/lib/popup-header-content.js.map +1 -0
- package/esm2022/popup/lib/popup-pinned-content.js +25 -0
- package/esm2022/popup/lib/popup-pinned-content.js.map +1 -0
- package/esm2022/popup/lib/popup-positions.js +252 -0
- package/esm2022/popup/lib/popup-positions.js.map +1 -0
- package/esm2022/popup/lib/popup-trigger/popup-trigger.js +308 -0
- package/esm2022/popup/lib/popup-trigger/popup-trigger.js.map +1 -0
- package/esm2022/popup/lib/popup.service.js +188 -0
- package/esm2022/popup/lib/popup.service.js.map +1 -0
- package/esm2022/popup/malva-ui-core-popup.js +5 -0
- package/esm2022/popup/malva-ui-core-popup.js.map +1 -0
- package/esm2022/progress/index.js +2 -0
- package/esm2022/progress/index.js.map +1 -0
- package/esm2022/progress/lib/progress/progress.js +102 -0
- package/esm2022/progress/lib/progress/progress.js.map +1 -0
- package/esm2022/progress/malva-ui-core-progress.js +5 -0
- package/esm2022/progress/malva-ui-core-progress.js.map +1 -0
- package/esm2022/radio/index.js +3 -0
- package/esm2022/radio/index.js.map +1 -0
- package/esm2022/radio/lib/radio/radio.js +134 -0
- package/esm2022/radio/lib/radio/radio.js.map +1 -0
- package/esm2022/radio/lib/radio-group/radio-group.js +176 -0
- package/esm2022/radio/lib/radio-group/radio-group.js.map +1 -0
- package/esm2022/radio/lib/radio-group-token.js +3 -0
- package/esm2022/radio/lib/radio-group-token.js.map +1 -0
- package/esm2022/radio/malva-ui-core-radio.js +5 -0
- package/esm2022/radio/malva-ui-core-radio.js.map +1 -0
- package/esm2022/rating/index.js +2 -0
- package/esm2022/rating/index.js.map +1 -0
- package/esm2022/rating/lib/rating/rating.js +208 -0
- package/esm2022/rating/lib/rating/rating.js.map +1 -0
- package/esm2022/rating/malva-ui-core-rating.js +5 -0
- package/esm2022/rating/malva-ui-core-rating.js.map +1 -0
- package/esm2022/scrollbar/index.js +2 -0
- package/esm2022/scrollbar/index.js.map +1 -0
- package/esm2022/scrollbar/lib/scrollbar/scrollbar.js +388 -0
- package/esm2022/scrollbar/lib/scrollbar/scrollbar.js.map +1 -0
- package/esm2022/scrollbar/malva-ui-core-scrollbar.js +5 -0
- package/esm2022/scrollbar/malva-ui-core-scrollbar.js.map +1 -0
- package/esm2022/search-field/index.js +3 -0
- package/esm2022/search-field/index.js.map +1 -0
- package/esm2022/search-field/lib/search-field/search-field.js +535 -0
- package/esm2022/search-field/lib/search-field/search-field.js.map +1 -0
- package/esm2022/search-field/lib/search-field/search-overlay-content.js +35 -0
- package/esm2022/search-field/lib/search-field/search-overlay-content.js.map +1 -0
- package/esm2022/search-field/malva-ui-core-search-field.js +5 -0
- package/esm2022/search-field/malva-ui-core-search-field.js.map +1 -0
- package/esm2022/segmented/index.js +5 -0
- package/esm2022/segmented/index.js.map +1 -0
- package/esm2022/segmented/lib/segmented/segmented.js +248 -0
- package/esm2022/segmented/lib/segmented/segmented.js.map +1 -0
- package/esm2022/segmented/lib/segmented-item/segmented-item.js +194 -0
- package/esm2022/segmented/lib/segmented-item/segmented-item.js.map +1 -0
- package/esm2022/segmented/lib/segmented-token.js +4 -0
- package/esm2022/segmented/lib/segmented-token.js.map +1 -0
- package/esm2022/segmented/lib/segmented.types.js +1 -0
- package/esm2022/segmented/lib/segmented.types.js.map +1 -0
- package/esm2022/segmented/malva-ui-core-segmented.js +5 -0
- package/esm2022/segmented/malva-ui-core-segmented.js.map +1 -0
- package/esm2022/select/index.js +4 -0
- package/esm2022/select/index.js.map +1 -0
- package/esm2022/select/lib/select/select.js +685 -0
- package/esm2022/select/lib/select/select.js.map +1 -0
- package/esm2022/select/lib/select-option.js +2 -0
- package/esm2022/select/lib/select-option.js.map +1 -0
- package/esm2022/select/lib/select-template.directives.js +34 -0
- package/esm2022/select/lib/select-template.directives.js.map +1 -0
- package/esm2022/select/malva-ui-core-select.js +5 -0
- package/esm2022/select/malva-ui-core-select.js.map +1 -0
- package/esm2022/sidebar/index.js +16 -0
- package/esm2022/sidebar/index.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar/sidebar.js +251 -0
- package/esm2022/sidebar/lib/sidebar/sidebar.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-content.js +37 -0
- package/esm2022/sidebar/lib/sidebar-content.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-context.js +3 -0
- package/esm2022/sidebar/lib/sidebar-context.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-footer.js +20 -0
- package/esm2022/sidebar/lib/sidebar-footer.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-group/sidebar-group.js +341 -0
- package/esm2022/sidebar/lib/sidebar-group/sidebar-group.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-header.js +20 -0
- package/esm2022/sidebar/lib/sidebar-header.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-item/sidebar-item.js +216 -0
- package/esm2022/sidebar/lib/sidebar-item/sidebar-item.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-item-host.js +39 -0
- package/esm2022/sidebar/lib/sidebar-item-host.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-item-icon.js +14 -0
- package/esm2022/sidebar/lib/sidebar-item-icon.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-mode.js +1 -0
- package/esm2022/sidebar/lib/sidebar-mode.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-rail/sidebar-rail.js +202 -0
- package/esm2022/sidebar/lib/sidebar-rail/sidebar-rail.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-trigger/sidebar-trigger.js +159 -0
- package/esm2022/sidebar/lib/sidebar-trigger/sidebar-trigger.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.js +35 -0
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.js +107 -0
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.js.map +1 -0
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.types.js +1 -0
- package/esm2022/sidebar/lib/sidebar-workspace/sidebar-workspace.types.js.map +1 -0
- package/esm2022/sidebar/malva-ui-core-sidebar.js +5 -0
- package/esm2022/sidebar/malva-ui-core-sidebar.js.map +1 -0
- package/esm2022/skeleton/index.js +2 -0
- package/esm2022/skeleton/index.js.map +1 -0
- package/esm2022/skeleton/lib/skeleton/skeleton.js +78 -0
- package/esm2022/skeleton/lib/skeleton/skeleton.js.map +1 -0
- package/esm2022/skeleton/malva-ui-core-skeleton.js +5 -0
- package/esm2022/skeleton/malva-ui-core-skeleton.js.map +1 -0
- package/esm2022/slider/index.js +3 -0
- package/esm2022/slider/index.js.map +1 -0
- package/esm2022/slider/lib/slider/slider-tooltip-def.js +31 -0
- package/esm2022/slider/lib/slider/slider-tooltip-def.js.map +1 -0
- package/esm2022/slider/lib/slider/slider.js +468 -0
- package/esm2022/slider/lib/slider/slider.js.map +1 -0
- package/esm2022/slider/malva-ui-core-slider.js +5 -0
- package/esm2022/slider/malva-ui-core-slider.js.map +1 -0
- package/esm2022/split-pane/index.js +4 -0
- package/esm2022/split-pane/index.js.map +1 -0
- package/esm2022/split-pane/lib/split-pane/split-pane-panel.js +49 -0
- package/esm2022/split-pane/lib/split-pane/split-pane-panel.js.map +1 -0
- package/esm2022/split-pane/lib/split-pane/split-pane.js +290 -0
- package/esm2022/split-pane/lib/split-pane/split-pane.js.map +1 -0
- package/esm2022/split-pane/lib/split-pane/split-pane.types.js +1 -0
- package/esm2022/split-pane/lib/split-pane/split-pane.types.js.map +1 -0
- package/esm2022/split-pane/malva-ui-core-split-pane.js +5 -0
- package/esm2022/split-pane/malva-ui-core-split-pane.js.map +1 -0
- package/esm2022/status-indicator/index.js +2 -0
- package/esm2022/status-indicator/index.js.map +1 -0
- package/esm2022/status-indicator/lib/status-indicator/status-indicator.js +71 -0
- package/esm2022/status-indicator/lib/status-indicator/status-indicator.js.map +1 -0
- package/esm2022/status-indicator/malva-ui-core-status-indicator.js +5 -0
- package/esm2022/status-indicator/malva-ui-core-status-indicator.js.map +1 -0
- package/esm2022/stepper/index.js +5 -0
- package/esm2022/stepper/index.js.map +1 -0
- package/esm2022/stepper/lib/stepper/step-header.js +46 -0
- package/esm2022/stepper/lib/stepper/step-header.js.map +1 -0
- package/esm2022/stepper/lib/stepper/step.js +65 -0
- package/esm2022/stepper/lib/stepper/step.js.map +1 -0
- package/esm2022/stepper/lib/stepper/stepper-token.js +4 -0
- package/esm2022/stepper/lib/stepper/stepper-token.js.map +1 -0
- package/esm2022/stepper/lib/stepper/stepper.js +216 -0
- package/esm2022/stepper/lib/stepper/stepper.js.map +1 -0
- package/esm2022/stepper/lib/stepper/stepper.types.js +1 -0
- package/esm2022/stepper/lib/stepper/stepper.types.js.map +1 -0
- package/esm2022/stepper/malva-ui-core-stepper.js +5 -0
- package/esm2022/stepper/malva-ui-core-stepper.js.map +1 -0
- package/esm2022/switch/index.js +3 -0
- package/esm2022/switch/index.js.map +1 -0
- package/esm2022/switch/lib/switch/switch.js +190 -0
- package/esm2022/switch/lib/switch/switch.js.map +1 -0
- package/esm2022/switch/lib/switch-group/switch-group.js +68 -0
- package/esm2022/switch/lib/switch-group/switch-group.js.map +1 -0
- package/esm2022/switch/lib/switch-group-token.js +3 -0
- package/esm2022/switch/lib/switch-group-token.js.map +1 -0
- package/esm2022/switch/malva-ui-core-switch.js +5 -0
- package/esm2022/switch/malva-ui-core-switch.js.map +1 -0
- package/esm2022/tabs/index.js +9 -0
- package/esm2022/tabs/index.js.map +1 -0
- package/esm2022/tabs/lib/tab/tab.js +72 -0
- package/esm2022/tabs/lib/tab/tab.js.map +1 -0
- package/esm2022/tabs/lib/tab-content/tab-content.js +19 -0
- package/esm2022/tabs/lib/tab-content/tab-content.js.map +1 -0
- package/esm2022/tabs/lib/tab-content-def.js +14 -0
- package/esm2022/tabs/lib/tab-content-def.js.map +1 -0
- package/esm2022/tabs/lib/tab-def.js +17 -0
- package/esm2022/tabs/lib/tab-def.js.map +1 -0
- package/esm2022/tabs/lib/tab-group-token.js +3 -0
- package/esm2022/tabs/lib/tab-group-token.js.map +1 -0
- package/esm2022/tabs/lib/tab-item/tab-item.js +44 -0
- package/esm2022/tabs/lib/tab-item/tab-item.js.map +1 -0
- package/esm2022/tabs/lib/tabs/tabs.js +542 -0
- package/esm2022/tabs/lib/tabs/tabs.js.map +1 -0
- package/esm2022/tabs/lib/tabs.service.js +83 -0
- package/esm2022/tabs/lib/tabs.service.js.map +1 -0
- package/esm2022/tabs/malva-ui-core-tabs.js +5 -0
- package/esm2022/tabs/malva-ui-core-tabs.js.map +1 -0
- package/esm2022/textarea/index.js +2 -0
- package/esm2022/textarea/index.js.map +1 -0
- package/esm2022/textarea/lib/textarea/textarea.js +194 -0
- package/esm2022/textarea/lib/textarea/textarea.js.map +1 -0
- package/esm2022/textarea/malva-ui-core-textarea.js +5 -0
- package/esm2022/textarea/malva-ui-core-textarea.js.map +1 -0
- package/esm2022/tile/index.js +3 -0
- package/esm2022/tile/index.js.map +1 -0
- package/esm2022/tile/lib/tile/tile.js +39 -0
- package/esm2022/tile/lib/tile/tile.js.map +1 -0
- package/esm2022/tile/lib/tile-header.js +14 -0
- package/esm2022/tile/lib/tile-header.js.map +1 -0
- package/esm2022/tile/malva-ui-core-tile.js +5 -0
- package/esm2022/tile/malva-ui-core-tile.js.map +1 -0
- package/esm2022/time-picker/index.js +2 -0
- package/esm2022/time-picker/index.js.map +1 -0
- package/esm2022/time-picker/lib/time-picker/time-picker.js +310 -0
- package/esm2022/time-picker/lib/time-picker/time-picker.js.map +1 -0
- package/esm2022/time-picker/lib/time-picker-column/time-picker-column.js +216 -0
- package/esm2022/time-picker/lib/time-picker-column/time-picker-column.js.map +1 -0
- package/esm2022/time-picker/malva-ui-core-time-picker.js +5 -0
- package/esm2022/time-picker/malva-ui-core-time-picker.js.map +1 -0
- package/esm2022/timeline/index.js +6 -0
- package/esm2022/timeline/index.js.map +1 -0
- package/esm2022/timeline/lib/timeline/timeline-item-icon.js +31 -0
- package/esm2022/timeline/lib/timeline/timeline-item-icon.js.map +1 -0
- package/esm2022/timeline/lib/timeline/timeline-item-meta.js +31 -0
- package/esm2022/timeline/lib/timeline/timeline-item-meta.js.map +1 -0
- package/esm2022/timeline/lib/timeline/timeline-item.js +69 -0
- package/esm2022/timeline/lib/timeline/timeline-item.js.map +1 -0
- package/esm2022/timeline/lib/timeline/timeline.js +36 -0
- package/esm2022/timeline/lib/timeline/timeline.js.map +1 -0
- package/esm2022/timeline/lib/timeline/timeline.types.js +1 -0
- package/esm2022/timeline/lib/timeline/timeline.types.js.map +1 -0
- package/esm2022/timeline/malva-ui-core-timeline.js +5 -0
- package/esm2022/timeline/malva-ui-core-timeline.js.map +1 -0
- package/esm2022/title/index.js +2 -0
- package/esm2022/title/index.js.map +1 -0
- package/esm2022/title/lib/title/title.js +171 -0
- package/esm2022/title/lib/title/title.js.map +1 -0
- package/esm2022/title/malva-ui-core-title.js +5 -0
- package/esm2022/title/malva-ui-core-title.js.map +1 -0
- package/esm2022/toast/index.js +13 -0
- package/esm2022/toast/index.js.map +1 -0
- package/esm2022/toast/lib/abstract-toast-container.js +50 -0
- package/esm2022/toast/lib/abstract-toast-container.js.map +1 -0
- package/esm2022/toast/lib/abstract-toast-item.js +75 -0
- package/esm2022/toast/lib/abstract-toast-item.js.map +1 -0
- package/esm2022/toast/lib/abstract-toast.service.js +176 -0
- package/esm2022/toast/lib/abstract-toast.service.js.map +1 -0
- package/esm2022/toast/lib/toast-container/toast-container.js +61 -0
- package/esm2022/toast/lib/toast-container/toast-container.js.map +1 -0
- package/esm2022/toast/lib/toast-item/toast-item.js +62 -0
- package/esm2022/toast/lib/toast-item/toast-item.js.map +1 -0
- package/esm2022/toast/lib/toast-ref.js +54 -0
- package/esm2022/toast/lib/toast-ref.js.map +1 -0
- package/esm2022/toast/lib/toast-timer.js +37 -0
- package/esm2022/toast/lib/toast-timer.js.map +1 -0
- package/esm2022/toast/lib/toast.directives.js +76 -0
- package/esm2022/toast/lib/toast.directives.js.map +1 -0
- package/esm2022/toast/lib/toast.service.js +127 -0
- package/esm2022/toast/lib/toast.service.js.map +1 -0
- package/esm2022/toast/lib/toast.types.js +39 -0
- package/esm2022/toast/lib/toast.types.js.map +1 -0
- package/esm2022/toast/malva-ui-core-toast.js +5 -0
- package/esm2022/toast/malva-ui-core-toast.js.map +1 -0
- package/esm2022/tokenizer/index.js +4 -0
- package/esm2022/tokenizer/index.js.map +1 -0
- package/esm2022/tokenizer/lib/token/token.js +123 -0
- package/esm2022/tokenizer/lib/token/token.js.map +1 -0
- package/esm2022/tokenizer/lib/token-template.js +23 -0
- package/esm2022/tokenizer/lib/token-template.js.map +1 -0
- package/esm2022/tokenizer/lib/tokenizer/tokenizer.js +324 -0
- package/esm2022/tokenizer/lib/tokenizer/tokenizer.js.map +1 -0
- package/esm2022/tokenizer/malva-ui-core-tokenizer.js +5 -0
- package/esm2022/tokenizer/malva-ui-core-tokenizer.js.map +1 -0
- package/esm2022/toolbar/index.js +4 -0
- package/esm2022/toolbar/index.js.map +1 -0
- package/esm2022/toolbar/lib/toolbar/toolbar-spacer.js +13 -0
- package/esm2022/toolbar/lib/toolbar/toolbar-spacer.js.map +1 -0
- package/esm2022/toolbar/lib/toolbar/toolbar-widget.js +106 -0
- package/esm2022/toolbar/lib/toolbar/toolbar-widget.js.map +1 -0
- package/esm2022/toolbar/lib/toolbar/toolbar.js +19 -0
- package/esm2022/toolbar/lib/toolbar/toolbar.js.map +1 -0
- package/esm2022/toolbar/malva-ui-core-toolbar.js +5 -0
- package/esm2022/toolbar/malva-ui-core-toolbar.js.map +1 -0
- package/esm2022/tooltip/index.js +4 -0
- package/esm2022/tooltip/index.js.map +1 -0
- package/esm2022/tooltip/lib/tooltip/tooltip-panel.js +69 -0
- package/esm2022/tooltip/lib/tooltip/tooltip-panel.js.map +1 -0
- package/esm2022/tooltip/lib/tooltip/tooltip.js +352 -0
- package/esm2022/tooltip/lib/tooltip/tooltip.js.map +1 -0
- package/esm2022/tooltip/lib/tooltip/tooltip.types.js +1 -0
- package/esm2022/tooltip/lib/tooltip/tooltip.types.js.map +1 -0
- package/esm2022/tooltip/malva-ui-core-tooltip.js +5 -0
- package/esm2022/tooltip/malva-ui-core-tooltip.js.map +1 -0
- package/esm2022/tree/index.js +5 -0
- package/esm2022/tree/index.js.map +1 -0
- package/esm2022/tree/lib/tree/tree-context.js +7 -0
- package/esm2022/tree/lib/tree/tree-context.js.map +1 -0
- package/esm2022/tree/lib/tree/tree-node-def.js +34 -0
- package/esm2022/tree/lib/tree/tree-node-def.js.map +1 -0
- package/esm2022/tree/lib/tree/tree-node.js +1 -0
- package/esm2022/tree/lib/tree/tree-node.js.map +1 -0
- package/esm2022/tree/lib/tree/tree-subtree.js +107 -0
- package/esm2022/tree/lib/tree/tree-subtree.js.map +1 -0
- package/esm2022/tree/lib/tree/tree.js +362 -0
- package/esm2022/tree/lib/tree/tree.js.map +1 -0
- package/esm2022/tree/malva-ui-core-tree.js +5 -0
- package/esm2022/tree/malva-ui-core-tree.js.map +1 -0
- package/expand/index.d.ts +2 -0
- package/expand/lib/expand/expand-content.d.ts +26 -0
- package/expand/lib/expand/expand.d.ts +74 -0
- package/expand/malva-ui-core-expand.d.ts +5 -0
- package/file-upload/README.md +7 -0
- package/file-upload/index.d.ts +4 -0
- package/file-upload/lib/file-upload/file-upload.d.ts +138 -0
- package/file-upload/lib/file-upload/file-upload.types.d.ts +42 -0
- package/file-upload/lib/file-upload-action.d.ts +53 -0
- package/file-upload/lib/file-upload-item/file-upload-item.d.ts +30 -0
- package/file-upload/malva-ui-core-file-upload.d.ts +5 -0
- package/filter/README.md +22 -0
- package/filter/index.d.ts +3 -0
- package/filter/lib/filter/filter.d.ts +156 -0
- package/filter/lib/filter.types.d.ts +75 -0
- package/filter/lib/smart-filter-bar/smart-filter-bar.d.ts +153 -0
- package/filter/malva-ui-core-filter.d.ts +5 -0
- package/form/index.d.ts +6 -0
- package/form/lib/fieldset/fieldset.d.ts +58 -0
- package/form/lib/fieldset-span.d.ts +28 -0
- package/form/lib/form/form.d.ts +37 -0
- package/form/lib/form-actions.d.ts +20 -0
- package/form/lib/form-gap.d.ts +5 -0
- package/form/lib/form-header.d.ts +18 -0
- package/form/lib/form.types.d.ts +13 -0
- package/form/malva-ui-core-form.d.ts +5 -0
- package/form-utils/index.d.ts +15 -0
- package/form-utils/lib/aria-value-bridge.d.ts +45 -0
- package/form-utils/lib/description/description.d.ts +16 -0
- package/form-utils/lib/focusable-group-base.d.ts +76 -0
- package/form-utils/lib/form-control-base/signal-form-control-base.d.ts +159 -0
- package/form-utils/lib/form-control-sides.d.ts +20 -0
- package/form-utils/lib/form-control-wrapper/form-control-wrapper-control.d.ts +6 -0
- package/form-utils/lib/form-control-wrapper/form-control-wrapper.d.ts +20 -0
- package/form-utils/lib/form-field/form-field.d.ts +68 -0
- package/form-utils/lib/hint/hint.d.ts +5 -0
- package/form-utils/lib/label/label.d.ts +22 -0
- package/form-utils/lib/message/message.d.ts +7 -0
- package/form-utils/lib/models/error-display-strategy.d.ts +1 -0
- package/form-utils/lib/models/form-control-connector.d.ts +41 -0
- package/form-utils/lib/models/form-state.d.ts +1 -0
- package/form-utils/lib/selection.service.d.ts +27 -0
- package/form-utils/malva-ui-core-form-utils.d.ts +5 -0
- package/form-utils/testing/index.d.ts +1 -0
- package/form-utils/testing/lib/forms-binding-matrix.d.ts +47 -0
- package/form-utils/testing/malva-ui-core-form-utils-testing.d.ts +5 -0
- package/index.d.ts +69 -0
- package/input/index.d.ts +3 -0
- package/input/lib/input/input-native.d.ts +36 -0
- package/input/lib/input/input-value-accessor.d.ts +11 -0
- package/input/lib/input/input.d.ts +189 -0
- package/input/lib/input/password-strength.d.ts +34 -0
- package/input/malva-ui-core-input.d.ts +5 -0
- package/kbd/index.d.ts +1 -0
- package/kbd/lib/kbd/kbd.d.ts +52 -0
- package/kbd/malva-ui-core-kbd.d.ts +5 -0
- package/layout/index.d.ts +4 -0
- package/layout/lib/layout/directives/MlvLayoutSide.d.ts +6 -0
- package/layout/lib/layout/directives/MlvLayoutTop.d.ts +6 -0
- package/layout/lib/layout/layout.d.ts +20 -0
- package/layout/lib/layout/services/theme.service.d.ts +33 -0
- package/layout/malva-ui-core-layout.d.ts +5 -0
- package/link/index.d.ts +2 -0
- package/link/lib/link/link.d.ts +15 -0
- package/link/lib/link/link.directives.d.ts +10 -0
- package/link/malva-ui-core-link.d.ts +5 -0
- package/list/index.d.ts +13 -0
- package/list/lib/list/list.d.ts +25 -0
- package/list/lib/list-item/list-item.d.ts +67 -0
- package/list/lib/list-item-actions.d.ts +12 -0
- package/list/lib/list-item-byline.d.ts +5 -0
- package/list/lib/list-item-group/list-item-group.d.ts +11 -0
- package/list/lib/list-item-link/list-item-link.d.ts +8 -0
- package/list/lib/list-item-media.d.ts +5 -0
- package/list/lib/list-item-meta.d.ts +5 -0
- package/list/lib/list-item-prefix.d.ts +5 -0
- package/list/lib/list-item-suffix.d.ts +5 -0
- package/list/lib/list-item-template.d.ts +10 -0
- package/list/lib/list-item-title.d.ts +5 -0
- package/list/lib/list-selectable.d.ts +73 -0
- package/list/malva-ui-core-list.d.ts +5 -0
- package/loader/index.d.ts +1 -0
- package/loader/lib/loader/loader.d.ts +84 -0
- package/loader/malva-ui-core-loader.d.ts +5 -0
- package/malva-ui-core.d.ts +5 -0
- package/menu/index.d.ts +9 -0
- package/menu/lib/menu/menu-group-label.d.ts +22 -0
- package/menu/lib/menu/menu-group.d.ts +27 -0
- package/menu/lib/menu/menu-item.d.ts +76 -0
- package/menu/lib/menu/menu-separator.d.ts +18 -0
- package/menu/lib/menu/menu-trigger.d.ts +255 -0
- package/menu/lib/menu/menu.d.ts +149 -0
- package/menu/lib/menu/menu.types.d.ts +13 -0
- package/menu/lib/menu/menubar.d.ts +131 -0
- package/menu/lib/menu/menubar.types.d.ts +82 -0
- package/menu/lib/menu/submenu-aim.d.ts +10 -0
- package/menu/malva-ui-core-menu.d.ts +5 -0
- package/notification/index.d.ts +4 -0
- package/notification/lib/notification-item/notification-item.d.ts +20 -0
- package/notification/lib/notification-ref.d.ts +12 -0
- package/notification/lib/notification.service.d.ts +43 -0
- package/notification/lib/notification.types.d.ts +52 -0
- package/notification/malva-ui-core-notification.d.ts +5 -0
- package/number-input/index.d.ts +1 -0
- package/number-input/lib/number-input/number-input.d.ts +162 -0
- package/number-input/malva-ui-core-number-input.d.ts +5 -0
- package/package.json +315 -0
- package/page/README.md +8 -0
- package/page/index.d.ts +14 -0
- package/page/lib/page/page-scroll.token.d.ts +19 -0
- package/page/lib/page/page-snap-controller.d.ts +87 -0
- package/page/lib/page/page-snap.directive.d.ts +40 -0
- package/page/lib/page/page.d.ts +74 -0
- package/page/lib/page-content/page-aside.d.ts +7 -0
- package/page/lib/page-content/page-content.d.ts +37 -0
- package/page/lib/page-dock/page-dock.d.ts +50 -0
- package/page/lib/page-dock/page-dock.slots.d.ts +16 -0
- package/page/lib/page-header/page-header.d.ts +77 -0
- package/page/lib/page-header/page-header.directives.d.ts +50 -0
- package/page/lib/page-shell/page-shell-color.d.ts +48 -0
- package/page/lib/page-shell/page-shell-css-color.d.ts +20 -0
- package/page/lib/page-shell/page-shell.d.ts +44 -0
- package/page/lib/page-shell/page-shell.slots.d.ts +16 -0
- package/page/lib/page-summary/page-summary-item.d.ts +11 -0
- package/page/lib/page-summary/page-summary.d.ts +36 -0
- package/page/malva-ui-core-page.d.ts +5 -0
- package/pagination/index.d.ts +4 -0
- package/pagination/lib/pagination/pagination.d.ts +182 -0
- package/pagination/lib/pagination/pagination.directives.d.ts +44 -0
- package/pagination/lib/pagination/pagination.model.d.ts +6 -0
- package/pagination/lib/pagination/pagination.service.d.ts +26 -0
- package/pagination/malva-ui-core-pagination.d.ts +5 -0
- package/pin-input/index.d.ts +2 -0
- package/pin-input/lib/pin-input/pin-input-separator.d.ts +24 -0
- package/pin-input/lib/pin-input/pin-input.d.ts +176 -0
- package/pin-input/malva-ui-core-pin-input.d.ts +5 -0
- package/popup/index.d.ts +9 -0
- package/popup/lib/popup/popup.d.ts +343 -0
- package/popup/lib/popup-container/popup-container.d.ts +61 -0
- package/popup/lib/popup-container/popup-container.token.d.ts +34 -0
- package/popup/lib/popup-content.d.ts +6 -0
- package/popup/lib/popup-header-content.d.ts +18 -0
- package/popup/lib/popup-pinned-content.d.ts +17 -0
- package/popup/lib/popup-positions.d.ts +105 -0
- package/popup/lib/popup-trigger/popup-trigger.d.ts +102 -0
- package/popup/lib/popup.service.d.ts +159 -0
- package/popup/malva-ui-core-popup.d.ts +5 -0
- package/progress/index.d.ts +1 -0
- package/progress/lib/progress/progress.d.ts +69 -0
- package/progress/malva-ui-core-progress.d.ts +5 -0
- package/radio/index.d.ts +2 -0
- package/radio/lib/radio/radio.d.ts +87 -0
- package/radio/lib/radio-group/radio-group.d.ts +35 -0
- package/radio/lib/radio-group-token.d.ts +7 -0
- package/radio/malva-ui-core-radio.d.ts +5 -0
- package/rating/index.d.ts +1 -0
- package/rating/lib/rating/rating.d.ts +100 -0
- package/rating/malva-ui-core-rating.d.ts +5 -0
- package/schematics/collection.json +12 -0
- package/schematics/ng-add/index.cjs +272 -0
- package/schematics/ng-add/schema.json +92 -0
- package/scrollbar/index.d.ts +1 -0
- package/scrollbar/lib/scrollbar/scrollbar.d.ts +166 -0
- package/scrollbar/malva-ui-core-scrollbar.d.ts +5 -0
- package/search-field/README.md +32 -0
- package/search-field/index.d.ts +2 -0
- package/search-field/lib/search-field/search-field.d.ts +347 -0
- package/search-field/lib/search-field/search-overlay-content.d.ts +59 -0
- package/search-field/malva-ui-core-search-field.d.ts +5 -0
- package/segmented/index.d.ts +4 -0
- package/segmented/lib/segmented/segmented.d.ts +80 -0
- package/segmented/lib/segmented-item/segmented-item.d.ts +89 -0
- package/segmented/lib/segmented-token.d.ts +22 -0
- package/segmented/lib/segmented.types.d.ts +9 -0
- package/segmented/malva-ui-core-segmented.d.ts +5 -0
- package/select/index.d.ts +3 -0
- package/select/lib/select/select.d.ts +379 -0
- package/select/lib/select-option.d.ts +1 -0
- package/select/lib/select-template.directives.d.ts +14 -0
- package/select/malva-ui-core-select.d.ts +5 -0
- package/sidebar/index.d.ts +15 -0
- package/sidebar/lib/sidebar/sidebar.d.ts +134 -0
- package/sidebar/lib/sidebar-content.d.ts +11 -0
- package/sidebar/lib/sidebar-context.d.ts +23 -0
- package/sidebar/lib/sidebar-footer.d.ts +9 -0
- package/sidebar/lib/sidebar-group/sidebar-group.d.ts +127 -0
- package/sidebar/lib/sidebar-header.d.ts +9 -0
- package/sidebar/lib/sidebar-item/sidebar-item.d.ts +104 -0
- package/sidebar/lib/sidebar-item-host.d.ts +18 -0
- package/sidebar/lib/sidebar-item-icon.d.ts +6 -0
- package/sidebar/lib/sidebar-mode.d.ts +2 -0
- package/sidebar/lib/sidebar-rail/sidebar-rail.d.ts +54 -0
- package/sidebar/lib/sidebar-trigger/sidebar-trigger.d.ts +67 -0
- package/sidebar/lib/sidebar-workspace/sidebar-workspace.d.ts +54 -0
- package/sidebar/lib/sidebar-workspace/sidebar-workspace.directives.d.ts +19 -0
- package/sidebar/lib/sidebar-workspace/sidebar-workspace.types.d.ts +20 -0
- package/sidebar/malva-ui-core-sidebar.d.ts +5 -0
- package/skeleton/index.d.ts +1 -0
- package/skeleton/lib/skeleton/skeleton.d.ts +60 -0
- package/skeleton/malva-ui-core-skeleton.d.ts +5 -0
- package/slider/index.d.ts +2 -0
- package/slider/lib/slider/slider-tooltip-def.d.ts +39 -0
- package/slider/lib/slider/slider.d.ts +171 -0
- package/slider/malva-ui-core-slider.d.ts +5 -0
- package/split-pane/index.d.ts +3 -0
- package/split-pane/lib/split-pane/split-pane-panel.d.ts +34 -0
- package/split-pane/lib/split-pane/split-pane.d.ts +98 -0
- package/split-pane/lib/split-pane/split-pane.types.d.ts +7 -0
- package/split-pane/malva-ui-core-split-pane.d.ts +5 -0
- package/status-indicator/index.d.ts +1 -0
- package/status-indicator/lib/status-indicator/status-indicator.d.ts +61 -0
- package/status-indicator/malva-ui-core-status-indicator.d.ts +5 -0
- package/stepper/index.d.ts +4 -0
- package/stepper/lib/stepper/step-header.d.ts +34 -0
- package/stepper/lib/stepper/step.d.ts +51 -0
- package/stepper/lib/stepper/stepper-token.d.ts +13 -0
- package/stepper/lib/stepper/stepper.d.ts +98 -0
- package/stepper/lib/stepper/stepper.types.d.ts +4 -0
- package/stepper/malva-ui-core-stepper.d.ts +5 -0
- package/styles/malva-ui.css +1706 -0
- package/styles/tokens.md +698 -0
- package/switch/index.d.ts +2 -0
- package/switch/lib/switch/switch.d.ts +118 -0
- package/switch/lib/switch-group/switch-group.d.ts +24 -0
- package/switch/lib/switch-group-token.d.ts +6 -0
- package/switch/malva-ui-core-switch.d.ts +5 -0
- package/tabs/index.d.ts +8 -0
- package/tabs/lib/tab/tab.d.ts +46 -0
- package/tabs/lib/tab-content/tab-content.d.ts +11 -0
- package/tabs/lib/tab-content-def.d.ts +6 -0
- package/tabs/lib/tab-def.d.ts +11 -0
- package/tabs/lib/tab-group-token.d.ts +10 -0
- package/tabs/lib/tab-item/tab-item.d.ts +28 -0
- package/tabs/lib/tabs/tabs.d.ts +202 -0
- package/tabs/lib/tabs.service.d.ts +24 -0
- package/tabs/malva-ui-core-tabs.d.ts +5 -0
- package/textarea/index.d.ts +1 -0
- package/textarea/lib/textarea/textarea.d.ts +77 -0
- package/textarea/malva-ui-core-textarea.d.ts +5 -0
- package/tile/index.d.ts +2 -0
- package/tile/lib/tile/tile.d.ts +20 -0
- package/tile/lib/tile-header.d.ts +6 -0
- package/tile/malva-ui-core-tile.d.ts +5 -0
- package/time-picker/README.md +7 -0
- package/time-picker/index.d.ts +1 -0
- package/time-picker/lib/time-picker/time-picker.d.ts +135 -0
- package/time-picker/lib/time-picker-column/time-picker-column.d.ts +111 -0
- package/time-picker/malva-ui-core-time-picker.d.ts +5 -0
- package/timeline/index.d.ts +5 -0
- package/timeline/lib/timeline/timeline-item-icon.d.ts +24 -0
- package/timeline/lib/timeline/timeline-item-meta.d.ts +24 -0
- package/timeline/lib/timeline/timeline-item.d.ts +52 -0
- package/timeline/lib/timeline/timeline.d.ts +27 -0
- package/timeline/lib/timeline/timeline.types.d.ts +18 -0
- package/timeline/malva-ui-core-timeline.d.ts +5 -0
- package/title/index.d.ts +1 -0
- package/title/lib/title/title.d.ts +63 -0
- package/title/malva-ui-core-title.d.ts +5 -0
- package/toast/index.d.ts +10 -0
- package/toast/lib/abstract-toast-container.d.ts +29 -0
- package/toast/lib/abstract-toast-item.d.ts +44 -0
- package/toast/lib/abstract-toast.service.d.ts +75 -0
- package/toast/lib/toast-container/toast-container.d.ts +23 -0
- package/toast/lib/toast-item/toast-item.d.ts +25 -0
- package/toast/lib/toast-ref.d.ts +33 -0
- package/toast/lib/toast-timer.d.ts +24 -0
- package/toast/lib/toast.directives.d.ts +13 -0
- package/toast/lib/toast.service.d.ts +41 -0
- package/toast/lib/toast.types.d.ts +139 -0
- package/toast/malva-ui-core-toast.d.ts +5 -0
- package/tokenizer/index.d.ts +3 -0
- package/tokenizer/lib/token/token.d.ts +60 -0
- package/tokenizer/lib/token-template.d.ts +29 -0
- package/tokenizer/lib/tokenizer/tokenizer.d.ts +109 -0
- package/tokenizer/malva-ui-core-tokenizer.d.ts +5 -0
- package/toolbar/index.d.ts +3 -0
- package/toolbar/lib/toolbar/toolbar-spacer.d.ts +5 -0
- package/toolbar/lib/toolbar/toolbar-widget.d.ts +75 -0
- package/toolbar/lib/toolbar/toolbar.d.ts +8 -0
- package/toolbar/malva-ui-core-toolbar.d.ts +5 -0
- package/tooltip/README.md +7 -0
- package/tooltip/index.d.ts +3 -0
- package/tooltip/lib/tooltip/tooltip-panel.d.ts +26 -0
- package/tooltip/lib/tooltip/tooltip.d.ts +148 -0
- package/tooltip/lib/tooltip/tooltip.types.d.ts +17 -0
- package/tooltip/malva-ui-core-tooltip.d.ts +5 -0
- package/tree/index.d.ts +4 -0
- package/tree/lib/tree/tree-context.d.ts +62 -0
- package/tree/lib/tree/tree-node-def.d.ts +33 -0
- package/tree/lib/tree/tree-node.d.ts +45 -0
- package/tree/lib/tree/tree-subtree.d.ts +63 -0
- package/tree/lib/tree/tree.d.ts +156 -0
- package/tree/malva-ui-core-tree.d.ts +5 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autocomplete.js","sourceRoot":"","sources":["../../../../../../../libs/core/autocomplete/src/lib/autocomplete/autocomplete.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n afterNextRender,\n computed,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n inject,\n Injector,\n input,\n model,\n output,\n Renderer2,\n signal,\n untracked,\n ViewContainerRef,\n} from '@angular/core';\nimport type { ComponentRef } from '@angular/core';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Overlay } from '@angular/cdk/overlay';\nimport type { ConnectedPosition, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Subject, timer } from 'rxjs';\nimport { debounce } from 'rxjs/operators';\nimport {\n MlvActiveDescendant,\n MlvDropdownPanel,\n MlvOptionsAdapter,\n defaultOptionMatcher,\n defaultOptionTransform,\n filterOptions,\n optionId,\n resolveOptions,\n} from '@malva-ui/core/dropdown';\nimport type {\n MlvOptionMatcher,\n MlvOptionsInput,\n MlvOptionsSearchFn,\n MlvSelectOption,\n MlvSelectOptionTransform,\n} from '@malva-ui/core/dropdown';\nimport { MlvSelectionService } from '@malva-ui/core/form-utils';\nimport { mlvNextId } from '@malva-ui/cdk/utils';\nimport { MLV_DENSITY_CONTEXT, MlvDensityService } from '@malva-ui/cdk/density';\nimport type { MlvDensity } from '@malva-ui/cdk/density';\n\n/** Alias of {@link MlvOptionsSearchFn} — kept for backwards compatibility. */\nexport type MlvAutocompleteSearchFn<T> = MlvOptionsSearchFn<T>;\n\n/** Connected-overlay positions: below the input first, above as the fallback. */\nconst AUTOCOMPLETE_POSITIONS: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 8,\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -8,\n },\n];\n\n/**\n * `[mlvAutocomplete]` — a reusable autocomplete/typeahead behaviour applicable\n * to **any** text input: a native `<input>` or a `<mlv-input>`. It reuses the\n * same building blocks as `mlv-combobox` — the shared\n * {@link filterOptions matching utility} and the `mlv-dropdown-panel` list — to\n * render a suggestion popup, without forcing the field into a full form\n * control.\n *\n * Suggestions come from the {@link options} source — an array or\n * `Observable<T[]>` (filtered locally with {@link matcher}), or a\n * `MlvDataSource<T>` (which filters and pages itself) — or from an async\n * {@link search} function. Every shape is normalised by the shared\n * `MlvOptionsAdapter`. The directive owns\n * the popup (a CDK overlay hosting `mlv-dropdown-panel`, the same primitive\n * `mlv-popup` wraps — a headless attribute directive cannot host `mlv-popup`'s\n * declarative content template), the WAI-ARIA combobox wiring on the input\n * (`role=\"combobox\"`, `aria-autocomplete=\"list\"`, `aria-expanded`,\n * `aria-controls`, `aria-activedescendant`), and the activedescendant keyboard\n * model (DOM focus stays in the input; Arrow/Home/End move the highlighted\n * option, Enter selects it, Escape closes then clears).\n *\n * @example\n * ```html\n * <!-- Static options on a plain mlv-input -->\n * <mlv-input [mlvAutocomplete]=\"fruits\" (optionSelected)=\"pick($event)\" />\n *\n * <!-- Async search with loading + highlighting -->\n * <mlv-input [mlvAutocompleteSearch]=\"searchUsers\" [mlvAutocompleteMinLength]=\"2\" />\n *\n * <!-- Data source: it filters (setSearch) and pages itself -->\n * <mlv-input [mlvAutocomplete]=\"usersDataSource\" [mlvAutocompleteMinLength]=\"2\" />\n *\n * <!-- Custom matcher -->\n * <mlv-input [mlvAutocomplete]=\"cities\" [mlvAutocompleteMatcher]=\"startsWith\" />\n * ```\n */\n@Directive({\n selector: '[mlvAutocomplete],[mlvAutocompleteSearch]',\n exportAs: 'mlvAutocomplete',\n // Provided per-directive so the `mlv-dropdown-panel` component portal (created\n // with this directive's element injector) can resolve the MlvSelectionService it\n // injects — matching how `mlv-combobox` / `mlv-select` scope it.\n providers: [MlvSelectionService],\n})\nexport class MlvAutocomplete<T = unknown> {\n /**\n * Suggestion source: a static array or `Observable<T[]>` (filtered locally\n * against the query with {@link matcher}), or a `MlvDataSource<T>` (which owns\n * its own filtering — the directive forwards the query as\n * `setSearch({ query, keys: [] })` and pages lazily). Ignored when a\n * {@link search} function is provided. Bound through the directive's own\n * selector: `[mlvAutocomplete]=\"options\"`.\n */\n readonly options = input<MlvOptionsInput<T>>([], {\n alias: 'mlvAutocomplete',\n });\n\n /**\n * Async suggestion source: `(query) => T[] | Promise<T[]> | Observable<T[]>`.\n * When set, it supersedes {@link options}; results feed the panel and drive\n * the loading affordance. A newer query supersedes an in-flight one (its\n * result is discarded), while the previous results stay visible until the new\n * ones land.\n */\n readonly search = input<MlvAutocompleteSearchFn<T> | null>(null, {\n alias: 'mlvAutocompleteSearch',\n });\n\n /**\n * Maps a raw item to a `MlvSelectOption` (`{ label, value, group? }`). Same\n * convention as `mlv-select` / `mlv-combobox`; defaults to\n * {@link defaultOptionTransform} (uses `String(item)` as the label).\n */\n readonly toOption = input<MlvSelectOptionTransform<T>>(\n defaultOptionTransform as MlvSelectOptionTransform<T>,\n { alias: 'mlvAutocompleteToOption' },\n );\n\n /**\n * Predicate used to filter {@link options} against the query. Defaults to a\n * case- and diacritic-insensitive substring match on the label. Ignored when\n * {@link search} is provided (the async source owns its own matching).\n */\n readonly matcher = input<MlvOptionMatcher<T>>(defaultOptionMatcher, {\n alias: 'mlvAutocompleteMatcher',\n });\n\n /**\n * Debounce (ms) applied to keystrokes before filtering / searching — avoids\n * redundant work and API calls during rapid typing.\n * @default 200\n */\n readonly debounce = input<number>(200, {\n alias: 'mlvAutocompleteDebounce',\n });\n\n /**\n * Minimum query length before suggestions open. `0` (default) opens on focus\n * showing the full list — appropriate for cheap local filtering. Raise it\n * (2+ recommended) for async sources so a network call is not made on every\n * keystroke.\n * @default 0\n */\n readonly minLength = input<number>(0, {\n alias: 'mlvAutocompleteMinLength',\n });\n\n /**\n * When `true`, the matched substring of the query is emphasised inside each\n * suggestion label.\n * @default true\n */\n readonly highlight = input<boolean, BooleanInput>(true, {\n alias: 'mlvAutocompleteHighlight',\n transform: coerceBooleanProperty,\n });\n\n /**\n * When `true` (default), an **inline completion** is offered as the user types:\n * if the top visible suggestion's label starts with the typed text (a genuine\n * prefix, case-insensitively) and the caret is at the end of the field, the\n * remainder of that suggestion is inserted after the caret and left **selected**\n * — so continuing to type replaces it, `Enter`/click commits the full value, and\n * `Escape` reverts to just the typed text. The user's typed prefix keeps their\n * casing; only the appended remainder uses the suggestion's casing. Non-prefix\n * (fuzzy / substring-only) top matches are skipped silently (list-only). While\n * enabled the input advertises `aria-autocomplete=\"both\"`; set `false` for\n * list-only behaviour (`aria-autocomplete=\"list\"`).\n * @default true\n */\n readonly inline = input<boolean, BooleanInput>(true, {\n alias: 'mlvAutocompleteInline',\n transform: coerceBooleanProperty,\n });\n\n /**\n * When `true` (default), focusing the input opens the suggestion list\n * (subject to {@link minLength}). Set `false` to only open on typing / arrow.\n * @default true\n */\n readonly openOnFocus = input<boolean, BooleanInput>(true, {\n alias: 'mlvAutocompleteOpenOnFocus',\n transform: coerceBooleanProperty,\n });\n\n /** Disables the behaviour entirely (no popup, no aria wiring changes). */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'mlvAutocompleteDisabled',\n transform: coerceBooleanProperty,\n });\n\n /**\n * Text shown / announced inside the panel's loading affordances — the top row\n * while a remote source (an async {@link search} or a `MlvDataSource`)\n * resolves, and the bottom row while a further page loads. Localise by binding\n * a translated string.\n * @default 'Loading…'\n */\n readonly loadingText = input<string>('Loading…', {\n alias: 'mlvAutocompleteLoadingText',\n });\n\n /**\n * Distance (px) from the end of the suggestion list at which the next\n * data-source page is requested. Only meaningful for a `MlvDataSource`\n * {@link options} source, which is the only shape that pages.\n * @default 150\n */\n readonly infiniteScrollThreshold = input<number>(150, {\n alias: 'mlvAutocompleteInfiniteScrollThreshold',\n });\n\n /**\n * Density applied to the suggestion panel's option rows.\n *\n * The panel is hosted in a bare CDK overlay portaled to the overlay container,\n * outside the input's DOM tree, so ancestor density classes cannot cascade\n * into it. The resolved density is stamped as a `mlv--{density}` class on the\n * panel host (the same mechanism `mlv-popup` uses for its detached panel).\n * When omitted, the nearest ancestor `MLV_DENSITY_CONTEXT` (e.g. a\n * `form[mlvForm]`) applies, then the global `MlvDensityService` density.\n */\n readonly density = input<MlvDensity | undefined>(undefined, {\n alias: 'mlvAutocompleteDensity',\n });\n\n /**\n * The raw value of the last selected suggestion, or `null`. Two-way bindable\n * (`[(mlvAutocompleteValue)]`) so a parent can observe the committed pick.\n */\n readonly selectedValue = model<T | null>(null, {\n alias: 'mlvAutocompleteValue',\n });\n\n /** Emits the full `MlvSelectOption` each time the user selects a suggestion. */\n readonly optionSelected = output<MlvSelectOption<T>>();\n\n /** Emits `true` when the suggestion list opens and `false` when it closes. */\n readonly openedChange = output<boolean>();\n\n // ─── DI ────────────────────────────────────────────────────────────────────\n\n /** @private Host element the directive is applied to (native input or mlv-input). */\n private readonly _hostEl =\n inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n /** @private Renderer for DOM attribute/listener wiring on the resolved input. */\n private readonly _renderer = inject(Renderer2);\n /** @private CDK overlay factory used to host the suggestion panel. */\n private readonly _overlay = inject(Overlay);\n /** @private View container + injector for the `mlv-dropdown-panel` component portal. */\n private readonly _vcr = inject(ViewContainerRef);\n private readonly _injector = inject(Injector);\n /** @private Directive lifetime, for imperative listener / subscription cleanup. */\n private readonly _destroyRef = inject(DestroyRef);\n /** @private Global density service — fallback when no explicit {@link density} is supplied. */\n private readonly _densityService = inject(MlvDensityService);\n\n /** @private Ancestor-projected density (`MLV_DENSITY_CONTEXT`); consulted before the service. */\n private readonly _densityContext = inject(MLV_DENSITY_CONTEXT, {\n optional: true,\n });\n\n // ─── State ───────────────────────────────────────────────────────────────\n\n /** @private The resolved focusable `<input>` (host itself, or the inner input of a `mlv-input`). */\n private readonly _inputEl = signal<HTMLInputElement | null>(null);\n /** @private Current (post-input) query text. */\n private readonly _query = signal('');\n /** @private The current suggestion options rendered in the panel. */\n private readonly _results = signal<MlvSelectOption<T>[]>([]);\n /**\n * @private Shared source adapter: arrays / observables filter locally, a\n * `MlvDataSource` or `search` fn run remotely. Debounce is 0 here because the\n * directive already debounces keystrokes before `_runQuery`.\n */\n private readonly _adapter = new MlvOptionsAdapter<T>({\n source: this.options,\n searchFn: this.search,\n debounce: signal(0),\n eager: signal(false),\n });\n /** @private Panel loading flag — only remote sources report loading. */\n private readonly _panelLoading = computed(\n () => this._adapter.mode() === 'remote' && this._adapter.loading(),\n );\n /**\n * @private Shared activedescendant bookkeeping: tracks the highlighted option\n * index over the current results with wrap-around navigation. The same engine\n * backs `mlv-combobox`.\n */\n private readonly _activeDescendant = new MlvActiveDescendant(\n () => this._results().length,\n );\n /** @private Whether the suggestion popup is open. */\n private readonly _open = signal(false);\n /** @private The attached panel component ref (a signal so the sync effect re-runs on attach). */\n private readonly _panelRef = signal<ComponentRef<MlvDropdownPanel<T>> | null>(\n null,\n );\n\n /** Whether the suggestion popup is currently open (read-only view of internal state). */\n readonly isOpen = this._open.asReadonly();\n\n /** @private Stable listbox id shared between the input's `aria-controls` and the panel's option ids. */\n private readonly _listboxId = mlvNextId('mlv-autocomplete-listbox');\n\n /**\n * @private Debounced keystroke stream. Carries the query text plus whether the\n * triggering edit was an insertion (text grew) so the debounced `_runQuery`\n * knows whether an inline completion may be offered — only genuine insertions\n * complete, never deletions (Backspace/Delete/cut), focus, or arrow-open.\n */\n private readonly _input$ = new Subject<{\n query: string;\n insertion: boolean;\n }>();\n /** @private Skips the synthetic `input` event dispatched while committing / completing a value. */\n private _suppressNextInput = false;\n /** @private Live overlay reference while the panel is open. */\n private _overlayRef: OverlayRef | null = null;\n /**\n * @private `inputType` of the pending native edit, captured on `beforeinput`\n * and consumed on `input`. Non-null in real browsers (drives precise\n * insert-vs-delete detection); `null` in environments that don't fire\n * `beforeinput` (jsdom / programmatic edits), where a length comparison is the\n * fallback.\n */\n private _pendingInputType: string | null = null;\n /** @private Length of the input value at the previous `input` event — the length-comparison fallback for insertion detection. */\n private _previousValueLength = 0;\n /** @private Whether the current query is allowed to offer an inline completion (set per `_runQuery`; only true for inline-enabled insertions). */\n private _completionArmed = false;\n /** @private Whether an inline completion (typed prefix + selected remainder) is currently present in the input. */\n private _completionActive = false;\n /** @private The `mlv--{density}` class currently applied to the panel host, for removal on change. */\n private _appliedDensityClass: string | null = null;\n\n constructor() {\n // Keep the detached panel host stamped with the resolved density cascade\n // class. The overlay (and panel element) is recreated on every open, so the\n // applied-class memo resets when the ref clears; while open, the effect also\n // reacts to live density changes.\n effect(() => {\n const ref = this._panelRef();\n if (!ref) {\n this._appliedDensityClass = null;\n return;\n }\n const el = ref.location.nativeElement as HTMLElement;\n const next = `mlv--${this.density() ?? this._densityContext?.() ?? this._densityService.density()}`;\n if (this._appliedDensityClass === next) return;\n if (this._appliedDensityClass) {\n this._renderer.removeClass(el, this._appliedDensityClass);\n }\n this._renderer.addClass(el, next);\n this._appliedDensityClass = next;\n });\n // Debounce keystrokes before filtering / searching. The last event in the\n // window wins (rxjs `debounce`), so its `insertion` flag is what gates the\n // inline completion for the resolved query.\n this._input$\n .pipe(\n debounce(() => timer(Math.max(0, this.debounce()))),\n takeUntilDestroyed(),\n )\n .subscribe(({ query, insertion }) => this._runQuery(query, insertion));\n\n // Resolve the real <input> and wire native listeners. When the host itself\n // is an <input> it is available immediately; when the host is a `mlv-input`\n // (or any wrapper) the inner <input> only exists after the first render.\n if (this._hostEl.tagName === 'INPUT') {\n this._bindTo(this._hostEl as HTMLInputElement);\n } else {\n afterNextRender(() => {\n const el = this._hostEl.querySelector('input');\n if (el) this._bindTo(el);\n });\n }\n\n // Keep the input's WAI-ARIA combobox attributes in sync with popup state.\n effect(() => {\n const el = this._inputEl();\n if (!el) return;\n const open = this._open();\n this._renderer.setAttribute(el, 'role', 'combobox');\n // \"both\": inline text completion + a list of suggestions (WAI-ARIA\n // list-with-inline-autocomplete). \"list\": suggestions only, no inline\n // completion. Tracks the `inline` opt-out.\n this._renderer.setAttribute(\n el,\n 'aria-autocomplete',\n this.inline() ? 'both' : 'list',\n );\n this._renderer.setAttribute(el, 'aria-expanded', String(open));\n if (open) {\n this._renderer.setAttribute(el, 'aria-controls', this._listboxId);\n const activeId = this._activeOptionId();\n if (activeId) {\n this._renderer.setAttribute(el, 'aria-activedescendant', activeId);\n } else {\n this._renderer.removeAttribute(el, 'aria-activedescendant');\n }\n } else {\n this._renderer.removeAttribute(el, 'aria-controls');\n this._renderer.removeAttribute(el, 'aria-activedescendant');\n }\n });\n\n // Push current state into the attached panel component.\n effect(() => {\n const ref = this._panelRef();\n if (!ref) return;\n ref.setInput('options', this._results());\n ref.setInput('multiple', false);\n ref.setInput('selectedValues', []);\n ref.setInput('focusMode', 'activedescendant');\n ref.setInput('activeIndex', this._activeDescendant.index());\n ref.setInput('listboxId', this._listboxId);\n ref.setInput('loading', this._panelLoading());\n ref.setInput('loadingText', this.loadingText());\n ref.setInput('hasMore', this._adapter.hasMore());\n ref.setInput('loadingMore', this._adapter.loadingMore());\n ref.setInput('infiniteScrollThreshold', this.infiniteScrollThreshold());\n ref.setInput(\n 'highlightQuery',\n this.highlight() ? this._query().trim() : '',\n );\n });\n\n // Mirror the adapter's items into the rendered results whenever the source\n // produces a new set: a remote result landing, or a local observable\n // emitting after the panel is already open (nothing else would repaint it\n // until the next keystroke). Remote items render as-is — the source owns\n // filtering — while local ones are re-filtered against the current query.\n // Running only on an item-set change is what keeps stale remote results\n // visible while a newer query is in flight; the inline completion is offered\n // once per armed query.\n effect(() => {\n const mode = this._adapter.mode();\n const items = this._adapter.items();\n untracked(() => {\n if (mode === 'remote') {\n this._results.set(items.map((item) => this.toOption()(item)));\n if (this._completionArmed && !this._adapter.loading()) {\n this._applyCompletion();\n this._completionArmed = false;\n }\n return;\n }\n // Local: only an open panel needs repainting — a closed one is filled by\n // `_runQuery` when it opens.\n if (!this._open()) return;\n this._results.set(\n filterOptions(\n resolveOptions([...items], this.toOption()),\n this._query(),\n this.matcher(),\n ),\n );\n // The highlighted row may not exist in the new list.\n if (this._activeDescendant.index() >= this._results().length) {\n this._activeDescendant.reset();\n }\n });\n });\n\n this._destroyRef.onDestroy(() => this._disposeOverlay());\n }\n\n /**\n * @private Resolves the focusable `<input>` and attaches the native listeners\n * (input / focus / blur / keydown) that drive the behaviour. Cleaned up on\n * directive destroy.\n */\n private _bindTo(el: HTMLInputElement): void {\n this._inputEl.set(el);\n this._previousValueLength = el.value.length;\n // Capture the edit intent (insert vs delete) before the value changes, so\n // `_onInput` can gate the inline completion precisely in real browsers. Not\n // fired for programmatic value changes (jsdom / our own dispatches), where\n // `_onInput` falls back to a length comparison.\n this._destroyRef.onDestroy(\n this._renderer.listen(el, 'beforeinput', (event: Event) => {\n this._pendingInputType =\n 'inputType' in event ? (event as InputEvent).inputType : null;\n }),\n );\n this._destroyRef.onDestroy(\n this._renderer.listen(el, 'input', () => this._onInput()),\n );\n this._destroyRef.onDestroy(\n this._renderer.listen(el, 'focus', () => this._onFocus()),\n );\n this._destroyRef.onDestroy(\n this._renderer.listen(el, 'blur', () => this._onBlur()),\n );\n this._destroyRef.onDestroy(\n this._renderer.listen(el, 'keydown', (event: KeyboardEvent) =>\n this._onKeydown(event),\n ),\n );\n }\n\n /**\n * @private `aria-activedescendant` target: the DOM id of the highlighted\n * option row, or `null` when nothing is active. Matches the id the panel\n * renders (`<listboxId>-option-<index>`).\n */\n private readonly _activeOptionId = () => {\n const index = this._activeDescendant.index();\n if (index < 0 || index >= this._results().length) return null;\n return optionId(this._listboxId, index);\n };\n\n // ─── Input / focus events ──────────────────────────────────────────────────\n\n /** @private Handles a native `input` event: pushes the value (with insertion flag) into the debounced stream. */\n private _onInput(): void {\n if (this._suppressNextInput) {\n this._suppressNextInput = false;\n // Discard any beforeinput type that paired with our own synthetic dispatch.\n this._pendingInputType = null;\n return;\n }\n // A genuine user edit invalidates any inline completion currently in the\n // field (the edit has replaced or removed the selected remainder).\n this._completionActive = false;\n if (this._isInert()) return;\n const query = this._inputEl()?.value ?? '';\n this._input$.next({ query, insertion: this._consumeInsertion(query) });\n }\n\n /**\n * @private Whether the just-observed `input` event grew the field's text (a\n * genuine insertion) rather than deleting from it. Prefers the `beforeinput`\n * `inputType` when available (real browsers), else compares the value length\n * against the previous `input` event. Consumes the pending type and records\n * the new length either way.\n */\n private _consumeInsertion(value: string): boolean {\n const inputType = this._pendingInputType;\n this._pendingInputType = null;\n const insertion =\n inputType !== null\n ? inputType.startsWith('insert')\n : value.length > this._previousValueLength;\n this._previousValueLength = value.length;\n return insertion;\n }\n\n /** @private Opens suggestions on focus (immediate, bypassing debounce) when enabled. */\n private _onFocus(): void {\n if (this._isInert() || !this.openOnFocus()) return;\n this._runQuery(this._inputEl()?.value ?? '');\n }\n\n /** @private Closes the popup when focus genuinely leaves the field. */\n private _onBlur(): void {\n this._closePopup();\n }\n\n // ─── Keyboard ──────────────────────────────────────────────────────────────\n\n /** @private Activedescendant keyboard model — DOM focus stays in the input. */\n private _onKeydown(event: KeyboardEvent): void {\n if (this._isInert()) return;\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n if (this._open()) this._activeDescendant.move(1);\n else this._runQuery(this._inputEl()?.value ?? '');\n break;\n case 'ArrowUp':\n event.preventDefault();\n if (this._open()) this._activeDescendant.move(-1);\n else this._runQuery(this._inputEl()?.value ?? '');\n break;\n case 'Home':\n if (this._open() && this._results().length) {\n event.preventDefault();\n this._activeDescendant.first();\n }\n break;\n case 'End':\n if (this._open() && this._results().length) {\n event.preventDefault();\n this._activeDescendant.last();\n }\n break;\n case 'Enter': {\n const index = this._activeDescendant.index();\n const results = this._results();\n if (this._open() && index >= 0 && index < results.length) {\n event.preventDefault();\n this._commit(results[index]);\n }\n break;\n }\n case 'Escape': {\n // Revert any inline completion to just the typed text first, then apply\n // the existing close-then-clear semantics.\n const stripped = this._stripCompletion();\n if (this._open()) {\n event.preventDefault();\n this._closePopup();\n } else if (stripped) {\n // The strip already reverted the completed text on this keypress; do\n // not also clear the field.\n event.preventDefault();\n } else if (this._inputEl()?.value) {\n event.preventDefault();\n this._clearInput();\n }\n break;\n }\n default:\n break;\n }\n }\n\n // ─── Query resolution ───────────────────────────────────────────────────────\n\n /**\n * @private Resolves suggestions for `query` and opens / closes the popup.\n * Local sources (arrays / observables) filter synchronously; a remote source\n * (a `MlvDataSource` or an async {@link search}) shows the loading affordance\n * while keeping the previous results visible, and a newer query supersedes it.\n */\n private _runQuery(query: string, insertion = false): void {\n this._query.set(query);\n this._activeDescendant.reset();\n // Arm the inline completion only for inline-enabled insertions. Focus /\n // arrow-open (`insertion` false) and deletions never complete.\n this._completionArmed = insertion && this.inline();\n if (this._isInert()) return;\n\n if (query.length < this.minLength()) {\n this._results.set([]);\n this._closePopup();\n return;\n }\n\n if (this._adapter.mode() === 'local') {\n const options = resolveOptions(\n [...this._adapter.items()],\n this.toOption(),\n );\n this._results.set(filterOptions(options, query, this.matcher()));\n this._openPopup();\n if (this._completionArmed) {\n this._applyCompletion();\n this._completionArmed = false;\n }\n return;\n }\n\n // Remote: seed the panel from what the source already holds, open (the\n // spinner row sits over those stale results), then search. Seeding is what\n // makes a re-entry into an already-answered query repaint: the mirroring\n // effect only fires on an item-set *change*, so a `search` fn that memoises\n // and returns the identical array for a repeated query — or a data source\n // whose slice reference is unchanged — would otherwise leave the panel\n // empty after the min-length gate cleared `_results`. The adapter discards\n // superseded results; the effect renders new ones.\n this._results.set(\n this._adapter.items().map((item) => this.toOption()(item)),\n );\n this._openPopup();\n this._adapter.search(query);\n }\n\n // ─── Inline completion ─────────────────────────────────────────────────────\n\n /**\n * @private Offers an inline completion for the current results: if the top\n * suggestion's label is a genuine case-insensitive **prefix** of the typed\n * text and the caret sits at the end of the field, append the suggestion's\n * remainder (in its own casing) after the typed prefix (kept in the user's\n * casing) and leave that remainder **selected**. The completed value is pushed\n * through the same synthetic-`input` path a commit uses so `mlv-input` /\n * `ngModel` / a form control observe it, and the top item (index 0) becomes the\n * activedescendant-active row. No-op unless armed for an inline insertion with\n * an open panel; non-prefix (fuzzy) top matches are skipped silently.\n */\n private _applyCompletion(): void {\n if (!this.inline() || !this._open()) return;\n const el = this._inputEl();\n if (!el) return;\n const typed = el.value;\n const typedLength = typed.length;\n if (typedLength === 0) return;\n // Only complete when the caret is a plain cursor at the very end.\n if (el.selectionStart !== typedLength || el.selectionEnd !== typedLength) {\n return;\n }\n const top = this._results()[0];\n if (!top) return;\n const label = top.label;\n if (\n label.length <= typedLength ||\n !label.toLowerCase().startsWith(typed.toLowerCase())\n ) {\n return;\n }\n // Keep the user's typed casing; take the remainder from the suggestion.\n const completed = typed + label.slice(typedLength);\n el.value = completed;\n el.setSelectionRange(typedLength, completed.length);\n this._completionActive = true;\n // Highlight the completed top item so keyboard nav / Enter stay coherent.\n this._activeDescendant.first();\n // Propagate the completed value the same way a commit does (suppressing our\n // own re-filter of this synthetic event).\n this._suppressNextInput = true;\n el.dispatchEvent(new Event('input', { bubbles: true }));\n }\n\n /**\n * @private Strips an active inline completion back to the typed prefix (the\n * text before the selected remainder), restoring the caret to the end and\n * notifying value listeners. Returns whether a completion was stripped.\n */\n private _stripCompletion(): boolean {\n if (!this._completionActive) return false;\n const el = this._inputEl();\n if (!el) return false;\n const start = el.selectionStart ?? 0;\n const end = el.selectionEnd ?? 0;\n // The completion is the trailing selection [start, value.length].\n if (end !== el.value.length || start >= end) {\n this._completionActive = false;\n return false;\n }\n const typed = el.value.slice(0, start);\n el.value = typed;\n el.setSelectionRange(typed.length, typed.length);\n this._completionActive = false;\n this._query.set(typed);\n this._suppressNextInput = true;\n el.dispatchEvent(new Event('input', { bubbles: true }));\n return true;\n }\n\n // ─── Selection ───────────────────────────────────────────────────────────────\n\n /**\n * Panel (pointer) selection handler — subscribed to the `mlv-dropdown-panel`\n * `valueChange`. The panel is never seeded with a committed selection\n * (`selectedValues` is always `[]`), so any non-empty emit is a genuine pick —\n * no aria reconciliation guard is needed. Public so the overlay subscription\n * (and unit tests) can invoke it.\n */\n selectFromPanel(values: readonly T[]): void {\n if (!values.length) return;\n const picked = values[values.length - 1];\n const option = this._results().find((o) => o.value === picked);\n if (option) this._commit(option);\n }\n\n /** @private Commits a suggestion: writes its full label into the input (caret to end), emits, and closes. */\n private _commit(option: MlvSelectOption<T>): void {\n this._completionActive = false;\n const el = this._inputEl();\n if (el) {\n el.value = option.label;\n // Full value, caret at the end (clears any completion selection).\n el.setSelectionRange(option.label.length, option.label.length);\n // Notify mlv-input / ngModel listeners without re-triggering our own filter.\n this._suppressNextInput = true;\n el.dispatchEvent(new Event('input', { bubbles: true }));\n }\n this._query.set(option.label);\n this.selectedValue.set(option.value);\n this.optionSelected.emit(option);\n this._closePopup();\n }\n\n /** @private Clears the input text (second Escape) and notifies listeners. */\n private _clearInput(): void {\n const el = this._inputEl();\n if (!el) return;\n el.value = '';\n this._query.set('');\n el.dispatchEvent(new Event('input', { bubbles: true }));\n }\n\n // ─── Overlay ─────────────────────────────────────────────────────────────────\n\n /** @private Creates (if needed) and shows the suggestion overlay. */\n private _openPopup(): void {\n if (this._isInert()) return;\n const el = this._inputEl();\n if (!el) return;\n\n if (!this._overlayRef) {\n const positionStrategy = this._overlay\n .position()\n .flexibleConnectedTo(el)\n .withFlexibleDimensions(true)\n .withPush(false)\n .withPositions(AUTOCOMPLETE_POSITIONS);\n\n this._overlayRef = this._overlay.create({\n positionStrategy,\n scrollStrategy: this._overlay.scrollStrategies.reposition(),\n width: el.getBoundingClientRect().width,\n hasBackdrop: false,\n });\n\n const ref = this._overlayRef.attach(\n new ComponentPortal(MlvDropdownPanel, this._vcr, this._injector),\n ) as ComponentRef<MlvDropdownPanel<T>>;\n\n // Paint a floating surface on the bare panel. `mlv-combobox` / `mlv-select`\n // nest the panel in a styled `mlv-popup`; the directive's overlay hosts it\n // directly, so it would otherwise be transparent over the page. Applied on\n // the panel's own host element (which already carries `mlv-dropdown-panel`)\n // as the BEM modifier — dropdown-panel.scss owns the `--surface` styles.\n this._renderer.addClass(\n ref.location.nativeElement,\n 'mlv-dropdown-panel--surface',\n );\n\n // `valueChange` is an `output()` (OutputRef) — subscribe directly; the\n // subscription is torn down when the overlay (and panel) is disposed.\n ref.instance.valueChange.subscribe((values) =>\n this.selectFromPanel(values),\n );\n\n // Lazy paging: the panel's scroll sentinel asks for the next data-source\n // page. The adapter is a no-op unless another page exists and the previous\n // one has landed.\n ref.instance.loadMore.subscribe(() => this._adapter.loadMore());\n\n // Keep DOM focus in the input while pointing at options: a mousedown on the\n // panel must not blur the field (which would close before the click lands).\n this._renderer.listen(\n this._overlayRef.overlayElement,\n 'mousedown',\n (event: MouseEvent) => event.preventDefault(),\n );\n\n // Backdrop-less dismissal: close on a genuine outside click (the input /\n // host is treated as \"inside\" so caret repositioning does not dismiss).\n this._overlayRef\n .outsidePointerEvents()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((event) => {\n if (!this._hostEl.contains(event.target as Node)) this._closePopup();\n });\n\n this._panelRef.set(ref);\n }\n\n if (!this._open()) {\n this._open.set(true);\n this.openedChange.emit(true);\n }\n }\n\n /** @private Hides and disposes the overlay, resetting popup state. */\n private _closePopup(): void {\n const wasOpen = this._open();\n this._activeDescendant.reset();\n this._disposeOverlay();\n this._open.set(false);\n if (wasOpen) this.openedChange.emit(false);\n }\n\n /** @private Tears down the overlay + panel ref. */\n private _disposeOverlay(): void {\n this._panelRef.set(null);\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = null;\n }\n }\n\n /** @private Whether all interaction paths are suppressed. */\n private _isInert(): boolean {\n return this.disabled();\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"malva-ui-core-autocomplete.js","sourceRoot":"","sources":["../../../../../libs/core/autocomplete/src/malva-ui-core-autocomplete.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC","sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/core/avatar/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC","sourcesContent":["export * from './lib/avatar/avatar';\nexport * from './lib/color-from-text.pipe';\n"]}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, input, signal, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import { MlvFade } from '@malva-ui/cdk/utils';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Derives initials from a name string.
|
|
6
|
+
* Takes the first letter of each space-separated part, max 2.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* deriveInitials('John Doe') // 'JD'
|
|
10
|
+
* deriveInitials('Alice') // 'A'
|
|
11
|
+
* deriveInitials('John Michael Doe') // 'JD'
|
|
12
|
+
* deriveInitials('') // ''
|
|
13
|
+
*/
|
|
14
|
+
export function deriveInitials(name) {
|
|
15
|
+
if (!name || !name.trim()) {
|
|
16
|
+
return '';
|
|
17
|
+
}
|
|
18
|
+
const parts = name.trim().split(/\s+/);
|
|
19
|
+
return parts
|
|
20
|
+
.slice(0, 2)
|
|
21
|
+
.map((p) => p.charAt(0).toUpperCase())
|
|
22
|
+
.join('');
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Avatar component displaying a user or entity representation.
|
|
26
|
+
*
|
|
27
|
+
* Supports image URLs, text initials (explicit or derived from a name),
|
|
28
|
+
* arbitrary projected content (e.g. icons), and an optional label below.
|
|
29
|
+
*
|
|
30
|
+
* Content priority: `src` image > `initials`/`name` > `ng-content`.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```html
|
|
34
|
+
* <mlv-avatar name="John Doe" [color]="'John Doe' | mlvColorFromText" />
|
|
35
|
+
* <mlv-avatar src="https://example.com/avatar.jpg" label="John Doe" />
|
|
36
|
+
* <mlv-avatar size="xl" shape="square" initials="JD" color="#526ed3" />
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export class MlvAvatar {
|
|
40
|
+
/**
|
|
41
|
+
* The size variant of the avatar.
|
|
42
|
+
* Maps to predefined width/height and font-size values.
|
|
43
|
+
*/
|
|
44
|
+
size = input('m', /* @ts-ignore */
|
|
45
|
+
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
46
|
+
/**
|
|
47
|
+
* The shape of the avatar visual container.
|
|
48
|
+
* `circle` is fully rounded; `square` uses `--mlv-radius-2` (8px).
|
|
49
|
+
*/
|
|
50
|
+
shape = input('circle', /* @ts-ignore */
|
|
51
|
+
...(ngDevMode ? [{ debugName: "shape" }] : /* istanbul ignore next */ []));
|
|
52
|
+
/**
|
|
53
|
+
* Optional image URL. When provided, the avatar displays an image.
|
|
54
|
+
* A loading skeleton is shown while the image loads.
|
|
55
|
+
* On error, falls back to initials or projected content.
|
|
56
|
+
*/
|
|
57
|
+
src = input(null, /* @ts-ignore */
|
|
58
|
+
...(ngDevMode ? [{ debugName: "src" }] : /* istanbul ignore next */ []));
|
|
59
|
+
/**
|
|
60
|
+
* A name string from which initials are automatically derived.
|
|
61
|
+
* Takes the first character of each space-separated word, up to 2 characters.
|
|
62
|
+
* E.g. "John Doe" → "JD", "Alice" → "A", "John Michael Doe" → "JD".
|
|
63
|
+
* Ignored when `initials` is explicitly set.
|
|
64
|
+
*/
|
|
65
|
+
name = input('', /* @ts-ignore */
|
|
66
|
+
...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
|
|
67
|
+
/**
|
|
68
|
+
* Explicit initials string. When provided, overrides initials derived from `name`.
|
|
69
|
+
*/
|
|
70
|
+
initials = input('', /* @ts-ignore */
|
|
71
|
+
...(ngDevMode ? [{ debugName: "initials" }] : /* istanbul ignore next */ []));
|
|
72
|
+
/**
|
|
73
|
+
* CSS color value for the avatar background.
|
|
74
|
+
* Accepts any valid CSS color: hex, rgb, hsl, CSS custom property reference.
|
|
75
|
+
* Defaults to `var(--mlv-text-secondary)`.
|
|
76
|
+
*/
|
|
77
|
+
color = input('', /* @ts-ignore */
|
|
78
|
+
...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
|
|
79
|
+
/**
|
|
80
|
+
* Optional label text displayed below the avatar.
|
|
81
|
+
* Long text is gracefully faded at the edges using `MlvFade`.
|
|
82
|
+
*/
|
|
83
|
+
label = input('', /* @ts-ignore */
|
|
84
|
+
...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
|
|
85
|
+
/**
|
|
86
|
+
* @internal Whether the image has successfully loaded.
|
|
87
|
+
*/
|
|
88
|
+
_imageLoaded = signal(false, /* @ts-ignore */
|
|
89
|
+
...(ngDevMode ? [{ debugName: "_imageLoaded" }] : /* istanbul ignore next */ []));
|
|
90
|
+
/**
|
|
91
|
+
* @internal Whether the image encountered a load error.
|
|
92
|
+
*/
|
|
93
|
+
_imageError = signal(false, /* @ts-ignore */
|
|
94
|
+
...(ngDevMode ? [{ debugName: "_imageError" }] : /* istanbul ignore next */ []));
|
|
95
|
+
/**
|
|
96
|
+
* @internal Computed background color style value.
|
|
97
|
+
* Returns the `color` input if set, otherwise the default CSS variable.
|
|
98
|
+
*/
|
|
99
|
+
_backgroundColor = computed(() => {
|
|
100
|
+
const c = this.color();
|
|
101
|
+
return c ? c : 'var(--mlv-text-secondary)';
|
|
102
|
+
}, /* @ts-ignore */
|
|
103
|
+
...(ngDevMode ? [{ debugName: "_backgroundColor" }] : /* istanbul ignore next */ []));
|
|
104
|
+
/**
|
|
105
|
+
* @internal Resolved initials to display.
|
|
106
|
+
* Uses explicit `initials` input first, then derives from `name`.
|
|
107
|
+
*/
|
|
108
|
+
_resolvedInitials = computed(() => {
|
|
109
|
+
const explicit = this.initials();
|
|
110
|
+
if (explicit) {
|
|
111
|
+
return explicit;
|
|
112
|
+
}
|
|
113
|
+
return deriveInitials(this.name());
|
|
114
|
+
}, /* @ts-ignore */
|
|
115
|
+
...(ngDevMode ? [{ debugName: "_resolvedInitials" }] : /* istanbul ignore next */ []));
|
|
116
|
+
/**
|
|
117
|
+
* @internal Accessible name for the avatar as a whole.
|
|
118
|
+
* Prefers the display `name`, falling back to the `label`. Returns `null`
|
|
119
|
+
* when neither is set so the host stays role-less (see host bindings).
|
|
120
|
+
*/
|
|
121
|
+
_accessibleName = computed(() => this.name().trim() || this.label().trim() || null, /* @ts-ignore */
|
|
122
|
+
...(ngDevMode ? [{ debugName: "_accessibleName" }] : /* istanbul ignore next */ []));
|
|
123
|
+
/**
|
|
124
|
+
* @internal Whether to show the image element (src provided and no error).
|
|
125
|
+
*/
|
|
126
|
+
_showImage = computed(() => {
|
|
127
|
+
return !!this.src() && !this._imageError();
|
|
128
|
+
}, /* @ts-ignore */
|
|
129
|
+
...(ngDevMode ? [{ debugName: "_showImage" }] : /* istanbul ignore next */ []));
|
|
130
|
+
/**
|
|
131
|
+
* @internal Whether to show the loading skeleton.
|
|
132
|
+
*/
|
|
133
|
+
_showSkeleton = computed(() => {
|
|
134
|
+
return !!this.src() && !this._imageLoaded() && !this._imageError();
|
|
135
|
+
}, /* @ts-ignore */
|
|
136
|
+
...(ngDevMode ? [{ debugName: "_showSkeleton" }] : /* istanbul ignore next */ []));
|
|
137
|
+
/**
|
|
138
|
+
* @internal Whether to show initials (no valid image, and initials are available).
|
|
139
|
+
*/
|
|
140
|
+
_showInitials = computed(() => {
|
|
141
|
+
return !this._showImage() && !!this._resolvedInitials();
|
|
142
|
+
}, /* @ts-ignore */
|
|
143
|
+
...(ngDevMode ? [{ debugName: "_showInitials" }] : /* istanbul ignore next */ []));
|
|
144
|
+
/**
|
|
145
|
+
* @internal Whether to show projected ng-content (no valid image and no initials).
|
|
146
|
+
*/
|
|
147
|
+
_showContent = computed(() => {
|
|
148
|
+
return !this._showImage() && !this._resolvedInitials();
|
|
149
|
+
}, /* @ts-ignore */
|
|
150
|
+
...(ngDevMode ? [{ debugName: "_showContent" }] : /* istanbul ignore next */ []));
|
|
151
|
+
/**
|
|
152
|
+
* @internal Label words split for individual MlvFade wrapping.
|
|
153
|
+
*/
|
|
154
|
+
_labelWords = computed(() => {
|
|
155
|
+
const l = this.label();
|
|
156
|
+
if (!l || !l.trim()) {
|
|
157
|
+
return [];
|
|
158
|
+
}
|
|
159
|
+
return l.trim().split(/\s+/);
|
|
160
|
+
}, /* @ts-ignore */
|
|
161
|
+
...(ngDevMode ? [{ debugName: "_labelWords" }] : /* istanbul ignore next */ []));
|
|
162
|
+
/**
|
|
163
|
+
* @internal Handles the image load event.
|
|
164
|
+
*/
|
|
165
|
+
_onImageLoad() {
|
|
166
|
+
this._imageLoaded.set(true);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* @internal Handles the image error event.
|
|
170
|
+
*/
|
|
171
|
+
_onImageError() {
|
|
172
|
+
this._imageError.set(true);
|
|
173
|
+
}
|
|
174
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvAvatar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
175
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: MlvAvatar, isStandalone: true, selector: "mlv-avatar", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, shape: { classPropertyName: "shape", publicName: "shape", isSignal: true, isRequired: false, transformFunction: null }, src: { classPropertyName: "src", publicName: "src", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, initials: { classPropertyName: "initials", publicName: "initials", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "\"mlv-avatar--\" + size()", "class.mlv-avatar--circle": "shape() === \"circle\"", "class.mlv-avatar--square": "shape() === \"square\"", "attr.role": "_accessibleName() ? \"img\" : null", "attr.aria-label": "_accessibleName()" }, classAttribute: "mlv-avatar" }, ngImport: i0, template: "<div class=\"mlv-avatar__visual\" [style.background-color]=\"_backgroundColor()\">\n @if (_showSkeleton()) {\n <div class=\"mlv-avatar__skeleton\" aria-hidden=\"true\"></div>\n } @if (_showImage()) {\n <img\n class=\"mlv-avatar__image\"\n [src]=\"src()\"\n [class.mlv-avatar__image--loaded]=\"_imageLoaded()\"\n (load)=\"_onImageLoad()\"\n (error)=\"_onImageError()\"\n alt=\"\"\n aria-hidden=\"true\"\n />\n } @if (_showInitials()) {\n <span class=\"mlv-avatar__initials\" aria-hidden=\"true\"\n >{{ _resolvedInitials() }}</span\n >\n } @if (_showContent()) {\n <span class=\"mlv-avatar__content\">\n <ng-content />\n </span>\n }\n</div>\n\n@if (_labelWords().length > 0) {\n<div class=\"mlv-avatar__label\">\n @for (word of _labelWords(); track $index) {\n <span\n class=\"mlv-avatar__label-word\"\n [mlvFade]=\"'horizontal'\"\n mlvFadeSize=\"1.5em\"\n >{{ word }}</span\n >\n }\n</div>\n}\n", styles: [".mlv-avatar{display:inline-flex;flex-direction:column;align-items:center;gap:var(--mlv-spacing-2, .5rem)}.mlv-avatar--xs{--mlv-avatar-size: 1.5rem;--mlv-avatar-font: .625rem}.mlv-avatar--s{--mlv-avatar-size: 2rem;--mlv-avatar-font: .75rem}.mlv-avatar--m{--mlv-avatar-size: 2.5rem;--mlv-avatar-font: .875rem}.mlv-avatar--l{--mlv-avatar-size: 3.5rem;--mlv-avatar-font: 1rem}.mlv-avatar--xl{--mlv-avatar-size: 5rem;--mlv-avatar-font: 1.25rem}.mlv-avatar--xxl{--mlv-avatar-size: 6rem;--mlv-avatar-font: 1.5rem}.mlv-avatar__visual{position:relative;display:flex;align-items:center;justify-content:center;width:var(--mlv-avatar-size, 2.5rem);height:var(--mlv-avatar-size, 2.5rem);flex-shrink:0;overflow:hidden;background-color:var(--mlv-background-neutral-1);color:var(--mlv-text-primary);-webkit-user-select:none;user-select:none}.mlv-avatar--circle .mlv-avatar__visual{border-radius:50%}.mlv-avatar--square .mlv-avatar__visual{border-radius:var(--mlv-radius-m)}.mlv-avatar__image{width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity var(--mlv-duration-normal, .2s) var(--mlv-ease-default, ease)}.mlv-avatar__image--loaded{opacity:1}.mlv-avatar__initials{font-size:var(--mlv-avatar-font, .875rem);font-weight:600;line-height:1;letter-spacing:var(--mlv-letter-spacing-wide, .025em);color:var(--mlv-palette-neutral-800);opacity:.8;text-transform:uppercase}.mlv-avatar__content{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:inherit}.mlv-avatar__skeleton{position:absolute;inset:0;background:linear-gradient(90deg,var(--mlv-background-sunken) 25%,var(--mlv-background-base) 50%,var(--mlv-background-sunken) 75%);background-size:200% 100%;animation:mlv-avatar-shimmer 1.4s ease-in-out infinite;border-radius:inherit}.mlv-avatar__label{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:center;gap:.125rem;max-width:var(--mlv-avatar-size);width:100%;overflow:hidden}.mlv-avatar__label-word{display:block;font-size:var(--mlv-font-size-s);font-weight:500;color:var(--mlv-text-primary);white-space:nowrap;flex-shrink:1;min-width:0;max-width:100%}@media(prefers-reduced-motion:reduce){.mlv-avatar,.mlv-avatar *,.mlv-avatar:before,.mlv-avatar:after,[class^=mlv-avatar__],[class*=\" mlv-avatar__\"],[class^=mlv-avatar--],[class*=\" mlv-avatar--\"]{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:var(--mlv-duration-instant)!important}}@keyframes mlv-avatar-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}\n"], dependencies: [{ kind: "component", type: MlvFade, selector: "[mlvFade]", inputs: ["mlvFadeHeight", "mlvFadeSize", "mlvFadeOffset", "mlvFade"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
176
|
+
}
|
|
177
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvAvatar, decorators: [{
|
|
178
|
+
type: Component,
|
|
179
|
+
args: [{ selector: 'mlv-avatar', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [MlvFade], host: {
|
|
180
|
+
class: 'mlv-avatar',
|
|
181
|
+
'[class]': '"mlv-avatar--" + size()',
|
|
182
|
+
'[class.mlv-avatar--circle]': 'shape() === "circle"',
|
|
183
|
+
'[class.mlv-avatar--square]': 'shape() === "square"',
|
|
184
|
+
// Expose the avatar as a single labelled image to assistive tech when it
|
|
185
|
+
// represents a named entity. Without a name there is nothing to label, so
|
|
186
|
+
// the role is omitted (the visible initials/content speak for themselves)
|
|
187
|
+
// rather than emitting a nameless `role="img"`.
|
|
188
|
+
'[attr.role]': '_accessibleName() ? "img" : null',
|
|
189
|
+
'[attr.aria-label]': '_accessibleName()',
|
|
190
|
+
}, template: "<div class=\"mlv-avatar__visual\" [style.background-color]=\"_backgroundColor()\">\n @if (_showSkeleton()) {\n <div class=\"mlv-avatar__skeleton\" aria-hidden=\"true\"></div>\n } @if (_showImage()) {\n <img\n class=\"mlv-avatar__image\"\n [src]=\"src()\"\n [class.mlv-avatar__image--loaded]=\"_imageLoaded()\"\n (load)=\"_onImageLoad()\"\n (error)=\"_onImageError()\"\n alt=\"\"\n aria-hidden=\"true\"\n />\n } @if (_showInitials()) {\n <span class=\"mlv-avatar__initials\" aria-hidden=\"true\"\n >{{ _resolvedInitials() }}</span\n >\n } @if (_showContent()) {\n <span class=\"mlv-avatar__content\">\n <ng-content />\n </span>\n }\n</div>\n\n@if (_labelWords().length > 0) {\n<div class=\"mlv-avatar__label\">\n @for (word of _labelWords(); track $index) {\n <span\n class=\"mlv-avatar__label-word\"\n [mlvFade]=\"'horizontal'\"\n mlvFadeSize=\"1.5em\"\n >{{ word }}</span\n >\n }\n</div>\n}\n", styles: [".mlv-avatar{display:inline-flex;flex-direction:column;align-items:center;gap:var(--mlv-spacing-2, .5rem)}.mlv-avatar--xs{--mlv-avatar-size: 1.5rem;--mlv-avatar-font: .625rem}.mlv-avatar--s{--mlv-avatar-size: 2rem;--mlv-avatar-font: .75rem}.mlv-avatar--m{--mlv-avatar-size: 2.5rem;--mlv-avatar-font: .875rem}.mlv-avatar--l{--mlv-avatar-size: 3.5rem;--mlv-avatar-font: 1rem}.mlv-avatar--xl{--mlv-avatar-size: 5rem;--mlv-avatar-font: 1.25rem}.mlv-avatar--xxl{--mlv-avatar-size: 6rem;--mlv-avatar-font: 1.5rem}.mlv-avatar__visual{position:relative;display:flex;align-items:center;justify-content:center;width:var(--mlv-avatar-size, 2.5rem);height:var(--mlv-avatar-size, 2.5rem);flex-shrink:0;overflow:hidden;background-color:var(--mlv-background-neutral-1);color:var(--mlv-text-primary);-webkit-user-select:none;user-select:none}.mlv-avatar--circle .mlv-avatar__visual{border-radius:50%}.mlv-avatar--square .mlv-avatar__visual{border-radius:var(--mlv-radius-m)}.mlv-avatar__image{width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity var(--mlv-duration-normal, .2s) var(--mlv-ease-default, ease)}.mlv-avatar__image--loaded{opacity:1}.mlv-avatar__initials{font-size:var(--mlv-avatar-font, .875rem);font-weight:600;line-height:1;letter-spacing:var(--mlv-letter-spacing-wide, .025em);color:var(--mlv-palette-neutral-800);opacity:.8;text-transform:uppercase}.mlv-avatar__content{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:inherit}.mlv-avatar__skeleton{position:absolute;inset:0;background:linear-gradient(90deg,var(--mlv-background-sunken) 25%,var(--mlv-background-base) 50%,var(--mlv-background-sunken) 75%);background-size:200% 100%;animation:mlv-avatar-shimmer 1.4s ease-in-out infinite;border-radius:inherit}.mlv-avatar__label{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:center;gap:.125rem;max-width:var(--mlv-avatar-size);width:100%;overflow:hidden}.mlv-avatar__label-word{display:block;font-size:var(--mlv-font-size-s);font-weight:500;color:var(--mlv-text-primary);white-space:nowrap;flex-shrink:1;min-width:0;max-width:100%}@media(prefers-reduced-motion:reduce){.mlv-avatar,.mlv-avatar *,.mlv-avatar:before,.mlv-avatar:after,[class^=mlv-avatar__],[class*=\" mlv-avatar__\"],[class^=mlv-avatar--],[class*=\" mlv-avatar--\"]{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:var(--mlv-duration-instant)!important}}@keyframes mlv-avatar-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}\n"] }]
|
|
191
|
+
}], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], shape: [{ type: i0.Input, args: [{ isSignal: true, alias: "shape", required: false }] }], src: [{ type: i0.Input, args: [{ isSignal: true, alias: "src", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], initials: [{ type: i0.Input, args: [{ isSignal: true, alias: "initials", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }] } });
|
|
192
|
+
//# sourceMappingURL=avatar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar.js","sourceRoot":"","sources":["../../../../../../../libs/core/avatar/src/lib/avatar/avatar.ts","../../../../../../../libs/core/avatar/src/lib/avatar/avatar.html"],"names":[],"mappings":"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","sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MlvFade } from '@malva-ui/cdk/utils';\n\n/** Available size variants for the avatar component. */\nexport type MlvAvatarSize = 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl';\n\n/** Available shape variants for the avatar component. */\nexport type MlvAvatarShape = 'circle' | 'square';\n\n/**\n * Derives initials from a name string.\n * Takes the first letter of each space-separated part, max 2.\n *\n * @example\n * deriveInitials('John Doe') // 'JD'\n * deriveInitials('Alice') // 'A'\n * deriveInitials('John Michael Doe') // 'JD'\n * deriveInitials('') // ''\n */\nexport function deriveInitials(name: string): string {\n if (!name || !name.trim()) {\n return '';\n }\n const parts = name.trim().split(/\\s+/);\n return parts\n .slice(0, 2)\n .map((p) => p.charAt(0).toUpperCase())\n .join('');\n}\n\n/**\n * Avatar component displaying a user or entity representation.\n *\n * Supports image URLs, text initials (explicit or derived from a name),\n * arbitrary projected content (e.g. icons), and an optional label below.\n *\n * Content priority: `src` image > `initials`/`name` > `ng-content`.\n *\n * @example\n * ```html\n * <mlv-avatar name=\"John Doe\" [color]=\"'John Doe' | mlvColorFromText\" />\n * <mlv-avatar src=\"https://example.com/avatar.jpg\" label=\"John Doe\" />\n * <mlv-avatar size=\"xl\" shape=\"square\" initials=\"JD\" color=\"#526ed3\" />\n * ```\n */\n@Component({\n selector: 'mlv-avatar',\n templateUrl: './avatar.html',\n styleUrl: './avatar.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MlvFade],\n host: {\n class: 'mlv-avatar',\n '[class]': '\"mlv-avatar--\" + size()',\n '[class.mlv-avatar--circle]': 'shape() === \"circle\"',\n '[class.mlv-avatar--square]': 'shape() === \"square\"',\n // Expose the avatar as a single labelled image to assistive tech when it\n // represents a named entity. Without a name there is nothing to label, so\n // the role is omitted (the visible initials/content speak for themselves)\n // rather than emitting a nameless `role=\"img\"`.\n '[attr.role]': '_accessibleName() ? \"img\" : null',\n '[attr.aria-label]': '_accessibleName()',\n },\n})\nexport class MlvAvatar {\n /**\n * The size variant of the avatar.\n * Maps to predefined width/height and font-size values.\n */\n readonly size = input<MlvAvatarSize>('m');\n\n /**\n * The shape of the avatar visual container.\n * `circle` is fully rounded; `square` uses `--mlv-radius-2` (8px).\n */\n readonly shape = input<MlvAvatarShape>('circle');\n\n /**\n * Optional image URL. When provided, the avatar displays an image.\n * A loading skeleton is shown while the image loads.\n * On error, falls back to initials or projected content.\n */\n readonly src = input<string | null>(null);\n\n /**\n * A name string from which initials are automatically derived.\n * Takes the first character of each space-separated word, up to 2 characters.\n * E.g. \"John Doe\" → \"JD\", \"Alice\" → \"A\", \"John Michael Doe\" → \"JD\".\n * Ignored when `initials` is explicitly set.\n */\n readonly name = input<string>('');\n\n /**\n * Explicit initials string. When provided, overrides initials derived from `name`.\n */\n readonly initials = input<string>('');\n\n /**\n * CSS color value for the avatar background.\n * Accepts any valid CSS color: hex, rgb, hsl, CSS custom property reference.\n * Defaults to `var(--mlv-text-secondary)`.\n */\n readonly color = input<string>('');\n\n /**\n * Optional label text displayed below the avatar.\n * Long text is gracefully faded at the edges using `MlvFade`.\n */\n readonly label = input<string>('');\n\n /**\n * @internal Whether the image has successfully loaded.\n */\n protected readonly _imageLoaded = signal(false);\n\n /**\n * @internal Whether the image encountered a load error.\n */\n protected readonly _imageError = signal(false);\n\n /**\n * @internal Computed background color style value.\n * Returns the `color` input if set, otherwise the default CSS variable.\n */\n protected readonly _backgroundColor = computed(() => {\n const c = this.color();\n return c ? c : 'var(--mlv-text-secondary)';\n });\n\n /**\n * @internal Resolved initials to display.\n * Uses explicit `initials` input first, then derives from `name`.\n */\n protected readonly _resolvedInitials = computed(() => {\n const explicit = this.initials();\n if (explicit) {\n return explicit;\n }\n return deriveInitials(this.name());\n });\n\n /**\n * @internal Accessible name for the avatar as a whole.\n * Prefers the display `name`, falling back to the `label`. Returns `null`\n * when neither is set so the host stays role-less (see host bindings).\n */\n protected readonly _accessibleName = computed(\n () => this.name().trim() || this.label().trim() || null,\n );\n\n /**\n * @internal Whether to show the image element (src provided and no error).\n */\n protected readonly _showImage = computed(() => {\n return !!this.src() && !this._imageError();\n });\n\n /**\n * @internal Whether to show the loading skeleton.\n */\n protected readonly _showSkeleton = computed(() => {\n return !!this.src() && !this._imageLoaded() && !this._imageError();\n });\n\n /**\n * @internal Whether to show initials (no valid image, and initials are available).\n */\n protected readonly _showInitials = computed(() => {\n return !this._showImage() && !!this._resolvedInitials();\n });\n\n /**\n * @internal Whether to show projected ng-content (no valid image and no initials).\n */\n protected readonly _showContent = computed(() => {\n return !this._showImage() && !this._resolvedInitials();\n });\n\n /**\n * @internal Label words split for individual MlvFade wrapping.\n */\n protected readonly _labelWords = computed(() => {\n const l = this.label();\n if (!l || !l.trim()) {\n return [];\n }\n return l.trim().split(/\\s+/);\n });\n\n /**\n * @internal Handles the image load event.\n */\n protected _onImageLoad(): void {\n this._imageLoaded.set(true);\n }\n\n /**\n * @internal Handles the image error event.\n */\n protected _onImageError(): void {\n this._imageError.set(true);\n }\n}\n","<div class=\"mlv-avatar__visual\" [style.background-color]=\"_backgroundColor()\">\n @if (_showSkeleton()) {\n <div class=\"mlv-avatar__skeleton\" aria-hidden=\"true\"></div>\n } @if (_showImage()) {\n <img\n class=\"mlv-avatar__image\"\n [src]=\"src()\"\n [class.mlv-avatar__image--loaded]=\"_imageLoaded()\"\n (load)=\"_onImageLoad()\"\n (error)=\"_onImageError()\"\n alt=\"\"\n aria-hidden=\"true\"\n />\n } @if (_showInitials()) {\n <span class=\"mlv-avatar__initials\" aria-hidden=\"true\"\n >{{ _resolvedInitials() }}</span\n >\n } @if (_showContent()) {\n <span class=\"mlv-avatar__content\">\n <ng-content />\n </span>\n }\n</div>\n\n@if (_labelWords().length > 0) {\n<div class=\"mlv-avatar__label\">\n @for (word of _labelWords(); track $index) {\n <span\n class=\"mlv-avatar__label-word\"\n [mlvFade]=\"'horizontal'\"\n mlvFadeSize=\"1.5em\"\n >{{ word }}</span\n >\n }\n</div>\n}\n"]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Converts a string to an HSL CSS color by hashing the string characters into a hue (0–360).
|
|
5
|
+
* The saturation and lightness are fixed to produce pleasant, accessible colors.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* {{ 'John Doe' | mlvColorFromText }} // 'hsl(217, 60%, 45%)'
|
|
9
|
+
* {{ 'Alice' | mlvColorFromText }} // 'hsl(74, 60%, 45%)'
|
|
10
|
+
*/
|
|
11
|
+
export class MlvColorFromTextPipe {
|
|
12
|
+
/**
|
|
13
|
+
* Transforms a string into a deterministic HSL color value.
|
|
14
|
+
*
|
|
15
|
+
* @param value - The string to convert. Returns a default color for empty strings.
|
|
16
|
+
* @returns A CSS `hsl(...)` string.
|
|
17
|
+
*/
|
|
18
|
+
transform(value) {
|
|
19
|
+
if (!value) {
|
|
20
|
+
return 'hsl(210, 60%, 45%)';
|
|
21
|
+
}
|
|
22
|
+
let hash = 0;
|
|
23
|
+
for (let i = 0; i < value.length; i++) {
|
|
24
|
+
hash = value.charCodeAt(i) + ((hash << 5) - hash);
|
|
25
|
+
hash |= 0; // Convert to 32-bit integer
|
|
26
|
+
}
|
|
27
|
+
const hue = Math.abs(hash) % 360;
|
|
28
|
+
const saturation = 60 + (hash % 5);
|
|
29
|
+
const lightness = 80 + (hash % 5);
|
|
30
|
+
return `hsl(${hue},${saturation}%,${lightness}%)`;
|
|
31
|
+
}
|
|
32
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvColorFromTextPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
33
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: MlvColorFromTextPipe, isStandalone: true, name: "mlvColorFromText" });
|
|
34
|
+
}
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvColorFromTextPipe, decorators: [{
|
|
36
|
+
type: Pipe,
|
|
37
|
+
args: [{ name: 'mlvColorFromText' }]
|
|
38
|
+
}] });
|
|
39
|
+
//# sourceMappingURL=color-from-text.pipe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-from-text.pipe.js","sourceRoot":"","sources":["../../../../../../libs/core/avatar/src/lib/color-from-text.pipe.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;;AAErC;;;;;;;GAOG;AAEH,MAAM,OAAO,oBAAoB;IAC/B;;;;;OAKG;IACH,SAAS,CAAC,KAAgC;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,oBAAoB,CAAC;QAC9B,CAAC;QACD,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAClD,IAAI,IAAI,CAAC,CAAC,CAAC,4BAA4B;QACzC,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QACjC,MAAM,UAAU,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAClC,OAAO,OAAO,GAAG,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC;IACpD,CAAC;uGApBU,oBAAoB;qGAApB,oBAAoB;;2FAApB,oBAAoB;kBADhC,IAAI;mBAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE","sourcesContent":["import type { PipeTransform } from '@angular/core';\nimport { Pipe } from '@angular/core';\n\n/**\n * Converts a string to an HSL CSS color by hashing the string characters into a hue (0–360).\n * The saturation and lightness are fixed to produce pleasant, accessible colors.\n *\n * @example\n * {{ 'John Doe' | mlvColorFromText }} // 'hsl(217, 60%, 45%)'\n * {{ 'Alice' | mlvColorFromText }} // 'hsl(74, 60%, 45%)'\n */\n@Pipe({ name: 'mlvColorFromText' })\nexport class MlvColorFromTextPipe implements PipeTransform {\n /**\n * Transforms a string into a deterministic HSL color value.\n *\n * @param value - The string to convert. Returns a default color for empty strings.\n * @returns A CSS `hsl(...)` string.\n */\n transform(value: string | null | undefined): string {\n if (!value) {\n return 'hsl(210, 60%, 45%)';\n }\n let hash = 0;\n for (let i = 0; i < value.length; i++) {\n hash = value.charCodeAt(i) + ((hash << 5) - hash);\n hash |= 0; // Convert to 32-bit integer\n }\n const hue = Math.abs(hash) % 360;\n const saturation = 60 + (hash % 5);\n const lightness = 80 + (hash % 5);\n return `hsl(${hue},${saturation}%,${lightness}%)`;\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"malva-ui-core-avatar.js","sourceRoot":"","sources":["../../../../../libs/core/avatar/src/malva-ui-core-avatar.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC","sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/core/avatar-group/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC","sourcesContent":["export * from './lib/avatar-group/avatar-group';\n"]}
|