@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,388 @@
|
|
|
1
|
+
import { afterNextRender, ChangeDetectionStrategy, Component, computed, DestroyRef, inject, input, Renderer2, signal, ViewEncapsulation, viewChild, } from '@angular/core';
|
|
2
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
3
|
+
import { InteractivityChecker } from '@angular/cdk/a11y';
|
|
4
|
+
import { MLV_SCROLLBAR_I18N } from '@malva-ui/i18n';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
/**
|
|
7
|
+
* Elements that can plausibly be tab stops. A cheap prefilter — every hit is
|
|
8
|
+
* still confirmed with the CDK's `InteractivityChecker`.
|
|
9
|
+
*/
|
|
10
|
+
const FOCUSABLE_CANDIDATE_SELECTOR = [
|
|
11
|
+
'a[href]',
|
|
12
|
+
'area[href]',
|
|
13
|
+
'button',
|
|
14
|
+
'input',
|
|
15
|
+
'select',
|
|
16
|
+
'textarea',
|
|
17
|
+
'iframe',
|
|
18
|
+
'object',
|
|
19
|
+
'embed',
|
|
20
|
+
'audio[controls]',
|
|
21
|
+
'video[controls]',
|
|
22
|
+
'details',
|
|
23
|
+
'summary',
|
|
24
|
+
'[contenteditable]',
|
|
25
|
+
'[tabindex]',
|
|
26
|
+
].join(',');
|
|
27
|
+
/**
|
|
28
|
+
* Custom scrollbar component that hides the native browser scrollbar and
|
|
29
|
+
* renders a minimalistic custom one in accordance with the Malva UI theme.
|
|
30
|
+
*
|
|
31
|
+
* Wrap any scrollable content in `<mlv-scrollbar>`. The component must have
|
|
32
|
+
* a defined height (set via CSS or via flex/grid sizing from a parent).
|
|
33
|
+
* Native scroll behaviour is **never intercepted** — the viewport scrolls
|
|
34
|
+
* exactly as if the component were not present. The custom thumb is a pure
|
|
35
|
+
* visual overlay that stays in sync with the viewport's scroll position.
|
|
36
|
+
*
|
|
37
|
+
* @example Vertical (default)
|
|
38
|
+
* ```html
|
|
39
|
+
* <mlv-scrollbar style="height: 12rem">
|
|
40
|
+
* <p>Long content…</p>
|
|
41
|
+
* </mlv-scrollbar>
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* @example Horizontal
|
|
45
|
+
* ```html
|
|
46
|
+
* <mlv-scrollbar orientation="horizontal" style="width: 20rem">
|
|
47
|
+
* <div style="width: 60rem">Wide content…</div>
|
|
48
|
+
* </mlv-scrollbar>
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* @example Both axes
|
|
52
|
+
* ```html
|
|
53
|
+
* <mlv-scrollbar orientation="both" style="height: 12rem; width: 20rem">
|
|
54
|
+
* <div style="height: 30rem; width: 60rem">…</div>
|
|
55
|
+
* </mlv-scrollbar>
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export class MlvScrollbar {
|
|
59
|
+
/**
|
|
60
|
+
* Which scroll axes to show the custom scrollbar on.
|
|
61
|
+
* Default: `'vertical'`.
|
|
62
|
+
*/
|
|
63
|
+
orientation = input('vertical', /* @ts-ignore */
|
|
64
|
+
...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
|
|
65
|
+
/**
|
|
66
|
+
* CSS length value for the scrollbar track zone width (vertical) or height
|
|
67
|
+
* (horizontal). Maps to the `--mlv-sb-size` custom property on the host.
|
|
68
|
+
* The visible thumb is narrower due to the cross-axis inset (`--mlv-sb-inset`).
|
|
69
|
+
* Default: `'0.75rem'` (12 px track zone → 4 px visible thumb after 4 px inset each side).
|
|
70
|
+
*/
|
|
71
|
+
scrollbarSize = input('0.75rem', /* @ts-ignore */
|
|
72
|
+
...(ngDevMode ? [{ debugName: "scrollbarSize" }] : /* istanbul ignore next */ []));
|
|
73
|
+
/**
|
|
74
|
+
* When `true`, hides the custom scrollbar tracks and restores the browser's
|
|
75
|
+
* native scrollbar. Supports attribute syntax: `<mlv-scrollbar disabled>`.
|
|
76
|
+
*/
|
|
77
|
+
disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
|
|
78
|
+
/**
|
|
79
|
+
* Custom aria-label override for the scrollable viewport region.
|
|
80
|
+
* Falls back to the i18n-provided label.
|
|
81
|
+
* Override when the component wraps content with a more specific purpose,
|
|
82
|
+
* e.g. `ariaLabel="Chat messages"`.
|
|
83
|
+
*/
|
|
84
|
+
ariaLabel = input(undefined, /* @ts-ignore */
|
|
85
|
+
...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
|
|
86
|
+
/**
|
|
87
|
+
* Tab index applied to the native scroll viewport.
|
|
88
|
+
*
|
|
89
|
+
* The default `0` means **auto**: the viewport is a tab stop only while its
|
|
90
|
+
* content holds nothing tabbable. A text-only region stays reachable so
|
|
91
|
+
* keyboard users can scroll it (WCAG 2.1.1), but a region full of form
|
|
92
|
+
* controls does not add a redundant stop in front of them — which is what
|
|
93
|
+
* put a focus ring around an entire dialog body on open.
|
|
94
|
+
*
|
|
95
|
+
* Any non-zero value is applied verbatim; composite widgets that manage
|
|
96
|
+
* their own focus pass `-1`.
|
|
97
|
+
*/
|
|
98
|
+
viewportTabIndex = input(0, /* @ts-ignore */
|
|
99
|
+
...(ngDevMode ? [{ debugName: "viewportTabIndex" }] : /* istanbul ignore next */ []));
|
|
100
|
+
/** @protected The component's i18n strings signal. */
|
|
101
|
+
_i18n = inject(MLV_SCROLLBAR_I18N, { optional: true });
|
|
102
|
+
/** @protected Resolved aria-label: explicit input takes precedence over i18n default. */
|
|
103
|
+
_resolvedAriaLabel = computed(() => this.ariaLabel() ??
|
|
104
|
+
this._i18n?.().scrollableRegion ??
|
|
105
|
+
'Scrollable region', /* @ts-ignore */
|
|
106
|
+
...(ngDevMode ? [{ debugName: "_resolvedAriaLabel" }] : /* istanbul ignore next */ []));
|
|
107
|
+
/**
|
|
108
|
+
* @protected Whether the scrolled content currently holds a tabbable element.
|
|
109
|
+
* Recomputed after render and on every content mutation.
|
|
110
|
+
*/
|
|
111
|
+
_hasTabbableContent = signal(false, /* @ts-ignore */
|
|
112
|
+
...(ngDevMode ? [{ debugName: "_hasTabbableContent" }] : /* istanbul ignore next */ []));
|
|
113
|
+
/**
|
|
114
|
+
* @protected Tab index actually written to the viewport.
|
|
115
|
+
*
|
|
116
|
+
* `0` is treated as "auto" and collapses to `-1` once the content itself is
|
|
117
|
+
* keyboard-reachable; every other value passes through unchanged.
|
|
118
|
+
*/
|
|
119
|
+
_effectiveViewportTabIndex = computed(() => {
|
|
120
|
+
const requested = this.viewportTabIndex();
|
|
121
|
+
if (requested !== 0) {
|
|
122
|
+
return requested;
|
|
123
|
+
}
|
|
124
|
+
return this._hasTabbableContent() ? -1 : 0;
|
|
125
|
+
}, /* @ts-ignore */
|
|
126
|
+
...(ngDevMode ? [{ debugName: "_effectiveViewportTabIndex" }] : /* istanbul ignore next */ []));
|
|
127
|
+
/** @protected Whether the vertical track should be rendered. */
|
|
128
|
+
_showVertical = computed(() => !this.disabled() &&
|
|
129
|
+
(this.orientation() === 'vertical' || this.orientation() === 'both'), /* @ts-ignore */
|
|
130
|
+
...(ngDevMode ? [{ debugName: "_showVertical" }] : /* istanbul ignore next */ []));
|
|
131
|
+
/** @protected Whether the horizontal track should be rendered. */
|
|
132
|
+
_showHorizontal = computed(() => !this.disabled() &&
|
|
133
|
+
(this.orientation() === 'horizontal' || this.orientation() === 'both'), /* @ts-ignore */
|
|
134
|
+
...(ngDevMode ? [{ debugName: "_showHorizontal" }] : /* istanbul ignore next */ []));
|
|
135
|
+
/** @protected True when scrollHeight > clientHeight (vertical overflow present). */
|
|
136
|
+
_hasVerticalOverflow = signal(false, /* @ts-ignore */
|
|
137
|
+
...(ngDevMode ? [{ debugName: "_hasVerticalOverflow" }] : /* istanbul ignore next */ []));
|
|
138
|
+
/** @protected True when scrollWidth > clientWidth (horizontal overflow present). */
|
|
139
|
+
_hasHorizontalOverflow = signal(false, /* @ts-ignore */
|
|
140
|
+
...(ngDevMode ? [{ debugName: "_hasHorizontalOverflow" }] : /* istanbul ignore next */ []));
|
|
141
|
+
/** @protected Vertical thumb top offset in pixels (set as inline style). */
|
|
142
|
+
_thumbTop = signal(0, /* @ts-ignore */
|
|
143
|
+
...(ngDevMode ? [{ debugName: "_thumbTop" }] : /* istanbul ignore next */ []));
|
|
144
|
+
/** @protected Vertical thumb height in pixels (set as inline style). */
|
|
145
|
+
_thumbHeight = signal(0, /* @ts-ignore */
|
|
146
|
+
...(ngDevMode ? [{ debugName: "_thumbHeight" }] : /* istanbul ignore next */ []));
|
|
147
|
+
/** @protected Horizontal thumb left offset in pixels (set as inline style). */
|
|
148
|
+
_thumbLeft = signal(0, /* @ts-ignore */
|
|
149
|
+
...(ngDevMode ? [{ debugName: "_thumbLeft" }] : /* istanbul ignore next */ []));
|
|
150
|
+
/** @protected Horizontal thumb width in pixels (set as inline style). */
|
|
151
|
+
_thumbWidth = signal(0, /* @ts-ignore */
|
|
152
|
+
...(ngDevMode ? [{ debugName: "_thumbWidth" }] : /* istanbul ignore next */ []));
|
|
153
|
+
/** @protected True while the user is actively dragging a thumb. Adds `--dragging` modifier. */
|
|
154
|
+
_isDragging = signal(false, /* @ts-ignore */
|
|
155
|
+
...(ngDevMode ? [{ debugName: "_isDragging" }] : /* istanbul ignore next */ []));
|
|
156
|
+
/** @protected True while scroll events are firing. Cleared after 150 ms idle. Adds `--scrolling` modifier. */
|
|
157
|
+
_isScrolling = signal(false, /* @ts-ignore */
|
|
158
|
+
...(ngDevMode ? [{ debugName: "_isScrolling" }] : /* istanbul ignore next */ []));
|
|
159
|
+
/** @private Reference to the inner scrollable viewport element. */
|
|
160
|
+
_viewport = viewChild.required('viewport', /* @ts-ignore */
|
|
161
|
+
...(ngDevMode ? [{ debugName: "_viewport" }] : /* istanbul ignore next */ []));
|
|
162
|
+
/**
|
|
163
|
+
* The native scrollable viewport element.
|
|
164
|
+
* Lets wrapping components (e.g. `main[mlvPage]`) observe scroll position
|
|
165
|
+
* without reaching into the component's private DOM.
|
|
166
|
+
*/
|
|
167
|
+
get viewportElement() {
|
|
168
|
+
return this._viewport().nativeElement;
|
|
169
|
+
}
|
|
170
|
+
/** @private Reference to the vertical track element. */
|
|
171
|
+
_trackV = viewChild.required('trackV', /* @ts-ignore */
|
|
172
|
+
...(ngDevMode ? [{ debugName: "_trackV" }] : /* istanbul ignore next */ []));
|
|
173
|
+
/** @private Reference to the horizontal track element. */
|
|
174
|
+
_trackH = viewChild.required('trackH', /* @ts-ignore */
|
|
175
|
+
...(ngDevMode ? [{ debugName: "_trackH" }] : /* istanbul ignore next */ []));
|
|
176
|
+
/** @private Minimum rendered thumb length in pixels — prevents thumb from becoming unclickable. */
|
|
177
|
+
_minThumbSize = 32;
|
|
178
|
+
/** @private Native ResizeObserver watching viewport and content size. */
|
|
179
|
+
_resizeObserver = null;
|
|
180
|
+
/** @private Native MutationObserver keeping `_hasTabbableContent` in sync with projected content. */
|
|
181
|
+
_contentObserver = null;
|
|
182
|
+
/** @private CDK checker used to decide whether projected content is keyboard-reachable. */
|
|
183
|
+
_interactivityChecker = inject(InteractivityChecker);
|
|
184
|
+
/** @private Timeout ID for clearing the `--scrolling` modifier after idle. */
|
|
185
|
+
_scrollTimeout = null;
|
|
186
|
+
/** @private DestroyRef used to clean up the ResizeObserver, timers, and drag listeners. */
|
|
187
|
+
_destroyRef = inject(DestroyRef);
|
|
188
|
+
/** @private Renderer2 used so DOM listeners are SSR-safe and unsubscribable. */
|
|
189
|
+
_renderer = inject(Renderer2);
|
|
190
|
+
constructor() {
|
|
191
|
+
afterNextRender(() => {
|
|
192
|
+
this._updateGeometry();
|
|
193
|
+
this._updateTabbableContent();
|
|
194
|
+
const viewportEl = this._viewport().nativeElement;
|
|
195
|
+
const contentEl = viewportEl.firstElementChild;
|
|
196
|
+
if (contentEl && typeof MutationObserver !== 'undefined') {
|
|
197
|
+
// Projected content is opaque to the component, so tabbability has to
|
|
198
|
+
// be re-read whenever it changes shape — a lazily rendered form, a
|
|
199
|
+
// button that becomes disabled, an @if that swaps text for controls.
|
|
200
|
+
this._contentObserver = new MutationObserver(() => this._updateTabbableContent());
|
|
201
|
+
this._contentObserver.observe(contentEl, {
|
|
202
|
+
childList: true,
|
|
203
|
+
subtree: true,
|
|
204
|
+
attributes: true,
|
|
205
|
+
attributeFilter: ['tabindex', 'disabled', 'hidden', 'href', 'type'],
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
if (typeof ResizeObserver === 'undefined') {
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
this._resizeObserver = new ResizeObserver(() => {
|
|
212
|
+
this._updateGeometry();
|
|
213
|
+
});
|
|
214
|
+
// Observe the viewport to detect host resize (viewport fills host via position:absolute).
|
|
215
|
+
this._resizeObserver.observe(viewportEl);
|
|
216
|
+
// Observe the content wrapper to detect content size changes.
|
|
217
|
+
if (contentEl) {
|
|
218
|
+
this._resizeObserver.observe(contentEl);
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
this._destroyRef.onDestroy(() => {
|
|
222
|
+
this._resizeObserver?.disconnect();
|
|
223
|
+
this._contentObserver?.disconnect();
|
|
224
|
+
if (this._scrollTimeout !== null) {
|
|
225
|
+
clearTimeout(this._scrollTimeout);
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* @private Re-reads whether the projected content contains a tab stop.
|
|
231
|
+
*
|
|
232
|
+
* Drives `_effectiveViewportTabIndex`: a scroll region only needs to be a tab
|
|
233
|
+
* stop of its own when nothing inside it already is (WCAG 2.1.1). Keeping it
|
|
234
|
+
* unconditionally tabbable put a redundant stop — and a focus ring around the
|
|
235
|
+
* whole region — in front of every dialog body's form controls.
|
|
236
|
+
*/
|
|
237
|
+
_updateTabbableContent() {
|
|
238
|
+
const contentEl = this._viewport().nativeElement.firstElementChild;
|
|
239
|
+
if (!contentEl) {
|
|
240
|
+
this._hasTabbableContent.set(false);
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
const candidates = contentEl.querySelectorAll(FOCUSABLE_CANDIDATE_SELECTOR);
|
|
244
|
+
for (const candidate of Array.from(candidates)) {
|
|
245
|
+
// `ignoreVisibility` because the CDK's visibility test is geometric and
|
|
246
|
+
// the content may not have been laid out yet (and never is under jsdom).
|
|
247
|
+
if (this._interactivityChecker.isFocusable(candidate, {
|
|
248
|
+
ignoreVisibility: true,
|
|
249
|
+
}) &&
|
|
250
|
+
this._interactivityChecker.isTabbable(candidate)) {
|
|
251
|
+
this._hasTabbableContent.set(true);
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
this._hasTabbableContent.set(false);
|
|
256
|
+
}
|
|
257
|
+
/** @protected Handles scroll events on the viewport. Updates thumb positions and `--scrolling` state. */
|
|
258
|
+
_onScroll() {
|
|
259
|
+
this._updateThumbPositions();
|
|
260
|
+
this._isScrolling.set(true);
|
|
261
|
+
if (this._scrollTimeout !== null) {
|
|
262
|
+
clearTimeout(this._scrollTimeout);
|
|
263
|
+
}
|
|
264
|
+
this._scrollTimeout = setTimeout(() => {
|
|
265
|
+
this._isScrolling.set(false);
|
|
266
|
+
this._scrollTimeout = null;
|
|
267
|
+
}, 150);
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* @protected Handles `pointerdown` on a scrollbar thumb.
|
|
271
|
+
* Captures the pointer and translates subsequent `pointermove` deltas into
|
|
272
|
+
* viewport scroll offsets. Releases on `pointerup` or `pointercancel`.
|
|
273
|
+
*/
|
|
274
|
+
_onThumbPointerDown(event, axis) {
|
|
275
|
+
event.preventDefault();
|
|
276
|
+
event.stopPropagation();
|
|
277
|
+
const thumb = event.currentTarget;
|
|
278
|
+
thumb.setPointerCapture(event.pointerId);
|
|
279
|
+
const viewportEl = this._viewport().nativeElement;
|
|
280
|
+
const trackEl = (axis === 'vertical' ? this._trackV() : this._trackH())
|
|
281
|
+
.nativeElement;
|
|
282
|
+
const paddingPx = axis === 'vertical'
|
|
283
|
+
? parseFloat(getComputedStyle(trackEl).paddingTop)
|
|
284
|
+
: parseFloat(getComputedStyle(trackEl).paddingLeft);
|
|
285
|
+
const trackSize = axis === 'vertical'
|
|
286
|
+
? trackEl.offsetHeight - paddingPx * 2
|
|
287
|
+
: trackEl.offsetWidth - paddingPx * 2;
|
|
288
|
+
const thumbSize = axis === 'vertical' ? this._thumbHeight() : this._thumbWidth();
|
|
289
|
+
const scrollRange = axis === 'vertical'
|
|
290
|
+
? viewportEl.scrollHeight - viewportEl.clientHeight
|
|
291
|
+
: viewportEl.scrollWidth - viewportEl.clientWidth;
|
|
292
|
+
const startPointer = axis === 'vertical' ? event.clientY : event.clientX;
|
|
293
|
+
const startScroll = axis === 'vertical' ? viewportEl.scrollTop : viewportEl.scrollLeft;
|
|
294
|
+
const scrollPerPixel = thumbSize < trackSize && scrollRange > 0
|
|
295
|
+
? scrollRange / (trackSize - thumbSize)
|
|
296
|
+
: 0;
|
|
297
|
+
this._isDragging.set(true);
|
|
298
|
+
const onPointerMove = (moveEvent) => {
|
|
299
|
+
const delta = (axis === 'vertical' ? moveEvent.clientY : moveEvent.clientX) -
|
|
300
|
+
startPointer;
|
|
301
|
+
if (axis === 'vertical') {
|
|
302
|
+
viewportEl.scrollTop = startScroll + delta * scrollPerPixel;
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
viewportEl.scrollLeft = startScroll + delta * scrollPerPixel;
|
|
306
|
+
}
|
|
307
|
+
};
|
|
308
|
+
let releaseListeners = null;
|
|
309
|
+
const onPointerUp = () => {
|
|
310
|
+
this._isDragging.set(false);
|
|
311
|
+
releaseListeners?.();
|
|
312
|
+
releaseListeners = null;
|
|
313
|
+
};
|
|
314
|
+
const moveDispose = this._renderer.listen(thumb, 'pointermove', onPointerMove);
|
|
315
|
+
const upDispose = this._renderer.listen(thumb, 'pointerup', onPointerUp);
|
|
316
|
+
const cancelDispose = this._renderer.listen(thumb, 'pointercancel', onPointerUp);
|
|
317
|
+
releaseListeners = () => {
|
|
318
|
+
moveDispose();
|
|
319
|
+
upDispose();
|
|
320
|
+
cancelDispose();
|
|
321
|
+
};
|
|
322
|
+
// Guarantee cleanup if the component is destroyed mid-drag — without this
|
|
323
|
+
// the listeners would leak against the detached thumb element and
|
|
324
|
+
// _isDragging would stay true.
|
|
325
|
+
this._destroyRef.onDestroy(() => {
|
|
326
|
+
releaseListeners?.();
|
|
327
|
+
});
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* @private Recalculates overflow detection and thumb geometry.
|
|
331
|
+
* Called after first render, on ResizeObserver notifications, and on scroll.
|
|
332
|
+
*/
|
|
333
|
+
_updateGeometry() {
|
|
334
|
+
const viewportEl = this._viewport().nativeElement;
|
|
335
|
+
// +1 tolerance for sub-pixel rounding
|
|
336
|
+
this._hasVerticalOverflow.set(viewportEl.scrollHeight > viewportEl.clientHeight + 1);
|
|
337
|
+
this._hasHorizontalOverflow.set(viewportEl.scrollWidth > viewportEl.clientWidth + 1);
|
|
338
|
+
this._updateThumbPositions();
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* @private Recomputes thumb position and size signals from the current viewport
|
|
342
|
+
* scroll state. Fast path — called on every scroll event.
|
|
343
|
+
*/
|
|
344
|
+
_updateThumbPositions() {
|
|
345
|
+
const viewportEl = this._viewport().nativeElement;
|
|
346
|
+
if (this._showVertical() && this._hasVerticalOverflow()) {
|
|
347
|
+
const trackEl = this._trackV().nativeElement;
|
|
348
|
+
const paddingPx = parseFloat(getComputedStyle(trackEl).paddingTop);
|
|
349
|
+
const usableHeight = trackEl.offsetHeight - paddingPx * 2;
|
|
350
|
+
const ratio = viewportEl.clientHeight / viewportEl.scrollHeight;
|
|
351
|
+
const thumbH = Math.max(this._minThumbSize, usableHeight * ratio);
|
|
352
|
+
const scrollRange = viewportEl.scrollHeight - viewportEl.clientHeight;
|
|
353
|
+
const thumbT = scrollRange > 0
|
|
354
|
+
? paddingPx +
|
|
355
|
+
(viewportEl.scrollTop / scrollRange) * (usableHeight - thumbH)
|
|
356
|
+
: paddingPx;
|
|
357
|
+
this._thumbHeight.set(Math.round(thumbH));
|
|
358
|
+
this._thumbTop.set(Math.round(thumbT));
|
|
359
|
+
}
|
|
360
|
+
if (this._showHorizontal() && this._hasHorizontalOverflow()) {
|
|
361
|
+
const trackEl = this._trackH().nativeElement;
|
|
362
|
+
const paddingPx = parseFloat(getComputedStyle(trackEl).paddingLeft);
|
|
363
|
+
const usableWidth = trackEl.offsetWidth - paddingPx * 2;
|
|
364
|
+
const ratio = viewportEl.clientWidth / viewportEl.scrollWidth;
|
|
365
|
+
const thumbW = Math.max(this._minThumbSize, usableWidth * ratio);
|
|
366
|
+
const scrollRange = viewportEl.scrollWidth - viewportEl.clientWidth;
|
|
367
|
+
const thumbL = scrollRange > 0
|
|
368
|
+
? paddingPx +
|
|
369
|
+
(viewportEl.scrollLeft / scrollRange) * (usableWidth - thumbW)
|
|
370
|
+
: paddingPx;
|
|
371
|
+
this._thumbWidth.set(Math.round(thumbW));
|
|
372
|
+
this._thumbLeft.set(Math.round(thumbL));
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvScrollbar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
376
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.7", type: MlvScrollbar, isStandalone: true, selector: "mlv-scrollbar", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, scrollbarSize: { classPropertyName: "scrollbarSize", publicName: "scrollbarSize", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, viewportTabIndex: { classPropertyName: "viewportTabIndex", publicName: "viewportTabIndex", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.mlv-scrollbar--disabled": "disabled()", "class.mlv-scrollbar--dragging": "_isDragging()", "class.mlv-scrollbar--scrolling": "_isScrolling()", "style.--mlv-sb-size": "scrollbarSize()" }, classAttribute: "mlv-scrollbar" }, viewQueries: [{ propertyName: "_viewport", first: true, predicate: ["viewport"], descendants: true, isSignal: true }, { propertyName: "_trackV", first: true, predicate: ["trackV"], descendants: true, isSignal: true }, { propertyName: "_trackH", first: true, predicate: ["trackH"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n class=\"mlv-scrollbar__viewport\"\n #viewport\n [attr.tabindex]=\"_effectiveViewportTabIndex()\"\n [attr.aria-label]=\"_resolvedAriaLabel()\"\n (scroll)=\"_onScroll()\"\n>\n <div class=\"mlv-scrollbar__content\" #content>\n <ng-content />\n </div>\n</div>\n\n<!-- Custom track and thumb elements are purely visual overlays.\n Screen readers use the viewport's native scroll semantics above. -->\n<div\n class=\"mlv-scrollbar__track mlv-scrollbar__track--vertical\"\n [class.mlv-scrollbar__track--hidden]=\"!_showVertical() || !_hasVerticalOverflow()\"\n aria-hidden=\"true\"\n #trackV\n>\n <div\n class=\"mlv-scrollbar__thumb\"\n [style.top.px]=\"_thumbTop()\"\n [style.height.px]=\"_thumbHeight()\"\n (pointerdown)=\"_onThumbPointerDown($event, 'vertical')\"\n ></div>\n</div>\n\n<div\n class=\"mlv-scrollbar__track mlv-scrollbar__track--horizontal\"\n [class.mlv-scrollbar__track--hidden]=\"!_showHorizontal() || !_hasHorizontalOverflow()\"\n aria-hidden=\"true\"\n #trackH\n>\n <div\n class=\"mlv-scrollbar__thumb\"\n [style.left.px]=\"_thumbLeft()\"\n [style.width.px]=\"_thumbWidth()\"\n (pointerdown)=\"_onThumbPointerDown($event, 'horizontal')\"\n ></div>\n</div>\n", styles: [".mlv-scrollbar{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-m)}.mlv-scrollbar *{box-sizing:border-box}.mlv-scrollbar{position:relative;display:grid;--mlv-sb-size: .75rem;--mlv-sb-inset: .25rem;--mlv-sb-edge-padding: .1875rem;--mlv-sb-thumb-bg: var(--mlv-border-strong);--mlv-sb-thumb-opacity: .5;--mlv-sb-track-bg: transparent;--mlv-sb-radius: var(--mlv-radius-full);--mlv-sb-min-thumb-size: 1.75rem;--mlv-sb-edge-gap: 0rem}.mlv-scrollbar:hover .mlv-scrollbar__thumb{--mlv-sb-inset: .1875rem;opacity:.8}.mlv-scrollbar--scrolling .mlv-scrollbar__thumb{opacity:1}.mlv-scrollbar--dragging{-webkit-user-select:none;user-select:none}.mlv-scrollbar--dragging .mlv-scrollbar__thumb{--mlv-sb-inset: .1875rem;--mlv-sb-thumb-bg: var(--mlv-text-secondary);opacity:1;cursor:grabbing}.mlv-scrollbar--disabled .mlv-scrollbar__track{display:none}.mlv-scrollbar--disabled .mlv-scrollbar__viewport{scrollbar-width:auto}.mlv-scrollbar--disabled .mlv-scrollbar__viewport::-webkit-scrollbar{display:revert}.mlv-scrollbar__viewport{min-height:0;min-width:0;overflow:auto;scrollbar-width:none;outline:none}.mlv-scrollbar__viewport::-webkit-scrollbar{display:none}.mlv-scrollbar__viewport:focus-visible{outline:var(--mlv-stroke-width) solid var(--mlv-border-focus);outline-offset:-.125rem}.mlv-scrollbar__content{min-height:100%;min-width:100%}.mlv-scrollbar__track{position:absolute;background:var(--mlv-sb-track-bg);border-radius:var(--mlv-sb-radius);z-index:var(--mlv-z-raised)}.mlv-scrollbar__track--vertical{top:var(--mlv-sb-edge-gap);bottom:var(--mlv-sb-edge-gap);inset-inline-end:var(--mlv-sb-edge-gap);width:var(--mlv-sb-size);padding:var(--mlv-sb-edge-padding) 0}.mlv-scrollbar__track--horizontal{bottom:var(--mlv-sb-edge-gap);inset-inline-start:var(--mlv-sb-edge-gap);inset-inline-end:var(--mlv-sb-edge-gap);height:var(--mlv-sb-size);padding:0 var(--mlv-sb-edge-padding)}.mlv-scrollbar__track--hidden{display:none}.mlv-scrollbar:has(.mlv-scrollbar__track--vertical:not(.mlv-scrollbar__track--hidden)):has(.mlv-scrollbar__track--horizontal:not(.mlv-scrollbar__track--hidden)) .mlv-scrollbar__track--vertical{bottom:calc(var(--mlv-sb-size) + var(--mlv-sb-edge-gap))}.mlv-scrollbar:has(.mlv-scrollbar__track--vertical:not(.mlv-scrollbar__track--hidden)):has(.mlv-scrollbar__track--horizontal:not(.mlv-scrollbar__track--hidden)) .mlv-scrollbar__track--horizontal{inset-inline-end:calc(var(--mlv-sb-size) + var(--mlv-sb-edge-gap))}.mlv-scrollbar__thumb{position:absolute;background:var(--mlv-sb-thumb-bg);border-radius:var(--mlv-sb-radius);opacity:var(--mlv-sb-thumb-opacity);cursor:grab}.mlv-scrollbar__track--vertical .mlv-scrollbar__thumb{inset-inline-start:var(--mlv-sb-inset);inset-inline-end:var(--mlv-sb-inset);min-block-size:var(--mlv-sb-min-thumb-size);transition:opacity var(--mlv-duration-normal) var(--mlv-ease-default),background-color var(--mlv-duration-fast) var(--mlv-ease-default),inset-inline-start var(--mlv-duration-normal) var(--mlv-ease-default),inset-inline-end var(--mlv-duration-normal) var(--mlv-ease-default)}.mlv-scrollbar__track--horizontal .mlv-scrollbar__thumb{top:var(--mlv-sb-inset);bottom:var(--mlv-sb-inset);min-inline-size:var(--mlv-sb-min-thumb-size);transition:opacity var(--mlv-duration-normal) var(--mlv-ease-default),background-color var(--mlv-duration-fast) var(--mlv-ease-default),top var(--mlv-duration-normal) var(--mlv-ease-default),bottom var(--mlv-duration-normal) var(--mlv-ease-default)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
377
|
+
}
|
|
378
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MlvScrollbar, decorators: [{
|
|
379
|
+
type: Component,
|
|
380
|
+
args: [{ selector: 'mlv-scrollbar', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
381
|
+
class: 'mlv-scrollbar',
|
|
382
|
+
'[class.mlv-scrollbar--disabled]': 'disabled()',
|
|
383
|
+
'[class.mlv-scrollbar--dragging]': '_isDragging()',
|
|
384
|
+
'[class.mlv-scrollbar--scrolling]': '_isScrolling()',
|
|
385
|
+
'[style.--mlv-sb-size]': 'scrollbarSize()',
|
|
386
|
+
}, template: "<div\n class=\"mlv-scrollbar__viewport\"\n #viewport\n [attr.tabindex]=\"_effectiveViewportTabIndex()\"\n [attr.aria-label]=\"_resolvedAriaLabel()\"\n (scroll)=\"_onScroll()\"\n>\n <div class=\"mlv-scrollbar__content\" #content>\n <ng-content />\n </div>\n</div>\n\n<!-- Custom track and thumb elements are purely visual overlays.\n Screen readers use the viewport's native scroll semantics above. -->\n<div\n class=\"mlv-scrollbar__track mlv-scrollbar__track--vertical\"\n [class.mlv-scrollbar__track--hidden]=\"!_showVertical() || !_hasVerticalOverflow()\"\n aria-hidden=\"true\"\n #trackV\n>\n <div\n class=\"mlv-scrollbar__thumb\"\n [style.top.px]=\"_thumbTop()\"\n [style.height.px]=\"_thumbHeight()\"\n (pointerdown)=\"_onThumbPointerDown($event, 'vertical')\"\n ></div>\n</div>\n\n<div\n class=\"mlv-scrollbar__track mlv-scrollbar__track--horizontal\"\n [class.mlv-scrollbar__track--hidden]=\"!_showHorizontal() || !_hasHorizontalOverflow()\"\n aria-hidden=\"true\"\n #trackH\n>\n <div\n class=\"mlv-scrollbar__thumb\"\n [style.left.px]=\"_thumbLeft()\"\n [style.width.px]=\"_thumbWidth()\"\n (pointerdown)=\"_onThumbPointerDown($event, 'horizontal')\"\n ></div>\n</div>\n", styles: [".mlv-scrollbar{box-sizing:border-box;padding:0;margin:0;font-family:var(--mlv-typography-family-text);font-size:var(--mlv-font-size-m)}.mlv-scrollbar *{box-sizing:border-box}.mlv-scrollbar{position:relative;display:grid;--mlv-sb-size: .75rem;--mlv-sb-inset: .25rem;--mlv-sb-edge-padding: .1875rem;--mlv-sb-thumb-bg: var(--mlv-border-strong);--mlv-sb-thumb-opacity: .5;--mlv-sb-track-bg: transparent;--mlv-sb-radius: var(--mlv-radius-full);--mlv-sb-min-thumb-size: 1.75rem;--mlv-sb-edge-gap: 0rem}.mlv-scrollbar:hover .mlv-scrollbar__thumb{--mlv-sb-inset: .1875rem;opacity:.8}.mlv-scrollbar--scrolling .mlv-scrollbar__thumb{opacity:1}.mlv-scrollbar--dragging{-webkit-user-select:none;user-select:none}.mlv-scrollbar--dragging .mlv-scrollbar__thumb{--mlv-sb-inset: .1875rem;--mlv-sb-thumb-bg: var(--mlv-text-secondary);opacity:1;cursor:grabbing}.mlv-scrollbar--disabled .mlv-scrollbar__track{display:none}.mlv-scrollbar--disabled .mlv-scrollbar__viewport{scrollbar-width:auto}.mlv-scrollbar--disabled .mlv-scrollbar__viewport::-webkit-scrollbar{display:revert}.mlv-scrollbar__viewport{min-height:0;min-width:0;overflow:auto;scrollbar-width:none;outline:none}.mlv-scrollbar__viewport::-webkit-scrollbar{display:none}.mlv-scrollbar__viewport:focus-visible{outline:var(--mlv-stroke-width) solid var(--mlv-border-focus);outline-offset:-.125rem}.mlv-scrollbar__content{min-height:100%;min-width:100%}.mlv-scrollbar__track{position:absolute;background:var(--mlv-sb-track-bg);border-radius:var(--mlv-sb-radius);z-index:var(--mlv-z-raised)}.mlv-scrollbar__track--vertical{top:var(--mlv-sb-edge-gap);bottom:var(--mlv-sb-edge-gap);inset-inline-end:var(--mlv-sb-edge-gap);width:var(--mlv-sb-size);padding:var(--mlv-sb-edge-padding) 0}.mlv-scrollbar__track--horizontal{bottom:var(--mlv-sb-edge-gap);inset-inline-start:var(--mlv-sb-edge-gap);inset-inline-end:var(--mlv-sb-edge-gap);height:var(--mlv-sb-size);padding:0 var(--mlv-sb-edge-padding)}.mlv-scrollbar__track--hidden{display:none}.mlv-scrollbar:has(.mlv-scrollbar__track--vertical:not(.mlv-scrollbar__track--hidden)):has(.mlv-scrollbar__track--horizontal:not(.mlv-scrollbar__track--hidden)) .mlv-scrollbar__track--vertical{bottom:calc(var(--mlv-sb-size) + var(--mlv-sb-edge-gap))}.mlv-scrollbar:has(.mlv-scrollbar__track--vertical:not(.mlv-scrollbar__track--hidden)):has(.mlv-scrollbar__track--horizontal:not(.mlv-scrollbar__track--hidden)) .mlv-scrollbar__track--horizontal{inset-inline-end:calc(var(--mlv-sb-size) + var(--mlv-sb-edge-gap))}.mlv-scrollbar__thumb{position:absolute;background:var(--mlv-sb-thumb-bg);border-radius:var(--mlv-sb-radius);opacity:var(--mlv-sb-thumb-opacity);cursor:grab}.mlv-scrollbar__track--vertical .mlv-scrollbar__thumb{inset-inline-start:var(--mlv-sb-inset);inset-inline-end:var(--mlv-sb-inset);min-block-size:var(--mlv-sb-min-thumb-size);transition:opacity var(--mlv-duration-normal) var(--mlv-ease-default),background-color var(--mlv-duration-fast) var(--mlv-ease-default),inset-inline-start var(--mlv-duration-normal) var(--mlv-ease-default),inset-inline-end var(--mlv-duration-normal) var(--mlv-ease-default)}.mlv-scrollbar__track--horizontal .mlv-scrollbar__thumb{top:var(--mlv-sb-inset);bottom:var(--mlv-sb-inset);min-inline-size:var(--mlv-sb-min-thumb-size);transition:opacity var(--mlv-duration-normal) var(--mlv-ease-default),background-color var(--mlv-duration-fast) var(--mlv-ease-default),top var(--mlv-duration-normal) var(--mlv-ease-default),bottom var(--mlv-duration-normal) var(--mlv-ease-default)}\n"] }]
|
|
387
|
+
}], ctorParameters: () => [], propDecorators: { orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], scrollbarSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollbarSize", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], viewportTabIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewportTabIndex", required: false }] }], _viewport: [{ type: i0.ViewChild, args: ['viewport', { isSignal: true }] }], _trackV: [{ type: i0.ViewChild, args: ['trackV', { isSignal: true }] }], _trackH: [{ type: i0.ViewChild, args: ['trackH', { isSignal: true }] }] } });
|
|
388
|
+
//# sourceMappingURL=scrollbar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scrollbar.js","sourceRoot":"","sources":["../../../../../../../libs/core/scrollbar/src/lib/scrollbar/scrollbar.ts","../../../../../../../libs/core/scrollbar/src/lib/scrollbar/scrollbar.html"],"names":[],"mappings":"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","sourcesContent":["import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n type ElementRef,\n inject,\n input,\n Renderer2,\n signal,\n ViewEncapsulation,\n viewChild,\n} from '@angular/core';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { InteractivityChecker } from '@angular/cdk/a11y';\nimport { MLV_SCROLLBAR_I18N } from '@malva-ui/i18n';\n\n/**\n * Elements that can plausibly be tab stops. A cheap prefilter — every hit is\n * still confirmed with the CDK's `InteractivityChecker`.\n */\nconst FOCUSABLE_CANDIDATE_SELECTOR = [\n 'a[href]',\n 'area[href]',\n 'button',\n 'input',\n 'select',\n 'textarea',\n 'iframe',\n 'object',\n 'embed',\n 'audio[controls]',\n 'video[controls]',\n 'details',\n 'summary',\n '[contenteditable]',\n '[tabindex]',\n].join(',');\n\n/** Controls which scroll axes render a custom scrollbar. */\nexport type MlvScrollbarOrientation = 'vertical' | 'horizontal' | 'both';\n\n/**\n * Custom scrollbar component that hides the native browser scrollbar and\n * renders a minimalistic custom one in accordance with the Malva UI theme.\n *\n * Wrap any scrollable content in `<mlv-scrollbar>`. The component must have\n * a defined height (set via CSS or via flex/grid sizing from a parent).\n * Native scroll behaviour is **never intercepted** — the viewport scrolls\n * exactly as if the component were not present. The custom thumb is a pure\n * visual overlay that stays in sync with the viewport's scroll position.\n *\n * @example Vertical (default)\n * ```html\n * <mlv-scrollbar style=\"height: 12rem\">\n * <p>Long content…</p>\n * </mlv-scrollbar>\n * ```\n *\n * @example Horizontal\n * ```html\n * <mlv-scrollbar orientation=\"horizontal\" style=\"width: 20rem\">\n * <div style=\"width: 60rem\">Wide content…</div>\n * </mlv-scrollbar>\n * ```\n *\n * @example Both axes\n * ```html\n * <mlv-scrollbar orientation=\"both\" style=\"height: 12rem; width: 20rem\">\n * <div style=\"height: 30rem; width: 60rem\">…</div>\n * </mlv-scrollbar>\n * ```\n */\n@Component({\n selector: 'mlv-scrollbar',\n templateUrl: './scrollbar.html',\n styleUrl: './scrollbar.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'mlv-scrollbar',\n '[class.mlv-scrollbar--disabled]': 'disabled()',\n '[class.mlv-scrollbar--dragging]': '_isDragging()',\n '[class.mlv-scrollbar--scrolling]': '_isScrolling()',\n '[style.--mlv-sb-size]': 'scrollbarSize()',\n },\n})\nexport class MlvScrollbar {\n /**\n * Which scroll axes to show the custom scrollbar on.\n * Default: `'vertical'`.\n */\n readonly orientation = input<MlvScrollbarOrientation>('vertical');\n\n /**\n * CSS length value for the scrollbar track zone width (vertical) or height\n * (horizontal). Maps to the `--mlv-sb-size` custom property on the host.\n * The visible thumb is narrower due to the cross-axis inset (`--mlv-sb-inset`).\n * Default: `'0.75rem'` (12 px track zone → 4 px visible thumb after 4 px inset each side).\n */\n readonly scrollbarSize = input<string>('0.75rem');\n\n /**\n * When `true`, hides the custom scrollbar tracks and restores the browser's\n * native scrollbar. Supports attribute syntax: `<mlv-scrollbar disabled>`.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n transform: coerceBooleanProperty,\n });\n\n /**\n * Custom aria-label override for the scrollable viewport region.\n * Falls back to the i18n-provided label.\n * Override when the component wraps content with a more specific purpose,\n * e.g. `ariaLabel=\"Chat messages\"`.\n */\n readonly ariaLabel = input<string | undefined>(undefined);\n\n /**\n * Tab index applied to the native scroll viewport.\n *\n * The default `0` means **auto**: the viewport is a tab stop only while its\n * content holds nothing tabbable. A text-only region stays reachable so\n * keyboard users can scroll it (WCAG 2.1.1), but a region full of form\n * controls does not add a redundant stop in front of them — which is what\n * put a focus ring around an entire dialog body on open.\n *\n * Any non-zero value is applied verbatim; composite widgets that manage\n * their own focus pass `-1`.\n */\n readonly viewportTabIndex = input<number>(0);\n\n /** @protected The component's i18n strings signal. */\n protected readonly _i18n = inject(MLV_SCROLLBAR_I18N, { optional: true });\n\n /** @protected Resolved aria-label: explicit input takes precedence over i18n default. */\n protected readonly _resolvedAriaLabel = computed(\n () =>\n this.ariaLabel() ??\n this._i18n?.().scrollableRegion ??\n 'Scrollable region',\n );\n\n /**\n * @protected Whether the scrolled content currently holds a tabbable element.\n * Recomputed after render and on every content mutation.\n */\n protected readonly _hasTabbableContent = signal(false);\n\n /**\n * @protected Tab index actually written to the viewport.\n *\n * `0` is treated as \"auto\" and collapses to `-1` once the content itself is\n * keyboard-reachable; every other value passes through unchanged.\n */\n protected readonly _effectiveViewportTabIndex = computed(() => {\n const requested = this.viewportTabIndex();\n if (requested !== 0) {\n return requested;\n }\n return this._hasTabbableContent() ? -1 : 0;\n });\n\n /** @protected Whether the vertical track should be rendered. */\n protected readonly _showVertical = computed(\n () =>\n !this.disabled() &&\n (this.orientation() === 'vertical' || this.orientation() === 'both'),\n );\n\n /** @protected Whether the horizontal track should be rendered. */\n protected readonly _showHorizontal = computed(\n () =>\n !this.disabled() &&\n (this.orientation() === 'horizontal' || this.orientation() === 'both'),\n );\n\n /** @protected True when scrollHeight > clientHeight (vertical overflow present). */\n protected readonly _hasVerticalOverflow = signal(false);\n\n /** @protected True when scrollWidth > clientWidth (horizontal overflow present). */\n protected readonly _hasHorizontalOverflow = signal(false);\n\n /** @protected Vertical thumb top offset in pixels (set as inline style). */\n protected readonly _thumbTop = signal(0);\n\n /** @protected Vertical thumb height in pixels (set as inline style). */\n protected readonly _thumbHeight = signal(0);\n\n /** @protected Horizontal thumb left offset in pixels (set as inline style). */\n protected readonly _thumbLeft = signal(0);\n\n /** @protected Horizontal thumb width in pixels (set as inline style). */\n protected readonly _thumbWidth = signal(0);\n\n /** @protected True while the user is actively dragging a thumb. Adds `--dragging` modifier. */\n protected readonly _isDragging = signal(false);\n\n /** @protected True while scroll events are firing. Cleared after 150 ms idle. Adds `--scrolling` modifier. */\n protected readonly _isScrolling = signal(false);\n\n /** @private Reference to the inner scrollable viewport element. */\n private readonly _viewport =\n viewChild.required<ElementRef<HTMLDivElement>>('viewport');\n\n /**\n * The native scrollable viewport element.\n * Lets wrapping components (e.g. `main[mlvPage]`) observe scroll position\n * without reaching into the component's private DOM.\n */\n get viewportElement(): HTMLElement {\n return this._viewport().nativeElement;\n }\n\n /** @private Reference to the vertical track element. */\n private readonly _trackV =\n viewChild.required<ElementRef<HTMLDivElement>>('trackV');\n\n /** @private Reference to the horizontal track element. */\n private readonly _trackH =\n viewChild.required<ElementRef<HTMLDivElement>>('trackH');\n\n /** @private Minimum rendered thumb length in pixels — prevents thumb from becoming unclickable. */\n private readonly _minThumbSize = 32;\n\n /** @private Native ResizeObserver watching viewport and content size. */\n private _resizeObserver: ResizeObserver | null = null;\n\n /** @private Native MutationObserver keeping `_hasTabbableContent` in sync with projected content. */\n private _contentObserver: MutationObserver | null = null;\n\n /** @private CDK checker used to decide whether projected content is keyboard-reachable. */\n private readonly _interactivityChecker = inject(InteractivityChecker);\n\n /** @private Timeout ID for clearing the `--scrolling` modifier after idle. */\n private _scrollTimeout: ReturnType<typeof setTimeout> | null = null;\n\n /** @private DestroyRef used to clean up the ResizeObserver, timers, and drag listeners. */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @private Renderer2 used so DOM listeners are SSR-safe and unsubscribable. */\n private readonly _renderer = inject(Renderer2);\n\n constructor() {\n afterNextRender(() => {\n this._updateGeometry();\n this._updateTabbableContent();\n\n const viewportEl = this._viewport().nativeElement;\n const contentEl = viewportEl.firstElementChild;\n\n if (contentEl && typeof MutationObserver !== 'undefined') {\n // Projected content is opaque to the component, so tabbability has to\n // be re-read whenever it changes shape — a lazily rendered form, a\n // button that becomes disabled, an @if that swaps text for controls.\n this._contentObserver = new MutationObserver(() =>\n this._updateTabbableContent(),\n );\n this._contentObserver.observe(contentEl, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['tabindex', 'disabled', 'hidden', 'href', 'type'],\n });\n }\n\n if (typeof ResizeObserver === 'undefined') {\n return;\n }\n\n this._resizeObserver = new ResizeObserver(() => {\n this._updateGeometry();\n });\n\n // Observe the viewport to detect host resize (viewport fills host via position:absolute).\n this._resizeObserver.observe(viewportEl);\n // Observe the content wrapper to detect content size changes.\n if (contentEl) {\n this._resizeObserver.observe(contentEl);\n }\n });\n\n this._destroyRef.onDestroy(() => {\n this._resizeObserver?.disconnect();\n this._contentObserver?.disconnect();\n if (this._scrollTimeout !== null) {\n clearTimeout(this._scrollTimeout);\n }\n });\n }\n\n /**\n * @private Re-reads whether the projected content contains a tab stop.\n *\n * Drives `_effectiveViewportTabIndex`: a scroll region only needs to be a tab\n * stop of its own when nothing inside it already is (WCAG 2.1.1). Keeping it\n * unconditionally tabbable put a redundant stop — and a focus ring around the\n * whole region — in front of every dialog body's form controls.\n */\n private _updateTabbableContent(): void {\n const contentEl = this._viewport().nativeElement.firstElementChild;\n if (!contentEl) {\n this._hasTabbableContent.set(false);\n return;\n }\n\n const candidates = contentEl.querySelectorAll<HTMLElement>(\n FOCUSABLE_CANDIDATE_SELECTOR,\n );\n\n for (const candidate of Array.from(candidates)) {\n // `ignoreVisibility` because the CDK's visibility test is geometric and\n // the content may not have been laid out yet (and never is under jsdom).\n if (\n this._interactivityChecker.isFocusable(candidate, {\n ignoreVisibility: true,\n }) &&\n this._interactivityChecker.isTabbable(candidate)\n ) {\n this._hasTabbableContent.set(true);\n return;\n }\n }\n\n this._hasTabbableContent.set(false);\n }\n\n /** @protected Handles scroll events on the viewport. Updates thumb positions and `--scrolling` state. */\n protected _onScroll(): void {\n this._updateThumbPositions();\n\n this._isScrolling.set(true);\n if (this._scrollTimeout !== null) {\n clearTimeout(this._scrollTimeout);\n }\n this._scrollTimeout = setTimeout(() => {\n this._isScrolling.set(false);\n this._scrollTimeout = null;\n }, 150);\n }\n\n /**\n * @protected Handles `pointerdown` on a scrollbar thumb.\n * Captures the pointer and translates subsequent `pointermove` deltas into\n * viewport scroll offsets. Releases on `pointerup` or `pointercancel`.\n */\n protected _onThumbPointerDown(\n event: PointerEvent,\n axis: 'vertical' | 'horizontal',\n ): void {\n event.preventDefault();\n event.stopPropagation();\n\n const thumb = event.currentTarget as HTMLElement;\n thumb.setPointerCapture(event.pointerId);\n\n const viewportEl = this._viewport().nativeElement;\n const trackEl = (axis === 'vertical' ? this._trackV() : this._trackH())\n .nativeElement;\n\n const paddingPx =\n axis === 'vertical'\n ? parseFloat(getComputedStyle(trackEl).paddingTop)\n : parseFloat(getComputedStyle(trackEl).paddingLeft);\n\n const trackSize =\n axis === 'vertical'\n ? trackEl.offsetHeight - paddingPx * 2\n : trackEl.offsetWidth - paddingPx * 2;\n\n const thumbSize =\n axis === 'vertical' ? this._thumbHeight() : this._thumbWidth();\n const scrollRange =\n axis === 'vertical'\n ? viewportEl.scrollHeight - viewportEl.clientHeight\n : viewportEl.scrollWidth - viewportEl.clientWidth;\n\n const startPointer = axis === 'vertical' ? event.clientY : event.clientX;\n const startScroll =\n axis === 'vertical' ? viewportEl.scrollTop : viewportEl.scrollLeft;\n const scrollPerPixel =\n thumbSize < trackSize && scrollRange > 0\n ? scrollRange / (trackSize - thumbSize)\n : 0;\n\n this._isDragging.set(true);\n\n const onPointerMove = (moveEvent: PointerEvent): void => {\n const delta =\n (axis === 'vertical' ? moveEvent.clientY : moveEvent.clientX) -\n startPointer;\n if (axis === 'vertical') {\n viewportEl.scrollTop = startScroll + delta * scrollPerPixel;\n } else {\n viewportEl.scrollLeft = startScroll + delta * scrollPerPixel;\n }\n };\n\n let releaseListeners: (() => void) | null = null;\n const onPointerUp = (): void => {\n this._isDragging.set(false);\n releaseListeners?.();\n releaseListeners = null;\n };\n\n const moveDispose = this._renderer.listen(\n thumb,\n 'pointermove',\n onPointerMove,\n );\n const upDispose = this._renderer.listen(thumb, 'pointerup', onPointerUp);\n const cancelDispose = this._renderer.listen(\n thumb,\n 'pointercancel',\n onPointerUp,\n );\n\n releaseListeners = () => {\n moveDispose();\n upDispose();\n cancelDispose();\n };\n\n // Guarantee cleanup if the component is destroyed mid-drag — without this\n // the listeners would leak against the detached thumb element and\n // _isDragging would stay true.\n this._destroyRef.onDestroy(() => {\n releaseListeners?.();\n });\n }\n\n /**\n * @private Recalculates overflow detection and thumb geometry.\n * Called after first render, on ResizeObserver notifications, and on scroll.\n */\n private _updateGeometry(): void {\n const viewportEl = this._viewport().nativeElement;\n // +1 tolerance for sub-pixel rounding\n this._hasVerticalOverflow.set(\n viewportEl.scrollHeight > viewportEl.clientHeight + 1,\n );\n this._hasHorizontalOverflow.set(\n viewportEl.scrollWidth > viewportEl.clientWidth + 1,\n );\n this._updateThumbPositions();\n }\n\n /**\n * @private Recomputes thumb position and size signals from the current viewport\n * scroll state. Fast path — called on every scroll event.\n */\n private _updateThumbPositions(): void {\n const viewportEl = this._viewport().nativeElement;\n\n if (this._showVertical() && this._hasVerticalOverflow()) {\n const trackEl = this._trackV().nativeElement;\n const paddingPx = parseFloat(getComputedStyle(trackEl).paddingTop);\n const usableHeight = trackEl.offsetHeight - paddingPx * 2;\n const ratio = viewportEl.clientHeight / viewportEl.scrollHeight;\n const thumbH = Math.max(this._minThumbSize, usableHeight * ratio);\n const scrollRange = viewportEl.scrollHeight - viewportEl.clientHeight;\n const thumbT =\n scrollRange > 0\n ? paddingPx +\n (viewportEl.scrollTop / scrollRange) * (usableHeight - thumbH)\n : paddingPx;\n this._thumbHeight.set(Math.round(thumbH));\n this._thumbTop.set(Math.round(thumbT));\n }\n\n if (this._showHorizontal() && this._hasHorizontalOverflow()) {\n const trackEl = this._trackH().nativeElement;\n const paddingPx = parseFloat(getComputedStyle(trackEl).paddingLeft);\n const usableWidth = trackEl.offsetWidth - paddingPx * 2;\n const ratio = viewportEl.clientWidth / viewportEl.scrollWidth;\n const thumbW = Math.max(this._minThumbSize, usableWidth * ratio);\n const scrollRange = viewportEl.scrollWidth - viewportEl.clientWidth;\n const thumbL =\n scrollRange > 0\n ? paddingPx +\n (viewportEl.scrollLeft / scrollRange) * (usableWidth - thumbW)\n : paddingPx;\n this._thumbWidth.set(Math.round(thumbW));\n this._thumbLeft.set(Math.round(thumbL));\n }\n }\n}\n","<div\n class=\"mlv-scrollbar__viewport\"\n #viewport\n [attr.tabindex]=\"_effectiveViewportTabIndex()\"\n [attr.aria-label]=\"_resolvedAriaLabel()\"\n (scroll)=\"_onScroll()\"\n>\n <div class=\"mlv-scrollbar__content\" #content>\n <ng-content />\n </div>\n</div>\n\n<!-- Custom track and thumb elements are purely visual overlays.\n Screen readers use the viewport's native scroll semantics above. -->\n<div\n class=\"mlv-scrollbar__track mlv-scrollbar__track--vertical\"\n [class.mlv-scrollbar__track--hidden]=\"!_showVertical() || !_hasVerticalOverflow()\"\n aria-hidden=\"true\"\n #trackV\n>\n <div\n class=\"mlv-scrollbar__thumb\"\n [style.top.px]=\"_thumbTop()\"\n [style.height.px]=\"_thumbHeight()\"\n (pointerdown)=\"_onThumbPointerDown($event, 'vertical')\"\n ></div>\n</div>\n\n<div\n class=\"mlv-scrollbar__track mlv-scrollbar__track--horizontal\"\n [class.mlv-scrollbar__track--hidden]=\"!_showHorizontal() || !_hasHorizontalOverflow()\"\n aria-hidden=\"true\"\n #trackH\n>\n <div\n class=\"mlv-scrollbar__thumb\"\n [style.left.px]=\"_thumbLeft()\"\n [style.width.px]=\"_thumbWidth()\"\n (pointerdown)=\"_onThumbPointerDown($event, 'horizontal')\"\n ></div>\n</div>\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"malva-ui-core-scrollbar.js","sourceRoot":"","sources":["../../../../../libs/core/scrollbar/src/malva-ui-core-scrollbar.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/search-field/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC","sourcesContent":["export * from './lib/search-field/search-field';\nexport * from './lib/search-field/search-overlay-content';\n"]}
|