dap-design-system 0.62.3 → 0.63.0
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/README.md +5 -1
- package/dist/common/utils.d.ts +8 -0
- package/dist/common/utils.js +53 -48
- package/dist/common/utils.js.map +1 -1
- package/dist/components/accordion/accordion-base-element.js +15 -19
- package/dist/components/accordion/accordion-base-element.js.map +1 -1
- package/dist/components/accordion/accordion.component.d.ts +1 -0
- package/dist/components/accordion/accordion.component.js.map +1 -1
- package/dist/components/accordion-group/accordion-group.component.js +20 -24
- package/dist/components/accordion-group/accordion-group.component.js.map +1 -1
- package/dist/components/anchor-heading/anchor-heading.component.d.ts +1 -0
- package/dist/components/anchor-heading/anchor-heading.component.js +20 -23
- package/dist/components/anchor-heading/anchor-heading.component.js.map +1 -1
- package/dist/components/avatar/avatar.component.js +51 -55
- package/dist/components/avatar/avatar.component.js.map +1 -1
- package/dist/components/avatar-group/avatar-group.component.js +18 -22
- package/dist/components/avatar-group/avatar-group.component.js.map +1 -1
- package/dist/components/badge/badge.component.js +17 -20
- package/dist/components/badge/badge.component.js.map +1 -1
- package/dist/components/banner/banner.component.d.ts +1 -1
- package/dist/components/banner/banner.component.js +18 -24
- package/dist/components/banner/banner.component.js.map +1 -1
- package/dist/components/breadcrumb/breadcrumb.component.d.ts +2 -1
- package/dist/components/breadcrumb/breadcrumb.component.js +32 -32
- package/dist/components/breadcrumb/breadcrumb.component.js.map +1 -1
- package/dist/components/breadcrumb-item/breadcrumb-item.component.d.ts +8 -0
- package/dist/components/breadcrumb-item/breadcrumb-item.component.js +33 -28
- package/dist/components/breadcrumb-item/breadcrumb-item.component.js.map +1 -1
- package/dist/components/button/_styles/button.scss.js +1 -1
- package/dist/components/button/button.component.js +18 -22
- package/dist/components/button/button.component.js.map +1 -1
- package/dist/components/button-group/_styles/button-group-separator.scss.js +5 -0
- package/dist/components/button-group/_styles/button-group-separator.scss.js.map +1 -0
- package/dist/components/button-group/_styles/button-group-text.scss.js +5 -0
- package/dist/components/button-group/_styles/button-group-text.scss.js.map +1 -0
- package/dist/components/button-group/_styles/button-group.scss.js +5 -0
- package/dist/components/button-group/_styles/button-group.scss.js.map +1 -0
- package/dist/components/button-group/button-group-separator.component.d.ts +28 -0
- package/dist/components/button-group/button-group-separator.component.js +18 -0
- package/dist/components/button-group/button-group-separator.component.js.map +1 -0
- package/dist/components/button-group/button-group-separator.d.ts +8 -0
- package/dist/components/button-group/button-group-separator.js +6 -0
- package/dist/components/button-group/button-group-separator.js.map +1 -0
- package/dist/components/button-group/button-group-text.component.d.ts +33 -0
- package/dist/components/button-group/button-group-text.component.js +17 -0
- package/dist/components/button-group/button-group-text.component.js.map +1 -0
- package/dist/components/button-group/button-group-text.d.ts +8 -0
- package/dist/components/button-group/button-group-text.js +6 -0
- package/dist/components/button-group/button-group-text.js.map +1 -0
- package/dist/components/button-group/button-group.component.d.ts +52 -0
- package/dist/components/button-group/button-group.component.js +30 -0
- package/dist/components/button-group/button-group.component.js.map +1 -0
- package/dist/components/button-group/button-group.d.ts +8 -0
- package/dist/components/button-group/button-group.js +6 -0
- package/dist/components/button-group/button-group.js.map +1 -0
- package/dist/components/calendar/calendar-cell.component.js +26 -29
- package/dist/components/calendar/calendar-cell.component.js.map +1 -1
- package/dist/components/calendar/calendar.component.d.ts +10 -1
- package/dist/components/calendar/calendar.component.js +37 -46
- package/dist/components/calendar/calendar.component.js.map +1 -1
- package/dist/components/callout/callout.component.d.ts +4 -0
- package/dist/components/callout/callout.component.js +71 -69
- package/dist/components/callout/callout.component.js.map +1 -1
- package/dist/components/card/card-actions.component.js +8 -11
- package/dist/components/card/card-actions.component.js.map +1 -1
- package/dist/components/card/card-content.component.js +20 -23
- package/dist/components/card/card-content.component.js.map +1 -1
- package/dist/components/card/card-image.component.js +18 -21
- package/dist/components/card/card-image.component.js.map +1 -1
- package/dist/components/card/card-subtitle.component.js +18 -21
- package/dist/components/card/card-subtitle.component.js.map +1 -1
- package/dist/components/card/card-title.component.js +18 -21
- package/dist/components/card/card-title.component.js.map +1 -1
- package/dist/components/card/card.component.d.ts +1 -0
- package/dist/components/card/card.component.js +25 -28
- package/dist/components/card/card.component.js.map +1 -1
- package/dist/components/checkbox/_styles/checkbox.scss.js +1 -1
- package/dist/components/checkbox/checkbox.component.d.ts +7 -1
- package/dist/components/checkbox/checkbox.component.js +71 -74
- package/dist/components/checkbox/checkbox.component.js.map +1 -1
- package/dist/components/chip/chip.component.d.ts +1 -0
- package/dist/components/chip/chip.component.js +21 -26
- package/dist/components/chip/chip.component.js.map +1 -1
- package/dist/components/code-puncher/code-puncher-slot.component.js +34 -38
- package/dist/components/code-puncher/code-puncher-slot.component.js.map +1 -1
- package/dist/components/code-puncher/code-puncher.component.d.ts +4 -0
- package/dist/components/code-puncher/code-puncher.component.js +97 -102
- package/dist/components/code-puncher/code-puncher.component.js.map +1 -1
- package/dist/components/code-puncher/code-puncher.context.js +1 -1
- package/dist/components/code-puncher/code-puncher.context.js.map +1 -1
- package/dist/components/code-puncher/code-puncher.scss.js +1 -1
- package/dist/components/combobox/combobox.component.d.ts +9 -1
- package/dist/components/combobox/combobox.component.js.map +1 -1
- package/dist/components/combobox/combobox.scss.js +1 -1
- package/dist/components/combobox/comboboxBase.d.ts +29 -0
- package/dist/components/combobox/comboboxBase.js +218 -150
- package/dist/components/combobox/comboboxBase.js.map +1 -1
- package/dist/components/command/command-group.component.js +19 -23
- package/dist/components/command/command-group.component.js.map +1 -1
- package/dist/components/command/command-item.component.js +17 -22
- package/dist/components/command/command-item.component.js.map +1 -1
- package/dist/components/command/command.component.d.ts +3 -0
- package/dist/components/command/command.component.js +28 -33
- package/dist/components/command/command.component.js.map +1 -1
- package/dist/components/content-switcher/content-switcher-item.component.js +16 -19
- package/dist/components/content-switcher/content-switcher-item.component.js.map +1 -1
- package/dist/components/content-switcher/content-switcher.component.js +19 -22
- package/dist/components/content-switcher/content-switcher.component.js.map +1 -1
- package/dist/components/copybox-input/copybox-input.component.d.ts +11 -0
- package/dist/components/copybox-input/copybox-input.component.js +12 -16
- package/dist/components/copybox-input/copybox-input.component.js.map +1 -1
- package/dist/components/dap-badge/dap-badge.component.js +13 -18
- package/dist/components/dap-badge/dap-badge.component.js.map +1 -1
- package/dist/components/datatable/datatable.component.d.ts +17 -0
- package/dist/components/datatable/datatable.component.js +38 -42
- package/dist/components/datatable/datatable.component.js.map +1 -1
- package/dist/components/datatable/utils/cell-renderer.js +6 -8
- package/dist/components/datatable/utils/cell-renderer.js.map +1 -1
- package/dist/components/datepicker/datepicker.component.d.ts +8 -0
- package/dist/components/datepicker/datepicker.component.js +76 -81
- package/dist/components/datepicker/datepicker.component.js.map +1 -1
- package/dist/components/datepicker/datepicker.scss.js +1 -1
- package/dist/components/divider/divider.component.js +18 -21
- package/dist/components/divider/divider.component.js.map +1 -1
- package/dist/components/feedback/feedback.component.js +8 -11
- package/dist/components/feedback/feedback.component.js.map +1 -1
- package/dist/components/file-input/file-input-list-item.component.d.ts +1 -0
- package/dist/components/file-input/file-input-list-item.component.js +36 -40
- package/dist/components/file-input/file-input-list-item.component.js.map +1 -1
- package/dist/components/file-input/file-input-list.component.js +15 -20
- package/dist/components/file-input/file-input-list.component.js.map +1 -1
- package/dist/components/file-input/file-input-list.scss.js +1 -1
- package/dist/components/file-input/file-input.component.d.ts +3 -0
- package/dist/components/file-input/file-input.component.js +135 -142
- package/dist/components/file-input/file-input.component.js.map +1 -1
- package/dist/components/file-input/file-input.scss.js +1 -1
- package/dist/components/form/form-label/form-label.component.d.ts +1 -1
- package/dist/components/form/form-label/form-label.component.js +20 -23
- package/dist/components/form/form-label/form-label.component.js.map +1 -1
- package/dist/components/form/input-group/input-group.component.d.ts +4 -0
- package/dist/components/form/input-group/input-group.component.js +42 -42
- package/dist/components/form/input-group/input-group.component.js.map +1 -1
- package/dist/components/form/input-group/input-group.scss.js +2 -2
- package/dist/components/form/radio-group/radio-group.component.d.ts +5 -0
- package/dist/components/form/radio-group/radio-group.component.js +54 -55
- package/dist/components/form/radio-group/radio-group.component.js.map +1 -1
- package/dist/components/icon/icon.component.js +25 -28
- package/dist/components/icon/icon.component.js.map +1 -1
- package/dist/components/icon-button/icon-button.component.d.ts +1 -0
- package/dist/components/icon-button/icon-button.component.js +11 -14
- package/dist/components/icon-button/icon-button.component.js.map +1 -1
- package/dist/components/icon-button/icon-button.scss.js +1 -1
- package/dist/components/icons/arrows/arrows-arrow-down-line/arrows-arrow-down-line.component.js +9 -12
- package/dist/components/icons/arrows/arrows-arrow-down-line/arrows-arrow-down-line.component.js.map +1 -1
- package/dist/components/icons/arrows/arrows-arrow-down-s-fill/arrows-arrow-down-s-fill.component.js +7 -10
- package/dist/components/icons/arrows/arrows-arrow-down-s-fill/arrows-arrow-down-s-fill.component.js.map +1 -1
- package/dist/components/icons/arrows/arrows-arrow-down-s-line/arrows-arrow-down-s-line.component.js +12 -15
- package/dist/components/icons/arrows/arrows-arrow-down-s-line/arrows-arrow-down-s-line.component.js.map +1 -1
- package/dist/components/icons/arrows/arrows-arrow-left-down-line/arrows-arrow-left-down-line.component.js +8 -11
- package/dist/components/icons/arrows/arrows-arrow-left-down-line/arrows-arrow-left-down-line.component.js.map +1 -1
- package/dist/components/icons/arrows/arrows-arrow-left-l-line/arrows-arrow-left-l-line.component.js +15 -18
- package/dist/components/icons/arrows/arrows-arrow-left-l-line/arrows-arrow-left-l-line.component.js.map +1 -1
- package/dist/components/icons/arrows/arrows-arrow-left-line/arrows-arrow-left-line.component.js +7 -10
- package/dist/components/icons/arrows/arrows-arrow-left-line/arrows-arrow-left-line.component.js.map +1 -1
- package/dist/components/icons/arrows/arrows-arrow-left-s-fill/arrows-arrow-left-s-fill.component.js +10 -13
- package/dist/components/icons/arrows/arrows-arrow-left-s-fill/arrows-arrow-left-s-fill.component.js.map +1 -1
- package/dist/components/icons/arrows/arrows-arrow-left-s-line/arrows-arrow-left-s-line.component.js +7 -10
- package/dist/components/icons/arrows/arrows-arrow-left-s-line/arrows-arrow-left-s-line.component.js.map +1 -1
- package/dist/components/icons/arrows/arrows-arrow-left-up-line/arrows-arrow-left-up-line.component.js +6 -9
- package/dist/components/icons/arrows/arrows-arrow-left-up-line/arrows-arrow-left-up-line.component.js.map +1 -1
- package/dist/components/icons/arrows/arrows-arrow-right-down-line/arrows-arrow-right-down-line.component.js +18 -21
- package/dist/components/icons/arrows/arrows-arrow-right-down-line/arrows-arrow-right-down-line.component.js.map +1 -1
- package/dist/components/icons/arrows/arrows-arrow-right-l-line/arrows-arrow-right-l-line.component.js +15 -18
- package/dist/components/icons/arrows/arrows-arrow-right-l-line/arrows-arrow-right-l-line.component.js.map +1 -1
- package/dist/components/icons/arrows/arrows-arrow-right-line/arrows-arrow-right-line.component.js +17 -20
- package/dist/components/icons/arrows/arrows-arrow-right-line/arrows-arrow-right-line.component.js.map +1 -1
- package/dist/components/icons/arrows/arrows-arrow-right-s-fill/arrows-arrow-right-s-fill.component.js +17 -20
- package/dist/components/icons/arrows/arrows-arrow-right-s-fill/arrows-arrow-right-s-fill.component.js.map +1 -1
- package/dist/components/icons/arrows/arrows-arrow-right-s-line/arrows-arrow-right-s-line.component.js +17 -20
- package/dist/components/icons/arrows/arrows-arrow-right-s-line/arrows-arrow-right-s-line.component.js.map +1 -1
- package/dist/components/icons/arrows/arrows-arrow-right-up-line/arrows-arrow-right-up-line.component.js +18 -21
- package/dist/components/icons/arrows/arrows-arrow-right-up-line/arrows-arrow-right-up-line.component.js.map +1 -1
- package/dist/components/icons/arrows/arrows-arrow-up-line/arrows-arrow-up-line.component.js +9 -12
- package/dist/components/icons/arrows/arrows-arrow-up-line/arrows-arrow-up-line.component.js.map +1 -1
- package/dist/components/icons/arrows/arrows-arrow-up-s-fill/arrows-arrow-up-s-fill.component.js +8 -11
- package/dist/components/icons/arrows/arrows-arrow-up-s-fill/arrows-arrow-up-s-fill.component.js.map +1 -1
- package/dist/components/icons/arrows/arrows-arrow-up-s-line/arrows-arrow-up-s-line.component.js +9 -12
- package/dist/components/icons/arrows/arrows-arrow-up-s-line/arrows-arrow-up-s-line.component.js.map +1 -1
- package/dist/components/icons/arrows/arrows-expand-up-down-fill/arrows-expand-up-down-fill.component.js +11 -14
- package/dist/components/icons/arrows/arrows-expand-up-down-fill/arrows-expand-up-down-fill.component.js.map +1 -1
- package/dist/components/icons/buildings/buildings-home-6-line/buildings-home-6-line.component.js +10 -13
- package/dist/components/icons/buildings/buildings-home-6-line/buildings-home-6-line.component.js.map +1 -1
- package/dist/components/icons/business/business-calendar-line/business-calendar-line.component.js +11 -14
- package/dist/components/icons/business/business-calendar-line/business-calendar-line.component.js.map +1 -1
- package/dist/components/icons/design/design-edit-line/design-edit-line.component.js +6 -9
- package/dist/components/icons/design/design-edit-line/design-edit-line.component.js.map +1 -1
- package/dist/components/icons/design/design-tools-line/design-tools-line.component.js +12 -15
- package/dist/components/icons/design/design-tools-line/design-tools-line.component.js.map +1 -1
- package/dist/components/icons/device/device-computer-line/device-computer-line.component.js +16 -19
- package/dist/components/icons/device/device-computer-line/device-computer-line.component.js.map +1 -1
- package/dist/components/icons/document/document-clipboard-line/document-clipboard-line.component.js +11 -14
- package/dist/components/icons/document/document-clipboard-line/document-clipboard-line.component.js.map +1 -1
- package/dist/components/icons/document/document-file-copy-line/document-file-copy-line.component.js +10 -13
- package/dist/components/icons/document/document-file-copy-line/document-file-copy-line.component.js.map +1 -1
- package/dist/components/icons/document/document-file-image-line/document-file-image-line.component.js +11 -14
- package/dist/components/icons/document/document-file-image-line/document-file-image-line.component.js.map +1 -1
- package/dist/components/icons/document/document-file-music-line/document-file-music-line.component.js +11 -14
- package/dist/components/icons/document/document-file-music-line/document-file-music-line.component.js.map +1 -1
- package/dist/components/icons/document/document-file-text-line/document-file-text-line.component.js +10 -13
- package/dist/components/icons/document/document-file-text-line/document-file-text-line.component.js.map +1 -1
- package/dist/components/icons/document/document-file-video-line/document-file-video-line.component.js +11 -14
- package/dist/components/icons/document/document-file-video-line/document-file-video-line.component.js.map +1 -1
- package/dist/components/icons/document/document-folder-line/document-folder-line.component.js +11 -14
- package/dist/components/icons/document/document-folder-line/document-folder-line.component.js.map +1 -1
- package/dist/components/icons/document/document-folder-open-line/document-folder-open-line.component.js +10 -13
- package/dist/components/icons/document/document-folder-open-line/document-folder-open-line.component.js.map +1 -1
- package/dist/components/icons/editor/editor-separator/editor-separator.component.js +10 -13
- package/dist/components/icons/editor/editor-separator/editor-separator.component.js.map +1 -1
- package/dist/components/icons/health/health-heart-fill/health-heart-fill.component.js +8 -11
- package/dist/components/icons/health/health-heart-fill/health-heart-fill.component.js.map +1 -1
- package/dist/components/icons/health/health-heart-line/health-heart-line.component.js +10 -13
- package/dist/components/icons/health/health-heart-line/health-heart-line.component.js.map +1 -1
- package/dist/components/icons/others/others-cookie-line/others-cookie-line.component.js +6 -9
- package/dist/components/icons/others/others-cookie-line/others-cookie-line.component.js.map +1 -1
- package/dist/components/icons/system/system-add-line/system-add-line.component.js +11 -14
- package/dist/components/icons/system/system-add-line/system-add-line.component.js.map +1 -1
- package/dist/components/icons/system/system-alert-fill/system-alert-fill.component.js +9 -12
- package/dist/components/icons/system/system-alert-fill/system-alert-fill.component.js.map +1 -1
- package/dist/components/icons/system/system-alert-line/system-alert-line.component.js +11 -14
- package/dist/components/icons/system/system-alert-line/system-alert-line.component.js.map +1 -1
- package/dist/components/icons/system/system-check-line/system-check-line.component.js +9 -12
- package/dist/components/icons/system/system-check-line/system-check-line.component.js.map +1 -1
- package/dist/components/icons/system/system-check-line2/system-check-line2.component.js +11 -14
- package/dist/components/icons/system/system-check-line2/system-check-line2.component.js.map +1 -1
- package/dist/components/icons/system/system-checkbox-blank-circle-fill/system-checkbox-blank-circle-fill.component.js +9 -12
- package/dist/components/icons/system/system-checkbox-blank-circle-fill/system-checkbox-blank-circle-fill.component.js.map +1 -1
- package/dist/components/icons/system/system-checkbox-blank-circle-fill-check/system-checkbox-blank-circle-fill-check.component.js +12 -15
- package/dist/components/icons/system/system-checkbox-blank-circle-fill-check/system-checkbox-blank-circle-fill-check.component.js.map +1 -1
- package/dist/components/icons/system/system-checkbox-blank-circle-line/system-checkbox-blank-circle-line.component.js +13 -16
- package/dist/components/icons/system/system-checkbox-blank-circle-line/system-checkbox-blank-circle-line.component.js.map +1 -1
- package/dist/components/icons/system/system-checkbox-circle-fill/system-checkbox-circle-fill.component.js +11 -14
- package/dist/components/icons/system/system-checkbox-circle-fill/system-checkbox-circle-fill.component.js.map +1 -1
- package/dist/components/icons/system/system-checkbox-circle-line/system-checkbox-circle-line.component.js +11 -14
- package/dist/components/icons/system/system-checkbox-circle-line/system-checkbox-circle-line.component.js.map +1 -1
- package/dist/components/icons/system/system-close-circle-fill/system-close-circle-fill.component.js +11 -14
- package/dist/components/icons/system/system-close-circle-fill/system-close-circle-fill.component.js.map +1 -1
- package/dist/components/icons/system/system-close-circle-line/system-close-circle-line.component.js +7 -10
- package/dist/components/icons/system/system-close-circle-line/system-close-circle-line.component.js.map +1 -1
- package/dist/components/icons/system/system-close-fill/system-close-fill.component.js +11 -14
- package/dist/components/icons/system/system-close-fill/system-close-fill.component.js.map +1 -1
- package/dist/components/icons/system/system-close-line/system-close-line.component.js +11 -14
- package/dist/components/icons/system/system-close-line/system-close-line.component.js.map +1 -1
- package/dist/components/icons/system/system-delete-bin-fill/system-delete-bin-fill.component.js +7 -10
- package/dist/components/icons/system/system-delete-bin-fill/system-delete-bin-fill.component.js.map +1 -1
- package/dist/components/icons/system/system-delete-bin-line/system-delete-bin-line.component.js +9 -12
- package/dist/components/icons/system/system-delete-bin-line/system-delete-bin-line.component.js.map +1 -1
- package/dist/components/icons/system/system-download-line/system-download-line.component.js +9 -12
- package/dist/components/icons/system/system-download-line/system-download-line.component.js.map +1 -1
- package/dist/components/icons/system/system-error-warning-fill/system-error-warning-fill.component.js +7 -10
- package/dist/components/icons/system/system-error-warning-fill/system-error-warning-fill.component.js.map +1 -1
- package/dist/components/icons/system/system-error-warning-line/system-error-warning-line.component.js +11 -14
- package/dist/components/icons/system/system-error-warning-line/system-error-warning-line.component.js.map +1 -1
- package/dist/components/icons/system/system-external-link-line/system-external-link-line.component.js +9 -12
- package/dist/components/icons/system/system-external-link-line/system-external-link-line.component.js.map +1 -1
- package/dist/components/icons/system/system-eye-line/system-eye-line.component.js +11 -14
- package/dist/components/icons/system/system-eye-line/system-eye-line.component.js.map +1 -1
- package/dist/components/icons/system/system-eye-off-line/system-eye-off-line.component.js +6 -9
- package/dist/components/icons/system/system-eye-off-line/system-eye-off-line.component.js.map +1 -1
- package/dist/components/icons/system/system-forbid-fill/system-forbid-fill.component.js +9 -12
- package/dist/components/icons/system/system-forbid-fill/system-forbid-fill.component.js.map +1 -1
- package/dist/components/icons/system/system-information-2-fill/system-information-2-fill.component.js +9 -12
- package/dist/components/icons/system/system-information-2-fill/system-information-2-fill.component.js.map +1 -1
- package/dist/components/icons/system/system-information-fill/system-information-fill.component.js +9 -12
- package/dist/components/icons/system/system-information-fill/system-information-fill.component.js.map +1 -1
- package/dist/components/icons/system/system-information-line/system-information-line.component.js +9 -12
- package/dist/components/icons/system/system-information-line/system-information-line.component.js.map +1 -1
- package/dist/components/icons/system/system-lightbulb-fill/system-lightbulb-fill.component.js +9 -12
- package/dist/components/icons/system/system-lightbulb-fill/system-lightbulb-fill.component.js.map +1 -1
- package/dist/components/icons/system/system-loading-spinner/system-loading-spinner.component.js +9 -12
- package/dist/components/icons/system/system-loading-spinner/system-loading-spinner.component.js.map +1 -1
- package/dist/components/icons/system/system-lock-fill/system-lock-fill.component.js +13 -16
- package/dist/components/icons/system/system-lock-fill/system-lock-fill.component.js.map +1 -1
- package/dist/components/icons/system/system-lock-line/system-lock-line.component.js +10 -13
- package/dist/components/icons/system/system-lock-line/system-lock-line.component.js.map +1 -1
- package/dist/components/icons/system/system-menu-line/system-menu-line.component.js +9 -12
- package/dist/components/icons/system/system-menu-line/system-menu-line.component.js.map +1 -1
- package/dist/components/icons/system/system-menu-line-s/system-menu-line-s.component.js +9 -12
- package/dist/components/icons/system/system-menu-line-s/system-menu-line-s.component.js.map +1 -1
- package/dist/components/icons/system/system-more-2-line/system-more-2-line.component.js +10 -13
- package/dist/components/icons/system/system-more-2-line/system-more-2-line.component.js.map +1 -1
- package/dist/components/icons/system/system-more-line/system-more-line.component.js +16 -19
- package/dist/components/icons/system/system-more-line/system-more-line.component.js.map +1 -1
- package/dist/components/icons/system/system-search-line/system-search-line.component.js +11 -14
- package/dist/components/icons/system/system-search-line/system-search-line.component.js.map +1 -1
- package/dist/components/icons/system/system-share-line/system-share-line.component.js +9 -12
- package/dist/components/icons/system/system-share-line/system-share-line.component.js.map +1 -1
- package/dist/components/icons/system/system-shield-check-fill/system-shield-check-fill.component.js +8 -11
- package/dist/components/icons/system/system-shield-check-fill/system-shield-check-fill.component.js.map +1 -1
- package/dist/components/icons/system/system-shield-check-line/system-shield-check-line.component.js +6 -9
- package/dist/components/icons/system/system-shield-check-line/system-shield-check-line.component.js.map +1 -1
- package/dist/components/icons/system/system-star-fill/system-star-fill.component.js +13 -16
- package/dist/components/icons/system/system-star-fill/system-star-fill.component.js.map +1 -1
- package/dist/components/icons/system/system-subtract-line/system-subtract-line.component.js +11 -14
- package/dist/components/icons/system/system-subtract-line/system-subtract-line.component.js.map +1 -1
- package/dist/components/icons/system/system-subtract-line2/system-subtract-line2.component.js +7 -10
- package/dist/components/icons/system/system-subtract-line2/system-subtract-line2.component.js.map +1 -1
- package/dist/components/icons/system/system-time-fill/system-time-fill.component.js +11 -14
- package/dist/components/icons/system/system-time-fill/system-time-fill.component.js.map +1 -1
- package/dist/components/icons/system/system-time-line/system-time-line.component.js +11 -14
- package/dist/components/icons/system/system-time-line/system-time-line.component.js.map +1 -1
- package/dist/components/icons/system/system-upload-2-fill/system-upload-2-fill.component.js +5 -8
- package/dist/components/icons/system/system-upload-2-fill/system-upload-2-fill.component.js.map +1 -1
- package/dist/components/icons/system/system-upload-2-line/system-upload-2-line.component.js +7 -10
- package/dist/components/icons/system/system-upload-2-line/system-upload-2-line.component.js.map +1 -1
- package/dist/components/icons/system/system-upload-line/system-upload-line.component.js +9 -12
- package/dist/components/icons/system/system-upload-line/system-upload-line.component.js.map +1 -1
- package/dist/components/icons/system/system-zoom-in-line/system-zoom-in-line.component.js +9 -12
- package/dist/components/icons/system/system-zoom-in-line/system-zoom-in-line.component.js.map +1 -1
- package/dist/components/icons/system/system-zoom-out-line/system-zoom-out-line.component.js +11 -14
- package/dist/components/icons/system/system-zoom-out-line/system-zoom-out-line.component.js.map +1 -1
- package/dist/components/icons/user/user-account-circle-fill/user-account-circle-fill.component.js +16 -19
- package/dist/components/icons/user/user-account-circle-fill/user-account-circle-fill.component.js.map +1 -1
- package/dist/components/icons/user/user-account-circle-line/user-account-circle-line.component.js +13 -16
- package/dist/components/icons/user/user-account-circle-line/user-account-circle-line.component.js.map +1 -1
- package/dist/components/icons/user/user-user-fill/user-user-fill.component.js +8 -11
- package/dist/components/icons/user/user-user-fill/user-user-fill.component.js.map +1 -1
- package/dist/components/icons/user/user-user-line/user-user-line.component.js +11 -14
- package/dist/components/icons/user/user-user-line/user-user-line.component.js.map +1 -1
- package/dist/components/image-zoom/image-zoom.component.js +12 -17
- package/dist/components/image-zoom/image-zoom.component.js.map +1 -1
- package/dist/components/input/_styles/input.scss.js +1 -1
- package/dist/components/input/input-base-element.js +41 -47
- package/dist/components/input/input-base-element.js.map +1 -1
- package/dist/components/label/_styles/label.scss.js +1 -1
- package/dist/components/label/label.component.js +8 -11
- package/dist/components/label/label.component.js.map +1 -1
- package/dist/components/link/link.component.js +23 -27
- package/dist/components/link/link.component.js.map +1 -1
- package/dist/components/list-item/list-item.component.d.ts +2 -0
- package/dist/components/list-item/list-item.component.js +24 -29
- package/dist/components/list-item/list-item.component.js.map +1 -1
- package/dist/components/modal/modal-base-element.js +36 -42
- package/dist/components/modal/modal-base-element.js.map +1 -1
- package/dist/components/navigation-menu/navigation-menu-item.component.d.ts +9 -1
- package/dist/components/navigation-menu/navigation-menu-item.component.js +36 -31
- package/dist/components/navigation-menu/navigation-menu-item.component.js.map +1 -1
- package/dist/components/navigation-menu/navigation-menu.component.js +20 -24
- package/dist/components/navigation-menu/navigation-menu.component.js.map +1 -1
- package/dist/components/notification-badge/notification-badge.component.js +28 -32
- package/dist/components/notification-badge/notification-badge.component.js.map +1 -1
- package/dist/components/number-input/number-input.component.d.ts +7 -0
- package/dist/components/number-input/number-input.component.js +23 -29
- package/dist/components/number-input/number-input.component.js.map +1 -1
- package/dist/components/official-website-banner/official-website-banner.component.d.ts +1 -0
- package/dist/components/official-website-banner/official-website-banner.component.js +19 -24
- package/dist/components/official-website-banner/official-website-banner.component.js.map +1 -1
- package/dist/components/option-group/option-group.component.js +17 -20
- package/dist/components/option-group/option-group.component.js.map +1 -1
- package/dist/components/option-item/option-item.component.d.ts +10 -0
- package/dist/components/option-item/option-item.component.js +66 -60
- package/dist/components/option-item/option-item.component.js.map +1 -1
- package/dist/components/option-item/option-item.scss.js +1 -1
- package/dist/components/option-list/__test__/listbox-harness.d.ts +129 -0
- package/dist/components/option-list/listbox-state.d.ts +230 -0
- package/dist/components/option-list/listbox-state.js +312 -0
- package/dist/components/option-list/listbox-state.js.map +1 -0
- package/dist/components/option-list/option-data.d.ts +35 -0
- package/dist/components/option-list/option-data.js +34 -0
- package/dist/components/option-list/option-data.js.map +1 -0
- package/dist/components/option-list/option-list.component.d.ts +68 -14
- package/dist/components/option-list/option-list.component.js +364 -274
- package/dist/components/option-list/option-list.component.js.map +1 -1
- package/dist/components/overlay/overlay.component.js +10 -13
- package/dist/components/overlay/overlay.component.js.map +1 -1
- package/dist/components/pager/pager.component.js +31 -37
- package/dist/components/pager/pager.component.js.map +1 -1
- package/dist/components/password-input/password-input.component.d.ts +12 -5
- package/dist/components/password-input/password-input.component.js +24 -30
- package/dist/components/password-input/password-input.component.js.map +1 -1
- package/dist/components/popup/popup-base-element.d.ts +6 -0
- package/dist/components/popup/popup-base-element.js +96 -71
- package/dist/components/popup/popup-base-element.js.map +1 -1
- package/dist/components/progress/progress.component.js +17 -21
- package/dist/components/progress/progress.component.js.map +1 -1
- package/dist/components/radio-button/_styles/radio-button.scss.js +1 -1
- package/dist/components/radio-button/radio-button.component.d.ts +5 -0
- package/dist/components/radio-button/radio-button.component.js +58 -62
- package/dist/components/radio-button/radio-button.component.js.map +1 -1
- package/dist/components/rating/_styles/rating.scss.js +2 -2
- package/dist/components/rating/rating.component.js +37 -41
- package/dist/components/rating/rating.component.js.map +1 -1
- package/dist/components/scroll-area/scroll-area.component.d.ts +2 -1
- package/dist/components/scroll-area/scroll-area.component.js +25 -28
- package/dist/components/scroll-area/scroll-area.component.js.map +1 -1
- package/dist/components/scroll-progress/scroll-progress.component.js +13 -17
- package/dist/components/scroll-progress/scroll-progress.component.js.map +1 -1
- package/dist/components/search/search.component.d.ts +6 -1
- package/dist/components/search/search.component.js.map +1 -1
- package/dist/components/select/select.component.d.ts +47 -0
- package/dist/components/select/select.component.js +271 -157
- package/dist/components/select/select.component.js.map +1 -1
- package/dist/components/select/select.scss.js +1 -1
- package/dist/components/sidenav/sidenav-group.component.d.ts +1 -0
- package/dist/components/sidenav/sidenav-group.component.js +11 -14
- package/dist/components/sidenav/sidenav-group.component.js.map +1 -1
- package/dist/components/sidenav/sidenav-item.component.js +20 -23
- package/dist/components/sidenav/sidenav-item.component.js.map +1 -1
- package/dist/components/sidenav/sidenav.component.js +17 -20
- package/dist/components/sidenav/sidenav.component.js.map +1 -1
- package/dist/components/skeleton/skeleton.component.js +9 -12
- package/dist/components/skeleton/skeleton.component.js.map +1 -1
- package/dist/components/skip-link/skip-link.component.js +13 -16
- package/dist/components/skip-link/skip-link.component.js.map +1 -1
- package/dist/components/snackbar/snackbar-message.component.d.ts +3 -1
- package/dist/components/snackbar/snackbar-message.component.js +39 -44
- package/dist/components/snackbar/snackbar-message.component.js.map +1 -1
- package/dist/components/snackbar/snackbar.component.d.ts +0 -1
- package/dist/components/snackbar/snackbar.component.js +36 -42
- package/dist/components/snackbar/snackbar.component.js.map +1 -1
- package/dist/components/spinner/spinner.component.js +33 -38
- package/dist/components/spinner/spinner.component.js.map +1 -1
- package/dist/components/stack/stack.component.d.ts +2 -1
- package/dist/components/stack/stack.component.js +16 -19
- package/dist/components/stack/stack.component.js.map +1 -1
- package/dist/components/switch/switch.component.d.ts +6 -0
- package/dist/components/switch/switch.component.js +48 -51
- package/dist/components/switch/switch.component.js.map +1 -1
- package/dist/components/switch/switch.scss.js +1 -1
- package/dist/components/tab/tab-group.component.d.ts +8 -3
- package/dist/components/tab/tab-group.component.js +43 -33
- package/dist/components/tab/tab-group.component.js.map +1 -1
- package/dist/components/tab/tab.component.js +22 -25
- package/dist/components/tab/tab.component.js.map +1 -1
- package/dist/components/table/table-cell.component.d.ts +1 -1
- package/dist/components/table/table-cell.component.js +16 -19
- package/dist/components/table/table-cell.component.js.map +1 -1
- package/dist/components/table/table-header.component.js +21 -24
- package/dist/components/table/table-header.component.js.map +1 -1
- package/dist/components/table/table-row.component.js +15 -18
- package/dist/components/table/table-row.component.js.map +1 -1
- package/dist/components/table/table.component.d.ts +2 -0
- package/dist/components/table/table.component.js +18 -22
- package/dist/components/table/table.component.js.map +1 -1
- package/dist/components/textarea/textarea.component.d.ts +2 -0
- package/dist/components/textarea/textarea.component.js +42 -46
- package/dist/components/textarea/textarea.component.js.map +1 -1
- package/dist/components/textarea/textarea.scss.js +1 -1
- package/dist/components/timeline/timeline-item.component.js +7 -10
- package/dist/components/timeline/timeline-item.component.js.map +1 -1
- package/dist/components/timeline/timeline.component.js +5 -8
- package/dist/components/timeline/timeline.component.js.map +1 -1
- package/dist/components/timepicker/time-grid.component.d.ts +3 -0
- package/dist/components/timepicker/time-grid.component.js +12 -15
- package/dist/components/timepicker/time-grid.component.js.map +1 -1
- package/dist/components/timepicker/timepicker.component.d.ts +5 -0
- package/dist/components/timepicker/timepicker.component.js +90 -95
- package/dist/components/timepicker/timepicker.component.js.map +1 -1
- package/dist/components/timepicker/timepicker.scss.js +1 -1
- package/dist/components/toc/toc.component.d.ts +2 -0
- package/dist/components/toc/toc.component.js +58 -61
- package/dist/components/toc/toc.component.js.map +1 -1
- package/dist/components/toggle-button/toggle-button.component.js +9 -12
- package/dist/components/toggle-button/toggle-button.component.js.map +1 -1
- package/dist/components/tooltip/tooltip.component.d.ts +2 -0
- package/dist/components/tooltip/tooltip.component.js +16 -18
- package/dist/components/tooltip/tooltip.component.js.map +1 -1
- package/dist/components/tray/tray.component.d.ts +4 -1
- package/dist/components/tray/tray.component.js +13 -16
- package/dist/components/tray/tray.component.js.map +1 -1
- package/dist/components/typography/typography.component.js +38 -41
- package/dist/components/typography/typography.component.js.map +1 -1
- package/dist/components.d.ts +3 -0
- package/dist/components.js +204 -195
- package/dist/components.js.map +1 -1
- package/dist/components.native.css +5 -2
- package/dist/components.native.css.map +1 -1
- package/dist/dap-design-system.d.ts +3 -0
- package/dist/dds-preupgrade.css +57 -0
- package/dist/dds.js +383 -374
- package/dist/dds.js.map +1 -1
- package/dist/internal/dds-hu-element.d.ts +8 -0
- package/dist/internal/dds-hu-element.js +40 -41
- package/dist/internal/dds-hu-element.js.map +1 -1
- package/dist/internal/mixin/choiceElementMixin.js +7 -7
- package/dist/internal/mixin/feedbackMixin.js +13 -15
- package/dist/internal/mixin/feedbackMixin.js.map +1 -1
- package/dist/internal/mixin/focusableMixin.js +6 -6
- package/dist/internal/mixin/formElementMixin.js +1 -1
- package/dist/internal/mixin/labelPositionedMixin.js +1 -1
- package/dist/internal/mixin/labelableMixin.d.ts +1 -1
- package/dist/internal/mixin/labelableMixin.js +61 -63
- package/dist/internal/mixin/labelableMixin.js.map +1 -1
- package/dist/internal/mixin/sizedMixin.js +29 -27
- package/dist/internal/mixin/sizedMixin.js.map +1 -1
- package/dist/internal/templates/formLabel.d.ts +41 -0
- package/dist/internal/templates/formLabel.js +47 -0
- package/dist/internal/templates/formLabel.js.map +1 -0
- package/dist/localization/locales/de.json.js +7 -7
- package/dist/localization/locales/en.json.js +6 -6
- package/dist/localization/locales/hu.json.js +1 -1
- package/dist/localization/localization.d.ts +1 -2
- package/dist/localization/localization.js +77 -76
- package/dist/localization/localization.js.map +1 -1
- package/dist/localization/localize-controller.d.ts +12 -0
- package/dist/localization/localize-controller.js +51 -0
- package/dist/localization/localize-controller.js.map +1 -0
- package/dist/manifest/types/vue/index.d.ts +509 -292
- package/dist/manifest/vscode.html-custom-data.json +328 -269
- package/dist/manifest/web-types.json +834 -720
- package/dist/react/dap-ds-accordion/index.d.ts +1 -0
- package/dist/react/dap-ds-accordion/index.js.map +1 -1
- package/dist/react/dap-ds-anchor-heading/index.d.ts +1 -0
- package/dist/react/dap-ds-anchor-heading/index.js.map +1 -1
- package/dist/react/dap-ds-banner/index.d.ts +1 -1
- package/dist/react/dap-ds-banner/index.js.map +1 -1
- package/dist/react/dap-ds-breadcrumb/index.d.ts +1 -1
- package/dist/react/dap-ds-breadcrumb/index.js.map +1 -1
- package/dist/react/dap-ds-button-group/index.d.ts +45 -0
- package/dist/react/dap-ds-button-group/index.js +15 -0
- package/dist/react/dap-ds-button-group/index.js.map +1 -0
- package/dist/react/dap-ds-button-group-separator/index.d.ts +24 -0
- package/dist/react/dap-ds-button-group-separator/index.js +15 -0
- package/dist/react/dap-ds-button-group-separator/index.js.map +1 -0
- package/dist/react/dap-ds-button-group-text/index.d.ts +30 -0
- package/dist/react/dap-ds-button-group-text/index.js +15 -0
- package/dist/react/dap-ds-button-group-text/index.js.map +1 -0
- package/dist/react/dap-ds-calendar/index.d.ts +3 -0
- package/dist/react/dap-ds-calendar/index.js.map +1 -1
- package/dist/react/dap-ds-callout/index.d.ts +1 -0
- package/dist/react/dap-ds-callout/index.js.map +1 -1
- package/dist/react/dap-ds-card/index.d.ts +1 -0
- package/dist/react/dap-ds-card/index.js.map +1 -1
- package/dist/react/dap-ds-checkbox/index.d.ts +7 -1
- package/dist/react/dap-ds-checkbox/index.js.map +1 -1
- package/dist/react/dap-ds-chip/index.d.ts +1 -0
- package/dist/react/dap-ds-chip/index.js.map +1 -1
- package/dist/react/dap-ds-code-puncher/index.d.ts +4 -0
- package/dist/react/dap-ds-code-puncher/index.js.map +1 -1
- package/dist/react/dap-ds-combobox/index.d.ts +9 -1
- package/dist/react/dap-ds-combobox/index.js.map +1 -1
- package/dist/react/dap-ds-command/index.d.ts +3 -0
- package/dist/react/dap-ds-command/index.js.map +1 -1
- package/dist/react/dap-ds-copybox-input/index.d.ts +11 -0
- package/dist/react/dap-ds-copybox-input/index.js.map +1 -1
- package/dist/react/dap-ds-datatable/index.d.ts +17 -0
- package/dist/react/dap-ds-datatable/index.js.map +1 -1
- package/dist/react/dap-ds-datepicker/index.d.ts +8 -0
- package/dist/react/dap-ds-datepicker/index.js.map +1 -1
- package/dist/react/dap-ds-file-input/index.d.ts +3 -0
- package/dist/react/dap-ds-file-input/index.js.map +1 -1
- package/dist/react/dap-ds-file-input-list-item/index.d.ts +1 -0
- package/dist/react/dap-ds-file-input-list-item/index.js.map +1 -1
- package/dist/react/dap-ds-form-label/index.d.ts +1 -1
- package/dist/react/dap-ds-form-label/index.js.map +1 -1
- package/dist/react/dap-ds-icon-button/index.d.ts +1 -0
- package/dist/react/dap-ds-icon-button/index.js.map +1 -1
- package/dist/react/dap-ds-input-group/index.d.ts +4 -0
- package/dist/react/dap-ds-input-group/index.js.map +1 -1
- package/dist/react/dap-ds-list-item/index.d.ts +2 -0
- package/dist/react/dap-ds-list-item/index.js.map +1 -1
- package/dist/react/dap-ds-number-input/index.d.ts +7 -0
- package/dist/react/dap-ds-number-input/index.js.map +1 -1
- package/dist/react/dap-ds-official-website-banner/index.d.ts +1 -0
- package/dist/react/dap-ds-official-website-banner/index.js.map +1 -1
- package/dist/react/dap-ds-option-item/index.d.ts +1 -0
- package/dist/react/dap-ds-option-item/index.js.map +1 -1
- package/dist/react/dap-ds-option-list/index.d.ts +1 -1
- package/dist/react/dap-ds-option-list/index.js.map +1 -1
- package/dist/react/dap-ds-password-input/index.d.ts +12 -5
- package/dist/react/dap-ds-password-input/index.js.map +1 -1
- package/dist/react/dap-ds-radio-button/index.d.ts +5 -0
- package/dist/react/dap-ds-radio-button/index.js.map +1 -1
- package/dist/react/dap-ds-radio-group/index.d.ts +5 -0
- package/dist/react/dap-ds-radio-group/index.js.map +1 -1
- package/dist/react/dap-ds-scroll-area/index.d.ts +2 -1
- package/dist/react/dap-ds-scroll-area/index.js.map +1 -1
- package/dist/react/dap-ds-search/index.d.ts +6 -1
- package/dist/react/dap-ds-search/index.js.map +1 -1
- package/dist/react/dap-ds-select/index.d.ts +6 -0
- package/dist/react/dap-ds-select/index.js.map +1 -1
- package/dist/react/dap-ds-sidenav-group/index.d.ts +1 -0
- package/dist/react/dap-ds-sidenav-group/index.js.map +1 -1
- package/dist/react/dap-ds-snackbar/index.d.ts +0 -1
- package/dist/react/dap-ds-snackbar/index.js.map +1 -1
- package/dist/react/dap-ds-snackbar-message/index.d.ts +3 -1
- package/dist/react/dap-ds-snackbar-message/index.js.map +1 -1
- package/dist/react/dap-ds-stack/index.d.ts +2 -1
- package/dist/react/dap-ds-stack/index.js.map +1 -1
- package/dist/react/dap-ds-switch/index.d.ts +6 -0
- package/dist/react/dap-ds-switch/index.js.map +1 -1
- package/dist/react/dap-ds-tab-group/index.d.ts +4 -2
- package/dist/react/dap-ds-tab-group/index.js.map +1 -1
- package/dist/react/dap-ds-table/index.d.ts +2 -0
- package/dist/react/dap-ds-table/index.js.map +1 -1
- package/dist/react/dap-ds-table-cell/index.d.ts +1 -1
- package/dist/react/dap-ds-table-cell/index.js.map +1 -1
- package/dist/react/dap-ds-textarea/index.d.ts +2 -0
- package/dist/react/dap-ds-textarea/index.js.map +1 -1
- package/dist/react/dap-ds-time-grid/index.d.ts +3 -0
- package/dist/react/dap-ds-time-grid/index.js.map +1 -1
- package/dist/react/dap-ds-timepicker/index.d.ts +5 -0
- package/dist/react/dap-ds-timepicker/index.js.map +1 -1
- package/dist/react/dap-ds-toc/index.d.ts +2 -0
- package/dist/react/dap-ds-toc/index.js.map +1 -1
- package/dist/react/dap-ds-tooltip/index.d.ts +2 -0
- package/dist/react/dap-ds-tooltip/index.js.map +1 -1
- package/dist/react/dap-ds-tray/index.d.ts +4 -1
- package/dist/react/dap-ds-tray/index.js.map +1 -1
- package/dist/react/index.d.ts +11 -8
- package/dist/react-types.ts +11 -8
- package/dist/react.js +362 -356
- package/dist/react.js.map +1 -1
- package/package.json +17 -3
- package/dist/node_modules/@lit/context/lib/context-request-event.js +0 -14
- package/dist/node_modules/@lit/context/lib/context-request-event.js.map +0 -1
- package/dist/node_modules/@lit/context/lib/controllers/context-consumer.js +0 -31
- package/dist/node_modules/@lit/context/lib/controllers/context-consumer.js.map +0 -1
- package/dist/node_modules/@lit/context/lib/controllers/context-provider.js +0 -40
- package/dist/node_modules/@lit/context/lib/controllers/context-provider.js.map +0 -1
- package/dist/node_modules/@lit/context/lib/create-context.js +0 -12
- package/dist/node_modules/@lit/context/lib/create-context.js.map +0 -1
- package/dist/node_modules/@lit/context/lib/value-notifier.js +0 -37
- package/dist/node_modules/@lit/context/lib/value-notifier.js.map +0 -1
- package/dist/node_modules/@lit/reactive-element/css-tag.js +0 -51
- package/dist/node_modules/@lit/reactive-element/css-tag.js.map +0 -1
- package/dist/node_modules/@lit/reactive-element/decorators/base.js +0 -10
- package/dist/node_modules/@lit/reactive-element/decorators/base.js.map +0 -1
- package/dist/node_modules/@lit/reactive-element/decorators/property.js +0 -38
- package/dist/node_modules/@lit/reactive-element/decorators/property.js.map +0 -1
- package/dist/node_modules/@lit/reactive-element/decorators/query-all.js +0 -17
- package/dist/node_modules/@lit/reactive-element/decorators/query-all.js.map +0 -1
- package/dist/node_modules/@lit/reactive-element/decorators/query-assigned-elements.js +0 -20
- package/dist/node_modules/@lit/reactive-element/decorators/query-assigned-elements.js.map +0 -1
- package/dist/node_modules/@lit/reactive-element/decorators/query-assigned-nodes.js +0 -20
- package/dist/node_modules/@lit/reactive-element/decorators/query-assigned-nodes.js.map +0 -1
- package/dist/node_modules/@lit/reactive-element/decorators/query.js +0 -21
- package/dist/node_modules/@lit/reactive-element/decorators/query.js.map +0 -1
- package/dist/node_modules/@lit/reactive-element/decorators/state.js +0 -25
- package/dist/node_modules/@lit/reactive-element/decorators/state.js.map +0 -1
- package/dist/node_modules/@lit/reactive-element/reactive-element.js +0 -276
- package/dist/node_modules/@lit/reactive-element/reactive-element.js.map +0 -1
- package/dist/node_modules/lit-element/lit-element.js +0 -53
- package/dist/node_modules/lit-element/lit-element.js.map +0 -1
- package/dist/node_modules/lit-html/async-directive.js +0 -71
- package/dist/node_modules/lit-html/async-directive.js.map +0 -1
- package/dist/node_modules/lit-html/directive-helpers.js +0 -46
- package/dist/node_modules/lit-html/directive-helpers.js.map +0 -1
- package/dist/node_modules/lit-html/directive.js +0 -28
- package/dist/node_modules/lit-html/directive.js.map +0 -1
- package/dist/node_modules/lit-html/directives/if-defined.js +0 -11
- package/dist/node_modules/lit-html/directives/if-defined.js.map +0 -1
- package/dist/node_modules/lit-html/directives/map.js +0 -15
- package/dist/node_modules/lit-html/directives/map.js.map +0 -1
- package/dist/node_modules/lit-html/directives/repeat.js +0 -63
- package/dist/node_modules/lit-html/directives/repeat.js.map +0 -1
- package/dist/node_modules/lit-html/directives/style-map.js +0 -37
- package/dist/node_modules/lit-html/directives/style-map.js.map +0 -1
- package/dist/node_modules/lit-html/lit-html.js +0 -249
- package/dist/node_modules/lit-html/lit-html.js.map +0 -1
- package/dist/node_modules/lit-html/static.js +0 -34
- package/dist/node_modules/lit-html/static.js.map +0 -1
- package/dist/node_modules/lit-i18n/src/lit-i18n.js +0 -95
- package/dist/node_modules/lit-i18n/src/lit-i18n.js.map +0 -1
|
@@ -1,50 +1,46 @@
|
|
|
1
|
-
import { clsx as
|
|
2
|
-
import "
|
|
3
|
-
import "
|
|
4
|
-
import "
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
import v from "./_styles/rating.scss.js";
|
|
12
|
-
import { unsafeCSS as b } from "../../node_modules/@lit/reactive-element/css-tag.js";
|
|
13
|
-
var y = Object.defineProperty, i = (d, e, t, n) => {
|
|
14
|
-
for (var a = void 0, o = d.length - 1, h; o >= 0; o--)
|
|
15
|
-
(h = d[o]) && (a = h(e, t, a) || a);
|
|
1
|
+
import { clsx as _ } from "../../node_modules/clsx/dist/clsx.js";
|
|
2
|
+
import { unsafeCSS as p } from "lit";
|
|
3
|
+
import { query as m, property as u, state as l } from "lit/decorators.js";
|
|
4
|
+
import { html as c } from "lit/static-html.js";
|
|
5
|
+
import { GenericFormElement as f } from "../../internal/mixin/genericFormElement.js";
|
|
6
|
+
import v from "../icon/icon.component.js";
|
|
7
|
+
import b from "./_styles/rating.scss.js";
|
|
8
|
+
var y = Object.defineProperty, r = (h, e, t, i) => {
|
|
9
|
+
for (var a = void 0, o = h.length - 1, d; o >= 0; o--)
|
|
10
|
+
(d = h[o]) && (a = d(e, t, a) || a);
|
|
16
11
|
return a && y(e, t, a), a;
|
|
17
12
|
};
|
|
18
|
-
const
|
|
13
|
+
const n = class n extends f {
|
|
19
14
|
constructor() {
|
|
20
|
-
|
|
15
|
+
var e, t, i;
|
|
16
|
+
super(), this.max = 5, this._ratingContainer = null, this._hasFocus = !1, this._hoverValue = 0, this._uniqueId = `star-rating-${(i = (t = (e = globalThis.crypto) == null ? void 0 : e.randomUUID) == null ? void 0 : t.call(e)) != null ? i : Math.random().toString(36).slice(2)}`, this._handleContainerFocus = () => {
|
|
21
17
|
this._hasFocus = !0, this._announceRating();
|
|
22
18
|
}, this._handleContainerBlur = () => {
|
|
23
19
|
this._hasFocus = !1;
|
|
24
|
-
}, this._handleContainerKeyDown = (
|
|
20
|
+
}, this._handleContainerKeyDown = (a) => {
|
|
25
21
|
if (!(this.disabled || this.readonly))
|
|
26
|
-
switch (
|
|
22
|
+
switch (a.key) {
|
|
27
23
|
case "ArrowRight":
|
|
28
24
|
case "ArrowUp":
|
|
29
|
-
|
|
25
|
+
a.preventDefault(), this._incrementRating();
|
|
30
26
|
break;
|
|
31
27
|
case "ArrowLeft":
|
|
32
28
|
case "ArrowDown":
|
|
33
|
-
|
|
29
|
+
a.preventDefault(), this._decrementRating();
|
|
34
30
|
break;
|
|
35
31
|
case "Home":
|
|
36
|
-
|
|
32
|
+
a.preventDefault(), this._setRating(1);
|
|
37
33
|
break;
|
|
38
34
|
case "End":
|
|
39
|
-
|
|
35
|
+
a.preventDefault(), this._setRating(this.max);
|
|
40
36
|
break;
|
|
41
37
|
default:
|
|
42
38
|
return;
|
|
43
39
|
}
|
|
44
|
-
}, this._handleKeyDown = (
|
|
40
|
+
}, this._handleKeyDown = (a) => {
|
|
45
41
|
if (this.disabled || this.readonly) return;
|
|
46
|
-
if (this.contains(
|
|
47
|
-
switch (
|
|
42
|
+
if (this.contains(a.target) && this._hasFocus)
|
|
43
|
+
switch (a.key) {
|
|
48
44
|
case "ArrowRight":
|
|
49
45
|
case "ArrowUp":
|
|
50
46
|
case "ArrowLeft":
|
|
@@ -102,12 +98,12 @@ const r = class r extends _ {
|
|
|
102
98
|
render() {
|
|
103
99
|
const e = [];
|
|
104
100
|
for (let t = 1; t <= this.max; t++) {
|
|
105
|
-
const
|
|
101
|
+
const i = t <= this.value, a = !this.disabled && !this.readonly && t <= this._hoverValue;
|
|
106
102
|
e.push(c`
|
|
107
103
|
<span
|
|
108
104
|
part="star"
|
|
109
|
-
class=${
|
|
110
|
-
"star--active":
|
|
105
|
+
class=${_("star", {
|
|
106
|
+
"star--active": i,
|
|
111
107
|
"star--hover": a,
|
|
112
108
|
"star--readonly": this.readonly,
|
|
113
109
|
"star--disabled": this.disabled
|
|
@@ -117,7 +113,7 @@ const r = class r extends _ {
|
|
|
117
113
|
@mouseleave=${() => this._handleStarLeave()}
|
|
118
114
|
tabindex=${this.disabled ? "-1" : "0"}
|
|
119
115
|
role="radio"
|
|
120
|
-
aria-checked=${
|
|
116
|
+
aria-checked=${i}
|
|
121
117
|
aria-disabled=${this.disabled}
|
|
122
118
|
aria-posinset=${t}
|
|
123
119
|
aria-setsize=${this.max}>
|
|
@@ -151,26 +147,26 @@ const r = class r extends _ {
|
|
|
151
147
|
`;
|
|
152
148
|
}
|
|
153
149
|
};
|
|
154
|
-
|
|
155
|
-
"dap-ds-icon":
|
|
156
|
-
},
|
|
157
|
-
let s =
|
|
158
|
-
|
|
159
|
-
|
|
150
|
+
n.tagName = "dap-ds-rating", n.dependencies = {
|
|
151
|
+
"dap-ds-icon": v
|
|
152
|
+
}, n.styles = p(b);
|
|
153
|
+
let s = n;
|
|
154
|
+
r([
|
|
155
|
+
m(".sr-announcement")
|
|
160
156
|
], s.prototype, "_liveRegion");
|
|
161
|
-
|
|
157
|
+
r([
|
|
162
158
|
u({ reflect: !0 })
|
|
163
159
|
], s.prototype, "label");
|
|
164
|
-
|
|
160
|
+
r([
|
|
165
161
|
u({ type: Number })
|
|
166
162
|
], s.prototype, "max");
|
|
167
|
-
|
|
163
|
+
r([
|
|
168
164
|
l()
|
|
169
165
|
], s.prototype, "_hasFocus");
|
|
170
|
-
|
|
166
|
+
r([
|
|
171
167
|
l()
|
|
172
168
|
], s.prototype, "_hoverValue");
|
|
173
|
-
|
|
169
|
+
r([
|
|
174
170
|
l()
|
|
175
171
|
], s.prototype, "_uniqueId");
|
|
176
172
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rating.component.js","sources":["../../../src/components/rating/rating.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { property, query, state } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { GenericFormElement } from '@/internal/mixin/genericFormElement'\n\nimport DapDSIcon from '../icon/icon.component'\nimport styles from './_styles/rating.scss?inline'\n\n/**\n * `dap-ds-rating`\n * @summary Rating is a component that allows users to rate a product or service.\n * @element dap-ds-rating\n * @title - Rating\n *\n * @event {{ value: number }} dds-change - Event fired when the rating value changes.\n *\n * @csspart base - The main rating container.\n * @csspart star - The star element.\n * @csspart stars-container - The container of the stars.\n * @csspart icon - The icon of the star.\n */\nexport default class DapDSRating extends GenericFormElement {\n static tagName = 'dap-ds-rating'\n\n static dependencies = {\n 'dap-ds-icon': DapDSIcon,\n }\n\n /** Reference to the live region for screen reader announcements */\n @query('.sr-announcement') private readonly _liveRegion: HTMLElement | null\n\n constructor() {\n super()\n\n this.value = 0\n }\n\n static readonly styles = unsafeCSS(styles)\n\n /** The label of the rating */\n @property({ reflect: true }) label: string\n\n /** The maximum number of stars */\n @property({ type: Number }) max = 5\n\n private _ratingContainer: HTMLElement | null = null\n @state() private _hasFocus = false\n @state() private _hoverValue = 0\n @state() private readonly _uniqueId =\n `star-rating-${window.crypto.randomUUID()}`\n\n connectedCallback() {\n super.connectedCallback()\n\n // Add event listener at document level to ensure we catch all keyboard events\n document.addEventListener('keydown', this._handleKeyDown)\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n\n document.removeEventListener('keydown', this._handleKeyDown)\n\n if (this._ratingContainer) {\n this._ratingContainer.removeEventListener('focus', () => {})\n }\n }\n\n firstUpdated() {\n // Set a reference to the container element for easier access\n this._ratingContainer = this.renderRoot.querySelector('.rating-container')\n }\n\n _handleContainerFocus = () => {\n this._hasFocus = true\n\n // Announce current rating for initial focus\n this._announceRating()\n }\n\n _handleContainerBlur = () => {\n this._hasFocus = false\n }\n\n _handleContainerKeyDown = (event: KeyboardEvent) => {\n if (this.disabled || this.readonly) return\n\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowUp':\n event.preventDefault()\n this._incrementRating()\n break\n case 'ArrowLeft':\n case 'ArrowDown':\n event.preventDefault()\n this._decrementRating()\n break\n case 'Home':\n event.preventDefault()\n this._setRating(1)\n break\n case 'End':\n event.preventDefault()\n this._setRating(this.max)\n break\n default:\n return\n }\n }\n\n /**\n * Handle keyboard events for the entire component\n * This is a backup to catch keyboard events if they bubble up\n */\n _handleKeyDown = (event: KeyboardEvent) => {\n if (this.disabled || this.readonly) return\n\n // Only process keyboard events if:\n // 1. The event target is this component or its children\n // 2. The component currently has focus\n const isTargetWithin = this.contains(event.target as Node)\n\n if (isTargetWithin && this._hasFocus) {\n // The container's direct keydown handler should handle this,\n // but this is a backup in case the event bubbles up\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowUp':\n case 'ArrowLeft':\n case 'ArrowDown':\n case 'Home':\n case 'End':\n // Let the container's direct keydown handler process these\n break\n default:\n return\n }\n }\n }\n\n _incrementRating() {\n const newValue = Math.min(this.value + 1, this.max)\n this._setRating(newValue)\n }\n\n _decrementRating() {\n const newValue = Math.max(this.value - 1, 0)\n this._setRating(newValue)\n }\n\n _setRating(value: number) {\n const oldValue = this.value\n this.value = value\n\n // Only announce if the value actually changed\n if (oldValue !== value) {\n this._announceRating()\n this.emit('dds-change', { value })\n }\n }\n\n /**\n * Announce the current rating to screen readers\n */\n _announceRating() {\n if (this._liveRegion) {\n const message =\n this.value === 0\n ? `Rating cleared`\n : `${this.value} of ${this.max} stars selected`\n\n // Update the live region with the current rating\n this._liveRegion.textContent = message\n }\n }\n\n _handleStarClick(value: number) {\n if (this.disabled || this.readonly) return\n\n // Toggle the value if the same star is clicked twice\n const newValue = this.value === value ? 0 : value\n this._setRating(newValue)\n }\n\n _handleStarHover(value: number) {\n if (this.disabled || this.readonly) return\n this._hoverValue = value\n }\n\n _handleStarLeave() {\n if (this.disabled || this.readonly) return\n this._hoverValue = 0\n }\n\n render() {\n const stars = []\n\n for (let i = 1; i <= this.max; i++) {\n const isActive = i <= this.value\n const isHovered =\n !this.disabled && !this.readonly && i <= this._hoverValue\n\n stars.push(html`\n <span\n part=\"star\"\n class=${clsx('star', {\n 'star--active': isActive,\n 'star--hover': isHovered,\n 'star--readonly': this.readonly,\n 'star--disabled': this.disabled,\n })}\n @click=${() => this._handleStarClick(i)}\n @mouseenter=${() => this._handleStarHover(i)}\n @mouseleave=${() => this._handleStarLeave()}\n tabindex=${this.disabled ? '-1' : '0'}\n role=\"radio\"\n aria-checked=${isActive}\n aria-disabled=${this.disabled}\n aria-posinset=${i}\n aria-setsize=${this.max}>\n <dap-ds-icon part=\"icon\" name=\"star-fill\"></dap-ds-icon>\n <span class=\"sr-only\">${i} star${i === 1 ? '' : 's'}</span>\n </span>\n `)\n }\n\n return html`\n <div\n class=\"rating-container\"\n part=\"base\"\n tabindex=${this.disabled ? '-1' : '0'}\n @focus=${this._handleContainerFocus}\n @blur=${this._handleContainerBlur}\n @keydown=${this._handleContainerKeyDown}\n aria-labelledby=\"rating-label-${this._uniqueId}\">\n ${(this, this.renderLabel(`rating-label-${this._uniqueId}`))}\n <div\n class=\"stars-container\"\n part=\"stars-container\"\n role=\"radiogroup\"\n aria-labelledby=\"rating-label-${this._uniqueId}\"\n aria-disabled=${this.disabled}\n aria-readonly=${this.readonly}>\n ${stars}\n </div>\n <!-- Live region for screen reader announcements -->\n <div class=\"sr-announcement sr-only\" aria-live=\"assertive\"></div>\n </div>\n `\n }\n}\n"],"names":["_DapDSRating","GenericFormElement","event","newValue","value","oldValue","message","stars","i","isActive","isHovered","html","clsx","DapDSIcon","unsafeCSS","styles","DapDSRating","__decorateClass","query","property","state"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rating.component.js","sources":["../../../src/components/rating/rating.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { property, query, state } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { GenericFormElement } from '@/internal/mixin/genericFormElement'\n\nimport DapDSIcon from '../icon/icon.component'\nimport styles from './_styles/rating.scss?inline'\n\n/**\n * `dap-ds-rating`\n * @summary Rating is a component that allows users to rate a product or service.\n * @element dap-ds-rating\n * @title - Rating\n *\n * @event {{ value: number }} dds-change - Event fired when the rating value changes.\n *\n * @csspart base - The main rating container.\n * @csspart star - The star element.\n * @csspart stars-container - The container of the stars.\n * @csspart icon - The icon of the star.\n */\nexport default class DapDSRating extends GenericFormElement {\n static tagName = 'dap-ds-rating'\n\n static dependencies = {\n 'dap-ds-icon': DapDSIcon,\n }\n\n /** Reference to the live region for screen reader announcements */\n @query('.sr-announcement') private readonly _liveRegion: HTMLElement | null\n\n constructor() {\n super()\n\n this.value = 0\n }\n\n static readonly styles = unsafeCSS(styles)\n\n /** The label of the rating */\n @property({ reflect: true }) label: string\n\n /** The maximum number of stars */\n @property({ type: Number }) max = 5\n\n private _ratingContainer: HTMLElement | null = null\n @state() private _hasFocus = false\n @state() private _hoverValue = 0\n // `globalThis.crypto` exists in both the browser and Node (SSR); the Lit SSR\n // `window` shim does not carry `crypto`, so referencing it there would throw.\n @state() private readonly _uniqueId = `star-rating-${\n globalThis.crypto?.randomUUID?.() ?? Math.random().toString(36).slice(2)\n }`\n\n connectedCallback() {\n super.connectedCallback()\n\n // Add event listener at document level to ensure we catch all keyboard events\n document.addEventListener('keydown', this._handleKeyDown)\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n\n document.removeEventListener('keydown', this._handleKeyDown)\n\n if (this._ratingContainer) {\n this._ratingContainer.removeEventListener('focus', () => {})\n }\n }\n\n firstUpdated() {\n // Set a reference to the container element for easier access\n this._ratingContainer = this.renderRoot.querySelector('.rating-container')\n }\n\n _handleContainerFocus = () => {\n this._hasFocus = true\n\n // Announce current rating for initial focus\n this._announceRating()\n }\n\n _handleContainerBlur = () => {\n this._hasFocus = false\n }\n\n _handleContainerKeyDown = (event: KeyboardEvent) => {\n if (this.disabled || this.readonly) return\n\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowUp':\n event.preventDefault()\n this._incrementRating()\n break\n case 'ArrowLeft':\n case 'ArrowDown':\n event.preventDefault()\n this._decrementRating()\n break\n case 'Home':\n event.preventDefault()\n this._setRating(1)\n break\n case 'End':\n event.preventDefault()\n this._setRating(this.max)\n break\n default:\n return\n }\n }\n\n /**\n * Handle keyboard events for the entire component\n * This is a backup to catch keyboard events if they bubble up\n */\n _handleKeyDown = (event: KeyboardEvent) => {\n if (this.disabled || this.readonly) return\n\n // Only process keyboard events if:\n // 1. The event target is this component or its children\n // 2. The component currently has focus\n const isTargetWithin = this.contains(event.target as Node)\n\n if (isTargetWithin && this._hasFocus) {\n // The container's direct keydown handler should handle this,\n // but this is a backup in case the event bubbles up\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowUp':\n case 'ArrowLeft':\n case 'ArrowDown':\n case 'Home':\n case 'End':\n // Let the container's direct keydown handler process these\n break\n default:\n return\n }\n }\n }\n\n _incrementRating() {\n const newValue = Math.min(this.value + 1, this.max)\n this._setRating(newValue)\n }\n\n _decrementRating() {\n const newValue = Math.max(this.value - 1, 0)\n this._setRating(newValue)\n }\n\n _setRating(value: number) {\n const oldValue = this.value\n this.value = value\n\n // Only announce if the value actually changed\n if (oldValue !== value) {\n this._announceRating()\n this.emit('dds-change', { value })\n }\n }\n\n /**\n * Announce the current rating to screen readers\n */\n _announceRating() {\n if (this._liveRegion) {\n const message =\n this.value === 0\n ? `Rating cleared`\n : `${this.value} of ${this.max} stars selected`\n\n // Update the live region with the current rating\n this._liveRegion.textContent = message\n }\n }\n\n _handleStarClick(value: number) {\n if (this.disabled || this.readonly) return\n\n // Toggle the value if the same star is clicked twice\n const newValue = this.value === value ? 0 : value\n this._setRating(newValue)\n }\n\n _handleStarHover(value: number) {\n if (this.disabled || this.readonly) return\n this._hoverValue = value\n }\n\n _handleStarLeave() {\n if (this.disabled || this.readonly) return\n this._hoverValue = 0\n }\n\n render() {\n const stars = []\n\n for (let i = 1; i <= this.max; i++) {\n const isActive = i <= this.value\n const isHovered =\n !this.disabled && !this.readonly && i <= this._hoverValue\n\n stars.push(html`\n <span\n part=\"star\"\n class=${clsx('star', {\n 'star--active': isActive,\n 'star--hover': isHovered,\n 'star--readonly': this.readonly,\n 'star--disabled': this.disabled,\n })}\n @click=${() => this._handleStarClick(i)}\n @mouseenter=${() => this._handleStarHover(i)}\n @mouseleave=${() => this._handleStarLeave()}\n tabindex=${this.disabled ? '-1' : '0'}\n role=\"radio\"\n aria-checked=${isActive}\n aria-disabled=${this.disabled}\n aria-posinset=${i}\n aria-setsize=${this.max}>\n <dap-ds-icon part=\"icon\" name=\"star-fill\"></dap-ds-icon>\n <span class=\"sr-only\">${i} star${i === 1 ? '' : 's'}</span>\n </span>\n `)\n }\n\n return html`\n <div\n class=\"rating-container\"\n part=\"base\"\n tabindex=${this.disabled ? '-1' : '0'}\n @focus=${this._handleContainerFocus}\n @blur=${this._handleContainerBlur}\n @keydown=${this._handleContainerKeyDown}\n aria-labelledby=\"rating-label-${this._uniqueId}\">\n ${(this, this.renderLabel(`rating-label-${this._uniqueId}`))}\n <div\n class=\"stars-container\"\n part=\"stars-container\"\n role=\"radiogroup\"\n aria-labelledby=\"rating-label-${this._uniqueId}\"\n aria-disabled=${this.disabled}\n aria-readonly=${this.readonly}>\n ${stars}\n </div>\n <!-- Live region for screen reader announcements -->\n <div class=\"sr-announcement sr-only\" aria-live=\"assertive\"></div>\n </div>\n `\n }\n}\n"],"names":["_DapDSRating","GenericFormElement","_c","_b","_a","event","newValue","value","oldValue","message","stars","i","isActive","isHovered","html","clsx","DapDSIcon","unsafeCSS","styles","DapDSRating","__decorateClass","query","property","state"],"mappings":"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"}
|
|
@@ -9,7 +9,8 @@ import { DdsElement } from '../../internal/dds-hu-element';
|
|
|
9
9
|
*
|
|
10
10
|
* @csspart viewport - The viewport element that contains the scrollable content
|
|
11
11
|
* @csspart scrollbar - The scrollbar container
|
|
12
|
-
* @csspart
|
|
12
|
+
* @csspart base - The main scroll area container.
|
|
13
|
+
* @csspart thumb - The thumb of the scrollbar.
|
|
13
14
|
*
|
|
14
15
|
* @cssprop --dds-scroll-area-radius - The border radius of the scroll area and its elements (default: var(--dds-radius-base))
|
|
15
16
|
* @cssprop --dds-scroll-area-background - The background color of the scroll area (default: var(--dds-background-neutral-base))
|
|
@@ -1,38 +1,35 @@
|
|
|
1
1
|
import { clsx as f } from "../../node_modules/clsx/dist/clsx.js";
|
|
2
|
-
import "
|
|
3
|
-
import {
|
|
4
|
-
import "
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
for (var r = void 0, a = p.length - 1, n; a >= 0; a--)
|
|
12
|
-
(n = p[a]) && (r = n(s, e, r) || r);
|
|
13
|
-
return r && H(s, e, r), r;
|
|
2
|
+
import { unsafeCSS as g, nothing as b } from "lit";
|
|
3
|
+
import { property as w } from "lit/decorators.js";
|
|
4
|
+
import { html as v } from "lit/static-html.js";
|
|
5
|
+
import { DdsElement as _ } from "../../internal/dds-hu-element.js";
|
|
6
|
+
import z from "./scroll-area.scss.js";
|
|
7
|
+
var H = Object.defineProperty, y = (d, r, e, h) => {
|
|
8
|
+
for (var s = void 0, n = d.length - 1, a; n >= 0; n--)
|
|
9
|
+
(a = d[n]) && (s = a(r, e, s) || s);
|
|
10
|
+
return s && H(r, e, s), s;
|
|
14
11
|
};
|
|
15
|
-
const c = class c extends
|
|
12
|
+
const c = class c extends _ {
|
|
16
13
|
constructor() {
|
|
17
14
|
super(...arguments), this.orientation = "vertical", this.viewport = null, this.scrollbar = null, this.thumbHorizontal = null, this.thumbVertical = null, this.isDragging = !1, this.startY = 0, this.startScrollTop = 0;
|
|
18
15
|
}
|
|
19
16
|
firstUpdated() {
|
|
20
|
-
var
|
|
21
|
-
this.viewport = (
|
|
17
|
+
var r, e, h, s;
|
|
18
|
+
this.viewport = (r = this.shadowRoot) == null ? void 0 : r.querySelector(
|
|
22
19
|
".scroll-area__viewport"
|
|
23
20
|
), this.scrollbar = (e = this.shadowRoot) == null ? void 0 : e.querySelector(
|
|
24
21
|
".scroll-area__scrollbar"
|
|
25
22
|
), this.thumbHorizontal = (h = this.shadowRoot) == null ? void 0 : h.querySelector(
|
|
26
23
|
".scroll-area__thumb--horizontal"
|
|
27
|
-
), this.thumbVertical = (
|
|
24
|
+
), this.thumbVertical = (s = this.shadowRoot) == null ? void 0 : s.querySelector(
|
|
28
25
|
".scroll-area__thumb--vertical"
|
|
29
26
|
), this.viewport && this.scrollbar && (this.thumbHorizontal || this.thumbVertical) && this.setupScrollbar();
|
|
30
27
|
}
|
|
31
28
|
setupScrollbar() {
|
|
32
|
-
var
|
|
29
|
+
var a, p;
|
|
33
30
|
if (!this.viewport || !this.scrollbar || !this.thumbHorizontal && !this.thumbVertical)
|
|
34
31
|
return;
|
|
35
|
-
const
|
|
32
|
+
const r = () => {
|
|
36
33
|
if (this.orientation === "vertical" || this.orientation === "both") {
|
|
37
34
|
const { scrollHeight: t, clientHeight: i } = this.viewport, o = i / t * i;
|
|
38
35
|
this.thumbVertical.style.height = `${o}px`;
|
|
@@ -51,8 +48,8 @@ const c = class c extends w {
|
|
|
51
48
|
this.thumbHorizontal.style.transform = `translateX(${l}px)`;
|
|
52
49
|
}
|
|
53
50
|
}, h = (t) => {
|
|
54
|
-
t.preventDefault(), this.isDragging = !0, (this.orientation === "vertical" || this.orientation === "both") && (this.startY = t.clientY, this.startScrollTop = this.viewport.scrollTop), (this.orientation === "horizontal" || this.orientation === "both") && (this.startY = t.clientX, this.startScrollTop = this.viewport.scrollLeft), document.addEventListener("mousemove",
|
|
55
|
-
},
|
|
51
|
+
t.preventDefault(), this.isDragging = !0, (this.orientation === "vertical" || this.orientation === "both") && (this.startY = t.clientY, this.startScrollTop = this.viewport.scrollTop), (this.orientation === "horizontal" || this.orientation === "both") && (this.startY = t.clientX, this.startScrollTop = this.viewport.scrollLeft), document.addEventListener("mousemove", s), document.addEventListener("mouseup", n);
|
|
52
|
+
}, s = (t) => {
|
|
56
53
|
if (this.isDragging) {
|
|
57
54
|
if (this.orientation === "vertical" || this.orientation === "both") {
|
|
58
55
|
const i = t.clientY - this.startY, { scrollHeight: o, clientHeight: l } = this.viewport, u = o / l;
|
|
@@ -63,19 +60,19 @@ const c = class c extends w {
|
|
|
63
60
|
this.viewport.scrollLeft = this.startScrollTop + i * u;
|
|
64
61
|
}
|
|
65
62
|
}
|
|
66
|
-
},
|
|
67
|
-
this.isDragging = !1, document.removeEventListener("mousemove",
|
|
63
|
+
}, n = () => {
|
|
64
|
+
this.isDragging = !1, document.removeEventListener("mousemove", s), document.removeEventListener("mouseup", n);
|
|
68
65
|
};
|
|
69
|
-
|
|
66
|
+
r(), e(), this.viewport.addEventListener("scroll", e), this.viewport.addEventListener("resize", r), (a = this.thumbHorizontal) == null || a.addEventListener("mousedown", h), (p = this.thumbVertical) == null || p.addEventListener("mousedown", h);
|
|
70
67
|
}
|
|
71
|
-
getScrollbar(
|
|
68
|
+
getScrollbar(r) {
|
|
72
69
|
return v`<div
|
|
73
70
|
part="scrollbar"
|
|
74
71
|
class=${f(
|
|
75
72
|
"scroll-area__scrollbar",
|
|
76
|
-
`scroll-area__scrollbar--${
|
|
73
|
+
`scroll-area__scrollbar--${r}`
|
|
77
74
|
)}>
|
|
78
|
-
<div part="thumb" class="scroll-area__thumb--${
|
|
75
|
+
<div part="thumb" class="scroll-area__thumb--${r}"></div>
|
|
79
76
|
</div> `;
|
|
80
77
|
}
|
|
81
78
|
render() {
|
|
@@ -91,10 +88,10 @@ const c = class c extends w {
|
|
|
91
88
|
`;
|
|
92
89
|
}
|
|
93
90
|
};
|
|
94
|
-
c.tagName = "dap-ds-scroll-area", c.styles = z
|
|
91
|
+
c.tagName = "dap-ds-scroll-area", c.styles = g(z);
|
|
95
92
|
let m = c;
|
|
96
93
|
y([
|
|
97
|
-
|
|
94
|
+
w({ type: String })
|
|
98
95
|
], m.prototype, "orientation");
|
|
99
96
|
export {
|
|
100
97
|
m as default
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll-area.component.js","sources":["../../../src/components/scroll-area/scroll-area.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { nothing, unsafeCSS } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport styles from './scroll-area.scss?inline'\n\n/**\n * `dap-ds-scroll-area`\n * @summary A component that provides a customizable scrollable area with a custom scrollbar.\n * @element dap-ds-scroll-area\n * @title - Scroll area\n *\n * @slot - The content to be scrolled\n *\n * @csspart viewport - The viewport element that contains the scrollable content\n * @csspart scrollbar - The scrollbar container\n * @csspart corner - The corner between vertical and horizontal scrollbars\n *\n * @cssprop --dds-scroll-area-radius - The border radius of the scroll area and its elements (default: var(--dds-radius-base))\n * @cssprop --dds-scroll-area-background - The background color of the scroll area (default: var(--dds-background-neutral-base))\n * @cssprop --dds-scroll-area-scrollbar-background - The background color of the scrollbar (default: var(--dds-background-neutral-subtle))\n * @cssprop --dds-scroll-area-thumb-background - The background color of the scrollbar thumb (default: var(--dds-background-neutral-interactive))\n * @cssprop --dds-scroll-area-thumb-hover-background - The background color of the scrollbar thumb on hover (default: var(--dds-background-neutral-interactive-hover))\n * @cssprop --dds-scroll-area-thumb-active-background - The background color of the scrollbar thumb when active (default: var(--dds-background-neutral-interactive-active))\n * @cssprop --dds-scroll-area-transition - The transition timing for scrollbar interactions (default: var(--dds-transition-fast) var(--dds-easing-ease-out))\n * @cssprop --dds-scroll-area-scrollbar-size - The width/height of the scrollbar (default: 10px)\n */\nexport default class DapDSScrollArea extends DdsElement {\n static tagName = 'dap-ds-scroll-area'\n\n /**\n * The orientation of the scrollbar.\n * @type {'vertical' | 'horizontal' | 'both'}\n * @default 'vertical'\n */\n @property({ type: String }) orientation: 'vertical' | 'horizontal' | 'both' =\n 'vertical'\n\n static readonly styles = unsafeCSS(styles)\n\n private viewport: HTMLElement | null = null\n private scrollbar: HTMLElement | null = null\n private thumbHorizontal: HTMLElement | null = null\n private thumbVertical: HTMLElement | null = null\n private isDragging = false\n private startY = 0\n private startScrollTop = 0\n\n firstUpdated() {\n this.viewport = this.shadowRoot?.querySelector(\n '.scroll-area__viewport',\n ) as HTMLElement\n this.scrollbar = this.shadowRoot?.querySelector(\n '.scroll-area__scrollbar',\n ) as HTMLElement\n this.thumbHorizontal = this.shadowRoot?.querySelector(\n '.scroll-area__thumb--horizontal',\n ) as HTMLElement\n this.thumbVertical = this.shadowRoot?.querySelector(\n '.scroll-area__thumb--vertical',\n ) as HTMLElement\n\n if (\n this.viewport &&\n this.scrollbar &&\n (this.thumbHorizontal || this.thumbVertical)\n ) {\n this.setupScrollbar()\n }\n }\n\n private setupScrollbar() {\n if (\n !this.viewport ||\n !this.scrollbar ||\n (!this.thumbHorizontal && !this.thumbVertical)\n )\n return\n\n const updateThumbSize = () => {\n if (this.orientation === 'vertical' || this.orientation === 'both') {\n const { scrollHeight, clientHeight } = this.viewport!\n const thumbHeight = (clientHeight / scrollHeight) * clientHeight\n this.thumbVertical!.style.height = `${thumbHeight}px`\n }\n\n if (this.orientation === 'horizontal' || this.orientation === 'both') {\n const { scrollWidth, clientWidth } = this.viewport!\n const thumbWidth = (clientWidth / scrollWidth) * clientWidth\n this.thumbHorizontal!.style.width = `${thumbWidth}px`\n }\n }\n\n const updateThumbPosition = () => {\n if (this.orientation === 'vertical' || this.orientation === 'both') {\n const { scrollTop, scrollHeight, clientHeight } = this.viewport!\n const thumbPosition =\n (scrollTop / (scrollHeight - clientHeight)) *\n (clientHeight - this.thumbVertical!.offsetHeight)\n this.thumbVertical!.style.transform = `translateY(${thumbPosition}px)`\n }\n\n if (this.orientation === 'horizontal' || this.orientation === 'both') {\n const { scrollLeft, scrollWidth, clientWidth } = this.viewport!\n const thumbPosition =\n (scrollLeft / (scrollWidth - clientWidth)) *\n (clientWidth - this.thumbHorizontal!.offsetWidth)\n this.thumbHorizontal!.style.transform = `translateX(${thumbPosition}px)`\n }\n }\n\n const handleThumbMouseDown = (e: MouseEvent) => {\n e.preventDefault()\n this.isDragging = true\n\n if (this.orientation === 'vertical' || this.orientation === 'both') {\n this.startY = e.clientY\n this.startScrollTop = this.viewport!.scrollTop\n }\n\n if (this.orientation === 'horizontal' || this.orientation === 'both') {\n this.startY = e.clientX\n this.startScrollTop = this.viewport!.scrollLeft\n }\n\n document.addEventListener('mousemove', handleThumbMouseMove)\n document.addEventListener('mouseup', handleThumbMouseUp)\n }\n\n const handleThumbMouseMove = (e: MouseEvent) => {\n if (!this.isDragging) return\n\n if (this.orientation === 'vertical' || this.orientation === 'both') {\n const deltaY = e.clientY - this.startY\n const { scrollHeight, clientHeight } = this.viewport!\n const scrollRatio = scrollHeight / clientHeight\n this.viewport!.scrollTop = this.startScrollTop + deltaY * scrollRatio\n }\n\n if (this.orientation === 'horizontal' || this.orientation === 'both') {\n const deltaX = e.clientX - this.startY\n const { scrollWidth, clientWidth } = this.viewport!\n const scrollRatio = scrollWidth / clientWidth\n this.viewport!.scrollLeft = this.startScrollTop + deltaX * scrollRatio\n }\n }\n\n const handleThumbMouseUp = () => {\n this.isDragging = false\n document.removeEventListener('mousemove', handleThumbMouseMove)\n document.removeEventListener('mouseup', handleThumbMouseUp)\n }\n\n updateThumbSize()\n updateThumbPosition()\n\n this.viewport.addEventListener('scroll', updateThumbPosition)\n this.viewport.addEventListener('resize', updateThumbSize)\n this.thumbHorizontal?.addEventListener('mousedown', handleThumbMouseDown)\n this.thumbVertical?.addEventListener('mousedown', handleThumbMouseDown)\n }\n\n getScrollbar(orientation: 'horizontal' | 'vertical') {\n return html`<div\n part=\"scrollbar\"\n class=${clsx(\n 'scroll-area__scrollbar',\n `scroll-area__scrollbar--${orientation}`,\n )}>\n <div part=\"thumb\" class=\"scroll-area__thumb--${orientation}\"></div>\n </div> `\n }\n\n render() {\n return html`\n <div part=\"base\" class=\"scroll-area\">\n <div part=\"viewport\" class=\"scroll-area__viewport\">\n <slot></slot>\n </div>\n\n ${this.orientation === 'horizontal' || this.orientation === 'both'\n ? this.getScrollbar('horizontal')\n : nothing}\n ${this.orientation === 'vertical' || this.orientation === 'both'\n ? this.getScrollbar('vertical')\n : nothing}\n </div>\n `\n }\n}\n"],"names":["_DapDSScrollArea","DdsElement","_a","_b","_c","_d","updateThumbSize","scrollHeight","clientHeight","thumbHeight","scrollWidth","clientWidth","thumbWidth","updateThumbPosition","scrollTop","thumbPosition","scrollLeft","handleThumbMouseDown","e","handleThumbMouseMove","handleThumbMouseUp","deltaY","scrollRatio","deltaX","orientation","html","clsx","nothing","unsafeCSS","styles","DapDSScrollArea","__decorateClass","property"],"mappings":";;;;;;;;;;;;;;AA6BA,MAAqBA,IAArB,MAAqBA,UAAwBC,EAAW;AAAA,EAAxD,cAAA;AAAA,UAAA,GAAA,SAAA,GASI,KAAA,cAAA,YAIF,KAAQ,WAA+B,MACvC,KAAQ,YAAgC,MACxC,KAAQ,kBAAsC,MAC9C,KAAQ,gBAAoC,MAC5C,KAAQ,aAAa,IACrB,KAAQ,SAAS,GACjB,KAAQ,iBAAiB;AAAA,EAAA;AAAA,EAEzB,eAAe;;AACR,SAAA,YAAWC,IAAA,KAAK,eAAL,gBAAAA,EAAiB;AAAA,MAC/B;AAAA,OAEG,KAAA,aAAYC,IAAA,KAAK,eAAL,gBAAAA,EAAiB;AAAA,MAChC;AAAA,OAEG,KAAA,mBAAkBC,IAAA,KAAK,eAAL,gBAAAA,EAAiB;AAAA,MACtC;AAAA,OAEG,KAAA,iBAAgBC,IAAA,KAAK,eAAL,gBAAAA,EAAiB;AAAA,MACpC;AAAA,OAIA,KAAK,YACL,KAAK,cACJ,KAAK,mBAAmB,KAAK,kBAE9B,KAAK,eAAe;AAAA,EACtB;AAAA,EAGM,iBAAiB;;AAErB,QAAA,CAAC,KAAK,YACN,CAAC,KAAK,aACL,CAAC,KAAK,mBAAmB,CAAC,KAAK;AAEhC;AAEF,UAAMC,IAAkB,MAAM;AAC5B,UAAI,KAAK,gBAAgB,cAAc,KAAK,gBAAgB,QAAQ;AAClE,cAAM,EAAE,cAAAC,GAAc,cAAAC,EAAa,IAAI,KAAK,UACtCC,IAAeD,IAAeD,IAAgBC;AACpD,aAAK,cAAe,MAAM,SAAS,GAAGC,CAAW;AAAA,MAAA;AAGnD,UAAI,KAAK,gBAAgB,gBAAgB,KAAK,gBAAgB,QAAQ;AACpE,cAAM,EAAE,aAAAC,GAAa,aAAAC,EAAY,IAAI,KAAK,UACpCC,IAAcD,IAAcD,IAAeC;AACjD,aAAK,gBAAiB,MAAM,QAAQ,GAAGC,CAAU;AAAA,MAAA;AAAA,IAErD,GAEMC,IAAsB,MAAM;AAChC,UAAI,KAAK,gBAAgB,cAAc,KAAK,gBAAgB,QAAQ;AAClE,cAAM,EAAE,WAAAC,GAAW,cAAAP,GAAc,cAAAC,MAAiB,KAAK,UACjDO,IACHD,KAAaP,IAAeC,MAC5BA,IAAe,KAAK,cAAe;AACtC,aAAK,cAAe,MAAM,YAAY,cAAcO,CAAa;AAAA,MAAA;AAGnE,UAAI,KAAK,gBAAgB,gBAAgB,KAAK,gBAAgB,QAAQ;AACpE,cAAM,EAAE,YAAAC,GAAY,aAAAN,GAAa,aAAAC,MAAgB,KAAK,UAChDI,IACHC,KAAcN,IAAcC,MAC5BA,IAAc,KAAK,gBAAiB;AACvC,aAAK,gBAAiB,MAAM,YAAY,cAAcI,CAAa;AAAA,MAAA;AAAA,IAEvE,GAEME,IAAuB,CAACC,MAAkB;AAC9C,MAAAA,EAAE,eAAe,GACjB,KAAK,aAAa,KAEd,KAAK,gBAAgB,cAAc,KAAK,gBAAgB,YAC1D,KAAK,SAASA,EAAE,SACX,KAAA,iBAAiB,KAAK,SAAU,aAGnC,KAAK,gBAAgB,gBAAgB,KAAK,gBAAgB,YAC5D,KAAK,SAASA,EAAE,SACX,KAAA,iBAAiB,KAAK,SAAU,aAG9B,SAAA,iBAAiB,aAAaC,CAAoB,GAClD,SAAA,iBAAiB,WAAWC,CAAkB;AAAA,IACzD,GAEMD,IAAuB,CAACD,MAAkB;AAC1C,UAAC,KAAK,YAEV;AAAA,YAAI,KAAK,gBAAgB,cAAc,KAAK,gBAAgB,QAAQ;AAC5D,gBAAAG,IAASH,EAAE,UAAU,KAAK,QAC1B,EAAE,cAAAX,GAAc,cAAAC,EAAa,IAAI,KAAK,UACtCc,IAAcf,IAAeC;AACnC,eAAK,SAAU,YAAY,KAAK,iBAAiBa,IAASC;AAAA,QAAA;AAG5D,YAAI,KAAK,gBAAgB,gBAAgB,KAAK,gBAAgB,QAAQ;AAC9D,gBAAAC,IAASL,EAAE,UAAU,KAAK,QAC1B,EAAE,aAAAR,GAAa,aAAAC,EAAY,IAAI,KAAK,UACpCW,IAAcZ,IAAcC;AAClC,eAAK,SAAU,aAAa,KAAK,iBAAiBY,IAASD;AAAA,QAAA;AAAA;AAAA,IAE/D,GAEMF,IAAqB,MAAM;AAC/B,WAAK,aAAa,IACT,SAAA,oBAAoB,aAAaD,CAAoB,GACrD,SAAA,oBAAoB,WAAWC,CAAkB;AAAA,IAC5D;AAEgB,IAAAd,EAAA,GACIO,EAAA,GAEf,KAAA,SAAS,iBAAiB,UAAUA,CAAmB,GACvD,KAAA,SAAS,iBAAiB,UAAUP,CAAe,IACnDJ,IAAA,KAAA,oBAAA,QAAAA,EAAiB,iBAAiB,aAAae,KAC/Cd,IAAA,KAAA,kBAAA,QAAAA,EAAe,iBAAiB,aAAac;AAAA,EAAoB;AAAA,EAGxE,aAAaO,GAAwC;AAC5C,WAAAC;AAAAA;AAAAA,cAEGC;AAAA,MACN;AAAA,MACA,2BAA2BF,CAAW;AAAA,IAAA,CACvC;AAAA,qDAC8CA,CAAW;AAAA;AAAA,EAAA;AAAA,EAI9D,SAAS;AACA,WAAAC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,UAMD,KAAK,gBAAgB,gBAAgB,KAAK,gBAAgB,SACxD,KAAK,aAAa,YAAY,IAC9BE,CAAO;AAAA,UACT,KAAK,gBAAgB,cAAc,KAAK,gBAAgB,SACtD,KAAK,aAAa,UAAU,IAC5BA,CAAO;AAAA;AAAA;AAAA,EAAA;AAInB;AAjKE3B,EAAO,UAAU,sBAUDA,EAAA,SAAS4B,EAAUC,CAAM;AAX3C,IAAqBC,IAArB9B;AAQ8B+B,EAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,OAAQ,CAAA;AAAA,GARPF,EAQS,WAAA,aAAA;"}
|
|
1
|
+
{"version":3,"file":"scroll-area.component.js","sources":["../../../src/components/scroll-area/scroll-area.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { nothing, unsafeCSS } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport styles from './scroll-area.scss?inline'\n\n/**\n * `dap-ds-scroll-area`\n * @summary A component that provides a customizable scrollable area with a custom scrollbar.\n * @element dap-ds-scroll-area\n * @title - Scroll area\n *\n * @slot - The content to be scrolled\n *\n * @csspart viewport - The viewport element that contains the scrollable content\n * @csspart scrollbar - The scrollbar container\n * @csspart base - The main scroll area container.\n * @csspart thumb - The thumb of the scrollbar.\n *\n * @cssprop --dds-scroll-area-radius - The border radius of the scroll area and its elements (default: var(--dds-radius-base))\n * @cssprop --dds-scroll-area-background - The background color of the scroll area (default: var(--dds-background-neutral-base))\n * @cssprop --dds-scroll-area-scrollbar-background - The background color of the scrollbar (default: var(--dds-background-neutral-subtle))\n * @cssprop --dds-scroll-area-thumb-background - The background color of the scrollbar thumb (default: var(--dds-background-neutral-interactive))\n * @cssprop --dds-scroll-area-thumb-hover-background - The background color of the scrollbar thumb on hover (default: var(--dds-background-neutral-interactive-hover))\n * @cssprop --dds-scroll-area-thumb-active-background - The background color of the scrollbar thumb when active (default: var(--dds-background-neutral-interactive-active))\n * @cssprop --dds-scroll-area-transition - The transition timing for scrollbar interactions (default: var(--dds-transition-fast) var(--dds-easing-ease-out))\n * @cssprop --dds-scroll-area-scrollbar-size - The width/height of the scrollbar (default: 10px)\n */\nexport default class DapDSScrollArea extends DdsElement {\n static tagName = 'dap-ds-scroll-area'\n\n /**\n * The orientation of the scrollbar.\n * @type {'vertical' | 'horizontal' | 'both'}\n * @default 'vertical'\n */\n @property({ type: String }) orientation: 'vertical' | 'horizontal' | 'both' =\n 'vertical'\n\n static readonly styles = unsafeCSS(styles)\n\n private viewport: HTMLElement | null = null\n private scrollbar: HTMLElement | null = null\n private thumbHorizontal: HTMLElement | null = null\n private thumbVertical: HTMLElement | null = null\n private isDragging = false\n private startY = 0\n private startScrollTop = 0\n\n firstUpdated() {\n this.viewport = this.shadowRoot?.querySelector(\n '.scroll-area__viewport',\n ) as HTMLElement\n this.scrollbar = this.shadowRoot?.querySelector(\n '.scroll-area__scrollbar',\n ) as HTMLElement\n this.thumbHorizontal = this.shadowRoot?.querySelector(\n '.scroll-area__thumb--horizontal',\n ) as HTMLElement\n this.thumbVertical = this.shadowRoot?.querySelector(\n '.scroll-area__thumb--vertical',\n ) as HTMLElement\n\n if (\n this.viewport &&\n this.scrollbar &&\n (this.thumbHorizontal || this.thumbVertical)\n ) {\n this.setupScrollbar()\n }\n }\n\n private setupScrollbar() {\n if (\n !this.viewport ||\n !this.scrollbar ||\n (!this.thumbHorizontal && !this.thumbVertical)\n )\n return\n\n const updateThumbSize = () => {\n if (this.orientation === 'vertical' || this.orientation === 'both') {\n const { scrollHeight, clientHeight } = this.viewport!\n const thumbHeight = (clientHeight / scrollHeight) * clientHeight\n this.thumbVertical!.style.height = `${thumbHeight}px`\n }\n\n if (this.orientation === 'horizontal' || this.orientation === 'both') {\n const { scrollWidth, clientWidth } = this.viewport!\n const thumbWidth = (clientWidth / scrollWidth) * clientWidth\n this.thumbHorizontal!.style.width = `${thumbWidth}px`\n }\n }\n\n const updateThumbPosition = () => {\n if (this.orientation === 'vertical' || this.orientation === 'both') {\n const { scrollTop, scrollHeight, clientHeight } = this.viewport!\n const thumbPosition =\n (scrollTop / (scrollHeight - clientHeight)) *\n (clientHeight - this.thumbVertical!.offsetHeight)\n this.thumbVertical!.style.transform = `translateY(${thumbPosition}px)`\n }\n\n if (this.orientation === 'horizontal' || this.orientation === 'both') {\n const { scrollLeft, scrollWidth, clientWidth } = this.viewport!\n const thumbPosition =\n (scrollLeft / (scrollWidth - clientWidth)) *\n (clientWidth - this.thumbHorizontal!.offsetWidth)\n this.thumbHorizontal!.style.transform = `translateX(${thumbPosition}px)`\n }\n }\n\n const handleThumbMouseDown = (e: MouseEvent) => {\n e.preventDefault()\n this.isDragging = true\n\n if (this.orientation === 'vertical' || this.orientation === 'both') {\n this.startY = e.clientY\n this.startScrollTop = this.viewport!.scrollTop\n }\n\n if (this.orientation === 'horizontal' || this.orientation === 'both') {\n this.startY = e.clientX\n this.startScrollTop = this.viewport!.scrollLeft\n }\n\n document.addEventListener('mousemove', handleThumbMouseMove)\n document.addEventListener('mouseup', handleThumbMouseUp)\n }\n\n const handleThumbMouseMove = (e: MouseEvent) => {\n if (!this.isDragging) return\n\n if (this.orientation === 'vertical' || this.orientation === 'both') {\n const deltaY = e.clientY - this.startY\n const { scrollHeight, clientHeight } = this.viewport!\n const scrollRatio = scrollHeight / clientHeight\n this.viewport!.scrollTop = this.startScrollTop + deltaY * scrollRatio\n }\n\n if (this.orientation === 'horizontal' || this.orientation === 'both') {\n const deltaX = e.clientX - this.startY\n const { scrollWidth, clientWidth } = this.viewport!\n const scrollRatio = scrollWidth / clientWidth\n this.viewport!.scrollLeft = this.startScrollTop + deltaX * scrollRatio\n }\n }\n\n const handleThumbMouseUp = () => {\n this.isDragging = false\n document.removeEventListener('mousemove', handleThumbMouseMove)\n document.removeEventListener('mouseup', handleThumbMouseUp)\n }\n\n updateThumbSize()\n updateThumbPosition()\n\n this.viewport.addEventListener('scroll', updateThumbPosition)\n this.viewport.addEventListener('resize', updateThumbSize)\n this.thumbHorizontal?.addEventListener('mousedown', handleThumbMouseDown)\n this.thumbVertical?.addEventListener('mousedown', handleThumbMouseDown)\n }\n\n getScrollbar(orientation: 'horizontal' | 'vertical') {\n return html`<div\n part=\"scrollbar\"\n class=${clsx(\n 'scroll-area__scrollbar',\n `scroll-area__scrollbar--${orientation}`,\n )}>\n <div part=\"thumb\" class=\"scroll-area__thumb--${orientation}\"></div>\n </div> `\n }\n\n render() {\n return html`\n <div part=\"base\" class=\"scroll-area\">\n <div part=\"viewport\" class=\"scroll-area__viewport\">\n <slot></slot>\n </div>\n\n ${this.orientation === 'horizontal' || this.orientation === 'both'\n ? this.getScrollbar('horizontal')\n : nothing}\n ${this.orientation === 'vertical' || this.orientation === 'both'\n ? this.getScrollbar('vertical')\n : nothing}\n </div>\n `\n }\n}\n"],"names":["_DapDSScrollArea","DdsElement","_a","_b","_c","_d","updateThumbSize","scrollHeight","clientHeight","thumbHeight","scrollWidth","clientWidth","thumbWidth","updateThumbPosition","scrollTop","thumbPosition","scrollLeft","handleThumbMouseDown","e","handleThumbMouseMove","handleThumbMouseUp","deltaY","scrollRatio","deltaX","orientation","html","clsx","nothing","unsafeCSS","styles","DapDSScrollArea","__decorateClass","property"],"mappings":";;;;;;;;;;;AA8BA,MAAqBA,IAArB,MAAqBA,UAAwBC,EAAW;AAAA,EAAxD,cAAA;AAAA,UAAA,GAAA,SAAA,GASI,KAAA,cAAA,YAIF,KAAQ,WAA+B,MACvC,KAAQ,YAAgC,MACxC,KAAQ,kBAAsC,MAC9C,KAAQ,gBAAoC,MAC5C,KAAQ,aAAa,IACrB,KAAQ,SAAS,GACjB,KAAQ,iBAAiB;AAAA,EAAA;AAAA,EAEzB,eAAe;;AACR,SAAA,YAAWC,IAAA,KAAK,eAAL,gBAAAA,EAAiB;AAAA,MAC/B;AAAA,OAEG,KAAA,aAAYC,IAAA,KAAK,eAAL,gBAAAA,EAAiB;AAAA,MAChC;AAAA,OAEG,KAAA,mBAAkBC,IAAA,KAAK,eAAL,gBAAAA,EAAiB;AAAA,MACtC;AAAA,OAEG,KAAA,iBAAgBC,IAAA,KAAK,eAAL,gBAAAA,EAAiB;AAAA,MACpC;AAAA,OAIA,KAAK,YACL,KAAK,cACJ,KAAK,mBAAmB,KAAK,kBAE9B,KAAK,eAAe;AAAA,EACtB;AAAA,EAGM,iBAAiB;;AAErB,QAAA,CAAC,KAAK,YACN,CAAC,KAAK,aACL,CAAC,KAAK,mBAAmB,CAAC,KAAK;AAEhC;AAEF,UAAMC,IAAkB,MAAM;AAC5B,UAAI,KAAK,gBAAgB,cAAc,KAAK,gBAAgB,QAAQ;AAClE,cAAM,EAAE,cAAAC,GAAc,cAAAC,EAAa,IAAI,KAAK,UACtCC,IAAeD,IAAeD,IAAgBC;AACpD,aAAK,cAAe,MAAM,SAAS,GAAGC,CAAW;AAAA,MAAA;AAGnD,UAAI,KAAK,gBAAgB,gBAAgB,KAAK,gBAAgB,QAAQ;AACpE,cAAM,EAAE,aAAAC,GAAa,aAAAC,EAAY,IAAI,KAAK,UACpCC,IAAcD,IAAcD,IAAeC;AACjD,aAAK,gBAAiB,MAAM,QAAQ,GAAGC,CAAU;AAAA,MAAA;AAAA,IAErD,GAEMC,IAAsB,MAAM;AAChC,UAAI,KAAK,gBAAgB,cAAc,KAAK,gBAAgB,QAAQ;AAClE,cAAM,EAAE,WAAAC,GAAW,cAAAP,GAAc,cAAAC,MAAiB,KAAK,UACjDO,IACHD,KAAaP,IAAeC,MAC5BA,IAAe,KAAK,cAAe;AACtC,aAAK,cAAe,MAAM,YAAY,cAAcO,CAAa;AAAA,MAAA;AAGnE,UAAI,KAAK,gBAAgB,gBAAgB,KAAK,gBAAgB,QAAQ;AACpE,cAAM,EAAE,YAAAC,GAAY,aAAAN,GAAa,aAAAC,MAAgB,KAAK,UAChDI,IACHC,KAAcN,IAAcC,MAC5BA,IAAc,KAAK,gBAAiB;AACvC,aAAK,gBAAiB,MAAM,YAAY,cAAcI,CAAa;AAAA,MAAA;AAAA,IAEvE,GAEME,IAAuB,CAACC,MAAkB;AAC9C,MAAAA,EAAE,eAAe,GACjB,KAAK,aAAa,KAEd,KAAK,gBAAgB,cAAc,KAAK,gBAAgB,YAC1D,KAAK,SAASA,EAAE,SACX,KAAA,iBAAiB,KAAK,SAAU,aAGnC,KAAK,gBAAgB,gBAAgB,KAAK,gBAAgB,YAC5D,KAAK,SAASA,EAAE,SACX,KAAA,iBAAiB,KAAK,SAAU,aAG9B,SAAA,iBAAiB,aAAaC,CAAoB,GAClD,SAAA,iBAAiB,WAAWC,CAAkB;AAAA,IACzD,GAEMD,IAAuB,CAACD,MAAkB;AAC1C,UAAC,KAAK,YAEV;AAAA,YAAI,KAAK,gBAAgB,cAAc,KAAK,gBAAgB,QAAQ;AAC5D,gBAAAG,IAASH,EAAE,UAAU,KAAK,QAC1B,EAAE,cAAAX,GAAc,cAAAC,EAAa,IAAI,KAAK,UACtCc,IAAcf,IAAeC;AACnC,eAAK,SAAU,YAAY,KAAK,iBAAiBa,IAASC;AAAA,QAAA;AAG5D,YAAI,KAAK,gBAAgB,gBAAgB,KAAK,gBAAgB,QAAQ;AAC9D,gBAAAC,IAASL,EAAE,UAAU,KAAK,QAC1B,EAAE,aAAAR,GAAa,aAAAC,EAAY,IAAI,KAAK,UACpCW,IAAcZ,IAAcC;AAClC,eAAK,SAAU,aAAa,KAAK,iBAAiBY,IAASD;AAAA,QAAA;AAAA;AAAA,IAE/D,GAEMF,IAAqB,MAAM;AAC/B,WAAK,aAAa,IACT,SAAA,oBAAoB,aAAaD,CAAoB,GACrD,SAAA,oBAAoB,WAAWC,CAAkB;AAAA,IAC5D;AAEgB,IAAAd,EAAA,GACIO,EAAA,GAEf,KAAA,SAAS,iBAAiB,UAAUA,CAAmB,GACvD,KAAA,SAAS,iBAAiB,UAAUP,CAAe,IACnDJ,IAAA,KAAA,oBAAA,QAAAA,EAAiB,iBAAiB,aAAae,KAC/Cd,IAAA,KAAA,kBAAA,QAAAA,EAAe,iBAAiB,aAAac;AAAA,EAAoB;AAAA,EAGxE,aAAaO,GAAwC;AAC5C,WAAAC;AAAA;AAAA,cAEGC;AAAA,MACN;AAAA,MACA,2BAA2BF,CAAW;AAAA,IAAA,CACvC;AAAA,qDAC8CA,CAAW;AAAA;AAAA,EAAA;AAAA,EAI9D,SAAS;AACA,WAAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAMD,KAAK,gBAAgB,gBAAgB,KAAK,gBAAgB,SACxD,KAAK,aAAa,YAAY,IAC9BE,CAAO;AAAA,UACT,KAAK,gBAAgB,cAAc,KAAK,gBAAgB,SACtD,KAAK,aAAa,UAAU,IAC5BA,CAAO;AAAA;AAAA;AAAA,EAAA;AAInB;AAjKE3B,EAAO,UAAU,sBAUDA,EAAA,SAAS4B,EAAUC,CAAM;AAX3C,IAAqBC,IAArB9B;AAQ8B+B,EAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,OAAQ,CAAA;AAAA,GARPF,EAQS,WAAA,aAAA;"}
|
|
@@ -1,19 +1,15 @@
|
|
|
1
1
|
import { clsx as d } from "../../node_modules/clsx/dist/clsx.js";
|
|
2
|
-
import "
|
|
3
|
-
import {
|
|
4
|
-
import "../../node_modules/lit-element/lit-element.js";
|
|
5
|
-
import { property as h } from "../../node_modules/@lit/reactive-element/decorators/property.js";
|
|
6
|
-
import { state as u } from "../../node_modules/@lit/reactive-element/decorators/state.js";
|
|
2
|
+
import { unsafeCSS as u, html as p } from "lit";
|
|
3
|
+
import { property as h, state as g } from "lit/decorators.js";
|
|
7
4
|
import { DdsElement as m } from "../../internal/dds-hu-element.js";
|
|
8
|
-
import { SizedMixin as
|
|
9
|
-
import
|
|
10
|
-
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
(c = n[a]) && (t = c(e, r, t) || t);
|
|
5
|
+
import { SizedMixin as f } from "../../internal/mixin/sizedMixin.js";
|
|
6
|
+
import v from "./scroll-progress.scss.js";
|
|
7
|
+
var S = Object.defineProperty, n = (o, e, r, l) => {
|
|
8
|
+
for (var t = void 0, a = o.length - 1, c; a >= 0; a--)
|
|
9
|
+
(c = o[a]) && (t = c(e, r, t) || t);
|
|
14
10
|
return t && S(e, r, t), t;
|
|
15
11
|
};
|
|
16
|
-
const b =
|
|
12
|
+
const b = f(m), i = class i extends b {
|
|
17
13
|
constructor() {
|
|
18
14
|
super(), this.variant = "brand", this.progress = 0, this.targetElement = null, this.rafId = null, this.handleScroll = () => {
|
|
19
15
|
this.rafId === null && (this.rafId = requestAnimationFrame(() => {
|
|
@@ -82,16 +78,16 @@ const b = g(m), i = class i extends b {
|
|
|
82
78
|
`;
|
|
83
79
|
}
|
|
84
80
|
};
|
|
85
|
-
i.tagName = "dap-ds-scroll-progress", i.styles = v
|
|
81
|
+
i.tagName = "dap-ds-scroll-progress", i.styles = u(v);
|
|
86
82
|
let s = i;
|
|
87
|
-
|
|
83
|
+
n([
|
|
88
84
|
h({ type: String, reflect: !0 })
|
|
89
85
|
], s.prototype, "target");
|
|
90
|
-
|
|
86
|
+
n([
|
|
91
87
|
h({ type: String, reflect: !0 })
|
|
92
88
|
], s.prototype, "variant");
|
|
93
|
-
|
|
94
|
-
|
|
89
|
+
n([
|
|
90
|
+
g()
|
|
95
91
|
], s.prototype, "progress");
|
|
96
92
|
export {
|
|
97
93
|
s as default
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll-progress.component.js","sources":["../../../src/components/scroll-progress/scroll-progress.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { html, unsafeCSS } from 'lit'\nimport { property, state } from 'lit/decorators.js'\n\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport { SizedMixin } from '../../internal/mixin/sizedMixin'\nimport styles from './scroll-progress.scss?inline'\n\nconst ScrollProgressBaseWithSized = SizedMixin(DdsElement)\n\nexport type ScrollProgressVariant =\n | 'neutral'\n | 'brand'\n | 'negative'\n | 'positive'\n | 'inverted'\n\n/**\n * `dap-ds-scroll-progress`\n * @summary A progress bar that displays scroll position, supporting both page-level and container-level scroll tracking.\n * @element dap-ds-scroll-progress\n * @title - Scroll Progress\n *\n * @csspart base - The main scroll progress container.\n * @csspart track - The progress track (background).\n * @csspart fill - The progress fill bar.\n *\n * @cssprop --dds-scroll-progress-z-index - Z-index for fixed positioning (default: 1000)\n * @cssprop --dds-scroll-progress-transition - Transition for progress updates (default: width 0.1s ease-out)\n * @cssprop --dds-scroll-progress-track-color - Background color of the progress track (default: var(--dds-neutral-200))\n * @cssprop --dds-scroll-progress-fill-color-neutral - Fill color for neutral variant\n * @cssprop --dds-scroll-progress-fill-color-brand - Fill color for brand variant\n * @cssprop --dds-scroll-progress-fill-color-negative - Fill color for negative variant\n * @cssprop --dds-scroll-progress-fill-color-positive - Fill color for positive variant\n * @cssprop --dds-scroll-progress-fill-color-inverted - Fill color for inverted variant\n *\n * @property { 'xxs' | 'xs' | 'sm' | 'md' | 'lg' } size - The size of the scroll progress bar. Default is `sm`. See SizedMixin.\n * @property {string} sizeMap - Responsive size map (e.g. \"md:lg\"); see SizedMixin.\n */\nexport default class DapDSScrollProgress extends ScrollProgressBaseWithSized {\n static tagName = 'dap-ds-scroll-progress'\n\n /**\n * CSS selector for scroll container. If not set, tracks global page scroll.\n * When set, the component uses sticky positioning within the container.\n */\n @property({ type: String, reflect: true }) target?: string\n\n /**\n * The color variant of the progress indicator.\n * @type {\"neutral\" | \"brand\" | \"negative\" | \"positive\" | \"inverted\"}\n */\n @property({ type: String, reflect: true }) variant: ScrollProgressVariant =\n 'brand'\n\n /**\n * Current progress value (0-100).\n */\n @state() private progress = 0\n\n private targetElement: Element | null = null\n private rafId: number | null = null\n private boundHandleScroll: () => void\n\n static readonly styles = unsafeCSS(styles)\n\n /** Maps effectiveSize from SizedMixin to scroll-progress visual size (xs, sm, md; xxs→xs, lg→md). */\n private get scrollProgressSize(): string {\n if (this.effectiveSize === 'xxs') return 'xs'\n if (this.effectiveSize === 'lg') return 'md'\n return this.effectiveSize\n }\n\n constructor() {\n super()\n this.boundHandleScroll = this.handleScroll.bind(this)\n }\n\n connectedCallback(): void {\n super.connectedCallback()\n this.setupScrollListener()\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback()\n this.cleanupScrollListener()\n }\n\n protected updated(changedProperties: Map<PropertyKey, unknown>): void {\n super.updated(changedProperties)\n if (changedProperties.has('target')) {\n this.cleanupScrollListener()\n this.setupScrollListener()\n }\n }\n\n private setupScrollListener(): void {\n if (this.target) {\n this.targetElement = document.querySelector(this.target)\n if (this.targetElement) {\n this.targetElement.addEventListener('scroll', this.boundHandleScroll, {\n passive: true,\n })\n }\n } else {\n window.addEventListener('scroll', this.boundHandleScroll, {\n passive: true,\n })\n }\n // Initial calculation\n this.handleScroll()\n }\n\n private cleanupScrollListener(): void {\n if (this.rafId !== null) {\n cancelAnimationFrame(this.rafId)\n this.rafId = null\n }\n\n if (this.targetElement) {\n this.targetElement.removeEventListener('scroll', this.boundHandleScroll)\n this.targetElement = null\n } else {\n window.removeEventListener('scroll', this.boundHandleScroll)\n }\n }\n\n private handleScroll = (): void => {\n if (this.rafId !== null) {\n return\n }\n\n this.rafId = requestAnimationFrame(() => {\n this.calculateProgress()\n this.rafId = null\n })\n }\n\n private calculateProgress(): void {\n let scrollTop: number\n let scrollHeight: number\n let clientHeight: number\n\n if (this.target && this.targetElement) {\n scrollTop = this.targetElement.scrollTop\n scrollHeight = this.targetElement.scrollHeight\n clientHeight = this.targetElement.clientHeight\n } else {\n scrollTop = window.scrollY\n scrollHeight = document.documentElement.scrollHeight\n clientHeight = window.innerHeight\n }\n\n const scrollableHeight = scrollHeight - clientHeight\n\n if (scrollableHeight <= 0) {\n this.progress = 0\n return\n }\n\n this.progress = Math.min(\n 100,\n Math.max(0, (scrollTop / scrollableHeight) * 100),\n )\n }\n\n render() {\n return html`\n <div\n part=\"base\"\n class=${clsx(\n 'scroll-progress',\n `scroll-progress--${this.variant}`,\n `scroll-progress--${this.scrollProgressSize}`,\n )}\n role=\"progressbar\"\n aria-valuenow=${Math.round(this.progress)}\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-label=${this.ariaLabel ?? 'Scroll progress'}>\n <div part=\"track\" class=\"scroll-progress__track\">\n <div\n part=\"fill\"\n class=\"scroll-progress__fill\"\n style=\"width: ${this.progress}%\"></div>\n </div>\n </div>\n `\n }\n}\n"],"names":["ScrollProgressBaseWithSized","SizedMixin","DdsElement","_DapDSScrollProgress","changedProperties","scrollTop","scrollHeight","clientHeight","scrollableHeight","html","clsx","_a","unsafeCSS","styles","DapDSScrollProgress","__decorateClass","property","state"],"mappings":"
|
|
1
|
+
{"version":3,"file":"scroll-progress.component.js","sources":["../../../src/components/scroll-progress/scroll-progress.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { html, unsafeCSS } from 'lit'\nimport { property, state } from 'lit/decorators.js'\n\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport { SizedMixin } from '../../internal/mixin/sizedMixin'\nimport styles from './scroll-progress.scss?inline'\n\nconst ScrollProgressBaseWithSized = SizedMixin(DdsElement)\n\nexport type ScrollProgressVariant =\n | 'neutral'\n | 'brand'\n | 'negative'\n | 'positive'\n | 'inverted'\n\n/**\n * `dap-ds-scroll-progress`\n * @summary A progress bar that displays scroll position, supporting both page-level and container-level scroll tracking.\n * @element dap-ds-scroll-progress\n * @title - Scroll Progress\n *\n * @csspart base - The main scroll progress container.\n * @csspart track - The progress track (background).\n * @csspart fill - The progress fill bar.\n *\n * @cssprop --dds-scroll-progress-z-index - Z-index for fixed positioning (default: 1000)\n * @cssprop --dds-scroll-progress-transition - Transition for progress updates (default: width 0.1s ease-out)\n * @cssprop --dds-scroll-progress-track-color - Background color of the progress track (default: var(--dds-neutral-200))\n * @cssprop --dds-scroll-progress-fill-color-neutral - Fill color for neutral variant\n * @cssprop --dds-scroll-progress-fill-color-brand - Fill color for brand variant\n * @cssprop --dds-scroll-progress-fill-color-negative - Fill color for negative variant\n * @cssprop --dds-scroll-progress-fill-color-positive - Fill color for positive variant\n * @cssprop --dds-scroll-progress-fill-color-inverted - Fill color for inverted variant\n *\n * @property { 'xxs' | 'xs' | 'sm' | 'md' | 'lg' } size - The size of the scroll progress bar. Default is `sm`. See SizedMixin.\n * @property {string} sizeMap - Responsive size map (e.g. \"md:lg\"); see SizedMixin.\n */\nexport default class DapDSScrollProgress extends ScrollProgressBaseWithSized {\n static tagName = 'dap-ds-scroll-progress'\n\n /**\n * CSS selector for scroll container. If not set, tracks global page scroll.\n * When set, the component uses sticky positioning within the container.\n */\n @property({ type: String, reflect: true }) target?: string\n\n /**\n * The color variant of the progress indicator.\n * @type {\"neutral\" | \"brand\" | \"negative\" | \"positive\" | \"inverted\"}\n */\n @property({ type: String, reflect: true }) variant: ScrollProgressVariant =\n 'brand'\n\n /**\n * Current progress value (0-100).\n */\n @state() private progress = 0\n\n private targetElement: Element | null = null\n private rafId: number | null = null\n private boundHandleScroll: () => void\n\n static readonly styles = unsafeCSS(styles)\n\n /** Maps effectiveSize from SizedMixin to scroll-progress visual size (xs, sm, md; xxs→xs, lg→md). */\n private get scrollProgressSize(): string {\n if (this.effectiveSize === 'xxs') return 'xs'\n if (this.effectiveSize === 'lg') return 'md'\n return this.effectiveSize\n }\n\n constructor() {\n super()\n this.boundHandleScroll = this.handleScroll.bind(this)\n }\n\n connectedCallback(): void {\n super.connectedCallback()\n this.setupScrollListener()\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback()\n this.cleanupScrollListener()\n }\n\n protected updated(changedProperties: Map<PropertyKey, unknown>): void {\n super.updated(changedProperties)\n if (changedProperties.has('target')) {\n this.cleanupScrollListener()\n this.setupScrollListener()\n }\n }\n\n private setupScrollListener(): void {\n if (this.target) {\n this.targetElement = document.querySelector(this.target)\n if (this.targetElement) {\n this.targetElement.addEventListener('scroll', this.boundHandleScroll, {\n passive: true,\n })\n }\n } else {\n window.addEventListener('scroll', this.boundHandleScroll, {\n passive: true,\n })\n }\n // Initial calculation\n this.handleScroll()\n }\n\n private cleanupScrollListener(): void {\n if (this.rafId !== null) {\n cancelAnimationFrame(this.rafId)\n this.rafId = null\n }\n\n if (this.targetElement) {\n this.targetElement.removeEventListener('scroll', this.boundHandleScroll)\n this.targetElement = null\n } else {\n window.removeEventListener('scroll', this.boundHandleScroll)\n }\n }\n\n private handleScroll = (): void => {\n if (this.rafId !== null) {\n return\n }\n\n this.rafId = requestAnimationFrame(() => {\n this.calculateProgress()\n this.rafId = null\n })\n }\n\n private calculateProgress(): void {\n let scrollTop: number\n let scrollHeight: number\n let clientHeight: number\n\n if (this.target && this.targetElement) {\n scrollTop = this.targetElement.scrollTop\n scrollHeight = this.targetElement.scrollHeight\n clientHeight = this.targetElement.clientHeight\n } else {\n scrollTop = window.scrollY\n scrollHeight = document.documentElement.scrollHeight\n clientHeight = window.innerHeight\n }\n\n const scrollableHeight = scrollHeight - clientHeight\n\n if (scrollableHeight <= 0) {\n this.progress = 0\n return\n }\n\n this.progress = Math.min(\n 100,\n Math.max(0, (scrollTop / scrollableHeight) * 100),\n )\n }\n\n render() {\n return html`\n <div\n part=\"base\"\n class=${clsx(\n 'scroll-progress',\n `scroll-progress--${this.variant}`,\n `scroll-progress--${this.scrollProgressSize}`,\n )}\n role=\"progressbar\"\n aria-valuenow=${Math.round(this.progress)}\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-label=${this.ariaLabel ?? 'Scroll progress'}>\n <div part=\"track\" class=\"scroll-progress__track\">\n <div\n part=\"fill\"\n class=\"scroll-progress__fill\"\n style=\"width: ${this.progress}%\"></div>\n </div>\n </div>\n `\n }\n}\n"],"names":["ScrollProgressBaseWithSized","SizedMixin","DdsElement","_DapDSScrollProgress","changedProperties","scrollTop","scrollHeight","clientHeight","scrollableHeight","html","clsx","_a","unsafeCSS","styles","DapDSScrollProgress","__decorateClass","property","state"],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ import { default as ComboboxBaseElement } from '../combobox/comboboxBase';
|
|
|
21
21
|
* @property {string} description - The description of the search.
|
|
22
22
|
* @property {string} tooltip - The tooltip of the search.
|
|
23
23
|
* @property {'xs' | 'sm' | 'lg'} size - The size of the search.
|
|
24
|
-
* @property {'none' | 'typehead' | 'autocomplete' | 'manual'} searchMode - The search mode of the
|
|
24
|
+
* @property {'none' | 'typehead' | 'autocomplete' | 'manual'} searchMode - The search mode of the search. `none` (default) is a free-text search without a suggestion list; `autocomplete` shows suggestions filtered by their starting text as you type; `manual` shows the suggestions you supply on `dds-input` without filtering them. `typehead` is deprecated for the search: it is meant for the select, and the list does not open in this mode.
|
|
25
25
|
* @property {boolean} disabled - Whether the search is disabled.
|
|
26
26
|
* @property {boolean} required - Whether the search is required.
|
|
27
27
|
* @property {boolean} readonly - Whether the search is readonly.
|
|
@@ -80,6 +80,11 @@ import { default as ComboboxBaseElement } from '../combobox/comboboxBase';
|
|
|
80
80
|
* @csspart tooltip - The tooltip of the search.
|
|
81
81
|
* @csspart option-list - The option list of the search.
|
|
82
82
|
* @csspart input - The input of the search.
|
|
83
|
+
* @csspart chips - The container of the selected chips.
|
|
84
|
+
* @csspart indicator-icon - The dropdown indicator icon.
|
|
85
|
+
* @csspart label-base - The base of the label.
|
|
86
|
+
* @csspart label-required - The required indicator of the label.
|
|
87
|
+
* @csspart label-optional - The optional indicator of the label.
|
|
83
88
|
*
|
|
84
89
|
* @slot - The default slot for the options.
|
|
85
90
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.component.js","sources":["../../../src/components/search/search.component.ts"],"sourcesContent":["import ComboboxBaseElement from '../combobox/comboboxBase'\n\n/**\n * `dap-ds-search`\n * @summary A select is a form element that allows the user to select one option from a set.\n * @element dap-ds-search\n * @title - Search\n *\n * @event dds-change - Fired when the search value changes.\n * @event dds-blur - Emitted when the search loses focus.\n * @event dds-focus - Emitted when the search gains focus.\n * @event dds-clear - Emitted when the search is cleared.\n * @event dds-search - Emitted when the search input value changes.\n * @event dds-input - Emitted when typing happens in the search input.\n *\n * @property {string} value - The value of the search.\n * @property {string} placeholder - The placeholder of the search.\n * @property { 'top' | 'top-start' | 'top-end' | 'right' | 'right-start'| 'right-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end'} placement - The placement of the select dropdown. Default is 'bottom-start'.\n * @property {boolean} opened - Whether the search dropdown is opened.\n * @property {boolean} sync - The sync mode of the search dropdown. How the dropdown item size is synced to the trigger element'.\n * @property {string} label - The label of the search.\n * @property {string} description - The description of the search.\n * @property {string} tooltip - The tooltip of the search.\n * @property {'xs' | 'sm' | 'lg'} size - The size of the search.\n * @property {'none' | 'typehead' | 'autocomplete' | 'manual'} searchMode - The search mode of the
|
|
1
|
+
{"version":3,"file":"search.component.js","sources":["../../../src/components/search/search.component.ts"],"sourcesContent":["import ComboboxBaseElement from '../combobox/comboboxBase'\n\n/**\n * `dap-ds-search`\n * @summary A select is a form element that allows the user to select one option from a set.\n * @element dap-ds-search\n * @title - Search\n *\n * @event dds-change - Fired when the search value changes.\n * @event dds-blur - Emitted when the search loses focus.\n * @event dds-focus - Emitted when the search gains focus.\n * @event dds-clear - Emitted when the search is cleared.\n * @event dds-search - Emitted when the search input value changes.\n * @event dds-input - Emitted when typing happens in the search input.\n *\n * @property {string} value - The value of the search.\n * @property {string} placeholder - The placeholder of the search.\n * @property { 'top' | 'top-start' | 'top-end' | 'right' | 'right-start'| 'right-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end'} placement - The placement of the select dropdown. Default is 'bottom-start'.\n * @property {boolean} opened - Whether the search dropdown is opened.\n * @property {boolean} sync - The sync mode of the search dropdown. How the dropdown item size is synced to the trigger element'.\n * @property {string} label - The label of the search.\n * @property {string} description - The description of the search.\n * @property {string} tooltip - The tooltip of the search.\n * @property {'xs' | 'sm' | 'lg'} size - The size of the search.\n * @property {'none' | 'typehead' | 'autocomplete' | 'manual'} searchMode - The search mode of the search. `none` (default) is a free-text search without a suggestion list; `autocomplete` shows suggestions filtered by their starting text as you type; `manual` shows the suggestions you supply on `dds-input` without filtering them. `typehead` is deprecated for the search: it is meant for the select, and the list does not open in this mode.\n * @property {boolean} disabled - Whether the search is disabled.\n * @property {boolean} required - Whether the search is required.\n * @property {boolean} readonly - Whether the search is readonly.\n * @property {boolean} autofocus - Whether the search is autofocus.\n * @property {string} clearButton - Whether the search is clearable. Default is 'true'.\n * @property {string} feedback - The feedback content of the search.\n * @property {'negative' | 'positive' | 'warning' | 'info'} feedbackType - The feedback type of the search.\n * @property {boolean} allowManualInput - Whether the search allows manual input, or free text.\n * @property {boolean} searchForText - Whether the search should search for the selected item text.\n * @property {boolean} textComplete - Whether the search should not complete the text.\n * @property {string} searchButtonAriaLabel - The aria label of the search button.\n * @property {boolean} disableSearchWhenEmpty - When true, the search button is automatically disabled while the input is empty and re-enabled once the user types. Default is false.\n * @property {boolean} openOnEmpty - Whether the search should open on empty results.\n * @property {string} selectable - Show the selected item check mark in the dropdown. Default is 'false'.\n * @property {boolean} noAnimation - Whether the search open indicator should be animated. Default is true.\n * @property {boolean} subtle - Subtle color version\n *\n * @cssproperty --dds-combobox-background - The background color of the combobox. (default: var(--dds-fields-background-default))\n * @cssproperty --dds-combobox-border-color - The border color of the combobox. (default: var(--dds-border-neutral-base))\n * @cssproperty --dds-combobox-border-width - The border width of the combobox. (default: var(--dds-border-width-base, 1px))\n * @cssproperty --dds-combobox-border-radius - The border radius of the combobox. (default: var(--dds-radius-base))\n * @cssproperty --dds-combobox-text-color - The text color of the combobox. (default: var(--dds-text-neutral-base))\n * @cssproperty --dds-combobox-placeholder-color - The placeholder text color. (default: var(--dds-text-neutral-subtle))\n * @cssproperty --dds-combobox-disabled-background - The background color when disabled. (default: var(--dds-background-neutral-stronger))\n * @cssproperty --dds-combobox-disabled-text - The text color when disabled. (default: var(--dds-text-neutral-disabled))\n * @cssproperty --dds-combobox-error-border - The border color for error state. (default: var(--dds-border-negative-base))\n * @cssproperty --dds-combobox-success-border - The border color for success state. (default: var(--dds-border-positive-base))\n * @cssproperty --dds-combobox-icon-color - The color of the icons. (default: var(--dds-text-icon-neutral-subtle))\n * @cssproperty --dds-combobox-loading-spinner-color - The color of the loading spinner. (default: var(--dds-icon-neutral-base))\n * @cssproperty --dds-combobox-clear-icon-color - The color of the clear icon. (default: var(--dds-button-subtle-icon-neutral-enabled))\n * @cssproperty --dds-combobox-popup-background - The background color of the popup. (default: var(--dds-background-neutral-subtle))\n * @cssproperty --dds-combobox-popup-shadow - The box shadow of the popup. (default: 0 4px 6px -1px rgba(0, 0, 0, 0.08), 0 2px 4px -1px rgba(0, 0, 0, 0.06))\n * @cssproperty --dds-combobox-icon-opened-transform - The transform of the icon when the combobox is opened (default: rotate(90deg)).\n * @cssproperty --dds-combobox-padding-xs - The padding for extra small size. (default: var(--dds-spacing-200))\n * @cssproperty --dds-combobox-padding-sm - The padding for small size. (default: var(--dds-spacing-200))\n * @cssproperty --dds-combobox-padding-lg - The padding for large size. (default: var(--dds-spacing-300))\n * @cssproperty --dds-combobox-padding-horizontal - The horizontal padding. (default: var(--dds-spacing-300))\n * @cssproperty --dds-combobox-padding-vertical - The vertical padding. (default: var(--dds-spacing-200))\n * @cssproperty --dds-combobox-gap - The gap between elements. (default: var(--dds-spacing-100))\n * @cssproperty --dds-combobox-icon-gap - The gap between icons. (default: var(--dds-spacing-200))\n * @cssproperty --dds-combobox-action-gap - The gap between action elements. (default: var(--dds-spacing-200))\n * @cssproperty --dds-combobox-action-padding - The padding for action elements. (default: var(--dds-spacing-300))\n * @cssproperty --dds-combobox-clear-icon-width - The width of the clear icon. (default: var(--dds-spacing-800))\n * @cssproperty --dds-combobox-dropdown-icon-right - The right position of the dropdown icon. (default: var(--dds-spacing-600))\n * @cssproperty --dds-combobox-min-width - The minimum width of the combobox. (default: 7.5rem)\n * @cssproperty --dds-combobox-chips-gap - The gap between chips. (default: var(--dds-spacing-100))\n * @cssproperty --dds-combobox-chips-padding - The padding for chips. (default: var(--dds-spacing-100))\n * @cssproperty --dds-combobox-chips-max-height - The maximum height of the chips. (default: 120px)\n *\n * @csspart base - The main search container.\n * @csspart trigger - The trigger button of the search.\n * @csspart search-button - The trailing search icon button.\n * @csspart label - The label of the search.\n * @csspart description - The description of the search.\n * @csspart feedback - The feedback of the search.\n * @csspart tooltip - The tooltip of the search.\n * @csspart option-list - The option list of the search.\n * @csspart input - The input of the search.\n * @csspart chips - The container of the selected chips.\n * @csspart indicator-icon - The dropdown indicator icon.\n * @csspart label-base - The base of the label.\n * @csspart label-required - The required indicator of the label.\n * @csspart label-optional - The optional indicator of the label.\n *\n * @slot - The default slot for the options.\n *\n */\nexport default class DapDSSearch extends ComboboxBaseElement {\n static tagName = 'dap-ds-search'\n\n constructor() {\n super()\n this.selectable = 'false'\n this.search = true\n this.noAnimation = true\n this.searchOnValueSet = 'false'\n this.searchMode = 'none'\n this.textComplete = false\n }\n\n render() {\n return this.renderCombobox()\n }\n}\n"],"names":["_DapDSSearch","ComboboxBaseElement","DapDSSearch"],"mappings":";AA4FA,MAAqBA,IAArB,MAAqBA,UAAoBC,EAAoB;AAAA,EAG3D,cAAc;AACN,UAAA,GACN,KAAK,aAAa,SAClB,KAAK,SAAS,IACd,KAAK,cAAc,IACnB,KAAK,mBAAmB,SACxB,KAAK,aAAa,QAClB,KAAK,eAAe;AAAA,EAAA;AAAA,EAGtB,SAAS;AACP,WAAO,KAAK,eAAe;AAAA,EAAA;AAE/B;AAfED,EAAO,UAAU;AADnB,IAAqBE,IAArBF;"}
|