@carbon/web-components 2.48.0 → 2.49.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 +38 -13
- package/es/components/ai-label/ai-label.scss.js +1 -1
- package/es/components/breadcrumb/breadcrumb.scss.js +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.scss.js +1 -1
- package/es/components/checkbox/checkbox.js +1 -1
- package/es/components/checkbox/checkbox.js.map +1 -1
- package/es/components/code-snippet/code-snippet.scss.js +1 -1
- package/es/components/combo-box/combo-box-item.d.ts +3 -4
- package/es/components/combo-box/combo-box-item.js +0 -14
- package/es/components/combo-box/combo-box-item.js.map +1 -1
- package/es/components/combo-box/combo-box.d.ts +7 -0
- package/es/components/combo-box/combo-box.js +30 -8
- 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/combo-button/combo-button.scss.js +1 -1
- package/es/components/contained-list/contained-list.scss.js +1 -1
- package/es/components/content-switcher/content-switcher-item.d.ts +1 -1
- package/es/components/content-switcher/content-switcher-item.js +2 -2
- package/es/components/content-switcher/content-switcher-item.js.map +1 -1
- package/es/components/content-switcher/content-switcher.scss.js +1 -1
- package/es/components/copy-button/copy-button.scss.js +1 -1
- package/es/components/data-table/data-table.scss.js +1 -1
- package/es/components/data-table/table-skeleton.d.ts +1 -5
- package/es/components/data-table/table-skeleton.js +2 -10
- package/es/components/data-table/table-skeleton.js.map +1 -1
- package/es/components/dropdown/dropdown-item.d.ts +15 -0
- package/es/components/dropdown/dropdown-item.js +52 -0
- package/es/components/dropdown/dropdown-item.js.map +1 -1
- package/es/components/dropdown/dropdown.js +0 -1
- package/es/components/dropdown/dropdown.js.map +1 -1
- package/es/components/dropdown/dropdown.scss.js +1 -1
- package/es/components/file-uploader/file-uploader.scss.js +1 -1
- package/es/components/menu-button/menu-button.scss.js +1 -1
- package/es/components/modal/modal.scss.js +1 -1
- package/es/components/multi-select/multi-select.js +0 -3
- package/es/components/multi-select/multi-select.js.map +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-item.d.ts +5 -1
- package/es/components/overflow-menu/overflow-menu-item.js +24 -1
- package/es/components/overflow-menu/overflow-menu-item.js.map +1 -1
- package/es/components/overflow-menu/overflow-menu.d.ts +1 -1
- package/es/components/overflow-menu/overflow-menu.js +3 -3
- package/es/components/overflow-menu/overflow-menu.js.map +1 -1
- package/es/components/overflow-menu/overflow-menu.scss.js +1 -1
- package/es/components/pagination/pagination.scss.js +1 -1
- package/es/components/pagination-nav/pagination-nav.scss.js +1 -1
- package/es/components/popover/popover.d.ts +12 -2
- package/es/components/popover/popover.js +56 -37
- package/es/components/popover/popover.js.map +1 -1
- package/es/components/popover/popover.scss.js +1 -1
- package/es/components/progress-indicator/progress-indicator.scss.js +1 -1
- package/es/components/progress-indicator/progress-step.d.ts +1 -1
- package/es/components/progress-indicator/progress-step.js +2 -2
- package/es/components/progress-indicator/progress-step.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/select/select.d.ts +1 -1
- package/es/components/select/select.js +3 -3
- package/es/components/select/select.js.map +1 -1
- package/es/components/skip-to-content/skip-to-content.scss.js +1 -1
- package/es/components/slug/slug.scss.js +1 -1
- package/es/components/tabs/tab.d.ts +1 -1
- package/es/components/tabs/tab.js +2 -2
- package/es/components/tabs/tab.js.map +1 -1
- package/es/components/tabs/tabs.scss.js +1 -1
- package/es/components/tag/tag.d.ts +1 -1
- package/es/components/tag/tag.js +2 -2
- package/es/components/tag/tag.js.map +1 -1
- package/es/components/tag/tag.scss.js +1 -1
- package/es/components/text-input/text-input.d.ts +2 -0
- package/es/components/text-input/text-input.js +26 -14
- package/es/components/text-input/text-input.js.map +1 -1
- package/es/components/tile/expandable-tile.d.ts +1 -1
- package/es/components/tile/expandable-tile.js +2 -2
- package/es/components/tile/expandable-tile.js.map +1 -1
- package/es/components/time-picker/time-picker-select.d.ts +1 -1
- package/es/components/time-picker/time-picker-select.js +2 -2
- package/es/components/time-picker/time-picker-select.js.map +1 -1
- package/es/components/toggle-tip/toggletip.d.ts +0 -1
- package/es/components/toggle-tip/toggletip.js +2 -13
- package/es/components/toggle-tip/toggletip.js.map +1 -1
- package/es/components/toggle-tip/toggletip.scss.js +1 -1
- package/es/components/tooltip/tooltip.scss.js +1 -1
- package/es/components/ui-shell/header-menu.d.ts +1 -1
- package/es/components/ui-shell/header-menu.js +2 -2
- package/es/components/ui-shell/header-menu.js.map +1 -1
- package/es/components/ui-shell/header.scss.js +1 -1
- package/es/components/ui-shell/side-nav-menu.d.ts +1 -1
- package/es/components/ui-shell/side-nav-menu.js +2 -2
- package/es/components/ui-shell/side-nav-menu.js.map +1 -1
- package/es/globals/controllers/floating-controller.js +6 -2
- package/es/globals/controllers/floating-controller.js.map +1 -1
- package/es/globals/internal/deep-shadow-contains.d.ts +15 -0
- package/es/globals/internal/deep-shadow-contains.js +36 -0
- package/es/globals/internal/deep-shadow-contains.js.map +1 -0
- package/es/polyfills/toggle-attribute.d.ts +1 -1
- package/es-custom/components/ai-label/ai-label.scss.js +1 -1
- package/es-custom/components/breadcrumb/breadcrumb.scss.js +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.scss.js +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/code-snippet/code-snippet.scss.js +1 -1
- package/es-custom/components/combo-box/combo-box-item.d.ts +3 -4
- package/es-custom/components/combo-box/combo-box-item.js +0 -14
- package/es-custom/components/combo-box/combo-box-item.js.map +1 -1
- package/es-custom/components/combo-box/combo-box.d.ts +7 -0
- package/es-custom/components/combo-box/combo-box.js +30 -8
- 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/combo-button/combo-button.scss.js +1 -1
- package/es-custom/components/contained-list/contained-list.scss.js +1 -1
- package/es-custom/components/content-switcher/content-switcher-item.d.ts +1 -1
- package/es-custom/components/content-switcher/content-switcher-item.js +2 -2
- package/es-custom/components/content-switcher/content-switcher-item.js.map +1 -1
- package/es-custom/components/content-switcher/content-switcher.scss.js +1 -1
- package/es-custom/components/copy-button/copy-button.scss.js +1 -1
- package/es-custom/components/data-table/data-table.scss.js +1 -1
- package/es-custom/components/data-table/table-skeleton.d.ts +1 -5
- package/es-custom/components/data-table/table-skeleton.js +2 -10
- package/es-custom/components/data-table/table-skeleton.js.map +1 -1
- package/es-custom/components/dropdown/dropdown-item.d.ts +15 -0
- package/es-custom/components/dropdown/dropdown-item.js +52 -0
- package/es-custom/components/dropdown/dropdown-item.js.map +1 -1
- package/es-custom/components/dropdown/dropdown.js +0 -1
- package/es-custom/components/dropdown/dropdown.js.map +1 -1
- package/es-custom/components/dropdown/dropdown.scss.js +1 -1
- package/es-custom/components/file-uploader/file-uploader.scss.js +1 -1
- package/es-custom/components/menu-button/menu-button.scss.js +1 -1
- package/es-custom/components/modal/modal.scss.js +1 -1
- package/es-custom/components/multi-select/multi-select.js +0 -3
- package/es-custom/components/multi-select/multi-select.js.map +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-item.d.ts +5 -1
- package/es-custom/components/overflow-menu/overflow-menu-item.js +24 -1
- package/es-custom/components/overflow-menu/overflow-menu-item.js.map +1 -1
- package/es-custom/components/overflow-menu/overflow-menu.d.ts +1 -1
- package/es-custom/components/overflow-menu/overflow-menu.js +3 -3
- package/es-custom/components/overflow-menu/overflow-menu.js.map +1 -1
- package/es-custom/components/overflow-menu/overflow-menu.scss.js +1 -1
- package/es-custom/components/pagination/pagination.scss.js +1 -1
- package/es-custom/components/pagination-nav/pagination-nav.scss.js +1 -1
- package/es-custom/components/popover/popover.d.ts +12 -2
- package/es-custom/components/popover/popover.js +56 -37
- package/es-custom/components/popover/popover.js.map +1 -1
- package/es-custom/components/popover/popover.scss.js +1 -1
- package/es-custom/components/progress-indicator/progress-indicator.scss.js +1 -1
- package/es-custom/components/progress-indicator/progress-step.d.ts +1 -1
- package/es-custom/components/progress-indicator/progress-step.js +2 -2
- package/es-custom/components/progress-indicator/progress-step.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/select/select.d.ts +1 -1
- package/es-custom/components/select/select.js +3 -3
- package/es-custom/components/select/select.js.map +1 -1
- package/es-custom/components/skip-to-content/skip-to-content.scss.js +1 -1
- package/es-custom/components/slug/slug.scss.js +1 -1
- package/es-custom/components/tabs/tab.d.ts +1 -1
- package/es-custom/components/tabs/tab.js +2 -2
- package/es-custom/components/tabs/tab.js.map +1 -1
- package/es-custom/components/tabs/tabs.scss.js +1 -1
- package/es-custom/components/tag/tag.d.ts +1 -1
- package/es-custom/components/tag/tag.js +2 -2
- package/es-custom/components/tag/tag.js.map +1 -1
- package/es-custom/components/tag/tag.scss.js +1 -1
- package/es-custom/components/text-input/text-input.d.ts +2 -0
- package/es-custom/components/text-input/text-input.js +26 -14
- package/es-custom/components/text-input/text-input.js.map +1 -1
- package/es-custom/components/tile/expandable-tile.d.ts +1 -1
- package/es-custom/components/tile/expandable-tile.js +2 -2
- package/es-custom/components/tile/expandable-tile.js.map +1 -1
- package/es-custom/components/time-picker/time-picker-select.d.ts +1 -1
- package/es-custom/components/time-picker/time-picker-select.js +2 -2
- package/es-custom/components/time-picker/time-picker-select.js.map +1 -1
- package/es-custom/components/toggle-tip/toggletip.d.ts +0 -1
- package/es-custom/components/toggle-tip/toggletip.js +2 -13
- package/es-custom/components/toggle-tip/toggletip.js.map +1 -1
- package/es-custom/components/toggle-tip/toggletip.scss.js +1 -1
- package/es-custom/components/tooltip/tooltip.scss.js +1 -1
- package/es-custom/components/ui-shell/header-menu.d.ts +1 -1
- package/es-custom/components/ui-shell/header-menu.js +2 -2
- package/es-custom/components/ui-shell/header-menu.js.map +1 -1
- package/es-custom/components/ui-shell/header.scss.js +1 -1
- package/es-custom/components/ui-shell/side-nav-menu.d.ts +1 -1
- package/es-custom/components/ui-shell/side-nav-menu.js +2 -2
- package/es-custom/components/ui-shell/side-nav-menu.js.map +1 -1
- package/es-custom/globals/controllers/floating-controller.js +6 -2
- package/es-custom/globals/controllers/floating-controller.js.map +1 -1
- package/es-custom/globals/internal/deep-shadow-contains.d.ts +15 -0
- package/es-custom/globals/internal/deep-shadow-contains.js +36 -0
- package/es-custom/globals/internal/deep-shadow-contains.js.map +1 -0
- package/es-custom/polyfills/toggle-attribute.d.ts +1 -1
- package/lib/components/combo-box/combo-box-item.d.ts +3 -4
- package/lib/components/combo-box/combo-box.d.ts +7 -0
- package/lib/components/content-switcher/content-switcher-item.d.ts +1 -1
- package/lib/components/data-table/table-skeleton.d.ts +1 -5
- package/lib/components/dropdown/dropdown-item.d.ts +15 -0
- package/lib/components/overflow-menu/overflow-menu-item.d.ts +5 -1
- package/lib/components/overflow-menu/overflow-menu.d.ts +1 -1
- package/lib/components/popover/popover.d.ts +12 -2
- package/lib/components/progress-indicator/progress-step.d.ts +1 -1
- package/lib/components/select/select.d.ts +1 -1
- package/lib/components/tabs/tab.d.ts +1 -1
- package/lib/components/tag/tag.d.ts +1 -1
- package/lib/components/text-input/text-input.d.ts +2 -0
- package/lib/components/tile/expandable-tile.d.ts +1 -1
- package/lib/components/time-picker/time-picker-select.d.ts +1 -1
- package/lib/components/toggle-tip/toggletip.d.ts +0 -1
- package/lib/components/ui-shell/header-menu.d.ts +1 -1
- package/lib/components/ui-shell/side-nav-menu.d.ts +1 -1
- package/lib/globals/controllers/floating-controller.js +6 -2
- package/lib/globals/controllers/floating-controller.js.map +1 -1
- package/lib/globals/internal/deep-shadow-contains.d.ts +15 -0
- package/lib/polyfills/toggle-attribute.d.ts +1 -1
- package/package.json +6 -6
- package/scss/components/dropdown/dropdown.scss +5 -0
- package/scss/components/overflow-menu/overflow-menu.scss +4 -0
- package/scss/components/popover/popover.scss +160 -4
- package/telemetry.yml +2 -1
|
@@ -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.
|
|
@@ -375,6 +375,10 @@ declare class CDSOverflowMenuItem extends CDSOverflowMenuItem_base {
|
|
|
375
375
|
* `true` if the action is danger.
|
|
376
376
|
*/
|
|
377
377
|
danger: boolean;
|
|
378
|
+
/**
|
|
379
|
+
* Specify the message read by screen readers for the danger over flow menu item variant
|
|
380
|
+
*/
|
|
381
|
+
dangerDescription: string;
|
|
378
382
|
/**
|
|
379
383
|
* `true` if the overflow menu item should be disabled.
|
|
380
384
|
*/
|
|
@@ -15,7 +15,7 @@ import { OVERFLOW_MENU_SIZE } from './defs.js';
|
|
|
15
15
|
import styles from './overflow-menu.scss.js';
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
|
-
* Copyright IBM Corp. 2019,
|
|
18
|
+
* Copyright IBM Corp. 2019, 2026
|
|
19
19
|
*
|
|
20
20
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
21
21
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -33,6 +33,10 @@ let CDSOverflowMenuItem = class CDSOverflowMenuItem extends FocusMixin(LitElemen
|
|
|
33
33
|
* `true` if the action is danger.
|
|
34
34
|
*/
|
|
35
35
|
this.danger = false;
|
|
36
|
+
/**
|
|
37
|
+
* Specify the message read by screen readers for the danger over flow menu item variant
|
|
38
|
+
*/
|
|
39
|
+
this.dangerDescription = 'danger';
|
|
36
40
|
/**
|
|
37
41
|
* `true` if the overflow menu item should be disabled.
|
|
38
42
|
*/
|
|
@@ -80,7 +84,15 @@ let CDSOverflowMenuItem = class CDSOverflowMenuItem extends FocusMixin(LitElemen
|
|
|
80
84
|
@click="${handleClick}">
|
|
81
85
|
<div class="${prefix}--overflow-menu-options__option-content">
|
|
82
86
|
<slot></slot>
|
|
87
|
+
${this.danger
|
|
88
|
+
? html `<span
|
|
89
|
+
id="danger-description"
|
|
90
|
+
class="${prefix}--visually-hidden"
|
|
91
|
+
>${this.dangerDescription}</span
|
|
92
|
+
>`
|
|
93
|
+
: html ``}
|
|
83
94
|
</div>
|
|
95
|
+
<slot name="icon"></slot>
|
|
84
96
|
</a>
|
|
85
97
|
`
|
|
86
98
|
: html `
|
|
@@ -91,7 +103,15 @@ let CDSOverflowMenuItem = class CDSOverflowMenuItem extends FocusMixin(LitElemen
|
|
|
91
103
|
@click="${handleClick}">
|
|
92
104
|
<div class="${prefix}--overflow-menu-options__option-content">
|
|
93
105
|
<slot></slot>
|
|
106
|
+
${this.danger
|
|
107
|
+
? html `<span
|
|
108
|
+
id="danger-description"
|
|
109
|
+
class="${prefix}--visually-hidden"
|
|
110
|
+
>${this.dangerDescription}</span
|
|
111
|
+
>`
|
|
112
|
+
: html ``}
|
|
94
113
|
</div>
|
|
114
|
+
<slot name="icon"></slot>
|
|
95
115
|
</button>
|
|
96
116
|
`;
|
|
97
117
|
}
|
|
@@ -107,6 +127,9 @@ CDSOverflowMenuItem.styles = styles;
|
|
|
107
127
|
__decorate([
|
|
108
128
|
property({ type: Boolean, reflect: true })
|
|
109
129
|
], CDSOverflowMenuItem.prototype, "danger", void 0);
|
|
130
|
+
__decorate([
|
|
131
|
+
property({ type: String, attribute: 'danger-description' })
|
|
132
|
+
], CDSOverflowMenuItem.prototype, "dangerDescription", void 0);
|
|
110
133
|
__decorate([
|
|
111
134
|
property({ type: Boolean, reflect: true })
|
|
112
135
|
], CDSOverflowMenuItem.prototype, "disabled", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overflow-menu-item.js","sources":["../../../src/components/overflow-menu/overflow-menu-item.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019,
|
|
1
|
+
{"version":3,"file":"overflow-menu-item.js","sources":["../../../src/components/overflow-menu/overflow-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 } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport FocusMixin from '../../globals/mixins/focus';\nimport { OVERFLOW_MENU_SIZE } from './defs';\nimport styles from './overflow-menu.scss?lit';\n\n/**\n * Overflow menu item.\n *\n * @element cds-custom-overflow-menu-item\n * @fires cds-custom-overflow-menu-item-clicked - The custom event fired when an overflow menu item is clicked.\n */\n@customElement(`${prefix}-overflow-menu-item`)\nclass CDSOverflowMenuItem extends FocusMixin(LitElement) {\n /**\n * Handles `click` event on this element.\n */\n private _handleClick(event: Event) {\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSOverflowMenuItem).itemClicked,\n {\n bubbles: true,\n composed: true,\n detail: {\n evt: event,\n },\n }\n )\n );\n }\n\n /**\n * `true` if the action is danger.\n */\n @property({ type: Boolean, reflect: true })\n danger = false;\n\n /**\n * Specify the message read by screen readers for the danger over flow menu item variant\n */\n @property({ type: String, attribute: 'danger-description' })\n dangerDescription = 'danger';\n\n /**\n * `true` if the overflow menu item should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if the item has a divider\n */\n @property({ type: Boolean, reflect: true })\n divider = false;\n\n /**\n * The link href of the overflow menu item.\n */\n @property()\n href = '';\n\n /**\n * The size of the overflow menu item.\n */\n @property({ reflect: true })\n size = OVERFLOW_MENU_SIZE.MEDIUM;\n\n connectedCallback() {\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'menuitem');\n }\n super.connectedCallback();\n }\n\n render() {\n const { _handleClick: handleClick } = this;\n return this.href\n ? html`\n <a\n class=\"${prefix}--overflow-menu-options__btn\"\n ?disabled=${this.disabled}\n href=\"${this.href}\"\n tabindex=\"-1\"\n @click=\"${handleClick}\">\n <div class=\"${prefix}--overflow-menu-options__option-content\">\n <slot></slot>\n ${this.danger\n ? html`<span\n id=\"danger-description\"\n class=\"${prefix}--visually-hidden\"\n >${this.dangerDescription}</span\n >`\n : html``}\n </div>\n <slot name=\"icon\"></slot>\n </a>\n `\n : html`\n <button\n class=\"${prefix}--overflow-menu-options__btn\"\n ?disabled=${this.disabled}\n tabindex=\"-1\"\n @click=\"${handleClick}\">\n <div class=\"${prefix}--overflow-menu-options__option-content\">\n <slot></slot>\n ${this.danger\n ? html`<span\n id=\"danger-description\"\n class=\"${prefix}--visually-hidden\"\n >${this.dangerDescription}</span\n >`\n : html``}\n </div>\n <slot name=\"icon\"></slot>\n </button>\n `;\n }\n\n /**\n * The name of the custom event fired when the item is clicked.\n */\n static get itemClicked() {\n return `${prefix}-overflow-menu-item-clicked`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles;\n}\n\nexport default CDSOverflowMenuItem;\n"],"names":["customElement"],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ import CDSIconButton from '../icon-button/icon-button.js';
|
|
|
20
20
|
import { carbonElement } from '../../globals/decorators/carbon-element.js';
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
|
-
* Copyright IBM Corp. 2019,
|
|
23
|
+
* Copyright IBM Corp. 2019, 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.
|
|
@@ -126,11 +126,11 @@ let CDSOverflowMenu = class CDSOverflowMenu extends HostListenerMixin(FocusMixin
|
|
|
126
126
|
}
|
|
127
127
|
const { _menuBody: menuBody, size } = this;
|
|
128
128
|
if (menuBody) {
|
|
129
|
-
menuBody.setAttribute('breadcrumb', String(
|
|
129
|
+
menuBody.setAttribute('breadcrumb', String(this.breadcrumb));
|
|
130
130
|
menuBody.open = open;
|
|
131
131
|
menuBody.size = size;
|
|
132
132
|
const tooltipContent = (_c = this.querySelector('[slot=tooltip-content]')) === null || _c === void 0 ? void 0 : _c.textContent;
|
|
133
|
-
button === null || button === void 0 ? void 0 : button.setAttribute('aria-expanded', String(
|
|
133
|
+
button === null || button === void 0 ? void 0 : button.setAttribute('aria-expanded', String(open));
|
|
134
134
|
button === null || button === void 0 ? void 0 : button.setAttribute('aria-label', String(tooltipContent));
|
|
135
135
|
}
|
|
136
136
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overflow-menu.js","sources":["../../../src/components/overflow-menu/overflow-menu.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { adoptStyles, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport HostListener from '../../globals/decorators/host-listener';\nimport FocusMixin from '../../globals/mixins/focus';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { find } from '../../globals/internal/collection-helpers';\nimport CDSFloatingMenuTrigger from '../floating-menu/floating-menu-trigger';\nimport { OVERFLOW_MENU_SIZE } from './defs';\nimport CDSOverflowMenuBody from './overflow-menu-body';\n\nimport iconButtonStyles from '../icon-button/icon-button.scss?lit';\nimport styles from './overflow-menu.scss?lit';\nimport CDSIconButton from '../icon-button/icon-button';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { OVERFLOW_MENU_SIZE };\n\n/**\n * Overflow menu.\n *\n * @element cds-custom-overflow-menu\n * @slot icon - The icon for the trigger button.\n */\n@customElement(`${prefix}-overflow-menu`)\nclass CDSOverflowMenu\n extends HostListenerMixin(FocusMixin(CDSIconButton))\n implements CDSFloatingMenuTrigger\n{\n /**\n * The menu body.\n */\n private _menuBody: CDSOverflowMenuBody | null = null;\n\n /**\n * Handles user-initiated toggling of the menu.\n */\n private async _handleUserInitiatedToggle() {\n this.open = !this.open;\n const { index, open, updateComplete } = this;\n if (open) {\n await updateComplete;\n const { _menuBody: menuBody } = this;\n const menuItem = menuBody?.querySelector(\n `${prefix}-overflow-menu-item:nth-of-type(${index})`\n ) as HTMLElement;\n menuItem?.focus();\n }\n }\n\n /**\n * Handles `click` event on the trigger button.\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 _handleClickTrigger = async () => {\n this._handleUserInitiatedToggle();\n };\n\n /**\n * Handles `keydown` event on the trigger button.\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 _handleKeydownTrigger = async (event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n this._handleUserInitiatedToggle();\n event.preventDefault();\n }\n };\n\n /**\n * `true` if this tooltip is in a data table row\n */\n @property({ type: Boolean, reflect: true, attribute: 'data-table' })\n dataTable = false;\n\n /**\n * `true` if this overflow menu should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if this overflow menu body should be flipped.\n */\n @property({ type: Boolean, reflect: true })\n flipped = false;\n\n /**\n * `true` if the dropdown should be open.\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Index (starting at 1) of overflow menu item to focus on open.\n */\n @property()\n index = 1;\n\n /**\n * Overflow menu size.\n */\n @property({ reflect: true })\n size = OVERFLOW_MENU_SIZE.MEDIUM;\n\n /**\n * `true` if this menu is a toolbar action\n */\n @property({ type: Boolean, attribute: 'toolbar-action', reflect: true })\n toolbarAction = false;\n\n /**\n * `true` if this overflow menu use inside breadcrumb.\n */\n @property({ type: Boolean, reflect: true })\n breadcrumb = false;\n\n /**\n * @returns The position of the trigger button in the viewport.\n */\n get triggerPosition() {\n return this.getBoundingClientRect();\n }\n\n connectedCallback() {\n if (!this.hasAttribute('aria-haspopup')) {\n this.setAttribute('aria-haspopup', 'true');\n }\n if (!this.shadowRoot) {\n this.attachShadow({ mode: 'open' });\n }\n super.connectedCallback();\n\n adoptStyles(this.renderRoot as ShadowRoot, [iconButtonStyles, styles]);\n }\n\n updated(changedProperties) {\n const button = this.shadowRoot\n ?.querySelector(`${prefix}-tooltip`)\n ?.querySelector('button');\n button?.classList.add(\n `${prefix}--btn--icon-only`,\n `${prefix}--overflow-menu`\n );\n\n if (changedProperties.has('open')) {\n const { open } = this;\n if (open && !this._menuBody) {\n this._menuBody = find(\n this.childNodes,\n (elem) =>\n (elem.constructor as typeof CDSOverflowMenuBody).FLOATING_MENU\n );\n }\n const { _menuBody: menuBody, size } = this;\n if (menuBody) {\n menuBody.setAttribute('breadcrumb', String(Boolean(this.breadcrumb)));\n menuBody.open = open;\n menuBody.size = size;\n\n const tooltipContent = this.querySelector(\n '[slot=tooltip-content]'\n )?.textContent;\n button?.setAttribute('aria-expanded', String(Boolean(open)));\n button?.setAttribute('aria-label', String(tooltipContent));\n }\n }\n\n if (changedProperties.has('dataTable')) {\n const tooltip = this.shadowRoot?.querySelector(`${prefix}-tooltip`);\n tooltip?.setAttribute('data-table', '');\n }\n\n if (changedProperties.has('size')) {\n button?.classList.forEach((item) => {\n if (item.startsWith(`${prefix}--overflow-menu--`)) {\n button?.classList.remove(item);\n }\n });\n button?.classList.add(`${prefix}--overflow-menu--${this.size}`);\n\n const tooltip = this.shadowRoot?.querySelector(`${prefix}-tooltip`);\n tooltip?.setAttribute('size', this.size);\n }\n\n if (changedProperties.has('toolbarAction') && this.toolbarAction) {\n this.shadowRoot\n ?.querySelector(`${prefix}-tooltip`)\n ?.setAttribute('toolbar-action', '');\n }\n\n super.updated(changedProperties);\n }\n\n render() {\n return html`${super.render()} `;\n }\n}\n\nexport default CDSOverflowMenu;\n"],"names":["customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"overflow-menu.js","sources":["../../../src/components/overflow-menu/overflow-menu.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 { adoptStyles, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport HostListener from '../../globals/decorators/host-listener';\nimport FocusMixin from '../../globals/mixins/focus';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { find } from '../../globals/internal/collection-helpers';\nimport CDSFloatingMenuTrigger from '../floating-menu/floating-menu-trigger';\nimport { OVERFLOW_MENU_SIZE } from './defs';\nimport CDSOverflowMenuBody from './overflow-menu-body';\n\nimport iconButtonStyles from '../icon-button/icon-button.scss?lit';\nimport styles from './overflow-menu.scss?lit';\nimport CDSIconButton from '../icon-button/icon-button';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { OVERFLOW_MENU_SIZE };\n\n/**\n * Overflow menu.\n *\n * @element cds-custom-overflow-menu\n * @slot icon - The icon for the trigger button.\n */\n@customElement(`${prefix}-overflow-menu`)\nclass CDSOverflowMenu\n extends HostListenerMixin(FocusMixin(CDSIconButton))\n implements CDSFloatingMenuTrigger\n{\n /**\n * The menu body.\n */\n private _menuBody: CDSOverflowMenuBody | null = null;\n\n /**\n * Handles user-initiated toggling of the menu.\n */\n private async _handleUserInitiatedToggle() {\n this.open = !this.open;\n const { index, open, updateComplete } = this;\n if (open) {\n await updateComplete;\n const { _menuBody: menuBody } = this;\n const menuItem = menuBody?.querySelector(\n `${prefix}-overflow-menu-item:nth-of-type(${index})`\n ) as HTMLElement;\n menuItem?.focus();\n }\n }\n\n /**\n * Handles `click` event on the trigger button.\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 _handleClickTrigger = async () => {\n this._handleUserInitiatedToggle();\n };\n\n /**\n * Handles `keydown` event on the trigger button.\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 _handleKeydownTrigger = async (event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n this._handleUserInitiatedToggle();\n event.preventDefault();\n }\n };\n\n /**\n * `true` if this tooltip is in a data table row\n */\n @property({ type: Boolean, reflect: true, attribute: 'data-table' })\n dataTable = false;\n\n /**\n * `true` if this overflow menu should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if this overflow menu body should be flipped.\n */\n @property({ type: Boolean, reflect: true })\n flipped = false;\n\n /**\n * `true` if the dropdown should be open.\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Index (starting at 1) of overflow menu item to focus on open.\n */\n @property()\n index = 1;\n\n /**\n * Overflow menu size.\n */\n @property({ reflect: true })\n size = OVERFLOW_MENU_SIZE.MEDIUM;\n\n /**\n * `true` if this menu is a toolbar action\n */\n @property({ type: Boolean, attribute: 'toolbar-action', reflect: true })\n toolbarAction = false;\n\n /**\n * `true` if this overflow menu use inside breadcrumb.\n */\n @property({ type: Boolean, reflect: true })\n breadcrumb = false;\n\n /**\n * @returns The position of the trigger button in the viewport.\n */\n get triggerPosition() {\n return this.getBoundingClientRect();\n }\n\n connectedCallback() {\n if (!this.hasAttribute('aria-haspopup')) {\n this.setAttribute('aria-haspopup', 'true');\n }\n if (!this.shadowRoot) {\n this.attachShadow({ mode: 'open' });\n }\n super.connectedCallback();\n\n adoptStyles(this.renderRoot as ShadowRoot, [iconButtonStyles, styles]);\n }\n\n updated(changedProperties) {\n const button = this.shadowRoot\n ?.querySelector(`${prefix}-tooltip`)\n ?.querySelector('button');\n button?.classList.add(\n `${prefix}--btn--icon-only`,\n `${prefix}--overflow-menu`\n );\n\n if (changedProperties.has('open')) {\n const { open } = this;\n if (open && !this._menuBody) {\n this._menuBody = find(\n this.childNodes,\n (elem) =>\n (elem.constructor as typeof CDSOverflowMenuBody).FLOATING_MENU\n );\n }\n const { _menuBody: menuBody, size } = this;\n if (menuBody) {\n menuBody.setAttribute('breadcrumb', String(this.breadcrumb));\n menuBody.open = open;\n menuBody.size = size;\n\n const tooltipContent = this.querySelector(\n '[slot=tooltip-content]'\n )?.textContent;\n button?.setAttribute('aria-expanded', String(open));\n button?.setAttribute('aria-label', String(tooltipContent));\n }\n }\n\n if (changedProperties.has('dataTable')) {\n const tooltip = this.shadowRoot?.querySelector(`${prefix}-tooltip`);\n tooltip?.setAttribute('data-table', '');\n }\n\n if (changedProperties.has('size')) {\n button?.classList.forEach((item) => {\n if (item.startsWith(`${prefix}--overflow-menu--`)) {\n button?.classList.remove(item);\n }\n });\n button?.classList.add(`${prefix}--overflow-menu--${this.size}`);\n\n const tooltip = this.shadowRoot?.querySelector(`${prefix}-tooltip`);\n tooltip?.setAttribute('size', this.size);\n }\n\n if (changedProperties.has('toolbarAction') && this.toolbarAction) {\n this.shadowRoot\n ?.querySelector(`${prefix}-tooltip`)\n ?.setAttribute('toolbar-action', '');\n }\n\n super.updated(changedProperties);\n }\n\n render() {\n return html`${super.render()} `;\n }\n}\n\nexport default CDSOverflowMenu;\n"],"names":["customElement"],"mappings":"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"}
|