@carbon/web-components 2.57.0-rc.0 → 2.58.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1268) hide show
  1. package/custom-elements.json +10 -10
  2. package/es/_virtual/{_@oxc-project_runtime@0.126.0/helpers → _@oxc-project_runtime@0.135.0/helpers/esm}/decorate.js +1 -1
  3. package/es/components/accordion/accordion-item-skeleton.js +1 -1
  4. package/es/components/accordion/accordion-item-skeleton.js.map +1 -1
  5. package/es/components/accordion/accordion-item.js +1 -1
  6. package/es/components/accordion/accordion-item.js.map +1 -1
  7. package/es/components/accordion/accordion-skeleton.js +1 -1
  8. package/es/components/accordion/accordion-skeleton.js.map +1 -1
  9. package/es/components/accordion/accordion.js +1 -1
  10. package/es/components/accordion/accordion.js.map +1 -1
  11. package/es/components/accordion/defs.js.map +1 -1
  12. package/es/components/ai-label/ai-label-action-button.js +1 -1
  13. package/es/components/ai-label/ai-label-action-button.js.map +1 -1
  14. package/es/components/ai-label/ai-label.js +1 -1
  15. package/es/components/ai-label/ai-label.js.map +1 -1
  16. package/es/components/ai-label/defs.js.map +1 -1
  17. package/es/components/ai-skeleton/ai-skeleton-icon.js +1 -1
  18. package/es/components/ai-skeleton/ai-skeleton-icon.js.map +1 -1
  19. package/es/components/ai-skeleton/ai-skeleton-placeholder.js +1 -1
  20. package/es/components/ai-skeleton/ai-skeleton-placeholder.js.map +1 -1
  21. package/es/components/ai-skeleton/ai-skeleton-text.js +1 -1
  22. package/es/components/ai-skeleton/ai-skeleton-text.js.map +1 -1
  23. package/es/components/badge-indicator/badge-indicator.js +1 -1
  24. package/es/components/badge-indicator/badge-indicator.js.map +1 -1
  25. package/es/components/breadcrumb/breadcrumb-item.js +1 -1
  26. package/es/components/breadcrumb/breadcrumb-item.js.map +1 -1
  27. package/es/components/breadcrumb/breadcrumb-link.js +1 -1
  28. package/es/components/breadcrumb/breadcrumb-link.js.map +1 -1
  29. package/es/components/breadcrumb/breadcrumb-overflow-menu.js +1 -1
  30. package/es/components/breadcrumb/breadcrumb-overflow-menu.js.map +1 -1
  31. package/es/components/breadcrumb/breadcrumb-skeleton.js +1 -1
  32. package/es/components/breadcrumb/breadcrumb-skeleton.js.map +1 -1
  33. package/es/components/breadcrumb/breadcrumb.js +1 -1
  34. package/es/components/breadcrumb/breadcrumb.js.map +1 -1
  35. package/es/components/breadcrumb/breadcrumb.scss.js +1 -1
  36. package/es/components/breadcrumb/defs.js.map +1 -1
  37. package/es/components/button/button-set-base.js +1 -1
  38. package/es/components/button/button-set-base.js.map +1 -1
  39. package/es/components/button/button-set.js +1 -1
  40. package/es/components/button/button-set.js.map +1 -1
  41. package/es/components/button/button-skeleton.js +1 -1
  42. package/es/components/button/button-skeleton.js.map +1 -1
  43. package/es/components/button/button.js +1 -1
  44. package/es/components/button/button.js.map +1 -1
  45. package/es/components/button/defs.js.map +1 -1
  46. package/es/components/chat-button/chat-button-skeleton.js +1 -1
  47. package/es/components/chat-button/chat-button-skeleton.js.map +1 -1
  48. package/es/components/chat-button/chat-button.js +1 -1
  49. package/es/components/chat-button/chat-button.js.map +1 -1
  50. package/es/components/chat-button/defs.js.map +1 -1
  51. package/es/components/checkbox/checkbox-group.js +1 -1
  52. package/es/components/checkbox/checkbox-group.js.map +1 -1
  53. package/es/components/checkbox/checkbox-skeleton.js +1 -1
  54. package/es/components/checkbox/checkbox-skeleton.js.map +1 -1
  55. package/es/components/checkbox/checkbox.js +1 -1
  56. package/es/components/checkbox/checkbox.js.map +1 -1
  57. package/es/components/checkbox/defs.js.map +1 -1
  58. package/es/components/code-snippet/code-snippet-skeleton.js +1 -1
  59. package/es/components/code-snippet/code-snippet-skeleton.js.map +1 -1
  60. package/es/components/code-snippet/code-snippet.js +1 -1
  61. package/es/components/code-snippet/code-snippet.js.map +1 -1
  62. package/es/components/code-snippet/defs.js.map +1 -1
  63. package/es/components/combo-box/combo-box-item.js +1 -1
  64. package/es/components/combo-box/combo-box-item.js.map +1 -1
  65. package/es/components/combo-box/combo-box.js +1 -1
  66. package/es/components/combo-box/combo-box.js.map +1 -1
  67. package/es/components/combo-button/combo-button.js +1 -1
  68. package/es/components/combo-button/combo-button.js.map +1 -1
  69. package/es/components/combo-button/defs.js.map +1 -1
  70. package/es/components/contained-list/contained-list-description.js +1 -1
  71. package/es/components/contained-list/contained-list-description.js.map +1 -1
  72. package/es/components/contained-list/contained-list-item.js +1 -1
  73. package/es/components/contained-list/contained-list-item.js.map +1 -1
  74. package/es/components/contained-list/contained-list.js +1 -1
  75. package/es/components/contained-list/contained-list.js.map +1 -1
  76. package/es/components/content-switcher/content-switcher-item.js +1 -1
  77. package/es/components/content-switcher/content-switcher-item.js.map +1 -1
  78. package/es/components/content-switcher/content-switcher.js +1 -1
  79. package/es/components/content-switcher/content-switcher.js.map +1 -1
  80. package/es/components/content-switcher/defs.js.map +1 -1
  81. package/es/components/copy/copy.js +1 -1
  82. package/es/components/copy/copy.js.map +1 -1
  83. package/es/components/copy-button/copy-button.js +1 -1
  84. package/es/components/copy-button/copy-button.js.map +1 -1
  85. package/es/components/data-table/data-table.scss.js +1 -1
  86. package/es/components/data-table/defs.js.map +1 -1
  87. package/es/components/data-table/table-batch-actions.js +1 -1
  88. package/es/components/data-table/table-batch-actions.js.map +1 -1
  89. package/es/components/data-table/table-body.js +1 -1
  90. package/es/components/data-table/table-body.js.map +1 -1
  91. package/es/components/data-table/table-cell-content.js +1 -1
  92. package/es/components/data-table/table-cell-content.js.map +1 -1
  93. package/es/components/data-table/table-cell.js +1 -1
  94. package/es/components/data-table/table-cell.js.map +1 -1
  95. package/es/components/data-table/table-expanded-row.js +1 -1
  96. package/es/components/data-table/table-expanded-row.js.map +1 -1
  97. package/es/components/data-table/table-head.js +1 -1
  98. package/es/components/data-table/table-head.js.map +1 -1
  99. package/es/components/data-table/table-header-cell.js +1 -1
  100. package/es/components/data-table/table-header-cell.js.map +1 -1
  101. package/es/components/data-table/table-header-description.js +1 -1
  102. package/es/components/data-table/table-header-description.js.map +1 -1
  103. package/es/components/data-table/table-header-row.js +1 -1
  104. package/es/components/data-table/table-header-row.js.map +1 -1
  105. package/es/components/data-table/table-header-title.js +1 -1
  106. package/es/components/data-table/table-header-title.js.map +1 -1
  107. package/es/components/data-table/table-row.js +1 -1
  108. package/es/components/data-table/table-row.js.map +1 -1
  109. package/es/components/data-table/table-skeleton.js +1 -1
  110. package/es/components/data-table/table-skeleton.js.map +1 -1
  111. package/es/components/data-table/table-toolbar-content.js +1 -1
  112. package/es/components/data-table/table-toolbar-content.js.map +1 -1
  113. package/es/components/data-table/table-toolbar-search.js +1 -1
  114. package/es/components/data-table/table-toolbar-search.js.map +1 -1
  115. package/es/components/data-table/table-toolbar.js +1 -1
  116. package/es/components/data-table/table-toolbar.js.map +1 -1
  117. package/es/components/data-table/table.js +1 -1
  118. package/es/components/data-table/table.js.map +1 -1
  119. package/es/components/date-picker/append-to-plugin.js.map +1 -1
  120. package/es/components/date-picker/css-class-plugin.js.map +1 -1
  121. package/es/components/date-picker/date-picker-input-skeleton.js +1 -1
  122. package/es/components/date-picker/date-picker-input-skeleton.js.map +1 -1
  123. package/es/components/date-picker/date-picker-input.js +1 -1
  124. package/es/components/date-picker/date-picker-input.js.map +1 -1
  125. package/es/components/date-picker/date-picker.js +1 -1
  126. package/es/components/date-picker/date-picker.js.map +1 -1
  127. package/es/components/date-picker/defs.js.map +1 -1
  128. package/es/components/date-picker/fix-events-plugin.js.map +1 -1
  129. package/es/components/date-picker/focus-plugin.js.map +1 -1
  130. package/es/components/date-picker/icon-plugin.js.map +1 -1
  131. package/es/components/date-picker/iso-date.js.map +1 -1
  132. package/es/components/date-picker/month-select-plugin.js.map +1 -1
  133. package/es/components/date-picker/range-plugin.js.map +1 -1
  134. package/es/components/date-picker/shadow-dom-events-plugin.js.map +1 -1
  135. package/es/components/date-picker/state-handshake-plugin.js.map +1 -1
  136. package/es/components/dialog/dialog-body.js +1 -1
  137. package/es/components/dialog/dialog-body.js.map +1 -1
  138. package/es/components/dialog/dialog-close-button.js +1 -1
  139. package/es/components/dialog/dialog-close-button.js.map +1 -1
  140. package/es/components/dialog/dialog-controls.js +1 -1
  141. package/es/components/dialog/dialog-controls.js.map +1 -1
  142. package/es/components/dialog/dialog-footer-button.js +1 -1
  143. package/es/components/dialog/dialog-footer-button.js.map +1 -1
  144. package/es/components/dialog/dialog-footer.js +1 -1
  145. package/es/components/dialog/dialog-footer.js.map +1 -1
  146. package/es/components/dialog/dialog-header.js +1 -1
  147. package/es/components/dialog/dialog-header.js.map +1 -1
  148. package/es/components/dialog/dialog-subtitle.js +1 -1
  149. package/es/components/dialog/dialog-subtitle.js.map +1 -1
  150. package/es/components/dialog/dialog-title.js +1 -1
  151. package/es/components/dialog/dialog-title.js.map +1 -1
  152. package/es/components/dialog/dialog.js +1 -1
  153. package/es/components/dialog/dialog.js.map +1 -1
  154. package/es/components/dropdown/defs.js.map +1 -1
  155. package/es/components/dropdown/dropdown-item.js +1 -1
  156. package/es/components/dropdown/dropdown-item.js.map +1 -1
  157. package/es/components/dropdown/dropdown-skeleton.js +1 -1
  158. package/es/components/dropdown/dropdown-skeleton.js.map +1 -1
  159. package/es/components/dropdown/dropdown.js +1 -1
  160. package/es/components/dropdown/dropdown.js.map +1 -1
  161. package/es/components/feature-flags/index.js +1 -1
  162. package/es/components/feature-flags/index.js.map +1 -1
  163. package/es/components/file-uploader/defs.js.map +1 -1
  164. package/es/components/file-uploader/demo-file-uploader.js +1 -1
  165. package/es/components/file-uploader/demo-file-uploader.js.map +1 -1
  166. package/es/components/file-uploader/file-uploader-button.js +1 -1
  167. package/es/components/file-uploader/file-uploader-button.js.map +1 -1
  168. package/es/components/file-uploader/file-uploader-drop-container.js +1 -1
  169. package/es/components/file-uploader/file-uploader-drop-container.js.map +1 -1
  170. package/es/components/file-uploader/file-uploader-item.js +1 -1
  171. package/es/components/file-uploader/file-uploader-item.js.map +1 -1
  172. package/es/components/file-uploader/file-uploader-skeleton.js +1 -1
  173. package/es/components/file-uploader/file-uploader-skeleton.js.map +1 -1
  174. package/es/components/file-uploader/file-uploader.js +1 -1
  175. package/es/components/file-uploader/file-uploader.js.map +1 -1
  176. package/es/components/floating-menu/defs.js.map +1 -1
  177. package/es/components/floating-menu/floating-menu.js +1 -1
  178. package/es/components/floating-menu/floating-menu.js.map +1 -1
  179. package/es/components/fluid-combo-box/fluid-combo-box-skeleton.js +1 -1
  180. package/es/components/fluid-combo-box/fluid-combo-box-skeleton.js.map +1 -1
  181. package/es/components/fluid-combo-box/fluid-combo-box.js +1 -1
  182. package/es/components/fluid-combo-box/fluid-combo-box.js.map +1 -1
  183. package/es/components/fluid-dropdown/fluid-dropdown-skeleton.js +1 -1
  184. package/es/components/fluid-dropdown/fluid-dropdown-skeleton.js.map +1 -1
  185. package/es/components/fluid-dropdown/fluid-dropdown.js +1 -1
  186. package/es/components/fluid-dropdown/fluid-dropdown.js.map +1 -1
  187. package/es/components/fluid-form/fluid-form.js +1 -1
  188. package/es/components/fluid-form/fluid-form.js.map +1 -1
  189. package/es/components/fluid-multi-select/fluid-multi-select-skeleton.js +1 -1
  190. package/es/components/fluid-multi-select/fluid-multi-select-skeleton.js.map +1 -1
  191. package/es/components/fluid-multi-select/fluid-multi-select.js +1 -1
  192. package/es/components/fluid-multi-select/fluid-multi-select.js.map +1 -1
  193. package/es/components/fluid-multi-select/fluid-multi-select.scss.js +1 -1
  194. package/es/components/fluid-number-input/fluid-number-input-skeleton.js +1 -1
  195. package/es/components/fluid-number-input/fluid-number-input-skeleton.js.map +1 -1
  196. package/es/components/fluid-number-input/fluid-number-input.js +1 -1
  197. package/es/components/fluid-number-input/fluid-number-input.js.map +1 -1
  198. package/es/components/fluid-password-input/fluid-password-input.js +1 -1
  199. package/es/components/fluid-password-input/fluid-password-input.js.map +1 -1
  200. package/es/components/fluid-search/fluid-search-skeleton.js +1 -1
  201. package/es/components/fluid-search/fluid-search-skeleton.js.map +1 -1
  202. package/es/components/fluid-search/fluid-search.js +1 -1
  203. package/es/components/fluid-search/fluid-search.js.map +1 -1
  204. package/es/components/fluid-select/fluid-select-skeleton.js +1 -1
  205. package/es/components/fluid-select/fluid-select-skeleton.js.map +1 -1
  206. package/es/components/fluid-select/fluid-select.js +1 -1
  207. package/es/components/fluid-select/fluid-select.js.map +1 -1
  208. package/es/components/fluid-text-input/fluid-text-input-skeleton.js +1 -1
  209. package/es/components/fluid-text-input/fluid-text-input-skeleton.js.map +1 -1
  210. package/es/components/fluid-text-input/fluid-text-input.js +1 -1
  211. package/es/components/fluid-text-input/fluid-text-input.js.map +1 -1
  212. package/es/components/fluid-textarea/fluid-textarea-skeleton.js +1 -1
  213. package/es/components/fluid-textarea/fluid-textarea-skeleton.js.map +1 -1
  214. package/es/components/fluid-textarea/fluid-textarea.js +1 -1
  215. package/es/components/fluid-textarea/fluid-textarea.js.map +1 -1
  216. package/es/components/fluid-time-picker/fluid-time-picker-select.js +1 -1
  217. package/es/components/fluid-time-picker/fluid-time-picker-select.js.map +1 -1
  218. package/es/components/fluid-time-picker/fluid-time-picker-skeleton.js +1 -1
  219. package/es/components/fluid-time-picker/fluid-time-picker-skeleton.js.map +1 -1
  220. package/es/components/fluid-time-picker/fluid-time-picker.js +1 -1
  221. package/es/components/fluid-time-picker/fluid-time-picker.js.map +1 -1
  222. package/es/components/form/form-item.js +1 -1
  223. package/es/components/form/form-item.js.map +1 -1
  224. package/es/components/form/form.js +1 -1
  225. package/es/components/form/form.js.map +1 -1
  226. package/es/components/form-group/form-group.js +1 -1
  227. package/es/components/form-group/form-group.js.map +1 -1
  228. package/es/components/grid/column-hang.js +1 -1
  229. package/es/components/grid/column-hang.js.map +1 -1
  230. package/es/components/grid/column.js +1 -1
  231. package/es/components/grid/column.js.map +1 -1
  232. package/es/components/grid/defs.js.map +1 -1
  233. package/es/components/grid/grid-context.js.map +1 -1
  234. package/es/components/grid/grid.js +1 -1
  235. package/es/components/grid/grid.js.map +1 -1
  236. package/es/components/heading/heading.js +1 -1
  237. package/es/components/heading/heading.js.map +1 -1
  238. package/es/components/icon/icon.js +1 -1
  239. package/es/components/icon/icon.js.map +1 -1
  240. package/es/components/icon-button/defs.js.map +1 -1
  241. package/es/components/icon-button/icon-button.js +1 -1
  242. package/es/components/icon-button/icon-button.js.map +1 -1
  243. package/es/components/icon-indicator/defs.js.map +1 -1
  244. package/es/components/icon-indicator/icon-indicator.js +1 -1
  245. package/es/components/icon-indicator/icon-indicator.js.map +1 -1
  246. package/es/components/inline-loading/defs.js.map +1 -1
  247. package/es/components/inline-loading/inline-loading.js +1 -1
  248. package/es/components/inline-loading/inline-loading.js.map +1 -1
  249. package/es/components/layer/layer.js +1 -1
  250. package/es/components/layer/layer.js.map +1 -1
  251. package/es/components/layout/layout-constraint.js +1 -1
  252. package/es/components/layout/layout-constraint.js.map +1 -1
  253. package/es/components/layout/layout.js +1 -1
  254. package/es/components/layout/layout.js.map +1 -1
  255. package/es/components/link/link.d.ts +1 -1
  256. package/es/components/link/link.js +1 -1
  257. package/es/components/link/link.js.map +1 -1
  258. package/es/components/link/link.scss.js +1 -1
  259. package/es/components/list/list-item.js +1 -1
  260. package/es/components/list/list-item.js.map +1 -1
  261. package/es/components/list/ordered-list.js +1 -1
  262. package/es/components/list/ordered-list.js.map +1 -1
  263. package/es/components/list/unordered-list.js +1 -1
  264. package/es/components/list/unordered-list.js.map +1 -1
  265. package/es/components/loading/defs.js.map +1 -1
  266. package/es/components/loading/loading-icon.js.map +1 -1
  267. package/es/components/loading/loading.js +1 -1
  268. package/es/components/loading/loading.js.map +1 -1
  269. package/es/components/menu/defs.js.map +1 -1
  270. package/es/components/menu/menu-context.js.map +1 -1
  271. package/es/components/menu/menu-item-divider.js +1 -1
  272. package/es/components/menu/menu-item-divider.js.map +1 -1
  273. package/es/components/menu/menu-item-group.js +1 -1
  274. package/es/components/menu/menu-item-group.js.map +1 -1
  275. package/es/components/menu/menu-item-radio-group.js +1 -1
  276. package/es/components/menu/menu-item-radio-group.js.map +1 -1
  277. package/es/components/menu/menu-item-selectable.d.ts +4 -0
  278. package/es/components/menu/menu-item-selectable.d.ts.map +1 -1
  279. package/es/components/menu/menu-item-selectable.js +4 -4
  280. package/es/components/menu/menu-item-selectable.js.map +1 -1
  281. package/es/components/menu/menu-item.js +1 -1
  282. package/es/components/menu/menu-item.js.map +1 -1
  283. package/es/components/menu/menu.d.ts +14 -6
  284. package/es/components/menu/menu.d.ts.map +1 -1
  285. package/es/components/menu/menu.js +9 -7
  286. package/es/components/menu/menu.js.map +1 -1
  287. package/es/components/menu-button/defs.js.map +1 -1
  288. package/es/components/menu-button/menu-button.js +1 -1
  289. package/es/components/menu-button/menu-button.js.map +1 -1
  290. package/es/components/menu-button/menu-button.scss.js +1 -1
  291. package/es/components/modal/defs.js.map +1 -1
  292. package/es/components/modal/modal-base.js +1 -1
  293. package/es/components/modal/modal-base.js.map +1 -1
  294. package/es/components/modal/modal-body-content.js +1 -1
  295. package/es/components/modal/modal-body-content.js.map +1 -1
  296. package/es/components/modal/modal-body.js +1 -1
  297. package/es/components/modal/modal-body.js.map +1 -1
  298. package/es/components/modal/modal-close-button.js +1 -1
  299. package/es/components/modal/modal-close-button.js.map +1 -1
  300. package/es/components/modal/modal-footer-button.js +1 -1
  301. package/es/components/modal/modal-footer-button.js.map +1 -1
  302. package/es/components/modal/modal-footer.js +1 -1
  303. package/es/components/modal/modal-footer.js.map +1 -1
  304. package/es/components/modal/modal-header.js +1 -1
  305. package/es/components/modal/modal-header.js.map +1 -1
  306. package/es/components/modal/modal-heading.js +1 -1
  307. package/es/components/modal/modal-heading.js.map +1 -1
  308. package/es/components/modal/modal-label.js +1 -1
  309. package/es/components/modal/modal-label.js.map +1 -1
  310. package/es/components/modal/modal.js +1 -1
  311. package/es/components/modal/modal.js.map +1 -1
  312. package/es/components/multi-select/defs.js.map +1 -1
  313. package/es/components/multi-select/multi-select-item.js +1 -1
  314. package/es/components/multi-select/multi-select-item.js.map +1 -1
  315. package/es/components/multi-select/multi-select.js +1 -1
  316. package/es/components/multi-select/multi-select.js.map +1 -1
  317. package/es/components/multi-select/multi-select.scss.js +1 -1
  318. package/es/components/notification/actionable-notification-button.js +1 -1
  319. package/es/components/notification/actionable-notification-button.js.map +1 -1
  320. package/es/components/notification/actionable-notification.js +1 -1
  321. package/es/components/notification/actionable-notification.js.map +1 -1
  322. package/es/components/notification/callout-notification.js +1 -1
  323. package/es/components/notification/callout-notification.js.map +1 -1
  324. package/es/components/notification/defs.js.map +1 -1
  325. package/es/components/notification/inline-notification.js +1 -1
  326. package/es/components/notification/inline-notification.js.map +1 -1
  327. package/es/components/notification/stories/helper.js.map +1 -1
  328. package/es/components/notification/toast-notification.js +1 -1
  329. package/es/components/notification/toast-notification.js.map +1 -1
  330. package/es/components/number-input/defs.js.map +1 -1
  331. package/es/components/number-input/number-input-skeleton.js +1 -1
  332. package/es/components/number-input/number-input-skeleton.js.map +1 -1
  333. package/es/components/number-input/number-input.js +1 -1
  334. package/es/components/number-input/number-input.js.map +1 -1
  335. package/es/components/overflow-menu/defs.js.map +1 -1
  336. package/es/components/overflow-menu/overflow-menu-body.js +1 -1
  337. package/es/components/overflow-menu/overflow-menu-body.js.map +1 -1
  338. package/es/components/overflow-menu/overflow-menu-item.js +1 -1
  339. package/es/components/overflow-menu/overflow-menu-item.js.map +1 -1
  340. package/es/components/overflow-menu/overflow-menu.js +1 -1
  341. package/es/components/overflow-menu/overflow-menu.js.map +1 -1
  342. package/es/components/page-header/page-header-breadcrumb.js +1 -1
  343. package/es/components/page-header/page-header-breadcrumb.js.map +1 -1
  344. package/es/components/page-header/page-header-content-text.js +1 -1
  345. package/es/components/page-header/page-header-content-text.js.map +1 -1
  346. package/es/components/page-header/page-header-content.js +1 -1
  347. package/es/components/page-header/page-header-content.js.map +1 -1
  348. package/es/components/page-header/page-header-hero-image.js +1 -1
  349. package/es/components/page-header/page-header-hero-image.js.map +1 -1
  350. package/es/components/page-header/page-header-tabs.js +1 -1
  351. package/es/components/page-header/page-header-tabs.js.map +1 -1
  352. package/es/components/page-header/page-header.js +1 -1
  353. package/es/components/page-header/page-header.js.map +1 -1
  354. package/es/components/pagination/defs.js.map +1 -1
  355. package/es/components/pagination/pagination.d.ts +3 -0
  356. package/es/components/pagination/pagination.d.ts.map +1 -1
  357. package/es/components/pagination/pagination.js +18 -23
  358. package/es/components/pagination/pagination.js.map +1 -1
  359. package/es/components/pagination-nav/defs.js.map +1 -1
  360. package/es/components/pagination-nav/pagination-nav.js +1 -1
  361. package/es/components/pagination-nav/pagination-nav.js.map +1 -1
  362. package/es/components/password-input/defs.js.map +1 -1
  363. package/es/components/password-input/password-input-skeleton.js +1 -1
  364. package/es/components/password-input/password-input-skeleton.js.map +1 -1
  365. package/es/components/password-input/password-input.js +1 -1
  366. package/es/components/password-input/password-input.js.map +1 -1
  367. package/es/components/popover/defs.js.map +1 -1
  368. package/es/components/popover/popover-content.js +1 -1
  369. package/es/components/popover/popover-content.js.map +1 -1
  370. package/es/components/popover/popover.d.ts +5 -0
  371. package/es/components/popover/popover.d.ts.map +1 -1
  372. package/es/components/popover/popover.js +23 -2
  373. package/es/components/popover/popover.js.map +1 -1
  374. package/es/components/progress-bar/defs.js.map +1 -1
  375. package/es/components/progress-bar/progress-bar.js +1 -1
  376. package/es/components/progress-bar/progress-bar.js.map +1 -1
  377. package/es/components/progress-indicator/defs.js.map +1 -1
  378. package/es/components/progress-indicator/progress-indicator-skeleton.js +1 -1
  379. package/es/components/progress-indicator/progress-indicator-skeleton.js.map +1 -1
  380. package/es/components/progress-indicator/progress-indicator.js +1 -1
  381. package/es/components/progress-indicator/progress-indicator.js.map +1 -1
  382. package/es/components/progress-indicator/progress-step-skeleton.js +1 -1
  383. package/es/components/progress-indicator/progress-step-skeleton.js.map +1 -1
  384. package/es/components/progress-indicator/progress-step.js +1 -1
  385. package/es/components/progress-indicator/progress-step.js.map +1 -1
  386. package/es/components/radio-button/defs.js.map +1 -1
  387. package/es/components/radio-button/radio-button-group.d.ts +3 -0
  388. package/es/components/radio-button/radio-button-group.d.ts.map +1 -1
  389. package/es/components/radio-button/radio-button-group.js +22 -5
  390. package/es/components/radio-button/radio-button-group.js.map +1 -1
  391. package/es/components/radio-button/radio-button-skeleton.js +1 -1
  392. package/es/components/radio-button/radio-button-skeleton.js.map +1 -1
  393. package/es/components/radio-button/radio-button.js +1 -1
  394. package/es/components/radio-button/radio-button.js.map +1 -1
  395. package/es/components/search/defs.js.map +1 -1
  396. package/es/components/search/search-skeleton.js +1 -1
  397. package/es/components/search/search-skeleton.js.map +1 -1
  398. package/es/components/search/search.js +1 -1
  399. package/es/components/search/search.js.map +1 -1
  400. package/es/components/select/select-item-group.js +1 -1
  401. package/es/components/select/select-item-group.js.map +1 -1
  402. package/es/components/select/select-item.js +1 -1
  403. package/es/components/select/select-item.js.map +1 -1
  404. package/es/components/select/select-skeleton.js +1 -1
  405. package/es/components/select/select-skeleton.js.map +1 -1
  406. package/es/components/select/select.js +1 -1
  407. package/es/components/select/select.js.map +1 -1
  408. package/es/components/shape-indicator/defs.js.map +1 -1
  409. package/es/components/shape-indicator/shape-indicator.js +1 -1
  410. package/es/components/shape-indicator/shape-indicator.js.map +1 -1
  411. package/es/components/side-panel/defs.js.map +1 -1
  412. package/es/components/side-panel/side-panel.js +1 -1
  413. package/es/components/side-panel/side-panel.js.map +1 -1
  414. package/es/components/skeleton-icon/skeleton-icon.js +1 -1
  415. package/es/components/skeleton-icon/skeleton-icon.js.map +1 -1
  416. package/es/components/skeleton-placeholder/skeleton-placeholder.js +1 -1
  417. package/es/components/skeleton-placeholder/skeleton-placeholder.js.map +1 -1
  418. package/es/components/skeleton-text/defs.js.map +1 -1
  419. package/es/components/skeleton-text/skeleton-text.js +1 -1
  420. package/es/components/skeleton-text/skeleton-text.js.map +1 -1
  421. package/es/components/skip-to-content/skip-to-content.js +1 -1
  422. package/es/components/skip-to-content/skip-to-content.js.map +1 -1
  423. package/es/components/slider/slider-input.js +1 -1
  424. package/es/components/slider/slider-input.js.map +1 -1
  425. package/es/components/slider/slider-skeleton.js +1 -1
  426. package/es/components/slider/slider-skeleton.js.map +1 -1
  427. package/es/components/slider/slider.js +1 -1
  428. package/es/components/slider/slider.js.map +1 -1
  429. package/es/components/slug/defs.js.map +1 -1
  430. package/es/components/slug/slug-action-button.js +1 -1
  431. package/es/components/slug/slug-action-button.js.map +1 -1
  432. package/es/components/slug/slug.js +1 -1
  433. package/es/components/slug/slug.js.map +1 -1
  434. package/es/components/stack/defs.js.map +1 -1
  435. package/es/components/stack/stack.js +1 -1
  436. package/es/components/stack/stack.js.map +1 -1
  437. package/es/components/structured-list/structured-list-body.js +1 -1
  438. package/es/components/structured-list/structured-list-body.js.map +1 -1
  439. package/es/components/structured-list/structured-list-cell.js +1 -1
  440. package/es/components/structured-list/structured-list-cell.js.map +1 -1
  441. package/es/components/structured-list/structured-list-head.js +1 -1
  442. package/es/components/structured-list/structured-list-head.js.map +1 -1
  443. package/es/components/structured-list/structured-list-header-cell-skeleton.js +1 -1
  444. package/es/components/structured-list/structured-list-header-cell-skeleton.js.map +1 -1
  445. package/es/components/structured-list/structured-list-header-cell.js +1 -1
  446. package/es/components/structured-list/structured-list-header-cell.js.map +1 -1
  447. package/es/components/structured-list/structured-list-header-row.js +1 -1
  448. package/es/components/structured-list/structured-list-header-row.js.map +1 -1
  449. package/es/components/structured-list/structured-list-row.js +1 -1
  450. package/es/components/structured-list/structured-list-row.js.map +1 -1
  451. package/es/components/structured-list/structured-list.js +1 -1
  452. package/es/components/structured-list/structured-list.js.map +1 -1
  453. package/es/components/tabs/defs.d.ts +5 -1
  454. package/es/components/tabs/defs.d.ts.map +1 -1
  455. package/es/components/tabs/defs.js +4 -0
  456. package/es/components/tabs/defs.js.map +1 -1
  457. package/es/components/tabs/stories/tabs-wrapper.d.ts.map +1 -1
  458. package/es/components/tabs/stories/tabs-wrapper.js +3 -2
  459. package/es/components/tabs/stories/tabs-wrapper.js.map +1 -1
  460. package/es/components/tabs/tab-skeleton.js +1 -1
  461. package/es/components/tabs/tab-skeleton.js.map +1 -1
  462. package/es/components/tabs/tab.js +1 -1
  463. package/es/components/tabs/tab.js.map +1 -1
  464. package/es/components/tabs/tabs-skeleton.js +1 -1
  465. package/es/components/tabs/tabs-skeleton.js.map +1 -1
  466. package/es/components/tabs/tabs-vertical.d.ts.map +1 -1
  467. package/es/components/tabs/tabs-vertical.js +3 -1
  468. package/es/components/tabs/tabs-vertical.js.map +1 -1
  469. package/es/components/tabs/tabs.d.ts +8 -0
  470. package/es/components/tabs/tabs.d.ts.map +1 -1
  471. package/es/components/tabs/tabs.js +5 -3
  472. package/es/components/tabs/tabs.js.map +1 -1
  473. package/es/components/tabs/tabs.scss.js +1 -1
  474. package/es/components/tabs/tabs.scss.js.map +1 -1
  475. package/es/components/tag/defs.js.map +1 -1
  476. package/es/components/tag/dismissible-tag.js +1 -1
  477. package/es/components/tag/dismissible-tag.js.map +1 -1
  478. package/es/components/tag/operational-tag.js +1 -1
  479. package/es/components/tag/operational-tag.js.map +1 -1
  480. package/es/components/tag/selectable-tag.js +1 -1
  481. package/es/components/tag/selectable-tag.js.map +1 -1
  482. package/es/components/tag/tag-skeleton.js +1 -1
  483. package/es/components/tag/tag-skeleton.js.map +1 -1
  484. package/es/components/tag/tag.js +1 -1
  485. package/es/components/tag/tag.js.map +1 -1
  486. package/es/components/tearsheet/defs.js.map +1 -1
  487. package/es/components/tearsheet/tearsheet.js +1 -1
  488. package/es/components/tearsheet/tearsheet.js.map +1 -1
  489. package/es/components/text-input/defs.js.map +1 -1
  490. package/es/components/text-input/stories/helpers.js.map +1 -1
  491. package/es/components/text-input/text-input-skeleton.js +1 -1
  492. package/es/components/text-input/text-input-skeleton.js.map +1 -1
  493. package/es/components/text-input/text-input.js +1 -1
  494. package/es/components/text-input/text-input.js.map +1 -1
  495. package/es/components/textarea/stories/helpers.js.map +1 -1
  496. package/es/components/textarea/textarea-skeleton.js +1 -1
  497. package/es/components/textarea/textarea-skeleton.js.map +1 -1
  498. package/es/components/textarea/textarea.js +1 -1
  499. package/es/components/textarea/textarea.js.map +1 -1
  500. package/es/components/tile/clickable-tile.js +1 -1
  501. package/es/components/tile/clickable-tile.js.map +1 -1
  502. package/es/components/tile/expandable-tile.js +1 -1
  503. package/es/components/tile/expandable-tile.js.map +1 -1
  504. package/es/components/tile/radio-tile.js +1 -1
  505. package/es/components/tile/radio-tile.js.map +1 -1
  506. package/es/components/tile/selectable-tile.js +1 -1
  507. package/es/components/tile/selectable-tile.js.map +1 -1
  508. package/es/components/tile/tile-group.js +1 -1
  509. package/es/components/tile/tile-group.js.map +1 -1
  510. package/es/components/tile/tile.js +1 -1
  511. package/es/components/tile/tile.js.map +1 -1
  512. package/es/components/tile/tile.scss.js +1 -1
  513. package/es/components/time-picker/defs.js.map +1 -1
  514. package/es/components/time-picker/time-picker-select.js +1 -1
  515. package/es/components/time-picker/time-picker-select.js.map +1 -1
  516. package/es/components/time-picker/time-picker.js +1 -1
  517. package/es/components/time-picker/time-picker.js.map +1 -1
  518. package/es/components/toggle/defs.js.map +1 -1
  519. package/es/components/toggle/toggle-skeleton.js +1 -1
  520. package/es/components/toggle/toggle-skeleton.js.map +1 -1
  521. package/es/components/toggle/toggle.js +1 -1
  522. package/es/components/toggle/toggle.js.map +1 -1
  523. package/es/components/toggle-tip/toggletip.js +1 -1
  524. package/es/components/toggle-tip/toggletip.js.map +1 -1
  525. package/es/components/tooltip/definition-tooltip.js +1 -1
  526. package/es/components/tooltip/definition-tooltip.js.map +1 -1
  527. package/es/components/tooltip/tooltip-content.js +1 -1
  528. package/es/components/tooltip/tooltip-content.js.map +1 -1
  529. package/es/components/tooltip/tooltip.js +1 -1
  530. package/es/components/tooltip/tooltip.js.map +1 -1
  531. package/es/components/tree-view/defs.js.map +1 -1
  532. package/es/components/tree-view/tree-node.js +1 -1
  533. package/es/components/tree-view/tree-node.js.map +1 -1
  534. package/es/components/tree-view/tree-view.js +1 -1
  535. package/es/components/tree-view/tree-view.js.map +1 -1
  536. package/es/components/ui-shell/defs.js.map +1 -1
  537. package/es/components/ui-shell/header-global-action.js +1 -1
  538. package/es/components/ui-shell/header-global-action.js.map +1 -1
  539. package/es/components/ui-shell/header-menu-button.js +1 -1
  540. package/es/components/ui-shell/header-menu-button.js.map +1 -1
  541. package/es/components/ui-shell/header-menu-item.js +1 -1
  542. package/es/components/ui-shell/header-menu-item.js.map +1 -1
  543. package/es/components/ui-shell/header-menu.js +1 -1
  544. package/es/components/ui-shell/header-menu.js.map +1 -1
  545. package/es/components/ui-shell/header-name.js +1 -1
  546. package/es/components/ui-shell/header-name.js.map +1 -1
  547. package/es/components/ui-shell/header-nav-item.js +1 -1
  548. package/es/components/ui-shell/header-nav-item.js.map +1 -1
  549. package/es/components/ui-shell/header-nav.js +1 -1
  550. package/es/components/ui-shell/header-nav.js.map +1 -1
  551. package/es/components/ui-shell/header-panel.js +1 -1
  552. package/es/components/ui-shell/header-panel.js.map +1 -1
  553. package/es/components/ui-shell/header-side-nav-items.js +1 -1
  554. package/es/components/ui-shell/header-side-nav-items.js.map +1 -1
  555. package/es/components/ui-shell/header.js +1 -1
  556. package/es/components/ui-shell/header.js.map +1 -1
  557. package/es/components/ui-shell/side-nav-divider.js +1 -1
  558. package/es/components/ui-shell/side-nav-divider.js.map +1 -1
  559. package/es/components/ui-shell/side-nav-items.js +1 -1
  560. package/es/components/ui-shell/side-nav-items.js.map +1 -1
  561. package/es/components/ui-shell/side-nav-link.js +1 -1
  562. package/es/components/ui-shell/side-nav-link.js.map +1 -1
  563. package/es/components/ui-shell/side-nav-menu-item.js +1 -1
  564. package/es/components/ui-shell/side-nav-menu-item.js.map +1 -1
  565. package/es/components/ui-shell/side-nav-menu.js +1 -1
  566. package/es/components/ui-shell/side-nav-menu.js.map +1 -1
  567. package/es/components/ui-shell/side-nav.js +1 -1
  568. package/es/components/ui-shell/side-nav.js.map +1 -1
  569. package/es/components/ui-shell/switcher-divider.js +1 -1
  570. package/es/components/ui-shell/switcher-divider.js.map +1 -1
  571. package/es/components/ui-shell/switcher-item.js +1 -1
  572. package/es/components/ui-shell/switcher-item.js.map +1 -1
  573. package/es/components/ui-shell/switcher.js +1 -1
  574. package/es/components/ui-shell/switcher.js.map +1 -1
  575. package/es/globals/controllers/floating-controller.js.map +1 -1
  576. package/es/globals/decorators/carbon-element.js.map +1 -1
  577. package/es/globals/decorators/host-listener.js.map +1 -1
  578. package/es/globals/directives/if-non-empty.js.map +1 -1
  579. package/es/globals/directives/spread.js.map +1 -1
  580. package/es/globals/internal/collection-helpers.js.map +1 -1
  581. package/es/globals/internal/deep-shadow-contains.js.map +1 -1
  582. package/es/globals/internal/icon-loader-utils.js.map +1 -1
  583. package/es/globals/internal/icon-loader.js.map +1 -1
  584. package/es/globals/internal/radio-group-manager.js.map +1 -1
  585. package/es/globals/mixins/focus.js.map +1 -1
  586. package/es/globals/mixins/form.js.map +1 -1
  587. package/es/globals/mixins/host-listener.js.map +1 -1
  588. package/es/globals/mixins/on.js.map +1 -1
  589. package/es/globals/mixins/validity.js.map +1 -1
  590. package/es/globals/shared-enums.js.map +1 -1
  591. package/es/node_modules/flatpickr/dist/esm/index.js.map +1 -1
  592. package/es/node_modules/flatpickr/dist/esm/l10n/default.js.map +1 -1
  593. package/es/node_modules/flatpickr/dist/esm/plugins/rangePlugin.js.map +1 -1
  594. package/es/node_modules/flatpickr/dist/esm/types/options.js.map +1 -1
  595. package/es/node_modules/flatpickr/dist/esm/utils/dates.js.map +1 -1
  596. package/es/node_modules/flatpickr/dist/esm/utils/dom.js.map +1 -1
  597. package/es/node_modules/flatpickr/dist/esm/utils/formatting.js.map +1 -1
  598. package/es/node_modules/flatpickr/dist/esm/utils/index.js.map +1 -1
  599. package/es/node_modules/flatpickr/dist/esm/utils/polyfills.js.map +1 -1
  600. package/es/packages/feature-flags/es/index.js.map +1 -1
  601. package/es-custom/_virtual/{_@oxc-project_runtime@0.126.0/helpers → _@oxc-project_runtime@0.135.0/helpers/esm}/decorate.js +1 -1
  602. package/es-custom/components/accordion/accordion-item-skeleton.js +1 -1
  603. package/es-custom/components/accordion/accordion-item-skeleton.js.map +1 -1
  604. package/es-custom/components/accordion/accordion-item.js +1 -1
  605. package/es-custom/components/accordion/accordion-item.js.map +1 -1
  606. package/es-custom/components/accordion/accordion-skeleton.js +1 -1
  607. package/es-custom/components/accordion/accordion-skeleton.js.map +1 -1
  608. package/es-custom/components/accordion/accordion.js +1 -1
  609. package/es-custom/components/accordion/accordion.js.map +1 -1
  610. package/es-custom/components/accordion/defs.js.map +1 -1
  611. package/es-custom/components/ai-label/ai-label-action-button.js +1 -1
  612. package/es-custom/components/ai-label/ai-label-action-button.js.map +1 -1
  613. package/es-custom/components/ai-label/ai-label.js +1 -1
  614. package/es-custom/components/ai-label/ai-label.js.map +1 -1
  615. package/es-custom/components/ai-label/defs.js.map +1 -1
  616. package/es-custom/components/ai-skeleton/ai-skeleton-icon.js +1 -1
  617. package/es-custom/components/ai-skeleton/ai-skeleton-icon.js.map +1 -1
  618. package/es-custom/components/ai-skeleton/ai-skeleton-placeholder.js +1 -1
  619. package/es-custom/components/ai-skeleton/ai-skeleton-placeholder.js.map +1 -1
  620. package/es-custom/components/ai-skeleton/ai-skeleton-text.js +1 -1
  621. package/es-custom/components/ai-skeleton/ai-skeleton-text.js.map +1 -1
  622. package/es-custom/components/badge-indicator/badge-indicator.js +1 -1
  623. package/es-custom/components/badge-indicator/badge-indicator.js.map +1 -1
  624. package/es-custom/components/breadcrumb/breadcrumb-item.js +1 -1
  625. package/es-custom/components/breadcrumb/breadcrumb-item.js.map +1 -1
  626. package/es-custom/components/breadcrumb/breadcrumb-link.js +1 -1
  627. package/es-custom/components/breadcrumb/breadcrumb-link.js.map +1 -1
  628. package/es-custom/components/breadcrumb/breadcrumb-overflow-menu.js +1 -1
  629. package/es-custom/components/breadcrumb/breadcrumb-overflow-menu.js.map +1 -1
  630. package/es-custom/components/breadcrumb/breadcrumb-skeleton.js +1 -1
  631. package/es-custom/components/breadcrumb/breadcrumb-skeleton.js.map +1 -1
  632. package/es-custom/components/breadcrumb/breadcrumb.js +1 -1
  633. package/es-custom/components/breadcrumb/breadcrumb.js.map +1 -1
  634. package/es-custom/components/breadcrumb/breadcrumb.scss.js +1 -1
  635. package/es-custom/components/breadcrumb/defs.js.map +1 -1
  636. package/es-custom/components/button/button-set-base.js +1 -1
  637. package/es-custom/components/button/button-set-base.js.map +1 -1
  638. package/es-custom/components/button/button-set.js +1 -1
  639. package/es-custom/components/button/button-set.js.map +1 -1
  640. package/es-custom/components/button/button-skeleton.js +1 -1
  641. package/es-custom/components/button/button-skeleton.js.map +1 -1
  642. package/es-custom/components/button/button.js +1 -1
  643. package/es-custom/components/button/button.js.map +1 -1
  644. package/es-custom/components/button/defs.js.map +1 -1
  645. package/es-custom/components/chat-button/chat-button-skeleton.js +1 -1
  646. package/es-custom/components/chat-button/chat-button-skeleton.js.map +1 -1
  647. package/es-custom/components/chat-button/chat-button.js +1 -1
  648. package/es-custom/components/chat-button/chat-button.js.map +1 -1
  649. package/es-custom/components/chat-button/defs.js.map +1 -1
  650. package/es-custom/components/checkbox/checkbox-group.js +1 -1
  651. package/es-custom/components/checkbox/checkbox-group.js.map +1 -1
  652. package/es-custom/components/checkbox/checkbox-skeleton.js +1 -1
  653. package/es-custom/components/checkbox/checkbox-skeleton.js.map +1 -1
  654. package/es-custom/components/checkbox/checkbox.js +1 -1
  655. package/es-custom/components/checkbox/checkbox.js.map +1 -1
  656. package/es-custom/components/checkbox/defs.js.map +1 -1
  657. package/es-custom/components/code-snippet/code-snippet-skeleton.js +1 -1
  658. package/es-custom/components/code-snippet/code-snippet-skeleton.js.map +1 -1
  659. package/es-custom/components/code-snippet/code-snippet.js +1 -1
  660. package/es-custom/components/code-snippet/code-snippet.js.map +1 -1
  661. package/es-custom/components/code-snippet/defs.js.map +1 -1
  662. package/es-custom/components/combo-box/combo-box-item.js +1 -1
  663. package/es-custom/components/combo-box/combo-box-item.js.map +1 -1
  664. package/es-custom/components/combo-box/combo-box.js +1 -1
  665. package/es-custom/components/combo-box/combo-box.js.map +1 -1
  666. package/es-custom/components/combo-button/combo-button.js +1 -1
  667. package/es-custom/components/combo-button/combo-button.js.map +1 -1
  668. package/es-custom/components/combo-button/defs.js.map +1 -1
  669. package/es-custom/components/contained-list/contained-list-description.js +1 -1
  670. package/es-custom/components/contained-list/contained-list-description.js.map +1 -1
  671. package/es-custom/components/contained-list/contained-list-item.js +1 -1
  672. package/es-custom/components/contained-list/contained-list-item.js.map +1 -1
  673. package/es-custom/components/contained-list/contained-list.js +1 -1
  674. package/es-custom/components/contained-list/contained-list.js.map +1 -1
  675. package/es-custom/components/content-switcher/content-switcher-item.js +1 -1
  676. package/es-custom/components/content-switcher/content-switcher-item.js.map +1 -1
  677. package/es-custom/components/content-switcher/content-switcher.js +1 -1
  678. package/es-custom/components/content-switcher/content-switcher.js.map +1 -1
  679. package/es-custom/components/content-switcher/defs.js.map +1 -1
  680. package/es-custom/components/copy/copy.js +1 -1
  681. package/es-custom/components/copy/copy.js.map +1 -1
  682. package/es-custom/components/copy-button/copy-button.js +1 -1
  683. package/es-custom/components/copy-button/copy-button.js.map +1 -1
  684. package/es-custom/components/data-table/data-table.scss.js +1 -1
  685. package/es-custom/components/data-table/defs.js.map +1 -1
  686. package/es-custom/components/data-table/table-batch-actions.js +1 -1
  687. package/es-custom/components/data-table/table-batch-actions.js.map +1 -1
  688. package/es-custom/components/data-table/table-body.js +1 -1
  689. package/es-custom/components/data-table/table-body.js.map +1 -1
  690. package/es-custom/components/data-table/table-cell-content.js +1 -1
  691. package/es-custom/components/data-table/table-cell-content.js.map +1 -1
  692. package/es-custom/components/data-table/table-cell.js +1 -1
  693. package/es-custom/components/data-table/table-cell.js.map +1 -1
  694. package/es-custom/components/data-table/table-expanded-row.js +1 -1
  695. package/es-custom/components/data-table/table-expanded-row.js.map +1 -1
  696. package/es-custom/components/data-table/table-head.js +1 -1
  697. package/es-custom/components/data-table/table-head.js.map +1 -1
  698. package/es-custom/components/data-table/table-header-cell.js +1 -1
  699. package/es-custom/components/data-table/table-header-cell.js.map +1 -1
  700. package/es-custom/components/data-table/table-header-description.js +1 -1
  701. package/es-custom/components/data-table/table-header-description.js.map +1 -1
  702. package/es-custom/components/data-table/table-header-row.js +1 -1
  703. package/es-custom/components/data-table/table-header-row.js.map +1 -1
  704. package/es-custom/components/data-table/table-header-title.js +1 -1
  705. package/es-custom/components/data-table/table-header-title.js.map +1 -1
  706. package/es-custom/components/data-table/table-row.js +1 -1
  707. package/es-custom/components/data-table/table-row.js.map +1 -1
  708. package/es-custom/components/data-table/table-skeleton.js +1 -1
  709. package/es-custom/components/data-table/table-skeleton.js.map +1 -1
  710. package/es-custom/components/data-table/table-toolbar-content.js +1 -1
  711. package/es-custom/components/data-table/table-toolbar-content.js.map +1 -1
  712. package/es-custom/components/data-table/table-toolbar-search.js +1 -1
  713. package/es-custom/components/data-table/table-toolbar-search.js.map +1 -1
  714. package/es-custom/components/data-table/table-toolbar.js +1 -1
  715. package/es-custom/components/data-table/table-toolbar.js.map +1 -1
  716. package/es-custom/components/data-table/table.js +1 -1
  717. package/es-custom/components/data-table/table.js.map +1 -1
  718. package/es-custom/components/date-picker/append-to-plugin.js.map +1 -1
  719. package/es-custom/components/date-picker/css-class-plugin.js.map +1 -1
  720. package/es-custom/components/date-picker/date-picker-input-skeleton.js +1 -1
  721. package/es-custom/components/date-picker/date-picker-input-skeleton.js.map +1 -1
  722. package/es-custom/components/date-picker/date-picker-input.js +1 -1
  723. package/es-custom/components/date-picker/date-picker-input.js.map +1 -1
  724. package/es-custom/components/date-picker/date-picker.js +1 -1
  725. package/es-custom/components/date-picker/date-picker.js.map +1 -1
  726. package/es-custom/components/date-picker/defs.js.map +1 -1
  727. package/es-custom/components/date-picker/fix-events-plugin.js.map +1 -1
  728. package/es-custom/components/date-picker/focus-plugin.js.map +1 -1
  729. package/es-custom/components/date-picker/icon-plugin.js.map +1 -1
  730. package/es-custom/components/date-picker/iso-date.js.map +1 -1
  731. package/es-custom/components/date-picker/month-select-plugin.js.map +1 -1
  732. package/es-custom/components/date-picker/range-plugin.js.map +1 -1
  733. package/es-custom/components/date-picker/shadow-dom-events-plugin.js.map +1 -1
  734. package/es-custom/components/date-picker/state-handshake-plugin.js.map +1 -1
  735. package/es-custom/components/dialog/dialog-body.js +1 -1
  736. package/es-custom/components/dialog/dialog-body.js.map +1 -1
  737. package/es-custom/components/dialog/dialog-close-button.js +1 -1
  738. package/es-custom/components/dialog/dialog-close-button.js.map +1 -1
  739. package/es-custom/components/dialog/dialog-controls.js +1 -1
  740. package/es-custom/components/dialog/dialog-controls.js.map +1 -1
  741. package/es-custom/components/dialog/dialog-footer-button.js +1 -1
  742. package/es-custom/components/dialog/dialog-footer-button.js.map +1 -1
  743. package/es-custom/components/dialog/dialog-footer.js +1 -1
  744. package/es-custom/components/dialog/dialog-footer.js.map +1 -1
  745. package/es-custom/components/dialog/dialog-header.js +1 -1
  746. package/es-custom/components/dialog/dialog-header.js.map +1 -1
  747. package/es-custom/components/dialog/dialog-subtitle.js +1 -1
  748. package/es-custom/components/dialog/dialog-subtitle.js.map +1 -1
  749. package/es-custom/components/dialog/dialog-title.js +1 -1
  750. package/es-custom/components/dialog/dialog-title.js.map +1 -1
  751. package/es-custom/components/dialog/dialog.js +1 -1
  752. package/es-custom/components/dialog/dialog.js.map +1 -1
  753. package/es-custom/components/dropdown/defs.js.map +1 -1
  754. package/es-custom/components/dropdown/dropdown-item.js +1 -1
  755. package/es-custom/components/dropdown/dropdown-item.js.map +1 -1
  756. package/es-custom/components/dropdown/dropdown-skeleton.js +1 -1
  757. package/es-custom/components/dropdown/dropdown-skeleton.js.map +1 -1
  758. package/es-custom/components/dropdown/dropdown.js +1 -1
  759. package/es-custom/components/dropdown/dropdown.js.map +1 -1
  760. package/es-custom/components/feature-flags/index.js +1 -1
  761. package/es-custom/components/feature-flags/index.js.map +1 -1
  762. package/es-custom/components/file-uploader/defs.js.map +1 -1
  763. package/es-custom/components/file-uploader/demo-file-uploader.js +1 -1
  764. package/es-custom/components/file-uploader/demo-file-uploader.js.map +1 -1
  765. package/es-custom/components/file-uploader/file-uploader-button.js +1 -1
  766. package/es-custom/components/file-uploader/file-uploader-button.js.map +1 -1
  767. package/es-custom/components/file-uploader/file-uploader-drop-container.js +1 -1
  768. package/es-custom/components/file-uploader/file-uploader-drop-container.js.map +1 -1
  769. package/es-custom/components/file-uploader/file-uploader-item.js +1 -1
  770. package/es-custom/components/file-uploader/file-uploader-item.js.map +1 -1
  771. package/es-custom/components/file-uploader/file-uploader-skeleton.js +1 -1
  772. package/es-custom/components/file-uploader/file-uploader-skeleton.js.map +1 -1
  773. package/es-custom/components/file-uploader/file-uploader.js +1 -1
  774. package/es-custom/components/file-uploader/file-uploader.js.map +1 -1
  775. package/es-custom/components/floating-menu/defs.js.map +1 -1
  776. package/es-custom/components/floating-menu/floating-menu.js +1 -1
  777. package/es-custom/components/floating-menu/floating-menu.js.map +1 -1
  778. package/es-custom/components/fluid-combo-box/fluid-combo-box-skeleton.js +1 -1
  779. package/es-custom/components/fluid-combo-box/fluid-combo-box-skeleton.js.map +1 -1
  780. package/es-custom/components/fluid-combo-box/fluid-combo-box.js +1 -1
  781. package/es-custom/components/fluid-combo-box/fluid-combo-box.js.map +1 -1
  782. package/es-custom/components/fluid-dropdown/fluid-dropdown-skeleton.js +1 -1
  783. package/es-custom/components/fluid-dropdown/fluid-dropdown-skeleton.js.map +1 -1
  784. package/es-custom/components/fluid-dropdown/fluid-dropdown.js +1 -1
  785. package/es-custom/components/fluid-dropdown/fluid-dropdown.js.map +1 -1
  786. package/es-custom/components/fluid-form/fluid-form.js +1 -1
  787. package/es-custom/components/fluid-form/fluid-form.js.map +1 -1
  788. package/es-custom/components/fluid-multi-select/fluid-multi-select-skeleton.js +1 -1
  789. package/es-custom/components/fluid-multi-select/fluid-multi-select-skeleton.js.map +1 -1
  790. package/es-custom/components/fluid-multi-select/fluid-multi-select.js +1 -1
  791. package/es-custom/components/fluid-multi-select/fluid-multi-select.js.map +1 -1
  792. package/es-custom/components/fluid-multi-select/fluid-multi-select.scss.js +1 -1
  793. package/es-custom/components/fluid-number-input/fluid-number-input-skeleton.js +1 -1
  794. package/es-custom/components/fluid-number-input/fluid-number-input-skeleton.js.map +1 -1
  795. package/es-custom/components/fluid-number-input/fluid-number-input.js +1 -1
  796. package/es-custom/components/fluid-number-input/fluid-number-input.js.map +1 -1
  797. package/es-custom/components/fluid-password-input/fluid-password-input.js +1 -1
  798. package/es-custom/components/fluid-password-input/fluid-password-input.js.map +1 -1
  799. package/es-custom/components/fluid-search/fluid-search-skeleton.js +1 -1
  800. package/es-custom/components/fluid-search/fluid-search-skeleton.js.map +1 -1
  801. package/es-custom/components/fluid-search/fluid-search.js +1 -1
  802. package/es-custom/components/fluid-search/fluid-search.js.map +1 -1
  803. package/es-custom/components/fluid-select/fluid-select-skeleton.js +1 -1
  804. package/es-custom/components/fluid-select/fluid-select-skeleton.js.map +1 -1
  805. package/es-custom/components/fluid-select/fluid-select.js +1 -1
  806. package/es-custom/components/fluid-select/fluid-select.js.map +1 -1
  807. package/es-custom/components/fluid-text-input/fluid-text-input-skeleton.js +1 -1
  808. package/es-custom/components/fluid-text-input/fluid-text-input-skeleton.js.map +1 -1
  809. package/es-custom/components/fluid-text-input/fluid-text-input.js +1 -1
  810. package/es-custom/components/fluid-text-input/fluid-text-input.js.map +1 -1
  811. package/es-custom/components/fluid-textarea/fluid-textarea-skeleton.js +1 -1
  812. package/es-custom/components/fluid-textarea/fluid-textarea-skeleton.js.map +1 -1
  813. package/es-custom/components/fluid-textarea/fluid-textarea.js +1 -1
  814. package/es-custom/components/fluid-textarea/fluid-textarea.js.map +1 -1
  815. package/es-custom/components/fluid-time-picker/fluid-time-picker-select.js +1 -1
  816. package/es-custom/components/fluid-time-picker/fluid-time-picker-select.js.map +1 -1
  817. package/es-custom/components/fluid-time-picker/fluid-time-picker-skeleton.js +1 -1
  818. package/es-custom/components/fluid-time-picker/fluid-time-picker-skeleton.js.map +1 -1
  819. package/es-custom/components/fluid-time-picker/fluid-time-picker.js +1 -1
  820. package/es-custom/components/fluid-time-picker/fluid-time-picker.js.map +1 -1
  821. package/es-custom/components/form/form-item.js +1 -1
  822. package/es-custom/components/form/form-item.js.map +1 -1
  823. package/es-custom/components/form/form.js +1 -1
  824. package/es-custom/components/form/form.js.map +1 -1
  825. package/es-custom/components/form-group/form-group.js +1 -1
  826. package/es-custom/components/form-group/form-group.js.map +1 -1
  827. package/es-custom/components/grid/column-hang.js +1 -1
  828. package/es-custom/components/grid/column-hang.js.map +1 -1
  829. package/es-custom/components/grid/column.js +1 -1
  830. package/es-custom/components/grid/column.js.map +1 -1
  831. package/es-custom/components/grid/defs.js.map +1 -1
  832. package/es-custom/components/grid/grid-context.js.map +1 -1
  833. package/es-custom/components/grid/grid.js +1 -1
  834. package/es-custom/components/grid/grid.js.map +1 -1
  835. package/es-custom/components/heading/heading.js +1 -1
  836. package/es-custom/components/heading/heading.js.map +1 -1
  837. package/es-custom/components/icon/icon.js +1 -1
  838. package/es-custom/components/icon/icon.js.map +1 -1
  839. package/es-custom/components/icon-button/defs.js.map +1 -1
  840. package/es-custom/components/icon-button/icon-button.js +1 -1
  841. package/es-custom/components/icon-button/icon-button.js.map +1 -1
  842. package/es-custom/components/icon-indicator/defs.js.map +1 -1
  843. package/es-custom/components/icon-indicator/icon-indicator.js +1 -1
  844. package/es-custom/components/icon-indicator/icon-indicator.js.map +1 -1
  845. package/es-custom/components/inline-loading/defs.js.map +1 -1
  846. package/es-custom/components/inline-loading/inline-loading.js +1 -1
  847. package/es-custom/components/inline-loading/inline-loading.js.map +1 -1
  848. package/es-custom/components/layer/layer.js +1 -1
  849. package/es-custom/components/layer/layer.js.map +1 -1
  850. package/es-custom/components/layout/layout-constraint.js +1 -1
  851. package/es-custom/components/layout/layout-constraint.js.map +1 -1
  852. package/es-custom/components/layout/layout.js +1 -1
  853. package/es-custom/components/layout/layout.js.map +1 -1
  854. package/es-custom/components/link/link.d.ts +1 -1
  855. package/es-custom/components/link/link.js +1 -1
  856. package/es-custom/components/link/link.js.map +1 -1
  857. package/es-custom/components/link/link.scss.js +1 -1
  858. package/es-custom/components/list/list-item.js +1 -1
  859. package/es-custom/components/list/list-item.js.map +1 -1
  860. package/es-custom/components/list/ordered-list.js +1 -1
  861. package/es-custom/components/list/ordered-list.js.map +1 -1
  862. package/es-custom/components/list/unordered-list.js +1 -1
  863. package/es-custom/components/list/unordered-list.js.map +1 -1
  864. package/es-custom/components/loading/defs.js.map +1 -1
  865. package/es-custom/components/loading/loading-icon.js.map +1 -1
  866. package/es-custom/components/loading/loading.js +1 -1
  867. package/es-custom/components/loading/loading.js.map +1 -1
  868. package/es-custom/components/menu/defs.js.map +1 -1
  869. package/es-custom/components/menu/menu-context.js.map +1 -1
  870. package/es-custom/components/menu/menu-item-divider.js +1 -1
  871. package/es-custom/components/menu/menu-item-divider.js.map +1 -1
  872. package/es-custom/components/menu/menu-item-group.js +1 -1
  873. package/es-custom/components/menu/menu-item-group.js.map +1 -1
  874. package/es-custom/components/menu/menu-item-radio-group.js +1 -1
  875. package/es-custom/components/menu/menu-item-radio-group.js.map +1 -1
  876. package/es-custom/components/menu/menu-item-selectable.d.ts +4 -0
  877. package/es-custom/components/menu/menu-item-selectable.d.ts.map +1 -1
  878. package/es-custom/components/menu/menu-item-selectable.js +4 -4
  879. package/es-custom/components/menu/menu-item-selectable.js.map +1 -1
  880. package/es-custom/components/menu/menu-item.js +1 -1
  881. package/es-custom/components/menu/menu-item.js.map +1 -1
  882. package/es-custom/components/menu/menu.d.ts +14 -6
  883. package/es-custom/components/menu/menu.d.ts.map +1 -1
  884. package/es-custom/components/menu/menu.js +9 -7
  885. package/es-custom/components/menu/menu.js.map +1 -1
  886. package/es-custom/components/menu-button/defs.js.map +1 -1
  887. package/es-custom/components/menu-button/menu-button.js +1 -1
  888. package/es-custom/components/menu-button/menu-button.js.map +1 -1
  889. package/es-custom/components/menu-button/menu-button.scss.js +1 -1
  890. package/es-custom/components/modal/defs.js.map +1 -1
  891. package/es-custom/components/modal/modal-base.js +1 -1
  892. package/es-custom/components/modal/modal-base.js.map +1 -1
  893. package/es-custom/components/modal/modal-body-content.js +1 -1
  894. package/es-custom/components/modal/modal-body-content.js.map +1 -1
  895. package/es-custom/components/modal/modal-body.js +1 -1
  896. package/es-custom/components/modal/modal-body.js.map +1 -1
  897. package/es-custom/components/modal/modal-close-button.js +1 -1
  898. package/es-custom/components/modal/modal-close-button.js.map +1 -1
  899. package/es-custom/components/modal/modal-footer-button.js +1 -1
  900. package/es-custom/components/modal/modal-footer-button.js.map +1 -1
  901. package/es-custom/components/modal/modal-footer.js +1 -1
  902. package/es-custom/components/modal/modal-footer.js.map +1 -1
  903. package/es-custom/components/modal/modal-header.js +1 -1
  904. package/es-custom/components/modal/modal-header.js.map +1 -1
  905. package/es-custom/components/modal/modal-heading.js +1 -1
  906. package/es-custom/components/modal/modal-heading.js.map +1 -1
  907. package/es-custom/components/modal/modal-label.js +1 -1
  908. package/es-custom/components/modal/modal-label.js.map +1 -1
  909. package/es-custom/components/modal/modal.js +1 -1
  910. package/es-custom/components/modal/modal.js.map +1 -1
  911. package/es-custom/components/multi-select/defs.js.map +1 -1
  912. package/es-custom/components/multi-select/multi-select-item.js +1 -1
  913. package/es-custom/components/multi-select/multi-select-item.js.map +1 -1
  914. package/es-custom/components/multi-select/multi-select.js +1 -1
  915. package/es-custom/components/multi-select/multi-select.js.map +1 -1
  916. package/es-custom/components/multi-select/multi-select.scss.js +1 -1
  917. package/es-custom/components/notification/actionable-notification-button.js +1 -1
  918. package/es-custom/components/notification/actionable-notification-button.js.map +1 -1
  919. package/es-custom/components/notification/actionable-notification.js +1 -1
  920. package/es-custom/components/notification/actionable-notification.js.map +1 -1
  921. package/es-custom/components/notification/callout-notification.js +1 -1
  922. package/es-custom/components/notification/callout-notification.js.map +1 -1
  923. package/es-custom/components/notification/defs.js.map +1 -1
  924. package/es-custom/components/notification/inline-notification.js +1 -1
  925. package/es-custom/components/notification/inline-notification.js.map +1 -1
  926. package/es-custom/components/notification/stories/helper.js.map +1 -1
  927. package/es-custom/components/notification/toast-notification.js +1 -1
  928. package/es-custom/components/notification/toast-notification.js.map +1 -1
  929. package/es-custom/components/number-input/defs.js.map +1 -1
  930. package/es-custom/components/number-input/number-input-skeleton.js +1 -1
  931. package/es-custom/components/number-input/number-input-skeleton.js.map +1 -1
  932. package/es-custom/components/number-input/number-input.js +1 -1
  933. package/es-custom/components/number-input/number-input.js.map +1 -1
  934. package/es-custom/components/overflow-menu/defs.js.map +1 -1
  935. package/es-custom/components/overflow-menu/overflow-menu-body.js +1 -1
  936. package/es-custom/components/overflow-menu/overflow-menu-body.js.map +1 -1
  937. package/es-custom/components/overflow-menu/overflow-menu-item.js +1 -1
  938. package/es-custom/components/overflow-menu/overflow-menu-item.js.map +1 -1
  939. package/es-custom/components/overflow-menu/overflow-menu.js +1 -1
  940. package/es-custom/components/overflow-menu/overflow-menu.js.map +1 -1
  941. package/es-custom/components/page-header/page-header-breadcrumb.js +1 -1
  942. package/es-custom/components/page-header/page-header-breadcrumb.js.map +1 -1
  943. package/es-custom/components/page-header/page-header-content-text.js +1 -1
  944. package/es-custom/components/page-header/page-header-content-text.js.map +1 -1
  945. package/es-custom/components/page-header/page-header-content.js +1 -1
  946. package/es-custom/components/page-header/page-header-content.js.map +1 -1
  947. package/es-custom/components/page-header/page-header-hero-image.js +1 -1
  948. package/es-custom/components/page-header/page-header-hero-image.js.map +1 -1
  949. package/es-custom/components/page-header/page-header-tabs.js +1 -1
  950. package/es-custom/components/page-header/page-header-tabs.js.map +1 -1
  951. package/es-custom/components/page-header/page-header.js +1 -1
  952. package/es-custom/components/page-header/page-header.js.map +1 -1
  953. package/es-custom/components/pagination/defs.js.map +1 -1
  954. package/es-custom/components/pagination/pagination.d.ts +3 -0
  955. package/es-custom/components/pagination/pagination.d.ts.map +1 -1
  956. package/es-custom/components/pagination/pagination.js +18 -23
  957. package/es-custom/components/pagination/pagination.js.map +1 -1
  958. package/es-custom/components/pagination-nav/defs.js.map +1 -1
  959. package/es-custom/components/pagination-nav/pagination-nav.js +1 -1
  960. package/es-custom/components/pagination-nav/pagination-nav.js.map +1 -1
  961. package/es-custom/components/password-input/defs.js.map +1 -1
  962. package/es-custom/components/password-input/password-input-skeleton.js +1 -1
  963. package/es-custom/components/password-input/password-input-skeleton.js.map +1 -1
  964. package/es-custom/components/password-input/password-input.js +1 -1
  965. package/es-custom/components/password-input/password-input.js.map +1 -1
  966. package/es-custom/components/popover/defs.js.map +1 -1
  967. package/es-custom/components/popover/popover-content.js +1 -1
  968. package/es-custom/components/popover/popover-content.js.map +1 -1
  969. package/es-custom/components/popover/popover.d.ts +5 -0
  970. package/es-custom/components/popover/popover.d.ts.map +1 -1
  971. package/es-custom/components/popover/popover.js +23 -2
  972. package/es-custom/components/popover/popover.js.map +1 -1
  973. package/es-custom/components/progress-bar/defs.js.map +1 -1
  974. package/es-custom/components/progress-bar/progress-bar.js +1 -1
  975. package/es-custom/components/progress-bar/progress-bar.js.map +1 -1
  976. package/es-custom/components/progress-indicator/defs.js.map +1 -1
  977. package/es-custom/components/progress-indicator/progress-indicator-skeleton.js +1 -1
  978. package/es-custom/components/progress-indicator/progress-indicator-skeleton.js.map +1 -1
  979. package/es-custom/components/progress-indicator/progress-indicator.js +1 -1
  980. package/es-custom/components/progress-indicator/progress-indicator.js.map +1 -1
  981. package/es-custom/components/progress-indicator/progress-step-skeleton.js +1 -1
  982. package/es-custom/components/progress-indicator/progress-step-skeleton.js.map +1 -1
  983. package/es-custom/components/progress-indicator/progress-step.js +1 -1
  984. package/es-custom/components/progress-indicator/progress-step.js.map +1 -1
  985. package/es-custom/components/radio-button/defs.js.map +1 -1
  986. package/es-custom/components/radio-button/radio-button-group.d.ts +3 -0
  987. package/es-custom/components/radio-button/radio-button-group.d.ts.map +1 -1
  988. package/es-custom/components/radio-button/radio-button-group.js +22 -5
  989. package/es-custom/components/radio-button/radio-button-group.js.map +1 -1
  990. package/es-custom/components/radio-button/radio-button-skeleton.js +1 -1
  991. package/es-custom/components/radio-button/radio-button-skeleton.js.map +1 -1
  992. package/es-custom/components/radio-button/radio-button.js +1 -1
  993. package/es-custom/components/radio-button/radio-button.js.map +1 -1
  994. package/es-custom/components/search/defs.js.map +1 -1
  995. package/es-custom/components/search/search-skeleton.js +1 -1
  996. package/es-custom/components/search/search-skeleton.js.map +1 -1
  997. package/es-custom/components/search/search.js +1 -1
  998. package/es-custom/components/search/search.js.map +1 -1
  999. package/es-custom/components/select/select-item-group.js +1 -1
  1000. package/es-custom/components/select/select-item-group.js.map +1 -1
  1001. package/es-custom/components/select/select-item.js +1 -1
  1002. package/es-custom/components/select/select-item.js.map +1 -1
  1003. package/es-custom/components/select/select-skeleton.js +1 -1
  1004. package/es-custom/components/select/select-skeleton.js.map +1 -1
  1005. package/es-custom/components/select/select.js +1 -1
  1006. package/es-custom/components/select/select.js.map +1 -1
  1007. package/es-custom/components/shape-indicator/defs.js.map +1 -1
  1008. package/es-custom/components/shape-indicator/shape-indicator.js +1 -1
  1009. package/es-custom/components/shape-indicator/shape-indicator.js.map +1 -1
  1010. package/es-custom/components/side-panel/defs.js.map +1 -1
  1011. package/es-custom/components/side-panel/side-panel.js +1 -1
  1012. package/es-custom/components/side-panel/side-panel.js.map +1 -1
  1013. package/es-custom/components/skeleton-icon/skeleton-icon.js +1 -1
  1014. package/es-custom/components/skeleton-icon/skeleton-icon.js.map +1 -1
  1015. package/es-custom/components/skeleton-placeholder/skeleton-placeholder.js +1 -1
  1016. package/es-custom/components/skeleton-placeholder/skeleton-placeholder.js.map +1 -1
  1017. package/es-custom/components/skeleton-text/defs.js.map +1 -1
  1018. package/es-custom/components/skeleton-text/skeleton-text.js +1 -1
  1019. package/es-custom/components/skeleton-text/skeleton-text.js.map +1 -1
  1020. package/es-custom/components/skip-to-content/skip-to-content.js +1 -1
  1021. package/es-custom/components/skip-to-content/skip-to-content.js.map +1 -1
  1022. package/es-custom/components/slider/slider-input.js +1 -1
  1023. package/es-custom/components/slider/slider-input.js.map +1 -1
  1024. package/es-custom/components/slider/slider-skeleton.js +1 -1
  1025. package/es-custom/components/slider/slider-skeleton.js.map +1 -1
  1026. package/es-custom/components/slider/slider.js +1 -1
  1027. package/es-custom/components/slider/slider.js.map +1 -1
  1028. package/es-custom/components/slug/defs.js.map +1 -1
  1029. package/es-custom/components/slug/slug-action-button.js +1 -1
  1030. package/es-custom/components/slug/slug-action-button.js.map +1 -1
  1031. package/es-custom/components/slug/slug.js +1 -1
  1032. package/es-custom/components/slug/slug.js.map +1 -1
  1033. package/es-custom/components/stack/defs.js.map +1 -1
  1034. package/es-custom/components/stack/stack.js +1 -1
  1035. package/es-custom/components/stack/stack.js.map +1 -1
  1036. package/es-custom/components/structured-list/structured-list-body.js +1 -1
  1037. package/es-custom/components/structured-list/structured-list-body.js.map +1 -1
  1038. package/es-custom/components/structured-list/structured-list-cell.js +1 -1
  1039. package/es-custom/components/structured-list/structured-list-cell.js.map +1 -1
  1040. package/es-custom/components/structured-list/structured-list-head.js +1 -1
  1041. package/es-custom/components/structured-list/structured-list-head.js.map +1 -1
  1042. package/es-custom/components/structured-list/structured-list-header-cell-skeleton.js +1 -1
  1043. package/es-custom/components/structured-list/structured-list-header-cell-skeleton.js.map +1 -1
  1044. package/es-custom/components/structured-list/structured-list-header-cell.js +1 -1
  1045. package/es-custom/components/structured-list/structured-list-header-cell.js.map +1 -1
  1046. package/es-custom/components/structured-list/structured-list-header-row.js +1 -1
  1047. package/es-custom/components/structured-list/structured-list-header-row.js.map +1 -1
  1048. package/es-custom/components/structured-list/structured-list-row.js +1 -1
  1049. package/es-custom/components/structured-list/structured-list-row.js.map +1 -1
  1050. package/es-custom/components/structured-list/structured-list.js +1 -1
  1051. package/es-custom/components/structured-list/structured-list.js.map +1 -1
  1052. package/es-custom/components/tabs/defs.d.ts +5 -1
  1053. package/es-custom/components/tabs/defs.d.ts.map +1 -1
  1054. package/es-custom/components/tabs/defs.js +4 -0
  1055. package/es-custom/components/tabs/defs.js.map +1 -1
  1056. package/es-custom/components/tabs/stories/tabs-wrapper.d.ts.map +1 -1
  1057. package/es-custom/components/tabs/stories/tabs-wrapper.js +3 -2
  1058. package/es-custom/components/tabs/stories/tabs-wrapper.js.map +1 -1
  1059. package/es-custom/components/tabs/tab-skeleton.js +1 -1
  1060. package/es-custom/components/tabs/tab-skeleton.js.map +1 -1
  1061. package/es-custom/components/tabs/tab.js +1 -1
  1062. package/es-custom/components/tabs/tab.js.map +1 -1
  1063. package/es-custom/components/tabs/tabs-skeleton.js +1 -1
  1064. package/es-custom/components/tabs/tabs-skeleton.js.map +1 -1
  1065. package/es-custom/components/tabs/tabs-vertical.d.ts.map +1 -1
  1066. package/es-custom/components/tabs/tabs-vertical.js +3 -1
  1067. package/es-custom/components/tabs/tabs-vertical.js.map +1 -1
  1068. package/es-custom/components/tabs/tabs.d.ts +8 -0
  1069. package/es-custom/components/tabs/tabs.d.ts.map +1 -1
  1070. package/es-custom/components/tabs/tabs.js +5 -3
  1071. package/es-custom/components/tabs/tabs.js.map +1 -1
  1072. package/es-custom/components/tabs/tabs.scss.js +1 -1
  1073. package/es-custom/components/tabs/tabs.scss.js.map +1 -1
  1074. package/es-custom/components/tag/defs.js.map +1 -1
  1075. package/es-custom/components/tag/dismissible-tag.js +1 -1
  1076. package/es-custom/components/tag/dismissible-tag.js.map +1 -1
  1077. package/es-custom/components/tag/operational-tag.js +1 -1
  1078. package/es-custom/components/tag/operational-tag.js.map +1 -1
  1079. package/es-custom/components/tag/selectable-tag.js +1 -1
  1080. package/es-custom/components/tag/selectable-tag.js.map +1 -1
  1081. package/es-custom/components/tag/tag-skeleton.js +1 -1
  1082. package/es-custom/components/tag/tag-skeleton.js.map +1 -1
  1083. package/es-custom/components/tag/tag.js +1 -1
  1084. package/es-custom/components/tag/tag.js.map +1 -1
  1085. package/es-custom/components/tearsheet/defs.js.map +1 -1
  1086. package/es-custom/components/tearsheet/tearsheet.js +1 -1
  1087. package/es-custom/components/tearsheet/tearsheet.js.map +1 -1
  1088. package/es-custom/components/text-input/defs.js.map +1 -1
  1089. package/es-custom/components/text-input/stories/helpers.js.map +1 -1
  1090. package/es-custom/components/text-input/text-input-skeleton.js +1 -1
  1091. package/es-custom/components/text-input/text-input-skeleton.js.map +1 -1
  1092. package/es-custom/components/text-input/text-input.js +1 -1
  1093. package/es-custom/components/text-input/text-input.js.map +1 -1
  1094. package/es-custom/components/textarea/stories/helpers.js.map +1 -1
  1095. package/es-custom/components/textarea/textarea-skeleton.js +1 -1
  1096. package/es-custom/components/textarea/textarea-skeleton.js.map +1 -1
  1097. package/es-custom/components/textarea/textarea.js +1 -1
  1098. package/es-custom/components/textarea/textarea.js.map +1 -1
  1099. package/es-custom/components/tile/clickable-tile.js +1 -1
  1100. package/es-custom/components/tile/clickable-tile.js.map +1 -1
  1101. package/es-custom/components/tile/expandable-tile.js +1 -1
  1102. package/es-custom/components/tile/expandable-tile.js.map +1 -1
  1103. package/es-custom/components/tile/radio-tile.js +1 -1
  1104. package/es-custom/components/tile/radio-tile.js.map +1 -1
  1105. package/es-custom/components/tile/selectable-tile.js +1 -1
  1106. package/es-custom/components/tile/selectable-tile.js.map +1 -1
  1107. package/es-custom/components/tile/tile-group.js +1 -1
  1108. package/es-custom/components/tile/tile-group.js.map +1 -1
  1109. package/es-custom/components/tile/tile.js +1 -1
  1110. package/es-custom/components/tile/tile.js.map +1 -1
  1111. package/es-custom/components/tile/tile.scss.js +1 -1
  1112. package/es-custom/components/time-picker/defs.js.map +1 -1
  1113. package/es-custom/components/time-picker/time-picker-select.js +1 -1
  1114. package/es-custom/components/time-picker/time-picker-select.js.map +1 -1
  1115. package/es-custom/components/time-picker/time-picker.js +1 -1
  1116. package/es-custom/components/time-picker/time-picker.js.map +1 -1
  1117. package/es-custom/components/toggle/defs.js.map +1 -1
  1118. package/es-custom/components/toggle/toggle-skeleton.js +1 -1
  1119. package/es-custom/components/toggle/toggle-skeleton.js.map +1 -1
  1120. package/es-custom/components/toggle/toggle.js +1 -1
  1121. package/es-custom/components/toggle/toggle.js.map +1 -1
  1122. package/es-custom/components/toggle-tip/toggletip.js +1 -1
  1123. package/es-custom/components/toggle-tip/toggletip.js.map +1 -1
  1124. package/es-custom/components/tooltip/definition-tooltip.js +1 -1
  1125. package/es-custom/components/tooltip/definition-tooltip.js.map +1 -1
  1126. package/es-custom/components/tooltip/tooltip-content.js +1 -1
  1127. package/es-custom/components/tooltip/tooltip-content.js.map +1 -1
  1128. package/es-custom/components/tooltip/tooltip.js +1 -1
  1129. package/es-custom/components/tooltip/tooltip.js.map +1 -1
  1130. package/es-custom/components/tree-view/defs.js.map +1 -1
  1131. package/es-custom/components/tree-view/tree-node.js +1 -1
  1132. package/es-custom/components/tree-view/tree-node.js.map +1 -1
  1133. package/es-custom/components/tree-view/tree-view.js +1 -1
  1134. package/es-custom/components/tree-view/tree-view.js.map +1 -1
  1135. package/es-custom/components/ui-shell/defs.js.map +1 -1
  1136. package/es-custom/components/ui-shell/header-global-action.js +1 -1
  1137. package/es-custom/components/ui-shell/header-global-action.js.map +1 -1
  1138. package/es-custom/components/ui-shell/header-menu-button.js +1 -1
  1139. package/es-custom/components/ui-shell/header-menu-button.js.map +1 -1
  1140. package/es-custom/components/ui-shell/header-menu-item.js +1 -1
  1141. package/es-custom/components/ui-shell/header-menu-item.js.map +1 -1
  1142. package/es-custom/components/ui-shell/header-menu.js +1 -1
  1143. package/es-custom/components/ui-shell/header-menu.js.map +1 -1
  1144. package/es-custom/components/ui-shell/header-name.js +1 -1
  1145. package/es-custom/components/ui-shell/header-name.js.map +1 -1
  1146. package/es-custom/components/ui-shell/header-nav-item.js +1 -1
  1147. package/es-custom/components/ui-shell/header-nav-item.js.map +1 -1
  1148. package/es-custom/components/ui-shell/header-nav.js +1 -1
  1149. package/es-custom/components/ui-shell/header-nav.js.map +1 -1
  1150. package/es-custom/components/ui-shell/header-panel.js +1 -1
  1151. package/es-custom/components/ui-shell/header-panel.js.map +1 -1
  1152. package/es-custom/components/ui-shell/header-side-nav-items.js +1 -1
  1153. package/es-custom/components/ui-shell/header-side-nav-items.js.map +1 -1
  1154. package/es-custom/components/ui-shell/header.js +1 -1
  1155. package/es-custom/components/ui-shell/header.js.map +1 -1
  1156. package/es-custom/components/ui-shell/side-nav-divider.js +1 -1
  1157. package/es-custom/components/ui-shell/side-nav-divider.js.map +1 -1
  1158. package/es-custom/components/ui-shell/side-nav-items.js +1 -1
  1159. package/es-custom/components/ui-shell/side-nav-items.js.map +1 -1
  1160. package/es-custom/components/ui-shell/side-nav-link.js +1 -1
  1161. package/es-custom/components/ui-shell/side-nav-link.js.map +1 -1
  1162. package/es-custom/components/ui-shell/side-nav-menu-item.js +1 -1
  1163. package/es-custom/components/ui-shell/side-nav-menu-item.js.map +1 -1
  1164. package/es-custom/components/ui-shell/side-nav-menu.js +1 -1
  1165. package/es-custom/components/ui-shell/side-nav-menu.js.map +1 -1
  1166. package/es-custom/components/ui-shell/side-nav.js +1 -1
  1167. package/es-custom/components/ui-shell/side-nav.js.map +1 -1
  1168. package/es-custom/components/ui-shell/switcher-divider.js +1 -1
  1169. package/es-custom/components/ui-shell/switcher-divider.js.map +1 -1
  1170. package/es-custom/components/ui-shell/switcher-item.js +1 -1
  1171. package/es-custom/components/ui-shell/switcher-item.js.map +1 -1
  1172. package/es-custom/components/ui-shell/switcher.js +1 -1
  1173. package/es-custom/components/ui-shell/switcher.js.map +1 -1
  1174. package/es-custom/globals/controllers/floating-controller.js.map +1 -1
  1175. package/es-custom/globals/decorators/carbon-element.js.map +1 -1
  1176. package/es-custom/globals/decorators/host-listener.js.map +1 -1
  1177. package/es-custom/globals/directives/if-non-empty.js.map +1 -1
  1178. package/es-custom/globals/directives/spread.js.map +1 -1
  1179. package/es-custom/globals/internal/collection-helpers.js.map +1 -1
  1180. package/es-custom/globals/internal/deep-shadow-contains.js.map +1 -1
  1181. package/es-custom/globals/internal/icon-loader-utils.js.map +1 -1
  1182. package/es-custom/globals/internal/icon-loader.js.map +1 -1
  1183. package/es-custom/globals/internal/radio-group-manager.js.map +1 -1
  1184. package/es-custom/globals/mixins/focus.js.map +1 -1
  1185. package/es-custom/globals/mixins/form.js.map +1 -1
  1186. package/es-custom/globals/mixins/host-listener.js.map +1 -1
  1187. package/es-custom/globals/mixins/on.js.map +1 -1
  1188. package/es-custom/globals/mixins/validity.js.map +1 -1
  1189. package/es-custom/globals/shared-enums.js.map +1 -1
  1190. package/es-custom/node_modules/flatpickr/dist/esm/index.js.map +1 -1
  1191. package/es-custom/node_modules/flatpickr/dist/esm/l10n/default.js.map +1 -1
  1192. package/es-custom/node_modules/flatpickr/dist/esm/plugins/rangePlugin.js.map +1 -1
  1193. package/es-custom/node_modules/flatpickr/dist/esm/types/options.js.map +1 -1
  1194. package/es-custom/node_modules/flatpickr/dist/esm/utils/dates.js.map +1 -1
  1195. package/es-custom/node_modules/flatpickr/dist/esm/utils/dom.js.map +1 -1
  1196. package/es-custom/node_modules/flatpickr/dist/esm/utils/formatting.js.map +1 -1
  1197. package/es-custom/node_modules/flatpickr/dist/esm/utils/index.js.map +1 -1
  1198. package/es-custom/node_modules/flatpickr/dist/esm/utils/polyfills.js.map +1 -1
  1199. package/es-custom/packages/feature-flags/es/index.js.map +1 -1
  1200. package/lib/components/accordion/defs.js.map +1 -1
  1201. package/lib/components/ai-label/defs.js.map +1 -1
  1202. package/lib/components/breadcrumb/defs.js.map +1 -1
  1203. package/lib/components/button/defs.js.map +1 -1
  1204. package/lib/components/chat-button/defs.js.map +1 -1
  1205. package/lib/components/checkbox/defs.js.map +1 -1
  1206. package/lib/components/code-snippet/defs.js.map +1 -1
  1207. package/lib/components/combo-button/defs.js.map +1 -1
  1208. package/lib/components/content-switcher/defs.js.map +1 -1
  1209. package/lib/components/data-table/defs.js.map +1 -1
  1210. package/lib/components/date-picker/defs.js.map +1 -1
  1211. package/lib/components/dropdown/defs.js.map +1 -1
  1212. package/lib/components/file-uploader/defs.js.map +1 -1
  1213. package/lib/components/floating-menu/defs.js.map +1 -1
  1214. package/lib/components/grid/defs.js.map +1 -1
  1215. package/lib/components/icon-button/defs.js.map +1 -1
  1216. package/lib/components/icon-indicator/defs.js.map +1 -1
  1217. package/lib/components/inline-loading/defs.js.map +1 -1
  1218. package/lib/components/link/link.d.ts +1 -1
  1219. package/lib/components/loading/defs.js.map +1 -1
  1220. package/lib/components/menu/defs.js.map +1 -1
  1221. package/lib/components/menu/menu-item-selectable.d.ts +4 -0
  1222. package/lib/components/menu/menu-item-selectable.d.ts.map +1 -1
  1223. package/lib/components/menu/menu.d.ts +14 -6
  1224. package/lib/components/menu/menu.d.ts.map +1 -1
  1225. package/lib/components/menu-button/defs.js.map +1 -1
  1226. package/lib/components/modal/defs.js.map +1 -1
  1227. package/lib/components/multi-select/defs.js.map +1 -1
  1228. package/lib/components/notification/defs.js.map +1 -1
  1229. package/lib/components/number-input/defs.js.map +1 -1
  1230. package/lib/components/overflow-menu/defs.js.map +1 -1
  1231. package/lib/components/pagination/defs.js.map +1 -1
  1232. package/lib/components/pagination/pagination.d.ts +3 -0
  1233. package/lib/components/pagination/pagination.d.ts.map +1 -1
  1234. package/lib/components/pagination-nav/defs.js.map +1 -1
  1235. package/lib/components/password-input/defs.js.map +1 -1
  1236. package/lib/components/popover/defs.js.map +1 -1
  1237. package/lib/components/popover/popover.d.ts +5 -0
  1238. package/lib/components/popover/popover.d.ts.map +1 -1
  1239. package/lib/components/progress-bar/defs.js.map +1 -1
  1240. package/lib/components/progress-indicator/defs.js.map +1 -1
  1241. package/lib/components/radio-button/defs.js.map +1 -1
  1242. package/lib/components/radio-button/radio-button-group.d.ts +3 -0
  1243. package/lib/components/radio-button/radio-button-group.d.ts.map +1 -1
  1244. package/lib/components/search/defs.js.map +1 -1
  1245. package/lib/components/shape-indicator/defs.js.map +1 -1
  1246. package/lib/components/side-panel/defs.js.map +1 -1
  1247. package/lib/components/skeleton-text/defs.js.map +1 -1
  1248. package/lib/components/slug/defs.js.map +1 -1
  1249. package/lib/components/stack/defs.js.map +1 -1
  1250. package/lib/components/tabs/defs.d.ts +5 -1
  1251. package/lib/components/tabs/defs.d.ts.map +1 -1
  1252. package/lib/components/tabs/defs.js +4 -0
  1253. package/lib/components/tabs/defs.js.map +1 -1
  1254. package/lib/components/tabs/stories/tabs-wrapper.d.ts.map +1 -1
  1255. package/lib/components/tabs/tabs-vertical.d.ts.map +1 -1
  1256. package/lib/components/tabs/tabs.d.ts +8 -0
  1257. package/lib/components/tabs/tabs.d.ts.map +1 -1
  1258. package/lib/components/tag/defs.js.map +1 -1
  1259. package/lib/components/tearsheet/defs.js.map +1 -1
  1260. package/lib/components/text-input/defs.js.map +1 -1
  1261. package/lib/components/time-picker/defs.js.map +1 -1
  1262. package/lib/components/toggle/defs.js.map +1 -1
  1263. package/lib/components/tree-view/defs.js.map +1 -1
  1264. package/lib/components/ui-shell/defs.js.map +1 -1
  1265. package/lib/globals/controllers/floating-controller.js.map +1 -1
  1266. package/lib/globals/shared-enums.js.map +1 -1
  1267. package/package.json +7 -7
  1268. package/scss/components/tabs/tabs.scss +12 -12
