@carbon/web-components 2.46.0 → 2.47.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 (548) hide show
  1. package/custom-elements.json +89 -20
  2. package/es/components/ai-label/ai-label.d.ts +1 -1
  3. package/es/components/ai-label/ai-label.js +11 -2
  4. package/es/components/ai-label/ai-label.js.map +1 -1
  5. package/es/components/ai-label/ai-label.scss.js +1 -1
  6. package/es/components/ai-skeleton/ai-skeleton.scss.js +1 -1
  7. package/es/components/breadcrumb/breadcrumb-overflow-menu.d.ts +1 -1
  8. package/es/components/breadcrumb/breadcrumb-overflow-menu.js +7 -3
  9. package/es/components/breadcrumb/breadcrumb-overflow-menu.js.map +1 -1
  10. package/es/components/breadcrumb/breadcrumb.scss.js +1 -1
  11. package/es/components/button/button.scss.js +1 -1
  12. package/es/components/chat-button/chat-button-skeleton.d.ts +1 -1
  13. package/es/components/chat-button/chat-button-skeleton.js +6 -2
  14. package/es/components/chat-button/chat-button-skeleton.js.map +1 -1
  15. package/es/components/chat-button/chat-button.d.ts +1 -1
  16. package/es/components/chat-button/chat-button.js +6 -2
  17. package/es/components/chat-button/chat-button.js.map +1 -1
  18. package/es/components/chat-button/chat-button.scss.js +1 -1
  19. package/es/components/code-snippet/code-snippet.scss.js +1 -1
  20. package/es/components/combo-box/combo-box.d.ts +5 -1
  21. package/es/components/combo-box/combo-box.js +27 -3
  22. package/es/components/combo-box/combo-box.js.map +1 -1
  23. package/es/components/combo-box/combo-box.scss.js +1 -1
  24. package/es/components/copy/copy.d.ts +1 -1
  25. package/es/components/copy/copy.js +1 -2
  26. package/es/components/copy/copy.js.map +1 -1
  27. package/es/components/copy-button/copy-button.scss.js +1 -1
  28. package/es/components/data-table/data-table.scss.js +1 -1
  29. package/es/components/date-picker/range-plugin.d.ts +1 -1
  30. package/es/components/date-picker/range-plugin.js +1 -3
  31. package/es/components/date-picker/range-plugin.js.map +1 -1
  32. package/es/components/dropdown/dropdown.d.ts +3 -3
  33. package/es/components/dropdown/dropdown.js +1 -3
  34. package/es/components/dropdown/dropdown.js.map +1 -1
  35. package/es/components/dropdown/dropdown.scss.js +1 -1
  36. package/es/components/fluid-number-input/fluid-number-input.scss.js +1 -1
  37. package/es/components/fluid-search/fluid-search.scss.js +1 -1
  38. package/es/components/fluid-text-input/fluid-text-input.scss.js +1 -1
  39. package/es/components/grid/column-hang.d.ts +0 -2
  40. package/es/components/grid/column-hang.js +0 -2
  41. package/es/components/grid/column-hang.js.map +1 -1
  42. package/es/components/grid/column.d.ts +0 -2
  43. package/es/components/grid/column.js +0 -2
  44. package/es/components/grid/column.js.map +1 -1
  45. package/es/components/grid/grid.d.ts +0 -2
  46. package/es/components/grid/grid.js +0 -2
  47. package/es/components/grid/grid.js.map +1 -1
  48. package/es/components/grid/index.d.ts +0 -2
  49. package/es/components/icon-button/icon-button.d.ts +1 -1
  50. package/es/components/icon-button/icon-button.js +12 -3
  51. package/es/components/icon-button/icon-button.js.map +1 -1
  52. package/es/components/icon-button/icon-button.scss.js +2 -2
  53. package/es/components/menu/menu-context.d.ts +3 -2
  54. package/es/components/menu/menu-context.js +1 -1
  55. package/es/components/menu/menu-context.js.map +1 -1
  56. package/es/components/menu/menu.d.ts +3 -2
  57. package/es/components/menu/menu.js +5 -4
  58. package/es/components/menu/menu.js.map +1 -1
  59. package/es/components/menu/menu.scss.js +1 -1
  60. package/es/components/modal/modal-body.d.ts +3 -1
  61. package/es/components/modal/modal-body.js +17 -1
  62. package/es/components/modal/modal-body.js.map +1 -1
  63. package/es/components/modal/modal-close-button.d.ts +2 -1
  64. package/es/components/modal/modal-close-button.js +11 -5
  65. package/es/components/modal/modal-close-button.js.map +1 -1
  66. package/es/components/modal/modal.d.ts +67 -2
  67. package/es/components/modal/modal.js +228 -8
  68. package/es/components/modal/modal.js.map +1 -1
  69. package/es/components/modal/modal.scss.js +1 -1
  70. package/es/components/multi-select/multi-select.d.ts +2 -2
  71. package/es/components/multi-select/multi-select.js +8 -4
  72. package/es/components/multi-select/multi-select.js.map +1 -1
  73. package/es/components/multi-select/multi-select.scss.js +1 -1
  74. package/es/components/notification/actionable-notification.js +8 -1
  75. package/es/components/notification/actionable-notification.js.map +1 -1
  76. package/es/components/notification/actionable-notification.scss.js +1 -1
  77. package/es/components/notification/inline-notification.scss.js +1 -1
  78. package/es/components/notification/toast-notification.scss.js +1 -1
  79. package/es/components/overflow-menu/overflow-menu.d.ts +0 -1
  80. package/es/components/overflow-menu/overflow-menu.js +3 -2
  81. package/es/components/overflow-menu/overflow-menu.js.map +1 -1
  82. package/es/components/page-header/index.d.ts +0 -2
  83. package/es/components/page-header/page-header-breadcrumb.d.ts +0 -2
  84. package/es/components/page-header/page-header-breadcrumb.js +0 -2
  85. package/es/components/page-header/page-header-breadcrumb.js.map +1 -1
  86. package/es/components/page-header/page-header-content-text.d.ts +0 -2
  87. package/es/components/page-header/page-header-content-text.js +0 -2
  88. package/es/components/page-header/page-header-content-text.js.map +1 -1
  89. package/es/components/page-header/page-header-content.d.ts +0 -2
  90. package/es/components/page-header/page-header-content.js +0 -2
  91. package/es/components/page-header/page-header-content.js.map +1 -1
  92. package/es/components/page-header/page-header-hero-image.d.ts +0 -2
  93. package/es/components/page-header/page-header-hero-image.js +0 -2
  94. package/es/components/page-header/page-header-hero-image.js.map +1 -1
  95. package/es/components/page-header/page-header-tabs.d.ts +0 -2
  96. package/es/components/page-header/page-header-tabs.js +0 -2
  97. package/es/components/page-header/page-header-tabs.js.map +1 -1
  98. package/es/components/page-header/page-header.d.ts +0 -2
  99. package/es/components/page-header/page-header.js +0 -2
  100. package/es/components/page-header/page-header.js.map +1 -1
  101. package/es/components/pagination/pagination.js +7 -4
  102. package/es/components/pagination/pagination.js.map +1 -1
  103. package/es/components/password-input/password-input.scss.js +1 -1
  104. package/es/components/popover/popover-content.js +2 -2
  105. package/es/components/popover/popover-content.js.map +1 -1
  106. package/es/components/popover/popover.d.ts +7 -1
  107. package/es/components/popover/popover.js +54 -3
  108. package/es/components/popover/popover.js.map +1 -1
  109. package/es/components/popover/popover.scss.js +2 -2
  110. package/es/components/search/search.scss.js +1 -1
  111. package/es/components/slider/slider.scss.js +1 -1
  112. package/es/components/slug/slug.d.ts +1 -1
  113. package/es/components/slug/slug.js +11 -2
  114. package/es/components/slug/slug.js.map +1 -1
  115. package/es/components/slug/slug.scss.js +1 -1
  116. package/es/components/tabs/defs.d.ts +4 -0
  117. package/es/components/tabs/defs.js +4 -0
  118. package/es/components/tabs/defs.js.map +1 -1
  119. package/es/components/tabs/tabs.d.ts +2 -4
  120. package/es/components/tabs/tabs.js +37 -8
  121. package/es/components/tabs/tabs.js.map +1 -1
  122. package/es/components/tabs/tabs.scss.js +1 -1
  123. package/es/components/tag/dismissible-tag.d.ts +0 -2
  124. package/es/components/tag/dismissible-tag.js +0 -2
  125. package/es/components/tag/dismissible-tag.js.map +1 -1
  126. package/es/components/tag/operational-tag.d.ts +0 -2
  127. package/es/components/tag/operational-tag.js +0 -2
  128. package/es/components/tag/operational-tag.js.map +1 -1
  129. package/es/components/tag/selectable-tag.d.ts +0 -2
  130. package/es/components/tag/selectable-tag.js +0 -2
  131. package/es/components/tag/selectable-tag.js.map +1 -1
  132. package/es/components/tag/tag-skeleton.d.ts +0 -2
  133. package/es/components/tag/tag-skeleton.js +0 -2
  134. package/es/components/tag/tag-skeleton.js.map +1 -1
  135. package/es/components/text-input/text-input.scss.js +1 -1
  136. package/es/components/tile/tile.scss.js +1 -1
  137. package/es/components/time-picker/time-picker.scss.js +1 -1
  138. package/es/components/toggle-tip/toggletip.d.ts +0 -1
  139. package/es/components/toggle-tip/toggletip.js +4 -3
  140. package/es/components/toggle-tip/toggletip.js.map +1 -1
  141. package/es/components/toggle-tip/toggletip.scss.js +2 -2
  142. package/es/components/tooltip/definition-tooltip.js +5 -3
  143. package/es/components/tooltip/definition-tooltip.js.map +1 -1
  144. package/es/components/tooltip/tooltip-content.d.ts +0 -7
  145. package/es/components/tooltip/tooltip-content.js +4 -8
  146. package/es/components/tooltip/tooltip-content.js.map +1 -1
  147. package/es/components/tooltip/tooltip.d.ts +0 -1
  148. package/es/components/tooltip/tooltip.js +4 -7
  149. package/es/components/tooltip/tooltip.js.map +1 -1
  150. package/es/components/tooltip/tooltip.scss.js +2 -2
  151. package/es/components/tree-view/defs.d.ts +0 -2
  152. package/es/components/tree-view/defs.js +0 -2
  153. package/es/components/tree-view/defs.js.map +1 -1
  154. package/es/components/tree-view/index.d.ts +0 -2
  155. package/es/components/tree-view/tree-node.d.ts +0 -2
  156. package/es/components/tree-view/tree-node.js +0 -2
  157. package/es/components/tree-view/tree-node.js.map +1 -1
  158. package/es/components/tree-view/tree-view.d.ts +0 -2
  159. package/es/components/tree-view/tree-view.js +0 -2
  160. package/es/components/tree-view/tree-view.js.map +1 -1
  161. package/es/components/tree-view/tree-view.scss.js +1 -1
  162. package/es/components/ui-shell/header-global-action.d.ts +1 -1
  163. package/es/components/ui-shell/header-global-action.js +16 -2
  164. package/es/components/ui-shell/header-global-action.js.map +1 -1
  165. package/es/components/ui-shell/header-name.js +1 -1
  166. package/es/components/ui-shell/header-name.js.map +1 -1
  167. package/es/components/ui-shell/side-nav-menu-item.d.ts +4 -0
  168. package/es/components/ui-shell/side-nav-menu-item.js +10 -2
  169. package/es/components/ui-shell/side-nav-menu-item.js.map +1 -1
  170. package/es/globals/controllers/floating-controller.d.ts +1 -1
  171. package/es/globals/controllers/floating-controller.js +34 -30
  172. package/es/globals/controllers/floating-controller.js.map +1 -1
  173. package/es/globals/decorators/carbon-element.d.ts +5 -4
  174. package/es/globals/decorators/carbon-element.js +1 -1
  175. package/es/globals/decorators/carbon-element.js.map +1 -1
  176. package/es-custom/components/ai-label/ai-label.d.ts +1 -1
  177. package/es-custom/components/ai-label/ai-label.js +11 -2
  178. package/es-custom/components/ai-label/ai-label.js.map +1 -1
  179. package/es-custom/components/ai-label/ai-label.scss.js +1 -1
  180. package/es-custom/components/ai-skeleton/ai-skeleton.scss.js +1 -1
  181. package/es-custom/components/breadcrumb/breadcrumb-overflow-menu.d.ts +1 -1
  182. package/es-custom/components/breadcrumb/breadcrumb-overflow-menu.js +7 -3
  183. package/es-custom/components/breadcrumb/breadcrumb-overflow-menu.js.map +1 -1
  184. package/es-custom/components/breadcrumb/breadcrumb.scss.js +1 -1
  185. package/es-custom/components/button/button.scss.js +1 -1
  186. package/es-custom/components/chat-button/chat-button-skeleton.d.ts +1 -1
  187. package/es-custom/components/chat-button/chat-button-skeleton.js +6 -2
  188. package/es-custom/components/chat-button/chat-button-skeleton.js.map +1 -1
  189. package/es-custom/components/chat-button/chat-button.d.ts +1 -1
  190. package/es-custom/components/chat-button/chat-button.js +6 -2
  191. package/es-custom/components/chat-button/chat-button.js.map +1 -1
  192. package/es-custom/components/chat-button/chat-button.scss.js +1 -1
  193. package/es-custom/components/code-snippet/code-snippet.scss.js +1 -1
  194. package/es-custom/components/combo-box/combo-box.d.ts +5 -1
  195. package/es-custom/components/combo-box/combo-box.js +27 -3
  196. package/es-custom/components/combo-box/combo-box.js.map +1 -1
  197. package/es-custom/components/combo-box/combo-box.scss.js +1 -1
  198. package/es-custom/components/copy/copy.d.ts +1 -1
  199. package/es-custom/components/copy/copy.js +1 -2
  200. package/es-custom/components/copy/copy.js.map +1 -1
  201. package/es-custom/components/copy-button/copy-button.scss.js +1 -1
  202. package/es-custom/components/data-table/data-table.scss.js +1 -1
  203. package/es-custom/components/date-picker/range-plugin.d.ts +1 -1
  204. package/es-custom/components/date-picker/range-plugin.js +1 -3
  205. package/es-custom/components/date-picker/range-plugin.js.map +1 -1
  206. package/es-custom/components/dropdown/dropdown.d.ts +3 -3
  207. package/es-custom/components/dropdown/dropdown.js +1 -3
  208. package/es-custom/components/dropdown/dropdown.js.map +1 -1
  209. package/es-custom/components/dropdown/dropdown.scss.js +1 -1
  210. package/es-custom/components/fluid-number-input/fluid-number-input.scss.js +1 -1
  211. package/es-custom/components/fluid-search/fluid-search.scss.js +1 -1
  212. package/es-custom/components/fluid-text-input/fluid-text-input.scss.js +1 -1
  213. package/es-custom/components/grid/column-hang.d.ts +0 -2
  214. package/es-custom/components/grid/column-hang.js +0 -2
  215. package/es-custom/components/grid/column-hang.js.map +1 -1
  216. package/es-custom/components/grid/column.d.ts +0 -2
  217. package/es-custom/components/grid/column.js +0 -2
  218. package/es-custom/components/grid/column.js.map +1 -1
  219. package/es-custom/components/grid/grid.d.ts +0 -2
  220. package/es-custom/components/grid/grid.js +0 -2
  221. package/es-custom/components/grid/grid.js.map +1 -1
  222. package/es-custom/components/grid/index.d.ts +0 -2
  223. package/es-custom/components/icon-button/icon-button.d.ts +1 -1
  224. package/es-custom/components/icon-button/icon-button.js +12 -3
  225. package/es-custom/components/icon-button/icon-button.js.map +1 -1
  226. package/es-custom/components/icon-button/icon-button.scss.js +2 -2
  227. package/es-custom/components/menu/menu-context.d.ts +3 -2
  228. package/es-custom/components/menu/menu-context.js +1 -1
  229. package/es-custom/components/menu/menu-context.js.map +1 -1
  230. package/es-custom/components/menu/menu.d.ts +3 -2
  231. package/es-custom/components/menu/menu.js +5 -4
  232. package/es-custom/components/menu/menu.js.map +1 -1
  233. package/es-custom/components/menu/menu.scss.js +1 -1
  234. package/es-custom/components/modal/modal-body.d.ts +3 -1
  235. package/es-custom/components/modal/modal-body.js +17 -1
  236. package/es-custom/components/modal/modal-body.js.map +1 -1
  237. package/es-custom/components/modal/modal-close-button.d.ts +2 -1
  238. package/es-custom/components/modal/modal-close-button.js +11 -5
  239. package/es-custom/components/modal/modal-close-button.js.map +1 -1
  240. package/es-custom/components/modal/modal.d.ts +67 -2
  241. package/es-custom/components/modal/modal.js +228 -8
  242. package/es-custom/components/modal/modal.js.map +1 -1
  243. package/es-custom/components/modal/modal.scss.js +1 -1
  244. package/es-custom/components/multi-select/multi-select.d.ts +2 -2
  245. package/es-custom/components/multi-select/multi-select.js +8 -4
  246. package/es-custom/components/multi-select/multi-select.js.map +1 -1
  247. package/es-custom/components/multi-select/multi-select.scss.js +1 -1
  248. package/es-custom/components/notification/actionable-notification.js +8 -1
  249. package/es-custom/components/notification/actionable-notification.js.map +1 -1
  250. package/es-custom/components/notification/actionable-notification.scss.js +1 -1
  251. package/es-custom/components/notification/inline-notification.scss.js +1 -1
  252. package/es-custom/components/notification/toast-notification.scss.js +1 -1
  253. package/es-custom/components/overflow-menu/overflow-menu.d.ts +0 -1
  254. package/es-custom/components/overflow-menu/overflow-menu.js +3 -2
  255. package/es-custom/components/overflow-menu/overflow-menu.js.map +1 -1
  256. package/es-custom/components/page-header/index.d.ts +0 -2
  257. package/es-custom/components/page-header/page-header-breadcrumb.d.ts +0 -2
  258. package/es-custom/components/page-header/page-header-breadcrumb.js +0 -2
  259. package/es-custom/components/page-header/page-header-breadcrumb.js.map +1 -1
  260. package/es-custom/components/page-header/page-header-content-text.d.ts +0 -2
  261. package/es-custom/components/page-header/page-header-content-text.js +0 -2
  262. package/es-custom/components/page-header/page-header-content-text.js.map +1 -1
  263. package/es-custom/components/page-header/page-header-content.d.ts +0 -2
  264. package/es-custom/components/page-header/page-header-content.js +0 -2
  265. package/es-custom/components/page-header/page-header-content.js.map +1 -1
  266. package/es-custom/components/page-header/page-header-hero-image.d.ts +0 -2
  267. package/es-custom/components/page-header/page-header-hero-image.js +0 -2
  268. package/es-custom/components/page-header/page-header-hero-image.js.map +1 -1
  269. package/es-custom/components/page-header/page-header-tabs.d.ts +0 -2
  270. package/es-custom/components/page-header/page-header-tabs.js +0 -2
  271. package/es-custom/components/page-header/page-header-tabs.js.map +1 -1
  272. package/es-custom/components/page-header/page-header.d.ts +0 -2
  273. package/es-custom/components/page-header/page-header.js +0 -2
  274. package/es-custom/components/page-header/page-header.js.map +1 -1
  275. package/es-custom/components/pagination/pagination.js +7 -4
  276. package/es-custom/components/pagination/pagination.js.map +1 -1
  277. package/es-custom/components/password-input/password-input.scss.js +1 -1
  278. package/es-custom/components/popover/popover-content.js +2 -2
  279. package/es-custom/components/popover/popover-content.js.map +1 -1
  280. package/es-custom/components/popover/popover.d.ts +7 -1
  281. package/es-custom/components/popover/popover.js +54 -3
  282. package/es-custom/components/popover/popover.js.map +1 -1
  283. package/es-custom/components/popover/popover.scss.js +2 -2
  284. package/es-custom/components/search/search.scss.js +1 -1
  285. package/es-custom/components/slider/slider.scss.js +1 -1
  286. package/es-custom/components/slug/slug.d.ts +1 -1
  287. package/es-custom/components/slug/slug.js +11 -2
  288. package/es-custom/components/slug/slug.js.map +1 -1
  289. package/es-custom/components/slug/slug.scss.js +1 -1
  290. package/es-custom/components/tabs/defs.d.ts +4 -0
  291. package/es-custom/components/tabs/defs.js +4 -0
  292. package/es-custom/components/tabs/defs.js.map +1 -1
  293. package/es-custom/components/tabs/tabs.d.ts +2 -4
  294. package/es-custom/components/tabs/tabs.js +37 -8
  295. package/es-custom/components/tabs/tabs.js.map +1 -1
  296. package/es-custom/components/tabs/tabs.scss.js +1 -1
  297. package/es-custom/components/tag/dismissible-tag.d.ts +0 -2
  298. package/es-custom/components/tag/dismissible-tag.js +0 -2
  299. package/es-custom/components/tag/dismissible-tag.js.map +1 -1
  300. package/es-custom/components/tag/operational-tag.d.ts +0 -2
  301. package/es-custom/components/tag/operational-tag.js +0 -2
  302. package/es-custom/components/tag/operational-tag.js.map +1 -1
  303. package/es-custom/components/tag/selectable-tag.d.ts +0 -2
  304. package/es-custom/components/tag/selectable-tag.js +0 -2
  305. package/es-custom/components/tag/selectable-tag.js.map +1 -1
  306. package/es-custom/components/tag/tag-skeleton.d.ts +0 -2
  307. package/es-custom/components/tag/tag-skeleton.js +0 -2
  308. package/es-custom/components/tag/tag-skeleton.js.map +1 -1
  309. package/es-custom/components/text-input/text-input.scss.js +1 -1
  310. package/es-custom/components/tile/tile.scss.js +1 -1
  311. package/es-custom/components/time-picker/time-picker.scss.js +1 -1
  312. package/es-custom/components/toggle-tip/toggletip.d.ts +0 -1
  313. package/es-custom/components/toggle-tip/toggletip.js +4 -3
  314. package/es-custom/components/toggle-tip/toggletip.js.map +1 -1
  315. package/es-custom/components/toggle-tip/toggletip.scss.js +2 -2
  316. package/es-custom/components/tooltip/definition-tooltip.js +5 -3
  317. package/es-custom/components/tooltip/definition-tooltip.js.map +1 -1
  318. package/es-custom/components/tooltip/tooltip-content.d.ts +0 -7
  319. package/es-custom/components/tooltip/tooltip-content.js +4 -8
  320. package/es-custom/components/tooltip/tooltip-content.js.map +1 -1
  321. package/es-custom/components/tooltip/tooltip.d.ts +0 -1
  322. package/es-custom/components/tooltip/tooltip.js +4 -7
  323. package/es-custom/components/tooltip/tooltip.js.map +1 -1
  324. package/es-custom/components/tooltip/tooltip.scss.js +2 -2
  325. package/es-custom/components/tree-view/defs.d.ts +0 -2
  326. package/es-custom/components/tree-view/defs.js +0 -2
  327. package/es-custom/components/tree-view/defs.js.map +1 -1
  328. package/es-custom/components/tree-view/index.d.ts +0 -2
  329. package/es-custom/components/tree-view/tree-node.d.ts +0 -2
  330. package/es-custom/components/tree-view/tree-node.js +0 -2
  331. package/es-custom/components/tree-view/tree-node.js.map +1 -1
  332. package/es-custom/components/tree-view/tree-view.d.ts +0 -2
  333. package/es-custom/components/tree-view/tree-view.js +0 -2
  334. package/es-custom/components/tree-view/tree-view.js.map +1 -1
  335. package/es-custom/components/tree-view/tree-view.scss.js +1 -1
  336. package/es-custom/components/ui-shell/header-global-action.d.ts +1 -1
  337. package/es-custom/components/ui-shell/header-global-action.js +16 -2
  338. package/es-custom/components/ui-shell/header-global-action.js.map +1 -1
  339. package/es-custom/components/ui-shell/header-name.js +1 -1
  340. package/es-custom/components/ui-shell/header-name.js.map +1 -1
  341. package/es-custom/components/ui-shell/side-nav-menu-item.d.ts +4 -0
  342. package/es-custom/components/ui-shell/side-nav-menu-item.js +10 -2
  343. package/es-custom/components/ui-shell/side-nav-menu-item.js.map +1 -1
  344. package/es-custom/globals/controllers/floating-controller.d.ts +1 -1
  345. package/es-custom/globals/controllers/floating-controller.js +34 -30
  346. package/es-custom/globals/controllers/floating-controller.js.map +1 -1
  347. package/es-custom/globals/decorators/carbon-element.d.ts +5 -4
  348. package/es-custom/globals/decorators/carbon-element.js +1 -1
  349. package/es-custom/globals/decorators/carbon-element.js.map +1 -1
  350. package/lib/components/ai-label/ai-label.d.ts +1 -1
  351. package/lib/components/breadcrumb/breadcrumb-overflow-menu.d.ts +1 -1
  352. package/lib/components/chat-button/chat-button-skeleton.d.ts +1 -1
  353. package/lib/components/chat-button/chat-button.d.ts +1 -1
  354. package/lib/components/combo-box/combo-box.d.ts +5 -1
  355. package/lib/components/copy/copy.d.ts +1 -1
  356. package/lib/components/date-picker/range-plugin.d.ts +1 -1
  357. package/lib/components/dropdown/dropdown.d.ts +3 -3
  358. package/lib/components/grid/column-hang.d.ts +0 -2
  359. package/lib/components/grid/column.d.ts +0 -2
  360. package/lib/components/grid/grid.d.ts +0 -2
  361. package/lib/components/grid/index.d.ts +0 -2
  362. package/lib/components/icon-button/icon-button.d.ts +1 -1
  363. package/lib/components/menu/menu-context.d.ts +3 -2
  364. package/lib/components/menu/menu.d.ts +3 -2
  365. package/lib/components/modal/modal-body.d.ts +3 -1
  366. package/lib/components/modal/modal-close-button.d.ts +2 -1
  367. package/lib/components/modal/modal.d.ts +67 -2
  368. package/lib/components/multi-select/multi-select.d.ts +2 -2
  369. package/lib/components/overflow-menu/overflow-menu.d.ts +0 -1
  370. package/lib/components/page-header/index.d.ts +0 -2
  371. package/lib/components/page-header/page-header-breadcrumb.d.ts +0 -2
  372. package/lib/components/page-header/page-header-content-text.d.ts +0 -2
  373. package/lib/components/page-header/page-header-content.d.ts +0 -2
  374. package/lib/components/page-header/page-header-hero-image.d.ts +0 -2
  375. package/lib/components/page-header/page-header-tabs.d.ts +0 -2
  376. package/lib/components/page-header/page-header.d.ts +0 -2
  377. package/lib/components/popover/popover.d.ts +7 -1
  378. package/lib/components/slug/slug.d.ts +1 -1
  379. package/lib/components/tabs/defs.d.ts +4 -0
  380. package/lib/components/tabs/defs.js +4 -0
  381. package/lib/components/tabs/defs.js.map +1 -1
  382. package/lib/components/tabs/tabs.d.ts +2 -4
  383. package/lib/components/tag/dismissible-tag.d.ts +0 -2
  384. package/lib/components/tag/operational-tag.d.ts +0 -2
  385. package/lib/components/tag/selectable-tag.d.ts +0 -2
  386. package/lib/components/tag/tag-skeleton.d.ts +0 -2
  387. package/lib/components/toggle-tip/toggletip.d.ts +0 -1
  388. package/lib/components/tooltip/tooltip-content.d.ts +0 -7
  389. package/lib/components/tooltip/tooltip.d.ts +0 -1
  390. package/lib/components/tree-view/defs.d.ts +0 -2
  391. package/lib/components/tree-view/defs.js +0 -2
  392. package/lib/components/tree-view/defs.js.map +1 -1
  393. package/lib/components/tree-view/index.d.ts +0 -2
  394. package/lib/components/tree-view/tree-node.d.ts +0 -2
  395. package/lib/components/tree-view/tree-view.d.ts +0 -2
  396. package/lib/components/ui-shell/header-global-action.d.ts +1 -1
  397. package/lib/components/ui-shell/side-nav-menu-item.d.ts +4 -0
  398. package/lib/globals/controllers/floating-controller.d.ts +1 -1
  399. package/lib/globals/controllers/floating-controller.js +34 -30
  400. package/lib/globals/controllers/floating-controller.js.map +1 -1
  401. package/lib/globals/decorators/carbon-element.d.ts +5 -4
  402. package/package.json +7 -9
  403. package/scss/components/ai-label/ai-label.scss +11 -12
  404. package/scss/components/ai-skeleton/ai-skeleton.scss +1 -3
  405. package/scss/components/breadcrumb/breadcrumb.scss +0 -1
  406. package/scss/components/button/button.scss +0 -2
  407. package/scss/components/chat-button/chat-button.scss +0 -1
  408. package/scss/components/icon-button/icon-button.scss +0 -2
  409. package/scss/components/menu/menu.scss +11 -2
  410. package/scss/components/modal/modal.scss +27 -7
  411. package/scss/components/multi-select/multi-select.scss +2 -2
  412. package/scss/components/notification/actionable-notification.scss +42 -128
  413. package/scss/components/notification/inline-notification.scss +17 -69
  414. package/scss/components/notification/toast-notification.scss +16 -37
  415. package/scss/components/popover/popover.scss +4 -4
  416. package/scss/components/slug/slug.scss +11 -12
  417. package/scss/components/tabs/tabs.scss +7 -0
  418. package/scss/components/tile/tile.scss +1 -1
  419. package/scss/components/toggle-tip/toggletip.scss +0 -2
  420. package/scss/components/tooltip/tooltip.scss +0 -1
  421. package/telemetry.yml +11 -0
  422. package/dist/16-BXPirV4t.js +0 -28
  423. package/dist/16-BcPXq4VE.js +0 -28
  424. package/dist/16-BiojhJb6.js +0 -28
  425. package/dist/16-BirbARgt.js +0 -28
  426. package/dist/16-CCrV-EKs.js +0 -28
  427. package/dist/16-CNObEOvs.js +0 -28
  428. package/dist/16-CsHohlYG.js +0 -28
  429. package/dist/16-D9rqeJJl.js +0 -28
  430. package/dist/16-DEZ8LNs3.js +0 -28
  431. package/dist/16-DThcsE9v.js +0 -28
  432. package/dist/16-T0hLy__N.js +0 -28
  433. package/dist/16-mUGLFymm.js +0 -28
  434. package/dist/20-BSzLZNRY.js +0 -28
  435. package/dist/20-ZHgmfbqd.js +0 -28
  436. package/dist/accordion.min.js +0 -72
  437. package/dist/ai-label.min.js +0 -54
  438. package/dist/ai-skeleton.min.js +0 -37
  439. package/dist/badge-indicator.min.js +0 -28
  440. package/dist/breadcrumb.min.js +0 -46
  441. package/dist/button-3n7S6dfU.js +0 -94
  442. package/dist/button-skeleton-DE9AxBek.js +0 -48
  443. package/dist/button.min.js +0 -28
  444. package/dist/carbon-element-tFMTVffV.js +0 -28
  445. package/dist/chat-button.min.js +0 -40
  446. package/dist/checkbox-CFU6bnOa.js +0 -67
  447. package/dist/checkbox.min.js +0 -64
  448. package/dist/class-map-BLvVLLRH.js +0 -33
  449. package/dist/code-snippet.min.js +0 -85
  450. package/dist/collection-helpers-C8K_t6zj.js +0 -28
  451. package/dist/combo-box.min.js +0 -65
  452. package/dist/combo-button.min.js +0 -42
  453. package/dist/consume-DNv3sWri.js +0 -64
  454. package/dist/contained-list.min.js +0 -70
  455. package/dist/content-switcher-item-CXc-BbRX.js +0 -54
  456. package/dist/content-switcher.min.js +0 -28
  457. package/dist/copy-button.min.js +0 -44
  458. package/dist/data-table.min.js +0 -185
  459. package/dist/date-picker.min.js +0 -89
  460. package/dist/defs-CcLNpvSO.js +0 -28
  461. package/dist/directive-CwpJ03IP.js +0 -33
  462. package/dist/dropdown-item-CSXYY4Up.js +0 -100
  463. package/dist/dropdown.min.js +0 -31
  464. package/dist/feature-flags.min.js +0 -28
  465. package/dist/file-uploader.min.js +0 -106
  466. package/dist/floating-controller-ClaZwDaj.js +0 -28
  467. package/dist/floating-menu.min.js +0 -28
  468. package/dist/fluid-number-input.min.js +0 -28
  469. package/dist/fluid-search.min.js +0 -33
  470. package/dist/fluid-select.min.js +0 -30
  471. package/dist/fluid-text-input.min.js +0 -28
  472. package/dist/fluid-textarea.min.js +0 -36
  473. package/dist/focus-DCv16lgz.js +0 -28
  474. package/dist/form-D0wM2t2A.js +0 -28
  475. package/dist/form-group.min.js +0 -39
  476. package/dist/form.min.js +0 -30
  477. package/dist/grid.min.js +0 -60
  478. package/dist/heading.min.js +0 -33
  479. package/dist/host-listener-BFnrKETa.js +0 -28
  480. package/dist/host-listener-maKckXVl.js +0 -28
  481. package/dist/icon-button.min.js +0 -42
  482. package/dist/icon-indicator.min.js +0 -28
  483. package/dist/icon-loader-BiaaiIZd.js +0 -28
  484. package/dist/icon-loader-utils-Dw7YsY3n.js +0 -33
  485. package/dist/icon.min.js +0 -28
  486. package/dist/if-defined-B342gMhK.js +0 -33
  487. package/dist/if-non-empty-BXM4sQkm.js +0 -28
  488. package/dist/inline-loading.min.js +0 -39
  489. package/dist/layer.min.js +0 -28
  490. package/dist/link.min.js +0 -52
  491. package/dist/list.min.js +0 -39
  492. package/dist/lit-element-W7dQy3wx.js +0 -50
  493. package/dist/loading-icon-9dSwtpx9.js +0 -43
  494. package/dist/loading.min.js +0 -28
  495. package/dist/menu-button.min.js +0 -37
  496. package/dist/menu.min.js +0 -80
  497. package/dist/modal.min.js +0 -49
  498. package/dist/multi-select.min.js +0 -90
  499. package/dist/notification.min.js +0 -116
  500. package/dist/number-input.min.js +0 -103
  501. package/dist/on-Bh72-1o0.js +0 -28
  502. package/dist/overflow-menu.min.js +0 -49
  503. package/dist/page-header.min.js +0 -142
  504. package/dist/pagination.min.js +0 -104
  505. package/dist/password-input.min.js +0 -93
  506. package/dist/popover.min.js +0 -42
  507. package/dist/progress-bar.min.js +0 -49
  508. package/dist/progress-indicator.min.js +0 -62
  509. package/dist/property-D8KHfsO7.js +0 -33
  510. package/dist/query-DZZk85FD.js +0 -38
  511. package/dist/query-assigned-elements-CuK851Xm.js +0 -33
  512. package/dist/radio-button.min.js +0 -71
  513. package/dist/radio-group-manager-BbeUxJeN.js +0 -28
  514. package/dist/search-BpfBrZ_q.js +0 -58
  515. package/dist/search.min.js +0 -31
  516. package/dist/select-Bu-C3DEh.js +0 -109
  517. package/dist/select-item-CY7ZCgDO.js +0 -28
  518. package/dist/select-skeleton-Bj1W9rv-.js +0 -31
  519. package/dist/select.min.js +0 -28
  520. package/dist/settings-CVGvqY8T.js +0 -28
  521. package/dist/shape-indicator.min.js +0 -28
  522. package/dist/shared-enums-D2BNx9-N.js +0 -28
  523. package/dist/side-panel.min.js +0 -160
  524. package/dist/skeleton-icon.min.js +0 -28
  525. package/dist/skeleton-placeholder.min.js +0 -28
  526. package/dist/skeleton-text.min.js +0 -28
  527. package/dist/skip-to-content.min.js +0 -32
  528. package/dist/slider.min.js +0 -273
  529. package/dist/slug.min.js +0 -54
  530. package/dist/stack.min.js +0 -28
  531. package/dist/state-DVnprZ3A.js +0 -33
  532. package/dist/structured-list.min.js +0 -46
  533. package/dist/tabs.min.js +0 -85
  534. package/dist/tag.min.js +0 -155
  535. package/dist/tearsheet.min.js +0 -141
  536. package/dist/text-input-CMLDDQcE.js +0 -95
  537. package/dist/text-input.min.js +0 -31
  538. package/dist/textarea.min.js +0 -84
  539. package/dist/tile.min.js +0 -101
  540. package/dist/time-picker.min.js +0 -79
  541. package/dist/toggle-tip.min.js +0 -73
  542. package/dist/toggle.min.js +0 -63
  543. package/dist/tooltip-content-eYgOs_c2.js +0 -30
  544. package/dist/tooltip.min.js +0 -50
  545. package/dist/tree-view.min.js +0 -127
  546. package/dist/ui-shell.min.js +0 -156
  547. package/dist/unsafe-html-SGvBIOsG.js +0 -33
  548. package/dist/validity-CzCNnEZK.js +0 -28
