@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
|
@@ -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 menu_item_default from "./menu-item.scss.js";
|
|
12
12
|
import { LitElement, html } from "lit";
|
|
13
13
|
import { property } from "lit/decorators.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-item-group.js","names":["styles","customElement"],"sources":["../../../src/components/menu/menu-item-group.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './menu-item.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n/**\n * Menu Item.\n *\n * @element cds-custom-menu-item-group\n */\n@customElement(`${prefix}-menu-item-group`)\nclass CDSmenuItemGroup extends LitElement {\n /**\n * Label for the menu item.\n */\n @property({ type: String })\n label;\n\n render() {\n const { label } = this;\n return html`\n <ul role=\"group\" aria-label=\"${label}\">\n <slot></slot>\n </ul>\n `;\n }\n static styles = styles;\n}\nexport default CDSmenuItemGroup;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,IAAA,mBAAA,MACM,yBAAyB,WAAW;CAOxC,SAAS;EACP,MAAM,EAAE,UAAU;
|
|
1
|
+
{"version":3,"file":"menu-item-group.js","names":["styles","customElement"],"sources":["../../../src/components/menu/menu-item-group.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './menu-item.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n/**\n * Menu Item.\n *\n * @element cds-custom-menu-item-group\n */\n@customElement(`${prefix}-menu-item-group`)\nclass CDSmenuItemGroup extends LitElement {\n /**\n * Label for the menu item.\n */\n @property({ type: String })\n label;\n\n render() {\n const { label } = this;\n return html`\n <ul role=\"group\" aria-label=\"${label}\">\n <slot></slot>\n </ul>\n `;\n }\n static styles = styles;\n}\nexport default CDSmenuItemGroup;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,IAAA,mBAAA,MACM,yBAAyB,WAAW;CAOxC,SAAS;EACP,MAAM,EAAE,UAAU;EAClB,OAAO,IAAI;qCACsB,MAAM;;;;CAIzC;;gBACgBA;;AAClB;YAZG,SAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,iBAAA,WAAA,SAAA,KAAA,CAAA;+BAL3BC,cAAc,qBAA2B,CAAA,GAAA,gBAAA;AAkB1C,IAAA,0BAAe"}
|
|
@@ -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 { MenuContext } from "./menu-context.js";
|
|
12
12
|
import menu_item_default from "./menu-item.scss.js";
|
|
13
13
|
import { LitElement, html } from "lit";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-item-radio-group.js","names":["styles","customElement"],"sources":["../../../src/components/menu/menu-item-radio-group.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './menu-item.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { consume } from '@lit/context';\nimport { MenuContext } from './menu-context';\n\n/**\n * Menu Item.\n *\n * @element cds-custom-menu-item-radio-group\n */\n@customElement(`${prefix}-menu-item-radio-group`)\nclass CDSmenuItemRadioGroup extends LitElement {\n @consume({ context: MenuContext })\n context;\n\n /**\n * Label for the menu item radio group.\n */\n @property({ type: String })\n label;\n /**\n * List of items in the radio group.\n */\n @property({ type: Array })\n items = [];\n\n /**\n * Selected item in the radio group.\n */\n @property({ type: String, attribute: true })\n selectedItem;\n\n /**\n * List of items in the radio group.\n */\n @property()\n itemToString?: (item: Array<string | number>) => string;\n /**\n * The name of the custom event fired when the selection state changes.\n */\n static get eventOnChange() {\n return `${prefix}-item-changed`;\n }\n\n firstUpdated(): void {\n this.context.updateFromChild({ hasSelectableItems: true });\n\n this.addEventListener(`click`, (e) => {\n this.selectedItem = e.target;\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy: e.target,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSmenuItemRadioGroup).eventOnChange,\n init\n )\n )\n ) {\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSmenuItemRadioGroup).eventOnChange,\n init\n )\n );\n }\n });\n }\n\n protected updated(_changedProperties): void {\n if (_changedProperties.has('selectedItem')) {\n this.querySelectorAll(`${prefix}-menu-item`).forEach((item) => {\n if (item === this.selectedItem) {\n item.setAttribute('aria-checked', 'true');\n } else {\n item.setAttribute('aria-checked', 'false');\n }\n });\n }\n }\n\n render() {\n const { label } = this;\n return html`\n <ul role=\"group\" aria-label=\"${label}\">\n <slot></slot>\n </ul>\n `;\n }\n static styles = styles;\n}\nexport default CDSmenuItemRadioGroup;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,IAAA,wBAAA,MACM,8BAA8B,WAAW;;;eAarC,
|
|
1
|
+
{"version":3,"file":"menu-item-radio-group.js","names":["styles","customElement"],"sources":["../../../src/components/menu/menu-item-radio-group.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './menu-item.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { consume } from '@lit/context';\nimport { MenuContext } from './menu-context';\n\n/**\n * Menu Item.\n *\n * @element cds-custom-menu-item-radio-group\n */\n@customElement(`${prefix}-menu-item-radio-group`)\nclass CDSmenuItemRadioGroup extends LitElement {\n @consume({ context: MenuContext })\n context;\n\n /**\n * Label for the menu item radio group.\n */\n @property({ type: String })\n label;\n /**\n * List of items in the radio group.\n */\n @property({ type: Array })\n items = [];\n\n /**\n * Selected item in the radio group.\n */\n @property({ type: String, attribute: true })\n selectedItem;\n\n /**\n * List of items in the radio group.\n */\n @property()\n itemToString?: (item: Array<string | number>) => string;\n /**\n * The name of the custom event fired when the selection state changes.\n */\n static get eventOnChange() {\n return `${prefix}-item-changed`;\n }\n\n firstUpdated(): void {\n this.context.updateFromChild({ hasSelectableItems: true });\n\n this.addEventListener(`click`, (e) => {\n this.selectedItem = e.target;\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy: e.target,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSmenuItemRadioGroup).eventOnChange,\n init\n )\n )\n ) {\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSmenuItemRadioGroup).eventOnChange,\n init\n )\n );\n }\n });\n }\n\n protected updated(_changedProperties): void {\n if (_changedProperties.has('selectedItem')) {\n this.querySelectorAll(`${prefix}-menu-item`).forEach((item) => {\n if (item === this.selectedItem) {\n item.setAttribute('aria-checked', 'true');\n } else {\n item.setAttribute('aria-checked', 'false');\n }\n });\n }\n }\n\n render() {\n const { label } = this;\n return html`\n <ul role=\"group\" aria-label=\"${label}\">\n <slot></slot>\n </ul>\n `;\n }\n static styles = styles;\n}\nexport default CDSmenuItemRadioGroup;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,IAAA,wBAAA,MACM,8BAA8B,WAAW;;;eAarC,CAAC;;;;;CAgBT,WAAW,gBAAgB;EACzB,OAAO;CACT;CAEA,eAAqB;EACnB,KAAK,QAAQ,gBAAgB,EAAE,oBAAoB,KAAK,CAAC;EAEzD,KAAK,iBAAiB,UAAU,MAAM;GACpC,KAAK,eAAe,EAAE;GACtB,MAAM,OAAO;IACX,SAAS;IACT,YAAY;IACZ,UAAU;IACV,QAAQ,EACN,aAAa,EAAE,OACjB;GACF;GACA,IACE,KAAK,cACH,IAAI,YACD,KAAK,YAA6C,eACnD,IACF,CACF,GAEA,KAAK,cACH,IAAI,YACD,KAAK,YAA6C,eACnD,IACF,CACF;EAEJ,CAAC;CACH;CAEA,QAAkB,oBAA0B;EAC1C,IAAI,mBAAmB,IAAI,cAAc,GACvC,KAAK,iBAAiB,eAAqB,CAAC,CAAC,SAAS,SAAS;GAC7D,IAAI,SAAS,KAAK,cAChB,KAAK,aAAa,gBAAgB,MAAM;QAExC,KAAK,aAAa,gBAAgB,OAAO;EAE7C,CAAC;CAEL;CAEA,SAAS;EACP,MAAM,EAAE,UAAU;EAClB,OAAO,IAAI;qCACsB,MAAM;;;;CAIzC;;gBACgBA;;AAClB;YApFG,QAAQ,EAAE,SAAS,YAAY,CAAC,CAAA,GAAA,sBAAA,WAAA,WAAA,KAAA,CAAA;YAMhC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,sBAAA,WAAA,SAAA,KAAA,CAAA;YAKzB,SAAS,EAAE,MAAM,MAAM,CAAC,CAAA,GAAA,sBAAA,WAAA,SAAA,KAAA,CAAA;YAMxB,SAAS;CAAE,MAAM;CAAQ,WAAW;AAAK,CAAC,CAAA,GAAA,sBAAA,WAAA,gBAAA,KAAA,CAAA;YAM1C,SAAS,CAAA,GAAA,sBAAA,WAAA,gBAAA,KAAA,CAAA;oCAzBXC,cAAc,2BAAiC,CAAA,GAAA,qBAAA;AAuFhD,IAAA,gCAAe"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-item-selectable.d.ts","sourceRoot":"","sources":["../../../src/components/menu/menu-item-selectable.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAOvC;;;;GAIG;AACH,cACM,qBAAsB,SAAQ,UAAU;IAE5C,OAAO,MAAC;
|
|
1
|
+
{"version":3,"file":"menu-item-selectable.d.ts","sourceRoot":"","sources":["../../../src/components/menu/menu-item-selectable.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAOvC;;;;GAIG;AACH,cACM,qBAAsB,SAAQ,UAAU;IAE5C,OAAO,MAAC;IAER;;OAEG;IAEH,OAAO,CAAC,SAAS,CAAC,CAAc;IAEhC;;OAEG;IAEH,KAAK,MAAC;IACN;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IACH,MAAM,KAAK,aAAa,WAEvB;IAED;;OAEG;IACH,MAAM,CAAC,iBAAiB;;;;;;;MAGtB;IAEF;;OAEG;IAEH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IAGxB,QAAQ,MAAC;IAET,YAAY,GAAI,MAAC,UAyBf;IAEF,iBAAiB;IAKjB,YAAY;IAQZ,cAAc,GAAI,GAAG,aAAa,UAIhC;IAEF,MAAM;IAeN,MAAM,CAAC,MAAM,MAAU;CACxB;AACD,eAAe,qBAAqB,CAAC"}
|
|
@@ -7,11 +7,11 @@
|
|
|
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 { MenuContext } from "./menu-context.js";
|
|
12
12
|
import menu_item_default from "./menu-item.scss.js";
|
|
13
13
|
import { LitElement, html } from "lit";
|
|
14
|
-
import { property } from "lit/decorators.js";
|
|
14
|
+
import { property, query } from "lit/decorators.js";
|
|
15
15
|
import { consume } from "@lit/context";
|
|
16
16
|
//#region src/components/menu/menu-item-selectable.ts
|
|
17
17
|
/**
|
|
@@ -60,8 +60,7 @@ let CDSmenuItemSelectable = class CDSmenuItemSelectable extends LitElement {
|
|
|
60
60
|
this.addEventListener("keydown", this._handleKeydown);
|
|
61
61
|
}
|
|
62
62
|
firstUpdated() {
|
|
63
|
-
|
|
64
|
-
if (menuItemSelectable) menuItemSelectable.addEventListener("keydown", this._handleKeydown);
|
|
63
|
+
if (this._menuItem) this._menuItem.addEventListener("keydown", this._handleKeydown);
|
|
65
64
|
this.context.updateFromChild({ hasSelectableItems: true });
|
|
66
65
|
}
|
|
67
66
|
render() {
|
|
@@ -83,6 +82,7 @@ let CDSmenuItemSelectable = class CDSmenuItemSelectable extends LitElement {
|
|
|
83
82
|
}
|
|
84
83
|
};
|
|
85
84
|
__decorate([consume({ context: MenuContext })], CDSmenuItemSelectable.prototype, "context", void 0);
|
|
85
|
+
__decorate([query(`cds-custom-menu-item`)], CDSmenuItemSelectable.prototype, "_menuItem", void 0);
|
|
86
86
|
__decorate([property({ type: String })], CDSmenuItemSelectable.prototype, "label", void 0);
|
|
87
87
|
__decorate([property({ type: Boolean })], CDSmenuItemSelectable.prototype, "selected", void 0);
|
|
88
88
|
__decorate([property()], CDSmenuItemSelectable.prototype, "renderIcon", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-item-selectable.js","names":["styles","customElement"],"sources":["../../../src/components/menu/menu-item-selectable.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 './menu-item.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { consume } from '@lit/context';\nimport { MenuContext } from './menu-context';\n/**\n * Menu Item Selectable.\n *\n * @element cds-custom-menu-item-selectable\n */\n@customElement(`${prefix}-menu-item-selectable`)\nclass CDSmenuItemSelectable extends LitElement {\n @consume({ context: MenuContext })\n context;\n /**\n * Label for the menu item selectable.\n */\n @property({ type: String })\n label;\n /**\n * Whether the menu item is selected or not.\n */\n @property({ type: Boolean })\n selected = false;\n\n /**\n * The name of the custom event fired when the selection state changes.\n */\n static get eventOnChange() {\n return `${prefix}-item-changed`;\n }\n\n /**\n * Automatically forwards focus to the first focusable element inside the shadow root (helps with focus styles when wrapped in menu-item-group)\n */\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /**\n * Sets the menu item's icon.\n */\n @property()\n renderIcon?: () => void;\n\n @property()\n shortcut;\n\n _handleClick = (e) => {\n this.selected = !this.selected;\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy: e.target,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSmenuItemSelectable).eventOnChange,\n init\n )\n )\n ) {\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSmenuItemSelectable).eventOnChange,\n init\n )\n );\n }\n };\n\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('keydown', this._handleKeydown);\n }\n\n firstUpdated() {\n
|
|
1
|
+
{"version":3,"file":"menu-item-selectable.js","names":["styles","customElement"],"sources":["../../../src/components/menu/menu-item-selectable.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './menu-item.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { consume } from '@lit/context';\nimport { MenuContext } from './menu-context';\n/**\n * Menu Item Selectable.\n *\n * @element cds-custom-menu-item-selectable\n */\n@customElement(`${prefix}-menu-item-selectable`)\nclass CDSmenuItemSelectable extends LitElement {\n @consume({ context: MenuContext })\n context;\n\n /**\n * The menu item element in the shadow DOM.\n */\n @query(`${prefix}-menu-item`)\n private _menuItem?: HTMLElement;\n\n /**\n * Label for the menu item selectable.\n */\n @property({ type: String })\n label;\n /**\n * Whether the menu item is selected or not.\n */\n @property({ type: Boolean })\n selected = false;\n\n /**\n * The name of the custom event fired when the selection state changes.\n */\n static get eventOnChange() {\n return `${prefix}-item-changed`;\n }\n\n /**\n * Automatically forwards focus to the first focusable element inside the shadow root (helps with focus styles when wrapped in menu-item-group)\n */\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /**\n * Sets the menu item's icon.\n */\n @property()\n renderIcon?: () => void;\n\n @property()\n shortcut;\n\n _handleClick = (e) => {\n this.selected = !this.selected;\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy: e.target,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSmenuItemSelectable).eventOnChange,\n init\n )\n )\n ) {\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSmenuItemSelectable).eventOnChange,\n init\n )\n );\n }\n };\n\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('keydown', this._handleKeydown);\n }\n\n firstUpdated() {\n if (this._menuItem) {\n this._menuItem.addEventListener('keydown', this._handleKeydown);\n }\n\n this.context.updateFromChild({ hasSelectableItems: true });\n }\n\n _handleKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n this._handleClick(e);\n }\n };\n\n render() {\n const { label, selected, _handleClick: handleClick } = this;\n\n return html`\n <cds-custom-menu-item\n label=\"${label}\"\n class=\"${prefix}--menu-item-selectable--selected\"\n role=\"menuitemcheckbox\"\n shortcut=${this.shortcut}\n aria-checked=\"${selected}\"\n @click=\"${handleClick}\">\n <slot slot=\"render-icon\" name=\"render-icon\"></slot>\n </cds-custom-menu-item>\n `;\n }\n static styles = styles;\n}\nexport default CDSmenuItemSelectable;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,IAAA,wBAAA,MACM,8BAA8B,WAAW;;;kBAmBlC;uBA0BK,MAAM;GACpB,KAAK,WAAW,CAAC,KAAK;GACtB,MAAM,OAAO;IACX,SAAS;IACT,YAAY;IACZ,UAAU;IACV,QAAQ,EACN,aAAa,EAAE,OACjB;GACF;GACA,IACE,KAAK,cACH,IAAI,YACD,KAAK,YAA6C,eACnD,IACF,CACF,GAEA,KAAK,cACH,IAAI,YACD,KAAK,YAA6C,eACnD,IACF,CACF;EAEJ;yBAekB,MAAqB;GACrC,IAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,KACjC,KAAK,aAAa,CAAC;EAEvB;;;;;CAjEA,WAAW,gBAAgB;EACzB,OAAO;CACT;;2BAK2B;GACzB,GAAG,WAAW;GACd,gBAAgB;EAClB;;CAsCA,oBAAoB;EAClB,MAAM,kBAAkB;EACxB,KAAK,iBAAiB,WAAW,KAAK,cAAc;CACtD;CAEA,eAAe;EACb,IAAI,KAAK,WACP,KAAK,UAAU,iBAAiB,WAAW,KAAK,cAAc;EAGhE,KAAK,QAAQ,gBAAgB,EAAE,oBAAoB,KAAK,CAAC;CAC3D;CAQA,SAAS;EACP,MAAM,EAAE,OAAO,UAAU,cAAc,gBAAgB;EAEvD,OAAO,IAAI;;iBAEE,MAAM;uBACC;;mBAEL,KAAK,SAAS;wBACT,SAAS;kBACf,YAAY;;;;CAI5B;;gBACgBA;;AAClB;YA1GG,QAAQ,EAAE,SAAS,YAAY,CAAC,CAAA,GAAA,sBAAA,WAAA,WAAA,KAAA,CAAA;YAMhC,MAAM,eAAqB,CAAA,GAAA,sBAAA,WAAA,aAAA,KAAA,CAAA;YAM3B,SAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,sBAAA,WAAA,SAAA,KAAA,CAAA;YAKzB,SAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,GAAA,sBAAA,WAAA,YAAA,KAAA,CAAA;YAqB1B,SAAS,CAAA,GAAA,sBAAA,WAAA,cAAA,KAAA,CAAA;YAGT,SAAS,CAAA,GAAA,sBAAA,WAAA,YAAA,KAAA,CAAA;oCA3CXC,cAAc,0BAAgC,CAAA,GAAA,qBAAA;AA6G/C,IAAA,+BAAe"}
|
|
@@ -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 HostListener from "../../globals/decorators/host-listener.js";
|
|
13
13
|
import HostListenerMixin from "../../globals/mixins/host-listener.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-item.js","names":["styles","customElement"],"sources":["../../../src/components/menu/menu-item.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, state } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './menu-item.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { consume } from '@lit/context';\nimport { MenuContext } from './menu-context';\nimport Checkmark16 from '@carbon/icons/es/checkmark/16.js';\nimport CaretLeft16 from '@carbon/icons/es/caret--left/16.js';\nimport CaretRight16 from '@carbon/icons/es/caret--right/16.js';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { MENU_ITEM_KIND, MENU_SIZE } from './defs';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport CDSMenu from './menu';\n\nexport { MENU_ITEM_KIND, MENU_SIZE };\nexport const MENU_CLOSE_ROOT_EVENT = `${prefix}-menu-close-root-request`;\n\n/**\n * Menu Item.\n *\n * @element cds-custom-menu-item\n */\n@customElement(`${prefix}-menu-item`)\nclass CDSmenuItem extends HostListenerMixin(HostListenerMixin(LitElement)) {\n @consume({ context: MenuContext })\n context;\n\n readonly hoverIntentDelay = 150; // in ms\n hoverIntentTimeout;\n\n /**\n * The parent cds-custom-menu element\n */\n private _parentMenu: CDSMenu | null = null;\n\n /**\n * MutationObserver that observes the parent cds-custom-menu element\n */\n private _parentMenuObserver?: MutationObserver;\n\n /**\n * Label for the menu item.\n */\n @property({ type: String })\n label;\n /**\n * Shortcut for the menu item.\n */\n @property({ type: String })\n shortcut;\n /**\n * Disabled property for the menu item.\n */\n @property({ type: Boolean })\n disabled;\n\n /**\n * Specify the message read by screen readers for the danger menu item variant\n */\n @property({ type: String, attribute: 'danger-description' })\n dangerDescription = '';\n\n /**\n * Whether the menu submen for an item is open or not.\n */\n @property({ type: Boolean })\n submenuOpen = false;\n\n @property()\n kind = MENU_ITEM_KIND.DEFAULT;\n /**\n * Menu boundaries.\n */\n @property()\n boundaries: {\n x: number | [number, number];\n y: number | [number, number];\n } = { x: -1, y: -1 };\n\n @property({ attribute: 'aria-checked' })\n ariaChecked: string | null = this.getAttribute('selected') ?? 'false';\n\n /**\n * Entrypoint.\n */\n @state()\n submenuEntry;\n /**\n * Checks if document direction is rtl.\n */\n @state()\n isRtl = false;\n /**\n * Checks if document direction is rtl.\n */\n @state()\n hasSubmenu = false;\n\n async dispatchIconDetect() {\n const hasRenderIcon = !!this.querySelector('[slot=\"render-icon\"]');\n if (hasRenderIcon) {\n await undefined; // this is used to replace setTimeout with 0 time out, which is much fater.\n this.dispatchEvent(\n new CustomEvent('icon-detect', {\n bubbles: true, // Allows event to bubble up the DOM\n composed: true, // Allows event to cross shadow DOM boundary\n })\n );\n }\n }\n\n private _updateAttributes() {\n if (this.disabled && !this.hasSubmenu) {\n this.setAttribute('aria-disabled', this.disabled);\n this.setAttribute('tabindex', '-1');\n } else if (this._parentMenu && !(this._parentMenu as CDSMenu).open) {\n this.removeAttribute('aria-disabled');\n this.setAttribute('tabindex', '-1');\n } else {\n this.removeAttribute('aria-disabled');\n this.setAttribute('tabindex', '0');\n }\n if (this.hasSubmenu) {\n this.setAttribute('aria-haspopup', this.hasSubmenu + '');\n } else {\n this.removeAttribute('aria-haspopup');\n }\n if (this.closest(`${prefix}-menu-item-radio-group`)) {\n this.setAttribute('role', 'menuitemradio');\n this.setAttribute('aria-checked', this.ariaChecked + '');\n } else if (!this.getAttribute('role')) {\n this.setAttribute('role', 'menuitem');\n }\n }\n\n firstUpdated() {\n this.hasSubmenu = !!this.querySelector('[slot=\"submenu\"]');\n\n this.dispatchIconDetect();\n this.isRtl = document.dir === 'rtl';\n this._registerSubMenuItems();\n this._parentMenu = this.closest(`${prefix}-menu`);\n\n this._updateAttributes();\n\n this.addEventListener(`${prefix}-menu-closed`, () => {\n this.focus();\n this._closeSubmenu();\n });\n\n if (this._parentMenu) {\n this._parentMenuObserver = new MutationObserver(() => {\n this._updateAttributes();\n });\n\n this._parentMenuObserver.observe(this._parentMenu, {\n attributes: true,\n attributeFilter: ['open'],\n });\n }\n }\n\n disconnectedCallback() {\n this._parentMenuObserver?.disconnect();\n }\n\n updated(): void {\n if (this.hasSubmenu) {\n this.setAttribute('aria-expanded', this.hasSubmenu + '');\n } else {\n this.removeAttribute('aria-expanded');\n }\n if (this.kind === MENU_ITEM_KIND.DANGER)\n this.classList.toggle(`${prefix}--menu-item--danger`);\n }\n\n @HostListener('click', { capture: true })\n handleClick(event: MouseEvent) {\n this._handleClick(event);\n }\n\n @HostListener('mousedown')\n handleMouseDown(event: MouseEvent) {\n if (this.disabled) {\n event.preventDefault();\n }\n }\n\n @HostListener('mouseenter')\n handleMouseEnter() {\n if (this.hasSubmenu) {\n this._handleMouseEnter();\n }\n }\n\n @HostListener('mouseleave')\n handleMouseLeave() {\n if (this.hasSubmenu) {\n this._handleMouseLeave();\n }\n }\n\n @HostListener('keydown')\n handleKeyDown(event: KeyboardEvent) {\n this._handleKeyDown(event);\n }\n\n render() {\n const {\n label,\n shortcut,\n submenuOpen,\n boundaries,\n isRtl,\n kind,\n dangerDescription,\n } = this;\n\n const isDanger = kind === MENU_ITEM_KIND.DANGER && !this.hasSubmenu;\n const hasDangerDescription = isDanger && Boolean(dangerDescription);\n\n const menuClassName = this.context?.hasSelectableItems\n ? `${prefix}--menu--with-selectable-items`\n : '';\n\n return html`\n <div class=\"${prefix}--menu-item__selection-icon\">\n ${this.ariaChecked === 'true' ? iconLoader(Checkmark16) : undefined}\n </div>\n\n <div class=\"${prefix}--menu-item__icon\">\n <slot name=\"render-icon\"></slot>\n </div>\n <div class=\"${prefix}--menu-item__label\">${label}</div>\n ${hasDangerDescription\n ? html`<span id=\"danger-description\" class=\"${prefix}--visually-hidden\"\n >${dangerDescription}</span\n >`\n : html``}\n ${shortcut && !this.hasSubmenu\n ? html` <div class=\"${prefix}--menu-item__shortcut\">${shortcut}</div> `\n : html``}\n ${this.hasSubmenu\n ? html`\n <div class=\"${prefix}--menu-item__shortcut\">\n ${isRtl ? iconLoader(CaretLeft16) : iconLoader(CaretRight16)}\n </div>\n <cds-custom-menu\n className=${menuClassName}\n size=${this.parentElement?.getAttribute('size') ??\n MENU_SIZE.LARGE}\n ?isChild=\"${this.hasSubmenu}\"\n label=\"${label}\"\n .open=\"${submenuOpen}\"\n .x=\"${boundaries.x}\"\n .y=\"${boundaries.y}\">\n <slot name=\"submenu\"></slot>\n </cds-custom-menu>\n `\n : html``}\n `;\n }\n\n _handleClick = (e: MouseEvent | KeyboardEvent): void => {\n if (this.disabled) {\n return;\n }\n\n if (this.hasSubmenu) {\n this._openSubmenu();\n return;\n }\n\n if (e.type === 'keydown') {\n this.click();\n return;\n }\n\n this.dispatchEvent(\n new CustomEvent(MENU_CLOSE_ROOT_EVENT, {\n bubbles: true,\n composed: true,\n detail: {\n triggerEvent: e,\n },\n })\n );\n };\n _handleMouseEnter = () => {\n this.hoverIntentTimeout = setTimeout(() => {\n this._openSubmenu();\n }, this.hoverIntentDelay);\n };\n _handleMouseLeave = () => {\n if (this.hoverIntentTimeout) {\n clearTimeout(this.hoverIntentTimeout);\n this._closeSubmenu();\n this.focus();\n }\n };\n _openSubmenu = () => {\n const { x, y, width, height } = this.getBoundingClientRect();\n if (this.isRtl) {\n this.boundaries = {\n x: [-x, x - width],\n y: [y, y + height],\n };\n } else {\n this.boundaries = {\n x: [x, x + width],\n y: [y, y + height],\n };\n }\n this.submenuOpen = true;\n };\n _registerSubMenuItems = () => {\n const observer = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === 'childList') {\n const submenuSlot = this.shadowRoot?.querySelector(\n 'slot[name=\"submenu\"]'\n ) as HTMLSlotElement;\n\n const item = submenuSlot?.assignedElements?.()?.[0];\n if (item) {\n switch (item.tagName) {\n case 'CDS-MENU-ITEM-RADIO-GROUP':\n this.submenuEntry = item.querySelector(`${prefix}-menu-item`);\n break;\n case 'CDS-MENU-ITEM-GROUP': {\n const slotElements = item.shadowRoot\n ?.querySelector('slot')\n ?.assignedElements();\n const firstElement = slotElements?.length && slotElements[0];\n this.submenuEntry = firstElement;\n break;\n }\n case 'CDS-MENU-ITEM':\n this.submenuEntry = item;\n break;\n }\n }\n }\n }\n });\n observer.observe(this.shadowRoot as Node, {\n childList: true,\n subtree: true,\n });\n };\n _closeSubmenu = () => {\n this.boundaries = {\n x: -1,\n y: -1,\n };\n this.submenuOpen = false;\n (\n this.shadowRoot?.querySelector(`.${prefix}--menu-item`) as HTMLLIElement\n )?.focus();\n };\n _handleKeyDown = (e: KeyboardEvent) => {\n if (this.hasSubmenu && ['ArrowRight', 'Enter', ' '].includes(e.key)) {\n this._openSubmenu();\n setTimeout(() => {\n this.submenuEntry.focus();\n });\n e.stopPropagation();\n } else if (e.key === 'Enter' || e.key === ' ') {\n this._handleClick(e);\n }\n };\n\n static styles = styles;\n}\nexport default CDSmenuItem;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"menu-item.js","names":["styles","customElement"],"sources":["../../../src/components/menu/menu-item.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, state } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './menu-item.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { consume } from '@lit/context';\nimport { MenuContext } from './menu-context';\nimport Checkmark16 from '@carbon/icons/es/checkmark/16.js';\nimport CaretLeft16 from '@carbon/icons/es/caret--left/16.js';\nimport CaretRight16 from '@carbon/icons/es/caret--right/16.js';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { MENU_ITEM_KIND, MENU_SIZE } from './defs';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport CDSMenu from './menu';\n\nexport { MENU_ITEM_KIND, MENU_SIZE };\nexport const MENU_CLOSE_ROOT_EVENT = `${prefix}-menu-close-root-request`;\n\n/**\n * Menu Item.\n *\n * @element cds-custom-menu-item\n */\n@customElement(`${prefix}-menu-item`)\nclass CDSmenuItem extends HostListenerMixin(HostListenerMixin(LitElement)) {\n @consume({ context: MenuContext })\n context;\n\n readonly hoverIntentDelay = 150; // in ms\n hoverIntentTimeout;\n\n /**\n * The parent cds-custom-menu element\n */\n private _parentMenu: CDSMenu | null = null;\n\n /**\n * MutationObserver that observes the parent cds-custom-menu element\n */\n private _parentMenuObserver?: MutationObserver;\n\n /**\n * Label for the menu item.\n */\n @property({ type: String })\n label;\n /**\n * Shortcut for the menu item.\n */\n @property({ type: String })\n shortcut;\n /**\n * Disabled property for the menu item.\n */\n @property({ type: Boolean })\n disabled;\n\n /**\n * Specify the message read by screen readers for the danger menu item variant\n */\n @property({ type: String, attribute: 'danger-description' })\n dangerDescription = '';\n\n /**\n * Whether the menu submen for an item is open or not.\n */\n @property({ type: Boolean })\n submenuOpen = false;\n\n @property()\n kind = MENU_ITEM_KIND.DEFAULT;\n /**\n * Menu boundaries.\n */\n @property()\n boundaries: {\n x: number | [number, number];\n y: number | [number, number];\n } = { x: -1, y: -1 };\n\n @property({ attribute: 'aria-checked' })\n ariaChecked: string | null = this.getAttribute('selected') ?? 'false';\n\n /**\n * Entrypoint.\n */\n @state()\n submenuEntry;\n /**\n * Checks if document direction is rtl.\n */\n @state()\n isRtl = false;\n /**\n * Checks if document direction is rtl.\n */\n @state()\n hasSubmenu = false;\n\n async dispatchIconDetect() {\n const hasRenderIcon = !!this.querySelector('[slot=\"render-icon\"]');\n if (hasRenderIcon) {\n await undefined; // this is used to replace setTimeout with 0 time out, which is much fater.\n this.dispatchEvent(\n new CustomEvent('icon-detect', {\n bubbles: true, // Allows event to bubble up the DOM\n composed: true, // Allows event to cross shadow DOM boundary\n })\n );\n }\n }\n\n private _updateAttributes() {\n if (this.disabled && !this.hasSubmenu) {\n this.setAttribute('aria-disabled', this.disabled);\n this.setAttribute('tabindex', '-1');\n } else if (this._parentMenu && !(this._parentMenu as CDSMenu).open) {\n this.removeAttribute('aria-disabled');\n this.setAttribute('tabindex', '-1');\n } else {\n this.removeAttribute('aria-disabled');\n this.setAttribute('tabindex', '0');\n }\n if (this.hasSubmenu) {\n this.setAttribute('aria-haspopup', this.hasSubmenu + '');\n } else {\n this.removeAttribute('aria-haspopup');\n }\n if (this.closest(`${prefix}-menu-item-radio-group`)) {\n this.setAttribute('role', 'menuitemradio');\n this.setAttribute('aria-checked', this.ariaChecked + '');\n } else if (!this.getAttribute('role')) {\n this.setAttribute('role', 'menuitem');\n }\n }\n\n firstUpdated() {\n this.hasSubmenu = !!this.querySelector('[slot=\"submenu\"]');\n\n this.dispatchIconDetect();\n this.isRtl = document.dir === 'rtl';\n this._registerSubMenuItems();\n this._parentMenu = this.closest(`${prefix}-menu`);\n\n this._updateAttributes();\n\n this.addEventListener(`${prefix}-menu-closed`, () => {\n this.focus();\n this._closeSubmenu();\n });\n\n if (this._parentMenu) {\n this._parentMenuObserver = new MutationObserver(() => {\n this._updateAttributes();\n });\n\n this._parentMenuObserver.observe(this._parentMenu, {\n attributes: true,\n attributeFilter: ['open'],\n });\n }\n }\n\n disconnectedCallback() {\n this._parentMenuObserver?.disconnect();\n }\n\n updated(): void {\n if (this.hasSubmenu) {\n this.setAttribute('aria-expanded', this.hasSubmenu + '');\n } else {\n this.removeAttribute('aria-expanded');\n }\n if (this.kind === MENU_ITEM_KIND.DANGER)\n this.classList.toggle(`${prefix}--menu-item--danger`);\n }\n\n @HostListener('click', { capture: true })\n handleClick(event: MouseEvent) {\n this._handleClick(event);\n }\n\n @HostListener('mousedown')\n handleMouseDown(event: MouseEvent) {\n if (this.disabled) {\n event.preventDefault();\n }\n }\n\n @HostListener('mouseenter')\n handleMouseEnter() {\n if (this.hasSubmenu) {\n this._handleMouseEnter();\n }\n }\n\n @HostListener('mouseleave')\n handleMouseLeave() {\n if (this.hasSubmenu) {\n this._handleMouseLeave();\n }\n }\n\n @HostListener('keydown')\n handleKeyDown(event: KeyboardEvent) {\n this._handleKeyDown(event);\n }\n\n render() {\n const {\n label,\n shortcut,\n submenuOpen,\n boundaries,\n isRtl,\n kind,\n dangerDescription,\n } = this;\n\n const isDanger = kind === MENU_ITEM_KIND.DANGER && !this.hasSubmenu;\n const hasDangerDescription = isDanger && Boolean(dangerDescription);\n\n const menuClassName = this.context?.hasSelectableItems\n ? `${prefix}--menu--with-selectable-items`\n : '';\n\n return html`\n <div class=\"${prefix}--menu-item__selection-icon\">\n ${this.ariaChecked === 'true' ? iconLoader(Checkmark16) : undefined}\n </div>\n\n <div class=\"${prefix}--menu-item__icon\">\n <slot name=\"render-icon\"></slot>\n </div>\n <div class=\"${prefix}--menu-item__label\">${label}</div>\n ${hasDangerDescription\n ? html`<span id=\"danger-description\" class=\"${prefix}--visually-hidden\"\n >${dangerDescription}</span\n >`\n : html``}\n ${shortcut && !this.hasSubmenu\n ? html` <div class=\"${prefix}--menu-item__shortcut\">${shortcut}</div> `\n : html``}\n ${this.hasSubmenu\n ? html`\n <div class=\"${prefix}--menu-item__shortcut\">\n ${isRtl ? iconLoader(CaretLeft16) : iconLoader(CaretRight16)}\n </div>\n <cds-custom-menu\n className=${menuClassName}\n size=${this.parentElement?.getAttribute('size') ??\n MENU_SIZE.LARGE}\n ?isChild=\"${this.hasSubmenu}\"\n label=\"${label}\"\n .open=\"${submenuOpen}\"\n .x=\"${boundaries.x}\"\n .y=\"${boundaries.y}\">\n <slot name=\"submenu\"></slot>\n </cds-custom-menu>\n `\n : html``}\n `;\n }\n\n _handleClick = (e: MouseEvent | KeyboardEvent): void => {\n if (this.disabled) {\n return;\n }\n\n if (this.hasSubmenu) {\n this._openSubmenu();\n return;\n }\n\n if (e.type === 'keydown') {\n this.click();\n return;\n }\n\n this.dispatchEvent(\n new CustomEvent(MENU_CLOSE_ROOT_EVENT, {\n bubbles: true,\n composed: true,\n detail: {\n triggerEvent: e,\n },\n })\n );\n };\n _handleMouseEnter = () => {\n this.hoverIntentTimeout = setTimeout(() => {\n this._openSubmenu();\n }, this.hoverIntentDelay);\n };\n _handleMouseLeave = () => {\n if (this.hoverIntentTimeout) {\n clearTimeout(this.hoverIntentTimeout);\n this._closeSubmenu();\n this.focus();\n }\n };\n _openSubmenu = () => {\n const { x, y, width, height } = this.getBoundingClientRect();\n if (this.isRtl) {\n this.boundaries = {\n x: [-x, x - width],\n y: [y, y + height],\n };\n } else {\n this.boundaries = {\n x: [x, x + width],\n y: [y, y + height],\n };\n }\n this.submenuOpen = true;\n };\n _registerSubMenuItems = () => {\n const observer = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === 'childList') {\n const submenuSlot = this.shadowRoot?.querySelector(\n 'slot[name=\"submenu\"]'\n ) as HTMLSlotElement;\n\n const item = submenuSlot?.assignedElements?.()?.[0];\n if (item) {\n switch (item.tagName) {\n case 'CDS-MENU-ITEM-RADIO-GROUP':\n this.submenuEntry = item.querySelector(`${prefix}-menu-item`);\n break;\n case 'CDS-MENU-ITEM-GROUP': {\n const slotElements = item.shadowRoot\n ?.querySelector('slot')\n ?.assignedElements();\n const firstElement = slotElements?.length && slotElements[0];\n this.submenuEntry = firstElement;\n break;\n }\n case 'CDS-MENU-ITEM':\n this.submenuEntry = item;\n break;\n }\n }\n }\n }\n });\n observer.observe(this.shadowRoot as Node, {\n childList: true,\n subtree: true,\n });\n };\n _closeSubmenu = () => {\n this.boundaries = {\n x: -1,\n y: -1,\n };\n this.submenuOpen = false;\n (\n this.shadowRoot?.querySelector(`.${prefix}--menu-item`) as HTMLLIElement\n )?.focus();\n };\n _handleKeyDown = (e: KeyboardEvent) => {\n if (this.hasSubmenu && ['ArrowRight', 'Enter', ' '].includes(e.key)) {\n this._openSubmenu();\n setTimeout(() => {\n this.submenuEntry.focus();\n });\n e.stopPropagation();\n } else if (e.key === 'Enter' || e.key === ' ') {\n this._handleClick(e);\n }\n };\n\n static styles = styles;\n}\nexport default CDSmenuItem;\n"],"mappings":"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"}
|
|
@@ -41,6 +41,14 @@ declare class CDSMenu extends CDSMenu_base {
|
|
|
41
41
|
size: "xs" | "sm" | "md" | "lg" | null;
|
|
42
42
|
};
|
|
43
43
|
readonly spacing: number;
|
|
44
|
+
/**
|
|
45
|
+
* The menu element in the shadow DOM.
|
|
46
|
+
*/
|
|
47
|
+
private _menuElement?;
|
|
48
|
+
/**
|
|
49
|
+
* The default slot element in the shadow DOM.
|
|
50
|
+
*/
|
|
51
|
+
private _slotElement?;
|
|
44
52
|
/**
|
|
45
53
|
* Items.
|
|
46
54
|
*/
|
|
@@ -74,19 +82,19 @@ declare class CDSMenu extends CDSMenu_base {
|
|
|
74
82
|
*/
|
|
75
83
|
direction: string;
|
|
76
84
|
/**
|
|
77
|
-
* Open value for the menu
|
|
85
|
+
* Open value for the menu.
|
|
78
86
|
*/
|
|
79
87
|
open: boolean;
|
|
80
88
|
/**
|
|
81
|
-
* Active element in the DOM
|
|
89
|
+
* Active element in the DOM.
|
|
82
90
|
*/
|
|
83
91
|
focusreturn: any;
|
|
84
92
|
/**
|
|
85
|
-
* Position of the Menu
|
|
93
|
+
* Position of the Menu.
|
|
86
94
|
*/
|
|
87
95
|
position: number[];
|
|
88
96
|
/**
|
|
89
|
-
* Size attribute
|
|
97
|
+
* Size attribute.
|
|
90
98
|
*/
|
|
91
99
|
size: MENU_SIZE;
|
|
92
100
|
/**
|
|
@@ -108,11 +116,11 @@ declare class CDSMenu extends CDSMenu_base {
|
|
|
108
116
|
*/
|
|
109
117
|
menuAlignment: any;
|
|
110
118
|
/**
|
|
111
|
-
* Position of the Menu in X axis
|
|
119
|
+
* Position of the Menu in X axis.
|
|
112
120
|
*/
|
|
113
121
|
x: number | number[];
|
|
114
122
|
/**
|
|
115
|
-
* Position of the Menu in Y axis
|
|
123
|
+
* Position of the Menu in Y axis.
|
|
116
124
|
*/
|
|
117
125
|
y: number | number[];
|
|
118
126
|
private _handleBlur;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../../src/components/menu/menu.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAQvC,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,WAAsC,MAAM,aAAa,CAAC;AAEjE,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,CAAC;AAErB;;;;;GAKG;AAEH,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;CAC5B,CAAC;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../../src/components/menu/menu.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAQvC,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,WAAsC,MAAM,aAAa,CAAC;AAEjE,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,CAAC;AAErB;;;;;GAKG;AAEH,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;CAC5B,CAAC;;;;;;;;;;uBAd4C,CAAC;;;;;AAgB/C,cACM,OAAQ,SAAQ,YAA6B;IAGjD,OAAO;uCAE0B,iBAAiB;;;;MAMhD;IAEF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAK;IAE7B;;OAEG;IAEH,OAAO,CAAC,YAAY,CAAC,CAAc;IAEnC;;OAEG;IAEH,OAAO,CAAC,YAAY,CAAC,CAAkB;IAEvC;;OAEG;IAEH,KAAK,EAAE,OAAO,EAAE,GAAG,SAAS,CAAM;IAElC;;OAEG;IAEH,WAAW,EAAE,cAAc,EAAE,CAAM;IAEnC;;OAEG;IAEH,KAAK,MAAC;IACN;;OAEG;IAEH,OAAO,UAAS;IAChB;;OAEG;IAEH,iBAAiB,MAAC;IAClB;;OAEG;IAEH,KAAK,UAAS;IACd;;OAEG;IAEH,MAAM,UAAQ;IAEd;;OAEG;IAEH,SAAS,SAAS;IAClB;;OAEG;IAEH,IAAI,UAAS;IACb;;OAEG;IAEH,WAAW,MAAC;IACZ;;OAEG;IAEH,QAAQ,WAAY;IACpB;;OAEG;IAEH,IAAI,YAAmB;IACvB;;;;OAIG;IAEH,IAAI,MAAC;IAEL;;OAEG;IAEH,eAAe,wBAA+B;IAE9C;;OAEG;IAEH,MAAM,UAAS;IAEf;;OAEG;IAEH,aAAa,MAAC;IACd;;OAEG;IAEH,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAK;IACzB;;OAEG;IAEH,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAK;IAKzB,OAAO,CAAC,WAAW,CASjB;IAEF;;OAEG;IACH,MAAM,KAAK,YAAY,WAEtB;IACD;;OAEG;IACH,MAAM,KAAK,WAAW,WAErB;IACD,OAAO,CAAC,iBAAiB,KAAA;IASzB,iBAAiB;IAWjB,oBAAoB;IAOd,YAAY;IAgBlB,MAAM;IAiCN,cAAc,GAAI,GAAG,aAAa,UAehC;IAEF,UAAU,GAAI,GAAG,aAAa,GAAG,SAAS,UAsCxC;IACF,8BAA8B,GAAI,eAAU,SAY1C;IAEF,SAAS,GAAI,OAAO,MAAM,GAAG,IAAI,GAAG,SAAS,qBAE3C;IACF,SAAS,GAAI,OAAO,MAAM,EAAE,EAAE,MAAM,GAAG,GAAG,GAAG,YAkF3C;IACF,YAAY,GAAI,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,0BAYvD;IACF,kBAAkB,iBAahB;IACF,WAAW,sBA8BT;IACF,kBAAkB,GAAI,IAAI,KAAK,UAmB7B;IACF,OAAO,CAAC,YAAY,CAKlB;IACF,OAAO,CAAC,uBAAuB,CAQ7B;IACF,iBAAiB,aAMf;IACF,kBAAkB,aAgBhB;IACF,eAAe,aAqDb;IACF,MAAM,CAAC,MAAM,MAAU;CACxB;AACD,eAAe,OAAO,CAAC"}
|
|
@@ -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 HostListener from "../../globals/decorators/host-listener.js";
|
|
12
12
|
import HostListenerMixin from "../../globals/mixins/host-listener.js";
|
|
13
13
|
import menu_default$1 from "./menu.scss.js";
|
|
@@ -15,7 +15,7 @@ import { MenuContext, menuDefaultState } from "./menu-context.js";
|
|
|
15
15
|
import { MENU_SIZE } from "./defs.js";
|
|
16
16
|
import { MENU_CLOSE_ROOT_EVENT } from "./menu-item.js";
|
|
17
17
|
import { LitElement, html } from "lit";
|
|
18
|
-
import { property, state } from "lit/decorators.js";
|
|
18
|
+
import { property, query, state } from "lit/decorators.js";
|
|
19
19
|
import { classMap } from "lit/directives/class-map.js";
|
|
20
20
|
import { consume, provide } from "@lit/context";
|
|
21
21
|
//#region src/components/menu/menu.ts
|
|
@@ -44,7 +44,7 @@ let CDSMenu = class CDSMenu extends HostListenerMixin(LitElement) {
|
|
|
44
44
|
this.isRtl = false;
|
|
45
45
|
this.isRoot = true;
|
|
46
46
|
this.direction = "ltr";
|
|
47
|
-
this.open =
|
|
47
|
+
this.open = false;
|
|
48
48
|
this.position = [-1, -1];
|
|
49
49
|
this.size = "sm";
|
|
50
50
|
this.backgroundToken = "layer";
|
|
@@ -93,7 +93,7 @@ let CDSMenu = class CDSMenu extends HostListenerMixin(LitElement) {
|
|
|
93
93
|
};
|
|
94
94
|
this._fitValue = (range, axis) => {
|
|
95
95
|
const { isRoot } = this.context;
|
|
96
|
-
const { width, height } = (this.
|
|
96
|
+
const { width, height } = (this._menuElement ?? this).getBoundingClientRect();
|
|
97
97
|
const alignment = isRoot ? "vertical" : "horizontal";
|
|
98
98
|
const axes = {
|
|
99
99
|
x: {
|
|
@@ -196,7 +196,7 @@ let CDSMenu = class CDSMenu extends HostListenerMixin(LitElement) {
|
|
|
196
196
|
this._registerMenuItems = () => {
|
|
197
197
|
let items;
|
|
198
198
|
if (this.isChild) items = this.querySelector("slot[name=\"submenu\"]")?.assignedElements() ?? [];
|
|
199
|
-
else items = this.
|
|
199
|
+
else items = this._slotElement?.assignedElements() ?? [];
|
|
200
200
|
this.items = items?.filter((item) => {
|
|
201
201
|
if (item.tagName === "CDS-MENU-ITEM") return !item.disabled;
|
|
202
202
|
return item.tagName !== "CDS-MENU-ITEM-DIVIDER";
|
|
@@ -264,7 +264,7 @@ let CDSMenu = class CDSMenu extends HostListenerMixin(LitElement) {
|
|
|
264
264
|
connectedCallback() {
|
|
265
265
|
super.connectedCallback();
|
|
266
266
|
this.addEventListener("icon-detect", () => {
|
|
267
|
-
this.
|
|
267
|
+
this._menuElement?.classList.add(`cds-custom--menu--with-icons`);
|
|
268
268
|
});
|
|
269
269
|
this.addEventListener(MENU_CLOSE_ROOT_EVENT, this._handleRootCloseRequest);
|
|
270
270
|
}
|
|
@@ -279,7 +279,7 @@ let CDSMenu = class CDSMenu extends HostListenerMixin(LitElement) {
|
|
|
279
279
|
await this.updateComplete;
|
|
280
280
|
this._registerMenuItems();
|
|
281
281
|
this._setActiveItems();
|
|
282
|
-
|
|
282
|
+
this._slotElement?.addEventListener("slotchange", () => {
|
|
283
283
|
this._registerMenuItems();
|
|
284
284
|
this._setActiveItems();
|
|
285
285
|
});
|
|
@@ -311,6 +311,8 @@ let CDSMenu = class CDSMenu extends HostListenerMixin(LitElement) {
|
|
|
311
311
|
}
|
|
312
312
|
};
|
|
313
313
|
__decorate([provide({ context: MenuContext }), consume({ context: MenuContext })], CDSMenu.prototype, "context", void 0);
|
|
314
|
+
__decorate([query(`.cds-custom--menu`)], CDSMenu.prototype, "_menuElement", void 0);
|
|
315
|
+
__decorate([query("slot")], CDSMenu.prototype, "_slotElement", void 0);
|
|
314
316
|
__decorate([state()], CDSMenu.prototype, "items", void 0);
|
|
315
317
|
__decorate([state()], CDSMenu.prototype, "activeitems", void 0);
|
|
316
318
|
__decorate([property({ type: String })], CDSMenu.prototype, "label", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.js","names":["styles","customElement"],"sources":["../../../src/components/menu/menu.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2024, 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 { prefix } from '../../globals/settings';\nimport { property, state } from 'lit/decorators.js';\nimport styles from './menu.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { classMap } from 'lit/directives/class-map.js';\nimport {\n MenuContext,\n menuDefaultState,\n type MenuContextUpdate,\n} from './menu-context';\nimport CDSmenuItem, { MENU_CLOSE_ROOT_EVENT } from './menu-item';\nimport { consume, provide } from '@lit/context';\nimport { MENU_BACKGROUND_TOKEN, MENU_SIZE } from './defs';\n\nexport { MENU_SIZE };\n\n/**\n * Menu.\n *\n * @element cds-custom-menu\n * @deprecated Menus now always support both icons as well as selectable items and nesting.\n */\n\ntype activeItemType = {\n item: CDSmenuItem;\n parent: HTMLElement | null;\n};\n\n@customElement(`${prefix}-menu`)\nclass CDSMenu extends HostListenerMixin(LitElement) {\n @provide({ context: MenuContext })\n @consume({ context: MenuContext })\n context = {\n ...menuDefaultState,\n updateFromChild: (updatedItem: MenuContextUpdate) => {\n this.context = {\n ...this.context,\n ...updatedItem,\n };\n },\n };\n\n readonly spacing: number = 8; // distance to keep to window edges, in px\n\n /**\n * Items.\n */\n @state()\n items: Element[] | undefined = [];\n\n /**\n * Active list Items.\n */\n @state()\n activeitems: activeItemType[] = [];\n\n /**\n * Label for the menu.\n */\n @property({ type: String })\n label;\n /**\n * Parent state.\n */\n @property({ type: Boolean })\n isChild = false;\n /**\n * Action button width.\n */\n @property()\n actionButtonWidth;\n /**\n * Checks if document direction is rtl.\n */\n @property({ type: Boolean })\n isRtl = false;\n /**\n * Checks if Menu is root menu or not.\n */\n @property({ type: Boolean })\n isRoot = true;\n\n /**\n * Document direction.\n */\n @property({ type: String })\n direction = 'ltr';\n /**\n * Open value for the menu .\n */\n @property({ type: Boolean, reflect: true })\n open = true;\n /**\n * Active element in the DOM .\n */\n @property({ type: HTMLElement })\n focusreturn;\n /**\n * Position of the Menu .\n */\n @property()\n position = [-1, -1];\n /**\n * Size attribute .\n */\n @property({ attribute: true })\n size = MENU_SIZE.SMALL;\n /**\n * Deprecated: Menus now always support both icons as well as selectable items and nesting. The mode of this menu. Defaults to full. full supports nesting and selectable menu items, but no icons. basic supports icons but no nesting or selectable menu items.\n\n This prop is not intended for use and will be set by the respective implementation (like useContextMenu, MenuButton, and ComboButton).\n */\n @property()\n mode;\n\n /**\n * Specify the background token to use. Default is 'layer'.\n */\n @property({ type: String, attribute: 'background-token' })\n backgroundToken = MENU_BACKGROUND_TOKEN.LAYER;\n\n /**\n * Specify whether a border should be rendered on the menu\n */\n @property({ type: Boolean })\n border = false;\n\n /**\n * Specify how the menu should align with the button element\n */\n @property({ type: String })\n menuAlignment;\n /**\n * Position of the Menu in X axis .\n */\n @property()\n x: number | number[] = 0;\n /**\n * Position of the Menu in Y axis .\n */\n @property()\n y: number | number[] = 0;\n\n @HostListener('focusout')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleBlur = (e: FocusEvent) => {\n const { isRoot } = this.context;\n // Close the menu if all of the following are met:\n // * The menu is open\n // * The focusout event is on the root menu\n // * Focus is moving outside the menu\n if (this.open && isRoot && !this.contains(e.relatedTarget as Node)) {\n this.dispatchCloseEvent(e);\n }\n };\n\n /**\n * The name of the custom event fired when the the Menu should be closed.\n */\n static get eventOnClose() {\n return `${prefix}-menu-closed`;\n }\n /**\n * The name of the custom event fired when the the Menu should be opened.\n */\n static get eventOnOpen() {\n return `${prefix}-menu-opened`;\n }\n updated(changedProperties) {\n if (changedProperties.has('open')) {\n if (this.open) {\n this._handleOpen();\n } else {\n this._handleClose();\n }\n }\n }\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('icon-detect', () => {\n this.shadowRoot\n ?.querySelector('.cds-custom--menu')\n ?.classList.add(`${prefix}--menu--with-icons`);\n });\n this.addEventListener(\n MENU_CLOSE_ROOT_EVENT,\n this._handleRootCloseRequest as EventListener\n );\n }\n\n disconnectedCallback() {\n this.removeEventListener(\n MENU_CLOSE_ROOT_EVENT,\n this._handleRootCloseRequest as EventListener\n );\n super.disconnectedCallback();\n }\n async firstUpdated() {\n this.isRtl = this.direction === 'rtl';\n this.isRoot = this.context.isRoot;\n\n if (this.isChild) {\n this._newContextCreate();\n }\n await this.updateComplete;\n this._registerMenuItems();\n this._setActiveItems();\n\n const slot = this.shadowRoot?.querySelector('slot');\n slot?.addEventListener('slotchange', () => {\n this._registerMenuItems();\n this._setActiveItems();\n });\n }\n render() {\n const {\n open,\n menuAlignment,\n label,\n position,\n _handleKeyDown: handleKeyDown,\n } = this;\n const menuClasses = classMap({\n [`${prefix}--menu`]: true,\n [`${prefix}--menu--${this.size}`]: this.size,\n [`${prefix}--menu--box-shadow-top`]:\n menuAlignment && menuAlignment.slice(0, 3) === 'top',\n [`${prefix}--menu--open`]: open,\n [`${prefix}--menu--shown`]: position[0] >= 0 && position[1] >= 0,\n [`${prefix}--menu--with-selectable-items`]:\n this.context.hasSelectableItems,\n [`${prefix}--menu--border`]: this.border,\n [`${prefix}--menu--background-token__background`]:\n this.backgroundToken === MENU_BACKGROUND_TOKEN.BACKGROUND,\n });\n return html`\n <ul\n class=\"${menuClasses}\"\n aria-label=\"${label}\"\n tabindex=\"-1\"\n @keydown=\"${handleKeyDown}\"\n role=\"menu\">\n <slot></slot>\n </ul>\n `;\n }\n\n _handleKeyDown = (e: KeyboardEvent) => {\n const { isRoot } = this.context;\n e.stopPropagation();\n // if the user presses escape or this is a submenu\n // and the user presses ArrowLeft, close it\n\n if (e.key === 'Escape' || (!isRoot && e.key === 'ArrowLeft')) {\n this.dispatchCloseEvent(e);\n } else {\n // Prevent scrolling when navigating menu items\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n e.preventDefault();\n }\n this._focusItem(e);\n }\n };\n\n _focusItem = (e: KeyboardEvent | undefined) => {\n let currentItem: number;\n\n if (document.activeElement?.tagName !== 'CDS-MENU') {\n const shadowRootActiveEl = this._findActiveElementInShadowRoot(document);\n currentItem = this.activeitems.findIndex((activeItem) => {\n return (\n shadowRootActiveEl == activeItem.item ||\n activeItem.item.shadowRoot?.activeElement === shadowRootActiveEl\n );\n });\n } else {\n currentItem = 0;\n }\n\n let indexToFocus = currentItem;\n // if currentItem is -1, no menu item is focused yet.\n // in this case, the first item should receive focus.\n if (currentItem === -1) {\n indexToFocus = 0;\n } else if (e) {\n if (e.key === 'ArrowUp') {\n indexToFocus = indexToFocus - 1;\n }\n if (e.key === 'ArrowDown') {\n indexToFocus = indexToFocus + 1;\n }\n }\n if (indexToFocus < 0) {\n indexToFocus = this.activeitems.length - 1;\n }\n if (indexToFocus >= this.activeitems.length) {\n indexToFocus = 0;\n }\n\n if (indexToFocus !== currentItem) {\n this.activeitems[indexToFocus]?.item?.focus();\n }\n };\n _findActiveElementInShadowRoot = (shadowRoot) => {\n if (shadowRoot === null) return null;\n\n let activeElement = shadowRoot.activeElement;\n while (\n activeElement &&\n activeElement.shadowRoot &&\n activeElement.shadowRoot.activeElement\n ) {\n activeElement = activeElement.shadowRoot.activeElement;\n }\n return activeElement;\n };\n\n _notEmpty = (value: number | null | undefined) => {\n return value !== null && value !== undefined;\n };\n _fitValue = (range: number[], axis: 'x' | 'y') => {\n const { isRoot } = this.context;\n\n // const isRoot = false\n const menuElement = this.shadowRoot?.querySelector(`.${prefix}--menu`);\n const { width, height } = (menuElement ?? this).getBoundingClientRect();\n const alignment = isRoot ? 'vertical' : 'horizontal';\n const axes = {\n x: {\n max: window.innerWidth,\n size: width,\n anchor: alignment === 'horizontal' ? range[1] : range[0],\n reversedAnchor: alignment === 'horizontal' ? range[0] : range[1],\n offset: 0,\n },\n y: {\n max: window.innerHeight,\n size: height,\n anchor: alignment === 'horizontal' ? range[0] : range[1],\n reversedAnchor: alignment === 'horizontal' ? range[1] : range[0],\n offset: isRoot ? 0 : 4, // top padding in menu, used to align the menu items\n },\n };\n\n // Avoid that the Menu render incorrectly when the postion is set in the right side of the screen\n if (\n this.actionButtonWidth &&\n this.actionButtonWidth < axes.x.size &&\n (this.menuAlignment === 'bottom' || this.menuAlignment === 'top')\n ) {\n axes.x.size = this.actionButtonWidth;\n }\n\n // if 'axes.x.anchor' is lower than 87px dynamically switch render side\n if (\n this.actionButtonWidth &&\n (this.menuAlignment === 'bottom-end' ||\n this.menuAlignment === 'top-end') &&\n axes.x.anchor >= 87 &&\n this.actionButtonWidth < axes.x.size\n ) {\n const diff = axes.x.anchor + axes.x.reversedAnchor;\n axes.x.anchor = axes.x.anchor + diff;\n }\n\n const { max, size, anchor, reversedAnchor, offset } = axes[axis];\n\n // get values for different scenarios, set to false if they don't work\n const options = [\n // towards max (preferred)\n max - this.spacing - size - anchor >= 0 ? anchor - offset : false,\n\n // towards min / reversed (first fallback)\n reversedAnchor - size >= 0 ? reversedAnchor - size + offset : false,\n\n // align at max (second fallback)\n max - this.spacing - size,\n ];\n const topAlignment =\n this.menuAlignment === 'top' ||\n this.menuAlignment === 'top-end' ||\n this.menuAlignment === 'top-start';\n // If the tooltip is not visible in the top, switch to the bototm\n if (\n typeof options[0] === 'number' &&\n topAlignment &&\n options[0] >= 0 &&\n !options[1] &&\n axis === 'y'\n ) {\n this.style.transform = 'translate(0)';\n } else if (topAlignment && !options[0] && axis === 'y') {\n options[0] = anchor - offset;\n }\n\n // Previous array `options`, has at least one item that is a number (the last one - second fallback).\n // That guarantees that the return of `find()` will always be a number\n // and we can safely add the numeric casting `as number`.\n const bestOption = options.find((option) => option !== false) as number;\n\n return bestOption >= this.spacing ? bestOption : this.spacing;\n };\n _getPosition = (x: number | (number | null | undefined)[]) => {\n if (Array.isArray(x)) {\n // has to be of length 2\n const filtered = x.filter(this._notEmpty);\n if (filtered.length === 2) {\n return filtered;\n } else {\n return;\n }\n } else {\n return [x, x];\n }\n };\n _calculatePosition = () => {\n const ranges = {\n x: this._getPosition(this.x),\n y: this._getPosition(this.y),\n };\n\n if (!ranges.x || !ranges.y) {\n return [-1, -1];\n }\n return [\n this._fitValue(ranges.x as number[], 'x') ?? -1,\n this._fitValue(ranges.y as number[], 'y') ?? -1,\n ];\n };\n _handleOpen = async () => {\n const pos = this._calculatePosition();\n if (this.isRtl) {\n this.style.insetInlineStart = `initial`;\n this.style.insetInlineEnd = `${pos[0]}px`;\n } else {\n this.style.insetInlineStart = `${pos[0]}px`;\n this.style.insetInlineEnd = `initial`;\n }\n this.style.insetBlockStart = `${pos[1]}px`;\n this.position = pos;\n\n await this.updateComplete;\n this._registerMenuItems();\n this._setActiveItems();\n\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n };\n if (\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSMenu).eventOnOpen, init)\n )\n ) {\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSMenu).eventOnOpen, init)\n );\n }\n };\n dispatchCloseEvent = (e?: Event) => {\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy: e?.target,\n triggerEventType: e?.type,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSMenu).eventOnClose, init)\n )\n ) {\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSMenu).eventOnClose, init)\n );\n }\n };\n private _handleClose = () => {\n this.position = [-1, -1];\n this.style.removeProperty('inset-inline-start');\n this.style.removeProperty('inset-inline-end');\n this.style.removeProperty('inset-block-start');\n };\n private _handleRootCloseRequest = (\n event: CustomEvent<{ triggerEvent?: Event }>\n ) => {\n if (!this.context?.isRoot) {\n return;\n }\n\n this.dispatchCloseEvent(event.detail?.triggerEvent ?? event);\n };\n _newContextCreate = () => {\n this.context = {\n ...this.context,\n isRoot: false,\n size: this.size,\n };\n };\n _registerMenuItems = () => {\n let items;\n if (this.isChild) {\n const submenuSlot = this.querySelector(\n 'slot[name=\"submenu\"]'\n ) as HTMLSlotElement | null;\n items = submenuSlot?.assignedElements() ?? [];\n } else {\n items = this.shadowRoot?.querySelector('slot')?.assignedElements() ?? [];\n }\n this.items = items?.filter((item) => {\n if (item.tagName === 'CDS-MENU-ITEM') {\n return !(item as CDSmenuItem).disabled;\n }\n return item.tagName !== 'CDS-MENU-ITEM-DIVIDER';\n });\n };\n _setActiveItems = () => {\n this.activeitems = [];\n\n this.items?.map((item) => {\n let activeItem: activeItemType;\n switch (item.tagName) {\n case 'CDS-MENU-ITEM-RADIO-GROUP': {\n const slotElements = item.querySelectorAll(`${prefix}-menu-item`);\n if (slotElements?.length) {\n for (const entry of slotElements.entries()) {\n activeItem = {\n item: entry[1] as CDSmenuItem,\n parent: item as HTMLElement,\n };\n this.activeitems = [...this.activeitems, activeItem];\n }\n }\n break;\n }\n case 'CDS-MENU-ITEM-GROUP': {\n const slotElements = item.shadowRoot\n ?.querySelector('slot')\n ?.assignedElements();\n slotElements?.map((el) => {\n activeItem = {\n item: el as CDSmenuItem,\n parent: el as HTMLElement,\n };\n this.activeitems = [...this.activeitems, activeItem];\n });\n break;\n }\n case 'CDS-MENU-ITEM-SELECTABLE': {\n activeItem = {\n item: item.shadowRoot?.querySelector(\n `${prefix}-menu-item`\n ) as CDSmenuItem,\n parent: item as HTMLElement,\n };\n this.activeitems = [...this.activeitems, activeItem];\n break;\n }\n default: {\n activeItem = {\n item: item as CDSmenuItem,\n parent: null,\n };\n this.activeitems = [...this.activeitems, activeItem];\n }\n }\n });\n const activeEl = this.activeitems[0]?.item ?? document.activeElement;\n activeEl.focus();\n };\n static styles = styles;\n}\nexport default CDSMenu;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"menu.js","names":["styles","customElement"],"sources":["../../../src/components/menu/menu.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2024, 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 { prefix } from '../../globals/settings';\nimport { property, state, query } from 'lit/decorators.js';\nimport styles from './menu.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { classMap } from 'lit/directives/class-map.js';\nimport {\n MenuContext,\n menuDefaultState,\n type MenuContextUpdate,\n} from './menu-context';\nimport CDSmenuItem, { MENU_CLOSE_ROOT_EVENT } from './menu-item';\nimport { consume, provide } from '@lit/context';\nimport { MENU_BACKGROUND_TOKEN, MENU_SIZE } from './defs';\n\nexport { MENU_SIZE };\n\n/**\n * Menu.\n *\n * @element cds-custom-menu\n * @deprecated Menus now always support both icons as well as selectable items and nesting.\n */\n\ntype activeItemType = {\n item: CDSmenuItem;\n parent: HTMLElement | null;\n};\n\n@customElement(`${prefix}-menu`)\nclass CDSMenu extends HostListenerMixin(LitElement) {\n @provide({ context: MenuContext })\n @consume({ context: MenuContext })\n context = {\n ...menuDefaultState,\n updateFromChild: (updatedItem: MenuContextUpdate) => {\n this.context = {\n ...this.context,\n ...updatedItem,\n };\n },\n };\n\n readonly spacing: number = 8; // distance to keep to window edges, in px\n\n /**\n * The menu element in the shadow DOM.\n */\n @query(`.${prefix}--menu`)\n private _menuElement?: HTMLElement;\n\n /**\n * The default slot element in the shadow DOM.\n */\n @query('slot')\n private _slotElement?: HTMLSlotElement;\n\n /**\n * Items.\n */\n @state()\n items: Element[] | undefined = [];\n\n /**\n * Active list Items.\n */\n @state()\n activeitems: activeItemType[] = [];\n\n /**\n * Label for the menu.\n */\n @property({ type: String })\n label;\n /**\n * Parent state.\n */\n @property({ type: Boolean })\n isChild = false;\n /**\n * Action button width.\n */\n @property()\n actionButtonWidth;\n /**\n * Checks if document direction is rtl.\n */\n @property({ type: Boolean })\n isRtl = false;\n /**\n * Checks if Menu is root menu or not.\n */\n @property({ type: Boolean })\n isRoot = true;\n\n /**\n * Document direction.\n */\n @property({ type: String })\n direction = 'ltr';\n /**\n * Open value for the menu.\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n /**\n * Active element in the DOM.\n */\n @property({ type: HTMLElement })\n focusreturn;\n /**\n * Position of the Menu.\n */\n @property()\n position = [-1, -1];\n /**\n * Size attribute.\n */\n @property({ attribute: true })\n size = MENU_SIZE.SMALL;\n /**\n * Deprecated: Menus now always support both icons as well as selectable items and nesting. The mode of this menu. Defaults to full. full supports nesting and selectable menu items, but no icons. basic supports icons but no nesting or selectable menu items.\n\n This prop is not intended for use and will be set by the respective implementation (like useContextMenu, MenuButton, and ComboButton).\n */\n @property()\n mode;\n\n /**\n * Specify the background token to use. Default is 'layer'.\n */\n @property({ type: String, attribute: 'background-token' })\n backgroundToken = MENU_BACKGROUND_TOKEN.LAYER;\n\n /**\n * Specify whether a border should be rendered on the menu\n */\n @property({ type: Boolean })\n border = false;\n\n /**\n * Specify how the menu should align with the button element\n */\n @property({ type: String })\n menuAlignment;\n /**\n * Position of the Menu in X axis.\n */\n @property()\n x: number | number[] = 0;\n /**\n * Position of the Menu in Y axis.\n */\n @property()\n y: number | number[] = 0;\n\n @HostListener('focusout')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleBlur = (e: FocusEvent) => {\n const { isRoot } = this.context;\n // Close the menu if all of the following are met:\n // * The menu is open\n // * The focusout event is on the root menu\n // * Focus is moving outside the menu\n if (this.open && isRoot && !this.contains(e.relatedTarget as Node)) {\n this.dispatchCloseEvent(e);\n }\n };\n\n /**\n * The name of the custom event fired when the the Menu should be closed.\n */\n static get eventOnClose() {\n return `${prefix}-menu-closed`;\n }\n /**\n * The name of the custom event fired when the the Menu should be opened.\n */\n static get eventOnOpen() {\n return `${prefix}-menu-opened`;\n }\n updated(changedProperties) {\n if (changedProperties.has('open')) {\n if (this.open) {\n this._handleOpen();\n } else {\n this._handleClose();\n }\n }\n }\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('icon-detect', () => {\n this._menuElement?.classList.add(`${prefix}--menu--with-icons`);\n });\n this.addEventListener(\n MENU_CLOSE_ROOT_EVENT,\n this._handleRootCloseRequest as EventListener\n );\n }\n\n disconnectedCallback() {\n this.removeEventListener(\n MENU_CLOSE_ROOT_EVENT,\n this._handleRootCloseRequest as EventListener\n );\n super.disconnectedCallback();\n }\n async firstUpdated() {\n this.isRtl = this.direction === 'rtl';\n this.isRoot = this.context.isRoot;\n\n if (this.isChild) {\n this._newContextCreate();\n }\n await this.updateComplete;\n this._registerMenuItems();\n this._setActiveItems();\n\n this._slotElement?.addEventListener('slotchange', () => {\n this._registerMenuItems();\n this._setActiveItems();\n });\n }\n render() {\n const {\n open,\n menuAlignment,\n label,\n position,\n _handleKeyDown: handleKeyDown,\n } = this;\n const menuClasses = classMap({\n [`${prefix}--menu`]: true,\n [`${prefix}--menu--${this.size}`]: this.size,\n [`${prefix}--menu--box-shadow-top`]:\n menuAlignment && menuAlignment.slice(0, 3) === 'top',\n [`${prefix}--menu--open`]: open,\n [`${prefix}--menu--shown`]: position[0] >= 0 && position[1] >= 0,\n [`${prefix}--menu--with-selectable-items`]:\n this.context.hasSelectableItems,\n [`${prefix}--menu--border`]: this.border,\n [`${prefix}--menu--background-token__background`]:\n this.backgroundToken === MENU_BACKGROUND_TOKEN.BACKGROUND,\n });\n return html`\n <ul\n class=\"${menuClasses}\"\n aria-label=\"${label}\"\n tabindex=\"-1\"\n @keydown=\"${handleKeyDown}\"\n role=\"menu\">\n <slot></slot>\n </ul>\n `;\n }\n\n _handleKeyDown = (e: KeyboardEvent) => {\n const { isRoot } = this.context;\n e.stopPropagation();\n // if the user presses escape or this is a submenu\n // and the user presses ArrowLeft, close it\n\n if (e.key === 'Escape' || (!isRoot && e.key === 'ArrowLeft')) {\n this.dispatchCloseEvent(e);\n } else {\n // Prevent scrolling when navigating menu items\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n e.preventDefault();\n }\n this._focusItem(e);\n }\n };\n\n _focusItem = (e: KeyboardEvent | undefined) => {\n let currentItem: number;\n\n if (document.activeElement?.tagName !== 'CDS-MENU') {\n const shadowRootActiveEl = this._findActiveElementInShadowRoot(document);\n currentItem = this.activeitems.findIndex((activeItem) => {\n return (\n shadowRootActiveEl == activeItem.item ||\n activeItem.item.shadowRoot?.activeElement === shadowRootActiveEl\n );\n });\n } else {\n currentItem = 0;\n }\n\n let indexToFocus = currentItem;\n // if currentItem is -1, no menu item is focused yet.\n // in this case, the first item should receive focus.\n if (currentItem === -1) {\n indexToFocus = 0;\n } else if (e) {\n if (e.key === 'ArrowUp') {\n indexToFocus = indexToFocus - 1;\n }\n if (e.key === 'ArrowDown') {\n indexToFocus = indexToFocus + 1;\n }\n }\n if (indexToFocus < 0) {\n indexToFocus = this.activeitems.length - 1;\n }\n if (indexToFocus >= this.activeitems.length) {\n indexToFocus = 0;\n }\n\n if (indexToFocus !== currentItem) {\n this.activeitems[indexToFocus]?.item?.focus();\n }\n };\n _findActiveElementInShadowRoot = (shadowRoot) => {\n if (shadowRoot === null) return null;\n\n let activeElement = shadowRoot.activeElement;\n while (\n activeElement &&\n activeElement.shadowRoot &&\n activeElement.shadowRoot.activeElement\n ) {\n activeElement = activeElement.shadowRoot.activeElement;\n }\n return activeElement;\n };\n\n _notEmpty = (value: number | null | undefined) => {\n return value !== null && value !== undefined;\n };\n _fitValue = (range: number[], axis: 'x' | 'y') => {\n const { isRoot } = this.context;\n\n // const isRoot = false\n const { width, height } = (\n this._menuElement ?? this\n ).getBoundingClientRect();\n const alignment = isRoot ? 'vertical' : 'horizontal';\n const axes = {\n x: {\n max: window.innerWidth,\n size: width,\n anchor: alignment === 'horizontal' ? range[1] : range[0],\n reversedAnchor: alignment === 'horizontal' ? range[0] : range[1],\n offset: 0,\n },\n y: {\n max: window.innerHeight,\n size: height,\n anchor: alignment === 'horizontal' ? range[0] : range[1],\n reversedAnchor: alignment === 'horizontal' ? range[1] : range[0],\n offset: isRoot ? 0 : 4, // top padding in menu, used to align the menu items\n },\n };\n\n // Avoid that the Menu render incorrectly when the postion is set in the right side of the screen\n if (\n this.actionButtonWidth &&\n this.actionButtonWidth < axes.x.size &&\n (this.menuAlignment === 'bottom' || this.menuAlignment === 'top')\n ) {\n axes.x.size = this.actionButtonWidth;\n }\n\n // if 'axes.x.anchor' is lower than 87px dynamically switch render side\n if (\n this.actionButtonWidth &&\n (this.menuAlignment === 'bottom-end' ||\n this.menuAlignment === 'top-end') &&\n axes.x.anchor >= 87 &&\n this.actionButtonWidth < axes.x.size\n ) {\n const diff = axes.x.anchor + axes.x.reversedAnchor;\n axes.x.anchor = axes.x.anchor + diff;\n }\n\n const { max, size, anchor, reversedAnchor, offset } = axes[axis];\n\n // get values for different scenarios, set to false if they don't work\n const options = [\n // towards max (preferred)\n max - this.spacing - size - anchor >= 0 ? anchor - offset : false,\n\n // towards min / reversed (first fallback)\n reversedAnchor - size >= 0 ? reversedAnchor - size + offset : false,\n\n // align at max (second fallback)\n max - this.spacing - size,\n ];\n const topAlignment =\n this.menuAlignment === 'top' ||\n this.menuAlignment === 'top-end' ||\n this.menuAlignment === 'top-start';\n // If the tooltip is not visible in the top, switch to the bototm\n if (\n typeof options[0] === 'number' &&\n topAlignment &&\n options[0] >= 0 &&\n !options[1] &&\n axis === 'y'\n ) {\n this.style.transform = 'translate(0)';\n } else if (topAlignment && !options[0] && axis === 'y') {\n options[0] = anchor - offset;\n }\n\n // Previous array `options`, has at least one item that is a number (the last one - second fallback).\n // That guarantees that the return of `find()` will always be a number\n // and we can safely add the numeric casting `as number`.\n const bestOption = options.find((option) => option !== false) as number;\n\n return bestOption >= this.spacing ? bestOption : this.spacing;\n };\n _getPosition = (x: number | (number | null | undefined)[]) => {\n if (Array.isArray(x)) {\n // has to be of length 2\n const filtered = x.filter(this._notEmpty);\n if (filtered.length === 2) {\n return filtered;\n } else {\n return;\n }\n } else {\n return [x, x];\n }\n };\n _calculatePosition = () => {\n const ranges = {\n x: this._getPosition(this.x),\n y: this._getPosition(this.y),\n };\n\n if (!ranges.x || !ranges.y) {\n return [-1, -1];\n }\n return [\n this._fitValue(ranges.x as number[], 'x') ?? -1,\n this._fitValue(ranges.y as number[], 'y') ?? -1,\n ];\n };\n _handleOpen = async () => {\n const pos = this._calculatePosition();\n if (this.isRtl) {\n this.style.insetInlineStart = `initial`;\n this.style.insetInlineEnd = `${pos[0]}px`;\n } else {\n this.style.insetInlineStart = `${pos[0]}px`;\n this.style.insetInlineEnd = `initial`;\n }\n this.style.insetBlockStart = `${pos[1]}px`;\n this.position = pos;\n\n await this.updateComplete;\n this._registerMenuItems();\n this._setActiveItems();\n\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n };\n if (\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSMenu).eventOnOpen, init)\n )\n ) {\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSMenu).eventOnOpen, init)\n );\n }\n };\n dispatchCloseEvent = (e?: Event) => {\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy: e?.target,\n triggerEventType: e?.type,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSMenu).eventOnClose, init)\n )\n ) {\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSMenu).eventOnClose, init)\n );\n }\n };\n private _handleClose = () => {\n this.position = [-1, -1];\n this.style.removeProperty('inset-inline-start');\n this.style.removeProperty('inset-inline-end');\n this.style.removeProperty('inset-block-start');\n };\n private _handleRootCloseRequest = (\n event: CustomEvent<{ triggerEvent?: Event }>\n ) => {\n if (!this.context?.isRoot) {\n return;\n }\n\n this.dispatchCloseEvent(event.detail?.triggerEvent ?? event);\n };\n _newContextCreate = () => {\n this.context = {\n ...this.context,\n isRoot: false,\n size: this.size,\n };\n };\n _registerMenuItems = () => {\n let items;\n if (this.isChild) {\n const submenuSlot = this.querySelector(\n 'slot[name=\"submenu\"]'\n ) as HTMLSlotElement | null;\n items = submenuSlot?.assignedElements() ?? [];\n } else {\n items = this._slotElement?.assignedElements() ?? [];\n }\n this.items = items?.filter((item) => {\n if (item.tagName === 'CDS-MENU-ITEM') {\n return !(item as CDSmenuItem).disabled;\n }\n return item.tagName !== 'CDS-MENU-ITEM-DIVIDER';\n });\n };\n _setActiveItems = () => {\n this.activeitems = [];\n\n this.items?.map((item) => {\n let activeItem: activeItemType;\n switch (item.tagName) {\n case 'CDS-MENU-ITEM-RADIO-GROUP': {\n const slotElements = item.querySelectorAll(`${prefix}-menu-item`);\n if (slotElements?.length) {\n for (const entry of slotElements.entries()) {\n activeItem = {\n item: entry[1] as CDSmenuItem,\n parent: item as HTMLElement,\n };\n this.activeitems = [...this.activeitems, activeItem];\n }\n }\n break;\n }\n case 'CDS-MENU-ITEM-GROUP': {\n const slotElements = item.shadowRoot\n ?.querySelector('slot')\n ?.assignedElements();\n slotElements?.map((el) => {\n activeItem = {\n item: el as CDSmenuItem,\n parent: el as HTMLElement,\n };\n this.activeitems = [...this.activeitems, activeItem];\n });\n break;\n }\n case 'CDS-MENU-ITEM-SELECTABLE': {\n activeItem = {\n item: item.shadowRoot?.querySelector(\n `${prefix}-menu-item`\n ) as CDSmenuItem,\n parent: item as HTMLElement,\n };\n this.activeitems = [...this.activeitems, activeItem];\n break;\n }\n default: {\n activeItem = {\n item: item as CDSmenuItem,\n parent: null,\n };\n this.activeitems = [...this.activeitems, activeItem];\n }\n }\n });\n const activeEl = this.activeitems[0]?.item ?? document.activeElement;\n activeEl.focus();\n };\n static styles = styles;\n}\nexport default CDSMenu;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defs.js","names":[],"sources":["../../../src/components/menu-button/defs.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2025, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/**\n * Menu button size.\n */\nexport enum MENU_BUTTON_SIZE {\n /**\n * Extra Small size\n */\n EXTRA_SMALL = 'xs',\n\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/**\n * menu button kind\n */\nexport enum MENU_BUTTON_KIND {\n /**\n * primary kind\n */\n PRIMARY = 'primary',\n /**\n * tertiary kind\n */\n TERTIARY = 'tertiary',\n /**\n * ghost kind\n */\n GHOST = 'ghost',\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAUA,IAAY,mBAAL,yBAAA,kBAAA;;;;
|
|
1
|
+
{"version":3,"file":"defs.js","names":[],"sources":["../../../src/components/menu-button/defs.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2025, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/**\n * Menu button size.\n */\nexport enum MENU_BUTTON_SIZE {\n /**\n * Extra Small size\n */\n EXTRA_SMALL = 'xs',\n\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/**\n * menu button kind\n */\nexport enum MENU_BUTTON_KIND {\n /**\n * primary kind\n */\n PRIMARY = 'primary',\n /**\n * tertiary kind\n */\n TERTIARY = 'tertiary',\n /**\n * ghost kind\n */\n GHOST = 'ghost',\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAUA,IAAY,mBAAL,yBAAA,kBAAA;;;;CAIL,iBAAA,iBAAA;;;;CAKA,iBAAA,WAAA;;;;CAKA,iBAAA,YAAA;;;;CAKA,iBAAA,WAAA;;AACF,EAAA,CAAA,CAAA;;;;AAIA,IAAY,mBAAL,yBAAA,kBAAA;;;;CAIL,iBAAA,aAAA;;;;CAIA,iBAAA,cAAA;;;;CAIA,iBAAA,WAAA;;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 HostListener from "../../globals/decorators/host-listener.js";
|
|
13
13
|
import HostListenerMixin from "../../globals/mixins/host-listener.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-button.js","names":["FloatingUIController","styles","customElement"],"sources":["../../../src/components/menu-button/menu-button.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2025, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport styles from './menu-button.scss?lit';\nimport '../button/index';\nimport '../menu/index';\nimport ChevronDown16 from '@carbon/icons/es/chevron--down/16.js';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport { POPOVER_ALIGNMENT } from '../popover/defs';\nimport CDSMenu from '../menu/menu';\nimport CDSButton from '../button/button';\nimport { MENU_BUTTON_KIND, MENU_BUTTON_SIZE } from './defs';\nimport { MENU_BACKGROUND_TOKEN } from '../menu/defs';\nimport FloatingUIController from '../../globals/controllers/floating-controller';\n\nexport { MENU_BUTTON_KIND, MENU_BUTTON_SIZE };\n\n/**\n * Menu button.\n * @element cds-custom-menu-button\n */\n@customElement(`${prefix}-menu-button`)\nclass CDSMenuButton extends HostListenerMixin(LitElement) {\n private _menuController = new FloatingUIController(this);\n\n @query(`${prefix}-button`)\n _triggerNode!: CDSButton;\n\n @property({ type: Boolean, reflect: true })\n private _open = false;\n\n /**\n * Specify whether the MenuButton should be disabled, or not.\n */\n @property({ type: Boolean, reflect: true })\n disabled;\n\n /**\n * Specify the type of button to be used as the base for the trigger button.\n */\n @property({ type: MENU_BUTTON_KIND, reflect: true })\n kind = MENU_BUTTON_KIND.PRIMARY;\n\n /**\n * Provide the label to be rendered on the trigger button.\n */ @property({ type: String })\n label;\n\n /**\n * Experimental property. Specify how the menu should align with the button element\n */\n @property({ reflect: true, type: String, attribute: 'menu-alignment' })\n menuAlignment = POPOVER_ALIGNMENT.BOTTOM;\n\n /**\n * Specify whether the menu should have a border.\n */\n @property({ type: Boolean, reflect: true, attribute: 'menu-border' })\n menuBorder = false;\n\n /**\n * Specify the background token to use for the menu. Default is 'layer'.\n */\n @property({ type: String, reflect: true, attribute: 'menu-background-token' })\n menuBackgroundToken = MENU_BACKGROUND_TOKEN.LAYER;\n\n /**\n * Specify the size of the button and menu.\n */\n @property({ type: MENU_BUTTON_SIZE, reflect: true })\n size = MENU_BUTTON_SIZE.LARGE;\n\n /**\n * Specify the tabIndex of the button.\n */\n @property({ type: Number, attribute: 'tab-index', reflect: true })\n tabIndex = 0;\n\n @HostListener('click')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleClick = (event: Event) => {\n const { _triggerNode: trigger } = this;\n if (!trigger) {\n return;\n }\n\n // Handle clicks on trigger only, other listeners handle clicks on menu items\n const path = event.composedPath();\n if (path.includes(trigger)) {\n if (this._open) {\n this._closeMenu({ restoreFocus: true });\n } else {\n this._open = true;\n }\n }\n };\n\n @HostListener('mousedown')\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 _handleMousedown = (event: MouseEvent) => {\n const { _triggerNode: trigger } = this;\n if (!trigger) {\n return;\n }\n\n const path = event.composedPath();\n if (path.includes(trigger)) {\n event.preventDefault();\n }\n };\n\n @HostListener('focusout')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleBlur = ({ relatedTarget }: FocusEvent) => {\n // Close the menu if the focus moves outside the menu button or menu\n if (!this.contains(relatedTarget as Node)) {\n this._closeMenu();\n }\n };\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 = (event: KeyboardEvent) => {\n if (!this._open || event.key !== 'Escape') {\n return;\n }\n\n const { _triggerNode: trigger } = this;\n if (!trigger) {\n return;\n }\n\n const path = event.composedPath();\n if (path.includes(trigger)) {\n event.stopPropagation();\n event.preventDefault();\n this._closeMenu({ restoreFocus: true });\n }\n };\n\n @HostListener(`${prefix}-menu-closed`)\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 _handleMenuClosed = (\n event: CustomEvent<{ triggerEventType?: string }>\n ) => {\n const menu = this.querySelector(`${prefix}-menu`);\n if (!menu || event.target !== menu || !this._open) {\n return;\n }\n\n const shouldRestoreFocus = event.detail?.triggerEventType !== 'focusout';\n this._closeMenu({ restoreFocus: shouldRestoreFocus });\n };\n\n updated(changedProperties) {\n const menu = this.querySelector(`${prefix}-menu`) as CDSMenu;\n\n if (\n changedProperties.has('_open') ||\n changedProperties.has('menuAlignment')\n ) {\n this.updateComplete.then(() => {\n const styleElement = menu.shadowRoot?.querySelector(\n `.${prefix}--menu`\n ) as HTMLElement;\n\n menu.open = this._open;\n\n this._menuController.setPlacement({\n trigger: this._triggerNode,\n target: menu,\n alignment: this.menuAlignment,\n styleElement,\n matchWidth: true,\n open: this._open,\n });\n });\n }\n\n if (changedProperties.has('size')) {\n menu.setAttribute('size', this.size);\n }\n\n if (changedProperties.has('menuBorder')) {\n menu.toggleAttribute('border', this.menuBorder);\n }\n\n if (changedProperties.has('menuBackgroundToken')) {\n menu.backgroundToken = this.menuBackgroundToken;\n }\n }\n\n render() {\n const { kind, size, disabled, tabIndex, label } = this;\n return html`\n <cds-custom-button\n kind=${kind}\n size=${size}\n ?disabled=${disabled}\n tab-index=${tabIndex}>\n ${label} ${iconLoader(ChevronDown16, { slot: 'icon' })}\n </cds-custom-button>\n <slot></slot>\n `;\n }\n\n static styles = styles;\n\n private _closeMenu({\n restoreFocus = false,\n }: { restoreFocus?: boolean } = {}) {\n if (!this._open) {\n return;\n }\n\n this._open = false;\n\n if (restoreFocus) {\n this._focusTrigger();\n }\n }\n\n private _focusTrigger() {\n if (!this._triggerNode || typeof this._triggerNode.focus !== 'function') {\n return;\n }\n\n this._triggerNode.focus();\n }\n}\n\nexport default CDSMenuButton;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"menu-button.js","names":["FloatingUIController","styles","customElement"],"sources":["../../../src/components/menu-button/menu-button.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2025, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport styles from './menu-button.scss?lit';\nimport '../button/index';\nimport '../menu/index';\nimport ChevronDown16 from '@carbon/icons/es/chevron--down/16.js';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport { POPOVER_ALIGNMENT } from '../popover/defs';\nimport CDSMenu from '../menu/menu';\nimport CDSButton from '../button/button';\nimport { MENU_BUTTON_KIND, MENU_BUTTON_SIZE } from './defs';\nimport { MENU_BACKGROUND_TOKEN } from '../menu/defs';\nimport FloatingUIController from '../../globals/controllers/floating-controller';\n\nexport { MENU_BUTTON_KIND, MENU_BUTTON_SIZE };\n\n/**\n * Menu button.\n * @element cds-custom-menu-button\n */\n@customElement(`${prefix}-menu-button`)\nclass CDSMenuButton extends HostListenerMixin(LitElement) {\n private _menuController = new FloatingUIController(this);\n\n @query(`${prefix}-button`)\n _triggerNode!: CDSButton;\n\n @property({ type: Boolean, reflect: true })\n private _open = false;\n\n /**\n * Specify whether the MenuButton should be disabled, or not.\n */\n @property({ type: Boolean, reflect: true })\n disabled;\n\n /**\n * Specify the type of button to be used as the base for the trigger button.\n */\n @property({ type: MENU_BUTTON_KIND, reflect: true })\n kind = MENU_BUTTON_KIND.PRIMARY;\n\n /**\n * Provide the label to be rendered on the trigger button.\n */ @property({ type: String })\n label;\n\n /**\n * Experimental property. Specify how the menu should align with the button element\n */\n @property({ reflect: true, type: String, attribute: 'menu-alignment' })\n menuAlignment = POPOVER_ALIGNMENT.BOTTOM;\n\n /**\n * Specify whether the menu should have a border.\n */\n @property({ type: Boolean, reflect: true, attribute: 'menu-border' })\n menuBorder = false;\n\n /**\n * Specify the background token to use for the menu. Default is 'layer'.\n */\n @property({ type: String, reflect: true, attribute: 'menu-background-token' })\n menuBackgroundToken = MENU_BACKGROUND_TOKEN.LAYER;\n\n /**\n * Specify the size of the button and menu.\n */\n @property({ type: MENU_BUTTON_SIZE, reflect: true })\n size = MENU_BUTTON_SIZE.LARGE;\n\n /**\n * Specify the tabIndex of the button.\n */\n @property({ type: Number, attribute: 'tab-index', reflect: true })\n tabIndex = 0;\n\n @HostListener('click')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleClick = (event: Event) => {\n const { _triggerNode: trigger } = this;\n if (!trigger) {\n return;\n }\n\n // Handle clicks on trigger only, other listeners handle clicks on menu items\n const path = event.composedPath();\n if (path.includes(trigger)) {\n if (this._open) {\n this._closeMenu({ restoreFocus: true });\n } else {\n this._open = true;\n }\n }\n };\n\n @HostListener('mousedown')\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 _handleMousedown = (event: MouseEvent) => {\n const { _triggerNode: trigger } = this;\n if (!trigger) {\n return;\n }\n\n const path = event.composedPath();\n if (path.includes(trigger)) {\n event.preventDefault();\n }\n };\n\n @HostListener('focusout')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleBlur = ({ relatedTarget }: FocusEvent) => {\n // Close the menu if the focus moves outside the menu button or menu\n if (!this.contains(relatedTarget as Node)) {\n this._closeMenu();\n }\n };\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 = (event: KeyboardEvent) => {\n if (!this._open || event.key !== 'Escape') {\n return;\n }\n\n const { _triggerNode: trigger } = this;\n if (!trigger) {\n return;\n }\n\n const path = event.composedPath();\n if (path.includes(trigger)) {\n event.stopPropagation();\n event.preventDefault();\n this._closeMenu({ restoreFocus: true });\n }\n };\n\n @HostListener(`${prefix}-menu-closed`)\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 _handleMenuClosed = (\n event: CustomEvent<{ triggerEventType?: string }>\n ) => {\n const menu = this.querySelector(`${prefix}-menu`);\n if (!menu || event.target !== menu || !this._open) {\n return;\n }\n\n const shouldRestoreFocus = event.detail?.triggerEventType !== 'focusout';\n this._closeMenu({ restoreFocus: shouldRestoreFocus });\n };\n\n updated(changedProperties) {\n const menu = this.querySelector(`${prefix}-menu`) as CDSMenu;\n\n if (\n changedProperties.has('_open') ||\n changedProperties.has('menuAlignment')\n ) {\n this.updateComplete.then(() => {\n const styleElement = menu.shadowRoot?.querySelector(\n `.${prefix}--menu`\n ) as HTMLElement;\n\n menu.open = this._open;\n\n this._menuController.setPlacement({\n trigger: this._triggerNode,\n target: menu,\n alignment: this.menuAlignment,\n styleElement,\n matchWidth: true,\n open: this._open,\n });\n });\n }\n\n if (changedProperties.has('size')) {\n menu.setAttribute('size', this.size);\n }\n\n if (changedProperties.has('menuBorder')) {\n menu.toggleAttribute('border', this.menuBorder);\n }\n\n if (changedProperties.has('menuBackgroundToken')) {\n menu.backgroundToken = this.menuBackgroundToken;\n }\n }\n\n render() {\n const { kind, size, disabled, tabIndex, label } = this;\n return html`\n <cds-custom-button\n kind=${kind}\n size=${size}\n ?disabled=${disabled}\n tab-index=${tabIndex}>\n ${label} ${iconLoader(ChevronDown16, { slot: 'icon' })}\n </cds-custom-button>\n <slot></slot>\n `;\n }\n\n static styles = styles;\n\n private _closeMenu({\n restoreFocus = false,\n }: { restoreFocus?: boolean } = {}) {\n if (!this._open) {\n return;\n }\n\n this._open = false;\n\n if (restoreFocus) {\n this._focusTrigger();\n }\n }\n\n private _focusTrigger() {\n if (!this._triggerNode || typeof this._triggerNode.focus !== 'function') {\n return;\n }\n\n this._triggerNode.focus();\n }\n}\n\nexport default CDSMenuButton;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,IAAA,gBAAA,MACM,sBAAsB,kBAAkB,UAAU,CAAC,CAAC;;;yBAC9B,IAAIA,mBAAqB,IAAI;eAMvC;;;oBA6BH;;;kBAkBF;uBAKa,UAAiB;GACvC,MAAM,EAAE,cAAc,YAAY;GAClC,IAAI,CAAC,SACH;GAKF,IADa,MAAM,aACZ,CAAC,CAAC,SAAS,OAAO,GACvB,IAAI,KAAK,OACP,KAAK,WAAW,EAAE,cAAc,KAAK,CAAC;QAEtC,KAAK,QAAQ;EAGnB;2BAK4B,UAAsB;GAChD,MAAM,EAAE,cAAc,YAAY;GAClC,IAAI,CAAC,SACH;GAIF,IADa,MAAM,aACZ,CAAC,CAAC,SAAS,OAAO,GACvB,MAAM,eAAe;EAEzB;sBAKuB,EAAE,oBAAgC;GAEvD,IAAI,CAAC,KAAK,SAAS,aAAqB,GACtC,KAAK,WAAW;EAEpB;yBAK0B,UAAyB;GACjD,IAAI,CAAC,KAAK,SAAS,MAAM,QAAQ,UAC/B;GAGF,MAAM,EAAE,cAAc,YAAY;GAClC,IAAI,CAAC,SACH;GAIF,IADa,MAAM,aACZ,CAAC,CAAC,SAAS,OAAO,GAAG;IAC1B,MAAM,gBAAgB;IACtB,MAAM,eAAe;IACrB,KAAK,WAAW,EAAE,cAAc,KAAK,CAAC;GACxC;EACF;4BAME,UACG;GACH,MAAM,OAAO,KAAK,cAAc,UAAgB;GAChD,IAAI,CAAC,QAAQ,MAAM,WAAW,QAAQ,CAAC,KAAK,OAC1C;GAGF,MAAM,qBAAqB,MAAM,QAAQ,qBAAqB;GAC9D,KAAK,WAAW,EAAE,cAAc,mBAAmB,CAAC;EACtD;;CAEA,QAAQ,mBAAmB;EACzB,MAAM,OAAO,KAAK,cAAc,UAAgB;EAEhD,IACE,kBAAkB,IAAI,OAAO,KAC7B,kBAAkB,IAAI,eAAe,GAErC,KAAK,eAAe,WAAW;GAC7B,MAAM,eAAe,KAAK,YAAY,cACpC,YACF;GAEA,KAAK,OAAO,KAAK;GAEjB,KAAK,gBAAgB,aAAa;IAChC,SAAS,KAAK;IACd,QAAQ;IACR,WAAW,KAAK;IAChB;IACA,YAAY;IACZ,MAAM,KAAK;GACb,CAAC;EACH,CAAC;EAGH,IAAI,kBAAkB,IAAI,MAAM,GAC9B,KAAK,aAAa,QAAQ,KAAK,IAAI;EAGrC,IAAI,kBAAkB,IAAI,YAAY,GACpC,KAAK,gBAAgB,UAAU,KAAK,UAAU;EAGhD,IAAI,kBAAkB,IAAI,qBAAqB,GAC7C,KAAK,kBAAkB,KAAK;CAEhC;CAEA,SAAS;EACP,MAAM,EAAE,MAAM,MAAM,UAAU,UAAU,UAAU;EAClD,OAAO,IAAI;;eAEA,KAAK;eACL,KAAK;oBACA,SAAS;oBACT,SAAS;UACnB,MAAM,GAAG,WAAW,eAAe,EAAE,MAAM,OAAO,CAAC,EAAE;;;;CAI7D;;gBAEgBC;;CAEhB,WAAmB,EACjB,eAAe,UACe,CAAC,GAAG;EAClC,IAAI,CAAC,KAAK,OACR;EAGF,KAAK,QAAQ;EAEb,IAAI,cACF,KAAK,cAAc;CAEvB;CAEA,gBAAwB;EACtB,IAAI,CAAC,KAAK,gBAAgB,OAAO,KAAK,aAAa,UAAU,YAC3D;EAGF,KAAK,aAAa,MAAM;CAC1B;AACF;YAjNG,MAAM,YAAkB,CAAA,GAAA,cAAA,WAAA,gBAAA,KAAA,CAAA;YAGxB,SAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,cAAA,WAAA,SAAA,KAAA,CAAA;YAMzC,SAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,cAAA,WAAA,YAAA,KAAA,CAAA;YAMzC,SAAS;CAAE,MAAM;CAAkB,SAAS;AAAK,CAAC,CAAA,GAAA,cAAA,WAAA,QAAA,KAAA,CAAA;YAK9C,SAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,cAAA,WAAA,SAAA,KAAA,CAAA;YAM7B,SAAS;CAAE,SAAS;CAAM,MAAM;CAAQ,WAAW;AAAiB,CAAC,CAAA,GAAA,cAAA,WAAA,iBAAA,KAAA,CAAA;YAMrE,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,WAAW;AAAc,CAAC,CAAA,GAAA,cAAA,WAAA,cAAA,KAAA,CAAA;YAMnE,SAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,WAAW;AAAwB,CAAC,CAAA,GAAA,cAAA,WAAA,uBAAA,KAAA,CAAA;YAM5E,SAAS;CAAE,MAAM;CAAkB,SAAS;AAAK,CAAC,CAAA,GAAA,cAAA,WAAA,QAAA,KAAA,CAAA;YAMlD,SAAS;CAAE,MAAM;CAAQ,WAAW;CAAa,SAAS;AAAK,CAAC,CAAA,GAAA,cAAA,WAAA,YAAA,KAAA,CAAA;YAGhE,aAAa,OAAO,CAAA,GAAA,cAAA,WAAA,gBAAA,KAAA,CAAA;YAoBpB,aAAa,WAAW,CAAA,GAAA,cAAA,WAAA,oBAAA,KAAA,CAAA;YAexB,aAAa,UAAU,CAAA,GAAA,cAAA,WAAA,eAAA,KAAA,CAAA;YAUvB,aAAa,SAAS,CAAA,GAAA,cAAA,WAAA,kBAAA,KAAA,CAAA;YAqBtB,aAAa,iBAAuB,CAAA,GAAA,cAAA,WAAA,qBAAA,KAAA,CAAA;4BA3HtCC,cAAc,iBAAuB,CAAA,GAAA,aAAA;AAuNtC,IAAA,sBAAe"}
|