@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.
Files changed (226) hide show
  1. package/custom-elements.json +38 -13
  2. package/es/components/ai-label/ai-label.scss.js +1 -1
  3. package/es/components/breadcrumb/breadcrumb.scss.js +1 -1
  4. package/es/components/button/button-set.js +1 -1
  5. package/es/components/button/button-set.js.map +1 -1
  6. package/es/components/button/button.scss.js +1 -1
  7. package/es/components/checkbox/checkbox.js +1 -1
  8. package/es/components/checkbox/checkbox.js.map +1 -1
  9. package/es/components/code-snippet/code-snippet.scss.js +1 -1
  10. package/es/components/combo-box/combo-box-item.d.ts +3 -4
  11. package/es/components/combo-box/combo-box-item.js +0 -14
  12. package/es/components/combo-box/combo-box-item.js.map +1 -1
  13. package/es/components/combo-box/combo-box.d.ts +7 -0
  14. package/es/components/combo-box/combo-box.js +30 -8
  15. package/es/components/combo-box/combo-box.js.map +1 -1
  16. package/es/components/combo-box/combo-box.scss.js +1 -1
  17. package/es/components/combo-button/combo-button.scss.js +1 -1
  18. package/es/components/contained-list/contained-list.scss.js +1 -1
  19. package/es/components/content-switcher/content-switcher-item.d.ts +1 -1
  20. package/es/components/content-switcher/content-switcher-item.js +2 -2
  21. package/es/components/content-switcher/content-switcher-item.js.map +1 -1
  22. package/es/components/content-switcher/content-switcher.scss.js +1 -1
  23. package/es/components/copy-button/copy-button.scss.js +1 -1
  24. package/es/components/data-table/data-table.scss.js +1 -1
  25. package/es/components/data-table/table-skeleton.d.ts +1 -5
  26. package/es/components/data-table/table-skeleton.js +2 -10
  27. package/es/components/data-table/table-skeleton.js.map +1 -1
  28. package/es/components/dropdown/dropdown-item.d.ts +15 -0
  29. package/es/components/dropdown/dropdown-item.js +52 -0
  30. package/es/components/dropdown/dropdown-item.js.map +1 -1
  31. package/es/components/dropdown/dropdown.js +0 -1
  32. package/es/components/dropdown/dropdown.js.map +1 -1
  33. package/es/components/dropdown/dropdown.scss.js +1 -1
  34. package/es/components/file-uploader/file-uploader.scss.js +1 -1
  35. package/es/components/menu-button/menu-button.scss.js +1 -1
  36. package/es/components/modal/modal.scss.js +1 -1
  37. package/es/components/multi-select/multi-select.js +0 -3
  38. package/es/components/multi-select/multi-select.js.map +1 -1
  39. package/es/components/notification/actionable-notification.scss.js +1 -1
  40. package/es/components/notification/inline-notification.scss.js +1 -1
  41. package/es/components/notification/toast-notification.scss.js +1 -1
  42. package/es/components/overflow-menu/overflow-menu-item.d.ts +5 -1
  43. package/es/components/overflow-menu/overflow-menu-item.js +24 -1
  44. package/es/components/overflow-menu/overflow-menu-item.js.map +1 -1
  45. package/es/components/overflow-menu/overflow-menu.d.ts +1 -1
  46. package/es/components/overflow-menu/overflow-menu.js +3 -3
  47. package/es/components/overflow-menu/overflow-menu.js.map +1 -1
  48. package/es/components/overflow-menu/overflow-menu.scss.js +1 -1
  49. package/es/components/pagination/pagination.scss.js +1 -1
  50. package/es/components/pagination-nav/pagination-nav.scss.js +1 -1
  51. package/es/components/popover/popover.d.ts +12 -2
  52. package/es/components/popover/popover.js +56 -37
  53. package/es/components/popover/popover.js.map +1 -1
  54. package/es/components/popover/popover.scss.js +1 -1
  55. package/es/components/progress-indicator/progress-indicator.scss.js +1 -1
  56. package/es/components/progress-indicator/progress-step.d.ts +1 -1
  57. package/es/components/progress-indicator/progress-step.js +2 -2
  58. package/es/components/progress-indicator/progress-step.js.map +1 -1
  59. package/es/components/radio-button/radio-button.js +1 -1
  60. package/es/components/radio-button/radio-button.js.map +1 -1
  61. package/es/components/select/select.d.ts +1 -1
  62. package/es/components/select/select.js +3 -3
  63. package/es/components/select/select.js.map +1 -1
  64. package/es/components/skip-to-content/skip-to-content.scss.js +1 -1
  65. package/es/components/slug/slug.scss.js +1 -1
  66. package/es/components/tabs/tab.d.ts +1 -1
  67. package/es/components/tabs/tab.js +2 -2
  68. package/es/components/tabs/tab.js.map +1 -1
  69. package/es/components/tabs/tabs.scss.js +1 -1
  70. package/es/components/tag/tag.d.ts +1 -1
  71. package/es/components/tag/tag.js +2 -2
  72. package/es/components/tag/tag.js.map +1 -1
  73. package/es/components/tag/tag.scss.js +1 -1
  74. package/es/components/text-input/text-input.d.ts +2 -0
  75. package/es/components/text-input/text-input.js +26 -14
  76. package/es/components/text-input/text-input.js.map +1 -1
  77. package/es/components/tile/expandable-tile.d.ts +1 -1
  78. package/es/components/tile/expandable-tile.js +2 -2
  79. package/es/components/tile/expandable-tile.js.map +1 -1
  80. package/es/components/time-picker/time-picker-select.d.ts +1 -1
  81. package/es/components/time-picker/time-picker-select.js +2 -2
  82. package/es/components/time-picker/time-picker-select.js.map +1 -1
  83. package/es/components/toggle-tip/toggletip.d.ts +0 -1
  84. package/es/components/toggle-tip/toggletip.js +2 -13
  85. package/es/components/toggle-tip/toggletip.js.map +1 -1
  86. package/es/components/toggle-tip/toggletip.scss.js +1 -1
  87. package/es/components/tooltip/tooltip.scss.js +1 -1
  88. package/es/components/ui-shell/header-menu.d.ts +1 -1
  89. package/es/components/ui-shell/header-menu.js +2 -2
  90. package/es/components/ui-shell/header-menu.js.map +1 -1
  91. package/es/components/ui-shell/header.scss.js +1 -1
  92. package/es/components/ui-shell/side-nav-menu.d.ts +1 -1
  93. package/es/components/ui-shell/side-nav-menu.js +2 -2
  94. package/es/components/ui-shell/side-nav-menu.js.map +1 -1
  95. package/es/globals/controllers/floating-controller.js +6 -2
  96. package/es/globals/controllers/floating-controller.js.map +1 -1
  97. package/es/globals/internal/deep-shadow-contains.d.ts +15 -0
  98. package/es/globals/internal/deep-shadow-contains.js +36 -0
  99. package/es/globals/internal/deep-shadow-contains.js.map +1 -0
  100. package/es/polyfills/toggle-attribute.d.ts +1 -1
  101. package/es-custom/components/ai-label/ai-label.scss.js +1 -1
  102. package/es-custom/components/breadcrumb/breadcrumb.scss.js +1 -1
  103. package/es-custom/components/button/button-set.js +1 -1
  104. package/es-custom/components/button/button-set.js.map +1 -1
  105. package/es-custom/components/button/button.scss.js +1 -1
  106. package/es-custom/components/checkbox/checkbox.js +1 -1
  107. package/es-custom/components/checkbox/checkbox.js.map +1 -1
  108. package/es-custom/components/code-snippet/code-snippet.scss.js +1 -1
  109. package/es-custom/components/combo-box/combo-box-item.d.ts +3 -4
  110. package/es-custom/components/combo-box/combo-box-item.js +0 -14
  111. package/es-custom/components/combo-box/combo-box-item.js.map +1 -1
  112. package/es-custom/components/combo-box/combo-box.d.ts +7 -0
  113. package/es-custom/components/combo-box/combo-box.js +30 -8
  114. package/es-custom/components/combo-box/combo-box.js.map +1 -1
  115. package/es-custom/components/combo-box/combo-box.scss.js +1 -1
  116. package/es-custom/components/combo-button/combo-button.scss.js +1 -1
  117. package/es-custom/components/contained-list/contained-list.scss.js +1 -1
  118. package/es-custom/components/content-switcher/content-switcher-item.d.ts +1 -1
  119. package/es-custom/components/content-switcher/content-switcher-item.js +2 -2
  120. package/es-custom/components/content-switcher/content-switcher-item.js.map +1 -1
  121. package/es-custom/components/content-switcher/content-switcher.scss.js +1 -1
  122. package/es-custom/components/copy-button/copy-button.scss.js +1 -1
  123. package/es-custom/components/data-table/data-table.scss.js +1 -1
  124. package/es-custom/components/data-table/table-skeleton.d.ts +1 -5
  125. package/es-custom/components/data-table/table-skeleton.js +2 -10
  126. package/es-custom/components/data-table/table-skeleton.js.map +1 -1
  127. package/es-custom/components/dropdown/dropdown-item.d.ts +15 -0
  128. package/es-custom/components/dropdown/dropdown-item.js +52 -0
  129. package/es-custom/components/dropdown/dropdown-item.js.map +1 -1
  130. package/es-custom/components/dropdown/dropdown.js +0 -1
  131. package/es-custom/components/dropdown/dropdown.js.map +1 -1
  132. package/es-custom/components/dropdown/dropdown.scss.js +1 -1
  133. package/es-custom/components/file-uploader/file-uploader.scss.js +1 -1
  134. package/es-custom/components/menu-button/menu-button.scss.js +1 -1
  135. package/es-custom/components/modal/modal.scss.js +1 -1
  136. package/es-custom/components/multi-select/multi-select.js +0 -3
  137. package/es-custom/components/multi-select/multi-select.js.map +1 -1
  138. package/es-custom/components/notification/actionable-notification.scss.js +1 -1
  139. package/es-custom/components/notification/inline-notification.scss.js +1 -1
  140. package/es-custom/components/notification/toast-notification.scss.js +1 -1
  141. package/es-custom/components/overflow-menu/overflow-menu-item.d.ts +5 -1
  142. package/es-custom/components/overflow-menu/overflow-menu-item.js +24 -1
  143. package/es-custom/components/overflow-menu/overflow-menu-item.js.map +1 -1
  144. package/es-custom/components/overflow-menu/overflow-menu.d.ts +1 -1
  145. package/es-custom/components/overflow-menu/overflow-menu.js +3 -3
  146. package/es-custom/components/overflow-menu/overflow-menu.js.map +1 -1
  147. package/es-custom/components/overflow-menu/overflow-menu.scss.js +1 -1
  148. package/es-custom/components/pagination/pagination.scss.js +1 -1
  149. package/es-custom/components/pagination-nav/pagination-nav.scss.js +1 -1
  150. package/es-custom/components/popover/popover.d.ts +12 -2
  151. package/es-custom/components/popover/popover.js +56 -37
  152. package/es-custom/components/popover/popover.js.map +1 -1
  153. package/es-custom/components/popover/popover.scss.js +1 -1
  154. package/es-custom/components/progress-indicator/progress-indicator.scss.js +1 -1
  155. package/es-custom/components/progress-indicator/progress-step.d.ts +1 -1
  156. package/es-custom/components/progress-indicator/progress-step.js +2 -2
  157. package/es-custom/components/progress-indicator/progress-step.js.map +1 -1
  158. package/es-custom/components/radio-button/radio-button.js +1 -1
  159. package/es-custom/components/radio-button/radio-button.js.map +1 -1
  160. package/es-custom/components/select/select.d.ts +1 -1
  161. package/es-custom/components/select/select.js +3 -3
  162. package/es-custom/components/select/select.js.map +1 -1
  163. package/es-custom/components/skip-to-content/skip-to-content.scss.js +1 -1
  164. package/es-custom/components/slug/slug.scss.js +1 -1
  165. package/es-custom/components/tabs/tab.d.ts +1 -1
  166. package/es-custom/components/tabs/tab.js +2 -2
  167. package/es-custom/components/tabs/tab.js.map +1 -1
  168. package/es-custom/components/tabs/tabs.scss.js +1 -1
  169. package/es-custom/components/tag/tag.d.ts +1 -1
  170. package/es-custom/components/tag/tag.js +2 -2
  171. package/es-custom/components/tag/tag.js.map +1 -1
  172. package/es-custom/components/tag/tag.scss.js +1 -1
  173. package/es-custom/components/text-input/text-input.d.ts +2 -0
  174. package/es-custom/components/text-input/text-input.js +26 -14
  175. package/es-custom/components/text-input/text-input.js.map +1 -1
  176. package/es-custom/components/tile/expandable-tile.d.ts +1 -1
  177. package/es-custom/components/tile/expandable-tile.js +2 -2
  178. package/es-custom/components/tile/expandable-tile.js.map +1 -1
  179. package/es-custom/components/time-picker/time-picker-select.d.ts +1 -1
  180. package/es-custom/components/time-picker/time-picker-select.js +2 -2
  181. package/es-custom/components/time-picker/time-picker-select.js.map +1 -1
  182. package/es-custom/components/toggle-tip/toggletip.d.ts +0 -1
  183. package/es-custom/components/toggle-tip/toggletip.js +2 -13
  184. package/es-custom/components/toggle-tip/toggletip.js.map +1 -1
  185. package/es-custom/components/toggle-tip/toggletip.scss.js +1 -1
  186. package/es-custom/components/tooltip/tooltip.scss.js +1 -1
  187. package/es-custom/components/ui-shell/header-menu.d.ts +1 -1
  188. package/es-custom/components/ui-shell/header-menu.js +2 -2
  189. package/es-custom/components/ui-shell/header-menu.js.map +1 -1
  190. package/es-custom/components/ui-shell/header.scss.js +1 -1
  191. package/es-custom/components/ui-shell/side-nav-menu.d.ts +1 -1
  192. package/es-custom/components/ui-shell/side-nav-menu.js +2 -2
  193. package/es-custom/components/ui-shell/side-nav-menu.js.map +1 -1
  194. package/es-custom/globals/controllers/floating-controller.js +6 -2
  195. package/es-custom/globals/controllers/floating-controller.js.map +1 -1
  196. package/es-custom/globals/internal/deep-shadow-contains.d.ts +15 -0
  197. package/es-custom/globals/internal/deep-shadow-contains.js +36 -0
  198. package/es-custom/globals/internal/deep-shadow-contains.js.map +1 -0
  199. package/es-custom/polyfills/toggle-attribute.d.ts +1 -1
  200. package/lib/components/combo-box/combo-box-item.d.ts +3 -4
  201. package/lib/components/combo-box/combo-box.d.ts +7 -0
  202. package/lib/components/content-switcher/content-switcher-item.d.ts +1 -1
  203. package/lib/components/data-table/table-skeleton.d.ts +1 -5
  204. package/lib/components/dropdown/dropdown-item.d.ts +15 -0
  205. package/lib/components/overflow-menu/overflow-menu-item.d.ts +5 -1
  206. package/lib/components/overflow-menu/overflow-menu.d.ts +1 -1
  207. package/lib/components/popover/popover.d.ts +12 -2
  208. package/lib/components/progress-indicator/progress-step.d.ts +1 -1
  209. package/lib/components/select/select.d.ts +1 -1
  210. package/lib/components/tabs/tab.d.ts +1 -1
  211. package/lib/components/tag/tag.d.ts +1 -1
  212. package/lib/components/text-input/text-input.d.ts +2 -0
  213. package/lib/components/tile/expandable-tile.d.ts +1 -1
  214. package/lib/components/time-picker/time-picker-select.d.ts +1 -1
  215. package/lib/components/toggle-tip/toggletip.d.ts +0 -1
  216. package/lib/components/ui-shell/header-menu.d.ts +1 -1
  217. package/lib/components/ui-shell/side-nav-menu.d.ts +1 -1
  218. package/lib/globals/controllers/floating-controller.js +6 -2
  219. package/lib/globals/controllers/floating-controller.js.map +1 -1
  220. package/lib/globals/internal/deep-shadow-contains.d.ts +15 -0
  221. package/lib/polyfills/toggle-attribute.d.ts +1 -1
  222. package/package.json +6 -6
  223. package/scss/components/dropdown/dropdown.scss +5 -0
  224. package/scss/components/overflow-menu/overflow-menu.scss +4 -0
  225. package/scss/components/popover/popover.scss +160 -4
  226. package/telemetry.yml +2 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2019, 2023
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, 2023
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, 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 { 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 * `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 </div>\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 </div>\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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"}
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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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2019, 2023
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.
@@ -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, 2023
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(Boolean(this.breadcrumb)));
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(Boolean(open)));
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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"}