@carbon/web-components 2.57.0 → 2.58.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 +6 -6
- package/es/_virtual/{_@oxc-project_runtime@0.126.0/helpers → _@oxc-project_runtime@0.135.0/helpers/esm}/decorate.js +1 -1
- package/es/components/accordion/accordion-item-skeleton.js +1 -1
- package/es/components/accordion/accordion-item-skeleton.js.map +1 -1
- package/es/components/accordion/accordion-item.js +1 -1
- package/es/components/accordion/accordion-item.js.map +1 -1
- package/es/components/accordion/accordion-skeleton.js +1 -1
- package/es/components/accordion/accordion-skeleton.js.map +1 -1
- package/es/components/accordion/accordion.js +1 -1
- package/es/components/accordion/accordion.js.map +1 -1
- package/es/components/accordion/accordion.scss.js +1 -1
- package/es/components/accordion/accordion.scss.js.map +1 -1
- package/es/components/accordion/defs.js.map +1 -1
- package/es/components/ai-label/ai-label-action-button.js +1 -1
- package/es/components/ai-label/ai-label-action-button.js.map +1 -1
- package/es/components/ai-label/ai-label.js +1 -1
- package/es/components/ai-label/ai-label.js.map +1 -1
- package/es/components/ai-label/ai-label.scss.js +1 -1
- package/es/components/ai-label/defs.js.map +1 -1
- package/es/components/ai-skeleton/ai-skeleton-icon.js +1 -1
- package/es/components/ai-skeleton/ai-skeleton-icon.js.map +1 -1
- package/es/components/ai-skeleton/ai-skeleton-placeholder.js +1 -1
- package/es/components/ai-skeleton/ai-skeleton-placeholder.js.map +1 -1
- package/es/components/ai-skeleton/ai-skeleton-text.js +1 -1
- package/es/components/ai-skeleton/ai-skeleton-text.js.map +1 -1
- package/es/components/badge-indicator/badge-indicator.js +1 -1
- package/es/components/badge-indicator/badge-indicator.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb-item.js +1 -1
- package/es/components/breadcrumb/breadcrumb-item.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb-link.js +1 -1
- package/es/components/breadcrumb/breadcrumb-link.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb-overflow-menu.js +1 -1
- package/es/components/breadcrumb/breadcrumb-overflow-menu.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb-skeleton.js +1 -1
- package/es/components/breadcrumb/breadcrumb-skeleton.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb.js +1 -1
- package/es/components/breadcrumb/breadcrumb.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb.scss.js +1 -1
- package/es/components/breadcrumb/defs.js.map +1 -1
- package/es/components/button/button-set-base.js +1 -1
- package/es/components/button/button-set-base.js.map +1 -1
- package/es/components/button/button-set.d.ts +4 -0
- package/es/components/button/button-set.d.ts.map +1 -1
- package/es/components/button/button-set.js +5 -5
- package/es/components/button/button-set.js.map +1 -1
- package/es/components/button/button-skeleton.js +1 -1
- package/es/components/button/button-skeleton.js.map +1 -1
- package/es/components/button/button.js +1 -1
- package/es/components/button/button.js.map +1 -1
- package/es/components/button/button.scss.js +1 -1
- package/es/components/button/defs.js.map +1 -1
- package/es/components/chat-button/chat-button-skeleton.js +1 -1
- package/es/components/chat-button/chat-button-skeleton.js.map +1 -1
- package/es/components/chat-button/chat-button.js +1 -1
- package/es/components/chat-button/chat-button.js.map +1 -1
- package/es/components/chat-button/defs.js.map +1 -1
- package/es/components/checkbox/checkbox-group.js +1 -1
- package/es/components/checkbox/checkbox-group.js.map +1 -1
- package/es/components/checkbox/checkbox-skeleton.js +1 -1
- package/es/components/checkbox/checkbox-skeleton.js.map +1 -1
- package/es/components/checkbox/checkbox.js +1 -1
- package/es/components/checkbox/checkbox.js.map +1 -1
- package/es/components/checkbox/defs.js.map +1 -1
- package/es/components/code-snippet/code-snippet-skeleton.js +1 -1
- package/es/components/code-snippet/code-snippet-skeleton.js.map +1 -1
- package/es/components/code-snippet/code-snippet.js +1 -1
- package/es/components/code-snippet/code-snippet.js.map +1 -1
- package/es/components/code-snippet/code-snippet.scss.js +1 -1
- package/es/components/code-snippet/defs.js.map +1 -1
- package/es/components/combo-box/combo-box-item.js +1 -1
- package/es/components/combo-box/combo-box-item.js.map +1 -1
- package/es/components/combo-box/combo-box.js +1 -1
- package/es/components/combo-box/combo-box.js.map +1 -1
- package/es/components/combo-button/combo-button.js +1 -1
- package/es/components/combo-button/combo-button.js.map +1 -1
- package/es/components/combo-button/combo-button.scss.js +1 -1
- package/es/components/combo-button/defs.js.map +1 -1
- package/es/components/contained-list/contained-list-description.js +1 -1
- package/es/components/contained-list/contained-list-description.js.map +1 -1
- package/es/components/contained-list/contained-list-item.js +1 -1
- package/es/components/contained-list/contained-list-item.js.map +1 -1
- package/es/components/contained-list/contained-list.js +1 -1
- package/es/components/contained-list/contained-list.js.map +1 -1
- package/es/components/contained-list/contained-list.scss.js +1 -1
- package/es/components/content-switcher/content-switcher-item.js +1 -1
- package/es/components/content-switcher/content-switcher-item.js.map +1 -1
- package/es/components/content-switcher/content-switcher.js +1 -1
- package/es/components/content-switcher/content-switcher.js.map +1 -1
- package/es/components/content-switcher/content-switcher.scss.js +1 -1
- package/es/components/content-switcher/defs.js.map +1 -1
- package/es/components/copy/copy.js +1 -1
- package/es/components/copy/copy.js.map +1 -1
- package/es/components/copy-button/copy-button.js +1 -1
- package/es/components/copy-button/copy-button.js.map +1 -1
- package/es/components/copy-button/copy-button.scss.js +1 -1
- package/es/components/data-table/data-table.scss.js +1 -1
- package/es/components/data-table/defs.js.map +1 -1
- package/es/components/data-table/table-batch-actions.d.ts +8 -0
- package/es/components/data-table/table-batch-actions.d.ts.map +1 -1
- package/es/components/data-table/table-batch-actions.js +10 -9
- package/es/components/data-table/table-batch-actions.js.map +1 -1
- package/es/components/data-table/table-body.js +1 -1
- package/es/components/data-table/table-body.js.map +1 -1
- package/es/components/data-table/table-cell-content.js +1 -1
- package/es/components/data-table/table-cell-content.js.map +1 -1
- package/es/components/data-table/table-cell.js +1 -1
- package/es/components/data-table/table-cell.js.map +1 -1
- package/es/components/data-table/table-expanded-row.js +1 -1
- package/es/components/data-table/table-expanded-row.js.map +1 -1
- package/es/components/data-table/table-head.js +1 -1
- package/es/components/data-table/table-head.js.map +1 -1
- package/es/components/data-table/table-header-cell.js +1 -1
- package/es/components/data-table/table-header-cell.js.map +1 -1
- package/es/components/data-table/table-header-description.js +1 -1
- package/es/components/data-table/table-header-description.js.map +1 -1
- package/es/components/data-table/table-header-row.js +1 -1
- package/es/components/data-table/table-header-row.js.map +1 -1
- package/es/components/data-table/table-header-title.js +1 -1
- package/es/components/data-table/table-header-title.js.map +1 -1
- package/es/components/data-table/table-row.js +1 -1
- package/es/components/data-table/table-row.js.map +1 -1
- package/es/components/data-table/table-skeleton.js +1 -1
- package/es/components/data-table/table-skeleton.js.map +1 -1
- package/es/components/data-table/table-toolbar-content.js +1 -1
- package/es/components/data-table/table-toolbar-content.js.map +1 -1
- package/es/components/data-table/table-toolbar-search.js +1 -1
- package/es/components/data-table/table-toolbar-search.js.map +1 -1
- package/es/components/data-table/table-toolbar.js +1 -1
- package/es/components/data-table/table-toolbar.js.map +1 -1
- package/es/components/data-table/table.js +1 -1
- package/es/components/data-table/table.js.map +1 -1
- package/es/components/date-picker/append-to-plugin.js.map +1 -1
- package/es/components/date-picker/css-class-plugin.js.map +1 -1
- package/es/components/date-picker/date-picker-input-skeleton.js +1 -1
- package/es/components/date-picker/date-picker-input-skeleton.js.map +1 -1
- package/es/components/date-picker/date-picker-input.js +1 -1
- package/es/components/date-picker/date-picker-input.js.map +1 -1
- package/es/components/date-picker/date-picker.js +1 -1
- package/es/components/date-picker/date-picker.js.map +1 -1
- package/es/components/date-picker/defs.js.map +1 -1
- package/es/components/date-picker/fix-events-plugin.js.map +1 -1
- package/es/components/date-picker/focus-plugin.js.map +1 -1
- package/es/components/date-picker/icon-plugin.js.map +1 -1
- package/es/components/date-picker/iso-date.js.map +1 -1
- package/es/components/date-picker/month-select-plugin.js.map +1 -1
- package/es/components/date-picker/range-plugin.js.map +1 -1
- package/es/components/date-picker/shadow-dom-events-plugin.js.map +1 -1
- package/es/components/date-picker/state-handshake-plugin.js.map +1 -1
- package/es/components/dialog/dialog-body.js +1 -1
- package/es/components/dialog/dialog-body.js.map +1 -1
- package/es/components/dialog/dialog-close-button.js +1 -1
- package/es/components/dialog/dialog-close-button.js.map +1 -1
- package/es/components/dialog/dialog-controls.js +1 -1
- package/es/components/dialog/dialog-controls.js.map +1 -1
- package/es/components/dialog/dialog-footer-button.js +1 -1
- package/es/components/dialog/dialog-footer-button.js.map +1 -1
- package/es/components/dialog/dialog-footer.js +1 -1
- package/es/components/dialog/dialog-footer.js.map +1 -1
- package/es/components/dialog/dialog-header.js +1 -1
- package/es/components/dialog/dialog-header.js.map +1 -1
- package/es/components/dialog/dialog-subtitle.js +1 -1
- package/es/components/dialog/dialog-subtitle.js.map +1 -1
- package/es/components/dialog/dialog-title.js +1 -1
- package/es/components/dialog/dialog-title.js.map +1 -1
- package/es/components/dialog/dialog.js +1 -1
- package/es/components/dialog/dialog.js.map +1 -1
- package/es/components/dialog/dialog.scss.js +1 -1
- package/es/components/dropdown/defs.js.map +1 -1
- package/es/components/dropdown/dropdown-item.js +1 -1
- package/es/components/dropdown/dropdown-item.js.map +1 -1
- package/es/components/dropdown/dropdown-skeleton.js +1 -1
- package/es/components/dropdown/dropdown-skeleton.js.map +1 -1
- package/es/components/dropdown/dropdown.js +1 -1
- package/es/components/dropdown/dropdown.js.map +1 -1
- package/es/components/feature-flags/index.js +1 -1
- package/es/components/feature-flags/index.js.map +1 -1
- package/es/components/file-uploader/defs.js.map +1 -1
- package/es/components/file-uploader/demo-file-uploader.js +1 -1
- package/es/components/file-uploader/demo-file-uploader.js.map +1 -1
- package/es/components/file-uploader/file-uploader-button.js +1 -1
- package/es/components/file-uploader/file-uploader-button.js.map +1 -1
- package/es/components/file-uploader/file-uploader-drop-container.js +1 -1
- package/es/components/file-uploader/file-uploader-drop-container.js.map +1 -1
- package/es/components/file-uploader/file-uploader-item.js +1 -1
- package/es/components/file-uploader/file-uploader-item.js.map +1 -1
- package/es/components/file-uploader/file-uploader-skeleton.js +1 -1
- package/es/components/file-uploader/file-uploader-skeleton.js.map +1 -1
- package/es/components/file-uploader/file-uploader.js +1 -1
- package/es/components/file-uploader/file-uploader.js.map +1 -1
- package/es/components/file-uploader/file-uploader.scss.js +1 -1
- package/es/components/floating-menu/defs.js.map +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-skeleton.js +1 -1
- package/es/components/fluid-combo-box/fluid-combo-box-skeleton.js.map +1 -1
- package/es/components/fluid-combo-box/fluid-combo-box.js +1 -1
- package/es/components/fluid-combo-box/fluid-combo-box.js.map +1 -1
- package/es/components/fluid-dropdown/fluid-dropdown-skeleton.js +1 -1
- package/es/components/fluid-dropdown/fluid-dropdown-skeleton.js.map +1 -1
- package/es/components/fluid-dropdown/fluid-dropdown.js +1 -1
- package/es/components/fluid-dropdown/fluid-dropdown.js.map +1 -1
- package/es/components/fluid-form/fluid-form.js +1 -1
- package/es/components/fluid-form/fluid-form.js.map +1 -1
- package/es/components/fluid-multi-select/fluid-multi-select-skeleton.js +1 -1
- package/es/components/fluid-multi-select/fluid-multi-select-skeleton.js.map +1 -1
- package/es/components/fluid-multi-select/fluid-multi-select.js +1 -1
- package/es/components/fluid-multi-select/fluid-multi-select.js.map +1 -1
- package/es/components/fluid-multi-select/fluid-multi-select.scss.js +1 -1
- package/es/components/fluid-number-input/fluid-number-input-skeleton.js +1 -1
- package/es/components/fluid-number-input/fluid-number-input-skeleton.js.map +1 -1
- package/es/components/fluid-number-input/fluid-number-input.js +1 -1
- package/es/components/fluid-number-input/fluid-number-input.js.map +1 -1
- package/es/components/fluid-password-input/fluid-password-input.d.ts +1 -0
- package/es/components/fluid-password-input/fluid-password-input.d.ts.map +1 -1
- package/es/components/fluid-password-input/fluid-password-input.js +4 -3
- package/es/components/fluid-password-input/fluid-password-input.js.map +1 -1
- package/es/components/fluid-search/fluid-search-skeleton.js +1 -1
- package/es/components/fluid-search/fluid-search-skeleton.js.map +1 -1
- package/es/components/fluid-search/fluid-search.js +1 -1
- package/es/components/fluid-search/fluid-search.js.map +1 -1
- package/es/components/fluid-select/fluid-select-skeleton.js +1 -1
- package/es/components/fluid-select/fluid-select-skeleton.js.map +1 -1
- package/es/components/fluid-select/fluid-select.js +1 -1
- package/es/components/fluid-select/fluid-select.js.map +1 -1
- package/es/components/fluid-text-input/fluid-text-input-skeleton.js +1 -1
- package/es/components/fluid-text-input/fluid-text-input-skeleton.js.map +1 -1
- package/es/components/fluid-text-input/fluid-text-input.d.ts +1 -0
- package/es/components/fluid-text-input/fluid-text-input.d.ts.map +1 -1
- package/es/components/fluid-text-input/fluid-text-input.js +4 -3
- package/es/components/fluid-text-input/fluid-text-input.js.map +1 -1
- package/es/components/fluid-textarea/fluid-textarea-skeleton.js +1 -1
- package/es/components/fluid-textarea/fluid-textarea-skeleton.js.map +1 -1
- package/es/components/fluid-textarea/fluid-textarea.js +1 -1
- package/es/components/fluid-textarea/fluid-textarea.js.map +1 -1
- package/es/components/fluid-time-picker/fluid-time-picker-select.js +1 -1
- package/es/components/fluid-time-picker/fluid-time-picker-select.js.map +1 -1
- package/es/components/fluid-time-picker/fluid-time-picker-skeleton.js +1 -1
- package/es/components/fluid-time-picker/fluid-time-picker-skeleton.js.map +1 -1
- package/es/components/fluid-time-picker/fluid-time-picker.js +1 -1
- package/es/components/fluid-time-picker/fluid-time-picker.js.map +1 -1
- package/es/components/form/form-item.js +1 -1
- package/es/components/form/form-item.js.map +1 -1
- package/es/components/form/form.js +1 -1
- package/es/components/form/form.js.map +1 -1
- package/es/components/form-group/form-group.js +1 -1
- package/es/components/form-group/form-group.js.map +1 -1
- package/es/components/grid/column-hang.js +1 -1
- package/es/components/grid/column-hang.js.map +1 -1
- package/es/components/grid/column.js +1 -1
- package/es/components/grid/column.js.map +1 -1
- package/es/components/grid/defs.js.map +1 -1
- package/es/components/grid/grid-context.js.map +1 -1
- package/es/components/grid/grid.js +1 -1
- package/es/components/grid/grid.js.map +1 -1
- package/es/components/heading/heading.js +1 -1
- package/es/components/heading/heading.js.map +1 -1
- package/es/components/icon/icon.js +1 -1
- package/es/components/icon/icon.js.map +1 -1
- package/es/components/icon-button/defs.js.map +1 -1
- package/es/components/icon-button/icon-button.js +1 -1
- package/es/components/icon-button/icon-button.js.map +1 -1
- package/es/components/icon-indicator/defs.js.map +1 -1
- package/es/components/icon-indicator/icon-indicator.js +1 -1
- package/es/components/icon-indicator/icon-indicator.js.map +1 -1
- package/es/components/inline-loading/defs.js.map +1 -1
- package/es/components/inline-loading/inline-loading.js +1 -1
- package/es/components/inline-loading/inline-loading.js.map +1 -1
- package/es/components/layer/layer.js +1 -1
- package/es/components/layer/layer.js.map +1 -1
- package/es/components/layout/layout-constraint.js +1 -1
- package/es/components/layout/layout-constraint.js.map +1 -1
- package/es/components/layout/layout.js +1 -1
- package/es/components/layout/layout.js.map +1 -1
- package/es/components/link/link.d.ts +1 -1
- package/es/components/link/link.js +1 -1
- package/es/components/link/link.js.map +1 -1
- package/es/components/link/link.scss.js +1 -1
- package/es/components/list/list-item.js +1 -1
- package/es/components/list/list-item.js.map +1 -1
- package/es/components/list/ordered-list.js +1 -1
- package/es/components/list/ordered-list.js.map +1 -1
- package/es/components/list/unordered-list.js +1 -1
- package/es/components/list/unordered-list.js.map +1 -1
- package/es/components/loading/defs.js.map +1 -1
- package/es/components/loading/loading-icon.js.map +1 -1
- package/es/components/loading/loading.js +1 -1
- package/es/components/loading/loading.js.map +1 -1
- package/es/components/menu/defs.js.map +1 -1
- package/es/components/menu/menu-context.js.map +1 -1
- package/es/components/menu/menu-item-divider.js +1 -1
- package/es/components/menu/menu-item-divider.js.map +1 -1
- package/es/components/menu/menu-item-group.js +1 -1
- package/es/components/menu/menu-item-group.js.map +1 -1
- package/es/components/menu/menu-item-radio-group.js +1 -1
- package/es/components/menu/menu-item-radio-group.js.map +1 -1
- package/es/components/menu/menu-item-selectable.d.ts +4 -0
- package/es/components/menu/menu-item-selectable.d.ts.map +1 -1
- package/es/components/menu/menu-item-selectable.js +4 -4
- package/es/components/menu/menu-item-selectable.js.map +1 -1
- package/es/components/menu/menu-item.js +1 -1
- package/es/components/menu/menu-item.js.map +1 -1
- package/es/components/menu/menu.d.ts +14 -6
- package/es/components/menu/menu.d.ts.map +1 -1
- package/es/components/menu/menu.js +9 -7
- package/es/components/menu/menu.js.map +1 -1
- package/es/components/menu-button/defs.js.map +1 -1
- package/es/components/menu-button/menu-button.js +1 -1
- package/es/components/menu-button/menu-button.js.map +1 -1
- package/es/components/menu-button/menu-button.scss.js +1 -1
- package/es/components/modal/defs.js.map +1 -1
- package/es/components/modal/modal-base.js +1 -1
- package/es/components/modal/modal-base.js.map +1 -1
- package/es/components/modal/modal-body-content.js +1 -1
- package/es/components/modal/modal-body-content.js.map +1 -1
- package/es/components/modal/modal-body.js +1 -1
- package/es/components/modal/modal-body.js.map +1 -1
- package/es/components/modal/modal-close-button.js +1 -1
- package/es/components/modal/modal-close-button.js.map +1 -1
- package/es/components/modal/modal-footer-button.js +1 -1
- package/es/components/modal/modal-footer-button.js.map +1 -1
- package/es/components/modal/modal-footer.js +1 -1
- package/es/components/modal/modal-footer.js.map +1 -1
- package/es/components/modal/modal-header.js +1 -1
- package/es/components/modal/modal-header.js.map +1 -1
- package/es/components/modal/modal-heading.js +1 -1
- package/es/components/modal/modal-heading.js.map +1 -1
- package/es/components/modal/modal-label.js +1 -1
- package/es/components/modal/modal-label.js.map +1 -1
- package/es/components/modal/modal.js +1 -1
- package/es/components/modal/modal.js.map +1 -1
- package/es/components/modal/modal.scss.js +1 -1
- package/es/components/multi-select/defs.js.map +1 -1
- package/es/components/multi-select/multi-select-item.js +1 -1
- package/es/components/multi-select/multi-select-item.js.map +1 -1
- package/es/components/multi-select/multi-select.js +1 -1
- package/es/components/multi-select/multi-select.js.map +1 -1
- package/es/components/multi-select/multi-select.scss.js +1 -1
- package/es/components/notification/actionable-notification-button.js +1 -1
- package/es/components/notification/actionable-notification-button.js.map +1 -1
- package/es/components/notification/actionable-notification.js +1 -1
- package/es/components/notification/actionable-notification.js.map +1 -1
- package/es/components/notification/actionable-notification.scss.js +1 -1
- package/es/components/notification/callout-notification.js +1 -1
- package/es/components/notification/callout-notification.js.map +1 -1
- package/es/components/notification/defs.js.map +1 -1
- package/es/components/notification/inline-notification.js +1 -1
- package/es/components/notification/inline-notification.js.map +1 -1
- package/es/components/notification/inline-notification.scss.js +1 -1
- package/es/components/notification/stories/helper.js.map +1 -1
- package/es/components/notification/toast-notification.js +1 -1
- package/es/components/notification/toast-notification.js.map +1 -1
- package/es/components/notification/toast-notification.scss.js +1 -1
- package/es/components/number-input/defs.js.map +1 -1
- package/es/components/number-input/number-input-skeleton.js +1 -1
- package/es/components/number-input/number-input-skeleton.js.map +1 -1
- package/es/components/number-input/number-input.js +1 -1
- package/es/components/number-input/number-input.js.map +1 -1
- package/es/components/overflow-menu/defs.js.map +1 -1
- package/es/components/overflow-menu/overflow-menu-body.js +1 -1
- package/es/components/overflow-menu/overflow-menu-body.js.map +1 -1
- package/es/components/overflow-menu/overflow-menu-item.js +1 -1
- package/es/components/overflow-menu/overflow-menu-item.js.map +1 -1
- package/es/components/overflow-menu/overflow-menu.d.ts +8 -0
- package/es/components/overflow-menu/overflow-menu.d.ts.map +1 -1
- package/es/components/overflow-menu/overflow-menu.js +11 -10
- 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/page-header/page-header-breadcrumb.js +1 -1
- package/es/components/page-header/page-header-breadcrumb.js.map +1 -1
- package/es/components/page-header/page-header-content-text.js +1 -1
- package/es/components/page-header/page-header-content-text.js.map +1 -1
- package/es/components/page-header/page-header-content.js +1 -1
- package/es/components/page-header/page-header-content.js.map +1 -1
- package/es/components/page-header/page-header-hero-image.js +1 -1
- package/es/components/page-header/page-header-hero-image.js.map +1 -1
- package/es/components/page-header/page-header-tabs.js +1 -1
- package/es/components/page-header/page-header-tabs.js.map +1 -1
- package/es/components/page-header/page-header.js +1 -1
- package/es/components/page-header/page-header.js.map +1 -1
- package/es/components/pagination/defs.js.map +1 -1
- package/es/components/pagination/pagination.d.ts +3 -0
- package/es/components/pagination/pagination.d.ts.map +1 -1
- package/es/components/pagination/pagination.js +18 -23
- package/es/components/pagination/pagination.js.map +1 -1
- package/es/components/pagination/pagination.scss.js +1 -1
- package/es/components/pagination-nav/defs.js.map +1 -1
- package/es/components/pagination-nav/pagination-nav.js +1 -1
- package/es/components/pagination-nav/pagination-nav.js.map +1 -1
- package/es/components/pagination-nav/pagination-nav.scss.js +1 -1
- package/es/components/password-input/defs.js.map +1 -1
- package/es/components/password-input/password-input-skeleton.js +1 -1
- package/es/components/password-input/password-input-skeleton.js.map +1 -1
- package/es/components/password-input/password-input.js +1 -1
- package/es/components/password-input/password-input.js.map +1 -1
- package/es/components/popover/defs.js.map +1 -1
- package/es/components/popover/popover-content.js +1 -1
- package/es/components/popover/popover-content.js.map +1 -1
- package/es/components/popover/popover.d.ts +5 -0
- package/es/components/popover/popover.d.ts.map +1 -1
- package/es/components/popover/popover.js +23 -2
- package/es/components/popover/popover.js.map +1 -1
- package/es/components/popover/popover.scss.js +1 -1
- package/es/components/progress-bar/defs.js.map +1 -1
- package/es/components/progress-bar/progress-bar.d.ts +1 -0
- package/es/components/progress-bar/progress-bar.d.ts.map +1 -1
- package/es/components/progress-bar/progress-bar.js +5 -5
- package/es/components/progress-bar/progress-bar.js.map +1 -1
- package/es/components/progress-indicator/defs.js.map +1 -1
- package/es/components/progress-indicator/progress-indicator-skeleton.js +1 -1
- package/es/components/progress-indicator/progress-indicator-skeleton.js.map +1 -1
- package/es/components/progress-indicator/progress-indicator.js +1 -1
- package/es/components/progress-indicator/progress-indicator.js.map +1 -1
- package/es/components/progress-indicator/progress-indicator.scss.js +1 -1
- package/es/components/progress-indicator/progress-step-skeleton.js +1 -1
- package/es/components/progress-indicator/progress-step-skeleton.js.map +1 -1
- package/es/components/progress-indicator/progress-step.js +1 -1
- package/es/components/progress-indicator/progress-step.js.map +1 -1
- package/es/components/radio-button/defs.js.map +1 -1
- package/es/components/radio-button/radio-button-group.d.ts +3 -0
- package/es/components/radio-button/radio-button-group.d.ts.map +1 -1
- package/es/components/radio-button/radio-button-group.js +22 -5
- package/es/components/radio-button/radio-button-group.js.map +1 -1
- package/es/components/radio-button/radio-button-skeleton.js +1 -1
- package/es/components/radio-button/radio-button-skeleton.js.map +1 -1
- package/es/components/radio-button/radio-button.js +1 -1
- package/es/components/radio-button/radio-button.js.map +1 -1
- package/es/components/search/defs.js.map +1 -1
- package/es/components/search/search-skeleton.js +1 -1
- package/es/components/search/search-skeleton.js.map +1 -1
- package/es/components/search/search.js +1 -1
- package/es/components/search/search.js.map +1 -1
- package/es/components/select/select-item-group.js +1 -1
- package/es/components/select/select-item-group.js.map +1 -1
- package/es/components/select/select-item.js +1 -1
- package/es/components/select/select-item.js.map +1 -1
- package/es/components/select/select-skeleton.js +1 -1
- package/es/components/select/select-skeleton.js.map +1 -1
- package/es/components/select/select.js +1 -1
- package/es/components/select/select.js.map +1 -1
- package/es/components/shape-indicator/defs.js.map +1 -1
- package/es/components/shape-indicator/shape-indicator.js +1 -1
- package/es/components/shape-indicator/shape-indicator.js.map +1 -1
- package/es/components/side-panel/defs.js.map +1 -1
- package/es/components/side-panel/side-panel.js +1 -1
- package/es/components/side-panel/side-panel.js.map +1 -1
- package/es/components/skeleton-icon/skeleton-icon.js +1 -1
- package/es/components/skeleton-icon/skeleton-icon.js.map +1 -1
- package/es/components/skeleton-placeholder/skeleton-placeholder.js +1 -1
- package/es/components/skeleton-placeholder/skeleton-placeholder.js.map +1 -1
- package/es/components/skeleton-text/defs.js.map +1 -1
- package/es/components/skeleton-text/skeleton-text.js +1 -1
- package/es/components/skeleton-text/skeleton-text.js.map +1 -1
- package/es/components/skip-to-content/skip-to-content.js +1 -1
- package/es/components/skip-to-content/skip-to-content.js.map +1 -1
- package/es/components/skip-to-content/skip-to-content.scss.js +1 -1
- package/es/components/slider/slider-input.js +1 -1
- package/es/components/slider/slider-input.js.map +1 -1
- package/es/components/slider/slider-skeleton.js +1 -1
- package/es/components/slider/slider-skeleton.js.map +1 -1
- package/es/components/slider/slider.js +1 -1
- package/es/components/slider/slider.js.map +1 -1
- package/es/components/slug/defs.js.map +1 -1
- package/es/components/slug/slug-action-button.js +1 -1
- package/es/components/slug/slug-action-button.js.map +1 -1
- package/es/components/slug/slug.js +1 -1
- package/es/components/slug/slug.js.map +1 -1
- package/es/components/slug/slug.scss.js +1 -1
- package/es/components/stack/defs.js.map +1 -1
- package/es/components/stack/stack.js +1 -1
- package/es/components/stack/stack.js.map +1 -1
- package/es/components/structured-list/structured-list-body.js +1 -1
- package/es/components/structured-list/structured-list-body.js.map +1 -1
- package/es/components/structured-list/structured-list-cell.js +1 -1
- package/es/components/structured-list/structured-list-cell.js.map +1 -1
- package/es/components/structured-list/structured-list-head.js +1 -1
- package/es/components/structured-list/structured-list-head.js.map +1 -1
- package/es/components/structured-list/structured-list-header-cell-skeleton.js +1 -1
- package/es/components/structured-list/structured-list-header-cell-skeleton.js.map +1 -1
- package/es/components/structured-list/structured-list-header-cell.js +1 -1
- package/es/components/structured-list/structured-list-header-cell.js.map +1 -1
- package/es/components/structured-list/structured-list-header-row.js +1 -1
- package/es/components/structured-list/structured-list-header-row.js.map +1 -1
- package/es/components/structured-list/structured-list-row.js +1 -1
- package/es/components/structured-list/structured-list-row.js.map +1 -1
- package/es/components/structured-list/structured-list.js +1 -1
- package/es/components/structured-list/structured-list.js.map +1 -1
- package/es/components/tabs/defs.js.map +1 -1
- package/es/components/tabs/stories/tabs-wrapper.js +1 -1
- package/es/components/tabs/stories/tabs-wrapper.js.map +1 -1
- package/es/components/tabs/tab-skeleton.js +1 -1
- package/es/components/tabs/tab-skeleton.js.map +1 -1
- package/es/components/tabs/tab.js +1 -1
- package/es/components/tabs/tab.js.map +1 -1
- package/es/components/tabs/tabs-skeleton.js +1 -1
- package/es/components/tabs/tabs-skeleton.js.map +1 -1
- package/es/components/tabs/tabs-vertical.js +1 -1
- package/es/components/tabs/tabs-vertical.js.map +1 -1
- package/es/components/tabs/tabs.js +1 -1
- package/es/components/tabs/tabs.js.map +1 -1
- package/es/components/tabs/tabs.scss.js +1 -1
- package/es/components/tag/defs.js.map +1 -1
- package/es/components/tag/dismissible-tag.js +1 -1
- package/es/components/tag/dismissible-tag.js.map +1 -1
- package/es/components/tag/operational-tag.js +1 -1
- package/es/components/tag/operational-tag.js.map +1 -1
- package/es/components/tag/selectable-tag.js +1 -1
- package/es/components/tag/selectable-tag.js.map +1 -1
- package/es/components/tag/tag-skeleton.js +1 -1
- package/es/components/tag/tag-skeleton.js.map +1 -1
- package/es/components/tag/tag.js +1 -1
- package/es/components/tag/tag.js.map +1 -1
- package/es/components/tag/tag.scss.js +1 -1
- package/es/components/tearsheet/defs.js.map +1 -1
- package/es/components/tearsheet/tearsheet.js +1 -1
- package/es/components/tearsheet/tearsheet.js.map +1 -1
- package/es/components/text-input/defs.js.map +1 -1
- package/es/components/text-input/stories/helpers.js.map +1 -1
- package/es/components/text-input/text-input-skeleton.js +1 -1
- package/es/components/text-input/text-input-skeleton.js.map +1 -1
- package/es/components/text-input/text-input.js +1 -1
- package/es/components/text-input/text-input.js.map +1 -1
- package/es/components/textarea/stories/helpers.js.map +1 -1
- package/es/components/textarea/textarea-skeleton.js +1 -1
- package/es/components/textarea/textarea-skeleton.js.map +1 -1
- package/es/components/textarea/textarea.js +1 -1
- package/es/components/textarea/textarea.js.map +1 -1
- package/es/components/tile/clickable-tile.js +1 -1
- package/es/components/tile/clickable-tile.js.map +1 -1
- package/es/components/tile/expandable-tile.js +1 -1
- package/es/components/tile/expandable-tile.js.map +1 -1
- package/es/components/tile/radio-tile.js +1 -1
- package/es/components/tile/radio-tile.js.map +1 -1
- package/es/components/tile/selectable-tile.js +1 -1
- package/es/components/tile/selectable-tile.js.map +1 -1
- package/es/components/tile/tile-group.js +1 -1
- package/es/components/tile/tile-group.js.map +1 -1
- package/es/components/tile/tile.js +1 -1
- package/es/components/tile/tile.js.map +1 -1
- package/es/components/tile/tile.scss.js +1 -1
- package/es/components/time-picker/defs.js.map +1 -1
- package/es/components/time-picker/time-picker-select.js +1 -1
- package/es/components/time-picker/time-picker-select.js.map +1 -1
- package/es/components/time-picker/time-picker.js +1 -1
- package/es/components/time-picker/time-picker.js.map +1 -1
- package/es/components/toggle/defs.js.map +1 -1
- package/es/components/toggle/toggle-skeleton.js +1 -1
- package/es/components/toggle/toggle-skeleton.js.map +1 -1
- package/es/components/toggle/toggle.js +1 -1
- package/es/components/toggle/toggle.js.map +1 -1
- package/es/components/toggle-tip/toggletip.js +1 -1
- 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.js +1 -1
- package/es/components/tooltip/definition-tooltip.js.map +1 -1
- package/es/components/tooltip/tooltip-content.js +1 -1
- package/es/components/tooltip/tooltip-content.js.map +1 -1
- package/es/components/tooltip/tooltip.js +1 -1
- package/es/components/tooltip/tooltip.js.map +1 -1
- package/es/components/tooltip/tooltip.scss.js +1 -1
- package/es/components/tree-view/defs.js.map +1 -1
- package/es/components/tree-view/tree-node.js +1 -1
- package/es/components/tree-view/tree-node.js.map +1 -1
- package/es/components/tree-view/tree-view.js +1 -1
- package/es/components/tree-view/tree-view.js.map +1 -1
- package/es/components/ui-shell/defs.js.map +1 -1
- package/es/components/ui-shell/header-global-action.js +1 -1
- package/es/components/ui-shell/header-global-action.js.map +1 -1
- package/es/components/ui-shell/header-menu-button.js +1 -1
- package/es/components/ui-shell/header-menu-button.js.map +1 -1
- package/es/components/ui-shell/header-menu-item.js +1 -1
- package/es/components/ui-shell/header-menu-item.js.map +1 -1
- package/es/components/ui-shell/header-menu.js +1 -1
- package/es/components/ui-shell/header-menu.js.map +1 -1
- package/es/components/ui-shell/header-name.js +1 -1
- package/es/components/ui-shell/header-name.js.map +1 -1
- package/es/components/ui-shell/header-nav-item.js +1 -1
- package/es/components/ui-shell/header-nav-item.js.map +1 -1
- package/es/components/ui-shell/header-nav.js +1 -1
- package/es/components/ui-shell/header-nav.js.map +1 -1
- package/es/components/ui-shell/header-panel.js +1 -1
- package/es/components/ui-shell/header-panel.js.map +1 -1
- package/es/components/ui-shell/header-side-nav-items.js +1 -1
- package/es/components/ui-shell/header-side-nav-items.js.map +1 -1
- package/es/components/ui-shell/header.js +1 -1
- package/es/components/ui-shell/header.js.map +1 -1
- package/es/components/ui-shell/header.scss.js +1 -1
- package/es/components/ui-shell/side-nav-divider.js +1 -1
- package/es/components/ui-shell/side-nav-divider.js.map +1 -1
- package/es/components/ui-shell/side-nav-items.js +1 -1
- package/es/components/ui-shell/side-nav-items.js.map +1 -1
- package/es/components/ui-shell/side-nav-link.js +1 -1
- package/es/components/ui-shell/side-nav-link.js.map +1 -1
- package/es/components/ui-shell/side-nav-menu-item.js +1 -1
- package/es/components/ui-shell/side-nav-menu-item.js.map +1 -1
- package/es/components/ui-shell/side-nav-menu.js +1 -1
- package/es/components/ui-shell/side-nav-menu.js.map +1 -1
- package/es/components/ui-shell/side-nav.js +1 -1
- package/es/components/ui-shell/side-nav.js.map +1 -1
- package/es/components/ui-shell/switcher-divider.js +1 -1
- package/es/components/ui-shell/switcher-divider.js.map +1 -1
- package/es/components/ui-shell/switcher-item.js +1 -1
- package/es/components/ui-shell/switcher-item.js.map +1 -1
- package/es/components/ui-shell/switcher.js +1 -1
- package/es/components/ui-shell/switcher.js.map +1 -1
- package/es/globals/controllers/floating-controller.js.map +1 -1
- package/es/globals/decorators/carbon-element.js.map +1 -1
- package/es/globals/decorators/host-listener.js.map +1 -1
- package/es/globals/directives/if-non-empty.js.map +1 -1
- package/es/globals/directives/spread.js.map +1 -1
- package/es/globals/internal/collection-helpers.js.map +1 -1
- package/es/globals/internal/deep-shadow-contains.js.map +1 -1
- package/es/globals/internal/icon-loader-utils.js.map +1 -1
- package/es/globals/internal/icon-loader.js.map +1 -1
- package/es/globals/internal/radio-group-manager.js.map +1 -1
- package/es/globals/mixins/focus.js.map +1 -1
- package/es/globals/mixins/form.js.map +1 -1
- package/es/globals/mixins/host-listener.js.map +1 -1
- package/es/globals/mixins/on.js.map +1 -1
- package/es/globals/mixins/validity.js.map +1 -1
- package/es/globals/shared-enums.js.map +1 -1
- package/es/node_modules/flatpickr/dist/esm/index.js.map +1 -1
- package/es/node_modules/flatpickr/dist/esm/l10n/default.js.map +1 -1
- package/es/node_modules/flatpickr/dist/esm/plugins/rangePlugin.js.map +1 -1
- package/es/node_modules/flatpickr/dist/esm/types/options.js.map +1 -1
- package/es/node_modules/flatpickr/dist/esm/utils/dates.js.map +1 -1
- package/es/node_modules/flatpickr/dist/esm/utils/dom.js.map +1 -1
- package/es/node_modules/flatpickr/dist/esm/utils/formatting.js.map +1 -1
- package/es/node_modules/flatpickr/dist/esm/utils/index.js.map +1 -1
- package/es/node_modules/flatpickr/dist/esm/utils/polyfills.js.map +1 -1
- package/es/packages/feature-flags/es/index.js.map +1 -1
- package/es-custom/_virtual/{_@oxc-project_runtime@0.126.0/helpers → _@oxc-project_runtime@0.135.0/helpers/esm}/decorate.js +1 -1
- package/es-custom/components/accordion/accordion-item-skeleton.js +1 -1
- package/es-custom/components/accordion/accordion-item-skeleton.js.map +1 -1
- package/es-custom/components/accordion/accordion-item.js +1 -1
- package/es-custom/components/accordion/accordion-item.js.map +1 -1
- package/es-custom/components/accordion/accordion-skeleton.js +1 -1
- package/es-custom/components/accordion/accordion-skeleton.js.map +1 -1
- package/es-custom/components/accordion/accordion.js +1 -1
- package/es-custom/components/accordion/accordion.js.map +1 -1
- package/es-custom/components/accordion/accordion.scss.js +1 -1
- package/es-custom/components/accordion/accordion.scss.js.map +1 -1
- package/es-custom/components/accordion/defs.js.map +1 -1
- package/es-custom/components/ai-label/ai-label-action-button.js +1 -1
- package/es-custom/components/ai-label/ai-label-action-button.js.map +1 -1
- package/es-custom/components/ai-label/ai-label.js +1 -1
- package/es-custom/components/ai-label/ai-label.js.map +1 -1
- package/es-custom/components/ai-label/ai-label.scss.js +1 -1
- package/es-custom/components/ai-label/defs.js.map +1 -1
- package/es-custom/components/ai-skeleton/ai-skeleton-icon.js +1 -1
- package/es-custom/components/ai-skeleton/ai-skeleton-icon.js.map +1 -1
- package/es-custom/components/ai-skeleton/ai-skeleton-placeholder.js +1 -1
- package/es-custom/components/ai-skeleton/ai-skeleton-placeholder.js.map +1 -1
- package/es-custom/components/ai-skeleton/ai-skeleton-text.js +1 -1
- package/es-custom/components/ai-skeleton/ai-skeleton-text.js.map +1 -1
- package/es-custom/components/badge-indicator/badge-indicator.js +1 -1
- package/es-custom/components/badge-indicator/badge-indicator.js.map +1 -1
- package/es-custom/components/breadcrumb/breadcrumb-item.js +1 -1
- package/es-custom/components/breadcrumb/breadcrumb-item.js.map +1 -1
- package/es-custom/components/breadcrumb/breadcrumb-link.js +1 -1
- package/es-custom/components/breadcrumb/breadcrumb-link.js.map +1 -1
- package/es-custom/components/breadcrumb/breadcrumb-overflow-menu.js +1 -1
- package/es-custom/components/breadcrumb/breadcrumb-overflow-menu.js.map +1 -1
- package/es-custom/components/breadcrumb/breadcrumb-skeleton.js +1 -1
- package/es-custom/components/breadcrumb/breadcrumb-skeleton.js.map +1 -1
- package/es-custom/components/breadcrumb/breadcrumb.js +1 -1
- package/es-custom/components/breadcrumb/breadcrumb.js.map +1 -1
- package/es-custom/components/breadcrumb/breadcrumb.scss.js +1 -1
- package/es-custom/components/breadcrumb/defs.js.map +1 -1
- package/es-custom/components/button/button-set-base.js +1 -1
- package/es-custom/components/button/button-set-base.js.map +1 -1
- package/es-custom/components/button/button-set.d.ts +4 -0
- package/es-custom/components/button/button-set.d.ts.map +1 -1
- package/es-custom/components/button/button-set.js +5 -5
- package/es-custom/components/button/button-set.js.map +1 -1
- package/es-custom/components/button/button-skeleton.js +1 -1
- package/es-custom/components/button/button-skeleton.js.map +1 -1
- package/es-custom/components/button/button.js +1 -1
- 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/defs.js.map +1 -1
- package/es-custom/components/chat-button/chat-button-skeleton.js +1 -1
- package/es-custom/components/chat-button/chat-button-skeleton.js.map +1 -1
- package/es-custom/components/chat-button/chat-button.js +1 -1
- package/es-custom/components/chat-button/chat-button.js.map +1 -1
- package/es-custom/components/chat-button/defs.js.map +1 -1
- package/es-custom/components/checkbox/checkbox-group.js +1 -1
- package/es-custom/components/checkbox/checkbox-group.js.map +1 -1
- package/es-custom/components/checkbox/checkbox-skeleton.js +1 -1
- package/es-custom/components/checkbox/checkbox-skeleton.js.map +1 -1
- package/es-custom/components/checkbox/checkbox.js +1 -1
- package/es-custom/components/checkbox/checkbox.js.map +1 -1
- package/es-custom/components/checkbox/defs.js.map +1 -1
- package/es-custom/components/code-snippet/code-snippet-skeleton.js +1 -1
- package/es-custom/components/code-snippet/code-snippet-skeleton.js.map +1 -1
- package/es-custom/components/code-snippet/code-snippet.js +1 -1
- package/es-custom/components/code-snippet/code-snippet.js.map +1 -1
- package/es-custom/components/code-snippet/code-snippet.scss.js +1 -1
- package/es-custom/components/code-snippet/defs.js.map +1 -1
- package/es-custom/components/combo-box/combo-box-item.js +1 -1
- package/es-custom/components/combo-box/combo-box-item.js.map +1 -1
- package/es-custom/components/combo-box/combo-box.js +1 -1
- package/es-custom/components/combo-box/combo-box.js.map +1 -1
- package/es-custom/components/combo-button/combo-button.js +1 -1
- package/es-custom/components/combo-button/combo-button.js.map +1 -1
- package/es-custom/components/combo-button/combo-button.scss.js +1 -1
- package/es-custom/components/combo-button/defs.js.map +1 -1
- package/es-custom/components/contained-list/contained-list-description.js +1 -1
- package/es-custom/components/contained-list/contained-list-description.js.map +1 -1
- package/es-custom/components/contained-list/contained-list-item.js +1 -1
- package/es-custom/components/contained-list/contained-list-item.js.map +1 -1
- package/es-custom/components/contained-list/contained-list.js +1 -1
- package/es-custom/components/contained-list/contained-list.js.map +1 -1
- package/es-custom/components/contained-list/contained-list.scss.js +1 -1
- package/es-custom/components/content-switcher/content-switcher-item.js +1 -1
- package/es-custom/components/content-switcher/content-switcher-item.js.map +1 -1
- package/es-custom/components/content-switcher/content-switcher.js +1 -1
- package/es-custom/components/content-switcher/content-switcher.js.map +1 -1
- package/es-custom/components/content-switcher/content-switcher.scss.js +1 -1
- package/es-custom/components/content-switcher/defs.js.map +1 -1
- package/es-custom/components/copy/copy.js +1 -1
- package/es-custom/components/copy/copy.js.map +1 -1
- package/es-custom/components/copy-button/copy-button.js +1 -1
- package/es-custom/components/copy-button/copy-button.js.map +1 -1
- package/es-custom/components/copy-button/copy-button.scss.js +1 -1
- package/es-custom/components/data-table/data-table.scss.js +1 -1
- package/es-custom/components/data-table/defs.js.map +1 -1
- package/es-custom/components/data-table/table-batch-actions.d.ts +8 -0
- package/es-custom/components/data-table/table-batch-actions.d.ts.map +1 -1
- package/es-custom/components/data-table/table-batch-actions.js +10 -9
- package/es-custom/components/data-table/table-batch-actions.js.map +1 -1
- package/es-custom/components/data-table/table-body.js +1 -1
- package/es-custom/components/data-table/table-body.js.map +1 -1
- package/es-custom/components/data-table/table-cell-content.js +1 -1
- package/es-custom/components/data-table/table-cell-content.js.map +1 -1
- package/es-custom/components/data-table/table-cell.js +1 -1
- package/es-custom/components/data-table/table-cell.js.map +1 -1
- package/es-custom/components/data-table/table-expanded-row.js +1 -1
- package/es-custom/components/data-table/table-expanded-row.js.map +1 -1
- package/es-custom/components/data-table/table-head.js +1 -1
- package/es-custom/components/data-table/table-head.js.map +1 -1
- package/es-custom/components/data-table/table-header-cell.js +1 -1
- package/es-custom/components/data-table/table-header-cell.js.map +1 -1
- package/es-custom/components/data-table/table-header-description.js +1 -1
- package/es-custom/components/data-table/table-header-description.js.map +1 -1
- package/es-custom/components/data-table/table-header-row.js +1 -1
- package/es-custom/components/data-table/table-header-row.js.map +1 -1
- package/es-custom/components/data-table/table-header-title.js +1 -1
- package/es-custom/components/data-table/table-header-title.js.map +1 -1
- package/es-custom/components/data-table/table-row.js +1 -1
- package/es-custom/components/data-table/table-row.js.map +1 -1
- package/es-custom/components/data-table/table-skeleton.js +1 -1
- package/es-custom/components/data-table/table-skeleton.js.map +1 -1
- package/es-custom/components/data-table/table-toolbar-content.js +1 -1
- package/es-custom/components/data-table/table-toolbar-content.js.map +1 -1
- package/es-custom/components/data-table/table-toolbar-search.js +1 -1
- package/es-custom/components/data-table/table-toolbar-search.js.map +1 -1
- package/es-custom/components/data-table/table-toolbar.js +1 -1
- package/es-custom/components/data-table/table-toolbar.js.map +1 -1
- package/es-custom/components/data-table/table.js +1 -1
- package/es-custom/components/data-table/table.js.map +1 -1
- package/es-custom/components/date-picker/append-to-plugin.js.map +1 -1
- package/es-custom/components/date-picker/css-class-plugin.js.map +1 -1
- package/es-custom/components/date-picker/date-picker-input-skeleton.js +1 -1
- package/es-custom/components/date-picker/date-picker-input-skeleton.js.map +1 -1
- package/es-custom/components/date-picker/date-picker-input.js +1 -1
- package/es-custom/components/date-picker/date-picker-input.js.map +1 -1
- package/es-custom/components/date-picker/date-picker.js +1 -1
- package/es-custom/components/date-picker/date-picker.js.map +1 -1
- package/es-custom/components/date-picker/defs.js.map +1 -1
- package/es-custom/components/date-picker/fix-events-plugin.js.map +1 -1
- package/es-custom/components/date-picker/focus-plugin.js.map +1 -1
- package/es-custom/components/date-picker/icon-plugin.js.map +1 -1
- package/es-custom/components/date-picker/iso-date.js.map +1 -1
- package/es-custom/components/date-picker/month-select-plugin.js.map +1 -1
- package/es-custom/components/date-picker/range-plugin.js.map +1 -1
- package/es-custom/components/date-picker/shadow-dom-events-plugin.js.map +1 -1
- package/es-custom/components/date-picker/state-handshake-plugin.js.map +1 -1
- package/es-custom/components/dialog/dialog-body.js +1 -1
- package/es-custom/components/dialog/dialog-body.js.map +1 -1
- package/es-custom/components/dialog/dialog-close-button.js +1 -1
- package/es-custom/components/dialog/dialog-close-button.js.map +1 -1
- package/es-custom/components/dialog/dialog-controls.js +1 -1
- package/es-custom/components/dialog/dialog-controls.js.map +1 -1
- package/es-custom/components/dialog/dialog-footer-button.js +1 -1
- package/es-custom/components/dialog/dialog-footer-button.js.map +1 -1
- package/es-custom/components/dialog/dialog-footer.js +1 -1
- package/es-custom/components/dialog/dialog-footer.js.map +1 -1
- package/es-custom/components/dialog/dialog-header.js +1 -1
- package/es-custom/components/dialog/dialog-header.js.map +1 -1
- package/es-custom/components/dialog/dialog-subtitle.js +1 -1
- package/es-custom/components/dialog/dialog-subtitle.js.map +1 -1
- package/es-custom/components/dialog/dialog-title.js +1 -1
- package/es-custom/components/dialog/dialog-title.js.map +1 -1
- package/es-custom/components/dialog/dialog.js +1 -1
- package/es-custom/components/dialog/dialog.js.map +1 -1
- package/es-custom/components/dialog/dialog.scss.js +1 -1
- package/es-custom/components/dropdown/defs.js.map +1 -1
- package/es-custom/components/dropdown/dropdown-item.js +1 -1
- package/es-custom/components/dropdown/dropdown-item.js.map +1 -1
- package/es-custom/components/dropdown/dropdown-skeleton.js +1 -1
- package/es-custom/components/dropdown/dropdown-skeleton.js.map +1 -1
- package/es-custom/components/dropdown/dropdown.js +1 -1
- package/es-custom/components/dropdown/dropdown.js.map +1 -1
- package/es-custom/components/feature-flags/index.js +1 -1
- package/es-custom/components/feature-flags/index.js.map +1 -1
- package/es-custom/components/file-uploader/defs.js.map +1 -1
- package/es-custom/components/file-uploader/demo-file-uploader.js +1 -1
- package/es-custom/components/file-uploader/demo-file-uploader.js.map +1 -1
- package/es-custom/components/file-uploader/file-uploader-button.js +1 -1
- package/es-custom/components/file-uploader/file-uploader-button.js.map +1 -1
- package/es-custom/components/file-uploader/file-uploader-drop-container.js +1 -1
- package/es-custom/components/file-uploader/file-uploader-drop-container.js.map +1 -1
- package/es-custom/components/file-uploader/file-uploader-item.js +1 -1
- package/es-custom/components/file-uploader/file-uploader-item.js.map +1 -1
- package/es-custom/components/file-uploader/file-uploader-skeleton.js +1 -1
- package/es-custom/components/file-uploader/file-uploader-skeleton.js.map +1 -1
- package/es-custom/components/file-uploader/file-uploader.js +1 -1
- package/es-custom/components/file-uploader/file-uploader.js.map +1 -1
- package/es-custom/components/file-uploader/file-uploader.scss.js +1 -1
- package/es-custom/components/floating-menu/defs.js.map +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-skeleton.js +1 -1
- package/es-custom/components/fluid-combo-box/fluid-combo-box-skeleton.js.map +1 -1
- package/es-custom/components/fluid-combo-box/fluid-combo-box.js +1 -1
- package/es-custom/components/fluid-combo-box/fluid-combo-box.js.map +1 -1
- package/es-custom/components/fluid-dropdown/fluid-dropdown-skeleton.js +1 -1
- package/es-custom/components/fluid-dropdown/fluid-dropdown-skeleton.js.map +1 -1
- package/es-custom/components/fluid-dropdown/fluid-dropdown.js +1 -1
- package/es-custom/components/fluid-dropdown/fluid-dropdown.js.map +1 -1
- package/es-custom/components/fluid-form/fluid-form.js +1 -1
- package/es-custom/components/fluid-form/fluid-form.js.map +1 -1
- package/es-custom/components/fluid-multi-select/fluid-multi-select-skeleton.js +1 -1
- package/es-custom/components/fluid-multi-select/fluid-multi-select-skeleton.js.map +1 -1
- package/es-custom/components/fluid-multi-select/fluid-multi-select.js +1 -1
- package/es-custom/components/fluid-multi-select/fluid-multi-select.js.map +1 -1
- package/es-custom/components/fluid-multi-select/fluid-multi-select.scss.js +1 -1
- package/es-custom/components/fluid-number-input/fluid-number-input-skeleton.js +1 -1
- package/es-custom/components/fluid-number-input/fluid-number-input-skeleton.js.map +1 -1
- package/es-custom/components/fluid-number-input/fluid-number-input.js +1 -1
- package/es-custom/components/fluid-number-input/fluid-number-input.js.map +1 -1
- package/es-custom/components/fluid-password-input/fluid-password-input.d.ts +1 -0
- package/es-custom/components/fluid-password-input/fluid-password-input.d.ts.map +1 -1
- package/es-custom/components/fluid-password-input/fluid-password-input.js +4 -3
- package/es-custom/components/fluid-password-input/fluid-password-input.js.map +1 -1
- package/es-custom/components/fluid-search/fluid-search-skeleton.js +1 -1
- package/es-custom/components/fluid-search/fluid-search-skeleton.js.map +1 -1
- package/es-custom/components/fluid-search/fluid-search.js +1 -1
- package/es-custom/components/fluid-search/fluid-search.js.map +1 -1
- package/es-custom/components/fluid-select/fluid-select-skeleton.js +1 -1
- package/es-custom/components/fluid-select/fluid-select-skeleton.js.map +1 -1
- package/es-custom/components/fluid-select/fluid-select.js +1 -1
- package/es-custom/components/fluid-select/fluid-select.js.map +1 -1
- package/es-custom/components/fluid-text-input/fluid-text-input-skeleton.js +1 -1
- package/es-custom/components/fluid-text-input/fluid-text-input-skeleton.js.map +1 -1
- package/es-custom/components/fluid-text-input/fluid-text-input.d.ts +1 -0
- package/es-custom/components/fluid-text-input/fluid-text-input.d.ts.map +1 -1
- package/es-custom/components/fluid-text-input/fluid-text-input.js +4 -3
- package/es-custom/components/fluid-text-input/fluid-text-input.js.map +1 -1
- package/es-custom/components/fluid-textarea/fluid-textarea-skeleton.js +1 -1
- package/es-custom/components/fluid-textarea/fluid-textarea-skeleton.js.map +1 -1
- package/es-custom/components/fluid-textarea/fluid-textarea.js +1 -1
- package/es-custom/components/fluid-textarea/fluid-textarea.js.map +1 -1
- package/es-custom/components/fluid-time-picker/fluid-time-picker-select.js +1 -1
- package/es-custom/components/fluid-time-picker/fluid-time-picker-select.js.map +1 -1
- package/es-custom/components/fluid-time-picker/fluid-time-picker-skeleton.js +1 -1
- package/es-custom/components/fluid-time-picker/fluid-time-picker-skeleton.js.map +1 -1
- package/es-custom/components/fluid-time-picker/fluid-time-picker.js +1 -1
- package/es-custom/components/fluid-time-picker/fluid-time-picker.js.map +1 -1
- package/es-custom/components/form/form-item.js +1 -1
- package/es-custom/components/form/form-item.js.map +1 -1
- package/es-custom/components/form/form.js +1 -1
- package/es-custom/components/form/form.js.map +1 -1
- package/es-custom/components/form-group/form-group.js +1 -1
- package/es-custom/components/form-group/form-group.js.map +1 -1
- package/es-custom/components/grid/column-hang.js +1 -1
- package/es-custom/components/grid/column-hang.js.map +1 -1
- package/es-custom/components/grid/column.js +1 -1
- package/es-custom/components/grid/column.js.map +1 -1
- package/es-custom/components/grid/defs.js.map +1 -1
- package/es-custom/components/grid/grid-context.js.map +1 -1
- package/es-custom/components/grid/grid.js +1 -1
- package/es-custom/components/grid/grid.js.map +1 -1
- package/es-custom/components/heading/heading.js +1 -1
- package/es-custom/components/heading/heading.js.map +1 -1
- package/es-custom/components/icon/icon.js +1 -1
- package/es-custom/components/icon/icon.js.map +1 -1
- package/es-custom/components/icon-button/defs.js.map +1 -1
- package/es-custom/components/icon-button/icon-button.js +1 -1
- package/es-custom/components/icon-button/icon-button.js.map +1 -1
- package/es-custom/components/icon-indicator/defs.js.map +1 -1
- package/es-custom/components/icon-indicator/icon-indicator.js +1 -1
- package/es-custom/components/icon-indicator/icon-indicator.js.map +1 -1
- package/es-custom/components/inline-loading/defs.js.map +1 -1
- package/es-custom/components/inline-loading/inline-loading.js +1 -1
- package/es-custom/components/inline-loading/inline-loading.js.map +1 -1
- package/es-custom/components/layer/layer.js +1 -1
- package/es-custom/components/layer/layer.js.map +1 -1
- package/es-custom/components/layout/layout-constraint.js +1 -1
- package/es-custom/components/layout/layout-constraint.js.map +1 -1
- package/es-custom/components/layout/layout.js +1 -1
- package/es-custom/components/layout/layout.js.map +1 -1
- package/es-custom/components/link/link.d.ts +1 -1
- package/es-custom/components/link/link.js +1 -1
- package/es-custom/components/link/link.js.map +1 -1
- package/es-custom/components/link/link.scss.js +1 -1
- package/es-custom/components/list/list-item.js +1 -1
- package/es-custom/components/list/list-item.js.map +1 -1
- package/es-custom/components/list/ordered-list.js +1 -1
- package/es-custom/components/list/ordered-list.js.map +1 -1
- package/es-custom/components/list/unordered-list.js +1 -1
- package/es-custom/components/list/unordered-list.js.map +1 -1
- package/es-custom/components/loading/defs.js.map +1 -1
- package/es-custom/components/loading/loading-icon.js.map +1 -1
- package/es-custom/components/loading/loading.js +1 -1
- package/es-custom/components/loading/loading.js.map +1 -1
- package/es-custom/components/menu/defs.js.map +1 -1
- package/es-custom/components/menu/menu-context.js.map +1 -1
- package/es-custom/components/menu/menu-item-divider.js +1 -1
- package/es-custom/components/menu/menu-item-divider.js.map +1 -1
- package/es-custom/components/menu/menu-item-group.js +1 -1
- package/es-custom/components/menu/menu-item-group.js.map +1 -1
- package/es-custom/components/menu/menu-item-radio-group.js +1 -1
- package/es-custom/components/menu/menu-item-radio-group.js.map +1 -1
- package/es-custom/components/menu/menu-item-selectable.d.ts +4 -0
- package/es-custom/components/menu/menu-item-selectable.d.ts.map +1 -1
- package/es-custom/components/menu/menu-item-selectable.js +4 -4
- package/es-custom/components/menu/menu-item-selectable.js.map +1 -1
- package/es-custom/components/menu/menu-item.js +1 -1
- package/es-custom/components/menu/menu-item.js.map +1 -1
- package/es-custom/components/menu/menu.d.ts +14 -6
- package/es-custom/components/menu/menu.d.ts.map +1 -1
- package/es-custom/components/menu/menu.js +9 -7
- package/es-custom/components/menu/menu.js.map +1 -1
- package/es-custom/components/menu-button/defs.js.map +1 -1
- package/es-custom/components/menu-button/menu-button.js +1 -1
- package/es-custom/components/menu-button/menu-button.js.map +1 -1
- package/es-custom/components/menu-button/menu-button.scss.js +1 -1
- package/es-custom/components/modal/defs.js.map +1 -1
- package/es-custom/components/modal/modal-base.js +1 -1
- package/es-custom/components/modal/modal-base.js.map +1 -1
- package/es-custom/components/modal/modal-body-content.js +1 -1
- package/es-custom/components/modal/modal-body-content.js.map +1 -1
- package/es-custom/components/modal/modal-body.js +1 -1
- package/es-custom/components/modal/modal-body.js.map +1 -1
- package/es-custom/components/modal/modal-close-button.js +1 -1
- package/es-custom/components/modal/modal-close-button.js.map +1 -1
- package/es-custom/components/modal/modal-footer-button.js +1 -1
- package/es-custom/components/modal/modal-footer-button.js.map +1 -1
- package/es-custom/components/modal/modal-footer.js +1 -1
- package/es-custom/components/modal/modal-footer.js.map +1 -1
- package/es-custom/components/modal/modal-header.js +1 -1
- package/es-custom/components/modal/modal-header.js.map +1 -1
- package/es-custom/components/modal/modal-heading.js +1 -1
- package/es-custom/components/modal/modal-heading.js.map +1 -1
- package/es-custom/components/modal/modal-label.js +1 -1
- package/es-custom/components/modal/modal-label.js.map +1 -1
- package/es-custom/components/modal/modal.js +1 -1
- package/es-custom/components/modal/modal.js.map +1 -1
- package/es-custom/components/modal/modal.scss.js +1 -1
- package/es-custom/components/multi-select/defs.js.map +1 -1
- package/es-custom/components/multi-select/multi-select-item.js +1 -1
- package/es-custom/components/multi-select/multi-select-item.js.map +1 -1
- package/es-custom/components/multi-select/multi-select.js +1 -1
- package/es-custom/components/multi-select/multi-select.js.map +1 -1
- package/es-custom/components/multi-select/multi-select.scss.js +1 -1
- package/es-custom/components/notification/actionable-notification-button.js +1 -1
- package/es-custom/components/notification/actionable-notification-button.js.map +1 -1
- package/es-custom/components/notification/actionable-notification.js +1 -1
- package/es-custom/components/notification/actionable-notification.js.map +1 -1
- package/es-custom/components/notification/actionable-notification.scss.js +1 -1
- package/es-custom/components/notification/callout-notification.js +1 -1
- package/es-custom/components/notification/callout-notification.js.map +1 -1
- package/es-custom/components/notification/defs.js.map +1 -1
- package/es-custom/components/notification/inline-notification.js +1 -1
- package/es-custom/components/notification/inline-notification.js.map +1 -1
- package/es-custom/components/notification/inline-notification.scss.js +1 -1
- package/es-custom/components/notification/stories/helper.js.map +1 -1
- package/es-custom/components/notification/toast-notification.js +1 -1
- package/es-custom/components/notification/toast-notification.js.map +1 -1
- package/es-custom/components/notification/toast-notification.scss.js +1 -1
- package/es-custom/components/number-input/defs.js.map +1 -1
- package/es-custom/components/number-input/number-input-skeleton.js +1 -1
- package/es-custom/components/number-input/number-input-skeleton.js.map +1 -1
- package/es-custom/components/number-input/number-input.js +1 -1
- package/es-custom/components/number-input/number-input.js.map +1 -1
- package/es-custom/components/overflow-menu/defs.js.map +1 -1
- package/es-custom/components/overflow-menu/overflow-menu-body.js +1 -1
- package/es-custom/components/overflow-menu/overflow-menu-body.js.map +1 -1
- package/es-custom/components/overflow-menu/overflow-menu-item.js +1 -1
- package/es-custom/components/overflow-menu/overflow-menu-item.js.map +1 -1
- package/es-custom/components/overflow-menu/overflow-menu.d.ts +8 -0
- package/es-custom/components/overflow-menu/overflow-menu.d.ts.map +1 -1
- package/es-custom/components/overflow-menu/overflow-menu.js +11 -10
- 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/page-header/page-header-breadcrumb.js +1 -1
- package/es-custom/components/page-header/page-header-breadcrumb.js.map +1 -1
- package/es-custom/components/page-header/page-header-content-text.js +1 -1
- package/es-custom/components/page-header/page-header-content-text.js.map +1 -1
- package/es-custom/components/page-header/page-header-content.js +1 -1
- package/es-custom/components/page-header/page-header-content.js.map +1 -1
- package/es-custom/components/page-header/page-header-hero-image.js +1 -1
- package/es-custom/components/page-header/page-header-hero-image.js.map +1 -1
- package/es-custom/components/page-header/page-header-tabs.js +1 -1
- package/es-custom/components/page-header/page-header-tabs.js.map +1 -1
- package/es-custom/components/page-header/page-header.js +1 -1
- package/es-custom/components/page-header/page-header.js.map +1 -1
- package/es-custom/components/pagination/defs.js.map +1 -1
- package/es-custom/components/pagination/pagination.d.ts +3 -0
- package/es-custom/components/pagination/pagination.d.ts.map +1 -1
- package/es-custom/components/pagination/pagination.js +18 -23
- package/es-custom/components/pagination/pagination.js.map +1 -1
- package/es-custom/components/pagination/pagination.scss.js +1 -1
- package/es-custom/components/pagination-nav/defs.js.map +1 -1
- package/es-custom/components/pagination-nav/pagination-nav.js +1 -1
- package/es-custom/components/pagination-nav/pagination-nav.js.map +1 -1
- package/es-custom/components/pagination-nav/pagination-nav.scss.js +1 -1
- package/es-custom/components/password-input/defs.js.map +1 -1
- package/es-custom/components/password-input/password-input-skeleton.js +1 -1
- package/es-custom/components/password-input/password-input-skeleton.js.map +1 -1
- package/es-custom/components/password-input/password-input.js +1 -1
- package/es-custom/components/password-input/password-input.js.map +1 -1
- package/es-custom/components/popover/defs.js.map +1 -1
- package/es-custom/components/popover/popover-content.js +1 -1
- package/es-custom/components/popover/popover-content.js.map +1 -1
- package/es-custom/components/popover/popover.d.ts +5 -0
- package/es-custom/components/popover/popover.d.ts.map +1 -1
- package/es-custom/components/popover/popover.js +23 -2
- package/es-custom/components/popover/popover.js.map +1 -1
- package/es-custom/components/popover/popover.scss.js +1 -1
- package/es-custom/components/progress-bar/defs.js.map +1 -1
- package/es-custom/components/progress-bar/progress-bar.d.ts +1 -0
- package/es-custom/components/progress-bar/progress-bar.d.ts.map +1 -1
- package/es-custom/components/progress-bar/progress-bar.js +5 -5
- package/es-custom/components/progress-bar/progress-bar.js.map +1 -1
- package/es-custom/components/progress-indicator/defs.js.map +1 -1
- package/es-custom/components/progress-indicator/progress-indicator-skeleton.js +1 -1
- package/es-custom/components/progress-indicator/progress-indicator-skeleton.js.map +1 -1
- package/es-custom/components/progress-indicator/progress-indicator.js +1 -1
- package/es-custom/components/progress-indicator/progress-indicator.js.map +1 -1
- package/es-custom/components/progress-indicator/progress-indicator.scss.js +1 -1
- package/es-custom/components/progress-indicator/progress-step-skeleton.js +1 -1
- package/es-custom/components/progress-indicator/progress-step-skeleton.js.map +1 -1
- package/es-custom/components/progress-indicator/progress-step.js +1 -1
- package/es-custom/components/progress-indicator/progress-step.js.map +1 -1
- package/es-custom/components/radio-button/defs.js.map +1 -1
- package/es-custom/components/radio-button/radio-button-group.d.ts +3 -0
- package/es-custom/components/radio-button/radio-button-group.d.ts.map +1 -1
- package/es-custom/components/radio-button/radio-button-group.js +22 -5
- package/es-custom/components/radio-button/radio-button-group.js.map +1 -1
- package/es-custom/components/radio-button/radio-button-skeleton.js +1 -1
- package/es-custom/components/radio-button/radio-button-skeleton.js.map +1 -1
- package/es-custom/components/radio-button/radio-button.js +1 -1
- package/es-custom/components/radio-button/radio-button.js.map +1 -1
- package/es-custom/components/search/defs.js.map +1 -1
- package/es-custom/components/search/search-skeleton.js +1 -1
- package/es-custom/components/search/search-skeleton.js.map +1 -1
- package/es-custom/components/search/search.js +1 -1
- package/es-custom/components/search/search.js.map +1 -1
- package/es-custom/components/select/select-item-group.js +1 -1
- package/es-custom/components/select/select-item-group.js.map +1 -1
- package/es-custom/components/select/select-item.js +1 -1
- package/es-custom/components/select/select-item.js.map +1 -1
- package/es-custom/components/select/select-skeleton.js +1 -1
- package/es-custom/components/select/select-skeleton.js.map +1 -1
- package/es-custom/components/select/select.js +1 -1
- package/es-custom/components/select/select.js.map +1 -1
- package/es-custom/components/shape-indicator/defs.js.map +1 -1
- package/es-custom/components/shape-indicator/shape-indicator.js +1 -1
- package/es-custom/components/shape-indicator/shape-indicator.js.map +1 -1
- package/es-custom/components/side-panel/defs.js.map +1 -1
- package/es-custom/components/side-panel/side-panel.js +1 -1
- package/es-custom/components/side-panel/side-panel.js.map +1 -1
- package/es-custom/components/skeleton-icon/skeleton-icon.js +1 -1
- package/es-custom/components/skeleton-icon/skeleton-icon.js.map +1 -1
- package/es-custom/components/skeleton-placeholder/skeleton-placeholder.js +1 -1
- package/es-custom/components/skeleton-placeholder/skeleton-placeholder.js.map +1 -1
- package/es-custom/components/skeleton-text/defs.js.map +1 -1
- package/es-custom/components/skeleton-text/skeleton-text.js +1 -1
- package/es-custom/components/skeleton-text/skeleton-text.js.map +1 -1
- package/es-custom/components/skip-to-content/skip-to-content.js +1 -1
- package/es-custom/components/skip-to-content/skip-to-content.js.map +1 -1
- package/es-custom/components/skip-to-content/skip-to-content.scss.js +1 -1
- package/es-custom/components/slider/slider-input.js +1 -1
- package/es-custom/components/slider/slider-input.js.map +1 -1
- package/es-custom/components/slider/slider-skeleton.js +1 -1
- package/es-custom/components/slider/slider-skeleton.js.map +1 -1
- package/es-custom/components/slider/slider.js +1 -1
- package/es-custom/components/slider/slider.js.map +1 -1
- package/es-custom/components/slug/defs.js.map +1 -1
- package/es-custom/components/slug/slug-action-button.js +1 -1
- package/es-custom/components/slug/slug-action-button.js.map +1 -1
- package/es-custom/components/slug/slug.js +1 -1
- package/es-custom/components/slug/slug.js.map +1 -1
- package/es-custom/components/slug/slug.scss.js +1 -1
- package/es-custom/components/stack/defs.js.map +1 -1
- package/es-custom/components/stack/stack.js +1 -1
- package/es-custom/components/stack/stack.js.map +1 -1
- package/es-custom/components/structured-list/structured-list-body.js +1 -1
- package/es-custom/components/structured-list/structured-list-body.js.map +1 -1
- package/es-custom/components/structured-list/structured-list-cell.js +1 -1
- package/es-custom/components/structured-list/structured-list-cell.js.map +1 -1
- package/es-custom/components/structured-list/structured-list-head.js +1 -1
- package/es-custom/components/structured-list/structured-list-head.js.map +1 -1
- package/es-custom/components/structured-list/structured-list-header-cell-skeleton.js +1 -1
- package/es-custom/components/structured-list/structured-list-header-cell-skeleton.js.map +1 -1
- package/es-custom/components/structured-list/structured-list-header-cell.js +1 -1
- package/es-custom/components/structured-list/structured-list-header-cell.js.map +1 -1
- package/es-custom/components/structured-list/structured-list-header-row.js +1 -1
- package/es-custom/components/structured-list/structured-list-header-row.js.map +1 -1
- package/es-custom/components/structured-list/structured-list-row.js +1 -1
- package/es-custom/components/structured-list/structured-list-row.js.map +1 -1
- package/es-custom/components/structured-list/structured-list.js +1 -1
- package/es-custom/components/structured-list/structured-list.js.map +1 -1
- package/es-custom/components/tabs/defs.js.map +1 -1
- package/es-custom/components/tabs/stories/tabs-wrapper.js +1 -1
- package/es-custom/components/tabs/stories/tabs-wrapper.js.map +1 -1
- package/es-custom/components/tabs/tab-skeleton.js +1 -1
- package/es-custom/components/tabs/tab-skeleton.js.map +1 -1
- package/es-custom/components/tabs/tab.js +1 -1
- package/es-custom/components/tabs/tab.js.map +1 -1
- package/es-custom/components/tabs/tabs-skeleton.js +1 -1
- package/es-custom/components/tabs/tabs-skeleton.js.map +1 -1
- package/es-custom/components/tabs/tabs-vertical.js +1 -1
- package/es-custom/components/tabs/tabs-vertical.js.map +1 -1
- package/es-custom/components/tabs/tabs.js +1 -1
- package/es-custom/components/tabs/tabs.js.map +1 -1
- package/es-custom/components/tabs/tabs.scss.js +1 -1
- package/es-custom/components/tag/defs.js.map +1 -1
- package/es-custom/components/tag/dismissible-tag.js +1 -1
- package/es-custom/components/tag/dismissible-tag.js.map +1 -1
- package/es-custom/components/tag/operational-tag.js +1 -1
- package/es-custom/components/tag/operational-tag.js.map +1 -1
- package/es-custom/components/tag/selectable-tag.js +1 -1
- package/es-custom/components/tag/selectable-tag.js.map +1 -1
- package/es-custom/components/tag/tag-skeleton.js +1 -1
- package/es-custom/components/tag/tag-skeleton.js.map +1 -1
- package/es-custom/components/tag/tag.js +1 -1
- package/es-custom/components/tag/tag.js.map +1 -1
- package/es-custom/components/tag/tag.scss.js +1 -1
- package/es-custom/components/tearsheet/defs.js.map +1 -1
- package/es-custom/components/tearsheet/tearsheet.js +1 -1
- package/es-custom/components/tearsheet/tearsheet.js.map +1 -1
- package/es-custom/components/text-input/defs.js.map +1 -1
- package/es-custom/components/text-input/stories/helpers.js.map +1 -1
- package/es-custom/components/text-input/text-input-skeleton.js +1 -1
- package/es-custom/components/text-input/text-input-skeleton.js.map +1 -1
- package/es-custom/components/text-input/text-input.js +1 -1
- package/es-custom/components/text-input/text-input.js.map +1 -1
- package/es-custom/components/textarea/stories/helpers.js.map +1 -1
- package/es-custom/components/textarea/textarea-skeleton.js +1 -1
- package/es-custom/components/textarea/textarea-skeleton.js.map +1 -1
- package/es-custom/components/textarea/textarea.js +1 -1
- package/es-custom/components/textarea/textarea.js.map +1 -1
- package/es-custom/components/tile/clickable-tile.js +1 -1
- package/es-custom/components/tile/clickable-tile.js.map +1 -1
- package/es-custom/components/tile/expandable-tile.js +1 -1
- package/es-custom/components/tile/expandable-tile.js.map +1 -1
- package/es-custom/components/tile/radio-tile.js +1 -1
- package/es-custom/components/tile/radio-tile.js.map +1 -1
- package/es-custom/components/tile/selectable-tile.js +1 -1
- package/es-custom/components/tile/selectable-tile.js.map +1 -1
- package/es-custom/components/tile/tile-group.js +1 -1
- package/es-custom/components/tile/tile-group.js.map +1 -1
- package/es-custom/components/tile/tile.js +1 -1
- package/es-custom/components/tile/tile.js.map +1 -1
- package/es-custom/components/tile/tile.scss.js +1 -1
- package/es-custom/components/time-picker/defs.js.map +1 -1
- package/es-custom/components/time-picker/time-picker-select.js +1 -1
- package/es-custom/components/time-picker/time-picker-select.js.map +1 -1
- package/es-custom/components/time-picker/time-picker.js +1 -1
- package/es-custom/components/time-picker/time-picker.js.map +1 -1
- package/es-custom/components/toggle/defs.js.map +1 -1
- package/es-custom/components/toggle/toggle-skeleton.js +1 -1
- package/es-custom/components/toggle/toggle-skeleton.js.map +1 -1
- package/es-custom/components/toggle/toggle.js +1 -1
- package/es-custom/components/toggle/toggle.js.map +1 -1
- package/es-custom/components/toggle-tip/toggletip.js +1 -1
- 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.js +1 -1
- package/es-custom/components/tooltip/definition-tooltip.js.map +1 -1
- package/es-custom/components/tooltip/tooltip-content.js +1 -1
- package/es-custom/components/tooltip/tooltip-content.js.map +1 -1
- package/es-custom/components/tooltip/tooltip.js +1 -1
- package/es-custom/components/tooltip/tooltip.js.map +1 -1
- package/es-custom/components/tooltip/tooltip.scss.js +1 -1
- package/es-custom/components/tree-view/defs.js.map +1 -1
- package/es-custom/components/tree-view/tree-node.js +1 -1
- package/es-custom/components/tree-view/tree-node.js.map +1 -1
- package/es-custom/components/tree-view/tree-view.js +1 -1
- package/es-custom/components/tree-view/tree-view.js.map +1 -1
- package/es-custom/components/ui-shell/defs.js.map +1 -1
- package/es-custom/components/ui-shell/header-global-action.js +1 -1
- package/es-custom/components/ui-shell/header-global-action.js.map +1 -1
- package/es-custom/components/ui-shell/header-menu-button.js +1 -1
- package/es-custom/components/ui-shell/header-menu-button.js.map +1 -1
- package/es-custom/components/ui-shell/header-menu-item.js +1 -1
- package/es-custom/components/ui-shell/header-menu-item.js.map +1 -1
- package/es-custom/components/ui-shell/header-menu.js +1 -1
- package/es-custom/components/ui-shell/header-menu.js.map +1 -1
- package/es-custom/components/ui-shell/header-name.js +1 -1
- package/es-custom/components/ui-shell/header-name.js.map +1 -1
- package/es-custom/components/ui-shell/header-nav-item.js +1 -1
- package/es-custom/components/ui-shell/header-nav-item.js.map +1 -1
- package/es-custom/components/ui-shell/header-nav.js +1 -1
- package/es-custom/components/ui-shell/header-nav.js.map +1 -1
- package/es-custom/components/ui-shell/header-panel.js +1 -1
- package/es-custom/components/ui-shell/header-panel.js.map +1 -1
- package/es-custom/components/ui-shell/header-side-nav-items.js +1 -1
- package/es-custom/components/ui-shell/header-side-nav-items.js.map +1 -1
- package/es-custom/components/ui-shell/header.js +1 -1
- package/es-custom/components/ui-shell/header.js.map +1 -1
- package/es-custom/components/ui-shell/header.scss.js +1 -1
- package/es-custom/components/ui-shell/side-nav-divider.js +1 -1
- package/es-custom/components/ui-shell/side-nav-divider.js.map +1 -1
- package/es-custom/components/ui-shell/side-nav-items.js +1 -1
- package/es-custom/components/ui-shell/side-nav-items.js.map +1 -1
- package/es-custom/components/ui-shell/side-nav-link.js +1 -1
- package/es-custom/components/ui-shell/side-nav-link.js.map +1 -1
- package/es-custom/components/ui-shell/side-nav-menu-item.js +1 -1
- package/es-custom/components/ui-shell/side-nav-menu-item.js.map +1 -1
- package/es-custom/components/ui-shell/side-nav-menu.js +1 -1
- package/es-custom/components/ui-shell/side-nav-menu.js.map +1 -1
- package/es-custom/components/ui-shell/side-nav.js +1 -1
- package/es-custom/components/ui-shell/side-nav.js.map +1 -1
- package/es-custom/components/ui-shell/switcher-divider.js +1 -1
- package/es-custom/components/ui-shell/switcher-divider.js.map +1 -1
- package/es-custom/components/ui-shell/switcher-item.js +1 -1
- package/es-custom/components/ui-shell/switcher-item.js.map +1 -1
- package/es-custom/components/ui-shell/switcher.js +1 -1
- package/es-custom/components/ui-shell/switcher.js.map +1 -1
- package/es-custom/globals/controllers/floating-controller.js.map +1 -1
- package/es-custom/globals/decorators/carbon-element.js.map +1 -1
- package/es-custom/globals/decorators/host-listener.js.map +1 -1
- package/es-custom/globals/directives/if-non-empty.js.map +1 -1
- package/es-custom/globals/directives/spread.js.map +1 -1
- package/es-custom/globals/internal/collection-helpers.js.map +1 -1
- package/es-custom/globals/internal/deep-shadow-contains.js.map +1 -1
- package/es-custom/globals/internal/icon-loader-utils.js.map +1 -1
- package/es-custom/globals/internal/icon-loader.js.map +1 -1
- package/es-custom/globals/internal/radio-group-manager.js.map +1 -1
- package/es-custom/globals/mixins/focus.js.map +1 -1
- package/es-custom/globals/mixins/form.js.map +1 -1
- package/es-custom/globals/mixins/host-listener.js.map +1 -1
- package/es-custom/globals/mixins/on.js.map +1 -1
- package/es-custom/globals/mixins/validity.js.map +1 -1
- package/es-custom/globals/shared-enums.js.map +1 -1
- package/es-custom/node_modules/flatpickr/dist/esm/index.js.map +1 -1
- package/es-custom/node_modules/flatpickr/dist/esm/l10n/default.js.map +1 -1
- package/es-custom/node_modules/flatpickr/dist/esm/plugins/rangePlugin.js.map +1 -1
- package/es-custom/node_modules/flatpickr/dist/esm/types/options.js.map +1 -1
- package/es-custom/node_modules/flatpickr/dist/esm/utils/dates.js.map +1 -1
- package/es-custom/node_modules/flatpickr/dist/esm/utils/dom.js.map +1 -1
- package/es-custom/node_modules/flatpickr/dist/esm/utils/formatting.js.map +1 -1
- package/es-custom/node_modules/flatpickr/dist/esm/utils/index.js.map +1 -1
- package/es-custom/node_modules/flatpickr/dist/esm/utils/polyfills.js.map +1 -1
- package/es-custom/packages/feature-flags/es/index.js.map +1 -1
- package/lib/components/accordion/defs.js.map +1 -1
- package/lib/components/ai-label/defs.js.map +1 -1
- package/lib/components/breadcrumb/defs.js.map +1 -1
- package/lib/components/button/button-set.d.ts +4 -0
- package/lib/components/button/button-set.d.ts.map +1 -1
- package/lib/components/button/defs.js.map +1 -1
- package/lib/components/chat-button/defs.js.map +1 -1
- package/lib/components/checkbox/defs.js.map +1 -1
- package/lib/components/code-snippet/defs.js.map +1 -1
- package/lib/components/combo-button/defs.js.map +1 -1
- package/lib/components/content-switcher/defs.js.map +1 -1
- package/lib/components/data-table/defs.js.map +1 -1
- package/lib/components/data-table/table-batch-actions.d.ts +8 -0
- package/lib/components/data-table/table-batch-actions.d.ts.map +1 -1
- package/lib/components/date-picker/defs.js.map +1 -1
- package/lib/components/dropdown/defs.js.map +1 -1
- package/lib/components/file-uploader/defs.js.map +1 -1
- package/lib/components/floating-menu/defs.js.map +1 -1
- package/lib/components/fluid-password-input/fluid-password-input.d.ts +1 -0
- package/lib/components/fluid-password-input/fluid-password-input.d.ts.map +1 -1
- package/lib/components/fluid-text-input/fluid-text-input.d.ts +1 -0
- package/lib/components/fluid-text-input/fluid-text-input.d.ts.map +1 -1
- package/lib/components/grid/defs.js.map +1 -1
- package/lib/components/icon-button/defs.js.map +1 -1
- package/lib/components/icon-indicator/defs.js.map +1 -1
- package/lib/components/inline-loading/defs.js.map +1 -1
- package/lib/components/link/link.d.ts +1 -1
- package/lib/components/loading/defs.js.map +1 -1
- package/lib/components/menu/defs.js.map +1 -1
- package/lib/components/menu/menu-item-selectable.d.ts +4 -0
- package/lib/components/menu/menu-item-selectable.d.ts.map +1 -1
- package/lib/components/menu/menu.d.ts +14 -6
- package/lib/components/menu/menu.d.ts.map +1 -1
- package/lib/components/menu-button/defs.js.map +1 -1
- package/lib/components/modal/defs.js.map +1 -1
- package/lib/components/multi-select/defs.js.map +1 -1
- package/lib/components/notification/defs.js.map +1 -1
- package/lib/components/number-input/defs.js.map +1 -1
- package/lib/components/overflow-menu/defs.js.map +1 -1
- package/lib/components/overflow-menu/overflow-menu.d.ts +8 -0
- package/lib/components/overflow-menu/overflow-menu.d.ts.map +1 -1
- package/lib/components/pagination/defs.js.map +1 -1
- package/lib/components/pagination/pagination.d.ts +3 -0
- package/lib/components/pagination/pagination.d.ts.map +1 -1
- package/lib/components/pagination-nav/defs.js.map +1 -1
- package/lib/components/password-input/defs.js.map +1 -1
- package/lib/components/popover/defs.js.map +1 -1
- package/lib/components/popover/popover.d.ts +5 -0
- package/lib/components/popover/popover.d.ts.map +1 -1
- package/lib/components/progress-bar/defs.js.map +1 -1
- package/lib/components/progress-bar/progress-bar.d.ts +1 -0
- package/lib/components/progress-bar/progress-bar.d.ts.map +1 -1
- package/lib/components/progress-indicator/defs.js.map +1 -1
- package/lib/components/radio-button/defs.js.map +1 -1
- package/lib/components/radio-button/radio-button-group.d.ts +3 -0
- package/lib/components/radio-button/radio-button-group.d.ts.map +1 -1
- package/lib/components/search/defs.js.map +1 -1
- package/lib/components/shape-indicator/defs.js.map +1 -1
- package/lib/components/side-panel/defs.js.map +1 -1
- package/lib/components/skeleton-text/defs.js.map +1 -1
- package/lib/components/slug/defs.js.map +1 -1
- package/lib/components/stack/defs.js.map +1 -1
- package/lib/components/tabs/defs.js.map +1 -1
- package/lib/components/tag/defs.js.map +1 -1
- package/lib/components/tearsheet/defs.js.map +1 -1
- package/lib/components/text-input/defs.js.map +1 -1
- package/lib/components/time-picker/defs.js.map +1 -1
- package/lib/components/toggle/defs.js.map +1 -1
- package/lib/components/tree-view/defs.js.map +1 -1
- package/lib/components/ui-shell/defs.js.map +1 -1
- package/lib/globals/controllers/floating-controller.js.map +1 -1
- package/lib/globals/shared-enums.js.map +1 -1
- package/package.json +7 -7
- package/scss/components/accordion/accordion.scss +32 -28
- package/scss/components/grid/grid-story.scss +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tearsheet.js","names":["customElement"],"sources":["../../../src/components/tearsheet/tearsheet.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2023, 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 {\n property,\n query,\n queryAssignedElements,\n state,\n} from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { selectorTabbable } from '../../globals/settings';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport '../button/index';\nimport '../layer/index';\nimport '../button/button-set-base';\nimport '../modal/index';\nimport {\n TEARSHEET_INFLUENCER_PLACEMENT,\n TEARSHEET_INFLUENCER_WIDTH,\n TEARSHEET_WIDTH,\n} from './defs';\n\nexport {\n TEARSHEET_INFLUENCER_PLACEMENT,\n TEARSHEET_INFLUENCER_WIDTH,\n TEARSHEET_WIDTH,\n};\n\nconst maxStackDepth = 3;\ntype StackHandler = (newDepth: number, newPosition: number) => void;\ninterface StackState {\n open: StackHandler[];\n all: StackHandler[];\n}\n\nconst PRECEDING =\n Node.DOCUMENT_POSITION_PRECEDING | Node.DOCUMENT_POSITION_CONTAINS;\n\nconst FOLLOWING =\n Node.DOCUMENT_POSITION_FOLLOWING | Node.DOCUMENT_POSITION_CONTAINED_BY;\n\nconst blockClass = `${prefix}--tearsheet`;\nconst blockClassModalHeader = `${prefix}--modal-header`;\nconst blockClassActionSet = `${prefix}--action-set`;\n\n/**\n * Tries to focus on the given elements and bails out if one of them is successful.\n *\n * @param elems The elements.\n * @param reverse `true` to go through the list in reverse order.\n * @returns `true` if one of the attempts is successful, `false` otherwise.\n */\nfunction tryFocusElems(elems: NodeListOf<HTMLElement>, reverse: boolean) {\n if (!reverse) {\n for (let i = 0; i < elems.length; ++i) {\n const elem = elems[i];\n elem.focus();\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n if (elem.ownerDocument!.activeElement === elem) {\n return true;\n }\n }\n } else {\n for (let i = elems.length - 1; i >= 0; --i) {\n const elem = elems[i];\n elem.focus();\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n if (elem.ownerDocument!.activeElement === elem) {\n return true;\n }\n }\n }\n return false;\n}\n\n/**\n * Tearsheet.\n *\n * @deprecated Use Carbon for IBM Products `tearsheet` component.\n * This component has been deprecated in `@carbon/web-components` and will instead be maintained\n * in the Carbon for IBM Products library:\n * https://github.com/carbon-design-system/ibm-products/tree/main/packages/ibm-products-web-components\n * @element cds-tearsheet\n * @csspart dialog The dialog.\n * @fires cds-tearsheet-beingclosed\n * The custom event fired before this tearsheet is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this tearsheet.\n * @fires cds-tearsheet-closed - The custom event fired after this tearsheet is closed upon a user gesture.\n */\n@customElement(`${prefix}-tearsheet`)\nclass CDSTearsheet extends HostListenerMixin(LitElement) {\n /**\n * The element that had focus before this tearsheet gets open.\n */\n private _launcher: Element | null = null;\n\n /**\n * Node to track focus going outside of tearsheet content.\n */\n @query('#start-sentinel')\n private _startSentinelNode!: HTMLAnchorElement;\n\n /**\n * Node to track focus going outside of tearsheet content.\n */\n @query('#end-sentinel')\n private _endSentinelNode!: HTMLAnchorElement;\n\n /**\n * Node to track tearsheet.\n */\n @query(`.${blockClass}__container`)\n private _tearsheet!: HTMLDivElement;\n\n @queryAssignedElements({ slot: 'actions', selector: `${prefix}-button` })\n private _actions!: Array<HTMLElement>;\n\n @state()\n _actionsCount = 0;\n\n @state()\n _hasHeaderActions = false;\n\n @state()\n _hasLabel = false;\n\n @state()\n _hasSlug = false;\n\n @state()\n _hasTitle = false;\n\n @state()\n _hasDescription = false;\n\n @state()\n _hasInfluencerLeft = false;\n\n @state()\n _hasInfluencerRight = false;\n\n @state()\n _isOpen = false;\n\n @state()\n _hasHeaderNavigation = false;\n\n /**\n * Handles `click` event on this element.\n *\n * @param event The event.\n */\n @HostListener('click')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleClick = (event: MouseEvent) => {\n if (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n event.composedPath().indexOf(this.shadowRoot!) < 0 &&\n !this.preventCloseOnClickOutside\n ) {\n this._handleUserInitiatedClose(event.target);\n }\n };\n\n /**\n * Handles `blur` event on this element.\n *\n * @param event The event.\n * @param event.target The event target.\n * @param event.relatedTarget The event relatedTarget.\n */\n @HostListener('shadowRoot:focusout')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleBlur = async ({ target, relatedTarget }: FocusEvent) => {\n if (!this._topOfStack()) {\n return;\n }\n\n const {\n // condensedActions,\n open,\n _startSentinelNode: startSentinelNode,\n _endSentinelNode: endSentinelNode,\n } = this;\n\n const oldContains = target !== this && this.contains(target as Node);\n const currentContains =\n relatedTarget !== this &&\n (this.contains(relatedTarget as Node) ||\n (this.shadowRoot?.contains(relatedTarget as Node) &&\n relatedTarget !== (startSentinelNode as Node) &&\n relatedTarget !== (endSentinelNode as Node)));\n\n // Performs focus wrapping if _all_ of the following is met:\n // * This tearsheet is open\n // * The viewport still has focus\n // * Tearsheet body used to have focus but no longer has focus\n const { selectorTabbable: selectorTabbableForTearsheet } = this\n .constructor as typeof CDSTearsheet;\n\n if (open && relatedTarget && oldContains && !currentContains) {\n const comparisonResult = (target as Node).compareDocumentPosition(\n relatedTarget as Node\n );\n\n if (relatedTarget === startSentinelNode || comparisonResult & PRECEDING) {\n await (this.constructor as typeof CDSTearsheet)._delay();\n if (\n !tryFocusElems(\n this.querySelectorAll(selectorTabbableForTearsheet),\n true\n ) &&\n relatedTarget !== this\n ) {\n this.focus();\n }\n } else if (\n relatedTarget === endSentinelNode ||\n comparisonResult & FOLLOWING\n ) {\n await (this.constructor as typeof CDSTearsheet)._delay();\n if (\n !tryFocusElems(\n this.querySelectorAll(selectorTabbableForTearsheet),\n true\n )\n ) {\n this.focus();\n }\n }\n }\n };\n\n @HostListener('document: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 = ({ key, target }: KeyboardEvent) => {\n if ((key === 'Esc' || key === 'Escape') && this._topOfStack()) {\n this._handleUserInitiatedClose(target);\n }\n };\n\n private _checkSetHasSlot(e: Event) {\n const t = e.target as HTMLSlotElement;\n const dataPostfix = t.getAttribute('data-postfix');\n const postfix = dataPostfix ? `-${dataPostfix}` : '';\n\n // snake `ab-cd-ef` to _has camel case _hasAbCdEf\n const hasName = `_has-${t.name}${postfix}`.replace(/-./g, (c) =>\n c[1].toUpperCase()\n );\n this[hasName] = (t?.assignedElements()?.length ?? 0) > 0;\n }\n\n /**\n * Handles `click` event on the modal container.\n *\n * @param event The event.\n */\n private _handleClickContainer(event: MouseEvent) {\n if (\n (event.target as Element).matches(\n (this.constructor as typeof CDSTearsheet).selectorCloseButton\n )\n ) {\n this._handleUserInitiatedClose(event.target);\n }\n }\n\n /**\n * Handles user-initiated close request of this tearsheet.\n *\n * @param triggeredBy The element that triggered this close request.\n */\n private _handleUserInitiatedClose(triggeredBy: EventTarget | null) {\n if (this.open) {\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSTearsheet).eventBeforeClose,\n init\n )\n )\n ) {\n this.open = false;\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSTearsheet).eventClose,\n init\n )\n );\n }\n }\n }\n\n private _handleSlugChange(e: Event) {\n const childItems = (e.target as HTMLSlotElement).assignedElements();\n\n this._hasSlug = childItems.length > 0;\n if (this._hasSlug) {\n childItems[0].setAttribute('size', 'lg');\n this.setAttribute('slug', '');\n } else {\n this.removeAttribute('slug');\n }\n }\n\n /**\n * Optional aria label for the tearsheet\n */\n @property({ reflect: true, attribute: 'aria-label' })\n ariaLabel = '';\n\n /**\n * Sets the close button icon description\n */\n @property({ reflect: true, attribute: 'close-icon-description' })\n closeIconDescription = 'Close';\n\n /**\n * Enable a close icon ('x') in the header area of the tearsheet. By default,\n * (when this prop is omitted, or undefined or null) a tearsheet does not\n * display a close icon if there are navigation actions (\"transactional\n * tearsheet\") and displays one if there are no navigation actions (\"passive\n * tearsheet\"), and that behavior can be overridden if required by setting\n * this prop to either true or false.\n */\n\n @property({ reflect: true, type: Boolean, attribute: 'has-close-icon' })\n hasCloseIcon = false;\n\n /**\n * The placement of the influencer section, 'left' or 'right'.\n */\n @property({ reflect: true, attribute: 'influencer-placement' })\n influencerPlacement = TEARSHEET_INFLUENCER_PLACEMENT.RIGHT;\n\n /**\n * The width of the influencer section, 'narrow' or 'wide'.\n */\n @property({ reflect: true, attribute: 'influencer-width' })\n influencerWidth = TEARSHEET_INFLUENCER_WIDTH.NARROW;\n\n /**\n * `true` if the tearsheet should be open.\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Prevent closing on click outside of tearsheet\n */\n @property({ type: Boolean, attribute: 'prevent-close-on-click-outside' })\n preventCloseOnClickOutside = false;\n\n /**\n * The initial location of focus in the side panel\n */\n @property({\n reflect: true,\n attribute: 'selector-initial-focus',\n type: String,\n })\n selectorInitialFocus;\n\n /**\n * The width of the influencer section, 'narrow' or 'wide'.\n */\n @property({ reflect: true, attribute: 'width' })\n width = TEARSHEET_WIDTH.NARROW;\n\n private _checkUpdateActionSizes = () => {\n if (this._actions) {\n for (let i = 0; i < this._actions.length; i++) {\n this._actions[i].setAttribute(\n 'size',\n this.width === 'wide' ? '2xl' : 'xl'\n );\n }\n }\n };\n\n private _maxActions = 4;\n private _handleActionsChange(e: Event) {\n const target = e.target as HTMLSlotElement;\n const actions = target?.assignedElements();\n const actionsCount = actions?.length ?? 0;\n\n if (actionsCount > this._maxActions) {\n this._actionsCount = this._maxActions;\n // eslint-disable-next-line no-console\n console.error(`Too many tearsheet actions, max ${this._maxActions}.`);\n } else {\n this._actionsCount = actionsCount;\n }\n\n for (let i = 0; i < actions?.length; i++) {\n if (i + 1 > this._maxActions) {\n // hide excessive tearsheet actions\n actions[i].setAttribute('hidden', 'true');\n actions[i].setAttribute(\n `data-actions-limit-${this._maxActions}-exceeded`,\n `${actions.length}`\n );\n } else {\n actions[i].classList.add(`${blockClassActionSet}__action-button`);\n }\n }\n this._checkUpdateActionSizes();\n }\n\n // Data structure to communicate the state of tearsheet stacking\n // (i.e. when more than one tearsheet is open). Each tearsheet supplies a\n // handler to be called whenever the stacking of the tearsheets changes, which\n // happens when a tearsheet opens or closes. The 'open' array contains one\n // handler per OPEN tearsheet ordered from lowest to highest in visual z-order.\n // The 'all' array contains all the handlers for open and closed tearsheets.\n\n @state()\n _stackDepth = -1;\n\n @state()\n _stackPosition = -1;\n\n private _topOfStack = () => {\n return this._stackDepth === this._stackPosition;\n };\n\n private static _stack: StackState = {\n open: [],\n all: [],\n };\n private _notifyStack = () => {\n CDSTearsheet._stack.all.forEach(\n (handler: (stackSize: number, position: number) => void) => {\n handler(\n Math.min(CDSTearsheet._stack.open.length, maxStackDepth),\n CDSTearsheet._stack.open.indexOf(handler) + 1\n );\n }\n );\n };\n\n private _handleStackChange: StackHandler = (newDepth, newPosition) => {\n this._stackDepth = newDepth;\n this._stackPosition = newPosition;\n if (this._stackDepth > 1 && this._stackPosition > 0) {\n this.setAttribute('stack-position', `${newPosition}`);\n this.setAttribute('stack-depth', `${this._stackDepth}`);\n } else {\n this.removeAttribute('stack-position');\n this.removeAttribute('stack-depth');\n }\n };\n\n private _updateStack = () => {\n if (this.open) {\n CDSTearsheet._stack.open.push(this._handleStackChange);\n } else {\n const indexOpen = CDSTearsheet._stack.open.indexOf(\n this._handleStackChange\n );\n if (indexOpen >= 0) {\n CDSTearsheet._stack.open.splice(indexOpen, 1);\n }\n }\n this._notifyStack();\n };\n\n actionsMultiple = ['', 'single', 'double', 'triple'][this._actionsCount];\n\n connectedCallback() {\n super.connectedCallback();\n\n CDSTearsheet._stack.all.push(this._handleStackChange);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n const indexAll = CDSTearsheet._stack.all.indexOf(this._handleStackChange);\n CDSTearsheet._stack.all.splice(indexAll, 1);\n const indexOpen = CDSTearsheet._stack.all.indexOf(this._handleStackChange);\n CDSTearsheet._stack.open.splice(indexOpen, 1);\n }\n\n render() {\n const {\n closeIconDescription,\n influencerPlacement,\n influencerWidth,\n open,\n width,\n } = this;\n\n const actionsMultiple = ['', 'single', 'double', 'triple'][\n this._actionsCount\n ];\n\n const headerFieldsTemplate = html`<div\n class=${`${blockClass}__header-fields`}>\n <h2 class=${`${blockClassModalHeader}__label`} ?hidden=${!this._hasLabel}>\n <slot name=\"label\" @slotchange=${this._checkSetHasSlot}></slot>\n </h2>\n <h3\n class=${`${blockClassModalHeader}__heading ${blockClass}__heading`}\n ?hidden=${!this._hasTitle}>\n <slot name=\"title\" @slotchange=${this._checkSetHasSlot}></slot>\n </h3>\n <div\n class=${`${blockClass}__header-description`}\n ?hidden=${!this._hasDescription}>\n <slot name=\"description\" @slotchange=${this._checkSetHasSlot}></slot>\n </div>\n </div>`;\n\n const headerActionsTemplate = html` <div\n class=${`${blockClass}__header-actions`}\n ?hidden=${!this._hasHeaderActions || this.width === 'narrow'}>\n <slot name=\"header-actions\" @slotchange=${this._checkSetHasSlot}></slot>\n </div>`;\n\n const headerTemplate = html` <cds-modal-header\n class=${`${blockClass}__header`}\n ?has-close-icon=${this.hasCloseIcon || this?._actionsCount === 0}\n ?has-navigation=${this._hasHeaderNavigation && this.width === 'wide'}\n ?has-header-actions=${this._hasHeaderActions && this.width === 'wide'}\n ?has-actions=${this?._actionsCount > 0}\n ?has-slug=${this?._hasSlug}\n width=${width}>\n ${this.width === TEARSHEET_WIDTH.WIDE\n ? html`<cds-layer level=\"1\" class=${`${blockClass}__header-content`}\n >${headerFieldsTemplate}${headerActionsTemplate}</cds-layer\n >`\n : html`<div>${headerFieldsTemplate}${headerActionsTemplate}</div>`}\n\n <div\n class=${`${blockClass}__header-navigation`}\n ?hidden=${!this._hasHeaderNavigation || this.width === 'narrow'}>\n <slot\n name=\"header-navigation\"\n @slotchange=${this._checkSetHasSlot}></slot>\n </div>\n <slot name=\"slug\" @slotchange=${this._handleSlugChange}></slot>\n ${this.hasCloseIcon || this?._actionsCount === 0\n ? html`<cds-modal-close-button\n close-button-label=${closeIconDescription}\n @click=${this._handleUserInitiatedClose}></cds-modal-close-button>`\n : ''}\n </cds-modal-header>`;\n\n return html`\n <a\n id=\"start-sentinel\"\n class=\"${prefix}--visually-hidden\"\n href=\"javascript:void 0\"\n role=\"navigation\"></a>\n <div\n aria-label=${this.ariaLabel}\n class=${`${blockClass}__container ${prefix}--modal-container ${prefix}--modal-container--sm`}\n part=\"dialog\"\n role=\"complementary\"\n ?open=${this._isOpen}\n ?opening=${open && !this._isOpen}\n ?closing=${!open && this._isOpen}\n width=${width}\n stack-position=${this._stackPosition}\n stack-depth=${this._stackDepth}\n @click=${this._handleClickContainer}>\n <!-- Header -->\n ${headerTemplate}\n\n <!-- Body -->\n <cds-modal-body class=${`${blockClass}__body`} width=${width}>\n <!-- Influencer when on left -->\n ${influencerPlacement !== TEARSHEET_INFLUENCER_PLACEMENT.RIGHT\n ? html`<div\n class=${`${blockClass}__influencer`}\n ?wide=${influencerWidth === 'wide'}\n ?hidden=${!this._hasInfluencerLeft ||\n this.width === TEARSHEET_WIDTH.NARROW}>\n <slot\n name=\"influencer\"\n data-postfix=\"left\"\n @slotchange=${this._checkSetHasSlot}></slot>\n </div>`\n : ''}\n\n <div class=${`${blockClass}__right`}>\n <div class=${`${blockClass}__main`}>\n <div class=${`${blockClass}__content`}>\n <cds-layer level=\"0\">\n <slot></slot>\n </cds-layer>\n </div>\n\n <!-- Influencer when on right -->\n ${influencerPlacement === TEARSHEET_INFLUENCER_PLACEMENT.RIGHT\n ? html`<div\n class=${`${blockClass}__influencer`}\n ?wide=${influencerWidth}\n ?hidden=${!this._hasInfluencerRight ||\n this.width === TEARSHEET_WIDTH.NARROW}>\n <slot\n name=\"influencer\"\n data-postfix=\"right\"\n @slotchange=${this._checkSetHasSlot}></slot>\n </div>`\n : ''}\n </div>\n <!-- Action buttons -->\n <cds-button-set-base\n class=${`${blockClass}__buttons ${blockClass}__button-container`}\n actions-multiple=${actionsMultiple}\n ?tearsheet-wide=${width === 'wide'}\n ?hidden=${this._actionsCount === 0}>\n <slot\n name=\"actions\"\n @slotchange=${this._handleActionsChange}></slot>\n </cds-button-set-base>\n </div>\n </cds-modal-body>\n </div>\n <a\n id=\"end-sentinel\"\n class=\"${prefix}--visually-hidden\"\n href=\"javascript:void 0\"\n role=\"navigation\"></a>\n `;\n }\n\n _checkSetOpen = () => {\n const { _tearsheet: tearsheet } = this;\n if (tearsheet && this._isOpen) {\n // wait until the tearsheet has transitioned off the screen to remove\n tearsheet.addEventListener('transitionend', () => {\n this._isOpen = false;\n });\n } else {\n // allow the html to render before animating in the tearsheet\n window.requestAnimationFrame(() => {\n this._isOpen = this.open;\n });\n }\n };\n\n async updated(changedProperties) {\n if (changedProperties.has('width')) {\n this._checkUpdateActionSizes();\n }\n\n if (\n process.env.NODE_ENV === 'development' &&\n (changedProperties.has('width') ||\n changedProperties.has('_hasHeaderNavigation') ||\n changedProperties.has('_hasInfluencerLeft') ||\n changedProperties.has('_hasInfluencerRight') ||\n changedProperties.has('_hasHeaderActions'))\n ) {\n if (this.width === 'narrow') {\n if (this._hasHeaderNavigation) {\n // eslint-disable-next-line no-console\n console.error(\n `Header navigation is not permitted in narrow Tearsheet.`\n );\n }\n if (this._hasInfluencerLeft || this._hasInfluencerRight) {\n // eslint-disable-next-line no-console\n console.error(`Influencer is not permitted in narrow Tearsheet.`);\n }\n if (this._hasHeaderActions) {\n // eslint-disable-next-line no-console\n console.error(\n `Header actions are not permitted in narrow Tearsheet.`\n );\n }\n }\n }\n\n if (changedProperties.has('open')) {\n this._updateStack();\n\n this._checkSetOpen();\n if (this.open) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n this._launcher = this.ownerDocument!.activeElement;\n const focusNode =\n this.selectorInitialFocus &&\n this.querySelector(this.selectorInitialFocus);\n\n await (this.constructor as typeof CDSTearsheet)._delay();\n if (focusNode) {\n // For cases where a `carbon-web-components` component (e.g. `<cds-button>`) being `primaryFocusNode`,\n // where its first update/render cycle that makes it focusable happens after `<cds-tearsheet>`'s first update/render cycle\n (focusNode as HTMLElement).focus();\n } else if (\n !tryFocusElems(\n this.querySelectorAll(\n (this.constructor as typeof CDSTearsheet).selectorTabbable\n ),\n true\n )\n ) {\n this.focus();\n }\n } else if (\n this._launcher &&\n typeof (this._launcher as HTMLElement).focus === 'function'\n ) {\n (this._launcher as HTMLElement).focus();\n this._launcher = null;\n }\n }\n }\n\n /**\n * @param ms The number of milliseconds.\n * @returns A promise that is resolves after the given milliseconds.\n */\n private static _delay(ms = 0) {\n return new Promise((resolve) => {\n setTimeout(resolve, ms);\n });\n }\n\n /**\n * A selector selecting buttons that should close this modal.\n */\n static get selectorCloseButton() {\n return `[data-modal-close],${prefix}-modal-close-button`;\n }\n\n /**\n * A selector selecting tabbable nodes.\n */\n static get selectorTabbable() {\n return selectorTabbable;\n }\n\n /**\n * The name of the custom event fired before this tearsheet is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this tearsheet.\n */\n static get eventBeforeClose() {\n return `${prefix}-tearsheet-beingclosed`;\n }\n\n /**\n * The name of the custom event fired after this tearsheet is closed upon a user gesture.\n */\n static get eventClose() {\n return `${prefix}-tearsheet-closed`;\n }\n\n /**\n * The name of the custom event fired on clicking the navigate back button\n */\n static get eventNavigateBack() {\n return `${prefix}-tearsheet-header-navigate-back`;\n }\n}\n\nexport default CDSTearsheet;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tearsheet.js","names":["customElement"],"sources":["../../../src/components/tearsheet/tearsheet.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2023, 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 {\n property,\n query,\n queryAssignedElements,\n state,\n} from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { selectorTabbable } from '../../globals/settings';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport '../button/index';\nimport '../layer/index';\nimport '../button/button-set-base';\nimport '../modal/index';\nimport {\n TEARSHEET_INFLUENCER_PLACEMENT,\n TEARSHEET_INFLUENCER_WIDTH,\n TEARSHEET_WIDTH,\n} from './defs';\n\nexport {\n TEARSHEET_INFLUENCER_PLACEMENT,\n TEARSHEET_INFLUENCER_WIDTH,\n TEARSHEET_WIDTH,\n};\n\nconst maxStackDepth = 3;\ntype StackHandler = (newDepth: number, newPosition: number) => void;\ninterface StackState {\n open: StackHandler[];\n all: StackHandler[];\n}\n\nconst PRECEDING =\n Node.DOCUMENT_POSITION_PRECEDING | Node.DOCUMENT_POSITION_CONTAINS;\n\nconst FOLLOWING =\n Node.DOCUMENT_POSITION_FOLLOWING | Node.DOCUMENT_POSITION_CONTAINED_BY;\n\nconst blockClass = `${prefix}--tearsheet`;\nconst blockClassModalHeader = `${prefix}--modal-header`;\nconst blockClassActionSet = `${prefix}--action-set`;\n\n/**\n * Tries to focus on the given elements and bails out if one of them is successful.\n *\n * @param elems The elements.\n * @param reverse `true` to go through the list in reverse order.\n * @returns `true` if one of the attempts is successful, `false` otherwise.\n */\nfunction tryFocusElems(elems: NodeListOf<HTMLElement>, reverse: boolean) {\n if (!reverse) {\n for (let i = 0; i < elems.length; ++i) {\n const elem = elems[i];\n elem.focus();\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n if (elem.ownerDocument!.activeElement === elem) {\n return true;\n }\n }\n } else {\n for (let i = elems.length - 1; i >= 0; --i) {\n const elem = elems[i];\n elem.focus();\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n if (elem.ownerDocument!.activeElement === elem) {\n return true;\n }\n }\n }\n return false;\n}\n\n/**\n * Tearsheet.\n *\n * @deprecated Use Carbon for IBM Products `tearsheet` component.\n * This component has been deprecated in `@carbon/web-components` and will instead be maintained\n * in the Carbon for IBM Products library:\n * https://github.com/carbon-design-system/ibm-products/tree/main/packages/ibm-products-web-components\n * @element cds-tearsheet\n * @csspart dialog The dialog.\n * @fires cds-tearsheet-beingclosed\n * The custom event fired before this tearsheet is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this tearsheet.\n * @fires cds-tearsheet-closed - The custom event fired after this tearsheet is closed upon a user gesture.\n */\n@customElement(`${prefix}-tearsheet`)\nclass CDSTearsheet extends HostListenerMixin(LitElement) {\n /**\n * The element that had focus before this tearsheet gets open.\n */\n private _launcher: Element | null = null;\n\n /**\n * Node to track focus going outside of tearsheet content.\n */\n @query('#start-sentinel')\n private _startSentinelNode!: HTMLAnchorElement;\n\n /**\n * Node to track focus going outside of tearsheet content.\n */\n @query('#end-sentinel')\n private _endSentinelNode!: HTMLAnchorElement;\n\n /**\n * Node to track tearsheet.\n */\n @query(`.${blockClass}__container`)\n private _tearsheet!: HTMLDivElement;\n\n @queryAssignedElements({ slot: 'actions', selector: `${prefix}-button` })\n private _actions!: Array<HTMLElement>;\n\n @state()\n _actionsCount = 0;\n\n @state()\n _hasHeaderActions = false;\n\n @state()\n _hasLabel = false;\n\n @state()\n _hasSlug = false;\n\n @state()\n _hasTitle = false;\n\n @state()\n _hasDescription = false;\n\n @state()\n _hasInfluencerLeft = false;\n\n @state()\n _hasInfluencerRight = false;\n\n @state()\n _isOpen = false;\n\n @state()\n _hasHeaderNavigation = false;\n\n /**\n * Handles `click` event on this element.\n *\n * @param event The event.\n */\n @HostListener('click')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleClick = (event: MouseEvent) => {\n if (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n event.composedPath().indexOf(this.shadowRoot!) < 0 &&\n !this.preventCloseOnClickOutside\n ) {\n this._handleUserInitiatedClose(event.target);\n }\n };\n\n /**\n * Handles `blur` event on this element.\n *\n * @param event The event.\n * @param event.target The event target.\n * @param event.relatedTarget The event relatedTarget.\n */\n @HostListener('shadowRoot:focusout')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleBlur = async ({ target, relatedTarget }: FocusEvent) => {\n if (!this._topOfStack()) {\n return;\n }\n\n const {\n // condensedActions,\n open,\n _startSentinelNode: startSentinelNode,\n _endSentinelNode: endSentinelNode,\n } = this;\n\n const oldContains = target !== this && this.contains(target as Node);\n const currentContains =\n relatedTarget !== this &&\n (this.contains(relatedTarget as Node) ||\n (this.shadowRoot?.contains(relatedTarget as Node) &&\n relatedTarget !== (startSentinelNode as Node) &&\n relatedTarget !== (endSentinelNode as Node)));\n\n // Performs focus wrapping if _all_ of the following is met:\n // * This tearsheet is open\n // * The viewport still has focus\n // * Tearsheet body used to have focus but no longer has focus\n const { selectorTabbable: selectorTabbableForTearsheet } = this\n .constructor as typeof CDSTearsheet;\n\n if (open && relatedTarget && oldContains && !currentContains) {\n const comparisonResult = (target as Node).compareDocumentPosition(\n relatedTarget as Node\n );\n\n if (relatedTarget === startSentinelNode || comparisonResult & PRECEDING) {\n await (this.constructor as typeof CDSTearsheet)._delay();\n if (\n !tryFocusElems(\n this.querySelectorAll(selectorTabbableForTearsheet),\n true\n ) &&\n relatedTarget !== this\n ) {\n this.focus();\n }\n } else if (\n relatedTarget === endSentinelNode ||\n comparisonResult & FOLLOWING\n ) {\n await (this.constructor as typeof CDSTearsheet)._delay();\n if (\n !tryFocusElems(\n this.querySelectorAll(selectorTabbableForTearsheet),\n true\n )\n ) {\n this.focus();\n }\n }\n }\n };\n\n @HostListener('document: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 = ({ key, target }: KeyboardEvent) => {\n if ((key === 'Esc' || key === 'Escape') && this._topOfStack()) {\n this._handleUserInitiatedClose(target);\n }\n };\n\n private _checkSetHasSlot(e: Event) {\n const t = e.target as HTMLSlotElement;\n const dataPostfix = t.getAttribute('data-postfix');\n const postfix = dataPostfix ? `-${dataPostfix}` : '';\n\n // snake `ab-cd-ef` to _has camel case _hasAbCdEf\n const hasName = `_has-${t.name}${postfix}`.replace(/-./g, (c) =>\n c[1].toUpperCase()\n );\n this[hasName] = (t?.assignedElements()?.length ?? 0) > 0;\n }\n\n /**\n * Handles `click` event on the modal container.\n *\n * @param event The event.\n */\n private _handleClickContainer(event: MouseEvent) {\n if (\n (event.target as Element).matches(\n (this.constructor as typeof CDSTearsheet).selectorCloseButton\n )\n ) {\n this._handleUserInitiatedClose(event.target);\n }\n }\n\n /**\n * Handles user-initiated close request of this tearsheet.\n *\n * @param triggeredBy The element that triggered this close request.\n */\n private _handleUserInitiatedClose(triggeredBy: EventTarget | null) {\n if (this.open) {\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSTearsheet).eventBeforeClose,\n init\n )\n )\n ) {\n this.open = false;\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSTearsheet).eventClose,\n init\n )\n );\n }\n }\n }\n\n private _handleSlugChange(e: Event) {\n const childItems = (e.target as HTMLSlotElement).assignedElements();\n\n this._hasSlug = childItems.length > 0;\n if (this._hasSlug) {\n childItems[0].setAttribute('size', 'lg');\n this.setAttribute('slug', '');\n } else {\n this.removeAttribute('slug');\n }\n }\n\n /**\n * Optional aria label for the tearsheet\n */\n @property({ reflect: true, attribute: 'aria-label' })\n ariaLabel = '';\n\n /**\n * Sets the close button icon description\n */\n @property({ reflect: true, attribute: 'close-icon-description' })\n closeIconDescription = 'Close';\n\n /**\n * Enable a close icon ('x') in the header area of the tearsheet. By default,\n * (when this prop is omitted, or undefined or null) a tearsheet does not\n * display a close icon if there are navigation actions (\"transactional\n * tearsheet\") and displays one if there are no navigation actions (\"passive\n * tearsheet\"), and that behavior can be overridden if required by setting\n * this prop to either true or false.\n */\n\n @property({ reflect: true, type: Boolean, attribute: 'has-close-icon' })\n hasCloseIcon = false;\n\n /**\n * The placement of the influencer section, 'left' or 'right'.\n */\n @property({ reflect: true, attribute: 'influencer-placement' })\n influencerPlacement = TEARSHEET_INFLUENCER_PLACEMENT.RIGHT;\n\n /**\n * The width of the influencer section, 'narrow' or 'wide'.\n */\n @property({ reflect: true, attribute: 'influencer-width' })\n influencerWidth = TEARSHEET_INFLUENCER_WIDTH.NARROW;\n\n /**\n * `true` if the tearsheet should be open.\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Prevent closing on click outside of tearsheet\n */\n @property({ type: Boolean, attribute: 'prevent-close-on-click-outside' })\n preventCloseOnClickOutside = false;\n\n /**\n * The initial location of focus in the side panel\n */\n @property({\n reflect: true,\n attribute: 'selector-initial-focus',\n type: String,\n })\n selectorInitialFocus;\n\n /**\n * The width of the influencer section, 'narrow' or 'wide'.\n */\n @property({ reflect: true, attribute: 'width' })\n width = TEARSHEET_WIDTH.NARROW;\n\n private _checkUpdateActionSizes = () => {\n if (this._actions) {\n for (let i = 0; i < this._actions.length; i++) {\n this._actions[i].setAttribute(\n 'size',\n this.width === 'wide' ? '2xl' : 'xl'\n );\n }\n }\n };\n\n private _maxActions = 4;\n private _handleActionsChange(e: Event) {\n const target = e.target as HTMLSlotElement;\n const actions = target?.assignedElements();\n const actionsCount = actions?.length ?? 0;\n\n if (actionsCount > this._maxActions) {\n this._actionsCount = this._maxActions;\n // eslint-disable-next-line no-console\n console.error(`Too many tearsheet actions, max ${this._maxActions}.`);\n } else {\n this._actionsCount = actionsCount;\n }\n\n for (let i = 0; i < actions?.length; i++) {\n if (i + 1 > this._maxActions) {\n // hide excessive tearsheet actions\n actions[i].setAttribute('hidden', 'true');\n actions[i].setAttribute(\n `data-actions-limit-${this._maxActions}-exceeded`,\n `${actions.length}`\n );\n } else {\n actions[i].classList.add(`${blockClassActionSet}__action-button`);\n }\n }\n this._checkUpdateActionSizes();\n }\n\n // Data structure to communicate the state of tearsheet stacking\n // (i.e. when more than one tearsheet is open). Each tearsheet supplies a\n // handler to be called whenever the stacking of the tearsheets changes, which\n // happens when a tearsheet opens or closes. The 'open' array contains one\n // handler per OPEN tearsheet ordered from lowest to highest in visual z-order.\n // The 'all' array contains all the handlers for open and closed tearsheets.\n\n @state()\n _stackDepth = -1;\n\n @state()\n _stackPosition = -1;\n\n private _topOfStack = () => {\n return this._stackDepth === this._stackPosition;\n };\n\n private static _stack: StackState = {\n open: [],\n all: [],\n };\n private _notifyStack = () => {\n CDSTearsheet._stack.all.forEach(\n (handler: (stackSize: number, position: number) => void) => {\n handler(\n Math.min(CDSTearsheet._stack.open.length, maxStackDepth),\n CDSTearsheet._stack.open.indexOf(handler) + 1\n );\n }\n );\n };\n\n private _handleStackChange: StackHandler = (newDepth, newPosition) => {\n this._stackDepth = newDepth;\n this._stackPosition = newPosition;\n if (this._stackDepth > 1 && this._stackPosition > 0) {\n this.setAttribute('stack-position', `${newPosition}`);\n this.setAttribute('stack-depth', `${this._stackDepth}`);\n } else {\n this.removeAttribute('stack-position');\n this.removeAttribute('stack-depth');\n }\n };\n\n private _updateStack = () => {\n if (this.open) {\n CDSTearsheet._stack.open.push(this._handleStackChange);\n } else {\n const indexOpen = CDSTearsheet._stack.open.indexOf(\n this._handleStackChange\n );\n if (indexOpen >= 0) {\n CDSTearsheet._stack.open.splice(indexOpen, 1);\n }\n }\n this._notifyStack();\n };\n\n actionsMultiple = ['', 'single', 'double', 'triple'][this._actionsCount];\n\n connectedCallback() {\n super.connectedCallback();\n\n CDSTearsheet._stack.all.push(this._handleStackChange);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n const indexAll = CDSTearsheet._stack.all.indexOf(this._handleStackChange);\n CDSTearsheet._stack.all.splice(indexAll, 1);\n const indexOpen = CDSTearsheet._stack.all.indexOf(this._handleStackChange);\n CDSTearsheet._stack.open.splice(indexOpen, 1);\n }\n\n render() {\n const {\n closeIconDescription,\n influencerPlacement,\n influencerWidth,\n open,\n width,\n } = this;\n\n const actionsMultiple = ['', 'single', 'double', 'triple'][\n this._actionsCount\n ];\n\n const headerFieldsTemplate = html`<div\n class=${`${blockClass}__header-fields`}>\n <h2 class=${`${blockClassModalHeader}__label`} ?hidden=${!this._hasLabel}>\n <slot name=\"label\" @slotchange=${this._checkSetHasSlot}></slot>\n </h2>\n <h3\n class=${`${blockClassModalHeader}__heading ${blockClass}__heading`}\n ?hidden=${!this._hasTitle}>\n <slot name=\"title\" @slotchange=${this._checkSetHasSlot}></slot>\n </h3>\n <div\n class=${`${blockClass}__header-description`}\n ?hidden=${!this._hasDescription}>\n <slot name=\"description\" @slotchange=${this._checkSetHasSlot}></slot>\n </div>\n </div>`;\n\n const headerActionsTemplate = html` <div\n class=${`${blockClass}__header-actions`}\n ?hidden=${!this._hasHeaderActions || this.width === 'narrow'}>\n <slot name=\"header-actions\" @slotchange=${this._checkSetHasSlot}></slot>\n </div>`;\n\n const headerTemplate = html` <cds-modal-header\n class=${`${blockClass}__header`}\n ?has-close-icon=${this.hasCloseIcon || this?._actionsCount === 0}\n ?has-navigation=${this._hasHeaderNavigation && this.width === 'wide'}\n ?has-header-actions=${this._hasHeaderActions && this.width === 'wide'}\n ?has-actions=${this?._actionsCount > 0}\n ?has-slug=${this?._hasSlug}\n width=${width}>\n ${this.width === TEARSHEET_WIDTH.WIDE\n ? html`<cds-layer level=\"1\" class=${`${blockClass}__header-content`}\n >${headerFieldsTemplate}${headerActionsTemplate}</cds-layer\n >`\n : html`<div>${headerFieldsTemplate}${headerActionsTemplate}</div>`}\n\n <div\n class=${`${blockClass}__header-navigation`}\n ?hidden=${!this._hasHeaderNavigation || this.width === 'narrow'}>\n <slot\n name=\"header-navigation\"\n @slotchange=${this._checkSetHasSlot}></slot>\n </div>\n <slot name=\"slug\" @slotchange=${this._handleSlugChange}></slot>\n ${this.hasCloseIcon || this?._actionsCount === 0\n ? html`<cds-modal-close-button\n close-button-label=${closeIconDescription}\n @click=${this._handleUserInitiatedClose}></cds-modal-close-button>`\n : ''}\n </cds-modal-header>`;\n\n return html`\n <a\n id=\"start-sentinel\"\n class=\"${prefix}--visually-hidden\"\n href=\"javascript:void 0\"\n role=\"navigation\"></a>\n <div\n aria-label=${this.ariaLabel}\n class=${`${blockClass}__container ${prefix}--modal-container ${prefix}--modal-container--sm`}\n part=\"dialog\"\n role=\"complementary\"\n ?open=${this._isOpen}\n ?opening=${open && !this._isOpen}\n ?closing=${!open && this._isOpen}\n width=${width}\n stack-position=${this._stackPosition}\n stack-depth=${this._stackDepth}\n @click=${this._handleClickContainer}>\n <!-- Header -->\n ${headerTemplate}\n\n <!-- Body -->\n <cds-modal-body class=${`${blockClass}__body`} width=${width}>\n <!-- Influencer when on left -->\n ${influencerPlacement !== TEARSHEET_INFLUENCER_PLACEMENT.RIGHT\n ? html`<div\n class=${`${blockClass}__influencer`}\n ?wide=${influencerWidth === 'wide'}\n ?hidden=${!this._hasInfluencerLeft ||\n this.width === TEARSHEET_WIDTH.NARROW}>\n <slot\n name=\"influencer\"\n data-postfix=\"left\"\n @slotchange=${this._checkSetHasSlot}></slot>\n </div>`\n : ''}\n\n <div class=${`${blockClass}__right`}>\n <div class=${`${blockClass}__main`}>\n <div class=${`${blockClass}__content`}>\n <cds-layer level=\"0\">\n <slot></slot>\n </cds-layer>\n </div>\n\n <!-- Influencer when on right -->\n ${influencerPlacement === TEARSHEET_INFLUENCER_PLACEMENT.RIGHT\n ? html`<div\n class=${`${blockClass}__influencer`}\n ?wide=${influencerWidth}\n ?hidden=${!this._hasInfluencerRight ||\n this.width === TEARSHEET_WIDTH.NARROW}>\n <slot\n name=\"influencer\"\n data-postfix=\"right\"\n @slotchange=${this._checkSetHasSlot}></slot>\n </div>`\n : ''}\n </div>\n <!-- Action buttons -->\n <cds-button-set-base\n class=${`${blockClass}__buttons ${blockClass}__button-container`}\n actions-multiple=${actionsMultiple}\n ?tearsheet-wide=${width === 'wide'}\n ?hidden=${this._actionsCount === 0}>\n <slot\n name=\"actions\"\n @slotchange=${this._handleActionsChange}></slot>\n </cds-button-set-base>\n </div>\n </cds-modal-body>\n </div>\n <a\n id=\"end-sentinel\"\n class=\"${prefix}--visually-hidden\"\n href=\"javascript:void 0\"\n role=\"navigation\"></a>\n `;\n }\n\n _checkSetOpen = () => {\n const { _tearsheet: tearsheet } = this;\n if (tearsheet && this._isOpen) {\n // wait until the tearsheet has transitioned off the screen to remove\n tearsheet.addEventListener('transitionend', () => {\n this._isOpen = false;\n });\n } else {\n // allow the html to render before animating in the tearsheet\n window.requestAnimationFrame(() => {\n this._isOpen = this.open;\n });\n }\n };\n\n async updated(changedProperties) {\n if (changedProperties.has('width')) {\n this._checkUpdateActionSizes();\n }\n\n if (\n process.env.NODE_ENV === 'development' &&\n (changedProperties.has('width') ||\n changedProperties.has('_hasHeaderNavigation') ||\n changedProperties.has('_hasInfluencerLeft') ||\n changedProperties.has('_hasInfluencerRight') ||\n changedProperties.has('_hasHeaderActions'))\n ) {\n if (this.width === 'narrow') {\n if (this._hasHeaderNavigation) {\n // eslint-disable-next-line no-console\n console.error(\n `Header navigation is not permitted in narrow Tearsheet.`\n );\n }\n if (this._hasInfluencerLeft || this._hasInfluencerRight) {\n // eslint-disable-next-line no-console\n console.error(`Influencer is not permitted in narrow Tearsheet.`);\n }\n if (this._hasHeaderActions) {\n // eslint-disable-next-line no-console\n console.error(\n `Header actions are not permitted in narrow Tearsheet.`\n );\n }\n }\n }\n\n if (changedProperties.has('open')) {\n this._updateStack();\n\n this._checkSetOpen();\n if (this.open) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n this._launcher = this.ownerDocument!.activeElement;\n const focusNode =\n this.selectorInitialFocus &&\n this.querySelector(this.selectorInitialFocus);\n\n await (this.constructor as typeof CDSTearsheet)._delay();\n if (focusNode) {\n // For cases where a `carbon-web-components` component (e.g. `<cds-button>`) being `primaryFocusNode`,\n // where its first update/render cycle that makes it focusable happens after `<cds-tearsheet>`'s first update/render cycle\n (focusNode as HTMLElement).focus();\n } else if (\n !tryFocusElems(\n this.querySelectorAll(\n (this.constructor as typeof CDSTearsheet).selectorTabbable\n ),\n true\n )\n ) {\n this.focus();\n }\n } else if (\n this._launcher &&\n typeof (this._launcher as HTMLElement).focus === 'function'\n ) {\n (this._launcher as HTMLElement).focus();\n this._launcher = null;\n }\n }\n }\n\n /**\n * @param ms The number of milliseconds.\n * @returns A promise that is resolves after the given milliseconds.\n */\n private static _delay(ms = 0) {\n return new Promise((resolve) => {\n setTimeout(resolve, ms);\n });\n }\n\n /**\n * A selector selecting buttons that should close this modal.\n */\n static get selectorCloseButton() {\n return `[data-modal-close],${prefix}-modal-close-button`;\n }\n\n /**\n * A selector selecting tabbable nodes.\n */\n static get selectorTabbable() {\n return selectorTabbable;\n }\n\n /**\n * The name of the custom event fired before this tearsheet is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this tearsheet.\n */\n static get eventBeforeClose() {\n return `${prefix}-tearsheet-beingclosed`;\n }\n\n /**\n * The name of the custom event fired after this tearsheet is closed upon a user gesture.\n */\n static get eventClose() {\n return `${prefix}-tearsheet-closed`;\n }\n\n /**\n * The name of the custom event fired on clicking the navigate back button\n */\n static get eventNavigateBack() {\n return `${prefix}-tearsheet-header-navigate-back`;\n }\n}\n\nexport default CDSTearsheet;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defs.js","names":[],"sources":["../../../src/components/text-input/defs.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2020, 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\nexport { FORM_ELEMENT_COLOR_SCHEME as INPUT_COLOR_SCHEME } from '../../globals/shared-enums';\n\n/**\n * Input size.\n */\nexport enum INPUT_SIZE {\n /**\n * Extra small size.\n */\n EXTRA_SMALL = 'xs',\n\n /**\n * Small size.\n */\n SMALL = 'sm',\n\n /**\n * Regular size, same as medium size.\n */\n MEDIUM = 'md',\n\n /**\n * Large size.\n */\n LARGE = 'lg',\n\n // TODO: deprecate\n /**\n * Extra large size.\n */\n EXTRA_LARGE = 'xl',\n}\n\n/**\n * Input tooltop alignment\n */\nexport enum INPUT_TOOLTIP_ALIGNMENT {\n /**\n * Small size.\n */\n START = 'start',\n\n /**\n * Regular size, same as medium size.\n */\n CENTER = 'center',\n\n /**\n * Large size.\n */\n END = 'end',\n}\n\n/**\n * Input tooltop direction\n */\nexport enum INPUT_TOOLTIP_DIRECTION {\n /**\n * Small size.\n */\n TOP = 'top',\n\n /**\n * Regular size, same as medium size.\n */\n RIGHT = 'right',\n\n /**\n * Large size.\n */\n BOTTOM = 'bottom',\n\n /**\n * Regular size, same as medium size.\n */\n LEFT = 'left',\n}\n\n/**\n * Supported input types.\n *\n * For this component we only support textual types\n */\nexport enum INPUT_TYPE {\n EMAIL = 'email',\n PASSWORD = 'password',\n TEL = 'tel',\n TEXT = 'text',\n URL = 'url',\n}\n"],"mappings":";;;;;;;;;;;;AAYA,IAAY,aAAL,yBAAA,YAAA;;;;
|
|
1
|
+
{"version":3,"file":"defs.js","names":[],"sources":["../../../src/components/text-input/defs.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2020, 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\nexport { FORM_ELEMENT_COLOR_SCHEME as INPUT_COLOR_SCHEME } from '../../globals/shared-enums';\n\n/**\n * Input size.\n */\nexport enum INPUT_SIZE {\n /**\n * Extra small size.\n */\n EXTRA_SMALL = 'xs',\n\n /**\n * Small size.\n */\n SMALL = 'sm',\n\n /**\n * Regular size, same as medium size.\n */\n MEDIUM = 'md',\n\n /**\n * Large size.\n */\n LARGE = 'lg',\n\n // TODO: deprecate\n /**\n * Extra large size.\n */\n EXTRA_LARGE = 'xl',\n}\n\n/**\n * Input tooltop alignment\n */\nexport enum INPUT_TOOLTIP_ALIGNMENT {\n /**\n * Small size.\n */\n START = 'start',\n\n /**\n * Regular size, same as medium size.\n */\n CENTER = 'center',\n\n /**\n * Large size.\n */\n END = 'end',\n}\n\n/**\n * Input tooltop direction\n */\nexport enum INPUT_TOOLTIP_DIRECTION {\n /**\n * Small size.\n */\n TOP = 'top',\n\n /**\n * Regular size, same as medium size.\n */\n RIGHT = 'right',\n\n /**\n * Large size.\n */\n BOTTOM = 'bottom',\n\n /**\n * Regular size, same as medium size.\n */\n LEFT = 'left',\n}\n\n/**\n * Supported input types.\n *\n * For this component we only support textual types\n */\nexport enum INPUT_TYPE {\n EMAIL = 'email',\n PASSWORD = 'password',\n TEL = 'tel',\n TEXT = 'text',\n URL = 'url',\n}\n"],"mappings":";;;;;;;;;;;;AAYA,IAAY,aAAL,yBAAA,YAAA;;;;CAIL,WAAA,iBAAA;;;;CAKA,WAAA,WAAA;;;;CAKA,WAAA,YAAA;;;;CAKA,WAAA,WAAA;;;;CAMA,WAAA,iBAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,IAAY,0BAAL,yBAAA,yBAAA;;;;CAIL,wBAAA,WAAA;;;;CAKA,wBAAA,YAAA;;;;CAKA,wBAAA,SAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,IAAY,0BAAL,yBAAA,yBAAA;;;;CAIL,wBAAA,SAAA;;;;CAKA,wBAAA,WAAA;;;;CAKA,wBAAA,YAAA;;;;CAKA,wBAAA,UAAA;;AACF,EAAA,CAAA,CAAA;;;;;;AAOA,IAAY,aAAL,yBAAA,YAAA;CACL,WAAA,WAAA;CACA,WAAA,cAAA;CACA,WAAA,SAAA;CACA,WAAA,UAAA;CACA,WAAA,SAAA;;AACF,EAAA,CAAA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","names":[],"sources":["../../../../src/components/text-input/stories/helpers.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { action } from 'storybook/actions';\nimport { INPUT_COLOR_SCHEME, INPUT_SIZE, INPUT_TYPE } from '../text-input';\n\nconst inputTypes = Object.entries(INPUT_TYPE).reduce(\n (acc, [key, val]) => ({\n ...acc,\n [`${key.toLowerCase()}`]: val,\n }),\n {}\n);\n\nconst sizes = {\n [`Small size (${INPUT_SIZE.SMALL})`]: INPUT_SIZE.SMALL,\n [`Medium size (${INPUT_SIZE.MEDIUM})`]: INPUT_SIZE.MEDIUM,\n [`Large size (${INPUT_SIZE.LARGE})`]: INPUT_SIZE.LARGE,\n};\n\nconst colorSchemes = {\n [`Regular`]: null,\n [`Light (${INPUT_COLOR_SCHEME.LIGHT})`]: INPUT_COLOR_SCHEME.LIGHT,\n};\n\nconst createProps = ({ boolean, textNonEmpty, select }) => {\n const type = select('Input type (type)', inputTypes, INPUT_TYPE.TEXT);\n return {\n colorScheme: select('Color scheme (color-scheme)', colorSchemes, null),\n disabled: boolean('Disabled (disabled)', false),\n value: textNonEmpty('Input value (value)', ''),\n placeholder: textNonEmpty(\n 'Placeholder text (placeholder)',\n 'Optional placeholder text'\n ),\n invalid: boolean('Invalid (invalid)', false),\n onInput: action('input'),\n showPasswordVisibilityToggle:\n type === INPUT_TYPE.TEXT || type === INPUT_TYPE.PASSWORD\n ? boolean(\n 'Show password visibility toggle (show-password-visibility-toggle)',\n false\n )\n : null,\n size: select('Input size (size)', sizes, INPUT_SIZE.MEDIUM),\n type,\n };\n};\n\nexport default createProps;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAUA,MAAM,aAAa,OAAO,QAAQ,
|
|
1
|
+
{"version":3,"file":"helpers.js","names":[],"sources":["../../../../src/components/text-input/stories/helpers.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { action } from 'storybook/actions';\nimport { INPUT_COLOR_SCHEME, INPUT_SIZE, INPUT_TYPE } from '../text-input';\n\nconst inputTypes = Object.entries(INPUT_TYPE).reduce(\n (acc, [key, val]) => ({\n ...acc,\n [`${key.toLowerCase()}`]: val,\n }),\n {}\n);\n\nconst sizes = {\n [`Small size (${INPUT_SIZE.SMALL})`]: INPUT_SIZE.SMALL,\n [`Medium size (${INPUT_SIZE.MEDIUM})`]: INPUT_SIZE.MEDIUM,\n [`Large size (${INPUT_SIZE.LARGE})`]: INPUT_SIZE.LARGE,\n};\n\nconst colorSchemes = {\n [`Regular`]: null,\n [`Light (${INPUT_COLOR_SCHEME.LIGHT})`]: INPUT_COLOR_SCHEME.LIGHT,\n};\n\nconst createProps = ({ boolean, textNonEmpty, select }) => {\n const type = select('Input type (type)', inputTypes, INPUT_TYPE.TEXT);\n return {\n colorScheme: select('Color scheme (color-scheme)', colorSchemes, null),\n disabled: boolean('Disabled (disabled)', false),\n value: textNonEmpty('Input value (value)', ''),\n placeholder: textNonEmpty(\n 'Placeholder text (placeholder)',\n 'Optional placeholder text'\n ),\n invalid: boolean('Invalid (invalid)', false),\n onInput: action('input'),\n showPasswordVisibilityToggle:\n type === INPUT_TYPE.TEXT || type === INPUT_TYPE.PASSWORD\n ? boolean(\n 'Show password visibility toggle (show-password-visibility-toggle)',\n false\n )\n : null,\n size: select('Input size (size)', sizes, INPUT_SIZE.MEDIUM),\n type,\n };\n};\n\nexport default createProps;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAUA,MAAM,aAAa,OAAO,QAAQ,UAAU,CAAC,CAAC,QAC3C,KAAK,CAAC,KAAK,UAAU;CACpB,GAAG;EACF,GAAG,IAAI,YAAY,MAAM;AAC5B,IACA,CAAC,CACH;AAEA,MAAM,QAAQ;EACX,oBAAgC;EAChC,qBAAkC;EAClC,oBAAgC;AACnC;AAEA,MAAM,eAAe;EAClB,YAAY;EACZ,kBAAmC;AACtC;AAEA,MAAM,eAAe,EAAE,SAAS,cAAc,aAAa;CACzD,MAAM,OAAO,OAAO,qBAAqB,YAAA,MAA2B;CACpE,OAAO;EACL,aAAa,OAAO,+BAA+B,cAAc,IAAI;EACrE,UAAU,QAAQ,uBAAuB,KAAK;EAC9C,OAAO,aAAa,uBAAuB,EAAE;EAC7C,aAAa,aACX,kCACA,2BACF;EACA,SAAS,QAAQ,qBAAqB,KAAK;EAC3C,SAAS,OAAO,OAAO;EACvB,8BACE,SAAA,UAA4B,SAAA,aACxB,QACE,qEACA,KACF,IACA;EACN,MAAM,OAAO,qBAAqB,OAAA,IAAwB;EAC1D;CACF;AACF"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
import "../../globals/settings.js";
|
|
9
9
|
import { carbonElement } from "../../globals/decorators/carbon-element.js";
|
|
10
|
-
import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.
|
|
10
|
+
import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.135.0/helpers/esm/decorate.js";
|
|
11
11
|
import text_input_default from "./text-input.scss.js";
|
|
12
12
|
import { LitElement, html } from "lit";
|
|
13
13
|
import { property } from "lit/decorators.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-input-skeleton.js","names":["styles","customElement"],"sources":["../../../src/components/text-input/text-input-skeleton.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 } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './text-input.scss?lit';\nimport { INPUT_SIZE } from './defs';\n\n/**\n * @element cds-text-input-skeleton\n *\n * Skeleton of text input.\n */\n@customElement(`${prefix}-text-input-skeleton`)\nclass CDSTextInputSkeleton extends LitElement {\n /**\n * Specify whether the label should be hidden, or not\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-label' })\n hideLabel = false;\n\n /**\n * The text-input-skeleton size.\n */\n @property({ reflect: true })\n size?: INPUT_SIZE;\n\n render() {\n const { hideLabel, size } = this;\n\n const skeletonClasses = classMap({\n [`${prefix}--form-item`]: true,\n [`${prefix}--layout--size-${size}`]: size !== undefined,\n });\n\n return html`\n <div class=${skeletonClasses}>\n ${hideLabel\n ? ''\n : html`<span class=\"${prefix}--label ${prefix}--skeleton\"></span>`}\n <div class=\"${prefix}--text-input ${prefix}--skeleton\"></div>\n </div>\n `;\n }\n\n static styles = styles;\n}\n\nexport default CDSTextInputSkeleton;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,IAAA,uBAAA,MACM,6BAA6B,WAAW;;;mBAKhC;;CAQZ,SAAS;EACP,MAAM,EAAE,WAAW,SAAS;
|
|
1
|
+
{"version":3,"file":"text-input-skeleton.js","names":["styles","customElement"],"sources":["../../../src/components/text-input/text-input-skeleton.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 } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './text-input.scss?lit';\nimport { INPUT_SIZE } from './defs';\n\n/**\n * @element cds-text-input-skeleton\n *\n * Skeleton of text input.\n */\n@customElement(`${prefix}-text-input-skeleton`)\nclass CDSTextInputSkeleton extends LitElement {\n /**\n * Specify whether the label should be hidden, or not\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-label' })\n hideLabel = false;\n\n /**\n * The text-input-skeleton size.\n */\n @property({ reflect: true })\n size?: INPUT_SIZE;\n\n render() {\n const { hideLabel, size } = this;\n\n const skeletonClasses = classMap({\n [`${prefix}--form-item`]: true,\n [`${prefix}--layout--size-${size}`]: size !== undefined,\n });\n\n return html`\n <div class=${skeletonClasses}>\n ${hideLabel\n ? ''\n : html`<span class=\"${prefix}--label ${prefix}--skeleton\"></span>`}\n <div class=\"${prefix}--text-input ${prefix}--skeleton\"></div>\n </div>\n `;\n }\n\n static styles = styles;\n}\n\nexport default CDSTextInputSkeleton;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,IAAA,uBAAA,MACM,6BAA6B,WAAW;;;mBAKhC;;CAQZ,SAAS;EACP,MAAM,EAAE,WAAW,SAAS;EAO5B,OAAO,IAAI;mBALa,SAAS;IAC9B,mBAAyB;IACzB,qBAA2B,SAAS,SAAS,KAAA;EAChD,CAG6B,EAAE;UACzB,YACE,KACA,IAAI,gBAAA,MAAuB,UAAA,MAAiB,qBAAqB;4BAChD,eAAA,MAAsB;;;CAGjD;;gBAEgBA;;AAClB;YA5BG,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,WAAW;AAAa,CAAC,CAAA,GAAA,qBAAA,WAAA,aAAA,KAAA,CAAA;YAMlE,SAAS,EAAE,SAAS,KAAK,CAAC,CAAA,GAAA,qBAAA,WAAA,QAAA,KAAA,CAAA;mCAX5BC,cAAc,yBAA+B,CAAA,GAAA,oBAAA;AAmC9C,IAAA,8BAAe"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
import "../../globals/settings.js";
|
|
9
9
|
import { carbonElement } from "../../globals/decorators/carbon-element.js";
|
|
10
|
-
import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.
|
|
10
|
+
import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.135.0/helpers/esm/decorate.js";
|
|
11
11
|
import iconLoader from "../../globals/internal/icon-loader.js";
|
|
12
12
|
import FormMixin from "../../globals/mixins/form.js";
|
|
13
13
|
import { FORM_ELEMENT_COLOR_SCHEME } from "../../globals/shared-enums.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-input.js","names":["ifNonEmpty","styles","customElement"],"sources":["../../../src/components/text-input/text-input.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 } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport WarningFilled16 from '@carbon/icons/es/warning--filled/16.js';\nimport WarningAltFilled16 from '@carbon/icons/es/warning--alt--filled/16.js';\nimport View16 from '@carbon/icons/es/view/16.js';\nimport ViewOff16 from '@carbon/icons/es/view--off/16.js';\nimport FormMixin from '../../globals/mixins/form';\nimport ValidityMixin from '../../globals/mixins/validity';\nimport {\n INPUT_COLOR_SCHEME,\n INPUT_SIZE,\n INPUT_TOOLTIP_ALIGNMENT,\n INPUT_TOOLTIP_DIRECTION,\n INPUT_TYPE,\n} from './defs';\nimport styles from './text-input.scss?lit';\n\nexport {\n INPUT_COLOR_SCHEME,\n INPUT_SIZE,\n INPUT_TOOLTIP_ALIGNMENT,\n INPUT_TOOLTIP_DIRECTION,\n INPUT_TYPE,\n};\n\n/**\n * Text Input element. Supports all the usual attributes for textual input types\n *\n * @element cds-text-input\n * @slot helper-text - The helper text.\n * @slot label-text - The label text.\n * @slot validity-message - The validity message. If present and non-empty, this input shows the UI of its invalid state.\n */\n@customElement(`${prefix}-text-input`)\nclass CDSTextInput extends ValidityMixin(FormMixin(LitElement)) {\n /**\n * `true` if there is an AI Label.\n */\n protected _hasAILabel = false;\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleSlotChange({ 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 CDSTextInput).aiLabelItem\n ) ||\n // remove reference to slug in v12\n (elem as HTMLElement).matches(\n (this.constructor as typeof CDSTextInput).slugItem\n )\n : false\n );\n\n this._hasAILabel = Boolean(hasContent);\n (hasContent[0] as HTMLElement).setAttribute('size', 'mini');\n this.requestUpdate();\n }\n /**\n * The underlying input element\n */\n @query('input')\n protected _input!: HTMLInputElement;\n\n @query('slot[name=\"helper-text\"]')\n protected _slotHelperTextNode!: HTMLSlotElement;\n\n /**\n * The internal value.\n */\n protected _value = '';\n\n /**\n * Handles `oninput` event on the `input`.\n *\n * @param event The event.\n * @param event.target The event target.\n */\n protected _handleInput({ target }: Event) {\n this.value = (target as HTMLInputElement).value;\n }\n\n _handleFormdata(event: FormDataEvent) {\n const { formData } = event;\n const { disabled, name, value } = this;\n if (!disabled) {\n formData.append(name, value);\n }\n }\n\n protected _handleHelperTextSlotChange() {\n this.requestUpdate();\n }\n\n /**\n * May be any of the standard HTML autocomplete options\n */\n @property()\n autocomplete = '';\n\n /**\n * Sets the input to be focussed automatically on page load. Defaults to false\n */\n @property({ type: Boolean })\n autofocus = false;\n\n /**\n * Controls the disabled state of the input\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Specify whether to display the character counter\n */\n @property({ type: Boolean, attribute: 'enable-counter', reflect: true })\n enableCounter = false;\n\n /**\n * The helper text.\n */\n @property({ attribute: 'helper-text' })\n helperText = '';\n\n /**\n * Specify if the currently value is invalid.\n */\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n /**\n * Message which is displayed if the value is invalid.\n */\n @property({ attribute: 'invalid-text' })\n invalidText = '';\n\n /**\n * Max character count allowed for input. This is needed in order for enableCounter to display\n */\n @property({ type: Number, attribute: 'max-count', reflect: true })\n maxCount;\n\n /**\n * Specify whether the control is currently in warning state\n */\n @property({ type: Boolean, reflect: true })\n warn = false;\n\n /**\n * Provide the text that is displayed when the control is in warning state\n */\n @property({ attribute: 'warn-text' })\n warnText = '';\n\n /**\n * Specify whether you want the underlying label to be visually hidden\n */\n @property({ attribute: 'hide-label', type: Boolean, reflect: true })\n hideLabel = false;\n\n /**\n * Generic label that will be used as the textual representation of what this field is for\n */\n @property({ attribute: 'label' })\n label = '';\n\n /**\n * Name for the input in the `FormData`\n */\n @property()\n name = '';\n\n /**\n * Pattern to validate the input against for HTML validity checking\n */\n @property()\n pattern = '';\n\n /**\n * Value to display when the input has an empty `value`\n */\n @property({ reflect: true })\n placeholder = '';\n\n /**\n * Specify if the component should be read-only\n */\n @property({ type: Boolean, reflect: true })\n readonly = false;\n\n /**\n * Boolean property to set the required status\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * The special validity message for `required`.\n */\n @property({ attribute: 'required-validity-message' })\n requiredValidityMessage = 'Please fill out this field.';\n\n /**\n * \"Hide password\" tooltip text on password visibility toggle\n *\n * @deprecated will be removed in the next major version, use `cds-password-input` instead\n */\n @property()\n hidePasswordLabel = 'Hide password';\n\n /**\n * \"Show password\" tooltip text on password visibility toggle\n *\n * @deprecated will be removed in the next major version, use `cds-password-input` instead\n */\n @property()\n showPasswordLabel = 'Show password';\n\n /**\n * Boolean property to render password visibility toggle\n *\n * @deprecated will be removed in the next major version, use `cds-password-input` instead\n */\n @property({\n type: Boolean,\n attribute: 'show-password-visibility-toggle',\n reflect: true,\n })\n showPasswordVisibilityToggle = false;\n\n /**\n * The input box size.\n */\n @property({ reflect: true })\n size?: INPUT_SIZE;\n\n @property({ type: Boolean })\n isFluid = false;\n\n /**\n * true to use the inline version.\n */\n @property({ type: Boolean, reflect: true })\n inline = false;\n\n /**\n * Specify the alignment of the tooltip to the icon-only button.\n * Can be one of: start, center, or end.\n */\n @property()\n tooltipAlignment = INPUT_TOOLTIP_ALIGNMENT.CENTER;\n\n /**\n * Specify the direction of the tooltip for icon-only buttons.\n * Can be either top, right, bottom, or left.\n */\n @property()\n tooltipDirection = INPUT_TOOLTIP_DIRECTION.BOTTOM;\n\n /**\n * The type of the input. Can be one of the types listed in the INPUT_TYPE enum\n */\n @property({ reflect: true })\n type = INPUT_TYPE.TEXT;\n\n /**\n * The validity message. If present and non-empty, this input shows the UI of its invalid state.\n */\n @property({ attribute: 'validity-message' })\n validityMessage = '';\n\n /**\n * The value of the input.\n */\n @property({ reflect: true })\n get value() {\n // FIXME: Figure out how to deal with TS2611\n // once we have the input we can directly query for the value\n if (this._input) {\n return this._input.value;\n }\n // but before then _value will work fine\n return this._value;\n }\n\n set value(value) {\n const oldValue = this._value;\n this._value = value;\n // make sure that lit-element updates the right properties\n this.requestUpdate('value', oldValue);\n // we set the value directly on the input (when available)\n // so that programatic manipulation updates the UI correctly\n if (this._input) {\n this._input.value = value;\n }\n }\n\n /**\n * Handles password visibility toggle button click\n *\n * @deprecated will be removed in the next major version, use `cds-password-input` instead\n */\n private togglePasswordVisibility() {\n this.type =\n this.type === INPUT_TYPE.PASSWORD ? INPUT_TYPE.TEXT : INPUT_TYPE.PASSWORD;\n }\n\n render() {\n const {\n disabled,\n enableCounter,\n helperText,\n hideLabel,\n inline,\n isFluid,\n invalid,\n invalidText,\n label,\n maxCount,\n readonly,\n required,\n size,\n type,\n warn,\n warnText,\n value,\n _handleInput: handleInput,\n _hasAILabel: hasAILabel,\n _handleSlotChange: handleSlotChange,\n } = this;\n\n const invalidIcon = iconLoader(WarningFilled16, {\n class: `${prefix}--text-input__invalid-icon`,\n });\n\n const warnIcon = iconLoader(WarningAltFilled16, {\n class: `${prefix}--text-input__invalid-icon ${prefix}--text-input__invalid-icon--warning`,\n });\n\n const normalizedProps: {\n disabled: boolean;\n invalid: boolean;\n warn: boolean;\n 'slot-name': string;\n 'slot-text': string;\n icon: ReturnType<typeof iconLoader>;\n } = {\n disabled: !readonly && disabled,\n invalid: !readonly && invalid,\n warn: !readonly && !invalid && warn,\n 'slot-name': '',\n 'slot-text': '',\n icon: null,\n };\n\n if (normalizedProps.invalid) {\n normalizedProps.icon = invalidIcon;\n normalizedProps['slot-name'] = 'invalid-text';\n normalizedProps['slot-text'] = invalidText;\n } else if (normalizedProps.warn) {\n normalizedProps.icon = warnIcon;\n normalizedProps['slot-name'] = 'warn-text';\n normalizedProps['slot-text'] = warnText;\n }\n\n const counterClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--text-input__label-counter`]: true,\n [`${prefix}--label--disabled`]: disabled,\n });\n\n const inputWrapperClasses = classMap({\n [`${prefix}--form-item`]: true,\n [`${prefix}--text-input-wrapper`]: true,\n [`${prefix}--text-input-wrapper--inline`]: inline,\n [`${prefix}--text-input-wrapper--readonly`]: readonly,\n [`${prefix}--text-input-wrapper--inline--invalid`]:\n inline && normalizedProps.invalid,\n });\n\n const inputClasses = classMap({\n [`${prefix}--text-input`]: true,\n [`${prefix}--text-input--invalid`]: normalizedProps.invalid,\n [`${prefix}--text-input--warning`]: normalizedProps.warn,\n [`${prefix}--text-input--${size}`]: size !== undefined, // TODO V12 - remove this class\n [`${prefix}--layout--size-${size}`]: size !== undefined,\n [`${prefix}--password-input`]: type === INPUT_TYPE.PASSWORD, // TODO: deprecated, remove in v12\n });\n\n const fieldOuterWrapperClasses = classMap({\n [`${prefix}--text-input__field-outer-wrapper`]: true,\n [`${prefix}--text-input__field-outer-wrapper--inline`]: inline,\n });\n\n const fieldWrapperClasses = classMap({\n [`${prefix}--text-input__field-wrapper`]: true,\n [`${prefix}--text-input__field-wrapper--warning`]: normalizedProps.warn,\n [`${prefix}--text-input__field-wrapper--decorator`]: hasAILabel,\n });\n\n const labelClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--visually-hidden`]: hideLabel,\n [`${prefix}--label--disabled`]: normalizedProps.disabled,\n [`${prefix}--label--inline`]: inline,\n });\n\n const helperTextClasses = classMap({\n [`${prefix}--form__helper-text`]: true,\n [`${prefix}--form__helper-text--disabled`]: normalizedProps.disabled,\n [`${prefix}--form__helper-text--inline`]: inline,\n });\n\n // TODO: deprecated, remove in v12\n const passwordIsVisible = type !== INPUT_TYPE.PASSWORD;\n const passwordVisibilityIcon = passwordIsVisible\n ? iconLoader(ViewOff16, { class: `${prefix}--icon-visibility-off` })\n : iconLoader(View16, { class: `${prefix}--icon-visibility-on` });\n\n // TODO: deprecated, remove in v12\n const passwordVisibilityToggleClasses = classMap({\n [`${prefix}--text-input--password__visibility__toggle`]: true,\n [`${prefix}--btn`]: true,\n [`${prefix}--btn--icon-only`]: true,\n [`${prefix}--tooltip__trigger`]: true,\n [`${prefix}--tooltip--a11y`]: true,\n [`${prefix}--btn--disabled`]: normalizedProps.disabled,\n [`${prefix}--tooltip--${this.tooltipDirection}`]: this.tooltipDirection,\n [`${prefix}--tooltip--align-${this.tooltipAlignment}`]:\n this.tooltipAlignment,\n });\n\n // TODO: deprecated, remove in v12\n const passwordButtonLabel = html`\n <span class=\"${prefix}--assistive-text\">\n ${passwordIsVisible ? this.hidePasswordLabel : this.showPasswordLabel}\n </span>\n `;\n\n // TODO: deprecated, remove in v12\n const passwordVisibilityButton = () => html`\n <button\n type=\"button\"\n class=\"${passwordVisibilityToggleClasses}\"\n ?disabled=\"${normalizedProps.disabled}\"\n @click=\"${this.togglePasswordVisibility}\">\n ${!normalizedProps.disabled ? passwordButtonLabel : null}\n ${passwordVisibilityIcon}\n </button>\n `;\n\n const textCount = value?.length;\n\n const counter =\n enableCounter && maxCount\n ? html` <label class=\"${counterClasses}\">\n <slot name=\"label-text\">${textCount}/${maxCount}</slot>\n </label>`\n : null;\n\n const labelWrapper = html`<div class=\"${prefix}--text-input__label-wrapper\">\n <label class=\"${labelClasses}\">\n <slot name=\"label-text\">${label}</slot>\n </label>\n ${counter}\n </div>`;\n\n const hasHelperText =\n helperText || (this._slotHelperTextNode?.assignedNodes().length ?? 0) > 0;\n\n const helper = html`<div\n class=\"${helperTextClasses}\"\n id=\"helper-text\"\n ?hidden=\"${normalizedProps.invalid ||\n normalizedProps.warn ||\n !hasHelperText}\">\n <slot\n name=\"helper-text\"\n @slotchange=\"${this._handleHelperTextSlotChange}\">\n ${helperText}\n </slot>\n </div>`;\n\n const validationMessage =\n normalizedProps.invalid || normalizedProps.warn\n ? html`<div\n class=\"${prefix}--form-requirement\"\n ?hidden=\"${!normalizedProps.invalid && !normalizedProps.warn}\">\n <slot name=\"${normalizedProps['slot-name']}\">\n ${normalizedProps['slot-text']}\n </slot>\n </div>`\n : null;\n\n return html`\n <div class=\"${inputWrapperClasses}\">\n ${!inline\n ? labelWrapper\n : html`<div class=\"${prefix}--text-input__label-helper-wrapper\">\n ${labelWrapper}\n </div>`}\n <div class=\"${fieldOuterWrapperClasses}\">\n <div class=\"${fieldWrapperClasses}\" ?data-invalid=\"${invalid}\">\n <input\n autocomplete=\"${this.autocomplete}\"\n ?autofocus=\"${this.autofocus}\"\n class=\"${inputClasses}\"\n ?data-invalid=\"${invalid}\"\n ?disabled=\"${disabled}\"\n ?aria-describedby=\"${hasHelperText ? 'helper-text' : undefined}\"\n id=\"input\"\n name=\"${ifNonEmpty(this.name)}\"\n pattern=\"${ifNonEmpty(this.pattern)}\"\n placeholder=\"${ifNonEmpty(this.placeholder)}\"\n ?readonly=\"${readonly}\"\n ?required=\"${required}\"\n type=\"${ifNonEmpty(type)}\"\n .value=\"${this._value}\"\n maxlength=\"${ifNonEmpty(maxCount)}\"\n @input=\"${handleInput}\" />\n ${normalizedProps.icon}\n <slot name=\"ai-label\" @slotchange=\"${handleSlotChange}\"></slot>\n <slot name=\"slug\" @slotchange=\"${handleSlotChange}\"></slot>\n ${this.showPasswordVisibilityToggle &&\n (type === INPUT_TYPE.PASSWORD || type === INPUT_TYPE.TEXT)\n ? passwordVisibilityButton()\n : null}\n ${isFluid\n ? html`<hr class=\"${prefix}--text-input__divider\" />`\n : null}\n ${isFluid && !inline ? validationMessage : null}\n </div>\n\n ${/* Non-fluid: validation and helper outside field wrapper */ ''}\n ${!isFluid && !inline ? validationMessage || helper : null}\n </div>\n ${inline && !isFluid\n ? html`<div class=\"${prefix}--text-input__label-helper-wrapper\">\n ${!isFluid ? validationMessage || helper : null}\n </div>`\n : null}\n </div>\n `;\n }\n\n updated() {\n this.toggleAttribute('ai-label', this._hasAILabel);\n const label = this.shadowRoot?.querySelector(\"slot[name='ai-label']\");\n\n if (label) {\n label?.classList.toggle(\n `${prefix}--slug--revert`,\n this.querySelector(`${prefix}-ai-label`)?.hasAttribute('revert-active')\n );\n } else {\n this.shadowRoot\n ?.querySelector(\"slot[name='slug']\")\n ?.classList.toggle(\n `${prefix}--slug--revert`,\n this.querySelector(`${prefix}-slug`)?.hasAttribute('revert-active')\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 static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles;\n}\n\nexport default CDSTextInput;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"text-input.js","names":["ifNonEmpty","styles","customElement"],"sources":["../../../src/components/text-input/text-input.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 } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport WarningFilled16 from '@carbon/icons/es/warning--filled/16.js';\nimport WarningAltFilled16 from '@carbon/icons/es/warning--alt--filled/16.js';\nimport View16 from '@carbon/icons/es/view/16.js';\nimport ViewOff16 from '@carbon/icons/es/view--off/16.js';\nimport FormMixin from '../../globals/mixins/form';\nimport ValidityMixin from '../../globals/mixins/validity';\nimport {\n INPUT_COLOR_SCHEME,\n INPUT_SIZE,\n INPUT_TOOLTIP_ALIGNMENT,\n INPUT_TOOLTIP_DIRECTION,\n INPUT_TYPE,\n} from './defs';\nimport styles from './text-input.scss?lit';\n\nexport {\n INPUT_COLOR_SCHEME,\n INPUT_SIZE,\n INPUT_TOOLTIP_ALIGNMENT,\n INPUT_TOOLTIP_DIRECTION,\n INPUT_TYPE,\n};\n\n/**\n * Text Input element. Supports all the usual attributes for textual input types\n *\n * @element cds-text-input\n * @slot helper-text - The helper text.\n * @slot label-text - The label text.\n * @slot validity-message - The validity message. If present and non-empty, this input shows the UI of its invalid state.\n */\n@customElement(`${prefix}-text-input`)\nclass CDSTextInput extends ValidityMixin(FormMixin(LitElement)) {\n /**\n * `true` if there is an AI Label.\n */\n protected _hasAILabel = false;\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleSlotChange({ 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 CDSTextInput).aiLabelItem\n ) ||\n // remove reference to slug in v12\n (elem as HTMLElement).matches(\n (this.constructor as typeof CDSTextInput).slugItem\n )\n : false\n );\n\n this._hasAILabel = Boolean(hasContent);\n (hasContent[0] as HTMLElement).setAttribute('size', 'mini');\n this.requestUpdate();\n }\n /**\n * The underlying input element\n */\n @query('input')\n protected _input!: HTMLInputElement;\n\n @query('slot[name=\"helper-text\"]')\n protected _slotHelperTextNode!: HTMLSlotElement;\n\n /**\n * The internal value.\n */\n protected _value = '';\n\n /**\n * Handles `oninput` event on the `input`.\n *\n * @param event The event.\n * @param event.target The event target.\n */\n protected _handleInput({ target }: Event) {\n this.value = (target as HTMLInputElement).value;\n }\n\n _handleFormdata(event: FormDataEvent) {\n const { formData } = event;\n const { disabled, name, value } = this;\n if (!disabled) {\n formData.append(name, value);\n }\n }\n\n protected _handleHelperTextSlotChange() {\n this.requestUpdate();\n }\n\n /**\n * May be any of the standard HTML autocomplete options\n */\n @property()\n autocomplete = '';\n\n /**\n * Sets the input to be focussed automatically on page load. Defaults to false\n */\n @property({ type: Boolean })\n autofocus = false;\n\n /**\n * Controls the disabled state of the input\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Specify whether to display the character counter\n */\n @property({ type: Boolean, attribute: 'enable-counter', reflect: true })\n enableCounter = false;\n\n /**\n * The helper text.\n */\n @property({ attribute: 'helper-text' })\n helperText = '';\n\n /**\n * Specify if the currently value is invalid.\n */\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n /**\n * Message which is displayed if the value is invalid.\n */\n @property({ attribute: 'invalid-text' })\n invalidText = '';\n\n /**\n * Max character count allowed for input. This is needed in order for enableCounter to display\n */\n @property({ type: Number, attribute: 'max-count', reflect: true })\n maxCount;\n\n /**\n * Specify whether the control is currently in warning state\n */\n @property({ type: Boolean, reflect: true })\n warn = false;\n\n /**\n * Provide the text that is displayed when the control is in warning state\n */\n @property({ attribute: 'warn-text' })\n warnText = '';\n\n /**\n * Specify whether you want the underlying label to be visually hidden\n */\n @property({ attribute: 'hide-label', type: Boolean, reflect: true })\n hideLabel = false;\n\n /**\n * Generic label that will be used as the textual representation of what this field is for\n */\n @property({ attribute: 'label' })\n label = '';\n\n /**\n * Name for the input in the `FormData`\n */\n @property()\n name = '';\n\n /**\n * Pattern to validate the input against for HTML validity checking\n */\n @property()\n pattern = '';\n\n /**\n * Value to display when the input has an empty `value`\n */\n @property({ reflect: true })\n placeholder = '';\n\n /**\n * Specify if the component should be read-only\n */\n @property({ type: Boolean, reflect: true })\n readonly = false;\n\n /**\n * Boolean property to set the required status\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * The special validity message for `required`.\n */\n @property({ attribute: 'required-validity-message' })\n requiredValidityMessage = 'Please fill out this field.';\n\n /**\n * \"Hide password\" tooltip text on password visibility toggle\n *\n * @deprecated will be removed in the next major version, use `cds-password-input` instead\n */\n @property()\n hidePasswordLabel = 'Hide password';\n\n /**\n * \"Show password\" tooltip text on password visibility toggle\n *\n * @deprecated will be removed in the next major version, use `cds-password-input` instead\n */\n @property()\n showPasswordLabel = 'Show password';\n\n /**\n * Boolean property to render password visibility toggle\n *\n * @deprecated will be removed in the next major version, use `cds-password-input` instead\n */\n @property({\n type: Boolean,\n attribute: 'show-password-visibility-toggle',\n reflect: true,\n })\n showPasswordVisibilityToggle = false;\n\n /**\n * The input box size.\n */\n @property({ reflect: true })\n size?: INPUT_SIZE;\n\n @property({ type: Boolean })\n isFluid = false;\n\n /**\n * true to use the inline version.\n */\n @property({ type: Boolean, reflect: true })\n inline = false;\n\n /**\n * Specify the alignment of the tooltip to the icon-only button.\n * Can be one of: start, center, or end.\n */\n @property()\n tooltipAlignment = INPUT_TOOLTIP_ALIGNMENT.CENTER;\n\n /**\n * Specify the direction of the tooltip for icon-only buttons.\n * Can be either top, right, bottom, or left.\n */\n @property()\n tooltipDirection = INPUT_TOOLTIP_DIRECTION.BOTTOM;\n\n /**\n * The type of the input. Can be one of the types listed in the INPUT_TYPE enum\n */\n @property({ reflect: true })\n type = INPUT_TYPE.TEXT;\n\n /**\n * The validity message. If present and non-empty, this input shows the UI of its invalid state.\n */\n @property({ attribute: 'validity-message' })\n validityMessage = '';\n\n /**\n * The value of the input.\n */\n @property({ reflect: true })\n get value() {\n // FIXME: Figure out how to deal with TS2611\n // once we have the input we can directly query for the value\n if (this._input) {\n return this._input.value;\n }\n // but before then _value will work fine\n return this._value;\n }\n\n set value(value) {\n const oldValue = this._value;\n this._value = value;\n // make sure that lit-element updates the right properties\n this.requestUpdate('value', oldValue);\n // we set the value directly on the input (when available)\n // so that programatic manipulation updates the UI correctly\n if (this._input) {\n this._input.value = value;\n }\n }\n\n /**\n * Handles password visibility toggle button click\n *\n * @deprecated will be removed in the next major version, use `cds-password-input` instead\n */\n private togglePasswordVisibility() {\n this.type =\n this.type === INPUT_TYPE.PASSWORD ? INPUT_TYPE.TEXT : INPUT_TYPE.PASSWORD;\n }\n\n render() {\n const {\n disabled,\n enableCounter,\n helperText,\n hideLabel,\n inline,\n isFluid,\n invalid,\n invalidText,\n label,\n maxCount,\n readonly,\n required,\n size,\n type,\n warn,\n warnText,\n value,\n _handleInput: handleInput,\n _hasAILabel: hasAILabel,\n _handleSlotChange: handleSlotChange,\n } = this;\n\n const invalidIcon = iconLoader(WarningFilled16, {\n class: `${prefix}--text-input__invalid-icon`,\n });\n\n const warnIcon = iconLoader(WarningAltFilled16, {\n class: `${prefix}--text-input__invalid-icon ${prefix}--text-input__invalid-icon--warning`,\n });\n\n const normalizedProps: {\n disabled: boolean;\n invalid: boolean;\n warn: boolean;\n 'slot-name': string;\n 'slot-text': string;\n icon: ReturnType<typeof iconLoader>;\n } = {\n disabled: !readonly && disabled,\n invalid: !readonly && invalid,\n warn: !readonly && !invalid && warn,\n 'slot-name': '',\n 'slot-text': '',\n icon: null,\n };\n\n if (normalizedProps.invalid) {\n normalizedProps.icon = invalidIcon;\n normalizedProps['slot-name'] = 'invalid-text';\n normalizedProps['slot-text'] = invalidText;\n } else if (normalizedProps.warn) {\n normalizedProps.icon = warnIcon;\n normalizedProps['slot-name'] = 'warn-text';\n normalizedProps['slot-text'] = warnText;\n }\n\n const counterClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--text-input__label-counter`]: true,\n [`${prefix}--label--disabled`]: disabled,\n });\n\n const inputWrapperClasses = classMap({\n [`${prefix}--form-item`]: true,\n [`${prefix}--text-input-wrapper`]: true,\n [`${prefix}--text-input-wrapper--inline`]: inline,\n [`${prefix}--text-input-wrapper--readonly`]: readonly,\n [`${prefix}--text-input-wrapper--inline--invalid`]:\n inline && normalizedProps.invalid,\n });\n\n const inputClasses = classMap({\n [`${prefix}--text-input`]: true,\n [`${prefix}--text-input--invalid`]: normalizedProps.invalid,\n [`${prefix}--text-input--warning`]: normalizedProps.warn,\n [`${prefix}--text-input--${size}`]: size !== undefined, // TODO V12 - remove this class\n [`${prefix}--layout--size-${size}`]: size !== undefined,\n [`${prefix}--password-input`]: type === INPUT_TYPE.PASSWORD, // TODO: deprecated, remove in v12\n });\n\n const fieldOuterWrapperClasses = classMap({\n [`${prefix}--text-input__field-outer-wrapper`]: true,\n [`${prefix}--text-input__field-outer-wrapper--inline`]: inline,\n });\n\n const fieldWrapperClasses = classMap({\n [`${prefix}--text-input__field-wrapper`]: true,\n [`${prefix}--text-input__field-wrapper--warning`]: normalizedProps.warn,\n [`${prefix}--text-input__field-wrapper--decorator`]: hasAILabel,\n });\n\n const labelClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--visually-hidden`]: hideLabel,\n [`${prefix}--label--disabled`]: normalizedProps.disabled,\n [`${prefix}--label--inline`]: inline,\n });\n\n const helperTextClasses = classMap({\n [`${prefix}--form__helper-text`]: true,\n [`${prefix}--form__helper-text--disabled`]: normalizedProps.disabled,\n [`${prefix}--form__helper-text--inline`]: inline,\n });\n\n // TODO: deprecated, remove in v12\n const passwordIsVisible = type !== INPUT_TYPE.PASSWORD;\n const passwordVisibilityIcon = passwordIsVisible\n ? iconLoader(ViewOff16, { class: `${prefix}--icon-visibility-off` })\n : iconLoader(View16, { class: `${prefix}--icon-visibility-on` });\n\n // TODO: deprecated, remove in v12\n const passwordVisibilityToggleClasses = classMap({\n [`${prefix}--text-input--password__visibility__toggle`]: true,\n [`${prefix}--btn`]: true,\n [`${prefix}--btn--icon-only`]: true,\n [`${prefix}--tooltip__trigger`]: true,\n [`${prefix}--tooltip--a11y`]: true,\n [`${prefix}--btn--disabled`]: normalizedProps.disabled,\n [`${prefix}--tooltip--${this.tooltipDirection}`]: this.tooltipDirection,\n [`${prefix}--tooltip--align-${this.tooltipAlignment}`]:\n this.tooltipAlignment,\n });\n\n // TODO: deprecated, remove in v12\n const passwordButtonLabel = html`\n <span class=\"${prefix}--assistive-text\">\n ${passwordIsVisible ? this.hidePasswordLabel : this.showPasswordLabel}\n </span>\n `;\n\n // TODO: deprecated, remove in v12\n const passwordVisibilityButton = () => html`\n <button\n type=\"button\"\n class=\"${passwordVisibilityToggleClasses}\"\n ?disabled=\"${normalizedProps.disabled}\"\n @click=\"${this.togglePasswordVisibility}\">\n ${!normalizedProps.disabled ? passwordButtonLabel : null}\n ${passwordVisibilityIcon}\n </button>\n `;\n\n const textCount = value?.length;\n\n const counter =\n enableCounter && maxCount\n ? html` <label class=\"${counterClasses}\">\n <slot name=\"label-text\">${textCount}/${maxCount}</slot>\n </label>`\n : null;\n\n const labelWrapper = html`<div class=\"${prefix}--text-input__label-wrapper\">\n <label class=\"${labelClasses}\">\n <slot name=\"label-text\">${label}</slot>\n </label>\n ${counter}\n </div>`;\n\n const hasHelperText =\n helperText || (this._slotHelperTextNode?.assignedNodes().length ?? 0) > 0;\n\n const helper = html`<div\n class=\"${helperTextClasses}\"\n id=\"helper-text\"\n ?hidden=\"${normalizedProps.invalid ||\n normalizedProps.warn ||\n !hasHelperText}\">\n <slot\n name=\"helper-text\"\n @slotchange=\"${this._handleHelperTextSlotChange}\">\n ${helperText}\n </slot>\n </div>`;\n\n const validationMessage =\n normalizedProps.invalid || normalizedProps.warn\n ? html`<div\n class=\"${prefix}--form-requirement\"\n ?hidden=\"${!normalizedProps.invalid && !normalizedProps.warn}\">\n <slot name=\"${normalizedProps['slot-name']}\">\n ${normalizedProps['slot-text']}\n </slot>\n </div>`\n : null;\n\n return html`\n <div class=\"${inputWrapperClasses}\">\n ${!inline\n ? labelWrapper\n : html`<div class=\"${prefix}--text-input__label-helper-wrapper\">\n ${labelWrapper}\n </div>`}\n <div class=\"${fieldOuterWrapperClasses}\">\n <div class=\"${fieldWrapperClasses}\" ?data-invalid=\"${invalid}\">\n <input\n autocomplete=\"${this.autocomplete}\"\n ?autofocus=\"${this.autofocus}\"\n class=\"${inputClasses}\"\n ?data-invalid=\"${invalid}\"\n ?disabled=\"${disabled}\"\n ?aria-describedby=\"${hasHelperText ? 'helper-text' : undefined}\"\n id=\"input\"\n name=\"${ifNonEmpty(this.name)}\"\n pattern=\"${ifNonEmpty(this.pattern)}\"\n placeholder=\"${ifNonEmpty(this.placeholder)}\"\n ?readonly=\"${readonly}\"\n ?required=\"${required}\"\n type=\"${ifNonEmpty(type)}\"\n .value=\"${this._value}\"\n maxlength=\"${ifNonEmpty(maxCount)}\"\n @input=\"${handleInput}\" />\n ${normalizedProps.icon}\n <slot name=\"ai-label\" @slotchange=\"${handleSlotChange}\"></slot>\n <slot name=\"slug\" @slotchange=\"${handleSlotChange}\"></slot>\n ${this.showPasswordVisibilityToggle &&\n (type === INPUT_TYPE.PASSWORD || type === INPUT_TYPE.TEXT)\n ? passwordVisibilityButton()\n : null}\n ${isFluid\n ? html`<hr class=\"${prefix}--text-input__divider\" />`\n : null}\n ${isFluid && !inline ? validationMessage : null}\n </div>\n\n ${/* Non-fluid: validation and helper outside field wrapper */ ''}\n ${!isFluid && !inline ? validationMessage || helper : null}\n </div>\n ${inline && !isFluid\n ? html`<div class=\"${prefix}--text-input__label-helper-wrapper\">\n ${!isFluid ? validationMessage || helper : null}\n </div>`\n : null}\n </div>\n `;\n }\n\n updated() {\n this.toggleAttribute('ai-label', this._hasAILabel);\n const label = this.shadowRoot?.querySelector(\"slot[name='ai-label']\");\n\n if (label) {\n label?.classList.toggle(\n `${prefix}--slug--revert`,\n this.querySelector(`${prefix}-ai-label`)?.hasAttribute('revert-active')\n );\n } else {\n this.shadowRoot\n ?.querySelector(\"slot[name='slug']\")\n ?.classList.toggle(\n `${prefix}--slug--revert`,\n this.querySelector(`${prefix}-slug`)?.hasAttribute('revert-active')\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 static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles;\n}\n\nexport default CDSTextInput;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","names":[],"sources":["../../../../src/components/textarea/stories/helpers.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { action } from 'storybook/actions';\n\nconst createProps = ({ boolean, textNullable, number }) => ({\n cols: number('Number of columns (cols)', 0),\n disabled: boolean('Disabled (disabled)', false),\n enableCounter: boolean('Enable character counter (enable-counter)', true),\n helperText: textNullable('Helper text (helper-text)', 'Textarea helper text'),\n hideLabel: boolean('Hide label (hide-label)', false),\n invalid: boolean('Invalid (invalid)', false),\n invalidText: textNullable('Invalid text (invalid-text)', 'Invalid text'),\n label: textNullable('Label (label)', 'Textarea label'),\n maxCount: number('Max character count (max-count', 500),\n onInput: action('input'),\n placeholder: textNullable('Placeholder text (placeholder)', ''),\n readonly: boolean('Read only (readonly)', false),\n rows: number('Number of rows (rows)', 4),\n value: textNullable('Value (value)', ''),\n warn: boolean('Warn (warn)', false),\n warnText: textNullable('Warn text (warn-text)', 'This is a warning message.'),\n});\n\nexport default createProps;\n"],"mappings":";;;;;;;;;;;;;;;AASA,MAAM,eAAe,EAAE,SAAS,cAAc,cAAc;CAC1D,MAAM,OAAO,4BAA4B,
|
|
1
|
+
{"version":3,"file":"helpers.js","names":[],"sources":["../../../../src/components/textarea/stories/helpers.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { action } from 'storybook/actions';\n\nconst createProps = ({ boolean, textNullable, number }) => ({\n cols: number('Number of columns (cols)', 0),\n disabled: boolean('Disabled (disabled)', false),\n enableCounter: boolean('Enable character counter (enable-counter)', true),\n helperText: textNullable('Helper text (helper-text)', 'Textarea helper text'),\n hideLabel: boolean('Hide label (hide-label)', false),\n invalid: boolean('Invalid (invalid)', false),\n invalidText: textNullable('Invalid text (invalid-text)', 'Invalid text'),\n label: textNullable('Label (label)', 'Textarea label'),\n maxCount: number('Max character count (max-count', 500),\n onInput: action('input'),\n placeholder: textNullable('Placeholder text (placeholder)', ''),\n readonly: boolean('Read only (readonly)', false),\n rows: number('Number of rows (rows)', 4),\n value: textNullable('Value (value)', ''),\n warn: boolean('Warn (warn)', false),\n warnText: textNullable('Warn text (warn-text)', 'This is a warning message.'),\n});\n\nexport default createProps;\n"],"mappings":";;;;;;;;;;;;;;;AASA,MAAM,eAAe,EAAE,SAAS,cAAc,cAAc;CAC1D,MAAM,OAAO,4BAA4B,CAAC;CAC1C,UAAU,QAAQ,uBAAuB,KAAK;CAC9C,eAAe,QAAQ,6CAA6C,IAAI;CACxE,YAAY,aAAa,6BAA6B,sBAAsB;CAC5E,WAAW,QAAQ,2BAA2B,KAAK;CACnD,SAAS,QAAQ,qBAAqB,KAAK;CAC3C,aAAa,aAAa,+BAA+B,cAAc;CACvE,OAAO,aAAa,iBAAiB,gBAAgB;CACrD,UAAU,OAAO,kCAAkC,GAAG;CACtD,SAAS,OAAO,OAAO;CACvB,aAAa,aAAa,kCAAkC,EAAE;CAC9D,UAAU,QAAQ,wBAAwB,KAAK;CAC/C,MAAM,OAAO,yBAAyB,CAAC;CACvC,OAAO,aAAa,iBAAiB,EAAE;CACvC,MAAM,QAAQ,eAAe,KAAK;CAClC,UAAU,aAAa,yBAAyB,4BAA4B;AAC9E"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
import "../../globals/settings.js";
|
|
9
9
|
import { carbonElement } from "../../globals/decorators/carbon-element.js";
|
|
10
|
-
import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.
|
|
10
|
+
import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.135.0/helpers/esm/decorate.js";
|
|
11
11
|
import textarea_default from "./textarea.scss.js";
|
|
12
12
|
import { LitElement, html } from "lit";
|
|
13
13
|
import { property } from "lit/decorators.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textarea-skeleton.js","names":["styles","customElement"],"sources":["../../../src/components/textarea/textarea-skeleton.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './textarea.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * @element cds-textarea-skeleton\n *\n * Skeleton of text area.\n */\n@customElement(`${prefix}-textarea-skeleton`)\nclass CDSTextareaSkeleton extends LitElement {\n /**\n * Specify whether the label should be hidden, or not\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-label' })\n hideLabel = false;\n\n render() {\n const { hideLabel } = this;\n return html`\n ${hideLabel\n ? ''\n : html`<span class=\"${prefix}--label ${prefix}--skeleton\"></span>`}\n <div class=\"${prefix}--skeleton ${prefix}--text-area\"></div>\n `;\n }\n\n static styles = styles;\n}\n\nexport default CDSTextareaSkeleton;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,IAAA,sBAAA,MACM,4BAA4B,WAAW;;;mBAK/B;;CAEZ,SAAS;EACP,MAAM,EAAE,cAAc;
|
|
1
|
+
{"version":3,"file":"textarea-skeleton.js","names":["styles","customElement"],"sources":["../../../src/components/textarea/textarea-skeleton.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './textarea.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * @element cds-textarea-skeleton\n *\n * Skeleton of text area.\n */\n@customElement(`${prefix}-textarea-skeleton`)\nclass CDSTextareaSkeleton extends LitElement {\n /**\n * Specify whether the label should be hidden, or not\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-label' })\n hideLabel = false;\n\n render() {\n const { hideLabel } = this;\n return html`\n ${hideLabel\n ? ''\n : html`<span class=\"${prefix}--label ${prefix}--skeleton\"></span>`}\n <div class=\"${prefix}--skeleton ${prefix}--text-area\"></div>\n `;\n }\n\n static styles = styles;\n}\n\nexport default CDSTextareaSkeleton;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,IAAA,sBAAA,MACM,4BAA4B,WAAW;;;mBAK/B;;CAEZ,SAAS;EACP,MAAM,EAAE,cAAc;EACtB,OAAO,IAAI;QACP,YACE,KACA,IAAI,gBAAA,MAAuB,UAAA,MAAiB,qBAAqB;0BAChD,aAAA,MAAoB;;CAE7C;;gBAEgBA;;AAClB;YAdG,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,WAAW;AAAa,CAAC,CAAA,GAAA,oBAAA,WAAA,aAAA,KAAA,CAAA;kCALpEC,cAAc,uBAA6B,CAAA,GAAA,mBAAA;AAqB5C,IAAA,4BAAe"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
import "../../globals/settings.js";
|
|
9
9
|
import { carbonElement } from "../../globals/decorators/carbon-element.js";
|
|
10
|
-
import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.
|
|
10
|
+
import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.135.0/helpers/esm/decorate.js";
|
|
11
11
|
import iconLoader from "../../globals/internal/icon-loader.js";
|
|
12
12
|
import if_non_empty_default from "../../globals/directives/if-non-empty.js";
|
|
13
13
|
import text_input_default from "../text-input/text-input.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textarea.js","names":["CDSTextInput","ifNonEmpty","styles","customElement"],"sources":["../../../src/components/textarea/textarea.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { prefix } from '../../globals/settings';\nimport WarningFilled16 from '@carbon/icons/es/warning--filled/16.js';\nimport WarningAltFilled16 from '@carbon/icons/es/warning--alt--filled/16.js';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport CDSTextInput from '../text-input/text-input';\nimport styles from './textarea.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { iconLoader } from '../../globals/internal/icon-loader';\n\n/**\n * Text area.\n *\n * @element cds-textarea\n * @slot helper-text - The helper text.\n * @slot label-text - The label text.\n * @slot validity-message - The validity message. If present and non-empty, this input shows the UI of its invalid state.\n */\n@customElement(`${prefix}-textarea`)\nclass CDSTextarea extends CDSTextInput {\n /**\n * Manually handles maxCount for counterMode = 'word'\n * @param event The keyboard event.\n */\n protected _onKeyDown(evt: KeyboardEvent) {\n if (!this.disabled && this.enableCounter && this.counterMode === 'word') {\n const currentWordCount = this.value?.match(/\\p{L}+/gu)?.length || 0;\n if (\n (this.maxCount &&\n currentWordCount >= this.maxCount &&\n evt.key === ' ') ||\n (this.maxCount &&\n currentWordCount >= this.maxCount &&\n evt.key === 'Enter')\n ) {\n evt.preventDefault();\n }\n }\n }\n\n /**\n * Handles `onPaste` event on the `<input>`.\n * Manually handles maxCount for counterMode = 'word' when\n * the user is pasting text\n *\n * @param event The clipboard event.\n */\n protected _onPaste(evt: ClipboardEvent) {\n if (\n this.counterMode === 'word' &&\n this.enableCounter &&\n typeof this.maxCount !== 'undefined'\n ) {\n const existingWords: string[] =\n this._textarea.value.match(/\\p{L}+/gu) || [];\n const pastedWords: string[] =\n evt.clipboardData?.getData('Text').match(/\\p{L}+/gu) || [];\n\n const totalWords = existingWords.length + pastedWords.length;\n\n if (totalWords > this.maxCount) {\n evt.preventDefault();\n\n const allowedWords = existingWords\n .concat(pastedWords)\n .slice(0, this.maxCount);\n\n this._textarea.value = allowedWords.join(' ');\n this._textarea.dispatchEvent(\n new InputEvent('input', {\n inputType: 'insertFromPaste',\n data: allowedWords.join(' '),\n bubbles: true,\n })\n );\n }\n }\n }\n /**\n * Handles `oninput` event on the `<input>`.\n *\n * @param event The event.\n * @param event.target The event target.\n */\n protected _handleInput({ target }: Event) {\n this.value = (target as HTMLTextAreaElement).value;\n }\n\n /**\n * The number of columns for the textarea to show by default\n */\n @property({ type: Number })\n cols;\n\n /**\n * Specify whether the textarea is fluid or not\n */\n @property({ type: Boolean })\n isFluid = false;\n\n /**\n * Specify the method used for calculating the counter number\n */\n @property({\n type: String,\n reflect: true,\n hasChanged(newVal: string, oldVal: string) {\n if ((newVal === 'character' || newVal === 'word') && newVal !== oldVal) {\n return true;\n }\n return false;\n },\n attribute: 'counter-mode',\n })\n counterMode: 'character' | 'word' = 'character';\n\n /**\n * ID to link the `label` and `textarea`\n */\n @property()\n id = '';\n\n /**\n * Pattern to validate the textarea against for HTML validity checking\n */\n @property()\n pattern = '';\n\n /**\n * Boolean property to set the required status\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * The number of rows for the textarea to show by default\n */\n @property()\n rows = 4;\n\n /**\n * Get a reference to the underlying textarea so we can directly apply values.\n * This lets us fixe a bug where after a user would clear text, the value wouldn't update programmatically\n */\n @query('textarea')\n protected _textarea!: HTMLTextAreaElement;\n\n /**\n * The previous counterMode selected. This lets the counterMode state update\n * when the user toggles between both modes.\n */\n private _prevCounterMode: 'character' | 'word' = this.counterMode;\n\n /**\n * Observes the textarea wrapper’s size to re-measure helper/invalid/warn text width when\n * cols is updated\n */\n private _resizeObserver?: ResizeObserver;\n\n render() {\n const { enableCounter, maxCount } = this;\n\n const textCount = this.value?.length ?? 0;\n const wordCount = this.value?.match(/\\p{L}+/gu)?.length || 0;\n\n const invalidIcon = iconLoader(WarningFilled16, {\n class: `${prefix}--text-area__invalid-icon`,\n });\n\n const warnIcon = iconLoader(WarningAltFilled16, {\n class: `${prefix}--text-area__invalid-icon ${prefix}--text-area__invalid-icon--warning`,\n });\n\n const textareaClasses = classMap({\n [`${prefix}--text-area`]: true,\n [`${prefix}--text-area--warn`]: this.warn,\n [`${prefix}--text-area--invalid`]: this.invalid,\n [`${prefix}--text-area__wrapper--decorator`]: this._hasAILabel,\n });\n\n const textareaWrapperClasses = classMap({\n [`${prefix}--text-area__wrapper`]: true,\n [`${prefix}--text-area__wrapper--cols`]: this.cols,\n [`${prefix}--text-area__wrapper--warn`]: this.warn,\n [`${prefix}--text-area__wrapper--readonly`]: this.readonly,\n });\n\n const labelClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--visually-hidden`]: this.hideLabel,\n [`${prefix}--label--disabled`]: this.disabled,\n });\n\n const counterClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--label--disabled`]: this.disabled,\n [`${prefix}--text-area__label-counter`]: true,\n });\n\n const helperTextClasses = classMap({\n [`${prefix}--form__helper-text`]: true,\n [`${prefix}--form__helper-text--disabled`]: this.disabled,\n });\n\n const counter =\n enableCounter && maxCount\n ? html` <label class=\"${counterClasses}\">\n <slot name=\"label-text\"\n >${this.counterMode === 'word'\n ? wordCount\n : textCount}/${maxCount}</slot\n >\n </label>`\n : null;\n\n const icon = () => {\n if (this.invalid) {\n return invalidIcon;\n } else if (this.warn && !this.invalid) {\n return warnIcon;\n }\n return null;\n };\n\n const helper = html`\n <div class=\"${helperTextClasses}\" id=\"helper-text\">\n <slot name=\"helper-text\">${this.helperText}</slot>\n </div>\n `;\n\n const normalizedProps = {\n invalid: this.invalid,\n warn: this.warn,\n 'slot-name': this.invalid ? 'invalid-text' : 'warn-text',\n 'slot-text': this.invalid ? this.invalidText : this.warnText,\n };\n\n const validationMessage = html`\n <div\n class=\"${prefix}--form-requirement\"\n ?hidden=\"${!normalizedProps.invalid && !normalizedProps.warn}\">\n <slot name=\"${normalizedProps['slot-name']}\">\n ${normalizedProps['slot-text']} ${this.isFluid ? icon() : null}\n </slot>\n </div>\n `;\n\n return html`\n <div class=\"${prefix}--text-area__label-wrapper\">\n <label class=\"${labelClasses}\" for=\"input\">\n <slot name=\"label-text\"> ${this.label} </slot>\n </label>\n ${counter}\n </div>\n <div class=\"${textareaWrapperClasses}\" ?data-invalid=\"${this.invalid}\">\n ${!this.isFluid ? icon() : null}\n <textarea\n autocomplete=\"${this.autocomplete}\"\n ?autofocus=\"${this.autofocus}\"\n class=\"${textareaClasses}\"\n cols=\"${ifDefined(this.cols)}\"\n ?data-invalid=\"${this.invalid}\"\n ?disabled=\"${this.disabled}\"\n id=\"input\"\n name=\"${ifNonEmpty(this.name)}\"\n pattern=\"${ifNonEmpty(this.pattern)}\"\n placeholder=\"${ifNonEmpty(this.placeholder)}\"\n ?readonly=\"${this.readonly}\"\n ?required=\"${this.required}\"\n rows=\"${ifDefined(this.rows)}\"\n .value=\"${this.value}\"\n maxlength=\"${this.counterMode === 'character'\n ? ifNonEmpty(this.maxCount)\n : ''}\"\n @keydown=\"${this._onKeyDown}\"\n @paste=\"${this._onPaste}\"\n @input=\"${this._handleInput}\"></textarea>\n <slot name=\"ai-label\" @slotchange=\"${this._handleSlotChange}\"></slot>\n <slot name=\"slug\" @slotchange=\"${this._handleSlotChange}\"></slot>\n ${this.isFluid\n ? html`\n <hr class=\"${prefix}--text-area__divider\" />\n ${validationMessage}\n `\n : null}\n </div>\n ${/* Non-fluid: validation and helper outside field wrapper */ ''}\n ${!this.isFluid ? html` ${helper} ${validationMessage} ` : null}\n `;\n }\n updated(): void {\n super.updated?.();\n if (this.counterMode !== this._prevCounterMode) {\n const textarea = this._textarea;\n if (textarea) {\n if (this.counterMode === 'character') {\n textarea.setAttribute('maxlength', String(this.maxCount));\n } else {\n textarea.removeAttribute('maxlength');\n }\n }\n this._prevCounterMode = this.counterMode;\n }\n\n const wrapper = this.shadowRoot?.querySelector<HTMLElement>(\n `.${prefix}--text-area__wrapper`\n );\n if (!wrapper) return;\n\n this._resizeObserver = new ResizeObserver(() => {\n this._measureWrapper();\n });\n this._resizeObserver.observe(wrapper);\n }\n\n /**\n * Measures the width of the wrapper and applies that to the max-width of the\n * helper-text and invalid/warn-text\n */\n private _measureWrapper() {\n const wrapper = this.shadowRoot?.querySelector<HTMLElement>(\n `.${prefix}--text-area__wrapper`\n );\n\n const wrapperWidth = wrapper?.scrollWidth;\n\n const helper = this.shadowRoot?.querySelector<HTMLElement>(\n `.${prefix}--form__helper-text`\n );\n const requirement = this.shadowRoot?.querySelector<HTMLElement>(\n `.${prefix}--form-requirement`\n );\n [helper, requirement].forEach((el) => {\n if (el) {\n el.style.maxWidth = `${wrapperWidth}px`;\n el.style.overflowWrap = 'break-word';\n }\n });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback?.();\n this._resizeObserver?.disconnect();\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles;\n}\n\nexport default CDSTextarea;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"textarea.js","names":["CDSTextInput","ifNonEmpty","styles","customElement"],"sources":["../../../src/components/textarea/textarea.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { prefix } from '../../globals/settings';\nimport WarningFilled16 from '@carbon/icons/es/warning--filled/16.js';\nimport WarningAltFilled16 from '@carbon/icons/es/warning--alt--filled/16.js';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport CDSTextInput from '../text-input/text-input';\nimport styles from './textarea.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { iconLoader } from '../../globals/internal/icon-loader';\n\n/**\n * Text area.\n *\n * @element cds-textarea\n * @slot helper-text - The helper text.\n * @slot label-text - The label text.\n * @slot validity-message - The validity message. If present and non-empty, this input shows the UI of its invalid state.\n */\n@customElement(`${prefix}-textarea`)\nclass CDSTextarea extends CDSTextInput {\n /**\n * Manually handles maxCount for counterMode = 'word'\n * @param event The keyboard event.\n */\n protected _onKeyDown(evt: KeyboardEvent) {\n if (!this.disabled && this.enableCounter && this.counterMode === 'word') {\n const currentWordCount = this.value?.match(/\\p{L}+/gu)?.length || 0;\n if (\n (this.maxCount &&\n currentWordCount >= this.maxCount &&\n evt.key === ' ') ||\n (this.maxCount &&\n currentWordCount >= this.maxCount &&\n evt.key === 'Enter')\n ) {\n evt.preventDefault();\n }\n }\n }\n\n /**\n * Handles `onPaste` event on the `<input>`.\n * Manually handles maxCount for counterMode = 'word' when\n * the user is pasting text\n *\n * @param event The clipboard event.\n */\n protected _onPaste(evt: ClipboardEvent) {\n if (\n this.counterMode === 'word' &&\n this.enableCounter &&\n typeof this.maxCount !== 'undefined'\n ) {\n const existingWords: string[] =\n this._textarea.value.match(/\\p{L}+/gu) || [];\n const pastedWords: string[] =\n evt.clipboardData?.getData('Text').match(/\\p{L}+/gu) || [];\n\n const totalWords = existingWords.length + pastedWords.length;\n\n if (totalWords > this.maxCount) {\n evt.preventDefault();\n\n const allowedWords = existingWords\n .concat(pastedWords)\n .slice(0, this.maxCount);\n\n this._textarea.value = allowedWords.join(' ');\n this._textarea.dispatchEvent(\n new InputEvent('input', {\n inputType: 'insertFromPaste',\n data: allowedWords.join(' '),\n bubbles: true,\n })\n );\n }\n }\n }\n /**\n * Handles `oninput` event on the `<input>`.\n *\n * @param event The event.\n * @param event.target The event target.\n */\n protected _handleInput({ target }: Event) {\n this.value = (target as HTMLTextAreaElement).value;\n }\n\n /**\n * The number of columns for the textarea to show by default\n */\n @property({ type: Number })\n cols;\n\n /**\n * Specify whether the textarea is fluid or not\n */\n @property({ type: Boolean })\n isFluid = false;\n\n /**\n * Specify the method used for calculating the counter number\n */\n @property({\n type: String,\n reflect: true,\n hasChanged(newVal: string, oldVal: string) {\n if ((newVal === 'character' || newVal === 'word') && newVal !== oldVal) {\n return true;\n }\n return false;\n },\n attribute: 'counter-mode',\n })\n counterMode: 'character' | 'word' = 'character';\n\n /**\n * ID to link the `label` and `textarea`\n */\n @property()\n id = '';\n\n /**\n * Pattern to validate the textarea against for HTML validity checking\n */\n @property()\n pattern = '';\n\n /**\n * Boolean property to set the required status\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * The number of rows for the textarea to show by default\n */\n @property()\n rows = 4;\n\n /**\n * Get a reference to the underlying textarea so we can directly apply values.\n * This lets us fixe a bug where after a user would clear text, the value wouldn't update programmatically\n */\n @query('textarea')\n protected _textarea!: HTMLTextAreaElement;\n\n /**\n * The previous counterMode selected. This lets the counterMode state update\n * when the user toggles between both modes.\n */\n private _prevCounterMode: 'character' | 'word' = this.counterMode;\n\n /**\n * Observes the textarea wrapper’s size to re-measure helper/invalid/warn text width when\n * cols is updated\n */\n private _resizeObserver?: ResizeObserver;\n\n render() {\n const { enableCounter, maxCount } = this;\n\n const textCount = this.value?.length ?? 0;\n const wordCount = this.value?.match(/\\p{L}+/gu)?.length || 0;\n\n const invalidIcon = iconLoader(WarningFilled16, {\n class: `${prefix}--text-area__invalid-icon`,\n });\n\n const warnIcon = iconLoader(WarningAltFilled16, {\n class: `${prefix}--text-area__invalid-icon ${prefix}--text-area__invalid-icon--warning`,\n });\n\n const textareaClasses = classMap({\n [`${prefix}--text-area`]: true,\n [`${prefix}--text-area--warn`]: this.warn,\n [`${prefix}--text-area--invalid`]: this.invalid,\n [`${prefix}--text-area__wrapper--decorator`]: this._hasAILabel,\n });\n\n const textareaWrapperClasses = classMap({\n [`${prefix}--text-area__wrapper`]: true,\n [`${prefix}--text-area__wrapper--cols`]: this.cols,\n [`${prefix}--text-area__wrapper--warn`]: this.warn,\n [`${prefix}--text-area__wrapper--readonly`]: this.readonly,\n });\n\n const labelClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--visually-hidden`]: this.hideLabel,\n [`${prefix}--label--disabled`]: this.disabled,\n });\n\n const counterClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--label--disabled`]: this.disabled,\n [`${prefix}--text-area__label-counter`]: true,\n });\n\n const helperTextClasses = classMap({\n [`${prefix}--form__helper-text`]: true,\n [`${prefix}--form__helper-text--disabled`]: this.disabled,\n });\n\n const counter =\n enableCounter && maxCount\n ? html` <label class=\"${counterClasses}\">\n <slot name=\"label-text\"\n >${this.counterMode === 'word'\n ? wordCount\n : textCount}/${maxCount}</slot\n >\n </label>`\n : null;\n\n const icon = () => {\n if (this.invalid) {\n return invalidIcon;\n } else if (this.warn && !this.invalid) {\n return warnIcon;\n }\n return null;\n };\n\n const helper = html`\n <div class=\"${helperTextClasses}\" id=\"helper-text\">\n <slot name=\"helper-text\">${this.helperText}</slot>\n </div>\n `;\n\n const normalizedProps = {\n invalid: this.invalid,\n warn: this.warn,\n 'slot-name': this.invalid ? 'invalid-text' : 'warn-text',\n 'slot-text': this.invalid ? this.invalidText : this.warnText,\n };\n\n const validationMessage = html`\n <div\n class=\"${prefix}--form-requirement\"\n ?hidden=\"${!normalizedProps.invalid && !normalizedProps.warn}\">\n <slot name=\"${normalizedProps['slot-name']}\">\n ${normalizedProps['slot-text']} ${this.isFluid ? icon() : null}\n </slot>\n </div>\n `;\n\n return html`\n <div class=\"${prefix}--text-area__label-wrapper\">\n <label class=\"${labelClasses}\" for=\"input\">\n <slot name=\"label-text\"> ${this.label} </slot>\n </label>\n ${counter}\n </div>\n <div class=\"${textareaWrapperClasses}\" ?data-invalid=\"${this.invalid}\">\n ${!this.isFluid ? icon() : null}\n <textarea\n autocomplete=\"${this.autocomplete}\"\n ?autofocus=\"${this.autofocus}\"\n class=\"${textareaClasses}\"\n cols=\"${ifDefined(this.cols)}\"\n ?data-invalid=\"${this.invalid}\"\n ?disabled=\"${this.disabled}\"\n id=\"input\"\n name=\"${ifNonEmpty(this.name)}\"\n pattern=\"${ifNonEmpty(this.pattern)}\"\n placeholder=\"${ifNonEmpty(this.placeholder)}\"\n ?readonly=\"${this.readonly}\"\n ?required=\"${this.required}\"\n rows=\"${ifDefined(this.rows)}\"\n .value=\"${this.value}\"\n maxlength=\"${this.counterMode === 'character'\n ? ifNonEmpty(this.maxCount)\n : ''}\"\n @keydown=\"${this._onKeyDown}\"\n @paste=\"${this._onPaste}\"\n @input=\"${this._handleInput}\"></textarea>\n <slot name=\"ai-label\" @slotchange=\"${this._handleSlotChange}\"></slot>\n <slot name=\"slug\" @slotchange=\"${this._handleSlotChange}\"></slot>\n ${this.isFluid\n ? html`\n <hr class=\"${prefix}--text-area__divider\" />\n ${validationMessage}\n `\n : null}\n </div>\n ${/* Non-fluid: validation and helper outside field wrapper */ ''}\n ${!this.isFluid ? html` ${helper} ${validationMessage} ` : null}\n `;\n }\n updated(): void {\n super.updated?.();\n if (this.counterMode !== this._prevCounterMode) {\n const textarea = this._textarea;\n if (textarea) {\n if (this.counterMode === 'character') {\n textarea.setAttribute('maxlength', String(this.maxCount));\n } else {\n textarea.removeAttribute('maxlength');\n }\n }\n this._prevCounterMode = this.counterMode;\n }\n\n const wrapper = this.shadowRoot?.querySelector<HTMLElement>(\n `.${prefix}--text-area__wrapper`\n );\n if (!wrapper) return;\n\n this._resizeObserver = new ResizeObserver(() => {\n this._measureWrapper();\n });\n this._resizeObserver.observe(wrapper);\n }\n\n /**\n * Measures the width of the wrapper and applies that to the max-width of the\n * helper-text and invalid/warn-text\n */\n private _measureWrapper() {\n const wrapper = this.shadowRoot?.querySelector<HTMLElement>(\n `.${prefix}--text-area__wrapper`\n );\n\n const wrapperWidth = wrapper?.scrollWidth;\n\n const helper = this.shadowRoot?.querySelector<HTMLElement>(\n `.${prefix}--form__helper-text`\n );\n const requirement = this.shadowRoot?.querySelector<HTMLElement>(\n `.${prefix}--form-requirement`\n );\n [helper, requirement].forEach((el) => {\n if (el) {\n el.style.maxWidth = `${wrapperWidth}px`;\n el.style.overflowWrap = 'break-word';\n }\n });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback?.();\n this._resizeObserver?.disconnect();\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles;\n}\n\nexport default CDSTextarea;\n"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
import "../../globals/settings.js";
|
|
9
9
|
import { carbonElement } from "../../globals/decorators/carbon-element.js";
|
|
10
|
-
import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.
|
|
10
|
+
import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.135.0/helpers/esm/decorate.js";
|
|
11
11
|
import iconLoader from "../../globals/internal/icon-loader.js";
|
|
12
12
|
import link_default from "../link/link.js";
|
|
13
13
|
import { isFeatureFlagEnabled } from "../feature-flags/index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clickable-tile.js","names":["CDSLink","styles","customElement"],"sources":["../../../src/components/tile/clickable-tile.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html } from 'lit';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport CDSLink from '../link/link';\nimport { TILE_COLOR_SCHEME } from './defs';\nimport styles from './tile.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport AILabel24 from '@carbon/icons/es/ai-label/24.js';\nimport ArrowRight16 from '@carbon/icons/es/arrow--right/16.js';\nimport Error16 from '@carbon/icons/es/error/16.js';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport { isFeatureFlagEnabled } from '../feature-flags';\n\n/**\n * Clickable tile.\n *\n * @element cds-clickable-tile\n */\n@customElement(`${prefix}-clickable-tile`)\nclass CDSClickableTile extends CDSLink {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452\n protected get _classes(): any {\n const { colorScheme, disabled, hasRoundedCorners, aiLabel, slug } = this;\n return classMap({\n [`${prefix}--link`]: true,\n [`${prefix}--link--disabled`]: disabled,\n [`${prefix}--tile`]: true,\n [`${prefix}--tile--clickable`]: true,\n [`${prefix}--tile--${colorScheme}`]: colorScheme,\n [`${prefix}--tile--slug-rounded`]: (aiLabel || slug) && hasRoundedCorners,\n });\n }\n\n /**\n * The color scheme.\n *\n * @default\n */\n @property({ attribute: 'color-scheme', reflect: true })\n colorScheme = TILE_COLOR_SCHEME.REGULAR;\n\n /**\n * The a11y role for `<a>`.\n */\n @property({ attribute: 'link-role' })\n linkRole = 'button';\n\n /**\n * Specify if the `ClickableTile` component should be rendered with rounded corners.\n * Only valid when `ai-label` prop is present\n */\n @property({ type: Boolean, attribute: 'has-rounded-corners' })\n hasRoundedCorners = false;\n\n @property({ type: Boolean, attribute: 'ai-label' })\n aiLabel = false;\n\n /**\n * deprecated - remove in v12\n */\n @property({ type: Boolean })\n slug = false;\n\n /**\n * If using `slug`, set `ai-label` attribute to true so\n * the styles are applied for slug as well\n *\n * remove in v12\n */\n connectedCallback() {\n if (this.slug) {\n this.setAttribute('ai-Label', '');\n this.aiLabel = true;\n }\n super.connectedCallback();\n }\n\n /**\n * @returns The inner content.\n */\n protected _renderInner() {\n const v12DefaultIcons = isFeatureFlagEnabled(\n 'enable-v12-tile-default-icons',\n this\n );\n\n const defaultIcon =\n v12DefaultIcons && !this._hasIcon\n ? this.disabled\n ? iconLoader(Error16, { class: `${prefix}--tile--disabled-icon` })\n : iconLoader(ArrowRight16, { class: `${prefix}--tile--icon` })\n : '';\n\n return html`\n ${super._renderInner()}\n ${this.aiLabel || this.slug\n ? iconLoader(AILabel24, { class: `${prefix}--tile--ai-label-icon` })\n : ''}\n <slot name=\"decorator\"></slot>\n ${defaultIcon}\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 static styles = styles;\n}\n\nexport default CDSClickableTile;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,IAAA,mBAAA,MACM,yBAAyBA,aAAQ;;;;kBA0B1B;2BAOS;iBAGV;cAMH;;CAxCP,IAAc,WAAgB;EAC5B,MAAM,EAAE,aAAa,UAAU,mBAAmB,SAAS,SAAS;
|
|
1
|
+
{"version":3,"file":"clickable-tile.js","names":["CDSLink","styles","customElement"],"sources":["../../../src/components/tile/clickable-tile.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html } from 'lit';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport CDSLink from '../link/link';\nimport { TILE_COLOR_SCHEME } from './defs';\nimport styles from './tile.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport AILabel24 from '@carbon/icons/es/ai-label/24.js';\nimport ArrowRight16 from '@carbon/icons/es/arrow--right/16.js';\nimport Error16 from '@carbon/icons/es/error/16.js';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport { isFeatureFlagEnabled } from '../feature-flags';\n\n/**\n * Clickable tile.\n *\n * @element cds-clickable-tile\n */\n@customElement(`${prefix}-clickable-tile`)\nclass CDSClickableTile extends CDSLink {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452\n protected get _classes(): any {\n const { colorScheme, disabled, hasRoundedCorners, aiLabel, slug } = this;\n return classMap({\n [`${prefix}--link`]: true,\n [`${prefix}--link--disabled`]: disabled,\n [`${prefix}--tile`]: true,\n [`${prefix}--tile--clickable`]: true,\n [`${prefix}--tile--${colorScheme}`]: colorScheme,\n [`${prefix}--tile--slug-rounded`]: (aiLabel || slug) && hasRoundedCorners,\n });\n }\n\n /**\n * The color scheme.\n *\n * @default\n */\n @property({ attribute: 'color-scheme', reflect: true })\n colorScheme = TILE_COLOR_SCHEME.REGULAR;\n\n /**\n * The a11y role for `<a>`.\n */\n @property({ attribute: 'link-role' })\n linkRole = 'button';\n\n /**\n * Specify if the `ClickableTile` component should be rendered with rounded corners.\n * Only valid when `ai-label` prop is present\n */\n @property({ type: Boolean, attribute: 'has-rounded-corners' })\n hasRoundedCorners = false;\n\n @property({ type: Boolean, attribute: 'ai-label' })\n aiLabel = false;\n\n /**\n * deprecated - remove in v12\n */\n @property({ type: Boolean })\n slug = false;\n\n /**\n * If using `slug`, set `ai-label` attribute to true so\n * the styles are applied for slug as well\n *\n * remove in v12\n */\n connectedCallback() {\n if (this.slug) {\n this.setAttribute('ai-Label', '');\n this.aiLabel = true;\n }\n super.connectedCallback();\n }\n\n /**\n * @returns The inner content.\n */\n protected _renderInner() {\n const v12DefaultIcons = isFeatureFlagEnabled(\n 'enable-v12-tile-default-icons',\n this\n );\n\n const defaultIcon =\n v12DefaultIcons && !this._hasIcon\n ? this.disabled\n ? iconLoader(Error16, { class: `${prefix}--tile--disabled-icon` })\n : iconLoader(ArrowRight16, { class: `${prefix}--tile--icon` })\n : '';\n\n return html`\n ${super._renderInner()}\n ${this.aiLabel || this.slug\n ? iconLoader(AILabel24, { class: `${prefix}--tile--ai-label-icon` })\n : ''}\n <slot name=\"decorator\"></slot>\n ${defaultIcon}\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 static styles = styles;\n}\n\nexport default CDSClickableTile;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,IAAA,mBAAA,MACM,yBAAyBA,aAAQ;;;;kBA0B1B;2BAOS;iBAGV;cAMH;;CAxCP,IAAc,WAAgB;EAC5B,MAAM,EAAE,aAAa,UAAU,mBAAmB,SAAS,SAAS;EACpE,OAAO,SAAS;IACb,cAAoB;IACpB,wBAA8B;IAC9B,cAAoB;IACpB,yBAA+B;IAC/B,cAAoB,gBAAgB;IACpC,6BAAmC,WAAW,SAAS;EAC1D,CAAC;CACH;;;;;;;CAsCA,oBAAoB;EAClB,IAAI,KAAK,MAAM;GACb,KAAK,aAAa,YAAY,EAAE;GAChC,KAAK,UAAU;EACjB;EACA,MAAM,kBAAkB;CAC1B;;;;CAKA,eAAyB;EAMvB,MAAM,cALkB,qBACtB,iCACA,IAIc,KAAK,CAAC,KAAK,WACrB,KAAK,WACH,WAAW,SAAS,EAAE,OAAO,2BAAiC,CAAC,IAC/D,WAAW,cAAc,EAAE,OAAO,kBAAwB,CAAC,IAC7D;EAEN,OAAO,IAAI;QACP,MAAM,aAAa,EAAE;QACrB,KAAK,WAAW,KAAK,OACnB,WAAW,WAAW,EAAE,OAAO,2BAAiC,CAAC,IACjE,GAAG;;QAEL,YAAY;;CAElB;;;;;;CAOA,WAAW,WAAW;EACpB,OAAO;CACT;;;;CAKA,WAAW,cAAc;EACvB,OAAO;CACT;;gBAEgBC;;AAClB;YAlFG,SAAS;CAAE,WAAW;CAAgB,SAAS;AAAK,CAAC,CAAA,GAAA,iBAAA,WAAA,eAAA,KAAA,CAAA;YAMrD,SAAS,EAAE,WAAW,YAAY,CAAC,CAAA,GAAA,iBAAA,WAAA,YAAA,KAAA,CAAA;YAOnC,SAAS;CAAE,MAAM;CAAS,WAAW;AAAsB,CAAC,CAAA,GAAA,iBAAA,WAAA,qBAAA,KAAA,CAAA;YAG5D,SAAS;CAAE,MAAM;CAAS,WAAW;AAAW,CAAC,CAAA,GAAA,iBAAA,WAAA,WAAA,KAAA,CAAA;YAMjD,SAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,GAAA,iBAAA,WAAA,QAAA,KAAA,CAAA;+BA1C5BC,cAAc,oBAA0B,CAAA,GAAA,gBAAA;AAwGzC,IAAA,yBAAe"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
import "../../globals/settings.js";
|
|
9
9
|
import { carbonElement } from "../../globals/decorators/carbon-element.js";
|
|
10
|
-
import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.
|
|
10
|
+
import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.135.0/helpers/esm/decorate.js";
|
|
11
11
|
import iconLoader from "../../globals/internal/icon-loader.js";
|
|
12
12
|
import FocusMixin from "../../globals/mixins/focus.js";
|
|
13
13
|
import HostListener from "../../globals/decorators/host-listener.js";
|