dap-design-system 0.62.4 → 0.63.1
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 +11 -0
- package/dist/components/datepicker/datepicker.component.js +89 -82
- 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 +7 -0
- package/dist/components/timepicker/timepicker.component.js +83 -85
- 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.d.ts +1 -0
- package/dist/internal/mixin/formElementMixin.js +1 -1
- package/dist/internal/mixin/formElementMixin.js.map +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 +436 -221
- package/dist/manifest/vscode.html-custom-data.json +271 -217
- package/dist/manifest/web-types.json +549 -445
- 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 +8 -5
- package/dist/react-types.ts +8 -5
- package/dist/react.js +368 -362
- 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,25 +1,22 @@
|
|
|
1
|
-
import { clsx as
|
|
2
|
-
import "
|
|
3
|
-
import "
|
|
4
|
-
import "
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
for (var i = void 0, r = b.length - 1, d; r >= 0; r--)
|
|
19
|
-
(d = b[r]) && (i = d(e, a, i) || i);
|
|
20
|
-
return i && I(e, a, i), i;
|
|
1
|
+
import { clsx as d } from "../../node_modules/clsx/dist/clsx.js";
|
|
2
|
+
import { unsafeCSS as b } from "lit";
|
|
3
|
+
import { query as f, property as h } from "lit/decorators.js";
|
|
4
|
+
import { ifDefined as o } from "lit/directives/if-defined.js";
|
|
5
|
+
import { html as c } from "lit/static-html.js";
|
|
6
|
+
import { LabeledChoiceElement as y } from "../../internal/mixin/labeledChoiceElement.js";
|
|
7
|
+
import { formLabelTemplate as m } from "../../internal/templates/formLabel.js";
|
|
8
|
+
import k from "../feedback/feedback.component.js";
|
|
9
|
+
import $ from "../form/form-label/form-label.component.js";
|
|
10
|
+
import v from "../icons/system/system-check-line2/system-check-line2.component.js";
|
|
11
|
+
import _ from "../icons/system/system-subtract-line/system-subtract-line.component.js";
|
|
12
|
+
import g from "../typography/typography.component.js";
|
|
13
|
+
import I from "./_styles/checkbox.scss.js";
|
|
14
|
+
var x = Object.defineProperty, l = (u, e, a, p) => {
|
|
15
|
+
for (var i = void 0, r = u.length - 1, s; r >= 0; r--)
|
|
16
|
+
(s = u[r]) && (i = s(e, a, i) || i);
|
|
17
|
+
return i && x(e, a, i), i;
|
|
21
18
|
}, t;
|
|
22
|
-
const n = (t = class extends
|
|
19
|
+
const n = (t = class extends y {
|
|
23
20
|
constructor() {
|
|
24
21
|
super(), this.indeterminate = !1, this.preventDefault = !1, this.border = !1, this.readonly = !1, this.type = "normal", t.nextId++;
|
|
25
22
|
const e = typeof crypto != "undefined" && crypto.randomUUID ? crypto.randomUUID().slice(0, 8) : Date.now().toString(36);
|
|
@@ -72,13 +69,13 @@ const n = (t = class extends f {
|
|
|
72
69
|
readonly: this.readonly,
|
|
73
70
|
type: "checkbox"
|
|
74
71
|
});
|
|
75
|
-
} catch (
|
|
76
|
-
console.error("Error emitting checkbox change event:",
|
|
72
|
+
} catch (s) {
|
|
73
|
+
console.error("Error emitting checkbox change event:", s);
|
|
77
74
|
}
|
|
78
75
|
try {
|
|
79
76
|
this.setValidity();
|
|
80
|
-
} catch (
|
|
81
|
-
console.error("Error setting checkbox validity:",
|
|
77
|
+
} catch (s) {
|
|
78
|
+
console.error("Error setting checkbox validity:", s);
|
|
82
79
|
}
|
|
83
80
|
}
|
|
84
81
|
/**
|
|
@@ -137,14 +134,14 @@ const n = (t = class extends f {
|
|
|
137
134
|
* @private
|
|
138
135
|
*/
|
|
139
136
|
renderIcon() {
|
|
140
|
-
return this.indeterminate ?
|
|
137
|
+
return this.indeterminate ? c`
|
|
141
138
|
<dap-ds-icon-subtract-line
|
|
142
139
|
class="checkbox__icon"
|
|
143
140
|
part="icon"
|
|
144
141
|
exportparts="base:icon-base"
|
|
145
142
|
size="16"
|
|
146
143
|
decorative></dap-ds-icon-subtract-line>
|
|
147
|
-
` : this.checked ?
|
|
144
|
+
` : this.checked ? c`
|
|
148
145
|
<dap-ds-icon-check-line2
|
|
149
146
|
class="checkbox__icon"
|
|
150
147
|
part="icon"
|
|
@@ -172,11 +169,11 @@ const n = (t = class extends f {
|
|
|
172
169
|
);
|
|
173
170
|
}
|
|
174
171
|
render() {
|
|
175
|
-
return
|
|
172
|
+
return c`
|
|
176
173
|
<div part="base">
|
|
177
174
|
<label
|
|
178
175
|
part="base-label"
|
|
179
|
-
class=${
|
|
176
|
+
class=${d("checkbox choice", `checkbox--${this.size}`, {
|
|
180
177
|
"checkbox--checked": this.checked,
|
|
181
178
|
"checkbox--disabled": this.disabled,
|
|
182
179
|
"checkbox--readonly": this.readonly,
|
|
@@ -189,26 +186,26 @@ const n = (t = class extends f {
|
|
|
189
186
|
})}>
|
|
190
187
|
<div
|
|
191
188
|
part="wrapper"
|
|
192
|
-
class=${
|
|
189
|
+
class=${d("input__wrapper", {
|
|
193
190
|
"input__wrapper--background": this.type === "background",
|
|
194
191
|
"input__wrapper--border": this.border
|
|
195
192
|
})}>
|
|
196
193
|
<input
|
|
197
194
|
part="input"
|
|
198
195
|
type="checkbox"
|
|
199
|
-
class=${
|
|
196
|
+
class=${d("input", {
|
|
200
197
|
"input--background": this.type === "background"
|
|
201
198
|
})}
|
|
202
|
-
name=${
|
|
199
|
+
name=${o(this.name ? this.name : void 0)}
|
|
203
200
|
id=${this.inputId}
|
|
204
201
|
.indeterminate=${this.indeterminate}
|
|
205
202
|
.checked=${this.checked}
|
|
206
203
|
.disabled=${this.disabled}
|
|
207
204
|
.required=${this.required}
|
|
208
|
-
aria-labelledby=${
|
|
205
|
+
aria-labelledby=${o(
|
|
209
206
|
!this.ariaLabel && this.label ? this.labelId : void 0
|
|
210
207
|
)}
|
|
211
|
-
aria-describedby=${this.ariaLabel ? "" :
|
|
208
|
+
aria-describedby=${this.ariaLabel ? "" : o(this.getAriaDescribedBy())}
|
|
212
209
|
aria-checked=${this.getAriaChecked()}
|
|
213
210
|
.aria-invalid=${this.invalid ? "true" : null}
|
|
214
211
|
@invalid=${this.handleInvalid}
|
|
@@ -220,7 +217,7 @@ const n = (t = class extends f {
|
|
|
220
217
|
|
|
221
218
|
<span
|
|
222
219
|
part="control"
|
|
223
|
-
class=${
|
|
220
|
+
class=${d("input__control", `input__control--${this.size}`, {
|
|
224
221
|
"input__control--checked": this.checked,
|
|
225
222
|
"input__control--disabled": this.disabled,
|
|
226
223
|
"input__control--readonly": this.readonly,
|
|
@@ -229,7 +226,7 @@ const n = (t = class extends f {
|
|
|
229
226
|
})}>
|
|
230
227
|
<span
|
|
231
228
|
part="high-contrast"
|
|
232
|
-
class=${
|
|
229
|
+
class=${d(
|
|
233
230
|
"input__control-high-contrast",
|
|
234
231
|
`input__control-high-contrast--${this.size}`,
|
|
235
232
|
{
|
|
@@ -242,47 +239,47 @@ const n = (t = class extends f {
|
|
|
242
239
|
|
|
243
240
|
<div
|
|
244
241
|
part="label-container"
|
|
245
|
-
class=${
|
|
242
|
+
class=${d("choice__label-container", {
|
|
246
243
|
"choice__label-container--disabled": this.disabled,
|
|
247
244
|
"choice__label-container--readonly": this.readonly,
|
|
248
245
|
"choice__label--bottom": this.descriptionPlacement === "top",
|
|
249
246
|
"choice__label--top": this.descriptionPlacement === "bottom"
|
|
250
247
|
})}>
|
|
251
|
-
${
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
${this.description &&
|
|
248
|
+
${m({
|
|
249
|
+
label: this.label,
|
|
250
|
+
id: this.labelId,
|
|
251
|
+
size: this.size,
|
|
252
|
+
required: this.required,
|
|
253
|
+
requiredLabel: this.requiredLabel,
|
|
254
|
+
optional: this.optional,
|
|
255
|
+
optionalLabel: this.optionalLabel,
|
|
256
|
+
disabled: this.disabled || this.readonly,
|
|
257
|
+
hideLabel: this.hideLabel,
|
|
258
|
+
subtle: !0,
|
|
259
|
+
// Rendered as a decorative <span> (not a <label>): checkbox/switch
|
|
260
|
+
// already wrap the input in an outer <label>, and the accessible
|
|
261
|
+
// name comes from the input's aria-labelledby=${labelId}.
|
|
262
|
+
as: "span",
|
|
263
|
+
ariaHidden: !0
|
|
264
|
+
})}
|
|
265
|
+
${this.description && c`
|
|
269
266
|
<dap-ds-typography
|
|
270
267
|
class="description"
|
|
271
268
|
variant="description"
|
|
272
269
|
part="description"
|
|
273
270
|
aria-hidden="true"
|
|
274
|
-
size=${
|
|
271
|
+
size=${o(this.size)}
|
|
275
272
|
id=${this.descriptionId}>
|
|
276
273
|
${this.description}
|
|
277
274
|
</dap-ds-typography>
|
|
278
275
|
`}
|
|
279
276
|
</div>
|
|
280
277
|
</div>
|
|
281
|
-
${this.feedback &&
|
|
278
|
+
${this.feedback && c`
|
|
282
279
|
<dap-ds-feedback
|
|
283
280
|
part="feedback"
|
|
284
|
-
feedbackType=${
|
|
285
|
-
feedbackSize=${
|
|
281
|
+
feedbackType=${o(this.feedbackType)}
|
|
282
|
+
feedbackSize=${o(this.size)}
|
|
286
283
|
id="feedback"
|
|
287
284
|
.subtle=${this.subtle}>
|
|
288
285
|
${this.feedback}
|
|
@@ -293,32 +290,32 @@ const n = (t = class extends f {
|
|
|
293
290
|
`;
|
|
294
291
|
}
|
|
295
292
|
}, t.tagName = "dap-ds-checkbox", t.dependencies = {
|
|
296
|
-
"dap-ds-icon-subtract-line":
|
|
297
|
-
"dap-ds-icon-check-line2":
|
|
298
|
-
"dap-ds-form-label":
|
|
299
|
-
"dap-ds-typography":
|
|
300
|
-
"dap-ds-feedback":
|
|
301
|
-
}, t.nextId = 0, t.styles =
|
|
302
|
-
|
|
303
|
-
|
|
293
|
+
"dap-ds-icon-subtract-line": _,
|
|
294
|
+
"dap-ds-icon-check-line2": v,
|
|
295
|
+
"dap-ds-form-label": $,
|
|
296
|
+
"dap-ds-typography": g,
|
|
297
|
+
"dap-ds-feedback": k
|
|
298
|
+
}, t.nextId = 0, t.styles = b(I), t);
|
|
299
|
+
l([
|
|
300
|
+
f(".input")
|
|
304
301
|
], n.prototype, "input");
|
|
305
|
-
|
|
302
|
+
l([
|
|
306
303
|
h({ type: Boolean, reflect: !0 })
|
|
307
304
|
], n.prototype, "indeterminate");
|
|
308
|
-
|
|
305
|
+
l([
|
|
309
306
|
h({ type: Boolean, reflect: !0 })
|
|
310
307
|
], n.prototype, "preventDefault");
|
|
311
|
-
|
|
308
|
+
l([
|
|
312
309
|
h({ type: Boolean })
|
|
313
310
|
], n.prototype, "border");
|
|
314
|
-
|
|
311
|
+
l([
|
|
315
312
|
h({ type: Boolean, reflect: !0 })
|
|
316
313
|
], n.prototype, "readonly");
|
|
317
|
-
|
|
314
|
+
l([
|
|
318
315
|
h({ type: String })
|
|
319
316
|
], n.prototype, "type");
|
|
320
|
-
let
|
|
317
|
+
let V = n;
|
|
321
318
|
export {
|
|
322
|
-
|
|
319
|
+
V as default
|
|
323
320
|
};
|
|
324
321
|
//# sourceMappingURL=checkbox.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.component.js","sources":["../../../src/components/checkbox/checkbox.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { property, query } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html } from 'lit/static-html.js'\n\nimport { CommonFormElementSize, CommonSize } from '@/common/types'\nimport { LabeledChoiceElement } from '@/internal/mixin/labeledChoiceElement'\n\nimport DapDSFeedback from '../feedback/feedback.component'\nimport DapDSFormLabel from '../form/form-label/form-label.component'\nimport SystemCheckLine2 from '../icons/system/system-check-line2/system-check-line2.component'\nimport SystemSubtractLine from '../icons/system/system-subtract-line/system-subtract-line.component'\nimport DapDSTypography from '../typography/typography.component'\nimport styles from './_styles/checkbox.scss?inline'\n\n/**\n * `dap-ds-checkbox`\n * @summary A checkbox is a form element that allows the user to select one or more options from a set.\n * @element dap-ds-checkbox\n * @title - Checkbox\n *\n * @event {{ checked: boolean, indeterminate: boolean, value: string, disabled: boolean, readonly: boolean, type: 'checkbox' }} dds-change - Fired when the checkbox is checked or unchecked.\n * @event {{ void }} dds-blur - Emitted when the checkbox loses focus.\n * @event {{ void }} dds-focus - Emitted when the checkbox gains focus.\n * @event {{ checked: boolean, indeterminate: boolean, value: string, disabled: boolean, readonly: boolean }} dds-input - Emitted when the checkbox receives input.\n *\n * @property {string} name - The name of the checkbox.\n * @property {string} value - The value of the checkbox.\n * @property {boolean} checked - Whether the checkbox is checked.\n * @property {string} label - The label of the checkbox.\n * @property {boolean} hideLabel - Visually hides the label while keeping it available to assistive technology. (default: false)\n * @property {string} description - The description of the checkbox.\n * @property {boolean} disabled - Whether the checkbox is disabled.\n * @property {boolean} readonly - Whether the checkbox is readonly (cannot be changed but value is submitted with form).\n * @property {boolean} required - Whether the checkbox is required.\n * @property {'xs' | 'sm' | 'lg'} size - The size of the checkbox. Default is 'sm'.\n * @property {string} sizeMap - Responsive size map (e.g. \"md:lg\").\n * @property {'left' | 'right'} labelPlacement - The placement of the label.\n * @property {'top' | 'bottom'} descriptionPlacement - The placement of the description.\n * @property {boolean} subtle - The weight of the label.\n * @property {string} feedback - The feedback of the checkbox.\n * @property {'negative' | 'positive' | 'warning'} feedbackType - The feedback type of the checkbox.\n * @property {boolean} invalid - The invalid state of the checkbox.\n * @property {boolean} optional - The optional state of the checkbox.\n * @property {string} optionalLabel - The optional label of the checkbox.\n * @property {string} requiredLabel - The required indicator of the checkbox. (default: '*')\n *\n * @csspart base - The main checkbox container.\n * @csspart label - The label of the checkbox.\n * @csspart input - The input of the checkbox.\n * @csspart control - The control of the checkbox.\n * @csspart icon - The icon of the checkbox.\n * @csspart icon-base - The base icon container.\n * @csspart label-container - The label container of the checkbox.\n * @csspart description - The description of the checkbox.\n * @csspart readonly - The readonly state of the checkbox.\n *\n * @cssproperty --dds-checkbox-size - The size of the checkbox. (default: var(--dds-spacing-500))\n * @cssproperty --dds-checkbox-border-width - The border width of the checkbox. (default: var(--dds-border-width-large))\n * @cssproperty --dds-checkbox-border-radius - The border radius of the checkbox. (default: var(--dds-radius-small))\n * @cssproperty --dds-checkbox-border-color - The border color of the checkbox. (default: var(--dds-border-neutral-base))\n * @cssproperty --dds-checkbox-background-color - The background color of the checkbox. (default: transparent)\n * @cssproperty --dds-checkbox-icon-color - The color of the checkbox icon. (default: var(--dds-button-primary-icon-enabled))\n * @cssproperty --dds-checkbox-hover-border-color - The border color when hovering over the checkbox. (default: var(--dds-border-neutral-medium))\n * @cssproperty --dds-checkbox-hover-background-color - The background color when hovering over the checkbox. (default: var(--dds-background-neutral-medium))\n * @cssproperty --dds-checkbox-active-border-color - The border color when the checkbox is active. (default: var(--dds-border-neutral-strong))\n * @cssproperty --dds-checkbox-active-background-color - The background color when the checkbox is active. (default: var(--dds-background-neutral-strong))\n * @cssproperty --dds-checkbox-checked-border-color - The border color when the checkbox is checked. (default: var(--dds-background-brand-base-inverted))\n * @cssproperty --dds-checkbox-checked-background-color - The background color when the checkbox is checked. (default: var(--dds-background-brand-base-inverted))\n * @cssproperty --dds-checkbox-checked-hover-border-color - The border color when hovering over a checked checkbox. (default: var(--dds-background-brand-medium-inverted))\n * @cssproperty --dds-checkbox-checked-hover-background-color - The background color when hovering over a checked checkbox. (default: var(--dds-background-brand-medium-inverted))\n * @cssproperty --dds-checkbox-checked-active-border-color - The border color when a checked checkbox is active. (default: var(--dds-background-brand-strong-inverted))\n * @cssproperty --dds-checkbox-checked-active-background-color - The background color when a checked checkbox is active. (default: var(--dds-background-brand-strong-inverted))\n * @cssproperty --dds-checkbox-invalid-border-color - The border color when the checkbox is invalid. (default: var(--dds-border-negative-base))\n * @cssproperty --dds-checkbox-invalid-background-color - The background color when the checkbox is invalid. (default: var(--dds-background-negative-base))\n * @cssproperty --dds-checkbox-invalid-hover-border-color - The border color when hovering over an invalid checkbox. (default: var(--dds-border-negative-medium))\n * @cssproperty --dds-checkbox-invalid-hover-background-color - The background color when hovering over an invalid checkbox. (default: var(--dds-background-negative-medium))\n * @cssproperty --dds-checkbox-invalid-active-border-color - The border color when an invalid checkbox is active. (default: var(--dds-border-negative-strong))\n * @cssproperty --dds-checkbox-invalid-active-background-color - The background color when an invalid checkbox is active. (default: var(--dds-background-negative-strong))\n * @cssproperty --dds-checkbox-disabled-border-color - The border color when the checkbox is disabled. (default: var(--dds-button-primary-background-disabled))\n * @cssproperty --dds-checkbox-disabled-background-color - The background color when the checkbox is disabled. (default: var(--dds-button-primary-background-disabled))\n * @cssproperty --dds-checkbox-disabled-icon-color - The color of the checkbox icon when disabled. (default: var(--dds-button-primary-icon-disabled))\n * @cssproperty --dds-checkbox-readonly-border-color - The border color when the checkbox is readonly. (default: var(--dds-border-neutral-subtle))\n * @cssproperty --dds-checkbox-readonly-background-color - The background color when the checkbox is readonly. (default: var(--dds-background-neutral-subtle))\n * @cssproperty --dds-checkbox-readonly-icon-color - The color of the checkbox icon when readonly. (default: var(--dds-text-neutral-base))\n */\nexport default class DapDSCheckbox extends LabeledChoiceElement {\n static tagName = 'dap-ds-checkbox'\n\n static dependencies = {\n 'dap-ds-icon-subtract-line': SystemSubtractLine,\n 'dap-ds-icon-check-line2': SystemCheckLine2,\n 'dap-ds-form-label': DapDSFormLabel,\n 'dap-ds-typography': DapDSTypography,\n 'dap-ds-feedback': DapDSFeedback,\n }\n\n private static nextId = 0\n\n private readonly inputId: string\n private readonly labelId: string\n private readonly descriptionId: string\n\n @query('.input') private readonly input!: HTMLInputElement\n\n /** Whether the checkbox is indeterminate */\n @property({ type: Boolean, reflect: true }) indeterminate = false\n\n /** Whether the checkbox should prevent the default action */\n @property({ type: Boolean, reflect: true }) preventDefault: boolean = false\n\n /** This sets up border around the checkbox, when true. */\n @property({ type: Boolean }) border: boolean = false\n\n /** Whether the checkbox is readonly */\n @property({ type: Boolean, reflect: true }) readonly: boolean = false\n\n /** The type of the checkbox\n * @type {'normal' | 'background'}\n */\n @property({ type: String }) type: 'normal' | 'background' = 'normal'\n\n static readonly styles = unsafeCSS(styles)\n\n constructor() {\n super()\n DapDSCheckbox.nextId++\n const uniqueSuffix =\n typeof crypto !== 'undefined' && crypto.randomUUID\n ? crypto.randomUUID().slice(0, 8)\n : Date.now().toString(36)\n this.inputId = `input-${DapDSCheckbox.nextId}-${uniqueSuffix}`\n this.labelId = `label-${DapDSCheckbox.nextId}-${uniqueSuffix}`\n this.descriptionId = `description-${DapDSCheckbox.nextId}-${uniqueSuffix}`\n // Initialize the feedbackId from FeedbackMixin\n this.feedbackId = `feedback-${DapDSCheckbox.nextId}-${uniqueSuffix}`\n }\n\n /**\n * Validates property combinations and logs warnings for invalid states.\n * @private\n */\n private validateProperties(): void {\n // Warn if both checked and indeterminate are true (invalid combination)\n if (this.checked && this.indeterminate) {\n console.warn(\n 'Checkbox: Cannot be both checked and indeterminate simultaneously. Indeterminate state will take precedence.',\n )\n }\n }\n\n /**\n * Gets the aria-describedby attribute value by combining description and feedback IDs.\n * @returns {string | undefined} Space-separated IDs or undefined if none exist\n * @private\n */\n private getAriaDescribedBy(): string | undefined {\n const ids: string[] = []\n\n if (this.description) {\n ids.push(this.descriptionId)\n }\n\n if (this.feedback) {\n ids.push(this.feedbackId!)\n }\n\n return ids.length > 0 ? ids.join(' ') : undefined\n }\n\n /**\n * Gets the aria-checked attribute value based on checkbox state.\n * @returns {'true' | 'false' | 'mixed'} The appropriate aria-checked value\n * @private\n */\n private getAriaChecked(): 'true' | 'false' | 'mixed' {\n if (this.indeterminate) {\n return 'mixed'\n }\n return this.checked ? 'true' : 'false'\n }\n\n /**\n * Handles click events on the checkbox.\n * Manages the checked/indeterminate state transitions and emits change events.\n * @private\n */\n private handleClick(event?: Event) {\n // Early return if click should be prevented, component is disabled, or readonly\n if (this.preventDefault || this.disabled || this.readonly) {\n if (this.readonly && event) {\n event.preventDefault()\n event.stopPropagation()\n }\n return\n }\n\n // Validate property combinations before state change\n this.validateProperties()\n\n // Handle state transitions\n if (this.indeterminate) {\n this.indeterminate = false\n this.checked = true\n } else {\n this.checked = !this.checked\n }\n\n const { checked, indeterminate, value, disabled } = this\n\n // Emit change event with null safety\n try {\n this.emit('dds-change', {\n checked,\n indeterminate,\n value: value || (checked ? 'on' : 'off'),\n disabled,\n readonly: this.readonly,\n type: 'checkbox',\n })\n } catch (error) {\n console.error('Error emitting checkbox change event:', error)\n }\n\n // Update validity state with error handling\n try {\n this.setValidity()\n } catch (error) {\n console.error('Error setting checkbox validity:', error)\n }\n }\n\n /**\n * Handles input events on the checkbox.\n * Emits the dds-input event with current checkbox state.\n * @private\n */\n private handleInput() {\n const { checked, indeterminate, value, disabled } = this\n\n const event = new CustomEvent('dds-input', {\n bubbles: true,\n cancelable: false,\n composed: true,\n detail: {\n checked,\n indeterminate,\n value,\n disabled,\n readonly: this.readonly,\n },\n })\n\n this.dispatchEvent(event)\n }\n\n /**\n * Handles keyboard events on the checkbox.\n * Provides enhanced keyboard navigation and accessibility.\n * @param {KeyboardEvent} event - The keyboard event\n * @private\n */\n private handleKeyDown(event: KeyboardEvent): void {\n // Early return if readonly\n if (this.readonly) {\n return\n }\n\n // Handle Space key to toggle checkbox (in addition to default behavior)\n if (event.code === 'Space') {\n // Allow default Space behavior for checkbox input\n // This ensures proper accessibility and form behavior\n return\n }\n\n // Handle Enter key to toggle checkbox (custom behavior)\n if (event.code === 'Enter') {\n event.preventDefault()\n this.handleClick()\n }\n }\n\n public get focusElement(): HTMLInputElement {\n if (!this.input) {\n throw new Error(\n 'Checkbox input element not found. Component may not be properly initialized.',\n )\n }\n return this.input\n }\n\n /**\n * Programmatically focuses the checkbox input element.\n * @public\n */\n public focus(): void {\n if (this.input && !this.disabled && !this.readonly) {\n this.input.focus()\n }\n }\n\n /**\n * Programmatically blurs the checkbox input element.\n * @public\n */\n public blur(): void {\n if (this.input) {\n this.input.blur()\n }\n }\n\n /**\n * Renders the appropriate icon based on checkbox state.\n * @returns {TemplateResult | null} The icon template or null if unchecked\n * @private\n */\n renderIcon() {\n if (this.indeterminate) {\n return html`\n <dap-ds-icon-subtract-line\n class=\"checkbox__icon\"\n part=\"icon\"\n exportparts=\"base:icon-base\"\n size=\"16\"\n decorative></dap-ds-icon-subtract-line>\n `\n }\n\n if (this.checked) {\n return html`\n <dap-ds-icon-check-line2\n class=\"checkbox__icon\"\n part=\"icon\"\n exportparts=\"base:icon-base\"\n size=\"16\"\n decorative></dap-ds-icon-check-line2>\n `\n }\n\n return null\n }\n\n /**\n * Handles invalid events on the checkbox input.\n * Prevents the default browser validation UI from showing and manages invalid state.\n * @param {Event} event - The invalid event\n * @private\n */\n handleInvalid(event: Event) {\n event.preventDefault()\n // Set invalid state if not already set\n if (!this.invalid) {\n this.invalid = true\n }\n }\n\n setValidity() {\n if (!this.innerInput) return\n const { valid } = (this.innerInput as HTMLInputElement).validity\n if (valid) {\n // Only clear invalid for constrained (required) inputs. For an\n // unconstrained checkbox `invalid` is externally controlled (e.g. by a\n // parent input-group), so setValidity must not clobber it here.\n if (this.required) this.invalid = false\n this.internals.setValidity({})\n } else {\n this.internals.setValidity(\n (this.innerInput as HTMLInputElement).validity,\n this.validationMessage,\n this.innerInput,\n )\n }\n }\n\n render() {\n return html`\n <div part=\"base\">\n <label\n part=\"base-label\"\n class=${clsx('checkbox choice', `checkbox--${this.size}`, {\n 'checkbox--checked': this.checked,\n 'checkbox--disabled': this.disabled,\n 'checkbox--readonly': this.readonly,\n 'checkbox--indeterminate': this.indeterminate,\n 'checkbox--required': this.required,\n 'choice--readonly': this.readonly,\n 'choice--disabled': this.disabled,\n 'choice__label--right': this.labelPlacement === 'right',\n 'choice__label--left': this.labelPlacement === 'left',\n })}>\n <div\n part=\"wrapper\"\n class=${clsx('input__wrapper', {\n 'input__wrapper--background': this.type === 'background',\n 'input__wrapper--border': this.border,\n })}>\n <input\n part=\"input\"\n type=\"checkbox\"\n class=${clsx('input', {\n 'input--background': this.type === 'background',\n })}\n name=${ifDefined(this.name ? this.name : undefined)}\n id=${this.inputId}\n .indeterminate=${this.indeterminate}\n .checked=${this.checked}\n .disabled=${this.disabled}\n .required=${this.required}\n aria-labelledby=${ifDefined(\n !this.ariaLabel && this.label ? this.labelId : undefined,\n )}\n aria-describedby=${!this.ariaLabel\n ? ifDefined(this.getAriaDescribedBy())\n : ''}\n aria-checked=${this.getAriaChecked()}\n .aria-invalid=${this.invalid ? 'true' : null}\n @invalid=${this.handleInvalid}\n @click=${this.handleClick}\n @input=${this.handleInput}\n @keydown=${this.handleKeyDown}\n @blur=${super.onBlur}\n @focus=${super.onFocus} />\n\n <span\n part=\"control\"\n class=${clsx('input__control', `input__control--${this.size}`, {\n 'input__control--checked': this.checked,\n 'input__control--disabled': this.disabled,\n 'input__control--readonly': this.readonly,\n 'input__control--indeterminate': this.indeterminate,\n 'input__control--invalid': this.invalid,\n })}>\n <span\n part=\"high-contrast\"\n class=${clsx(\n 'input__control-high-contrast',\n `input__control-high-contrast--${this.size}`,\n {\n 'input__control-high-contrast--disabled': this.disabled,\n 'input__control-high-contrast--readonly': this.readonly,\n },\n )}></span>\n <slot name=\"iconcontent\"> ${this.renderIcon()} </slot>\n </span>\n\n <div\n part=\"label-container\"\n class=${clsx('choice__label-container', {\n 'choice__label-container--disabled': this.disabled,\n 'choice__label-container--readonly': this.readonly,\n 'choice__label--bottom': this.descriptionPlacement === 'top',\n 'choice__label--top': this.descriptionPlacement === 'bottom',\n })}>\n ${this.label &&\n html`<dap-ds-form-label\n id=${this.labelId}\n class=\"label\"\n part=\"label\"\n .size=${this.size}\n .required=${this.required}\n .requiredLabel=${this.requiredLabel}\n .optional=${this.optional}\n aria-hidden=\"true\"\n .optionalLabel=${this.optionalLabel}\n .disabled=${this.disabled || this.readonly}\n .readonly=${this.readonly}\n .hideLabel=${this.hideLabel}\n label=${ifDefined(this.label)}\n subtle\n renderAs=\"span\">\n </dap-ds-form-label>`}\n ${this.description &&\n html`\n <dap-ds-typography\n class=\"description\"\n variant=\"description\"\n part=\"description\"\n aria-hidden=\"true\"\n size=${ifDefined(this.size as CommonFormElementSize)}\n id=${this.descriptionId}>\n ${this.description}\n </dap-ds-typography>\n `}\n </div>\n </div>\n ${this.feedback &&\n html`\n <dap-ds-feedback\n part=\"feedback\"\n feedbackType=${ifDefined(this.feedbackType)}\n feedbackSize=${ifDefined(this.size) as CommonSize}\n id=\"feedback\"\n .subtle=${this.subtle}>\n ${this.feedback}\n </dap-ds-feedback>\n `}\n </label>\n </div>\n `\n }\n}\n"],"names":["_DapDSCheckbox","_a","LabeledChoiceElement","uniqueSuffix","ids","event","checked","indeterminate","value","disabled","error","html","valid","clsx","ifDefined","SystemSubtractLine","SystemCheckLine2","DapDSFormLabel","DapDSTypography","DapDSFeedback","unsafeCSS","styles","__decorateClass","query","property","DapDSCheckbox"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"checkbox.component.js","sources":["../../../src/components/checkbox/checkbox.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { property, query } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html } from 'lit/static-html.js'\n\nimport { CommonFormElementSize, CommonSize } from '@/common/types'\nimport { LabeledChoiceElement } from '@/internal/mixin/labeledChoiceElement'\nimport { formLabelTemplate } from '@/internal/templates/formLabel'\n\nimport DapDSFeedback from '../feedback/feedback.component'\nimport DapDSFormLabel from '../form/form-label/form-label.component'\nimport SystemCheckLine2 from '../icons/system/system-check-line2/system-check-line2.component'\nimport SystemSubtractLine from '../icons/system/system-subtract-line/system-subtract-line.component'\nimport DapDSTypography from '../typography/typography.component'\nimport styles from './_styles/checkbox.scss?inline'\n\n/**\n * `dap-ds-checkbox`\n * @summary A checkbox is a form element that allows the user to select one or more options from a set.\n * @element dap-ds-checkbox\n * @title - Checkbox\n *\n * @event {{ checked: boolean, indeterminate: boolean, value: string, disabled: boolean, readonly: boolean, type: 'checkbox' }} dds-change - Fired when the checkbox is checked or unchecked.\n * @event {{ void }} dds-blur - Emitted when the checkbox loses focus.\n * @event {{ void }} dds-focus - Emitted when the checkbox gains focus.\n * @event {{ checked: boolean, indeterminate: boolean, value: string, disabled: boolean, readonly: boolean }} dds-input - Emitted when the checkbox receives input.\n *\n * @property {string} name - The name of the checkbox.\n * @property {string} value - The value of the checkbox.\n * @property {boolean} checked - Whether the checkbox is checked.\n * @property {string} label - The label of the checkbox.\n * @property {boolean} hideLabel - Visually hides the label while keeping it available to assistive technology. (default: false)\n * @property {string} description - The description of the checkbox.\n * @property {boolean} disabled - Whether the checkbox is disabled.\n * @property {boolean} readonly - Whether the checkbox is readonly (cannot be changed but value is submitted with form).\n * @property {boolean} required - Whether the checkbox is required.\n * @property {'xs' | 'sm' | 'lg'} size - The size of the checkbox. Default is 'sm'.\n * @property {string} sizeMap - Responsive size map (e.g. \"md:lg\").\n * @property {'left' | 'right'} labelPlacement - The placement of the label.\n * @property {'top' | 'bottom'} descriptionPlacement - The placement of the description.\n * @property {boolean} subtle - The weight of the label.\n * @property {string} feedback - The feedback of the checkbox.\n * @property {'negative' | 'positive' | 'warning'} feedbackType - The feedback type of the checkbox.\n * @property {boolean} invalid - The invalid state of the checkbox.\n * @property {boolean} optional - The optional state of the checkbox.\n * @property {string} optionalLabel - The optional label of the checkbox.\n * @property {string} requiredLabel - The required indicator of the checkbox. (default: '*')\n *\n * @csspart base - The main checkbox container.\n * @csspart label - The label of the checkbox.\n * @csspart input - The input of the checkbox.\n * @csspart control - The control of the checkbox.\n * @csspart icon - The icon of the checkbox.\n * @csspart icon-base - The base icon container.\n * @csspart label-container - The label container of the checkbox.\n * @csspart description - The description of the checkbox.\n * @csspart base-label - The label element wrapping the control.\n * @csspart wrapper - The wrapper of the control and label.\n * @csspart feedback - The feedback of the checkbox.\n * @csspart high-contrast - The high contrast indicator of the checkbox.\n * @csspart label-base - The base of the label.\n * @csspart label-required - The required indicator of the label.\n * @csspart label-optional - The optional indicator of the label.\n *\n * @cssproperty --dds-checkbox-size - The size of the checkbox. (default: var(--dds-spacing-500))\n * @cssproperty --dds-checkbox-border-width - The border width of the checkbox. (default: var(--dds-border-width-large))\n * @cssproperty --dds-checkbox-border-radius - The border radius of the checkbox. (default: var(--dds-radius-small))\n * @cssproperty --dds-checkbox-border-color - The border color of the checkbox. (default: var(--dds-border-neutral-base))\n * @cssproperty --dds-checkbox-background-color - The background color of the checkbox. (default: transparent)\n * @cssproperty --dds-checkbox-icon-color - The color of the checkbox icon. (default: var(--dds-button-primary-icon-enabled))\n * @cssproperty --dds-checkbox-hover-border-color - The border color when hovering over the checkbox. (default: var(--dds-border-neutral-medium))\n * @cssproperty --dds-checkbox-hover-background-color - The background color when hovering over the checkbox. (default: var(--dds-background-neutral-medium))\n * @cssproperty --dds-checkbox-active-border-color - The border color when the checkbox is active. (default: var(--dds-border-neutral-strong))\n * @cssproperty --dds-checkbox-active-background-color - The background color when the checkbox is active. (default: var(--dds-background-neutral-strong))\n * @cssproperty --dds-checkbox-checked-border-color - The border color when the checkbox is checked. (default: var(--dds-background-brand-base-inverted))\n * @cssproperty --dds-checkbox-checked-background-color - The background color when the checkbox is checked. (default: var(--dds-background-brand-base-inverted))\n * @cssproperty --dds-checkbox-checked-hover-border-color - The border color when hovering over a checked checkbox. (default: var(--dds-background-brand-medium-inverted))\n * @cssproperty --dds-checkbox-checked-hover-background-color - The background color when hovering over a checked checkbox. (default: var(--dds-background-brand-medium-inverted))\n * @cssproperty --dds-checkbox-checked-active-border-color - The border color when a checked checkbox is active. (default: var(--dds-background-brand-strong-inverted))\n * @cssproperty --dds-checkbox-checked-active-background-color - The background color when a checked checkbox is active. (default: var(--dds-background-brand-strong-inverted))\n * @cssproperty --dds-checkbox-invalid-border-color - The border color when the checkbox is invalid. (default: var(--dds-border-negative-base))\n * @cssproperty --dds-checkbox-invalid-background-color - The background color when the checkbox is invalid. (default: var(--dds-background-negative-base))\n * @cssproperty --dds-checkbox-invalid-hover-border-color - The border color when hovering over an invalid checkbox. (default: var(--dds-border-negative-medium))\n * @cssproperty --dds-checkbox-invalid-hover-background-color - The background color when hovering over an invalid checkbox. (default: var(--dds-background-negative-medium))\n * @cssproperty --dds-checkbox-invalid-active-border-color - The border color when an invalid checkbox is active. (default: var(--dds-border-negative-strong))\n * @cssproperty --dds-checkbox-invalid-active-background-color - The background color when an invalid checkbox is active. (default: var(--dds-background-negative-strong))\n * @cssproperty --dds-checkbox-disabled-border-color - The border color when the checkbox is disabled. (default: var(--dds-button-primary-background-disabled))\n * @cssproperty --dds-checkbox-disabled-background-color - The background color when the checkbox is disabled. (default: var(--dds-button-primary-background-disabled))\n * @cssproperty --dds-checkbox-disabled-icon-color - The color of the checkbox icon when disabled. (default: var(--dds-button-primary-icon-disabled))\n * @cssproperty --dds-checkbox-readonly-border-color - The border color when the checkbox is readonly. (default: var(--dds-border-neutral-subtle))\n * @cssproperty --dds-checkbox-readonly-background-color - The background color when the checkbox is readonly. (default: var(--dds-background-neutral-subtle))\n * @cssproperty --dds-checkbox-readonly-icon-color - The color of the checkbox icon when readonly. (default: var(--dds-text-neutral-base))\n */\nexport default class DapDSCheckbox extends LabeledChoiceElement {\n static tagName = 'dap-ds-checkbox'\n\n static dependencies = {\n 'dap-ds-icon-subtract-line': SystemSubtractLine,\n 'dap-ds-icon-check-line2': SystemCheckLine2,\n 'dap-ds-form-label': DapDSFormLabel,\n 'dap-ds-typography': DapDSTypography,\n 'dap-ds-feedback': DapDSFeedback,\n }\n\n private static nextId = 0\n\n private readonly inputId: string\n private readonly labelId: string\n private readonly descriptionId: string\n\n @query('.input') private readonly input!: HTMLInputElement\n\n /** Whether the checkbox is indeterminate */\n @property({ type: Boolean, reflect: true }) indeterminate = false\n\n /** Whether the checkbox should prevent the default action */\n @property({ type: Boolean, reflect: true }) preventDefault: boolean = false\n\n /** This sets up border around the checkbox, when true. */\n @property({ type: Boolean }) border: boolean = false\n\n /** Whether the checkbox is readonly */\n @property({ type: Boolean, reflect: true }) readonly: boolean = false\n\n /** The type of the checkbox\n * @type {'normal' | 'background'}\n */\n @property({ type: String }) type: 'normal' | 'background' = 'normal'\n\n static readonly styles = unsafeCSS(styles)\n\n constructor() {\n super()\n DapDSCheckbox.nextId++\n const uniqueSuffix =\n typeof crypto !== 'undefined' && crypto.randomUUID\n ? crypto.randomUUID().slice(0, 8)\n : Date.now().toString(36)\n this.inputId = `input-${DapDSCheckbox.nextId}-${uniqueSuffix}`\n this.labelId = `label-${DapDSCheckbox.nextId}-${uniqueSuffix}`\n this.descriptionId = `description-${DapDSCheckbox.nextId}-${uniqueSuffix}`\n // Initialize the feedbackId from FeedbackMixin\n this.feedbackId = `feedback-${DapDSCheckbox.nextId}-${uniqueSuffix}`\n }\n\n /**\n * Validates property combinations and logs warnings for invalid states.\n * @private\n */\n private validateProperties(): void {\n // Warn if both checked and indeterminate are true (invalid combination)\n if (this.checked && this.indeterminate) {\n console.warn(\n 'Checkbox: Cannot be both checked and indeterminate simultaneously. Indeterminate state will take precedence.',\n )\n }\n }\n\n /**\n * Gets the aria-describedby attribute value by combining description and feedback IDs.\n * @returns {string | undefined} Space-separated IDs or undefined if none exist\n * @private\n */\n private getAriaDescribedBy(): string | undefined {\n const ids: string[] = []\n\n if (this.description) {\n ids.push(this.descriptionId)\n }\n\n if (this.feedback) {\n ids.push(this.feedbackId!)\n }\n\n return ids.length > 0 ? ids.join(' ') : undefined\n }\n\n /**\n * Gets the aria-checked attribute value based on checkbox state.\n * @returns {'true' | 'false' | 'mixed'} The appropriate aria-checked value\n * @private\n */\n private getAriaChecked(): 'true' | 'false' | 'mixed' {\n if (this.indeterminate) {\n return 'mixed'\n }\n return this.checked ? 'true' : 'false'\n }\n\n /**\n * Handles click events on the checkbox.\n * Manages the checked/indeterminate state transitions and emits change events.\n * @private\n */\n private handleClick(event?: Event) {\n // Early return if click should be prevented, component is disabled, or readonly\n if (this.preventDefault || this.disabled || this.readonly) {\n if (this.readonly && event) {\n event.preventDefault()\n event.stopPropagation()\n }\n return\n }\n\n // Validate property combinations before state change\n this.validateProperties()\n\n // Handle state transitions\n if (this.indeterminate) {\n this.indeterminate = false\n this.checked = true\n } else {\n this.checked = !this.checked\n }\n\n const { checked, indeterminate, value, disabled } = this\n\n // Emit change event with null safety\n try {\n this.emit('dds-change', {\n checked,\n indeterminate,\n value: value || (checked ? 'on' : 'off'),\n disabled,\n readonly: this.readonly,\n type: 'checkbox',\n })\n } catch (error) {\n console.error('Error emitting checkbox change event:', error)\n }\n\n // Update validity state with error handling\n try {\n this.setValidity()\n } catch (error) {\n console.error('Error setting checkbox validity:', error)\n }\n }\n\n /**\n * Handles input events on the checkbox.\n * Emits the dds-input event with current checkbox state.\n * @private\n */\n private handleInput() {\n const { checked, indeterminate, value, disabled } = this\n\n const event = new CustomEvent('dds-input', {\n bubbles: true,\n cancelable: false,\n composed: true,\n detail: {\n checked,\n indeterminate,\n value,\n disabled,\n readonly: this.readonly,\n },\n })\n\n this.dispatchEvent(event)\n }\n\n /**\n * Handles keyboard events on the checkbox.\n * Provides enhanced keyboard navigation and accessibility.\n * @param {KeyboardEvent} event - The keyboard event\n * @private\n */\n private handleKeyDown(event: KeyboardEvent): void {\n // Early return if readonly\n if (this.readonly) {\n return\n }\n\n // Handle Space key to toggle checkbox (in addition to default behavior)\n if (event.code === 'Space') {\n // Allow default Space behavior for checkbox input\n // This ensures proper accessibility and form behavior\n return\n }\n\n // Handle Enter key to toggle checkbox (custom behavior)\n if (event.code === 'Enter') {\n event.preventDefault()\n this.handleClick()\n }\n }\n\n public get focusElement(): HTMLInputElement {\n if (!this.input) {\n throw new Error(\n 'Checkbox input element not found. Component may not be properly initialized.',\n )\n }\n return this.input\n }\n\n /**\n * Programmatically focuses the checkbox input element.\n * @public\n */\n public focus(): void {\n if (this.input && !this.disabled && !this.readonly) {\n this.input.focus()\n }\n }\n\n /**\n * Programmatically blurs the checkbox input element.\n * @public\n */\n public blur(): void {\n if (this.input) {\n this.input.blur()\n }\n }\n\n /**\n * Renders the appropriate icon based on checkbox state.\n * @returns {TemplateResult | null} The icon template or null if unchecked\n * @private\n */\n renderIcon() {\n if (this.indeterminate) {\n return html`\n <dap-ds-icon-subtract-line\n class=\"checkbox__icon\"\n part=\"icon\"\n exportparts=\"base:icon-base\"\n size=\"16\"\n decorative></dap-ds-icon-subtract-line>\n `\n }\n\n if (this.checked) {\n return html`\n <dap-ds-icon-check-line2\n class=\"checkbox__icon\"\n part=\"icon\"\n exportparts=\"base:icon-base\"\n size=\"16\"\n decorative></dap-ds-icon-check-line2>\n `\n }\n\n return null\n }\n\n /**\n * Handles invalid events on the checkbox input.\n * Prevents the default browser validation UI from showing and manages invalid state.\n * @param {Event} event - The invalid event\n * @private\n */\n handleInvalid(event: Event) {\n event.preventDefault()\n // Set invalid state if not already set\n if (!this.invalid) {\n this.invalid = true\n }\n }\n\n setValidity() {\n if (!this.innerInput) return\n const { valid } = (this.innerInput as HTMLInputElement).validity\n if (valid) {\n // Only clear invalid for constrained (required) inputs. For an\n // unconstrained checkbox `invalid` is externally controlled (e.g. by a\n // parent input-group), so setValidity must not clobber it here.\n if (this.required) this.invalid = false\n this.internals.setValidity({})\n } else {\n this.internals.setValidity(\n (this.innerInput as HTMLInputElement).validity,\n this.validationMessage,\n this.innerInput,\n )\n }\n }\n\n render() {\n return html`\n <div part=\"base\">\n <label\n part=\"base-label\"\n class=${clsx('checkbox choice', `checkbox--${this.size}`, {\n 'checkbox--checked': this.checked,\n 'checkbox--disabled': this.disabled,\n 'checkbox--readonly': this.readonly,\n 'checkbox--indeterminate': this.indeterminate,\n 'checkbox--required': this.required,\n 'choice--readonly': this.readonly,\n 'choice--disabled': this.disabled,\n 'choice__label--right': this.labelPlacement === 'right',\n 'choice__label--left': this.labelPlacement === 'left',\n })}>\n <div\n part=\"wrapper\"\n class=${clsx('input__wrapper', {\n 'input__wrapper--background': this.type === 'background',\n 'input__wrapper--border': this.border,\n })}>\n <input\n part=\"input\"\n type=\"checkbox\"\n class=${clsx('input', {\n 'input--background': this.type === 'background',\n })}\n name=${ifDefined(this.name ? this.name : undefined)}\n id=${this.inputId}\n .indeterminate=${this.indeterminate}\n .checked=${this.checked}\n .disabled=${this.disabled}\n .required=${this.required}\n aria-labelledby=${ifDefined(\n !this.ariaLabel && this.label ? this.labelId : undefined,\n )}\n aria-describedby=${!this.ariaLabel\n ? ifDefined(this.getAriaDescribedBy())\n : ''}\n aria-checked=${this.getAriaChecked()}\n .aria-invalid=${this.invalid ? 'true' : null}\n @invalid=${this.handleInvalid}\n @click=${this.handleClick}\n @input=${this.handleInput}\n @keydown=${this.handleKeyDown}\n @blur=${super.onBlur}\n @focus=${super.onFocus} />\n\n <span\n part=\"control\"\n class=${clsx('input__control', `input__control--${this.size}`, {\n 'input__control--checked': this.checked,\n 'input__control--disabled': this.disabled,\n 'input__control--readonly': this.readonly,\n 'input__control--indeterminate': this.indeterminate,\n 'input__control--invalid': this.invalid,\n })}>\n <span\n part=\"high-contrast\"\n class=${clsx(\n 'input__control-high-contrast',\n `input__control-high-contrast--${this.size}`,\n {\n 'input__control-high-contrast--disabled': this.disabled,\n 'input__control-high-contrast--readonly': this.readonly,\n },\n )}></span>\n <slot name=\"iconcontent\"> ${this.renderIcon()} </slot>\n </span>\n\n <div\n part=\"label-container\"\n class=${clsx('choice__label-container', {\n 'choice__label-container--disabled': this.disabled,\n 'choice__label-container--readonly': this.readonly,\n 'choice__label--bottom': this.descriptionPlacement === 'top',\n 'choice__label--top': this.descriptionPlacement === 'bottom',\n })}>\n ${formLabelTemplate({\n label: this.label,\n id: this.labelId,\n size: this.size,\n required: this.required,\n requiredLabel: this.requiredLabel,\n optional: this.optional,\n optionalLabel: this.optionalLabel,\n disabled: this.disabled || this.readonly,\n hideLabel: this.hideLabel,\n subtle: true,\n // Rendered as a decorative <span> (not a <label>): checkbox/switch\n // already wrap the input in an outer <label>, and the accessible\n // name comes from the input's aria-labelledby=${labelId}.\n as: 'span',\n ariaHidden: true,\n })}\n ${this.description &&\n html`\n <dap-ds-typography\n class=\"description\"\n variant=\"description\"\n part=\"description\"\n aria-hidden=\"true\"\n size=${ifDefined(this.size as CommonFormElementSize)}\n id=${this.descriptionId}>\n ${this.description}\n </dap-ds-typography>\n `}\n </div>\n </div>\n ${this.feedback &&\n html`\n <dap-ds-feedback\n part=\"feedback\"\n feedbackType=${ifDefined(this.feedbackType)}\n feedbackSize=${ifDefined(this.size) as CommonSize}\n id=\"feedback\"\n .subtle=${this.subtle}>\n ${this.feedback}\n </dap-ds-feedback>\n `}\n </label>\n </div>\n `\n }\n}\n"],"names":["_DapDSCheckbox","_a","LabeledChoiceElement","uniqueSuffix","ids","event","checked","indeterminate","value","disabled","error","html","valid","clsx","ifDefined","formLabelTemplate","SystemSubtractLine","SystemCheckLine2","DapDSFormLabel","DapDSTypography","DapDSFeedback","unsafeCSS","styles","__decorateClass","query","property","DapDSCheckbox"],"mappings":"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"}
|
|
@@ -24,6 +24,7 @@ export type ChipSize = 'sm' | 'lg';
|
|
|
24
24
|
* @csspart remove-icon - The icon of the remove icon
|
|
25
25
|
* @csspart remove-icon-base - The base of the remove icon
|
|
26
26
|
* @csspart remove-icon-base-base - The base of the remove icon base
|
|
27
|
+
* @csspart content - The content slot of the chip.
|
|
27
28
|
*
|
|
28
29
|
* @cssproperty --dds-chip-border - Border of the chip (default: var(--dds-border-width-base) solid var(--dds-transparent-black-base))
|
|
29
30
|
* @cssproperty --dds-chip-border-radius - Border radius of the chip (default: var(--dds-radius-small))
|
|
@@ -1,25 +1,20 @@
|
|
|
1
|
-
import { clsx as
|
|
2
|
-
import "
|
|
3
|
-
import {
|
|
4
|
-
import "
|
|
5
|
-
import { property as a } from "../../node_modules/@lit/reactive-element/decorators/property.js";
|
|
6
|
-
import { state as f } from "../../node_modules/@lit/reactive-element/decorators/state.js";
|
|
7
|
-
import { queryAssignedNodes as u } from "../../node_modules/@lit/reactive-element/decorators/query-assigned-nodes.js";
|
|
8
|
-
import { html as c } from "../../node_modules/lit-html/static.js";
|
|
1
|
+
import { clsx as m } from "../../node_modules/clsx/dist/clsx.js";
|
|
2
|
+
import { unsafeCSS as f, nothing as c } from "lit";
|
|
3
|
+
import { property as a, queryAssignedNodes as u, state as v } from "lit/decorators.js";
|
|
4
|
+
import { html as p } from "lit/static-html.js";
|
|
9
5
|
import "../../localization/localization.js";
|
|
10
|
-
import { DdsElement as
|
|
11
|
-
import { SizedMixin as
|
|
12
|
-
import
|
|
13
|
-
import
|
|
6
|
+
import { DdsElement as y } from "../../internal/dds-hu-element.js";
|
|
7
|
+
import { SizedMixin as g } from "../../internal/mixin/sizedMixin.js";
|
|
8
|
+
import x from "../icon-button/icon-button.component.js";
|
|
9
|
+
import T from "../stack/stack.component.js";
|
|
14
10
|
import $ from "./chip.scss.js";
|
|
15
|
-
import { t as
|
|
16
|
-
import { unsafeCSS as T } from "../../node_modules/@lit/reactive-element/css-tag.js";
|
|
11
|
+
import { t as b } from "../../node_modules/i18next/dist/esm/i18next.js";
|
|
17
12
|
var C = Object.defineProperty, o = (d, e, t, r) => {
|
|
18
13
|
for (var i = void 0, n = d.length - 1, h; n >= 0; n--)
|
|
19
14
|
(h = d[n]) && (i = h(e, t, i) || i);
|
|
20
15
|
return i && C(e, t, i), i;
|
|
21
16
|
};
|
|
22
|
-
const k = y
|
|
17
|
+
const k = g(y), l = class l extends k {
|
|
23
18
|
constructor() {
|
|
24
19
|
super(...arguments), this.removeable = !1, this.selectable = !1, this.selected = !1, this.disabled = !1, this.removeButtonTestId = "chip-remove-button", this._slotTextContent = "";
|
|
25
20
|
}
|
|
@@ -47,7 +42,7 @@ const k = y(v), l = class l extends k {
|
|
|
47
42
|
* Gets the aria-label for the chip when removable
|
|
48
43
|
*/
|
|
49
44
|
getRemovableAriaLabel() {
|
|
50
|
-
const e =
|
|
45
|
+
const e = b("chip.removable");
|
|
51
46
|
return this._slotTextContent ? `${this._slotTextContent}, ${e}` : e;
|
|
52
47
|
}
|
|
53
48
|
updated(e) {
|
|
@@ -67,10 +62,10 @@ const k = y(v), l = class l extends k {
|
|
|
67
62
|
}
|
|
68
63
|
render() {
|
|
69
64
|
var e, t;
|
|
70
|
-
return
|
|
65
|
+
return p`
|
|
71
66
|
<div
|
|
72
67
|
part="base"
|
|
73
|
-
class=${
|
|
68
|
+
class=${m("chip", `chip--${this.chipSize}`, {
|
|
74
69
|
"chip--selected": this.selectable && this.selected,
|
|
75
70
|
"chip--disabled": this.disabled,
|
|
76
71
|
"chip--selectable": this.selectable
|
|
@@ -79,12 +74,12 @@ const k = y(v), l = class l extends k {
|
|
|
79
74
|
tabindex=${this.disabled ? "-1" : "0"}
|
|
80
75
|
aria-disabled=${this.disabled}
|
|
81
76
|
aria-pressed=${this.selected}
|
|
82
|
-
aria-label=${this.removeable ? this.getRemovableAriaLabel() : (e = this.ariaLabel) != null ? e :
|
|
77
|
+
aria-label=${this.removeable ? this.getRemovableAriaLabel() : (e = this.ariaLabel) != null ? e : c}
|
|
83
78
|
@click=${this.handleClick}
|
|
84
79
|
@keydown=${this.handleKeyDown}>
|
|
85
80
|
<dap-ds-stack direction="row" spacing="200" part="content-container">
|
|
86
81
|
<slot part="content" @slotchange=${this.handleSlotChange}></slot>
|
|
87
|
-
${this.removeable ?
|
|
82
|
+
${this.removeable ? p`<dap-ds-icon-button
|
|
88
83
|
icon="close-line"
|
|
89
84
|
part="remove-button"
|
|
90
85
|
data-testid=${this.removeButtonTestId}
|
|
@@ -93,17 +88,17 @@ const k = y(v), l = class l extends k {
|
|
|
93
88
|
tabindex="-1"
|
|
94
89
|
?disabled=${this.disabled}
|
|
95
90
|
size="sm"
|
|
96
|
-
aria-label=${(t = this.deleteAriaLabel) != null ? t :
|
|
97
|
-
@click=${this.handleRemove}></dap-ds-icon-button>` :
|
|
91
|
+
aria-label=${(t = this.deleteAriaLabel) != null ? t : b("chip.remove")}
|
|
92
|
+
@click=${this.handleRemove}></dap-ds-icon-button>` : c}
|
|
98
93
|
</dap-ds-stack>
|
|
99
94
|
</div>
|
|
100
95
|
`;
|
|
101
96
|
}
|
|
102
97
|
};
|
|
103
98
|
l.tagName = "dap-ds-chip", l.dependencies = {
|
|
104
|
-
"dap-ds-stack":
|
|
105
|
-
"dap-ds-icon-button":
|
|
106
|
-
}, l.styles =
|
|
99
|
+
"dap-ds-stack": T,
|
|
100
|
+
"dap-ds-icon-button": x
|
|
101
|
+
}, l.styles = f($);
|
|
107
102
|
let s = l;
|
|
108
103
|
o([
|
|
109
104
|
a({ type: Boolean })
|
|
@@ -130,7 +125,7 @@ o([
|
|
|
130
125
|
u({ slot: "", flatten: !0 })
|
|
131
126
|
], s.prototype, "_slotNodes");
|
|
132
127
|
o([
|
|
133
|
-
|
|
128
|
+
v()
|
|
134
129
|
], s.prototype, "_slotTextContent");
|
|
135
130
|
export {
|
|
136
131
|
s as default
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chip.component.js","sources":["../../../src/components/chip/chip.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { nothing, unsafeCSS } from 'lit'\nimport { property, queryAssignedNodes, state } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { t } from '@/localization/localization'\n\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport { SizedMixin } from '../../internal/mixin/sizedMixin'\nimport DapDSIconButton from '../icon-button/icon-button.component'\nimport DapDSStack from '../stack/stack.component'\nimport styles from './chip.scss?inline'\n\nconst ChipBaseWithSized = SizedMixin(DdsElement)\n\nexport type ChipSize = 'sm' | 'lg'\n\n/**\n * `dap-ds-chip`\n * @summary A chip is a small status descriptor for UI elements.\n * @element dap-ds-chip\n * @title - Chip\n *\n * @property { 'sm' | 'lg' } size - The size of the chip. Default is `sm`.\n * @property {string} sizeMap - Responsive size map (e.g. \"md:lg\").\n *\n * @event {{ value: string }} dds-remove - Fired when the chip is removed\n * @event {{ value?: string, selected: boolean }} dds-select - Fired when the chip is selected\n *\n * @csspart base - The base part\n * @csspart content-container - The container for the content\n * @csspart remove-button - The remove button\n * @csspart remove-icon - The icon of the remove icon\n * @csspart remove-icon-base - The base of the remove icon\n * @csspart remove-icon-base-base - The base of the remove icon base\n *\n * @cssproperty --dds-chip-border - Border of the chip (default: var(--dds-border-width-base) solid var(--dds-transparent-black-base))\n * @cssproperty --dds-chip-border-radius - Border radius of the chip (default: var(--dds-radius-small))\n * @cssproperty --dds-chip-font-weight - Font weight of the chip (default: var(--dds-font-weight-bold))\n * @cssproperty --dds-chip-line-height - Line height of the chip (default: 1.5)\n * @cssproperty --dds-chip-transition - Transition timing for chip interactions (default: all 0.2s ease-in-out)\n * @cssproperty --dds-chip-padding-sm - Padding for small chip size (default: var(--dds-spacing-100) var(--dds-spacing-200))\n * @cssproperty --dds-chip-padding-lg - Padding for large chip size (default: var(--dds-spacing-200) var(--dds-spacing-300))\n * @cssproperty --dds-chip-font-size-sm - Font size for small chip size (default: var(--dds-font-xs))\n * @cssproperty --dds-chip-font-size-lg - Font size for large chip size (default: var(--dds-font-xs))\n * @cssproperty --dds-chip-background-color - Background color of the chip (default: var(--dds-background-neutral-base))\n * @cssproperty --dds-chip-text-color - Text color of the chip (default: var(--dds-text-neutral-base))\n * @cssproperty --dds-chip-hover-background-color - Background color of the chip on hover (default: var(--dds-background-neutral-medium))\n * @cssproperty --dds-chip-active-background-color - Background color of the chip when active (default: var(--dds-background-neutral-strong))\n * @cssproperty --dds-chip-selected-background-color - Background color of the selected chip (default: var(--dds-background-brand-medium))\n * @cssproperty --dds-chip-selected-text-color - Text color of the selected chip (default: var(--dds-text-brand-subtle))\n * @cssproperty --dds-chip-selected-border-color - Border color of the selected chip (default: var(--dds-border-brand-base))\n * @cssproperty --dds-chip-disabled-background-color - Background color of the disabled chip (default: var(--dds-background-neutral-medium))\n * @cssproperty --dds-chip-disabled-text-color - Text color of the disabled chip (default: var(--dds-text-neutral-subtle))\n *\n */\nexport default class DapDSChip extends ChipBaseWithSized {\n static tagName = 'dap-ds-chip'\n\n static dependencies = {\n 'dap-ds-stack': DapDSStack,\n 'dap-ds-icon-button': DapDSIconButton,\n }\n\n /** Maps effectiveSize from SizedMixin to the chip's two visual sizes (sm | lg). */\n private get chipSize(): ChipSize {\n const s = this.effectiveSize\n return s === 'lg' || s === 'md' ? 'lg' : 'sm'\n }\n\n /** Whether the chip is removeable */\n @property({ type: Boolean }) removeable = false\n\n /** Whether the chip is selectable */\n @property({ type: Boolean }) selectable = false\n\n /** Whether the chip is selected */\n @property({ type: Boolean, reflect: true }) selected = false\n\n /** Whether the chip is disabled */\n @property({ type: Boolean, reflect: true }) disabled = false\n\n /** The value of the chip */\n @property({ type: String }) value?: string\n\n /** The aria label for the delete button */\n @property({ type: String }) deleteAriaLabel?: string\n\n /** `data-testid` for the remove button. */\n @property() removeButtonTestId = 'chip-remove-button'\n\n @queryAssignedNodes({ slot: '', flatten: true })\n private _slotNodes!: Node[]\n\n @state() private _slotTextContent = ''\n\n static readonly styles = unsafeCSS(styles)\n\n /**\n * Gets the text content from the slot nodes\n */\n private extractSlotTextContent(nodes: Node[]): string {\n if (!nodes || nodes.length === 0) return ''\n return nodes\n .map(node => {\n if (node.nodeType === Node.TEXT_NODE) {\n return node.textContent?.trim() || ''\n }\n if (node.nodeType === Node.ELEMENT_NODE) {\n return (node as Element).textContent?.trim() || ''\n }\n return ''\n })\n .filter(text => text.length > 0)\n .join(' ')\n }\n\n /**\n * Handles slot content changes\n */\n private handleSlotChange(): void {\n if (this._slotNodes) {\n this._slotTextContent = this.extractSlotTextContent(this._slotNodes)\n }\n }\n\n /**\n * Gets the aria-label for the chip when removable\n */\n private getRemovableAriaLabel(): string {\n const removableText = t('chip.removable')\n return this._slotTextContent\n ? `${this._slotTextContent}, ${removableText}`\n : removableText\n }\n\n updated(changedProperties: Map<string, unknown>) {\n super.updated(changedProperties)\n\n // Update slot text content when slot nodes are available\n if (this._slotNodes && this._slotNodes.length > 0) {\n this.handleSlotChange()\n }\n\n // Prevent removeable and selectable from being enabled together\n if (\n changedProperties.has('removeable') ||\n changedProperties.has('selectable')\n ) {\n if (this.removeable && this.selectable) {\n console.warn(\n 'Chip cannot be both removeable and selectable at the same time.',\n )\n // Disable selectable if removeable is set, or vice versa\n if (changedProperties.has('removeable') && this.removeable) {\n this.selectable = false\n } else if (changedProperties.has('selectable') && this.selectable) {\n this.removeable = false\n }\n }\n }\n }\n\n private handleClick(event: Event): void {\n event.stopPropagation()\n if (!this.disabled && this.selectable) {\n this.selected = !this.selected\n this.emit('dds-select', { value: this.value, selected: this.selected })\n }\n }\n\n private handleRemove(event: Event): void {\n event.stopPropagation()\n if (!this.disabled) {\n this.emit('dds-remove', { value: this.value ?? '' })\n }\n }\n\n private handleKeyDown(event: KeyboardEvent): void {\n if (this.disabled) {\n return\n }\n\n if (\n (event.key === 'Delete' || event.key === 'Backspace') &&\n this.removeable\n ) {\n event.preventDefault()\n event.stopPropagation()\n this.handleRemove(event)\n }\n\n if (event.key === 'Enter' && this.selectable) {\n event.preventDefault()\n event.stopPropagation()\n this.handleClick(event)\n }\n }\n\n render() {\n return html`\n <div\n part=\"base\"\n class=${clsx('chip', `chip--${this.chipSize}`, {\n 'chip--selected': this.selectable && this.selected,\n 'chip--disabled': this.disabled,\n 'chip--selectable': this.selectable,\n })}\n role=\"button\"\n tabindex=${this.disabled ? '-1' : '0'}\n aria-disabled=${this.disabled}\n aria-pressed=${this.selected}\n aria-label=${this.removeable\n ? this.getRemovableAriaLabel()\n : (this.ariaLabel ?? nothing)}\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}>\n <dap-ds-stack direction=\"row\" spacing=\"200\" part=\"content-container\">\n <slot part=\"content\" @slotchange=${this.handleSlotChange}></slot>\n ${this.removeable\n ? html`<dap-ds-icon-button\n icon=\"close-line\"\n part=\"remove-button\"\n data-testid=${this.removeButtonTestId}\n exportparts=\"base:remove-icon-base, icon:remove-icon, icon-base:remove-icon-base-base\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n ?disabled=${this.disabled}\n size=\"sm\"\n aria-label=${this.deleteAriaLabel ?? t('chip.remove')}\n @click=${this.handleRemove}></dap-ds-icon-button>`\n : nothing}\n </dap-ds-stack>\n </div>\n `\n }\n}\n"],"names":["ChipBaseWithSized","SizedMixin","DdsElement","_DapDSChip","s","nodes","node","_a","_b","text","removableText","t","changedProperties","event","html","clsx","nothing","DapDSStack","DapDSIconButton","unsafeCSS","styles","DapDSChip","__decorateClass","property","queryAssignedNodes","state"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chip.component.js","sources":["../../../src/components/chip/chip.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { nothing, unsafeCSS } from 'lit'\nimport { property, queryAssignedNodes, state } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { t } from '@/localization/localization'\n\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport { SizedMixin } from '../../internal/mixin/sizedMixin'\nimport DapDSIconButton from '../icon-button/icon-button.component'\nimport DapDSStack from '../stack/stack.component'\nimport styles from './chip.scss?inline'\n\nconst ChipBaseWithSized = SizedMixin(DdsElement)\n\nexport type ChipSize = 'sm' | 'lg'\n\n/**\n * `dap-ds-chip`\n * @summary A chip is a small status descriptor for UI elements.\n * @element dap-ds-chip\n * @title - Chip\n *\n * @property { 'sm' | 'lg' } size - The size of the chip. Default is `sm`.\n * @property {string} sizeMap - Responsive size map (e.g. \"md:lg\").\n *\n * @event {{ value: string }} dds-remove - Fired when the chip is removed\n * @event {{ value?: string, selected: boolean }} dds-select - Fired when the chip is selected\n *\n * @csspart base - The base part\n * @csspart content-container - The container for the content\n * @csspart remove-button - The remove button\n * @csspart remove-icon - The icon of the remove icon\n * @csspart remove-icon-base - The base of the remove icon\n * @csspart remove-icon-base-base - The base of the remove icon base\n * @csspart content - The content slot of the chip.\n *\n * @cssproperty --dds-chip-border - Border of the chip (default: var(--dds-border-width-base) solid var(--dds-transparent-black-base))\n * @cssproperty --dds-chip-border-radius - Border radius of the chip (default: var(--dds-radius-small))\n * @cssproperty --dds-chip-font-weight - Font weight of the chip (default: var(--dds-font-weight-bold))\n * @cssproperty --dds-chip-line-height - Line height of the chip (default: 1.5)\n * @cssproperty --dds-chip-transition - Transition timing for chip interactions (default: all 0.2s ease-in-out)\n * @cssproperty --dds-chip-padding-sm - Padding for small chip size (default: var(--dds-spacing-100) var(--dds-spacing-200))\n * @cssproperty --dds-chip-padding-lg - Padding for large chip size (default: var(--dds-spacing-200) var(--dds-spacing-300))\n * @cssproperty --dds-chip-font-size-sm - Font size for small chip size (default: var(--dds-font-xs))\n * @cssproperty --dds-chip-font-size-lg - Font size for large chip size (default: var(--dds-font-xs))\n * @cssproperty --dds-chip-background-color - Background color of the chip (default: var(--dds-background-neutral-base))\n * @cssproperty --dds-chip-text-color - Text color of the chip (default: var(--dds-text-neutral-base))\n * @cssproperty --dds-chip-hover-background-color - Background color of the chip on hover (default: var(--dds-background-neutral-medium))\n * @cssproperty --dds-chip-active-background-color - Background color of the chip when active (default: var(--dds-background-neutral-strong))\n * @cssproperty --dds-chip-selected-background-color - Background color of the selected chip (default: var(--dds-background-brand-medium))\n * @cssproperty --dds-chip-selected-text-color - Text color of the selected chip (default: var(--dds-text-brand-subtle))\n * @cssproperty --dds-chip-selected-border-color - Border color of the selected chip (default: var(--dds-border-brand-base))\n * @cssproperty --dds-chip-disabled-background-color - Background color of the disabled chip (default: var(--dds-background-neutral-medium))\n * @cssproperty --dds-chip-disabled-text-color - Text color of the disabled chip (default: var(--dds-text-neutral-subtle))\n *\n */\nexport default class DapDSChip extends ChipBaseWithSized {\n static tagName = 'dap-ds-chip'\n\n static dependencies = {\n 'dap-ds-stack': DapDSStack,\n 'dap-ds-icon-button': DapDSIconButton,\n }\n\n /** Maps effectiveSize from SizedMixin to the chip's two visual sizes (sm | lg). */\n private get chipSize(): ChipSize {\n const s = this.effectiveSize\n return s === 'lg' || s === 'md' ? 'lg' : 'sm'\n }\n\n /** Whether the chip is removeable */\n @property({ type: Boolean }) removeable = false\n\n /** Whether the chip is selectable */\n @property({ type: Boolean }) selectable = false\n\n /** Whether the chip is selected */\n @property({ type: Boolean, reflect: true }) selected = false\n\n /** Whether the chip is disabled */\n @property({ type: Boolean, reflect: true }) disabled = false\n\n /** The value of the chip */\n @property({ type: String }) value?: string\n\n /** The aria label for the delete button */\n @property({ type: String }) deleteAriaLabel?: string\n\n /** `data-testid` for the remove button. */\n @property() removeButtonTestId = 'chip-remove-button'\n\n @queryAssignedNodes({ slot: '', flatten: true })\n private _slotNodes!: Node[]\n\n @state() private _slotTextContent = ''\n\n static readonly styles = unsafeCSS(styles)\n\n /**\n * Gets the text content from the slot nodes\n */\n private extractSlotTextContent(nodes: Node[]): string {\n if (!nodes || nodes.length === 0) return ''\n return nodes\n .map(node => {\n if (node.nodeType === Node.TEXT_NODE) {\n return node.textContent?.trim() || ''\n }\n if (node.nodeType === Node.ELEMENT_NODE) {\n return (node as Element).textContent?.trim() || ''\n }\n return ''\n })\n .filter(text => text.length > 0)\n .join(' ')\n }\n\n /**\n * Handles slot content changes\n */\n private handleSlotChange(): void {\n if (this._slotNodes) {\n this._slotTextContent = this.extractSlotTextContent(this._slotNodes)\n }\n }\n\n /**\n * Gets the aria-label for the chip when removable\n */\n private getRemovableAriaLabel(): string {\n const removableText = t('chip.removable')\n return this._slotTextContent\n ? `${this._slotTextContent}, ${removableText}`\n : removableText\n }\n\n updated(changedProperties: Map<string, unknown>) {\n super.updated(changedProperties)\n\n // Update slot text content when slot nodes are available\n if (this._slotNodes && this._slotNodes.length > 0) {\n this.handleSlotChange()\n }\n\n // Prevent removeable and selectable from being enabled together\n if (\n changedProperties.has('removeable') ||\n changedProperties.has('selectable')\n ) {\n if (this.removeable && this.selectable) {\n console.warn(\n 'Chip cannot be both removeable and selectable at the same time.',\n )\n // Disable selectable if removeable is set, or vice versa\n if (changedProperties.has('removeable') && this.removeable) {\n this.selectable = false\n } else if (changedProperties.has('selectable') && this.selectable) {\n this.removeable = false\n }\n }\n }\n }\n\n private handleClick(event: Event): void {\n event.stopPropagation()\n if (!this.disabled && this.selectable) {\n this.selected = !this.selected\n this.emit('dds-select', { value: this.value, selected: this.selected })\n }\n }\n\n private handleRemove(event: Event): void {\n event.stopPropagation()\n if (!this.disabled) {\n this.emit('dds-remove', { value: this.value ?? '' })\n }\n }\n\n private handleKeyDown(event: KeyboardEvent): void {\n if (this.disabled) {\n return\n }\n\n if (\n (event.key === 'Delete' || event.key === 'Backspace') &&\n this.removeable\n ) {\n event.preventDefault()\n event.stopPropagation()\n this.handleRemove(event)\n }\n\n if (event.key === 'Enter' && this.selectable) {\n event.preventDefault()\n event.stopPropagation()\n this.handleClick(event)\n }\n }\n\n render() {\n return html`\n <div\n part=\"base\"\n class=${clsx('chip', `chip--${this.chipSize}`, {\n 'chip--selected': this.selectable && this.selected,\n 'chip--disabled': this.disabled,\n 'chip--selectable': this.selectable,\n })}\n role=\"button\"\n tabindex=${this.disabled ? '-1' : '0'}\n aria-disabled=${this.disabled}\n aria-pressed=${this.selected}\n aria-label=${this.removeable\n ? this.getRemovableAriaLabel()\n : (this.ariaLabel ?? nothing)}\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}>\n <dap-ds-stack direction=\"row\" spacing=\"200\" part=\"content-container\">\n <slot part=\"content\" @slotchange=${this.handleSlotChange}></slot>\n ${this.removeable\n ? html`<dap-ds-icon-button\n icon=\"close-line\"\n part=\"remove-button\"\n data-testid=${this.removeButtonTestId}\n exportparts=\"base:remove-icon-base, icon:remove-icon, icon-base:remove-icon-base-base\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n ?disabled=${this.disabled}\n size=\"sm\"\n aria-label=${this.deleteAriaLabel ?? t('chip.remove')}\n @click=${this.handleRemove}></dap-ds-icon-button>`\n : nothing}\n </dap-ds-stack>\n </div>\n `\n }\n}\n"],"names":["ChipBaseWithSized","SizedMixin","DdsElement","_DapDSChip","s","nodes","node","_a","_b","text","removableText","t","changedProperties","event","html","clsx","nothing","DapDSStack","DapDSIconButton","unsafeCSS","styles","DapDSChip","__decorateClass","property","queryAssignedNodes","state"],"mappings":"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"}
|