@carbon/web-components 2.49.0 → 2.50.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +278 -228
- package/es/components/accordion/accordion-item-skeleton.js +3 -3
- package/es/components/accordion/accordion-item-skeleton.js.map +1 -1
- package/es/components/accordion/accordion-item.js +3 -3
- package/es/components/accordion/accordion-item.js.map +1 -1
- package/es/components/accordion/accordion-skeleton.js +3 -3
- package/es/components/accordion/accordion-skeleton.js.map +1 -1
- package/es/components/accordion/accordion.js +2 -2
- package/es/components/accordion/accordion.js.map +1 -1
- package/es/components/ai-label/ai-label-action-button.js +2 -2
- package/es/components/ai-label/ai-label-action-button.js.map +1 -1
- package/es/components/ai-label/ai-label.js +3 -3
- package/es/components/ai-label/ai-label.js.map +1 -1
- package/es/components/ai-skeleton/ai-skeleton-icon.js +2 -2
- package/es/components/ai-skeleton/ai-skeleton-icon.js.map +1 -1
- package/es/components/ai-skeleton/ai-skeleton-placeholder.js +2 -2
- package/es/components/ai-skeleton/ai-skeleton-placeholder.js.map +1 -1
- package/es/components/ai-skeleton/ai-skeleton-text.js +2 -2
- package/es/components/ai-skeleton/ai-skeleton-text.js.map +1 -1
- package/es/components/badge-indicator/badge-indicator.js +2 -2
- package/es/components/badge-indicator/badge-indicator.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb-item.d.ts +1 -1
- package/es/components/breadcrumb/breadcrumb-item.js +15 -12
- package/es/components/breadcrumb/breadcrumb-item.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb-link.js +2 -2
- package/es/components/breadcrumb/breadcrumb-link.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb-overflow-menu.js +3 -3
- package/es/components/breadcrumb/breadcrumb-overflow-menu.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb-skeleton.js +2 -2
- package/es/components/breadcrumb/breadcrumb-skeleton.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb.js +2 -2
- package/es/components/breadcrumb/breadcrumb.js.map +1 -1
- package/es/components/button/button-set.js +2 -2
- package/es/components/button/button-set.js.map +1 -1
- package/es/components/button/button-skeleton.js +3 -2
- package/es/components/button/button-skeleton.js.map +1 -1
- package/es/components/button/button.d.ts +14 -16
- package/es/components/button/button.js +27 -24
- package/es/components/button/button.js.map +1 -1
- package/es/components/button/button.scss.js +1 -1
- package/es/components/chat-button/chat-button-skeleton.js +2 -2
- package/es/components/chat-button/chat-button-skeleton.js.map +1 -1
- package/es/components/chat-button/chat-button.js +2 -2
- package/es/components/chat-button/chat-button.js.map +1 -1
- package/es/components/checkbox/checkbox-group.js +3 -3
- package/es/components/checkbox/checkbox-group.js.map +1 -1
- package/es/components/checkbox/checkbox-skeleton.js +2 -2
- package/es/components/checkbox/checkbox-skeleton.js.map +1 -1
- package/es/components/checkbox/checkbox.js +1 -1
- package/es/components/code-snippet/code-snippet-skeleton.js +2 -2
- package/es/components/code-snippet/code-snippet-skeleton.js.map +1 -1
- package/es/components/code-snippet/code-snippet.js +3 -3
- package/es/components/code-snippet/code-snippet.js.map +1 -1
- package/es/components/combo-box/combo-box-item.js +2 -2
- package/es/components/combo-box/combo-box-item.js.map +1 -1
- package/es/components/combo-box/combo-box.js +16 -8
- package/es/components/combo-box/combo-box.js.map +1 -1
- package/es/components/combo-button/combo-button.js +3 -3
- package/es/components/combo-button/combo-button.js.map +1 -1
- package/es/components/contained-list/contained-list-description.js +2 -2
- package/es/components/contained-list/contained-list-description.js.map +1 -1
- package/es/components/contained-list/contained-list-item.js +2 -2
- package/es/components/contained-list/contained-list-item.js.map +1 -1
- package/es/components/contained-list/contained-list.js +2 -2
- package/es/components/contained-list/contained-list.js.map +1 -1
- package/es/components/copy/copy.js +2 -2
- package/es/components/copy/copy.js.map +1 -1
- package/es/components/copy-button/copy-button.js +3 -3
- package/es/components/copy-button/copy-button.js.map +1 -1
- package/es/components/data-table/table-batch-actions.js +2 -2
- package/es/components/data-table/table-batch-actions.js.map +1 -1
- package/es/components/data-table/table-body.js +2 -2
- package/es/components/data-table/table-body.js.map +1 -1
- package/es/components/data-table/table-cell-content.js +2 -2
- package/es/components/data-table/table-cell-content.js.map +1 -1
- package/es/components/data-table/table-cell.js +2 -2
- package/es/components/data-table/table-cell.js.map +1 -1
- package/es/components/data-table/table-expanded-row.js +2 -2
- package/es/components/data-table/table-expanded-row.js.map +1 -1
- package/es/components/data-table/table-head.js +2 -2
- package/es/components/data-table/table-head.js.map +1 -1
- package/es/components/data-table/table-header-cell.js +3 -3
- package/es/components/data-table/table-header-cell.js.map +1 -1
- package/es/components/data-table/table-header-description.js +2 -2
- package/es/components/data-table/table-header-description.js.map +1 -1
- package/es/components/data-table/table-header-row.js +2 -2
- package/es/components/data-table/table-header-row.js.map +1 -1
- package/es/components/data-table/table-header-title.js +2 -2
- package/es/components/data-table/table-header-title.js.map +1 -1
- package/es/components/data-table/table-row.js +1 -1
- package/es/components/data-table/table-skeleton.js +2 -2
- package/es/components/data-table/table-skeleton.js.map +1 -1
- package/es/components/data-table/table-toolbar-content.js +2 -2
- package/es/components/data-table/table-toolbar-content.js.map +1 -1
- package/es/components/data-table/table-toolbar-search.js +2 -2
- package/es/components/data-table/table-toolbar-search.js.map +1 -1
- package/es/components/data-table/table-toolbar.js +2 -2
- package/es/components/data-table/table-toolbar.js.map +1 -1
- package/es/components/data-table/table.js +2 -2
- package/es/components/data-table/table.js.map +1 -1
- package/es/components/date-picker/date-picker-input-skeleton.js +2 -2
- package/es/components/date-picker/date-picker-input-skeleton.js.map +1 -1
- package/es/components/date-picker/date-picker-input.js +1 -1
- package/es/components/date-picker/date-picker.js +2 -2
- package/es/components/date-picker/date-picker.js.map +1 -1
- package/es/components/date-picker/icon-plugin.js +1 -1
- package/es/components/dropdown/dropdown-item.js +1 -1
- package/es/components/dropdown/dropdown-skeleton.js +2 -2
- package/es/components/dropdown/dropdown-skeleton.js.map +1 -1
- package/es/components/dropdown/dropdown.js +1 -1
- package/es/components/feature-flags/index.d.ts +1 -1
- package/es/components/feature-flags/index.js +7 -4
- package/es/components/feature-flags/index.js.map +1 -1
- package/es/components/file-uploader/demo-file-uploader.js +2 -2
- package/es/components/file-uploader/demo-file-uploader.js.map +1 -1
- package/es/components/file-uploader/file-uploader-button.js +2 -2
- package/es/components/file-uploader/file-uploader-button.js.map +1 -1
- package/es/components/file-uploader/file-uploader-drop-container.js +2 -2
- package/es/components/file-uploader/file-uploader-drop-container.js.map +1 -1
- package/es/components/file-uploader/file-uploader-item.js +3 -3
- package/es/components/file-uploader/file-uploader-item.js.map +1 -1
- package/es/components/file-uploader/file-uploader-skeleton.js +2 -2
- package/es/components/file-uploader/file-uploader-skeleton.js.map +1 -1
- package/es/components/file-uploader/file-uploader.js +2 -2
- package/es/components/file-uploader/file-uploader.js.map +1 -1
- package/es/components/floating-menu/defs.d.ts +10 -2
- package/es/components/floating-menu/defs.js +9 -1
- package/es/components/floating-menu/defs.js.map +1 -1
- package/es/components/floating-menu/floating-menu.d.ts +31 -1
- package/es/components/floating-menu/floating-menu.js +110 -43
- package/es/components/floating-menu/floating-menu.js.map +1 -1
- package/es/components/fluid-number-input/fluid-number-input-skeleton.js +2 -2
- package/es/components/fluid-number-input/fluid-number-input-skeleton.js.map +1 -1
- package/es/components/fluid-number-input/fluid-number-input.js +2 -2
- package/es/components/fluid-number-input/fluid-number-input.js.map +1 -1
- package/es/components/fluid-search/fluid-search-skeleton.js +2 -2
- package/es/components/fluid-search/fluid-search-skeleton.js.map +1 -1
- package/es/components/fluid-search/fluid-search.js +2 -2
- package/es/components/fluid-search/fluid-search.js.map +1 -1
- package/es/components/fluid-select/fluid-select-skeleton.js +2 -2
- package/es/components/fluid-select/fluid-select-skeleton.js.map +1 -1
- package/es/components/fluid-text-input/fluid-text-input-skeleton.js +2 -2
- package/es/components/fluid-text-input/fluid-text-input-skeleton.js.map +1 -1
- package/es/components/fluid-text-input/fluid-text-input.js +2 -2
- package/es/components/fluid-text-input/fluid-text-input.js.map +1 -1
- package/es/components/fluid-textarea/fluid-textarea-skeleton.js +2 -2
- package/es/components/fluid-textarea/fluid-textarea-skeleton.js.map +1 -1
- package/es/components/fluid-textarea/fluid-textarea.js +2 -2
- package/es/components/fluid-textarea/fluid-textarea.js.map +1 -1
- package/es/components/fluid-time-picker/fluid-time-picker-select.js +2 -2
- package/es/components/fluid-time-picker/fluid-time-picker-select.js.map +1 -1
- package/es/components/fluid-time-picker/fluid-time-picker-skeleton.js +2 -2
- package/es/components/fluid-time-picker/fluid-time-picker-skeleton.js.map +1 -1
- package/es/components/fluid-time-picker/fluid-time-picker.js +3 -3
- package/es/components/fluid-time-picker/fluid-time-picker.js.map +1 -1
- package/es/components/form/form-item.js +2 -2
- package/es/components/form/form-item.js.map +1 -1
- package/es/components/form/form.js +2 -2
- package/es/components/form/form.js.map +1 -1
- package/es/components/form-group/form-group.js +2 -2
- package/es/components/form-group/form-group.js.map +1 -1
- package/es/components/grid/column-hang.js +2 -2
- package/es/components/grid/column-hang.js.map +1 -1
- package/es/components/grid/column.js +2 -2
- package/es/components/grid/column.js.map +1 -1
- package/es/components/grid/grid.js +2 -2
- package/es/components/grid/grid.js.map +1 -1
- package/es/components/heading/heading.js +2 -2
- package/es/components/heading/heading.js.map +1 -1
- package/es/components/icon/icon.js +2 -2
- package/es/components/icon/icon.js.map +1 -1
- package/es/components/icon-indicator/icon-indicator.js +3 -3
- package/es/components/icon-indicator/icon-indicator.js.map +1 -1
- package/es/components/inline-loading/inline-loading.js +3 -3
- package/es/components/inline-loading/inline-loading.js.map +1 -1
- package/es/components/layer/layer.js +2 -2
- package/es/components/layer/layer.js.map +1 -1
- package/es/components/list/list-item.js +2 -2
- package/es/components/list/list-item.js.map +1 -1
- package/es/components/list/ordered-list.js +2 -2
- package/es/components/list/ordered-list.js.map +1 -1
- package/es/components/loading/loading.js +2 -2
- package/es/components/loading/loading.js.map +1 -1
- package/es/components/menu/menu-item-divider.js +2 -2
- package/es/components/menu/menu-item-divider.js.map +1 -1
- package/es/components/menu/menu-item-group.js +2 -2
- package/es/components/menu/menu-item-group.js.map +1 -1
- package/es/components/menu/menu-item-radio-group.js +2 -2
- package/es/components/menu/menu-item-radio-group.js.map +1 -1
- package/es/components/menu/menu-item-selectable.js +2 -2
- package/es/components/menu/menu-item-selectable.js.map +1 -1
- package/es/components/menu/menu-item.js +3 -3
- package/es/components/menu/menu-item.js.map +1 -1
- package/es/components/menu/menu.js +2 -2
- package/es/components/menu/menu.js.map +1 -1
- package/es/components/menu-button/menu-button.js +3 -3
- package/es/components/menu-button/menu-button.js.map +1 -1
- package/es/components/modal/modal-body-content.js +2 -2
- package/es/components/modal/modal-body-content.js.map +1 -1
- package/es/components/modal/modal-body.js +2 -2
- package/es/components/modal/modal-body.js.map +1 -1
- package/es/components/modal/modal-close-button.js +3 -3
- package/es/components/modal/modal-close-button.js.map +1 -1
- package/es/components/modal/modal-footer-button.js +2 -2
- package/es/components/modal/modal-footer-button.js.map +1 -1
- package/es/components/modal/modal-footer.js +2 -2
- package/es/components/modal/modal-footer.js.map +1 -1
- package/es/components/modal/modal-header.js +2 -2
- package/es/components/modal/modal-header.js.map +1 -1
- package/es/components/modal/modal-heading.js +2 -2
- package/es/components/modal/modal-heading.js.map +1 -1
- package/es/components/modal/modal-label.js +2 -2
- package/es/components/modal/modal-label.js.map +1 -1
- package/es/components/modal/modal.js +2 -2
- package/es/components/modal/modal.js.map +1 -1
- package/es/components/multi-select/multi-select-item.js +2 -2
- package/es/components/multi-select/multi-select-item.js.map +1 -1
- package/es/components/multi-select/multi-select.d.ts +9 -0
- package/es/components/multi-select/multi-select.js +58 -11
- package/es/components/multi-select/multi-select.js.map +1 -1
- package/es/components/notification/actionable-notification-button.js +2 -2
- package/es/components/notification/actionable-notification-button.js.map +1 -1
- package/es/components/notification/actionable-notification.js +1 -1
- package/es/components/notification/callout-notification.js +3 -3
- package/es/components/notification/callout-notification.js.map +1 -1
- package/es/components/notification/inline-notification.js +1 -1
- package/es/components/notification/toast-notification.js +2 -2
- package/es/components/notification/toast-notification.js.map +1 -1
- package/es/components/number-input/number-input.js +1 -1
- package/es/components/overflow-menu/overflow-menu-body.d.ts +18 -2
- package/es/components/overflow-menu/overflow-menu-body.js +25 -4
- package/es/components/overflow-menu/overflow-menu-body.js.map +1 -1
- package/es/components/overflow-menu/overflow-menu-item.js +2 -2
- package/es/components/overflow-menu/overflow-menu-item.js.map +1 -1
- package/es/components/overflow-menu/overflow-menu.scss.js +1 -1
- package/es/components/page-header/page-header-breadcrumb.js +2 -2
- package/es/components/page-header/page-header-breadcrumb.js.map +1 -1
- package/es/components/page-header/page-header-content-text.js +2 -2
- package/es/components/page-header/page-header-content-text.js.map +1 -1
- package/es/components/page-header/page-header-content.js +2 -2
- package/es/components/page-header/page-header-content.js.map +1 -1
- package/es/components/page-header/page-header-hero-image.js +2 -2
- package/es/components/page-header/page-header-hero-image.js.map +1 -1
- package/es/components/page-header/page-header-tabs.js +2 -2
- package/es/components/page-header/page-header-tabs.js.map +1 -1
- package/es/components/page-header/page-header.js +2 -2
- package/es/components/page-header/page-header.js.map +1 -1
- package/es/components/pagination/pagination.js +4 -4
- package/es/components/pagination/pagination.js.map +1 -1
- package/es/components/pagination-nav/pagination-nav.js +3 -3
- package/es/components/pagination-nav/pagination-nav.js.map +1 -1
- package/es/components/password-input/password-input-skeleton.js +2 -2
- package/es/components/password-input/password-input-skeleton.js.map +1 -1
- package/es/components/password-input/password-input.js +3 -3
- package/es/components/password-input/password-input.js.map +1 -1
- package/es/components/progress-bar/progress-bar.js +3 -3
- package/es/components/progress-bar/progress-bar.js.map +1 -1
- package/es/components/progress-indicator/progress-indicator-skeleton.js +2 -2
- package/es/components/progress-indicator/progress-indicator-skeleton.js.map +1 -1
- package/es/components/progress-indicator/progress-indicator.js +2 -2
- package/es/components/progress-indicator/progress-indicator.js.map +1 -1
- package/es/components/progress-indicator/progress-step-skeleton.js +3 -3
- package/es/components/progress-indicator/progress-step-skeleton.js.map +1 -1
- package/es/components/progress-indicator/progress-step.js +3 -3
- package/es/components/progress-indicator/progress-step.js.map +1 -1
- package/es/components/radio-button/radio-button-group.js +3 -3
- package/es/components/radio-button/radio-button-group.js.map +1 -1
- package/es/components/radio-button/radio-button-skeleton.js +2 -2
- package/es/components/radio-button/radio-button-skeleton.js.map +1 -1
- package/es/components/radio-button/radio-button.js +2 -2
- package/es/components/radio-button/radio-button.js.map +1 -1
- package/es/components/search/search.js +1 -1
- package/es/components/select/select-item-group.js +2 -2
- package/es/components/select/select-item-group.js.map +1 -1
- package/es/components/select/select-item.js +2 -2
- package/es/components/select/select-item.js.map +1 -1
- package/es/components/select/select.js +1 -1
- package/es/components/shape-indicator/shape-indicator.js +3 -3
- package/es/components/shape-indicator/shape-indicator.js.map +1 -1
- package/es/components/side-panel/side-panel.js +3 -3
- package/es/components/side-panel/side-panel.js.map +1 -1
- package/es/components/skeleton-icon/skeleton-icon.js +2 -2
- package/es/components/skeleton-icon/skeleton-icon.js.map +1 -1
- package/es/components/skeleton-placeholder/skeleton-placeholder.js +2 -2
- package/es/components/skeleton-placeholder/skeleton-placeholder.js.map +1 -1
- package/es/components/skeleton-text/skeleton-text.js +2 -2
- package/es/components/skeleton-text/skeleton-text.js.map +1 -1
- package/es/components/skip-to-content/skip-to-content.js +2 -2
- package/es/components/skip-to-content/skip-to-content.js.map +1 -1
- package/es/components/slider/slider-input.js +3 -3
- package/es/components/slider/slider-input.js.map +1 -1
- package/es/components/slider/slider-skeleton.js +2 -2
- package/es/components/slider/slider-skeleton.js.map +1 -1
- package/es/components/slider/slider.js +2 -2
- package/es/components/slider/slider.js.map +1 -1
- package/es/components/slug/slug-action-button.js +2 -2
- package/es/components/slug/slug-action-button.js.map +1 -1
- package/es/components/slug/slug.js +3 -3
- package/es/components/slug/slug.js.map +1 -1
- package/es/components/stack/stack.js +2 -2
- package/es/components/stack/stack.js.map +1 -1
- package/es/components/structured-list/structured-list-body.js +2 -2
- package/es/components/structured-list/structured-list-body.js.map +1 -1
- package/es/components/structured-list/structured-list-cell.js +2 -2
- package/es/components/structured-list/structured-list-cell.js.map +1 -1
- package/es/components/structured-list/structured-list-head.js +2 -2
- package/es/components/structured-list/structured-list-head.js.map +1 -1
- package/es/components/structured-list/structured-list-header-cell-skeleton.js +2 -2
- package/es/components/structured-list/structured-list-header-cell-skeleton.js.map +1 -1
- package/es/components/structured-list/structured-list-header-cell.js +2 -2
- package/es/components/structured-list/structured-list-header-cell.js.map +1 -1
- package/es/components/structured-list/structured-list-header-row.js +2 -2
- package/es/components/structured-list/structured-list-header-row.js.map +1 -1
- package/es/components/structured-list/structured-list-row.js +3 -3
- package/es/components/structured-list/structured-list-row.js.map +1 -1
- package/es/components/structured-list/structured-list.js +2 -2
- package/es/components/structured-list/structured-list.js.map +1 -1
- package/es/components/tabs/tab-skeleton.js +2 -2
- package/es/components/tabs/tab-skeleton.js.map +1 -1
- package/es/components/tabs/tab.js +2 -2
- package/es/components/tabs/tab.js.map +1 -1
- package/es/components/tabs/tabs-skeleton.js +2 -2
- package/es/components/tabs/tabs-skeleton.js.map +1 -1
- package/es/components/tabs/tabs.js +3 -3
- package/es/components/tabs/tabs.js.map +1 -1
- package/es/components/tabs/tabs.scss.js +1 -1
- package/es/components/tag/dismissible-tag.js +3 -3
- package/es/components/tag/dismissible-tag.js.map +1 -1
- package/es/components/tag/operational-tag.js +2 -2
- package/es/components/tag/operational-tag.js.map +1 -1
- package/es/components/tag/selectable-tag.js +2 -2
- package/es/components/tag/selectable-tag.js.map +1 -1
- package/es/components/tag/tag-skeleton.js +2 -2
- package/es/components/tag/tag-skeleton.js.map +1 -1
- package/es/components/tag/tag.js +1 -1
- package/es/components/tearsheet/tearsheet.js +2 -2
- package/es/components/tearsheet/tearsheet.js.map +1 -1
- package/es/components/text-input/text-input.js +1 -1
- package/es/components/textarea/textarea.js +1 -1
- package/es/components/tile/clickable-tile.js +3 -3
- package/es/components/tile/clickable-tile.js.map +1 -1
- package/es/components/tile/expandable-tile.js +3 -3
- package/es/components/tile/expandable-tile.js.map +1 -1
- package/es/components/tile/radio-tile.js +3 -3
- package/es/components/tile/radio-tile.js.map +1 -1
- package/es/components/tile/selectable-tile.js +1 -1
- package/es/components/tile/tile-group.js +2 -2
- package/es/components/tile/tile-group.js.map +1 -1
- package/es/components/tile/tile.js +2 -2
- package/es/components/tile/tile.js.map +1 -1
- package/es/components/time-picker/time-picker-select.js +3 -3
- package/es/components/time-picker/time-picker-select.js.map +1 -1
- package/es/components/time-picker/time-picker.js +1 -1
- package/es/components/toggle/toggle-skeleton.js +2 -2
- package/es/components/toggle/toggle-skeleton.js.map +1 -1
- package/es/components/toggle/toggle.js +2 -2
- package/es/components/toggle/toggle.js.map +1 -1
- package/es/components/toggle-tip/toggletip.js +1 -1
- package/es/components/tooltip/definition-tooltip.js +2 -2
- package/es/components/tooltip/definition-tooltip.js.map +1 -1
- package/es/components/tooltip/tooltip-content.js +2 -2
- package/es/components/tooltip/tooltip-content.js.map +1 -1
- package/es/components/tooltip/tooltip.js +2 -2
- package/es/components/tooltip/tooltip.js.map +1 -1
- package/es/components/tree-view/tree-node.js +3 -3
- package/es/components/tree-view/tree-node.js.map +1 -1
- package/es/components/tree-view/tree-view.js +2 -2
- package/es/components/tree-view/tree-view.js.map +1 -1
- package/es/components/ui-shell/header-global-action.js +2 -2
- package/es/components/ui-shell/header-global-action.js.map +1 -1
- package/es/components/ui-shell/header-menu-button.js +3 -3
- package/es/components/ui-shell/header-menu-button.js.map +1 -1
- package/es/components/ui-shell/header-menu-item.js +2 -2
- package/es/components/ui-shell/header-menu-item.js.map +1 -1
- package/es/components/ui-shell/header-menu.js +3 -3
- package/es/components/ui-shell/header-menu.js.map +1 -1
- package/es/components/ui-shell/header-name.js +2 -2
- package/es/components/ui-shell/header-name.js.map +1 -1
- package/es/components/ui-shell/header-nav.js +2 -2
- package/es/components/ui-shell/header-nav.js.map +1 -1
- package/es/components/ui-shell/header-panel.js +2 -2
- package/es/components/ui-shell/header-panel.js.map +1 -1
- package/es/components/ui-shell/header-side-nav-items.js +2 -2
- package/es/components/ui-shell/header-side-nav-items.js.map +1 -1
- package/es/components/ui-shell/header.js +2 -2
- package/es/components/ui-shell/header.js.map +1 -1
- package/es/components/ui-shell/side-nav-divider.js +2 -2
- package/es/components/ui-shell/side-nav-divider.js.map +1 -1
- package/es/components/ui-shell/side-nav-items.js +2 -2
- package/es/components/ui-shell/side-nav-items.js.map +1 -1
- package/es/components/ui-shell/side-nav-link.js +2 -2
- package/es/components/ui-shell/side-nav-link.js.map +1 -1
- package/es/components/ui-shell/side-nav-menu-item.js +2 -2
- package/es/components/ui-shell/side-nav-menu-item.js.map +1 -1
- package/es/components/ui-shell/side-nav-menu.js +3 -3
- package/es/components/ui-shell/side-nav-menu.js.map +1 -1
- package/es/components/ui-shell/side-nav.js +2 -2
- package/es/components/ui-shell/side-nav.js.map +1 -1
- package/es/components/ui-shell/switcher-divider.js +2 -2
- package/es/components/ui-shell/switcher-divider.js.map +1 -1
- package/es/components/ui-shell/switcher-item.js +2 -2
- package/es/components/ui-shell/switcher-item.js.map +1 -1
- package/es/components/ui-shell/switcher.js +2 -2
- package/es/components/ui-shell/switcher.js.map +1 -1
- package/es/feature-flags/es/index.js +153 -144
- package/es/feature-flags/es/index.js.map +1 -1
- package/es-custom/components/accordion/accordion-item-skeleton.js +3 -3
- package/es-custom/components/accordion/accordion-item-skeleton.js.map +1 -1
- package/es-custom/components/accordion/accordion-item.js +3 -3
- package/es-custom/components/accordion/accordion-item.js.map +1 -1
- package/es-custom/components/accordion/accordion-skeleton.js +3 -3
- package/es-custom/components/accordion/accordion-skeleton.js.map +1 -1
- package/es-custom/components/accordion/accordion.js +2 -2
- package/es-custom/components/accordion/accordion.js.map +1 -1
- package/es-custom/components/ai-label/ai-label-action-button.js +2 -2
- package/es-custom/components/ai-label/ai-label-action-button.js.map +1 -1
- package/es-custom/components/ai-label/ai-label.js +3 -3
- package/es-custom/components/ai-label/ai-label.js.map +1 -1
- package/es-custom/components/ai-skeleton/ai-skeleton-icon.js +2 -2
- package/es-custom/components/ai-skeleton/ai-skeleton-icon.js.map +1 -1
- package/es-custom/components/ai-skeleton/ai-skeleton-placeholder.js +2 -2
- package/es-custom/components/ai-skeleton/ai-skeleton-placeholder.js.map +1 -1
- package/es-custom/components/ai-skeleton/ai-skeleton-text.js +2 -2
- package/es-custom/components/ai-skeleton/ai-skeleton-text.js.map +1 -1
- package/es-custom/components/badge-indicator/badge-indicator.js +2 -2
- package/es-custom/components/badge-indicator/badge-indicator.js.map +1 -1
- package/es-custom/components/breadcrumb/breadcrumb-item.d.ts +1 -1
- package/es-custom/components/breadcrumb/breadcrumb-item.js +15 -12
- package/es-custom/components/breadcrumb/breadcrumb-item.js.map +1 -1
- package/es-custom/components/breadcrumb/breadcrumb-link.js +2 -2
- package/es-custom/components/breadcrumb/breadcrumb-link.js.map +1 -1
- package/es-custom/components/breadcrumb/breadcrumb-overflow-menu.js +3 -3
- package/es-custom/components/breadcrumb/breadcrumb-overflow-menu.js.map +1 -1
- package/es-custom/components/breadcrumb/breadcrumb-skeleton.js +2 -2
- package/es-custom/components/breadcrumb/breadcrumb-skeleton.js.map +1 -1
- package/es-custom/components/breadcrumb/breadcrumb.js +2 -2
- package/es-custom/components/breadcrumb/breadcrumb.js.map +1 -1
- package/es-custom/components/button/button-set.js +2 -2
- package/es-custom/components/button/button-set.js.map +1 -1
- package/es-custom/components/button/button-skeleton.js +3 -2
- package/es-custom/components/button/button-skeleton.js.map +1 -1
- package/es-custom/components/button/button.d.ts +14 -16
- package/es-custom/components/button/button.js +27 -24
- package/es-custom/components/button/button.js.map +1 -1
- package/es-custom/components/button/button.scss.js +1 -1
- package/es-custom/components/chat-button/chat-button-skeleton.js +2 -2
- package/es-custom/components/chat-button/chat-button-skeleton.js.map +1 -1
- package/es-custom/components/chat-button/chat-button.js +2 -2
- package/es-custom/components/chat-button/chat-button.js.map +1 -1
- package/es-custom/components/checkbox/checkbox-group.js +3 -3
- package/es-custom/components/checkbox/checkbox-group.js.map +1 -1
- package/es-custom/components/checkbox/checkbox-skeleton.js +2 -2
- package/es-custom/components/checkbox/checkbox-skeleton.js.map +1 -1
- package/es-custom/components/checkbox/checkbox.js +1 -1
- package/es-custom/components/code-snippet/code-snippet-skeleton.js +2 -2
- package/es-custom/components/code-snippet/code-snippet-skeleton.js.map +1 -1
- package/es-custom/components/code-snippet/code-snippet.js +3 -3
- package/es-custom/components/code-snippet/code-snippet.js.map +1 -1
- package/es-custom/components/combo-box/combo-box-item.js +2 -2
- package/es-custom/components/combo-box/combo-box-item.js.map +1 -1
- package/es-custom/components/combo-box/combo-box.js +16 -8
- package/es-custom/components/combo-box/combo-box.js.map +1 -1
- package/es-custom/components/combo-button/combo-button.js +3 -3
- package/es-custom/components/combo-button/combo-button.js.map +1 -1
- package/es-custom/components/contained-list/contained-list-description.js +2 -2
- package/es-custom/components/contained-list/contained-list-description.js.map +1 -1
- package/es-custom/components/contained-list/contained-list-item.js +2 -2
- package/es-custom/components/contained-list/contained-list-item.js.map +1 -1
- package/es-custom/components/contained-list/contained-list.js +2 -2
- package/es-custom/components/contained-list/contained-list.js.map +1 -1
- package/es-custom/components/copy/copy.js +2 -2
- package/es-custom/components/copy/copy.js.map +1 -1
- package/es-custom/components/copy-button/copy-button.js +3 -3
- package/es-custom/components/copy-button/copy-button.js.map +1 -1
- package/es-custom/components/data-table/table-batch-actions.js +2 -2
- package/es-custom/components/data-table/table-batch-actions.js.map +1 -1
- package/es-custom/components/data-table/table-body.js +2 -2
- package/es-custom/components/data-table/table-body.js.map +1 -1
- package/es-custom/components/data-table/table-cell-content.js +2 -2
- package/es-custom/components/data-table/table-cell-content.js.map +1 -1
- package/es-custom/components/data-table/table-cell.js +2 -2
- package/es-custom/components/data-table/table-cell.js.map +1 -1
- package/es-custom/components/data-table/table-expanded-row.js +2 -2
- package/es-custom/components/data-table/table-expanded-row.js.map +1 -1
- package/es-custom/components/data-table/table-head.js +2 -2
- package/es-custom/components/data-table/table-head.js.map +1 -1
- package/es-custom/components/data-table/table-header-cell.js +3 -3
- package/es-custom/components/data-table/table-header-cell.js.map +1 -1
- package/es-custom/components/data-table/table-header-description.js +2 -2
- package/es-custom/components/data-table/table-header-description.js.map +1 -1
- package/es-custom/components/data-table/table-header-row.js +2 -2
- package/es-custom/components/data-table/table-header-row.js.map +1 -1
- package/es-custom/components/data-table/table-header-title.js +2 -2
- package/es-custom/components/data-table/table-header-title.js.map +1 -1
- package/es-custom/components/data-table/table-row.js +1 -1
- package/es-custom/components/data-table/table-skeleton.js +2 -2
- package/es-custom/components/data-table/table-skeleton.js.map +1 -1
- package/es-custom/components/data-table/table-toolbar-content.js +2 -2
- package/es-custom/components/data-table/table-toolbar-content.js.map +1 -1
- package/es-custom/components/data-table/table-toolbar-search.js +2 -2
- package/es-custom/components/data-table/table-toolbar-search.js.map +1 -1
- package/es-custom/components/data-table/table-toolbar.js +2 -2
- package/es-custom/components/data-table/table-toolbar.js.map +1 -1
- package/es-custom/components/data-table/table.js +2 -2
- package/es-custom/components/data-table/table.js.map +1 -1
- package/es-custom/components/date-picker/date-picker-input-skeleton.js +2 -2
- package/es-custom/components/date-picker/date-picker-input-skeleton.js.map +1 -1
- package/es-custom/components/date-picker/date-picker-input.js +1 -1
- package/es-custom/components/date-picker/date-picker.js +2 -2
- package/es-custom/components/date-picker/date-picker.js.map +1 -1
- package/es-custom/components/date-picker/icon-plugin.js +1 -1
- package/es-custom/components/dropdown/dropdown-item.js +1 -1
- package/es-custom/components/dropdown/dropdown-skeleton.js +2 -2
- package/es-custom/components/dropdown/dropdown-skeleton.js.map +1 -1
- package/es-custom/components/dropdown/dropdown.js +1 -1
- package/es-custom/components/feature-flags/index.d.ts +1 -1
- package/es-custom/components/feature-flags/index.js +7 -4
- package/es-custom/components/feature-flags/index.js.map +1 -1
- package/es-custom/components/file-uploader/demo-file-uploader.js +2 -2
- package/es-custom/components/file-uploader/demo-file-uploader.js.map +1 -1
- package/es-custom/components/file-uploader/file-uploader-button.js +2 -2
- package/es-custom/components/file-uploader/file-uploader-button.js.map +1 -1
- package/es-custom/components/file-uploader/file-uploader-drop-container.js +2 -2
- package/es-custom/components/file-uploader/file-uploader-drop-container.js.map +1 -1
- package/es-custom/components/file-uploader/file-uploader-item.js +3 -3
- package/es-custom/components/file-uploader/file-uploader-item.js.map +1 -1
- package/es-custom/components/file-uploader/file-uploader-skeleton.js +2 -2
- package/es-custom/components/file-uploader/file-uploader-skeleton.js.map +1 -1
- package/es-custom/components/file-uploader/file-uploader.js +2 -2
- package/es-custom/components/file-uploader/file-uploader.js.map +1 -1
- package/es-custom/components/floating-menu/defs.d.ts +10 -2
- package/es-custom/components/floating-menu/defs.js +9 -1
- package/es-custom/components/floating-menu/defs.js.map +1 -1
- package/es-custom/components/floating-menu/floating-menu.d.ts +31 -1
- package/es-custom/components/floating-menu/floating-menu.js +110 -43
- package/es-custom/components/floating-menu/floating-menu.js.map +1 -1
- package/es-custom/components/fluid-number-input/fluid-number-input-skeleton.js +2 -2
- package/es-custom/components/fluid-number-input/fluid-number-input-skeleton.js.map +1 -1
- package/es-custom/components/fluid-number-input/fluid-number-input.js +2 -2
- package/es-custom/components/fluid-number-input/fluid-number-input.js.map +1 -1
- package/es-custom/components/fluid-search/fluid-search-skeleton.js +2 -2
- package/es-custom/components/fluid-search/fluid-search-skeleton.js.map +1 -1
- package/es-custom/components/fluid-search/fluid-search.js +2 -2
- package/es-custom/components/fluid-search/fluid-search.js.map +1 -1
- package/es-custom/components/fluid-select/fluid-select-skeleton.js +2 -2
- package/es-custom/components/fluid-select/fluid-select-skeleton.js.map +1 -1
- package/es-custom/components/fluid-text-input/fluid-text-input-skeleton.js +2 -2
- package/es-custom/components/fluid-text-input/fluid-text-input-skeleton.js.map +1 -1
- package/es-custom/components/fluid-text-input/fluid-text-input.js +2 -2
- package/es-custom/components/fluid-text-input/fluid-text-input.js.map +1 -1
- package/es-custom/components/fluid-textarea/fluid-textarea-skeleton.js +2 -2
- package/es-custom/components/fluid-textarea/fluid-textarea-skeleton.js.map +1 -1
- package/es-custom/components/fluid-textarea/fluid-textarea.js +2 -2
- package/es-custom/components/fluid-textarea/fluid-textarea.js.map +1 -1
- package/es-custom/components/fluid-time-picker/fluid-time-picker-select.js +2 -2
- package/es-custom/components/fluid-time-picker/fluid-time-picker-select.js.map +1 -1
- package/es-custom/components/fluid-time-picker/fluid-time-picker-skeleton.js +2 -2
- package/es-custom/components/fluid-time-picker/fluid-time-picker-skeleton.js.map +1 -1
- package/es-custom/components/fluid-time-picker/fluid-time-picker.js +3 -3
- package/es-custom/components/fluid-time-picker/fluid-time-picker.js.map +1 -1
- package/es-custom/components/form/form-item.js +2 -2
- package/es-custom/components/form/form-item.js.map +1 -1
- package/es-custom/components/form/form.js +2 -2
- package/es-custom/components/form/form.js.map +1 -1
- package/es-custom/components/form-group/form-group.js +2 -2
- package/es-custom/components/form-group/form-group.js.map +1 -1
- package/es-custom/components/grid/column-hang.js +2 -2
- package/es-custom/components/grid/column-hang.js.map +1 -1
- package/es-custom/components/grid/column.js +2 -2
- package/es-custom/components/grid/column.js.map +1 -1
- package/es-custom/components/grid/grid.js +2 -2
- package/es-custom/components/grid/grid.js.map +1 -1
- package/es-custom/components/heading/heading.js +2 -2
- package/es-custom/components/heading/heading.js.map +1 -1
- package/es-custom/components/icon/icon.js +2 -2
- package/es-custom/components/icon/icon.js.map +1 -1
- package/es-custom/components/icon-indicator/icon-indicator.js +3 -3
- package/es-custom/components/icon-indicator/icon-indicator.js.map +1 -1
- package/es-custom/components/inline-loading/inline-loading.js +3 -3
- package/es-custom/components/inline-loading/inline-loading.js.map +1 -1
- package/es-custom/components/layer/layer.js +2 -2
- package/es-custom/components/layer/layer.js.map +1 -1
- package/es-custom/components/list/list-item.js +2 -2
- package/es-custom/components/list/list-item.js.map +1 -1
- package/es-custom/components/list/ordered-list.js +2 -2
- package/es-custom/components/list/ordered-list.js.map +1 -1
- package/es-custom/components/loading/loading.js +2 -2
- package/es-custom/components/loading/loading.js.map +1 -1
- package/es-custom/components/menu/menu-item-divider.js +2 -2
- package/es-custom/components/menu/menu-item-divider.js.map +1 -1
- package/es-custom/components/menu/menu-item-group.js +2 -2
- package/es-custom/components/menu/menu-item-group.js.map +1 -1
- package/es-custom/components/menu/menu-item-radio-group.js +2 -2
- package/es-custom/components/menu/menu-item-radio-group.js.map +1 -1
- package/es-custom/components/menu/menu-item-selectable.js +2 -2
- package/es-custom/components/menu/menu-item-selectable.js.map +1 -1
- package/es-custom/components/menu/menu-item.js +3 -3
- package/es-custom/components/menu/menu-item.js.map +1 -1
- package/es-custom/components/menu/menu.js +2 -2
- package/es-custom/components/menu/menu.js.map +1 -1
- package/es-custom/components/menu-button/menu-button.js +3 -3
- package/es-custom/components/menu-button/menu-button.js.map +1 -1
- package/es-custom/components/modal/modal-body-content.js +2 -2
- package/es-custom/components/modal/modal-body-content.js.map +1 -1
- package/es-custom/components/modal/modal-body.js +2 -2
- package/es-custom/components/modal/modal-body.js.map +1 -1
- package/es-custom/components/modal/modal-close-button.js +3 -3
- package/es-custom/components/modal/modal-close-button.js.map +1 -1
- package/es-custom/components/modal/modal-footer-button.js +2 -2
- package/es-custom/components/modal/modal-footer-button.js.map +1 -1
- package/es-custom/components/modal/modal-footer.js +2 -2
- package/es-custom/components/modal/modal-footer.js.map +1 -1
- package/es-custom/components/modal/modal-header.js +2 -2
- package/es-custom/components/modal/modal-header.js.map +1 -1
- package/es-custom/components/modal/modal-heading.js +2 -2
- package/es-custom/components/modal/modal-heading.js.map +1 -1
- package/es-custom/components/modal/modal-label.js +2 -2
- package/es-custom/components/modal/modal-label.js.map +1 -1
- package/es-custom/components/modal/modal.js +2 -2
- package/es-custom/components/modal/modal.js.map +1 -1
- package/es-custom/components/multi-select/multi-select-item.js +2 -2
- package/es-custom/components/multi-select/multi-select-item.js.map +1 -1
- package/es-custom/components/multi-select/multi-select.d.ts +9 -0
- package/es-custom/components/multi-select/multi-select.js +58 -11
- package/es-custom/components/multi-select/multi-select.js.map +1 -1
- package/es-custom/components/notification/actionable-notification-button.js +2 -2
- package/es-custom/components/notification/actionable-notification-button.js.map +1 -1
- package/es-custom/components/notification/actionable-notification.js +1 -1
- package/es-custom/components/notification/callout-notification.js +3 -3
- package/es-custom/components/notification/callout-notification.js.map +1 -1
- package/es-custom/components/notification/inline-notification.js +1 -1
- package/es-custom/components/notification/toast-notification.js +2 -2
- package/es-custom/components/notification/toast-notification.js.map +1 -1
- package/es-custom/components/number-input/number-input.js +1 -1
- package/es-custom/components/overflow-menu/overflow-menu-body.d.ts +18 -2
- package/es-custom/components/overflow-menu/overflow-menu-body.js +25 -4
- package/es-custom/components/overflow-menu/overflow-menu-body.js.map +1 -1
- package/es-custom/components/overflow-menu/overflow-menu-item.js +2 -2
- package/es-custom/components/overflow-menu/overflow-menu-item.js.map +1 -1
- package/es-custom/components/overflow-menu/overflow-menu.scss.js +1 -1
- package/es-custom/components/page-header/page-header-breadcrumb.js +2 -2
- package/es-custom/components/page-header/page-header-breadcrumb.js.map +1 -1
- package/es-custom/components/page-header/page-header-content-text.js +2 -2
- package/es-custom/components/page-header/page-header-content-text.js.map +1 -1
- package/es-custom/components/page-header/page-header-content.js +2 -2
- package/es-custom/components/page-header/page-header-content.js.map +1 -1
- package/es-custom/components/page-header/page-header-hero-image.js +2 -2
- package/es-custom/components/page-header/page-header-hero-image.js.map +1 -1
- package/es-custom/components/page-header/page-header-tabs.js +2 -2
- package/es-custom/components/page-header/page-header-tabs.js.map +1 -1
- package/es-custom/components/page-header/page-header.js +2 -2
- package/es-custom/components/page-header/page-header.js.map +1 -1
- package/es-custom/components/pagination/pagination.js +4 -4
- package/es-custom/components/pagination/pagination.js.map +1 -1
- package/es-custom/components/pagination-nav/pagination-nav.js +3 -3
- package/es-custom/components/pagination-nav/pagination-nav.js.map +1 -1
- package/es-custom/components/password-input/password-input-skeleton.js +2 -2
- package/es-custom/components/password-input/password-input-skeleton.js.map +1 -1
- package/es-custom/components/password-input/password-input.js +3 -3
- package/es-custom/components/password-input/password-input.js.map +1 -1
- package/es-custom/components/progress-bar/progress-bar.js +3 -3
- package/es-custom/components/progress-bar/progress-bar.js.map +1 -1
- package/es-custom/components/progress-indicator/progress-indicator-skeleton.js +2 -2
- package/es-custom/components/progress-indicator/progress-indicator-skeleton.js.map +1 -1
- package/es-custom/components/progress-indicator/progress-indicator.js +2 -2
- package/es-custom/components/progress-indicator/progress-indicator.js.map +1 -1
- package/es-custom/components/progress-indicator/progress-step-skeleton.js +3 -3
- package/es-custom/components/progress-indicator/progress-step-skeleton.js.map +1 -1
- package/es-custom/components/progress-indicator/progress-step.js +3 -3
- package/es-custom/components/progress-indicator/progress-step.js.map +1 -1
- package/es-custom/components/radio-button/radio-button-group.js +3 -3
- package/es-custom/components/radio-button/radio-button-group.js.map +1 -1
- package/es-custom/components/radio-button/radio-button-skeleton.js +2 -2
- package/es-custom/components/radio-button/radio-button-skeleton.js.map +1 -1
- package/es-custom/components/radio-button/radio-button.js +2 -2
- package/es-custom/components/radio-button/radio-button.js.map +1 -1
- package/es-custom/components/search/search.js +1 -1
- package/es-custom/components/select/select-item-group.js +2 -2
- package/es-custom/components/select/select-item-group.js.map +1 -1
- package/es-custom/components/select/select-item.js +2 -2
- package/es-custom/components/select/select-item.js.map +1 -1
- package/es-custom/components/select/select.js +1 -1
- package/es-custom/components/shape-indicator/shape-indicator.js +3 -3
- package/es-custom/components/shape-indicator/shape-indicator.js.map +1 -1
- package/es-custom/components/side-panel/side-panel.js +3 -3
- package/es-custom/components/side-panel/side-panel.js.map +1 -1
- package/es-custom/components/skeleton-icon/skeleton-icon.js +2 -2
- package/es-custom/components/skeleton-icon/skeleton-icon.js.map +1 -1
- package/es-custom/components/skeleton-placeholder/skeleton-placeholder.js +2 -2
- package/es-custom/components/skeleton-placeholder/skeleton-placeholder.js.map +1 -1
- package/es-custom/components/skeleton-text/skeleton-text.js +2 -2
- package/es-custom/components/skeleton-text/skeleton-text.js.map +1 -1
- package/es-custom/components/skip-to-content/skip-to-content.js +2 -2
- package/es-custom/components/skip-to-content/skip-to-content.js.map +1 -1
- package/es-custom/components/slider/slider-input.js +3 -3
- package/es-custom/components/slider/slider-input.js.map +1 -1
- package/es-custom/components/slider/slider-skeleton.js +2 -2
- package/es-custom/components/slider/slider-skeleton.js.map +1 -1
- package/es-custom/components/slider/slider.js +2 -2
- package/es-custom/components/slider/slider.js.map +1 -1
- package/es-custom/components/slug/slug-action-button.js +2 -2
- package/es-custom/components/slug/slug-action-button.js.map +1 -1
- package/es-custom/components/slug/slug.js +3 -3
- package/es-custom/components/slug/slug.js.map +1 -1
- package/es-custom/components/stack/stack.js +2 -2
- package/es-custom/components/stack/stack.js.map +1 -1
- package/es-custom/components/structured-list/structured-list-body.js +2 -2
- package/es-custom/components/structured-list/structured-list-body.js.map +1 -1
- package/es-custom/components/structured-list/structured-list-cell.js +2 -2
- package/es-custom/components/structured-list/structured-list-cell.js.map +1 -1
- package/es-custom/components/structured-list/structured-list-head.js +2 -2
- package/es-custom/components/structured-list/structured-list-head.js.map +1 -1
- package/es-custom/components/structured-list/structured-list-header-cell-skeleton.js +2 -2
- package/es-custom/components/structured-list/structured-list-header-cell-skeleton.js.map +1 -1
- package/es-custom/components/structured-list/structured-list-header-cell.js +2 -2
- package/es-custom/components/structured-list/structured-list-header-cell.js.map +1 -1
- package/es-custom/components/structured-list/structured-list-header-row.js +2 -2
- package/es-custom/components/structured-list/structured-list-header-row.js.map +1 -1
- package/es-custom/components/structured-list/structured-list-row.js +3 -3
- package/es-custom/components/structured-list/structured-list-row.js.map +1 -1
- package/es-custom/components/structured-list/structured-list.js +2 -2
- package/es-custom/components/structured-list/structured-list.js.map +1 -1
- package/es-custom/components/tabs/tab-skeleton.js +2 -2
- package/es-custom/components/tabs/tab-skeleton.js.map +1 -1
- package/es-custom/components/tabs/tab.js +2 -2
- package/es-custom/components/tabs/tab.js.map +1 -1
- package/es-custom/components/tabs/tabs-skeleton.js +2 -2
- package/es-custom/components/tabs/tabs-skeleton.js.map +1 -1
- package/es-custom/components/tabs/tabs.js +3 -3
- package/es-custom/components/tabs/tabs.js.map +1 -1
- package/es-custom/components/tabs/tabs.scss.js +1 -1
- package/es-custom/components/tag/dismissible-tag.js +3 -3
- package/es-custom/components/tag/dismissible-tag.js.map +1 -1
- package/es-custom/components/tag/operational-tag.js +2 -2
- package/es-custom/components/tag/operational-tag.js.map +1 -1
- package/es-custom/components/tag/selectable-tag.js +2 -2
- package/es-custom/components/tag/selectable-tag.js.map +1 -1
- package/es-custom/components/tag/tag-skeleton.js +2 -2
- package/es-custom/components/tag/tag-skeleton.js.map +1 -1
- package/es-custom/components/tag/tag.js +1 -1
- package/es-custom/components/tearsheet/tearsheet.js +2 -2
- package/es-custom/components/tearsheet/tearsheet.js.map +1 -1
- package/es-custom/components/text-input/text-input.js +1 -1
- package/es-custom/components/textarea/textarea.js +1 -1
- package/es-custom/components/tile/clickable-tile.js +3 -3
- package/es-custom/components/tile/clickable-tile.js.map +1 -1
- package/es-custom/components/tile/expandable-tile.js +3 -3
- package/es-custom/components/tile/expandable-tile.js.map +1 -1
- package/es-custom/components/tile/radio-tile.js +3 -3
- package/es-custom/components/tile/radio-tile.js.map +1 -1
- package/es-custom/components/tile/selectable-tile.js +1 -1
- package/es-custom/components/tile/tile-group.js +2 -2
- package/es-custom/components/tile/tile-group.js.map +1 -1
- package/es-custom/components/tile/tile.js +2 -2
- package/es-custom/components/tile/tile.js.map +1 -1
- package/es-custom/components/time-picker/time-picker-select.js +3 -3
- package/es-custom/components/time-picker/time-picker-select.js.map +1 -1
- package/es-custom/components/time-picker/time-picker.js +1 -1
- package/es-custom/components/toggle/toggle-skeleton.js +2 -2
- package/es-custom/components/toggle/toggle-skeleton.js.map +1 -1
- package/es-custom/components/toggle/toggle.js +2 -2
- package/es-custom/components/toggle/toggle.js.map +1 -1
- package/es-custom/components/toggle-tip/toggletip.js +1 -1
- package/es-custom/components/tooltip/definition-tooltip.js +2 -2
- package/es-custom/components/tooltip/definition-tooltip.js.map +1 -1
- package/es-custom/components/tooltip/tooltip-content.js +2 -2
- package/es-custom/components/tooltip/tooltip-content.js.map +1 -1
- package/es-custom/components/tooltip/tooltip.js +2 -2
- package/es-custom/components/tooltip/tooltip.js.map +1 -1
- package/es-custom/components/tree-view/tree-node.js +3 -3
- package/es-custom/components/tree-view/tree-node.js.map +1 -1
- package/es-custom/components/tree-view/tree-view.js +2 -2
- package/es-custom/components/tree-view/tree-view.js.map +1 -1
- package/es-custom/components/ui-shell/header-global-action.js +2 -2
- package/es-custom/components/ui-shell/header-global-action.js.map +1 -1
- package/es-custom/components/ui-shell/header-menu-button.js +3 -3
- package/es-custom/components/ui-shell/header-menu-button.js.map +1 -1
- package/es-custom/components/ui-shell/header-menu-item.js +2 -2
- package/es-custom/components/ui-shell/header-menu-item.js.map +1 -1
- package/es-custom/components/ui-shell/header-menu.js +3 -3
- package/es-custom/components/ui-shell/header-menu.js.map +1 -1
- package/es-custom/components/ui-shell/header-name.js +2 -2
- package/es-custom/components/ui-shell/header-name.js.map +1 -1
- package/es-custom/components/ui-shell/header-nav.js +2 -2
- package/es-custom/components/ui-shell/header-nav.js.map +1 -1
- package/es-custom/components/ui-shell/header-panel.js +2 -2
- package/es-custom/components/ui-shell/header-panel.js.map +1 -1
- package/es-custom/components/ui-shell/header-side-nav-items.js +2 -2
- package/es-custom/components/ui-shell/header-side-nav-items.js.map +1 -1
- package/es-custom/components/ui-shell/header.js +2 -2
- package/es-custom/components/ui-shell/header.js.map +1 -1
- package/es-custom/components/ui-shell/side-nav-divider.js +2 -2
- package/es-custom/components/ui-shell/side-nav-divider.js.map +1 -1
- package/es-custom/components/ui-shell/side-nav-items.js +2 -2
- package/es-custom/components/ui-shell/side-nav-items.js.map +1 -1
- package/es-custom/components/ui-shell/side-nav-link.js +2 -2
- package/es-custom/components/ui-shell/side-nav-link.js.map +1 -1
- package/es-custom/components/ui-shell/side-nav-menu-item.js +2 -2
- package/es-custom/components/ui-shell/side-nav-menu-item.js.map +1 -1
- package/es-custom/components/ui-shell/side-nav-menu.js +3 -3
- package/es-custom/components/ui-shell/side-nav-menu.js.map +1 -1
- package/es-custom/components/ui-shell/side-nav.js +2 -2
- package/es-custom/components/ui-shell/side-nav.js.map +1 -1
- package/es-custom/components/ui-shell/switcher-divider.js +2 -2
- package/es-custom/components/ui-shell/switcher-divider.js.map +1 -1
- package/es-custom/components/ui-shell/switcher-item.js +2 -2
- package/es-custom/components/ui-shell/switcher-item.js.map +1 -1
- package/es-custom/components/ui-shell/switcher.js +2 -2
- package/es-custom/components/ui-shell/switcher.js.map +1 -1
- package/es-custom/feature-flags/es/index.js +153 -144
- package/es-custom/feature-flags/es/index.js.map +1 -1
- package/lib/components/breadcrumb/breadcrumb-item.d.ts +1 -1
- package/lib/components/button/button.d.ts +14 -16
- package/lib/components/feature-flags/index.d.ts +1 -1
- package/lib/components/floating-menu/defs.d.ts +10 -2
- package/lib/components/floating-menu/defs.js +9 -1
- package/lib/components/floating-menu/defs.js.map +1 -1
- package/lib/components/floating-menu/floating-menu.d.ts +31 -1
- package/lib/components/multi-select/multi-select.d.ts +9 -0
- package/lib/components/overflow-menu/overflow-menu-body.d.ts +18 -2
- package/package.json +3 -3
- package/scss/components/button/button.scss +2 -0
- package/scss/components/overflow-menu/overflow-menu.scss +7 -1
- package/scss/components/tabs/tabs-story.scss +15 -1
- package/scss/components/tabs/tabs.scss +16 -3
- package/telemetry.yml +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combo-box.js","sources":["../../../src/components/combo-box/combo-box.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit/directives/class-map.js';\nimport { TemplateResult, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport Close16 from '@carbon/icons/es/close/16.js';\nimport { forEach } from '../../globals/internal/collection-helpers';\nimport CDSDropdown, { DROPDOWN_KEYBOARD_ACTION } from '../dropdown/dropdown';\nimport CDSComboBoxItem from './combo-box-item';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport styles from './combo-box.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport spread from '../../globals/directives/spread';\n\nexport { DROPDOWN_DIRECTION, DROPDOWN_SIZE } from '../dropdown/dropdown';\n\ntype ShouldFilterItem = (input: {\n item: CDSComboBoxItem;\n itemToString: (item: CDSComboBoxItem) => string;\n inputValue: string | null;\n}) => boolean;\n\n/**\n * Combo box.\n *\n * @element cds-custom-combo-box\n * @fires cds-custom-combo-box-beingselected\n * The custom event fired before a combo box item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires cds-custom-combo-box-beingtoggled\n * The custom event fired before the open state of this combo box is toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated toggling.\n * @fires cds-custom-combo-box-selected - The custom event fired after a combo box item is selected upon a user gesture.\n * @fires cds-custom-combo-box-toggled - The custom event fired after the open state of this combo box is toggled upon a user gesture.\n */\n@customElement(`${prefix}-combo-box`)\nclass CDSComboBox extends CDSDropdown {\n /**\n * The text content that should be set to the `<input>` for filtering.\n */\n protected _filterInputValue = '';\n\n protected _shouldTriggerBeFocusable = false;\n\n /**\n * The `<input>` for filtering.\n */\n @query('input')\n private _filterInputNode!: HTMLInputElement;\n\n /**\n * The menu containing all selectable items.\n */\n @query('#menu-body')\n private _itemMenu!: HTMLElement;\n\n /**\n * The selection button.\n */\n @query('#selection-button')\n private _selectionButtonNode!: HTMLElement;\n\n /**\n * @param item A combo box item.\n * @returns `true` if the given combo box item matches the query text user types.\n */\n protected _testItemWithQueryText(item) {\n return (this.itemMatches || this._defaultItemMatches)(\n item,\n this._filterInputNode.value\n );\n }\n\n /**\n * The default item matching callback.\n *\n * @param item The combo box item.\n * @param queryText The query text user types.\n * @returns `true` if the given combo box item matches the given query text.\n */\n protected _defaultItemMatches(\n item: CDSComboBoxItem,\n queryText: string\n ): boolean {\n return (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n item.textContent!.toLowerCase().indexOf(queryText.toLowerCase()) >= 0\n );\n }\n\n connectedCallback() {\n super.connectedCallback();\n if (this.typeahead) {\n this.shouldFilterItem = true;\n this.setAttribute('should-filter-item', '');\n }\n }\n\n /**\n * Handles `input` event on the `<input>` for filtering.\n */\n protected _handleInput(event: InputEvent) {\n const rawQueryText = this._filterInputNode.value;\n const queryText = rawQueryText.trim().toLowerCase();\n\n if (rawQueryText.length !== 0) {\n this.setAttribute('isClosable', '');\n } else {\n this.removeAttribute('isClosable');\n }\n\n const items = this.querySelectorAll(\n (this.constructor as typeof CDSComboBox).selectorItem\n );\n\n const firstMatchIndex = this._filterItems(items, queryText, rawQueryText);\n if (firstMatchIndex !== -1) {\n const highlightedItem = items[firstMatchIndex];\n if (highlightedItem) {\n this._scrollItemIntoView(highlightedItem as HTMLElement);\n }\n if (this.typeahead && event?.inputType?.startsWith('insert')) {\n const suggestedItem = highlightedItem.textContent?.trim() ?? '';\n if (\n suggestedItem.toLowerCase().startsWith(rawQueryText.toLowerCase()) &&\n suggestedItem.length > rawQueryText.length\n ) {\n const suggestionText =\n rawQueryText + suggestedItem.slice(rawQueryText.length);\n\n this._filterInputNode.value = suggestionText;\n this._filterInputNode.setSelectionRange(\n rawQueryText.length,\n suggestionText.length\n );\n\n this._filterInputValue = suggestionText;\n this.open = true;\n this.requestUpdate();\n return;\n }\n }\n }\n\n this._filterInputValue = rawQueryText;\n\n if (this.allowCustomValue) {\n const previousValue = this.value;\n this.value = rawQueryText;\n\n if (previousValue !== this.value) {\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSComboBox).eventSelect,\n {\n bubbles: true,\n composed: true,\n detail: {\n item: null,\n value: this.value,\n },\n }\n )\n );\n }\n }\n this.open = true;\n this.requestUpdate();\n }\n\n // removes the autocomplete suggestion\n protected _removeAutoCompleteSuggestion() {\n if (!this._filterInputNode) return;\n const { selectionStart, selectionEnd, value } = this._filterInputNode;\n if (selectionStart && selectionEnd && selectionEnd > selectionStart) {\n const cleanInput = value.slice(0, selectionStart);\n this._filterInputNode.value = cleanInput;\n this._filterInputNode.setSelectionRange(\n cleanInput.length,\n cleanInput.length\n );\n return;\n }\n }\n\n // Applies filtering/highlighting to all slotted items.\n protected _filterItems(\n items: NodeListOf<Element>,\n queryText: string,\n rawQueryText: string\n ): number {\n let firstMatchIndex = -1;\n const hasQuery = Boolean(queryText);\n forEach(items, (item, i) => {\n const comboItem = item as CDSComboBoxItem;\n const index = i ?? -1;\n if (!hasQuery) {\n (comboItem as HTMLElement).style.display = '';\n comboItem.highlighted = false;\n return;\n }\n const matches = this.typeahead\n ? (comboItem.textContent || '').toLowerCase().startsWith(queryText)\n : (comboItem.textContent || '').toLowerCase().includes(queryText);\n const filterFunction =\n typeof this.shouldFilterItem === 'function'\n ? this.shouldFilterItem\n : null;\n const shouldApplyBuiltInFilter =\n filterFunction === null && hasQuery && this.shouldFilterItem === true;\n const itemToString = (value: CDSComboBoxItem) => value.textContent || '';\n const filterInputValue = rawQueryText.length === 0 ? null : rawQueryText;\n const passesFilter = filterFunction\n ? filterFunction({\n item: comboItem,\n itemToString,\n inputValue: filterInputValue,\n })\n : shouldApplyBuiltInFilter\n ? matches\n : true;\n const highlightMatch = filterFunction !== null ? passesFilter : matches;\n if (highlightMatch && firstMatchIndex === -1) {\n firstMatchIndex = index;\n }\n if (filterFunction || shouldApplyBuiltInFilter) {\n (comboItem as HTMLElement).style.display = passesFilter ? '' : 'none';\n } else {\n (comboItem as HTMLElement).style.display = '';\n }\n comboItem.highlighted = index === firstMatchIndex;\n });\n return firstMatchIndex;\n }\n\n protected _scrollItemIntoView(item: HTMLElement) {\n if (!this._itemMenu) {\n return;\n }\n const menuRect = this._itemMenu.getBoundingClientRect();\n const itemRect = item.getBoundingClientRect();\n if (!menuRect || !itemRect) {\n return;\n }\n const menuBottom = menuRect.top + this._itemMenu.clientHeight;\n const isWithinViewport =\n menuRect.top <= itemRect.top && itemRect.bottom <= menuBottom;\n if (isWithinViewport) {\n return;\n }\n const scrollTop = itemRect.top - menuRect.top;\n const scrollBottom = itemRect.bottom - menuRect.bottom;\n this._itemMenu.scrollTop +=\n Math.abs(scrollTop) < Math.abs(scrollBottom) ? scrollTop : scrollBottom;\n }\n\n protected _getSelectedItem(): CDSComboBoxItem | null {\n if (!this.value) return null;\n const items = Array.from(\n this.querySelectorAll(\n (this.constructor as typeof CDSDropdown).selectorItem\n )\n ) as CDSComboBoxItem[];\n return items.find((it) => String(it.value) === String(this.value)) ?? null;\n }\n\n protected _revertInputToSelected(focus = true) {\n const selected = this._getSelectedItem();\n\n let text = selected?.textContent ?? '';\n if (this.allowCustomValue && !selected && this.value) {\n text = this.value as string;\n }\n\n this._filterInputValue = text;\n\n if (this._filterInputNode) {\n this._filterInputNode.value = text;\n\n if (focus) {\n try {\n this._filterInputNode.focus();\n const len = text.length;\n this._filterInputNode.setSelectionRange(len, len);\n } catch {\n /* ignore */\n }\n }\n }\n\n this._resetFilteredItems();\n this.removeAttribute('isClosable');\n this.requestUpdate();\n }\n\n protected _handleInputKeydown(event: KeyboardEvent) {\n // remove the autocomplete suggestion when navigating away from the suggested item\n if (\n this.typeahead &&\n (event.key === 'ArrowDown' || event.key === 'ArrowUp')\n ) {\n this._removeAutoCompleteSuggestion();\n }\n if (event.key !== 'Escape') {\n return;\n }\n if (!this._filterInputNode) {\n return;\n }\n\n if (this.value) {\n this._revertInputToSelected(true);\n } else if (this._filterInputNode.value) {\n this._clearInputWithoutSelecting(true);\n }\n }\n\n protected _handleClickInner(event: MouseEvent) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452\n const { target } = event as any;\n if (this._selectionButtonNode?.contains(target)) {\n this._handleUserInitiatedClearInput();\n } else {\n super._handleClickInner(event);\n }\n }\n\n protected _handleKeypressInner(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof CDSDropdown).getAction(key);\n const { TRIGGERING } = DROPDOWN_KEYBOARD_ACTION;\n if (\n this._selectionButtonNode?.contains(event.target as Node) &&\n // Space key should be handled by `<input>` unless \"clear selection\" button has focus\n (action === TRIGGERING || key === ' ')\n ) {\n this._handleUserInitiatedClearInput();\n } else {\n super._handleKeypressInner(event);\n }\n }\n\n /**\n * Handles user-initiated clearing the `<input>` for filtering.\n */\n protected _handleUserInitiatedClearInput() {\n this._resetFilteredItems();\n this._filterInputValue = '';\n if (this._filterInputNode) {\n this._filterInputNode.value = '';\n this._filterInputNode.focus();\n }\n\n this._handleUserInitiatedSelectItem();\n this.requestUpdate();\n }\n\n protected _handleUserInitiatedSelectItem(item?: CDSComboBoxItem) {\n if (item && !this._selectionShouldChange(item)) {\n // Escape hatch for `shouldUpdate()` logic that updates `._filterInputValue()` when selection changes,\n // given we want to update the `<input>` and close the dropdown even if selection doesn't update.\n // Use case:\n // 1. Select the 2nd item in combo box drop down\n // 2. Type some text in the `<input>`\n // 3. Re-select the 2nd item in combo box drop down,\n // the `<input>` has to updated with the 2nd item and the dropdown should be closed,\n // even if there is no change in the selected value\n this._filterInputValue = item.textContent || '';\n this.open = false;\n this.requestUpdate();\n }\n super._handleUserInitiatedSelectItem(item);\n }\n\n protected _selectionDidChange(itemToSelect?: CDSComboBoxItem) {\n this.value = !itemToSelect ? '' : itemToSelect.value;\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof CDSDropdown).selectorItemSelected\n ),\n (item) => {\n (item as CDSComboBoxItem).selected = false;\n item.setAttribute('aria-selected', 'false');\n }\n );\n if (itemToSelect) {\n itemToSelect.selected = true;\n itemToSelect.setAttribute('aria-selected', 'true');\n }\n\n this._handleUserInitiatedToggle(false);\n\n if (this._filterInputNode) {\n try {\n this._filterInputNode.focus();\n const val = this._filterInputNode.value || '';\n this._filterInputNode.setSelectionRange(val.length, val.length);\n } catch {\n /* ignore browsers that prevent setSelectionRange */\n }\n }\n }\n\n protected _renderLabel(): TemplateResult {\n const {\n disabled,\n inputLabel,\n label,\n open,\n readOnly,\n value,\n inputProps,\n _activeDescendant: activeDescendant,\n _filterInputValue: filterInputValue,\n _handleInput: handleInput,\n _handleInputKeydown: handleInputKeydown,\n } = this;\n\n const inputClasses = classMap({\n [`${prefix}--text-input`]: true,\n [`${prefix}--text-input--empty`]: !value,\n });\n\n let activeDescendantFallback: string | undefined;\n if (open && !activeDescendant) {\n const constructor = this.constructor as typeof CDSDropdown;\n const items = this.querySelectorAll(constructor.selectorItem);\n activeDescendantFallback = items[0]?.id;\n }\n\n return html`\n <input\n id=\"trigger-button\"\n class=\"${inputClasses}\"\n ?disabled=${disabled}\n placeholder=\"${label}\"\n .value=${filterInputValue}\n role=\"combobox\"\n aria-label=\"${ifNonEmpty(inputLabel)}\"\n aria-labelledby=\"dropdown-label\"\n aria-controls=\"menu-body\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n aria-expanded=\"${String(open)}\"\n aria-activedescendant=\"${ifDefined(\n open ? (activeDescendant ?? activeDescendantFallback) : ''\n )}\"\n ?readonly=${readOnly}\n @input=${handleInput}\n @keydown=${handleInputKeydown}\n ...=\"${spread(this._normalizeInputProps(inputProps))}\" />\n `;\n }\n\n protected _renderFollowingLabel(): TemplateResult | undefined {\n const { clearSelectionLabel, _filterInputValue: filterInputValue } = this;\n\n if (filterInputValue.length != 0) {\n this.setAttribute('isClosable', '');\n } else {\n this.removeAttribute('isClosable');\n }\n\n return filterInputValue.length === 0\n ? undefined\n : html`\n <div\n id=\"selection-button\"\n role=\"button\"\n class=\"${prefix}--list-box__selection\"\n tabindex=\"0\"\n title=\"${clearSelectionLabel}\">\n ${iconLoader(Close16, { 'aria-label': clearSelectionLabel })}\n </div>\n `;\n }\n\n protected _renderTitleLabel(): TemplateResult {\n const {\n disabled,\n hideLabel,\n titleText,\n _slotTitleTextNode: slotTitleTextNode,\n _handleSlotchangeLabelText: handleSlotchangeLabelText,\n } = this;\n\n const labelClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--label--disabled`]: disabled,\n [`${prefix}--visually-hidden`]: hideLabel,\n });\n\n const hasTitleText =\n titleText ||\n (slotTitleTextNode && slotTitleTextNode.assignedNodes().length > 0);\n\n return html`\n <label\n id=\"dropdown-label\"\n part=\"title-text\"\n class=\"${labelClasses}\"\n ?hidden=\"${!hasTitleText}\">\n <slot name=\"title-text\" @slotchange=\"${handleSlotchangeLabelText}\"\n >${titleText}</slot\n >\n </label>\n `;\n }\n /**\n * The `aria-label` attribute for the icon to clear selection.\n */\n @property({ attribute: 'clear-selection-label' })\n clearSelectionLabel = 'Clear selection';\n\n /**\n * The `aria-label` attribute for the `<input>` for filtering.\n */\n @property({ attribute: 'input-label' })\n inputLabel = '';\n\n /**\n * The custom item matching callback.\n */\n @property({ attribute: false })\n itemMatches!: (item: CDSComboBoxItem, queryText: string) => boolean;\n\n /**\n * Provide custom filtering behavior. This attribute will be ignored if\n * `typeahead` is enabled and will default to `true`\n */\n @property({\n attribute: 'should-filter-item',\n converter: {\n fromAttribute: (value) => value !== null,\n },\n })\n shouldFilterItem: boolean | ShouldFilterItem = false;\n\n /**\n * **Experimental**: will enable autocomplete and typeahead for the input field.\n */\n @property({ type: Boolean, reflect: true })\n typeahead = false;\n\n /**\n * `true` to allow custom values that do not match any item in the list.\n */\n @property({ type: Boolean, attribute: 'allow-custom-value' })\n allowCustomValue = false;\n\n /**\n * Additional input attributes to apply to the internal input element.\n * Allows passing native HTML input attributes like `maxlength`, `pattern`,\n * `autocomplete`, etc.\n */\n @property({ type: Object, attribute: false })\n inputProps?: Record<string, string | number | boolean>;\n\n private _normalizeInputProps(\n inputProps?: Record<string, string | number | boolean>\n ) {\n const normalizedInputProps: Record<string, string> = {};\n\n Object.entries(inputProps ?? {}).forEach(([key, value]) => {\n if (value === undefined || value === null || value === false) {\n return;\n }\n normalizedInputProps[key] = value === true ? '' : String(value);\n });\n\n return normalizedInputProps;\n }\n\n shouldUpdate(changedProperties) {\n super.shouldUpdate(changedProperties);\n if (!changedProperties.has('value')) {\n return true;\n }\n if (this._selectedItemContent) {\n this._filterInputValue = this._selectedItemContent.textContent || '';\n return true;\n }\n if (this.allowCustomValue && this.value) {\n this._filterInputValue = String(this.value);\n return true;\n }\n if (this.value === '') {\n this._filterInputValue = '';\n }\n return true;\n }\n\n protected _clearInputWithoutSelecting(focus = true) {\n this._filterInputValue = '';\n if (this._filterInputNode) {\n this._filterInputNode.value = '';\n\n if (focus) {\n try {\n this._filterInputNode.focus();\n this._filterInputNode.setSelectionRange(0, 0);\n } catch {\n /* ignore */\n }\n }\n }\n\n this._resetFilteredItems();\n this.removeAttribute('isClosable');\n this.requestUpdate();\n }\n\n updated(changedProperties) {\n super.updated(changedProperties);\n if (changedProperties.has('open')) {\n if (this.open && this._filterInputNode) {\n this._handleInput(changedProperties);\n } else if (!this.open) {\n // remove the autocomplete suggestion when closing the combobox\n this._removeAutoCompleteSuggestion();\n this._resetFilteredItems();\n if (this._filterInputNode.value == '') {\n this.value = '';\n }\n if (this.value) {\n this._revertInputToSelected(false);\n if (\n this._filterInputNode &&\n document.activeElement === this._filterInputNode\n ) {\n (this._filterInputNode as HTMLInputElement).blur();\n }\n } else if (\n this._filterInputValue &&\n this._filterInputValue.length > 0 &&\n !this.allowCustomValue\n ) {\n this._clearInputWithoutSelecting(false);\n if (\n this._filterInputNode &&\n document.activeElement === this._filterInputNode\n ) {\n (this._filterInputNode as HTMLInputElement).blur();\n }\n } else {\n // nothing typed and no selection, ensure no extra changes\n }\n }\n }\n const { _listBoxNode: listBoxNode } = this;\n if (listBoxNode) {\n listBoxNode.classList.add(`${prefix}--combo-box`);\n }\n }\n\n // Restores the full list when the query is cleared or the menu closes.\n protected _resetFilteredItems() {\n const items = this.querySelectorAll(\n (this.constructor as typeof CDSComboBox).selectorItem\n );\n forEach(items, (item) => {\n const comboItem = item as CDSComboBoxItem;\n (comboItem as HTMLElement).style.display = '';\n comboItem.highlighted = false;\n });\n }\n\n // For combo box, open/selection with space key is disabled given the input box should take it over\n static TRIGGER_KEYS = new Set(['Enter']);\n\n /**\n * A selector that will return highlighted items.\n */\n static get selectorItemHighlighted() {\n return `${prefix}-combo-box-item[highlighted]`;\n }\n\n /**\n * A selector that will return combo box items.\n */\n static get selectorItem() {\n return `${prefix}-combo-box-item`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-combo-box-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before this combo box item is being toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated action of toggling this combo box item.\n */\n static get eventBeforeToggle() {\n return `${prefix}-combo-box-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after this combo box item is toggled upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-combo-box-toggled`;\n }\n\n /**\n * The name of the custom event fired before a combo box item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n */\n static get eventBeforeSelect() {\n return `${prefix}-combo-box-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a combo box item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-combo-box-selected`;\n }\n\n static styles = styles;\n}\n\nexport default CDSComboBox;\n"],"names":["customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"combo-box.js","sources":["../../../src/components/combo-box/combo-box.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit/directives/class-map.js';\nimport { TemplateResult, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport Close16 from '@carbon/icons/es/close/16.js';\nimport { forEach } from '../../globals/internal/collection-helpers';\nimport CDSDropdown, { DROPDOWN_KEYBOARD_ACTION } from '../dropdown/dropdown';\nimport CDSComboBoxItem from './combo-box-item';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport styles from './combo-box.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport spread from '../../globals/directives/spread';\n\nexport { DROPDOWN_DIRECTION, DROPDOWN_SIZE } from '../dropdown/dropdown';\n\ntype ShouldFilterItem = (input: {\n item: CDSComboBoxItem;\n itemToString: (item: CDSComboBoxItem) => string;\n inputValue: string | null;\n}) => boolean;\n\n/**\n * Combo box.\n *\n * @element cds-custom-combo-box\n * @fires cds-custom-combo-box-beingselected\n * The custom event fired before a combo box item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires cds-custom-combo-box-beingtoggled\n * The custom event fired before the open state of this combo box is toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated toggling.\n * @fires cds-custom-combo-box-selected - The custom event fired after a combo box item is selected upon a user gesture.\n * @fires cds-custom-combo-box-toggled - The custom event fired after the open state of this combo box is toggled upon a user gesture.\n */\n@customElement(`${prefix}-combo-box`)\nclass CDSComboBox extends CDSDropdown {\n /**\n * The text content that should be set to the `<input>` for filtering.\n */\n protected _filterInputValue = '';\n\n protected _shouldTriggerBeFocusable = false;\n\n /**\n * The `<input>` for filtering.\n */\n @query('input')\n private _filterInputNode!: HTMLInputElement;\n\n /**\n * The menu containing all selectable items.\n */\n @query('#menu-body')\n private _itemMenu!: HTMLElement;\n\n /**\n * The selection button.\n */\n @query('#selection-button')\n private _selectionButtonNode!: HTMLElement;\n\n /**\n * @param item A combo box item.\n * @returns `true` if the given combo box item matches the query text user types.\n */\n protected _testItemWithQueryText(item) {\n return (this.itemMatches || this._defaultItemMatches)(\n item,\n this._filterInputNode.value\n );\n }\n\n /**\n * The default item matching callback.\n *\n * @param item The combo box item.\n * @param queryText The query text user types.\n * @returns `true` if the given combo box item matches the given query text.\n */\n protected _defaultItemMatches(\n item: CDSComboBoxItem,\n queryText: string\n ): boolean {\n return (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n item.textContent!.toLowerCase().indexOf(queryText.toLowerCase()) >= 0\n );\n }\n\n connectedCallback() {\n super.connectedCallback();\n if (this.typeahead) {\n this.shouldFilterItem = true;\n this.setAttribute('should-filter-item', '');\n }\n }\n\n /**\n * Handles `input` event on the `<input>` for filtering.\n */\n protected _handleInput(event: InputEvent) {\n const rawQueryText = this._filterInputNode.value;\n const queryText = rawQueryText.trim().toLowerCase();\n\n if (rawQueryText.length !== 0) {\n this.setAttribute('isClosable', '');\n } else {\n this.removeAttribute('isClosable');\n }\n\n const items = this.querySelectorAll(\n (this.constructor as typeof CDSComboBox).selectorItem\n );\n\n const firstMatchIndex = this._filterItems(items, queryText, rawQueryText);\n if (firstMatchIndex !== -1) {\n const highlightedItem = items[firstMatchIndex];\n if (highlightedItem) {\n this._scrollItemIntoView(highlightedItem as HTMLElement);\n }\n if (this.typeahead && event?.inputType?.startsWith('insert')) {\n const suggestedItem = highlightedItem.textContent?.trim() ?? '';\n if (\n suggestedItem.toLowerCase().startsWith(rawQueryText.toLowerCase()) &&\n suggestedItem.length > rawQueryText.length\n ) {\n const suggestionText =\n rawQueryText + suggestedItem.slice(rawQueryText.length);\n\n this._filterInputNode.value = suggestionText;\n this._filterInputNode.setSelectionRange(\n rawQueryText.length,\n suggestionText.length\n );\n\n this._filterInputValue = suggestionText;\n this.open = true;\n this.requestUpdate();\n return;\n }\n }\n }\n\n this._filterInputValue = rawQueryText;\n\n if (this.allowCustomValue) {\n const previousValue = this.value;\n this.value = rawQueryText;\n\n if (previousValue !== this.value) {\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSComboBox).eventSelect,\n {\n bubbles: true,\n composed: true,\n detail: {\n item: null,\n value: this.value,\n },\n }\n )\n );\n }\n }\n this.open = true;\n this.requestUpdate();\n }\n\n // removes the autocomplete suggestion\n protected _removeAutoCompleteSuggestion() {\n if (!this._filterInputNode) return;\n const { selectionStart, selectionEnd, value } = this._filterInputNode;\n if (selectionStart && selectionEnd && selectionEnd > selectionStart) {\n const cleanInput = value.slice(0, selectionStart);\n this._filterInputNode.value = cleanInput;\n this._filterInputNode.setSelectionRange(\n cleanInput.length,\n cleanInput.length\n );\n return;\n }\n }\n\n // Applies filtering/highlighting to all slotted items.\n protected _filterItems(\n items: NodeListOf<Element>,\n queryText: string,\n rawQueryText: string\n ): number {\n let firstMatchIndex = -1;\n const hasQuery = Boolean(queryText);\n forEach(items, (item, i) => {\n const comboItem = item as CDSComboBoxItem;\n const index = i ?? -1;\n if (!hasQuery) {\n (comboItem as HTMLElement).style.display = '';\n comboItem.highlighted = false;\n return;\n }\n const matches = this.typeahead\n ? (comboItem.textContent || '').toLowerCase().startsWith(queryText)\n : (comboItem.textContent || '').toLowerCase().includes(queryText);\n const filterFunction =\n typeof this.shouldFilterItem === 'function'\n ? this.shouldFilterItem\n : null;\n const shouldApplyBuiltInFilter =\n filterFunction === null && hasQuery && this.shouldFilterItem === true;\n const itemToString = (value: CDSComboBoxItem) => value.textContent || '';\n const filterInputValue = rawQueryText.length === 0 ? null : rawQueryText;\n const passesFilter = filterFunction\n ? filterFunction({\n item: comboItem,\n itemToString,\n inputValue: filterInputValue,\n })\n : shouldApplyBuiltInFilter\n ? matches\n : true;\n const highlightMatch = filterFunction !== null ? passesFilter : matches;\n if (highlightMatch && firstMatchIndex === -1) {\n firstMatchIndex = index;\n }\n if (filterFunction || shouldApplyBuiltInFilter) {\n (comboItem as HTMLElement).style.display = passesFilter ? '' : 'none';\n } else {\n (comboItem as HTMLElement).style.display = '';\n }\n comboItem.highlighted = index === firstMatchIndex;\n });\n return firstMatchIndex;\n }\n\n protected _scrollItemIntoView(item: HTMLElement) {\n if (!this._itemMenu) {\n return;\n }\n const menuRect = this._itemMenu.getBoundingClientRect();\n const itemRect = item.getBoundingClientRect();\n if (!menuRect || !itemRect) {\n return;\n }\n const menuBottom = menuRect.top + this._itemMenu.clientHeight;\n const isWithinViewport =\n menuRect.top <= itemRect.top && itemRect.bottom <= menuBottom;\n if (isWithinViewport) {\n return;\n }\n const scrollTop = itemRect.top - menuRect.top;\n const scrollBottom = itemRect.bottom - menuRect.bottom;\n this._itemMenu.scrollTop +=\n Math.abs(scrollTop) < Math.abs(scrollBottom) ? scrollTop : scrollBottom;\n }\n\n protected _getSelectedItem(): CDSComboBoxItem | null {\n if (!this.value) return null;\n const items = Array.from(\n this.querySelectorAll(\n (this.constructor as typeof CDSDropdown).selectorItem\n )\n ) as CDSComboBoxItem[];\n return items.find((it) => String(it.value) === String(this.value)) ?? null;\n }\n\n protected _revertInputToSelected(focus = true) {\n const selected = this._getSelectedItem();\n\n let text = selected?.textContent ?? '';\n if (this.allowCustomValue && !selected && this.value) {\n text = this.value as string;\n }\n\n this._filterInputValue = text;\n\n if (this._filterInputNode) {\n this._filterInputNode.value = text;\n\n if (focus) {\n try {\n this._filterInputNode.focus();\n const len = text.length;\n this._filterInputNode.setSelectionRange(len, len);\n } catch {\n /* ignore */\n }\n }\n }\n\n this._resetFilteredItems();\n this.removeAttribute('isClosable');\n this.requestUpdate();\n }\n\n protected _handleInputKeydown(event: KeyboardEvent) {\n // remove the autocomplete suggestion when navigating away from the suggested item\n if (\n this.typeahead &&\n (event.key === 'ArrowDown' || event.key === 'ArrowUp')\n ) {\n this._removeAutoCompleteSuggestion();\n }\n if (event.key !== 'Escape') {\n return;\n }\n if (!this._filterInputNode) {\n return;\n }\n\n if (this.open) {\n this._handleUserInitiatedToggle(false);\n } else {\n if (this.value) {\n this._revertInputToSelected(true);\n } else if (this._filterInputNode.value) {\n this._clearInputWithoutSelecting(true);\n }\n\n if (this.value || this._filterInputNode.value) {\n this._handleUserInitiatedClearInput();\n }\n }\n }\n\n protected _handleClickInner(event: MouseEvent) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452\n const { target } = event as any;\n if (this._selectionButtonNode?.contains(target)) {\n this._handleUserInitiatedClearInput();\n } else {\n super._handleClickInner(event);\n }\n }\n\n protected _handleKeypressInner(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof CDSDropdown).getAction(key);\n const { TRIGGERING } = DROPDOWN_KEYBOARD_ACTION;\n if (\n this._selectionButtonNode?.contains(event.target as Node) &&\n // Space key should be handled by `<input>` unless \"clear selection\" button has focus\n (action === TRIGGERING || key === ' ')\n ) {\n this._handleUserInitiatedClearInput();\n } else {\n super._handleKeypressInner(event);\n }\n }\n\n /**\n * Handles user-initiated clearing the `<input>` for filtering.\n */\n protected _handleUserInitiatedClearInput() {\n this._resetFilteredItems();\n this._filterInputValue = '';\n if (this._filterInputNode) {\n this._filterInputNode.value = '';\n this._filterInputNode.focus();\n }\n\n this._handleUserInitiatedSelectItem();\n this.requestUpdate();\n }\n\n protected _handleUserInitiatedSelectItem(item?: CDSComboBoxItem) {\n if (item && !this._selectionShouldChange(item)) {\n // Escape hatch for `shouldUpdate()` logic that updates `._filterInputValue()` when selection changes,\n // given we want to update the `<input>` and close the dropdown even if selection doesn't update.\n // Use case:\n // 1. Select the 2nd item in combo box drop down\n // 2. Type some text in the `<input>`\n // 3. Re-select the 2nd item in combo box drop down,\n // the `<input>` has to updated with the 2nd item and the dropdown should be closed,\n // even if there is no change in the selected value\n this._filterInputValue = item.textContent || '';\n this.open = false;\n this.requestUpdate();\n }\n super._handleUserInitiatedSelectItem(item);\n }\n\n protected _selectionDidChange(itemToSelect?: CDSComboBoxItem) {\n this.value = !itemToSelect ? '' : itemToSelect.value;\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof CDSDropdown).selectorItemSelected\n ),\n (item) => {\n (item as CDSComboBoxItem).selected = false;\n item.setAttribute('aria-selected', 'false');\n }\n );\n if (itemToSelect) {\n itemToSelect.selected = true;\n itemToSelect.setAttribute('aria-selected', 'true');\n }\n\n this._handleUserInitiatedToggle(false);\n\n if (this._filterInputNode) {\n try {\n this._filterInputNode.focus();\n const val = this._filterInputNode.value || '';\n this._filterInputNode.setSelectionRange(val.length, val.length);\n } catch {\n /* ignore browsers that prevent setSelectionRange */\n }\n }\n }\n\n protected _renderLabel(): TemplateResult {\n const {\n disabled,\n inputLabel,\n label,\n open,\n readOnly,\n value,\n inputProps,\n _activeDescendant: activeDescendant,\n _filterInputValue: filterInputValue,\n _handleInput: handleInput,\n _handleInputKeydown: handleInputKeydown,\n } = this;\n\n const inputClasses = classMap({\n [`${prefix}--text-input`]: true,\n [`${prefix}--text-input--empty`]: !value,\n });\n\n let activeDescendantFallback: string | undefined;\n if (open && !activeDescendant) {\n const constructor = this.constructor as typeof CDSDropdown;\n const items = this.querySelectorAll(constructor.selectorItem);\n activeDescendantFallback = items[0]?.id;\n }\n\n return html`\n <input\n id=\"trigger-button\"\n class=\"${inputClasses}\"\n ?disabled=${disabled}\n placeholder=\"${label}\"\n .value=${filterInputValue}\n role=\"combobox\"\n aria-label=\"${ifNonEmpty(inputLabel)}\"\n aria-labelledby=\"dropdown-label\"\n aria-controls=\"menu-body\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n aria-expanded=\"${String(open)}\"\n aria-activedescendant=\"${ifDefined(\n open ? (activeDescendant ?? activeDescendantFallback) : ''\n )}\"\n ?readonly=${readOnly}\n @input=${handleInput}\n @keydown=${handleInputKeydown}\n ...=\"${spread(this._normalizeInputProps(inputProps))}\" />\n `;\n }\n\n protected _renderFollowingLabel(): TemplateResult | undefined {\n const { clearSelectionLabel, _filterInputValue: filterInputValue } = this;\n\n if (filterInputValue.length != 0) {\n this.setAttribute('isClosable', '');\n } else {\n this.removeAttribute('isClosable');\n }\n\n return filterInputValue.length === 0\n ? undefined\n : html`\n <div\n id=\"selection-button\"\n role=\"button\"\n class=\"${prefix}--list-box__selection\"\n tabindex=\"-1\"\n title=\"${clearSelectionLabel}\">\n ${iconLoader(Close16, { 'aria-label': clearSelectionLabel })}\n </div>\n `;\n }\n\n protected _renderTitleLabel(): TemplateResult {\n const {\n disabled,\n hideLabel,\n titleText,\n _slotTitleTextNode: slotTitleTextNode,\n _handleSlotchangeLabelText: handleSlotchangeLabelText,\n } = this;\n\n const labelClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--label--disabled`]: disabled,\n [`${prefix}--visually-hidden`]: hideLabel,\n });\n\n const hasTitleText =\n titleText ||\n (slotTitleTextNode && slotTitleTextNode.assignedNodes().length > 0);\n\n return html`\n <label\n id=\"dropdown-label\"\n part=\"title-text\"\n class=\"${labelClasses}\"\n ?hidden=\"${!hasTitleText}\">\n <slot name=\"title-text\" @slotchange=\"${handleSlotchangeLabelText}\"\n >${titleText}</slot\n >\n </label>\n `;\n }\n /**\n * The `aria-label` attribute for the icon to clear selection.\n */\n @property({ attribute: 'clear-selection-label' })\n clearSelectionLabel = 'Clear selection';\n\n /**\n * The `aria-label` attribute for the `<input>` for filtering.\n */\n @property({ attribute: 'input-label' })\n inputLabel = '';\n\n /**\n * The custom item matching callback.\n */\n @property({ attribute: false })\n itemMatches!: (item: CDSComboBoxItem, queryText: string) => boolean;\n\n /**\n * Provide custom filtering behavior. This attribute will be ignored if\n * `typeahead` is enabled and will default to `true`\n */\n @property({\n attribute: 'should-filter-item',\n converter: {\n fromAttribute: (value) => value !== null,\n },\n })\n shouldFilterItem: boolean | ShouldFilterItem = false;\n\n /**\n * **Experimental**: will enable autocomplete and typeahead for the input field.\n */\n @property({ type: Boolean, reflect: true })\n typeahead = false;\n\n /**\n * `true` to allow custom values that do not match any item in the list.\n */\n @property({ type: Boolean, attribute: 'allow-custom-value' })\n allowCustomValue = false;\n\n /**\n * Additional input attributes to apply to the internal input element.\n * Allows passing native HTML input attributes like `maxlength`, `pattern`,\n * `autocomplete`, etc.\n */\n @property({ type: Object, attribute: false })\n inputProps?: Record<string, string | number | boolean>;\n\n private _normalizeInputProps(\n inputProps?: Record<string, string | number | boolean>\n ) {\n const normalizedInputProps: Record<string, string> = {};\n\n Object.entries(inputProps ?? {}).forEach(([key, value]) => {\n if (value === undefined || value === null || value === false) {\n return;\n }\n normalizedInputProps[key] = value === true ? '' : String(value);\n });\n\n return normalizedInputProps;\n }\n\n shouldUpdate(changedProperties) {\n super.shouldUpdate(changedProperties);\n if (!changedProperties.has('value')) {\n return true;\n }\n if (this._selectedItemContent) {\n this._filterInputValue = this._selectedItemContent.textContent || '';\n return true;\n }\n if (this.allowCustomValue && this.value) {\n this._filterInputValue = String(this.value);\n return true;\n }\n if (this.value === '') {\n this._filterInputValue = '';\n }\n return true;\n }\n\n protected _clearInputWithoutSelecting(focus = true) {\n this._filterInputValue = '';\n if (this._filterInputNode) {\n this._filterInputNode.value = '';\n\n if (focus) {\n try {\n this._filterInputNode.focus();\n this._filterInputNode.setSelectionRange(0, 0);\n } catch {\n /* ignore */\n }\n }\n }\n\n this._resetFilteredItems();\n this.removeAttribute('isClosable');\n this.requestUpdate();\n }\n\n updated(changedProperties) {\n super.updated(changedProperties);\n if (changedProperties.has('open')) {\n if (this.open && this._filterInputNode) {\n this._handleInput(changedProperties);\n } else if (!this.open) {\n // remove the autocomplete suggestion when closing the combobox\n this._removeAutoCompleteSuggestion();\n this._resetFilteredItems();\n if (this._filterInputNode.value == '') {\n this.value = '';\n }\n if (this.value) {\n this._revertInputToSelected(false);\n if (\n this._filterInputNode &&\n document.activeElement === this._filterInputNode\n ) {\n (this._filterInputNode as HTMLInputElement).blur();\n }\n } else if (\n this._filterInputValue &&\n this._filterInputValue.length > 0 &&\n !this.allowCustomValue\n ) {\n this._clearInputWithoutSelecting(false);\n if (\n this._filterInputNode &&\n document.activeElement === this._filterInputNode\n ) {\n (this._filterInputNode as HTMLInputElement).blur();\n }\n } else {\n // nothing typed and no selection, ensure no extra changes\n }\n }\n }\n const { _listBoxNode: listBoxNode } = this;\n if (listBoxNode) {\n listBoxNode.classList.add(`${prefix}--combo-box`);\n }\n }\n\n // Restores the full list when the query is cleared or the menu closes.\n protected _resetFilteredItems() {\n const items = this.querySelectorAll(\n (this.constructor as typeof CDSComboBox).selectorItem\n );\n forEach(items, (item) => {\n const comboItem = item as CDSComboBoxItem;\n (comboItem as HTMLElement).style.display = '';\n comboItem.highlighted = false;\n });\n }\n\n // For combo box, open/selection with space key is disabled given the input box should take it over\n static TRIGGER_KEYS = new Set(['Enter']);\n\n /**\n * A selector that will return highlighted items.\n */\n static get selectorItemHighlighted() {\n return `${prefix}-combo-box-item[highlighted]`;\n }\n\n /**\n * A selector that will return combo box items.\n */\n static get selectorItem() {\n return `${prefix}-combo-box-item`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-combo-box-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before this combo box item is being toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated action of toggling this combo box item.\n */\n static get eventBeforeToggle() {\n return `${prefix}-combo-box-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after this combo box item is toggled upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-combo-box-toggled`;\n }\n\n /**\n * The name of the custom event fired before a combo box item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n */\n static get eventBeforeSelect() {\n return `${prefix}-combo-box-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a combo box item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-combo-box-selected`;\n }\n\n static styles = styles;\n}\n\nexport default CDSComboBox;\n"],"names":["customElement"],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ import '../menu/menu-item-selectable.js';
|
|
|
24
24
|
import '../menu/menu-item-radio-group.js';
|
|
25
25
|
import '../icon-button/icon-button.js';
|
|
26
26
|
import ChevronDown16 from '@carbon/icons/es/chevron--down/16.js';
|
|
27
|
-
import
|
|
27
|
+
import iconLoader from '../../globals/internal/icon-loader.js';
|
|
28
28
|
import { COMBO_BUTTON_SIZE } from './defs.js';
|
|
29
29
|
export { COMBO_BUTTON_TOOLTIP_ALIGNMENT } from './defs.js';
|
|
30
30
|
import { POPOVER_ALIGNMENT } from '../popover/defs.js';
|
|
@@ -167,7 +167,7 @@ __decorate([
|
|
|
167
167
|
CDSComboButton = __decorate([
|
|
168
168
|
carbonElement(`${prefix}-combo-button`)
|
|
169
169
|
], CDSComboButton);
|
|
170
|
-
var
|
|
170
|
+
var CDSComboButton_default = CDSComboButton;
|
|
171
171
|
|
|
172
|
-
export { COMBO_BUTTON_SIZE,
|
|
172
|
+
export { COMBO_BUTTON_SIZE, CDSComboButton_default as default };
|
|
173
173
|
//# sourceMappingURL=combo-button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combo-button.js","sources":["../../../src/components/combo-button/combo-button.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2025, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport styles from './combo-button.scss?lit';\nimport '../button/index';\nimport '../menu/index';\nimport '../icon-button/index';\nimport ChevronDown16 from '@carbon/icons/es/chevron--down/16.js';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport CDSMenu from '../menu/menu';\nimport CDSButton from '../button/button';\nimport { COMBO_BUTTON_SIZE, COMBO_BUTTON_TOOLTIP_ALIGNMENT } from './defs';\nimport { POPOVER_ALIGNMENT } from '../popover/defs';\nimport { ICON_BUTTON_TOOLTIP_ALIGNMENT } from '../icon-button/defs';\nimport FloatingUIController from '../../globals/controllers/floating-controller';\n\nexport { COMBO_BUTTON_SIZE, COMBO_BUTTON_TOOLTIP_ALIGNMENT };\n\n/**\n * Combo button.\n * @element cds-custom-combo-button\n */\n@customElement(`${prefix}-combo-button`)\nclass CDSComboButton extends HostListenerMixin(LitElement) {\n private _menuController = new FloatingUIController(this);\n\n @query(`${prefix}-icon-button`)\n _triggerNode!: CDSButton;\n\n @query(`${prefix}-menu`)\n _menuNode!: CDSMenu;\n\n @property({ type: Boolean, reflect: true })\n private _open = false;\n\n /**\n * Specify whether the ComboButton should be disabled, or not.\n */\n @property({ type: Boolean, reflect: true })\n disabled?;\n\n /**\n * Provide the label to be rendered on the primary action button.\n */\n @property()\n label!: string;\n\n /**\n * Experimental property. Specify how the menu should align with the button element\n */\n @property({ reflect: true, type: String, attribute: 'menu-alignment' })\n menuAlignment = POPOVER_ALIGNMENT.TOP;\n\n /**\n * Provide an optional function to be called when the primary action element is clicked.\n */\n @property({ type: Function })\n onClick?: (event: Event) => void;\n\n /**\n * Specify the size of the button and menu.\n */\n @property({ type: COMBO_BUTTON_SIZE, reflect: true })\n size = COMBO_BUTTON_SIZE.LARGE;\n\n /**\n * Specify how the trigger tooltip should be aligned.\n */\n @property({ reflect: true, attribute: 'tooltip-alignment' })\n tooltipAlignment = ICON_BUTTON_TOOLTIP_ALIGNMENT.TOP;\n\n /**\n * Provide the tooltip content for the icon button.\n */\n @property({ type: String, attribute: 'tooltip-content' })\n tooltipContent = 'Additional actions';\n\n @HostListener('click')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleClick = (event: Event) => {\n const path = event.composedPath();\n if (path.includes(this._triggerNode)) {\n this._open = !this._open;\n } else if (this._open) {\n this._open = false;\n }\n if ((event.target as HTMLElement).tagName === 'CDS-MENU-ITEM') {\n this.onClick?.(event);\n }\n };\n\n @HostListener('focusout')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleBlur = ({ relatedTarget }: FocusEvent) => {\n // Close the menu if the focus moves outside the menu button or menu\n if (!this.contains(relatedTarget as Node)) {\n this._open = false;\n }\n };\n\n updated(changedProperties) {\n const menu = this.querySelector(`${prefix}-menu`) as CDSMenu;\n\n if (\n changedProperties.has('_open') ||\n changedProperties.has('menuAlignment')\n ) {\n this.updateComplete.then(() => {\n const styleElement = menu.shadowRoot?.querySelector(\n `.${prefix}--menu`\n ) as HTMLElement;\n\n menu.open = this._open;\n\n this._menuController.setPlacement({\n trigger: this,\n target: menu,\n alignment: this.menuAlignment,\n styleElement,\n matchWidth: true,\n open: this._open,\n });\n });\n }\n\n if (changedProperties.has('size')) {\n menu.setAttribute('size', this.size);\n }\n }\n\n render() {\n const { size, disabled, label, tooltipAlignment, menuAlignment, onClick } =\n this;\n return html`\n <cds-custom-button size=${size} ?disabled=${disabled} @click=${onClick}>\n ${label}\n </cds-custom-button>\n <cds-custom-icon-button\n size=${size}\n ?disabled=${disabled}\n align=${tooltipAlignment}\n menu-alignment=${menuAlignment}\n part=\"trigger\">\n ${iconLoader(ChevronDown16, { slot: 'icon' })}\n <span slot=\"tooltip-content\">${this.tooltipContent}</span>\n </cds-custom-icon-button>\n <slot></slot>\n `;\n }\n\n static styles = styles;\n}\n\nexport default CDSComboButton;\n"],"names":["FloatingUIController","customElement"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"combo-button.js","sources":["../../../src/components/combo-button/combo-button.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2025, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport styles from './combo-button.scss?lit';\nimport '../button/index';\nimport '../menu/index';\nimport '../icon-button/index';\nimport ChevronDown16 from '@carbon/icons/es/chevron--down/16.js';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport CDSMenu from '../menu/menu';\nimport CDSButton from '../button/button';\nimport { COMBO_BUTTON_SIZE, COMBO_BUTTON_TOOLTIP_ALIGNMENT } from './defs';\nimport { POPOVER_ALIGNMENT } from '../popover/defs';\nimport { ICON_BUTTON_TOOLTIP_ALIGNMENT } from '../icon-button/defs';\nimport FloatingUIController from '../../globals/controllers/floating-controller';\n\nexport { COMBO_BUTTON_SIZE, COMBO_BUTTON_TOOLTIP_ALIGNMENT };\n\n/**\n * Combo button.\n * @element cds-custom-combo-button\n */\n@customElement(`${prefix}-combo-button`)\nclass CDSComboButton extends HostListenerMixin(LitElement) {\n private _menuController = new FloatingUIController(this);\n\n @query(`${prefix}-icon-button`)\n _triggerNode!: CDSButton;\n\n @query(`${prefix}-menu`)\n _menuNode!: CDSMenu;\n\n @property({ type: Boolean, reflect: true })\n private _open = false;\n\n /**\n * Specify whether the ComboButton should be disabled, or not.\n */\n @property({ type: Boolean, reflect: true })\n disabled?;\n\n /**\n * Provide the label to be rendered on the primary action button.\n */\n @property()\n label!: string;\n\n /**\n * Experimental property. Specify how the menu should align with the button element\n */\n @property({ reflect: true, type: String, attribute: 'menu-alignment' })\n menuAlignment = POPOVER_ALIGNMENT.TOP;\n\n /**\n * Provide an optional function to be called when the primary action element is clicked.\n */\n @property({ type: Function })\n onClick?: (event: Event) => void;\n\n /**\n * Specify the size of the button and menu.\n */\n @property({ type: COMBO_BUTTON_SIZE, reflect: true })\n size = COMBO_BUTTON_SIZE.LARGE;\n\n /**\n * Specify how the trigger tooltip should be aligned.\n */\n @property({ reflect: true, attribute: 'tooltip-alignment' })\n tooltipAlignment = ICON_BUTTON_TOOLTIP_ALIGNMENT.TOP;\n\n /**\n * Provide the tooltip content for the icon button.\n */\n @property({ type: String, attribute: 'tooltip-content' })\n tooltipContent = 'Additional actions';\n\n @HostListener('click')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleClick = (event: Event) => {\n const path = event.composedPath();\n if (path.includes(this._triggerNode)) {\n this._open = !this._open;\n } else if (this._open) {\n this._open = false;\n }\n if ((event.target as HTMLElement).tagName === 'CDS-MENU-ITEM') {\n this.onClick?.(event);\n }\n };\n\n @HostListener('focusout')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleBlur = ({ relatedTarget }: FocusEvent) => {\n // Close the menu if the focus moves outside the menu button or menu\n if (!this.contains(relatedTarget as Node)) {\n this._open = false;\n }\n };\n\n updated(changedProperties) {\n const menu = this.querySelector(`${prefix}-menu`) as CDSMenu;\n\n if (\n changedProperties.has('_open') ||\n changedProperties.has('menuAlignment')\n ) {\n this.updateComplete.then(() => {\n const styleElement = menu.shadowRoot?.querySelector(\n `.${prefix}--menu`\n ) as HTMLElement;\n\n menu.open = this._open;\n\n this._menuController.setPlacement({\n trigger: this,\n target: menu,\n alignment: this.menuAlignment,\n styleElement,\n matchWidth: true,\n open: this._open,\n });\n });\n }\n\n if (changedProperties.has('size')) {\n menu.setAttribute('size', this.size);\n }\n }\n\n render() {\n const { size, disabled, label, tooltipAlignment, menuAlignment, onClick } =\n this;\n return html`\n <cds-custom-button size=${size} ?disabled=${disabled} @click=${onClick}>\n ${label}\n </cds-custom-button>\n <cds-custom-icon-button\n size=${size}\n ?disabled=${disabled}\n align=${tooltipAlignment}\n menu-alignment=${menuAlignment}\n part=\"trigger\">\n ${iconLoader(ChevronDown16, { slot: 'icon' })}\n <span slot=\"tooltip-content\">${this.tooltipContent}</span>\n </cds-custom-icon-button>\n <slot></slot>\n `;\n }\n\n static styles = styles;\n}\n\nexport default CDSComboButton;\n"],"names":["FloatingUIController","customElement"],"mappings":"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"}
|
|
@@ -32,7 +32,7 @@ CDSContainedListDescription.styles = styles;
|
|
|
32
32
|
CDSContainedListDescription = __decorate([
|
|
33
33
|
carbonElement(`${prefix}-contained-list-description`)
|
|
34
34
|
], CDSContainedListDescription);
|
|
35
|
-
var
|
|
35
|
+
var CDSContainedListDescription_default = CDSContainedListDescription;
|
|
36
36
|
|
|
37
|
-
export {
|
|
37
|
+
export { CDSContainedListDescription_default as default };
|
|
38
38
|
//# sourceMappingURL=contained-list-description.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contained-list-description.js","sources":["../../../src/components/contained-list/contained-list-description.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2022, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { prefix } from '../../globals/settings';\nimport styles from './contained-list.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Contained list description text.\n *\n * @element cds-custom-contained-list-description\n * @slot - The description text content\n */\n@customElement(`${prefix}-contained-list-description`)\nclass CDSContainedListDescription extends LitElement {\n render() {\n return html`<slot></slot>`;\n }\n\n static styles = styles;\n}\n\nexport default CDSContainedListDescription;\n"],"names":["customElement"],"mappings":";;;;;;;;;;;;;AAAA;;;;;AAKG;AAOH;;;;;AAKG;AAEH,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,UAAU,CAAA;IAClD,MAAM,GAAA;QACJ,OAAO,IAAI,CAAA,CAAA,aAAA,CAAe;IAC5B;;AAEO,2BAAA,CAAA,MAAM,GAAG,MAAH;AALT,2BAA2B,GAAA,UAAA,CAAA;AADhC,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,2BAAA,CAA6B;AAC/C,CAAA,EAAA,2BAA2B,CAMhC;AAED,
|
|
1
|
+
{"version":3,"file":"contained-list-description.js","sources":["../../../src/components/contained-list/contained-list-description.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2022, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { prefix } from '../../globals/settings';\nimport styles from './contained-list.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Contained list description text.\n *\n * @element cds-custom-contained-list-description\n * @slot - The description text content\n */\n@customElement(`${prefix}-contained-list-description`)\nclass CDSContainedListDescription extends LitElement {\n render() {\n return html`<slot></slot>`;\n }\n\n static styles = styles;\n}\n\nexport default CDSContainedListDescription;\n"],"names":["customElement"],"mappings":";;;;;;;;;;;;;AAAA;;;;;AAKG;AAOH;;;;;AAKG;AAEH,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,UAAU,CAAA;IAClD,MAAM,GAAA;QACJ,OAAO,IAAI,CAAA,CAAA,aAAA,CAAe;IAC5B;;AAEO,2BAAA,CAAA,MAAM,GAAG,MAAH;AALT,2BAA2B,GAAA,UAAA,CAAA;AADhC,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,2BAAA,CAA6B;AAC/C,CAAA,EAAA,2BAA2B,CAMhC;AAED,0CAAe,2BAA2B;;;;"}
|
|
@@ -129,7 +129,7 @@ __decorate([
|
|
|
129
129
|
CDSContainedListItem = __decorate([
|
|
130
130
|
carbonElement(`${prefix}-contained-list-item`)
|
|
131
131
|
], CDSContainedListItem);
|
|
132
|
-
var
|
|
132
|
+
var CDSContainedListItem_default = CDSContainedListItem;
|
|
133
133
|
|
|
134
|
-
export {
|
|
134
|
+
export { CDSContainedListItem_default as default };
|
|
135
135
|
//# sourceMappingURL=contained-list-item.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contained-list-item.js","sources":["../../../src/components/contained-list/contained-list-item.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2022, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './contained-list.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Contained list item.\n *\n * @element cds-custom-contained-list-item\n * @slot - The content of the list item\n * @slot icon - The icon slot for rendering an icon\n * @slot action - The action slot for interactive elements\n * @fires cds-custom-contained-list-item-click - Fires when clickable item is clicked\n */\n@customElement(`${prefix}-contained-list-item`)\nclass CDSContainedListItem extends LitElement {\n /**\n * Whether this item is clickable\n */\n @property({ type: Boolean, reflect: true })\n clickable = false;\n\n /**\n * Whether this item is disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Handles slot change for icon\n */\n private _handleIconSlotChange({ target }: Event) {\n const slot = target as HTMLSlotElement;\n const hasIcon = slot.assignedElements().length > 0;\n this._hasIcon = hasIcon;\n this.requestUpdate();\n }\n\n private _hasIcon = false;\n\n /**\n * Handles click event\n */\n private _handleClick(event: MouseEvent) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n\n const { eventClick } = this.constructor as typeof CDSContainedListItem;\n this.dispatchEvent(\n new CustomEvent(eventClick, {\n bubbles: true,\n composed: true,\n detail: { item: this },\n })\n );\n }\n\n connectedCallback() {\n super.connectedCallback();\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'listitem');\n }\n }\n\n render() {\n const { disabled, clickable, _hasIcon } = this;\n\n const classes = classMap({\n [`${prefix}--contained-list-item`]: true,\n [`${prefix}--contained-list-item--clickable`]: clickable,\n [`${prefix}--contained-list-item--with-icon`]: _hasIcon,\n });\n\n const contentClasses = `${prefix}--contained-list-item__content`;\n\n const content = html`\n ${_hasIcon\n ? html`\n <div class=\"${prefix}--contained-list-item__icon\">\n <slot\n name=\"icon\"\n @slotchange=\"${this._handleIconSlotChange}\"></slot>\n </div>\n `\n : html`<slot\n name=\"icon\"\n @slotchange=\"${this._handleIconSlotChange}\"></slot>`}\n <div><slot></slot></div>\n `;\n\n return html`\n <div class=\"${classes}\">\n ${clickable\n ? html`\n <button\n class=\"${contentClasses}\"\n type=\"button\"\n ?disabled=\"${disabled}\"\n @click=\"${this._handleClick}\">\n ${content}\n </button>\n `\n : html`<div class=\"${contentClasses}\">${content}</div>`}\n <div class=\"${prefix}--contained-list-item__action\">\n <slot name=\"action\"></slot>\n </div>\n </div>\n `;\n }\n\n /**\n * The name of the custom event fired when a clickable item is clicked\n */\n static get eventClick() {\n return `${prefix}-contained-list-item-click`;\n }\n\n static styles = styles;\n}\n\nexport default CDSContainedListItem;\n"],"names":["customElement"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"contained-list-item.js","sources":["../../../src/components/contained-list/contained-list-item.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2022, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './contained-list.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Contained list item.\n *\n * @element cds-custom-contained-list-item\n * @slot - The content of the list item\n * @slot icon - The icon slot for rendering an icon\n * @slot action - The action slot for interactive elements\n * @fires cds-custom-contained-list-item-click - Fires when clickable item is clicked\n */\n@customElement(`${prefix}-contained-list-item`)\nclass CDSContainedListItem extends LitElement {\n /**\n * Whether this item is clickable\n */\n @property({ type: Boolean, reflect: true })\n clickable = false;\n\n /**\n * Whether this item is disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Handles slot change for icon\n */\n private _handleIconSlotChange({ target }: Event) {\n const slot = target as HTMLSlotElement;\n const hasIcon = slot.assignedElements().length > 0;\n this._hasIcon = hasIcon;\n this.requestUpdate();\n }\n\n private _hasIcon = false;\n\n /**\n * Handles click event\n */\n private _handleClick(event: MouseEvent) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n\n const { eventClick } = this.constructor as typeof CDSContainedListItem;\n this.dispatchEvent(\n new CustomEvent(eventClick, {\n bubbles: true,\n composed: true,\n detail: { item: this },\n })\n );\n }\n\n connectedCallback() {\n super.connectedCallback();\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'listitem');\n }\n }\n\n render() {\n const { disabled, clickable, _hasIcon } = this;\n\n const classes = classMap({\n [`${prefix}--contained-list-item`]: true,\n [`${prefix}--contained-list-item--clickable`]: clickable,\n [`${prefix}--contained-list-item--with-icon`]: _hasIcon,\n });\n\n const contentClasses = `${prefix}--contained-list-item__content`;\n\n const content = html`\n ${_hasIcon\n ? html`\n <div class=\"${prefix}--contained-list-item__icon\">\n <slot\n name=\"icon\"\n @slotchange=\"${this._handleIconSlotChange}\"></slot>\n </div>\n `\n : html`<slot\n name=\"icon\"\n @slotchange=\"${this._handleIconSlotChange}\"></slot>`}\n <div><slot></slot></div>\n `;\n\n return html`\n <div class=\"${classes}\">\n ${clickable\n ? html`\n <button\n class=\"${contentClasses}\"\n type=\"button\"\n ?disabled=\"${disabled}\"\n @click=\"${this._handleClick}\">\n ${content}\n </button>\n `\n : html`<div class=\"${contentClasses}\">${content}</div>`}\n <div class=\"${prefix}--contained-list-item__action\">\n <slot name=\"action\"></slot>\n </div>\n </div>\n `;\n }\n\n /**\n * The name of the custom event fired when a clickable item is clicked\n */\n static get eventClick() {\n return `${prefix}-contained-list-item-click`;\n }\n\n static styles = styles;\n}\n\nexport default CDSContainedListItem;\n"],"names":["customElement"],"mappings":"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"}
|
|
@@ -89,7 +89,7 @@ __decorate([
|
|
|
89
89
|
CDSContainedList = __decorate([
|
|
90
90
|
carbonElement(`${prefix}-contained-list`)
|
|
91
91
|
], CDSContainedList);
|
|
92
|
-
var
|
|
92
|
+
var CDSContainedList_default = CDSContainedList;
|
|
93
93
|
|
|
94
|
-
export {
|
|
94
|
+
export { CDSContainedList_default as default };
|
|
95
95
|
//# sourceMappingURL=contained-list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contained-list.js","sources":["../../../src/components/contained-list/contained-list.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2022, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './contained-list.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport type Variants = 'on-page' | 'disclosed';\n\n/**\n * Contained list.\n *\n * @element cds-custom-contained-list\n * @slot - The list items (cds-custom-contained-list-item elements)\n * @slot action - The action slot for interactive elements in header\n * @slot label - The label text\n */\n@customElement(`${prefix}-contained-list`)\nclass CDSContainedList extends LitElement {\n /**\n * Specify whether the dividing lines in between list items should be inset.\n */\n @property({ type: Boolean, reflect: true, attribute: 'is-inset' })\n isInset = false;\n\n /**\n * The kind of ContainedList you want to display\n */\n @property({ reflect: true })\n kind: Variants = 'on-page';\n\n /**\n * A label describing the contained list.\n */\n @property({ reflect: true })\n label = '';\n\n /**\n * Specify the size of the contained list.\n */\n @property({ reflect: true })\n size?: 'sm' | 'md' | 'lg' | 'xl';\n\n render() {\n const { isInset, kind, label, size } = this;\n\n const classes = classMap({\n [`${prefix}--contained-list`]: true,\n [`${prefix}--contained-list--${kind}`]: true,\n [`${prefix}--contained-list--inset-rulers`]: isInset,\n [`${prefix}--layout--size-${size}`]: !!size,\n });\n\n const hasLabelSlot = this.querySelector('[slot=\"label\"]') !== null;\n\n return html`\n <div class=\"${classes}\">\n ${label || hasLabelSlot\n ? html`\n <div class=\"${prefix}--contained-list__header\">\n <div class=\"${prefix}--contained-list__label\">\n ${hasLabelSlot ? html`<slot name=\"label\"></slot>` : label}\n </div>\n <div class=\"${prefix}--contained-list__action\">\n <slot name=\"action\"></slot>\n </div>\n </div>\n `\n : ''}\n <ul role=\"list\">\n <slot></slot>\n </ul>\n </div>\n `;\n }\n\n static styles = styles;\n}\n\nexport default CDSContainedList;\n"],"names":["customElement"],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;AAKG;AAWH;;;;;;;AAOG;AAEH,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,UAAU,CAAA;AAAzC,IAAA,WAAA,GAAA;;AACE;;AAEG;QAEH,IAAA,CAAA,OAAO,GAAG,KAAK;AAEf;;AAEG;QAEH,IAAA,CAAA,IAAI,GAAa,SAAS;AAE1B;;AAEG;QAEH,IAAA,CAAA,KAAK,GAAG,EAAE;IA0CZ;IAlCE,MAAM,GAAA;QACJ,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI;QAE3C,MAAM,OAAO,GAAG,QAAQ,CAAC;AACvB,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,gBAAA,CAAkB,GAAG,IAAI;AACnC,YAAA,CAAC,GAAG,MAAM,CAAA,kBAAA,EAAqB,IAAI,CAAA,CAAE,GAAG,IAAI;AAC5C,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,8BAAA,CAAgC,GAAG,OAAO;YACpD,CAAC,CAAA,EAAG,MAAM,CAAA,eAAA,EAAkB,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI;AAC5C,SAAA,CAAC;QAEF,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,KAAK,IAAI;AAElE,QAAA,OAAO,IAAI,CAAA;oBACK,OAAO,CAAA;AACjB,QAAA,EAAA,KAAK,IAAI;cACP,IAAI,CAAA;4BACY,MAAM,CAAA;8BACJ,MAAM,CAAA;oBAChB,YAAY,GAAG,IAAI,CAAA,CAAA,0BAAA,CAA4B,GAAG,KAAK;;8BAE7C,MAAM,CAAA;;;;AAIvB,YAAA;AACH,cAAE,EAAE;;;;;KAKT;IACH;;AAEO,gBAAA,CAAA,MAAM,GAAG,MAAH;AArDb,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE;AACjD,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;AAMhB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AACA,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAM3B,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AAChB,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA;AAMX,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AACM,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAvB7B,gBAAgB,GAAA,UAAA,CAAA;AADrB,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,eAAA,CAAiB;AACnC,CAAA,EAAA,gBAAgB,CA2DrB;AAED,
|
|
1
|
+
{"version":3,"file":"contained-list.js","sources":["../../../src/components/contained-list/contained-list.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2022, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './contained-list.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport type Variants = 'on-page' | 'disclosed';\n\n/**\n * Contained list.\n *\n * @element cds-custom-contained-list\n * @slot - The list items (cds-custom-contained-list-item elements)\n * @slot action - The action slot for interactive elements in header\n * @slot label - The label text\n */\n@customElement(`${prefix}-contained-list`)\nclass CDSContainedList extends LitElement {\n /**\n * Specify whether the dividing lines in between list items should be inset.\n */\n @property({ type: Boolean, reflect: true, attribute: 'is-inset' })\n isInset = false;\n\n /**\n * The kind of ContainedList you want to display\n */\n @property({ reflect: true })\n kind: Variants = 'on-page';\n\n /**\n * A label describing the contained list.\n */\n @property({ reflect: true })\n label = '';\n\n /**\n * Specify the size of the contained list.\n */\n @property({ reflect: true })\n size?: 'sm' | 'md' | 'lg' | 'xl';\n\n render() {\n const { isInset, kind, label, size } = this;\n\n const classes = classMap({\n [`${prefix}--contained-list`]: true,\n [`${prefix}--contained-list--${kind}`]: true,\n [`${prefix}--contained-list--inset-rulers`]: isInset,\n [`${prefix}--layout--size-${size}`]: !!size,\n });\n\n const hasLabelSlot = this.querySelector('[slot=\"label\"]') !== null;\n\n return html`\n <div class=\"${classes}\">\n ${label || hasLabelSlot\n ? html`\n <div class=\"${prefix}--contained-list__header\">\n <div class=\"${prefix}--contained-list__label\">\n ${hasLabelSlot ? html`<slot name=\"label\"></slot>` : label}\n </div>\n <div class=\"${prefix}--contained-list__action\">\n <slot name=\"action\"></slot>\n </div>\n </div>\n `\n : ''}\n <ul role=\"list\">\n <slot></slot>\n </ul>\n </div>\n `;\n }\n\n static styles = styles;\n}\n\nexport default CDSContainedList;\n"],"names":["customElement"],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;AAKG;AAWH;;;;;;;AAOG;AAEH,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,UAAU,CAAA;AAAzC,IAAA,WAAA,GAAA;;AACE;;AAEG;QAEH,IAAA,CAAA,OAAO,GAAG,KAAK;AAEf;;AAEG;QAEH,IAAA,CAAA,IAAI,GAAa,SAAS;AAE1B;;AAEG;QAEH,IAAA,CAAA,KAAK,GAAG,EAAE;IA0CZ;IAlCE,MAAM,GAAA;QACJ,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI;QAE3C,MAAM,OAAO,GAAG,QAAQ,CAAC;AACvB,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,gBAAA,CAAkB,GAAG,IAAI;AACnC,YAAA,CAAC,GAAG,MAAM,CAAA,kBAAA,EAAqB,IAAI,CAAA,CAAE,GAAG,IAAI;AAC5C,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,8BAAA,CAAgC,GAAG,OAAO;YACpD,CAAC,CAAA,EAAG,MAAM,CAAA,eAAA,EAAkB,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI;AAC5C,SAAA,CAAC;QAEF,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,KAAK,IAAI;AAElE,QAAA,OAAO,IAAI,CAAA;oBACK,OAAO,CAAA;AACjB,QAAA,EAAA,KAAK,IAAI;cACP,IAAI,CAAA;4BACY,MAAM,CAAA;8BACJ,MAAM,CAAA;oBAChB,YAAY,GAAG,IAAI,CAAA,CAAA,0BAAA,CAA4B,GAAG,KAAK;;8BAE7C,MAAM,CAAA;;;;AAIvB,YAAA;AACH,cAAE,EAAE;;;;;KAKT;IACH;;AAEO,gBAAA,CAAA,MAAM,GAAG,MAAH;AArDb,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE;AACjD,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;AAMhB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AACA,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAM3B,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AAChB,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA;AAMX,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AACM,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAvB7B,gBAAgB,GAAA,UAAA,CAAA;AADrB,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,eAAA,CAAiB;AACnC,CAAA,EAAA,gBAAgB,CA2DrB;AAED,+BAAe,gBAAgB;;;;"}
|
|
@@ -118,7 +118,7 @@ __decorate([
|
|
|
118
118
|
CDSCopy = __decorate([
|
|
119
119
|
carbonElement(`${prefix}-copy`)
|
|
120
120
|
], CDSCopy);
|
|
121
|
-
var
|
|
121
|
+
var CDSCopy_default = CDSCopy;
|
|
122
122
|
|
|
123
|
-
export {
|
|
123
|
+
export { CDSCopy_default as default };
|
|
124
124
|
//# sourceMappingURL=copy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy.js","sources":["../../../src/components/copy/copy.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from '../copy-button/copy-button.scss?lit';\nimport CDSIconButton from '../icon-button/icon-button';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Copy.\n *\n * @element cds-custom-copy\n */\n@customElement(`${prefix}-copy`)\nclass CDSCopy extends CDSIconButton {\n /**\n * `true` to show the feedback tooltip.\n */\n private _showFeedback = false;\n\n /**\n * `true` to show the feedback tooltip.\n */\n private _animation = '';\n\n private _createHandleFeedbackTooltip = () => {\n let timeoutId: number | undefined;\n return (timeout: number) => {\n const buttonClasses = this.shadowRoot?.querySelector('button')?.classList;\n\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = undefined;\n }\n this._showFeedback = true;\n buttonClasses?.add(`${prefix}--copy-btn--animating`);\n this._animation = 'fade-in';\n buttonClasses?.add(`${prefix}--copy-btn--${this._animation}`);\n this.requestUpdate();\n timeoutId = setTimeout(() => {\n this._showFeedback = false;\n this._animation = 'fade-out';\n buttonClasses?.remove(`${prefix}--copy-btn--fade-in`);\n buttonClasses?.add(`${prefix}--copy-btn--${this._animation}`);\n this.requestUpdate();\n }, timeout) as unknown as number;\n };\n };\n\n /**\n * Handles showing/hiding the feedback tooltip.\n */\n private _handleFeedbackTooltip = this._createHandleFeedbackTooltip();\n\n /**\n * Handles `click` event on the copy button.\n */\n private _handleClickButton() {\n this._handleFeedbackTooltip(this.feedbackTimeout);\n }\n\n /**\n * Specify the string that is displayed when the button is clicked and the content is copi\n */\n @property()\n feedback = 'Copied!';\n\n /**\n * The number in milliseconds to determine how long the tooltip should remain.\n */\n @property({ type: Number, attribute: 'feedback-timeout' })\n feedbackTimeout = 2000;\n\n protected _renderTooltipContent() {\n return html`\n <cds-custom-tooltip-content>\n ${this._showFeedback\n ? this.feedback\n : html`<slot name=\"tooltip-content\"></slot>`}\n </cds-custom-tooltip-content>\n `;\n }\n\n connectedCallback() {\n this.closeOnActivation = false;\n\n this.addEventListener('click', this._handleClickButton);\n\n super.connectedCallback();\n }\n\n updated(changedProperties) {\n this.shadowRoot\n ?.querySelector('button')\n ?.addEventListener('animationend', () => {\n if (this._animation === 'fade-out') {\n const buttonClasses =\n this.shadowRoot?.querySelector('button')?.classList;\n buttonClasses?.remove(`${prefix}--copy-btn--animating`);\n buttonClasses?.remove(`${prefix}--copy-btn--${this._animation}`);\n this._animation = '';\n }\n });\n\n super.updated(changedProperties);\n\n this.shadowRoot // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n ?.querySelector('button') // @ts-ignore: TS thinks `host` doesn't exist on `parentNode`\n ?.setAttribute('aria-label', this.parentNode?.host.textContent);\n }\n\n static styles = styles;\n}\n\nexport default CDSCopy;\n"],"names":["customElement"],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;AAKG;AASH;;;;AAIG;AAEH,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,aAAa,CAAA;AAAnC,IAAA,WAAA,GAAA;;AACE;;AAEG;QACK,IAAA,CAAA,aAAa,GAAG,KAAK;AAE7B;;AAEG;QACK,IAAA,CAAA,UAAU,GAAG,EAAE;QAEf,IAAA,CAAA,4BAA4B,GAAG,MAAK;AAC1C,YAAA,IAAI,SAA6B;YACjC,OAAO,CAAC,OAAe,KAAI;;AACzB,gBAAA,MAAM,aAAa,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,aAAa,CAAC,QAAQ,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,SAAS;gBAEzE,IAAI,SAAS,EAAE;oBACb,YAAY,CAAC,SAAS,CAAC;oBACvB,SAAS,GAAG,SAAS;gBACvB;AACA,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI;gBACzB,aAAa,KAAA,IAAA,IAAb,aAAa,KAAA,MAAA,GAAA,MAAA,GAAb,aAAa,CAAE,GAAG,CAAC,CAAA,EAAG,MAAM,CAAA,qBAAA,CAAuB,CAAC;AACpD,gBAAA,IAAI,CAAC,UAAU,GAAG,SAAS;AAC3B,gBAAA,aAAa,KAAA,IAAA,IAAb,aAAa,KAAA,MAAA,GAAA,MAAA,GAAb,aAAa,CAAE,GAAG,CAAC,CAAA,EAAG,MAAM,eAAe,IAAI,CAAC,UAAU,CAAA,CAAE,CAAC;gBAC7D,IAAI,CAAC,aAAa,EAAE;AACpB,gBAAA,SAAS,GAAG,UAAU,CAAC,MAAK;AAC1B,oBAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC1B,oBAAA,IAAI,CAAC,UAAU,GAAG,UAAU;oBAC5B,aAAa,KAAA,IAAA,IAAb,aAAa,KAAA,MAAA,GAAA,MAAA,GAAb,aAAa,CAAE,MAAM,CAAC,CAAA,EAAG,MAAM,CAAA,mBAAA,CAAqB,CAAC;AACrD,oBAAA,aAAa,KAAA,IAAA,IAAb,aAAa,KAAA,MAAA,GAAA,MAAA,GAAb,aAAa,CAAE,GAAG,CAAC,CAAA,EAAG,MAAM,eAAe,IAAI,CAAC,UAAU,CAAA,CAAE,CAAC;oBAC7D,IAAI,CAAC,aAAa,EAAE;gBACtB,CAAC,EAAE,OAAO,CAAsB;AAClC,YAAA,CAAC;AACH,QAAA,CAAC;AAED;;AAEG;AACK,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,CAAC,4BAA4B,EAAE;AASpE;;AAEG;QAEH,IAAA,CAAA,QAAQ,GAAG,SAAS;AAEpB;;AAEG;QAEH,IAAA,CAAA,eAAe,GAAG,IAAI;IAyCxB;AA1DE;;AAEG;IACK,kBAAkB,GAAA;AACxB,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC;IACnD;IAcU,qBAAqB,GAAA;AAC7B,QAAA,OAAO,IAAI,CAAA;;AAEL,QAAA,EAAA,IAAI,CAAC;cACH,IAAI,CAAC;cACL,IAAI,CAAA,CAAA,oCAAA,CAAsC;;KAEjD;IACH;IAEA,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;QAE9B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC;QAEvD,KAAK,CAAC,iBAAiB,EAAE;IAC3B;AAEA,IAAA,OAAO,CAAC,iBAAiB,EAAA;;AACvB,QAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,0CACX,aAAa,CAAC,QAAQ,CAAC,0CACvB,gBAAgB,CAAC,cAAc,EAAE,MAAK;;AACtC,YAAA,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE;AAClC,gBAAA,MAAM,aAAa,GACjB,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,aAAa,CAAC,QAAQ,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,SAAS;gBACrD,aAAa,KAAA,IAAA,IAAb,aAAa,KAAA,MAAA,GAAA,MAAA,GAAb,aAAa,CAAE,MAAM,CAAC,CAAA,EAAG,MAAM,CAAA,qBAAA,CAAuB,CAAC;AACvD,gBAAA,aAAa,KAAA,IAAA,IAAb,aAAa,KAAA,MAAA,GAAA,MAAA,GAAb,aAAa,CAAE,MAAM,CAAC,CAAA,EAAG,MAAM,eAAe,IAAI,CAAC,UAAU,CAAA,CAAE,CAAC;AAChE,gBAAA,IAAI,CAAC,UAAU,GAAG,EAAE;YACtB;AACF,QAAA,CAAC,CAAC;AAEJ,QAAA,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC;AAEhC,QAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU;AACX,cAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,aAAa,CAAC,QAAQ,CAAC;AACvB,cAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,YAAY,CAAC,YAAY,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,IAAI,CAAC,WAAW,CAAC;IACnE;;AAEO,OAAA,CAAA,MAAM,GAAG,MAAH;AA9Cb,UAAA,CAAA;AADC,IAAA,QAAQ;AACY,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAMrB,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE;AAClC,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,MAAA,CAAA;AAzDnB,OAAO,GAAA,UAAA,CAAA;AADZ,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,KAAA,CAAO;AACzB,CAAA,EAAA,OAAO,CAkGZ;AAED,
|
|
1
|
+
{"version":3,"file":"copy.js","sources":["../../../src/components/copy/copy.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from '../copy-button/copy-button.scss?lit';\nimport CDSIconButton from '../icon-button/icon-button';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Copy.\n *\n * @element cds-custom-copy\n */\n@customElement(`${prefix}-copy`)\nclass CDSCopy extends CDSIconButton {\n /**\n * `true` to show the feedback tooltip.\n */\n private _showFeedback = false;\n\n /**\n * `true` to show the feedback tooltip.\n */\n private _animation = '';\n\n private _createHandleFeedbackTooltip = () => {\n let timeoutId: number | undefined;\n return (timeout: number) => {\n const buttonClasses = this.shadowRoot?.querySelector('button')?.classList;\n\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = undefined;\n }\n this._showFeedback = true;\n buttonClasses?.add(`${prefix}--copy-btn--animating`);\n this._animation = 'fade-in';\n buttonClasses?.add(`${prefix}--copy-btn--${this._animation}`);\n this.requestUpdate();\n timeoutId = setTimeout(() => {\n this._showFeedback = false;\n this._animation = 'fade-out';\n buttonClasses?.remove(`${prefix}--copy-btn--fade-in`);\n buttonClasses?.add(`${prefix}--copy-btn--${this._animation}`);\n this.requestUpdate();\n }, timeout) as unknown as number;\n };\n };\n\n /**\n * Handles showing/hiding the feedback tooltip.\n */\n private _handleFeedbackTooltip = this._createHandleFeedbackTooltip();\n\n /**\n * Handles `click` event on the copy button.\n */\n private _handleClickButton() {\n this._handleFeedbackTooltip(this.feedbackTimeout);\n }\n\n /**\n * Specify the string that is displayed when the button is clicked and the content is copi\n */\n @property()\n feedback = 'Copied!';\n\n /**\n * The number in milliseconds to determine how long the tooltip should remain.\n */\n @property({ type: Number, attribute: 'feedback-timeout' })\n feedbackTimeout = 2000;\n\n protected _renderTooltipContent() {\n return html`\n <cds-custom-tooltip-content>\n ${this._showFeedback\n ? this.feedback\n : html`<slot name=\"tooltip-content\"></slot>`}\n </cds-custom-tooltip-content>\n `;\n }\n\n connectedCallback() {\n this.closeOnActivation = false;\n\n this.addEventListener('click', this._handleClickButton);\n\n super.connectedCallback();\n }\n\n updated(changedProperties) {\n this.shadowRoot\n ?.querySelector('button')\n ?.addEventListener('animationend', () => {\n if (this._animation === 'fade-out') {\n const buttonClasses =\n this.shadowRoot?.querySelector('button')?.classList;\n buttonClasses?.remove(`${prefix}--copy-btn--animating`);\n buttonClasses?.remove(`${prefix}--copy-btn--${this._animation}`);\n this._animation = '';\n }\n });\n\n super.updated(changedProperties);\n\n this.shadowRoot // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n ?.querySelector('button') // @ts-ignore: TS thinks `host` doesn't exist on `parentNode`\n ?.setAttribute('aria-label', this.parentNode?.host.textContent);\n }\n\n static styles = styles;\n}\n\nexport default CDSCopy;\n"],"names":["customElement"],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ import FocusMixin from '../../globals/mixins/focus.js';
|
|
|
15
15
|
import styles from './copy-button.scss.js';
|
|
16
16
|
import { POPOVER_ALIGNMENT } from '../popover/defs.js';
|
|
17
17
|
import '../copy/copy.js';
|
|
18
|
-
import
|
|
18
|
+
import iconLoader from '../../globals/internal/icon-loader.js';
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* Copyright IBM Corp. 2019, 2024
|
|
@@ -98,7 +98,7 @@ __decorate([
|
|
|
98
98
|
CDSCopyButton = __decorate([
|
|
99
99
|
carbonElement(`${prefix}-copy-button`)
|
|
100
100
|
], CDSCopyButton);
|
|
101
|
-
var
|
|
101
|
+
var CDSCopyButton_default = CDSCopyButton;
|
|
102
102
|
|
|
103
|
-
export {
|
|
103
|
+
export { CDSCopyButton_default as default };
|
|
104
104
|
//# sourceMappingURL=copy-button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy-button.js","sources":["../../../src/components/copy-button/copy-button.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport Copy16 from '@carbon/icons/es/copy/16.js';\nimport { prefix } from '../../globals/settings';\nimport FocusMixin from '../../globals/mixins/focus';\nimport styles from './copy-button.scss?lit';\nimport { POPOVER_ALIGNMENT } from '../popover/defs';\nimport '../copy/copy';\nimport { iconLoader } from '../../globals/internal/icon-loader';\n\n/**\n * Copy button.\n *\n * @element cds-custom-copy-button\n */\n@customElement(`${prefix}-copy-button`)\nclass CDSCopyButton extends FocusMixin(LitElement) {\n /**\n * Specify an optional className to be added to your Button\n */\n @property({ reflect: true, attribute: 'button-class-name' })\n buttonClassName;\n\n /**\n * `true` if the button should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Specify the string that is displayed when the button is clicked and the content is copi\n */\n @property()\n feedback = 'Copied!';\n\n /**\n * How the tooltip is aligned to the trigger button.\n */\n @property({ reflect: true })\n align = POPOVER_ALIGNMENT.BOTTOM;\n\n /**\n * Specify whether a auto align functionality should be applied\n */\n @property({ type: Boolean, reflect: true })\n autoAlign = false;\n\n /**\n * The number in milliseconds to determine how long the tooltip should remain.\n */\n @property({ type: Number, attribute: 'feedback-timeout' })\n feedbackTimeout = 2000;\n\n render() {\n const {\n buttonClassName,\n disabled,\n feedback,\n feedbackTimeout,\n align,\n autoAlign,\n } = this;\n\n let classes = `${prefix}--copy-btn`;\n\n if (buttonClassName) {\n classes += ` ${buttonClassName}`;\n }\n\n return html`\n <cds-custom-copy\n ?disabled=${disabled}\n ?autoalign=${autoAlign}\n feedback=${feedback}\n feedback-timeout=${feedbackTimeout}\n button-class-name=${classes}\n exportparts=\"button\"\n align=${align}>\n ${iconLoader(Copy16, {\n slot: 'icon',\n class: `${prefix}--snippet__icon`,\n })}\n <slot slot=\"tooltip-content\"></slot>\n </cds-custom-copy>\n `;\n }\n\n static styles = styles;\n}\n\nexport default CDSCopyButton;\n"],"names":["customElement"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;;;;AAKG;AAaH;;;;AAIG;AAEH,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,UAAU,CAAC,UAAU,CAAC,CAAA;AAAlD,IAAA,WAAA,GAAA;;AAOE;;AAEG;QAEH,IAAA,CAAA,QAAQ,GAAG,KAAK;AAEhB;;AAEG;QAEH,IAAA,CAAA,QAAQ,GAAG,SAAS;AAEpB;;AAEG;AAEH,QAAA,IAAA,CAAA,KAAK,GAAG,iBAAiB,CAAC,MAAM;AAEhC;;AAEG;QAEH,IAAA,CAAA,SAAS,GAAG,KAAK;AAEjB;;AAEG;QAEH,IAAA,CAAA,eAAe,GAAG,IAAI;IAqCxB;IAnCE,MAAM,GAAA;AACJ,QAAA,MAAM,EACJ,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,KAAK,EACL,SAAS,GACV,GAAG,IAAI;AAER,QAAA,IAAI,OAAO,GAAG,CAAA,EAAG,MAAM,YAAY;QAEnC,IAAI,eAAe,EAAE;AACnB,YAAA,OAAO,IAAI,CAAA,CAAA,EAAI,eAAe,CAAA,CAAE;QAClC;AAEA,QAAA,OAAO,IAAI,CAAA;;oBAEK,QAAQ;qBACP,SAAS;mBACX,QAAQ;2BACA,eAAe;4BACd,OAAO;;gBAEnB,KAAK,CAAA;UACX,UAAU,CAAC,MAAM,EAAE;AACnB,YAAA,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,CAAA,EAAG,MAAM,CAAA,eAAA,CAAiB;SAClC,CAAC;;;KAGL;IACH;;AAEO,aAAA,CAAA,MAAM,GAAG,MAAH;AAlEb,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,mBAAmB,EAAE;AAC3C,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,MAAA,CAAA;AAMhB,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AACzB,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAMjB,UAAA,CAAA;AADC,IAAA,QAAQ;AACY,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAMrB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AACM,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA;AAMjC,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AACxB,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;AAMlB,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE;AAClC,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,MAAA,CAAA;AAnCnB,aAAa,GAAA,UAAA,CAAA;AADlB,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,YAAA,CAAc;AAChC,CAAA,EAAA,aAAa,CAwElB;AAED,
|
|
1
|
+
{"version":3,"file":"copy-button.js","sources":["../../../src/components/copy-button/copy-button.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport Copy16 from '@carbon/icons/es/copy/16.js';\nimport { prefix } from '../../globals/settings';\nimport FocusMixin from '../../globals/mixins/focus';\nimport styles from './copy-button.scss?lit';\nimport { POPOVER_ALIGNMENT } from '../popover/defs';\nimport '../copy/copy';\nimport { iconLoader } from '../../globals/internal/icon-loader';\n\n/**\n * Copy button.\n *\n * @element cds-custom-copy-button\n */\n@customElement(`${prefix}-copy-button`)\nclass CDSCopyButton extends FocusMixin(LitElement) {\n /**\n * Specify an optional className to be added to your Button\n */\n @property({ reflect: true, attribute: 'button-class-name' })\n buttonClassName;\n\n /**\n * `true` if the button should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Specify the string that is displayed when the button is clicked and the content is copi\n */\n @property()\n feedback = 'Copied!';\n\n /**\n * How the tooltip is aligned to the trigger button.\n */\n @property({ reflect: true })\n align = POPOVER_ALIGNMENT.BOTTOM;\n\n /**\n * Specify whether a auto align functionality should be applied\n */\n @property({ type: Boolean, reflect: true })\n autoAlign = false;\n\n /**\n * The number in milliseconds to determine how long the tooltip should remain.\n */\n @property({ type: Number, attribute: 'feedback-timeout' })\n feedbackTimeout = 2000;\n\n render() {\n const {\n buttonClassName,\n disabled,\n feedback,\n feedbackTimeout,\n align,\n autoAlign,\n } = this;\n\n let classes = `${prefix}--copy-btn`;\n\n if (buttonClassName) {\n classes += ` ${buttonClassName}`;\n }\n\n return html`\n <cds-custom-copy\n ?disabled=${disabled}\n ?autoalign=${autoAlign}\n feedback=${feedback}\n feedback-timeout=${feedbackTimeout}\n button-class-name=${classes}\n exportparts=\"button\"\n align=${align}>\n ${iconLoader(Copy16, {\n slot: 'icon',\n class: `${prefix}--snippet__icon`,\n })}\n <slot slot=\"tooltip-content\"></slot>\n </cds-custom-copy>\n `;\n }\n\n static styles = styles;\n}\n\nexport default CDSCopyButton;\n"],"names":["customElement"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;;;;AAKG;AAaH;;;;AAIG;AAEH,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,UAAU,CAAC,UAAU,CAAC,CAAA;AAAlD,IAAA,WAAA,GAAA;;AAOE;;AAEG;QAEH,IAAA,CAAA,QAAQ,GAAG,KAAK;AAEhB;;AAEG;QAEH,IAAA,CAAA,QAAQ,GAAG,SAAS;AAEpB;;AAEG;AAEH,QAAA,IAAA,CAAA,KAAK,GAAG,iBAAiB,CAAC,MAAM;AAEhC;;AAEG;QAEH,IAAA,CAAA,SAAS,GAAG,KAAK;AAEjB;;AAEG;QAEH,IAAA,CAAA,eAAe,GAAG,IAAI;IAqCxB;IAnCE,MAAM,GAAA;AACJ,QAAA,MAAM,EACJ,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,KAAK,EACL,SAAS,GACV,GAAG,IAAI;AAER,QAAA,IAAI,OAAO,GAAG,CAAA,EAAG,MAAM,YAAY;QAEnC,IAAI,eAAe,EAAE;AACnB,YAAA,OAAO,IAAI,CAAA,CAAA,EAAI,eAAe,CAAA,CAAE;QAClC;AAEA,QAAA,OAAO,IAAI,CAAA;;oBAEK,QAAQ;qBACP,SAAS;mBACX,QAAQ;2BACA,eAAe;4BACd,OAAO;;gBAEnB,KAAK,CAAA;UACX,UAAU,CAAC,MAAM,EAAE;AACnB,YAAA,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,CAAA,EAAG,MAAM,CAAA,eAAA,CAAiB;SAClC,CAAC;;;KAGL;IACH;;AAEO,aAAA,CAAA,MAAM,GAAG,MAAH;AAlEb,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,mBAAmB,EAAE;AAC3C,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,MAAA,CAAA;AAMhB,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AACzB,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAMjB,UAAA,CAAA;AADC,IAAA,QAAQ;AACY,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAMrB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AACM,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA;AAMjC,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AACxB,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;AAMlB,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE;AAClC,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,MAAA,CAAA;AAnCnB,aAAa,GAAA,UAAA,CAAA;AADlB,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,YAAA,CAAc;AAChC,CAAA,EAAA,aAAa,CAwElB;AAED,4BAAe,aAAa;;;;"}
|
|
@@ -187,7 +187,7 @@ __decorate([
|
|
|
187
187
|
CDSTableBatchActions = CDSTableBatchActions_1 = __decorate([
|
|
188
188
|
carbonElement(`${prefix}-table-batch-actions`)
|
|
189
189
|
], CDSTableBatchActions);
|
|
190
|
-
var
|
|
190
|
+
var CDSTableBatchActions_default = CDSTableBatchActions;
|
|
191
191
|
|
|
192
|
-
export {
|
|
192
|
+
export { CDSTableBatchActions_default as default };
|
|
193
193
|
//# sourceMappingURL=table-batch-actions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-batch-actions.js","sources":["../../../src/components/data-table/table-batch-actions.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './data-table.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Table batch actions.\n *\n * @element cds-custom-table-batch-actions\n * @fires cds-custom-table-batch-actions-cancel-clicked - The custom event fired after the Cancel button is clicked.\n * @fires cds-custom-table-batch-actions-select-all-clicked - The custom event fired after the Select all button is clicked.\n */\n\n@customElement(`${prefix}-table-batch-actions`)\nclass CDSTableBatchActions extends LitElement {\n /**\n * Handles `click` event on the Cancel button.\n */\n private _handleCancel() {\n const { eventClickCancel } = this\n .constructor as typeof CDSTableBatchActions;\n this.dispatchEvent(\n new CustomEvent(eventClickCancel, { bubbles: true, composed: true })\n );\n }\n\n /**\n * Handles `click` event on the Select all button.\n */\n private _handleSelectAll() {\n this.dispatchEvent(\n new CustomEvent(CDSTableBatchActions.eventClickSelectAll, {\n bubbles: true,\n composed: true,\n })\n );\n }\n\n /**\n * `true` if this batch actions bar should be active.\n */\n @property({ type: Boolean, reflect: true })\n active = false;\n\n /**\n * The formatter for selected items. Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatSelectedItemsCount = ({ count }) =>\n `${count} item${count <= 1 ? '' : 's'} selected`;\n\n /**\n * Numeric representation of the total number of items selected in a table.\n * This number is used to derive the selection message.\n */\n @property({ type: Number, attribute: 'selected-rows-count' })\n selectedRowsCount = 0;\n\n /**\n * Numeric representation of the total number of items in a table.\n * This number is used in the select all button text\n * This property controls the rendering of the Select all button\n */\n @property({ type: Number, attribute: 'total-rows-count' })\n totalRowsCount = 0;\n\n /**\n * The table size.\n */\n @property({ reflect: true })\n size = 'lg';\n\n firstUpdated() {\n this._updateButtons();\n this._setupHoverListeners();\n }\n\n private _setupHoverListeners() {\n const slot = this.shadowRoot?.querySelector('slot');\n const cancelButton = this.shadowRoot?.querySelector(\n `${prefix}-button.${prefix}--batch-summary__cancel`\n ) as HTMLElement;\n\n if (slot && cancelButton) {\n const setupListeners = () => {\n const buttons = slot.assignedElements();\n const lastButton = buttons[buttons.length - 1] as HTMLElement;\n\n if (lastButton) {\n const handleEnter = () => {\n cancelButton.style.setProperty('--divider-opacity', '0');\n };\n\n const handleLeave = () => {\n cancelButton.style.setProperty('--divider-opacity', '1');\n };\n\n lastButton.removeEventListener('mouseenter', handleEnter);\n lastButton.removeEventListener('mouseleave', handleLeave);\n\n lastButton.addEventListener('mouseenter', handleEnter);\n lastButton.addEventListener('mouseleave', handleLeave);\n }\n };\n\n setupListeners();\n slot.addEventListener('slotchange', setupListeners);\n }\n }\n\n updated(changedProperties) {\n if (changedProperties.has('active')) {\n this.setAttribute('tabindex', `${this.active ? '' : '-1'}`);\n }\n\n if (changedProperties.has('size')) {\n this._updateButtons();\n }\n }\n\n private _updateButtons() {\n this.querySelectorAll(\n (this.constructor as typeof CDSTableBatchActions).selectorButtons\n ).forEach((button) => {\n button.setAttribute('batch-action', '');\n const buttonSize = this.size === 'xs' || this.size === 'sm' ? 'sm' : 'lg';\n button.setAttribute('size', buttonSize);\n });\n }\n\n render() {\n const {\n formatSelectedItemsCount,\n selectedRowsCount,\n totalRowsCount,\n _handleCancel: handleCancel,\n _handleSelectAll: handleSelectAll,\n size,\n } = this;\n\n const buttonSize = size === 'xs' || size === 'sm' ? 'sm' : 'lg';\n\n return html`\n <div class=\"${prefix}--batch-summary\">\n <p class=\"${prefix}--batch-summary__para\">\n ${formatSelectedItemsCount({ count: selectedRowsCount })}\n </p>\n ${totalRowsCount > 0\n ? html`\n <span class=\"${prefix}--batch-summary__divider\">|</span>\n <button\n class=\"${prefix}--btn ${prefix}--btn--primary ${prefix}--batch-summary__select-all\"\n @click=${handleSelectAll}>\n <slot name=\"select-all-button-content\"\n >Select all (${totalRowsCount})</slot\n >\n </button>\n `\n : nothing}\n </div>\n\n <div class=\"${prefix}--action-list\">\n <slot></slot>\n <cds-custom-button\n kind=\"primary\"\n size=\"${buttonSize}\"\n class=\"${prefix}--batch-summary__cancel\"\n batch-action\n @click=${handleCancel}>\n <slot name=\"cancel-button-content\">Cancel</slot>\n </cds-custom-button>\n </div>\n `;\n }\n\n /**\n * The CSS selector to find the action buttons.\n */\n static get selectorButtons() {\n return `${prefix}-button`;\n }\n\n /**\n * The name of the custom event fired after the Cancel button is clicked.\n */\n static get eventClickCancel() {\n return `${prefix}-table-batch-actions-cancel-clicked`;\n }\n\n /**\n * The name of the custom event fired after the Select all button is clicked.\n */\n static get eventClickSelectAll() {\n return `${prefix}-table-batch-actions-select-all-clicked`;\n }\n\n static styles = styles;\n}\n\nexport default CDSTableBatchActions;\n"],"names":["customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table-batch-actions.js","sources":["../../../src/components/data-table/table-batch-actions.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './data-table.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Table batch actions.\n *\n * @element cds-custom-table-batch-actions\n * @fires cds-custom-table-batch-actions-cancel-clicked - The custom event fired after the Cancel button is clicked.\n * @fires cds-custom-table-batch-actions-select-all-clicked - The custom event fired after the Select all button is clicked.\n */\n\n@customElement(`${prefix}-table-batch-actions`)\nclass CDSTableBatchActions extends LitElement {\n /**\n * Handles `click` event on the Cancel button.\n */\n private _handleCancel() {\n const { eventClickCancel } = this\n .constructor as typeof CDSTableBatchActions;\n this.dispatchEvent(\n new CustomEvent(eventClickCancel, { bubbles: true, composed: true })\n );\n }\n\n /**\n * Handles `click` event on the Select all button.\n */\n private _handleSelectAll() {\n this.dispatchEvent(\n new CustomEvent(CDSTableBatchActions.eventClickSelectAll, {\n bubbles: true,\n composed: true,\n })\n );\n }\n\n /**\n * `true` if this batch actions bar should be active.\n */\n @property({ type: Boolean, reflect: true })\n active = false;\n\n /**\n * The formatter for selected items. Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatSelectedItemsCount = ({ count }) =>\n `${count} item${count <= 1 ? '' : 's'} selected`;\n\n /**\n * Numeric representation of the total number of items selected in a table.\n * This number is used to derive the selection message.\n */\n @property({ type: Number, attribute: 'selected-rows-count' })\n selectedRowsCount = 0;\n\n /**\n * Numeric representation of the total number of items in a table.\n * This number is used in the select all button text\n * This property controls the rendering of the Select all button\n */\n @property({ type: Number, attribute: 'total-rows-count' })\n totalRowsCount = 0;\n\n /**\n * The table size.\n */\n @property({ reflect: true })\n size = 'lg';\n\n firstUpdated() {\n this._updateButtons();\n this._setupHoverListeners();\n }\n\n private _setupHoverListeners() {\n const slot = this.shadowRoot?.querySelector('slot');\n const cancelButton = this.shadowRoot?.querySelector(\n `${prefix}-button.${prefix}--batch-summary__cancel`\n ) as HTMLElement;\n\n if (slot && cancelButton) {\n const setupListeners = () => {\n const buttons = slot.assignedElements();\n const lastButton = buttons[buttons.length - 1] as HTMLElement;\n\n if (lastButton) {\n const handleEnter = () => {\n cancelButton.style.setProperty('--divider-opacity', '0');\n };\n\n const handleLeave = () => {\n cancelButton.style.setProperty('--divider-opacity', '1');\n };\n\n lastButton.removeEventListener('mouseenter', handleEnter);\n lastButton.removeEventListener('mouseleave', handleLeave);\n\n lastButton.addEventListener('mouseenter', handleEnter);\n lastButton.addEventListener('mouseleave', handleLeave);\n }\n };\n\n setupListeners();\n slot.addEventListener('slotchange', setupListeners);\n }\n }\n\n updated(changedProperties) {\n if (changedProperties.has('active')) {\n this.setAttribute('tabindex', `${this.active ? '' : '-1'}`);\n }\n\n if (changedProperties.has('size')) {\n this._updateButtons();\n }\n }\n\n private _updateButtons() {\n this.querySelectorAll(\n (this.constructor as typeof CDSTableBatchActions).selectorButtons\n ).forEach((button) => {\n button.setAttribute('batch-action', '');\n const buttonSize = this.size === 'xs' || this.size === 'sm' ? 'sm' : 'lg';\n button.setAttribute('size', buttonSize);\n });\n }\n\n render() {\n const {\n formatSelectedItemsCount,\n selectedRowsCount,\n totalRowsCount,\n _handleCancel: handleCancel,\n _handleSelectAll: handleSelectAll,\n size,\n } = this;\n\n const buttonSize = size === 'xs' || size === 'sm' ? 'sm' : 'lg';\n\n return html`\n <div class=\"${prefix}--batch-summary\">\n <p class=\"${prefix}--batch-summary__para\">\n ${formatSelectedItemsCount({ count: selectedRowsCount })}\n </p>\n ${totalRowsCount > 0\n ? html`\n <span class=\"${prefix}--batch-summary__divider\">|</span>\n <button\n class=\"${prefix}--btn ${prefix}--btn--primary ${prefix}--batch-summary__select-all\"\n @click=${handleSelectAll}>\n <slot name=\"select-all-button-content\"\n >Select all (${totalRowsCount})</slot\n >\n </button>\n `\n : nothing}\n </div>\n\n <div class=\"${prefix}--action-list\">\n <slot></slot>\n <cds-custom-button\n kind=\"primary\"\n size=\"${buttonSize}\"\n class=\"${prefix}--batch-summary__cancel\"\n batch-action\n @click=${handleCancel}>\n <slot name=\"cancel-button-content\">Cancel</slot>\n </cds-custom-button>\n </div>\n `;\n }\n\n /**\n * The CSS selector to find the action buttons.\n */\n static get selectorButtons() {\n return `${prefix}-button`;\n }\n\n /**\n * The name of the custom event fired after the Cancel button is clicked.\n */\n static get eventClickCancel() {\n return `${prefix}-table-batch-actions-cancel-clicked`;\n }\n\n /**\n * The name of the custom event fired after the Select all button is clicked.\n */\n static get eventClickSelectAll() {\n return `${prefix}-table-batch-actions-select-all-clicked`;\n }\n\n static styles = styles;\n}\n\nexport default CDSTableBatchActions;\n"],"names":["customElement"],"mappings":"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"}
|
|
@@ -90,7 +90,7 @@ __decorate([
|
|
|
90
90
|
CDSTableBody = __decorate([
|
|
91
91
|
carbonElement(`${prefix}-table-body`)
|
|
92
92
|
], CDSTableBody);
|
|
93
|
-
var
|
|
93
|
+
var CDSTableBody_default = CDSTableBody;
|
|
94
94
|
|
|
95
|
-
export {
|
|
95
|
+
export { CDSTableBody_default as default };
|
|
96
96
|
//# sourceMappingURL=table-body.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-body.js","sources":["../../../src/components/data-table/table-body.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport CDSTableRow from './table-row';\nimport styles from './data-table.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Data table body.\n *\n * @element cds-custom-table-body\n */\n@customElement(`${prefix}-table-body`)\nclass CDSTableBody extends LitElement {\n /**\n * The `<slot>` element in the shadow DOM.\n */\n @query('slot')\n private _slotNode!: HTMLSlotElement;\n\n /**\n * Updates `even`/`odd` properties of the child `<cds-custom-table-row>`s.\n */\n private _updateZebra() {\n const { useZebraStyles, _slotNode: slotNode } = this;\n slotNode.assignedNodes().forEach((node) => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n const even = (node as HTMLElement).matches('*:nth-of-type(even)');\n (node as CDSTableRow).even = useZebraStyles && even;\n (node as CDSTableRow).odd = useZebraStyles && !even;\n }\n });\n }\n\n /**\n * Handles `slotchange` event in the `<slot>` element in the shadow DOM.\n */\n private _handleSlotChange = () => {\n this._updateZebra();\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSTableBody).eventTableBodyContentChange,\n { bubbles: true, cancelable: false }\n )\n );\n };\n\n /**\n * TODO: Uncomment when Carbon fully implements sticky header\n * Specify whether the header should be sticky.\n * Still experimental: may not work with every combination of table props\n */\n // @property({ type: Boolean, reflect: true, attribute: 'sticky-header' })\n // stickyHeader = false;\n\n /**\n * The color scheme.\n */\n @property({ type: Boolean, reflect: true, attribute: 'use-zebra-styles' })\n useZebraStyles = false;\n\n connectedCallback() {\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'rowgroup');\n }\n super.connectedCallback();\n }\n\n updated(changedProperties) {\n if (changedProperties.has('useZebraStyles')) {\n this._updateZebra();\n }\n }\n\n render() {\n const { _handleSlotChange: handleSlotChange } = this;\n return html` <slot @slotchange=\"${handleSlotChange}\"></slot> `;\n }\n\n /**\n * The name of the custom event fired after the body slot content changes\n */\n static get eventTableBodyContentChange() {\n return `${prefix}-table-body-content-change`;\n }\n\n static styles = styles;\n}\n\nexport default CDSTableBody;\n"],"names":["customElement"],"mappings":";;;;;;;;;;;;;;AAAA;;;;;AAKG;AASH;;;;AAIG;AAEH,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,UAAU,CAAA;AAArC,IAAA,WAAA,GAAA;;AAqBE;;AAEG;QACK,IAAA,CAAA,iBAAiB,GAAG,MAAK;YAC/B,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CACZ,IAAI,CAAC,WAAmC,CAAC,2BAA2B,EACrE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CACrC,CACF;AACH,QAAA,CAAC;AAED;;;;AAIG;;;AAIH;;AAEG;QAEH,IAAA,CAAA,cAAc,GAAG,KAAK;IA4BxB;AAnEE;;AAEG;IACK,YAAY,GAAA;QAClB,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI;QACpD,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YACxC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE;gBACvC,MAAM,IAAI,GAAI,IAAoB,CAAC,OAAO,CAAC,qBAAqB,CAAC;AAChE,gBAAA,IAAoB,CAAC,IAAI,GAAG,cAAc,IAAI,IAAI;AAClD,gBAAA,IAAoB,CAAC,GAAG,GAAG,cAAc,IAAI,CAAC,IAAI;YACrD;AACF,QAAA,CAAC,CAAC;IACJ;IA6BA,iBAAiB,GAAA;QACf,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;AAC9B,YAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC;QACvC;QACA,KAAK,CAAC,iBAAiB,EAAE;IAC3B;AAEA,IAAA,OAAO,CAAC,iBAAiB,EAAA;AACvB,QAAA,IAAI,iBAAiB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;YAC3C,IAAI,CAAC,YAAY,EAAE;QACrB;IACF;IAEA,MAAM,GAAA;AACJ,QAAA,MAAM,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,GAAG,IAAI;AACpD,QAAA,OAAO,IAAI,CAAA,CAAA,oBAAA,EAAuB,gBAAgB,YAAY;IAChE;AAEA;;AAEG;AACH,IAAA,WAAW,2BAA2B,GAAA;QACpC,OAAO,CAAA,EAAG,MAAM,CAAA,0BAAA,CAA4B;IAC9C;;AAEO,YAAA,CAAA,MAAM,GAAG,MAAH;AApEL,UAAA,CAAA;IADP,KAAK,CAAC,MAAM;AACuB,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;AAyCpC,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,kBAAkB,EAAE;AAClD,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,MAAA,CAAA;AA9CnB,YAAY,GAAA,UAAA,CAAA;AADjB,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,WAAA,CAAa;AAC/B,CAAA,EAAA,YAAY,CA0EjB;AAED,
|
|
1
|
+
{"version":3,"file":"table-body.js","sources":["../../../src/components/data-table/table-body.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport CDSTableRow from './table-row';\nimport styles from './data-table.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Data table body.\n *\n * @element cds-custom-table-body\n */\n@customElement(`${prefix}-table-body`)\nclass CDSTableBody extends LitElement {\n /**\n * The `<slot>` element in the shadow DOM.\n */\n @query('slot')\n private _slotNode!: HTMLSlotElement;\n\n /**\n * Updates `even`/`odd` properties of the child `<cds-custom-table-row>`s.\n */\n private _updateZebra() {\n const { useZebraStyles, _slotNode: slotNode } = this;\n slotNode.assignedNodes().forEach((node) => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n const even = (node as HTMLElement).matches('*:nth-of-type(even)');\n (node as CDSTableRow).even = useZebraStyles && even;\n (node as CDSTableRow).odd = useZebraStyles && !even;\n }\n });\n }\n\n /**\n * Handles `slotchange` event in the `<slot>` element in the shadow DOM.\n */\n private _handleSlotChange = () => {\n this._updateZebra();\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSTableBody).eventTableBodyContentChange,\n { bubbles: true, cancelable: false }\n )\n );\n };\n\n /**\n * TODO: Uncomment when Carbon fully implements sticky header\n * Specify whether the header should be sticky.\n * Still experimental: may not work with every combination of table props\n */\n // @property({ type: Boolean, reflect: true, attribute: 'sticky-header' })\n // stickyHeader = false;\n\n /**\n * The color scheme.\n */\n @property({ type: Boolean, reflect: true, attribute: 'use-zebra-styles' })\n useZebraStyles = false;\n\n connectedCallback() {\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'rowgroup');\n }\n super.connectedCallback();\n }\n\n updated(changedProperties) {\n if (changedProperties.has('useZebraStyles')) {\n this._updateZebra();\n }\n }\n\n render() {\n const { _handleSlotChange: handleSlotChange } = this;\n return html` <slot @slotchange=\"${handleSlotChange}\"></slot> `;\n }\n\n /**\n * The name of the custom event fired after the body slot content changes\n */\n static get eventTableBodyContentChange() {\n return `${prefix}-table-body-content-change`;\n }\n\n static styles = styles;\n}\n\nexport default CDSTableBody;\n"],"names":["customElement"],"mappings":";;;;;;;;;;;;;;AAAA;;;;;AAKG;AASH;;;;AAIG;AAEH,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,UAAU,CAAA;AAArC,IAAA,WAAA,GAAA;;AAqBE;;AAEG;QACK,IAAA,CAAA,iBAAiB,GAAG,MAAK;YAC/B,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CACZ,IAAI,CAAC,WAAmC,CAAC,2BAA2B,EACrE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CACrC,CACF;AACH,QAAA,CAAC;AAED;;;;AAIG;;;AAIH;;AAEG;QAEH,IAAA,CAAA,cAAc,GAAG,KAAK;IA4BxB;AAnEE;;AAEG;IACK,YAAY,GAAA;QAClB,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI;QACpD,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YACxC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE;gBACvC,MAAM,IAAI,GAAI,IAAoB,CAAC,OAAO,CAAC,qBAAqB,CAAC;AAChE,gBAAA,IAAoB,CAAC,IAAI,GAAG,cAAc,IAAI,IAAI;AAClD,gBAAA,IAAoB,CAAC,GAAG,GAAG,cAAc,IAAI,CAAC,IAAI;YACrD;AACF,QAAA,CAAC,CAAC;IACJ;IA6BA,iBAAiB,GAAA;QACf,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;AAC9B,YAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC;QACvC;QACA,KAAK,CAAC,iBAAiB,EAAE;IAC3B;AAEA,IAAA,OAAO,CAAC,iBAAiB,EAAA;AACvB,QAAA,IAAI,iBAAiB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;YAC3C,IAAI,CAAC,YAAY,EAAE;QACrB;IACF;IAEA,MAAM,GAAA;AACJ,QAAA,MAAM,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,GAAG,IAAI;AACpD,QAAA,OAAO,IAAI,CAAA,CAAA,oBAAA,EAAuB,gBAAgB,YAAY;IAChE;AAEA;;AAEG;AACH,IAAA,WAAW,2BAA2B,GAAA;QACpC,OAAO,CAAA,EAAG,MAAM,CAAA,0BAAA,CAA4B;IAC9C;;AAEO,YAAA,CAAA,MAAM,GAAG,MAAH;AApEL,UAAA,CAAA;IADP,KAAK,CAAC,MAAM;AACuB,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;AAyCpC,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,kBAAkB,EAAE;AAClD,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,MAAA,CAAA;AA9CnB,YAAY,GAAA,UAAA,CAAA;AADjB,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,WAAA,CAAa;AAC/B,CAAA,EAAA,YAAY,CA0EjB;AAED,2BAAe,YAAY;;;;"}
|
|
@@ -31,7 +31,7 @@ CDSTableCellContent.styles = styles;
|
|
|
31
31
|
CDSTableCellContent = __decorate([
|
|
32
32
|
carbonElement(`${prefix}-table-cell-content`)
|
|
33
33
|
], CDSTableCellContent);
|
|
34
|
-
var
|
|
34
|
+
var CDSTableCellContent_default = CDSTableCellContent;
|
|
35
35
|
|
|
36
|
-
export {
|
|
36
|
+
export { CDSTableCellContent_default as default };
|
|
37
37
|
//# sourceMappingURL=table-cell-content.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-cell-content.js","sources":["../../../src/components/data-table/table-cell-content.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { prefix } from '../../globals/settings';\nimport styles from './data-table.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Data table cell content.\n *\n * @element cds-custom-table-cell-content\n */\n@customElement(`${prefix}-table-cell-content`)\nclass CDSTableCellContent extends LitElement {\n render() {\n return html` <slot></slot> `;\n }\n\n static styles = styles;\n}\n\nexport default CDSTableCellContent;\n"],"names":["customElement"],"mappings":";;;;;;;;;;;;;AAAA;;;;;AAKG;AAOH;;;;AAIG;AAEH,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,UAAU,CAAA;IAC1C,MAAM,GAAA;QACJ,OAAO,IAAI,CAAA,CAAA,eAAA,CAAiB;IAC9B;;AAEO,mBAAA,CAAA,MAAM,GAAG,MAAH;AALT,mBAAmB,GAAA,UAAA,CAAA;AADxB,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,mBAAA,CAAqB;AACvC,CAAA,EAAA,mBAAmB,CAMxB;AAED,
|
|
1
|
+
{"version":3,"file":"table-cell-content.js","sources":["../../../src/components/data-table/table-cell-content.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { prefix } from '../../globals/settings';\nimport styles from './data-table.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Data table cell content.\n *\n * @element cds-custom-table-cell-content\n */\n@customElement(`${prefix}-table-cell-content`)\nclass CDSTableCellContent extends LitElement {\n render() {\n return html` <slot></slot> `;\n }\n\n static styles = styles;\n}\n\nexport default CDSTableCellContent;\n"],"names":["customElement"],"mappings":";;;;;;;;;;;;;AAAA;;;;;AAKG;AAOH;;;;AAIG;AAEH,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,UAAU,CAAA;IAC1C,MAAM,GAAA;QACJ,OAAO,IAAI,CAAA,CAAA,eAAA,CAAiB;IAC9B;;AAEO,mBAAA,CAAA,MAAM,GAAG,MAAH;AALT,mBAAmB,GAAA,UAAA,CAAA;AADxB,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,mBAAA,CAAqB;AACvC,CAAA,EAAA,mBAAmB,CAMxB;AAED,kCAAe,mBAAmB;;;;"}
|