dap-design-system 0.62.4 → 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.js +46 -46
- 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 +21 -0
- package/dist/components/combobox/comboboxBase.js +176 -139
- 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 +66 -14
- package/dist/components/option-list/option-list.component.js +381 -294
- 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.js +21 -25
- 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 +268 -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/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 +527 -312
- package/dist/manifest/vscode.html-custom-data.json +333 -279
- package/dist/manifest/web-types.json +723 -619
- 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 +366 -360
- package/dist/react.js.map +1 -1
- package/package.json +14 -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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anchor-heading.component.js","sources":["../../../src/components/anchor-heading/anchor-heading.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { html, unsafeStatic } from 'lit/static-html.js'\n\nimport { anchorClass } from '@/common/const'\nimport { kebabCase } from '@/common/utils'\nimport { adoptLightStyles } from '@/internal/adopt-light-styles'\nimport { DdsElement } from '@/internal/dds-hu-element'\n\nimport DapDSLink from '../link/link.component'\nimport typographyStyles from '../typography/_styles/typography.scss?inline'\nimport { TypographyVariant } from '../typography/typography.component'\nimport styles from './anchor-heading.scss?inline'\n\nexport type HeadingVariant = Extract<\n TypographyVariant,\n 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'\n>\n\n/**\n * `dap-ds-anchor-heading`\n * @summary Anchor heading is a heading with an anchor link.\n * @element dap-ds-anchor-heading\n * @title - Anchor heading\n *\n * @attribute {'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'} variant - The variant of the heading. Default is `h2`. Can be `h1`, `h2`, `h3`, `h4`, `h5`, or `h6`.\n * @attribute {string} label - The label of the heading.\n *\n * @csspart base - The main anchor heading container.\n * @csspart link - The link of the anchor heading. dap-ds-link element.\n * @csspart link-base - The base of the link part.\n * @csspart text - The text of the anchor heading.\n *\n * @cssproperty --dds-anchor-link-color - The color of the anchor link (default: var(--dds-color-primary))\n * @cssproperty --dds-anchor-link-opacity - The opacity of the anchor link when not hovered (default: 0)\n * @cssproperty --dds-anchor-link-hover-opacity - The opacity of the anchor link when hovered (default: 1)\n * @cssproperty --dds-anchor-link-transition - The transition property for the anchor link opacity (default: opacity 0.2s ease-in-out)\n */\nexport default class DapDSAnchorHeading extends DdsElement {\n static tagName = 'dap-ds-anchor-heading'\n\n static dependencies = {\n 'dap-ds-link': DapDSLink,\n }\n\n @property() variant!: HeadingVariant\n @property() label!: string\n\n static readonly styles = [unsafeCSS(styles), unsafeCSS(typographyStyles)]\n\n createRenderRoot() {\n adoptLightStyles(this)\n return this\n }\n\n get elementId() {\n return this.id ? this.id : kebabCase(this.label)\n }\n\n get anchorTitle() {\n return `Link to ${this.label}`\n }\n\n render() {\n return html`\n <${unsafeStatic(this.variant)}\n id=${this.elementId}\n part=\"base\"\n class=${clsx(anchorClass, { [`typography-${this.variant}`]: this.variant })}\n >\n ${this.label}\n <dap-ds-link\n part=\"link\"\n exportparts=\"base: link-base, text: link-text\"\n class=\"dds-anchor__link\"\n href=${`#${this.elementId}`}\n aria-label=${this.anchorTitle}\n title=${this.anchorTitle}>\n ​\n </dap-ds-link>\n </${unsafeStatic(this.variant)}>\n `\n }\n}\n"],"names":["_DapDSAnchorHeading","DdsElement","adoptLightStyles","kebabCase","html","unsafeStatic","clsx","anchorClass","DapDSLink","unsafeCSS","styles","typographyStyles","DapDSAnchorHeading","__decorateClass","property"],"mappings":"
|
|
1
|
+
{"version":3,"file":"anchor-heading.component.js","sources":["../../../src/components/anchor-heading/anchor-heading.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { html, unsafeStatic } from 'lit/static-html.js'\n\nimport { anchorClass } from '@/common/const'\nimport { kebabCase } from '@/common/utils'\nimport { adoptLightStyles } from '@/internal/adopt-light-styles'\nimport { DdsElement } from '@/internal/dds-hu-element'\n\nimport DapDSLink from '../link/link.component'\nimport typographyStyles from '../typography/_styles/typography.scss?inline'\nimport { TypographyVariant } from '../typography/typography.component'\nimport styles from './anchor-heading.scss?inline'\n\nexport type HeadingVariant = Extract<\n TypographyVariant,\n 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'\n>\n\n/**\n * `dap-ds-anchor-heading`\n * @summary Anchor heading is a heading with an anchor link.\n * @element dap-ds-anchor-heading\n * @title - Anchor heading\n *\n * @attribute {'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'} variant - The variant of the heading. Default is `h2`. Can be `h1`, `h2`, `h3`, `h4`, `h5`, or `h6`.\n * @attribute {string} label - The label of the heading.\n *\n * @csspart base - The main anchor heading container.\n * @csspart link - The link of the anchor heading. dap-ds-link element.\n * @csspart link-base - The base of the link part.\n * @csspart text - The text of the anchor heading.\n * @csspart link-text - Alias of the text part.\n *\n * @cssproperty --dds-anchor-link-color - The color of the anchor link (default: var(--dds-color-primary))\n * @cssproperty --dds-anchor-link-opacity - The opacity of the anchor link when not hovered (default: 0)\n * @cssproperty --dds-anchor-link-hover-opacity - The opacity of the anchor link when hovered (default: 1)\n * @cssproperty --dds-anchor-link-transition - The transition property for the anchor link opacity (default: opacity 0.2s ease-in-out)\n */\nexport default class DapDSAnchorHeading extends DdsElement {\n static tagName = 'dap-ds-anchor-heading'\n\n static dependencies = {\n 'dap-ds-link': DapDSLink,\n }\n\n @property() variant!: HeadingVariant\n @property() label!: string\n\n static readonly styles = [unsafeCSS(styles), unsafeCSS(typographyStyles)]\n\n createRenderRoot() {\n adoptLightStyles(this)\n return this\n }\n\n get elementId() {\n return this.id ? this.id : kebabCase(this.label)\n }\n\n get anchorTitle() {\n return `Link to ${this.label}`\n }\n\n render() {\n return html`\n <${unsafeStatic(this.variant)}\n id=${this.elementId}\n part=\"base\"\n class=${clsx(anchorClass, { [`typography-${this.variant}`]: this.variant })}\n >\n ${this.label}\n <dap-ds-link\n part=\"link\"\n exportparts=\"base: link-base, text: link-text, text: text\"\n class=\"dds-anchor__link\"\n href=${`#${this.elementId}`}\n aria-label=${this.anchorTitle}\n title=${this.anchorTitle}>\n ​\n </dap-ds-link>\n </${unsafeStatic(this.variant)}>\n `\n }\n}\n"],"names":["_DapDSAnchorHeading","DdsElement","adoptLightStyles","kebabCase","html","unsafeStatic","clsx","anchorClass","DapDSLink","unsafeCSS","styles","typographyStyles","DapDSAnchorHeading","__decorateClass","property"],"mappings":";;;;;;;;;;;;;;;;AAwCA,MAAqBA,IAArB,MAAqBA,UAA2BC,EAAW;AAAA,EAYzD,mBAAmB;AACjB,WAAAC,EAAiB,IAAI,GACd;AAAA,EAAA;AAAA,EAGT,IAAI,YAAY;AACd,WAAO,KAAK,KAAK,KAAK,KAAKC,EAAU,KAAK,KAAK;AAAA,EAAA;AAAA,EAGjD,IAAI,cAAc;AACT,WAAA,WAAW,KAAK,KAAK;AAAA,EAAA;AAAA,EAG9B,SAAS;AACA,WAAAC;AAAA,OACJC,EAAa,KAAK,OAAO,CAAC;AAAA,WACtB,KAAK,SAAS;AAAA;AAAA,cAEXC,EAAKC,GAAa,EAAE,CAAC,cAAc,KAAK,OAAO,EAAE,GAAG,KAAK,SAAS,CAAC;AAAA;AAAA,QAEzE,KAAK,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,eAKH,IAAI,KAAK,SAAS,EAAE;AAAA,qBACd,KAAK,WAAW;AAAA,gBACrB,KAAK,WAAW;AAAA;AAAA;AAAA,QAGxBF,EAAa,KAAK,OAAO,CAAC;AAAA;AAAA,EAAA;AAGlC;AA5CEL,EAAO,UAAU,yBAEjBA,EAAO,eAAe;AAAA,EACpB,eAAeQ;AACjB,GAKAR,EAAgB,SAAS,CAACS,EAAUC,CAAM,GAAGD,EAAUE,CAAgB,CAAC;AAV1E,IAAqBC,IAArBZ;AAOca,EAAA;AAAA,EAAXC,EAAS;AAAA,GAPSF,EAOP,WAAA,SAAA;AACAC,EAAA;AAAA,EAAXC,EAAS;AAAA,GARSF,EAQP,WAAA,OAAA;"}
|
|
@@ -1,23 +1,19 @@
|
|
|
1
|
-
import { clsx as
|
|
2
|
-
import "
|
|
3
|
-
import {
|
|
4
|
-
import "
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
var y = Object.defineProperty, i = (p, e, a, z) => {
|
|
16
|
-
for (var n = void 0, d = p.length - 1, c; d >= 0; d--)
|
|
17
|
-
(c = p[d]) && (n = c(e, a, n) || n);
|
|
18
|
-
return n && y(e, a, n), n;
|
|
1
|
+
import { clsx as l } from "../../node_modules/clsx/dist/clsx.js";
|
|
2
|
+
import { unsafeCSS as g, nothing as m } from "lit";
|
|
3
|
+
import { property as r, state as f } from "lit/decorators.js";
|
|
4
|
+
import { ifDefined as s } from "lit/directives/if-defined.js";
|
|
5
|
+
import { html as o } from "lit/static-html.js";
|
|
6
|
+
import { DdsElement as v } from "../../internal/dds-hu-element.js";
|
|
7
|
+
import { SizedMixin as u } from "../../internal/mixin/sizedMixin.js";
|
|
8
|
+
import $ from "../icons/user/user-user-line/user-user-line.component.js";
|
|
9
|
+
import I from "../spinner/spinner.component.js";
|
|
10
|
+
import b from "./avatar.scss.js";
|
|
11
|
+
var y = Object.defineProperty, i = (c, t, a, z) => {
|
|
12
|
+
for (var n = void 0, d = c.length - 1, p; d >= 0; d--)
|
|
13
|
+
(p = c[d]) && (n = p(t, a, n) || n);
|
|
14
|
+
return n && y(t, a, n), n;
|
|
19
15
|
};
|
|
20
|
-
const _ = v
|
|
16
|
+
const _ = u(v), h = class h extends _ {
|
|
21
17
|
constructor() {
|
|
22
18
|
super(), this.shape = "circle", this.variant = "image", this.loading = !1, this.interactive = !1, this.hasImageError = !1, this.isImageLoading = !0, this.handleImageLoad = () => {
|
|
23
19
|
this.isImageLoading = !1, this.hasImageError = !1, this.emit("dds-load");
|
|
@@ -27,11 +23,11 @@ const _ = v(g), h = class h extends _ {
|
|
|
27
23
|
this.interactive && this.click();
|
|
28
24
|
}, this.size = "md";
|
|
29
25
|
}
|
|
30
|
-
generateInitials(
|
|
31
|
-
return !
|
|
26
|
+
generateInitials(t) {
|
|
27
|
+
return !t || !t.trim() ? "" : t.trim().split(" ").filter((a) => a.length > 0).map((a) => a.charAt(0)).join("").toUpperCase().slice(0, 2);
|
|
32
28
|
}
|
|
33
|
-
mapSizeToSpinnerSize(
|
|
34
|
-
switch (
|
|
29
|
+
mapSizeToSpinnerSize(t) {
|
|
30
|
+
switch (t) {
|
|
35
31
|
case "xxs":
|
|
36
32
|
return "xs";
|
|
37
33
|
case "xs":
|
|
@@ -47,9 +43,9 @@ const _ = v(g), h = class h extends _ {
|
|
|
47
43
|
}
|
|
48
44
|
}
|
|
49
45
|
renderImage() {
|
|
50
|
-
return !this.src || this.hasImageError ? m :
|
|
46
|
+
return !this.src || this.hasImageError ? m : o`
|
|
51
47
|
<img
|
|
52
|
-
class=${
|
|
48
|
+
class=${l("avatar__img", `avatar__img--${this.effectiveSize}`)}
|
|
53
49
|
style=${this.width && this.height ? `width: ${this.width}px; height: ${this.height}px;` : ""}
|
|
54
50
|
part="img"
|
|
55
51
|
alt=${s(this.alt)}
|
|
@@ -60,23 +56,23 @@ const _ = v(g), h = class h extends _ {
|
|
|
60
56
|
`;
|
|
61
57
|
}
|
|
62
58
|
renderInitials() {
|
|
63
|
-
const
|
|
64
|
-
return
|
|
59
|
+
const t = this.generateInitials(this.initials);
|
|
60
|
+
return t ? o`
|
|
65
61
|
<div
|
|
66
|
-
class=${
|
|
62
|
+
class=${l(
|
|
67
63
|
"avatar__initials",
|
|
68
64
|
`avatar__initials--${this.effectiveSize}`
|
|
69
65
|
)}
|
|
70
66
|
part="initials"
|
|
71
67
|
aria-label=${s(this.label || `Avatar for ${this.initials}`)}>
|
|
72
|
-
${
|
|
68
|
+
${t}
|
|
73
69
|
</div>
|
|
74
70
|
` : null;
|
|
75
71
|
}
|
|
76
72
|
renderIcon() {
|
|
77
|
-
return
|
|
73
|
+
return o`
|
|
78
74
|
<div
|
|
79
|
-
class=${
|
|
75
|
+
class=${l("avatar__icon", `avatar__icon--${this.effectiveSize}`)}
|
|
80
76
|
part="icon"
|
|
81
77
|
aria-label=${s(this.label || "Avatar icon")}>
|
|
82
78
|
<slot name="icon"></slot>
|
|
@@ -84,9 +80,9 @@ const _ = v(g), h = class h extends _ {
|
|
|
84
80
|
`;
|
|
85
81
|
}
|
|
86
82
|
renderFallback() {
|
|
87
|
-
return
|
|
83
|
+
return o`
|
|
88
84
|
<div
|
|
89
|
-
class=${
|
|
85
|
+
class=${l(
|
|
90
86
|
"avatar__fallback",
|
|
91
87
|
`avatar__fallback--${this.effectiveSize}`
|
|
92
88
|
)}
|
|
@@ -99,9 +95,9 @@ const _ = v(g), h = class h extends _ {
|
|
|
99
95
|
`;
|
|
100
96
|
}
|
|
101
97
|
renderLoading() {
|
|
102
|
-
return !this.loading || !this.isImageLoading ? m :
|
|
98
|
+
return !this.loading || !this.isImageLoading ? m : o`
|
|
103
99
|
<div
|
|
104
|
-
class=${
|
|
100
|
+
class=${l(
|
|
105
101
|
"avatar__loading",
|
|
106
102
|
`avatar__loading--${this.effectiveSize}`
|
|
107
103
|
)}
|
|
@@ -128,7 +124,7 @@ const _ = v(g), h = class h extends _ {
|
|
|
128
124
|
}
|
|
129
125
|
}
|
|
130
126
|
render() {
|
|
131
|
-
const
|
|
127
|
+
const t = l(
|
|
132
128
|
"avatar",
|
|
133
129
|
`avatar--${this.effectiveSize}`,
|
|
134
130
|
`avatar--${this.shape}`,
|
|
@@ -139,9 +135,9 @@ const _ = v(g), h = class h extends _ {
|
|
|
139
135
|
"avatar--error": this.hasImageError
|
|
140
136
|
}
|
|
141
137
|
);
|
|
142
|
-
return
|
|
138
|
+
return o`
|
|
143
139
|
<div
|
|
144
|
-
class=${
|
|
140
|
+
class=${t}
|
|
145
141
|
part="base"
|
|
146
142
|
role=${s(this.interactive ? "button" : void 0)}
|
|
147
143
|
tabindex=${s(this.interactive ? 0 : void 0)}
|
|
@@ -154,47 +150,47 @@ const _ = v(g), h = class h extends _ {
|
|
|
154
150
|
}
|
|
155
151
|
};
|
|
156
152
|
h.tagName = "dap-ds-avatar", h.dependencies = {
|
|
157
|
-
"dap-ds-icon-user-line":
|
|
158
|
-
"dap-ds-spinner":
|
|
159
|
-
}, h.styles = b
|
|
160
|
-
let
|
|
153
|
+
"dap-ds-icon-user-line": $,
|
|
154
|
+
"dap-ds-spinner": I
|
|
155
|
+
}, h.styles = g(b);
|
|
156
|
+
let e = h;
|
|
161
157
|
i([
|
|
162
158
|
r({ reflect: !0 })
|
|
163
|
-
],
|
|
159
|
+
], e.prototype, "shape");
|
|
164
160
|
i([
|
|
165
161
|
r({ reflect: !0 })
|
|
166
|
-
],
|
|
162
|
+
], e.prototype, "variant");
|
|
167
163
|
i([
|
|
168
164
|
r()
|
|
169
|
-
],
|
|
165
|
+
], e.prototype, "src");
|
|
170
166
|
i([
|
|
171
167
|
r()
|
|
172
|
-
],
|
|
168
|
+
], e.prototype, "alt");
|
|
173
169
|
i([
|
|
174
170
|
r()
|
|
175
|
-
],
|
|
171
|
+
], e.prototype, "initials");
|
|
176
172
|
i([
|
|
177
173
|
r()
|
|
178
|
-
],
|
|
174
|
+
], e.prototype, "label");
|
|
179
175
|
i([
|
|
180
176
|
r({ type: Boolean })
|
|
181
|
-
],
|
|
177
|
+
], e.prototype, "loading");
|
|
182
178
|
i([
|
|
183
179
|
r({ type: Boolean, reflect: !0 })
|
|
184
|
-
],
|
|
180
|
+
], e.prototype, "interactive");
|
|
185
181
|
i([
|
|
186
182
|
r({ type: Number })
|
|
187
|
-
],
|
|
183
|
+
], e.prototype, "width");
|
|
188
184
|
i([
|
|
189
185
|
r({ type: Number })
|
|
190
|
-
],
|
|
186
|
+
], e.prototype, "height");
|
|
191
187
|
i([
|
|
192
188
|
f()
|
|
193
|
-
],
|
|
189
|
+
], e.prototype, "hasImageError");
|
|
194
190
|
i([
|
|
195
191
|
f()
|
|
196
|
-
],
|
|
192
|
+
], e.prototype, "isImageLoading");
|
|
197
193
|
export {
|
|
198
|
-
|
|
194
|
+
e as default
|
|
199
195
|
};
|
|
200
196
|
//# sourceMappingURL=avatar.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatar.component.js","sources":["../../../src/components/avatar/avatar.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { nothing, unsafeCSS } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html } from 'lit/static-html.js'\n\nimport { AvatarShape, AvatarVariant, Size } from '@/dap-design-system'\n\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport { SizedMixin } from '../../internal/mixin/sizedMixin'\nimport UserUserLine from '../icons/user/user-user-line/user-user-line.component'\nimport DapDSSpinner from '../spinner/spinner.component'\nimport styles from './avatar.scss?inline'\n\nconst AvatarBaseWithSized = SizedMixin(DdsElement)\n\n/**\n * `dap-ds-avatar`\n * @summary Avatar component can be used to display user profile images, initials, or icons.\n * @element dap-ds-avatar\n * @title - Avatar\n *\n * @slot icon - The icon to display when variant is 'icon'.\n * @slot fallback - Custom fallback content when image fails to load.\n *\n * @event dds-load - Fired when the image loads successfully.\n * @event dds-error - Fired when the image fails to load.\n *\n * @csspart base - The main avatar container.\n * @csspart img - The avatar image.\n * @csspart initials - The initials container.\n * @csspart icon - The icon container.\n * @csspart fallback - The fallback content container.\n * @csspart loading - The loading indicator.\n *\n * @cssproperty --dds-avatar-border-radius - The border radius of the avatar (default: 50%)\n * @cssproperty --dds-avatar-background-color - The background color of the avatar (default: var(--dds-neutral-200))\n * @cssproperty --dds-avatar-border-width - The border width of the avatar (default: 0)\n * @cssproperty --dds-avatar-border-color - The color of the avatar's border (default: transparent)\n * @cssproperty --dds-avatar-border-style - The style of the avatar's border (default: solid)\n * @cssproperty --dds-avatar-transition - The transition property for the avatar (default: all 0.2s ease-in-out)\n * @cssproperty --dds-avatar-text-color - The text color for initials (default: var(--dds-text-neutral-strong))\n * @cssproperty --dds-avatar-font-weight - The font weight for initials (default: var(--dds-font-weight-bold))\n * @cssproperty --dds-avatar-lg-size - Size for large avatars (default: var(--dds-avatar-size-lg))\n * @cssproperty --dds-avatar-md-size - Size for medium avatars (default: var(--dds-avatar-size-md))\n * @cssproperty --dds-avatar-sm-size - Size for small avatars (default: var(--dds-avatar-size-sm))\n * @cssproperty --dds-avatar-xs-size - Size for extra small avatars (default: var(--dds-avatar-size-xs))\n * @cssproperty --dds-avatar-xxs-size - Size for extra extra small avatars (default: var(--dds-avatar-size-xxs))\n * @cssproperty --dds-avatar-font-size-lg - Font size for large avatars (default: var(--dds-font-2xl))\n * @cssproperty --dds-avatar-font-size-md - Font size for medium avatars (default: var(--dds-font-lg))\n * @cssproperty --dds-avatar-font-size-sm - Font size for small avatars (default: var(--dds-font-base))\n * @cssproperty --dds-avatar-font-size-xs - Font size for extra small avatars (default: var(--dds-font-sm))\n * @cssproperty --dds-avatar-font-size-xxs - Font size for extra extra small avatars (default: var(--dds-font-xs))\n * @cssproperty --dds-avatar-hover-transform - Transform applied on hover for interactive avatars (default: scale(1.05))\n * @cssproperty --dds-avatar-active-transform - Transform applied when active for interactive avatars (default: scale(0.95))\n * @cssproperty --dds-avatar-focus-ring - Focus ring style for interactive avatars (default: 0 0 0 2px var(--dds-focus-outer-ring))\n * @cssproperty --dds-avatar-loading-background - Background color when loading (default: var(--dds-neutral-100))\n * @cssproperty --dds-avatar-error-background - Background color when image fails to load (default: var(--dds-negative-100))\n * @cssproperty --dds-avatar-error-color - Text color when image fails to load (default: var(--dds-negative-600))\n *\n * @property { 'xxs' | 'xs' | 'sm' | 'md' | 'lg' } size - The size of the avatar. Default is `md`.\n * @property {string} sizeMap - Responsive size map (e.g. \"md:lg\").\n */\nexport default class DapDSAvatar extends AvatarBaseWithSized {\n static tagName = 'dap-ds-avatar'\n\n static dependencies = {\n 'dap-ds-icon-user-line': UserUserLine,\n 'dap-ds-spinner': DapDSSpinner,\n }\n\n /** The shape of the avatar\n * @default circle\n * @type { 'circle' | 'rounded' | 'square' }\n * @example\n * ```html\n * <dap-ds-avatar shape=\"circle\">\n * <dap-ds-avatar shape=\"rounded\">\n * <dap-ds-avatar shape=\"square\">\n * ```\n */\n @property({ reflect: true }) shape: AvatarShape = 'circle'\n /** The variant type of the avatar\n * @default image\n * @type { 'image' | 'initials' | 'icon' }\n * @example\n * ```html\n * <dap-ds-avatar variant=\"image\">\n * <dap-ds-avatar variant=\"initials\">\n * <dap-ds-avatar variant=\"icon\">\n * ```\n */\n @property({ reflect: true }) variant: AvatarVariant = 'image'\n /** The source of the avatar image */\n @property() src: string\n /** The alt text of the avatar */\n @property() alt: string\n /** The initials to display when variant is 'initials' */\n @property() initials: string\n /** Accessible label for the avatar */\n @property() label: string\n /** Loading state indicator */\n @property({ type: Boolean }) loading = false\n /** Whether the avatar is interactive (clickable) */\n @property({ type: Boolean, reflect: true }) interactive = false\n /** The width of the avatar. This will override the size */\n @property({ type: Number }) width: number\n /** The height of the avatar. This will override the size */\n @property({ type: Number }) height: number\n\n @state() private hasImageError = false\n\n constructor() {\n super()\n this.size = 'md'\n }\n @state() private isImageLoading = true\n\n static readonly styles = unsafeCSS(styles)\n\n private handleImageLoad = () => {\n this.isImageLoading = false\n this.hasImageError = false\n this.emit('dds-load')\n }\n\n private handleImageError = () => {\n this.isImageLoading = false\n this.hasImageError = true\n this.emit('dds-error')\n }\n\n private handleClick = () => {\n if (this.interactive) {\n this.click()\n }\n }\n\n private generateInitials(initials?: string): string {\n if (!initials || !initials.trim()) return ''\n return initials\n .trim()\n .split(' ')\n .filter(word => word.length > 0)\n .map(word => word.charAt(0))\n .join('')\n .toUpperCase()\n .slice(0, 2)\n }\n\n private mapSizeToSpinnerSize(\n size: Size,\n ): 'xxl' | 'xl' | 'lg' | 'md' | 'sm' | 'xs' {\n switch (size) {\n case 'xxs':\n return 'xs'\n case 'xs':\n return 'sm'\n case 'sm':\n return 'md'\n case 'md':\n return 'lg'\n case 'lg':\n return 'xl'\n default:\n return 'lg'\n }\n }\n\n private renderImage() {\n if (!this.src || this.hasImageError) return nothing\n\n return html`\n <img\n class=${clsx('avatar__img', `avatar__img--${this.effectiveSize}`)}\n style=${this.width && this.height\n ? `width: ${this.width}px; height: ${this.height}px;`\n : ''}\n part=\"img\"\n alt=${ifDefined(this.alt)}\n src=${this.src}\n loading=\"lazy\"\n @load=${this.handleImageLoad}\n @error=${this.handleImageError} />\n `\n }\n\n private renderInitials() {\n const displayInitials = this.generateInitials(this.initials)\n if (!displayInitials) return null\n\n return html`\n <div\n class=${clsx(\n 'avatar__initials',\n `avatar__initials--${this.effectiveSize}`,\n )}\n part=\"initials\"\n aria-label=${ifDefined(this.label || `Avatar for ${this.initials}`)}>\n ${displayInitials}\n </div>\n `\n }\n\n private renderIcon() {\n return html`\n <div\n class=${clsx('avatar__icon', `avatar__icon--${this.effectiveSize}`)}\n part=\"icon\"\n aria-label=${ifDefined(this.label || 'Avatar icon')}>\n <slot name=\"icon\"></slot>\n </div>\n `\n }\n\n private renderFallback() {\n return html`\n <div\n class=${clsx(\n 'avatar__fallback',\n `avatar__fallback--${this.effectiveSize}`,\n )}\n part=\"fallback\"\n aria-label=${ifDefined(this.label || 'Avatar')}>\n <slot name=\"fallback\">\n <dap-ds-icon-user-line></dap-ds-icon-user-line>\n </slot>\n </div>\n `\n }\n\n private renderLoading() {\n if (!this.loading || !this.isImageLoading) return nothing\n\n return html`\n <div\n class=${clsx(\n 'avatar__loading',\n `avatar__loading--${this.effectiveSize}`,\n )}\n part=\"loading\"\n aria-label=${ifDefined(this.label || 'Loading avatar')}>\n <dap-ds-spinner\n size=${this.mapSizeToSpinnerSize(this.effectiveSize)}\n variant=\"brand\"></dap-ds-spinner>\n </div>\n `\n }\n\n private renderContent() {\n if (this.loading && this.isImageLoading && this.variant === 'image') {\n return this.renderLoading()\n }\n\n switch (this.variant) {\n case 'image':\n if (this.src && !this.hasImageError) {\n return this.renderImage()\n } else if (this.initials) {\n return this.renderInitials()\n } else {\n return this.renderFallback()\n }\n case 'initials':\n return this.renderInitials() || this.renderFallback()\n case 'icon':\n return this.renderIcon()\n default:\n return this.renderFallback()\n }\n }\n\n render() {\n const baseClasses = clsx(\n 'avatar',\n `avatar--${this.effectiveSize}`,\n `avatar--${this.shape}`,\n `avatar--${this.variant}`,\n {\n 'avatar--interactive': this.interactive,\n 'avatar--loading': this.loading && this.isImageLoading,\n 'avatar--error': this.hasImageError,\n },\n )\n\n return html`\n <div\n class=${baseClasses}\n part=\"base\"\n role=${ifDefined(this.interactive ? 'button' : undefined)}\n tabindex=${ifDefined(this.interactive ? 0 : undefined)}\n @keydown=${(e: KeyboardEvent) => {\n if (this.interactive && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault()\n this.handleClick()\n }\n }}>\n ${this.renderContent()}\n </div>\n `\n }\n}\n"],"names":["AvatarBaseWithSized","SizedMixin","DdsElement","_DapDSAvatar","initials","word","size","nothing","html","clsx","ifDefined","displayInitials","baseClasses","e","UserUserLine","DapDSSpinner","unsafeCSS","styles","DapDSAvatar","__decorateClass","property","state"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"avatar.component.js","sources":["../../../src/components/avatar/avatar.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { nothing, unsafeCSS } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html } from 'lit/static-html.js'\n\nimport { AvatarShape, AvatarVariant, Size } from '@/dap-design-system'\n\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport { SizedMixin } from '../../internal/mixin/sizedMixin'\nimport UserUserLine from '../icons/user/user-user-line/user-user-line.component'\nimport DapDSSpinner from '../spinner/spinner.component'\nimport styles from './avatar.scss?inline'\n\nconst AvatarBaseWithSized = SizedMixin(DdsElement)\n\n/**\n * `dap-ds-avatar`\n * @summary Avatar component can be used to display user profile images, initials, or icons.\n * @element dap-ds-avatar\n * @title - Avatar\n *\n * @slot icon - The icon to display when variant is 'icon'.\n * @slot fallback - Custom fallback content when image fails to load.\n *\n * @event dds-load - Fired when the image loads successfully.\n * @event dds-error - Fired when the image fails to load.\n *\n * @csspart base - The main avatar container.\n * @csspart img - The avatar image.\n * @csspart initials - The initials container.\n * @csspart icon - The icon container.\n * @csspart fallback - The fallback content container.\n * @csspart loading - The loading indicator.\n *\n * @cssproperty --dds-avatar-border-radius - The border radius of the avatar (default: 50%)\n * @cssproperty --dds-avatar-background-color - The background color of the avatar (default: var(--dds-neutral-200))\n * @cssproperty --dds-avatar-border-width - The border width of the avatar (default: 0)\n * @cssproperty --dds-avatar-border-color - The color of the avatar's border (default: transparent)\n * @cssproperty --dds-avatar-border-style - The style of the avatar's border (default: solid)\n * @cssproperty --dds-avatar-transition - The transition property for the avatar (default: all 0.2s ease-in-out)\n * @cssproperty --dds-avatar-text-color - The text color for initials (default: var(--dds-text-neutral-strong))\n * @cssproperty --dds-avatar-font-weight - The font weight for initials (default: var(--dds-font-weight-bold))\n * @cssproperty --dds-avatar-lg-size - Size for large avatars (default: var(--dds-avatar-size-lg))\n * @cssproperty --dds-avatar-md-size - Size for medium avatars (default: var(--dds-avatar-size-md))\n * @cssproperty --dds-avatar-sm-size - Size for small avatars (default: var(--dds-avatar-size-sm))\n * @cssproperty --dds-avatar-xs-size - Size for extra small avatars (default: var(--dds-avatar-size-xs))\n * @cssproperty --dds-avatar-xxs-size - Size for extra extra small avatars (default: var(--dds-avatar-size-xxs))\n * @cssproperty --dds-avatar-font-size-lg - Font size for large avatars (default: var(--dds-font-2xl))\n * @cssproperty --dds-avatar-font-size-md - Font size for medium avatars (default: var(--dds-font-lg))\n * @cssproperty --dds-avatar-font-size-sm - Font size for small avatars (default: var(--dds-font-base))\n * @cssproperty --dds-avatar-font-size-xs - Font size for extra small avatars (default: var(--dds-font-sm))\n * @cssproperty --dds-avatar-font-size-xxs - Font size for extra extra small avatars (default: var(--dds-font-xs))\n * @cssproperty --dds-avatar-hover-transform - Transform applied on hover for interactive avatars (default: scale(1.05))\n * @cssproperty --dds-avatar-active-transform - Transform applied when active for interactive avatars (default: scale(0.95))\n * @cssproperty --dds-avatar-focus-ring - Focus ring style for interactive avatars (default: 0 0 0 2px var(--dds-focus-outer-ring))\n * @cssproperty --dds-avatar-loading-background - Background color when loading (default: var(--dds-neutral-100))\n * @cssproperty --dds-avatar-error-background - Background color when image fails to load (default: var(--dds-negative-100))\n * @cssproperty --dds-avatar-error-color - Text color when image fails to load (default: var(--dds-negative-600))\n *\n * @property { 'xxs' | 'xs' | 'sm' | 'md' | 'lg' } size - The size of the avatar. Default is `md`.\n * @property {string} sizeMap - Responsive size map (e.g. \"md:lg\").\n */\nexport default class DapDSAvatar extends AvatarBaseWithSized {\n static tagName = 'dap-ds-avatar'\n\n static dependencies = {\n 'dap-ds-icon-user-line': UserUserLine,\n 'dap-ds-spinner': DapDSSpinner,\n }\n\n /** The shape of the avatar\n * @default circle\n * @type { 'circle' | 'rounded' | 'square' }\n * @example\n * ```html\n * <dap-ds-avatar shape=\"circle\">\n * <dap-ds-avatar shape=\"rounded\">\n * <dap-ds-avatar shape=\"square\">\n * ```\n */\n @property({ reflect: true }) shape: AvatarShape = 'circle'\n /** The variant type of the avatar\n * @default image\n * @type { 'image' | 'initials' | 'icon' }\n * @example\n * ```html\n * <dap-ds-avatar variant=\"image\">\n * <dap-ds-avatar variant=\"initials\">\n * <dap-ds-avatar variant=\"icon\">\n * ```\n */\n @property({ reflect: true }) variant: AvatarVariant = 'image'\n /** The source of the avatar image */\n @property() src: string\n /** The alt text of the avatar */\n @property() alt: string\n /** The initials to display when variant is 'initials' */\n @property() initials: string\n /** Accessible label for the avatar */\n @property() label: string\n /** Loading state indicator */\n @property({ type: Boolean }) loading = false\n /** Whether the avatar is interactive (clickable) */\n @property({ type: Boolean, reflect: true }) interactive = false\n /** The width of the avatar. This will override the size */\n @property({ type: Number }) width: number\n /** The height of the avatar. This will override the size */\n @property({ type: Number }) height: number\n\n @state() private hasImageError = false\n\n constructor() {\n super()\n this.size = 'md'\n }\n @state() private isImageLoading = true\n\n static readonly styles = unsafeCSS(styles)\n\n private handleImageLoad = () => {\n this.isImageLoading = false\n this.hasImageError = false\n this.emit('dds-load')\n }\n\n private handleImageError = () => {\n this.isImageLoading = false\n this.hasImageError = true\n this.emit('dds-error')\n }\n\n private handleClick = () => {\n if (this.interactive) {\n this.click()\n }\n }\n\n private generateInitials(initials?: string): string {\n if (!initials || !initials.trim()) return ''\n return initials\n .trim()\n .split(' ')\n .filter(word => word.length > 0)\n .map(word => word.charAt(0))\n .join('')\n .toUpperCase()\n .slice(0, 2)\n }\n\n private mapSizeToSpinnerSize(\n size: Size,\n ): 'xxl' | 'xl' | 'lg' | 'md' | 'sm' | 'xs' {\n switch (size) {\n case 'xxs':\n return 'xs'\n case 'xs':\n return 'sm'\n case 'sm':\n return 'md'\n case 'md':\n return 'lg'\n case 'lg':\n return 'xl'\n default:\n return 'lg'\n }\n }\n\n private renderImage() {\n if (!this.src || this.hasImageError) return nothing\n\n return html`\n <img\n class=${clsx('avatar__img', `avatar__img--${this.effectiveSize}`)}\n style=${this.width && this.height\n ? `width: ${this.width}px; height: ${this.height}px;`\n : ''}\n part=\"img\"\n alt=${ifDefined(this.alt)}\n src=${this.src}\n loading=\"lazy\"\n @load=${this.handleImageLoad}\n @error=${this.handleImageError} />\n `\n }\n\n private renderInitials() {\n const displayInitials = this.generateInitials(this.initials)\n if (!displayInitials) return null\n\n return html`\n <div\n class=${clsx(\n 'avatar__initials',\n `avatar__initials--${this.effectiveSize}`,\n )}\n part=\"initials\"\n aria-label=${ifDefined(this.label || `Avatar for ${this.initials}`)}>\n ${displayInitials}\n </div>\n `\n }\n\n private renderIcon() {\n return html`\n <div\n class=${clsx('avatar__icon', `avatar__icon--${this.effectiveSize}`)}\n part=\"icon\"\n aria-label=${ifDefined(this.label || 'Avatar icon')}>\n <slot name=\"icon\"></slot>\n </div>\n `\n }\n\n private renderFallback() {\n return html`\n <div\n class=${clsx(\n 'avatar__fallback',\n `avatar__fallback--${this.effectiveSize}`,\n )}\n part=\"fallback\"\n aria-label=${ifDefined(this.label || 'Avatar')}>\n <slot name=\"fallback\">\n <dap-ds-icon-user-line></dap-ds-icon-user-line>\n </slot>\n </div>\n `\n }\n\n private renderLoading() {\n if (!this.loading || !this.isImageLoading) return nothing\n\n return html`\n <div\n class=${clsx(\n 'avatar__loading',\n `avatar__loading--${this.effectiveSize}`,\n )}\n part=\"loading\"\n aria-label=${ifDefined(this.label || 'Loading avatar')}>\n <dap-ds-spinner\n size=${this.mapSizeToSpinnerSize(this.effectiveSize)}\n variant=\"brand\"></dap-ds-spinner>\n </div>\n `\n }\n\n private renderContent() {\n if (this.loading && this.isImageLoading && this.variant === 'image') {\n return this.renderLoading()\n }\n\n switch (this.variant) {\n case 'image':\n if (this.src && !this.hasImageError) {\n return this.renderImage()\n } else if (this.initials) {\n return this.renderInitials()\n } else {\n return this.renderFallback()\n }\n case 'initials':\n return this.renderInitials() || this.renderFallback()\n case 'icon':\n return this.renderIcon()\n default:\n return this.renderFallback()\n }\n }\n\n render() {\n const baseClasses = clsx(\n 'avatar',\n `avatar--${this.effectiveSize}`,\n `avatar--${this.shape}`,\n `avatar--${this.variant}`,\n {\n 'avatar--interactive': this.interactive,\n 'avatar--loading': this.loading && this.isImageLoading,\n 'avatar--error': this.hasImageError,\n },\n )\n\n return html`\n <div\n class=${baseClasses}\n part=\"base\"\n role=${ifDefined(this.interactive ? 'button' : undefined)}\n tabindex=${ifDefined(this.interactive ? 0 : undefined)}\n @keydown=${(e: KeyboardEvent) => {\n if (this.interactive && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault()\n this.handleClick()\n }\n }}>\n ${this.renderContent()}\n </div>\n `\n }\n}\n"],"names":["AvatarBaseWithSized","SizedMixin","DdsElement","_DapDSAvatar","initials","word","size","nothing","html","clsx","ifDefined","displayInitials","baseClasses","e","UserUserLine","DapDSSpinner","unsafeCSS","styles","DapDSAvatar","__decorateClass","property","state"],"mappings":"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"}
|
|
@@ -1,23 +1,19 @@
|
|
|
1
|
-
import { clsx as
|
|
2
|
-
import "
|
|
3
|
-
import {
|
|
4
|
-
import "
|
|
5
|
-
import {
|
|
6
|
-
import { queryAssignedElements as m } from "../../node_modules/@lit/reactive-element/decorators/query-assigned-elements.js";
|
|
7
|
-
import { ifDefined as v } from "../../node_modules/lit-html/directives/if-defined.js";
|
|
8
|
-
import { html as h } from "../../node_modules/lit-html/static.js";
|
|
1
|
+
import { clsx as p } from "../../node_modules/clsx/dist/clsx.js";
|
|
2
|
+
import { unsafeCSS as c, nothing as y } from "lit";
|
|
3
|
+
import { queryAssignedElements as u, property as l } from "lit/decorators.js";
|
|
4
|
+
import { ifDefined as v } from "lit/directives/if-defined.js";
|
|
5
|
+
import { html as h } from "lit/static-html.js";
|
|
9
6
|
import "../../localization/localization.js";
|
|
10
|
-
import { DdsElement as
|
|
11
|
-
import { SizedMixin as
|
|
12
|
-
import
|
|
13
|
-
import { t as
|
|
14
|
-
import { unsafeCSS as g } from "../../node_modules/@lit/reactive-element/css-tag.js";
|
|
7
|
+
import { DdsElement as m } from "../../internal/dds-hu-element.js";
|
|
8
|
+
import { SizedMixin as w } from "../../internal/mixin/sizedMixin.js";
|
|
9
|
+
import b from "./avatar-group.scss.js";
|
|
10
|
+
import { t as g } from "../../node_modules/i18next/dist/esm/i18next.js";
|
|
15
11
|
var z = Object.defineProperty, o = (f, t, e, i) => {
|
|
16
|
-
for (var r = void 0, s = f.length - 1,
|
|
17
|
-
(
|
|
12
|
+
for (var r = void 0, s = f.length - 1, n; s >= 0; s--)
|
|
13
|
+
(n = f[s]) && (r = n(t, e, r) || r);
|
|
18
14
|
return r && z(t, e, r), r;
|
|
19
15
|
};
|
|
20
|
-
const
|
|
16
|
+
const x = w(m), d = class d extends x {
|
|
21
17
|
constructor() {
|
|
22
18
|
super(), this.layout = "stack", this.max = 3, this.showTotal = !1, this.interactiveOverflow = !1, this.handleOverflowClick = (t) => {
|
|
23
19
|
this.interactiveOverflow && this.emit("dds-overflow-click", { originalEvent: t });
|
|
@@ -40,14 +36,14 @@ const $ = y(u), d = class d extends $ {
|
|
|
40
36
|
super.updated(t), (t.has("layout") || t.has("size") || t.has("sizeMap") || t.has("max")) && this.styleSlottedAvatars();
|
|
41
37
|
}
|
|
42
38
|
renderOverflowIndicator(t, e) {
|
|
43
|
-
if (t <= 0) return
|
|
44
|
-
const i = this.showTotal ? `+${e - this.max}` : `+${t}`, r = this.overflowLabel ||
|
|
39
|
+
if (t <= 0) return y;
|
|
40
|
+
const i = this.showTotal ? `+${e - this.max}` : `+${t}`, r = this.overflowLabel || g("avatar-group.overflow-label", {
|
|
45
41
|
count: t
|
|
46
42
|
});
|
|
47
43
|
return h`
|
|
48
44
|
<div
|
|
49
45
|
part="overflow"
|
|
50
|
-
class=${
|
|
46
|
+
class=${p(
|
|
51
47
|
"avatar-group__overflow",
|
|
52
48
|
`avatar-group__overflow--${this.effectiveSize}`,
|
|
53
49
|
{
|
|
@@ -85,7 +81,7 @@ const $ = y(u), d = class d extends $ {
|
|
|
85
81
|
});
|
|
86
82
|
}
|
|
87
83
|
render() {
|
|
88
|
-
const t = this.avatars.length, e = Math.max(0, t - this.max), i =
|
|
84
|
+
const t = this.avatars.length, e = Math.max(0, t - this.max), i = p(
|
|
89
85
|
"avatar-group",
|
|
90
86
|
`avatar-group--${this.layout}`,
|
|
91
87
|
`avatar-group--${this.effectiveSize}`
|
|
@@ -106,10 +102,10 @@ const $ = y(u), d = class d extends $ {
|
|
|
106
102
|
`;
|
|
107
103
|
}
|
|
108
104
|
};
|
|
109
|
-
d.tagName = "dap-ds-avatar-group", d.styles =
|
|
105
|
+
d.tagName = "dap-ds-avatar-group", d.styles = c(b);
|
|
110
106
|
let a = d;
|
|
111
107
|
o([
|
|
112
|
-
|
|
108
|
+
u({ flatten: !0 })
|
|
113
109
|
], a.prototype, "avatars");
|
|
114
110
|
o([
|
|
115
111
|
l({ reflect: !0 })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatar-group.component.js","sources":["../../../src/components/avatar-group/avatar-group.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { nothing, unsafeCSS } from 'lit'\nimport { property, queryAssignedElements } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DapDSAvatar } from '@/dap-design-system'\nimport { t } from '@/localization/localization'\n\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport { SizedMixin } from '../../internal/mixin/sizedMixin'\nimport styles from './avatar-group.scss?inline'\n\nconst AvatarGroupBaseWithSized = SizedMixin(DdsElement)\n\nexport type AvatarGroupLayout = 'stack' | 'grid'\n\n/**\n * `dap-ds-avatar-group`\n * @summary Avatar group component displays multiple avatars in an organized layout with overflow management.\n * @element dap-ds-avatar-group\n * @title - Avatar Group\n * @group avatar\n *\n * @slot - The avatars to display in the group.\n *\n * @event dds-overflow-click - Fired when the overflow indicator is clicked.\n *\n * @csspart base - The main container of the avatar group.\n * @csspart avatars - The container for the visible avatars.\n * @csspart overflow - The overflow indicator element.\n *\n * @cssproperty --dds-avatar-group-gap - Gap between avatars in grid layout (default: 0)\n * @cssproperty --dds-avatar-group-overlap - Overlap amount for stacked layout (default: -8px)\n * @cssproperty --dds-avatar-group-border-width - Border width for avatars (default: var(--dds-border-width-base))\n * @cssproperty --dds-avatar-group-border-color - Border color for avatars (default: var(--dds-border-neutral-divider))\n * @cssproperty --dds-avatar-group-overflow-bg - Background color for overflow indicator (default: var(--dds-neutral-300))\n * @cssproperty --dds-avatar-group-overflow-color - Text color for overflow indicator (default: var(--dds-neutral-700))\n * @cssproperty --dds-avatar-group-overflow-border - Border for overflow indicator (default: var(--dds-avatar-group-border-width) solid var(--dds-avatar-group-border-color))\n * @cssproperty --dds-avatar-group-size-lg - Size for large avatars (default: var(--dds-spacing-2000))\n * @cssproperty --dds-avatar-group-size-md - Size for medium avatars (default: var(--dds-spacing-1600))\n * @cssproperty --dds-avatar-group-size-sm - Size for small avatars (default: var(--dds-spacing-1200))\n * @cssproperty --dds-avatar-group-size-xs - Size for extra small avatars (default: var(--dds-spacing-800))\n * @cssproperty --dds-avatar-group-size-xxs - Size for extra extra small avatars (default: var(--dds-spacing-400))\n *\n * @property { 'xxs' | 'xs' | 'sm' | 'md' | 'lg' } size - The size of avatars in the group. Default is `md`. See SizedMixin.\n * @property {string} sizeMap - Responsive size map (e.g. \"md:lg\"); see SizedMixin.\n */\nexport default class DapDSAvatarGroup extends AvatarGroupBaseWithSized {\n static tagName = 'dap-ds-avatar-group'\n\n @queryAssignedElements({ flatten: true })\n private avatars!: NodeListOf<DapDSAvatar>\n\n constructor() {\n super()\n this.size = 'md'\n }\n\n /** Layout type for the avatar group\n * @default stack\n * @type { 'stack' | 'grid' }\n * @example\n * ```html\n * <dap-ds-avatar-group layout=\"stack\">\n * <dap-ds-avatar-group layout=\"grid\">\n * ```\n */\n @property({ reflect: true }) layout: AvatarGroupLayout = 'stack'\n\n /** Maximum number of avatars to show before showing overflow */\n @property({ type: Number }) max: number = 3\n\n /** Whether to show the total count in overflow indicator */\n @property({ type: Boolean, attribute: 'show-total' }) showTotal: boolean =\n false\n\n /** Interactive overflow indicator */\n @property({ type: Boolean, attribute: 'interactive-overflow' })\n interactiveOverflow: boolean = false\n\n /** Accessible label for the avatar group */\n @property() label: string\n\n /** Accessible label for the overflow indicator */\n @property({ attribute: 'overflow-label' }) overflowLabel: string\n\n static readonly styles = unsafeCSS(styles)\n\n connectedCallback() {\n super.connectedCallback()\n this.updateComplete.then(() => {\n this.styleSlottedAvatars()\n })\n }\n\n firstUpdated() {\n this.styleSlottedAvatars()\n\n const slot = this.shadowRoot?.querySelector('slot')\n if (slot) {\n slot.addEventListener('slotchange', () => {\n this.styleSlottedAvatars()\n this.requestUpdate()\n })\n }\n }\n\n updated(changedProperties: Map<string | number | symbol, unknown>) {\n super.updated(changedProperties)\n\n if (\n changedProperties.has('layout') ||\n changedProperties.has('size') ||\n changedProperties.has('sizeMap') ||\n changedProperties.has('max')\n ) {\n this.styleSlottedAvatars()\n }\n }\n\n private handleOverflowClick = (event: Event) => {\n if (this.interactiveOverflow) {\n this.emit('dds-overflow-click', { originalEvent: event })\n }\n }\n\n private renderOverflowIndicator(hiddenCount: number, totalCount: number) {\n if (hiddenCount <= 0) return nothing\n\n const displayText = this.showTotal\n ? `+${totalCount - this.max}`\n : `+${hiddenCount}`\n const ariaLabel =\n this.overflowLabel ||\n t('avatar-group.overflow-label', {\n count: hiddenCount,\n })\n\n return html`\n <div\n part=\"overflow\"\n class=${clsx(\n 'avatar-group__overflow',\n `avatar-group__overflow--${this.effectiveSize}`,\n {\n 'avatar-group__overflow--interactive': this.interactiveOverflow,\n },\n )}\n role=${ifDefined(this.interactiveOverflow ? 'button' : undefined)}\n tabindex=${ifDefined(this.interactiveOverflow ? 0 : undefined)}\n aria-label=${ariaLabel}\n @click=${this.handleOverflowClick}\n @keydown=${(e: KeyboardEvent) => {\n if (\n this.interactiveOverflow &&\n (e.key === 'Enter' || e.key === ' ')\n ) {\n e.preventDefault()\n this.handleOverflowClick(e)\n }\n }}>\n ${displayText}\n </div>\n `\n }\n\n private styleSlottedAvatars() {\n this.avatars.forEach((avatar, index) => {\n avatar.setAttribute('size', this.effectiveSize)\n\n // Map avatar-group size CSS custom properties to avatar size properties\n const sizePropertyMap: Record<string, string> = {\n lg: '--dds-avatar-lg-size',\n md: '--dds-avatar-md-size',\n sm: '--dds-avatar-sm-size',\n xs: '--dds-avatar-xs-size',\n xxs: '--dds-avatar-xxs-size',\n }\n const groupSizeProperty = `--dds-avatar-group-size-${this.effectiveSize}`\n const avatarSizeProperty = sizePropertyMap[this.effectiveSize]\n avatar.style.setProperty(avatarSizeProperty, `var(${groupSizeProperty})`)\n\n if (this.layout === 'stack') {\n avatar.style.setProperty(\n '--dds-avatar-border-width',\n 'var(--dds-avatar-group-border-width)',\n )\n avatar.style.setProperty(\n '--dds-avatar-border-color',\n 'var(--dds-avatar-group-border-color)',\n )\n avatar.style.zIndex = String(this.avatars.length - index)\n\n if (index > 0) {\n avatar.style.marginLeft = 'var(--dds-avatar-group-overlap)'\n } else {\n avatar.style.marginLeft = ''\n }\n } else {\n // Reset margins for grid layout\n avatar.style.marginLeft = ''\n avatar.style.zIndex = ''\n }\n\n if (index >= this.max) {\n avatar.style.display = 'none'\n } else {\n avatar.style.display = ''\n }\n })\n }\n\n render() {\n const totalCount = this.avatars.length\n const hiddenCount = Math.max(0, totalCount - this.max)\n const baseClasses = clsx(\n 'avatar-group',\n `avatar-group--${this.layout}`,\n `avatar-group--${this.effectiveSize}`,\n )\n\n return html`\n <div\n part=\"base\"\n class=${baseClasses}\n role=\"group\"\n aria-label=${ifDefined(\n this.label ||\n `Group of ${totalCount} avatar${totalCount !== 1 ? 's' : ''}`,\n )}>\n <div part=\"avatars\" class=\"avatar-group__avatars\">\n <slot></slot>\n </div>\n ${this.renderOverflowIndicator(hiddenCount, totalCount)}\n </div>\n `\n }\n}\n"],"names":["AvatarGroupBaseWithSized","SizedMixin","DdsElement","_DapDSAvatarGroup","event","slot","_a","changedProperties","hiddenCount","totalCount","nothing","displayText","ariaLabel","t","html","clsx","ifDefined","e","avatar","index","sizePropertyMap","groupSizeProperty","avatarSizeProperty","baseClasses","unsafeCSS","styles","DapDSAvatarGroup","__decorateClass","queryAssignedElements","property"],"mappings":";;;;;;;;;;;;;;;;;;;AAaA,MAAMA,IAA2BC,EAAWC,CAAU,GAmCjCC,IAArB,MAAqBA,UAAyBH,EAAyB;AAAA,EAMrE,cAAc;AACN,UAAA,GAaiD,KAAA,SAAA,SAGf,KAAA,MAAA,GAIxC,KAAA,YAAA,IAI6B,KAAA,sBAAA,IA0CvB,KAAA,sBAAsB,CAACI,MAAiB;AAC9C,MAAI,KAAK,uBACP,KAAK,KAAK,sBAAsB,EAAE,eAAeA,GAAO;AAAA,IAE5D,GArEE,KAAK,OAAO;AAAA,EAAA;AAAA,EAiCd,oBAAoB;AAClB,UAAM,kBAAkB,GACnB,KAAA,eAAe,KAAK,MAAM;AAC7B,WAAK,oBAAoB;AAAA,IAAA,CAC1B;AAAA,EAAA;AAAA,EAGH,eAAe;;AACb,SAAK,oBAAoB;AAEzB,UAAMC,KAAOC,IAAA,KAAK,eAAL,gBAAAA,EAAiB,cAAc;AAC5C,IAAID,KACGA,EAAA,iBAAiB,cAAc,MAAM;AACxC,WAAK,oBAAoB,GACzB,KAAK,cAAc;AAAA,IAAA,CACpB;AAAA,EACH;AAAA,EAGF,QAAQE,GAA2D;AACjE,UAAM,QAAQA,CAAiB,IAG7BA,EAAkB,IAAI,QAAQ,KAC9BA,EAAkB,IAAI,MAAM,KAC5BA,EAAkB,IAAI,SAAS,KAC/BA,EAAkB,IAAI,KAAK,MAE3B,KAAK,oBAAoB;AAAA,EAC3B;AAAA,EASM,wBAAwBC,GAAqBC,GAAoB;AACnE,QAAAD,KAAe,EAAU,QAAAE;AAEvB,UAAAC,IAAc,KAAK,YACrB,IAAIF,IAAa,KAAK,GAAG,KACzB,IAAID,CAAW,IACbI,IACJ,KAAK,iBACLC,EAAE,+BAA+B;AAAA,MAC/B,OAAOL;AAAA,IAAA,CACR;AAEI,WAAAM;AAAAA;AAAAA;AAAAA,gBAGKC;AAAA,MACN;AAAA,MACA,2BAA2B,KAAK,aAAa;AAAA,MAC7C;AAAA,QACE,uCAAuC,KAAK;AAAA,MAAA;AAAA,IAE/C,CAAA;AAAA,eACMC,EAAU,KAAK,sBAAsB,WAAW,MAAS,CAAC;AAAA,mBACtDA,EAAU,KAAK,sBAAsB,IAAI,MAAS,CAAC;AAAA,qBACjDJ,CAAS;AAAA,iBACb,KAAK,mBAAmB;AAAA,mBACtB,CAACK,MAAqB;AAC/B,MACE,KAAK,wBACJA,EAAE,QAAQ,WAAWA,EAAE,QAAQ,SAEhCA,EAAE,eAAe,GACjB,KAAK,oBAAoBA,CAAC;AAAA,IAC5B,CACD;AAAA,UACCN,CAAW;AAAA;AAAA;AAAA,EAAA;AAAA,EAKX,sBAAsB;AAC5B,SAAK,QAAQ,QAAQ,CAACO,GAAQC,MAAU;AAC/B,MAAAD,EAAA,aAAa,QAAQ,KAAK,aAAa;AAG9C,YAAME,IAA0C;AAAA,QAC9C,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,KAAK;AAAA,MACP,GACMC,IAAoB,2BAA2B,KAAK,aAAa,IACjEC,IAAqBF,EAAgB,KAAK,aAAa;AAC7D,MAAAF,EAAO,MAAM,YAAYI,GAAoB,OAAOD,CAAiB,GAAG,GAEpE,KAAK,WAAW,WAClBH,EAAO,MAAM;AAAA,QACX;AAAA,QACA;AAAA,MACF,GACAA,EAAO,MAAM;AAAA,QACX;AAAA,QACA;AAAA,MACF,GACAA,EAAO,MAAM,SAAS,OAAO,KAAK,QAAQ,SAASC,CAAK,GAEpDA,IAAQ,IACVD,EAAO,MAAM,aAAa,oCAE1BA,EAAO,MAAM,aAAa,OAI5BA,EAAO,MAAM,aAAa,IAC1BA,EAAO,MAAM,SAAS,KAGpBC,KAAS,KAAK,MAChBD,EAAO,MAAM,UAAU,SAEvBA,EAAO,MAAM,UAAU;AAAA,IACzB,CACD;AAAA,EAAA;AAAA,EAGH,SAAS;AACD,UAAAT,IAAa,KAAK,QAAQ,QAC1BD,IAAc,KAAK,IAAI,GAAGC,IAAa,KAAK,GAAG,GAC/Cc,IAAcR;AAAA,MAClB;AAAA,MACA,iBAAiB,KAAK,MAAM;AAAA,MAC5B,iBAAiB,KAAK,aAAa;AAAA,IACrC;AAEO,WAAAD;AAAAA;AAAAA;AAAAA,gBAGKS,CAAW;AAAA;AAAA,qBAENP;AAAAA,MACX,KAAK,SACH,YAAYP,CAAU,UAAUA,MAAe,IAAI,MAAM,EAAE;AAAA,IAAA,CAC9D;AAAA;AAAA;AAAA;AAAA,UAIC,KAAK,wBAAwBD,GAAaC,CAAU,CAAC;AAAA;AAAA;AAAA,EAAA;AAI/D;AA7LEN,EAAO,UAAU,uBAsCDA,EAAA,SAASqB,EAAUC,CAAM;AAvC3C,IAAqBC,IAArBvB;AAIUwB,EAAA;AAAA,EADPC,EAAsB,EAAE,SAAS,GAAM,CAAA;AAAA,GAHrBF,EAIX,WAAA,SAAA;AAgBqBC,EAAA;AAAA,EAA5BE,EAAS,EAAE,SAAS,GAAM,CAAA;AAAA,GApBRH,EAoBU,WAAA,QAAA;AAGDC,EAAA;AAAA,EAA3BE,EAAS,EAAE,MAAM,OAAQ,CAAA;AAAA,GAvBPH,EAuBS,WAAA,KAAA;AAG0BC,EAAA;AAAA,EAArDE,EAAS,EAAE,MAAM,SAAS,WAAW,aAAc,CAAA;AAAA,GA1BjCH,EA0BmC,WAAA,WAAA;AAKtDC,EAAA;AAAA,EADCE,EAAS,EAAE,MAAM,SAAS,WAAW,uBAAwB,CAAA;AAAA,GA9B3CH,EA+BnB,WAAA,qBAAA;AAGYC,EAAA;AAAA,EAAXE,EAAS;AAAA,GAlCSH,EAkCP,WAAA,OAAA;AAG+BC,EAAA;AAAA,EAA1CE,EAAS,EAAE,WAAW,iBAAkB,CAAA;AAAA,GArCtBH,EAqCwB,WAAA,eAAA;"}
|
|
1
|
+
{"version":3,"file":"avatar-group.component.js","sources":["../../../src/components/avatar-group/avatar-group.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { nothing, unsafeCSS } from 'lit'\nimport { property, queryAssignedElements } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html } from 'lit/static-html.js'\n\nimport { DapDSAvatar } from '@/dap-design-system'\nimport { t } from '@/localization/localization'\n\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport { SizedMixin } from '../../internal/mixin/sizedMixin'\nimport styles from './avatar-group.scss?inline'\n\nconst AvatarGroupBaseWithSized = SizedMixin(DdsElement)\n\nexport type AvatarGroupLayout = 'stack' | 'grid'\n\n/**\n * `dap-ds-avatar-group`\n * @summary Avatar group component displays multiple avatars in an organized layout with overflow management.\n * @element dap-ds-avatar-group\n * @title - Avatar Group\n * @group avatar\n *\n * @slot - The avatars to display in the group.\n *\n * @event dds-overflow-click - Fired when the overflow indicator is clicked.\n *\n * @csspart base - The main container of the avatar group.\n * @csspart avatars - The container for the visible avatars.\n * @csspart overflow - The overflow indicator element.\n *\n * @cssproperty --dds-avatar-group-gap - Gap between avatars in grid layout (default: 0)\n * @cssproperty --dds-avatar-group-overlap - Overlap amount for stacked layout (default: -8px)\n * @cssproperty --dds-avatar-group-border-width - Border width for avatars (default: var(--dds-border-width-base))\n * @cssproperty --dds-avatar-group-border-color - Border color for avatars (default: var(--dds-border-neutral-divider))\n * @cssproperty --dds-avatar-group-overflow-bg - Background color for overflow indicator (default: var(--dds-neutral-300))\n * @cssproperty --dds-avatar-group-overflow-color - Text color for overflow indicator (default: var(--dds-neutral-700))\n * @cssproperty --dds-avatar-group-overflow-border - Border for overflow indicator (default: var(--dds-avatar-group-border-width) solid var(--dds-avatar-group-border-color))\n * @cssproperty --dds-avatar-group-size-lg - Size for large avatars (default: var(--dds-spacing-2000))\n * @cssproperty --dds-avatar-group-size-md - Size for medium avatars (default: var(--dds-spacing-1600))\n * @cssproperty --dds-avatar-group-size-sm - Size for small avatars (default: var(--dds-spacing-1200))\n * @cssproperty --dds-avatar-group-size-xs - Size for extra small avatars (default: var(--dds-spacing-800))\n * @cssproperty --dds-avatar-group-size-xxs - Size for extra extra small avatars (default: var(--dds-spacing-400))\n *\n * @property { 'xxs' | 'xs' | 'sm' | 'md' | 'lg' } size - The size of avatars in the group. Default is `md`. See SizedMixin.\n * @property {string} sizeMap - Responsive size map (e.g. \"md:lg\"); see SizedMixin.\n */\nexport default class DapDSAvatarGroup extends AvatarGroupBaseWithSized {\n static tagName = 'dap-ds-avatar-group'\n\n @queryAssignedElements({ flatten: true })\n private avatars!: NodeListOf<DapDSAvatar>\n\n constructor() {\n super()\n this.size = 'md'\n }\n\n /** Layout type for the avatar group\n * @default stack\n * @type { 'stack' | 'grid' }\n * @example\n * ```html\n * <dap-ds-avatar-group layout=\"stack\">\n * <dap-ds-avatar-group layout=\"grid\">\n * ```\n */\n @property({ reflect: true }) layout: AvatarGroupLayout = 'stack'\n\n /** Maximum number of avatars to show before showing overflow */\n @property({ type: Number }) max: number = 3\n\n /** Whether to show the total count in overflow indicator */\n @property({ type: Boolean, attribute: 'show-total' }) showTotal: boolean =\n false\n\n /** Interactive overflow indicator */\n @property({ type: Boolean, attribute: 'interactive-overflow' })\n interactiveOverflow: boolean = false\n\n /** Accessible label for the avatar group */\n @property() label: string\n\n /** Accessible label for the overflow indicator */\n @property({ attribute: 'overflow-label' }) overflowLabel: string\n\n static readonly styles = unsafeCSS(styles)\n\n connectedCallback() {\n super.connectedCallback()\n this.updateComplete.then(() => {\n this.styleSlottedAvatars()\n })\n }\n\n firstUpdated() {\n this.styleSlottedAvatars()\n\n const slot = this.shadowRoot?.querySelector('slot')\n if (slot) {\n slot.addEventListener('slotchange', () => {\n this.styleSlottedAvatars()\n this.requestUpdate()\n })\n }\n }\n\n updated(changedProperties: Map<string | number | symbol, unknown>) {\n super.updated(changedProperties)\n\n if (\n changedProperties.has('layout') ||\n changedProperties.has('size') ||\n changedProperties.has('sizeMap') ||\n changedProperties.has('max')\n ) {\n this.styleSlottedAvatars()\n }\n }\n\n private handleOverflowClick = (event: Event) => {\n if (this.interactiveOverflow) {\n this.emit('dds-overflow-click', { originalEvent: event })\n }\n }\n\n private renderOverflowIndicator(hiddenCount: number, totalCount: number) {\n if (hiddenCount <= 0) return nothing\n\n const displayText = this.showTotal\n ? `+${totalCount - this.max}`\n : `+${hiddenCount}`\n const ariaLabel =\n this.overflowLabel ||\n t('avatar-group.overflow-label', {\n count: hiddenCount,\n })\n\n return html`\n <div\n part=\"overflow\"\n class=${clsx(\n 'avatar-group__overflow',\n `avatar-group__overflow--${this.effectiveSize}`,\n {\n 'avatar-group__overflow--interactive': this.interactiveOverflow,\n },\n )}\n role=${ifDefined(this.interactiveOverflow ? 'button' : undefined)}\n tabindex=${ifDefined(this.interactiveOverflow ? 0 : undefined)}\n aria-label=${ariaLabel}\n @click=${this.handleOverflowClick}\n @keydown=${(e: KeyboardEvent) => {\n if (\n this.interactiveOverflow &&\n (e.key === 'Enter' || e.key === ' ')\n ) {\n e.preventDefault()\n this.handleOverflowClick(e)\n }\n }}>\n ${displayText}\n </div>\n `\n }\n\n private styleSlottedAvatars() {\n this.avatars.forEach((avatar, index) => {\n avatar.setAttribute('size', this.effectiveSize)\n\n // Map avatar-group size CSS custom properties to avatar size properties\n const sizePropertyMap: Record<string, string> = {\n lg: '--dds-avatar-lg-size',\n md: '--dds-avatar-md-size',\n sm: '--dds-avatar-sm-size',\n xs: '--dds-avatar-xs-size',\n xxs: '--dds-avatar-xxs-size',\n }\n const groupSizeProperty = `--dds-avatar-group-size-${this.effectiveSize}`\n const avatarSizeProperty = sizePropertyMap[this.effectiveSize]\n avatar.style.setProperty(avatarSizeProperty, `var(${groupSizeProperty})`)\n\n if (this.layout === 'stack') {\n avatar.style.setProperty(\n '--dds-avatar-border-width',\n 'var(--dds-avatar-group-border-width)',\n )\n avatar.style.setProperty(\n '--dds-avatar-border-color',\n 'var(--dds-avatar-group-border-color)',\n )\n avatar.style.zIndex = String(this.avatars.length - index)\n\n if (index > 0) {\n avatar.style.marginLeft = 'var(--dds-avatar-group-overlap)'\n } else {\n avatar.style.marginLeft = ''\n }\n } else {\n // Reset margins for grid layout\n avatar.style.marginLeft = ''\n avatar.style.zIndex = ''\n }\n\n if (index >= this.max) {\n avatar.style.display = 'none'\n } else {\n avatar.style.display = ''\n }\n })\n }\n\n render() {\n const totalCount = this.avatars.length\n const hiddenCount = Math.max(0, totalCount - this.max)\n const baseClasses = clsx(\n 'avatar-group',\n `avatar-group--${this.layout}`,\n `avatar-group--${this.effectiveSize}`,\n )\n\n return html`\n <div\n part=\"base\"\n class=${baseClasses}\n role=\"group\"\n aria-label=${ifDefined(\n this.label ||\n `Group of ${totalCount} avatar${totalCount !== 1 ? 's' : ''}`,\n )}>\n <div part=\"avatars\" class=\"avatar-group__avatars\">\n <slot></slot>\n </div>\n ${this.renderOverflowIndicator(hiddenCount, totalCount)}\n </div>\n `\n }\n}\n"],"names":["AvatarGroupBaseWithSized","SizedMixin","DdsElement","_DapDSAvatarGroup","event","slot","_a","changedProperties","hiddenCount","totalCount","nothing","displayText","ariaLabel","t","html","clsx","ifDefined","e","avatar","index","sizePropertyMap","groupSizeProperty","avatarSizeProperty","baseClasses","unsafeCSS","styles","DapDSAvatarGroup","__decorateClass","queryAssignedElements","property"],"mappings":";;;;;;;;;;;;;;;AAaA,MAAMA,IAA2BC,EAAWC,CAAU,GAmCjCC,IAArB,MAAqBA,UAAyBH,EAAyB;AAAA,EAMrE,cAAc;AACN,UAAA,GAaiD,KAAA,SAAA,SAGf,KAAA,MAAA,GAIxC,KAAA,YAAA,IAI6B,KAAA,sBAAA,IA0CvB,KAAA,sBAAsB,CAACI,MAAiB;AAC9C,MAAI,KAAK,uBACP,KAAK,KAAK,sBAAsB,EAAE,eAAeA,GAAO;AAAA,IAE5D,GArEE,KAAK,OAAO;AAAA,EAAA;AAAA,EAiCd,oBAAoB;AAClB,UAAM,kBAAkB,GACnB,KAAA,eAAe,KAAK,MAAM;AAC7B,WAAK,oBAAoB;AAAA,IAAA,CAC1B;AAAA,EAAA;AAAA,EAGH,eAAe;;AACb,SAAK,oBAAoB;AAEzB,UAAMC,KAAOC,IAAA,KAAK,eAAL,gBAAAA,EAAiB,cAAc;AAC5C,IAAID,KACGA,EAAA,iBAAiB,cAAc,MAAM;AACxC,WAAK,oBAAoB,GACzB,KAAK,cAAc;AAAA,IAAA,CACpB;AAAA,EACH;AAAA,EAGF,QAAQE,GAA2D;AACjE,UAAM,QAAQA,CAAiB,IAG7BA,EAAkB,IAAI,QAAQ,KAC9BA,EAAkB,IAAI,MAAM,KAC5BA,EAAkB,IAAI,SAAS,KAC/BA,EAAkB,IAAI,KAAK,MAE3B,KAAK,oBAAoB;AAAA,EAC3B;AAAA,EASM,wBAAwBC,GAAqBC,GAAoB;AACnE,QAAAD,KAAe,EAAU,QAAAE;AAEvB,UAAAC,IAAc,KAAK,YACrB,IAAIF,IAAa,KAAK,GAAG,KACzB,IAAID,CAAW,IACbI,IACJ,KAAK,iBACLC,EAAE,+BAA+B;AAAA,MAC/B,OAAOL;AAAA,IAAA,CACR;AAEI,WAAAM;AAAA;AAAA;AAAA,gBAGKC;AAAA,MACN;AAAA,MACA,2BAA2B,KAAK,aAAa;AAAA,MAC7C;AAAA,QACE,uCAAuC,KAAK;AAAA,MAAA;AAAA,IAE/C,CAAA;AAAA,eACMC,EAAU,KAAK,sBAAsB,WAAW,MAAS,CAAC;AAAA,mBACtDA,EAAU,KAAK,sBAAsB,IAAI,MAAS,CAAC;AAAA,qBACjDJ,CAAS;AAAA,iBACb,KAAK,mBAAmB;AAAA,mBACtB,CAACK,MAAqB;AAC/B,MACE,KAAK,wBACJA,EAAE,QAAQ,WAAWA,EAAE,QAAQ,SAEhCA,EAAE,eAAe,GACjB,KAAK,oBAAoBA,CAAC;AAAA,IAC5B,CACD;AAAA,UACCN,CAAW;AAAA;AAAA;AAAA,EAAA;AAAA,EAKX,sBAAsB;AAC5B,SAAK,QAAQ,QAAQ,CAACO,GAAQC,MAAU;AAC/B,MAAAD,EAAA,aAAa,QAAQ,KAAK,aAAa;AAG9C,YAAME,IAA0C;AAAA,QAC9C,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,KAAK;AAAA,MACP,GACMC,IAAoB,2BAA2B,KAAK,aAAa,IACjEC,IAAqBF,EAAgB,KAAK,aAAa;AAC7D,MAAAF,EAAO,MAAM,YAAYI,GAAoB,OAAOD,CAAiB,GAAG,GAEpE,KAAK,WAAW,WAClBH,EAAO,MAAM;AAAA,QACX;AAAA,QACA;AAAA,MACF,GACAA,EAAO,MAAM;AAAA,QACX;AAAA,QACA;AAAA,MACF,GACAA,EAAO,MAAM,SAAS,OAAO,KAAK,QAAQ,SAASC,CAAK,GAEpDA,IAAQ,IACVD,EAAO,MAAM,aAAa,oCAE1BA,EAAO,MAAM,aAAa,OAI5BA,EAAO,MAAM,aAAa,IAC1BA,EAAO,MAAM,SAAS,KAGpBC,KAAS,KAAK,MAChBD,EAAO,MAAM,UAAU,SAEvBA,EAAO,MAAM,UAAU;AAAA,IACzB,CACD;AAAA,EAAA;AAAA,EAGH,SAAS;AACD,UAAAT,IAAa,KAAK,QAAQ,QAC1BD,IAAc,KAAK,IAAI,GAAGC,IAAa,KAAK,GAAG,GAC/Cc,IAAcR;AAAA,MAClB;AAAA,MACA,iBAAiB,KAAK,MAAM;AAAA,MAC5B,iBAAiB,KAAK,aAAa;AAAA,IACrC;AAEO,WAAAD;AAAA;AAAA;AAAA,gBAGKS,CAAW;AAAA;AAAA,qBAENP;AAAA,MACX,KAAK,SACH,YAAYP,CAAU,UAAUA,MAAe,IAAI,MAAM,EAAE;AAAA,IAAA,CAC9D;AAAA;AAAA;AAAA;AAAA,UAIC,KAAK,wBAAwBD,GAAaC,CAAU,CAAC;AAAA;AAAA;AAAA,EAAA;AAI/D;AA7LEN,EAAO,UAAU,uBAsCDA,EAAA,SAASqB,EAAUC,CAAM;AAvC3C,IAAqBC,IAArBvB;AAIUwB,EAAA;AAAA,EADPC,EAAsB,EAAE,SAAS,GAAM,CAAA;AAAA,GAHrBF,EAIX,WAAA,SAAA;AAgBqBC,EAAA;AAAA,EAA5BE,EAAS,EAAE,SAAS,GAAM,CAAA;AAAA,GApBRH,EAoBU,WAAA,QAAA;AAGDC,EAAA;AAAA,EAA3BE,EAAS,EAAE,MAAM,OAAQ,CAAA;AAAA,GAvBPH,EAuBS,WAAA,KAAA;AAG0BC,EAAA;AAAA,EAArDE,EAAS,EAAE,MAAM,SAAS,WAAW,aAAc,CAAA;AAAA,GA1BjCH,EA0BmC,WAAA,WAAA;AAKtDC,EAAA;AAAA,EADCE,EAAS,EAAE,MAAM,SAAS,WAAW,uBAAwB,CAAA;AAAA,GA9B3CH,EA+BnB,WAAA,qBAAA;AAGYC,EAAA;AAAA,EAAXE,EAAS;AAAA,GAlCSH,EAkCP,WAAA,OAAA;AAG+BC,EAAA;AAAA,EAA1CE,EAAS,EAAE,WAAW,iBAAkB,CAAA;AAAA,GArCtBH,EAqCwB,WAAA,eAAA;"}
|
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
import { clsx as l } from "../../node_modules/clsx/dist/clsx.js";
|
|
2
|
-
import "
|
|
3
|
-
import {
|
|
4
|
-
import "
|
|
5
|
-
import {
|
|
6
|
-
import { html as n } from "../../node_modules/lit-html/static.js";
|
|
7
|
-
import { DdsElement as u } from "../../internal/dds-hu-element.js";
|
|
2
|
+
import { unsafeCSS as p, nothing as u } from "lit";
|
|
3
|
+
import { property as a } from "lit/decorators.js";
|
|
4
|
+
import { html as r } from "lit/static-html.js";
|
|
5
|
+
import { DdsElement as f } from "../../internal/dds-hu-element.js";
|
|
8
6
|
import { SizedMixin as m } from "../../internal/mixin/sizedMixin.js";
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import { unsafeCSS as I } from "../../node_modules/@lit/reactive-element/css-tag.js";
|
|
7
|
+
import S from "../icon/icon.component.js";
|
|
8
|
+
import b from "../stack/stack.component.js";
|
|
9
|
+
import I from "./badge.scss.js";
|
|
13
10
|
var g = Object.defineProperty, c = (d, t, e, y) => {
|
|
14
|
-
for (var i = void 0,
|
|
15
|
-
(h = d[
|
|
11
|
+
for (var i = void 0, n = d.length - 1, h; n >= 0; n--)
|
|
12
|
+
(h = d[n]) && (i = h(t, e, i) || i);
|
|
16
13
|
return i && g(t, e, i), i;
|
|
17
14
|
};
|
|
18
|
-
const v = m(
|
|
15
|
+
const v = m(f), s = class s extends v {
|
|
19
16
|
constructor() {
|
|
20
17
|
super(...arguments), this.type = "neutral", this.live = !1, this._hasSlottedIcon = !1, this._cachedIconSize = 12;
|
|
21
18
|
}
|
|
@@ -73,18 +70,18 @@ const v = m(u), s = class s extends v {
|
|
|
73
70
|
return t === "sm" ? 12 : 16;
|
|
74
71
|
}
|
|
75
72
|
renderIcon() {
|
|
76
|
-
return this.icon ?
|
|
73
|
+
return this.icon ? r`
|
|
77
74
|
<dap-ds-icon
|
|
78
75
|
part="icon"
|
|
79
76
|
exportparts="icon, base:icon-base"
|
|
80
77
|
name="${this.icon}"
|
|
81
78
|
staticSize=${this._cachedIconSize}>
|
|
82
79
|
</dap-ds-icon>
|
|
83
|
-
` :
|
|
80
|
+
` : r`<slot name="icon" part="icon"></slot>`;
|
|
84
81
|
}
|
|
85
82
|
render() {
|
|
86
83
|
const t = this.icon || this._hasSlottedIcon;
|
|
87
|
-
return
|
|
84
|
+
return r`
|
|
88
85
|
<div
|
|
89
86
|
part="base"
|
|
90
87
|
class=${l(
|
|
@@ -94,7 +91,7 @@ const v = m(u), s = class s extends v {
|
|
|
94
91
|
t && "badge--has-icon"
|
|
95
92
|
)}>
|
|
96
93
|
<dap-ds-stack direction="row" spacing="100">
|
|
97
|
-
${t ? this.renderIcon() :
|
|
94
|
+
${t ? this.renderIcon() : u}
|
|
98
95
|
<slot part="content"></slot>
|
|
99
96
|
</dap-ds-stack>
|
|
100
97
|
</div>
|
|
@@ -102,9 +99,9 @@ const v = m(u), s = class s extends v {
|
|
|
102
99
|
}
|
|
103
100
|
};
|
|
104
101
|
s.tagName = "dap-ds-badge", s.dependencies = {
|
|
105
|
-
"dap-ds-icon":
|
|
106
|
-
"dap-ds-stack":
|
|
107
|
-
}, s.styles = I
|
|
102
|
+
"dap-ds-icon": S,
|
|
103
|
+
"dap-ds-stack": b
|
|
104
|
+
}, s.styles = p(I);
|
|
108
105
|
let o = s;
|
|
109
106
|
c([
|
|
110
107
|
a()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge.component.js","sources":["../../../src/components/badge/badge.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { nothing, PropertyValueMap, 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 { SizedMixin } from '../../internal/mixin/sizedMixin'\nimport DapDSIcon from '../icon/icon.component'\nimport DapDSStack from '../stack/stack.component'\nimport styles from './badge.scss?inline'\n\nconst BadgeBaseWithSized = SizedMixin(DdsElement)\n\nexport type BadgeType =\n | 'neutral'\n | 'brand'\n | 'info'\n | 'positive'\n | 'warning'\n | 'negative'\n\nexport type BadgeSize = 'sm' | 'lg'\n\n/**\n * `dap-ds-badge`\n * @summary A badge is a small status descriptor for UI elements.\n * @element dap-ds-badge\n * @title - Badge\n *\n * @property { 'sm' | 'lg' } size - The size of the badge. Default is `sm`.\n * @property {string} sizeMap - Responsive size map (e.g. \"md:lg\").\n *\n * @slot - The content of the badge.\n * @slot icon - The icon of the badge.\n *\n * @csspart base - The main container of the badge.\n * @csspart icon - The icon of the badge.\n * @csspart content - The content of the badge.\n * @csspart icon-base - The base of the icon.\n *\n * @cssproperty --dds-badge-border-width - The width of the badge's border (default: var(--dds-border-width-base))\n * @cssproperty --dds-badge-border-style - The style of the badge's border (default: solid)\n * @cssproperty --dds-badge-border-radius - The border radius of the badge (default: var(--dds-radius-base))\n * @cssproperty --dds-badge-font-weight - The font weight of the badge text (default: var(--dds-font-weight-bold))\n * @cssproperty --dds-badge-line-height - The line height of the badge text (default: 1.2)\n * @cssproperty --dds-badge-transition - The transition property for the badge (default: all 0.2s ease-in-out)\n *\n * @cssproperty --dds-badge-padding-sm - The padding of the small badge (default: var(--dds-spacing-100) var(--dds-spacing-200))\n * @cssproperty --dds-badge-padding-lg - The padding of the large badge (default: var(--dds-spacing-100) var(--dds-spacing-300))\n * @cssproperty --dds-badge-font-size-sm - The font size of the small badge (default: var(--dds-font-xs))\n * @cssproperty --dds-badge-font-size-lg - The font size of the large badge (default: var(--dds-font-sm))\n *\n * @cssproperty --dds-badge-neutral-border-color - The border color of the neutral badge (default: var(--dds-border-neutral-base))\n * @cssproperty --dds-badge-neutral-background - The background color of the neutral badge (default: var(--dds-background-neutral-medium))\n * @cssproperty --dds-badge-neutral-color - The text color of the neutral badge (default: var(--dds-text-neutral-subtle))\n *\n * @cssproperty --dds-badge-brand-border-color - The border color of the brand badge (default: var(--dds-border-brand-base))\n * @cssproperty --dds-badge-brand-background - The background color of the brand badge (default: var(--dds-background-brand-medium))\n * @cssproperty --dds-badge-brand-color - The text color of the brand badge (default: var(--dds-text-brand-subtle))\n *\n * @cssproperty --dds-badge-info-border-color - The border color of the info badge (default: var(--dds-border-informative-base))\n * @cssproperty --dds-badge-info-background - The background color of the info badge (default: var(--dds-background-informative-medium))\n * @cssproperty --dds-badge-info-color - The text color of the info badge (default: var(--dds-text-informative-subtle))\n *\n * @cssproperty --dds-badge-positive-border-color - The border color of the positive badge (default: var(--dds-border-positive-base))\n * @cssproperty --dds-badge-positive-background - The background color of the positive badge (default: var(--dds-background-positive-medium))\n * @cssproperty --dds-badge-positive-color - The text color of the positive badge (default: var(--dds-text-positive-subtle))\n *\n * @cssproperty --dds-badge-warning-border-color - The border color of the warning badge (default: var(--dds-border-warning-subtle))\n * @cssproperty --dds-badge-warning-background - The background color of the warning badge (default: var(--dds-background-warning-medium))\n * @cssproperty --dds-badge-warning-color - The text color of the warning badge (default: var(--dds-text-warning-subtle))\n *\n * @cssproperty --dds-badge-negative-border-color - The border color of the negative badge (default: var(--dds-border-negative-base))\n * @cssproperty --dds-badge-negative-background - The background color of the negative badge (default: var(--dds-background-negative-medium))\n * @cssproperty --dds-badge-negative-color - The text color of the negative badge (default: var(--dds-text-negative-subtle))\n *\n */\nexport default class DapDSBadge extends BadgeBaseWithSized {\n static tagName = 'dap-ds-badge'\n\n static dependencies = {\n 'dap-ds-icon': DapDSIcon,\n 'dap-ds-stack': DapDSStack,\n }\n\n /** The type of the badge\n * @type { 'neutral' | 'brand' | 'info' | 'positive' | 'warning' | 'negative' }\n */\n @property() type: BadgeType = 'neutral'\n\n /** Maps effectiveSize from SizedMixin to the badge's two visual sizes (sm | lg). */\n private get badgeSize(): BadgeSize {\n const s = this.effectiveSize\n return s === 'lg' || s === 'md' ? 'lg' : 'sm'\n }\n\n /** The icon of the badge, this is a name of a built in icon */\n @property() icon?: string\n\n /** Whether the badge represents dynamic content that should announce changes */\n @property({ type: Boolean }) live = false\n\n private _hasSlottedIcon = false\n private _cachedIconSize = 12\n\n static readonly styles = unsafeCSS(styles)\n\n protected firstUpdated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): void {\n super.firstUpdated(_changedProperties)\n this.setAccessibilityAttributes()\n\n this._cachedIconSize = this.getIconSize(this.badgeSize)\n this.setupSlotListeners()\n this.updateIconSlot()\n }\n\n protected updated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): void {\n super.updated(_changedProperties)\n\n if (_changedProperties.has('size') || _changedProperties.has('sizeMap')) {\n this._cachedIconSize = this.getIconSize(this.badgeSize)\n this.updateIconSlot()\n }\n\n if (_changedProperties.has('live')) {\n this.setAccessibilityAttributes()\n }\n\n if (_changedProperties.has('icon')) {\n this.validateIcon()\n }\n }\n\n private setAccessibilityAttributes(): void {\n if (this.live) {\n this.setAttribute('role', 'status')\n this.setAttribute('aria-live', 'polite')\n } else {\n this.removeAttribute('role')\n this.removeAttribute('aria-live')\n }\n }\n\n private validateIcon(): void {\n if (this.icon && typeof this.icon === 'string' && this.icon.trim() === '') {\n console.warn('Badge: Empty icon name provided')\n }\n }\n\n private setupSlotListeners(): void {\n try {\n if (!this.shadowRoot) return\n\n const iconSlot = this.shadowRoot.querySelector(\n 'slot[name=\"icon\"]',\n ) as HTMLSlotElement\n\n if (!iconSlot) return\n\n iconSlot.addEventListener('slotchange', () => {\n this.updateIconSlot()\n this.requestUpdate()\n })\n } catch (error) {\n console.warn('Failed to setup slot listeners:', error)\n }\n }\n\n private updateIconSlot(): void {\n try {\n if (!this.shadowRoot) return\n\n const iconSlot = this.shadowRoot.querySelector(\n 'slot[name=\"icon\"]',\n ) as HTMLSlotElement\n\n if (!iconSlot) {\n this._hasSlottedIcon = false\n return\n }\n\n const assignedElements = iconSlot.assignedElements()\n this._hasSlottedIcon = assignedElements.length > 0\n\n if (assignedElements.length > 0) {\n assignedElements[0].setAttribute(\n 'staticSize',\n this._cachedIconSize.toString(),\n )\n }\n } catch (error) {\n console.warn('Failed to update icon slot:', error)\n this._hasSlottedIcon = false\n }\n }\n\n private getIconSize(size: BadgeSize): number {\n return size === 'sm' ? 12 : 16\n }\n\n private renderIcon() {\n if (this.icon) {\n return html`\n <dap-ds-icon\n part=\"icon\"\n exportparts=\"icon, base:icon-base\"\n name=\"${this.icon}\"\n staticSize=${this._cachedIconSize}>\n </dap-ds-icon>\n `\n }\n\n return html`<slot name=\"icon\" part=\"icon\"></slot>`\n }\n\n render() {\n const hasIcon = this.icon || this._hasSlottedIcon\n\n return html`\n <div\n part=\"base\"\n class=${clsx(\n 'badge',\n `badge--${this.type}`,\n `badge--${this.badgeSize}`,\n hasIcon && 'badge--has-icon',\n )}>\n <dap-ds-stack direction=\"row\" spacing=\"100\">\n ${hasIcon ? this.renderIcon() : nothing}\n <slot part=\"content\"></slot>\n </dap-ds-stack>\n </div>\n `\n }\n}\n"],"names":["BadgeBaseWithSized","SizedMixin","DdsElement","_DapDSBadge","s","_changedProperties","iconSlot","error","assignedElements","size","html","hasIcon","clsx","nothing","DapDSIcon","DapDSStack","unsafeCSS","styles","DapDSBadge","__decorateClass","property"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"badge.component.js","sources":["../../../src/components/badge/badge.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { nothing, PropertyValueMap, 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 { SizedMixin } from '../../internal/mixin/sizedMixin'\nimport DapDSIcon from '../icon/icon.component'\nimport DapDSStack from '../stack/stack.component'\nimport styles from './badge.scss?inline'\n\nconst BadgeBaseWithSized = SizedMixin(DdsElement)\n\nexport type BadgeType =\n | 'neutral'\n | 'brand'\n | 'info'\n | 'positive'\n | 'warning'\n | 'negative'\n\nexport type BadgeSize = 'sm' | 'lg'\n\n/**\n * `dap-ds-badge`\n * @summary A badge is a small status descriptor for UI elements.\n * @element dap-ds-badge\n * @title - Badge\n *\n * @property { 'sm' | 'lg' } size - The size of the badge. Default is `sm`.\n * @property {string} sizeMap - Responsive size map (e.g. \"md:lg\").\n *\n * @slot - The content of the badge.\n * @slot icon - The icon of the badge.\n *\n * @csspart base - The main container of the badge.\n * @csspart icon - The icon of the badge.\n * @csspart content - The content of the badge.\n * @csspart icon-base - The base of the icon.\n *\n * @cssproperty --dds-badge-border-width - The width of the badge's border (default: var(--dds-border-width-base))\n * @cssproperty --dds-badge-border-style - The style of the badge's border (default: solid)\n * @cssproperty --dds-badge-border-radius - The border radius of the badge (default: var(--dds-radius-base))\n * @cssproperty --dds-badge-font-weight - The font weight of the badge text (default: var(--dds-font-weight-bold))\n * @cssproperty --dds-badge-line-height - The line height of the badge text (default: 1.2)\n * @cssproperty --dds-badge-transition - The transition property for the badge (default: all 0.2s ease-in-out)\n *\n * @cssproperty --dds-badge-padding-sm - The padding of the small badge (default: var(--dds-spacing-100) var(--dds-spacing-200))\n * @cssproperty --dds-badge-padding-lg - The padding of the large badge (default: var(--dds-spacing-100) var(--dds-spacing-300))\n * @cssproperty --dds-badge-font-size-sm - The font size of the small badge (default: var(--dds-font-xs))\n * @cssproperty --dds-badge-font-size-lg - The font size of the large badge (default: var(--dds-font-sm))\n *\n * @cssproperty --dds-badge-neutral-border-color - The border color of the neutral badge (default: var(--dds-border-neutral-base))\n * @cssproperty --dds-badge-neutral-background - The background color of the neutral badge (default: var(--dds-background-neutral-medium))\n * @cssproperty --dds-badge-neutral-color - The text color of the neutral badge (default: var(--dds-text-neutral-subtle))\n *\n * @cssproperty --dds-badge-brand-border-color - The border color of the brand badge (default: var(--dds-border-brand-base))\n * @cssproperty --dds-badge-brand-background - The background color of the brand badge (default: var(--dds-background-brand-medium))\n * @cssproperty --dds-badge-brand-color - The text color of the brand badge (default: var(--dds-text-brand-subtle))\n *\n * @cssproperty --dds-badge-info-border-color - The border color of the info badge (default: var(--dds-border-informative-base))\n * @cssproperty --dds-badge-info-background - The background color of the info badge (default: var(--dds-background-informative-medium))\n * @cssproperty --dds-badge-info-color - The text color of the info badge (default: var(--dds-text-informative-subtle))\n *\n * @cssproperty --dds-badge-positive-border-color - The border color of the positive badge (default: var(--dds-border-positive-base))\n * @cssproperty --dds-badge-positive-background - The background color of the positive badge (default: var(--dds-background-positive-medium))\n * @cssproperty --dds-badge-positive-color - The text color of the positive badge (default: var(--dds-text-positive-subtle))\n *\n * @cssproperty --dds-badge-warning-border-color - The border color of the warning badge (default: var(--dds-border-warning-subtle))\n * @cssproperty --dds-badge-warning-background - The background color of the warning badge (default: var(--dds-background-warning-medium))\n * @cssproperty --dds-badge-warning-color - The text color of the warning badge (default: var(--dds-text-warning-subtle))\n *\n * @cssproperty --dds-badge-negative-border-color - The border color of the negative badge (default: var(--dds-border-negative-base))\n * @cssproperty --dds-badge-negative-background - The background color of the negative badge (default: var(--dds-background-negative-medium))\n * @cssproperty --dds-badge-negative-color - The text color of the negative badge (default: var(--dds-text-negative-subtle))\n *\n */\nexport default class DapDSBadge extends BadgeBaseWithSized {\n static tagName = 'dap-ds-badge'\n\n static dependencies = {\n 'dap-ds-icon': DapDSIcon,\n 'dap-ds-stack': DapDSStack,\n }\n\n /** The type of the badge\n * @type { 'neutral' | 'brand' | 'info' | 'positive' | 'warning' | 'negative' }\n */\n @property() type: BadgeType = 'neutral'\n\n /** Maps effectiveSize from SizedMixin to the badge's two visual sizes (sm | lg). */\n private get badgeSize(): BadgeSize {\n const s = this.effectiveSize\n return s === 'lg' || s === 'md' ? 'lg' : 'sm'\n }\n\n /** The icon of the badge, this is a name of a built in icon */\n @property() icon?: string\n\n /** Whether the badge represents dynamic content that should announce changes */\n @property({ type: Boolean }) live = false\n\n private _hasSlottedIcon = false\n private _cachedIconSize = 12\n\n static readonly styles = unsafeCSS(styles)\n\n protected firstUpdated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): void {\n super.firstUpdated(_changedProperties)\n this.setAccessibilityAttributes()\n\n this._cachedIconSize = this.getIconSize(this.badgeSize)\n this.setupSlotListeners()\n this.updateIconSlot()\n }\n\n protected updated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): void {\n super.updated(_changedProperties)\n\n if (_changedProperties.has('size') || _changedProperties.has('sizeMap')) {\n this._cachedIconSize = this.getIconSize(this.badgeSize)\n this.updateIconSlot()\n }\n\n if (_changedProperties.has('live')) {\n this.setAccessibilityAttributes()\n }\n\n if (_changedProperties.has('icon')) {\n this.validateIcon()\n }\n }\n\n private setAccessibilityAttributes(): void {\n if (this.live) {\n this.setAttribute('role', 'status')\n this.setAttribute('aria-live', 'polite')\n } else {\n this.removeAttribute('role')\n this.removeAttribute('aria-live')\n }\n }\n\n private validateIcon(): void {\n if (this.icon && typeof this.icon === 'string' && this.icon.trim() === '') {\n console.warn('Badge: Empty icon name provided')\n }\n }\n\n private setupSlotListeners(): void {\n try {\n if (!this.shadowRoot) return\n\n const iconSlot = this.shadowRoot.querySelector(\n 'slot[name=\"icon\"]',\n ) as HTMLSlotElement\n\n if (!iconSlot) return\n\n iconSlot.addEventListener('slotchange', () => {\n this.updateIconSlot()\n this.requestUpdate()\n })\n } catch (error) {\n console.warn('Failed to setup slot listeners:', error)\n }\n }\n\n private updateIconSlot(): void {\n try {\n if (!this.shadowRoot) return\n\n const iconSlot = this.shadowRoot.querySelector(\n 'slot[name=\"icon\"]',\n ) as HTMLSlotElement\n\n if (!iconSlot) {\n this._hasSlottedIcon = false\n return\n }\n\n const assignedElements = iconSlot.assignedElements()\n this._hasSlottedIcon = assignedElements.length > 0\n\n if (assignedElements.length > 0) {\n assignedElements[0].setAttribute(\n 'staticSize',\n this._cachedIconSize.toString(),\n )\n }\n } catch (error) {\n console.warn('Failed to update icon slot:', error)\n this._hasSlottedIcon = false\n }\n }\n\n private getIconSize(size: BadgeSize): number {\n return size === 'sm' ? 12 : 16\n }\n\n private renderIcon() {\n if (this.icon) {\n return html`\n <dap-ds-icon\n part=\"icon\"\n exportparts=\"icon, base:icon-base\"\n name=\"${this.icon}\"\n staticSize=${this._cachedIconSize}>\n </dap-ds-icon>\n `\n }\n\n return html`<slot name=\"icon\" part=\"icon\"></slot>`\n }\n\n render() {\n const hasIcon = this.icon || this._hasSlottedIcon\n\n return html`\n <div\n part=\"base\"\n class=${clsx(\n 'badge',\n `badge--${this.type}`,\n `badge--${this.badgeSize}`,\n hasIcon && 'badge--has-icon',\n )}>\n <dap-ds-stack direction=\"row\" spacing=\"100\">\n ${hasIcon ? this.renderIcon() : nothing}\n <slot part=\"content\"></slot>\n </dap-ds-stack>\n </div>\n `\n }\n}\n"],"names":["BadgeBaseWithSized","SizedMixin","DdsElement","_DapDSBadge","s","_changedProperties","iconSlot","error","assignedElements","size","html","hasIcon","clsx","nothing","DapDSIcon","DapDSStack","unsafeCSS","styles","DapDSBadge","__decorateClass","property"],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@ export type BannerVariant = 'brand' | 'positive' | 'info' | 'warning' | 'negativ
|
|
|
27
27
|
* @csspart close-icon-element - The icon element of the close button.
|
|
28
28
|
* @csspart close-icon-base - The base of the close button icon.
|
|
29
29
|
* @csspart actions - The actions of the banner.
|
|
30
|
-
* @csspart
|
|
30
|
+
* @csspart close-button - The close button wrapper of the banner.
|
|
31
31
|
*
|
|
32
32
|
* @cssproperty --dds-banner-gap - The gap between banner elements (default: var(--dds-spacing-200))
|
|
33
33
|
* @cssproperty --dds-banner-line-height - The line height of the banner text (default: var(--dds-font-line-height-xlarge))
|