@@ -7,7 +7,7 @@
7
7
 
8
8
  import "../../globals/settings.js";
9
9
  import { carbonElement } from "../../globals/decorators/carbon-element.js";
10
- import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.126.0/helpers/decorate.js";
10
+ import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.135.0/helpers/esm/decorate.js";
11
11
  import menu_item_default from "./menu-item.scss.js";
12
12
  import { LitElement, html } from "lit";
13
13
  import { property } from "lit/decorators.js";
@@ -1 +1 @@
1
- {"version":3,"file":"menu-item-group.js","names":["styles","customElement"],"sources":["../../../src/components/menu/menu-item-group.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './menu-item.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n/**\n * Menu Item.\n *\n * @element cds-menu-item-group\n */\n@customElement(`${prefix}-menu-item-group`)\nclass CDSmenuItemGroup extends LitElement {\n /**\n * Label for the menu item.\n */\n @property({ type: String })\n label;\n\n render() {\n const { label } = this;\n return html`\n <ul role=\"group\" aria-label=\"${label}\">\n <slot></slot>\n </ul>\n `;\n }\n static styles = styles;\n}\nexport default CDSmenuItemGroup;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,IAAA,mBAAA,MACM,yBAAyB,WAAW;CAOxC,SAAS;EACP,MAAM,EAAE,UAAU;AAClB,SAAO,IAAI;qCACsB,MAAM;;;;;;gBAKzBA;;;YAXf,SAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,EAAA,iBAAA,WAAA,SAAA,KAAA,EAAA;+BAL5BC,cAAc,sBAA4B,CAAA,EAAA,iBAAA;AAkB3C,IAAA,0BAAe"}
1
+ {"version":3,"file":"menu-item-group.js","names":["styles","customElement"],"sources":["../../../src/components/menu/menu-item-group.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './menu-item.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n/**\n * Menu Item.\n *\n * @element cds-menu-item-group\n */\n@customElement(`${prefix}-menu-item-group`)\nclass CDSmenuItemGroup extends LitElement {\n /**\n * Label for the menu item.\n */\n @property({ type: String })\n label;\n\n render() {\n const { label } = this;\n return html`\n <ul role=\"group\" aria-label=\"${label}\">\n <slot></slot>\n </ul>\n `;\n }\n static styles = styles;\n}\nexport default CDSmenuItemGroup;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,IAAA,mBAAA,MACM,yBAAyB,WAAW;CAOxC,SAAS;EACP,MAAM,EAAE,UAAU;EAClB,OAAO,IAAI;qCACsB,MAAM;;;;CAIzC;;gBACgBA;;AAClB;YAZG,SAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,iBAAA,WAAA,SAAA,KAAA,CAAA;+BAL3BC,cAAc,qBAA2B,CAAA,GAAA,gBAAA;AAkB1C,IAAA,0BAAe"}
@@ -7,7 +7,7 @@
7
7
 
8
8
  import "../../globals/settings.js";
9
9
  import { carbonElement } from "../../globals/decorators/carbon-element.js";
10
- import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.126.0/helpers/decorate.js";
10
+ import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.135.0/helpers/esm/decorate.js";
11
11
  import { MenuContext } from "./menu-context.js";
12
12
  import menu_item_default from "./menu-item.scss.js";
13
13
  import { LitElement, html } from "lit";
@@ -1 +1 @@
1
- {"version":3,"file":"menu-item-radio-group.js","names":["styles","customElement"],"sources":["../../../src/components/menu/menu-item-radio-group.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './menu-item.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { consume } from '@lit/context';\nimport { MenuContext } from './menu-context';\n\n/**\n * Menu Item.\n *\n * @element cds-menu-item-radio-group\n */\n@customElement(`${prefix}-menu-item-radio-group`)\nclass CDSmenuItemRadioGroup extends LitElement {\n @consume({ context: MenuContext })\n context;\n\n /**\n * Label for the menu item radio group.\n */\n @property({ type: String })\n label;\n /**\n * List of items in the radio group.\n */\n @property({ type: Array })\n items = [];\n\n /**\n * Selected item in the radio group.\n */\n @property({ type: String, attribute: true })\n selectedItem;\n\n /**\n * List of items in the radio group.\n */\n @property()\n itemToString?: (item: Array<string | number>) => string;\n /**\n * The name of the custom event fired when the selection state changes.\n */\n static get eventOnChange() {\n return `${prefix}-item-changed`;\n }\n\n firstUpdated(): void {\n this.context.updateFromChild({ hasSelectableItems: true });\n\n this.addEventListener(`click`, (e) => {\n this.selectedItem = e.target;\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy: e.target,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSmenuItemRadioGroup).eventOnChange,\n init\n )\n )\n ) {\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSmenuItemRadioGroup).eventOnChange,\n init\n )\n );\n }\n });\n }\n\n protected updated(_changedProperties): void {\n if (_changedProperties.has('selectedItem')) {\n this.querySelectorAll(`${prefix}-menu-item`).forEach((item) => {\n if (item === this.selectedItem) {\n item.setAttribute('aria-checked', 'true');\n } else {\n item.setAttribute('aria-checked', 'false');\n }\n });\n }\n }\n\n render() {\n const { label } = this;\n return html`\n <ul role=\"group\" aria-label=\"${label}\">\n <slot></slot>\n </ul>\n `;\n }\n static styles = styles;\n}\nexport default CDSmenuItemRadioGroup;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,IAAA,wBAAA,MACM,8BAA8B,WAAW;;;eAarC,EAAE;;;;;CAgBV,WAAW,gBAAgB;AACzB,SAAO;;CAGT,eAAqB;AACnB,OAAK,QAAQ,gBAAgB,EAAE,oBAAoB,MAAM,CAAC;AAE1D,OAAK,iBAAiB,UAAU,MAAM;AACpC,QAAK,eAAe,EAAE;GACtB,MAAM,OAAO;IACX,SAAS;IACT,YAAY;IACZ,UAAU;IACV,QAAQ,EACN,aAAa,EAAE,QAChB;IACF;AACD,OACE,KAAK,cACH,IAAI,YACD,KAAK,YAA6C,eACnD,KACD,CACF,CAED,MAAK,cACH,IAAI,YACD,KAAK,YAA6C,eACnD,KACD,CACF;IAEH;;CAGJ,QAAkB,oBAA0B;AAC1C,MAAI,mBAAmB,IAAI,eAAe,CACxC,MAAK,iBAAiB,gBAAsB,CAAC,SAAS,SAAS;AAC7D,OAAI,SAAS,KAAK,aAChB,MAAK,aAAa,gBAAgB,OAAO;OAEzC,MAAK,aAAa,gBAAgB,QAAQ;IAE5C;;CAIN,SAAS;EACP,MAAM,EAAE,UAAU;AAClB,SAAO,IAAI;qCACsB,MAAM;;;;;;gBAKzBA;;;YAnFf,QAAQ,EAAE,SAAS,aAAa,CAAC,CAAA,EAAA,sBAAA,WAAA,WAAA,KAAA,EAAA;YAMjC,SAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,EAAA,sBAAA,WAAA,SAAA,KAAA,EAAA;YAK1B,SAAS,EAAE,MAAM,OAAO,CAAC,CAAA,EAAA,sBAAA,WAAA,SAAA,KAAA,EAAA;YAMzB,SAAS;CAAE,MAAM;CAAQ,WAAW;CAAM,CAAC,CAAA,EAAA,sBAAA,WAAA,gBAAA,KAAA,EAAA;YAM3C,UAAU,CAAA,EAAA,sBAAA,WAAA,gBAAA,KAAA,EAAA;oCAzBZC,cAAc,4BAAkC,CAAA,EAAA,sBAAA;AAuFjD,IAAA,gCAAe"}
1
+ {"version":3,"file":"menu-item-radio-group.js","names":["styles","customElement"],"sources":["../../../src/components/menu/menu-item-radio-group.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './menu-item.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { consume } from '@lit/context';\nimport { MenuContext } from './menu-context';\n\n/**\n * Menu Item.\n *\n * @element cds-menu-item-radio-group\n */\n@customElement(`${prefix}-menu-item-radio-group`)\nclass CDSmenuItemRadioGroup extends LitElement {\n @consume({ context: MenuContext })\n context;\n\n /**\n * Label for the menu item radio group.\n */\n @property({ type: String })\n label;\n /**\n * List of items in the radio group.\n */\n @property({ type: Array })\n items = [];\n\n /**\n * Selected item in the radio group.\n */\n @property({ type: String, attribute: true })\n selectedItem;\n\n /**\n * List of items in the radio group.\n */\n @property()\n itemToString?: (item: Array<string | number>) => string;\n /**\n * The name of the custom event fired when the selection state changes.\n */\n static get eventOnChange() {\n return `${prefix}-item-changed`;\n }\n\n firstUpdated(): void {\n this.context.updateFromChild({ hasSelectableItems: true });\n\n this.addEventListener(`click`, (e) => {\n this.selectedItem = e.target;\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy: e.target,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSmenuItemRadioGroup).eventOnChange,\n init\n )\n )\n ) {\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSmenuItemRadioGroup).eventOnChange,\n init\n )\n );\n }\n });\n }\n\n protected updated(_changedProperties): void {\n if (_changedProperties.has('selectedItem')) {\n this.querySelectorAll(`${prefix}-menu-item`).forEach((item) => {\n if (item === this.selectedItem) {\n item.setAttribute('aria-checked', 'true');\n } else {\n item.setAttribute('aria-checked', 'false');\n }\n });\n }\n }\n\n render() {\n const { label } = this;\n return html`\n <ul role=\"group\" aria-label=\"${label}\">\n <slot></slot>\n </ul>\n `;\n }\n static styles = styles;\n}\nexport default CDSmenuItemRadioGroup;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,IAAA,wBAAA,MACM,8BAA8B,WAAW;;;eAarC,CAAC;;;;;CAgBT,WAAW,gBAAgB;EACzB,OAAO;CACT;CAEA,eAAqB;EACnB,KAAK,QAAQ,gBAAgB,EAAE,oBAAoB,KAAK,CAAC;EAEzD,KAAK,iBAAiB,UAAU,MAAM;GACpC,KAAK,eAAe,EAAE;GACtB,MAAM,OAAO;IACX,SAAS;IACT,YAAY;IACZ,UAAU;IACV,QAAQ,EACN,aAAa,EAAE,OACjB;GACF;GACA,IACE,KAAK,cACH,IAAI,YACD,KAAK,YAA6C,eACnD,IACF,CACF,GAEA,KAAK,cACH,IAAI,YACD,KAAK,YAA6C,eACnD,IACF,CACF;EAEJ,CAAC;CACH;CAEA,QAAkB,oBAA0B;EAC1C,IAAI,mBAAmB,IAAI,cAAc,GACvC,KAAK,iBAAiB,eAAqB,CAAC,CAAC,SAAS,SAAS;GAC7D,IAAI,SAAS,KAAK,cAChB,KAAK,aAAa,gBAAgB,MAAM;QAExC,KAAK,aAAa,gBAAgB,OAAO;EAE7C,CAAC;CAEL;CAEA,SAAS;EACP,MAAM,EAAE,UAAU;EAClB,OAAO,IAAI;qCACsB,MAAM;;;;CAIzC;;gBACgBA;;AAClB;YApFG,QAAQ,EAAE,SAAS,YAAY,CAAC,CAAA,GAAA,sBAAA,WAAA,WAAA,KAAA,CAAA;YAMhC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,sBAAA,WAAA,SAAA,KAAA,CAAA;YAKzB,SAAS,EAAE,MAAM,MAAM,CAAC,CAAA,GAAA,sBAAA,WAAA,SAAA,KAAA,CAAA;YAMxB,SAAS;CAAE,MAAM;CAAQ,WAAW;AAAK,CAAC,CAAA,GAAA,sBAAA,WAAA,gBAAA,KAAA,CAAA;YAM1C,SAAS,CAAA,GAAA,sBAAA,WAAA,gBAAA,KAAA,CAAA;oCAzBXC,cAAc,2BAAiC,CAAA,GAAA,qBAAA;AAuFhD,IAAA,gCAAe"}
@@ -12,6 +12,10 @@ import { LitElement } from 'lit';
12
12
  */
13
13
  declare class CDSmenuItemSelectable extends LitElement {
14
14
  context: any;
15
+ /**
16
+ * The menu item element in the shadow DOM.
17
+ */
18
+ private _menuItem?;
15
19
  /**
16
20
  * Label for the menu item selectable.
17
21
  */
@@ -1 +1 @@
1
- {"version":3,"file":"menu-item-selectable.d.ts","sourceRoot":"","sources":["../../../src/components/menu/menu-item-selectable.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAOvC;;;;GAIG;AACH,cACM,qBAAsB,SAAQ,UAAU;IAE5C,OAAO,MAAC;IACR;;OAEG;IAEH,KAAK,MAAC;IACN;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IACH,MAAM,KAAK,aAAa,WAEvB;IAED;;OAEG;IACH,MAAM,CAAC,iBAAiB;;;;;;;MAGtB;IAEF;;OAEG;IAEH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IAGxB,QAAQ,MAAC;IAET,YAAY,GAAI,MAAC,UAyBf;IAEF,iBAAiB;IAKjB,YAAY;IAWZ,cAAc,GAAI,GAAG,aAAa,UAIhC;IAEF,MAAM;IAeN,MAAM,CAAC,MAAM,MAAU;CACxB;AACD,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"menu-item-selectable.d.ts","sourceRoot":"","sources":["../../../src/components/menu/menu-item-selectable.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAOvC;;;;GAIG;AACH,cACM,qBAAsB,SAAQ,UAAU;IAE5C,OAAO,MAAC;IAER;;OAEG;IAEH,OAAO,CAAC,SAAS,CAAC,CAAc;IAEhC;;OAEG;IAEH,KAAK,MAAC;IACN;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IACH,MAAM,KAAK,aAAa,WAEvB;IAED;;OAEG;IACH,MAAM,CAAC,iBAAiB;;;;;;;MAGtB;IAEF;;OAEG;IAEH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IAGxB,QAAQ,MAAC;IAET,YAAY,GAAI,MAAC,UAyBf;IAEF,iBAAiB;IAKjB,YAAY;IAQZ,cAAc,GAAI,GAAG,aAAa,UAIhC;IAEF,MAAM;IAeN,MAAM,CAAC,MAAM,MAAU;CACxB;AACD,eAAe,qBAAqB,CAAC"}
@@ -7,11 +7,11 @@
7
7
 
8
8
  import "../../globals/settings.js";
9
9
  import { carbonElement } from "../../globals/decorators/carbon-element.js";
10
- import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.126.0/helpers/decorate.js";
10
+ import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.135.0/helpers/esm/decorate.js";
11
11
  import { MenuContext } from "./menu-context.js";
12
12
  import menu_item_default from "./menu-item.scss.js";
13
13
  import { LitElement, html } from "lit";
14
- import { property } from "lit/decorators.js";
14
+ import { property, query } from "lit/decorators.js";
15
15
  import { consume } from "@lit/context";
16
16
  //#region src/components/menu/menu-item-selectable.ts
17
17
  /**
@@ -60,8 +60,7 @@ let CDSmenuItemSelectable = class CDSmenuItemSelectable extends LitElement {
60
60
  this.addEventListener("keydown", this._handleKeydown);
61
61
  }
62
62
  firstUpdated() {
63
- const menuItemSelectable = this.shadowRoot?.querySelector(`cds-menu-item`);
64
- if (menuItemSelectable) menuItemSelectable.addEventListener("keydown", this._handleKeydown);
63
+ if (this._menuItem) this._menuItem.addEventListener("keydown", this._handleKeydown);
65
64
  this.context.updateFromChild({ hasSelectableItems: true });
66
65
  }
67
66
  render() {
@@ -83,6 +82,7 @@ let CDSmenuItemSelectable = class CDSmenuItemSelectable extends LitElement {
83
82
  }
84
83
  };
85
84
  __decorate([consume({ context: MenuContext })], CDSmenuItemSelectable.prototype, "context", void 0);
85
+ __decorate([query(`cds-menu-item`)], CDSmenuItemSelectable.prototype, "_menuItem", void 0);
86
86
  __decorate([property({ type: String })], CDSmenuItemSelectable.prototype, "label", void 0);
87
87
  __decorate([property({ type: Boolean })], CDSmenuItemSelectable.prototype, "selected", void 0);
88
88
  __decorate([property()], CDSmenuItemSelectable.prototype, "renderIcon", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"menu-item-selectable.js","names":["styles","customElement"],"sources":["../../../src/components/menu/menu-item-selectable.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './menu-item.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { consume } from '@lit/context';\nimport { MenuContext } from './menu-context';\n/**\n * Menu Item Selectable.\n *\n * @element cds-menu-item-selectable\n */\n@customElement(`${prefix}-menu-item-selectable`)\nclass CDSmenuItemSelectable extends LitElement {\n @consume({ context: MenuContext })\n context;\n /**\n * Label for the menu item selectable.\n */\n @property({ type: String })\n label;\n /**\n * Whether the menu item is selected or not.\n */\n @property({ type: Boolean })\n selected = false;\n\n /**\n * The name of the custom event fired when the selection state changes.\n */\n static get eventOnChange() {\n return `${prefix}-item-changed`;\n }\n\n /**\n * Automatically forwards focus to the first focusable element inside the shadow root (helps with focus styles when wrapped in menu-item-group)\n */\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /**\n * Sets the menu item's icon.\n */\n @property()\n renderIcon?: () => void;\n\n @property()\n shortcut;\n\n _handleClick = (e) => {\n this.selected = !this.selected;\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy: e.target,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSmenuItemSelectable).eventOnChange,\n init\n )\n )\n ) {\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSmenuItemSelectable).eventOnChange,\n init\n )\n );\n }\n };\n\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('keydown', this._handleKeydown);\n }\n\n firstUpdated() {\n const menuItemSelectable = this.shadowRoot?.querySelector(\n `${prefix}-menu-item`\n ) as HTMLElement | null;\n if (menuItemSelectable) {\n menuItemSelectable.addEventListener('keydown', this._handleKeydown);\n }\n\n this.context.updateFromChild({ hasSelectableItems: true });\n }\n\n _handleKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n this._handleClick(e);\n }\n };\n\n render() {\n const { label, selected, _handleClick: handleClick } = this;\n\n return html`\n <cds-menu-item\n label=\"${label}\"\n class=\"${prefix}--menu-item-selectable--selected\"\n role=\"menuitemcheckbox\"\n shortcut=${this.shortcut}\n aria-checked=\"${selected}\"\n @click=\"${handleClick}\">\n <slot slot=\"render-icon\" name=\"render-icon\"></slot>\n </cds-menu-item>\n `;\n }\n static styles = styles;\n}\nexport default CDSmenuItemSelectable;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,IAAA,wBAAA,MACM,8BAA8B,WAAW;;;kBAYlC;uBA0BK,MAAM;AACpB,QAAK,WAAW,CAAC,KAAK;GACtB,MAAM,OAAO;IACX,SAAS;IACT,YAAY;IACZ,UAAU;IACV,QAAQ,EACN,aAAa,EAAE,QAChB;IACF;AACD,OACE,KAAK,cACH,IAAI,YACD,KAAK,YAA6C,eACnD,KACD,CACF,CAED,MAAK,cACH,IAAI,YACD,KAAK,YAA6C,eACnD,KACD,CACF;;yBAoBa,MAAqB;AACrC,OAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,IACjC,MAAK,aAAa,EAAE;;;;;;CAlExB,WAAW,gBAAgB;AACzB,SAAO;;;2BAMkB;GACzB,GAAG,WAAW;GACd,gBAAgB;GACjB;;CAsCD,oBAAoB;AAClB,QAAM,mBAAmB;AACzB,OAAK,iBAAiB,WAAW,KAAK,eAAe;;CAGvD,eAAe;EACb,MAAM,qBAAqB,KAAK,YAAY,cAC1C,gBACD;AACD,MAAI,mBACF,oBAAmB,iBAAiB,WAAW,KAAK,eAAe;AAGrE,OAAK,QAAQ,gBAAgB,EAAE,oBAAoB,MAAM,CAAC;;CAS5D,SAAS;EACP,MAAM,EAAE,OAAO,UAAU,cAAc,gBAAgB;AAEvD,SAAO,IAAI;;iBAEE,MAAM;uBACC;;mBAEL,KAAK,SAAS;wBACT,SAAS;kBACf,YAAY;;;;;;gBAKZA;;;YArGf,QAAQ,EAAE,SAAS,aAAa,CAAC,CAAA,EAAA,sBAAA,WAAA,WAAA,KAAA,EAAA;YAKjC,SAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,EAAA,sBAAA,WAAA,SAAA,KAAA,EAAA;YAK1B,SAAS,EAAE,MAAM,SAAS,CAAC,CAAA,EAAA,sBAAA,WAAA,YAAA,KAAA,EAAA;YAqB3B,UAAU,CAAA,EAAA,sBAAA,WAAA,cAAA,KAAA,EAAA;YAGV,UAAU,CAAA,EAAA,sBAAA,WAAA,YAAA,KAAA,EAAA;oCApCZC,cAAc,2BAAiC,CAAA,EAAA,sBAAA;AAyGhD,IAAA,+BAAe"}
