@carbon/web-components 2.58.1 → 2.59.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 +186 -40
- package/es/components/accordion/accordion.scss.js +1 -1
- package/es/components/ai-label/ai-label.scss.js +1 -1
- package/es/components/ai-label/ai-label.scss.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb.scss.js +1 -1
- package/es/components/button/button.d.ts +2 -2
- package/es/components/button/button.d.ts.map +1 -1
- package/es/components/button/button.js +2 -2
- package/es/components/button/button.js.map +1 -1
- package/es/components/button/button.scss.js +1 -1
- package/es/components/button/button.scss.js.map +1 -1
- package/es/components/chat-button/chat-button.scss.js +1 -1
- package/es/components/chat-button/chat-button.scss.js.map +1 -1
- package/es/components/checkbox/checkbox-group.d.ts +1 -1
- package/es/components/checkbox/checkbox.d.ts +1 -1
- package/es/components/checkbox/checkbox.scss.js +1 -1
- package/es/components/code-snippet/code-snippet.d.ts +1 -1
- package/es/components/code-snippet/code-snippet.scss.js +1 -1
- package/es/components/combo-box/combo-box.scss.js +1 -1
- package/es/components/combo-box/combo-box.scss.js.map +1 -1
- package/es/components/combo-button/combo-button.scss.js +1 -1
- package/es/components/contained-list/contained-list.scss.js +1 -1
- package/es/components/contained-list/contained-list.scss.js.map +1 -1
- package/es/components/content-switcher/content-switcher-item.d.ts +1 -1
- package/es/components/content-switcher/content-switcher.scss.js +1 -1
- package/es/components/copy-button/copy-button.scss.js +1 -1
- package/es/components/copy-button/copy-button.scss.js.map +1 -1
- package/es/components/data-table/data-table.scss.js +1 -1
- package/es/components/data-table/table-header-cell.d.ts +1 -1
- package/es/components/data-table/table-toolbar-search.d.ts +1 -1
- package/es/components/date-picker/date-picker-input.d.ts +1 -1
- package/es/components/date-picker/date-picker.scss.js +1 -1
- package/es/components/dialog/dialog.scss.js +1 -1
- package/es/components/dropdown/dropdown.d.ts +1 -1
- package/es/components/dropdown/dropdown.scss.js +1 -1
- package/es/components/file-uploader/file-uploader-button.d.ts +1 -0
- package/es/components/file-uploader/file-uploader-button.d.ts.map +1 -1
- package/es/components/file-uploader/file-uploader-button.js +10 -11
- package/es/components/file-uploader/file-uploader-button.js.map +1 -1
- package/es/components/file-uploader/file-uploader-drop-container.d.ts +1 -0
- package/es/components/file-uploader/file-uploader-drop-container.d.ts.map +1 -1
- package/es/components/file-uploader/file-uploader-drop-container.js +6 -5
- package/es/components/file-uploader/file-uploader-drop-container.js.map +1 -1
- package/es/components/file-uploader/file-uploader.scss.js +1 -1
- package/es/components/file-uploader/file-uploader.scss.js.map +1 -1
- package/es/components/floating-menu/floating-menu.d.ts +1 -1
- package/es/components/floating-menu/floating-menu.js +1 -1
- package/es/components/floating-menu/floating-menu.js.map +1 -1
- package/es/components/fluid-combo-box/fluid-combo-box.scss.js +1 -1
- package/es/components/fluid-combo-box/fluid-combo-box.scss.js.map +1 -1
- package/es/components/fluid-dropdown/fluid-dropdown.scss.js +1 -1
- package/es/components/fluid-dropdown/fluid-dropdown.scss.js.map +1 -1
- package/es/components/fluid-multi-select/fluid-multi-select.scss.js +1 -1
- package/es/components/fluid-multi-select/fluid-multi-select.scss.js.map +1 -1
- package/es/components/fluid-number-input/fluid-number-input.scss.js +1 -1
- package/es/components/fluid-number-input/fluid-number-input.scss.js.map +1 -1
- package/es/components/fluid-password-input/fluid-password-input.scss.js +1 -1
- package/es/components/fluid-password-input/fluid-password-input.scss.js.map +1 -1
- package/es/components/fluid-search/fluid-search.scss.js +1 -1
- package/es/components/fluid-search/fluid-search.scss.js.map +1 -1
- package/es/components/fluid-select/fluid-select.scss.js +1 -1
- package/es/components/fluid-select/fluid-select.scss.js.map +1 -1
- package/es/components/fluid-text-input/fluid-text-input.scss.js +1 -1
- package/es/components/fluid-text-input/fluid-text-input.scss.js.map +1 -1
- package/es/components/fluid-textarea/fluid-textarea.scss.js +1 -1
- package/es/components/fluid-textarea/fluid-textarea.scss.js.map +1 -1
- package/es/components/fluid-time-picker/fluid-time-picker.scss.js +1 -1
- package/es/components/fluid-time-picker/fluid-time-picker.scss.js.map +1 -1
- package/es/components/icon-button/icon-button.d.ts +1 -1
- package/es/components/icon-button/icon-button.d.ts.map +1 -1
- package/es/components/icon-button/icon-button.js.map +1 -1
- package/es/components/icon-button/icon-button.scss.js +1 -1
- package/es/components/icon-button/icon-button.scss.js.map +1 -1
- package/es/components/icon-indicator/icon-indicator.d.ts +20 -1
- package/es/components/icon-indicator/icon-indicator.d.ts.map +1 -1
- package/es/components/icon-indicator/icon-indicator.js +30 -2
- package/es/components/icon-indicator/icon-indicator.js.map +1 -1
- package/es/components/icon-indicator/icon-indicator.scss.js +1 -1
- package/es/components/icon-indicator/icon-indicator.scss.js.map +1 -1
- package/es/components/layout/layout.scss.js +1 -1
- package/es/components/layout/layout.scss.js.map +1 -1
- package/es/components/link/link.d.ts +1 -1
- package/es/components/menu/menu-item-selectable.d.ts +1 -1
- package/es/components/menu/menu-item.scss.js +1 -1
- package/es/components/menu/menu-item.scss.js.map +1 -1
- package/es/components/menu/menu.scss.js +1 -1
- package/es/components/menu-button/menu-button.scss.js +1 -1
- package/es/components/modal/modal-close-button.d.ts +1 -1
- package/es/components/modal/modal.scss.js +1 -1
- package/es/components/multi-select/multi-select.scss.js +1 -1
- package/es/components/notification/actionable-notification.d.ts.map +1 -1
- package/es/components/notification/actionable-notification.js +5 -2
- package/es/components/notification/actionable-notification.js.map +1 -1
- package/es/components/notification/actionable-notification.scss.js +1 -1
- package/es/components/notification/actionable-notification.scss.js.map +1 -1
- package/es/components/notification/inline-notification.scss.js +1 -1
- package/es/components/notification/inline-notification.scss.js.map +1 -1
- package/es/components/notification/toast-notification.scss.js +1 -1
- package/es/components/notification/toast-notification.scss.js.map +1 -1
- package/es/components/number-input/number-input.d.ts +1 -1
- package/es/components/number-input/number-input.scss.js +1 -1
- package/es/components/overflow-menu/overflow-menu-body.d.ts +1 -1
- package/es/components/overflow-menu/overflow-menu-body.d.ts.map +1 -1
- package/es/components/overflow-menu/overflow-menu-body.js +2 -2
- package/es/components/overflow-menu/overflow-menu-body.js.map +1 -1
- package/es/components/overflow-menu/overflow-menu-item.d.ts +1 -1
- package/es/components/overflow-menu/overflow-menu.d.ts +8 -1
- package/es/components/overflow-menu/overflow-menu.d.ts.map +1 -1
- package/es/components/overflow-menu/overflow-menu.js +47 -3
- package/es/components/overflow-menu/overflow-menu.js.map +1 -1
- package/es/components/overflow-menu/overflow-menu.scss.js +1 -1
- package/es/components/overflow-menu/overflow-menu.scss.js.map +1 -1
- package/es/components/pagination/pagination.d.ts +1 -1
- package/es/components/pagination/pagination.scss.js +1 -1
- package/es/components/pagination/pagination.scss.js.map +1 -1
- package/es/components/pagination-nav/pagination-nav.scss.js +1 -1
- package/es/components/pagination-nav/pagination-nav.scss.js.map +1 -1
- package/es/components/password-input/password-input.d.ts +1 -1
- package/es/components/password-input/password-input.scss.js +1 -1
- package/es/components/password-input/password-input.scss.js.map +1 -1
- package/es/components/popover/popover.scss.js +1 -1
- package/es/components/popover/popover.scss.js.map +1 -1
- package/es/components/progress-bar/progress-bar.scss.js +1 -1
- package/es/components/progress-indicator/progress-indicator.scss.js +1 -1
- package/es/components/progress-indicator/progress-step.d.ts +1 -1
- package/es/components/radio-button/radio-button.d.ts +1 -1
- package/es/components/radio-button/radio-button.scss.js +1 -1
- package/es/components/search/search.d.ts +9 -1
- package/es/components/search/search.d.ts.map +1 -1
- package/es/components/search/search.js +7 -6
- package/es/components/search/search.js.map +1 -1
- package/es/components/search/search.scss.js +1 -1
- package/es/components/select/select.d.ts +1 -1
- package/es/components/select/select.scss.js +1 -1
- package/es/components/select/select.scss.js.map +1 -1
- package/es/components/shape-indicator/shape-indicator.d.ts +20 -1
- package/es/components/shape-indicator/shape-indicator.d.ts.map +1 -1
- package/es/components/shape-indicator/shape-indicator.js +32 -4
- package/es/components/shape-indicator/shape-indicator.js.map +1 -1
- package/es/components/shape-indicator/shape-indicator.scss.js +1 -1
- package/es/components/shape-indicator/shape-indicator.scss.js.map +1 -1
- package/es/components/skip-to-content/skip-to-content.d.ts +1 -1
- package/es/components/skip-to-content/skip-to-content.scss.js +1 -1
- package/es/components/slider/slider-input.d.ts +2 -1
- package/es/components/slider/slider-input.d.ts.map +1 -1
- package/es/components/slider/slider-input.js +2 -1
- package/es/components/slider/slider-input.js.map +1 -1
- package/es/components/slider/slider.d.ts +2 -1
- package/es/components/slider/slider.d.ts.map +1 -1
- package/es/components/slider/slider.js +5 -5
- package/es/components/slider/slider.js.map +1 -1
- package/es/components/slider/slider.scss.js +1 -1
- package/es/components/slider/slider.scss.js.map +1 -1
- package/es/components/slug/slug.scss.js +1 -1
- package/es/components/slug/slug.scss.js.map +1 -1
- package/es/components/structured-list/structured-list.d.ts +1 -1
- package/es/components/structured-list/structured-list.scss.js +1 -1
- package/es/components/tabs/tabs-vertical.d.ts +4 -0
- package/es/components/tabs/tabs-vertical.d.ts.map +1 -1
- package/es/components/tabs/tabs-vertical.js +3 -2
- package/es/components/tabs/tabs-vertical.js.map +1 -1
- package/es/components/tabs/tabs.scss.js +1 -1
- package/es/components/tabs/tabs.scss.js.map +1 -1
- package/es/components/tag/operational-tag.d.ts +1 -1
- package/es/components/tag/operational-tag.d.ts.map +1 -1
- package/es/components/tag/operational-tag.js +3 -3
- package/es/components/tag/operational-tag.js.map +1 -1
- package/es/components/tag/selectable-tag.d.ts +1 -1
- package/es/components/tag/selectable-tag.d.ts.map +1 -1
- package/es/components/tag/selectable-tag.js +3 -3
- package/es/components/tag/selectable-tag.js.map +1 -1
- package/es/components/tag/tag.d.ts +1 -0
- package/es/components/tag/tag.d.ts.map +1 -1
- package/es/components/tag/tag.js +3 -3
- package/es/components/tag/tag.js.map +1 -1
- package/es/components/tag/tag.scss.js +1 -1
- package/es/components/text-input/text-input.d.ts +1 -1
- package/es/components/text-input/text-input.scss.js +1 -1
- package/es/components/text-input/text-input.scss.js.map +1 -1
- package/es/components/textarea/textarea.d.ts +1 -1
- package/es/components/textarea/textarea.scss.js +1 -1
- package/es/components/textarea/textarea.scss.js.map +1 -1
- package/es/components/tile/selectable-tile.d.ts +1 -1
- package/es/components/tile/tile.scss.js +1 -1
- package/es/components/tile/tile.scss.js.map +1 -1
- package/es/components/time-picker/time-picker-select.d.ts +1 -1
- package/es/components/time-picker/time-picker.d.ts +1 -1
- package/es/components/time-picker/time-picker.scss.js +1 -1
- package/es/components/time-picker/time-picker.scss.js.map +1 -1
- package/es/components/toggle-tip/toggletip.d.ts +13 -1
- package/es/components/toggle-tip/toggletip.d.ts.map +1 -1
- package/es/components/toggle-tip/toggletip.js +10 -14
- package/es/components/toggle-tip/toggletip.js.map +1 -1
- package/es/components/toggle-tip/toggletip.scss.js +1 -1
- package/es/components/tooltip/definition-tooltip.d.ts +4 -2
- package/es/components/tooltip/definition-tooltip.d.ts.map +1 -1
- package/es/components/tooltip/definition-tooltip.js +23 -12
- package/es/components/tooltip/definition-tooltip.js.map +1 -1
- package/es/components/tooltip/tooltip.scss.js +1 -1
- package/es/components/tooltip/tooltip.scss.js.map +1 -1
- package/es/components/ui-shell/header-global-action.d.ts +1 -1
- package/es/components/ui-shell/header-menu-button.d.ts +1 -1
- package/es/components/ui-shell/header-menu.d.ts +1 -1
- package/es/components/ui-shell/header-name.d.ts +1 -1
- package/es/components/ui-shell/header-nav-item.d.ts +1 -1
- package/es/components/ui-shell/header-panel.d.ts +1 -1
- package/es/components/ui-shell/header.scss.js +1 -1
- package/es/components/ui-shell/side-nav-link.d.ts +1 -1
- package/es/components/ui-shell/side-nav-menu-item.d.ts +1 -1
- package/es/components/ui-shell/side-nav-menu.d.ts +1 -1
- package/es/components/ui-shell/switcher-item.d.ts +1 -1
- package/es/components/ui-shell/switcher.d.ts +1 -1
- package/es-custom/components/accordion/accordion.scss.js +1 -1
- package/es-custom/components/ai-label/ai-label.scss.js +1 -1
- package/es-custom/components/ai-label/ai-label.scss.js.map +1 -1
- package/es-custom/components/breadcrumb/breadcrumb.scss.js +1 -1
- package/es-custom/components/button/button.d.ts +2 -2
- package/es-custom/components/button/button.d.ts.map +1 -1
- package/es-custom/components/button/button.js +2 -2
- package/es-custom/components/button/button.js.map +1 -1
- package/es-custom/components/button/button.scss.js +1 -1
- package/es-custom/components/button/button.scss.js.map +1 -1
- package/es-custom/components/chat-button/chat-button.scss.js +1 -1
- package/es-custom/components/chat-button/chat-button.scss.js.map +1 -1
- package/es-custom/components/checkbox/checkbox-group.d.ts +1 -1
- package/es-custom/components/checkbox/checkbox.d.ts +1 -1
- package/es-custom/components/checkbox/checkbox.scss.js +1 -1
- package/es-custom/components/code-snippet/code-snippet.d.ts +1 -1
- package/es-custom/components/code-snippet/code-snippet.scss.js +1 -1
- package/es-custom/components/combo-box/combo-box.scss.js +1 -1
- package/es-custom/components/combo-box/combo-box.scss.js.map +1 -1
- package/es-custom/components/combo-button/combo-button.scss.js +1 -1
- package/es-custom/components/contained-list/contained-list.scss.js +1 -1
- package/es-custom/components/contained-list/contained-list.scss.js.map +1 -1
- package/es-custom/components/content-switcher/content-switcher-item.d.ts +1 -1
- package/es-custom/components/content-switcher/content-switcher.scss.js +1 -1
- package/es-custom/components/copy-button/copy-button.scss.js +1 -1
- package/es-custom/components/copy-button/copy-button.scss.js.map +1 -1
- package/es-custom/components/data-table/data-table.scss.js +1 -1
- package/es-custom/components/data-table/table-header-cell.d.ts +1 -1
- package/es-custom/components/data-table/table-toolbar-search.d.ts +1 -1
- package/es-custom/components/date-picker/date-picker-input.d.ts +1 -1
- package/es-custom/components/date-picker/date-picker.scss.js +1 -1
- package/es-custom/components/dialog/dialog.scss.js +1 -1
- package/es-custom/components/dropdown/dropdown.d.ts +1 -1
- package/es-custom/components/dropdown/dropdown.scss.js +1 -1
- package/es-custom/components/file-uploader/file-uploader-button.d.ts +1 -0
- package/es-custom/components/file-uploader/file-uploader-button.d.ts.map +1 -1
- package/es-custom/components/file-uploader/file-uploader-button.js +10 -11
- package/es-custom/components/file-uploader/file-uploader-button.js.map +1 -1
- package/es-custom/components/file-uploader/file-uploader-drop-container.d.ts +1 -0
- package/es-custom/components/file-uploader/file-uploader-drop-container.d.ts.map +1 -1
- package/es-custom/components/file-uploader/file-uploader-drop-container.js +6 -5
- package/es-custom/components/file-uploader/file-uploader-drop-container.js.map +1 -1
- package/es-custom/components/file-uploader/file-uploader.scss.js +1 -1
- package/es-custom/components/file-uploader/file-uploader.scss.js.map +1 -1
- package/es-custom/components/floating-menu/floating-menu.d.ts +1 -1
- package/es-custom/components/floating-menu/floating-menu.js +1 -1
- package/es-custom/components/floating-menu/floating-menu.js.map +1 -1
- package/es-custom/components/fluid-combo-box/fluid-combo-box.scss.js +1 -1
- package/es-custom/components/fluid-combo-box/fluid-combo-box.scss.js.map +1 -1
- package/es-custom/components/fluid-dropdown/fluid-dropdown.scss.js +1 -1
- package/es-custom/components/fluid-dropdown/fluid-dropdown.scss.js.map +1 -1
- package/es-custom/components/fluid-multi-select/fluid-multi-select.scss.js +1 -1
- package/es-custom/components/fluid-multi-select/fluid-multi-select.scss.js.map +1 -1
- package/es-custom/components/fluid-number-input/fluid-number-input.scss.js +1 -1
- package/es-custom/components/fluid-number-input/fluid-number-input.scss.js.map +1 -1
- package/es-custom/components/fluid-password-input/fluid-password-input.scss.js +1 -1
- package/es-custom/components/fluid-password-input/fluid-password-input.scss.js.map +1 -1
- package/es-custom/components/fluid-search/fluid-search.scss.js +1 -1
- package/es-custom/components/fluid-search/fluid-search.scss.js.map +1 -1
- package/es-custom/components/fluid-select/fluid-select.scss.js +1 -1
- package/es-custom/components/fluid-select/fluid-select.scss.js.map +1 -1
- package/es-custom/components/fluid-text-input/fluid-text-input.scss.js +1 -1
- package/es-custom/components/fluid-text-input/fluid-text-input.scss.js.map +1 -1
- package/es-custom/components/fluid-textarea/fluid-textarea.scss.js +1 -1
- package/es-custom/components/fluid-textarea/fluid-textarea.scss.js.map +1 -1
- package/es-custom/components/fluid-time-picker/fluid-time-picker.scss.js +1 -1
- package/es-custom/components/fluid-time-picker/fluid-time-picker.scss.js.map +1 -1
- package/es-custom/components/icon-button/icon-button.d.ts +1 -1
- package/es-custom/components/icon-button/icon-button.d.ts.map +1 -1
- package/es-custom/components/icon-button/icon-button.js.map +1 -1
- package/es-custom/components/icon-button/icon-button.scss.js +1 -1
- package/es-custom/components/icon-button/icon-button.scss.js.map +1 -1
- package/es-custom/components/icon-indicator/icon-indicator.d.ts +20 -1
- package/es-custom/components/icon-indicator/icon-indicator.d.ts.map +1 -1
- package/es-custom/components/icon-indicator/icon-indicator.js +30 -2
- package/es-custom/components/icon-indicator/icon-indicator.js.map +1 -1
- package/es-custom/components/icon-indicator/icon-indicator.scss.js +1 -1
- package/es-custom/components/icon-indicator/icon-indicator.scss.js.map +1 -1
- package/es-custom/components/layout/layout.scss.js +1 -1
- package/es-custom/components/layout/layout.scss.js.map +1 -1
- package/es-custom/components/link/link.d.ts +1 -1
- package/es-custom/components/menu/menu-item-selectable.d.ts +1 -1
- package/es-custom/components/menu/menu-item.scss.js +1 -1
- package/es-custom/components/menu/menu-item.scss.js.map +1 -1
- package/es-custom/components/menu/menu.scss.js +1 -1
- package/es-custom/components/menu-button/menu-button.scss.js +1 -1
- package/es-custom/components/modal/modal-close-button.d.ts +1 -1
- package/es-custom/components/modal/modal.scss.js +1 -1
- package/es-custom/components/multi-select/multi-select.scss.js +1 -1
- package/es-custom/components/notification/actionable-notification.d.ts.map +1 -1
- package/es-custom/components/notification/actionable-notification.js +5 -2
- package/es-custom/components/notification/actionable-notification.js.map +1 -1
- package/es-custom/components/notification/actionable-notification.scss.js +1 -1
- package/es-custom/components/notification/actionable-notification.scss.js.map +1 -1
- package/es-custom/components/notification/inline-notification.scss.js +1 -1
- package/es-custom/components/notification/inline-notification.scss.js.map +1 -1
- package/es-custom/components/notification/toast-notification.scss.js +1 -1
- package/es-custom/components/notification/toast-notification.scss.js.map +1 -1
- package/es-custom/components/number-input/number-input.d.ts +1 -1
- package/es-custom/components/number-input/number-input.scss.js +1 -1
- package/es-custom/components/overflow-menu/overflow-menu-body.d.ts +1 -1
- package/es-custom/components/overflow-menu/overflow-menu-body.d.ts.map +1 -1
- package/es-custom/components/overflow-menu/overflow-menu-body.js +2 -2
- package/es-custom/components/overflow-menu/overflow-menu-body.js.map +1 -1
- package/es-custom/components/overflow-menu/overflow-menu-item.d.ts +1 -1
- package/es-custom/components/overflow-menu/overflow-menu.d.ts +8 -1
- package/es-custom/components/overflow-menu/overflow-menu.d.ts.map +1 -1
- package/es-custom/components/overflow-menu/overflow-menu.js +47 -3
- package/es-custom/components/overflow-menu/overflow-menu.js.map +1 -1
- package/es-custom/components/overflow-menu/overflow-menu.scss.js +1 -1
- package/es-custom/components/overflow-menu/overflow-menu.scss.js.map +1 -1
- package/es-custom/components/pagination/pagination.d.ts +1 -1
- package/es-custom/components/pagination/pagination.scss.js +1 -1
- package/es-custom/components/pagination/pagination.scss.js.map +1 -1
- package/es-custom/components/pagination-nav/pagination-nav.scss.js +1 -1
- package/es-custom/components/pagination-nav/pagination-nav.scss.js.map +1 -1
- package/es-custom/components/password-input/password-input.d.ts +1 -1
- package/es-custom/components/password-input/password-input.scss.js +1 -1
- package/es-custom/components/password-input/password-input.scss.js.map +1 -1
- package/es-custom/components/popover/popover.scss.js +1 -1
- package/es-custom/components/popover/popover.scss.js.map +1 -1
- package/es-custom/components/progress-bar/progress-bar.scss.js +1 -1
- package/es-custom/components/progress-indicator/progress-indicator.scss.js +1 -1
- package/es-custom/components/progress-indicator/progress-step.d.ts +1 -1
- package/es-custom/components/radio-button/radio-button.d.ts +1 -1
- package/es-custom/components/radio-button/radio-button.scss.js +1 -1
- package/es-custom/components/search/search.d.ts +9 -1
- package/es-custom/components/search/search.d.ts.map +1 -1
- package/es-custom/components/search/search.js +7 -6
- package/es-custom/components/search/search.js.map +1 -1
- package/es-custom/components/search/search.scss.js +1 -1
- package/es-custom/components/select/select.d.ts +1 -1
- package/es-custom/components/select/select.scss.js +1 -1
- package/es-custom/components/select/select.scss.js.map +1 -1
- package/es-custom/components/shape-indicator/shape-indicator.d.ts +20 -1
- package/es-custom/components/shape-indicator/shape-indicator.d.ts.map +1 -1
- package/es-custom/components/shape-indicator/shape-indicator.js +32 -4
- package/es-custom/components/shape-indicator/shape-indicator.js.map +1 -1
- package/es-custom/components/shape-indicator/shape-indicator.scss.js +1 -1
- package/es-custom/components/shape-indicator/shape-indicator.scss.js.map +1 -1
- package/es-custom/components/skip-to-content/skip-to-content.d.ts +1 -1
- package/es-custom/components/skip-to-content/skip-to-content.scss.js +1 -1
- package/es-custom/components/slider/slider-input.d.ts +2 -1
- package/es-custom/components/slider/slider-input.d.ts.map +1 -1
- package/es-custom/components/slider/slider-input.js +2 -1
- package/es-custom/components/slider/slider-input.js.map +1 -1
- package/es-custom/components/slider/slider.d.ts +2 -1
- package/es-custom/components/slider/slider.d.ts.map +1 -1
- package/es-custom/components/slider/slider.js +5 -5
- package/es-custom/components/slider/slider.js.map +1 -1
- package/es-custom/components/slider/slider.scss.js +1 -1
- package/es-custom/components/slider/slider.scss.js.map +1 -1
- package/es-custom/components/slug/slug.scss.js +1 -1
- package/es-custom/components/slug/slug.scss.js.map +1 -1
- package/es-custom/components/structured-list/structured-list.d.ts +1 -1
- package/es-custom/components/structured-list/structured-list.scss.js +1 -1
- package/es-custom/components/tabs/tabs-vertical.d.ts +4 -0
- package/es-custom/components/tabs/tabs-vertical.d.ts.map +1 -1
- package/es-custom/components/tabs/tabs-vertical.js +3 -2
- package/es-custom/components/tabs/tabs-vertical.js.map +1 -1
- package/es-custom/components/tabs/tabs.scss.js +1 -1
- package/es-custom/components/tabs/tabs.scss.js.map +1 -1
- package/es-custom/components/tag/operational-tag.d.ts +1 -1
- package/es-custom/components/tag/operational-tag.d.ts.map +1 -1
- package/es-custom/components/tag/operational-tag.js +3 -3
- package/es-custom/components/tag/operational-tag.js.map +1 -1
- package/es-custom/components/tag/selectable-tag.d.ts +1 -1
- package/es-custom/components/tag/selectable-tag.d.ts.map +1 -1
- package/es-custom/components/tag/selectable-tag.js +3 -3
- package/es-custom/components/tag/selectable-tag.js.map +1 -1
- package/es-custom/components/tag/tag.d.ts +1 -0
- package/es-custom/components/tag/tag.d.ts.map +1 -1
- package/es-custom/components/tag/tag.js +3 -3
- package/es-custom/components/tag/tag.js.map +1 -1
- package/es-custom/components/tag/tag.scss.js +1 -1
- package/es-custom/components/text-input/text-input.d.ts +1 -1
- package/es-custom/components/text-input/text-input.scss.js +1 -1
- package/es-custom/components/text-input/text-input.scss.js.map +1 -1
- package/es-custom/components/textarea/textarea.d.ts +1 -1
- package/es-custom/components/textarea/textarea.scss.js +1 -1
- package/es-custom/components/textarea/textarea.scss.js.map +1 -1
- package/es-custom/components/tile/selectable-tile.d.ts +1 -1
- package/es-custom/components/tile/tile.scss.js +1 -1
- package/es-custom/components/tile/tile.scss.js.map +1 -1
- package/es-custom/components/time-picker/time-picker-select.d.ts +1 -1
- package/es-custom/components/time-picker/time-picker.d.ts +1 -1
- package/es-custom/components/time-picker/time-picker.scss.js +1 -1
- package/es-custom/components/time-picker/time-picker.scss.js.map +1 -1
- package/es-custom/components/toggle-tip/toggletip.d.ts +13 -1
- package/es-custom/components/toggle-tip/toggletip.d.ts.map +1 -1
- package/es-custom/components/toggle-tip/toggletip.js +10 -14
- package/es-custom/components/toggle-tip/toggletip.js.map +1 -1
- package/es-custom/components/toggle-tip/toggletip.scss.js +1 -1
- package/es-custom/components/tooltip/definition-tooltip.d.ts +4 -2
- package/es-custom/components/tooltip/definition-tooltip.d.ts.map +1 -1
- package/es-custom/components/tooltip/definition-tooltip.js +23 -12
- package/es-custom/components/tooltip/definition-tooltip.js.map +1 -1
- package/es-custom/components/tooltip/tooltip.scss.js +1 -1
- package/es-custom/components/tooltip/tooltip.scss.js.map +1 -1
- package/es-custom/components/ui-shell/header-global-action.d.ts +1 -1
- package/es-custom/components/ui-shell/header-menu-button.d.ts +1 -1
- package/es-custom/components/ui-shell/header-menu.d.ts +1 -1
- package/es-custom/components/ui-shell/header-name.d.ts +1 -1
- package/es-custom/components/ui-shell/header-nav-item.d.ts +1 -1
- package/es-custom/components/ui-shell/header-panel.d.ts +1 -1
- package/es-custom/components/ui-shell/header.scss.js +1 -1
- package/es-custom/components/ui-shell/side-nav-link.d.ts +1 -1
- package/es-custom/components/ui-shell/side-nav-menu-item.d.ts +1 -1
- package/es-custom/components/ui-shell/side-nav-menu.d.ts +1 -1
- package/es-custom/components/ui-shell/switcher-item.d.ts +1 -1
- package/es-custom/components/ui-shell/switcher.d.ts +1 -1
- package/lib/components/button/button.d.ts +2 -2
- package/lib/components/button/button.d.ts.map +1 -1
- package/lib/components/checkbox/checkbox-group.d.ts +1 -1
- package/lib/components/checkbox/checkbox.d.ts +1 -1
- package/lib/components/code-snippet/code-snippet.d.ts +1 -1
- package/lib/components/content-switcher/content-switcher-item.d.ts +1 -1
- package/lib/components/data-table/table-header-cell.d.ts +1 -1
- package/lib/components/data-table/table-toolbar-search.d.ts +1 -1
- package/lib/components/date-picker/date-picker-input.d.ts +1 -1
- package/lib/components/dropdown/dropdown.d.ts +1 -1
- package/lib/components/file-uploader/file-uploader-button.d.ts +1 -0
- package/lib/components/file-uploader/file-uploader-button.d.ts.map +1 -1
- package/lib/components/file-uploader/file-uploader-drop-container.d.ts +1 -0
- package/lib/components/file-uploader/file-uploader-drop-container.d.ts.map +1 -1
- package/lib/components/floating-menu/floating-menu.d.ts +1 -1
- package/lib/components/icon-button/icon-button.d.ts +1 -1
- package/lib/components/icon-button/icon-button.d.ts.map +1 -1
- package/lib/components/icon-indicator/icon-indicator.d.ts +20 -1
- package/lib/components/icon-indicator/icon-indicator.d.ts.map +1 -1
- package/lib/components/link/link.d.ts +1 -1
- package/lib/components/menu/menu-item-selectable.d.ts +1 -1
- package/lib/components/modal/modal-close-button.d.ts +1 -1
- package/lib/components/notification/actionable-notification.d.ts.map +1 -1
- package/lib/components/number-input/number-input.d.ts +1 -1
- package/lib/components/overflow-menu/overflow-menu-body.d.ts +1 -1
- package/lib/components/overflow-menu/overflow-menu-body.d.ts.map +1 -1
- package/lib/components/overflow-menu/overflow-menu-item.d.ts +1 -1
- package/lib/components/overflow-menu/overflow-menu.d.ts +8 -1
- package/lib/components/overflow-menu/overflow-menu.d.ts.map +1 -1
- package/lib/components/pagination/pagination.d.ts +1 -1
- package/lib/components/password-input/password-input.d.ts +1 -1
- package/lib/components/progress-indicator/progress-step.d.ts +1 -1
- package/lib/components/radio-button/radio-button.d.ts +1 -1
- package/lib/components/search/search.d.ts +9 -1
- package/lib/components/search/search.d.ts.map +1 -1
- package/lib/components/select/select.d.ts +1 -1
- package/lib/components/shape-indicator/shape-indicator.d.ts +20 -1
- package/lib/components/shape-indicator/shape-indicator.d.ts.map +1 -1
- package/lib/components/skip-to-content/skip-to-content.d.ts +1 -1
- package/lib/components/slider/slider-input.d.ts +2 -1
- package/lib/components/slider/slider-input.d.ts.map +1 -1
- package/lib/components/slider/slider.d.ts +2 -1
- package/lib/components/slider/slider.d.ts.map +1 -1
- package/lib/components/structured-list/structured-list.d.ts +1 -1
- package/lib/components/tabs/tabs-vertical.d.ts +4 -0
- package/lib/components/tabs/tabs-vertical.d.ts.map +1 -1
- package/lib/components/tag/operational-tag.d.ts +1 -1
- package/lib/components/tag/operational-tag.d.ts.map +1 -1
- package/lib/components/tag/selectable-tag.d.ts +1 -1
- package/lib/components/tag/selectable-tag.d.ts.map +1 -1
- package/lib/components/tag/tag.d.ts +1 -0
- package/lib/components/tag/tag.d.ts.map +1 -1
- package/lib/components/text-input/text-input.d.ts +1 -1
- package/lib/components/textarea/textarea.d.ts +1 -1
- package/lib/components/tile/selectable-tile.d.ts +1 -1
- package/lib/components/time-picker/time-picker-select.d.ts +1 -1
- package/lib/components/time-picker/time-picker.d.ts +1 -1
- package/lib/components/toggle-tip/toggletip.d.ts +13 -1
- package/lib/components/toggle-tip/toggletip.d.ts.map +1 -1
- package/lib/components/tooltip/definition-tooltip.d.ts +4 -2
- package/lib/components/tooltip/definition-tooltip.d.ts.map +1 -1
- package/lib/components/ui-shell/header-global-action.d.ts +1 -1
- package/lib/components/ui-shell/header-menu-button.d.ts +1 -1
- package/lib/components/ui-shell/header-menu.d.ts +1 -1
- package/lib/components/ui-shell/header-name.d.ts +1 -1
- package/lib/components/ui-shell/header-nav-item.d.ts +1 -1
- package/lib/components/ui-shell/header-panel.d.ts +1 -1
- package/lib/components/ui-shell/side-nav-link.d.ts +1 -1
- package/lib/components/ui-shell/side-nav-menu-item.d.ts +1 -1
- package/lib/components/ui-shell/side-nav-menu.d.ts +1 -1
- package/lib/components/ui-shell/switcher-item.d.ts +1 -1
- package/lib/components/ui-shell/switcher.d.ts +1 -1
- package/package.json +8 -7
- package/scss/components/ai-label/ai-label.scss +1 -1
- package/scss/components/button/button.scss +2 -1
- package/scss/components/chat-button/chat-button.scss +1 -1
- package/scss/components/combo-box/combo-box.scss +1 -1
- package/scss/components/contained-list/contained-list.scss +4 -1
- package/scss/components/copy-button/copy-button.scss +1 -1
- package/scss/components/data-table/_table-action.scss +0 -1
- package/scss/components/file-uploader/file-uploader.scss +3 -1
- package/scss/components/fluid-combo-box/fluid-combo-box.scss +1 -1
- package/scss/components/fluid-dropdown/fluid-dropdown.scss +1 -1
- package/scss/components/fluid-multi-select/fluid-multi-select.scss +1 -1
- package/scss/components/fluid-number-input/fluid-number-input.scss +1 -1
- package/scss/components/fluid-password-input/fluid-password-input.scss +1 -1
- package/scss/components/fluid-search/fluid-search.scss +1 -1
- package/scss/components/fluid-select/fluid-select.scss +1 -1
- package/scss/components/fluid-text-input/fluid-text-input.scss +1 -1
- package/scss/components/fluid-textarea/fluid-textarea.scss +1 -1
- package/scss/components/fluid-time-picker/fluid-time-picker.scss +1 -1
- package/scss/components/icon-button/icon-button.scss +1 -1
- package/scss/components/icon-indicator/icon-indicator.scss +19 -1
- package/scss/components/layout/layout.scss +1 -1
- package/scss/components/menu/menu-item.scss +4 -0
- package/scss/components/notification/actionable-notification.scss +1 -1
- package/scss/components/notification/inline-notification.scss +1 -1
- package/scss/components/notification/toast-notification.scss +1 -1
- package/scss/components/overflow-menu/overflow-menu.scss +13 -39
- package/scss/components/pagination/pagination.scss +1 -1
- package/scss/components/pagination-nav/pagination-nav.scss +3 -1
- package/scss/components/password-input/password-input.scss +3 -1
- package/scss/components/popover/popover.scss +3 -1
- package/scss/components/select/select.scss +1 -1
- package/scss/components/shape-indicator/shape-indicator.scss +19 -1
- package/scss/components/slider/slider.scss +1 -1
- package/scss/components/slug/slug.scss +1 -1
- package/scss/components/tabs/tabs.scss +4 -1
- package/scss/components/text-input/text-input.scss +3 -1
- package/scss/components/textarea/textarea.scss +1 -1
- package/scss/components/tile/tile.scss +1 -1
- package/scss/components/time-picker/time-picker.scss +1 -1
- package/scss/components/tooltip/tooltip.scss +15 -2
- package/telemetry.yml +4 -234
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.scss.js","names":[],"sources":["../../../src/components/tabs/tabs.scss?lit"],"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\n@use '@carbon/styles/scss/config' as *;\n@use '@carbon/styles/scss/theme' as *;\n@use '@carbon/styles/scss/utilities' as *;\n@use '@carbon/styles/scss/breakpoint' as *;\n@use '@carbon/styles/scss/spacing' as *;\n@use '@carbon/styles/scss/motion' as *;\n@use '@carbon/styles/scss/type' as *;\n@use '@carbon/styles/scss/components/button/index' as *;\n@use '@carbon/styles/scss/components/tabs/index';\n@use '@carbon/styles/scss/components/tabs/vars' as *;\n@use '@carbon/styles/scss/utilities/button-reset';\n@use '@carbon/styles/scss/layout' as *;\n@use '@carbon/styles/scss/utilities/layout';\n@use '@carbon/styles/scss/utilities/convert';\n@use '@carbon/styles/scss/utilities/skeleton' as *;\n@use '@carbon/styles/scss/utilities/update_fields_on_layer' as *;\n\n$inset-transition: inset 110ms motion(standard, productive);\n\n:host(#{$prefix}-tabs),\n:host(#{$prefix}-tabs-skeleton) {\n @extend .#{$prefix}--tabs;\n @include emit-layout-tokens();\n\n .#{$prefix}--tabs-nav-content-container {\n position: relative;\n overflow: scroll;\n flex: 1 1 0%;\n // for some reason, overflow: hidden shrinks the content\n block-size: layout.size('height');\n scrollbar-width: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n }\n\n /* Set to zero-specificity so it can be overridden by dynamic stylesheet */\n :where(.#{$prefix}--tabs-nav-content) {\n position: absolute;\n block-size: 100%;\n inset-inline-start: 0;\n transition: $inset-transition;\n }\n\n .#{$prefix}--tabs-nav {\n position: absolute;\n display: block;\n }\n\n .#{$prefix}--tab--overflow-nav-button {\n z-index: 1;\n }\n\n .#{$prefix}--tab--overflow-nav-button {\n background-color: var(--tabs-overflow-button-background, $background);\n }\n\n .#{$prefix}--tab--overflow-nav-button--hidden {\n display: none;\n }\n}\n\n:host(#{$prefix}-tabs) {\n @include focus-outline('reset');\n\n .#{$prefix}--tabs-trigger svg {\n block-size: auto;\n inline-size: auto;\n }\n}\n\n:host(#{$prefix}-tabs:focus) {\n .#{$prefix}--tabs-trigger {\n @include focus-outline('outline');\n }\n}\n\n:host(#{$prefix}-tabs[size='sm']) {\n @extend .#{$prefix}--layout--size-sm;\n}\n\n:host(#{$prefix}-tabs[size='md']) {\n @extend .#{$prefix}--layout--size-md;\n}\n\n:host(#{$prefix}-tabs[type='contained'][size='lg']),\n:host(#{$prefix}-tabs[vertical][size='lg']) {\n @extend .#{$prefix}--layout--size-lg;\n}\n\n:host(#{$prefix}-tabs[icon-size='default'])\n .#{$prefix}--tabs-nav-content-container,\n:host(#{$prefix}-tabs.#{$prefix}--tabs__icon--default)\n .#{$prefix}--tabs-nav-content-container {\n overflow: visible;\n block-size: layout.size('height');\n}\n\n:host(#{$prefix}-tabs[icon-size='lg']) .#{$prefix}--tabs-nav-content-container,\n:host(#{$prefix}-tabs.#{$prefix}--tabs__icon--lg)\n .#{$prefix}--tabs-nav-content-container {\n overflow: visible;\n block-size: $spacing-09;\n}\n\n:host(#{$prefix}-tabs[icon-size='default']),\n:host(#{$prefix}-tabs[icon-size='lg']),\n:host(#{$prefix}-tabs.#{$prefix}--tabs__icon--default),\n:host(#{$prefix}-tabs.#{$prefix}--tabs__icon--lg) {\n overflow: visible;\n\n .#{$prefix}--tab--list {\n overflow: visible;\n }\n}\n\n:host(#{$prefix}-tabs[type='contained']) {\n .#{$prefix}--tab--overflow-nav-button {\n background-color: $layer-accent;\n inline-size: $spacing-09;\n\n &:hover {\n background-color: $layer-accent-hover;\n }\n\n &:active {\n background-color: $layer-accent-active;\n }\n }\n}\n\n:host(#{$prefix}-tabs[type='contained'][has-secondary-labels])\n .#{$prefix}--tabs-nav-content-container {\n block-size: $spacing-10;\n}\n\n:host(#{$prefix}-tabs[type='contained'][has-secondary-labels]) #{$prefix}-tab {\n block-size: $spacing-10;\n}\n\n:host(#{$prefix}-tab[type='contained'][secondary-label]) {\n block-size: $spacing-10;\n\n a.#{$prefix}--tabs__nav-link {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n padding: 0 $spacing-05;\n block-size: $spacing-10;\n line-height: normal;\n }\n\n .#{$prefix}--tabs__nav-item-label-wrapper {\n flex-direction: row;\n align-items: center;\n }\n\n .#{$prefix}--tabs__nav-item-label {\n line-height: var(--cds-body-compact-01-line-height);\n }\n}\n\n:host(#{$prefix}-tab[type='contained'][secondary-label][selected]),\n:host(#{$prefix}-tab[type='contained'][secondary-label][selected]:hover) {\n a.#{$prefix}--tabs__nav-link {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n padding: 0 $spacing-05;\n line-height: normal;\n }\n}\n\n:host(#{$prefix}-tab[type='contained']) {\n .#{$prefix}--tabs__nav-item-secondary-label {\n @include type-style('label-01');\n\n display: block;\n overflow: hidden;\n color: $text-secondary;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n\n:host(#{$prefix}-tab[type='contained'][selected]) {\n .#{$prefix}--tabs__nav-item-secondary-label {\n color: $text-primary;\n }\n}\n\n:host(#{$prefix}-tab[type='contained'][disabled]) {\n .#{$prefix}--tabs__nav-item-secondary-label {\n color: $text-on-color-disabled;\n }\n}\n\n:host(#{$prefix}-tabs[type='contained'][full-width]) {\n display: flex;\n inline-size: 100%;\n\n .#{$prefix}--tabs-nav-content-container {\n overflow: visible;\n flex: 1 1 0%;\n }\n\n .#{$prefix}--tabs-nav-content,\n .#{$prefix}--tabs-nav,\n .#{$prefix}--tab--list {\n inline-size: 100%;\n }\n\n .#{$prefix}--tab--list {\n display: flex;\n }\n}\n\n:host(#{$prefix}-tabs[type='contained'][full-width]) #{$prefix}-tab {\n flex: 1 1 0%;\n min-inline-size: 0;\n\n .#{$prefix}--tabs__nav-link {\n overflow: hidden;\n inline-size: 100%;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n\n:host(#{$prefix}-tab),\n:host(#{$prefix}-tab-skeleton) {\n @include layout.use('size', $default: 'md', $min: 'sm', $max: 'lg');\n\n display: flex;\n background: transparent;\n inline-size: 100%;\n\n .#{$prefix}--tabs__nav-item-label-wrapper {\n display: flex;\n align-items: inherit;\n gap: $spacing-03;\n }\n\n .#{$prefix}--tabs__nav-link {\n @include button-reset.reset($width: false);\n @include focus-outline('reset');\n @include type-style('body-compact-01');\n\n position: relative;\n overflow: hidden;\n\n align-items: center;\n padding: $spacing-04 $spacing-05 $spacing-03;\n border-block-end: $tab-underline-color;\n color: $text-secondary;\n inline-size: 100%;\n text-align: start;\n text-decoration: none;\n text-overflow: ellipsis;\n transition:\n border $duration-fast-01 motion(standard, productive),\n outline $duration-fast-01 motion(standard, productive);\n white-space: nowrap;\n\n &:focus,\n &:active {\n @include focus-outline('outline');\n }\n }\n\n outline: none;\n}\n\n:host(#{$prefix}-tab:not([type='contained']):not([vertical])) {\n margin-inline-end: convert.to-rem(1px);\n}\n:host(#{$prefix}-tab:not([type='contained'])) {\n .#{$prefix}--tabs__nav-link {\n display: flex;\n align-items: center;\n block-size: layout.size('height');\n padding-block: 0;\n }\n}\n\n:host(#{$prefix}-tab:not([type='contained']):not([vertical]):last-of-type) {\n margin-inline-end: 0;\n}\n:host(#{$prefix}-tab:not([type='contained']))\n + :host(#{$prefix}-tab:not([type='contained'])) {\n margin-inline-start: convert.to-rem(1px);\n}\n:host(#{$prefix}-tab[vertical]) {\n .#{$prefix}--tabs__nav-link {\n padding-block-end: $spacing-03;\n padding-block-start: $spacing-03;\n }\n}\n\n:host(#{$prefix}-tab[badge-indicator][icon-only]:not([icon-size='lg']))\n #{$prefix}-badge-indicator,\n:host(\n #{$prefix}-tab[badge-indicator].#{$prefix}--tabs__nav-item--icon-only:not(\n .#{$prefix}--tabs__nav-item--icon-only__20\n )\n )\n #{$prefix}-badge-indicator {\n margin-block-start: $spacing-02;\n margin-inline-end: $spacing-02;\n}\n\n:host(#{$prefix}-tab[icon-only]),\n:host(#{$prefix}-tab.#{$prefix}--tabs__nav-item--icon-only) {\n flex: 0 0 auto;\n block-size: layout.size('height');\n inline-size: layout.size('height');\n\n .#{$prefix}--tabs__nav-item-label-wrapper {\n display: flex;\n }\n\n #{$prefix}-tooltip {\n display: block;\n block-size: 100%;\n inline-size: 100%;\n --#{$prefix}-tooltip-padding-block: #{convert.to-rem(2px)};\n --#{$prefix}-popover-caret-width: #{convert.to-rem(8px)};\n --#{$prefix}-popover-caret-height: #{convert.to-rem(4px)};\n --#{$prefix}-popover-offset: #{convert.to-rem(8px)};\n }\n\n #{$prefix}-tooltip::part(popover-container) {\n display: block;\n block-size: 100%;\n inline-size: 100%;\n }\n\n .#{$prefix}--tabs__nav-link {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n block-size: 100%;\n inline-size: 100%;\n }\n\n ::slotted(svg) {\n display: block;\n fill: currentColor;\n }\n}\n\n:host(#{$prefix}-tab[icon-only]:not([type='contained'])),\n:host(\n #{$prefix}-tab.#{$prefix}--tabs__nav-item--icon-only:not([type='contained'])\n ) {\n .#{$prefix}--tabs__nav-item-label-wrapper {\n position: relative;\n inset-block-start: convert.to-rem(1px);\n }\n}\n\n:host(#{$prefix}-tab[icon-only][icon-size='lg']),\n:host(#{$prefix}-tab.#{$prefix}--tabs__nav-item--icon-only__20) {\n block-size: $spacing-09;\n inline-size: $spacing-09;\n}\n\n:host(#{$prefix}-tab[selected]) {\n .#{$prefix}--tabs__nav-link {\n @include type-style('heading-compact-01');\n\n border-block-end: $spacing-01 solid $border-interactive;\n\n &,\n // Need to override Carbon core's non-selected focus color\n &:focus,\n &:active {\n color: $text-primary;\n }\n }\n\n display: flex;\n background-color: transparent;\n transition: color $duration-fast-01 motion(standard, productive);\n\n &:hover {\n background-color: transparent;\n }\n}\n\n:host(\n #{$prefix}-tab:not([type='contained']):hover:not([selected]):not(\n [disabled]\n ):not([vertical])\n ) {\n background-color: transparent;\n\n a.#{$prefix}--tabs__nav-link {\n border-block-end: $tab-underline-color-hover;\n color: $text-primary;\n }\n}\n\n:host(#{$prefix}-tab[icon-only]:hover),\n:host(#{$prefix}-tab.#{$prefix}--tabs__nav-item--icon-only:hover) {\n box-shadow: none;\n}\n\n:host(#{$prefix}-tabs[type='contained'])\n .#{$prefix}--tabs-nav-content-container {\n block-size: layout.size('height');\n}\n\n:host(#{$prefix}-tab[type='contained']) {\n background-color: $layer-accent-01;\n\n a.#{$prefix}--tabs__nav-link {\n padding: $spacing-03 $spacing-05;\n block-size: layout.size('height');\n // height - vertical padding\n line-height: calc(#{layout.size('height')} - (#{$spacing-03} * 2));\n }\n}\n\n:host(#{$prefix}-tab[type='contained']),\n:host(#{$prefix}-tab[type='contained']:hover) {\n a.#{$prefix}--tabs__nav-link {\n border-block-end: none;\n // Draws the border without affecting the inner-content\n box-shadow: rem(-1px) 0 0 0 $border-strong;\n }\n}\n\n:host(#{$prefix}-tab[type='contained'][hide-divider])\n a.#{$prefix}--tabs__nav-link {\n box-shadow: rem(-1px) 0 0 0 transparent;\n}\n\n// `[role]` is only for specificity.\n// We have `:not()` usage in the corresponding Carbon core style\n// which puts specificity of \"specific\" scenario though the style is for \"regular\" scenario\n:host(#{$prefix}-tab[disabled][role]),\n:host(#{$prefix}-tab[disabled][role]:hover) {\n background-color: transparent;\n box-shadow: none;\n cursor: not-allowed;\n outline: none;\n\n .#{$prefix}--tabs__nav-link {\n border-block-end: $tab-underline-color;\n color: $tab-text-disabled;\n outline: none;\n pointer-events: none;\n }\n}\n\n:host(#{$prefix}-tab[type='contained'][disabled][role])\n .#{$prefix}--tabs__nav-link {\n background-color: $button-disabled;\n border-block-end: none;\n color: $text-on-color-disabled;\n}\n\n:host(#{$prefix}-tab[type='contained'][selected]),\n:host(#{$prefix}-tab[type='contained'][selected]:hover) {\n background-color: $layer-01;\n\n .#{$prefix}--tabs__nav-link {\n border-block-end: none;\n // Draws the border without affecting the inner-content\n box-shadow: inset 0 $spacing-01 0 0 $interactive;\n // height - vertical padding\n line-height: calc(#{layout.size('height')} - (#{$spacing-03} * 2));\n }\n\n .#{$prefix}--tabs__nav-link:focus,\n .#{$prefix}--tabs__nav-link:active {\n box-shadow: none;\n }\n}\n\n:host(#{$prefix}-tab[type='contained']:hover) {\n background-color: $layer-accent-01;\n}\n:host(#{$prefix}-tab[type='contained']) {\n .#{$prefix}--tabs__nav-link:hover {\n background-color: $layer-accent-hover;\n }\n}\n\n// Disabled tab never gets selected, but we guard for manual addition of `selected` attribute\n:host(#{$prefix}-tab[disabled][selected]),\n:host(#{$prefix}-tab[disabled][selected]:hover),\n:host(#{$prefix}-tab[disabled][in-focus][selected]),\n:host(#{$prefix}-tab[disabled][in-focus][selected]:hover) {\n display: flex;\n background-color: transparent;\n box-shadow: none;\n\n @include focus-outline('reset');\n\n .#{$prefix}--tabs__nav-link {\n @include type-style('body-short-01');\n\n border-block-end: $tab-underline-color;\n\n color: $tab-text-disabled;\n\n &:focus,\n &:active {\n border-block-end-width: 3px;\n }\n }\n}\n\n:host(#{$prefix}-tabs-skeleton) .#{$prefix}--tabs-trigger {\n @include skeleton;\n\n inline-size: rem(100px);\n}\n\n:host(#{$prefix}-tab-skeleton) {\n margin-inline-start: $spacing-01;\n\n .#{$prefix}--tabs__nav-link {\n @include skeleton;\n\n display: flex;\n align-items: center;\n padding: 0 layout.density('padding-inline');\n background-color: transparent;\n block-size: 100%;\n border-block-end: 2px solid $skeleton-element;\n inline-size: 10rem;\n\n &::before {\n display: none;\n content: none;\n }\n }\n\n .#{$prefix}--tabs__nav-item {\n @include reset;\n\n position: relative;\n display: flex;\n flex: 1 0 auto;\n padding: 0;\n cursor: pointer;\n transition: background-color $duration-fast-01 motion(standard, productive);\n }\n\n span {\n @include skeleton;\n\n display: block;\n block-size: convert.to-rem(14px);\n inline-size: 100%;\n }\n}\n\n:host(#{$prefix}-tab-skeleton) {\n @extend .#{$prefix}--tabs__nav-item;\n}\n\n:host(#{$prefix}-tabs-skeleton) {\n @extend .#{$prefix}--tabs;\n @extend .#{$prefix}--skeleton;\n}\n\n:host(#{$prefix}-tabs-skeleton[contained]) {\n @extend .#{$prefix}--tabs--contained;\n}\n\n:host(#{$prefix}-tab-skeleton:first-of-type) {\n margin-inline-start: 0;\n}\n\n// Windows HCM fix\n:host(#{$prefix}-tab[selected]) .#{$prefix}--tabs__nav-link {\n @include high-contrast-mode {\n background-color: SelectedItem;\n }\n}\n\n:host(#{$prefix}-tab[vertical]) .#{$prefix}--tabs__nav-link {\n display: flex;\n align-items: center;\n block-size: 100%;\n border-block-end: 1px solid $border-subtle;\n}\n\n:host(#{$prefix}-tab[vertical][selected]) .#{$prefix}--tabs__nav-link {\n border-block-end: 1px solid $border-subtle;\n}\n\n:host(#{$prefix}-tab[vertical][disabled]) .#{$prefix}--tabs__nav-link {\n border-block-end: 1px solid $border-subtle;\n}\n\n//-----------------------------\n// Vertical Tabs Wrapper\n//-----------------------------\n\n:host(#{$prefix}-tabs-vertical) {\n @include emit-layout-tokens();\n @include layout.use('density', $default: 'normal');\n\n grid-column: span 2;\n max-block-size: none;\n\n &.#{$prefix}--css-grid {\n box-shadow: inset -1px 0 $border-subtle;\n }\n\n ::slotted(#{$prefix}-tabs) {\n grid-column: span 2;\n\n @include breakpoint(lg) {\n grid-column: span 4;\n }\n }\n\n // Shadow-DOM wrapper for the panel slot — styled directly (no ::slotted needed)\n .#{$prefix}-panel-container {\n @include update_fields_on_layer;\n\n background: $layer;\n grid-column: 3 / -1;\n overflow-y: auto;\n\n @include breakpoint(lg) {\n grid-column: 5 / -1;\n }\n }\n}\n\n// Slotted tab panel divs — match React's cds--tab-content styles\n:host(#{$prefix}-tabs-vertical) ::slotted([role='tabpanel']) {\n // stylelint-disable-next-line declaration-no-important\n padding: layout.density('padding-inline') !important;\n outline: none;\n}\n\n:host(#{$prefix}-tabs-vertical)\n .panel-container\n ::slotted([role='tabpanel']:focus) {\n @include focus-outline('outline');\n}\n\n// cds-tabs when slotted inside cds-tabs-vertical (slot=\"tabs\")\n:host(#{$prefix}-tabs-vertical) ::slotted(#{$prefix}-tabs) {\n background: $layer;\n box-shadow: inset -1px 0 $border-subtle;\n max-block-size: none;\n}\n\n// Internal styles for cds-tabs when inside cds-tabs-vertical\n// These are applied via a CSS custom property / attribute set by the wrapper\n:host(#{$prefix}-tabs[vertical]) {\n // Default line-clamp for vertical tabs\n --#{$prefix}-tabs-vertical-line-clamp: 2;\n\n .#{$prefix}--tabs-nav-content-container {\n block-size: 100%;\n overflow-x: hidden;\n overflow-y: auto;\n }\n\n .#{$prefix}--tabs-nav-content {\n position: relative;\n block-size: 100%;\n }\n\n .#{$prefix}--tabs-nav {\n position: relative;\n }\n\n .#{$prefix}--tab--list {\n display: flex;\n flex-direction: column;\n }\n\n .#{$prefix}--tab--overflow-nav-button {\n display: none;\n }\n}\n\n// Size-specific line-clamp overrides for vertical tabs\n:host(#{$prefix}-tabs[size='sm'][vertical]) {\n --#{$prefix}-tabs-vertical-line-clamp: 1;\n}\n\n:host(#{$prefix}-tab[vertical]) {\n flex: none;\n background-color: $layer-01;\n block-size: var(--#{$prefix}-layout-size-height, $spacing-10);\n border-inline-end: 1px solid $border-subtle;\n box-shadow: inset 3px 0 0 0 $border-subtle;\n inline-size: 100%;\n\n .#{$prefix}--tabs__nav-item-label {\n display: -webkit-box;\n overflow: hidden;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: var(--#{$prefix}-tabs-vertical-line-clamp);\n line-height: var(--cds-body-compact-01-line-height);\n text-overflow: ellipsis;\n white-space: normal;\n }\n}\n\n:host(#{$prefix}-tab[vertical][disabled]) {\n border-inline-end: 1px solid $border-subtle;\n box-shadow: inset 3px 0 0 0 $border-subtle;\n}\n\n:host(#{$prefix}-tab[vertical]:hover),\n:host(#{$prefix}-tab[vertical][disabled]:hover) {\n .#{$prefix}--tabs__nav-link {\n border-block-end: 1px solid $border-subtle;\n }\n}\n\n:host(#{$prefix}-tab[vertical][selected]) {\n border-inline: none;\n box-shadow: inset 3px 0 0 0 $border-interactive;\n}\n\n:host(#{$prefix}-tab[vertical]:not([selected]):not([disabled]):hover) {\n background-color: $layer-hover;\n box-shadow: inset 3px 0 0 0 $border-strong;\n}\n:host(#{$prefix}-tab) {\n .#{$prefix}--tabs__nav-link--dismissable {\n display: flex;\n align-items: flex-start;\n padding-inline-end: $spacing-08;\n }\n .#{$prefix}--tabs--dismissable.#{$prefix}--tabs--contained {\n padding-inline-end: calc($spacing-09 - 1px);\n }\n}\n:host(#{$prefix}-tab[type='contained']) {\n .#{$prefix}--tabs__nav-link.#{$prefix}--tabs__nav-link--dismissable {\n padding-inline-end: calc($spacing-09 - 1px);\n }\n}\n:host(#{$prefix}-tab) {\n .#{$prefix}--tabs__nav-item--close {\n position: relative;\n display: flex;\n align-items: center;\n inset-inline-start: calc(-#{$spacing-04} - 1px);\n margin-inline-start: calc(-#{$spacing-06} + 1px);\n\n &[disabled] {\n pointer-events: none;\n }\n }\n .#{$prefix}--tabs__nav-item--close--hidden {\n display: none;\n }\n .#{$prefix}--tabs__nav-item--close::part(button) {\n @include button-reset.reset();\n\n block-size: convert.to-rem(24px);\n inline-size: convert.to-rem(24px);\n padding-block: $spacing-02;\n padding-inline: $spacing-02;\n pointer-events: inherit;\n\n svg {\n block-size: convert.to-rem(16px);\n fill: $text-secondary;\n inline-size: convert.to-rem(16px);\n }\n\n svg:hover {\n fill: $icon-primary;\n }\n\n &:hover {\n background-color: $layer-hover;\n }\n\n &:focus,\n &:active {\n @include focus-outline('outline');\n }\n }\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"tabs.scss.js","names":[],"sources":["../../../src/components/tabs/tabs.scss?lit"],"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\n@use '@carbon/styles/scss/config' as *;\n@use '@carbon/styles/scss/theme' as *;\n@use '@carbon/styles/scss/utilities' as *;\n@use '@carbon/styles/scss/breakpoint' as *;\n@use '@carbon/styles/scss/spacing' as *;\n@use '@carbon/styles/scss/motion' as *;\n@use '@carbon/styles/scss/type' as *;\n@use '@carbon/styles/scss/components/button/index' as *;\n@use '@carbon/styles/scss/components/tabs/index';\n@use '@carbon/styles/scss/components/tabs/vars' as *;\n@use '@carbon/styles/scss/utilities/button-reset';\n@use '@carbon/styles/scss/utilities/layout' as *;\n@use '@carbon/styles/scss/utilities/layout';\n@use '@carbon/styles/scss/utilities/convert';\n@use '@carbon/styles/scss/utilities/skeleton' as *;\n@use '@carbon/styles/scss/utilities/update_fields_on_layer' as *;\n\n@include emit-layout-context-classes();\n@include emit-layout-context-classes('density');\n\n$inset-transition: inset 110ms motion(standard, productive);\n\n:host(#{$prefix}-tabs),\n:host(#{$prefix}-tabs-skeleton) {\n @extend .#{$prefix}--tabs;\n @include emit-layout-tokens();\n\n .#{$prefix}--tabs-nav-content-container {\n position: relative;\n overflow: scroll;\n flex: 1 1 0%;\n // for some reason, overflow: hidden shrinks the content\n block-size: layout.size('height');\n scrollbar-width: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n }\n\n /* Set to zero-specificity so it can be overridden by dynamic stylesheet */\n :where(.#{$prefix}--tabs-nav-content) {\n position: absolute;\n block-size: 100%;\n inset-inline-start: 0;\n transition: $inset-transition;\n }\n\n .#{$prefix}--tabs-nav {\n position: absolute;\n display: block;\n }\n\n .#{$prefix}--tab--overflow-nav-button {\n z-index: 1;\n }\n\n .#{$prefix}--tab--overflow-nav-button {\n background-color: var(--tabs-overflow-button-background, $background);\n }\n\n .#{$prefix}--tab--overflow-nav-button--hidden {\n display: none;\n }\n}\n\n:host(#{$prefix}-tabs) {\n @include focus-outline('reset');\n\n .#{$prefix}--tabs-trigger svg {\n block-size: auto;\n inline-size: auto;\n }\n}\n\n:host(#{$prefix}-tabs:focus) {\n .#{$prefix}--tabs-trigger {\n @include focus-outline('outline');\n }\n}\n\n:host(#{$prefix}-tabs[size='sm']) {\n @extend .#{$prefix}--layout--size-sm;\n}\n\n:host(#{$prefix}-tabs[size='md']) {\n @extend .#{$prefix}--layout--size-md;\n}\n\n:host(#{$prefix}-tabs[type='contained'][size='lg']),\n:host(#{$prefix}-tabs[vertical][size='lg']) {\n @extend .#{$prefix}--layout--size-lg;\n}\n\n:host(#{$prefix}-tabs[icon-size='default'])\n .#{$prefix}--tabs-nav-content-container,\n:host(#{$prefix}-tabs.#{$prefix}--tabs__icon--default)\n .#{$prefix}--tabs-nav-content-container {\n overflow: visible;\n block-size: layout.size('height');\n}\n\n:host(#{$prefix}-tabs[icon-size='lg']) .#{$prefix}--tabs-nav-content-container,\n:host(#{$prefix}-tabs.#{$prefix}--tabs__icon--lg)\n .#{$prefix}--tabs-nav-content-container {\n overflow: visible;\n block-size: $spacing-09;\n}\n\n:host(#{$prefix}-tabs[icon-size='default']),\n:host(#{$prefix}-tabs[icon-size='lg']),\n:host(#{$prefix}-tabs.#{$prefix}--tabs__icon--default),\n:host(#{$prefix}-tabs.#{$prefix}--tabs__icon--lg) {\n overflow: visible;\n\n .#{$prefix}--tab--list {\n overflow: visible;\n }\n}\n\n:host(#{$prefix}-tabs[type='contained']) {\n .#{$prefix}--tab--overflow-nav-button {\n background-color: $layer-accent;\n inline-size: $spacing-09;\n\n &:hover {\n background-color: $layer-accent-hover;\n }\n\n &:active {\n background-color: $layer-accent-active;\n }\n }\n}\n\n:host(#{$prefix}-tabs[type='contained'][has-secondary-labels])\n .#{$prefix}--tabs-nav-content-container {\n block-size: $spacing-10;\n}\n\n:host(#{$prefix}-tabs[type='contained'][has-secondary-labels]) #{$prefix}-tab {\n block-size: $spacing-10;\n}\n\n:host(#{$prefix}-tab[type='contained'][secondary-label]) {\n block-size: $spacing-10;\n\n a.#{$prefix}--tabs__nav-link {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n padding: 0 $spacing-05;\n block-size: $spacing-10;\n line-height: normal;\n }\n\n .#{$prefix}--tabs__nav-item-label-wrapper {\n flex-direction: row;\n align-items: center;\n }\n\n .#{$prefix}--tabs__nav-item-label {\n line-height: var(--cds-body-compact-01-line-height);\n }\n}\n\n:host(#{$prefix}-tab[type='contained'][secondary-label][selected]),\n:host(#{$prefix}-tab[type='contained'][secondary-label][selected]:hover) {\n a.#{$prefix}--tabs__nav-link {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n padding: 0 $spacing-05;\n line-height: normal;\n }\n}\n\n:host(#{$prefix}-tab[type='contained']) {\n .#{$prefix}--tabs__nav-item-secondary-label {\n @include type-style('label-01');\n\n display: block;\n overflow: hidden;\n color: $text-secondary;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n\n:host(#{$prefix}-tab[type='contained'][selected]) {\n .#{$prefix}--tabs__nav-item-secondary-label {\n color: $text-primary;\n }\n}\n\n:host(#{$prefix}-tab[type='contained'][disabled]) {\n .#{$prefix}--tabs__nav-item-secondary-label {\n color: $text-on-color-disabled;\n }\n}\n\n:host(#{$prefix}-tabs[type='contained'][full-width]) {\n display: flex;\n inline-size: 100%;\n\n .#{$prefix}--tabs-nav-content-container {\n overflow: visible;\n flex: 1 1 0%;\n }\n\n .#{$prefix}--tabs-nav-content,\n .#{$prefix}--tabs-nav,\n .#{$prefix}--tab--list {\n inline-size: 100%;\n }\n\n .#{$prefix}--tab--list {\n display: flex;\n }\n}\n\n:host(#{$prefix}-tabs[type='contained'][full-width]) #{$prefix}-tab {\n flex: 1 1 0%;\n min-inline-size: 0;\n\n .#{$prefix}--tabs__nav-link {\n overflow: hidden;\n inline-size: 100%;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n\n:host(#{$prefix}-tab),\n:host(#{$prefix}-tab-skeleton) {\n @include layout.use('size', $default: 'md', $min: 'sm', $max: 'lg');\n\n display: flex;\n background: transparent;\n inline-size: 100%;\n\n .#{$prefix}--tabs__nav-item-label-wrapper {\n display: flex;\n align-items: inherit;\n gap: $spacing-03;\n }\n\n .#{$prefix}--tabs__nav-link {\n @include button-reset.reset($width: false);\n @include focus-outline('reset');\n @include type-style('body-compact-01');\n\n position: relative;\n overflow: hidden;\n\n align-items: center;\n padding: $spacing-04 $spacing-05 $spacing-03;\n border-block-end: $tab-underline-color;\n color: $text-secondary;\n inline-size: 100%;\n text-align: start;\n text-decoration: none;\n text-overflow: ellipsis;\n transition:\n border $duration-fast-01 motion(standard, productive),\n outline $duration-fast-01 motion(standard, productive);\n white-space: nowrap;\n\n &:focus,\n &:active {\n @include focus-outline('outline');\n }\n }\n\n outline: none;\n}\n\n:host(#{$prefix}-tab:not([type='contained']):not([vertical])) {\n margin-inline-end: convert.to-rem(1px);\n}\n:host(#{$prefix}-tab:not([type='contained'])) {\n .#{$prefix}--tabs__nav-link {\n display: flex;\n align-items: center;\n block-size: layout.size('height');\n padding-block: 0;\n }\n}\n\n:host(#{$prefix}-tab:not([type='contained']):not([vertical]):last-of-type) {\n margin-inline-end: 0;\n}\n:host(#{$prefix}-tab:not([type='contained']))\n + :host(#{$prefix}-tab:not([type='contained'])) {\n margin-inline-start: convert.to-rem(1px);\n}\n:host(#{$prefix}-tab[vertical]) {\n .#{$prefix}--tabs__nav-link {\n padding-block-end: $spacing-03;\n padding-block-start: $spacing-03;\n }\n}\n\n:host(#{$prefix}-tab[badge-indicator][icon-only]:not([icon-size='lg']))\n #{$prefix}-badge-indicator,\n:host(\n #{$prefix}-tab[badge-indicator].#{$prefix}--tabs__nav-item--icon-only:not(\n .#{$prefix}--tabs__nav-item--icon-only__20\n )\n )\n #{$prefix}-badge-indicator {\n margin-block-start: $spacing-02;\n margin-inline-end: $spacing-02;\n}\n\n:host(#{$prefix}-tab[icon-only]),\n:host(#{$prefix}-tab.#{$prefix}--tabs__nav-item--icon-only) {\n flex: 0 0 auto;\n block-size: layout.size('height');\n inline-size: layout.size('height');\n\n .#{$prefix}--tabs__nav-item-label-wrapper {\n display: flex;\n }\n\n #{$prefix}-tooltip {\n display: block;\n block-size: 100%;\n inline-size: 100%;\n --#{$prefix}-tooltip-padding-block: #{convert.to-rem(2px)};\n --#{$prefix}-popover-caret-width: #{convert.to-rem(8px)};\n --#{$prefix}-popover-caret-height: #{convert.to-rem(4px)};\n --#{$prefix}-popover-offset: #{convert.to-rem(8px)};\n }\n\n #{$prefix}-tooltip::part(popover-container) {\n display: block;\n block-size: 100%;\n inline-size: 100%;\n }\n\n .#{$prefix}--tabs__nav-link {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n block-size: 100%;\n inline-size: 100%;\n }\n\n ::slotted(svg) {\n display: block;\n fill: currentColor;\n }\n}\n\n:host(#{$prefix}-tab[icon-only]:not([type='contained'])),\n:host(\n #{$prefix}-tab.#{$prefix}--tabs__nav-item--icon-only:not([type='contained'])\n ) {\n .#{$prefix}--tabs__nav-item-label-wrapper {\n position: relative;\n inset-block-start: convert.to-rem(1px);\n }\n}\n\n:host(#{$prefix}-tab[icon-only][icon-size='lg']),\n:host(#{$prefix}-tab.#{$prefix}--tabs__nav-item--icon-only__20) {\n block-size: $spacing-09;\n inline-size: $spacing-09;\n}\n\n:host(#{$prefix}-tab[selected]) {\n .#{$prefix}--tabs__nav-link {\n @include type-style('heading-compact-01');\n\n border-block-end: $spacing-01 solid $border-interactive;\n\n &,\n // Need to override Carbon core's non-selected focus color\n &:focus,\n &:active {\n color: $text-primary;\n }\n }\n\n display: flex;\n background-color: transparent;\n transition: color $duration-fast-01 motion(standard, productive);\n\n &:hover {\n background-color: transparent;\n }\n}\n\n:host(\n #{$prefix}-tab:not([type='contained']):hover:not([selected]):not(\n [disabled]\n ):not([vertical])\n ) {\n background-color: transparent;\n\n a.#{$prefix}--tabs__nav-link {\n border-block-end: $tab-underline-color-hover;\n color: $text-primary;\n }\n}\n\n:host(#{$prefix}-tab[icon-only]:hover),\n:host(#{$prefix}-tab.#{$prefix}--tabs__nav-item--icon-only:hover) {\n box-shadow: none;\n}\n\n:host(#{$prefix}-tabs[type='contained'])\n .#{$prefix}--tabs-nav-content-container {\n block-size: layout.size('height');\n}\n\n:host(#{$prefix}-tab[type='contained']) {\n background-color: $layer-accent-01;\n\n a.#{$prefix}--tabs__nav-link {\n padding: $spacing-03 $spacing-05;\n block-size: layout.size('height');\n // height - vertical padding\n line-height: calc(#{layout.size('height')} - (#{$spacing-03} * 2));\n }\n}\n\n:host(#{$prefix}-tab[type='contained']),\n:host(#{$prefix}-tab[type='contained']:hover) {\n a.#{$prefix}--tabs__nav-link {\n border-block-end: none;\n // Draws the border without affecting the inner-content\n box-shadow: rem(-1px) 0 0 0 $border-strong;\n }\n}\n\n:host(#{$prefix}-tab[type='contained'][hide-divider])\n a.#{$prefix}--tabs__nav-link {\n box-shadow: rem(-1px) 0 0 0 transparent;\n}\n\n// `[role]` is only for specificity.\n// We have `:not()` usage in the corresponding Carbon core style\n// which puts specificity of \"specific\" scenario though the style is for \"regular\" scenario\n:host(#{$prefix}-tab[disabled][role]),\n:host(#{$prefix}-tab[disabled][role]:hover) {\n background-color: transparent;\n box-shadow: none;\n cursor: not-allowed;\n outline: none;\n\n .#{$prefix}--tabs__nav-link {\n border-block-end: $tab-underline-color;\n color: $tab-text-disabled;\n outline: none;\n pointer-events: none;\n }\n}\n\n:host(#{$prefix}-tab[type='contained'][disabled][role])\n .#{$prefix}--tabs__nav-link {\n background-color: $button-disabled;\n border-block-end: none;\n color: $text-on-color-disabled;\n}\n\n:host(#{$prefix}-tab[type='contained'][selected]),\n:host(#{$prefix}-tab[type='contained'][selected]:hover) {\n background-color: $layer-01;\n\n .#{$prefix}--tabs__nav-link {\n border-block-end: none;\n // Draws the border without affecting the inner-content\n box-shadow: inset 0 $spacing-01 0 0 $interactive;\n // height - vertical padding\n line-height: calc(#{layout.size('height')} - (#{$spacing-03} * 2));\n }\n\n .#{$prefix}--tabs__nav-link:focus,\n .#{$prefix}--tabs__nav-link:active {\n box-shadow: none;\n }\n}\n\n:host(#{$prefix}-tab[type='contained']:hover) {\n background-color: $layer-accent-01;\n}\n:host(#{$prefix}-tab[type='contained']) {\n .#{$prefix}--tabs__nav-link:hover {\n background-color: $layer-accent-hover;\n }\n}\n\n// Disabled tab never gets selected, but we guard for manual addition of `selected` attribute\n:host(#{$prefix}-tab[disabled][selected]),\n:host(#{$prefix}-tab[disabled][selected]:hover),\n:host(#{$prefix}-tab[disabled][in-focus][selected]),\n:host(#{$prefix}-tab[disabled][in-focus][selected]:hover) {\n display: flex;\n background-color: transparent;\n box-shadow: none;\n\n @include focus-outline('reset');\n\n .#{$prefix}--tabs__nav-link {\n @include type-style('body-short-01');\n\n border-block-end: $tab-underline-color;\n\n color: $tab-text-disabled;\n\n &:focus,\n &:active {\n border-block-end-width: 3px;\n }\n }\n}\n\n:host(#{$prefix}-tabs-skeleton) .#{$prefix}--tabs-trigger {\n @include skeleton;\n\n inline-size: rem(100px);\n}\n\n:host(#{$prefix}-tab-skeleton) {\n margin-inline-start: $spacing-01;\n\n .#{$prefix}--tabs__nav-link {\n @include skeleton;\n\n display: flex;\n align-items: center;\n padding: 0 layout.density('padding-inline');\n background-color: transparent;\n block-size: 100%;\n border-block-end: 2px solid $skeleton-element;\n inline-size: 10rem;\n\n &::before {\n display: none;\n content: none;\n }\n }\n\n .#{$prefix}--tabs__nav-item {\n @include reset;\n\n position: relative;\n display: flex;\n flex: 1 0 auto;\n padding: 0;\n cursor: pointer;\n transition: background-color $duration-fast-01 motion(standard, productive);\n }\n\n span {\n @include skeleton;\n\n display: block;\n block-size: convert.to-rem(14px);\n inline-size: 100%;\n }\n}\n\n:host(#{$prefix}-tab-skeleton) {\n @extend .#{$prefix}--tabs__nav-item;\n}\n\n:host(#{$prefix}-tabs-skeleton) {\n @extend .#{$prefix}--tabs;\n @extend .#{$prefix}--skeleton;\n}\n\n:host(#{$prefix}-tabs-skeleton[contained]) {\n @extend .#{$prefix}--tabs--contained;\n}\n\n:host(#{$prefix}-tab-skeleton:first-of-type) {\n margin-inline-start: 0;\n}\n\n// Windows HCM fix\n:host(#{$prefix}-tab[selected]) .#{$prefix}--tabs__nav-link {\n @include high-contrast-mode {\n background-color: SelectedItem;\n }\n}\n\n:host(#{$prefix}-tab[vertical]) .#{$prefix}--tabs__nav-link {\n display: flex;\n align-items: center;\n block-size: 100%;\n border-block-end: 1px solid $border-subtle;\n}\n\n:host(#{$prefix}-tab[vertical][selected]) .#{$prefix}--tabs__nav-link {\n border-block-end: 1px solid $border-subtle;\n}\n\n:host(#{$prefix}-tab[vertical][disabled]) .#{$prefix}--tabs__nav-link {\n border-block-end: 1px solid $border-subtle;\n}\n\n//-----------------------------\n// Vertical Tabs Wrapper\n//-----------------------------\n\n:host(#{$prefix}-tabs-vertical) {\n @include emit-layout-tokens();\n @include layout.use('density', $default: 'normal');\n\n grid-column: span 2;\n max-block-size: none;\n\n &.#{$prefix}--css-grid {\n box-shadow: inset -1px 0 $border-subtle;\n }\n\n ::slotted(#{$prefix}-tabs) {\n grid-column: span 2;\n\n @include breakpoint(lg) {\n grid-column: span 4;\n }\n }\n\n // Shadow-DOM wrapper for the panel slot — styled directly (no ::slotted needed)\n .#{$prefix}-panel-container {\n @include update_fields_on_layer;\n\n background: $layer;\n grid-column: 3 / -1;\n overflow-y: auto;\n\n @include breakpoint(lg) {\n grid-column: 5 / -1;\n }\n }\n}\n\n// Slotted tab panel divs — match React's cds--tab-content styles\n:host(#{$prefix}-tabs-vertical) ::slotted([role='tabpanel']) {\n // stylelint-disable-next-line declaration-no-important\n padding: layout.density('padding-inline') !important;\n outline: none;\n}\n\n:host(#{$prefix}-tabs-vertical)\n .panel-container\n ::slotted([role='tabpanel']:focus) {\n @include focus-outline('outline');\n}\n\n// cds-tabs when slotted inside cds-tabs-vertical (slot=\"tabs\")\n:host(#{$prefix}-tabs-vertical) ::slotted(#{$prefix}-tabs) {\n background: $layer;\n box-shadow: inset -1px 0 $border-subtle;\n max-block-size: none;\n}\n\n// Internal styles for cds-tabs when inside cds-tabs-vertical\n// These are applied via a CSS custom property / attribute set by the wrapper\n:host(#{$prefix}-tabs[vertical]) {\n // Default line-clamp for vertical tabs\n --#{$prefix}-tabs-vertical-line-clamp: 2;\n\n .#{$prefix}--tabs-nav-content-container {\n block-size: 100%;\n overflow-x: hidden;\n overflow-y: auto;\n }\n\n .#{$prefix}--tabs-nav-content {\n position: relative;\n block-size: 100%;\n }\n\n .#{$prefix}--tabs-nav {\n position: relative;\n }\n\n .#{$prefix}--tab--list {\n display: flex;\n flex-direction: column;\n }\n\n .#{$prefix}--tab--overflow-nav-button {\n display: none;\n }\n}\n\n// Size-specific line-clamp overrides for vertical tabs\n:host(#{$prefix}-tabs[size='sm'][vertical]) {\n --#{$prefix}-tabs-vertical-line-clamp: 1;\n}\n\n:host(#{$prefix}-tab[vertical]) {\n flex: none;\n background-color: $layer-01;\n block-size: var(--#{$prefix}-layout-size-height, $spacing-10);\n border-inline-end: 1px solid $border-subtle;\n box-shadow: inset 3px 0 0 0 $border-subtle;\n inline-size: 100%;\n\n .#{$prefix}--tabs__nav-item-label {\n display: -webkit-box;\n overflow: hidden;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: var(--#{$prefix}-tabs-vertical-line-clamp);\n line-height: var(--cds-body-compact-01-line-height);\n text-overflow: ellipsis;\n white-space: normal;\n }\n}\n\n:host(#{$prefix}-tab[vertical][disabled]) {\n border-inline-end: 1px solid $border-subtle;\n box-shadow: inset 3px 0 0 0 $border-subtle;\n}\n\n:host(#{$prefix}-tab[vertical]:hover),\n:host(#{$prefix}-tab[vertical][disabled]:hover) {\n .#{$prefix}--tabs__nav-link {\n border-block-end: 1px solid $border-subtle;\n }\n}\n\n:host(#{$prefix}-tab[vertical][selected]) {\n border-inline: none;\n box-shadow: inset 3px 0 0 0 $border-interactive;\n}\n\n:host(#{$prefix}-tab[vertical]:not([selected]):not([disabled]):hover) {\n background-color: $layer-hover;\n box-shadow: inset 3px 0 0 0 $border-strong;\n}\n:host(#{$prefix}-tab) {\n .#{$prefix}--tabs__nav-link--dismissable {\n display: flex;\n align-items: flex-start;\n padding-inline-end: $spacing-08;\n }\n .#{$prefix}--tabs--dismissable.#{$prefix}--tabs--contained {\n padding-inline-end: calc($spacing-09 - 1px);\n }\n}\n:host(#{$prefix}-tab[type='contained']) {\n .#{$prefix}--tabs__nav-link.#{$prefix}--tabs__nav-link--dismissable {\n padding-inline-end: calc($spacing-09 - 1px);\n }\n}\n:host(#{$prefix}-tab) {\n .#{$prefix}--tabs__nav-item--close {\n position: relative;\n display: flex;\n align-items: center;\n inset-inline-start: calc(-#{$spacing-04} - 1px);\n margin-inline-start: calc(-#{$spacing-06} + 1px);\n\n &[disabled] {\n pointer-events: none;\n }\n }\n .#{$prefix}--tabs__nav-item--close--hidden {\n display: none;\n }\n .#{$prefix}--tabs__nav-item--close::part(button) {\n @include button-reset.reset();\n\n block-size: convert.to-rem(24px);\n inline-size: convert.to-rem(24px);\n padding-block: $spacing-02;\n padding-inline: $spacing-02;\n pointer-events: inherit;\n\n svg {\n block-size: convert.to-rem(16px);\n fill: $text-secondary;\n inline-size: convert.to-rem(16px);\n }\n\n svg:hover {\n fill: $icon-primary;\n }\n\n &:hover {\n background-color: $layer-hover;\n }\n\n &:focus,\n &:active {\n @include focus-outline('outline');\n }\n }\n}\n"],"mappings":""}
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { LitElement } from 'lit';
|
|
8
8
|
import { TAG_SIZE, TAG_TYPE } from './defs';
|
|
9
|
-
import './tag';
|
|
10
9
|
import '../tooltip/index';
|
|
11
10
|
export { TAG_SIZE, TAG_TYPE };
|
|
12
11
|
declare const CDSOperationalTag_base: {
|
|
@@ -34,6 +33,7 @@ declare const CDSOperationalTag_base: {
|
|
|
34
33
|
* @fires cds-operational-tag-selected - The custom event fired after the element has been selected
|
|
35
34
|
*/
|
|
36
35
|
declare class CDSOperationalTag extends CDSOperationalTag_base {
|
|
36
|
+
private _tag;
|
|
37
37
|
/**
|
|
38
38
|
* Custom events to be triggered
|
|
39
39
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operational-tag.d.ts","sourceRoot":"","sources":["../../../src/components/tag/operational-tag.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAMvC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"operational-tag.d.ts","sourceRoot":"","sources":["../../../src/components/tag/operational-tag.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAMvC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAE5C,OAAO,kBAAkB,CAAC;AAI1B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;;;;;;;;;;uBAOmC,CAAC;;;;;;;AALlE;;;;;;;GAOG;AACH,cACM,iBAAkB,SAAQ,sBAAyC;IAEvE,OAAO,CAAC,IAAI,CAAU;IAEtB;;;;OAIG;IACH,SAAS,CAAC,aAAa,GAAI,UAAK,UA6B9B;IAEF;;;;OAIG;IAIH,OAAO,CAAC,YAAY,CAElB;IAKF,OAAO,CAAC,cAAc,CAIpB;IAEF;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,IAAI,WAAmB;IAEvB;;OAEG;IAEH,IAAI,SAAM;IAEV;;OAEG;IAEH,IAAI,WAAiB;IAErB;;OAEG;IAEH,mBAAmB,UAAS;IAEtB,OAAO;IAWb,MAAM;IA8CN;;OAEG;IACH,MAAM,KAAK,mBAAmB,WAE7B;IAED;;OAEG;IACH,MAAM,KAAK,aAAa,WAEvB;IAED,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -14,9 +14,8 @@ import HostListenerMixin from "../../globals/mixins/host-listener.js";
|
|
|
14
14
|
import "../tooltip/index.js";
|
|
15
15
|
import { TAG_SIZE, TAG_TYPE } from "./defs.js";
|
|
16
16
|
import tag_default from "./tag.scss.js";
|
|
17
|
-
import "./tag.js";
|
|
18
17
|
import { LitElement, html } from "lit";
|
|
19
|
-
import { property, state } from "lit/decorators.js";
|
|
18
|
+
import { property, query, state } from "lit/decorators.js";
|
|
20
19
|
//#region src/components/tag/operational-tag.ts
|
|
21
20
|
/**
|
|
22
21
|
* Copyright IBM Corp. 2019, 2025
|
|
@@ -65,7 +64,7 @@ let CDSOperationalTag = class CDSOperationalTag extends HostListenerMixin(FocusM
|
|
|
65
64
|
}
|
|
66
65
|
async updated() {
|
|
67
66
|
await this.updateComplete;
|
|
68
|
-
const textContainer = this.
|
|
67
|
+
const textContainer = this._tag?._textContainer;
|
|
69
68
|
if (!textContainer) return;
|
|
70
69
|
const hasEllipsis = textContainer.scrollWidth > textContainer.clientWidth;
|
|
71
70
|
this._hasEllipsisApplied = hasEllipsis;
|
|
@@ -121,6 +120,7 @@ let CDSOperationalTag = class CDSOperationalTag extends HostListenerMixin(FocusM
|
|
|
121
120
|
this.styles = tag_default;
|
|
122
121
|
}
|
|
123
122
|
};
|
|
123
|
+
__decorate([query(`cds-tag`)], CDSOperationalTag.prototype, "_tag", void 0);
|
|
124
124
|
__decorate([HostListener("shadowRoot:click")], CDSOperationalTag.prototype, "_handleClick", void 0);
|
|
125
125
|
__decorate([HostListener("shadowRoot:keydown")], CDSOperationalTag.prototype, "_handleKeyDown", void 0);
|
|
126
126
|
__decorate([property({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operational-tag.js","names":["styles","customElement"],"sources":["../../../src/components/tag/operational-tag.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 { html, LitElement } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport FocusMixin from '../../globals/mixins/focus';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { TAG_SIZE, TAG_TYPE } from './defs';\nimport './tag';\nimport '../tooltip/index';\nimport styles from './tag.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { TAG_SIZE, TAG_TYPE };\n\n/**\n * Operational tag.\n *\n * @element cds-operational-tag\n *\n * @fires cds-operational-tag-beforeselected - The custom event fired as the element is being selected\n * @fires cds-operational-tag-selected - The custom event fired after the element has been selected\n */\n@customElement(`${prefix}-operational-tag`)\nclass CDSOperationalTag extends HostListenerMixin(FocusMixin(LitElement)) {\n /**\n * Custom events to be triggered\n *\n * @param event Event object\n */\n protected triggerEvents = (event) => {\n if (this.disabled) {\n event.stopPropagation();\n } else {\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy: event.target,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSOperationalTag).eventBeforeSelected,\n init\n )\n )\n ) {\n this.selected = !this.selected;\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSOperationalTag).eventSelected,\n init\n )\n );\n }\n }\n };\n\n /**\n * Handles `click` event on this element.\n *\n * @param event The event.\n */\n @HostListener('shadowRoot: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: MouseEvent) => {\n this.triggerEvents(event);\n };\n\n @HostListener('shadowRoot:keydown')\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 _handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n this.triggerEvents(event);\n }\n };\n\n /**\n * `true` if the tag should be disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Specify the state of the selectable tag.\n */\n @property({ type: Boolean, reflect: true })\n selected = false;\n\n /**\n * The size of the tag.\n */\n @property({ type: String, reflect: true })\n size = TAG_SIZE.MEDIUM;\n\n /**\n * Provide text to be rendered inside of a the tag.\n */\n @property({ type: String, reflect: true })\n text = '';\n\n /**\n * The type of the tag.\n */\n @property({ reflect: true })\n type = TAG_TYPE.GRAY;\n\n /**\n * true if the tag text has ellipsis applied\n */\n @state()\n _hasEllipsisApplied = false;\n\n async updated() {\n await this.updateComplete;\n\n const textContainer = this.
|
|
1
|
+
{"version":3,"file":"operational-tag.js","names":["styles","customElement"],"sources":["../../../src/components/tag/operational-tag.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 { html, LitElement } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport FocusMixin from '../../globals/mixins/focus';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { TAG_SIZE, TAG_TYPE } from './defs';\nimport CDSTag from './tag';\nimport '../tooltip/index';\nimport styles from './tag.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { TAG_SIZE, TAG_TYPE };\n\n/**\n * Operational tag.\n *\n * @element cds-operational-tag\n *\n * @fires cds-operational-tag-beforeselected - The custom event fired as the element is being selected\n * @fires cds-operational-tag-selected - The custom event fired after the element has been selected\n */\n@customElement(`${prefix}-operational-tag`)\nclass CDSOperationalTag extends HostListenerMixin(FocusMixin(LitElement)) {\n @query(`${prefix}-tag`)\n private _tag!: CDSTag;\n\n /**\n * Custom events to be triggered\n *\n * @param event Event object\n */\n protected triggerEvents = (event) => {\n if (this.disabled) {\n event.stopPropagation();\n } else {\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy: event.target,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSOperationalTag).eventBeforeSelected,\n init\n )\n )\n ) {\n this.selected = !this.selected;\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSOperationalTag).eventSelected,\n init\n )\n );\n }\n }\n };\n\n /**\n * Handles `click` event on this element.\n *\n * @param event The event.\n */\n @HostListener('shadowRoot: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: MouseEvent) => {\n this.triggerEvents(event);\n };\n\n @HostListener('shadowRoot:keydown')\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 _handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n this.triggerEvents(event);\n }\n };\n\n /**\n * `true` if the tag should be disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Specify the state of the selectable tag.\n */\n @property({ type: Boolean, reflect: true })\n selected = false;\n\n /**\n * The size of the tag.\n */\n @property({ type: String, reflect: true })\n size = TAG_SIZE.MEDIUM;\n\n /**\n * Provide text to be rendered inside of a the tag.\n */\n @property({ type: String, reflect: true })\n text = '';\n\n /**\n * The type of the tag.\n */\n @property({ reflect: true })\n type = TAG_TYPE.GRAY;\n\n /**\n * true if the tag text has ellipsis applied\n */\n @state()\n _hasEllipsisApplied = false;\n\n async updated() {\n await this.updateComplete;\n\n const textContainer = this._tag?._textContainer;\n if (!textContainer) return;\n\n const hasEllipsis = textContainer.scrollWidth > textContainer.clientWidth;\n\n this._hasEllipsisApplied = hasEllipsis;\n }\n\n render() {\n const {\n disabled,\n selected,\n size,\n text,\n type,\n _hasEllipsisApplied: hasEllipsisApplied,\n } = this;\n\n return html` ${hasEllipsisApplied\n ? html` <cds-tooltip\n align=\"bottom\"\n keyboard-only\n closeOnActivation\n leave-delay-ms=${0}>\n <cds-tag\n part=\"tag\"\n ?aria-pressed=\"${selected}\"\n size=\"${size}\"\n ?disabled=\"${disabled}\"\n type=\"${type}\">\n <slot name=\"icon\" slot=\"icon\"></slot>\n ${text}\n <slot name=\"decorator\" slot=\"decorator\"></slot>\n <slot name=\"ai-label\" slot=\"ai-label\"></slot>\n <slot name=\"slug\" slot=\"slug\"></slot>\n </cds-tag>\n <cds-tooltip-content id=\"content\"> ${text} </cds-tooltip-content>\n </cds-tooltip>`\n : html`\n <cds-tag\n part=\"tag\"\n ?aria-pressed=\"${selected}\"\n size=\"${size}\"\n ?disabled=\"${disabled}\"\n type=\"${type}\">\n <slot name=\"icon\" slot=\"icon\"></slot>\n ${text}\n <slot name=\"decorator\" slot=\"decorator\"></slot>\n <slot name=\"ai-label\" slot=\"ai-label\"></slot>\n <slot name=\"slug\" slot=\"slug\"></slot>\n </cds-tag>\n `}`;\n }\n\n /**\n * The name of the custom event before this tag is selected.\n */\n static get eventBeforeSelected() {\n return `${prefix}-operational-tag-beingselected`;\n }\n\n /**\n * The name of the custom event fired after this tag is selected.\n */\n static get eventSelected() {\n return `${prefix}-operational-tag-selected`;\n }\n\n static styles = styles;\n}\n\nexport default CDSOperationalTag;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,IAAA,oBAAA,MACM,0BAA0B,kBAAkB,WAAW,UAAU,CAAC,CAAC,CAAC;;;wBAS7C,UAAU;GACnC,IAAI,KAAK,UACP,MAAM,gBAAgB;QACjB;IACL,MAAM,OAAO;KACX,SAAS;KACT,YAAY;KACZ,UAAU;KACV,QAAQ,EACN,aAAa,MAAM,OACrB;IACF;IACA,IACE,KAAK,cACH,IAAI,YACD,KAAK,YAAyC,qBAC/C,IACF,CACF,GACA;KACA,KAAK,WAAW,CAAC,KAAK;KACtB,KAAK,cACH,IAAI,YACD,KAAK,YAAyC,eAC/C,IACF,CACF;IACF;GACF;EACF;uBAUwB,UAAsB;GAC5C,KAAK,cAAc,KAAK;EAC1B;yBAK0B,UAAyB;GACjD,IAAI,MAAM,QAAQ,WAAW,MAAM,QAAQ,KACzC,KAAK,cAAc,KAAK;EAE5B;kBAMW;kBAMA;;cAYJ;;6BAYe;;CAEtB,MAAM,UAAU;EACd,MAAM,KAAK;EAEX,MAAM,gBAAgB,KAAK,MAAM;EACjC,IAAI,CAAC,eAAe;EAEpB,MAAM,cAAc,cAAc,cAAc,cAAc;EAE9D,KAAK,sBAAsB;CAC7B;CAEA,SAAS;EACP,MAAM,EACJ,UACA,UACA,MACA,MACA,MACA,qBAAqB,uBACnB;EAEJ,OAAO,IAAI,IAAI,qBACX,IAAI;;;;2BAIe,EAAE;;;6BAGA,SAAS;oBAClB,KAAK;yBACA,SAAS;oBACd,KAAK;;cAEX,KAAK;;;;;+CAK4B,KAAK;0BAE5C,IAAI;;;6BAGiB,SAAS;oBAClB,KAAK;yBACA,SAAS;oBACd,KAAK;;cAEX,KAAK;;;;;;CAMjB;;;;CAKA,WAAW,sBAAsB;EAC/B,OAAO;CACT;;;;CAKA,WAAW,gBAAgB;EACzB,OAAO;CACT;;gBAEgBA;;AAClB;YAxKG,MAAM,SAAe,CAAA,GAAA,kBAAA,WAAA,QAAA,KAAA,CAAA;YA4CrB,aAAa,kBAAkB,CAAA,GAAA,kBAAA,WAAA,gBAAA,KAAA,CAAA;YAO/B,aAAa,oBAAoB,CAAA,GAAA,kBAAA,WAAA,kBAAA,KAAA,CAAA;YAYjC,SAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,kBAAA,WAAA,YAAA,KAAA,CAAA;YAMzC,SAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,kBAAA,WAAA,YAAA,KAAA,CAAA;YAMzC,SAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,kBAAA,WAAA,QAAA,KAAA,CAAA;YAMxC,SAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,kBAAA,WAAA,QAAA,KAAA,CAAA;YAMxC,SAAS,EAAE,SAAS,KAAK,CAAC,CAAA,GAAA,kBAAA,WAAA,QAAA,KAAA,CAAA;YAM1B,MAAM,CAAA,GAAA,kBAAA,WAAA,uBAAA,KAAA,CAAA;gCA/FRC,cAAc,qBAA2B,CAAA,GAAA,iBAAA;AA4K1C,IAAA,0BAAe"}
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { LitElement } from 'lit';
|
|
8
8
|
import { TAG_SIZE, TAG_TYPE } from './defs';
|
|
9
|
-
import './tag';
|
|
10
9
|
import '../tooltip/index';
|
|
11
10
|
export { TAG_SIZE, TAG_TYPE };
|
|
12
11
|
declare const CDSSelectableTag_base: {
|
|
@@ -34,6 +33,7 @@ declare const CDSSelectableTag_base: {
|
|
|
34
33
|
* @fires cds-selectable-tag-selected - The custom event fired after the element has been selected
|
|
35
34
|
*/
|
|
36
35
|
declare class CDSSelectableTag extends CDSSelectableTag_base {
|
|
36
|
+
private _tag;
|
|
37
37
|
/**
|
|
38
38
|
* Custom events to be triggered
|
|
39
39
|
* @param event Event object
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectable-tag.d.ts","sourceRoot":"","sources":["../../../src/components/tag/selectable-tag.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAMvC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"selectable-tag.d.ts","sourceRoot":"","sources":["../../../src/components/tag/selectable-tag.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAMvC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAE5C,OAAO,kBAAkB,CAAC;AAI1B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;;;;;;;;;;uBAOqC,CAAC;;;;;;;AALpE;;;;;;;GAOG;AACH,cACM,gBAAiB,SAAQ,qBAAyC;IAEtE,OAAO,CAAC,IAAI,CAAU;IAEtB;;;OAGG;IACH,SAAS,CAAC,aAAa,GAAI,UAAK,UA6B9B;IAEF;;;;OAIG;IAIH,OAAO,CAAC,YAAY,CAElB;IAKF,OAAO,CAAC,cAAc,CAIpB;IAEF;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,IAAI,WAAmB;IAEvB;;OAEG;IAEH,IAAI,SAAM;IAEV;;OAEG;IAEH,SAAS,CAAC,mBAAmB,UAAS;IAEhC,OAAO;IAWb,MAAM;IAqCN;;OAEG;IACH,MAAM,KAAK,mBAAmB,WAE7B;IAED;;OAEG;IACH,MAAM,KAAK,aAAa,WAEvB;IAED,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -14,9 +14,8 @@ import HostListenerMixin from "../../globals/mixins/host-listener.js";
|
|
|
14
14
|
import "../tooltip/index.js";
|
|
15
15
|
import { TAG_SIZE, TAG_TYPE } from "./defs.js";
|
|
16
16
|
import tag_default from "./tag.scss.js";
|
|
17
|
-
import "./tag.js";
|
|
18
17
|
import { LitElement, html } from "lit";
|
|
19
|
-
import { property, state } from "lit/decorators.js";
|
|
18
|
+
import { property, query, state } from "lit/decorators.js";
|
|
20
19
|
//#region src/components/tag/selectable-tag.ts
|
|
21
20
|
/**
|
|
22
21
|
* Copyright IBM Corp. 2019, 2025
|
|
@@ -64,7 +63,7 @@ let CDSSelectableTag = class CDSSelectableTag extends HostListenerMixin(FocusMix
|
|
|
64
63
|
}
|
|
65
64
|
async updated() {
|
|
66
65
|
await this.updateComplete;
|
|
67
|
-
const textContainer = this.
|
|
66
|
+
const textContainer = this._tag?._textContainer;
|
|
68
67
|
if (!textContainer) return;
|
|
69
68
|
const hasEllipsis = textContainer.scrollWidth > textContainer.clientWidth;
|
|
70
69
|
this._hasEllipsisApplied = hasEllipsis;
|
|
@@ -112,6 +111,7 @@ let CDSSelectableTag = class CDSSelectableTag extends HostListenerMixin(FocusMix
|
|
|
112
111
|
this.styles = tag_default;
|
|
113
112
|
}
|
|
114
113
|
};
|
|
114
|
+
__decorate([query(`cds-tag`)], CDSSelectableTag.prototype, "_tag", void 0);
|
|
115
115
|
__decorate([HostListener("shadowRoot:click")], CDSSelectableTag.prototype, "_handleClick", void 0);
|
|
116
116
|
__decorate([HostListener("shadowRoot:keydown")], CDSSelectableTag.prototype, "_handleKeyDown", void 0);
|
|
117
117
|
__decorate([property({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectable-tag.js","names":["styles","customElement"],"sources":["../../../src/components/tag/selectable-tag.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 { html, LitElement } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport FocusMixin from '../../globals/mixins/focus';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { TAG_SIZE, TAG_TYPE } from './defs';\nimport './tag';\nimport '../tooltip/index';\nimport styles from './tag.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { TAG_SIZE, TAG_TYPE };\n\n/**\n * Selectable tag.\n *\n * @element cds-selectable-tag\n *\n * @fires cds-selectable-tag-beforeselected - The custom event fired as the element is being selected\n * @fires cds-selectable-tag-selected - The custom event fired after the element has been selected\n */\n@customElement(`${prefix}-selectable-tag`)\nclass CDSSelectableTag extends HostListenerMixin(FocusMixin(LitElement)) {\n /**\n * Custom events to be triggered\n * @param event Event object\n */\n protected triggerEvents = (event) => {\n if (this.disabled) {\n event.stopPropagation();\n } else {\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy: event.target,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSSelectableTag).eventBeforeSelected,\n init\n )\n )\n ) {\n this.selected = !this.selected;\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSSelectableTag).eventSelected,\n init\n )\n );\n }\n }\n };\n\n /**\n * Handles `click` event on this element.\n *\n * @param event The event.\n */\n @HostListener('shadowRoot: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: MouseEvent) => {\n this.triggerEvents(event);\n };\n\n @HostListener('shadowRoot:keydown')\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 _handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n this.triggerEvents(event);\n }\n };\n\n /**\n * `true` if the tag should be disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Specify the state of the selectable tag.\n */\n @property({ type: Boolean, reflect: true })\n selected = false;\n\n /**\n * The size of the tag.\n */\n @property({ type: String, reflect: true })\n size = TAG_SIZE.MEDIUM;\n\n /**\n * Provide text to be rendered inside of a the tag.\n */\n @property({ type: String, reflect: true })\n text = '';\n\n /**\n * true if the tag text has ellipsis applied\n */\n @state()\n protected _hasEllipsisApplied = false;\n\n async updated() {\n await this.updateComplete;\n\n const textContainer = this.
|
|
1
|
+
{"version":3,"file":"selectable-tag.js","names":["styles","customElement"],"sources":["../../../src/components/tag/selectable-tag.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 { html, LitElement } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport FocusMixin from '../../globals/mixins/focus';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { TAG_SIZE, TAG_TYPE } from './defs';\nimport CDSTag from './tag';\nimport '../tooltip/index';\nimport styles from './tag.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { TAG_SIZE, TAG_TYPE };\n\n/**\n * Selectable tag.\n *\n * @element cds-selectable-tag\n *\n * @fires cds-selectable-tag-beforeselected - The custom event fired as the element is being selected\n * @fires cds-selectable-tag-selected - The custom event fired after the element has been selected\n */\n@customElement(`${prefix}-selectable-tag`)\nclass CDSSelectableTag extends HostListenerMixin(FocusMixin(LitElement)) {\n @query(`${prefix}-tag`)\n private _tag!: CDSTag;\n\n /**\n * Custom events to be triggered\n * @param event Event object\n */\n protected triggerEvents = (event) => {\n if (this.disabled) {\n event.stopPropagation();\n } else {\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy: event.target,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSSelectableTag).eventBeforeSelected,\n init\n )\n )\n ) {\n this.selected = !this.selected;\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSSelectableTag).eventSelected,\n init\n )\n );\n }\n }\n };\n\n /**\n * Handles `click` event on this element.\n *\n * @param event The event.\n */\n @HostListener('shadowRoot: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: MouseEvent) => {\n this.triggerEvents(event);\n };\n\n @HostListener('shadowRoot:keydown')\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 _handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n this.triggerEvents(event);\n }\n };\n\n /**\n * `true` if the tag should be disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Specify the state of the selectable tag.\n */\n @property({ type: Boolean, reflect: true })\n selected = false;\n\n /**\n * The size of the tag.\n */\n @property({ type: String, reflect: true })\n size = TAG_SIZE.MEDIUM;\n\n /**\n * Provide text to be rendered inside of a the tag.\n */\n @property({ type: String, reflect: true })\n text = '';\n\n /**\n * true if the tag text has ellipsis applied\n */\n @state()\n protected _hasEllipsisApplied = false;\n\n async updated() {\n await this.updateComplete;\n\n const textContainer = this._tag?._textContainer;\n if (!textContainer) return;\n\n const hasEllipsis = textContainer.scrollWidth > textContainer.clientWidth;\n\n this._hasEllipsisApplied = hasEllipsis;\n }\n\n render() {\n const {\n disabled,\n selected,\n size,\n text,\n _hasEllipsisApplied: hasEllipsisApplied,\n } = this;\n\n return html` ${hasEllipsisApplied\n ? html` <cds-tooltip align=\"bottom\" keyboard-only leave-delay-ms=${0}>\n <cds-tag\n ?aria-pressed=\"${selected}\"\n size=\"${size}\"\n ?disabled=\"${disabled}\">\n <slot name=\"icon\" slot=\"icon\"></slot>\n ${text}\n <slot name=\"decorator\" slot=\"decorator\"></slot>\n <slot name=\"ai-label\" slot=\"ai-label\"></slot>\n <slot name=\"slug\" slot=\"slug\"></slot>\n </cds-tag>\n <cds-tooltip-content id=\"content\"> ${text} </cds-tooltip-content>\n </cds-tooltip>`\n : html`\n <cds-tag\n ?aria-pressed=\"${selected}\"\n size=\"${size}\"\n ?disabled=\"${disabled}\">\n <slot name=\"icon\" slot=\"icon\"></slot>\n ${text}\n <slot name=\"decorator\" slot=\"decorator\"></slot>\n <slot name=\"ai-label\" slot=\"ai-label\"></slot>\n <slot name=\"slug\" slot=\"slug\"></slot>\n </cds-tag>\n `}`;\n }\n\n /**\n * The name of the custom event before this tag is selected.\n */\n static get eventBeforeSelected() {\n return `${prefix}-selectable-tag-beingselected`;\n }\n\n /**\n * The name of the custom event fired after this tag is selected.\n */\n static get eventSelected() {\n return `${prefix}-selectable-tag-selected`;\n }\n\n static styles = styles;\n}\n\nexport default CDSSelectableTag;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,IAAA,mBAAA,MACM,yBAAyB,kBAAkB,WAAW,UAAU,CAAC,CAAC,CAAC;;;wBAQ5C,UAAU;GACnC,IAAI,KAAK,UACP,MAAM,gBAAgB;QACjB;IACL,MAAM,OAAO;KACX,SAAS;KACT,YAAY;KACZ,UAAU;KACV,QAAQ,EACN,aAAa,MAAM,OACrB;IACF;IACA,IACE,KAAK,cACH,IAAI,YACD,KAAK,YAAwC,qBAC9C,IACF,CACF,GACA;KACA,KAAK,WAAW,CAAC,KAAK;KACtB,KAAK,cACH,IAAI,YACD,KAAK,YAAwC,eAC9C,IACF,CACF;IACF;GACF;EACF;uBAUwB,UAAsB;GAC5C,KAAK,cAAc,KAAK;EAC1B;yBAK0B,UAAyB;GACjD,IAAI,MAAM,QAAQ,WAAW,MAAM,QAAQ,KACzC,KAAK,cAAc,KAAK;EAE5B;kBAMW;kBAMA;;cAYJ;6BAMyB;;CAEhC,MAAM,UAAU;EACd,MAAM,KAAK;EAEX,MAAM,gBAAgB,KAAK,MAAM;EACjC,IAAI,CAAC,eAAe;EAEpB,MAAM,cAAc,cAAc,cAAc,cAAc;EAE9D,KAAK,sBAAsB;CAC7B;CAEA,SAAS;EACP,MAAM,EACJ,UACA,UACA,MACA,MACA,qBAAqB,uBACnB;EAEJ,OAAO,IAAI,IAAI,qBACX,IAAI,6DAA6D,EAAE;;6BAE9C,SAAS;oBAClB,KAAK;yBACA,SAAS;;cAEpB,KAAK;;;;;+CAK4B,KAAK;0BAE5C,IAAI;;6BAEiB,SAAS;oBAClB,KAAK;yBACA,SAAS;;cAEpB,KAAK;;;;;;CAMjB;;;;CAKA,WAAW,sBAAsB;EAC/B,OAAO;CACT;;;;CAKA,WAAW,gBAAgB;EACzB,OAAO;CACT;;gBAEgBA;;AAClB;YAxJG,MAAM,SAAe,CAAA,GAAA,iBAAA,WAAA,QAAA,KAAA,CAAA;YA2CrB,aAAa,kBAAkB,CAAA,GAAA,iBAAA,WAAA,gBAAA,KAAA,CAAA;YAO/B,aAAa,oBAAoB,CAAA,GAAA,iBAAA,WAAA,kBAAA,KAAA,CAAA;YAYjC,SAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,iBAAA,WAAA,YAAA,KAAA,CAAA;YAMzC,SAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,iBAAA,WAAA,YAAA,KAAA,CAAA;YAMzC,SAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,iBAAA,WAAA,QAAA,KAAA,CAAA;YAMxC,SAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,iBAAA,WAAA,QAAA,KAAA,CAAA;YAMxC,MAAM,CAAA,GAAA,iBAAA,WAAA,uBAAA,KAAA,CAAA;+BAxFRC,cAAc,oBAA0B,CAAA,GAAA,gBAAA;AA4JzC,IAAA,yBAAe"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../../src/components/tag/tag.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAQvC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAI5C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;;;;;;;;;;uBAKG,CAAC;;;;;;;AAHlC;;;;;GAKG;AACH,cACM,MAAO,SAAQ,WAAyC;IAE5D,SAAS,CAAC,WAAW,EAAG,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../../src/components/tag/tag.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAQvC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAI5C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;;;;;;;;;;uBAKG,CAAC;;;;;;;AAHlC;;;;;GAKG;AACH,cACM,MAAO,SAAQ,WAAyC;IAE5D,SAAS,CAAC,WAAW,EAAG,iBAAiB,CAAC;IAG1C,cAAc,EAAG,WAAW,CAAC;IAE7B;;OAEG;IACH,SAAS,CAAC,wBAAwB,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK;IAsBpD;;OAEG;IACH,SAAS,CAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK;IAOjD;;;;OAIG;IAIH,SAAS,CAAC,YAAY,GAAI,OAAO,UAAU,UAgCzC;IAEF;;;;OAIG;IAEH,KAAK,SAAkB;IAEvB;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;;;OAIG;IAEH,MAAM,UAAS;IAEf;;OAEG;IAEH,aAAa,UAAS;IAEtB;;OAEG;IAEH,IAAI,UAAQ;IAEZ;;OAEG;IAEH,IAAI,WAAmB;IAEvB;;OAEG;IAEH,IAAI,WAAiB;IAErB;;OAEG;IAEH,mBAAmB,UAAS;IAE5B,OAAO;IAoBP,MAAM;IA8BN;;;;OAIG;IACH,MAAM,KAAK,QAAQ,WAElB;IAED;;OAEG;IACH,MAAM,KAAK,WAAW,WAErB;IAED;;;OAGG;IACH,MAAM,KAAK,gBAAgB,WAE1B;IAED;;OAEG;IACH,MAAM,KAAK,UAAU,WAEpB;IAED,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,MAAM,CAAC"}
|
package/es/components/tag/tag.js
CHANGED
|
@@ -80,9 +80,8 @@ let CDSTag = class CDSTag extends HostListenerMixin(FocusMixin(LitElement)) {
|
|
|
80
80
|
this.requestUpdate();
|
|
81
81
|
}
|
|
82
82
|
updated() {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
this._hasEllipsisApplied = textContainer.scrollWidth > textContainer.clientWidth;
|
|
83
|
+
if (!this._textContainer || this._hasEllipsisApplied === true) return;
|
|
84
|
+
this._hasEllipsisApplied = this._textContainer.scrollWidth > this._textContainer.clientWidth;
|
|
86
85
|
const root = this.getRootNode();
|
|
87
86
|
if (root instanceof ShadowRoot) {
|
|
88
87
|
const parent = root.host.tagName.toLowerCase();
|
|
@@ -141,6 +140,7 @@ let CDSTag = class CDSTag extends HostListenerMixin(FocusMixin(LitElement)) {
|
|
|
141
140
|
}
|
|
142
141
|
};
|
|
143
142
|
__decorate([query("button")], CDSTag.prototype, "_buttonNode", void 0);
|
|
143
|
+
__decorate([query(`.cds--tag__label`)], CDSTag.prototype, "_textContainer", void 0);
|
|
144
144
|
__decorate([HostListener("shadowRoot:click")], CDSTag.prototype, "_handleClick", void 0);
|
|
145
145
|
__decorate([property({ type: String })], CDSTag.prototype, "title", void 0);
|
|
146
146
|
__decorate([property({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag.js","names":["styles","customElement"],"sources":["../../../src/components/tag/tag.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 { LitElement, html } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport Close16 from '@carbon/icons/es/close/16.js';\nimport FocusMixin from '../../globals/mixins/focus';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { TAG_SIZE, TAG_TYPE } from './defs';\nimport styles from './tag.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { TAG_SIZE, TAG_TYPE };\n\n/**\n * Tag.\n * @element cds-tag\n * @fires cds-tag-beingclosed - The custom event fired as the element is being closed\n * @fires cds-tag-closed - The custom event fired after the element has been closed\n */\n@customElement(`${prefix}-tag`)\nclass CDSTag extends HostListenerMixin(FocusMixin(LitElement)) {\n @query('button')\n protected _buttonNode!: HTMLButtonElement;\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleAILabelSlotChange({ target }: Event) {\n const hasContent = (target as HTMLSlotElement)\n .assignedNodes()\n .filter((elem) =>\n (elem as HTMLElement).matches !== undefined\n ? (elem as HTMLElement).matches(\n (this.constructor as typeof CDSTag).aiLabelItem\n ) ||\n // remove reference of slug in v12\n (elem as HTMLElement).matches(\n (this.constructor as typeof CDSTag).slugItem\n )\n : false\n );\n if (hasContent.length > 0) {\n (hasContent[0] as HTMLElement).setAttribute('tag', `${this.type}`);\n (hasContent[0] as HTMLElement).setAttribute('size', 'sm');\n (hasContent[0] as HTMLElement).setAttribute('kind', 'inline');\n }\n this.requestUpdate();\n }\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleIconSlotChange({ target }: Event) {\n const hasIcon = (target as HTMLSlotElement).assignedNodes();\n\n this.hasCustomIcon = hasIcon.length > 0;\n this.requestUpdate();\n }\n\n /**\n * Handles `click` event on this element.\n *\n * @param event The event.\n */\n @HostListener('shadowRoot: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 protected _handleClick = (event: MouseEvent) => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n if (event.composedPath().indexOf(this._buttonNode!) >= 0) {\n if (this.disabled) {\n event.stopPropagation();\n } else if (this.open) {\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy: event.target,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSTag).eventBeforeClose,\n init\n )\n )\n ) {\n this.open = false;\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSTag).eventClose,\n init\n )\n );\n }\n }\n }\n };\n\n /**\n * Text to show on filter tag \"clear\" buttons. Corresponds to the attribute with the same name\n *\n * @deprecated The `title` property has been deprecated and will be removed in the next major version. Use cds-dismissible-tag instead.\n */\n @property({ type: String })\n title = 'Clear filter';\n\n /**\n * `true` if the tag should be disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Determine if is a filter/chip\n *\n * @deprecated The `filter` property has been deprecated and will be removed in the next major version. Use cds-dismissible-tag instead.\n */\n @property({ type: Boolean, reflect: true })\n filter = false;\n\n /**\n * `true` if there is a custom icon.\n */\n @property({ type: Boolean, attribute: 'has-custom-icon', reflect: true })\n hasCustomIcon = false;\n\n /**\n * `true` if the tag should be open.\n */\n @property({ type: Boolean, reflect: true })\n open = true;\n\n /**\n * The size of the tag.\n */\n @property({ reflect: true })\n size = TAG_SIZE.MEDIUM;\n\n /**\n * The type of the tag.\n */\n @property({ reflect: true })\n type = TAG_TYPE.GRAY;\n\n /**\n * true if the tag text has ellipsis applied\n */\n @state()\n _hasEllipsisApplied = false;\n\n updated() {\n
|
|
1
|
+
{"version":3,"file":"tag.js","names":["styles","customElement"],"sources":["../../../src/components/tag/tag.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 { LitElement, html } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport Close16 from '@carbon/icons/es/close/16.js';\nimport FocusMixin from '../../globals/mixins/focus';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { TAG_SIZE, TAG_TYPE } from './defs';\nimport styles from './tag.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { TAG_SIZE, TAG_TYPE };\n\n/**\n * Tag.\n * @element cds-tag\n * @fires cds-tag-beingclosed - The custom event fired as the element is being closed\n * @fires cds-tag-closed - The custom event fired after the element has been closed\n */\n@customElement(`${prefix}-tag`)\nclass CDSTag extends HostListenerMixin(FocusMixin(LitElement)) {\n @query('button')\n protected _buttonNode!: HTMLButtonElement;\n\n @query(`.${prefix}--tag__label`)\n _textContainer!: HTMLElement;\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleAILabelSlotChange({ target }: Event) {\n const hasContent = (target as HTMLSlotElement)\n .assignedNodes()\n .filter((elem) =>\n (elem as HTMLElement).matches !== undefined\n ? (elem as HTMLElement).matches(\n (this.constructor as typeof CDSTag).aiLabelItem\n ) ||\n // remove reference of slug in v12\n (elem as HTMLElement).matches(\n (this.constructor as typeof CDSTag).slugItem\n )\n : false\n );\n if (hasContent.length > 0) {\n (hasContent[0] as HTMLElement).setAttribute('tag', `${this.type}`);\n (hasContent[0] as HTMLElement).setAttribute('size', 'sm');\n (hasContent[0] as HTMLElement).setAttribute('kind', 'inline');\n }\n this.requestUpdate();\n }\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleIconSlotChange({ target }: Event) {\n const hasIcon = (target as HTMLSlotElement).assignedNodes();\n\n this.hasCustomIcon = hasIcon.length > 0;\n this.requestUpdate();\n }\n\n /**\n * Handles `click` event on this element.\n *\n * @param event The event.\n */\n @HostListener('shadowRoot: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 protected _handleClick = (event: MouseEvent) => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n if (event.composedPath().indexOf(this._buttonNode!) >= 0) {\n if (this.disabled) {\n event.stopPropagation();\n } else if (this.open) {\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy: event.target,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSTag).eventBeforeClose,\n init\n )\n )\n ) {\n this.open = false;\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSTag).eventClose,\n init\n )\n );\n }\n }\n }\n };\n\n /**\n * Text to show on filter tag \"clear\" buttons. Corresponds to the attribute with the same name\n *\n * @deprecated The `title` property has been deprecated and will be removed in the next major version. Use cds-dismissible-tag instead.\n */\n @property({ type: String })\n title = 'Clear filter';\n\n /**\n * `true` if the tag should be disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Determine if is a filter/chip\n *\n * @deprecated The `filter` property has been deprecated and will be removed in the next major version. Use cds-dismissible-tag instead.\n */\n @property({ type: Boolean, reflect: true })\n filter = false;\n\n /**\n * `true` if there is a custom icon.\n */\n @property({ type: Boolean, attribute: 'has-custom-icon', reflect: true })\n hasCustomIcon = false;\n\n /**\n * `true` if the tag should be open.\n */\n @property({ type: Boolean, reflect: true })\n open = true;\n\n /**\n * The size of the tag.\n */\n @property({ reflect: true })\n size = TAG_SIZE.MEDIUM;\n\n /**\n * The type of the tag.\n */\n @property({ reflect: true })\n type = TAG_TYPE.GRAY;\n\n /**\n * true if the tag text has ellipsis applied\n */\n @state()\n _hasEllipsisApplied = false;\n\n updated() {\n if (!this._textContainer || this._hasEllipsisApplied === true) return;\n\n this._hasEllipsisApplied =\n this._textContainer.scrollWidth > this._textContainer.clientWidth;\n\n const root = this.getRootNode();\n // Check if the root is a shadow root and get its host\n if (root instanceof ShadowRoot) {\n const parent = root.host.tagName.toLowerCase();\n if (\n parent === `${prefix}-selectable-tag` ||\n parent === `${prefix}-operational-tag`\n ) {\n this.setAttribute('role', 'button');\n this.tabIndex = this.disabled ? -1 : 0;\n }\n }\n }\n\n render() {\n const {\n disabled,\n filter,\n _handleAILabelSlotChange: handleAILabelSlotChange,\n _handleIconSlotChange: handleIconSlotChange,\n size,\n title,\n } = this;\n\n return html`\n ${size !== TAG_SIZE.SMALL\n ? html`<slot name=\"icon\" @slotchange=\"${handleIconSlotChange}\"></slot>`\n : ''}\n <span class=\"${prefix}--tag__label\">\n <slot></slot>\n </span>\n <slot name=\"decorator\" @slotchange=\"${handleAILabelSlotChange}\"></slot>\n <slot name=\"ai-label\" @slotchange=\"${handleAILabelSlotChange}\"></slot>\n <slot name=\"slug\" @slotchange=\"${handleAILabelSlotChange}\"></slot>\n ${filter\n ? html`\n <button class=\"${prefix}--tag__close-icon\" ?disabled=${disabled}>\n ${iconLoader(Close16, { 'aria-label': title })}\n </button>\n `\n : ``}\n `;\n }\n\n /**\n * A selector that will return the slug item.\n *\n * remove in v12\n */\n static get slugItem() {\n return `${prefix}-slug`;\n }\n\n /**\n * A selector that will return the AI Label item.\n */\n static get aiLabelItem() {\n return `${prefix}-ai-label`;\n }\n\n /**\n * The name of the custom event fired before this tag is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this tag.\n */\n static get eventBeforeClose() {\n return `${prefix}-tag-beingclosed`;\n }\n\n /**\n * The name of the custom event fired after this tag is closed upon a user gesture.\n */\n static get eventClose() {\n return `${prefix}-tag-closed`;\n }\n\n static styles = styles;\n}\n\nexport default CDSTag;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,IAAA,SAAA,MACM,eAAe,kBAAkB,WAAW,UAAU,CAAC,CAAC,CAAC;;;uBAkDnC,UAAsB;GAE9C,IAAI,MAAM,aAAa,CAAC,CAAC,QAAQ,KAAK,WAAY,KAAK;QACjD,KAAK,UACP,MAAM,gBAAgB;SACjB,IAAI,KAAK,MAAM;KACpB,MAAM,OAAO;MACX,SAAS;MACT,YAAY;MACZ,UAAU;MACV,QAAQ,EACN,aAAa,MAAM,OACrB;KACF;KACA,IACE,KAAK,cACH,IAAI,YACD,KAAK,YAA8B,kBACpC,IACF,CACF,GACA;MACA,KAAK,OAAO;MACZ,KAAK,cACH,IAAI,YACD,KAAK,YAA8B,YACpC,IACF,CACF;KACF;IACF;;EAEJ;eAQQ;kBAMG;gBAQF;uBAMO;cAMT;;;6BAkBe;;;;;CA5HtB,yBAAmC,EAAE,UAAiB;EACpD,MAAM,aAAc,OACjB,cAAc,CAAC,CACf,QAAQ,SACN,KAAqB,YAAY,KAAA,IAC7B,KAAqB,QACnB,KAAK,YAA8B,WACtC,KAEC,KAAqB,QACnB,KAAK,YAA8B,QACtC,IACA,KACN;EACF,IAAI,WAAW,SAAS,GAAG;GACzB,WAAY,EAAE,CAAiB,aAAa,OAAO,GAAG,KAAK,MAAM;GACjE,WAAY,EAAE,CAAiB,aAAa,QAAQ,IAAI;GACxD,WAAY,EAAE,CAAiB,aAAa,QAAQ,QAAQ;EAC9D;EACA,KAAK,cAAc;CACrB;;;;CAKA,sBAAgC,EAAE,UAAiB;EACjD,MAAM,UAAW,OAA2B,cAAc;EAE1D,KAAK,gBAAgB,QAAQ,SAAS;EACtC,KAAK,cAAc;CACrB;CAgGA,UAAU;EACR,IAAI,CAAC,KAAK,kBAAkB,KAAK,wBAAwB,MAAM;EAE/D,KAAK,sBACH,KAAK,eAAe,cAAc,KAAK,eAAe;EAExD,MAAM,OAAO,KAAK,YAAY;EAE9B,IAAI,gBAAgB,YAAY;GAC9B,MAAM,SAAS,KAAK,KAAK,QAAQ,YAAY;GAC7C,IACE,WAAW,wBACX,WAAW,uBACX;IACA,KAAK,aAAa,QAAQ,QAAQ;IAClC,KAAK,WAAW,KAAK,WAAW,KAAK;GACvC;EACF;CACF;CAEA,SAAS;EACP,MAAM,EACJ,UACA,QACA,0BAA0B,yBAC1B,uBAAuB,sBACvB,MACA,UACE;EAEJ,OAAO,IAAI;QACP,SAAA,OACE,IAAI,kCAAkC,qBAAqB,aAC3D,GAAG;2BACe;;;4CAGgB,wBAAwB;2CACzB,wBAAwB;uCAC5B,wBAAwB;QACvD,SACE,IAAI;mCACsB,+BAA+B,SAAS;gBAC5D,WAAW,SAAS,EAAE,cAAc,MAAM,CAAC,EAAE;;cAGnD,GAAG;;CAEX;;;;;;CAOA,WAAW,WAAW;EACpB,OAAO;CACT;;;;CAKA,WAAW,cAAc;EACvB,OAAO;CACT;;;;;CAMA,WAAW,mBAAmB;EAC5B,OAAO;CACT;;;;CAKA,WAAW,aAAa;EACtB,OAAO;CACT;;gBAEgBA;;AAClB;YAzNG,MAAM,QAAQ,CAAA,GAAA,OAAA,WAAA,eAAA,KAAA,CAAA;YAGd,MAAM,kBAAwB,CAAA,GAAA,OAAA,WAAA,kBAAA,KAAA,CAAA;YA2C9B,aAAa,kBAAkB,CAAA,GAAA,OAAA,WAAA,gBAAA,KAAA,CAAA;YA0C/B,SAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,OAAA,WAAA,SAAA,KAAA,CAAA;YAMzB,SAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,OAAA,WAAA,YAAA,KAAA,CAAA;YAQzC,SAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,OAAA,WAAA,UAAA,KAAA,CAAA;YAMzC,SAAS;CAAE,MAAM;CAAS,WAAW;CAAmB,SAAS;AAAK,CAAC,CAAA,GAAA,OAAA,WAAA,iBAAA,KAAA,CAAA;YAMvE,SAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,OAAA,WAAA,QAAA,KAAA,CAAA;YAMzC,SAAS,EAAE,SAAS,KAAK,CAAC,CAAA,GAAA,OAAA,WAAA,QAAA,KAAA,CAAA;YAM1B,SAAS,EAAE,SAAS,KAAK,CAAC,CAAA,GAAA,OAAA,WAAA,QAAA,KAAA,CAAA;YAM1B,MAAM,CAAA,GAAA,OAAA,WAAA,uBAAA,KAAA,CAAA;qBAtIRC,cAAc,SAAe,CAAA,GAAA,MAAA;AA6N9B,IAAA,cAAe"}
|