@@ -1,14 +1,15 @@
1
1
  /**
2
- * Copyright IBM Corp. 2024
2
+ * Copyright IBM Corp. 2024, 2026
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
+ export type MenuContextUpdate = Partial<Omit<StateType, 'updateFromChild'>>;
7
8
  export type StateType = {
8
9
  isRoot: boolean;
9
10
  hasSelectableItems: boolean;
10
11
  size: 'xs' | 'sm' | 'md' | 'lg' | null;
11
- updateFromChild: (item: {}) => void;
12
+ updateFromChild: (item: MenuContextUpdate) => void;
12
13
  };
13
14
  export declare const menuDefaultState: StateType;
14
15
  export declare const MenuContext: {
@@ -8,7 +8,7 @@
8
8
  import { createContext } from '@lit/context';
9
9
 
10
10
  /**
11
- * Copyright IBM Corp. 2024
11
+ * Copyright IBM Corp. 2024, 2026
12
12
  *
13
13
  * This source code is licensed under the Apache-2.0 license found in the
14
14
  * LICENSE file in the root directory of this source tree.
@@ -1 +1 @@
1
- {"version":3,"file":"menu-context.js","sources":["../../../src/components/menu/menu-context.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { createContext } from '@lit/context';\nexport type StateType = {\n isRoot: boolean;\n hasSelectableItems: boolean;\n size: 'xs' | 'sm' | 'md' | 'lg' | null;\n //eslint-disable-next-line @typescript-eslint/no-empty-object-type -- https://github.com/carbon-design-system/carbon/issues/20452\n updateFromChild: (item: {}) => void;\n};\n\nexport const menuDefaultState: StateType = {\n isRoot: true,\n hasSelectableItems: false,\n size: null,\n updateFromChild: () => {},\n};\n\nexport const MenuContext = createContext<StateType>('myData');\n"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;AAKG;AAWI,MAAM,gBAAgB,GAAc;AACzC,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,kBAAkB,EAAE,KAAK;AACzB,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,eAAe,EAAE,MAAK,EAAE,CAAC;;MAGd,WAAW,GAAG,aAAa,CAAY,QAAQ;;;;"}
1
+ {"version":3,"file":"menu-context.js","sources":["../../../src/components/menu/menu-context.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2024, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { createContext } from '@lit/context';\n\nexport type MenuContextUpdate = Partial<Omit<StateType, 'updateFromChild'>>;\n\nexport type StateType = {\n isRoot: boolean;\n hasSelectableItems: boolean;\n size: 'xs' | 'sm' | 'md' | 'lg' | null;\n updateFromChild: (item: MenuContextUpdate) => void;\n};\n\nexport const menuDefaultState: StateType = {\n isRoot: true,\n hasSelectableItems: false,\n size: null,\n updateFromChild: () => {},\n};\n\nexport const MenuContext = createContext<StateType>('myData');\n"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;AAKG;AAaI,MAAM,gBAAgB,GAAc;AACzC,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,kBAAkB,EAAE,KAAK;AACzB,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,eAAe,EAAE,MAAK,EAAE,CAAC;;MAGd,WAAW,GAAG,aAAa,CAAY,QAAQ;;;;"}
@@ -1,10 +1,11 @@
1
1
  /**
2
- * Copyright IBM Corp. 2024, 2025
2
+ * Copyright IBM Corp. 2024, 2026
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import { LitElement } from 'lit';
8
+ import { type MenuContextUpdate } from './menu-context';
8
9
  import CDSmenuItem from './menu-item';
9
10
  import { MENU_BACKGROUND_TOKEN, MENU_SIZE } from './defs';
10
11
  export { MENU_SIZE };
@@ -368,7 +369,7 @@ declare const CDSMenu_base: {
368
369
  } & typeof LitElement;
369
370
  declare class CDSMenu extends CDSMenu_base {
370
371
  context: {
371
- updateFromChild: (updatedItem: any) => void;
372
+ updateFromChild: (updatedItem: MenuContextUpdate) => void;
372
373
  isRoot: boolean;
373
374
  hasSelectableItems: boolean;
374
375
  size: "xs" | "sm" | "md" | "lg" | null;
@@ -20,7 +20,7 @@ import { provide, consume } from '@lit/context';
20
20
  import { MENU_SIZE, MENU_BACKGROUND_TOKEN } from './defs.js';
21
21
 
22
22
  /**
23
- * Copyright IBM Corp. 2024, 2025
23
+ * Copyright IBM Corp. 2024, 2026
24
24
  *
25
25
  * This source code is licensed under the Apache-2.0 license found in the
26
26
  * LICENSE file in the root directory of this source tree.
@@ -314,13 +314,14 @@ let CDSMenu = class CDSMenu extends HostListenerMixin(LitElement) {
314
314
  this.context = Object.assign(Object.assign({}, this.context), { isRoot: false, size: this.size });
315
315
  };
316
316
  this._registerMenuItems = () => {
317
- var _a, _b;
317
+ var _a, _b, _c, _d;
318
318
  let items;
319
319
  if (this.isChild) {
320
- items = this.querySelector('slot[name="submenu"]').assignedElements();
320
+ const submenuSlot = this.querySelector('slot[name="submenu"]');
321
+ items = (_a = submenuSlot === null || submenuSlot === void 0 ? void 0 : submenuSlot.assignedElements()) !== null && _a !== void 0 ? _a : [];
321
322
  }
322
323
  else {
323
- items = (_b = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot')) === null || _b === void 0 ? void 0 : _b.assignedElements();
324
+ items = (_d = (_c = (_b = this.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('slot')) === null || _c === void 0 ? void 0 : _c.assignedElements()) !== null && _d !== void 0 ? _d : [];
324
325
  }
325
326
  this.items = items === null || items === void 0 ? void 0 : items.filter((item) => {
326
327
  if (item.tagName === 'CDS-MENU-ITEM') {
@@ -1 +1 @@
1
- {"version":3,"file":"menu.js","sources":["../../../src/components/menu/menu.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2024, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { prefix } from '../../globals/settings';\nimport { property, state } from 'lit/decorators.js';\nimport styles from './menu.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { MenuContext, menuDefaultState } from './menu-context';\nimport CDSmenuItem, { MENU_CLOSE_ROOT_EVENT } from './menu-item';\nimport { consume, provide } from '@lit/context';\nimport { MENU_BACKGROUND_TOKEN, MENU_SIZE } from './defs';\n\nexport { MENU_SIZE };\n\n/**\n * Menu.\n *\n * @element cds-menu\n * @deprecated Menus now always support both icons as well as selectable items and nesting.\n */\n\ntype activeItemType = {\n item: CDSmenuItem;\n parent: HTMLElement | null;\n};\n\n@customElement(`${prefix}-menu`)\nclass CDSMenu extends HostListenerMixin(LitElement) {\n @provide({ context: MenuContext })\n @consume({ context: MenuContext })\n context = {\n ...menuDefaultState,\n updateFromChild: (updatedItem) => {\n this.context = {\n ...this.context,\n ...updatedItem,\n };\n },\n };\n\n readonly spacing: number = 8; // distance to keep to window edges, in px\n\n /**\n * Items.\n */\n @state()\n items: Element[] | undefined = [];\n\n /**\n * Active list Items.\n */\n @state()\n activeitems: activeItemType[] = [];\n\n /**\n * Label for the menu.\n */\n @property({ type: String })\n label;\n /**\n * Parent state.\n */\n @property({ type: Boolean })\n isChild = false;\n /**\n * Action button width.\n */\n @property()\n actionButtonWidth;\n /**\n * Checks if document direction is rtl.\n */\n @property({ type: Boolean })\n isRtl = false;\n /**\n * Checks if Menu is root menu or not.\n */\n @property({ type: Boolean })\n isRoot = true;\n\n /**\n * Document direction.\n */\n @property({ type: String })\n direction = 'ltr';\n /**\n * Open value for the menu .\n */\n @property({ type: Boolean, reflect: true })\n open = true;\n /**\n * Active element in the DOM .\n */\n @property({ type: HTMLElement })\n focusreturn;\n /**\n * Position of the Menu .\n */\n @property()\n position = [-1, -1];\n /**\n * Size attribute .\n */\n @property({ attribute: true })\n size = MENU_SIZE.SMALL;\n /**\n * Deprecated: Menus now always support both icons as well as selectable items and nesting. The mode of this menu. Defaults to full. full supports nesting and selectable menu items, but no icons. basic supports icons but no nesting or selectable menu items.\n\n This prop is not intended for use and will be set by the respective implementation (like useContextMenu, MenuButton, and ComboButton).\n */\n @property()\n mode;\n\n /**\n * Specify the background token to use. Default is 'layer'.\n */\n @property({ type: String, attribute: 'background-token' })\n backgroundToken = MENU_BACKGROUND_TOKEN.LAYER;\n\n /**\n * Specify whether a border should be rendered on the menu\n */\n @property({ type: Boolean })\n border = false;\n\n /**\n * Specify how the menu should align with the button element\n */\n @property({ type: String })\n menuAlignment;\n /**\n * Position of the Menu in X axis .\n */\n @property()\n x: number | number[] = 0;\n /**\n * Position of the Menu in Y axis .\n */\n @property()\n y: number | number[] = 0;\n\n @HostListener('focusout')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleBlur = (e: FocusEvent) => {\n const { isRoot } = this.context;\n // Close the menu if all of the following are met:\n // * The menu is open\n // * The focusout event is on the root menu\n // * Focus is moving outside the menu\n if (this.open && isRoot && !this.contains(e.relatedTarget as Node)) {\n this.dispatchCloseEvent(e);\n }\n };\n\n /**\n * The name of the custom event fired when the the Menu should be closed.\n */\n static get eventOnClose() {\n return `${prefix}-menu-closed`;\n }\n /**\n * The name of the custom event fired when the the Menu should be opened.\n */\n static get eventOnOpen() {\n return `${prefix}-menu-opened`;\n }\n updated(changedProperties) {\n if (changedProperties.has('open')) {\n if (this.open) {\n this._handleOpen();\n } else {\n this._handleClose();\n }\n }\n }\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('icon-detect', () => {\n this.shadowRoot\n ?.querySelector('.cds--menu')\n ?.classList.add(`${prefix}--menu--with-icons`);\n });\n this.addEventListener(\n MENU_CLOSE_ROOT_EVENT,\n this._handleRootCloseRequest as EventListener\n );\n }\n\n disconnectedCallback() {\n this.removeEventListener(\n MENU_CLOSE_ROOT_EVENT,\n this._handleRootCloseRequest as EventListener\n );\n super.disconnectedCallback();\n }\n async firstUpdated() {\n this.isRtl = this.direction === 'rtl';\n this.isRoot = this.context.isRoot;\n\n if (this.isChild) {\n this._newContextCreate();\n }\n await this.updateComplete;\n this._registerMenuItems();\n this._setActiveItems();\n\n const slot = this.shadowRoot?.querySelector('slot');\n slot?.addEventListener('slotchange', () => {\n this._registerMenuItems();\n this._setActiveItems();\n });\n }\n render() {\n const {\n open,\n menuAlignment,\n label,\n position,\n _handleKeyDown: handleKeyDown,\n } = this;\n const menuClasses = classMap({\n [`${prefix}--menu`]: true,\n [`${prefix}--menu--${this.size}`]: this.size,\n [`${prefix}--menu--box-shadow-top`]:\n menuAlignment && menuAlignment.slice(0, 3) === 'top',\n [`${prefix}--menu--open`]: open,\n [`${prefix}--menu--shown`]: position[0] >= 0 && position[1] >= 0,\n [`${prefix}--menu--with-selectable-items`]:\n this.context.hasSelectableItems,\n [`${prefix}--menu--border`]: this.border,\n [`${prefix}--menu--background-token__background`]:\n this.backgroundToken === MENU_BACKGROUND_TOKEN.BACKGROUND,\n });\n return html`\n <ul\n class=\"${menuClasses}\"\n aria-label=\"${label}\"\n tabindex=\"-1\"\n @keydown=\"${handleKeyDown}\"\n role=\"menu\">\n <slot></slot>\n </ul>\n `;\n }\n\n _handleKeyDown = (e: KeyboardEvent) => {\n const { isRoot } = this.context;\n e.stopPropagation();\n // if the user presses escape or this is a submenu\n // and the user presses ArrowLeft, close it\n\n if (e.key === 'Escape' || (!isRoot && e.key === 'ArrowLeft')) {\n this.dispatchCloseEvent(e);\n } else {\n // Prevent scrolling when navigating menu items\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n e.preventDefault();\n }\n this._focusItem(e);\n }\n };\n\n _focusItem = (e: KeyboardEvent | undefined) => {\n let currentItem: number;\n\n if (document.activeElement?.tagName !== 'CDS-MENU') {\n const shadowRootActiveEl = this._findActiveElementInShadowRoot(document);\n currentItem = this.activeitems.findIndex((activeItem) => {\n return (\n shadowRootActiveEl == activeItem.item ||\n activeItem.item.shadowRoot?.activeElement === shadowRootActiveEl\n );\n });\n } else {\n currentItem = 0;\n }\n\n let indexToFocus = currentItem;\n // if currentItem is -1, no menu item is focused yet.\n // in this case, the first item should receive focus.\n if (currentItem === -1) {\n indexToFocus = 0;\n } else if (e) {\n if (e.key === 'ArrowUp') {\n indexToFocus = indexToFocus - 1;\n }\n if (e.key === 'ArrowDown') {\n indexToFocus = indexToFocus + 1;\n }\n }\n if (indexToFocus < 0) {\n indexToFocus = this.activeitems.length - 1;\n }\n if (indexToFocus >= this.activeitems.length) {\n indexToFocus = 0;\n }\n\n if (indexToFocus !== currentItem) {\n this.activeitems[indexToFocus]?.item?.focus();\n }\n };\n _findActiveElementInShadowRoot = (shadowRoot) => {\n if (shadowRoot === null) return null;\n\n let activeElement = shadowRoot.activeElement;\n while (\n activeElement &&\n activeElement.shadowRoot &&\n activeElement.shadowRoot.activeElement\n ) {\n activeElement = activeElement.shadowRoot.activeElement;\n }\n return activeElement;\n };\n\n _notEmpty = (value: number | null | undefined) => {\n return value !== null && value !== undefined;\n };\n _fitValue = (range: number[], axis: 'x' | 'y') => {\n const { isRoot } = this.context;\n\n // const isRoot = false\n const menuElement = this.shadowRoot?.querySelector(`.${prefix}--menu`);\n const { width, height } = (menuElement ?? this).getBoundingClientRect();\n const alignment = isRoot ? 'vertical' : 'horizontal';\n const axes = {\n x: {\n max: window.innerWidth,\n size: width,\n anchor: alignment === 'horizontal' ? range[1] : range[0],\n reversedAnchor: alignment === 'horizontal' ? range[0] : range[1],\n offset: 0,\n },\n y: {\n max: window.innerHeight,\n size: height,\n anchor: alignment === 'horizontal' ? range[0] : range[1],\n reversedAnchor: alignment === 'horizontal' ? range[1] : range[0],\n offset: isRoot ? 0 : 4, // top padding in menu, used to align the menu items\n },\n };\n\n // Avoid that the Menu render incorrectly when the postion is set in the right side of the screen\n if (\n this.actionButtonWidth &&\n this.actionButtonWidth < axes.x.size &&\n (this.menuAlignment === 'bottom' || this.menuAlignment === 'top')\n ) {\n axes.x.size = this.actionButtonWidth;\n }\n\n // if 'axes.x.anchor' is lower than 87px dynamically switch render side\n if (\n this.actionButtonWidth &&\n (this.menuAlignment === 'bottom-end' ||\n this.menuAlignment === 'top-end') &&\n axes.x.anchor >= 87 &&\n this.actionButtonWidth < axes.x.size\n ) {\n const diff = axes.x.anchor + axes.x.reversedAnchor;\n axes.x.anchor = axes.x.anchor + diff;\n }\n\n const { max, size, anchor, reversedAnchor, offset } = axes[axis];\n\n // get values for different scenarios, set to false if they don't work\n const options = [\n // towards max (preferred)\n max - this.spacing - size - anchor >= 0 ? anchor - offset : false,\n\n // towards min / reversed (first fallback)\n reversedAnchor - size >= 0 ? reversedAnchor - size + offset : false,\n\n // align at max (second fallback)\n max - this.spacing - size,\n ];\n const topAlignment =\n this.menuAlignment === 'top' ||\n this.menuAlignment === 'top-end' ||\n this.menuAlignment === 'top-start';\n // If the tooltip is not visible in the top, switch to the bototm\n if (\n typeof options[0] === 'number' &&\n topAlignment &&\n options[0] >= 0 &&\n !options[1] &&\n axis === 'y'\n ) {\n this.style.transform = 'translate(0)';\n } else if (topAlignment && !options[0] && axis === 'y') {\n options[0] = anchor - offset;\n }\n\n // Previous array `options`, has at least one item that is a number (the last one - second fallback).\n // That guarantees that the return of `find()` will always be a number\n // and we can safely add the numeric casting `as number`.\n const bestOption = options.find((option) => option !== false) as number;\n\n return bestOption >= this.spacing ? bestOption : this.spacing;\n };\n _getPosition = (x: number | (number | null | undefined)[]) => {\n if (Array.isArray(x)) {\n // has to be of length 2\n const filtered = x.filter(this._notEmpty);\n if (filtered.length === 2) {\n return filtered;\n } else {\n return;\n }\n } else {\n return [x, x];\n }\n };\n _calculatePosition = () => {\n const ranges = {\n x: this._getPosition(this.x),\n y: this._getPosition(this.y),\n };\n\n if (!ranges.x || !ranges.y) {\n return [-1, -1];\n }\n return [\n this._fitValue(ranges.x as number[], 'x') ?? -1,\n this._fitValue(ranges.y as number[], 'y') ?? -1,\n ];\n };\n _handleOpen = async () => {\n const pos = this._calculatePosition();\n if (this.isRtl) {\n this.style.insetInlineStart = `initial`;\n this.style.insetInlineEnd = `${pos[0]}px`;\n } else {\n this.style.insetInlineStart = `${pos[0]}px`;\n this.style.insetInlineEnd = `initial`;\n }\n this.style.insetBlockStart = `${pos[1]}px`;\n this.position = pos;\n\n await this.updateComplete;\n this._registerMenuItems();\n this._setActiveItems();\n\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n };\n if (\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSMenu).eventOnOpen, init)\n )\n ) {\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSMenu).eventOnOpen, init)\n );\n }\n };\n dispatchCloseEvent = (e?: Event) => {\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy: e?.target,\n triggerEventType: e?.type,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSMenu).eventOnClose, init)\n )\n ) {\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSMenu).eventOnClose, init)\n );\n }\n };\n private _handleClose = () => {\n this.position = [-1, -1];\n this.style.removeProperty('inset-inline-start');\n this.style.removeProperty('inset-inline-end');\n this.style.removeProperty('inset-block-start');\n };\n private _handleRootCloseRequest = (\n event: CustomEvent<{ triggerEvent?: Event }>\n ) => {\n if (!this.context?.isRoot) {\n return;\n }\n\n this.dispatchCloseEvent(event.detail?.triggerEvent ?? event);\n };\n _newContextCreate = () => {\n this.context = {\n ...this.context,\n isRoot: false,\n size: this.size,\n };\n };\n _registerMenuItems = () => {\n let items;\n if (this.isChild) {\n items = (\n this.querySelector('slot[name=\"submenu\"]') as HTMLSlotElement\n ).assignedElements();\n } else {\n items = this.shadowRoot?.querySelector('slot')?.assignedElements();\n }\n this.items = items?.filter((item) => {\n if (item.tagName === 'CDS-MENU-ITEM') {\n return !(item as CDSmenuItem).disabled;\n }\n return item.tagName !== 'CDS-MENU-ITEM-DIVIDER';\n });\n };\n _setActiveItems = () => {\n this.activeitems = [];\n\n this.items?.map((item) => {\n let activeItem: activeItemType;\n switch (item.tagName) {\n case 'CDS-MENU-ITEM-RADIO-GROUP': {\n const slotElements = item.querySelectorAll(`${prefix}-menu-item`);\n if (slotElements?.length) {\n for (const entry of slotElements.entries()) {\n activeItem = {\n item: entry[1] as CDSmenuItem,\n parent: item as HTMLElement,\n };\n this.activeitems = [...this.activeitems, activeItem];\n }\n }\n break;\n }\n case 'CDS-MENU-ITEM-GROUP': {\n const slotElements = item.shadowRoot\n ?.querySelector('slot')\n ?.assignedElements();\n slotElements?.map((el) => {\n activeItem = {\n item: el as CDSmenuItem,\n parent: el as HTMLElement,\n };\n this.activeitems = [...this.activeitems, activeItem];\n });\n break;\n }\n case 'CDS-MENU-ITEM-SELECTABLE': {\n activeItem = {\n item: item.shadowRoot?.querySelector(\n `${prefix}-menu-item`\n ) as CDSmenuItem,\n parent: item as HTMLElement,\n };\n this.activeitems = [...this.activeitems, activeItem];\n break;\n }\n default: {\n activeItem = {\n item: item as CDSmenuItem,\n parent: null,\n };\n this.activeitems = [...this.activeitems, activeItem];\n }\n }\n });\n const activeEl = this.activeitems[0]?.item ?? document.activeElement;\n activeEl.focus();\n };\n static styles = styles;\n}\nexport default CDSMenu;\n"],"names":["customElement"],"mappings":"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"}
1
+ {"version":3,"file":"menu.js","sources":["../../../src/components/menu/menu.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2024, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { prefix } from '../../globals/settings';\nimport { property, state } from 'lit/decorators.js';\nimport styles from './menu.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { classMap } from 'lit/directives/class-map.js';\nimport {\n MenuContext,\n menuDefaultState,\n type MenuContextUpdate,\n} from './menu-context';\nimport CDSmenuItem, { MENU_CLOSE_ROOT_EVENT } from './menu-item';\nimport { consume, provide } from '@lit/context';\nimport { MENU_BACKGROUND_TOKEN, MENU_SIZE } from './defs';\n\nexport { MENU_SIZE };\n\n/**\n * Menu.\n *\n * @element cds-menu\n * @deprecated Menus now always support both icons as well as selectable items and nesting.\n */\n\ntype activeItemType = {\n item: CDSmenuItem;\n parent: HTMLElement | null;\n};\n\n@customElement(`${prefix}-menu`)\nclass CDSMenu extends HostListenerMixin(LitElement) {\n @provide({ context: MenuContext })\n @consume({ context: MenuContext })\n context = {\n ...menuDefaultState,\n updateFromChild: (updatedItem: MenuContextUpdate) => {\n this.context = {\n ...this.context,\n ...updatedItem,\n };\n },\n };\n\n readonly spacing: number = 8; // distance to keep to window edges, in px\n\n /**\n * Items.\n */\n @state()\n items: Element[] | undefined = [];\n\n /**\n * Active list Items.\n */\n @state()\n activeitems: activeItemType[] = [];\n\n /**\n * Label for the menu.\n */\n @property({ type: String })\n label;\n /**\n * Parent state.\n */\n @property({ type: Boolean })\n isChild = false;\n /**\n * Action button width.\n */\n @property()\n actionButtonWidth;\n /**\n * Checks if document direction is rtl.\n */\n @property({ type: Boolean })\n isRtl = false;\n /**\n * Checks if Menu is root menu or not.\n */\n @property({ type: Boolean })\n isRoot = true;\n\n /**\n * Document direction.\n */\n @property({ type: String })\n direction = 'ltr';\n /**\n * Open value for the menu .\n */\n @property({ type: Boolean, reflect: true })\n open = true;\n /**\n * Active element in the DOM .\n */\n @property({ type: HTMLElement })\n focusreturn;\n /**\n * Position of the Menu .\n */\n @property()\n position = [-1, -1];\n /**\n * Size attribute .\n */\n @property({ attribute: true })\n size = MENU_SIZE.SMALL;\n /**\n * Deprecated: Menus now always support both icons as well as selectable items and nesting. The mode of this menu. Defaults to full. full supports nesting and selectable menu items, but no icons. basic supports icons but no nesting or selectable menu items.\n\n This prop is not intended for use and will be set by the respective implementation (like useContextMenu, MenuButton, and ComboButton).\n */\n @property()\n mode;\n\n /**\n * Specify the background token to use. Default is 'layer'.\n */\n @property({ type: String, attribute: 'background-token' })\n backgroundToken = MENU_BACKGROUND_TOKEN.LAYER;\n\n /**\n * Specify whether a border should be rendered on the menu\n */\n @property({ type: Boolean })\n border = false;\n\n /**\n * Specify how the menu should align with the button element\n */\n @property({ type: String })\n menuAlignment;\n /**\n * Position of the Menu in X axis .\n */\n @property()\n x: number | number[] = 0;\n /**\n * Position of the Menu in Y axis .\n */\n @property()\n y: number | number[] = 0;\n\n @HostListener('focusout')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleBlur = (e: FocusEvent) => {\n const { isRoot } = this.context;\n // Close the menu if all of the following are met:\n // * The menu is open\n // * The focusout event is on the root menu\n // * Focus is moving outside the menu\n if (this.open && isRoot && !this.contains(e.relatedTarget as Node)) {\n this.dispatchCloseEvent(e);\n }\n };\n\n /**\n * The name of the custom event fired when the the Menu should be closed.\n */\n static get eventOnClose() {\n return `${prefix}-menu-closed`;\n }\n /**\n * The name of the custom event fired when the the Menu should be opened.\n */\n static get eventOnOpen() {\n return `${prefix}-menu-opened`;\n }\n updated(changedProperties) {\n if (changedProperties.has('open')) {\n if (this.open) {\n this._handleOpen();\n } else {\n this._handleClose();\n }\n }\n }\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('icon-detect', () => {\n this.shadowRoot\n ?.querySelector('.cds--menu')\n ?.classList.add(`${prefix}--menu--with-icons`);\n });\n this.addEventListener(\n MENU_CLOSE_ROOT_EVENT,\n this._handleRootCloseRequest as EventListener\n );\n }\n\n disconnectedCallback() {\n this.removeEventListener(\n MENU_CLOSE_ROOT_EVENT,\n this._handleRootCloseRequest as EventListener\n );\n super.disconnectedCallback();\n }\n async firstUpdated() {\n this.isRtl = this.direction === 'rtl';\n this.isRoot = this.context.isRoot;\n\n if (this.isChild) {\n this._newContextCreate();\n }\n await this.updateComplete;\n this._registerMenuItems();\n this._setActiveItems();\n\n const slot = this.shadowRoot?.querySelector('slot');\n slot?.addEventListener('slotchange', () => {\n this._registerMenuItems();\n this._setActiveItems();\n });\n }\n render() {\n const {\n open,\n menuAlignment,\n label,\n position,\n _handleKeyDown: handleKeyDown,\n } = this;\n const menuClasses = classMap({\n [`${prefix}--menu`]: true,\n [`${prefix}--menu--${this.size}`]: this.size,\n [`${prefix}--menu--box-shadow-top`]:\n menuAlignment && menuAlignment.slice(0, 3) === 'top',\n [`${prefix}--menu--open`]: open,\n [`${prefix}--menu--shown`]: position[0] >= 0 && position[1] >= 0,\n [`${prefix}--menu--with-selectable-items`]:\n this.context.hasSelectableItems,\n [`${prefix}--menu--border`]: this.border,\n [`${prefix}--menu--background-token__background`]:\n this.backgroundToken === MENU_BACKGROUND_TOKEN.BACKGROUND,\n });\n return html`\n <ul\n class=\"${menuClasses}\"\n aria-label=\"${label}\"\n tabindex=\"-1\"\n @keydown=\"${handleKeyDown}\"\n role=\"menu\">\n <slot></slot>\n </ul>\n `;\n }\n\n _handleKeyDown = (e: KeyboardEvent) => {\n const { isRoot } = this.context;\n e.stopPropagation();\n // if the user presses escape or this is a submenu\n // and the user presses ArrowLeft, close it\n\n if (e.key === 'Escape' || (!isRoot && e.key === 'ArrowLeft')) {\n this.dispatchCloseEvent(e);\n } else {\n // Prevent scrolling when navigating menu items\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n e.preventDefault();\n }\n this._focusItem(e);\n }\n };\n\n _focusItem = (e: KeyboardEvent | undefined) => {\n let currentItem: number;\n\n if (document.activeElement?.tagName !== 'CDS-MENU') {\n const shadowRootActiveEl = this._findActiveElementInShadowRoot(document);\n currentItem = this.activeitems.findIndex((activeItem) => {\n return (\n shadowRootActiveEl == activeItem.item ||\n activeItem.item.shadowRoot?.activeElement === shadowRootActiveEl\n );\n });\n } else {\n currentItem = 0;\n }\n\n let indexToFocus = currentItem;\n // if currentItem is -1, no menu item is focused yet.\n // in this case, the first item should receive focus.\n if (currentItem === -1) {\n indexToFocus = 0;\n } else if (e) {\n if (e.key === 'ArrowUp') {\n indexToFocus = indexToFocus - 1;\n }\n if (e.key === 'ArrowDown') {\n indexToFocus = indexToFocus + 1;\n }\n }\n if (indexToFocus < 0) {\n indexToFocus = this.activeitems.length - 1;\n }\n if (indexToFocus >= this.activeitems.length) {\n indexToFocus = 0;\n }\n\n if (indexToFocus !== currentItem) {\n this.activeitems[indexToFocus]?.item?.focus();\n }\n };\n _findActiveElementInShadowRoot = (shadowRoot) => {\n if (shadowRoot === null) return null;\n\n let activeElement = shadowRoot.activeElement;\n while (\n activeElement &&\n activeElement.shadowRoot &&\n activeElement.shadowRoot.activeElement\n ) {\n activeElement = activeElement.shadowRoot.activeElement;\n }\n return activeElement;\n };\n\n _notEmpty = (value: number | null | undefined) => {\n return value !== null && value !== undefined;\n };\n _fitValue = (range: number[], axis: 'x' | 'y') => {\n const { isRoot } = this.context;\n\n // const isRoot = false\n const menuElement = this.shadowRoot?.querySelector(`.${prefix}--menu`);\n const { width, height } = (menuElement ?? this).getBoundingClientRect();\n const alignment = isRoot ? 'vertical' : 'horizontal';\n const axes = {\n x: {\n max: window.innerWidth,\n size: width,\n anchor: alignment === 'horizontal' ? range[1] : range[0],\n reversedAnchor: alignment === 'horizontal' ? range[0] : range[1],\n offset: 0,\n },\n y: {\n max: window.innerHeight,\n size: height,\n anchor: alignment === 'horizontal' ? range[0] : range[1],\n reversedAnchor: alignment === 'horizontal' ? range[1] : range[0],\n offset: isRoot ? 0 : 4, // top padding in menu, used to align the menu items\n },\n };\n\n // Avoid that the Menu render incorrectly when the postion is set in the right side of the screen\n if (\n this.actionButtonWidth &&\n this.actionButtonWidth < axes.x.size &&\n (this.menuAlignment === 'bottom' || this.menuAlignment === 'top')\n ) {\n axes.x.size = this.actionButtonWidth;\n }\n\n // if 'axes.x.anchor' is lower than 87px dynamically switch render side\n if (\n this.actionButtonWidth &&\n (this.menuAlignment === 'bottom-end' ||\n this.menuAlignment === 'top-end') &&\n axes.x.anchor >= 87 &&\n this.actionButtonWidth < axes.x.size\n ) {\n const diff = axes.x.anchor + axes.x.reversedAnchor;\n axes.x.anchor = axes.x.anchor + diff;\n }\n\n const { max, size, anchor, reversedAnchor, offset } = axes[axis];\n\n // get values for different scenarios, set to false if they don't work\n const options = [\n // towards max (preferred)\n max - this.spacing - size - anchor >= 0 ? anchor - offset : false,\n\n // towards min / reversed (first fallback)\n reversedAnchor - size >= 0 ? reversedAnchor - size + offset : false,\n\n // align at max (second fallback)\n max - this.spacing - size,\n ];\n const topAlignment =\n this.menuAlignment === 'top' ||\n this.menuAlignment === 'top-end' ||\n this.menuAlignment === 'top-start';\n // If the tooltip is not visible in the top, switch to the bototm\n if (\n typeof options[0] === 'number' &&\n topAlignment &&\n options[0] >= 0 &&\n !options[1] &&\n axis === 'y'\n ) {\n this.style.transform = 'translate(0)';\n } else if (topAlignment && !options[0] && axis === 'y') {\n options[0] = anchor - offset;\n }\n\n // Previous array `options`, has at least one item that is a number (the last one - second fallback).\n // That guarantees that the return of `find()` will always be a number\n // and we can safely add the numeric casting `as number`.\n const bestOption = options.find((option) => option !== false) as number;\n\n return bestOption >= this.spacing ? bestOption : this.spacing;\n };\n _getPosition = (x: number | (number | null | undefined)[]) => {\n if (Array.isArray(x)) {\n // has to be of length 2\n const filtered = x.filter(this._notEmpty);\n if (filtered.length === 2) {\n return filtered;\n } else {\n return;\n }\n } else {\n return [x, x];\n }\n };\n _calculatePosition = () => {\n const ranges = {\n x: this._getPosition(this.x),\n y: this._getPosition(this.y),\n };\n\n if (!ranges.x || !ranges.y) {\n return [-1, -1];\n }\n return [\n this._fitValue(ranges.x as number[], 'x') ?? -1,\n this._fitValue(ranges.y as number[], 'y') ?? -1,\n ];\n };\n _handleOpen = async () => {\n const pos = this._calculatePosition();\n if (this.isRtl) {\n this.style.insetInlineStart = `initial`;\n this.style.insetInlineEnd = `${pos[0]}px`;\n } else {\n this.style.insetInlineStart = `${pos[0]}px`;\n this.style.insetInlineEnd = `initial`;\n }\n this.style.insetBlockStart = `${pos[1]}px`;\n this.position = pos;\n\n await this.updateComplete;\n this._registerMenuItems();\n this._setActiveItems();\n\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n };\n if (\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSMenu).eventOnOpen, init)\n )\n ) {\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSMenu).eventOnOpen, init)\n );\n }\n };\n dispatchCloseEvent = (e?: Event) => {\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy: e?.target,\n triggerEventType: e?.type,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSMenu).eventOnClose, init)\n )\n ) {\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSMenu).eventOnClose, init)\n );\n }\n };\n private _handleClose = () => {\n this.position = [-1, -1];\n this.style.removeProperty('inset-inline-start');\n this.style.removeProperty('inset-inline-end');\n this.style.removeProperty('inset-block-start');\n };\n private _handleRootCloseRequest = (\n event: CustomEvent<{ triggerEvent?: Event }>\n ) => {\n if (!this.context?.isRoot) {\n return;\n }\n\n this.dispatchCloseEvent(event.detail?.triggerEvent ?? event);\n };\n _newContextCreate = () => {\n this.context = {\n ...this.context,\n isRoot: false,\n size: this.size,\n };\n };\n _registerMenuItems = () => {\n let items;\n if (this.isChild) {\n const submenuSlot = this.querySelector(\n 'slot[name=\"submenu\"]'\n ) as HTMLSlotElement | null;\n items = submenuSlot?.assignedElements() ?? [];\n } else {\n items = this.shadowRoot?.querySelector('slot')?.assignedElements() ?? [];\n }\n this.items = items?.filter((item) => {\n if (item.tagName === 'CDS-MENU-ITEM') {\n return !(item as CDSmenuItem).disabled;\n }\n return item.tagName !== 'CDS-MENU-ITEM-DIVIDER';\n });\n };\n _setActiveItems = () => {\n this.activeitems = [];\n\n this.items?.map((item) => {\n let activeItem: activeItemType;\n switch (item.tagName) {\n case 'CDS-MENU-ITEM-RADIO-GROUP': {\n const slotElements = item.querySelectorAll(`${prefix}-menu-item`);\n if (slotElements?.length) {\n for (const entry of slotElements.entries()) {\n activeItem = {\n item: entry[1] as CDSmenuItem,\n parent: item as HTMLElement,\n };\n this.activeitems = [...this.activeitems, activeItem];\n }\n }\n break;\n }\n case 'CDS-MENU-ITEM-GROUP': {\n const slotElements = item.shadowRoot\n ?.querySelector('slot')\n ?.assignedElements();\n slotElements?.map((el) => {\n activeItem = {\n item: el as CDSmenuItem,\n parent: el as HTMLElement,\n };\n this.activeitems = [...this.activeitems, activeItem];\n });\n break;\n }\n case 'CDS-MENU-ITEM-SELECTABLE': {\n activeItem = {\n item: item.shadowRoot?.querySelector(\n `${prefix}-menu-item`\n ) as CDSmenuItem,\n parent: item as HTMLElement,\n };\n this.activeitems = [...this.activeitems, activeItem];\n break;\n }\n default: {\n activeItem = {\n item: item as CDSmenuItem,\n parent: null,\n };\n this.activeitems = [...this.activeitems, activeItem];\n }\n }\n });\n const activeEl = this.activeitems[0]?.item ?? document.activeElement;\n activeEl.focus();\n };\n static styles = styles;\n}\nexport default CDSMenu;\n"],"names":["customElement"],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
 
8
8
  import { css } from 'lit';
9
9
 
10
- var styles = css(["@keyframes cds--hide-feedback{0%{opacity:1;visibility:inherit}to{opacity:0;visibility:hidden}}@keyframes cds--show-feedback{0%{opacity:0;visibility:hidden}to{opacity:1;visibility:inherit}}@keyframes cds--skeleton{0%{opacity:.3;transform:scaleX(0);transform-origin:left}20%{opacity:1;transform:scaleX(1);transform-origin:left}28%{transform:scaleX(1);transform-origin:right}51%{transform:scaleX(0);transform-origin:right}58%{transform:scaleX(0);transform-origin:right}82%{transform:scaleX(1);transform-origin:right}83%{transform:scaleX(1);transform-origin:left}96%{transform:scaleX(0);transform-origin:left}to{opacity:.3;transform:scaleX(0);transform-origin:left}}.cds--layout--size-xs{--cds-layout-size-height-context:var(--cds-layout-size-height-xs,1.5rem);--cds-layout-size-height:var(--cds-layout-size-height-context)}.cds--layout-constraint--size__default-xs{--cds-layout-size-height:var(--cds-layout-size-height-context,var(--cds-layout-size-height-xs,1.5rem))}.cds--layout-constraint--size__min-xs{--cds-layout-size-height-min:var(--cds-layout-size-height-xs,1.5rem)}.cds--layout-constraint--size__max-xs{--cds-layout-size-height-max:var(--cds-layout-size-height-xs,1.5rem)}.cds--layout--size-sm{--cds-layout-size-height-context:var(--cds-layout-size-height-sm,2rem);--cds-layout-size-height:var(--cds-layout-size-height-context)}.cds--layout-constraint--size__default-sm{--cds-layout-size-height:var(--cds-layout-size-height-context,var(--cds-layout-size-height-sm,2rem))}.cds--layout-constraint--size__min-sm{--cds-layout-size-height-min:var(--cds-layout-size-height-sm,2rem)}.cds--layout-constraint--size__max-sm{--cds-layout-size-height-max:var(--cds-layout-size-height-sm,2rem)}.cds--layout--size-md{--cds-layout-size-height-context:var(--cds-layout-size-height-md,2.5rem);--cds-layout-size-height:var(--cds-layout-size-height-context)}.cds--layout-constraint--size__default-md{--cds-layout-size-height:var(--cds-layout-size-height-context,var(--cds-layout-size-height-md,2.5rem))}.cds--layout-constraint--size__min-md{--cds-layout-size-height-min:var(--cds-layout-size-height-md,2.5rem)}.cds--layout-constraint--size__max-md{--cds-layout-size-height-max:var(--cds-layout-size-height-md,2.5rem)}.cds--layout--size-lg{--cds-layout-size-height-context:var(--cds-layout-size-height-lg,3rem);--cds-layout-size-height:var(--cds-layout-size-height-context)}.cds--layout-constraint--size__default-lg{--cds-layout-size-height:var(--cds-layout-size-height-context,var(--cds-layout-size-height-lg,3rem))}.cds--layout-constraint--size__min-lg{--cds-layout-size-height-min:var(--cds-layout-size-height-lg,3rem)}.cds--layout-constraint--size__max-lg{--cds-layout-size-height-max:var(--cds-layout-size-height-lg,3rem)}.cds--layout--size-xl{--cds-layout-size-height-context:var(--cds-layout-size-height-xl,4rem);--cds-layout-size-height:var(--cds-layout-size-height-context)}.cds--layout-constraint--size__default-xl{--cds-layout-size-height:var(--cds-layout-size-height-context,var(--cds-layout-size-height-xl,4rem))}.cds--layout-constraint--size__min-xl{--cds-layout-size-height-min:var(--cds-layout-size-height-xl,4rem)}.cds--layout-constraint--size__max-xl{--cds-layout-size-height-max:var(--cds-layout-size-height-xl,4rem)}.cds--layout--size-2xl{--cds-layout-size-height-context:var(--cds-layout-size-height-2xl,5rem);--cds-layout-size-height:var(--cds-layout-size-height-context)}.cds--layout-constraint--size__default-2xl{--cds-layout-size-height:var(--cds-layout-size-height-context,var(--cds-layout-size-height-2xl,5rem))}.cds--layout-constraint--size__min-2xl{--cds-layout-size-height-min:var(--cds-layout-size-height-2xl,5rem)}.cds--layout-constraint--size__max-2xl{--cds-layout-size-height-max:var(--cds-layout-size-height-2xl,5rem)}.cds--layout--density-condensed{--cds-layout-density-padding-inline-context:var(--cds-layout-density-padding-inline-condensed,0.5rem);--cds-layout-density-padding-inline:var(--cds-layout-density-padding-inline-context)}.cds--layout-constraint--density__default-condensed{--cds-layout-density-padding-inline:var(--cds-layout-density-padding-inline-context,var(--cds-layout-density-padding-inline-condensed,0.5rem))}.cds--layout-constraint--density__min-condensed{--cds-layout-density-padding-inline-min:var(--cds-layout-density-padding-inline-condensed,0.5rem)}.cds--layout-constraint--density__max-condensed{--cds-layout-density-padding-inline-max:var(--cds-layout-density-padding-inline-condensed,0.5rem)}.cds--layout--density-normal{--cds-layout-density-padding-inline-context:var(--cds-layout-density-padding-inline-normal,1rem);--cds-layout-density-padding-inline:var(--cds-layout-density-padding-inline-context)}.cds--layout-constraint--density__default-normal{--cds-layout-density-padding-inline:var(--cds-layout-density-padding-inline-context,var(--cds-layout-density-padding-inline-normal,1rem))}.cds--layout-constraint--density__min-normal{--cds-layout-density-padding-inline-min:var(--cds-layout-density-padding-inline-normal,1rem)}.cds--layout-constraint--density__max-normal{--cds-layout-density-padding-inline-max:var(--cds-layout-density-padding-inline-normal,1rem)}:root{--cds-layout-size-height-xs:1.5rem;--cds-layout-size-height-sm:2rem;--cds-layout-size-height-md:2.5rem;--cds-layout-size-height-lg:3rem;--cds-layout-size-height-xl:4rem;--cds-layout-size-height-2xl:5rem;--cds-layout-size-height-min:0px;--cds-layout-size-height-max:999999999px;--cds-layout-density-padding-inline-condensed:0.5rem;--cds-layout-density-padding-inline-normal:1rem;--cds-layout-density-padding-inline-min:0px;--cds-layout-density-padding-inline-max:999999999px}.cds--assistive-text,.cds--visually-hidden{block-size:1px;border:0;margin:-1px;overflow:hidden;padding:0;position:absolute;clip:rect(0,0,0,0);inline-size:1px;visibility:inherit;white-space:nowrap}.cds--layer-one,:root{--cds-layer:var(--cds-layer-01,#f4f4f4);--cds-layer-active:var(--cds-layer-active-01,#c6c6c6);--cds-layer-background:var(--cds-layer-background-01,#fff);--cds-layer-hover:var(--cds-layer-hover-01,#e8e8e8);--cds-layer-selected:var(--cds-layer-selected-01,#e0e0e0);--cds-layer-selected-hover:var(--cds-layer-selected-hover-01,#d1d1d1);--cds-layer-accent:var(--cds-layer-accent-01,#e0e0e0);--cds-layer-accent-hover:var(--cds-layer-accent-hover-01,#d1d1d1);--cds-layer-accent-active:var(--cds-layer-accent-active-01,#a8a8a8);--cds-field:var(--cds-field-01,#f4f4f4);--cds-field-hover:var(--cds-field-hover-01,#e8e8e8);--cds-border-subtle:var(--cds-border-subtle-00,#e0e0e0);--cds-border-subtle-selected:var(--cds-border-subtle-selected-01,#c6c6c6);--cds-border-strong:var(--cds-border-strong-01,#8d8d8d);--cds-border-tile:var(--cds-border-tile-01,#c6c6c6)}.cds--layer-two{--cds-layer:var(--cds-layer-02,#fff);--cds-layer-active:var(--cds-layer-active-02,#c6c6c6);--cds-layer-background:var(--cds-layer-background-02,#f4f4f4);--cds-layer-hover:var(--cds-layer-hover-02,#e8e8e8);--cds-layer-selected:var(--cds-layer-selected-02,#e0e0e0);--cds-layer-selected-hover:var(--cds-layer-selected-hover-02,#d1d1d1);--cds-layer-accent:var(--cds-layer-accent-02,#e0e0e0);--cds-layer-accent-hover:var(--cds-layer-accent-hover-02,#d1d1d1);--cds-layer-accent-active:var(--cds-layer-accent-active-02,#a8a8a8);--cds-field:var(--cds-field-02,#fff);--cds-field-hover:var(--cds-field-hover-02,#e8e8e8);--cds-border-subtle:var(--cds-border-subtle-01,#c6c6c6);--cds-border-subtle-selected:var(--cds-border-subtle-selected-02,#c6c6c6);--cds-border-strong:var(--cds-border-strong-02,#8d8d8d);--cds-border-tile:var(--cds-border-tile-02,#a8a8a8)}.cds--layer-three{--cds-layer:var(--cds-layer-03,#f4f4f4);--cds-layer-active:var(--cds-layer-active-03,#c6c6c6);--cds-layer-background:var(--cds-layer-background-03,#fff);--cds-layer-hover:var(--cds-layer-hover-03,#e8e8e8);--cds-layer-selected:var(--cds-layer-selected-03,#e0e0e0);--cds-layer-selected-hover:var(--cds-layer-selected-hover-03,#d1d1d1);--cds-layer-accent:var(--cds-layer-accent-03,#e0e0e0);--cds-layer-accent-hover:var(--cds-layer-accent-hover-03,#d1d1d1);--cds-layer-accent-active:var(--cds-layer-accent-active-03,#a8a8a8);--cds-field:var(--cds-field-03,#f4f4f4);--cds-field-hover:var(--cds-field-hover-03,#e8e8e8);--cds-border-subtle:var(--cds-border-subtle-02,#e0e0e0);--cds-border-subtle-selected:var(--cds-border-subtle-selected-03,#c6c6c6);--cds-border-strong:var(--cds-border-strong-03,#8d8d8d);--cds-border-tile:var(--cds-border-tile-03,#c6c6c6)}.cds--layer-one.cds--layer__with-background,.cds--layer-three.cds--layer__with-background,.cds--layer-two.cds--layer__with-background{background-color:var(--cds-layer-background)}.cds--menu{border:0;box-sizing:border-box;font-family:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}.cds--menu *,.cds--menu :after,.cds--menu :before{box-sizing:inherit}.cds--menu{background-color:var(--cds-layer);box-shadow:0 2px 6px var(--cds-shadow,rgba(0,0,0,.3));max-inline-size:18rem;min-inline-size:10rem;opacity:0;padding:.25rem 0;position:fixed;visibility:hidden;z-index:9000}.cds--menu--border{outline:1px solid var(--cds-border-subtle)}.cds--menu--background-token__background{background-color:var(--cds-background,#fff)}.cds--menu--shown{overflow:visible}.cds--menu-item{align-items:center;block-size:2rem;color:var(--cds-text-secondary,#525252);-moz-column-gap:.5rem;column-gap:.5rem;cursor:pointer;display:grid;font-size:var(--cds-body-short-01-font-size,.875rem);font-weight:var(--cds-body-short-01-font-weight,400);grid-template-columns:1fr max-content;letter-spacing:var(--cds-body-short-01-letter-spacing,.16px);line-height:var(--cds-body-short-01-line-height,1.28572);padding-inline:1rem;transition:background-color 70ms cubic-bezier(.2,0,.38,.9)}.cds--menu-item:focus{outline:2px solid var(--cds-focus,#0f62fe);outline-offset:-2px}@media screen and (prefers-contrast){.cds--menu-item:focus{outline-style:dotted}}.cds--menu-item:hover{background-color:var(--cds-layer-hover);color:var(--cds-text-primary,#161616)}.cds--menu--xs .cds--menu-item{block-size:1.5rem}.cds--menu--sm .cds--menu-item{block-size:2rem}.cds--menu--md .cds--menu-item{block-size:2.5rem}.cds--menu--lg .cds--menu-item{block-size:3rem}.cds--menu-item__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cds--menu-item__shortcut{display:flex}.cds--menu-item-group>ul,.cds--menu-item-radio-group>ul{border:0;box-sizing:border-box;font-family:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}.cds--menu-item-group>ul *,.cds--menu-item-group>ul :after,.cds--menu-item-group>ul :before,.cds--menu-item-radio-group>ul *,.cds--menu-item-radio-group>ul :after,.cds--menu-item-radio-group>ul :before{box-sizing:inherit}.cds--menu-item__icon,.cds--menu-item__selection-icon{display:none}.cds--menu--with-icons>.cds--menu-item,.cds--menu--with-icons>.cds--menu-item-group>ul>.cds--menu-item,.cds--menu--with-icons>.cds--menu-item-radio-group>ul>.cds--menu-item,.cds--menu--with-selectable-items>.cds--menu-item,.cds--menu--with-selectable-items>.cds--menu-item-group>ul>.cds--menu-item,.cds--menu--with-selectable-items>.cds--menu-item-radio-group>ul>.cds--menu-item{grid-template-columns:1rem 1fr max-content}.cds--menu--with-icons>.cds--menu-item-group>ul>.cds--menu-item>.cds--menu-item__icon,.cds--menu--with-icons>.cds--menu-item-radio-group>ul>.cds--menu-item>.cds--menu-item__icon,.cds--menu--with-icons>.cds--menu-item>.cds--menu-item__icon,.cds--menu--with-selectable-items>.cds--menu-item-group>ul>.cds--menu-item>.cds--menu-item__selection-icon,.cds--menu--with-selectable-items>.cds--menu-item-radio-group>ul>.cds--menu-item>.cds--menu-item__selection-icon,.cds--menu--with-selectable-items>.cds--menu-item>.cds--menu-item__selection-icon{display:flex}.cds--menu--with-icons.cds--menu--with-selectable-items>.cds--menu-item,.cds--menu--with-icons.cds--menu--with-selectable-items>.cds--menu-item-group>ul>.cds--menu-item,.cds--menu--with-icons.cds--menu--with-selectable-items>.cds--menu-item-radio-group>ul>.cds--menu-item{grid-template-columns:1rem 1rem 1fr max-content}.cds--menu-item--disabled{color:var(--cds-text-disabled,hsla(0,0%,9%,.25));cursor:not-allowed}.cds--menu-item--disabled.cds--menu-item--danger:hover,.cds--menu-item--disabled:hover{background-color:var(--cds-layer);color:var(--cds-text-disabled,hsla(0,0%,9%,.25))}.cds--menu-item--danger:focus,.cds--menu-item--danger:hover{background-color:var(--cds-button-danger-primary,#da1e28);color:var(--cds-text-on-color,#fff)}.cds--menu-item-divider{background-color:var(--cds-border-subtle);block-size:.0625rem;display:block;inline-size:100%;margin-block:.25rem}.cds--menu--with-icons{--child-icon-property:flex;--child-grid-template-columns:1rem 1fr max-content}:host(cds-menu){position:fixed;z-index:9000;--grid-template:1fr max-content;--display-icon-item:none;--display-selection-icon:none;--block-size-value:2rem}.cds--menu--with-icons{--grid-template:1rem 1fr max-content;--display-icon-item:flex}.cds--menu--with-selectable-items{--grid-template:1rem 1fr max-content;--display-selection-icon:flex}.cds--menu--with-icons.cds--menu--with-selectable-items{--grid-template:1rem 1rem 1fr max-content}.cds--menu{overflow-y:auto}.cds--menu--shown{opacity:1}.cds--menu--open{visibility:visible}.cds--menu--open:focus{outline:1px solid var(--cds-focus,#0f62fe)}@media screen and (prefers-contrast){.cds--menu--open:focus{outline-style:dotted}}.cds--menu:not(.cds--menu--open) .cds--menu--open{visibility:hidden}.cds--menu--with-icons{min-inline-size:12rem}.cds--menu--xs{--block-size-value:1.5rem}.cds--menu--sm{--block-size-value:2rem}.cds--menu--md{--block-size-value:2.5rem}.cds--menu--lg{--block-size-value:3rem}"]);
10
+ var styles = css(["@keyframes cds--hide-feedback{0%{opacity:1;visibility:inherit}to{opacity:0;visibility:hidden}}@keyframes cds--show-feedback{0%{opacity:0;visibility:hidden}to{opacity:1;visibility:inherit}}@keyframes cds--skeleton{0%{opacity:.3;transform:scaleX(0);transform-origin:left}20%{opacity:1;transform:scaleX(1);transform-origin:left}28%{transform:scaleX(1);transform-origin:right}51%{transform:scaleX(0);transform-origin:right}58%{transform:scaleX(0);transform-origin:right}82%{transform:scaleX(1);transform-origin:right}83%{transform:scaleX(1);transform-origin:left}96%{transform:scaleX(0);transform-origin:left}to{opacity:.3;transform:scaleX(0);transform-origin:left}}.cds--layout--size-xs{--cds-layout-size-height-context:var(--cds-layout-size-height-xs,1.5rem);--cds-layout-size-height:var(--cds-layout-size-height-context)}.cds--layout-constraint--size__default-xs{--cds-layout-size-height:var(--cds-layout-size-height-context,var(--cds-layout-size-height-xs,1.5rem))}.cds--layout-constraint--size__min-xs{--cds-layout-size-height-min:var(--cds-layout-size-height-xs,1.5rem)}.cds--layout-constraint--size__max-xs{--cds-layout-size-height-max:var(--cds-layout-size-height-xs,1.5rem)}.cds--layout--size-sm{--cds-layout-size-height-context:var(--cds-layout-size-height-sm,2rem);--cds-layout-size-height:var(--cds-layout-size-height-context)}.cds--layout-constraint--size__default-sm{--cds-layout-size-height:var(--cds-layout-size-height-context,var(--cds-layout-size-height-sm,2rem))}.cds--layout-constraint--size__min-sm{--cds-layout-size-height-min:var(--cds-layout-size-height-sm,2rem)}.cds--layout-constraint--size__max-sm{--cds-layout-size-height-max:var(--cds-layout-size-height-sm,2rem)}.cds--layout--size-md{--cds-layout-size-height-context:var(--cds-layout-size-height-md,2.5rem);--cds-layout-size-height:var(--cds-layout-size-height-context)}.cds--layout-constraint--size__default-md{--cds-layout-size-height:var(--cds-layout-size-height-context,var(--cds-layout-size-height-md,2.5rem))}.cds--layout-constraint--size__min-md{--cds-layout-size-height-min:var(--cds-layout-size-height-md,2.5rem)}.cds--layout-constraint--size__max-md{--cds-layout-size-height-max:var(--cds-layout-size-height-md,2.5rem)}.cds--layout--size-lg{--cds-layout-size-height-context:var(--cds-layout-size-height-lg,3rem);--cds-layout-size-height:var(--cds-layout-size-height-context)}.cds--layout-constraint--size__default-lg{--cds-layout-size-height:var(--cds-layout-size-height-context,var(--cds-layout-size-height-lg,3rem))}.cds--layout-constraint--size__min-lg{--cds-layout-size-height-min:var(--cds-layout-size-height-lg,3rem)}.cds--layout-constraint--size__max-lg{--cds-layout-size-height-max:var(--cds-layout-size-height-lg,3rem)}.cds--layout--size-xl{--cds-layout-size-height-context:var(--cds-layout-size-height-xl,4rem);--cds-layout-size-height:var(--cds-layout-size-height-context)}.cds--layout-constraint--size__default-xl{--cds-layout-size-height:var(--cds-layout-size-height-context,var(--cds-layout-size-height-xl,4rem))}.cds--layout-constraint--size__min-xl{--cds-layout-size-height-min:var(--cds-layout-size-height-xl,4rem)}.cds--layout-constraint--size__max-xl{--cds-layout-size-height-max:var(--cds-layout-size-height-xl,4rem)}.cds--layout--size-2xl{--cds-layout-size-height-context:var(--cds-layout-size-height-2xl,5rem);--cds-layout-size-height:var(--cds-layout-size-height-context)}.cds--layout-constraint--size__default-2xl{--cds-layout-size-height:var(--cds-layout-size-height-context,var(--cds-layout-size-height-2xl,5rem))}.cds--layout-constraint--size__min-2xl{--cds-layout-size-height-min:var(--cds-layout-size-height-2xl,5rem)}.cds--layout-constraint--size__max-2xl{--cds-layout-size-height-max:var(--cds-layout-size-height-2xl,5rem)}.cds--layout--density-condensed{--cds-layout-density-padding-inline-context:var(--cds-layout-density-padding-inline-condensed,0.5rem);--cds-layout-density-padding-inline:var(--cds-layout-density-padding-inline-context)}.cds--layout-constraint--density__default-condensed{--cds-layout-density-padding-inline:var(--cds-layout-density-padding-inline-context,var(--cds-layout-density-padding-inline-condensed,0.5rem))}.cds--layout-constraint--density__min-condensed{--cds-layout-density-padding-inline-min:var(--cds-layout-density-padding-inline-condensed,0.5rem)}.cds--layout-constraint--density__max-condensed{--cds-layout-density-padding-inline-max:var(--cds-layout-density-padding-inline-condensed,0.5rem)}.cds--layout--density-normal{--cds-layout-density-padding-inline-context:var(--cds-layout-density-padding-inline-normal,1rem);--cds-layout-density-padding-inline:var(--cds-layout-density-padding-inline-context)}.cds--layout-constraint--density__default-normal{--cds-layout-density-padding-inline:var(--cds-layout-density-padding-inline-context,var(--cds-layout-density-padding-inline-normal,1rem))}.cds--layout-constraint--density__min-normal{--cds-layout-density-padding-inline-min:var(--cds-layout-density-padding-inline-normal,1rem)}.cds--layout-constraint--density__max-normal{--cds-layout-density-padding-inline-max:var(--cds-layout-density-padding-inline-normal,1rem)}:root{--cds-layout-size-height-xs:1.5rem;--cds-layout-size-height-sm:2rem;--cds-layout-size-height-md:2.5rem;--cds-layout-size-height-lg:3rem;--cds-layout-size-height-xl:4rem;--cds-layout-size-height-2xl:5rem;--cds-layout-size-height-min:0px;--cds-layout-size-height-max:999999999px;--cds-layout-density-padding-inline-condensed:0.5rem;--cds-layout-density-padding-inline-normal:1rem;--cds-layout-density-padding-inline-min:0px;--cds-layout-density-padding-inline-max:999999999px}.cds--assistive-text,.cds--visually-hidden{block-size:1px;border:0;margin:-1px;overflow:hidden;padding:0;position:absolute;clip:rect(0,0,0,0);inline-size:1px;visibility:inherit;white-space:nowrap}.cds--layer-one,:root{--cds-layer:var(--cds-layer-01,#f4f4f4);--cds-layer-active:var(--cds-layer-active-01,#c6c6c6);--cds-layer-background:var(--cds-layer-background-01,#fff);--cds-layer-hover:var(--cds-layer-hover-01,#e8e8e8);--cds-layer-selected:var(--cds-layer-selected-01,#e0e0e0);--cds-layer-selected-hover:var(--cds-layer-selected-hover-01,#d1d1d1);--cds-layer-accent:var(--cds-layer-accent-01,#e0e0e0);--cds-layer-accent-hover:var(--cds-layer-accent-hover-01,#d1d1d1);--cds-layer-accent-active:var(--cds-layer-accent-active-01,#a8a8a8);--cds-field:var(--cds-field-01,#f4f4f4);--cds-field-hover:var(--cds-field-hover-01,#e8e8e8);--cds-border-subtle:var(--cds-border-subtle-00,#e0e0e0);--cds-border-subtle-selected:var(--cds-border-subtle-selected-01,#c6c6c6);--cds-border-strong:var(--cds-border-strong-01,#8d8d8d);--cds-border-tile:var(--cds-border-tile-01,#c6c6c6)}.cds--layer-two{--cds-layer:var(--cds-layer-02,#fff);--cds-layer-active:var(--cds-layer-active-02,#c6c6c6);--cds-layer-background:var(--cds-layer-background-02,#f4f4f4);--cds-layer-hover:var(--cds-layer-hover-02,#e8e8e8);--cds-layer-selected:var(--cds-layer-selected-02,#e0e0e0);--cds-layer-selected-hover:var(--cds-layer-selected-hover-02,#d1d1d1);--cds-layer-accent:var(--cds-layer-accent-02,#e0e0e0);--cds-layer-accent-hover:var(--cds-layer-accent-hover-02,#d1d1d1);--cds-layer-accent-active:var(--cds-layer-accent-active-02,#a8a8a8);--cds-field:var(--cds-field-02,#fff);--cds-field-hover:var(--cds-field-hover-02,#e8e8e8);--cds-border-subtle:var(--cds-border-subtle-01,#c6c6c6);--cds-border-subtle-selected:var(--cds-border-subtle-selected-02,#c6c6c6);--cds-border-strong:var(--cds-border-strong-02,#8d8d8d);--cds-border-tile:var(--cds-border-tile-02,#a8a8a8)}.cds--layer-three{--cds-layer:var(--cds-layer-03,#f4f4f4);--cds-layer-active:var(--cds-layer-active-03,#c6c6c6);--cds-layer-background:var(--cds-layer-background-03,#fff);--cds-layer-hover:var(--cds-layer-hover-03,#e8e8e8);--cds-layer-selected:var(--cds-layer-selected-03,#e0e0e0);--cds-layer-selected-hover:var(--cds-layer-selected-hover-03,#d1d1d1);--cds-layer-accent:var(--cds-layer-accent-03,#e0e0e0);--cds-layer-accent-hover:var(--cds-layer-accent-hover-03,#d1d1d1);--cds-layer-accent-active:var(--cds-layer-accent-active-03,#a8a8a8);--cds-field:var(--cds-field-03,#f4f4f4);--cds-field-hover:var(--cds-field-hover-03,#e8e8e8);--cds-border-subtle:var(--cds-border-subtle-02,#e0e0e0);--cds-border-subtle-selected:var(--cds-border-subtle-selected-03,#c6c6c6);--cds-border-strong:var(--cds-border-strong-03,#8d8d8d);--cds-border-tile:var(--cds-border-tile-03,#c6c6c6)}.cds--layer-one.cds--layer__with-background,.cds--layer-three.cds--layer__with-background,.cds--layer-two.cds--layer__with-background{background-color:var(--cds-layer-background)}.cds--menu{border:0;box-sizing:border-box;font-family:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}.cds--menu *,.cds--menu :after,.cds--menu :before{box-sizing:inherit}.cds--menu{background-color:var(--cds-layer);box-shadow:0 2px 6px var(--cds-shadow,rgba(0,0,0,.3));max-inline-size:18rem;min-inline-size:10rem;padding:.25rem 0;position:fixed;z-index:9000}.cds--menu--border{outline:1px solid var(--cds-border-subtle)}.cds--menu--background-token__background{background-color:var(--cds-background,#fff)}.cds--menu:not(.cds--menu--open) .cds--menu--open{visibility:hidden}.cds--menu--shown{overflow:visible}.cds--menu-item{align-items:center;block-size:2rem;color:var(--cds-text-secondary,#525252);-moz-column-gap:.5rem;column-gap:.5rem;cursor:pointer;display:grid;font-size:var(--cds-body-short-01-font-size,.875rem);font-weight:var(--cds-body-short-01-font-weight,400);grid-template-columns:1fr max-content;letter-spacing:var(--cds-body-short-01-letter-spacing,.16px);line-height:var(--cds-body-short-01-line-height,1.28572);padding-inline:1rem;transition:background-color 70ms cubic-bezier(.2,0,.38,.9)}.cds--menu-item:focus{outline:2px solid var(--cds-focus,#0f62fe);outline-offset:-2px}@media screen and (prefers-contrast){.cds--menu-item:focus{outline-style:dotted}}.cds--menu-item:hover{background-color:var(--cds-layer-hover);color:var(--cds-text-primary,#161616)}.cds--menu--xs .cds--menu-item{block-size:1.5rem}.cds--menu--sm .cds--menu-item{block-size:2rem}.cds--menu--md .cds--menu-item{block-size:2.5rem}.cds--menu--lg .cds--menu-item{block-size:3rem}.cds--menu-item__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cds--menu-item__shortcut{display:flex}.cds--menu-item-group>ul,.cds--menu-item-radio-group>ul{border:0;box-sizing:border-box;font-family:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}.cds--menu-item-group>ul *,.cds--menu-item-group>ul :after,.cds--menu-item-group>ul :before,.cds--menu-item-radio-group>ul *,.cds--menu-item-radio-group>ul :after,.cds--menu-item-radio-group>ul :before{box-sizing:inherit}.cds--menu-item__icon,.cds--menu-item__selection-icon{display:none}.cds--menu--with-icons>.cds--menu-item,.cds--menu--with-icons>.cds--menu-item-group>ul>.cds--menu-item,.cds--menu--with-icons>.cds--menu-item-radio-group>ul>.cds--menu-item,.cds--menu--with-selectable-items>.cds--menu-item,.cds--menu--with-selectable-items>.cds--menu-item-group>ul>.cds--menu-item,.cds--menu--with-selectable-items>.cds--menu-item-radio-group>ul>.cds--menu-item{grid-template-columns:1rem 1fr max-content}.cds--menu--with-icons>.cds--menu-item-group>ul>.cds--menu-item>.cds--menu-item__icon,.cds--menu--with-icons>.cds--menu-item-radio-group>ul>.cds--menu-item>.cds--menu-item__icon,.cds--menu--with-icons>.cds--menu-item>.cds--menu-item__icon,.cds--menu--with-selectable-items>.cds--menu-item-group>ul>.cds--menu-item>.cds--menu-item__selection-icon,.cds--menu--with-selectable-items>.cds--menu-item-radio-group>ul>.cds--menu-item>.cds--menu-item__selection-icon,.cds--menu--with-selectable-items>.cds--menu-item>.cds--menu-item__selection-icon{display:flex}.cds--menu--with-icons.cds--menu--with-selectable-items>.cds--menu-item,.cds--menu--with-icons.cds--menu--with-selectable-items>.cds--menu-item-group>ul>.cds--menu-item,.cds--menu--with-icons.cds--menu--with-selectable-items>.cds--menu-item-radio-group>ul>.cds--menu-item{grid-template-columns:1rem 1rem 1fr max-content}.cds--menu-item--disabled{color:var(--cds-text-disabled,hsla(0,0%,9%,.25));cursor:not-allowed}.cds--menu-item--disabled.cds--menu-item--danger:hover,.cds--menu-item--disabled:hover{background-color:var(--cds-layer);color:var(--cds-text-disabled,hsla(0,0%,9%,.25))}.cds--menu-item--danger:focus,.cds--menu-item--danger:hover{background-color:var(--cds-button-danger-primary,#da1e28);color:var(--cds-text-on-color,#fff)}.cds--menu-item-divider{background-color:var(--cds-border-subtle);block-size:.0625rem;display:block;inline-size:100%;margin-block:.25rem}.cds--menu--with-icons{--child-icon-property:flex;--child-grid-template-columns:1rem 1fr max-content}:host(cds-menu){position:fixed;z-index:9000;--grid-template:1fr max-content;--display-icon-item:none;--display-selection-icon:none;--block-size-value:2rem}:host(cds-menu):not([open]){pointer-events:none}.cds--menu--with-icons{--grid-template:1rem 1fr max-content;--display-icon-item:flex}.cds--menu--with-selectable-items{--grid-template:1rem 1fr max-content;--display-selection-icon:flex}.cds--menu--with-icons.cds--menu--with-selectable-items{--grid-template:1rem 1rem 1fr max-content}.cds--menu{opacity:0;overflow-y:auto;pointer-events:none;visibility:hidden}.cds--menu--shown{opacity:1}.cds--menu--open{visibility:visible}.cds--menu--open:focus{outline:1px solid var(--cds-focus,#0f62fe)}@media screen and (prefers-contrast){.cds--menu--open:focus{outline-style:dotted}}.cds--menu--open.cds--menu--shown{pointer-events:auto}.cds--menu--with-icons{min-inline-size:12rem}.cds--menu--xs{--block-size-value:1.5rem}.cds--menu--sm{--block-size-value:2rem}.cds--menu--md{--block-size-value:2.5rem}.cds--menu--lg{--block-size-value:3rem}"]);
11
11
 
12
12
  export { styles as default };
13
13
  //# sourceMappingURL=menu.scss.js.map
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2019, 2023
2
+ * Copyright IBM Corp. 2019, 2026
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -12,7 +12,9 @@ import { LitElement } from 'lit';
12
12
  */
13
13
  declare class CDSModalBody extends LitElement {
14
14
  private userDefinedTabindex;
15
+ private _resizeObserver?;
15
16
  connectedCallback(): void;
17
+ disconnectedCallback(): void;
16
18
  checkScroll(): void;
17
19
  render(): import("lit-html").TemplateResult<1>;
18
20
  static styles: any;
@@ -12,7 +12,7 @@ import styles from './modal.scss.js';
12
12
  import { carbonElement } from '../../globals/decorators/carbon-element.js';
13
13
 
14
14
  /**
15
- * Copyright IBM Corp. 2019, 2023
15
+ * Copyright IBM Corp. 2019, 2026
16
16
  *
17
17
  * This source code is licensed under the Apache-2.0 license found in the
18
18
  * LICENSE file in the root directory of this source tree.
@@ -34,17 +34,33 @@ let CDSModalBody = class CDSModalBody extends LitElement {
34
34
  if (this.hasAttribute('tabindex')) {
35
35
  this.userDefinedTabindex = this.getAttribute('tabindex');
36
36
  }
37
+ this._resizeObserver = new ResizeObserver(() => this.checkScroll());
38
+ this._resizeObserver.observe(this);
39
+ }
40
+ disconnectedCallback() {
41
+ var _a, _b;
42
+ (_a = this._resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
43
+ (_b = super.disconnectedCallback) === null || _b === void 0 ? void 0 : _b.call(this);
37
44
  }
38
45
  checkScroll() {
39
46
  const hasScroll = this.scrollHeight > this.clientHeight;
47
+ const hasAutoAlign = this.querySelector('[autoalign]') !== null;
48
+ if (this.clientHeight <= 300 || hasAutoAlign) {
49
+ this.setAttribute('no-fade', '');
50
+ }
51
+ else {
52
+ this.removeAttribute('no-fade');
53
+ }
40
54
  // Respect user-defined tabindex
41
55
  if (this.userDefinedTabindex !== null)
42
56
  return;
43
57
  if (hasScroll) {
44
58
  this.setAttribute('tabindex', '0');
59
+ this.setAttribute('is-scrollable', '');
45
60
  }
46
61
  else {
47
62
  this.removeAttribute('tabindex');
63
+ this.removeAttribute('is-scrollable');
48
64
  }
49
65
  }
50
66
  render() {
@@ -1 +1 @@
1
- {"version":3,"file":"modal-body.js","sources":["../../../src/components/modal/modal-body.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { prefix } from '../../globals/settings';\nimport styles from './modal.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Modal body.\n *\n * @element cds-modal-body\n */\n@customElement(`${prefix}-modal-body`)\nclass CDSModalBody extends LitElement {\n private userDefinedTabindex: string | null = null;\n\n connectedCallback() {\n super.connectedCallback?.();\n // Store the tabindex if user set it initially\n if (this.hasAttribute('tabindex')) {\n this.userDefinedTabindex = this.getAttribute('tabindex');\n }\n }\n\n checkScroll() {\n const hasScroll = this.scrollHeight > this.clientHeight;\n\n // Respect user-defined tabindex\n if (this.userDefinedTabindex !== null) return;\n\n if (hasScroll) {\n this.setAttribute('tabindex', '0');\n } else {\n this.removeAttribute('tabindex');\n }\n }\n\n render() {\n return html` <slot @slotchange=${this.checkScroll}></slot> `;\n }\n\n static styles = styles;\n}\n\nexport default CDSModalBody;\n"],"names":["customElement"],"mappings":";;;;;;;;;;;;;AAAA;;;;;AAKG;AAOH;;;;AAIG;AAEH,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,UAAU,CAAA;AAArC,IAAA,WAAA,GAAA;;QACU,IAAA,CAAA,mBAAmB,GAAkB,IAAI;IA4BnD;IA1BE,iBAAiB,GAAA;;AACf,QAAA,CAAA,EAAA,GAAA,KAAK,CAAC,iBAAiB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,IAAA,CAAI;;AAE3B,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE;YACjC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;QAC1D;IACF;IAEA,WAAW,GAAA;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY;;AAGvD,QAAA,IAAI,IAAI,CAAC,mBAAmB,KAAK,IAAI;YAAE;QAEvC,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC;QACpC;aAAO;AACL,YAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;QAClC;IACF;IAEA,MAAM,GAAA;AACJ,QAAA,OAAO,IAAI,CAAA,CAAA,mBAAA,EAAsB,IAAI,CAAC,WAAW,WAAW;IAC9D;;AAEO,YAAA,CAAA,MAAM,GAAG,MAAH;AA5BT,YAAY,GAAA,UAAA,CAAA;AADjB,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,WAAA,CAAa;AAC/B,CAAA,EAAA,YAAY,CA6BjB;AAED,qBAAe,YAAY;;;;"}
1
+ {"version":3,"file":"modal-body.js","sources":["../../../src/components/modal/modal-body.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { prefix } from '../../globals/settings';\nimport styles from './modal.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Modal body.\n *\n * @element cds-modal-body\n */\n@customElement(`${prefix}-modal-body`)\nclass CDSModalBody extends LitElement {\n private userDefinedTabindex: string | null = null;\n private _resizeObserver?: ResizeObserver;\n\n connectedCallback() {\n super.connectedCallback?.();\n // Store the tabindex if user set it initially\n if (this.hasAttribute('tabindex')) {\n this.userDefinedTabindex = this.getAttribute('tabindex');\n }\n this._resizeObserver = new ResizeObserver(() => this.checkScroll());\n this._resizeObserver.observe(this);\n }\n\n disconnectedCallback() {\n this._resizeObserver?.disconnect();\n super.disconnectedCallback?.();\n }\n\n checkScroll() {\n const hasScroll = this.scrollHeight > this.clientHeight;\n const hasAutoAlign = this.querySelector('[autoalign]') !== null;\n\n if (this.clientHeight <= 300 || hasAutoAlign) {\n this.setAttribute('no-fade', '');\n } else {\n this.removeAttribute('no-fade');\n }\n\n // Respect user-defined tabindex\n if (this.userDefinedTabindex !== null) return;\n\n if (hasScroll) {\n this.setAttribute('tabindex', '0');\n this.setAttribute('is-scrollable', '');\n } else {\n this.removeAttribute('tabindex');\n this.removeAttribute('is-scrollable');\n }\n }\n\n render() {\n return html` <slot @slotchange=${this.checkScroll}></slot> `;\n }\n\n static styles = styles;\n}\n\nexport default CDSModalBody;\n"],"names":["customElement"],"mappings":";;;;;;;;;;;;;AAAA;;;;;AAKG;AAOH;;;;AAIG;AAEH,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,UAAU,CAAA;AAArC,IAAA,WAAA,GAAA;;QACU,IAAA,CAAA,mBAAmB,GAAkB,IAAI;IA6CnD;IA1CE,iBAAiB,GAAA;;AACf,QAAA,CAAA,EAAA,GAAA,KAAK,CAAC,iBAAiB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,IAAA,CAAI;;AAE3B,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE;YACjC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;QAC1D;AACA,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;AACnE,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC;IACpC;IAEA,oBAAoB,GAAA;;AAClB,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,UAAU,EAAE;AAClC,QAAA,CAAA,EAAA,GAAA,KAAK,CAAC,oBAAoB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,IAAA,CAAI;IAChC;IAEA,WAAW,GAAA;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY;QACvD,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,IAAI;QAE/D,IAAI,IAAI,CAAC,YAAY,IAAI,GAAG,IAAI,YAAY,EAAE;AAC5C,YAAA,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC;QAClC;aAAO;AACL,YAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;QACjC;;AAGA,QAAA,IAAI,IAAI,CAAC,mBAAmB,KAAK,IAAI;YAAE;QAEvC,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC;AAClC,YAAA,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,EAAE,CAAC;QACxC;aAAO;AACL,YAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;AAChC,YAAA,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC;QACvC;IACF;IAEA,MAAM,GAAA;AACJ,QAAA,OAAO,IAAI,CAAA,CAAA,mBAAA,EAAsB,IAAI,CAAC,WAAW,WAAW;IAC9D;;AAEO,YAAA,CAAA,MAAM,GAAG,MAAH;AA7CT,YAAY,GAAA,UAAA,CAAA;AADjB,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,WAAA,CAAa;AAC/B,CAAA,EAAA,YAAY,CA8CjB;AAED,qBAAe,YAAY;;;;"}
@@ -1,10 +1,11 @@
1
1
  /**
2
- * Copyright IBM Corp. 2019, 2024
2
+ * Copyright IBM Corp. 2019, 2026
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import { LitElement } from 'lit';
8
+ import '../icon-button';
8
9
  declare const CDSModalCloseButton_base: {
9
10
  new (...args: any[]): {
10
11
  focus(): void;
@@ -15,9 +15,10 @@ import FocusMixin from '../../globals/mixins/focus.js';
15
15
  import { iconLoader } from '../../globals/internal/icon-loader.js';
16
16
  import styles from './modal.scss.js';
17
17
  import { carbonElement } from '../../globals/decorators/carbon-element.js';
18
+ import '../icon-button/icon-button.js';
18
19
 
19
20
  /**
20
- * Copyright IBM Corp. 2019, 2024
21
+ * Copyright IBM Corp. 2019, 2026
21
22
  *
22
23
  * This source code is licensed under the Apache-2.0 license found in the
23
24
  * LICENSE file in the root directory of this source tree.
@@ -44,16 +45,21 @@ let CDSModalCloseButton = class CDSModalCloseButton extends FocusMixin(LitElemen
44
45
  render() {
45
46
  const { closeButtonLabel } = this;
46
47
  return html `
47
- <button
48
+ <cds-icon-button
48
49
  part="button"
50
+ align="left"
51
+ enter-delay-ms=""
49
52
  aria-label="${ifDefined(closeButtonLabel)}"
50
- class="${prefix}--modal-close"
51
- title="${ifDefined(closeButtonLabel)}">
53
+ kind="ghost"
54
+ size="lg"
55
+ leave-delay-ms="">
52
56
  ${iconLoader(Close20, {
57
+ slot: 'icon',
53
58
  part: 'close-icon',
54
59
  class: `${prefix}--modal-close__icon`,
55
60
  })}
56
- </button>
61
+ <span slot="tooltip-content">${closeButtonLabel}</span>
62
+ </cds-icon-button>
57
63
  `;
58
64
  }
59
65
  };
@@ -1 +1 @@
1
- {"version":3,"file":"modal-close-button.js","sources":["../../../src/components/modal/modal-close-button.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 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 Close20 from '@carbon/icons/es/close/20.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport FocusMixin from '../../globals/mixins/focus';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport styles from './modal.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Modal close button.\n *\n * @element cds-modal-close-button\n * @csspart button The button.\n * @csspart close-icon The close icon.\n */\n@customElement(`${prefix}-modal-close-button`)\nclass CDSModalCloseButton extends FocusMixin(LitElement) {\n /**\n * Specify a label for the close button of the modal; defaults to close\n */\n @property({ attribute: 'close-button-label' })\n closeButtonLabel = 'Close';\n\n updated() {\n this.parentElement?.setAttribute('close-button', '');\n }\n\n render() {\n const { closeButtonLabel } = this;\n return html`\n <button\n part=\"button\"\n aria-label=\"${ifDefined(closeButtonLabel)}\"\n class=\"${prefix}--modal-close\"\n title=\"${ifDefined(closeButtonLabel)}\">\n ${iconLoader(Close20, {\n part: 'close-icon',\n class: `${prefix}--modal-close__icon`,\n })}\n </button>\n `;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\nexport default CDSModalCloseButton;\n"],"names":["customElement"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;;;;;AAKG;AAYH;;;;;;AAMG;AAEH,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,UAAU,CAAC,UAAU,CAAC,CAAA;AAAxD,IAAA,WAAA,GAAA;;AACE;;AAEG;QAEH,IAAA,CAAA,gBAAgB,GAAG,OAAO;IA2B5B;IAzBE,OAAO,GAAA;;QACL,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,YAAY,CAAC,cAAc,EAAE,EAAE,CAAC;IACtD;IAEA,MAAM,GAAA;AACJ,QAAA,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI;AACjC,QAAA,OAAO,IAAI,CAAA;;;sBAGO,SAAS,CAAC,gBAAgB,CAAC,CAAA;iBAChC,MAAM,CAAA;iBACN,SAAS,CAAC,gBAAgB,CAAC,CAAA;UAClC,UAAU,CAAC,OAAO,EAAE;AACpB,YAAA,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,CAAA,EAAG,MAAM,CAAA,mBAAA,CAAqB;SACtC,CAAC;;KAEL;IACH;;AAEO,mBAAA,CAAA,iBAAiB,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACnB,UAAU,CAAC,iBAAiB,KAC/B,cAAc,EAAE,IAAI,EAAA,CAFE;AAIjB,mBAAA,CAAA,MAAM,GAAG,MAAM,CAAC;AA1BvB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE;AAClB,CAAA,EAAA,mBAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,MAAA,CAAA;AALvB,mBAAmB,GAAA,UAAA,CAAA;AADxB,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,mBAAA,CAAqB;AACvC,CAAA,EAAA,mBAAmB,CAgCxB;AAED,4BAAe,mBAAmB;;;;"}
1
+ {"version":3,"file":"modal-close-button.js","sources":["../../../src/components/modal/modal-close-button.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport Close20 from '@carbon/icons/es/close/20.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport FocusMixin from '../../globals/mixins/focus';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport styles from './modal.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport '../icon-button';\n\n/**\n * Modal close button.\n *\n * @element cds-modal-close-button\n * @csspart button The button.\n * @csspart close-icon The close icon.\n */\n@customElement(`${prefix}-modal-close-button`)\nclass CDSModalCloseButton extends FocusMixin(LitElement) {\n /**\n * Specify a label for the close button of the modal; defaults to close\n */\n @property({ attribute: 'close-button-label' })\n closeButtonLabel = 'Close';\n\n updated() {\n this.parentElement?.setAttribute('close-button', '');\n }\n\n render() {\n const { closeButtonLabel } = this;\n return html`\n <cds-icon-button\n part=\"button\"\n align=\"left\"\n enter-delay-ms=\"\"\n aria-label=\"${ifDefined(closeButtonLabel)}\"\n kind=\"ghost\"\n size=\"lg\"\n leave-delay-ms=\"\">\n ${iconLoader(Close20, {\n slot: 'icon',\n part: 'close-icon',\n class: `${prefix}--modal-close__icon`,\n })}\n <span slot=\"tooltip-content\">${closeButtonLabel}</span>\n </cds-icon-button>\n `;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\nexport default CDSModalCloseButton;\n"],"names":["customElement"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;;;;AAKG;AAaH;;;;;;AAMG;AAEH,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,UAAU,CAAC,UAAU,CAAC,CAAA;AAAxD,IAAA,WAAA,GAAA;;AACE;;AAEG;QAEH,IAAA,CAAA,gBAAgB,GAAG,OAAO;IAgC5B;IA9BE,OAAO,GAAA;;QACL,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,YAAY,CAAC,cAAc,EAAE,EAAE,CAAC;IACtD;IAEA,MAAM,GAAA;AACJ,QAAA,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI;AACjC,QAAA,OAAO,IAAI,CAAA;;;;;sBAKO,SAAS,CAAC,gBAAgB,CAAC,CAAA;;;;UAIvC,UAAU,CAAC,OAAO,EAAE;AACpB,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,CAAA,EAAG,MAAM,CAAA,mBAAA,CAAqB;SACtC,CAAC;uCAC6B,gBAAgB,CAAA;;KAElD;IACH;;AAEO,mBAAA,CAAA,iBAAiB,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACnB,UAAU,CAAC,iBAAiB,KAC/B,cAAc,EAAE,IAAI,EAAA,CAFE;AAIjB,mBAAA,CAAA,MAAM,GAAG,MAAM,CAAC;AA/BvB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE;AAClB,CAAA,EAAA,mBAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,MAAA,CAAA;AALvB,mBAAmB,GAAA,UAAA,CAAA;AADxB,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,mBAAA,CAAqB;AACvC,CAAA,EAAA,mBAAmB,CAqCxB;AAED,4BAAe,mBAAmB;;;;"}
@@ -1,11 +1,12 @@
1
1
  /**
2
- * Copyright IBM Corp. 2019, 2024
2
+ * Copyright IBM Corp. 2019, 2026
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import { LitElement } from 'lit';
8
8
  import { MODAL_SIZE } from './defs';
9
+ import '../inline-loading';
9
10
  export { MODAL_SIZE };
10
11
  declare const CDSModal_base: {
11
12
  new (...args: any[]): {
@@ -370,6 +371,22 @@ declare class CDSModal extends CDSModal_base {
370
371
  * The element that had focus before this modal gets open.
371
372
  */
372
373
  private _launcher;
374
+ /**
375
+ * The inline loading element that renders when `loading-status` is not `inactive`
376
+ */
377
+ private _loadingEl;
378
+ /**
379
+ * MutationObserver that observes the modal-footer
380
+ */
381
+ private _footerObserver?;
382
+ /**
383
+ * MutationObserver that observes the modal-header
384
+ */
385
+ private _headerObserver?;
386
+ /**
387
+ * Loading statuses that are not `inactive`
388
+ */
389
+ private WORKING_LOADING_STATUSES;
373
390
  /**
374
391
  * Handles `click` event on this element.
375
392
  *
@@ -441,11 +458,55 @@ declare class CDSModal extends CDSModal_base {
441
458
  * Prevent closing on click outside of modal
442
459
  */
443
460
  preventCloseOnClickOutside: boolean;
461
+ /**
462
+ * Specify the loading status
463
+ */
464
+ loadingStatus: 'inactive' | 'active' | 'finished' | 'error';
465
+ /**
466
+ * Specify the description for the loading text
467
+ */
468
+ loadingDescription: string;
469
+ /**
470
+ * Provide a delay for the setTimeout for success
471
+ */
472
+ loadingSuccessDelay: number;
473
+ /**
474
+ * Specify the description for the loading icon
475
+ */
476
+ loadingIconDescription: string;
477
+ /**
478
+ * Specify if Enter key should be used as "submit" action that clicks the primary footer button
479
+ */
480
+ shouldSubmitOnEnter: boolean;
444
481
  /**
445
482
  * Prevent the modal from closing after clicking the close button
446
483
  */
447
484
  preventClose: boolean;
448
- firstUpdated(): void;
485
+ private _initializeLoadingEl;
486
+ private _getFooterElements;
487
+ private _updateLoadingElement;
488
+ firstUpdated(): Promise<void>;
489
+ /**
490
+ * Computes the aria-label of the modal based on (in order of highest to lowest precedence):
491
+ * - `modal-label`
492
+ * - `aria-label`
493
+ * - `modal-heading`
494
+ */
495
+ private _computeAriaLabel;
496
+ /**
497
+ * Observes the modal footer's `has-three-buttons` attribute to account for cases
498
+ * where the loading status and the amount of footer-buttons
499
+ * are being changed dynamically
500
+ */
501
+ private _observeFooter;
502
+ /**
503
+ * Observes the modal header to account for cases where the modal-heading,
504
+ * modal-label, and/or `aria-label` are dynamically changing
505
+ * to update the `aria-label` put on the modal
506
+ */
507
+ private _observeHeader;
508
+ connectedCallback(): void;
509
+ disconnectedCallback(): void;
449
510
  render(): import("lit-html").TemplateResult<1>;
450
511
  updated(changedProperties: any): Promise<void>;
451
512
  /**
@@ -478,6 +539,10 @@ declare class CDSModal extends CDSModal_base {
478
539
  * The name of the custom event fired after this modal is closed upon a user gesture.
479
540
  */
480
541
  static get eventClose(): string;
542
+ /**
543
+ * The name of the custom event fired when this modal reaches a `finished` loading state
544
+ */
545
+ static get eventOnLoadingSuccess(): string;
481
546
  static styles: any;
482
547
  }
483
548
  export default CDSModal;