@carbon/web-components 2.46.0 → 2.47.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 +89 -20
- package/es/components/ai-label/ai-label.d.ts +1 -1
- package/es/components/ai-label/ai-label.js +11 -2
- package/es/components/ai-label/ai-label.js.map +1 -1
- package/es/components/ai-label/ai-label.scss.js +1 -1
- package/es/components/ai-skeleton/ai-skeleton.scss.js +1 -1
- package/es/components/breadcrumb/breadcrumb-overflow-menu.d.ts +1 -1
- package/es/components/breadcrumb/breadcrumb-overflow-menu.js +7 -3
- package/es/components/breadcrumb/breadcrumb-overflow-menu.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb.scss.js +1 -1
- package/es/components/button/button.scss.js +1 -1
- package/es/components/chat-button/chat-button-skeleton.d.ts +1 -1
- package/es/components/chat-button/chat-button-skeleton.js +6 -2
- package/es/components/chat-button/chat-button-skeleton.js.map +1 -1
- package/es/components/chat-button/chat-button.d.ts +1 -1
- package/es/components/chat-button/chat-button.js +6 -2
- package/es/components/chat-button/chat-button.js.map +1 -1
- package/es/components/chat-button/chat-button.scss.js +1 -1
- package/es/components/code-snippet/code-snippet.scss.js +1 -1
- package/es/components/combo-box/combo-box.d.ts +5 -1
- package/es/components/combo-box/combo-box.js +27 -3
- package/es/components/combo-box/combo-box.js.map +1 -1
- package/es/components/combo-box/combo-box.scss.js +1 -1
- package/es/components/copy/copy.d.ts +1 -1
- package/es/components/copy/copy.js +1 -2
- package/es/components/copy/copy.js.map +1 -1
- package/es/components/copy-button/copy-button.scss.js +1 -1
- package/es/components/data-table/data-table.scss.js +1 -1
- package/es/components/date-picker/range-plugin.d.ts +1 -1
- package/es/components/date-picker/range-plugin.js +1 -3
- package/es/components/date-picker/range-plugin.js.map +1 -1
- package/es/components/dropdown/dropdown.d.ts +3 -3
- package/es/components/dropdown/dropdown.js +1 -3
- package/es/components/dropdown/dropdown.js.map +1 -1
- package/es/components/dropdown/dropdown.scss.js +1 -1
- package/es/components/fluid-number-input/fluid-number-input.scss.js +1 -1
- package/es/components/fluid-search/fluid-search.scss.js +1 -1
- package/es/components/fluid-text-input/fluid-text-input.scss.js +1 -1
- package/es/components/grid/column-hang.d.ts +0 -2
- package/es/components/grid/column-hang.js +0 -2
- package/es/components/grid/column-hang.js.map +1 -1
- package/es/components/grid/column.d.ts +0 -2
- package/es/components/grid/column.js +0 -2
- package/es/components/grid/column.js.map +1 -1
- package/es/components/grid/grid.d.ts +0 -2
- package/es/components/grid/grid.js +0 -2
- package/es/components/grid/grid.js.map +1 -1
- package/es/components/grid/index.d.ts +0 -2
- package/es/components/icon-button/icon-button.d.ts +1 -1
- package/es/components/icon-button/icon-button.js +12 -3
- package/es/components/icon-button/icon-button.js.map +1 -1
- package/es/components/icon-button/icon-button.scss.js +2 -2
- package/es/components/menu/menu-context.d.ts +3 -2
- package/es/components/menu/menu-context.js +1 -1
- package/es/components/menu/menu-context.js.map +1 -1
- package/es/components/menu/menu.d.ts +3 -2
- package/es/components/menu/menu.js +5 -4
- package/es/components/menu/menu.js.map +1 -1
- package/es/components/modal/modal-body.d.ts +3 -1
- package/es/components/modal/modal-body.js +17 -1
- package/es/components/modal/modal-body.js.map +1 -1
- package/es/components/modal/modal-close-button.d.ts +2 -1
- package/es/components/modal/modal-close-button.js +11 -5
- package/es/components/modal/modal-close-button.js.map +1 -1
- package/es/components/modal/modal.d.ts +67 -2
- package/es/components/modal/modal.js +228 -8
- package/es/components/modal/modal.js.map +1 -1
- package/es/components/modal/modal.scss.js +1 -1
- package/es/components/multi-select/multi-select.d.ts +2 -2
- package/es/components/multi-select/multi-select.js +8 -4
- 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.scss.js +1 -1
- package/es/components/notification/inline-notification.scss.js +1 -1
- package/es/components/notification/toast-notification.scss.js +1 -1
- package/es/components/overflow-menu/overflow-menu.d.ts +0 -1
- package/es/components/overflow-menu/overflow-menu.js +3 -2
- package/es/components/overflow-menu/overflow-menu.js.map +1 -1
- package/es/components/page-header/index.d.ts +0 -2
- package/es/components/page-header/page-header-breadcrumb.d.ts +0 -2
- package/es/components/page-header/page-header-breadcrumb.js +0 -2
- package/es/components/page-header/page-header-breadcrumb.js.map +1 -1
- package/es/components/page-header/page-header-content-text.d.ts +0 -2
- package/es/components/page-header/page-header-content-text.js +0 -2
- package/es/components/page-header/page-header-content-text.js.map +1 -1
- package/es/components/page-header/page-header-content.d.ts +0 -2
- package/es/components/page-header/page-header-content.js +0 -2
- package/es/components/page-header/page-header-content.js.map +1 -1
- package/es/components/page-header/page-header-hero-image.d.ts +0 -2
- package/es/components/page-header/page-header-hero-image.js +0 -2
- package/es/components/page-header/page-header-hero-image.js.map +1 -1
- package/es/components/page-header/page-header-tabs.d.ts +0 -2
- package/es/components/page-header/page-header-tabs.js +0 -2
- package/es/components/page-header/page-header-tabs.js.map +1 -1
- package/es/components/page-header/page-header.d.ts +0 -2
- package/es/components/page-header/page-header.js +0 -2
- package/es/components/page-header/page-header.js.map +1 -1
- package/es/components/password-input/password-input.scss.js +1 -1
- package/es/components/popover/popover-content.js +2 -2
- package/es/components/popover/popover-content.js.map +1 -1
- package/es/components/popover/popover.d.ts +7 -1
- package/es/components/popover/popover.js +54 -3
- package/es/components/popover/popover.js.map +1 -1
- package/es/components/popover/popover.scss.js +2 -2
- package/es/components/search/search.scss.js +1 -1
- package/es/components/slider/slider.scss.js +1 -1
- package/es/components/slug/slug.d.ts +1 -1
- package/es/components/slug/slug.js +11 -2
- package/es/components/slug/slug.js.map +1 -1
- package/es/components/slug/slug.scss.js +1 -1
- package/es/components/tag/dismissible-tag.d.ts +0 -2
- package/es/components/tag/dismissible-tag.js +0 -2
- package/es/components/tag/dismissible-tag.js.map +1 -1
- package/es/components/tag/operational-tag.d.ts +0 -2
- package/es/components/tag/operational-tag.js +0 -2
- package/es/components/tag/operational-tag.js.map +1 -1
- package/es/components/tag/selectable-tag.d.ts +0 -2
- package/es/components/tag/selectable-tag.js +0 -2
- package/es/components/tag/selectable-tag.js.map +1 -1
- package/es/components/tag/tag-skeleton.d.ts +0 -2
- package/es/components/tag/tag-skeleton.js +0 -2
- package/es/components/tag/tag-skeleton.js.map +1 -1
- package/es/components/text-input/text-input.scss.js +1 -1
- package/es/components/tile/tile.scss.js +1 -1
- package/es/components/time-picker/time-picker.scss.js +1 -1
- package/es/components/toggle-tip/toggletip.d.ts +0 -1
- package/es/components/toggle-tip/toggletip.js +4 -3
- package/es/components/toggle-tip/toggletip.js.map +1 -1
- package/es/components/toggle-tip/toggletip.scss.js +2 -2
- package/es/components/tooltip/definition-tooltip.js +5 -3
- package/es/components/tooltip/definition-tooltip.js.map +1 -1
- package/es/components/tooltip/tooltip-content.d.ts +0 -7
- package/es/components/tooltip/tooltip-content.js +4 -8
- package/es/components/tooltip/tooltip-content.js.map +1 -1
- package/es/components/tooltip/tooltip.d.ts +0 -1
- package/es/components/tooltip/tooltip.js +4 -7
- package/es/components/tooltip/tooltip.js.map +1 -1
- package/es/components/tooltip/tooltip.scss.js +2 -2
- package/es/components/tree-view/defs.d.ts +0 -2
- package/es/components/tree-view/defs.js +0 -2
- package/es/components/tree-view/defs.js.map +1 -1
- package/es/components/tree-view/index.d.ts +0 -2
- package/es/components/tree-view/tree-node.d.ts +0 -2
- package/es/components/tree-view/tree-node.js +0 -2
- package/es/components/tree-view/tree-node.js.map +1 -1
- package/es/components/tree-view/tree-view.d.ts +0 -2
- package/es/components/tree-view/tree-view.js +0 -2
- package/es/components/tree-view/tree-view.js.map +1 -1
- package/es/components/tree-view/tree-view.scss.js +1 -1
- package/es/components/ui-shell/header-global-action.d.ts +1 -1
- package/es/components/ui-shell/header-global-action.js +16 -2
- package/es/components/ui-shell/header-global-action.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/side-nav-menu-item.d.ts +4 -0
- package/es/components/ui-shell/side-nav-menu-item.js +10 -2
- package/es/components/ui-shell/side-nav-menu-item.js.map +1 -1
- package/es/globals/controllers/floating-controller.d.ts +1 -1
- package/es/globals/controllers/floating-controller.js +34 -30
- package/es/globals/controllers/floating-controller.js.map +1 -1
- package/es/globals/decorators/carbon-element.d.ts +5 -4
- package/es/globals/decorators/carbon-element.js +1 -1
- package/es/globals/decorators/carbon-element.js.map +1 -1
- package/es-custom/components/ai-label/ai-label.d.ts +1 -1
- package/es-custom/components/ai-label/ai-label.js +11 -2
- package/es-custom/components/ai-label/ai-label.js.map +1 -1
- package/es-custom/components/ai-label/ai-label.scss.js +1 -1
- package/es-custom/components/ai-skeleton/ai-skeleton.scss.js +1 -1
- package/es-custom/components/breadcrumb/breadcrumb-overflow-menu.d.ts +1 -1
- package/es-custom/components/breadcrumb/breadcrumb-overflow-menu.js +7 -3
- package/es-custom/components/breadcrumb/breadcrumb-overflow-menu.js.map +1 -1
- package/es-custom/components/breadcrumb/breadcrumb.scss.js +1 -1
- package/es-custom/components/button/button.scss.js +1 -1
- package/es-custom/components/chat-button/chat-button-skeleton.d.ts +1 -1
- package/es-custom/components/chat-button/chat-button-skeleton.js +6 -2
- package/es-custom/components/chat-button/chat-button-skeleton.js.map +1 -1
- package/es-custom/components/chat-button/chat-button.d.ts +1 -1
- package/es-custom/components/chat-button/chat-button.js +6 -2
- package/es-custom/components/chat-button/chat-button.js.map +1 -1
- package/es-custom/components/chat-button/chat-button.scss.js +1 -1
- package/es-custom/components/code-snippet/code-snippet.scss.js +1 -1
- package/es-custom/components/combo-box/combo-box.d.ts +5 -1
- package/es-custom/components/combo-box/combo-box.js +27 -3
- package/es-custom/components/combo-box/combo-box.js.map +1 -1
- package/es-custom/components/combo-box/combo-box.scss.js +1 -1
- package/es-custom/components/copy/copy.d.ts +1 -1
- package/es-custom/components/copy/copy.js +1 -2
- package/es-custom/components/copy/copy.js.map +1 -1
- package/es-custom/components/copy-button/copy-button.scss.js +1 -1
- package/es-custom/components/data-table/data-table.scss.js +1 -1
- package/es-custom/components/date-picker/range-plugin.d.ts +1 -1
- package/es-custom/components/date-picker/range-plugin.js +1 -3
- package/es-custom/components/date-picker/range-plugin.js.map +1 -1
- package/es-custom/components/dropdown/dropdown.d.ts +3 -3
- package/es-custom/components/dropdown/dropdown.js +1 -3
- package/es-custom/components/dropdown/dropdown.js.map +1 -1
- package/es-custom/components/dropdown/dropdown.scss.js +1 -1
- package/es-custom/components/fluid-number-input/fluid-number-input.scss.js +1 -1
- package/es-custom/components/fluid-search/fluid-search.scss.js +1 -1
- package/es-custom/components/fluid-text-input/fluid-text-input.scss.js +1 -1
- package/es-custom/components/grid/column-hang.d.ts +0 -2
- package/es-custom/components/grid/column-hang.js +0 -2
- package/es-custom/components/grid/column-hang.js.map +1 -1
- package/es-custom/components/grid/column.d.ts +0 -2
- package/es-custom/components/grid/column.js +0 -2
- package/es-custom/components/grid/column.js.map +1 -1
- package/es-custom/components/grid/grid.d.ts +0 -2
- package/es-custom/components/grid/grid.js +0 -2
- package/es-custom/components/grid/grid.js.map +1 -1
- package/es-custom/components/grid/index.d.ts +0 -2
- package/es-custom/components/icon-button/icon-button.d.ts +1 -1
- package/es-custom/components/icon-button/icon-button.js +12 -3
- package/es-custom/components/icon-button/icon-button.js.map +1 -1
- package/es-custom/components/icon-button/icon-button.scss.js +2 -2
- package/es-custom/components/menu/menu-context.d.ts +3 -2
- package/es-custom/components/menu/menu-context.js +1 -1
- package/es-custom/components/menu/menu-context.js.map +1 -1
- package/es-custom/components/menu/menu.d.ts +3 -2
- package/es-custom/components/menu/menu.js +5 -4
- package/es-custom/components/menu/menu.js.map +1 -1
- package/es-custom/components/modal/modal-body.d.ts +3 -1
- package/es-custom/components/modal/modal-body.js +17 -1
- package/es-custom/components/modal/modal-body.js.map +1 -1
- package/es-custom/components/modal/modal-close-button.d.ts +2 -1
- package/es-custom/components/modal/modal-close-button.js +11 -5
- package/es-custom/components/modal/modal-close-button.js.map +1 -1
- package/es-custom/components/modal/modal.d.ts +67 -2
- package/es-custom/components/modal/modal.js +228 -8
- package/es-custom/components/modal/modal.js.map +1 -1
- package/es-custom/components/modal/modal.scss.js +1 -1
- package/es-custom/components/multi-select/multi-select.d.ts +2 -2
- package/es-custom/components/multi-select/multi-select.js +8 -4
- 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.scss.js +1 -1
- package/es-custom/components/notification/inline-notification.scss.js +1 -1
- package/es-custom/components/notification/toast-notification.scss.js +1 -1
- package/es-custom/components/overflow-menu/overflow-menu.d.ts +0 -1
- package/es-custom/components/overflow-menu/overflow-menu.js +3 -2
- package/es-custom/components/overflow-menu/overflow-menu.js.map +1 -1
- package/es-custom/components/page-header/index.d.ts +0 -2
- package/es-custom/components/page-header/page-header-breadcrumb.d.ts +0 -2
- package/es-custom/components/page-header/page-header-breadcrumb.js +0 -2
- package/es-custom/components/page-header/page-header-breadcrumb.js.map +1 -1
- package/es-custom/components/page-header/page-header-content-text.d.ts +0 -2
- package/es-custom/components/page-header/page-header-content-text.js +0 -2
- package/es-custom/components/page-header/page-header-content-text.js.map +1 -1
- package/es-custom/components/page-header/page-header-content.d.ts +0 -2
- package/es-custom/components/page-header/page-header-content.js +0 -2
- package/es-custom/components/page-header/page-header-content.js.map +1 -1
- package/es-custom/components/page-header/page-header-hero-image.d.ts +0 -2
- package/es-custom/components/page-header/page-header-hero-image.js +0 -2
- package/es-custom/components/page-header/page-header-hero-image.js.map +1 -1
- package/es-custom/components/page-header/page-header-tabs.d.ts +0 -2
- package/es-custom/components/page-header/page-header-tabs.js +0 -2
- package/es-custom/components/page-header/page-header-tabs.js.map +1 -1
- package/es-custom/components/page-header/page-header.d.ts +0 -2
- package/es-custom/components/page-header/page-header.js +0 -2
- package/es-custom/components/page-header/page-header.js.map +1 -1
- package/es-custom/components/password-input/password-input.scss.js +1 -1
- package/es-custom/components/popover/popover-content.js +2 -2
- package/es-custom/components/popover/popover-content.js.map +1 -1
- package/es-custom/components/popover/popover.d.ts +7 -1
- package/es-custom/components/popover/popover.js +54 -3
- package/es-custom/components/popover/popover.js.map +1 -1
- package/es-custom/components/popover/popover.scss.js +2 -2
- package/es-custom/components/search/search.scss.js +1 -1
- package/es-custom/components/slider/slider.scss.js +1 -1
- package/es-custom/components/slug/slug.d.ts +1 -1
- package/es-custom/components/slug/slug.js +11 -2
- package/es-custom/components/slug/slug.js.map +1 -1
- package/es-custom/components/slug/slug.scss.js +1 -1
- package/es-custom/components/tag/dismissible-tag.d.ts +0 -2
- package/es-custom/components/tag/dismissible-tag.js +0 -2
- package/es-custom/components/tag/dismissible-tag.js.map +1 -1
- package/es-custom/components/tag/operational-tag.d.ts +0 -2
- package/es-custom/components/tag/operational-tag.js +0 -2
- package/es-custom/components/tag/operational-tag.js.map +1 -1
- package/es-custom/components/tag/selectable-tag.d.ts +0 -2
- package/es-custom/components/tag/selectable-tag.js +0 -2
- package/es-custom/components/tag/selectable-tag.js.map +1 -1
- package/es-custom/components/tag/tag-skeleton.d.ts +0 -2
- package/es-custom/components/tag/tag-skeleton.js +0 -2
- package/es-custom/components/tag/tag-skeleton.js.map +1 -1
- package/es-custom/components/text-input/text-input.scss.js +1 -1
- package/es-custom/components/tile/tile.scss.js +1 -1
- package/es-custom/components/time-picker/time-picker.scss.js +1 -1
- package/es-custom/components/toggle-tip/toggletip.d.ts +0 -1
- package/es-custom/components/toggle-tip/toggletip.js +4 -3
- package/es-custom/components/toggle-tip/toggletip.js.map +1 -1
- package/es-custom/components/toggle-tip/toggletip.scss.js +2 -2
- package/es-custom/components/tooltip/definition-tooltip.js +5 -3
- package/es-custom/components/tooltip/definition-tooltip.js.map +1 -1
- package/es-custom/components/tooltip/tooltip-content.d.ts +0 -7
- package/es-custom/components/tooltip/tooltip-content.js +4 -8
- package/es-custom/components/tooltip/tooltip-content.js.map +1 -1
- package/es-custom/components/tooltip/tooltip.d.ts +0 -1
- package/es-custom/components/tooltip/tooltip.js +4 -7
- package/es-custom/components/tooltip/tooltip.js.map +1 -1
- package/es-custom/components/tooltip/tooltip.scss.js +2 -2
- package/es-custom/components/tree-view/defs.d.ts +0 -2
- package/es-custom/components/tree-view/defs.js +0 -2
- package/es-custom/components/tree-view/defs.js.map +1 -1
- package/es-custom/components/tree-view/index.d.ts +0 -2
- package/es-custom/components/tree-view/tree-node.d.ts +0 -2
- package/es-custom/components/tree-view/tree-node.js +0 -2
- package/es-custom/components/tree-view/tree-node.js.map +1 -1
- package/es-custom/components/tree-view/tree-view.d.ts +0 -2
- package/es-custom/components/tree-view/tree-view.js +0 -2
- package/es-custom/components/tree-view/tree-view.js.map +1 -1
- package/es-custom/components/tree-view/tree-view.scss.js +1 -1
- package/es-custom/components/ui-shell/header-global-action.d.ts +1 -1
- package/es-custom/components/ui-shell/header-global-action.js +16 -2
- package/es-custom/components/ui-shell/header-global-action.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/side-nav-menu-item.d.ts +4 -0
- package/es-custom/components/ui-shell/side-nav-menu-item.js +10 -2
- package/es-custom/components/ui-shell/side-nav-menu-item.js.map +1 -1
- package/es-custom/globals/controllers/floating-controller.d.ts +1 -1
- package/es-custom/globals/controllers/floating-controller.js +34 -30
- package/es-custom/globals/controllers/floating-controller.js.map +1 -1
- package/es-custom/globals/decorators/carbon-element.d.ts +5 -4
- package/es-custom/globals/decorators/carbon-element.js +1 -1
- package/es-custom/globals/decorators/carbon-element.js.map +1 -1
- package/lib/components/ai-label/ai-label.d.ts +1 -1
- package/lib/components/breadcrumb/breadcrumb-overflow-menu.d.ts +1 -1
- package/lib/components/chat-button/chat-button-skeleton.d.ts +1 -1
- package/lib/components/chat-button/chat-button.d.ts +1 -1
- package/lib/components/combo-box/combo-box.d.ts +5 -1
- package/lib/components/copy/copy.d.ts +1 -1
- package/lib/components/date-picker/range-plugin.d.ts +1 -1
- package/lib/components/dropdown/dropdown.d.ts +3 -3
- package/lib/components/grid/column-hang.d.ts +0 -2
- package/lib/components/grid/column.d.ts +0 -2
- package/lib/components/grid/grid.d.ts +0 -2
- package/lib/components/grid/index.d.ts +0 -2
- package/lib/components/icon-button/icon-button.d.ts +1 -1
- package/lib/components/menu/menu-context.d.ts +3 -2
- package/lib/components/menu/menu.d.ts +3 -2
- package/lib/components/modal/modal-body.d.ts +3 -1
- package/lib/components/modal/modal-close-button.d.ts +2 -1
- package/lib/components/modal/modal.d.ts +67 -2
- package/lib/components/multi-select/multi-select.d.ts +2 -2
- package/lib/components/overflow-menu/overflow-menu.d.ts +0 -1
- package/lib/components/page-header/index.d.ts +0 -2
- package/lib/components/page-header/page-header-breadcrumb.d.ts +0 -2
- package/lib/components/page-header/page-header-content-text.d.ts +0 -2
- package/lib/components/page-header/page-header-content.d.ts +0 -2
- package/lib/components/page-header/page-header-hero-image.d.ts +0 -2
- package/lib/components/page-header/page-header-tabs.d.ts +0 -2
- package/lib/components/page-header/page-header.d.ts +0 -2
- package/lib/components/popover/popover.d.ts +7 -1
- package/lib/components/slug/slug.d.ts +1 -1
- package/lib/components/tag/dismissible-tag.d.ts +0 -2
- package/lib/components/tag/operational-tag.d.ts +0 -2
- package/lib/components/tag/selectable-tag.d.ts +0 -2
- package/lib/components/tag/tag-skeleton.d.ts +0 -2
- package/lib/components/toggle-tip/toggletip.d.ts +0 -1
- package/lib/components/tooltip/tooltip-content.d.ts +0 -7
- package/lib/components/tooltip/tooltip.d.ts +0 -1
- package/lib/components/tree-view/defs.d.ts +0 -2
- package/lib/components/tree-view/defs.js +0 -2
- package/lib/components/tree-view/defs.js.map +1 -1
- package/lib/components/tree-view/index.d.ts +0 -2
- package/lib/components/tree-view/tree-node.d.ts +0 -2
- package/lib/components/tree-view/tree-view.d.ts +0 -2
- package/lib/components/ui-shell/header-global-action.d.ts +1 -1
- package/lib/components/ui-shell/side-nav-menu-item.d.ts +4 -0
- package/lib/globals/controllers/floating-controller.d.ts +1 -1
- package/lib/globals/controllers/floating-controller.js +34 -30
- package/lib/globals/controllers/floating-controller.js.map +1 -1
- package/lib/globals/decorators/carbon-element.d.ts +5 -4
- package/package.json +7 -9
- package/scss/components/ai-label/ai-label.scss +11 -12
- package/scss/components/ai-skeleton/ai-skeleton.scss +1 -3
- package/scss/components/breadcrumb/breadcrumb.scss +0 -1
- package/scss/components/button/button.scss +0 -2
- package/scss/components/chat-button/chat-button.scss +0 -1
- package/scss/components/icon-button/icon-button.scss +0 -2
- package/scss/components/modal/modal.scss +27 -7
- package/scss/components/multi-select/multi-select.scss +2 -2
- package/scss/components/notification/actionable-notification.scss +42 -128
- package/scss/components/notification/inline-notification.scss +17 -69
- package/scss/components/notification/toast-notification.scss +16 -37
- package/scss/components/popover/popover.scss +4 -4
- package/scss/components/slug/slug.scss +11 -12
- package/scss/components/tile/tile.scss +1 -1
- package/scss/components/toggle-tip/toggletip.scss +0 -2
- package/scss/components/tooltip/tooltip.scss +0 -1
- package/telemetry.yml +11 -0
- package/dist/16-BXPirV4t.js +0 -28
- package/dist/16-BcPXq4VE.js +0 -28
- package/dist/16-BiojhJb6.js +0 -28
- package/dist/16-BirbARgt.js +0 -28
- package/dist/16-CCrV-EKs.js +0 -28
- package/dist/16-CNObEOvs.js +0 -28
- package/dist/16-CsHohlYG.js +0 -28
- package/dist/16-D9rqeJJl.js +0 -28
- package/dist/16-DEZ8LNs3.js +0 -28
- package/dist/16-DThcsE9v.js +0 -28
- package/dist/16-T0hLy__N.js +0 -28
- package/dist/16-mUGLFymm.js +0 -28
- package/dist/20-BSzLZNRY.js +0 -28
- package/dist/20-ZHgmfbqd.js +0 -28
- package/dist/accordion.min.js +0 -72
- package/dist/ai-label.min.js +0 -54
- package/dist/ai-skeleton.min.js +0 -37
- package/dist/badge-indicator.min.js +0 -28
- package/dist/breadcrumb.min.js +0 -46
- package/dist/button-3n7S6dfU.js +0 -94
- package/dist/button-skeleton-DE9AxBek.js +0 -48
- package/dist/button.min.js +0 -28
- package/dist/carbon-element-tFMTVffV.js +0 -28
- package/dist/chat-button.min.js +0 -40
- package/dist/checkbox-CFU6bnOa.js +0 -67
- package/dist/checkbox.min.js +0 -64
- package/dist/class-map-BLvVLLRH.js +0 -33
- package/dist/code-snippet.min.js +0 -85
- package/dist/collection-helpers-C8K_t6zj.js +0 -28
- package/dist/combo-box.min.js +0 -65
- package/dist/combo-button.min.js +0 -42
- package/dist/consume-DNv3sWri.js +0 -64
- package/dist/contained-list.min.js +0 -70
- package/dist/content-switcher-item-CXc-BbRX.js +0 -54
- package/dist/content-switcher.min.js +0 -28
- package/dist/copy-button.min.js +0 -44
- package/dist/data-table.min.js +0 -185
- package/dist/date-picker.min.js +0 -89
- package/dist/defs-CcLNpvSO.js +0 -28
- package/dist/directive-CwpJ03IP.js +0 -33
- package/dist/dropdown-item-CSXYY4Up.js +0 -100
- package/dist/dropdown.min.js +0 -31
- package/dist/feature-flags.min.js +0 -28
- package/dist/file-uploader.min.js +0 -106
- package/dist/floating-controller-ClaZwDaj.js +0 -28
- package/dist/floating-menu.min.js +0 -28
- package/dist/fluid-number-input.min.js +0 -28
- package/dist/fluid-search.min.js +0 -33
- package/dist/fluid-select.min.js +0 -30
- package/dist/fluid-text-input.min.js +0 -28
- package/dist/fluid-textarea.min.js +0 -36
- package/dist/focus-DCv16lgz.js +0 -28
- package/dist/form-D0wM2t2A.js +0 -28
- package/dist/form-group.min.js +0 -39
- package/dist/form.min.js +0 -30
- package/dist/grid.min.js +0 -60
- package/dist/heading.min.js +0 -33
- package/dist/host-listener-BFnrKETa.js +0 -28
- package/dist/host-listener-maKckXVl.js +0 -28
- package/dist/icon-button.min.js +0 -42
- package/dist/icon-indicator.min.js +0 -28
- package/dist/icon-loader-BiaaiIZd.js +0 -28
- package/dist/icon-loader-utils-Dw7YsY3n.js +0 -33
- package/dist/icon.min.js +0 -28
- package/dist/if-defined-B342gMhK.js +0 -33
- package/dist/if-non-empty-BXM4sQkm.js +0 -28
- package/dist/inline-loading.min.js +0 -39
- package/dist/layer.min.js +0 -28
- package/dist/link.min.js +0 -52
- package/dist/list.min.js +0 -39
- package/dist/lit-element-W7dQy3wx.js +0 -50
- package/dist/loading-icon-9dSwtpx9.js +0 -43
- package/dist/loading.min.js +0 -28
- package/dist/menu-button.min.js +0 -37
- package/dist/menu.min.js +0 -80
- package/dist/modal.min.js +0 -49
- package/dist/multi-select.min.js +0 -90
- package/dist/notification.min.js +0 -116
- package/dist/number-input.min.js +0 -103
- package/dist/on-Bh72-1o0.js +0 -28
- package/dist/overflow-menu.min.js +0 -49
- package/dist/page-header.min.js +0 -142
- package/dist/pagination.min.js +0 -104
- package/dist/password-input.min.js +0 -93
- package/dist/popover.min.js +0 -42
- package/dist/progress-bar.min.js +0 -49
- package/dist/progress-indicator.min.js +0 -62
- package/dist/property-D8KHfsO7.js +0 -33
- package/dist/query-DZZk85FD.js +0 -38
- package/dist/query-assigned-elements-CuK851Xm.js +0 -33
- package/dist/radio-button.min.js +0 -71
- package/dist/radio-group-manager-BbeUxJeN.js +0 -28
- package/dist/search-BpfBrZ_q.js +0 -58
- package/dist/search.min.js +0 -31
- package/dist/select-Bu-C3DEh.js +0 -109
- package/dist/select-item-CY7ZCgDO.js +0 -28
- package/dist/select-skeleton-Bj1W9rv-.js +0 -31
- package/dist/select.min.js +0 -28
- package/dist/settings-CVGvqY8T.js +0 -28
- package/dist/shape-indicator.min.js +0 -28
- package/dist/shared-enums-D2BNx9-N.js +0 -28
- package/dist/side-panel.min.js +0 -160
- package/dist/skeleton-icon.min.js +0 -28
- package/dist/skeleton-placeholder.min.js +0 -28
- package/dist/skeleton-text.min.js +0 -28
- package/dist/skip-to-content.min.js +0 -32
- package/dist/slider.min.js +0 -273
- package/dist/slug.min.js +0 -54
- package/dist/stack.min.js +0 -28
- package/dist/state-DVnprZ3A.js +0 -33
- package/dist/structured-list.min.js +0 -46
- package/dist/tabs.min.js +0 -85
- package/dist/tag.min.js +0 -155
- package/dist/tearsheet.min.js +0 -141
- package/dist/text-input-CMLDDQcE.js +0 -95
- package/dist/text-input.min.js +0 -31
- package/dist/textarea.min.js +0 -84
- package/dist/tile.min.js +0 -101
- package/dist/time-picker.min.js +0 -79
- package/dist/toggle-tip.min.js +0 -73
- package/dist/toggle.min.js +0 -63
- package/dist/tooltip-content-eYgOs_c2.js +0 -30
- package/dist/tooltip.min.js +0 -50
- package/dist/tree-view.min.js +0 -127
- package/dist/ui-shell.min.js +0 -156
- package/dist/unsafe-html-SGvBIOsG.js +0 -33
- package/dist/validity-CzCNnEZK.js +0 -28
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright IBM Corp. 2024
|
|
2
|
+
* Copyright IBM Corp. 2024, 2026
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
+
export type MenuContextUpdate = Partial<Omit<StateType, 'updateFromChild'>>;
|
|
7
8
|
export type StateType = {
|
|
8
9
|
isRoot: boolean;
|
|
9
10
|
hasSelectableItems: boolean;
|
|
10
11
|
size: 'xs' | 'sm' | 'md' | 'lg' | null;
|
|
11
|
-
updateFromChild: (item:
|
|
12
|
+
updateFromChild: (item: MenuContextUpdate) => void;
|
|
12
13
|
};
|
|
13
14
|
export declare const menuDefaultState: StateType;
|
|
14
15
|
export declare const MenuContext: {
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import { createContext } from '@lit/context';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
|
-
* Copyright IBM Corp. 2024
|
|
11
|
+
* Copyright IBM Corp. 2024, 2026
|
|
12
12
|
*
|
|
13
13
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
14
14
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-context.js","sources":["../../../src/components/menu/menu-context.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 { createContext } from '@lit/context';\nexport type StateType = {\n isRoot: boolean;\n hasSelectableItems: boolean;\n size: 'xs' | 'sm' | 'md' | 'lg' | null;\n
|
|
1
|
+
{"version":3,"file":"menu-context.js","sources":["../../../src/components/menu/menu-context.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 { createContext } from '@lit/context';\n\nexport type MenuContextUpdate = Partial<Omit<StateType, 'updateFromChild'>>;\n\nexport type StateType = {\n isRoot: boolean;\n hasSelectableItems: boolean;\n size: 'xs' | 'sm' | 'md' | 'lg' | null;\n updateFromChild: (item: MenuContextUpdate) => void;\n};\n\nexport const menuDefaultState: StateType = {\n isRoot: true,\n hasSelectableItems: false,\n size: null,\n updateFromChild: () => {},\n};\n\nexport const MenuContext = createContext<StateType>('myData');\n"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;AAKG;AAaI,MAAM,gBAAgB,GAAc;AACzC,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,kBAAkB,EAAE,KAAK;AACzB,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,eAAe,EAAE,MAAK,EAAE,CAAC;;MAGd,WAAW,GAAG,aAAa,CAAY,QAAQ;;;;"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright IBM Corp. 2024,
|
|
2
|
+
* Copyright IBM Corp. 2024, 2026
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
import { LitElement } from 'lit';
|
|
8
|
+
import { type MenuContextUpdate } from './menu-context';
|
|
8
9
|
import CDSmenuItem from './menu-item';
|
|
9
10
|
import { MENU_BACKGROUND_TOKEN, MENU_SIZE } from './defs';
|
|
10
11
|
export { MENU_SIZE };
|
|
@@ -368,7 +369,7 @@ declare const CDSMenu_base: {
|
|
|
368
369
|
} & typeof LitElement;
|
|
369
370
|
declare class CDSMenu extends CDSMenu_base {
|
|
370
371
|
context: {
|
|
371
|
-
updateFromChild: (updatedItem:
|
|
372
|
+
updateFromChild: (updatedItem: MenuContextUpdate) => void;
|
|
372
373
|
isRoot: boolean;
|
|
373
374
|
hasSelectableItems: boolean;
|
|
374
375
|
size: "xs" | "sm" | "md" | "lg" | null;
|
|
@@ -20,7 +20,7 @@ import { provide, consume } from '@lit/context';
|
|
|
20
20
|
import { MENU_SIZE, MENU_BACKGROUND_TOKEN } from './defs.js';
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
|
-
* Copyright IBM Corp. 2024,
|
|
23
|
+
* Copyright IBM Corp. 2024, 2026
|
|
24
24
|
*
|
|
25
25
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
26
26
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -314,13 +314,14 @@ let CDSMenu = class CDSMenu extends HostListenerMixin(LitElement) {
|
|
|
314
314
|
this.context = Object.assign(Object.assign({}, this.context), { isRoot: false, size: this.size });
|
|
315
315
|
};
|
|
316
316
|
this._registerMenuItems = () => {
|
|
317
|
-
var _a, _b;
|
|
317
|
+
var _a, _b, _c, _d;
|
|
318
318
|
let items;
|
|
319
319
|
if (this.isChild) {
|
|
320
|
-
|
|
320
|
+
const submenuSlot = this.querySelector('slot[name="submenu"]');
|
|
321
|
+
items = (_a = submenuSlot === null || submenuSlot === void 0 ? void 0 : submenuSlot.assignedElements()) !== null && _a !== void 0 ? _a : [];
|
|
321
322
|
}
|
|
322
323
|
else {
|
|
323
|
-
items = (
|
|
324
|
+
items = (_d = (_c = (_b = this.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('slot')) === null || _c === void 0 ? void 0 : _c.assignedElements()) !== null && _d !== void 0 ? _d : [];
|
|
324
325
|
}
|
|
325
326
|
this.items = items === null || items === void 0 ? void 0 : items.filter((item) => {
|
|
326
327
|
if (item.tagName === 'CDS-MENU-ITEM') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.js","sources":["../../../src/components/menu/menu.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2024, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { prefix } from '../../globals/settings';\nimport { 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 { MenuContext, menuDefaultState } 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-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) => {\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--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 items = (\n this.querySelector('slot[name=\"submenu\"]') as HTMLSlotElement\n ).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"],"names":["customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"menu.js","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-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--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"],"names":["customElement"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright IBM Corp. 2019,
|
|
2
|
+
* Copyright IBM Corp. 2019, 2026
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -12,7 +12,9 @@ import { LitElement } from 'lit';
|
|
|
12
12
|
*/
|
|
13
13
|
declare class CDSModalBody extends LitElement {
|
|
14
14
|
private userDefinedTabindex;
|
|
15
|
+
private _resizeObserver?;
|
|
15
16
|
connectedCallback(): void;
|
|
17
|
+
disconnectedCallback(): void;
|
|
16
18
|
checkScroll(): void;
|
|
17
19
|
render(): import("lit-html").TemplateResult<1>;
|
|
18
20
|
static styles: any;
|
|
@@ -12,7 +12,7 @@ import styles from './modal.scss.js';
|
|
|
12
12
|
import { carbonElement } from '../../globals/decorators/carbon-element.js';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
* Copyright IBM Corp. 2019,
|
|
15
|
+
* Copyright IBM Corp. 2019, 2026
|
|
16
16
|
*
|
|
17
17
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
18
18
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -34,17 +34,33 @@ let CDSModalBody = class CDSModalBody extends LitElement {
|
|
|
34
34
|
if (this.hasAttribute('tabindex')) {
|
|
35
35
|
this.userDefinedTabindex = this.getAttribute('tabindex');
|
|
36
36
|
}
|
|
37
|
+
this._resizeObserver = new ResizeObserver(() => this.checkScroll());
|
|
38
|
+
this._resizeObserver.observe(this);
|
|
39
|
+
}
|
|
40
|
+
disconnectedCallback() {
|
|
41
|
+
var _a, _b;
|
|
42
|
+
(_a = this._resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
43
|
+
(_b = super.disconnectedCallback) === null || _b === void 0 ? void 0 : _b.call(this);
|
|
37
44
|
}
|
|
38
45
|
checkScroll() {
|
|
39
46
|
const hasScroll = this.scrollHeight > this.clientHeight;
|
|
47
|
+
const hasAutoAlign = this.querySelector('[autoalign]') !== null;
|
|
48
|
+
if (this.clientHeight <= 300 || hasAutoAlign) {
|
|
49
|
+
this.setAttribute('no-fade', '');
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
this.removeAttribute('no-fade');
|
|
53
|
+
}
|
|
40
54
|
// Respect user-defined tabindex
|
|
41
55
|
if (this.userDefinedTabindex !== null)
|
|
42
56
|
return;
|
|
43
57
|
if (hasScroll) {
|
|
44
58
|
this.setAttribute('tabindex', '0');
|
|
59
|
+
this.setAttribute('is-scrollable', '');
|
|
45
60
|
}
|
|
46
61
|
else {
|
|
47
62
|
this.removeAttribute('tabindex');
|
|
63
|
+
this.removeAttribute('is-scrollable');
|
|
48
64
|
}
|
|
49
65
|
}
|
|
50
66
|
render() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal-body.js","sources":["../../../src/components/modal/modal-body.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019,
|
|
1
|
+
{"version":3,"file":"modal-body.js","sources":["../../../src/components/modal/modal-body.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { prefix } from '../../globals/settings';\nimport styles from './modal.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Modal body.\n *\n * @element cds-modal-body\n */\n@customElement(`${prefix}-modal-body`)\nclass CDSModalBody extends LitElement {\n private userDefinedTabindex: string | null = null;\n private _resizeObserver?: ResizeObserver;\n\n connectedCallback() {\n super.connectedCallback?.();\n // Store the tabindex if user set it initially\n if (this.hasAttribute('tabindex')) {\n this.userDefinedTabindex = this.getAttribute('tabindex');\n }\n this._resizeObserver = new ResizeObserver(() => this.checkScroll());\n this._resizeObserver.observe(this);\n }\n\n disconnectedCallback() {\n this._resizeObserver?.disconnect();\n super.disconnectedCallback?.();\n }\n\n checkScroll() {\n const hasScroll = this.scrollHeight > this.clientHeight;\n const hasAutoAlign = this.querySelector('[autoalign]') !== null;\n\n if (this.clientHeight <= 300 || hasAutoAlign) {\n this.setAttribute('no-fade', '');\n } else {\n this.removeAttribute('no-fade');\n }\n\n // Respect user-defined tabindex\n if (this.userDefinedTabindex !== null) return;\n\n if (hasScroll) {\n this.setAttribute('tabindex', '0');\n this.setAttribute('is-scrollable', '');\n } else {\n this.removeAttribute('tabindex');\n this.removeAttribute('is-scrollable');\n }\n }\n\n render() {\n return html` <slot @slotchange=${this.checkScroll}></slot> `;\n }\n\n static styles = styles;\n}\n\nexport default CDSModalBody;\n"],"names":["customElement"],"mappings":";;;;;;;;;;;;;AAAA;;;;;AAKG;AAOH;;;;AAIG;AAEH,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,UAAU,CAAA;AAArC,IAAA,WAAA,GAAA;;QACU,IAAA,CAAA,mBAAmB,GAAkB,IAAI;IA6CnD;IA1CE,iBAAiB,GAAA;;AACf,QAAA,CAAA,EAAA,GAAA,KAAK,CAAC,iBAAiB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,IAAA,CAAI;;AAE3B,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE;YACjC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;QAC1D;AACA,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;AACnE,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC;IACpC;IAEA,oBAAoB,GAAA;;AAClB,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,UAAU,EAAE;AAClC,QAAA,CAAA,EAAA,GAAA,KAAK,CAAC,oBAAoB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,IAAA,CAAI;IAChC;IAEA,WAAW,GAAA;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY;QACvD,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,IAAI;QAE/D,IAAI,IAAI,CAAC,YAAY,IAAI,GAAG,IAAI,YAAY,EAAE;AAC5C,YAAA,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC;QAClC;aAAO;AACL,YAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;QACjC;;AAGA,QAAA,IAAI,IAAI,CAAC,mBAAmB,KAAK,IAAI;YAAE;QAEvC,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC;AAClC,YAAA,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,EAAE,CAAC;QACxC;aAAO;AACL,YAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;AAChC,YAAA,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC;QACvC;IACF;IAEA,MAAM,GAAA;AACJ,QAAA,OAAO,IAAI,CAAA,CAAA,mBAAA,EAAsB,IAAI,CAAC,WAAW,WAAW;IAC9D;;AAEO,YAAA,CAAA,MAAM,GAAG,MAAH;AA7CT,YAAY,GAAA,UAAA,CAAA;AADjB,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,WAAA,CAAa;AAC/B,CAAA,EAAA,YAAY,CA8CjB;AAED,qBAAe,YAAY;;;;"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright IBM Corp. 2019,
|
|
2
|
+
* Copyright IBM Corp. 2019, 2026
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
import { LitElement } from 'lit';
|
|
8
|
+
import '../icon-button';
|
|
8
9
|
declare const CDSModalCloseButton_base: {
|
|
9
10
|
new (...args: any[]): {
|
|
10
11
|
focus(): void;
|
|
@@ -15,9 +15,10 @@ import FocusMixin from '../../globals/mixins/focus.js';
|
|
|
15
15
|
import { iconLoader } from '../../globals/internal/icon-loader.js';
|
|
16
16
|
import styles from './modal.scss.js';
|
|
17
17
|
import { carbonElement } from '../../globals/decorators/carbon-element.js';
|
|
18
|
+
import '../icon-button/icon-button.js';
|
|
18
19
|
|
|
19
20
|
/**
|
|
20
|
-
* Copyright IBM Corp. 2019,
|
|
21
|
+
* Copyright IBM Corp. 2019, 2026
|
|
21
22
|
*
|
|
22
23
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
23
24
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -44,16 +45,21 @@ let CDSModalCloseButton = class CDSModalCloseButton extends FocusMixin(LitElemen
|
|
|
44
45
|
render() {
|
|
45
46
|
const { closeButtonLabel } = this;
|
|
46
47
|
return html `
|
|
47
|
-
<button
|
|
48
|
+
<cds-icon-button
|
|
48
49
|
part="button"
|
|
50
|
+
align="left"
|
|
51
|
+
enter-delay-ms=""
|
|
49
52
|
aria-label="${ifDefined(closeButtonLabel)}"
|
|
50
|
-
|
|
51
|
-
|
|
53
|
+
kind="ghost"
|
|
54
|
+
size="lg"
|
|
55
|
+
leave-delay-ms="">
|
|
52
56
|
${iconLoader(Close20, {
|
|
57
|
+
slot: 'icon',
|
|
53
58
|
part: 'close-icon',
|
|
54
59
|
class: `${prefix}--modal-close__icon`,
|
|
55
60
|
})}
|
|
56
|
-
|
|
61
|
+
<span slot="tooltip-content">${closeButtonLabel}</span>
|
|
62
|
+
</cds-icon-button>
|
|
57
63
|
`;
|
|
58
64
|
}
|
|
59
65
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal-close-button.js","sources":["../../../src/components/modal/modal-close-button.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019,
|
|
1
|
+
{"version":3,"file":"modal-close-button.js","sources":["../../../src/components/modal/modal-close-button.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 Close20 from '@carbon/icons/es/close/20.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport FocusMixin from '../../globals/mixins/focus';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport styles from './modal.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport '../icon-button';\n\n/**\n * Modal close button.\n *\n * @element cds-modal-close-button\n * @csspart button The button.\n * @csspart close-icon The close icon.\n */\n@customElement(`${prefix}-modal-close-button`)\nclass CDSModalCloseButton extends FocusMixin(LitElement) {\n /**\n * Specify a label for the close button of the modal; defaults to close\n */\n @property({ attribute: 'close-button-label' })\n closeButtonLabel = 'Close';\n\n updated() {\n this.parentElement?.setAttribute('close-button', '');\n }\n\n render() {\n const { closeButtonLabel } = this;\n return html`\n <cds-icon-button\n part=\"button\"\n align=\"left\"\n enter-delay-ms=\"\"\n aria-label=\"${ifDefined(closeButtonLabel)}\"\n kind=\"ghost\"\n size=\"lg\"\n leave-delay-ms=\"\">\n ${iconLoader(Close20, {\n slot: 'icon',\n part: 'close-icon',\n class: `${prefix}--modal-close__icon`,\n })}\n <span slot=\"tooltip-content\">${closeButtonLabel}</span>\n </cds-icon-button>\n `;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\nexport default CDSModalCloseButton;\n"],"names":["customElement"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;;;;AAKG;AAaH;;;;;;AAMG;AAEH,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,UAAU,CAAC,UAAU,CAAC,CAAA;AAAxD,IAAA,WAAA,GAAA;;AACE;;AAEG;QAEH,IAAA,CAAA,gBAAgB,GAAG,OAAO;IAgC5B;IA9BE,OAAO,GAAA;;QACL,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,YAAY,CAAC,cAAc,EAAE,EAAE,CAAC;IACtD;IAEA,MAAM,GAAA;AACJ,QAAA,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI;AACjC,QAAA,OAAO,IAAI,CAAA;;;;;sBAKO,SAAS,CAAC,gBAAgB,CAAC,CAAA;;;;UAIvC,UAAU,CAAC,OAAO,EAAE;AACpB,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,CAAA,EAAG,MAAM,CAAA,mBAAA,CAAqB;SACtC,CAAC;uCAC6B,gBAAgB,CAAA;;KAElD;IACH;;AAEO,mBAAA,CAAA,iBAAiB,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACnB,UAAU,CAAC,iBAAiB,KAC/B,cAAc,EAAE,IAAI,EAAA,CAFE;AAIjB,mBAAA,CAAA,MAAM,GAAG,MAAM,CAAC;AA/BvB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE;AAClB,CAAA,EAAA,mBAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,MAAA,CAAA;AALvB,mBAAmB,GAAA,UAAA,CAAA;AADxB,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,mBAAA,CAAqB;AACvC,CAAA,EAAA,mBAAmB,CAqCxB;AAED,4BAAe,mBAAmB;;;;"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright IBM Corp. 2019,
|
|
2
|
+
* Copyright IBM Corp. 2019, 2026
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
import { LitElement } from 'lit';
|
|
8
8
|
import { MODAL_SIZE } from './defs';
|
|
9
|
+
import '../inline-loading';
|
|
9
10
|
export { MODAL_SIZE };
|
|
10
11
|
declare const CDSModal_base: {
|
|
11
12
|
new (...args: any[]): {
|
|
@@ -370,6 +371,22 @@ declare class CDSModal extends CDSModal_base {
|
|
|
370
371
|
* The element that had focus before this modal gets open.
|
|
371
372
|
*/
|
|
372
373
|
private _launcher;
|
|
374
|
+
/**
|
|
375
|
+
* The inline loading element that renders when `loading-status` is not `inactive`
|
|
376
|
+
*/
|
|
377
|
+
private _loadingEl;
|
|
378
|
+
/**
|
|
379
|
+
* MutationObserver that observes the modal-footer
|
|
380
|
+
*/
|
|
381
|
+
private _footerObserver?;
|
|
382
|
+
/**
|
|
383
|
+
* MutationObserver that observes the modal-header
|
|
384
|
+
*/
|
|
385
|
+
private _headerObserver?;
|
|
386
|
+
/**
|
|
387
|
+
* Loading statuses that are not `inactive`
|
|
388
|
+
*/
|
|
389
|
+
private WORKING_LOADING_STATUSES;
|
|
373
390
|
/**
|
|
374
391
|
* Handles `click` event on this element.
|
|
375
392
|
*
|
|
@@ -441,11 +458,55 @@ declare class CDSModal extends CDSModal_base {
|
|
|
441
458
|
* Prevent closing on click outside of modal
|
|
442
459
|
*/
|
|
443
460
|
preventCloseOnClickOutside: boolean;
|
|
461
|
+
/**
|
|
462
|
+
* Specify the loading status
|
|
463
|
+
*/
|
|
464
|
+
loadingStatus: 'inactive' | 'active' | 'finished' | 'error';
|
|
465
|
+
/**
|
|
466
|
+
* Specify the description for the loading text
|
|
467
|
+
*/
|
|
468
|
+
loadingDescription: string;
|
|
469
|
+
/**
|
|
470
|
+
* Provide a delay for the setTimeout for success
|
|
471
|
+
*/
|
|
472
|
+
loadingSuccessDelay: number;
|
|
473
|
+
/**
|
|
474
|
+
* Specify the description for the loading icon
|
|
475
|
+
*/
|
|
476
|
+
loadingIconDescription: string;
|
|
477
|
+
/**
|
|
478
|
+
* Specify if Enter key should be used as "submit" action that clicks the primary footer button
|
|
479
|
+
*/
|
|
480
|
+
shouldSubmitOnEnter: boolean;
|
|
444
481
|
/**
|
|
445
482
|
* Prevent the modal from closing after clicking the close button
|
|
446
483
|
*/
|
|
447
484
|
preventClose: boolean;
|
|
448
|
-
|
|
485
|
+
private _initializeLoadingEl;
|
|
486
|
+
private _getFooterElements;
|
|
487
|
+
private _updateLoadingElement;
|
|
488
|
+
firstUpdated(): Promise<void>;
|
|
489
|
+
/**
|
|
490
|
+
* Computes the aria-label of the modal based on (in order of highest to lowest precedence):
|
|
491
|
+
* - `modal-label`
|
|
492
|
+
* - `aria-label`
|
|
493
|
+
* - `modal-heading`
|
|
494
|
+
*/
|
|
495
|
+
private _computeAriaLabel;
|
|
496
|
+
/**
|
|
497
|
+
* Observes the modal footer's `has-three-buttons` attribute to account for cases
|
|
498
|
+
* where the loading status and the amount of footer-buttons
|
|
499
|
+
* are being changed dynamically
|
|
500
|
+
*/
|
|
501
|
+
private _observeFooter;
|
|
502
|
+
/**
|
|
503
|
+
* Observes the modal header to account for cases where the modal-heading,
|
|
504
|
+
* modal-label, and/or `aria-label` are dynamically changing
|
|
505
|
+
* to update the `aria-label` put on the modal
|
|
506
|
+
*/
|
|
507
|
+
private _observeHeader;
|
|
508
|
+
connectedCallback(): void;
|
|
509
|
+
disconnectedCallback(): void;
|
|
449
510
|
render(): import("lit-html").TemplateResult<1>;
|
|
450
511
|
updated(changedProperties: any): Promise<void>;
|
|
451
512
|
/**
|
|
@@ -478,6 +539,10 @@ declare class CDSModal extends CDSModal_base {
|
|
|
478
539
|
* The name of the custom event fired after this modal is closed upon a user gesture.
|
|
479
540
|
*/
|
|
480
541
|
static get eventClose(): string;
|
|
542
|
+
/**
|
|
543
|
+
* The name of the custom event fired when this modal reaches a `finished` loading state
|
|
544
|
+
*/
|
|
545
|
+
static get eventOnLoadingSuccess(): string;
|
|
481
546
|
static styles: any;
|
|
482
547
|
}
|
|
483
548
|
export default CDSModal;
|