1
+ {"version":3,"file":"menu-item-selectable.js","names":["styles","customElement"],"sources":["../../../src/components/menu/menu-item-selectable.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './menu-item.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { consume } from '@lit/context';\nimport { MenuContext } from './menu-context';\n/**\n * Menu Item Selectable.\n *\n * @element cds-menu-item-selectable\n */\n@customElement(`${prefix}-menu-item-selectable`)\nclass CDSmenuItemSelectable extends LitElement {\n @consume({ context: MenuContext })\n context;\n\n /**\n * The menu item element in the shadow DOM.\n */\n @query(`${prefix}-menu-item`)\n private _menuItem?: HTMLElement;\n\n /**\n * Label for the menu item selectable.\n */\n @property({ type: String })\n label;\n /**\n * Whether the menu item is selected or not.\n */\n @property({ type: Boolean })\n selected = false;\n\n /**\n * The name of the custom event fired when the selection state changes.\n */\n static get eventOnChange() {\n return `${prefix}-item-changed`;\n }\n\n /**\n * Automatically forwards focus to the first focusable element inside the shadow root (helps with focus styles when wrapped in menu-item-group)\n */\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /**\n * Sets the menu item's icon.\n */\n @property()\n renderIcon?: () => void;\n\n @property()\n shortcut;\n\n _handleClick = (e) => {\n this.selected = !this.selected;\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy: e.target,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSmenuItemSelectable).eventOnChange,\n init\n )\n )\n ) {\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSmenuItemSelectable).eventOnChange,\n init\n )\n );\n }\n };\n\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('keydown', this._handleKeydown);\n }\n\n firstUpdated() {\n if (this._menuItem) {\n this._menuItem.addEventListener('keydown', this._handleKeydown);\n }\n\n this.context.updateFromChild({ hasSelectableItems: true });\n }\n\n _handleKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n this._handleClick(e);\n }\n };\n\n render() {\n const { label, selected, _handleClick: handleClick } = this;\n\n return html`\n <cds-menu-item\n label=\"${label}\"\n class=\"${prefix}--menu-item-selectable--selected\"\n role=\"menuitemcheckbox\"\n shortcut=${this.shortcut}\n aria-checked=\"${selected}\"\n @click=\"${handleClick}\">\n <slot slot=\"render-icon\" name=\"render-icon\"></slot>\n </cds-menu-item>\n `;\n }\n static styles = styles;\n}\nexport default CDSmenuItemSelectable;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,IAAA,wBAAA,MACM,8BAA8B,WAAW;;;kBAmBlC;uBA0BK,MAAM;GACpB,KAAK,WAAW,CAAC,KAAK;GACtB,MAAM,OAAO;IACX,SAAS;IACT,YAAY;IACZ,UAAU;IACV,QAAQ,EACN,aAAa,EAAE,OACjB;GACF;GACA,IACE,KAAK,cACH,IAAI,YACD,KAAK,YAA6C,eACnD,IACF,CACF,GAEA,KAAK,cACH,IAAI,YACD,KAAK,YAA6C,eACnD,IACF,CACF;EAEJ;yBAekB,MAAqB;GACrC,IAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,KACjC,KAAK,aAAa,CAAC;EAEvB;;;;;CAjEA,WAAW,gBAAgB;EACzB,OAAO;CACT;;2BAK2B;GACzB,GAAG,WAAW;GACd,gBAAgB;EAClB;;CAsCA,oBAAoB;EAClB,MAAM,kBAAkB;EACxB,KAAK,iBAAiB,WAAW,KAAK,cAAc;CACtD;CAEA,eAAe;EACb,IAAI,KAAK,WACP,KAAK,UAAU,iBAAiB,WAAW,KAAK,cAAc;EAGhE,KAAK,QAAQ,gBAAgB,EAAE,oBAAoB,KAAK,CAAC;CAC3D;CAQA,SAAS;EACP,MAAM,EAAE,OAAO,UAAU,cAAc,gBAAgB;EAEvD,OAAO,IAAI;;iBAEE,MAAM;uBACC;;mBAEL,KAAK,SAAS;wBACT,SAAS;kBACf,YAAY;;;;CAI5B;;gBACgBA;;AAClB;YA1GG,QAAQ,EAAE,SAAS,YAAY,CAAC,CAAA,GAAA,sBAAA,WAAA,WAAA,KAAA,CAAA;YAMhC,MAAM,eAAqB,CAAA,GAAA,sBAAA,WAAA,aAAA,KAAA,CAAA;YAM3B,SAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,sBAAA,WAAA,SAAA,KAAA,CAAA;YAKzB,SAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,GAAA,sBAAA,WAAA,YAAA,KAAA,CAAA;YAqB1B,SAAS,CAAA,GAAA,sBAAA,WAAA,cAAA,KAAA,CAAA;YAGT,SAAS,CAAA,GAAA,sBAAA,WAAA,YAAA,KAAA,CAAA;oCA3CXC,cAAc,0BAAgC,CAAA,GAAA,qBAAA;AA6G/C,IAAA,+BAAe"}
@@ -7,7 +7,7 @@
7
7
 
8
8
  import "../../globals/settings.js";
9
9
  import { carbonElement } from "../../globals/decorators/carbon-element.js";
10
- import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.126.0/helpers/decorate.js";
10
+ import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.135.0/helpers/esm/decorate.js";
11
11
  import iconLoader from "../../globals/internal/icon-loader.js";
12
12
  import HostListener from "../../globals/decorators/host-listener.js";
13
13
  import HostListenerMixin from "../../globals/mixins/host-listener.js";
@@ -1 +1 @@
1
- {"version":3,"file":"menu-item.js","names":["styles","customElement"],"sources":["../../../src/components/menu/menu-item.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './menu-item.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { consume } from '@lit/context';\nimport { MenuContext } from './menu-context';\nimport Checkmark16 from '@carbon/icons/es/checkmark/16.js';\nimport CaretLeft16 from '@carbon/icons/es/caret--left/16.js';\nimport CaretRight16 from '@carbon/icons/es/caret--right/16.js';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { MENU_ITEM_KIND, MENU_SIZE } from './defs';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport CDSMenu from './menu';\n\nexport { MENU_ITEM_KIND, MENU_SIZE };\nexport const MENU_CLOSE_ROOT_EVENT = `${prefix}-menu-close-root-request`;\n\n/**\n * Menu Item.\n *\n * @element cds-menu-item\n */\n@customElement(`${prefix}-menu-item`)\nclass CDSmenuItem extends HostListenerMixin(HostListenerMixin(LitElement)) {\n @consume({ context: MenuContext })\n context;\n\n readonly hoverIntentDelay = 150; // in ms\n hoverIntentTimeout;\n\n /**\n * The parent cds-menu element\n */\n private _parentMenu: CDSMenu | null = null;\n\n /**\n * MutationObserver that observes the parent cds-menu element\n */\n private _parentMenuObserver?: MutationObserver;\n\n /**\n * Label for the menu item.\n */\n @property({ type: String })\n label;\n /**\n * Shortcut for the menu item.\n */\n @property({ type: String })\n shortcut;\n /**\n * Disabled property for the menu item.\n */\n @property({ type: Boolean })\n disabled;\n\n /**\n * Specify the message read by screen readers for the danger menu item variant\n */\n @property({ type: String, attribute: 'danger-description' })\n dangerDescription = '';\n\n /**\n * Whether the menu submen for an item is open or not.\n */\n @property({ type: Boolean })\n submenuOpen = false;\n\n @property()\n kind = MENU_ITEM_KIND.DEFAULT;\n /**\n * Menu boundaries.\n */\n @property()\n boundaries: {\n x: number | [number, number];\n y: number | [number, number];\n } = { x: -1, y: -1 };\n\n @property({ attribute: 'aria-checked' })\n ariaChecked: string | null = this.getAttribute('selected') ?? 'false';\n\n /**\n * Entrypoint.\n */\n @state()\n submenuEntry;\n /**\n * Checks if document direction is rtl.\n */\n @state()\n isRtl = false;\n /**\n * Checks if document direction is rtl.\n */\n @state()\n hasSubmenu = false;\n\n async dispatchIconDetect() {\n const hasRenderIcon = !!this.querySelector('[slot=\"render-icon\"]');\n if (hasRenderIcon) {\n await undefined; // this is used to replace setTimeout with 0 time out, which is much fater.\n this.dispatchEvent(\n new CustomEvent('icon-detect', {\n bubbles: true, // Allows event to bubble up the DOM\n composed: true, // Allows event to cross shadow DOM boundary\n })\n );\n }\n }\n\n private _updateAttributes() {\n if (this.disabled && !this.hasSubmenu) {\n this.setAttribute('aria-disabled', this.disabled);\n this.setAttribute('tabindex', '-1');\n } else if (this._parentMenu && !(this._parentMenu as CDSMenu).open) {\n this.removeAttribute('aria-disabled');\n this.setAttribute('tabindex', '-1');\n } else {\n this.removeAttribute('aria-disabled');\n this.setAttribute('tabindex', '0');\n }\n if (this.hasSubmenu) {\n this.setAttribute('aria-haspopup', this.hasSubmenu + '');\n } else {\n this.removeAttribute('aria-haspopup');\n }\n if (this.closest(`${prefix}-menu-item-radio-group`)) {\n this.setAttribute('role', 'menuitemradio');\n this.setAttribute('aria-checked', this.ariaChecked + '');\n } else if (!this.getAttribute('role')) {\n this.setAttribute('role', 'menuitem');\n }\n }\n\n firstUpdated() {\n this.hasSubmenu = !!this.querySelector('[slot=\"submenu\"]');\n\n this.dispatchIconDetect();\n this.isRtl = document.dir === 'rtl';\n this._registerSubMenuItems();\n this._parentMenu = this.closest(`${prefix}-menu`);\n\n this._updateAttributes();\n\n this.addEventListener(`${prefix}-menu-closed`, () => {\n this.focus();\n this._closeSubmenu();\n });\n\n if (this._parentMenu) {\n this._parentMenuObserver = new MutationObserver(() => {\n this._updateAttributes();\n });\n\n this._parentMenuObserver.observe(this._parentMenu, {\n attributes: true,\n attributeFilter: ['open'],\n });\n }\n }\n\n disconnectedCallback() {\n this._parentMenuObserver?.disconnect();\n }\n\n updated(): void {\n if (this.hasSubmenu) {\n this.setAttribute('aria-expanded', this.hasSubmenu + '');\n } else {\n this.removeAttribute('aria-expanded');\n }\n if (this.kind === MENU_ITEM_KIND.DANGER)\n this.classList.toggle(`${prefix}--menu-item--danger`);\n }\n\n @HostListener('click', { capture: true })\n handleClick(event: MouseEvent) {\n this._handleClick(event);\n }\n\n @HostListener('mousedown')\n handleMouseDown(event: MouseEvent) {\n if (this.disabled) {\n event.preventDefault();\n }\n }\n\n @HostListener('mouseenter')\n handleMouseEnter() {\n if (this.hasSubmenu) {\n this._handleMouseEnter();\n }\n }\n\n @HostListener('mouseleave')\n handleMouseLeave() {\n if (this.hasSubmenu) {\n this._handleMouseLeave();\n }\n }\n\n @HostListener('keydown')\n handleKeyDown(event: KeyboardEvent) {\n this._handleKeyDown(event);\n }\n\n render() {\n const {\n label,\n shortcut,\n submenuOpen,\n boundaries,\n isRtl,\n kind,\n dangerDescription,\n } = this;\n\n const isDanger = kind === MENU_ITEM_KIND.DANGER && !this.hasSubmenu;\n const hasDangerDescription = isDanger && Boolean(dangerDescription);\n\n const menuClassName = this.context?.hasSelectableItems\n ? `${prefix}--menu--with-selectable-items`\n : '';\n\n return html`\n <div class=\"${prefix}--menu-item__selection-icon\">\n ${this.ariaChecked === 'true' ? iconLoader(Checkmark16) : undefined}\n </div>\n\n <div class=\"${prefix}--menu-item__icon\">\n <slot name=\"render-icon\"></slot>\n </div>\n <div class=\"${prefix}--menu-item__label\">${label}</div>\n ${hasDangerDescription\n ? html`<span id=\"danger-description\" class=\"${prefix}--visually-hidden\"\n >${dangerDescription}</span\n >`\n : html``}\n ${shortcut && !this.hasSubmenu\n ? html` <div class=\"${prefix}--menu-item__shortcut\">${shortcut}</div> `\n : html``}\n ${this.hasSubmenu\n ? html`\n <div class=\"${prefix}--menu-item__shortcut\">\n ${isRtl ? iconLoader(CaretLeft16) : iconLoader(CaretRight16)}\n </div>\n <cds-menu\n className=${menuClassName}\n size=${this.parentElement?.getAttribute('size') ??\n MENU_SIZE.LARGE}\n ?isChild=\"${this.hasSubmenu}\"\n label=\"${label}\"\n .open=\"${submenuOpen}\"\n .x=\"${boundaries.x}\"\n .y=\"${boundaries.y}\">\n <slot name=\"submenu\"></slot>\n </cds-menu>\n `\n : html``}\n `;\n }\n\n _handleClick = (e: MouseEvent | KeyboardEvent): void => {\n if (this.disabled) {\n return;\n }\n\n if (this.hasSubmenu) {\n this._openSubmenu();\n return;\n }\n\n if (e.type === 'keydown') {\n this.click();\n return;\n }\n\n this.dispatchEvent(\n new CustomEvent(MENU_CLOSE_ROOT_EVENT, {\n bubbles: true,\n composed: true,\n detail: {\n triggerEvent: e,\n },\n })\n );\n };\n _handleMouseEnter = () => {\n this.hoverIntentTimeout = setTimeout(() => {\n this._openSubmenu();\n }, this.hoverIntentDelay);\n };\n _handleMouseLeave = () => {\n if (this.hoverIntentTimeout) {\n clearTimeout(this.hoverIntentTimeout);\n this._closeSubmenu();\n this.focus();\n }\n };\n _openSubmenu = () => {\n const { x, y, width, height } = this.getBoundingClientRect();\n if (this.isRtl) {\n this.boundaries = {\n x: [-x, x - width],\n y: [y, y + height],\n };\n } else {\n this.boundaries = {\n x: [x, x + width],\n y: [y, y + height],\n };\n }\n this.submenuOpen = true;\n };\n _registerSubMenuItems = () => {\n const observer = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === 'childList') {\n const submenuSlot = this.shadowRoot?.querySelector(\n 'slot[name=\"submenu\"]'\n ) as HTMLSlotElement;\n\n const item = submenuSlot?.assignedElements?.()?.[0];\n if (item) {\n switch (item.tagName) {\n case 'CDS-MENU-ITEM-RADIO-GROUP':\n this.submenuEntry = item.querySelector(`${prefix}-menu-item`);\n break;\n case 'CDS-MENU-ITEM-GROUP': {\n const slotElements = item.shadowRoot\n ?.querySelector('slot')\n ?.assignedElements();\n const firstElement = slotElements?.length && slotElements[0];\n this.submenuEntry = firstElement;\n break;\n }\n case 'CDS-MENU-ITEM':\n this.submenuEntry = item;\n break;\n }\n }\n }\n }\n });\n observer.observe(this.shadowRoot as Node, {\n childList: true,\n subtree: true,\n });\n };\n _closeSubmenu = () => {\n this.boundaries = {\n x: -1,\n y: -1,\n };\n this.submenuOpen = false;\n (\n this.shadowRoot?.querySelector(`.${prefix}--menu-item`) as HTMLLIElement\n )?.focus();\n };\n _handleKeyDown = (e: KeyboardEvent) => {\n if (this.hasSubmenu && ['ArrowRight', 'Enter', ' '].includes(e.key)) {\n this._openSubmenu();\n setTimeout(() => {\n this.submenuEntry.focus();\n });\n e.stopPropagation();\n } else if (e.key === 'Enter' || e.key === ' ') {\n this._handleClick(e);\n }\n };\n\n static styles = styles;\n}\nexport default CDSmenuItem;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,MAAa,wBAAwB;;;;;;AAOrC,IAAA,cAAA,MACM,oBAAoB,kBAAkB,kBAAkB,WAAW,CAAC,CAAC;;;0BAI7C;qBAMU;2BA2BlB;qBAMN;;oBAWV;GAAE,GAAG;GAAI,GAAG;GAAI;qBAGS,KAAK,aAAa,WAAW,IAAI;eAWtD;oBAKK;uBAuKG,MAAwC;AACtD,OAAI,KAAK,SACP;AAGF,OAAI,KAAK,YAAY;AACnB,SAAK,cAAc;AACnB;;AAGF,OAAI,EAAE,SAAS,WAAW;AACxB,SAAK,OAAO;AACZ;;AAGF,QAAK,cACH,IAAI,YAAY,uBAAuB;IACrC,SAAS;IACT,UAAU;IACV,QAAQ,EACN,cAAc,GACf;IACF,CAAC,CACH;;iCAEuB;AACxB,QAAK,qBAAqB,iBAAiB;AACzC,SAAK,cAAc;MAClB,KAAK,iBAAiB;;iCAED;AACxB,OAAI,KAAK,oBAAoB;AAC3B,iBAAa,KAAK,mBAAmB;AACrC,SAAK,eAAe;AACpB,SAAK,OAAO;;;4BAGK;GACnB,MAAM,EAAE,GAAG,GAAG,OAAO,WAAW,KAAK,uBAAuB;AAC5D,OAAI,KAAK,MACP,MAAK,aAAa;IAChB,GAAG,CAAC,CAAC,GAAG,IAAI,MAAM;IAClB,GAAG,CAAC,GAAG,IAAI,OAAO;IACnB;OAED,MAAK,aAAa;IAChB,GAAG,CAAC,GAAG,IAAI,MAAM;IACjB,GAAG,CAAC,GAAG,IAAI,OAAO;IACnB;AAEH,QAAK,cAAc;;qCAES;AACX,OAAI,kBAAkB,kBAAkB;AACvD,SAAK,MAAM,YAAY,cACrB,KAAI,SAAS,SAAS,aAAa;KAKjC,MAAM,QAJc,KAAK,YAAY,cACnC,yBACD,GAEyB,oBAAoB,GAAG;AACjD,SAAI,KACF,SAAQ,KAAK,SAAb;MACE,KAAK;AACH,YAAK,eAAe,KAAK,cAAc,gBAAsB;AAC7D;MACF,KAAK,uBAAuB;OAC1B,MAAM,eAAe,KAAK,YACtB,cAAc,OAAO,EACrB,kBAAkB;OACtB,MAAM,eAAe,cAAc,UAAU,aAAa;AAC1D,YAAK,eAAe;AACpB;;MAEF,KAAK;AACH,YAAK,eAAe;AACpB;;;KAKV,CACO,QAAQ,KAAK,YAAoB;IACxC,WAAW;IACX,SAAS;IACV,CAAC;;6BAEkB;AACpB,QAAK,aAAa;IAChB,GAAG;IACH,GAAG;IACJ;AACD,QAAK,cAAc;AACnB,IACE,KAAK,YAAY,cAAc,kBAAwB,GACtD,OAAO;;yBAEM,MAAqB;AACrC,OAAI,KAAK,cAAc;IAAC;IAAc;IAAS;IAAI,CAAC,SAAS,EAAE,IAAI,EAAE;AACnE,SAAK,cAAc;AACnB,qBAAiB;AACf,UAAK,aAAa,OAAO;MACzB;AACF,MAAE,iBAAiB;cACV,EAAE,QAAQ,WAAW,EAAE,QAAQ,IACxC,MAAK,aAAa,EAAE;;;CA9QxB,MAAM,qBAAqB;AAEzB,MADsB,CAAC,CAAC,KAAK,cAAc,yBAAuB,EAC/C;AACjB,SAAM,KAAA;AACN,QAAK,cACH,IAAI,YAAY,eAAe;IAC7B,SAAS;IACT,UAAU;IACX,CAAC,CACH;;;CAIL,oBAA4B;AAC1B,MAAI,KAAK,YAAY,CAAC,KAAK,YAAY;AACrC,QAAK,aAAa,iBAAiB,KAAK,SAAS;AACjD,QAAK,aAAa,YAAY,KAAK;aAC1B,KAAK,eAAe,CAAE,KAAK,YAAwB,MAAM;AAClE,QAAK,gBAAgB,gBAAgB;AACrC,QAAK,aAAa,YAAY,KAAK;SAC9B;AACL,QAAK,gBAAgB,gBAAgB;AACrC,QAAK,aAAa,YAAY,IAAI;;AAEpC,MAAI,KAAK,WACP,MAAK,aAAa,iBAAiB,KAAK,aAAa,GAAG;MAExD,MAAK,gBAAgB,gBAAgB;AAEvC,MAAI,KAAK,QAAQ,4BAAkC,EAAE;AACnD,QAAK,aAAa,QAAQ,gBAAgB;AAC1C,QAAK,aAAa,gBAAgB,KAAK,cAAc,GAAG;aAC/C,CAAC,KAAK,aAAa,OAAO,CACnC,MAAK,aAAa,QAAQ,WAAW;;CAIzC,eAAe;AACb,OAAK,aAAa,CAAC,CAAC,KAAK,cAAc,qBAAmB;AAE1D,OAAK,oBAAoB;AACzB,OAAK,QAAQ,SAAS,QAAQ;AAC9B,OAAK,uBAAuB;AAC5B,OAAK,cAAc,KAAK,QAAQ,WAAiB;AAEjD,OAAK,mBAAmB;AAExB,OAAK,iBAAiB,yBAA+B;AACnD,QAAK,OAAO;AACZ,QAAK,eAAe;IACpB;AAEF,MAAI,KAAK,aAAa;AACpB,QAAK,sBAAsB,IAAI,uBAAuB;AACpD,SAAK,mBAAmB;KACxB;AAEF,QAAK,oBAAoB,QAAQ,KAAK,aAAa;IACjD,YAAY;IACZ,iBAAiB,CAAC,OAAO;IAC1B,CAAC;;;CAIN,uBAAuB;AACrB,OAAK,qBAAqB,YAAY;;CAGxC,UAAgB;AACd,MAAI,KAAK,WACP,MAAK,aAAa,iBAAiB,KAAK,aAAa,GAAG;MAExD,MAAK,gBAAgB,gBAAgB;AAEvC,MAAI,KAAK,SAAA,SACP,MAAK,UAAU,OAAO,yBAA+B;;CAGzD,YACY,OAAmB;AAC7B,OAAK,aAAa,MAAM;;CAG1B,gBACgB,OAAmB;AACjC,MAAI,KAAK,SACP,OAAM,gBAAgB;;CAI1B,mBACmB;AACjB,MAAI,KAAK,WACP,MAAK,mBAAmB;;CAI5B,mBACmB;AACjB,MAAI,KAAK,WACP,MAAK,mBAAmB;;CAI5B,cACc,OAAsB;AAClC,OAAK,eAAe,MAAM;;CAG5B,SAAS;EACP,MAAM,EACJ,OACA,UACA,aACA,YACA,OACA,MACA,sBACE;EAGJ,MAAM,uBADW,SAAA,YAAkC,CAAC,KAAK,cAChB,QAAQ,kBAAkB;EAEnE,MAAM,gBAAgB,KAAK,SAAS,qBAChC,qCACA;AAEJ,SAAO,IAAI;0BACY;UACjB,KAAK,gBAAgB,SAAS,WAAW,YAAY,GAAG,KAAA,EAAU;;;0BAGjD;;;0BAGA,sBAAsB,MAAM;QAC/C,uBACE,IAAI,wCAAA,MAA+C;eAC9C,kBAAkB;eAEvB,IAAI,GAAG;QACT,YAAY,CAAC,KAAK,aAChB,IAAI,gBAAA,MAAuB,yBAAyB,SAAS,WAC7D,IAAI,GAAG;QACT,KAAK,aACH,IAAI;gCACmB;gBACjB,QAAQ,WAAW,YAAY,GAAG,WAAW,aAAa,CAAC;;;0BAGjD,cAAc;qBACnB,KAAK,eAAe,aAAa,OAAO,IAAA,KAC/B;0BACJ,KAAK,WAAW;uBACnB,MAAM;uBACN,YAAY;oBACf,WAAW,EAAE;oBACb,WAAW,EAAE;;;cAIvB,IAAI,GAAG;;;;gBAiHCA;;;YA5Vf,QAAQ,EAAE,SAAS,aAAa,CAAC,CAAA,EAAA,YAAA,WAAA,WAAA,KAAA,EAAA;YAmBjC,SAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,EAAA,YAAA,WAAA,SAAA,KAAA,EAAA;YAK1B,SAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,EAAA,YAAA,WAAA,YAAA,KAAA,EAAA;YAK1B,SAAS,EAAE,MAAM,SAAS,CAAC,CAAA,EAAA,YAAA,WAAA,YAAA,KAAA,EAAA;YAM3B,SAAS;CAAE,MAAM;CAAQ,WAAW;CAAsB,CAAC,CAAA,EAAA,YAAA,WAAA,qBAAA,KAAA,EAAA;YAM3D,SAAS,EAAE,MAAM,SAAS,CAAC,CAAA,EAAA,YAAA,WAAA,eAAA,KAAA,EAAA;YAG3B,UAAU,CAAA,EAAA,YAAA,WAAA,QAAA,KAAA,EAAA;YAKV,UAAU,CAAA,EAAA,YAAA,WAAA,cAAA,KAAA,EAAA;YAMV,SAAS,EAAE,WAAW,gBAAgB,CAAC,CAAA,EAAA,YAAA,WAAA,eAAA,KAAA,EAAA;YAMvC,OAAO,CAAA,EAAA,YAAA,WAAA,gBAAA,KAAA,EAAA;YAKP,OAAO,CAAA,EAAA,YAAA,WAAA,SAAA,KAAA,EAAA;YAKP,OAAO,CAAA,EAAA,YAAA,WAAA,cAAA,KAAA,EAAA;YAiFP,aAAa,SAAS,EAAE,SAAS,MAAM,CAAC,CAAA,EAAA,YAAA,WAAA,eAAA,KAAA;YAKxC,aAAa,YAAY,CAAA,EAAA,YAAA,WAAA,mBAAA,KAAA;YAOzB,aAAa,aAAa,CAAA,EAAA,YAAA,WAAA,oBAAA,KAAA;YAO1B,aAAa,aAAa,CAAA,EAAA,YAAA,WAAA,oBAAA,KAAA;YAO1B,aAAa,UAAU,CAAA,EAAA,YAAA,WAAA,iBAAA,KAAA;0BApLzBC,cAAc,gBAAsB,CAAA,EAAA,YAAA;AAgWrC,IAAA,oBAAe"}
1
+ {"version":3,"file":"menu-item.js","names":["styles","customElement"],"sources":["../../../src/components/menu/menu-item.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './menu-item.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { consume } from '@lit/context';\nimport { MenuContext } from './menu-context';\nimport Checkmark16 from '@carbon/icons/es/checkmark/16.js';\nimport CaretLeft16 from '@carbon/icons/es/caret--left/16.js';\nimport CaretRight16 from '@carbon/icons/es/caret--right/16.js';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { MENU_ITEM_KIND, MENU_SIZE } from './defs';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport CDSMenu from './menu';\n\nexport { MENU_ITEM_KIND, MENU_SIZE };\nexport const MENU_CLOSE_ROOT_EVENT = `${prefix}-menu-close-root-request`;\n\n/**\n * Menu Item.\n *\n * @element cds-menu-item\n */\n@customElement(`${prefix}-menu-item`)\nclass CDSmenuItem extends HostListenerMixin(HostListenerMixin(LitElement)) {\n @consume({ context: MenuContext })\n context;\n\n readonly hoverIntentDelay = 150; // in ms\n hoverIntentTimeout;\n\n /**\n * The parent cds-menu element\n */\n private _parentMenu: CDSMenu | null = null;\n\n /**\n * MutationObserver that observes the parent cds-menu element\n */\n private _parentMenuObserver?: MutationObserver;\n\n /**\n * Label for the menu item.\n */\n @property({ type: String })\n label;\n /**\n * Shortcut for the menu item.\n */\n @property({ type: String })\n shortcut;\n /**\n * Disabled property for the menu item.\n */\n @property({ type: Boolean })\n disabled;\n\n /**\n * Specify the message read by screen readers for the danger menu item variant\n */\n @property({ type: String, attribute: 'danger-description' })\n dangerDescription = '';\n\n /**\n * Whether the menu submen for an item is open or not.\n */\n @property({ type: Boolean })\n submenuOpen = false;\n\n @property()\n kind = MENU_ITEM_KIND.DEFAULT;\n /**\n * Menu boundaries.\n */\n @property()\n boundaries: {\n x: number | [number, number];\n y: number | [number, number];\n } = { x: -1, y: -1 };\n\n @property({ attribute: 'aria-checked' })\n ariaChecked: string | null = this.getAttribute('selected') ?? 'false';\n\n /**\n * Entrypoint.\n */\n @state()\n submenuEntry;\n /**\n * Checks if document direction is rtl.\n */\n @state()\n isRtl = false;\n /**\n * Checks if document direction is rtl.\n */\n @state()\n hasSubmenu = false;\n\n async dispatchIconDetect() {\n const hasRenderIcon = !!this.querySelector('[slot=\"render-icon\"]');\n if (hasRenderIcon) {\n await undefined; // this is used to replace setTimeout with 0 time out, which is much fater.\n this.dispatchEvent(\n new CustomEvent('icon-detect', {\n bubbles: true, // Allows event to bubble up the DOM\n composed: true, // Allows event to cross shadow DOM boundary\n })\n );\n }\n }\n\n private _updateAttributes() {\n if (this.disabled && !this.hasSubmenu) {\n this.setAttribute('aria-disabled', this.disabled);\n this.setAttribute('tabindex', '-1');\n } else if (this._parentMenu && !(this._parentMenu as CDSMenu).open) {\n this.removeAttribute('aria-disabled');\n this.setAttribute('tabindex', '-1');\n } else {\n this.removeAttribute('aria-disabled');\n this.setAttribute('tabindex', '0');\n }\n if (this.hasSubmenu) {\n this.setAttribute('aria-haspopup', this.hasSubmenu + '');\n } else {\n this.removeAttribute('aria-haspopup');\n }\n if (this.closest(`${prefix}-menu-item-radio-group`)) {\n this.setAttribute('role', 'menuitemradio');\n this.setAttribute('aria-checked', this.ariaChecked + '');\n } else if (!this.getAttribute('role')) {\n this.setAttribute('role', 'menuitem');\n }\n }\n\n firstUpdated() {\n this.hasSubmenu = !!this.querySelector('[slot=\"submenu\"]');\n\n this.dispatchIconDetect();\n this.isRtl = document.dir === 'rtl';\n this._registerSubMenuItems();\n this._parentMenu = this.closest(`${prefix}-menu`);\n\n this._updateAttributes();\n\n this.addEventListener(`${prefix}-menu-closed`, () => {\n this.focus();\n this._closeSubmenu();\n });\n\n if (this._parentMenu) {\n this._parentMenuObserver = new MutationObserver(() => {\n this._updateAttributes();\n });\n\n this._parentMenuObserver.observe(this._parentMenu, {\n attributes: true,\n attributeFilter: ['open'],\n });\n }\n }\n\n disconnectedCallback() {\n this._parentMenuObserver?.disconnect();\n }\n\n updated(): void {\n if (this.hasSubmenu) {\n this.setAttribute('aria-expanded', this.hasSubmenu + '');\n } else {\n this.removeAttribute('aria-expanded');\n }\n if (this.kind === MENU_ITEM_KIND.DANGER)\n this.classList.toggle(`${prefix}--menu-item--danger`);\n }\n\n @HostListener('click', { capture: true })\n handleClick(event: MouseEvent) {\n this._handleClick(event);\n }\n\n @HostListener('mousedown')\n handleMouseDown(event: MouseEvent) {\n if (this.disabled) {\n event.preventDefault();\n }\n }\n\n @HostListener('mouseenter')\n handleMouseEnter() {\n if (this.hasSubmenu) {\n this._handleMouseEnter();\n }\n }\n\n @HostListener('mouseleave')\n handleMouseLeave() {\n if (this.hasSubmenu) {\n this._handleMouseLeave();\n }\n }\n\n @HostListener('keydown')\n handleKeyDown(event: KeyboardEvent) {\n this._handleKeyDown(event);\n }\n\n render() {\n const {\n label,\n shortcut,\n submenuOpen,\n boundaries,\n isRtl,\n kind,\n dangerDescription,\n } = this;\n\n const isDanger = kind === MENU_ITEM_KIND.DANGER && !this.hasSubmenu;\n const hasDangerDescription = isDanger && Boolean(dangerDescription);\n\n const menuClassName = this.context?.hasSelectableItems\n ? `${prefix}--menu--with-selectable-items`\n : '';\n\n return html`\n <div class=\"${prefix}--menu-item__selection-icon\">\n ${this.ariaChecked === 'true' ? iconLoader(Checkmark16) : undefined}\n </div>\n\n <div class=\"${prefix}--menu-item__icon\">\n <slot name=\"render-icon\"></slot>\n </div>\n <div class=\"${prefix}--menu-item__label\">${label}</div>\n ${hasDangerDescription\n ? html`<span id=\"danger-description\" class=\"${prefix}--visually-hidden\"\n >${dangerDescription}</span\n >`\n : html``}\n ${shortcut && !this.hasSubmenu\n ? html` <div class=\"${prefix}--menu-item__shortcut\">${shortcut}</div> `\n : html``}\n ${this.hasSubmenu\n ? html`\n <div class=\"${prefix}--menu-item__shortcut\">\n ${isRtl ? iconLoader(CaretLeft16) : iconLoader(CaretRight16)}\n </div>\n <cds-menu\n className=${menuClassName}\n size=${this.parentElement?.getAttribute('size') ??\n MENU_SIZE.LARGE}\n ?isChild=\"${this.hasSubmenu}\"\n label=\"${label}\"\n .open=\"${submenuOpen}\"\n .x=\"${boundaries.x}\"\n .y=\"${boundaries.y}\">\n <slot name=\"submenu\"></slot>\n </cds-menu>\n `\n : html``}\n `;\n }\n\n _handleClick = (e: MouseEvent | KeyboardEvent): void => {\n if (this.disabled) {\n return;\n }\n\n if (this.hasSubmenu) {\n this._openSubmenu();\n return;\n }\n\n if (e.type === 'keydown') {\n this.click();\n return;\n }\n\n this.dispatchEvent(\n new CustomEvent(MENU_CLOSE_ROOT_EVENT, {\n bubbles: true,\n composed: true,\n detail: {\n triggerEvent: e,\n },\n })\n );\n };\n _handleMouseEnter = () => {\n this.hoverIntentTimeout = setTimeout(() => {\n this._openSubmenu();\n }, this.hoverIntentDelay);\n };\n _handleMouseLeave = () => {\n if (this.hoverIntentTimeout) {\n clearTimeout(this.hoverIntentTimeout);\n this._closeSubmenu();\n this.focus();\n }\n };\n _openSubmenu = () => {\n const { x, y, width, height } = this.getBoundingClientRect();\n if (this.isRtl) {\n this.boundaries = {\n x: [-x, x - width],\n y: [y, y + height],\n };\n } else {\n this.boundaries = {\n x: [x, x + width],\n y: [y, y + height],\n };\n }\n this.submenuOpen = true;\n };\n _registerSubMenuItems = () => {\n const observer = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === 'childList') {\n const submenuSlot = this.shadowRoot?.querySelector(\n 'slot[name=\"submenu\"]'\n ) as HTMLSlotElement;\n\n const item = submenuSlot?.assignedElements?.()?.[0];\n if (item) {\n switch (item.tagName) {\n case 'CDS-MENU-ITEM-RADIO-GROUP':\n this.submenuEntry = item.querySelector(`${prefix}-menu-item`);\n break;\n case 'CDS-MENU-ITEM-GROUP': {\n const slotElements = item.shadowRoot\n ?.querySelector('slot')\n ?.assignedElements();\n const firstElement = slotElements?.length && slotElements[0];\n this.submenuEntry = firstElement;\n break;\n }\n case 'CDS-MENU-ITEM':\n this.submenuEntry = item;\n break;\n }\n }\n }\n }\n });\n observer.observe(this.shadowRoot as Node, {\n childList: true,\n subtree: true,\n });\n };\n _closeSubmenu = () => {\n this.boundaries = {\n x: -1,\n y: -1,\n };\n this.submenuOpen = false;\n (\n this.shadowRoot?.querySelector(`.${prefix}--menu-item`) as HTMLLIElement\n )?.focus();\n };\n _handleKeyDown = (e: KeyboardEvent) => {\n if (this.hasSubmenu && ['ArrowRight', 'Enter', ' '].includes(e.key)) {\n this._openSubmenu();\n setTimeout(() => {\n this.submenuEntry.focus();\n });\n e.stopPropagation();\n } else if (e.key === 'Enter' || e.key === ' ') {\n this._handleClick(e);\n }\n };\n\n static styles = styles;\n}\nexport default CDSmenuItem;\n"],"mappings":"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"}
@@ -41,6 +41,14 @@ declare class CDSMenu extends CDSMenu_base {
41
41
  size: "xs" | "sm" | "md" | "lg" | null;
42
42
  };
43
43
  readonly spacing: number;
44
+ /**
45
+ * The menu element in the shadow DOM.
46
+ */
47
+ private _menuElement?;
48
+ /**
49
+ * The default slot element in the shadow DOM.
50
+ */
51
+ private _slotElement?;
44
52
  /**
45
53
  * Items.
46
54
  */
@@ -74,19 +82,19 @@ declare class CDSMenu extends CDSMenu_base {
74
82
  */
75
83
  direction: string;
76
84
  /**
77
- * Open value for the menu .
85
+ * Open value for the menu.
78
86
  */
79
87
  open: boolean;
80
88
  /**
81
- * Active element in the DOM .
89
+ * Active element in the DOM.
82
90
  */
83
91
  focusreturn: any;
84
92
  /**
85
- * Position of the Menu .
93
+ * Position of the Menu.
86
94
  */
87
95
  position: number[];
88
96
  /**
89
- * Size attribute .
97
+ * Size attribute.
90
98
  */
91
99
  size: MENU_SIZE;
92
100
  /**
@@ -108,11 +116,11 @@ declare class CDSMenu extends CDSMenu_base {
108
116
  */
109
117
  menuAlignment: any;
110
118
  /**
111
- * Position of the Menu in X axis .
119
+ * Position of the Menu in X axis.
112
120
  */
113
121
  x: number | number[];
114
122
  /**
115
- * Position of the Menu in Y axis .
123
+ * Position of the Menu in Y axis.
116
124
  */
117
125
  y: number | number[];
118
126
  private _handleBlur;
@@ -1 +1 @@
1
- {"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../../src/components/menu/menu.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAQvC,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,WAAsC,MAAM,aAAa,CAAC;AAEjE,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,CAAC;AAErB;;;;;GAKG;AAEH,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;CAC5B,CAAC;;;;;;;;;;uBAdmD,CAAC;;;;;AAgBtD,cACM,OAAQ,SAAQ,YAA6B;IAGjD,OAAO;uCAE0B,iBAAiB;;;;MAMhD;IAEF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAK;IAE7B;;OAEG;IAEH,KAAK,EAAE,OAAO,EAAE,GAAG,SAAS,CAAM;IAElC;;OAEG;IAEH,WAAW,EAAE,cAAc,EAAE,CAAM;IAEnC;;OAEG;IAEH,KAAK,MAAC;IACN;;OAEG;IAEH,OAAO,UAAS;IAChB;;OAEG;IAEH,iBAAiB,MAAC;IAClB;;OAEG;IAEH,KAAK,UAAS;IACd;;OAEG;IAEH,MAAM,UAAQ;IAEd;;OAEG;IAEH,SAAS,SAAS;IAClB;;OAEG;IAEH,IAAI,UAAQ;IACZ;;OAEG;IAEH,WAAW,MAAC;IACZ;;OAEG;IAEH,QAAQ,WAAY;IACpB;;OAEG;IAEH,IAAI,YAAmB;IACvB;;;;OAIG;IAEH,IAAI,MAAC;IAEL;;OAEG;IAEH,eAAe,wBAA+B;IAE9C;;OAEG;IAEH,MAAM,UAAS;IAEf;;OAEG;IAEH,aAAa,MAAC;IACd;;OAEG;IAEH,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAK;IACzB;;OAEG;IAEH,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAK;IAKzB,OAAO,CAAC,WAAW,CASjB;IAEF;;OAEG;IACH,MAAM,KAAK,YAAY,WAEtB;IACD;;OAEG;IACH,MAAM,KAAK,WAAW,WAErB;IACD,OAAO,CAAC,iBAAiB,KAAA;IASzB,iBAAiB;IAajB,oBAAoB;IAOd,YAAY;IAiBlB,MAAM;IAiCN,cAAc,GAAI,GAAG,aAAa,UAehC;IAEF,UAAU,GAAI,GAAG,aAAa,GAAG,SAAS,UAsCxC;IACF,8BAA8B,GAAI,eAAU,SAY1C;IAEF,SAAS,GAAI,OAAO,MAAM,GAAG,IAAI,GAAG,SAAS,qBAE3C;IACF,SAAS,GAAI,OAAO,MAAM,EAAE,EAAE,MAAM,GAAG,GAAG,GAAG,YAiF3C;IACF,YAAY,GAAI,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,0BAYvD;IACF,kBAAkB,iBAahB;IACF,WAAW,sBA8BT;IACF,kBAAkB,GAAI,IAAI,KAAK,UAmB7B;IACF,OAAO,CAAC,YAAY,CAKlB;IACF,OAAO,CAAC,uBAAuB,CAQ7B;IACF,iBAAiB,aAMf;IACF,kBAAkB,aAgBhB;IACF,eAAe,aAqDb;IACF,MAAM,CAAC,MAAM,MAAU;CACxB;AACD,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../../src/components/menu/menu.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAQvC,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,WAAsC,MAAM,aAAa,CAAC;AAEjE,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,CAAC;AAErB;;;;;GAKG;AAEH,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;CAC5B,CAAC;;;;;;;;;;uBAd4C,CAAC;;;;;AAgB/C,cACM,OAAQ,SAAQ,YAA6B;IAGjD,OAAO;uCAE0B,iBAAiB;;;;MAMhD;IAEF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAK;IAE7B;;OAEG;IAEH,OAAO,CAAC,YAAY,CAAC,CAAc;IAEnC;;OAEG;IAEH,OAAO,CAAC,YAAY,CAAC,CAAkB;IAEvC;;OAEG;IAEH,KAAK,EAAE,OAAO,EAAE,GAAG,SAAS,CAAM;IAElC;;OAEG;IAEH,WAAW,EAAE,cAAc,EAAE,CAAM;IAEnC;;OAEG;IAEH,KAAK,MAAC;IACN;;OAEG;IAEH,OAAO,UAAS;IAChB;;OAEG;IAEH,iBAAiB,MAAC;IAClB;;OAEG;IAEH,KAAK,UAAS;IACd;;OAEG;IAEH,MAAM,UAAQ;IAEd;;OAEG;IAEH,SAAS,SAAS;IAClB;;OAEG;IAEH,IAAI,UAAS;IACb;;OAEG;IAEH,WAAW,MAAC;IACZ;;OAEG;IAEH,QAAQ,WAAY;IACpB;;OAEG;IAEH,IAAI,YAAmB;IACvB;;;;OAIG;IAEH,IAAI,MAAC;IAEL;;OAEG;IAEH,eAAe,wBAA+B;IAE9C;;OAEG;IAEH,MAAM,UAAS;IAEf;;OAEG;IAEH,aAAa,MAAC;IACd;;OAEG;IAEH,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAK;IACzB;;OAEG;IAEH,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAK;IAKzB,OAAO,CAAC,WAAW,CASjB;IAEF;;OAEG;IACH,MAAM,KAAK,YAAY,WAEtB;IACD;;OAEG;IACH,MAAM,KAAK,WAAW,WAErB;IACD,OAAO,CAAC,iBAAiB,KAAA;IASzB,iBAAiB;IAWjB,oBAAoB;IAOd,YAAY;IAgBlB,MAAM;IAiCN,cAAc,GAAI,GAAG,aAAa,UAehC;IAEF,UAAU,GAAI,GAAG,aAAa,GAAG,SAAS,UAsCxC;IACF,8BAA8B,GAAI,eAAU,SAY1C;IAEF,SAAS,GAAI,OAAO,MAAM,GAAG,IAAI,GAAG,SAAS,qBAE3C;IACF,SAAS,GAAI,OAAO,MAAM,EAAE,EAAE,MAAM,GAAG,GAAG,GAAG,YAkF3C;IACF,YAAY,GAAI,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,0BAYvD;IACF,kBAAkB,iBAahB;IACF,WAAW,sBA8BT;IACF,kBAAkB,GAAI,IAAI,KAAK,UAmB7B;IACF,OAAO,CAAC,YAAY,CAKlB;IACF,OAAO,CAAC,uBAAuB,CAQ7B;IACF,iBAAiB,aAMf;IACF,kBAAkB,aAgBhB;IACF,eAAe,aAqDb;IACF,MAAM,CAAC,MAAM,MAAU;CACxB;AACD,eAAe,OAAO,CAAC"}
@@ -7,7 +7,7 @@
7
7
 
8
8
  import "../../globals/settings.js";
9
9
  import { carbonElement } from "../../globals/decorators/carbon-element.js";
10
- import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.126.0/helpers/decorate.js";
10
+ import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.135.0/helpers/esm/decorate.js";
11
11
  import HostListener from "../../globals/decorators/host-listener.js";
12
12
  import HostListenerMixin from "../../globals/mixins/host-listener.js";
13
13
  import menu_default$1 from "./menu.scss.js";
@@ -15,7 +15,7 @@ import { MenuContext, menuDefaultState } from "./menu-context.js";
15
15
  import { MENU_SIZE } from "./defs.js";
16
16
  import { MENU_CLOSE_ROOT_EVENT } from "./menu-item.js";
17
17
  import { LitElement, html } from "lit";
18
- import { property, state } from "lit/decorators.js";
18
+ import { property, query, state } from "lit/decorators.js";
19
19
  import { classMap } from "lit/directives/class-map.js";
20
20
  import { consume, provide } from "@lit/context";
21
21
  //#region src/components/menu/menu.ts
@@ -44,7 +44,7 @@ let CDSMenu = class CDSMenu extends HostListenerMixin(LitElement) {
44
44
  this.isRtl = false;
45
45
  this.isRoot = true;
46
46
  this.direction = "ltr";
47
- this.open = true;
47
+ this.open = false;
48
48
  this.position = [-1, -1];
49
49
  this.size = "sm";
50
50
  this.backgroundToken = "layer";
@@ -93,7 +93,7 @@ let CDSMenu = class CDSMenu extends HostListenerMixin(LitElement) {
93
93
  };
94
94
  this._fitValue = (range, axis) => {
95
95
  const { isRoot } = this.context;
96
- const { width, height } = (this.shadowRoot?.querySelector(`.cds--menu`) ?? this).getBoundingClientRect();
96
+ const { width, height } = (this._menuElement ?? this).getBoundingClientRect();
97
97
  const alignment = isRoot ? "vertical" : "horizontal";
98
98
  const axes = {
99
99
  x: {
@@ -196,7 +196,7 @@ let CDSMenu = class CDSMenu extends HostListenerMixin(LitElement) {
196
196
  this._registerMenuItems = () => {
197
197
  let items;
198
198
  if (this.isChild) items = this.querySelector("slot[name=\"submenu\"]")?.assignedElements() ?? [];
199
- else items = this.shadowRoot?.querySelector("slot")?.assignedElements() ?? [];
199
+ else items = this._slotElement?.assignedElements() ?? [];
200
200
  this.items = items?.filter((item) => {
201
201
  if (item.tagName === "CDS-MENU-ITEM") return !item.disabled;
202
202
  return item.tagName !== "CDS-MENU-ITEM-DIVIDER";
@@ -264,7 +264,7 @@ let CDSMenu = class CDSMenu extends HostListenerMixin(LitElement) {
264
264
  connectedCallback() {
265
265
  super.connectedCallback();
266
266
  this.addEventListener("icon-detect", () => {
267
- this.shadowRoot?.querySelector(".cds--menu")?.classList.add(`cds--menu--with-icons`);
267
+ this._menuElement?.classList.add(`cds--menu--with-icons`);
268
268
  });
269
269
  this.addEventListener(MENU_CLOSE_ROOT_EVENT, this._handleRootCloseRequest);
270
270
  }
@@ -279,7 +279,7 @@ let CDSMenu = class CDSMenu extends HostListenerMixin(LitElement) {
279
279
  await this.updateComplete;
280
280
  this._registerMenuItems();
281
281
  this._setActiveItems();
282
- (this.shadowRoot?.querySelector("slot"))?.addEventListener("slotchange", () => {
282
+ this._slotElement?.addEventListener("slotchange", () => {
283
283
  this._registerMenuItems();
284
284
  this._setActiveItems();
285
285
  });
@@ -311,6 +311,8 @@ let CDSMenu = class CDSMenu extends HostListenerMixin(LitElement) {
311
311
  }
312
312
  };
313
313
  __decorate([provide({ context: MenuContext }), consume({ context: MenuContext })], CDSMenu.prototype, "context", void 0);
314
+ __decorate([query(`.cds--menu`)], CDSMenu.prototype, "_menuElement", void 0);
315
+ __decorate([query("slot")], CDSMenu.prototype, "_slotElement", void 0);
314
316
  __decorate([state()], CDSMenu.prototype, "items", void 0);
315
317
  __decorate([state()], CDSMenu.prototype, "activeitems", void 0);
316
318
  __decorate([property({ type: String })], CDSMenu.prototype, "label", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"menu.js","names":["styles","customElement"],"sources":["../../../src/components/menu/menu.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2024, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { prefix } from '../../globals/settings';\nimport { property, state } from 'lit/decorators.js';\nimport styles from './menu.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { classMap } from 'lit/directives/class-map.js';\nimport {\n MenuContext,\n menuDefaultState,\n type MenuContextUpdate,\n} from './menu-context';\nimport CDSmenuItem, { MENU_CLOSE_ROOT_EVENT } from './menu-item';\nimport { consume, provide } from '@lit/context';\nimport { MENU_BACKGROUND_TOKEN, MENU_SIZE } from './defs';\n\nexport { MENU_SIZE };\n\n/**\n * Menu.\n *\n * @element cds-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"],"mappings":"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"}
1
+ {"version":3,"file":"menu.js","names":["styles","customElement"],"sources":["../../../src/components/menu/menu.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2024, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { prefix } from '../../globals/settings';\nimport { property, state, query } from 'lit/decorators.js';\nimport styles from './menu.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { classMap } from 'lit/directives/class-map.js';\nimport {\n MenuContext,\n menuDefaultState,\n type MenuContextUpdate,\n} from './menu-context';\nimport CDSmenuItem, { MENU_CLOSE_ROOT_EVENT } from './menu-item';\nimport { consume, provide } from '@lit/context';\nimport { MENU_BACKGROUND_TOKEN, MENU_SIZE } from './defs';\n\nexport { MENU_SIZE };\n\n/**\n * Menu.\n *\n * @element cds-menu\n * @deprecated Menus now always support both icons as well as selectable items and nesting.\n */\n\ntype activeItemType = {\n item: CDSmenuItem;\n parent: HTMLElement | null;\n};\n\n@customElement(`${prefix}-menu`)\nclass CDSMenu extends HostListenerMixin(LitElement) {\n @provide({ context: MenuContext })\n @consume({ context: MenuContext })\n context = {\n ...menuDefaultState,\n updateFromChild: (updatedItem: MenuContextUpdate) => {\n this.context = {\n ...this.context,\n ...updatedItem,\n };\n },\n };\n\n readonly spacing: number = 8; // distance to keep to window edges, in px\n\n /**\n * The menu element in the shadow DOM.\n */\n @query(`.${prefix}--menu`)\n private _menuElement?: HTMLElement;\n\n /**\n * The default slot element in the shadow DOM.\n */\n @query('slot')\n private _slotElement?: HTMLSlotElement;\n\n /**\n * Items.\n */\n @state()\n items: Element[] | undefined = [];\n\n /**\n * Active list Items.\n */\n @state()\n activeitems: activeItemType[] = [];\n\n /**\n * Label for the menu.\n */\n @property({ type: String })\n label;\n /**\n * Parent state.\n */\n @property({ type: Boolean })\n isChild = false;\n /**\n * Action button width.\n */\n @property()\n actionButtonWidth;\n /**\n * Checks if document direction is rtl.\n */\n @property({ type: Boolean })\n isRtl = false;\n /**\n * Checks if Menu is root menu or not.\n */\n @property({ type: Boolean })\n isRoot = true;\n\n /**\n * Document direction.\n */\n @property({ type: String })\n direction = 'ltr';\n /**\n * Open value for the menu.\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n /**\n * Active element in the DOM.\n */\n @property({ type: HTMLElement })\n focusreturn;\n /**\n * Position of the Menu.\n */\n @property()\n position = [-1, -1];\n /**\n * Size attribute.\n */\n @property({ attribute: true })\n size = MENU_SIZE.SMALL;\n /**\n * Deprecated: Menus now always support both icons as well as selectable items and nesting. The mode of this menu. Defaults to full. full supports nesting and selectable menu items, but no icons. basic supports icons but no nesting or selectable menu items.\n\n This prop is not intended for use and will be set by the respective implementation (like useContextMenu, MenuButton, and ComboButton).\n */\n @property()\n mode;\n\n /**\n * Specify the background token to use. Default is 'layer'.\n */\n @property({ type: String, attribute: 'background-token' })\n backgroundToken = MENU_BACKGROUND_TOKEN.LAYER;\n\n /**\n * Specify whether a border should be rendered on the menu\n */\n @property({ type: Boolean })\n border = false;\n\n /**\n * Specify how the menu should align with the button element\n */\n @property({ type: String })\n menuAlignment;\n /**\n * Position of the Menu in X axis.\n */\n @property()\n x: number | number[] = 0;\n /**\n * Position of the Menu in Y axis.\n */\n @property()\n y: number | number[] = 0;\n\n @HostListener('focusout')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleBlur = (e: FocusEvent) => {\n const { isRoot } = this.context;\n // Close the menu if all of the following are met:\n // * The menu is open\n // * The focusout event is on the root menu\n // * Focus is moving outside the menu\n if (this.open && isRoot && !this.contains(e.relatedTarget as Node)) {\n this.dispatchCloseEvent(e);\n }\n };\n\n /**\n * The name of the custom event fired when the the Menu should be closed.\n */\n static get eventOnClose() {\n return `${prefix}-menu-closed`;\n }\n /**\n * The name of the custom event fired when the the Menu should be opened.\n */\n static get eventOnOpen() {\n return `${prefix}-menu-opened`;\n }\n updated(changedProperties) {\n if (changedProperties.has('open')) {\n if (this.open) {\n this._handleOpen();\n } else {\n this._handleClose();\n }\n }\n }\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('icon-detect', () => {\n this._menuElement?.classList.add(`${prefix}--menu--with-icons`);\n });\n this.addEventListener(\n MENU_CLOSE_ROOT_EVENT,\n this._handleRootCloseRequest as EventListener\n );\n }\n\n disconnectedCallback() {\n this.removeEventListener(\n MENU_CLOSE_ROOT_EVENT,\n this._handleRootCloseRequest as EventListener\n );\n super.disconnectedCallback();\n }\n async firstUpdated() {\n this.isRtl = this.direction === 'rtl';\n this.isRoot = this.context.isRoot;\n\n if (this.isChild) {\n this._newContextCreate();\n }\n await this.updateComplete;\n this._registerMenuItems();\n this._setActiveItems();\n\n this._slotElement?.addEventListener('slotchange', () => {\n this._registerMenuItems();\n this._setActiveItems();\n });\n }\n render() {\n const {\n open,\n menuAlignment,\n label,\n position,\n _handleKeyDown: handleKeyDown,\n } = this;\n const menuClasses = classMap({\n [`${prefix}--menu`]: true,\n [`${prefix}--menu--${this.size}`]: this.size,\n [`${prefix}--menu--box-shadow-top`]:\n menuAlignment && menuAlignment.slice(0, 3) === 'top',\n [`${prefix}--menu--open`]: open,\n [`${prefix}--menu--shown`]: position[0] >= 0 && position[1] >= 0,\n [`${prefix}--menu--with-selectable-items`]:\n this.context.hasSelectableItems,\n [`${prefix}--menu--border`]: this.border,\n [`${prefix}--menu--background-token__background`]:\n this.backgroundToken === MENU_BACKGROUND_TOKEN.BACKGROUND,\n });\n return html`\n <ul\n class=\"${menuClasses}\"\n aria-label=\"${label}\"\n tabindex=\"-1\"\n @keydown=\"${handleKeyDown}\"\n role=\"menu\">\n <slot></slot>\n </ul>\n `;\n }\n\n _handleKeyDown = (e: KeyboardEvent) => {\n const { isRoot } = this.context;\n e.stopPropagation();\n // if the user presses escape or this is a submenu\n // and the user presses ArrowLeft, close it\n\n if (e.key === 'Escape' || (!isRoot && e.key === 'ArrowLeft')) {\n this.dispatchCloseEvent(e);\n } else {\n // Prevent scrolling when navigating menu items\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n e.preventDefault();\n }\n this._focusItem(e);\n }\n };\n\n _focusItem = (e: KeyboardEvent | undefined) => {\n let currentItem: number;\n\n if (document.activeElement?.tagName !== 'CDS-MENU') {\n const shadowRootActiveEl = this._findActiveElementInShadowRoot(document);\n currentItem = this.activeitems.findIndex((activeItem) => {\n return (\n shadowRootActiveEl == activeItem.item ||\n activeItem.item.shadowRoot?.activeElement === shadowRootActiveEl\n );\n });\n } else {\n currentItem = 0;\n }\n\n let indexToFocus = currentItem;\n // if currentItem is -1, no menu item is focused yet.\n // in this case, the first item should receive focus.\n if (currentItem === -1) {\n indexToFocus = 0;\n } else if (e) {\n if (e.key === 'ArrowUp') {\n indexToFocus = indexToFocus - 1;\n }\n if (e.key === 'ArrowDown') {\n indexToFocus = indexToFocus + 1;\n }\n }\n if (indexToFocus < 0) {\n indexToFocus = this.activeitems.length - 1;\n }\n if (indexToFocus >= this.activeitems.length) {\n indexToFocus = 0;\n }\n\n if (indexToFocus !== currentItem) {\n this.activeitems[indexToFocus]?.item?.focus();\n }\n };\n _findActiveElementInShadowRoot = (shadowRoot) => {\n if (shadowRoot === null) return null;\n\n let activeElement = shadowRoot.activeElement;\n while (\n activeElement &&\n activeElement.shadowRoot &&\n activeElement.shadowRoot.activeElement\n ) {\n activeElement = activeElement.shadowRoot.activeElement;\n }\n return activeElement;\n };\n\n _notEmpty = (value: number | null | undefined) => {\n return value !== null && value !== undefined;\n };\n _fitValue = (range: number[], axis: 'x' | 'y') => {\n const { isRoot } = this.context;\n\n // const isRoot = false\n const { width, height } = (\n this._menuElement ?? this\n ).getBoundingClientRect();\n const alignment = isRoot ? 'vertical' : 'horizontal';\n const axes = {\n x: {\n max: window.innerWidth,\n size: width,\n anchor: alignment === 'horizontal' ? range[1] : range[0],\n reversedAnchor: alignment === 'horizontal' ? range[0] : range[1],\n offset: 0,\n },\n y: {\n max: window.innerHeight,\n size: height,\n anchor: alignment === 'horizontal' ? range[0] : range[1],\n reversedAnchor: alignment === 'horizontal' ? range[1] : range[0],\n offset: isRoot ? 0 : 4, // top padding in menu, used to align the menu items\n },\n };\n\n // Avoid that the Menu render incorrectly when the postion is set in the right side of the screen\n if (\n this.actionButtonWidth &&\n this.actionButtonWidth < axes.x.size &&\n (this.menuAlignment === 'bottom' || this.menuAlignment === 'top')\n ) {\n axes.x.size = this.actionButtonWidth;\n }\n\n // if 'axes.x.anchor' is lower than 87px dynamically switch render side\n if (\n this.actionButtonWidth &&\n (this.menuAlignment === 'bottom-end' ||\n this.menuAlignment === 'top-end') &&\n axes.x.anchor >= 87 &&\n this.actionButtonWidth < axes.x.size\n ) {\n const diff = axes.x.anchor + axes.x.reversedAnchor;\n axes.x.anchor = axes.x.anchor + diff;\n }\n\n const { max, size, anchor, reversedAnchor, offset } = axes[axis];\n\n // get values for different scenarios, set to false if they don't work\n const options = [\n // towards max (preferred)\n max - this.spacing - size - anchor >= 0 ? anchor - offset : false,\n\n // towards min / reversed (first fallback)\n reversedAnchor - size >= 0 ? reversedAnchor - size + offset : false,\n\n // align at max (second fallback)\n max - this.spacing - size,\n ];\n const topAlignment =\n this.menuAlignment === 'top' ||\n this.menuAlignment === 'top-end' ||\n this.menuAlignment === 'top-start';\n // If the tooltip is not visible in the top, switch to the bototm\n if (\n typeof options[0] === 'number' &&\n topAlignment &&\n options[0] >= 0 &&\n !options[1] &&\n axis === 'y'\n ) {\n this.style.transform = 'translate(0)';\n } else if (topAlignment && !options[0] && axis === 'y') {\n options[0] = anchor - offset;\n }\n\n // Previous array `options`, has at least one item that is a number (the last one - second fallback).\n // That guarantees that the return of `find()` will always be a number\n // and we can safely add the numeric casting `as number`.\n const bestOption = options.find((option) => option !== false) as number;\n\n return bestOption >= this.spacing ? bestOption : this.spacing;\n };\n _getPosition = (x: number | (number | null | undefined)[]) => {\n if (Array.isArray(x)) {\n // has to be of length 2\n const filtered = x.filter(this._notEmpty);\n if (filtered.length === 2) {\n return filtered;\n } else {\n return;\n }\n } else {\n return [x, x];\n }\n };\n _calculatePosition = () => {\n const ranges = {\n x: this._getPosition(this.x),\n y: this._getPosition(this.y),\n };\n\n if (!ranges.x || !ranges.y) {\n return [-1, -1];\n }\n return [\n this._fitValue(ranges.x as number[], 'x') ?? -1,\n this._fitValue(ranges.y as number[], 'y') ?? -1,\n ];\n };\n _handleOpen = async () => {\n const pos = this._calculatePosition();\n if (this.isRtl) {\n this.style.insetInlineStart = `initial`;\n this.style.insetInlineEnd = `${pos[0]}px`;\n } else {\n this.style.insetInlineStart = `${pos[0]}px`;\n this.style.insetInlineEnd = `initial`;\n }\n this.style.insetBlockStart = `${pos[1]}px`;\n this.position = pos;\n\n await this.updateComplete;\n this._registerMenuItems();\n this._setActiveItems();\n\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n };\n if (\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSMenu).eventOnOpen, init)\n )\n ) {\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSMenu).eventOnOpen, init)\n );\n }\n };\n dispatchCloseEvent = (e?: Event) => {\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy: e?.target,\n triggerEventType: e?.type,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSMenu).eventOnClose, init)\n )\n ) {\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSMenu).eventOnClose, init)\n );\n }\n };\n private _handleClose = () => {\n this.position = [-1, -1];\n this.style.removeProperty('inset-inline-start');\n this.style.removeProperty('inset-inline-end');\n this.style.removeProperty('inset-block-start');\n };\n private _handleRootCloseRequest = (\n event: CustomEvent<{ triggerEvent?: Event }>\n ) => {\n if (!this.context?.isRoot) {\n return;\n }\n\n this.dispatchCloseEvent(event.detail?.triggerEvent ?? event);\n };\n _newContextCreate = () => {\n this.context = {\n ...this.context,\n isRoot: false,\n size: this.size,\n };\n };\n _registerMenuItems = () => {\n let items;\n if (this.isChild) {\n const submenuSlot = this.querySelector(\n 'slot[name=\"submenu\"]'\n ) as HTMLSlotElement | null;\n items = submenuSlot?.assignedElements() ?? [];\n } else {\n items = this._slotElement?.assignedElements() ?? [];\n }\n this.items = items?.filter((item) => {\n if (item.tagName === 'CDS-MENU-ITEM') {\n return !(item as CDSmenuItem).disabled;\n }\n return item.tagName !== 'CDS-MENU-ITEM-DIVIDER';\n });\n };\n _setActiveItems = () => {\n this.activeitems = [];\n\n this.items?.map((item) => {\n let activeItem: activeItemType;\n switch (item.tagName) {\n case 'CDS-MENU-ITEM-RADIO-GROUP': {\n const slotElements = item.querySelectorAll(`${prefix}-menu-item`);\n if (slotElements?.length) {\n for (const entry of slotElements.entries()) {\n activeItem = {\n item: entry[1] as CDSmenuItem,\n parent: item as HTMLElement,\n };\n this.activeitems = [...this.activeitems, activeItem];\n }\n }\n break;\n }\n case 'CDS-MENU-ITEM-GROUP': {\n const slotElements = item.shadowRoot\n ?.querySelector('slot')\n ?.assignedElements();\n slotElements?.map((el) => {\n activeItem = {\n item: el as CDSmenuItem,\n parent: el as HTMLElement,\n };\n this.activeitems = [...this.activeitems, activeItem];\n });\n break;\n }\n case 'CDS-MENU-ITEM-SELECTABLE': {\n activeItem = {\n item: item.shadowRoot?.querySelector(\n `${prefix}-menu-item`\n ) as CDSmenuItem,\n parent: item as HTMLElement,\n };\n this.activeitems = [...this.activeitems, activeItem];\n break;\n }\n default: {\n activeItem = {\n item: item as CDSmenuItem,\n parent: null,\n };\n this.activeitems = [...this.activeitems, activeItem];\n }\n }\n });\n const activeEl = this.activeitems[0]?.item ?? document.activeElement;\n activeEl.focus();\n };\n static styles = styles;\n}\nexport default CDSMenu;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"defs.js","names":[],"sources":["../../../src/components/menu-button/defs.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2025, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/**\n * Menu button size.\n */\nexport enum MENU_BUTTON_SIZE {\n /**\n * Extra Small size\n */\n EXTRA_SMALL = 'xs',\n\n /**\n * Small size.\n */\n SMALL = 'sm',\n\n /**\n * Medium size.\n */\n MEDIUM = 'md',\n\n /**\n * Large size.\n */\n LARGE = 'lg',\n}\n/**\n * menu button kind\n */\nexport enum MENU_BUTTON_KIND {\n /**\n * primary kind\n */\n PRIMARY = 'primary',\n /**\n * tertiary kind\n */\n TERTIARY = 'tertiary',\n /**\n * ghost kind\n */\n GHOST = 'ghost',\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAUA,IAAY,mBAAL,yBAAA,kBAAA;;;;AAIL,kBAAA,iBAAA;;;;AAKA,kBAAA,WAAA;;;;AAKA,kBAAA,YAAA;;;;AAKA,kBAAA,WAAA;;KACD;;;;AAID,IAAY,mBAAL,yBAAA,kBAAA;;;;AAIL,kBAAA,aAAA;;;;AAIA,kBAAA,cAAA;;;;AAIA,kBAAA,WAAA;;KACD"}
1
+ {"version":3,"file":"defs.js","names":[],"sources":["../../../src/components/menu-button/defs.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2025, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/**\n * Menu button size.\n */\nexport enum MENU_BUTTON_SIZE {\n /**\n * Extra Small size\n */\n EXTRA_SMALL = 'xs',\n\n /**\n * Small size.\n */\n SMALL = 'sm',\n\n /**\n * Medium size.\n */\n MEDIUM = 'md',\n\n /**\n * Large size.\n */\n LARGE = 'lg',\n}\n/**\n * menu button kind\n */\nexport enum MENU_BUTTON_KIND {\n /**\n * primary kind\n */\n PRIMARY = 'primary',\n /**\n * tertiary kind\n */\n TERTIARY = 'tertiary',\n /**\n * ghost kind\n */\n GHOST = 'ghost',\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAUA,IAAY,mBAAL,yBAAA,kBAAA;;;;CAIL,iBAAA,iBAAA;;;;CAKA,iBAAA,WAAA;;;;CAKA,iBAAA,YAAA;;;;CAKA,iBAAA,WAAA;;AACF,EAAA,CAAA,CAAA;;;;AAIA,IAAY,mBAAL,yBAAA,kBAAA;;;;CAIL,iBAAA,aAAA;;;;CAIA,iBAAA,cAAA;;;;CAIA,iBAAA,WAAA;;AACF,EAAA,CAAA,CAAA"}
@@ -7,7 +7,7 @@
7
7
 
8
8
  import "../../globals/settings.js";
9
9
  import { carbonElement } from "../../globals/decorators/carbon-element.js";
10
- import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.126.0/helpers/decorate.js";
10
+ import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.135.0/helpers/esm/decorate.js";
11
11
  import iconLoader from "../../globals/internal/icon-loader.js";
12
12
  import HostListener from "../../globals/decorators/host-listener.js";
13
13
  import HostListenerMixin from "../../globals/mixins/host-listener.js";
@@ -1 +1 @@
1
- {"version":3,"file":"menu-button.js","names":["FloatingUIController","styles","customElement"],"sources":["../../../src/components/menu-button/menu-button.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2025, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport styles from './menu-button.scss?lit';\nimport '../button/index';\nimport '../menu/index';\nimport ChevronDown16 from '@carbon/icons/es/chevron--down/16.js';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport { POPOVER_ALIGNMENT } from '../popover/defs';\nimport CDSMenu from '../menu/menu';\nimport CDSButton from '../button/button';\nimport { MENU_BUTTON_KIND, MENU_BUTTON_SIZE } from './defs';\nimport { MENU_BACKGROUND_TOKEN } from '../menu/defs';\nimport FloatingUIController from '../../globals/controllers/floating-controller';\n\nexport { MENU_BUTTON_KIND, MENU_BUTTON_SIZE };\n\n/**\n * Menu button.\n * @element cds-menu-button\n */\n@customElement(`${prefix}-menu-button`)\nclass CDSMenuButton extends HostListenerMixin(LitElement) {\n private _menuController = new FloatingUIController(this);\n\n @query(`${prefix}-button`)\n _triggerNode!: CDSButton;\n\n @property({ type: Boolean, reflect: true })\n private _open = false;\n\n /**\n * Specify whether the MenuButton should be disabled, or not.\n */\n @property({ type: Boolean, reflect: true })\n disabled;\n\n /**\n * Specify the type of button to be used as the base for the trigger button.\n */\n @property({ type: MENU_BUTTON_KIND, reflect: true })\n kind = MENU_BUTTON_KIND.PRIMARY;\n\n /**\n * Provide the label to be rendered on the trigger button.\n */ @property({ type: String })\n label;\n\n /**\n * Experimental property. Specify how the menu should align with the button element\n */\n @property({ reflect: true, type: String, attribute: 'menu-alignment' })\n menuAlignment = POPOVER_ALIGNMENT.BOTTOM;\n\n /**\n * Specify whether the menu should have a border.\n */\n @property({ type: Boolean, reflect: true, attribute: 'menu-border' })\n menuBorder = false;\n\n /**\n * Specify the background token to use for the menu. Default is 'layer'.\n */\n @property({ type: String, reflect: true, attribute: 'menu-background-token' })\n menuBackgroundToken = MENU_BACKGROUND_TOKEN.LAYER;\n\n /**\n * Specify the size of the button and menu.\n */\n @property({ type: MENU_BUTTON_SIZE, reflect: true })\n size = MENU_BUTTON_SIZE.LARGE;\n\n /**\n * Specify the tabIndex of the button.\n */\n @property({ type: Number, attribute: 'tab-index', reflect: true })\n tabIndex = 0;\n\n @HostListener('click')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleClick = (event: Event) => {\n const { _triggerNode: trigger } = this;\n if (!trigger) {\n return;\n }\n\n // Handle clicks on trigger only, other listeners handle clicks on menu items\n const path = event.composedPath();\n if (path.includes(trigger)) {\n if (this._open) {\n this._closeMenu({ restoreFocus: true });\n } else {\n this._open = true;\n }\n }\n };\n\n @HostListener('mousedown')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleMousedown = (event: MouseEvent) => {\n const { _triggerNode: trigger } = this;\n if (!trigger) {\n return;\n }\n\n const path = event.composedPath();\n if (path.includes(trigger)) {\n event.preventDefault();\n }\n };\n\n @HostListener('focusout')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleBlur = ({ relatedTarget }: FocusEvent) => {\n // Close the menu if the focus moves outside the menu button or menu\n if (!this.contains(relatedTarget as Node)) {\n this._closeMenu();\n }\n };\n\n @HostListener('keydown')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleKeydown = (event: KeyboardEvent) => {\n if (!this._open || event.key !== 'Escape') {\n return;\n }\n\n const { _triggerNode: trigger } = this;\n if (!trigger) {\n return;\n }\n\n const path = event.composedPath();\n if (path.includes(trigger)) {\n event.stopPropagation();\n event.preventDefault();\n this._closeMenu({ restoreFocus: true });\n }\n };\n\n @HostListener(`${prefix}-menu-closed`)\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleMenuClosed = (\n event: CustomEvent<{ triggerEventType?: string }>\n ) => {\n const menu = this.querySelector(`${prefix}-menu`);\n if (!menu || event.target !== menu || !this._open) {\n return;\n }\n\n const shouldRestoreFocus = event.detail?.triggerEventType !== 'focusout';\n this._closeMenu({ restoreFocus: shouldRestoreFocus });\n };\n\n updated(changedProperties) {\n const menu = this.querySelector(`${prefix}-menu`) as CDSMenu;\n\n if (\n changedProperties.has('_open') ||\n changedProperties.has('menuAlignment')\n ) {\n this.updateComplete.then(() => {\n const styleElement = menu.shadowRoot?.querySelector(\n `.${prefix}--menu`\n ) as HTMLElement;\n\n menu.open = this._open;\n\n this._menuController.setPlacement({\n trigger: this._triggerNode,\n target: menu,\n alignment: this.menuAlignment,\n styleElement,\n matchWidth: true,\n open: this._open,\n });\n });\n }\n\n if (changedProperties.has('size')) {\n menu.setAttribute('size', this.size);\n }\n\n if (changedProperties.has('menuBorder')) {\n menu.toggleAttribute('border', this.menuBorder);\n }\n\n if (changedProperties.has('menuBackgroundToken')) {\n menu.backgroundToken = this.menuBackgroundToken;\n }\n }\n\n render() {\n const { kind, size, disabled, tabIndex, label } = this;\n return html`\n <cds-button\n kind=${kind}\n size=${size}\n ?disabled=${disabled}\n tab-index=${tabIndex}>\n ${label} ${iconLoader(ChevronDown16, { slot: 'icon' })}\n </cds-button>\n <slot></slot>\n `;\n }\n\n static styles = styles;\n\n private _closeMenu({\n restoreFocus = false,\n }: { restoreFocus?: boolean } = {}) {\n if (!this._open) {\n return;\n }\n\n this._open = false;\n\n if (restoreFocus) {\n this._focusTrigger();\n }\n }\n\n private _focusTrigger() {\n if (!this._triggerNode || typeof this._triggerNode.focus !== 'function') {\n return;\n }\n\n this._triggerNode.focus();\n }\n}\n\nexport default CDSMenuButton;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,IAAA,gBAAA,MACM,sBAAsB,kBAAkB,WAAW,CAAC;;;yBAC9B,IAAIA,mBAAqB,KAAK;eAMxC;;;oBA6BH;;;kBAkBF;uBAKa,UAAiB;GACvC,MAAM,EAAE,cAAc,YAAY;AAClC,OAAI,CAAC,QACH;AAKF,OADa,MAAM,cAAc,CACxB,SAAS,QAAQ,CACxB,KAAI,KAAK,MACP,MAAK,WAAW,EAAE,cAAc,MAAM,CAAC;OAEvC,MAAK,QAAQ;;2BAQS,UAAsB;GAChD,MAAM,EAAE,cAAc,YAAY;AAClC,OAAI,CAAC,QACH;AAIF,OADa,MAAM,cAAc,CACxB,SAAS,QAAQ,CACxB,OAAM,gBAAgB;;sBAOH,EAAE,oBAAgC;AAEvD,OAAI,CAAC,KAAK,SAAS,cAAsB,CACvC,MAAK,YAAY;;yBAOK,UAAyB;AACjD,OAAI,CAAC,KAAK,SAAS,MAAM,QAAQ,SAC/B;GAGF,MAAM,EAAE,cAAc,YAAY;AAClC,OAAI,CAAC,QACH;AAIF,OADa,MAAM,cAAc,CACxB,SAAS,QAAQ,EAAE;AAC1B,UAAM,iBAAiB;AACvB,UAAM,gBAAgB;AACtB,SAAK,WAAW,EAAE,cAAc,MAAM,CAAC;;;4BAQzC,UACG;GACH,MAAM,OAAO,KAAK,cAAc,WAAiB;AACjD,OAAI,CAAC,QAAQ,MAAM,WAAW,QAAQ,CAAC,KAAK,MAC1C;GAGF,MAAM,qBAAqB,MAAM,QAAQ,qBAAqB;AAC9D,QAAK,WAAW,EAAE,cAAc,oBAAoB,CAAC;;;CAGvD,QAAQ,mBAAmB;EACzB,MAAM,OAAO,KAAK,cAAc,WAAiB;AAEjD,MACE,kBAAkB,IAAI,QAAQ,IAC9B,kBAAkB,IAAI,gBAAgB,CAEtC,MAAK,eAAe,WAAW;GAC7B,MAAM,eAAe,KAAK,YAAY,cACpC,aACD;AAED,QAAK,OAAO,KAAK;AAEjB,QAAK,gBAAgB,aAAa;IAChC,SAAS,KAAK;IACd,QAAQ;IACR,WAAW,KAAK;IAChB;IACA,YAAY;IACZ,MAAM,KAAK;IACZ,CAAC;IACF;AAGJ,MAAI,kBAAkB,IAAI,OAAO,CAC/B,MAAK,aAAa,QAAQ,KAAK,KAAK;AAGtC,MAAI,kBAAkB,IAAI,aAAa,CACrC,MAAK,gBAAgB,UAAU,KAAK,WAAW;AAGjD,MAAI,kBAAkB,IAAI,sBAAsB,CAC9C,MAAK,kBAAkB,KAAK;;CAIhC,SAAS;EACP,MAAM,EAAE,MAAM,MAAM,UAAU,UAAU,UAAU;AAClD,SAAO,IAAI;;eAEA,KAAK;eACL,KAAK;oBACA,SAAS;oBACT,SAAS;UACnB,MAAM,GAAG,WAAW,eAAe,EAAE,MAAM,QAAQ,CAAC,CAAC;;;;;;gBAM7CC;;CAEhB,WAAmB,EACjB,eAAe,UACe,EAAE,EAAE;AAClC,MAAI,CAAC,KAAK,MACR;AAGF,OAAK,QAAQ;AAEb,MAAI,aACF,MAAK,eAAe;;CAIxB,gBAAwB;AACtB,MAAI,CAAC,KAAK,gBAAgB,OAAO,KAAK,aAAa,UAAU,WAC3D;AAGF,OAAK,aAAa,OAAO;;;YA/M1B,MAAM,aAAmB,CAAA,EAAA,cAAA,WAAA,gBAAA,KAAA,EAAA;YAGzB,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,CAAC,CAAA,EAAA,cAAA,WAAA,SAAA,KAAA,EAAA;YAM1C,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,CAAC,CAAA,EAAA,cAAA,WAAA,YAAA,KAAA,EAAA;YAM1C,SAAS;CAAE,MAAM;CAAkB,SAAS;CAAM,CAAC,CAAA,EAAA,cAAA,WAAA,QAAA,KAAA,EAAA;YAK/C,SAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,EAAA,cAAA,WAAA,SAAA,KAAA,EAAA;YAM9B,SAAS;CAAE,SAAS;CAAM,MAAM;CAAQ,WAAW;CAAkB,CAAC,CAAA,EAAA,cAAA,WAAA,iBAAA,KAAA,EAAA;YAMtE,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,WAAW;CAAe,CAAC,CAAA,EAAA,cAAA,WAAA,cAAA,KAAA,EAAA;YAMpE,SAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,WAAW;CAAyB,CAAC,CAAA,EAAA,cAAA,WAAA,uBAAA,KAAA,EAAA;YAM7E,SAAS;CAAE,MAAM;CAAkB,SAAS;CAAM,CAAC,CAAA,EAAA,cAAA,WAAA,QAAA,KAAA,EAAA;YAMnD,SAAS;CAAE,MAAM;CAAQ,WAAW;CAAa,SAAS;CAAM,CAAC,CAAA,EAAA,cAAA,WAAA,YAAA,KAAA,EAAA;YAGjE,aAAa,QAAQ,CAAA,EAAA,cAAA,WAAA,gBAAA,KAAA,EAAA;YAoBrB,aAAa,YAAY,CAAA,EAAA,cAAA,WAAA,oBAAA,KAAA,EAAA;YAezB,aAAa,WAAW,CAAA,EAAA,cAAA,WAAA,eAAA,KAAA,EAAA;YAUxB,aAAa,UAAU,CAAA,EAAA,cAAA,WAAA,kBAAA,KAAA,EAAA;YAqBvB,aAAa,kBAAwB,CAAA,EAAA,cAAA,WAAA,qBAAA,KAAA,EAAA;4BA3HvCC,cAAc,kBAAwB,CAAA,EAAA,cAAA;AAuNvC,IAAA,sBAAe"}
1
+ {"version":3,"file":"menu-button.js","names":["FloatingUIController","styles","customElement"],"sources":["../../../src/components/menu-button/menu-button.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2025, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport styles from './menu-button.scss?lit';\nimport '../button/index';\nimport '../menu/index';\nimport ChevronDown16 from '@carbon/icons/es/chevron--down/16.js';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport { POPOVER_ALIGNMENT } from '../popover/defs';\nimport CDSMenu from '../menu/menu';\nimport CDSButton from '../button/button';\nimport { MENU_BUTTON_KIND, MENU_BUTTON_SIZE } from './defs';\nimport { MENU_BACKGROUND_TOKEN } from '../menu/defs';\nimport FloatingUIController from '../../globals/controllers/floating-controller';\n\nexport { MENU_BUTTON_KIND, MENU_BUTTON_SIZE };\n\n/**\n * Menu button.\n * @element cds-menu-button\n */\n@customElement(`${prefix}-menu-button`)\nclass CDSMenuButton extends HostListenerMixin(LitElement) {\n private _menuController = new FloatingUIController(this);\n\n @query(`${prefix}-button`)\n _triggerNode!: CDSButton;\n\n @property({ type: Boolean, reflect: true })\n private _open = false;\n\n /**\n * Specify whether the MenuButton should be disabled, or not.\n */\n @property({ type: Boolean, reflect: true })\n disabled;\n\n /**\n * Specify the type of button to be used as the base for the trigger button.\n */\n @property({ type: MENU_BUTTON_KIND, reflect: true })\n kind = MENU_BUTTON_KIND.PRIMARY;\n\n /**\n * Provide the label to be rendered on the trigger button.\n */ @property({ type: String })\n label;\n\n /**\n * Experimental property. Specify how the menu should align with the button element\n */\n @property({ reflect: true, type: String, attribute: 'menu-alignment' })\n menuAlignment = POPOVER_ALIGNMENT.BOTTOM;\n\n /**\n * Specify whether the menu should have a border.\n */\n @property({ type: Boolean, reflect: true, attribute: 'menu-border' })\n menuBorder = false;\n\n /**\n * Specify the background token to use for the menu. Default is 'layer'.\n */\n @property({ type: String, reflect: true, attribute: 'menu-background-token' })\n menuBackgroundToken = MENU_BACKGROUND_TOKEN.LAYER;\n\n /**\n * Specify the size of the button and menu.\n */\n @property({ type: MENU_BUTTON_SIZE, reflect: true })\n size = MENU_BUTTON_SIZE.LARGE;\n\n /**\n * Specify the tabIndex of the button.\n */\n @property({ type: Number, attribute: 'tab-index', reflect: true })\n tabIndex = 0;\n\n @HostListener('click')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleClick = (event: Event) => {\n const { _triggerNode: trigger } = this;\n if (!trigger) {\n return;\n }\n\n // Handle clicks on trigger only, other listeners handle clicks on menu items\n const path = event.composedPath();\n if (path.includes(trigger)) {\n if (this._open) {\n this._closeMenu({ restoreFocus: true });\n } else {\n this._open = true;\n }\n }\n };\n\n @HostListener('mousedown')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleMousedown = (event: MouseEvent) => {\n const { _triggerNode: trigger } = this;\n if (!trigger) {\n return;\n }\n\n const path = event.composedPath();\n if (path.includes(trigger)) {\n event.preventDefault();\n }\n };\n\n @HostListener('focusout')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleBlur = ({ relatedTarget }: FocusEvent) => {\n // Close the menu if the focus moves outside the menu button or menu\n if (!this.contains(relatedTarget as Node)) {\n this._closeMenu();\n }\n };\n\n @HostListener('keydown')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleKeydown = (event: KeyboardEvent) => {\n if (!this._open || event.key !== 'Escape') {\n return;\n }\n\n const { _triggerNode: trigger } = this;\n if (!trigger) {\n return;\n }\n\n const path = event.composedPath();\n if (path.includes(trigger)) {\n event.stopPropagation();\n event.preventDefault();\n this._closeMenu({ restoreFocus: true });\n }\n };\n\n @HostListener(`${prefix}-menu-closed`)\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleMenuClosed = (\n event: CustomEvent<{ triggerEventType?: string }>\n ) => {\n const menu = this.querySelector(`${prefix}-menu`);\n if (!menu || event.target !== menu || !this._open) {\n return;\n }\n\n const shouldRestoreFocus = event.detail?.triggerEventType !== 'focusout';\n this._closeMenu({ restoreFocus: shouldRestoreFocus });\n };\n\n updated(changedProperties) {\n const menu = this.querySelector(`${prefix}-menu`) as CDSMenu;\n\n if (\n changedProperties.has('_open') ||\n changedProperties.has('menuAlignment')\n ) {\n this.updateComplete.then(() => {\n const styleElement = menu.shadowRoot?.querySelector(\n `.${prefix}--menu`\n ) as HTMLElement;\n\n menu.open = this._open;\n\n this._menuController.setPlacement({\n trigger: this._triggerNode,\n target: menu,\n alignment: this.menuAlignment,\n styleElement,\n matchWidth: true,\n open: this._open,\n });\n });\n }\n\n if (changedProperties.has('size')) {\n menu.setAttribute('size', this.size);\n }\n\n if (changedProperties.has('menuBorder')) {\n menu.toggleAttribute('border', this.menuBorder);\n }\n\n if (changedProperties.has('menuBackgroundToken')) {\n menu.backgroundToken = this.menuBackgroundToken;\n }\n }\n\n render() {\n const { kind, size, disabled, tabIndex, label } = this;\n return html`\n <cds-button\n kind=${kind}\n size=${size}\n ?disabled=${disabled}\n tab-index=${tabIndex}>\n ${label} ${iconLoader(ChevronDown16, { slot: 'icon' })}\n </cds-button>\n <slot></slot>\n `;\n }\n\n static styles = styles;\n\n private _closeMenu({\n restoreFocus = false,\n }: { restoreFocus?: boolean } = {}) {\n if (!this._open) {\n return;\n }\n\n this._open = false;\n\n if (restoreFocus) {\n this._focusTrigger();\n }\n }\n\n private _focusTrigger() {\n if (!this._triggerNode || typeof this._triggerNode.focus !== 'function') {\n return;\n }\n\n this._triggerNode.focus();\n }\n}\n\nexport default CDSMenuButton;\n"],"mappings":"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"}