@carbon/web-components 2.57.0 → 2.58.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +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/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/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.js +1 -1
- 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/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/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/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/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/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/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.js +1 -1
- 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/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/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.js +1 -1
- 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.js +1 -1
- 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/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/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/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/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.js +1 -1
- package/es/components/overflow-menu/overflow-menu.js.map +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-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/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/progress-bar/defs.js.map +1 -1
- package/es/components/progress-bar/progress-bar.js +1 -1
- 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-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/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/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/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/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/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/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/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/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/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.js +1 -1
- 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/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/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/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/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/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/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.js +1 -1
- 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/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/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.js +1 -1
- 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.js +1 -1
- 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/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/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/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/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.js +1 -1
- package/es-custom/components/overflow-menu/overflow-menu.js.map +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-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/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/progress-bar/defs.js.map +1 -1
- package/es-custom/components/progress-bar/progress-bar.js +1 -1
- 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-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/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/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/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/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/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/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/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/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/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/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/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-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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actionable-notification.js","names":["CDSInlineNotification","styles","customElement"],"sources":["../../../src/components/notification/actionable-notification.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 */\nimport { html } from 'lit';\nimport CheckmarkFilled20 from '@carbon/icons/es/checkmark--filled/20.js';\nimport InformationFilled20 from '@carbon/icons/es/information--filled/20.js';\nimport InformationSquareFilled20 from '@carbon/icons/es/information--square--filled/20.js';\nimport WarningFilled20 from '@carbon/icons/es/warning--filled/20.js';\nimport WarningAltFilled20 from '@carbon/icons/es/warning--alt--filled/20.js';\nimport ErrorFilled20 from '@carbon/icons/es/error--filled/20.js';\nimport { property, query } from 'lit/decorators.js';\nimport { prefix, selectorTabbable } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { NOTIFICATION_TYPE, NOTIFICATION_KIND } from './defs';\nimport CDSInlineNotification from './inline-notification';\nimport styles from './actionable-notification.scss?lit';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport CDSButton from '../button/button';\n\n/**\n * The default icons, keyed by notification kind.\n */\nexport const iconsForKinds = {\n [NOTIFICATION_KIND.SUCCESS]: CheckmarkFilled20,\n [NOTIFICATION_KIND.INFO]: InformationFilled20,\n [NOTIFICATION_KIND.INFO_SQUARE]: InformationSquareFilled20,\n [NOTIFICATION_KIND.WARNING]: WarningFilled20,\n [NOTIFICATION_KIND.WARNING_ALT]: WarningAltFilled20,\n [NOTIFICATION_KIND.ERROR]: ErrorFilled20,\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\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 = false) {\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 const active = elem.ownerDocument!.activeElement;\n if (\n active === elem ||\n active?.contains(elem) ||\n active?.shadowRoot?.contains(elem)\n ) {\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 const active = elem.ownerDocument!.activeElement;\n if (\n active === elem ||\n active?.contains(elem) ||\n active?.shadowRoot?.contains(elem)\n ) {\n return true;\n }\n }\n }\n return false;\n}\n\n/**\n * Actionable notification.\n *\n * @element cds-actionable-notification\n * @slot subtitle - The subtitle.\n * @slot title - The title.\n * @fires cds-notification-beingclosed\n * The custom event fired before this notification is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this notification.\n * @fires cds-notification-closed - The custom event fired after this notification is closed upon a user gesture.\n */\n@customElement(`${prefix}-actionable-notification`)\nclass CDSActionableNotification extends HostListenerMixin(\n CDSInlineNotification\n) {\n protected _type = NOTIFICATION_TYPE.ACTIONABLE;\n\n /**\n * Inline notification type.\n */\n @property({ type: Boolean, reflect: true })\n inline = false;\n\n /**\n * Pass in the action button label that will be rendered within the ActionableNotification.\n */\n @property({ type: String, reflect: true, attribute: 'action-button-label' })\n actionButtonLabel = '';\n\n /**\n * Specify if pressing the escape key should close notifications\n */\n @property({ type: Boolean, reflect: true, attribute: 'close-on-escape' })\n closeOnEscape = true;\n\n /**\n * Specify if focus should be moved to the component when the notification contains actions\n */\n @property({ type: Boolean, reflect: true, attribute: 'has-focus' })\n hasFocus = true;\n\n /**\n * Node to track focus going outside of actionable notification content.\n */\n @query('#start-sentinel')\n private _startSentinelNode!: HTMLAnchorElement;\n\n /**\n * Node to track focus going outside of actionable notification content.\n */\n @query('#end-sentinel')\n private _endSentinelNode!: HTMLAnchorElement;\n\n /**\n * Handles `keydown` event on this event.\n * Escape will close the notification if `closeOnEscape` is true\n */\n @HostListener('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 = async (event: KeyboardEvent) => {\n const { key } = event;\n if (this.closeOnEscape && key === 'Escape') {\n this.open = false;\n }\n };\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 const {\n open,\n _startSentinelNode: startSentinelNode,\n _endSentinelNode: endSentinelNode,\n } = this;\n const oldContains =\n target !== this &&\n (this.contains(target as Node) ||\n (this.shadowRoot?.contains(target as Node) &&\n target !== (startSentinelNode as Node) &&\n target !== (endSentinelNode 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 notification is open\n // * Notification role attribute is set to 'alertdialog'\n // * The viewport still has focus\n // * Notification body used to have focus but no longer has focus\n const { selectorTabbable: selectorTabbableForActionableNotification } = this\n .constructor as typeof CDSActionableNotification;\n if (\n open &&\n this.getAttribute('role') === 'alertdialog' &&\n relatedTarget &&\n !(relatedTarget instanceof CDSActionableNotification) &&\n oldContains &&\n !currentContains\n ) {\n const comparisonResult = (target as Node).compareDocumentPosition(\n relatedTarget as Node\n );\n // tabbable elements in Shadow root\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n const shadowElems = this.shadowRoot!.querySelectorAll(\n selectorTabbableForActionableNotification\n );\n // tabbable elements in light DOM\n const lightElems = this.querySelectorAll(\n selectorTabbableForActionableNotification\n );\n\n if (relatedTarget === startSentinelNode || comparisonResult & PRECEDING) {\n await (this.constructor as typeof CDSActionableNotification)._delay();\n if (\n !tryFocusElems(shadowElems as NodeListOf<HTMLElement>, true) &&\n !tryFocusElems(lightElems as NodeListOf<HTMLElement>, true) &&\n relatedTarget !== this\n ) {\n this.focus();\n }\n } else if (\n relatedTarget === endSentinelNode ||\n comparisonResult & FOLLOWING\n ) {\n await (this.constructor as typeof CDSActionableNotification)._delay();\n if (\n !tryFocusElems(lightElems as NodeListOf<HTMLElement>) &&\n !tryFocusElems(shadowElems as NodeListOf<HTMLElement>)\n ) {\n this.focus();\n }\n }\n }\n };\n\n connectedCallback() {\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'alertdialog');\n }\n super.connectedCallback();\n }\n\n protected _renderIcon() {\n const { kind, inline } = this;\n const IconComponent = iconsForKinds[kind];\n return !IconComponent\n ? undefined\n : iconLoader(IconComponent, {\n class: `${prefix}--${inline ? 'inline' : 'toast'}-notification__icon`,\n });\n }\n\n protected _renderText() {\n const { caption, subtitle, title, _type: type } = this;\n return html`\n <div class=\"${prefix}--${type}-notification__text-wrapper\">\n <div class=\"${prefix}--${type}-notification__content\">\n <div class=\"${prefix}--${type}-notification__title\">\n ${title}<slot name=\"title\"></slot>\n </div>\n <div class=\"${prefix}--${type}-notification__subtitle\">\n ${subtitle}<slot name=\"subtitle\"></slot>\n </div>\n ${caption &&\n html`<div class=\"${prefix}--${type}-notification__caption\">\n ${caption}<slot name=\"caption\"></slot>\n </div>`}\n <slot></slot>\n </div>\n </div>\n `;\n }\n\n /**\n * The caption.\n */\n @property()\n caption = '';\n\n updated(changedProperties) {\n super.updated(changedProperties);\n const button = this.querySelector(\n (this.constructor as typeof CDSActionableNotification)\n .selectorActionButton\n );\n if (changedProperties.has('inline')) {\n button?.setAttribute('kind', this.inline ? 'ghost' : 'tertiary');\n }\n if (changedProperties.has('lowContrast')) {\n if (this.lowContrast) {\n button?.setAttribute('low-contrast', 'true');\n } else {\n button?.removeAttribute('low-contrast');\n }\n }\n if (changedProperties.has('hideCloseButton')) {\n if (this.hideCloseButton) {\n button?.setAttribute('hide-close-button', 'true');\n } else {\n button?.removeAttribute('hide-close-button');\n }\n }\n if (changedProperties.has('hasFocus')) {\n if (this.hasFocus) {\n if (button) {\n (button as CDSButton).updateComplete.then(() => {\n (button as HTMLElement).focus();\n });\n } else {\n this.focus();\n }\n }\n }\n }\n\n render() {\n const { _type: type } = this;\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 class=\"${prefix}--${type}-notification__details\">\n ${this._renderIcon()} ${this._renderText()}\n </div>\n <slot name=\"action\"></slot>\n ${this._renderButton()}\n <a\n id=\"end-sentinel\"\n class=\"${prefix}--visually-hidden\"\n href=\"javascript:void 0\"\n role=\"navigation\"></a>\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 tabbable nodes.\n */\n static get selectorTabbable() {\n return selectorTabbable;\n }\n\n /**\n * A selector that will return the action button element\n */\n static get selectorActionButton() {\n return `${prefix}-actionable-notification-button`;\n }\n\n static styles = styles;\n}\n\nexport default CDSActionableNotification;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"actionable-notification.js","names":["CDSInlineNotification","styles","customElement"],"sources":["../../../src/components/notification/actionable-notification.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 */\nimport { html } from 'lit';\nimport CheckmarkFilled20 from '@carbon/icons/es/checkmark--filled/20.js';\nimport InformationFilled20 from '@carbon/icons/es/information--filled/20.js';\nimport InformationSquareFilled20 from '@carbon/icons/es/information--square--filled/20.js';\nimport WarningFilled20 from '@carbon/icons/es/warning--filled/20.js';\nimport WarningAltFilled20 from '@carbon/icons/es/warning--alt--filled/20.js';\nimport ErrorFilled20 from '@carbon/icons/es/error--filled/20.js';\nimport { property, query } from 'lit/decorators.js';\nimport { prefix, selectorTabbable } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { NOTIFICATION_TYPE, NOTIFICATION_KIND } from './defs';\nimport CDSInlineNotification from './inline-notification';\nimport styles from './actionable-notification.scss?lit';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport CDSButton from '../button/button';\n\n/**\n * The default icons, keyed by notification kind.\n */\nexport const iconsForKinds = {\n [NOTIFICATION_KIND.SUCCESS]: CheckmarkFilled20,\n [NOTIFICATION_KIND.INFO]: InformationFilled20,\n [NOTIFICATION_KIND.INFO_SQUARE]: InformationSquareFilled20,\n [NOTIFICATION_KIND.WARNING]: WarningFilled20,\n [NOTIFICATION_KIND.WARNING_ALT]: WarningAltFilled20,\n [NOTIFICATION_KIND.ERROR]: ErrorFilled20,\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\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 = false) {\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 const active = elem.ownerDocument!.activeElement;\n if (\n active === elem ||\n active?.contains(elem) ||\n active?.shadowRoot?.contains(elem)\n ) {\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 const active = elem.ownerDocument!.activeElement;\n if (\n active === elem ||\n active?.contains(elem) ||\n active?.shadowRoot?.contains(elem)\n ) {\n return true;\n }\n }\n }\n return false;\n}\n\n/**\n * Actionable notification.\n *\n * @element cds-actionable-notification\n * @slot subtitle - The subtitle.\n * @slot title - The title.\n * @fires cds-notification-beingclosed\n * The custom event fired before this notification is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this notification.\n * @fires cds-notification-closed - The custom event fired after this notification is closed upon a user gesture.\n */\n@customElement(`${prefix}-actionable-notification`)\nclass CDSActionableNotification extends HostListenerMixin(\n CDSInlineNotification\n) {\n protected _type = NOTIFICATION_TYPE.ACTIONABLE;\n\n /**\n * Inline notification type.\n */\n @property({ type: Boolean, reflect: true })\n inline = false;\n\n /**\n * Pass in the action button label that will be rendered within the ActionableNotification.\n */\n @property({ type: String, reflect: true, attribute: 'action-button-label' })\n actionButtonLabel = '';\n\n /**\n * Specify if pressing the escape key should close notifications\n */\n @property({ type: Boolean, reflect: true, attribute: 'close-on-escape' })\n closeOnEscape = true;\n\n /**\n * Specify if focus should be moved to the component when the notification contains actions\n */\n @property({ type: Boolean, reflect: true, attribute: 'has-focus' })\n hasFocus = true;\n\n /**\n * Node to track focus going outside of actionable notification content.\n */\n @query('#start-sentinel')\n private _startSentinelNode!: HTMLAnchorElement;\n\n /**\n * Node to track focus going outside of actionable notification content.\n */\n @query('#end-sentinel')\n private _endSentinelNode!: HTMLAnchorElement;\n\n /**\n * Handles `keydown` event on this event.\n * Escape will close the notification if `closeOnEscape` is true\n */\n @HostListener('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 = async (event: KeyboardEvent) => {\n const { key } = event;\n if (this.closeOnEscape && key === 'Escape') {\n this.open = false;\n }\n };\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 const {\n open,\n _startSentinelNode: startSentinelNode,\n _endSentinelNode: endSentinelNode,\n } = this;\n const oldContains =\n target !== this &&\n (this.contains(target as Node) ||\n (this.shadowRoot?.contains(target as Node) &&\n target !== (startSentinelNode as Node) &&\n target !== (endSentinelNode 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 notification is open\n // * Notification role attribute is set to 'alertdialog'\n // * The viewport still has focus\n // * Notification body used to have focus but no longer has focus\n const { selectorTabbable: selectorTabbableForActionableNotification } = this\n .constructor as typeof CDSActionableNotification;\n if (\n open &&\n this.getAttribute('role') === 'alertdialog' &&\n relatedTarget &&\n !(relatedTarget instanceof CDSActionableNotification) &&\n oldContains &&\n !currentContains\n ) {\n const comparisonResult = (target as Node).compareDocumentPosition(\n relatedTarget as Node\n );\n // tabbable elements in Shadow root\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n const shadowElems = this.shadowRoot!.querySelectorAll(\n selectorTabbableForActionableNotification\n );\n // tabbable elements in light DOM\n const lightElems = this.querySelectorAll(\n selectorTabbableForActionableNotification\n );\n\n if (relatedTarget === startSentinelNode || comparisonResult & PRECEDING) {\n await (this.constructor as typeof CDSActionableNotification)._delay();\n if (\n !tryFocusElems(shadowElems as NodeListOf<HTMLElement>, true) &&\n !tryFocusElems(lightElems as NodeListOf<HTMLElement>, true) &&\n relatedTarget !== this\n ) {\n this.focus();\n }\n } else if (\n relatedTarget === endSentinelNode ||\n comparisonResult & FOLLOWING\n ) {\n await (this.constructor as typeof CDSActionableNotification)._delay();\n if (\n !tryFocusElems(lightElems as NodeListOf<HTMLElement>) &&\n !tryFocusElems(shadowElems as NodeListOf<HTMLElement>)\n ) {\n this.focus();\n }\n }\n }\n };\n\n connectedCallback() {\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'alertdialog');\n }\n super.connectedCallback();\n }\n\n protected _renderIcon() {\n const { kind, inline } = this;\n const IconComponent = iconsForKinds[kind];\n return !IconComponent\n ? undefined\n : iconLoader(IconComponent, {\n class: `${prefix}--${inline ? 'inline' : 'toast'}-notification__icon`,\n });\n }\n\n protected _renderText() {\n const { caption, subtitle, title, _type: type } = this;\n return html`\n <div class=\"${prefix}--${type}-notification__text-wrapper\">\n <div class=\"${prefix}--${type}-notification__content\">\n <div class=\"${prefix}--${type}-notification__title\">\n ${title}<slot name=\"title\"></slot>\n </div>\n <div class=\"${prefix}--${type}-notification__subtitle\">\n ${subtitle}<slot name=\"subtitle\"></slot>\n </div>\n ${caption &&\n html`<div class=\"${prefix}--${type}-notification__caption\">\n ${caption}<slot name=\"caption\"></slot>\n </div>`}\n <slot></slot>\n </div>\n </div>\n `;\n }\n\n /**\n * The caption.\n */\n @property()\n caption = '';\n\n updated(changedProperties) {\n super.updated(changedProperties);\n const button = this.querySelector(\n (this.constructor as typeof CDSActionableNotification)\n .selectorActionButton\n );\n if (changedProperties.has('inline')) {\n button?.setAttribute('kind', this.inline ? 'ghost' : 'tertiary');\n }\n if (changedProperties.has('lowContrast')) {\n if (this.lowContrast) {\n button?.setAttribute('low-contrast', 'true');\n } else {\n button?.removeAttribute('low-contrast');\n }\n }\n if (changedProperties.has('hideCloseButton')) {\n if (this.hideCloseButton) {\n button?.setAttribute('hide-close-button', 'true');\n } else {\n button?.removeAttribute('hide-close-button');\n }\n }\n if (changedProperties.has('hasFocus')) {\n if (this.hasFocus) {\n if (button) {\n (button as CDSButton).updateComplete.then(() => {\n (button as HTMLElement).focus();\n });\n } else {\n this.focus();\n }\n }\n }\n }\n\n render() {\n const { _type: type } = this;\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 class=\"${prefix}--${type}-notification__details\">\n ${this._renderIcon()} ${this._renderText()}\n </div>\n <slot name=\"action\"></slot>\n ${this._renderButton()}\n <a\n id=\"end-sentinel\"\n class=\"${prefix}--visually-hidden\"\n href=\"javascript:void 0\"\n role=\"navigation\"></a>\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 tabbable nodes.\n */\n static get selectorTabbable() {\n return selectorTabbable;\n }\n\n /**\n * A selector that will return the action button element\n */\n static get selectorActionButton() {\n return `${prefix}-actionable-notification-button`;\n }\n\n static styles = styles;\n}\n\nexport default CDSActionableNotification;\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 "./defs.js";
|
|
13
13
|
import actionable_notification_default from "./actionable-notification.scss.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callout-notification.js","names":["CDSActionableNotification","styles","customElement"],"sources":["../../../src/components/notification/callout-notification.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport CDSActionableNotification, {\n iconsForKinds,\n} from './actionable-notification';\nimport { NOTIFICATION_KIND } from './defs';\nimport styles from './actionable-notification.scss?lit';\n\n/**\n * Callout notification.\n * @element cds-callout-notification\n * @slot subtitle - The subtitle.\n * @slot title - The title.\n * @slot action - The action button.\n * @slot - The default slot for additional content.\n */\n@customElement(`${prefix}-callout-notification`)\nclass CDSCalloutNotification extends CDSActionableNotification {\n /**\n * Specify the id for the title element.\n */\n @property({ type: String, reflect: true, attribute: 'title-id' })\n titleId = '';\n\n /**\n * Specify the notification kind, Defaults to 'info'.\n */\n @property({ reflect: true })\n kind = NOTIFICATION_KIND.INFO;\n\n protected _renderIcon() {\n const { statusIconDescription, kind } = this;\n const IconComponent = iconsForKinds[kind];\n return IconComponent\n ? iconLoader(IconComponent, {\n class: `${prefix}--inline-notification__icon`,\n 'aria-label': statusIconDescription || undefined,\n })\n : undefined;\n }\n\n protected _renderText() {\n const { subtitle, title, titleId, _type: type } = this;\n return html`\n <div class=\"${prefix}--${type}-notification__text-wrapper\">\n <div class=\"${prefix}--${type}-notification__content\">\n ${title &&\n html`<div\n class=\"${prefix}--${type}-notification__title\"\n id=\"${titleId}\">\n ${title}<slot name=\"title\"></slot>\n </div>`}\n ${subtitle &&\n html`<div class=\"${prefix}--${type}-notification__subtitle\">\n ${subtitle}<slot name=\"subtitle\"></slot>\n </div>`}\n <slot></slot>\n </div>\n </div>\n `;\n }\n\n protected _renderButton() {\n return html``;\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.removeAttribute('role');\n }\n\n updated(changedProperties) {\n super.updated(changedProperties);\n const button = this.querySelector(\n (this.constructor as typeof CDSCalloutNotification).selectorActionButton\n );\n if (button) {\n button.setAttribute('kind', 'ghost');\n if (this.titleId) {\n button.setAttribute('aria-describedby', this.titleId);\n }\n }\n }\n static styles = styles;\n}\nexport default CDSCalloutNotification;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,IAAA,yBAAA,MACM,+BAA+BA,kCAA0B;;;iBAKnD;;;CAQV,cAAwB;EACtB,MAAM,EAAE,uBAAuB,SAAS;EACxC,MAAM,gBAAgB,cAAc;
|
|
1
|
+
{"version":3,"file":"callout-notification.js","names":["CDSActionableNotification","styles","customElement"],"sources":["../../../src/components/notification/callout-notification.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport CDSActionableNotification, {\n iconsForKinds,\n} from './actionable-notification';\nimport { NOTIFICATION_KIND } from './defs';\nimport styles from './actionable-notification.scss?lit';\n\n/**\n * Callout notification.\n * @element cds-callout-notification\n * @slot subtitle - The subtitle.\n * @slot title - The title.\n * @slot action - The action button.\n * @slot - The default slot for additional content.\n */\n@customElement(`${prefix}-callout-notification`)\nclass CDSCalloutNotification extends CDSActionableNotification {\n /**\n * Specify the id for the title element.\n */\n @property({ type: String, reflect: true, attribute: 'title-id' })\n titleId = '';\n\n /**\n * Specify the notification kind, Defaults to 'info'.\n */\n @property({ reflect: true })\n kind = NOTIFICATION_KIND.INFO;\n\n protected _renderIcon() {\n const { statusIconDescription, kind } = this;\n const IconComponent = iconsForKinds[kind];\n return IconComponent\n ? iconLoader(IconComponent, {\n class: `${prefix}--inline-notification__icon`,\n 'aria-label': statusIconDescription || undefined,\n })\n : undefined;\n }\n\n protected _renderText() {\n const { subtitle, title, titleId, _type: type } = this;\n return html`\n <div class=\"${prefix}--${type}-notification__text-wrapper\">\n <div class=\"${prefix}--${type}-notification__content\">\n ${title &&\n html`<div\n class=\"${prefix}--${type}-notification__title\"\n id=\"${titleId}\">\n ${title}<slot name=\"title\"></slot>\n </div>`}\n ${subtitle &&\n html`<div class=\"${prefix}--${type}-notification__subtitle\">\n ${subtitle}<slot name=\"subtitle\"></slot>\n </div>`}\n <slot></slot>\n </div>\n </div>\n `;\n }\n\n protected _renderButton() {\n return html``;\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.removeAttribute('role');\n }\n\n updated(changedProperties) {\n super.updated(changedProperties);\n const button = this.querySelector(\n (this.constructor as typeof CDSCalloutNotification).selectorActionButton\n );\n if (button) {\n button.setAttribute('kind', 'ghost');\n if (this.titleId) {\n button.setAttribute('aria-describedby', this.titleId);\n }\n }\n }\n static styles = styles;\n}\nexport default CDSCalloutNotification;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,IAAA,yBAAA,MACM,+BAA+BA,kCAA0B;;;iBAKnD;;;CAQV,cAAwB;EACtB,MAAM,EAAE,uBAAuB,SAAS;EACxC,MAAM,gBAAgB,cAAc;EACpC,OAAO,gBACH,WAAW,eAAe;GACxB,OAAO;GACP,cAAc,yBAAyB,KAAA;EACzC,CAAC,IACD,KAAA;CACN;CAEA,cAAwB;EACtB,MAAM,EAAE,UAAU,OAAO,SAAS,OAAO,SAAS;EAClD,OAAO,IAAI;0BACY,IAAI,KAAK;4BACP,IAAI,KAAK;YAC1B,SACF,IAAI;2BACc,IAAI,KAAK;kBACnB,QAAQ;cACZ,MAAM;kBACF;YACN,YACF,IAAI,eAAA,MAAsB,IAAI,KAAK;cAC/B,SAAS;kBACL;;;;;CAKhB;CAEA,gBAA0B;EACxB,OAAO,IAAI;CACb;CAEA,oBAAoB;EAClB,MAAM,kBAAkB;EACxB,KAAK,gBAAgB,MAAM;CAC7B;CAEA,QAAQ,mBAAmB;EACzB,MAAM,QAAQ,iBAAiB;EAC/B,MAAM,SAAS,KAAK,cACjB,KAAK,YAA8C,oBACtD;EACA,IAAI,QAAQ;GACV,OAAO,aAAa,QAAQ,OAAO;GACnC,IAAI,KAAK,SACP,OAAO,aAAa,oBAAoB,KAAK,OAAO;EAExD;CACF;;gBACgBC;;AAClB;YA/DG,SAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,WAAW;AAAW,CAAC,CAAA,GAAA,uBAAA,WAAA,WAAA,KAAA,CAAA;YAM/D,SAAS,EAAE,SAAS,KAAK,CAAC,CAAA,GAAA,uBAAA,WAAA,QAAA,KAAA,CAAA;qCAX5BC,cAAc,0BAAgC,CAAA,GAAA,sBAAA;AAqE/C,IAAA,+BAAe"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defs.js","names":[],"sources":["../../../src/components/notification/defs.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 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\n/**\n * Notification kinds.\n */\nexport enum NOTIFICATION_KIND {\n /**\n * Notification to represent success state.\n */\n SUCCESS = 'success',\n\n /**\n * Informational notification.\n */\n INFO = 'info',\n\n /**\n * Informational square icon notification.\n */\n INFO_SQUARE = 'info-square',\n\n /**\n * Warning notification.\n */\n WARNING = 'warning',\n\n /**\n * Warning Alt notification.\n */\n WARNING_ALT = 'warning-alt',\n\n /**\n * Error notification.\n */\n ERROR = 'error',\n}\n\n/**\n * Notification types.\n */\nexport enum NOTIFICATION_TYPE {\n /**\n * Inline notification, which show up in task flows, to notify users of the status of an action.\n * They usually appear at the top of the primary content area.\n */\n INLINE = 'inline',\n\n /**\n * Toast notification, which is a non-modal, time-based window elements used to display short messages.\n * They usually appear at the bottom of the screen and disappear after a few seconds.\n */\n TOAST = 'toast',\n\n /**\n * Actionable notifications allow for interactive elements within a notification styled like an inline\n * or toast notification. Actionable notifications, since they require user interaction, take focus when\n * triggered and can be highly disruptive to screen readers and keyboard users. With actionable notifications,\n * only one action is allowed per notification. This action frequently takes users to a flow or page related\n * to the message, where they can resolve the notification.\n */\n ACTIONABLE = 'actionable',\n\n /**\n * Callout notification is non-modal and should only be used inline with content on the\n * initial render of the page or modal because it will not be announced to screenreader users\n * like the other notification components.\n */\n CALLOUT = 'callout',\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAUA,IAAY,oBAAL,yBAAA,mBAAA;;;;
|
|
1
|
+
{"version":3,"file":"defs.js","names":[],"sources":["../../../src/components/notification/defs.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 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\n/**\n * Notification kinds.\n */\nexport enum NOTIFICATION_KIND {\n /**\n * Notification to represent success state.\n */\n SUCCESS = 'success',\n\n /**\n * Informational notification.\n */\n INFO = 'info',\n\n /**\n * Informational square icon notification.\n */\n INFO_SQUARE = 'info-square',\n\n /**\n * Warning notification.\n */\n WARNING = 'warning',\n\n /**\n * Warning Alt notification.\n */\n WARNING_ALT = 'warning-alt',\n\n /**\n * Error notification.\n */\n ERROR = 'error',\n}\n\n/**\n * Notification types.\n */\nexport enum NOTIFICATION_TYPE {\n /**\n * Inline notification, which show up in task flows, to notify users of the status of an action.\n * They usually appear at the top of the primary content area.\n */\n INLINE = 'inline',\n\n /**\n * Toast notification, which is a non-modal, time-based window elements used to display short messages.\n * They usually appear at the bottom of the screen and disappear after a few seconds.\n */\n TOAST = 'toast',\n\n /**\n * Actionable notifications allow for interactive elements within a notification styled like an inline\n * or toast notification. Actionable notifications, since they require user interaction, take focus when\n * triggered and can be highly disruptive to screen readers and keyboard users. With actionable notifications,\n * only one action is allowed per notification. This action frequently takes users to a flow or page related\n * to the message, where they can resolve the notification.\n */\n ACTIONABLE = 'actionable',\n\n /**\n * Callout notification is non-modal and should only be used inline with content on the\n * initial render of the page or modal because it will not be announced to screenreader users\n * like the other notification components.\n */\n CALLOUT = 'callout',\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAUA,IAAY,oBAAL,yBAAA,mBAAA;;;;CAIL,kBAAA,aAAA;;;;CAKA,kBAAA,UAAA;;;;CAKA,kBAAA,iBAAA;;;;CAKA,kBAAA,aAAA;;;;CAKA,kBAAA,iBAAA;;;;CAKA,kBAAA,WAAA;;AACF,EAAA,CAAA,CAAA;;;;AAKA,IAAY,oBAAL,yBAAA,mBAAA;;;;;CAKL,kBAAA,YAAA;;;;;CAMA,kBAAA,WAAA;;;;;;;;CASA,kBAAA,gBAAA;;;;;;CAOA,kBAAA,aAAA;;AACF,EAAA,CAAA,CAAA"}
|
|
@@ -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 { NOTIFICATION_KIND, NOTIFICATION_TYPE } from "./defs.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inline-notification.js","names":["styles","customElement"],"sources":["../../../src/components/notification/inline-notification.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport Close16 from '@carbon/icons/es/close/16.js';\nimport CheckmarkFilled20 from '@carbon/icons/es/checkmark--filled/20.js';\nimport InformationFilled20 from '@carbon/icons/es/information--filled/20.js';\nimport InformationSquareFilled20 from '@carbon/icons/es/information--square--filled/20.js';\nimport WarningFilled20 from '@carbon/icons/es/warning--filled/20.js';\nimport WarningAltFilled20 from '@carbon/icons/es/warning--alt--filled/20.js';\nimport ErrorFilled20 from '@carbon/icons/es/error--filled/20.js';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport FocusMixin from '../../globals/mixins/focus';\nimport { NOTIFICATION_KIND, NOTIFICATION_TYPE } from './defs';\nimport styles from './inline-notification.scss?lit';\n\nexport { NOTIFICATION_KIND, NOTIFICATION_TYPE };\n\n/**\n * The default icons, keyed by notification kind.\n */\nconst iconNamesForKinds = {\n [NOTIFICATION_KIND.SUCCESS]: CheckmarkFilled20,\n [NOTIFICATION_KIND.INFO]: InformationFilled20,\n [NOTIFICATION_KIND.INFO_SQUARE]: InformationSquareFilled20,\n [NOTIFICATION_KIND.WARNING]: WarningFilled20,\n [NOTIFICATION_KIND.WARNING_ALT]: WarningAltFilled20,\n [NOTIFICATION_KIND.ERROR]: ErrorFilled20,\n};\n\n/**\n * Inline notification.\n *\n * @element cds-inline-notification\n * @slot subtitle - The subtitle.\n * @slot title - The title.\n * @fires cds-notification-beingclosed\n * The custom event fired before this notification is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this notification.\n * @fires cds-notification-closed - The custom event fired after this notification is closed upon a user gesture.\n */\n@customElement(`${prefix}-inline-notification`)\nclass CDSInlineNotification extends FocusMixin(LitElement) {\n /**\n * Current timeout identifier\n */\n protected _timeoutID: number | null = null;\n\n /**\n * Notification type.\n */\n protected _type = NOTIFICATION_TYPE.INLINE;\n\n /**\n * Cancels the current timeout configured for the notification\n *\n * @param timeoutID current timeout's identifier\n */\n protected _cancelTimeout(timeoutID: number) {\n clearTimeout(timeoutID);\n this._timeoutID = null;\n }\n\n /**\n * Overrides (if exists) the timeout to close the notification\n *\n * @param timeout the time in ms\n */\n protected _initializeTimeout(timeout: number) {\n if (this._timeoutID) {\n this._cancelTimeout(this._timeoutID);\n }\n this._timeoutID = setTimeout(\n this._handleUserOrTimerInitiatedClose.bind(this, null),\n timeout\n ) as unknown as number;\n }\n\n /**\n * Handles `click` event on the close button.\n *\n * @param event The event.\n * @param event.target The event target.\n */\n protected _handleClickCloseButton({ target }: MouseEvent) {\n this._handleUserOrTimerInitiatedClose(target);\n }\n\n /**\n * Handles user-initiated or through timer close request of this modal.\n *\n * @param triggeredBy The element that triggered this close request, if there is one.\n */\n protected _handleUserOrTimerInitiatedClose(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 CDSInlineNotification).eventBeforeClose,\n init\n )\n )\n ) {\n this.open = false;\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSInlineNotification).eventClose,\n init\n )\n );\n }\n }\n }\n\n /**\n * @returns The template part for the close button.\n */\n protected _renderButton() {\n const {\n ariaLabel,\n _type: type,\n _handleClickCloseButton: handleClickCloseButton,\n } = this;\n return html`\n <button\n type=\"button\"\n class=\"${prefix}--${type}-notification__close-button\"\n aria-label=${ifDefined(ariaLabel)}\n title=${ifDefined(ariaLabel)}\n @click=\"${handleClickCloseButton}\">\n ${iconLoader(Close16, {\n class: `${prefix}--${type}-notification__close-icon`,\n })}\n </button>\n `;\n }\n\n /**\n * @returns The template part for the text contents.\n */\n protected _renderText() {\n const { subtitle, title, _type: type } = this;\n return html`\n <div class=\"${prefix}--${type}-notification__text-wrapper\">\n <p class=\"${prefix}--${type}-notification__title\">\n ${title}<slot name=\"title\"></slot>\n </p>\n <div class=\"${prefix}--${type}-notification__subtitle\">\n ${subtitle}<slot name=\"subtitle\"></slot>\n </div>\n <slot></slot>\n </div>\n `;\n }\n\n /**\n * @returns The template part for the icon.\n */\n protected _renderIcon() {\n const { statusIconDescription, kind, _type: type } = this;\n const IconComponent = iconNamesForKinds[kind];\n return !IconComponent\n ? undefined\n : iconLoader(IconComponent, {\n class: `${prefix}--${type}-notification__icon`,\n 'aria-label': statusIconDescription,\n });\n }\n\n /**\n * Provide a description for \"close\" icon button that can be read by screen readers\n */\n @property({ attribute: 'aria-label' })\n ariaLabel!: string;\n\n /**\n * `true` to hide the close button.\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-close-button' })\n hideCloseButton = false;\n\n /**\n * Provide a description for \"status\" icon that can be read by screen readers\n */\n @property({ attribute: 'status-icon-description' })\n statusIconDescription!: string;\n\n /**\n * Notification kind.\n */\n @property({ reflect: true })\n kind = NOTIFICATION_KIND.SUCCESS;\n\n /**\n * Low contrast mode\n */\n @property({ type: Boolean, reflect: true, attribute: 'low-contrast' })\n lowContrast = false;\n\n /**\n * `true` if the notification should be open.\n */\n @property({ type: Boolean, reflect: true })\n open = true;\n\n /**\n * Specify an optional duration the notification should be closed in\n */\n @property({ type: Number, reflect: true })\n timeout: number | null = null;\n\n /**\n * The subtitle.\n */\n @property()\n subtitle = '';\n\n /**\n * The title.\n */\n @property()\n title = '';\n\n connectedCallback() {\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'alert');\n }\n super.connectedCallback();\n }\n\n updated(changedProperties) {\n const openChanged = changedProperties.has('open');\n const timeoutChanged = changedProperties.has('timeout');\n\n if (openChanged || timeoutChanged) {\n if (this.open && this.timeout) {\n this._initializeTimeout(this.timeout);\n } else if (!this.open && this._timeoutID) {\n this._cancelTimeout(this._timeoutID);\n }\n }\n }\n\n render() {\n const { _type: type } = this;\n return html`\n <div class=\"${prefix}--${type}-notification__details\">\n ${this._renderIcon()}${this._renderText()}\n </div>\n ${this._renderButton()}\n `;\n }\n\n /**\n * The name of the custom event fired before this notification is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this notification.\n */\n static get eventBeforeClose() {\n return `${prefix}-notification-beingclosed`;\n }\n\n /**\n * The name of the custom event fired after this notification is closed upon a user gesture.\n */\n static get eventClose() {\n return `${prefix}-notification-closed`;\n }\n\n static styles = styles;\n}\n\nexport default CDSInlineNotification;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"inline-notification.js","names":["styles","customElement"],"sources":["../../../src/components/notification/inline-notification.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport Close16 from '@carbon/icons/es/close/16.js';\nimport CheckmarkFilled20 from '@carbon/icons/es/checkmark--filled/20.js';\nimport InformationFilled20 from '@carbon/icons/es/information--filled/20.js';\nimport InformationSquareFilled20 from '@carbon/icons/es/information--square--filled/20.js';\nimport WarningFilled20 from '@carbon/icons/es/warning--filled/20.js';\nimport WarningAltFilled20 from '@carbon/icons/es/warning--alt--filled/20.js';\nimport ErrorFilled20 from '@carbon/icons/es/error--filled/20.js';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport FocusMixin from '../../globals/mixins/focus';\nimport { NOTIFICATION_KIND, NOTIFICATION_TYPE } from './defs';\nimport styles from './inline-notification.scss?lit';\n\nexport { NOTIFICATION_KIND, NOTIFICATION_TYPE };\n\n/**\n * The default icons, keyed by notification kind.\n */\nconst iconNamesForKinds = {\n [NOTIFICATION_KIND.SUCCESS]: CheckmarkFilled20,\n [NOTIFICATION_KIND.INFO]: InformationFilled20,\n [NOTIFICATION_KIND.INFO_SQUARE]: InformationSquareFilled20,\n [NOTIFICATION_KIND.WARNING]: WarningFilled20,\n [NOTIFICATION_KIND.WARNING_ALT]: WarningAltFilled20,\n [NOTIFICATION_KIND.ERROR]: ErrorFilled20,\n};\n\n/**\n * Inline notification.\n *\n * @element cds-inline-notification\n * @slot subtitle - The subtitle.\n * @slot title - The title.\n * @fires cds-notification-beingclosed\n * The custom event fired before this notification is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this notification.\n * @fires cds-notification-closed - The custom event fired after this notification is closed upon a user gesture.\n */\n@customElement(`${prefix}-inline-notification`)\nclass CDSInlineNotification extends FocusMixin(LitElement) {\n /**\n * Current timeout identifier\n */\n protected _timeoutID: number | null = null;\n\n /**\n * Notification type.\n */\n protected _type = NOTIFICATION_TYPE.INLINE;\n\n /**\n * Cancels the current timeout configured for the notification\n *\n * @param timeoutID current timeout's identifier\n */\n protected _cancelTimeout(timeoutID: number) {\n clearTimeout(timeoutID);\n this._timeoutID = null;\n }\n\n /**\n * Overrides (if exists) the timeout to close the notification\n *\n * @param timeout the time in ms\n */\n protected _initializeTimeout(timeout: number) {\n if (this._timeoutID) {\n this._cancelTimeout(this._timeoutID);\n }\n this._timeoutID = setTimeout(\n this._handleUserOrTimerInitiatedClose.bind(this, null),\n timeout\n ) as unknown as number;\n }\n\n /**\n * Handles `click` event on the close button.\n *\n * @param event The event.\n * @param event.target The event target.\n */\n protected _handleClickCloseButton({ target }: MouseEvent) {\n this._handleUserOrTimerInitiatedClose(target);\n }\n\n /**\n * Handles user-initiated or through timer close request of this modal.\n *\n * @param triggeredBy The element that triggered this close request, if there is one.\n */\n protected _handleUserOrTimerInitiatedClose(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 CDSInlineNotification).eventBeforeClose,\n init\n )\n )\n ) {\n this.open = false;\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSInlineNotification).eventClose,\n init\n )\n );\n }\n }\n }\n\n /**\n * @returns The template part for the close button.\n */\n protected _renderButton() {\n const {\n ariaLabel,\n _type: type,\n _handleClickCloseButton: handleClickCloseButton,\n } = this;\n return html`\n <button\n type=\"button\"\n class=\"${prefix}--${type}-notification__close-button\"\n aria-label=${ifDefined(ariaLabel)}\n title=${ifDefined(ariaLabel)}\n @click=\"${handleClickCloseButton}\">\n ${iconLoader(Close16, {\n class: `${prefix}--${type}-notification__close-icon`,\n })}\n </button>\n `;\n }\n\n /**\n * @returns The template part for the text contents.\n */\n protected _renderText() {\n const { subtitle, title, _type: type } = this;\n return html`\n <div class=\"${prefix}--${type}-notification__text-wrapper\">\n <p class=\"${prefix}--${type}-notification__title\">\n ${title}<slot name=\"title\"></slot>\n </p>\n <div class=\"${prefix}--${type}-notification__subtitle\">\n ${subtitle}<slot name=\"subtitle\"></slot>\n </div>\n <slot></slot>\n </div>\n `;\n }\n\n /**\n * @returns The template part for the icon.\n */\n protected _renderIcon() {\n const { statusIconDescription, kind, _type: type } = this;\n const IconComponent = iconNamesForKinds[kind];\n return !IconComponent\n ? undefined\n : iconLoader(IconComponent, {\n class: `${prefix}--${type}-notification__icon`,\n 'aria-label': statusIconDescription,\n });\n }\n\n /**\n * Provide a description for \"close\" icon button that can be read by screen readers\n */\n @property({ attribute: 'aria-label' })\n ariaLabel!: string;\n\n /**\n * `true` to hide the close button.\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-close-button' })\n hideCloseButton = false;\n\n /**\n * Provide a description for \"status\" icon that can be read by screen readers\n */\n @property({ attribute: 'status-icon-description' })\n statusIconDescription!: string;\n\n /**\n * Notification kind.\n */\n @property({ reflect: true })\n kind = NOTIFICATION_KIND.SUCCESS;\n\n /**\n * Low contrast mode\n */\n @property({ type: Boolean, reflect: true, attribute: 'low-contrast' })\n lowContrast = false;\n\n /**\n * `true` if the notification should be open.\n */\n @property({ type: Boolean, reflect: true })\n open = true;\n\n /**\n * Specify an optional duration the notification should be closed in\n */\n @property({ type: Number, reflect: true })\n timeout: number | null = null;\n\n /**\n * The subtitle.\n */\n @property()\n subtitle = '';\n\n /**\n * The title.\n */\n @property()\n title = '';\n\n connectedCallback() {\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'alert');\n }\n super.connectedCallback();\n }\n\n updated(changedProperties) {\n const openChanged = changedProperties.has('open');\n const timeoutChanged = changedProperties.has('timeout');\n\n if (openChanged || timeoutChanged) {\n if (this.open && this.timeout) {\n this._initializeTimeout(this.timeout);\n } else if (!this.open && this._timeoutID) {\n this._cancelTimeout(this._timeoutID);\n }\n }\n }\n\n render() {\n const { _type: type } = this;\n return html`\n <div class=\"${prefix}--${type}-notification__details\">\n ${this._renderIcon()}${this._renderText()}\n </div>\n ${this._renderButton()}\n `;\n }\n\n /**\n * The name of the custom event fired before this notification is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this notification.\n */\n static get eventBeforeClose() {\n return `${prefix}-notification-beingclosed`;\n }\n\n /**\n * The name of the custom event fired after this notification is closed upon a user gesture.\n */\n static get eventClose() {\n return `${prefix}-notification-closed`;\n }\n\n static styles = styles;\n}\n\nexport default CDSInlineNotification;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper.js","names":[],"sources":["../../../../src/components/notification/stories/helper.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 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 { NOTIFICATION_KIND } from '../inline-notification';\n\nconst kinds = {\n [`Error (${NOTIFICATION_KIND.ERROR})`]: NOTIFICATION_KIND.ERROR,\n [`Info (${NOTIFICATION_KIND.INFO})`]: NOTIFICATION_KIND.INFO,\n [`Info (${NOTIFICATION_KIND.INFO_SQUARE})`]: NOTIFICATION_KIND.INFO_SQUARE,\n [`Success (${NOTIFICATION_KIND.SUCCESS})`]: NOTIFICATION_KIND.SUCCESS,\n [`Warning (${NOTIFICATION_KIND.WARNING})`]: NOTIFICATION_KIND.WARNING,\n [`Warning Alt (${NOTIFICATION_KIND.WARNING_ALT})`]:\n NOTIFICATION_KIND.WARNING_ALT,\n};\n\nexport default kinds;\n"],"mappings":";;;;;;;;;;AASA,MAAM,QAAQ;EACX,kBAAkC;EAClC,gBAAgC;EAChC,uBAAuC;EACvC,sBAAsC;EACtC,sBAAsC;EACtC,8BAA8C;
|
|
1
|
+
{"version":3,"file":"helper.js","names":[],"sources":["../../../../src/components/notification/stories/helper.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 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 { NOTIFICATION_KIND } from '../inline-notification';\n\nconst kinds = {\n [`Error (${NOTIFICATION_KIND.ERROR})`]: NOTIFICATION_KIND.ERROR,\n [`Info (${NOTIFICATION_KIND.INFO})`]: NOTIFICATION_KIND.INFO,\n [`Info (${NOTIFICATION_KIND.INFO_SQUARE})`]: NOTIFICATION_KIND.INFO_SQUARE,\n [`Success (${NOTIFICATION_KIND.SUCCESS})`]: NOTIFICATION_KIND.SUCCESS,\n [`Warning (${NOTIFICATION_KIND.WARNING})`]: NOTIFICATION_KIND.WARNING,\n [`Warning Alt (${NOTIFICATION_KIND.WARNING_ALT})`]:\n NOTIFICATION_KIND.WARNING_ALT,\n};\n\nexport default kinds;\n"],"mappings":";;;;;;;;;;AASA,MAAM,QAAQ;EACX,kBAAkC;EAClC,gBAAgC;EAChC,uBAAuC;EACvC,sBAAsC;EACtC,sBAAsC;EACtC,8BAA8C;AAEjD"}
|
|
@@ -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 "./defs.js";
|
|
12
12
|
import inline_notification_default from "./inline-notification.js";
|
|
13
13
|
import toast_notification_default$1 from "./toast-notification.scss.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast-notification.js","names":["CDSInlineNotification","styles","customElement"],"sources":["../../../src/components/notification/toast-notification.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { NOTIFICATION_TYPE } from './defs';\nimport CDSInlineNotification from './inline-notification';\nimport styles from './toast-notification.scss?lit';\n\n/**\n * Toast notification.\n *\n * @element cds-toast-notification\n * @slot subtitle - The subtitle.\n * @slot title - The title.\n * @fires cds-notification-beingclosed\n * The custom event fired before this notification is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this notification.\n * @fires cds-notification-closed - The custom event fired after this notification is closed upon a user gesture.\n */\n@customElement(`${prefix}-toast-notification`)\nclass CDSToastNotification extends CDSInlineNotification {\n protected _type = NOTIFICATION_TYPE.TOAST;\n\n protected _renderText() {\n const { caption, subtitle, title, _type: type } = this;\n return html`\n <div class=\"${prefix}--${type}-notification__title\">\n ${title}<slot name=\"title\"></slot>\n </div>\n <div class=\"${prefix}--${type}-notification__subtitle\">\n ${subtitle}<slot name=\"subtitle\"></slot>\n </div>\n ${caption || this.querySelector('[slot=\"caption\"]')\n ? html`\n <div class=\"${prefix}--${type}-notification__caption\">\n ${caption}<slot name=\"caption\"></slot>\n </div>\n `\n : null}\n <slot></slot>\n `;\n }\n\n /**\n * Specify the caption\n */\n @property()\n caption = '';\n\n render() {\n const { _type: type } = this;\n return html`\n ${this._renderIcon()}\n <div class=\"${prefix}--${type}-notification__details\">\n ${this._renderText()}\n </div>\n ${this._renderButton()}\n `;\n }\n\n static styles = styles;\n}\n\nexport default CDSToastNotification;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,IAAA,uBAAA,MACM,6BAA6BA,4BAAsB;;;;iBA2B7C;;CAxBV,cAAwB;EACtB,MAAM,EAAE,SAAS,UAAU,OAAO,OAAO,SAAS;
|
|
1
|
+
{"version":3,"file":"toast-notification.js","names":["CDSInlineNotification","styles","customElement"],"sources":["../../../src/components/notification/toast-notification.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { NOTIFICATION_TYPE } from './defs';\nimport CDSInlineNotification from './inline-notification';\nimport styles from './toast-notification.scss?lit';\n\n/**\n * Toast notification.\n *\n * @element cds-toast-notification\n * @slot subtitle - The subtitle.\n * @slot title - The title.\n * @fires cds-notification-beingclosed\n * The custom event fired before this notification is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this notification.\n * @fires cds-notification-closed - The custom event fired after this notification is closed upon a user gesture.\n */\n@customElement(`${prefix}-toast-notification`)\nclass CDSToastNotification extends CDSInlineNotification {\n protected _type = NOTIFICATION_TYPE.TOAST;\n\n protected _renderText() {\n const { caption, subtitle, title, _type: type } = this;\n return html`\n <div class=\"${prefix}--${type}-notification__title\">\n ${title}<slot name=\"title\"></slot>\n </div>\n <div class=\"${prefix}--${type}-notification__subtitle\">\n ${subtitle}<slot name=\"subtitle\"></slot>\n </div>\n ${caption || this.querySelector('[slot=\"caption\"]')\n ? html`\n <div class=\"${prefix}--${type}-notification__caption\">\n ${caption}<slot name=\"caption\"></slot>\n </div>\n `\n : null}\n <slot></slot>\n `;\n }\n\n /**\n * Specify the caption\n */\n @property()\n caption = '';\n\n render() {\n const { _type: type } = this;\n return html`\n ${this._renderIcon()}\n <div class=\"${prefix}--${type}-notification__details\">\n ${this._renderText()}\n </div>\n ${this._renderButton()}\n `;\n }\n\n static styles = styles;\n}\n\nexport default CDSToastNotification;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,IAAA,uBAAA,MACM,6BAA6BA,4BAAsB;;;;iBA2B7C;;CAxBV,cAAwB;EACtB,MAAM,EAAE,SAAS,UAAU,OAAO,OAAO,SAAS;EAClD,OAAO,IAAI;0BACY,IAAI,KAAK;UAC1B,MAAM;;0BAEW,IAAI,KAAK;UAC1B,SAAS;;QAEX,WAAW,KAAK,cAAc,oBAAkB,IAC9C,IAAI;gCACmB,IAAI,KAAK;gBAC1B,QAAQ;;cAGd,KAAK;;;CAGb;CAQA,SAAS;EACP,MAAM,EAAE,OAAO,SAAS;EACxB,OAAO,IAAI;QACP,KAAK,YAAY,EAAE;0BACA,IAAI,KAAK;UAC1B,KAAK,YAAY,EAAE;;QAErB,KAAK,cAAc,EAAE;;CAE3B;;gBAEgBC;;AAClB;YAfG,SAAS,CAAA,GAAA,qBAAA,WAAA,WAAA,KAAA,CAAA;mCA3BXC,cAAc,wBAA8B,CAAA,GAAA,oBAAA;AA4C7C,IAAA,6BAAe"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defs.js","names":[],"sources":["../../../src/components/number-input/defs.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2020\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 NUMBER_INPUT_COLOR_SCHEME } from '../../globals/shared-enums';\n\n/**\n * Number input step direction\n */\nexport type NUMBER_INPUT_STEP_DIRECTION = 'down' | 'up';\n\n/**\n * Works in conjunction with VALIDATION_STATUS\n */\nexport enum NUMBER_INPUT_VALIDATION_STATUS {\n EXCEEDED_MAXIMUM = 'exceeded_maximum',\n EXCEEDED_MINIMUM = 'exceeded_minimum',\n}\n"],"mappings":";;;;;;;;;;;;AAiBA,IAAY,iCAAL,yBAAA,gCAAA;
|
|
1
|
+
{"version":3,"file":"defs.js","names":[],"sources":["../../../src/components/number-input/defs.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2020\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 NUMBER_INPUT_COLOR_SCHEME } from '../../globals/shared-enums';\n\n/**\n * Number input step direction\n */\nexport type NUMBER_INPUT_STEP_DIRECTION = 'down' | 'up';\n\n/**\n * Works in conjunction with VALIDATION_STATUS\n */\nexport enum NUMBER_INPUT_VALIDATION_STATUS {\n EXCEEDED_MAXIMUM = 'exceeded_maximum',\n EXCEEDED_MINIMUM = 'exceeded_minimum',\n}\n"],"mappings":";;;;;;;;;;;;AAiBA,IAAY,iCAAL,yBAAA,gCAAA;CACL,+BAAA,sBAAA;CACA,+BAAA,sBAAA;;AACF,EAAA,CAAA,CAAA"}
|
|
@@ -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/defs.js";
|
|
12
12
|
import "../text-input/text-input.js";
|
|
13
13
|
import number_input_default from "./number-input.scss.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-input-skeleton.js","names":["styles","customElement"],"sources":["../../../src/components/number-input/number-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 { prefix } from '../../globals/settings';\nimport styles from './number-input.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { INPUT_SIZE } from '../text-input/text-input';\n\n/**\n * Skeleton of number input.\n */\n@customElement(`${prefix}-number-input-skeleton`)\nclass CDSNumberInputSkeleton extends LitElement {\n /**\n * `true` if the label should be hidden. Corresponds to the attribute with the same name.\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-label' })\n hideLabel = false;\n\n /**\n * Specify the size of the Number Input skeleton.\n */\n @property({ reflect: true })\n size = INPUT_SIZE.MEDIUM;\n\n render() {\n const { hideLabel, size } = this;\n return html`\n ${hideLabel\n ? ''\n : html` <span class=\"${prefix}--label ${prefix}--skeleton\"></span> `}\n <div\n class=\"${prefix}--number ${prefix}--skeleton ${prefix}--number--${size}\"></div>\n `;\n }\n\n static styles = styles;\n}\n\nexport default CDSNumberInputSkeleton;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,IAAA,yBAAA,MACM,+BAA+B,WAAW;;;mBAKlC;;;CAQZ,SAAS;EACP,MAAM,EAAE,WAAW,SAAS;
|
|
1
|
+
{"version":3,"file":"number-input-skeleton.js","names":["styles","customElement"],"sources":["../../../src/components/number-input/number-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 { prefix } from '../../globals/settings';\nimport styles from './number-input.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { INPUT_SIZE } from '../text-input/text-input';\n\n/**\n * Skeleton of number input.\n */\n@customElement(`${prefix}-number-input-skeleton`)\nclass CDSNumberInputSkeleton extends LitElement {\n /**\n * `true` if the label should be hidden. Corresponds to the attribute with the same name.\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-label' })\n hideLabel = false;\n\n /**\n * Specify the size of the Number Input skeleton.\n */\n @property({ reflect: true })\n size = INPUT_SIZE.MEDIUM;\n\n render() {\n const { hideLabel, size } = this;\n return html`\n ${hideLabel\n ? ''\n : html` <span class=\"${prefix}--label ${prefix}--skeleton\"></span> `}\n <div\n class=\"${prefix}--number ${prefix}--skeleton ${prefix}--number--${size}\"></div>\n `;\n }\n\n static styles = styles;\n}\n\nexport default CDSNumberInputSkeleton;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,IAAA,yBAAA,MACM,+BAA+B,WAAW;;;mBAKlC;;;CAQZ,SAAS;EACP,MAAM,EAAE,WAAW,SAAS;EAC5B,OAAO,IAAI;QACP,YACE,KACA,IAAI,iBAAA,MAAwB,UAAA,MAAiB,sBAAsB;;uBAErD,WAAA,MAAkB,aAAA,MAAoB,YAAY,KAAK;;CAE7E;;gBAEgBA;;AAClB;YArBG,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,WAAW;AAAa,CAAC,CAAA,GAAA,uBAAA,WAAA,aAAA,KAAA,CAAA;YAMlE,SAAS,EAAE,SAAS,KAAK,CAAC,CAAA,GAAA,uBAAA,WAAA,QAAA,KAAA,CAAA;qCAX5BC,cAAc,2BAAiC,CAAA,GAAA,sBAAA;AA4BhD,IAAA,gCAAe"}
|
|
@@ -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/defs.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-input.js","names":["CDSTextInput","ifNonEmpty","styles","customElement"],"sources":["../../../src/components/number-input/number-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, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport Add16 from '@carbon/icons/es/add/16.js';\nimport Subtract16 from '@carbon/icons/es/subtract/16.js';\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 {\n NUMBER_INPUT_VALIDATION_STATUS,\n NUMBER_INPUT_STEP_DIRECTION,\n} from './defs';\nimport styles from './number-input.scss?lit';\nimport CDSTextInput, { INPUT_SIZE } from '../text-input/text-input';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { NumberFormatter, NumberParser } from '@carbon/utilities';\n\nexport { NUMBER_INPUT_VALIDATION_STATUS };\n\n/**\n * Number input type\n */\nexport enum NUMBER_INPUT_TYPE {\n /**\n * Number type - uses native number input\n */\n NUMBER = 'number',\n /**\n * Text type - uses text input with locale-based formatting\n */\n TEXT = 'text',\n}\n\n/**\n * Number input.\n *\n * @element cds-number-input\n * @fires cds-number-input\n * The name of the custom event fired after the value is changed upon a user gesture.\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}-number-input`)\nclass CDSNumberInput extends CDSTextInput {\n /**\n * The underlying input element\n */\n @query('input')\n protected _input!: HTMLInputElement;\n\n /**\n * The current number value (used for type=\"text\")\n */\n @state()\n protected _numberValue: number = NaN;\n\n /**\n * The previous number value (used for type=\"text\")\n */\n @state()\n protected _previousNumberValue: number = NaN;\n\n /**\n * The current input text value (used for type=\"text\")\n */\n @state()\n protected _inputValue: string = '';\n\n /**\n * Internal validation state (used for type=\"text\")\n */\n @state()\n protected _invalid: boolean = false;\n\n /**\n * Flag to track if the component has been interacted with by the user\n * Used to prevent defaultValue from overriding user-cleared input\n */\n @state()\n protected _hasUserInteraction: boolean = false;\n\n /**\n * NumberFormatter instance for locale-based formatting\n */\n protected _numberFormatter: NumberFormatter | null = null;\n\n /**\n * NumberParser instance for locale-based parsing\n */\n protected _numberParser: NumberParser | null = null;\n\n /**\n * Handles `input` event on the `input` in the shadow DOM.\n */\n protected _handleInput(event: Event) {\n const { target } = event;\n const { value } = target as HTMLInputElement;\n\n if (this.type === NUMBER_INPUT_TYPE.NUMBER) {\n const direction =\n this._value !== undefined && Number(value) > Number(this._value)\n ? 'up'\n : 'down';\n\n this._dispatchInputEvent(value, direction);\n this._value = value;\n // Request update to update invalid state\n this.requestUpdate();\n } else if (this.type === NUMBER_INPUT_TYPE.TEXT) {\n const _value = this.allowEmpty && value === '' ? '' : value;\n const parsedValue = this._numberParser?.parse(_value) ?? NaN;\n\n // Mark that user has interacted with the input\n this._hasUserInteraction = true;\n\n this._numberValue = parsedValue;\n this._inputValue = _value;\n\n // Update _value to keep it synchronized with the current numeric value\n // This ensures locale/formatOptions changes use the current value, not stale data\n if (!isNaN(parsedValue)) {\n this._value = String(parsedValue);\n } else if (this.allowEmpty && _value === '') {\n this._value = '';\n }\n\n // Validate on input when validate function is provided\n if (this.validate) {\n const isValid = this.validate(_value, this.locale);\n // Set internal invalid state only if validate explicitly returns false\n // true or undefined means valid (undefined defers to built-in validation)\n this._invalid = isValid === false;\n } else {\n // Clear internal invalid state when no validation function\n this._invalid = false;\n }\n }\n }\n\n /**\n * Handles `click` event on the down button in the shadow DOM.\n */\n protected _handleUserInitiatedStepDown() {\n const { _input: input } = this;\n const valueChanged = this._handleStep('down');\n\n // Only dispatch event if value actually changed\n if (valueChanged) {\n const newValue =\n this.type === NUMBER_INPUT_TYPE.TEXT ? this._numberValue : input.value;\n\n this._dispatchInputEvent(newValue, 'down');\n }\n }\n\n /**\n * Handles `click` event on the up button in the shadow DOM.\n */\n protected _handleUserInitiatedStepUp() {\n const { _input: input } = this;\n const valueChanged = this._handleStep('up');\n\n // Only dispatch event if value actually changed\n if (valueChanged) {\n const newValue =\n this.type === NUMBER_INPUT_TYPE.TEXT ? this._numberValue : input.value;\n\n this._dispatchInputEvent(newValue, 'up');\n }\n }\n\n /**\n * Handles `focus` event on the `input` in the shadow DOM.\n */\n protected _handleFocus(event: FocusEvent) {\n if (this.disableWheel) {\n (event.target as HTMLInputElement).addEventListener(\n 'wheel',\n this._preventWheel,\n { passive: false }\n );\n }\n }\n\n /**\n * Handles `blur` event on the `input` in the shadow DOM.\n */\n protected _handleBlur(event: FocusEvent) {\n if (this.disableWheel) {\n (event.target as HTMLInputElement).removeEventListener(\n 'wheel',\n this._preventWheel\n );\n }\n\n if (this.type === NUMBER_INPUT_TYPE.TEXT) {\n const rawValue = (event.target as HTMLInputElement).value;\n\n // Validate raw input\n const validationResult = this.validate\n ? this.validate(rawValue, this.locale)\n : true;\n\n // undefined means defer to built-in validation (treat as valid for custom validation)\n const isValid = validationResult !== false;\n\n if (isValid) {\n const formattedValue = isNaN(this._numberValue)\n ? ''\n : (this._numberFormatter?.format(this._numberValue) ?? '');\n\n this._inputValue = formattedValue;\n\n // Re-parse the formatted value to ensure consistency\n const parsedFormattedValue =\n this._numberParser?.parse(formattedValue) ?? NaN;\n\n // Dispatch change event if value changed\n if (\n !(isNaN(this._previousNumberValue) && isNaN(parsedFormattedValue)) &&\n this._previousNumberValue !== parsedFormattedValue\n ) {\n const direction =\n this._previousNumberValue < parsedFormattedValue ? 'up' : 'down';\n\n this._dispatchInputEvent(parsedFormattedValue, direction);\n }\n\n this._numberValue = parsedFormattedValue;\n this._previousNumberValue = parsedFormattedValue;\n this._value = String(parsedFormattedValue);\n this._invalid = false;\n } else {\n this._invalid = true;\n // Keep the invalid input as-is\n this._inputValue = rawValue;\n }\n\n this.requestUpdate();\n }\n }\n\n /**\n * Handles keyboard events for arrow up/down when type=\"text\"\n */\n protected _handleKeyDown(event: KeyboardEvent) {\n if (this.readonly) {\n return;\n }\n if (this.type === NUMBER_INPUT_TYPE.TEXT) {\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n const valueChanged = this._handleStep('up');\n\n // Only dispatch event if value actually changed\n if (valueChanged) {\n this._dispatchInputEvent(this._numberValue, 'up');\n }\n } else if (event.key === 'ArrowDown') {\n event.preventDefault();\n const valueChanged = this._handleStep('down');\n\n // Only dispatch event if value actually changed\n if (valueChanged) {\n this._dispatchInputEvent(this._numberValue, 'down');\n }\n }\n }\n }\n\n /**\n * Prevents wheel events from changing the input value.\n */\n protected _preventWheel = (event: WheelEvent) => {\n event.preventDefault();\n };\n\n protected _min = '';\n protected _max = '';\n protected _step = '1';\n\n /**\n * The minimum value allowed in the input\n */\n @property({ reflect: true })\n get min() {\n return this._min.toString();\n }\n\n set min(value) {\n const oldValue = this.min;\n this._min = value;\n this.requestUpdate('min', oldValue);\n }\n\n /**\n * The maximum value allowed in the input\n */\n @property({ reflect: true })\n get max() {\n return this._max.toString();\n }\n\n set max(value) {\n const oldValue = this.max;\n this._max = value;\n this.requestUpdate('max', oldValue);\n }\n\n /**\n * The amount the value should increase or decrease by\n */\n @property({ reflect: true })\n get step() {\n return this._step.toString();\n }\n\n set step(value) {\n const oldValue = this.step;\n this._step = value;\n this.requestUpdate('step', oldValue);\n }\n\n /**\n * Provide a description for up/down icons that can be read by screen readers\n */\n @property({ attribute: 'icon-description' })\n iconDescription = '';\n\n /**\n * Aria text for the button that increments the value\n */\n @property({ attribute: 'increment-button-assistive-text' })\n incrementButtonAssistiveText = 'increase number input';\n\n /**\n * Aria text for the button that decrements the value\n */\n @property({ attribute: 'decrement-button-assistive-text' })\n decrementButtonAssistiveText = 'decrease number input';\n\n /**\n * Specify whether you want the steppers to be hidden\n */\n @property({ type: Boolean, attribute: 'hide-steppers', reflect: true })\n hideSteppers = false;\n\n /**\n * `true` to allow empty string.\n */\n @property({ type: Boolean, attribute: 'allow-empty', reflect: true })\n allowEmpty = false;\n\n /**\n * Optional starting value for uncontrolled state\n */\n @property({ attribute: 'default-value' })\n defaultValue = '';\n\n /**\n * Specify if the wheel functionality for the input should be disabled, or not\n */\n @property({ type: Boolean, attribute: 'disable-wheel', reflect: true })\n disableWheel = false;\n\n /**\n * Set to true to use the fluid variant.\n */\n @property({ type: Boolean })\n isFluid = false;\n\n /**\n * The input box size.\n */\n @property({ reflect: true })\n size = INPUT_SIZE.MEDIUM;\n\n /**\n * **Experimental**: Specify if the input should be of type text or number.\n * Use type=\"text\" with `locale`, `formatOptions`, and guide user input with `pattern` and `inputMode`.\n * @experimental\n */\n @property({ reflect: true })\n // @ts-expect-error - Override parent type property with number-specific types\n type: 'number' | 'text' = NUMBER_INPUT_TYPE.NUMBER;\n\n /**\n * **Experimental:** Specify a BCP47 language code for parsing and formatting.\n * Use with `type=\"text\"`, has no effect when `type=\"number\"`.\n * @experimental\n */\n @property({ reflect: true })\n locale = 'en-US';\n\n /**\n * **Experimental:** Specify Intl.NumberFormat options applied to internal number parsing and formatting.\n * Use with `type=\"text\"`, has no effect when `type=\"number\"`.\n * @experimental\n */\n @property({ type: Object, attribute: 'format-options' })\n formatOptions: Intl.NumberFormatOptions = {};\n\n /**\n * When type=\"text\", provide an optional pattern to restrict user input.\n */\n @property({ reflect: true })\n pattern = '[0-9]*';\n\n /**\n * Instruct the browser which keyboard to display on mobile devices.\n */\n @property({ reflect: true, attribute: 'input-mode' })\n inputMode:\n | 'none'\n | 'text'\n | 'tel'\n | 'url'\n | 'email'\n | 'numeric'\n | 'decimal'\n | 'search' = 'decimal';\n\n /**\n * Provide the value stepping should begin at when the input is empty\n */\n @property({ type: Number, attribute: 'step-start-value' })\n stepStartValue = 0;\n\n /**\n * Optional validation function for type=\"text\".\n * Should return false to fail validation, true to pass, or undefined to defer to built-in validation.\n * Note: the min and max attributes still takes priority if they are defined.\n */\n validate?: (value: string, locale: string) => boolean | undefined;\n\n /**\n * Override value setter to handle formatting for type=\"text\"\n */\n @property({ reflect: true })\n override get value() {\n return super.value;\n }\n\n override set value(val: string) {\n const oldValue = this._value;\n\n if (this.type === NUMBER_INPUT_TYPE.TEXT) {\n // Handle empty string\n if (val === '') {\n this._numberValue = NaN;\n this._previousNumberValue = NaN;\n this._inputValue = '';\n this._value = '';\n this.requestUpdate('value', oldValue);\n if (this._input) {\n this._input.value = '';\n }\n return;\n }\n\n // Ensure formatters are initialized before using them\n if (!this._numberFormatter || !this._numberParser) {\n this._initializeFormatters();\n }\n\n // Parse the value: string values are parsed, numbers are used directly\n let parsed: number;\n if (typeof val === 'string') {\n parsed = this._numberParser?.parse(val) ?? Number(val);\n } else {\n parsed = val as number;\n }\n\n // Synchronize all text mode state\n this._syncTextModeState(parsed, true);\n this.requestUpdate('value', oldValue);\n } else {\n // For type=\"number\" or empty values, use parent behavior\n super.value = val;\n }\n }\n\n /**\n * Initialize formatters when component connects\n */\n connectedCallback() {\n super.connectedCallback();\n this._initializeFormatters();\n }\n\n /**\n * Called before updates to initialize default value\n */\n willUpdate(changedProperties: Map<string, unknown>) {\n super.willUpdate?.(changedProperties);\n\n // Handle type switching before render\n if (changedProperties.has('type')) {\n this._initializeFormatters();\n this._invalid = false;\n\n const currentValue = this._value || this.value;\n if (currentValue) {\n const parsed = this._numberParser?.parse(currentValue) ?? NaN;\n\n if (!isNaN(parsed)) {\n this._numberValue = parsed;\n this._previousNumberValue = parsed;\n\n if (this.type === NUMBER_INPUT_TYPE.TEXT) {\n this._inputValue = this._numberFormatter?.format(parsed) ?? '';\n this._value = currentValue;\n } else {\n const plainValue = parsed.toString();\n this._value = plainValue;\n super.value = plainValue;\n }\n }\n }\n }\n\n // Handle locale or formatOptions changes before render\n if (\n changedProperties.has('locale') ||\n changedProperties.has('formatOptions')\n ) {\n this._initializeFormatters();\n\n if (this.type === NUMBER_INPUT_TYPE.TEXT) {\n // Re-format with new formatters\n if (this._value) {\n const parsed = Number(this._value);\n if (!isNaN(parsed)) {\n this._syncTextModeState(parsed);\n }\n } else if (!isNaN(this._numberValue)) {\n this._syncTextModeState(this._numberValue);\n }\n }\n }\n\n // Initialize from defaultValue if no value is set\n // This runs before every render, but only sets _value if it's empty\n // AND the user hasn't interacted with the input yet\n if (!this._value && this.defaultValue && !this._hasUserInteraction) {\n if (this.type === NUMBER_INPUT_TYPE.TEXT) {\n const parsed = this._numberParser?.parse(this.defaultValue) ?? NaN;\n this._syncTextModeState(parsed);\n } else {\n // Set the internal value to defaultValue for non-text types\n this._value = this.defaultValue;\n }\n }\n }\n\n /**\n * Update formatters when properties change\n */\n // @ts-expect-error - Override to accept changedProperties parameter\n updated(changedProperties: Map<string, unknown>) {\n super.updated?.();\n // Update the DOM input element if formatOptions or locale changed\n if (\n (changedProperties.has('locale') ||\n changedProperties.has('formatOptions')) &&\n this.type === NUMBER_INPUT_TYPE.TEXT &&\n this._input\n ) {\n this._input.value = this._inputValue;\n }\n }\n\n /**\n * Initialize NumberFormatter and NumberParser instances\n */\n protected _initializeFormatters() {\n if (this.type === NUMBER_INPUT_TYPE.TEXT) {\n try {\n this._numberFormatter = new NumberFormatter(\n this.locale,\n this.formatOptions\n );\n this._numberParser = new NumberParser(this.locale, this.formatOptions);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('[NumberInput] Failed to initialize formatters:', error);\n }\n }\n }\n\n /**\n * Get input validity\n */\n _getInputValidity() {\n if (this.invalid || this._invalid) {\n return false;\n }\n\n // Determine which value to validate based on type and validate function\n // Match React's logic: validate ? inputValue : (type === 'number' ? value : numberValue)\n const valueToCheck =\n this.validate && this.type === NUMBER_INPUT_TYPE.TEXT\n ? this._inputValue\n : this.type === NUMBER_INPUT_TYPE.TEXT\n ? this._numberValue\n : this.value;\n\n // Skip validation if value is empty and allowEmpty is true\n if (valueToCheck === '') {\n const result = this.allowEmpty;\n return result;\n }\n\n // Normalize the value to a number\n let numericValue: number;\n if (typeof valueToCheck === 'string') {\n // For type=\"number\", use simple Number() conversion\n // For type=\"text\", use NumberParser to handle formatted numbers like \"1,234\"\n if (this.type === NUMBER_INPUT_TYPE.NUMBER) {\n numericValue = Number(valueToCheck);\n } else {\n numericValue = this._numberParser?.parse(valueToCheck) ?? NaN;\n }\n } else if (typeof valueToCheck === 'number') {\n numericValue = valueToCheck;\n } else {\n numericValue = NaN;\n }\n\n // If value is NaN, check allowEmpty\n if (isNaN(numericValue)) {\n const result = this.allowEmpty;\n return result;\n }\n\n // Use custom validate ONLY for formatting validation (only for type=\"text\")\n if (this.validate && this.type === NUMBER_INPUT_TYPE.TEXT) {\n const isFormatValid = this.validate(this._inputValue, this.locale);\n if (isFormatValid === false) {\n return false; // invalid format\n }\n }\n\n // Check min/max bounds on the numeric value\n if (this.max !== '' && numericValue > Number(this.max)) {\n return false;\n }\n if (this.min !== '' && numericValue < Number(this.min)) {\n return false;\n }\n return true;\n }\n\n /**\n * Get decimal places from a number\n */\n getDecimalPlaces = (num: number) => {\n const parts = num.toString().split('.');\n return parts[1] ? parts[1].length : 0;\n };\n\n /**\n * Clamp a value between min and max\n */\n protected _clamp(value: number, min: number, max: number): number {\n return Math.min(Math.max(value, min), max);\n }\n\n /**\n * Handle stepping up or down\n * @returns true if the value changed, false if it was clamped to the same value\n */\n protected _handleStep(direction: NUMBER_INPUT_STEP_DIRECTION) {\n const currentValue =\n this.type === NUMBER_INPUT_TYPE.NUMBER\n ? Number(this._input.value)\n : this._numberValue;\n\n let rawValue: number;\n\n if (\n Number.isNaN(currentValue) ||\n currentValue === null ||\n currentValue === undefined\n ) {\n if (typeof this.stepStartValue === 'number' && this.stepStartValue) {\n rawValue = this.stepStartValue;\n } else if (\n (this.min &&\n Number(this.min) < 0 &&\n this.max &&\n Number(this.max) > 0) ||\n (!this.max && !this.min) ||\n this.max\n ) {\n rawValue = direction === 'up' ? 1 : -1;\n } else if (\n (this.min &&\n Number(this.min) > 0 &&\n this.max &&\n Number(this.max) > 0) ||\n this.min\n ) {\n rawValue = Number(this.min);\n } else {\n rawValue = 0;\n }\n } else if (direction === 'up') {\n rawValue = currentValue + Number(this.step);\n } else {\n rawValue = currentValue - Number(this.step);\n }\n\n const precision = Math.max(\n this.getDecimalPlaces(currentValue),\n this.getDecimalPlaces(Number(this.step))\n );\n\n const floatValue = parseFloat(Number(rawValue).toFixed(precision));\n const newValue = this._clamp(\n floatValue,\n this.min !== '' ? Number(this.min) : -Infinity,\n this.max !== '' ? Number(this.max) : Infinity\n );\n\n // Check if value actually changed\n const valueChanged = currentValue !== newValue;\n\n if (this.type === NUMBER_INPUT_TYPE.NUMBER) {\n this._value = String(newValue);\n this.value = this._value;\n } else if (this.type === NUMBER_INPUT_TYPE.TEXT) {\n // Synchronize text mode state after step operation\n this._syncTextModeState(newValue);\n this.requestUpdate();\n }\n\n return valueChanged;\n }\n\n /**\n * Handles incrementing the value in the input\n */\n stepUp() {\n this._handleStep('up');\n }\n\n /**\n * Handles decrementing the value in the input\n */\n stepDown() {\n this._handleStep('down');\n }\n\n protected _getInputValue() {\n if (this.type === NUMBER_INPUT_TYPE.TEXT) {\n // For type=\"text\", use _inputValue directly without falling back to defaultValue\n // defaultValue is only used during initialization (in willUpdate)\n return this._inputValue;\n }\n\n return this._value || this.defaultValue || '';\n }\n\n protected _dispatchInputEvent(\n value: string | number,\n direction: NUMBER_INPUT_STEP_DIRECTION\n ) {\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSNumberInput).eventInput, {\n bubbles: true,\n composed: true,\n cancelable: false,\n detail: {\n value,\n direction,\n },\n })\n );\n }\n\n /**\n * Synchronizes text mode state by formatting a numeric value and updating all related state variables.\n * This centralizes the logic for managing _numberValue, _inputValue, _previousNumberValue, and _value.\n *\n * @param numericValue - The numeric value to format and synchronize\n * @param updateInput - Whether to update the DOM input element (default: false)\n */\n protected _syncTextModeState(numericValue: number, updateInput = false) {\n // Format the numeric value\n const formattedValue = isNaN(numericValue)\n ? ''\n : (this._numberFormatter?.format(numericValue) ?? String(numericValue));\n\n // Parse the formatted value back to ensure consistency\n // (formatting can alter the number, e.g., rounding)\n const parsedValue = formattedValue\n ? (this._numberParser?.parse(formattedValue) ?? numericValue)\n : numericValue;\n\n // Update all state variables\n this._numberValue = parsedValue;\n this._previousNumberValue = parsedValue;\n this._inputValue = formattedValue;\n this._value = String(parsedValue);\n\n // Update DOM input if requested\n if (updateInput && this._input) {\n this._input.value = formattedValue;\n }\n }\n\n render() {\n const {\n _handleInput: handleInput,\n _handleUserInitiatedStepDown: handleUserInitiatedStepDown,\n _handleUserInitiatedStepUp: handleUserInitiatedStepUp,\n _handleFocus: handleFocus,\n _handleBlur: handleBlur,\n _handleKeyDown: handleKeyDown,\n } = this;\n\n const isValid = this._getInputValidity();\n const invalidIcon = iconLoader(WarningFilled16, {\n class: `${prefix}--number__invalid`,\n });\n\n const warnIcon = iconLoader(WarningAltFilled16, {\n class: `${prefix}--number__invalid ${prefix}--number__invalid--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 buttonsDisabled: boolean;\n } = {\n disabled: this.disabled,\n invalid: !this.readonly && !isValid,\n warn: !this.readonly && isValid && this.warn,\n 'slot-name': '',\n 'slot-text': '',\n icon: null,\n buttonsDisabled: this.disabled || this.readonly,\n };\n\n const wrapperClasses = classMap({\n [`${prefix}--number`]: true,\n [`${prefix}--number--${this.size}`]: this.size,\n [`${prefix}--number--nosteppers`]: this.hideSteppers,\n [`${prefix}--number--readonly`]: this.readonly,\n });\n\n const inputWrapperClasses = classMap({\n [`${prefix}--number__input-wrapper`]: true,\n [`${prefix}--number__input-wrapper--warning`]: normalizedProps.warn,\n [`${prefix}--number__input-wrapper--decorator`]: this._hasAILabel,\n });\n\n const labelClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--label--disabled`]: normalizedProps.disabled,\n [`${prefix}--visually-hidden`]: this.hideLabel,\n });\n\n const helperTextClasses = classMap({\n [`${prefix}--form__helper-text`]: true,\n [`${prefix}--form__helper-text--disabled`]: normalizedProps.disabled,\n });\n\n const inputValue = this._getInputValue();\n\n const incrementButton = html`\n <button\n class=\"${prefix}--number__control-btn up-icon\"\n aria-label=\"${this.iconDescription ||\n this.incrementButtonAssistiveText}\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n type=\"button\"\n ?disabled=${normalizedProps.buttonsDisabled}\n @click=${handleUserInitiatedStepUp}>\n ${iconLoader(Add16)}\n </button>\n <div class=\"${prefix}--number__rule-divider\"></div>\n `;\n\n const decrementButton = html`\n <button\n class=\"${prefix}--number__control-btn down-icon\"\n aria-label=\"${this.iconDescription ||\n this.decrementButtonAssistiveText}\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n type=\"button\"\n ?disabled=${normalizedProps.buttonsDisabled}\n @click=${handleUserInitiatedStepDown}>\n ${iconLoader(Subtract16)}\n </button>\n <div class=\"${prefix}--number__rule-divider\"></div>\n `;\n\n const input = html`\n <input\n autocomplete=\"${ifNonEmpty(this.autocomplete)}\"\n ?autofocus=\"${this.autofocus}\"\n ?data-invalid=\"${normalizedProps.invalid}\"\n ?disabled=\"${normalizedProps.disabled}\"\n id=\"input\"\n name=\"${ifNonEmpty(this.name)}\"\n pattern=\"${this.type === NUMBER_INPUT_TYPE.TEXT\n ? ifNonEmpty(this.pattern)\n : ''}\"\n ?readonly=\"${this.readonly}\"\n ?required=\"${this.required}\"\n type=\"${this.type}\"\n inputmode=\"${this.type === NUMBER_INPUT_TYPE.TEXT\n ? this.inputMode\n : ''}\"\n .value=\"${inputValue}\"\n @input=\"${handleInput}\"\n @focus=\"${handleFocus}\"\n @blur=\"${handleBlur}\"\n @keydown=\"${handleKeyDown}\"\n min=\"${this.type === NUMBER_INPUT_TYPE.NUMBER\n ? ifNonEmpty(this.min)\n : ''}\"\n max=\"${this.type === NUMBER_INPUT_TYPE.NUMBER\n ? ifNonEmpty(this.max)\n : ''}\"\n step=\"${this.type === NUMBER_INPUT_TYPE.NUMBER\n ? ifNonEmpty(this.step)\n : ''}\"\n role=\"alert\"\n aria-atomic=\"true\" />\n `;\n\n if (normalizedProps.invalid) {\n normalizedProps.icon = invalidIcon;\n normalizedProps['slot-name'] = 'invalid-text';\n normalizedProps['slot-text'] = this.invalidText;\n } else if (normalizedProps.warn) {\n normalizedProps.icon = warnIcon;\n normalizedProps['slot-name'] = 'warn-text';\n normalizedProps['slot-text'] = this.warnText;\n }\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 const helper = this.helperText\n ? html`<div\n class=\"${helperTextClasses}\"\n id=\"helper-text\"\n ?hidden=\"${normalizedProps.invalid || normalizedProps.warn}\">\n <slot name=\"helper-text\"> ${this.helperText} </slot>\n </div>`\n : null;\n\n return html`\n <div class=\"${wrapperClasses}\" ?data-invalid=${normalizedProps.invalid}>\n <label class=\"${labelClasses}\" for=\"input\">\n <slot name=\"label-text\"> ${this.label} </slot>\n </label>\n <div class=\"${inputWrapperClasses}\">\n ${normalizedProps.icon} ${input}\n <slot name=\"ai-label\" @slotchange=\"${this._handleSlotChange}\"></slot>\n <slot name=\"slug\" @slotchange=\"${this._handleSlotChange}\"></slot>\n <div class=\"${prefix}--number__controls\">\n ${!this.hideSteppers\n ? html`${decrementButton} ${incrementButton}`\n : null}\n </div>\n </div>\n ${this.isFluid\n ? html`<hr class=\"${prefix}--number-input__divider\" />`\n : null}\n ${validationMessage ?? helper}\n </div>\n `;\n }\n\n /**\n * The name of the custom event fired after the value is changed upon a user gesture.\n */\n static get eventInput() {\n return `${prefix}-number-input`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles;\n}\n\nexport default CDSNumberInput;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"number-input.js","names":["CDSTextInput","ifNonEmpty","styles","customElement"],"sources":["../../../src/components/number-input/number-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, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport Add16 from '@carbon/icons/es/add/16.js';\nimport Subtract16 from '@carbon/icons/es/subtract/16.js';\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 {\n NUMBER_INPUT_VALIDATION_STATUS,\n NUMBER_INPUT_STEP_DIRECTION,\n} from './defs';\nimport styles from './number-input.scss?lit';\nimport CDSTextInput, { INPUT_SIZE } from '../text-input/text-input';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { NumberFormatter, NumberParser } from '@carbon/utilities';\n\nexport { NUMBER_INPUT_VALIDATION_STATUS };\n\n/**\n * Number input type\n */\nexport enum NUMBER_INPUT_TYPE {\n /**\n * Number type - uses native number input\n */\n NUMBER = 'number',\n /**\n * Text type - uses text input with locale-based formatting\n */\n TEXT = 'text',\n}\n\n/**\n * Number input.\n *\n * @element cds-number-input\n * @fires cds-number-input\n * The name of the custom event fired after the value is changed upon a user gesture.\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}-number-input`)\nclass CDSNumberInput extends CDSTextInput {\n /**\n * The underlying input element\n */\n @query('input')\n protected _input!: HTMLInputElement;\n\n /**\n * The current number value (used for type=\"text\")\n */\n @state()\n protected _numberValue: number = NaN;\n\n /**\n * The previous number value (used for type=\"text\")\n */\n @state()\n protected _previousNumberValue: number = NaN;\n\n /**\n * The current input text value (used for type=\"text\")\n */\n @state()\n protected _inputValue: string = '';\n\n /**\n * Internal validation state (used for type=\"text\")\n */\n @state()\n protected _invalid: boolean = false;\n\n /**\n * Flag to track if the component has been interacted with by the user\n * Used to prevent defaultValue from overriding user-cleared input\n */\n @state()\n protected _hasUserInteraction: boolean = false;\n\n /**\n * NumberFormatter instance for locale-based formatting\n */\n protected _numberFormatter: NumberFormatter | null = null;\n\n /**\n * NumberParser instance for locale-based parsing\n */\n protected _numberParser: NumberParser | null = null;\n\n /**\n * Handles `input` event on the `input` in the shadow DOM.\n */\n protected _handleInput(event: Event) {\n const { target } = event;\n const { value } = target as HTMLInputElement;\n\n if (this.type === NUMBER_INPUT_TYPE.NUMBER) {\n const direction =\n this._value !== undefined && Number(value) > Number(this._value)\n ? 'up'\n : 'down';\n\n this._dispatchInputEvent(value, direction);\n this._value = value;\n // Request update to update invalid state\n this.requestUpdate();\n } else if (this.type === NUMBER_INPUT_TYPE.TEXT) {\n const _value = this.allowEmpty && value === '' ? '' : value;\n const parsedValue = this._numberParser?.parse(_value) ?? NaN;\n\n // Mark that user has interacted with the input\n this._hasUserInteraction = true;\n\n this._numberValue = parsedValue;\n this._inputValue = _value;\n\n // Update _value to keep it synchronized with the current numeric value\n // This ensures locale/formatOptions changes use the current value, not stale data\n if (!isNaN(parsedValue)) {\n this._value = String(parsedValue);\n } else if (this.allowEmpty && _value === '') {\n this._value = '';\n }\n\n // Validate on input when validate function is provided\n if (this.validate) {\n const isValid = this.validate(_value, this.locale);\n // Set internal invalid state only if validate explicitly returns false\n // true or undefined means valid (undefined defers to built-in validation)\n this._invalid = isValid === false;\n } else {\n // Clear internal invalid state when no validation function\n this._invalid = false;\n }\n }\n }\n\n /**\n * Handles `click` event on the down button in the shadow DOM.\n */\n protected _handleUserInitiatedStepDown() {\n const { _input: input } = this;\n const valueChanged = this._handleStep('down');\n\n // Only dispatch event if value actually changed\n if (valueChanged) {\n const newValue =\n this.type === NUMBER_INPUT_TYPE.TEXT ? this._numberValue : input.value;\n\n this._dispatchInputEvent(newValue, 'down');\n }\n }\n\n /**\n * Handles `click` event on the up button in the shadow DOM.\n */\n protected _handleUserInitiatedStepUp() {\n const { _input: input } = this;\n const valueChanged = this._handleStep('up');\n\n // Only dispatch event if value actually changed\n if (valueChanged) {\n const newValue =\n this.type === NUMBER_INPUT_TYPE.TEXT ? this._numberValue : input.value;\n\n this._dispatchInputEvent(newValue, 'up');\n }\n }\n\n /**\n * Handles `focus` event on the `input` in the shadow DOM.\n */\n protected _handleFocus(event: FocusEvent) {\n if (this.disableWheel) {\n (event.target as HTMLInputElement).addEventListener(\n 'wheel',\n this._preventWheel,\n { passive: false }\n );\n }\n }\n\n /**\n * Handles `blur` event on the `input` in the shadow DOM.\n */\n protected _handleBlur(event: FocusEvent) {\n if (this.disableWheel) {\n (event.target as HTMLInputElement).removeEventListener(\n 'wheel',\n this._preventWheel\n );\n }\n\n if (this.type === NUMBER_INPUT_TYPE.TEXT) {\n const rawValue = (event.target as HTMLInputElement).value;\n\n // Validate raw input\n const validationResult = this.validate\n ? this.validate(rawValue, this.locale)\n : true;\n\n // undefined means defer to built-in validation (treat as valid for custom validation)\n const isValid = validationResult !== false;\n\n if (isValid) {\n const formattedValue = isNaN(this._numberValue)\n ? ''\n : (this._numberFormatter?.format(this._numberValue) ?? '');\n\n this._inputValue = formattedValue;\n\n // Re-parse the formatted value to ensure consistency\n const parsedFormattedValue =\n this._numberParser?.parse(formattedValue) ?? NaN;\n\n // Dispatch change event if value changed\n if (\n !(isNaN(this._previousNumberValue) && isNaN(parsedFormattedValue)) &&\n this._previousNumberValue !== parsedFormattedValue\n ) {\n const direction =\n this._previousNumberValue < parsedFormattedValue ? 'up' : 'down';\n\n this._dispatchInputEvent(parsedFormattedValue, direction);\n }\n\n this._numberValue = parsedFormattedValue;\n this._previousNumberValue = parsedFormattedValue;\n this._value = String(parsedFormattedValue);\n this._invalid = false;\n } else {\n this._invalid = true;\n // Keep the invalid input as-is\n this._inputValue = rawValue;\n }\n\n this.requestUpdate();\n }\n }\n\n /**\n * Handles keyboard events for arrow up/down when type=\"text\"\n */\n protected _handleKeyDown(event: KeyboardEvent) {\n if (this.readonly) {\n return;\n }\n if (this.type === NUMBER_INPUT_TYPE.TEXT) {\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n const valueChanged = this._handleStep('up');\n\n // Only dispatch event if value actually changed\n if (valueChanged) {\n this._dispatchInputEvent(this._numberValue, 'up');\n }\n } else if (event.key === 'ArrowDown') {\n event.preventDefault();\n const valueChanged = this._handleStep('down');\n\n // Only dispatch event if value actually changed\n if (valueChanged) {\n this._dispatchInputEvent(this._numberValue, 'down');\n }\n }\n }\n }\n\n /**\n * Prevents wheel events from changing the input value.\n */\n protected _preventWheel = (event: WheelEvent) => {\n event.preventDefault();\n };\n\n protected _min = '';\n protected _max = '';\n protected _step = '1';\n\n /**\n * The minimum value allowed in the input\n */\n @property({ reflect: true })\n get min() {\n return this._min.toString();\n }\n\n set min(value) {\n const oldValue = this.min;\n this._min = value;\n this.requestUpdate('min', oldValue);\n }\n\n /**\n * The maximum value allowed in the input\n */\n @property({ reflect: true })\n get max() {\n return this._max.toString();\n }\n\n set max(value) {\n const oldValue = this.max;\n this._max = value;\n this.requestUpdate('max', oldValue);\n }\n\n /**\n * The amount the value should increase or decrease by\n */\n @property({ reflect: true })\n get step() {\n return this._step.toString();\n }\n\n set step(value) {\n const oldValue = this.step;\n this._step = value;\n this.requestUpdate('step', oldValue);\n }\n\n /**\n * Provide a description for up/down icons that can be read by screen readers\n */\n @property({ attribute: 'icon-description' })\n iconDescription = '';\n\n /**\n * Aria text for the button that increments the value\n */\n @property({ attribute: 'increment-button-assistive-text' })\n incrementButtonAssistiveText = 'increase number input';\n\n /**\n * Aria text for the button that decrements the value\n */\n @property({ attribute: 'decrement-button-assistive-text' })\n decrementButtonAssistiveText = 'decrease number input';\n\n /**\n * Specify whether you want the steppers to be hidden\n */\n @property({ type: Boolean, attribute: 'hide-steppers', reflect: true })\n hideSteppers = false;\n\n /**\n * `true` to allow empty string.\n */\n @property({ type: Boolean, attribute: 'allow-empty', reflect: true })\n allowEmpty = false;\n\n /**\n * Optional starting value for uncontrolled state\n */\n @property({ attribute: 'default-value' })\n defaultValue = '';\n\n /**\n * Specify if the wheel functionality for the input should be disabled, or not\n */\n @property({ type: Boolean, attribute: 'disable-wheel', reflect: true })\n disableWheel = false;\n\n /**\n * Set to true to use the fluid variant.\n */\n @property({ type: Boolean })\n isFluid = false;\n\n /**\n * The input box size.\n */\n @property({ reflect: true })\n size = INPUT_SIZE.MEDIUM;\n\n /**\n * **Experimental**: Specify if the input should be of type text or number.\n * Use type=\"text\" with `locale`, `formatOptions`, and guide user input with `pattern` and `inputMode`.\n * @experimental\n */\n @property({ reflect: true })\n // @ts-expect-error - Override parent type property with number-specific types\n type: 'number' | 'text' = NUMBER_INPUT_TYPE.NUMBER;\n\n /**\n * **Experimental:** Specify a BCP47 language code for parsing and formatting.\n * Use with `type=\"text\"`, has no effect when `type=\"number\"`.\n * @experimental\n */\n @property({ reflect: true })\n locale = 'en-US';\n\n /**\n * **Experimental:** Specify Intl.NumberFormat options applied to internal number parsing and formatting.\n * Use with `type=\"text\"`, has no effect when `type=\"number\"`.\n * @experimental\n */\n @property({ type: Object, attribute: 'format-options' })\n formatOptions: Intl.NumberFormatOptions = {};\n\n /**\n * When type=\"text\", provide an optional pattern to restrict user input.\n */\n @property({ reflect: true })\n pattern = '[0-9]*';\n\n /**\n * Instruct the browser which keyboard to display on mobile devices.\n */\n @property({ reflect: true, attribute: 'input-mode' })\n inputMode:\n | 'none'\n | 'text'\n | 'tel'\n | 'url'\n | 'email'\n | 'numeric'\n | 'decimal'\n | 'search' = 'decimal';\n\n /**\n * Provide the value stepping should begin at when the input is empty\n */\n @property({ type: Number, attribute: 'step-start-value' })\n stepStartValue = 0;\n\n /**\n * Optional validation function for type=\"text\".\n * Should return false to fail validation, true to pass, or undefined to defer to built-in validation.\n * Note: the min and max attributes still takes priority if they are defined.\n */\n validate?: (value: string, locale: string) => boolean | undefined;\n\n /**\n * Override value setter to handle formatting for type=\"text\"\n */\n @property({ reflect: true })\n override get value() {\n return super.value;\n }\n\n override set value(val: string) {\n const oldValue = this._value;\n\n if (this.type === NUMBER_INPUT_TYPE.TEXT) {\n // Handle empty string\n if (val === '') {\n this._numberValue = NaN;\n this._previousNumberValue = NaN;\n this._inputValue = '';\n this._value = '';\n this.requestUpdate('value', oldValue);\n if (this._input) {\n this._input.value = '';\n }\n return;\n }\n\n // Ensure formatters are initialized before using them\n if (!this._numberFormatter || !this._numberParser) {\n this._initializeFormatters();\n }\n\n // Parse the value: string values are parsed, numbers are used directly\n let parsed: number;\n if (typeof val === 'string') {\n parsed = this._numberParser?.parse(val) ?? Number(val);\n } else {\n parsed = val as number;\n }\n\n // Synchronize all text mode state\n this._syncTextModeState(parsed, true);\n this.requestUpdate('value', oldValue);\n } else {\n // For type=\"number\" or empty values, use parent behavior\n super.value = val;\n }\n }\n\n /**\n * Initialize formatters when component connects\n */\n connectedCallback() {\n super.connectedCallback();\n this._initializeFormatters();\n }\n\n /**\n * Called before updates to initialize default value\n */\n willUpdate(changedProperties: Map<string, unknown>) {\n super.willUpdate?.(changedProperties);\n\n // Handle type switching before render\n if (changedProperties.has('type')) {\n this._initializeFormatters();\n this._invalid = false;\n\n const currentValue = this._value || this.value;\n if (currentValue) {\n const parsed = this._numberParser?.parse(currentValue) ?? NaN;\n\n if (!isNaN(parsed)) {\n this._numberValue = parsed;\n this._previousNumberValue = parsed;\n\n if (this.type === NUMBER_INPUT_TYPE.TEXT) {\n this._inputValue = this._numberFormatter?.format(parsed) ?? '';\n this._value = currentValue;\n } else {\n const plainValue = parsed.toString();\n this._value = plainValue;\n super.value = plainValue;\n }\n }\n }\n }\n\n // Handle locale or formatOptions changes before render\n if (\n changedProperties.has('locale') ||\n changedProperties.has('formatOptions')\n ) {\n this._initializeFormatters();\n\n if (this.type === NUMBER_INPUT_TYPE.TEXT) {\n // Re-format with new formatters\n if (this._value) {\n const parsed = Number(this._value);\n if (!isNaN(parsed)) {\n this._syncTextModeState(parsed);\n }\n } else if (!isNaN(this._numberValue)) {\n this._syncTextModeState(this._numberValue);\n }\n }\n }\n\n // Initialize from defaultValue if no value is set\n // This runs before every render, but only sets _value if it's empty\n // AND the user hasn't interacted with the input yet\n if (!this._value && this.defaultValue && !this._hasUserInteraction) {\n if (this.type === NUMBER_INPUT_TYPE.TEXT) {\n const parsed = this._numberParser?.parse(this.defaultValue) ?? NaN;\n this._syncTextModeState(parsed);\n } else {\n // Set the internal value to defaultValue for non-text types\n this._value = this.defaultValue;\n }\n }\n }\n\n /**\n * Update formatters when properties change\n */\n // @ts-expect-error - Override to accept changedProperties parameter\n updated(changedProperties: Map<string, unknown>) {\n super.updated?.();\n // Update the DOM input element if formatOptions or locale changed\n if (\n (changedProperties.has('locale') ||\n changedProperties.has('formatOptions')) &&\n this.type === NUMBER_INPUT_TYPE.TEXT &&\n this._input\n ) {\n this._input.value = this._inputValue;\n }\n }\n\n /**\n * Initialize NumberFormatter and NumberParser instances\n */\n protected _initializeFormatters() {\n if (this.type === NUMBER_INPUT_TYPE.TEXT) {\n try {\n this._numberFormatter = new NumberFormatter(\n this.locale,\n this.formatOptions\n );\n this._numberParser = new NumberParser(this.locale, this.formatOptions);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('[NumberInput] Failed to initialize formatters:', error);\n }\n }\n }\n\n /**\n * Get input validity\n */\n _getInputValidity() {\n if (this.invalid || this._invalid) {\n return false;\n }\n\n // Determine which value to validate based on type and validate function\n // Match React's logic: validate ? inputValue : (type === 'number' ? value : numberValue)\n const valueToCheck =\n this.validate && this.type === NUMBER_INPUT_TYPE.TEXT\n ? this._inputValue\n : this.type === NUMBER_INPUT_TYPE.TEXT\n ? this._numberValue\n : this.value;\n\n // Skip validation if value is empty and allowEmpty is true\n if (valueToCheck === '') {\n const result = this.allowEmpty;\n return result;\n }\n\n // Normalize the value to a number\n let numericValue: number;\n if (typeof valueToCheck === 'string') {\n // For type=\"number\", use simple Number() conversion\n // For type=\"text\", use NumberParser to handle formatted numbers like \"1,234\"\n if (this.type === NUMBER_INPUT_TYPE.NUMBER) {\n numericValue = Number(valueToCheck);\n } else {\n numericValue = this._numberParser?.parse(valueToCheck) ?? NaN;\n }\n } else if (typeof valueToCheck === 'number') {\n numericValue = valueToCheck;\n } else {\n numericValue = NaN;\n }\n\n // If value is NaN, check allowEmpty\n if (isNaN(numericValue)) {\n const result = this.allowEmpty;\n return result;\n }\n\n // Use custom validate ONLY for formatting validation (only for type=\"text\")\n if (this.validate && this.type === NUMBER_INPUT_TYPE.TEXT) {\n const isFormatValid = this.validate(this._inputValue, this.locale);\n if (isFormatValid === false) {\n return false; // invalid format\n }\n }\n\n // Check min/max bounds on the numeric value\n if (this.max !== '' && numericValue > Number(this.max)) {\n return false;\n }\n if (this.min !== '' && numericValue < Number(this.min)) {\n return false;\n }\n return true;\n }\n\n /**\n * Get decimal places from a number\n */\n getDecimalPlaces = (num: number) => {\n const parts = num.toString().split('.');\n return parts[1] ? parts[1].length : 0;\n };\n\n /**\n * Clamp a value between min and max\n */\n protected _clamp(value: number, min: number, max: number): number {\n return Math.min(Math.max(value, min), max);\n }\n\n /**\n * Handle stepping up or down\n * @returns true if the value changed, false if it was clamped to the same value\n */\n protected _handleStep(direction: NUMBER_INPUT_STEP_DIRECTION) {\n const currentValue =\n this.type === NUMBER_INPUT_TYPE.NUMBER\n ? Number(this._input.value)\n : this._numberValue;\n\n let rawValue: number;\n\n if (\n Number.isNaN(currentValue) ||\n currentValue === null ||\n currentValue === undefined\n ) {\n if (typeof this.stepStartValue === 'number' && this.stepStartValue) {\n rawValue = this.stepStartValue;\n } else if (\n (this.min &&\n Number(this.min) < 0 &&\n this.max &&\n Number(this.max) > 0) ||\n (!this.max && !this.min) ||\n this.max\n ) {\n rawValue = direction === 'up' ? 1 : -1;\n } else if (\n (this.min &&\n Number(this.min) > 0 &&\n this.max &&\n Number(this.max) > 0) ||\n this.min\n ) {\n rawValue = Number(this.min);\n } else {\n rawValue = 0;\n }\n } else if (direction === 'up') {\n rawValue = currentValue + Number(this.step);\n } else {\n rawValue = currentValue - Number(this.step);\n }\n\n const precision = Math.max(\n this.getDecimalPlaces(currentValue),\n this.getDecimalPlaces(Number(this.step))\n );\n\n const floatValue = parseFloat(Number(rawValue).toFixed(precision));\n const newValue = this._clamp(\n floatValue,\n this.min !== '' ? Number(this.min) : -Infinity,\n this.max !== '' ? Number(this.max) : Infinity\n );\n\n // Check if value actually changed\n const valueChanged = currentValue !== newValue;\n\n if (this.type === NUMBER_INPUT_TYPE.NUMBER) {\n this._value = String(newValue);\n this.value = this._value;\n } else if (this.type === NUMBER_INPUT_TYPE.TEXT) {\n // Synchronize text mode state after step operation\n this._syncTextModeState(newValue);\n this.requestUpdate();\n }\n\n return valueChanged;\n }\n\n /**\n * Handles incrementing the value in the input\n */\n stepUp() {\n this._handleStep('up');\n }\n\n /**\n * Handles decrementing the value in the input\n */\n stepDown() {\n this._handleStep('down');\n }\n\n protected _getInputValue() {\n if (this.type === NUMBER_INPUT_TYPE.TEXT) {\n // For type=\"text\", use _inputValue directly without falling back to defaultValue\n // defaultValue is only used during initialization (in willUpdate)\n return this._inputValue;\n }\n\n return this._value || this.defaultValue || '';\n }\n\n protected _dispatchInputEvent(\n value: string | number,\n direction: NUMBER_INPUT_STEP_DIRECTION\n ) {\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSNumberInput).eventInput, {\n bubbles: true,\n composed: true,\n cancelable: false,\n detail: {\n value,\n direction,\n },\n })\n );\n }\n\n /**\n * Synchronizes text mode state by formatting a numeric value and updating all related state variables.\n * This centralizes the logic for managing _numberValue, _inputValue, _previousNumberValue, and _value.\n *\n * @param numericValue - The numeric value to format and synchronize\n * @param updateInput - Whether to update the DOM input element (default: false)\n */\n protected _syncTextModeState(numericValue: number, updateInput = false) {\n // Format the numeric value\n const formattedValue = isNaN(numericValue)\n ? ''\n : (this._numberFormatter?.format(numericValue) ?? String(numericValue));\n\n // Parse the formatted value back to ensure consistency\n // (formatting can alter the number, e.g., rounding)\n const parsedValue = formattedValue\n ? (this._numberParser?.parse(formattedValue) ?? numericValue)\n : numericValue;\n\n // Update all state variables\n this._numberValue = parsedValue;\n this._previousNumberValue = parsedValue;\n this._inputValue = formattedValue;\n this._value = String(parsedValue);\n\n // Update DOM input if requested\n if (updateInput && this._input) {\n this._input.value = formattedValue;\n }\n }\n\n render() {\n const {\n _handleInput: handleInput,\n _handleUserInitiatedStepDown: handleUserInitiatedStepDown,\n _handleUserInitiatedStepUp: handleUserInitiatedStepUp,\n _handleFocus: handleFocus,\n _handleBlur: handleBlur,\n _handleKeyDown: handleKeyDown,\n } = this;\n\n const isValid = this._getInputValidity();\n const invalidIcon = iconLoader(WarningFilled16, {\n class: `${prefix}--number__invalid`,\n });\n\n const warnIcon = iconLoader(WarningAltFilled16, {\n class: `${prefix}--number__invalid ${prefix}--number__invalid--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 buttonsDisabled: boolean;\n } = {\n disabled: this.disabled,\n invalid: !this.readonly && !isValid,\n warn: !this.readonly && isValid && this.warn,\n 'slot-name': '',\n 'slot-text': '',\n icon: null,\n buttonsDisabled: this.disabled || this.readonly,\n };\n\n const wrapperClasses = classMap({\n [`${prefix}--number`]: true,\n [`${prefix}--number--${this.size}`]: this.size,\n [`${prefix}--number--nosteppers`]: this.hideSteppers,\n [`${prefix}--number--readonly`]: this.readonly,\n });\n\n const inputWrapperClasses = classMap({\n [`${prefix}--number__input-wrapper`]: true,\n [`${prefix}--number__input-wrapper--warning`]: normalizedProps.warn,\n [`${prefix}--number__input-wrapper--decorator`]: this._hasAILabel,\n });\n\n const labelClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--label--disabled`]: normalizedProps.disabled,\n [`${prefix}--visually-hidden`]: this.hideLabel,\n });\n\n const helperTextClasses = classMap({\n [`${prefix}--form__helper-text`]: true,\n [`${prefix}--form__helper-text--disabled`]: normalizedProps.disabled,\n });\n\n const inputValue = this._getInputValue();\n\n const incrementButton = html`\n <button\n class=\"${prefix}--number__control-btn up-icon\"\n aria-label=\"${this.iconDescription ||\n this.incrementButtonAssistiveText}\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n type=\"button\"\n ?disabled=${normalizedProps.buttonsDisabled}\n @click=${handleUserInitiatedStepUp}>\n ${iconLoader(Add16)}\n </button>\n <div class=\"${prefix}--number__rule-divider\"></div>\n `;\n\n const decrementButton = html`\n <button\n class=\"${prefix}--number__control-btn down-icon\"\n aria-label=\"${this.iconDescription ||\n this.decrementButtonAssistiveText}\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n type=\"button\"\n ?disabled=${normalizedProps.buttonsDisabled}\n @click=${handleUserInitiatedStepDown}>\n ${iconLoader(Subtract16)}\n </button>\n <div class=\"${prefix}--number__rule-divider\"></div>\n `;\n\n const input = html`\n <input\n autocomplete=\"${ifNonEmpty(this.autocomplete)}\"\n ?autofocus=\"${this.autofocus}\"\n ?data-invalid=\"${normalizedProps.invalid}\"\n ?disabled=\"${normalizedProps.disabled}\"\n id=\"input\"\n name=\"${ifNonEmpty(this.name)}\"\n pattern=\"${this.type === NUMBER_INPUT_TYPE.TEXT\n ? ifNonEmpty(this.pattern)\n : ''}\"\n ?readonly=\"${this.readonly}\"\n ?required=\"${this.required}\"\n type=\"${this.type}\"\n inputmode=\"${this.type === NUMBER_INPUT_TYPE.TEXT\n ? this.inputMode\n : ''}\"\n .value=\"${inputValue}\"\n @input=\"${handleInput}\"\n @focus=\"${handleFocus}\"\n @blur=\"${handleBlur}\"\n @keydown=\"${handleKeyDown}\"\n min=\"${this.type === NUMBER_INPUT_TYPE.NUMBER\n ? ifNonEmpty(this.min)\n : ''}\"\n max=\"${this.type === NUMBER_INPUT_TYPE.NUMBER\n ? ifNonEmpty(this.max)\n : ''}\"\n step=\"${this.type === NUMBER_INPUT_TYPE.NUMBER\n ? ifNonEmpty(this.step)\n : ''}\"\n role=\"alert\"\n aria-atomic=\"true\" />\n `;\n\n if (normalizedProps.invalid) {\n normalizedProps.icon = invalidIcon;\n normalizedProps['slot-name'] = 'invalid-text';\n normalizedProps['slot-text'] = this.invalidText;\n } else if (normalizedProps.warn) {\n normalizedProps.icon = warnIcon;\n normalizedProps['slot-name'] = 'warn-text';\n normalizedProps['slot-text'] = this.warnText;\n }\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 const helper = this.helperText\n ? html`<div\n class=\"${helperTextClasses}\"\n id=\"helper-text\"\n ?hidden=\"${normalizedProps.invalid || normalizedProps.warn}\">\n <slot name=\"helper-text\"> ${this.helperText} </slot>\n </div>`\n : null;\n\n return html`\n <div class=\"${wrapperClasses}\" ?data-invalid=${normalizedProps.invalid}>\n <label class=\"${labelClasses}\" for=\"input\">\n <slot name=\"label-text\"> ${this.label} </slot>\n </label>\n <div class=\"${inputWrapperClasses}\">\n ${normalizedProps.icon} ${input}\n <slot name=\"ai-label\" @slotchange=\"${this._handleSlotChange}\"></slot>\n <slot name=\"slug\" @slotchange=\"${this._handleSlotChange}\"></slot>\n <div class=\"${prefix}--number__controls\">\n ${!this.hideSteppers\n ? html`${decrementButton} ${incrementButton}`\n : null}\n </div>\n </div>\n ${this.isFluid\n ? html`<hr class=\"${prefix}--number-input__divider\" />`\n : null}\n ${validationMessage ?? helper}\n </div>\n `;\n }\n\n /**\n * The name of the custom event fired after the value is changed upon a user gesture.\n */\n static get eventInput() {\n return `${prefix}-number-input`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles;\n}\n\nexport default CDSNumberInput;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defs.js","names":[],"sources":["../../../src/components/overflow-menu/defs.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2020, 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\n/**\n * Overflow menu size.\n */\nexport enum OVERFLOW_MENU_SIZE {\n /**\n * Extra small size.\n */\n EXTRA_SMALL = 'xs',\n /**\n * Small size.\n */\n SMALL = 'sm',\n\n /**\n * Medium size.\n */\n MEDIUM = 'md',\n\n /**\n * Large size.\n */\n LARGE = 'lg',\n}\n\nexport const NAVIGATION_DIRECTION = {\n ArrowDown: 1,\n ArrowUp: -1,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAUA,IAAY,qBAAL,yBAAA,oBAAA;;;;
|
|
1
|
+
{"version":3,"file":"defs.js","names":[],"sources":["../../../src/components/overflow-menu/defs.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2020, 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\n/**\n * Overflow menu size.\n */\nexport enum OVERFLOW_MENU_SIZE {\n /**\n * Extra small size.\n */\n EXTRA_SMALL = 'xs',\n /**\n * Small size.\n */\n SMALL = 'sm',\n\n /**\n * Medium size.\n */\n MEDIUM = 'md',\n\n /**\n * Large size.\n */\n LARGE = 'lg',\n}\n\nexport const NAVIGATION_DIRECTION = {\n ArrowDown: 1,\n ArrowUp: -1,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAUA,IAAY,qBAAL,yBAAA,oBAAA;;;;CAIL,mBAAA,iBAAA;;;;CAIA,mBAAA,WAAA;;;;CAKA,mBAAA,YAAA;;;;CAKA,mBAAA,WAAA;;AACF,EAAA,CAAA,CAAA;AAEA,MAAa,uBAAuB;CAClC,WAAW;CACX,SAAS;AACX"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import "../../globals/settings.js";
|
|
9
9
|
import { indexOf } from "../../globals/internal/collection-helpers.js";
|
|
10
10
|
import { carbonElement } from "../../globals/decorators/carbon-element.js";
|
|
11
|
-
import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.
|
|
11
|
+
import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.135.0/helpers/esm/decorate.js";
|
|
12
12
|
import HostListener from "../../globals/decorators/host-listener.js";
|
|
13
13
|
import { NAVIGATION_DIRECTION } from "./defs.js";
|
|
14
14
|
import overflow_menu_default from "./overflow-menu.scss.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overflow-menu-body.js","names":["styles","customElement"],"sources":["../../../src/components/overflow-menu/overflow-menu-body.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 CDSFloatingMenu, {\n FLOATING_MENU_DIRECTION,\n getMenuOffset,\n type MenuOffset,\n} from '../floating-menu/floating-menu';\nimport { NAVIGATION_DIRECTION, OVERFLOW_MENU_SIZE } from './defs';\n\nimport CDSOverflowMenuItem from './overflow-menu-item';\nimport HostListener from '../../globals/decorators/host-listener';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { html } from 'lit';\nimport { indexOf } from '../../globals/internal/collection-helpers';\nimport { prefix } from '../../globals/settings';\nimport { property } from 'lit/decorators.js';\nimport styles from './overflow-menu.scss?lit';\n\n/**\n * @param index The index\n * @param length The length of the array.\n * @returns The new index, adjusting overflow/underflow.\n */\nconst capIndex = (index: number, length: number) => {\n if (index < 0) {\n return length - 1;\n }\n if (index >= length) {\n return 0;\n }\n return index;\n};\n\n/**\n * Overflow menu body.\n *\n * @element cds-overflow-menu-body\n */\n@customElement(`${prefix}-overflow-menu-body`)\nclass CDSOverflowMenuBody extends CDSFloatingMenu {\n /**\n * The menu direction.\n */\n @property()\n direction = FLOATING_MENU_DIRECTION.BOTTOM;\n\n /**\n * How the menu is aligned to the trigger button.\n */\n @property({ type: Boolean, reflect: true })\n flipped = false;\n\n /**\n * `true` if the menu should be open.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n selected: CDSOverflowMenuItem | null = null;\n\n /**\n * The overflow menu size.\n */\n @property({ reflect: true })\n size = OVERFLOW_MENU_SIZE.MEDIUM;\n\n /**\n * The adjustment in position applied to the floating menu.\n */\n @property({ attribute: false })\n menuOffset?: MenuOffset;\n\n /**\n * The adjustment in position applied to the floating menu when flipped.\n */\n @property({ attribute: false })\n menuOffsetFlip?: MenuOffset;\n\n /**\n * Gets the appropriate offset (menuOffset or menuOffsetFlip) based on the flipped state.\n * If no offset is provided, falls back to the default centering behavior.\n * Overrides `getOffsetConfig` in `CDSFloatingMenu`.\n *\n * @returns The menu offset configuration (object, function, or undefined).\n */\n protected getOffsetConfig(): MenuOffset | undefined {\n const offset = this.flipped ? this.menuOffsetFlip : this.menuOffset;\n\n if (!offset) {\n const trigger = this.parent as HTMLElement;\n return getMenuOffset(this, this.direction, trigger, this.flipped);\n }\n\n return offset;\n }\n\n /**\n * @param currentItem The currently selected item.\n * @param direction The navigation direction.\n * @returns The item to be selected.\n */\n protected _getNextItem(currentItem: CDSOverflowMenuItem, direction: number) {\n const { selectorItemEnabled } = this\n .constructor as typeof CDSOverflowMenuBody;\n const menuItems = this.querySelectorAll(selectorItemEnabled);\n const currentIndex = indexOf(menuItems, currentItem);\n const nextIndex = capIndex(currentIndex + direction, menuItems.length);\n return nextIndex === currentIndex ? null : menuItems[nextIndex];\n }\n\n /**\n * Navigates through overflow menu items.\n *\n * @param direction `-1` to navigate backward, `1` to navigate forward.\n */\n protected _navigate(direction: number) {\n if (this.selected) {\n const nextItem = this._getNextItem(this.selected, direction);\n (nextItem as HTMLElement)?.focus();\n }\n }\n\n /**\n * Handles `keydown` event on the menu body.\n */\n @HostListener('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 protected _handleKeydown = async (event: KeyboardEvent) => {\n const { key } = event;\n if (this.open) {\n /**\n * sets this.selected to focused menu item. the menu item is focused\n * automatically due to FocusMixin\n */\n if (this.contains(document.activeElement)) {\n this.selected = document.activeElement as CDSOverflowMenuItem;\n }\n\n if (key in NAVIGATION_DIRECTION) {\n event.preventDefault();\n this._navigate(NAVIGATION_DIRECTION[key]);\n return;\n }\n\n if (key === 'Escape') {\n event.preventDefault();\n\n const menuTrigger = this.parent as HTMLElement | null;\n this.open = false;\n\n if (menuTrigger && 'open' in menuTrigger) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (menuTrigger as any).open = false;\n }\n\n requestAnimationFrame(() => {\n const triggerButton =\n menuTrigger?.shadowRoot?.querySelector(\n `button.${prefix}--overflow-menu`\n ) || menuTrigger?.querySelector(`button.${prefix}--overflow-menu`);\n\n if (triggerButton) {\n (triggerButton as HTMLElement).focus();\n }\n });\n return;\n }\n\n const items = this.querySelectorAll(\n CDSOverflowMenuBody.selectorItemEnabled\n );\n const isInsideMenu = Array.from(items).some((item) =>\n item.contains(document.activeElement)\n );\n\n if (isInsideMenu) {\n event.preventDefault();\n\n const menuTrigger = this.parent as HTMLElement | null;\n this.open = false;\n\n if (menuTrigger && 'open' in menuTrigger) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (menuTrigger as any).open = false;\n }\n\n requestAnimationFrame(() => {\n const triggerButton =\n menuTrigger?.shadowRoot?.querySelector(\n `button.${prefix}--overflow-menu`\n ) || menuTrigger?.querySelector(`button.${prefix}--overflow-menu`);\n\n if (triggerButton) {\n (triggerButton as HTMLElement).focus();\n }\n });\n }\n }\n };\n\n connectedCallback() {\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'menu');\n }\n if (!this.hasAttribute('tabindex')) {\n // TODO: Should we use a property?\n this.setAttribute('tabindex', '-1');\n }\n super.connectedCallback();\n }\n\n updated(changedProperties) {\n if (changedProperties.has('size')) {\n const { selectorMenuItem } = this\n .constructor as typeof CDSOverflowMenuBody;\n const menuItems = this.querySelectorAll(selectorMenuItem);\n menuItems.forEach((item) => {\n item.setAttribute('size', this.size);\n });\n }\n\n super.updated(changedProperties);\n }\n\n render() {\n return html` <slot></slot> `;\n }\n\n /**\n * A selector that will return menu items.\n */\n static get selectorMenuItem() {\n return `${prefix}-overflow-menu-item`;\n }\n\n /**\n * A selector that will return enabled menu items.\n */\n static get selectorItemEnabled() {\n return `${prefix}-overflow-menu-item:not([disabled])`;\n }\n\n static styles = styles;\n}\n\nexport default CDSOverflowMenuBody;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"overflow-menu-body.js","names":["styles","customElement"],"sources":["../../../src/components/overflow-menu/overflow-menu-body.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 CDSFloatingMenu, {\n FLOATING_MENU_DIRECTION,\n getMenuOffset,\n type MenuOffset,\n} from '../floating-menu/floating-menu';\nimport { NAVIGATION_DIRECTION, OVERFLOW_MENU_SIZE } from './defs';\n\nimport CDSOverflowMenuItem from './overflow-menu-item';\nimport HostListener from '../../globals/decorators/host-listener';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { html } from 'lit';\nimport { indexOf } from '../../globals/internal/collection-helpers';\nimport { prefix } from '../../globals/settings';\nimport { property } from 'lit/decorators.js';\nimport styles from './overflow-menu.scss?lit';\n\n/**\n * @param index The index\n * @param length The length of the array.\n * @returns The new index, adjusting overflow/underflow.\n */\nconst capIndex = (index: number, length: number) => {\n if (index < 0) {\n return length - 1;\n }\n if (index >= length) {\n return 0;\n }\n return index;\n};\n\n/**\n * Overflow menu body.\n *\n * @element cds-overflow-menu-body\n */\n@customElement(`${prefix}-overflow-menu-body`)\nclass CDSOverflowMenuBody extends CDSFloatingMenu {\n /**\n * The menu direction.\n */\n @property()\n direction = FLOATING_MENU_DIRECTION.BOTTOM;\n\n /**\n * How the menu is aligned to the trigger button.\n */\n @property({ type: Boolean, reflect: true })\n flipped = false;\n\n /**\n * `true` if the menu should be open.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n selected: CDSOverflowMenuItem | null = null;\n\n /**\n * The overflow menu size.\n */\n @property({ reflect: true })\n size = OVERFLOW_MENU_SIZE.MEDIUM;\n\n /**\n * The adjustment in position applied to the floating menu.\n */\n @property({ attribute: false })\n menuOffset?: MenuOffset;\n\n /**\n * The adjustment in position applied to the floating menu when flipped.\n */\n @property({ attribute: false })\n menuOffsetFlip?: MenuOffset;\n\n /**\n * Gets the appropriate offset (menuOffset or menuOffsetFlip) based on the flipped state.\n * If no offset is provided, falls back to the default centering behavior.\n * Overrides `getOffsetConfig` in `CDSFloatingMenu`.\n *\n * @returns The menu offset configuration (object, function, or undefined).\n */\n protected getOffsetConfig(): MenuOffset | undefined {\n const offset = this.flipped ? this.menuOffsetFlip : this.menuOffset;\n\n if (!offset) {\n const trigger = this.parent as HTMLElement;\n return getMenuOffset(this, this.direction, trigger, this.flipped);\n }\n\n return offset;\n }\n\n /**\n * @param currentItem The currently selected item.\n * @param direction The navigation direction.\n * @returns The item to be selected.\n */\n protected _getNextItem(currentItem: CDSOverflowMenuItem, direction: number) {\n const { selectorItemEnabled } = this\n .constructor as typeof CDSOverflowMenuBody;\n const menuItems = this.querySelectorAll(selectorItemEnabled);\n const currentIndex = indexOf(menuItems, currentItem);\n const nextIndex = capIndex(currentIndex + direction, menuItems.length);\n return nextIndex === currentIndex ? null : menuItems[nextIndex];\n }\n\n /**\n * Navigates through overflow menu items.\n *\n * @param direction `-1` to navigate backward, `1` to navigate forward.\n */\n protected _navigate(direction: number) {\n if (this.selected) {\n const nextItem = this._getNextItem(this.selected, direction);\n (nextItem as HTMLElement)?.focus();\n }\n }\n\n /**\n * Handles `keydown` event on the menu body.\n */\n @HostListener('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 protected _handleKeydown = async (event: KeyboardEvent) => {\n const { key } = event;\n if (this.open) {\n /**\n * sets this.selected to focused menu item. the menu item is focused\n * automatically due to FocusMixin\n */\n if (this.contains(document.activeElement)) {\n this.selected = document.activeElement as CDSOverflowMenuItem;\n }\n\n if (key in NAVIGATION_DIRECTION) {\n event.preventDefault();\n this._navigate(NAVIGATION_DIRECTION[key]);\n return;\n }\n\n if (key === 'Escape') {\n event.preventDefault();\n\n const menuTrigger = this.parent as HTMLElement | null;\n this.open = false;\n\n if (menuTrigger && 'open' in menuTrigger) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (menuTrigger as any).open = false;\n }\n\n requestAnimationFrame(() => {\n const triggerButton =\n menuTrigger?.shadowRoot?.querySelector(\n `button.${prefix}--overflow-menu`\n ) || menuTrigger?.querySelector(`button.${prefix}--overflow-menu`);\n\n if (triggerButton) {\n (triggerButton as HTMLElement).focus();\n }\n });\n return;\n }\n\n const items = this.querySelectorAll(\n CDSOverflowMenuBody.selectorItemEnabled\n );\n const isInsideMenu = Array.from(items).some((item) =>\n item.contains(document.activeElement)\n );\n\n if (isInsideMenu) {\n event.preventDefault();\n\n const menuTrigger = this.parent as HTMLElement | null;\n this.open = false;\n\n if (menuTrigger && 'open' in menuTrigger) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (menuTrigger as any).open = false;\n }\n\n requestAnimationFrame(() => {\n const triggerButton =\n menuTrigger?.shadowRoot?.querySelector(\n `button.${prefix}--overflow-menu`\n ) || menuTrigger?.querySelector(`button.${prefix}--overflow-menu`);\n\n if (triggerButton) {\n (triggerButton as HTMLElement).focus();\n }\n });\n }\n }\n };\n\n connectedCallback() {\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'menu');\n }\n if (!this.hasAttribute('tabindex')) {\n // TODO: Should we use a property?\n this.setAttribute('tabindex', '-1');\n }\n super.connectedCallback();\n }\n\n updated(changedProperties) {\n if (changedProperties.has('size')) {\n const { selectorMenuItem } = this\n .constructor as typeof CDSOverflowMenuBody;\n const menuItems = this.querySelectorAll(selectorMenuItem);\n menuItems.forEach((item) => {\n item.setAttribute('size', this.size);\n });\n }\n\n super.updated(changedProperties);\n }\n\n render() {\n return html` <slot></slot> `;\n }\n\n /**\n * A selector that will return menu items.\n */\n static get selectorMenuItem() {\n return `${prefix}-overflow-menu-item`;\n }\n\n /**\n * A selector that will return enabled menu items.\n */\n static get selectorItemEnabled() {\n return `${prefix}-overflow-menu-item:not([disabled])`;\n }\n\n static styles = styles;\n}\n\nexport default CDSOverflowMenuBody;\n"],"mappings":"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"}
|