@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 +1 @@
1
- {"version":3,"file":"multi-select.js","sources":["../../../src/components/multi-select/multi-select.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2020, 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 { html, PropertyValues, TemplateResult } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { prefix } from '../../globals/settings';\nimport Close16 from '@carbon/icons/es/close/16.js';\nimport { filter, forEach } from '../../globals/internal/collection-helpers';\nimport CDSDropdown, {\n DROPDOWN_KEYBOARD_ACTION,\n DROPDOWN_TYPE,\n} from '../dropdown/dropdown';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport { SELECTION_FEEDBACK_OPTION } from './defs';\nimport CDSMultiSelectItem from './multi-select-item';\nimport styles from './multi-select.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport {\n DROPDOWN_SIZE,\n DROPDOWN_TYPE,\n DROPDOWN_DIRECTION,\n} from '../dropdown/dropdown';\n\nexport { SELECTION_FEEDBACK_OPTION };\n\n/**\n * Multi select.\n *\n * @element cds-custom-multi-select\n * @fires cds-custom-multi-select-beingselected\n * The custom event fired before a multi select item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires cds-custom-multi-select-selected - The custom event fired after a multi select item is selected upon a user gesture.\n * @fires cds-custom-multi-select-beingtoggled\n * The custom event fired before the open state of this multi select is toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated toggling.\n * @fires cds-custom-multi-select-toggled\n * The custom event fired after the open state of this multi select is toggled upon a user gesture.\n */\n@customElement(`${prefix}-multi-select`)\nclass CDSMultiSelect extends CDSDropdown {\n @property({ type: Boolean })\n filterable;\n\n /**\n * The count of selected items.\n */\n private _selectedItemsCount = 0;\n\n /**\n * The clear button.\n */\n @query('#clear-button')\n private _clearButtonNode!: HTMLElement;\n\n /**\n * The selection button.\n */\n @query('#selection-button')\n private _selectionButtonNode!: HTMLElement;\n\n /**\n * The `<input>` for filtering.\n */\n @query('input')\n private _filterInputNode!: HTMLInputElement;\n\n protected get _supportsMenuInputFiltering() {\n return Boolean(this.filterable);\n }\n\n protected willUpdate(changedProperties: PropertyValues) {\n this._shouldTriggerBeFocusable = !this.filterable;\n super.willUpdate(changedProperties);\n }\n\n protected get _menuInputNode(): HTMLInputElement | null {\n return this.filterable ? (this._filterInputNode ?? null) : null;\n }\n\n protected _clearMenuInputFiltering() {\n if (this.filterable) {\n this._handleUserInitiatedClearInput();\n }\n }\n\n protected _shouldClearMenuInputOnEscape({\n menuOpen,\n isInputTarget,\n }: {\n event: KeyboardEvent;\n menuOpen: boolean;\n isInputTarget: boolean;\n }) {\n if (!menuOpen) {\n return true;\n }\n\n if (!isInputTarget) {\n return false;\n }\n\n return Boolean(this._filterInputNode?.value);\n }\n\n /**\n * The trigger button.\n */\n @query(`.${prefix}--list-box__field`)\n private _triggerNode!: HTMLElement;\n\n protected _selectionShouldChange(itemToSelect?: CDSMultiSelectItem) {\n // If we are selecting an item, assumes we always toggle\n return Boolean(this.value || itemToSelect);\n }\n\n protected _selectionDidChange(itemToSelect?: CDSMultiSelectItem) {\n const allItems = Array.from(\n this.querySelectorAll(\n (this.constructor as typeof CDSMultiSelect).selectorItem\n )\n ) as CDSMultiSelectItem[];\n\n // clicked \"select all\" when it was indeterminate\n if (itemToSelect?.isSelectAll && itemToSelect.indeterminate) {\n allItems.forEach((i) => {\n i.selected = false;\n i.indeterminate = false;\n });\n this.value = '';\n return;\n }\n\n if (itemToSelect) {\n // clicked select all\n if (itemToSelect.isSelectAll) {\n const items = this.filterable\n ? Array.from(\n this.querySelectorAll(\n (this.constructor as typeof CDSMultiSelect).selectorItemResults\n )\n )\n : allItems;\n items.forEach((i) => {\n if (\n !(i as CDSMultiSelectItem).isSelectAll &&\n !(i as CDSMultiSelectItem).disabled\n ) {\n (i as CDSMultiSelectItem).selected = !itemToSelect.selected;\n }\n (i as CDSMultiSelectItem).indeterminate = false;\n });\n itemToSelect.selected = !itemToSelect.selected;\n // clicked regular item\n } else {\n itemToSelect.selected = !itemToSelect.selected;\n }\n } else {\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof CDSMultiSelect).selectorItemSelected\n ),\n (item) => {\n (item as CDSMultiSelectItem).selected = false;\n }\n );\n this._handleUserInitiatedToggle(false);\n }\n if (this.selectAll) this._computeSelectAllState();\n // Change in `.selected` hasn't been reflected to the corresponding attribute yet\n this.value = filter(\n this.querySelectorAll(\n (this.constructor as typeof CDSMultiSelect).selectorItem\n ),\n (item) => (item as CDSMultiSelectItem).selected\n )\n .map((item) => (item as CDSMultiSelectItem).value)\n .join(',');\n }\n\n // Keep the menu open for individual selections, close only when clearing.\n\n protected _shouldCloseAfterSelection(item?: CDSMultiSelectItem) {\n return !item;\n }\n\n protected _handleClickInner(event: MouseEvent) {\n const clickedItem = (event.target as HTMLElement).closest(\n `${prefix}-multi-select-item`\n ) as CDSMultiSelectItem | null;\n if (\n this._selectionButtonNode?.contains(event.target as Node) &&\n !this.readOnly\n ) {\n this._handleUserInitiatedSelectItem();\n if (this.filterable) {\n this._filterInputNode.focus();\n } else {\n this._triggerNode.focus();\n }\n } else if (clickedItem && !clickedItem.hasAttribute('disabled')) {\n // Handle focus highlight\n const allItems = this.querySelectorAll(`${prefix}-multi-select-item`);\n allItems.forEach((el) => el.removeAttribute('highlighted'));\n clickedItem.setAttribute('highlighted', '');\n this._handleUserInitiatedSelectItem(clickedItem);\n this.setAttribute('item-clicked', '');\n if (this.filterable) {\n this._filterInputNode.focus();\n }\n } else if (this._clearButtonNode?.contains(event.target as Node)) {\n this._handleUserInitiatedClearInput();\n } else if (\n !(event.target as HTMLElement)?.matches(\n (this.constructor as typeof CDSMultiSelect).aiLabelItem\n ) &&\n // remove reference to slug in v12\n !(event.target as HTMLElement)?.matches(\n (this.constructor as typeof CDSMultiSelect).slugItem\n )\n ) {\n super._handleClickInner(event);\n if (this.filterable) {\n this._filterInputNode.focus();\n }\n }\n }\n\n /**\n * Handler for the `keypress` event, ensures filter still works upon entering space\n */\n protected _handleKeypressInner(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof CDSDropdown).getAction(key);\n const { TRIGGERING } = DROPDOWN_KEYBOARD_ACTION;\n\n if (\n this._clearButtonNode?.contains(event.target as Node) &&\n // Space key should be handled by `<input>` unless \"clear selection\" button has focus\n (action === TRIGGERING || key === ' ')\n ) {\n this._handleUserInitiatedClearInput();\n } else if (this._selectionButtonNode?.contains(event.target as Node)) {\n this._handleUserInitiatedSelectItem();\n this.open = true;\n if (this.filterable) {\n this._filterInputNode.focus();\n } else {\n this._triggerNode.focus();\n }\n } else if (this.filterable) {\n this._handleKeypressInnerFlterable(event);\n } else {\n super._handleKeypressInner(event);\n }\n }\n\n protected _handleMouseoverInner(event: MouseEvent) {\n const item = this._getDropdownItemFromEvent(event);\n const isFiltering =\n this.filterable && Boolean(this._filterInputNode?.value.length);\n\n if (\n !item ||\n isFiltering ||\n !item.hasAttribute('selected') ||\n !item.hasAttribute('highlighted')\n ) {\n return;\n }\n\n super._handleMouseoverInner(event);\n }\n\n protected _handleMouseleaveInner(event: MouseEvent) {\n const constructor = this.constructor as typeof CDSMultiSelect;\n const isFiltering =\n this.filterable && Boolean(this._filterInputNode?.value.length);\n const highlightedItem = this.querySelector(\n constructor.selectorItemHighlighted\n ) as CDSMultiSelectItem | null;\n\n if (isFiltering || highlightedItem?.hasAttribute('selected')) {\n return;\n }\n\n super._handleMouseleaveInner(event);\n }\n\n /**\n * Special andler for the `keypress` event, ensures space selection for filterable\n * variation is disabled\n */\n\n protected _handleKeypressInnerFlterable(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof CDSDropdown).getAction(key);\n if (!this.open) {\n switch (action) {\n case DROPDOWN_KEYBOARD_ACTION.TRIGGERING:\n this._handleUserInitiatedToggle(true);\n break;\n default:\n break;\n }\n } else {\n switch (key) {\n case 'Enter':\n {\n const constructor = this.constructor as typeof CDSDropdown;\n const highlightedItem = this.querySelector(\n constructor.selectorItemHighlighted\n ) as CDSMultiSelectItem;\n if (highlightedItem) {\n this._handleUserInitiatedSelectItem(highlightedItem);\n } else {\n this._handleUserInitiatedToggle(false);\n }\n }\n break;\n default:\n break;\n }\n }\n }\n\n protected _renderTitleLabel() {\n const {\n clearSelectionDescription,\n clearSelectionText,\n disabled,\n hideLabel,\n titleText,\n _selectedItemsCount: selectedItemsCount,\n _slotTitleTextNode: slotTitleTextNode,\n _handleSlotchangeLabelText: handleSlotchangeLabelText,\n } = this;\n\n const labelClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--label--disabled`]: disabled,\n [`${prefix}--visually-hidden`]: hideLabel,\n });\n\n const hasTitleText =\n titleText ||\n (slotTitleTextNode && slotTitleTextNode.assignedNodes().length > 0);\n\n return html`\n <label\n part=\"title-text\"\n class=\"${labelClasses}\"\n ?hidden=\"${!hasTitleText}\">\n <slot name=\"title-text\" @slotchange=\"${handleSlotchangeLabelText}\"\n >${titleText}</slot\n >\n ${selectedItemsCount > 0\n ? html`\n <span class=\"${prefix}--visually-hidden\">\n ${clearSelectionDescription} ${selectedItemsCount},\n ${clearSelectionText}\n </span>\n `\n : null}\n </label>\n `;\n }\n\n protected _renderPrecedingLabel() {\n const {\n disabled,\n readOnly,\n clearSelectionLabel,\n _selectedItemsCount: selectedItemsCount,\n } = this;\n\n const selectionButtonClasses = classMap({\n [`${prefix}--list-box__selection`]: true,\n [`${prefix}--list-box__selection--multi`]: true,\n [`${prefix}--tag`]: true,\n [`${prefix}--tag--filter`]: true,\n [`${prefix}--tag--high-contrast`]: true,\n [`${prefix}--tag--disabled`]: disabled,\n });\n return selectedItemsCount === 0\n ? undefined\n : html`\n <div\n id=\"selection-button\"\n role=\"button\"\n class=\"${selectionButtonClasses}\"\n tabindex=\"-1\"\n aria-disabled=${readOnly}\n title=\"${clearSelectionLabel}\">\n ${selectedItemsCount}\n ${iconLoader(Close16, {\n 'aria-label': clearSelectionLabel,\n class: `${prefix}--tag__close-icon`,\n })}\n </div>\n `;\n }\n\n /**\n @returns The main content of the trigger button.\n */\n protected _renderLabel(): TemplateResult {\n const { label, value, _selectedItemContent: selectedItemContent } = this;\n\n const inputClasses = classMap({\n [`${prefix}--text-input`]: true,\n [`${prefix}--text-input--empty`]: !value,\n });\n\n return !this.filterable\n ? html`\n <span id=\"trigger-label\" class=\"${prefix}--list-box__label\"\n >${selectedItemContent || label}</span\n >\n `\n : html`\n <input\n id=\"trigger-label\"\n class=\"${inputClasses}\"\n placeholder=\"${label}\"\n role=\"combobox\"\n aria-controls=\"menu-body\"\n aria-expanded=\"${String(this.open)}\"\n aria-autocomplete=\"list\"\n @input=\"${this._handleInput}\" />\n `;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-invalid-void-type -- https://github.com/carbon-design-system/carbon/issues/20452\n protected _renderFollowingLabel(): TemplateResult | void {\n const { clearSelectionLabel, _filterInputNode: filterInputNode } = this;\n return filterInputNode &&\n filterInputNode.value.length > 0 &&\n this.filterable\n ? html`\n <div\n id=\"clear-button\"\n role=\"button\"\n class=\"${prefix}--list-box__selection\"\n tabindex=\"0\"\n title=\"${clearSelectionLabel}\">\n ${iconLoader(Close16, { 'aria-label': clearSelectionLabel })}\n </div>\n `\n : undefined;\n }\n\n /**\n * Handles `input` event on the `<input>` for filtering.\n */\n protected _handleInput() {\n const items = this.querySelectorAll(\n (this.constructor as typeof CDSMultiSelect).selectorItem\n );\n const inputValue = this._filterInputNode.value.toLocaleLowerCase();\n this.toggleAttribute('has-value', inputValue.length > 0);\n\n if (!this.open) {\n this.open = true;\n }\n\n forEach(items, (item) => {\n // always show the selectAll item\n if ((item as CDSMultiSelectItem).isSelectAll) {\n item.removeAttribute('filtered');\n return;\n }\n const itemValue = (item as HTMLElement).innerText.toLocaleLowerCase();\n\n if (!itemValue.includes(inputValue)) {\n (item as CDSMultiSelectItem).setAttribute('filtered', '');\n (item as CDSMultiSelectItem).removeAttribute('highlighted');\n } else {\n (item as CDSMultiSelectItem).removeAttribute('filtered');\n }\n });\n\n this.requestUpdate();\n\n if (this.selectAll) {\n const selectAllItem = this.querySelector(\n `${prefix}-multi-select-item[is-select-all]`\n ) as CDSMultiSelectItem;\n if (selectAllItem) {\n const visible = Array.from(\n this.querySelectorAll(\n (this.constructor as typeof CDSMultiSelect).selectorItemResults\n )\n ) as CDSMultiSelectItem[];\n const actionable = visible.filter((i) => !i.isSelectAll && !i.disabled);\n if (actionable.length === 0) {\n selectAllItem.setAttribute('filtered', '');\n } else {\n selectAllItem.removeAttribute('filtered');\n this._computeSelectAllState();\n }\n }\n }\n\n const constructor = this.constructor as typeof CDSMultiSelect;\n const visibleItems = Array.from(\n this.querySelectorAll(constructor.selectorItemResults)\n ) as CDSMultiSelectItem[];\n\n if (visibleItems.length > 0) {\n visibleItems.forEach((i) => i.removeAttribute('highlighted'));\n this.setAttribute('item-clicked', '');\n const first = visibleItems[0] as HTMLElement;\n first.setAttribute('highlighted', '');\n first.focus();\n } else {\n this._filterInputNode.focus();\n }\n }\n\n /**\n * Navigate through dropdown items.\n *\n * @param direction `-1` to navigate backward, `1` to navigate forward.\n */\n protected _navigate(direction: number) {\n super._navigate(direction);\n if (this.filterable) {\n this.setAttribute('item-clicked', '');\n } else {\n this._triggerNode.classList.add('no-focus-style');\n }\n }\n\n /**\n * Handles user-initiated clearing the `<input>` for filtering.\n */\n protected _handleUserInitiatedClearInput() {\n const constructor = this.constructor as typeof CDSMultiSelect;\n const items = this.querySelectorAll(constructor.selectorItemFiltered);\n this._filterInputNode.value = '';\n this.open = true;\n this._filterInputNode.focus();\n forEach(items, (item) => {\n (item as CDSMultiSelectItem).removeAttribute('filtered');\n });\n this._filterInputNode.dispatchEvent(\n new Event('input', { bubbles: true, composed: true })\n );\n }\n\n /**\n * The `aria-label` attribute for the icon to clear selection.\n */\n @property({ attribute: 'clear-selection-label' })\n clearSelectionLabel = '';\n\n /**\n * Specify the text that should be read for screen readers that describes total items selected\n */\n @property({ attribute: 'clear-selection-description' })\n clearSelectionDescription = 'Total items selected: ';\n\n /**\n * Specify the text that should be read for screen readers to clear selection.\n */\n @property({ attribute: 'clear-selection-text' })\n clearSelectionText = 'To clear selection, press Delete or Backspace.';\n\n /**\n * Specify the locale of the control. Used for the default compareItems used for sorting the list of items in the control.\n */\n @property()\n locale = 'en';\n\n /**\n * Enables rendering of a “Select all” multi-select-item\n */\n @property({ type: Boolean, reflect: true, attribute: 'select-all' })\n selectAll = false;\n\n /**\n * Specify feedback (mode) of the selection.\n * `top`: selected item jumps to top\n * `fixed`: selected item stays at it's position\n * `top-after-reopen`: selected item jump to top after reopen dropdown\n */\n @property({ attribute: 'selection-feedback' })\n selectionFeedback = SELECTION_FEEDBACK_OPTION.TOP_AFTER_REOPEN;\n\n /**\n * The CSS class list for multi-select listbox\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452\n protected get _classes(): any {\n const {\n disabled,\n size,\n type,\n invalid,\n readOnly,\n open,\n warn,\n _selectedItemsCount: selectedItemsCount,\n } = this;\n const inline = type === DROPDOWN_TYPE.INLINE;\n\n return classMap({\n [`${prefix}--multi-select`]: true,\n [`${prefix}--list-box`]: true,\n [`${prefix}--list-box--disabled`]: disabled,\n [`${prefix}--list-box--inline`]: inline,\n [`${prefix}--list-box--expanded`]: open,\n [`${prefix}--list-box--${size}`]: size,\n [`${prefix}--multi-select--invalid`]: invalid,\n [`${prefix}--multi-select--warn`]: warn,\n [`${prefix}--multi-select--inline`]: inline,\n [`${prefix}--multi-select--readonly`]: readOnly,\n [`${prefix}--multi-select--selected`]: selectedItemsCount > 0,\n [`${prefix}--list-box__wrapper--decorator`]: this._hasAILabel, // inherited from CDSDropdown\n [`${prefix}--multi-select--selectall`]: this.selectAll,\n });\n }\n\n protected compareItems = (itemA, itemB, { locale }) => {\n itemA.localeCompare(itemB, locale, { numeric: true });\n };\n\n protected sortItems = (\n menuItems: NodeList,\n { values, compareItems, locale = 'en' }\n ) => {\n const menuItemsArray = Array.from(menuItems);\n\n const sortedArray = menuItemsArray.sort((itemA, itemB) => {\n const hasItemA = values.includes((itemA as HTMLInputElement).value);\n const hasItemB = values.includes((itemB as HTMLInputElement).value);\n\n // Prefer whichever item is in the `value` array first\n if (hasItemA && !hasItemB) {\n return -1;\n }\n\n if (hasItemB && !hasItemA) {\n return 1;\n }\n\n return compareItems(\n (itemA as HTMLInputElement).value,\n (itemB as HTMLInputElement).value,\n {\n locale,\n }\n );\n });\n\n return sortedArray;\n };\n\n shouldUpdate(changedProperties) {\n const { selectorItem, aiLabelItem, slugItem } = this\n .constructor as typeof CDSMultiSelect;\n const aiLabel =\n this.querySelector(aiLabelItem) || this.querySelector(slugItem);\n const items = this.querySelectorAll(selectorItem);\n\n const { value, locale } = this;\n const values = !value ? [] : value.split(',');\n\n if (changedProperties.has('size')) {\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n (elem as CDSMultiSelectItem).size = this.size;\n });\n }\n if (changedProperties.has('value')) {\n // Updates selection beforehand because our rendering logic for `<cds-custom-multi-select>` looks for selected items via `qSA()`\n forEach(items, (elem) => {\n (elem as CDSMultiSelectItem).selected =\n values.indexOf((elem as CDSMultiSelectItem).value) >= 0;\n });\n this._selectedItemsCount = filter(\n items,\n (elem) =>\n values.indexOf((elem as CDSMultiSelectItem).value) >= 0 &&\n !(elem as CDSMultiSelectItem).isSelectAll\n ).length;\n\n if (this.selectionFeedback === SELECTION_FEEDBACK_OPTION.TOP) {\n const sortedMenuItems = this.sortItems(items, {\n values,\n compareItems: this.compareItems,\n locale,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions -- https://github.com/carbon-design-system/carbon/issues/20452\n aiLabel ? sortedMenuItems.unshift(aiLabel as Node) : '';\n // @todo remove typecast once we've updated to Typescript.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452\n (this as any).replaceChildren(...sortedMenuItems);\n }\n }\n if (changedProperties.has('open')) {\n if (\n this.selectionFeedback === SELECTION_FEEDBACK_OPTION.TOP_AFTER_REOPEN\n ) {\n const sortedMenuItems = this.sortItems(items, {\n values,\n compareItems: this.compareItems,\n locale,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions -- https://github.com/carbon-design-system/carbon/issues/20452\n aiLabel ? sortedMenuItems.unshift(aiLabel as Node) : '';\n // @todo remove typecast once we've updated to Typescript.\n sortedMenuItems.forEach((item) => {\n this.appendChild(item);\n });\n }\n }\n return true;\n }\n\n updated(changedProperties) {\n super.updated(changedProperties);\n\n if (changedProperties.has('open') && this.open) {\n const selectedItems = Array.from(\n this.querySelectorAll(`${prefix}-multi-select-item[selected]`)\n ) as CDSMultiSelectItem[];\n\n if (selectedItems.length > 0) {\n let itemToFocus: HTMLElement | null = null;\n if (this.selectAll) {\n itemToFocus = this.querySelector(\n `${prefix}-multi-select-item[is-select-all]`\n ) as CDSMultiSelectItem;\n }\n if (!itemToFocus) {\n itemToFocus = selectedItems[0] as HTMLElement;\n }\n this.setAttribute('item-clicked', '');\n itemToFocus.focus();\n itemToFocus.setAttribute('highlighted', '');\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions -- https://github.com/carbon-design-system/carbon/issues/20452\n this.filterable\n ? this._filterInputNode.focus()\n : this._triggerNode.focus();\n }\n }\n // reorder items so that select all is always at the top of the list\n if (this.selectAll && changedProperties.has('open') && this.open) {\n const items = Array.from(\n this.querySelectorAll('cds-custom-multi-select-item')\n ) as CDSMultiSelectItem[];\n\n const selectAllItem = items.find((i) => i.isSelectAll);\n if (selectAllItem) {\n this.appendChild(selectAllItem);\n items\n .filter((i) => i !== selectAllItem)\n .forEach((i) => this.appendChild(i));\n }\n }\n\n // flush the top of the first element\n Array.from(this.querySelectorAll('cds-custom-multi-select-item')).forEach(\n (item, index) => {\n if (index === 0 && !item.hasAttribute('is-select-all')) {\n item.setAttribute('flush-top', '');\n } else if (index === 1 && this.selectAll) {\n item.setAttribute('flush-top', '');\n } else {\n item.removeAttribute('flush-top');\n }\n }\n );\n\n if (changedProperties.has('open') && !this.open) {\n this._triggerNode.classList.remove('no-focus-style');\n this.removeAttribute('item-clicked');\n }\n }\n\n firstUpdated(changedProperties) {\n super.firstUpdated?.(changedProperties);\n\n // whenever more items are added/removed, recompute the state of the select all option\n if (!this.selectAll) return;\n const defaultSlot =\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n this.shadowRoot!.querySelector<HTMLSlotElement>('slot:not([name])')!;\n defaultSlot.addEventListener('slotchange', () =>\n this._computeSelectAllState()\n );\n }\n\n /**\n * Computes the state of the select all option and sets it to either\n * 'selected' or 'indeterminate'\n */\n private _computeSelectAllState() {\n if (!this.selectAll) return;\n\n const allItems = Array.from(\n this.querySelectorAll(\n (this.constructor as typeof CDSMultiSelect).selectorItem\n )\n ) as CDSMultiSelectItem[];\n const selectAllItem = allItems.find((i) => i.isSelectAll);\n if (!selectAllItem || selectAllItem.hasAttribute('filtered')) {\n return;\n }\n\n const enabledItems = allItems\n .filter((i) => !i.isSelectAll && !i.disabled)\n .filter((i) => !this.filterable || !i.hasAttribute('filtered'));\n const selectedCount = enabledItems.filter((i) => i.selected).length;\n const allSelected = selectedCount === enabledItems.length;\n\n selectAllItem.selected = allSelected;\n selectAllItem.indeterminate = selectedCount > 0 && !allSelected;\n }\n\n connectedCallback() {\n super.connectedCallback();\n /**\n * Detect if multi-select already has initially selected items\n */\n this.value = filter(\n this.querySelectorAll(\n (this.constructor as typeof CDSMultiSelect).selectorItem\n ),\n (item) => (item as CDSMultiSelectItem).hasAttribute('selected')\n )\n .map((item) => (item as CDSMultiSelectItem).getAttribute('value'))\n .join(',');\n }\n\n /**\n * A selector that will return menu body.\n */\n static get selectorMenuBody() {\n return `div[part=\"menu-body\"]`;\n }\n\n /**\n * A selector that will return highlighted items.\n */\n static get selectorItemHighlighted() {\n return `${prefix}-multi-select-item[highlighted]`;\n }\n\n /**\n * A selector that will return multi select items.\n * We use a separate property from `.itemTagName` due to the nature in difference of tag name vs. selector.\n */\n static get selectorItem() {\n return `${prefix}-multi-select-item`;\n }\n\n /**\n * A selector that will return remaining items after a filter.\n */\n static get selectorItemFiltered() {\n return `${prefix}-multi-select-item[filtered]`;\n }\n\n /**\n * A selector that will return remaining items after a filter.\n */\n static get selectorItemResults() {\n return `${prefix}-multi-select-item:not([filtered])`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-multi-select-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before this multi select item is being toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated action of toggling this multi select item.\n */\n static get eventBeforeToggle() {\n return `${prefix}-multi-select-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after this multi select item is toggled upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-multi-select-toggled`;\n }\n\n /**\n * The name of the custom event fired before a multi select item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n */\n static get eventBeforeSelect() {\n return `${prefix}-multi-select-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a multi select item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-multi-select-selected`;\n }\n\n static styles = styles;\n}\n\nexport default CDSMultiSelect;\n"],"names":["customElement"],"mappings":"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"}
1
+ {"version":3,"file":"multi-select.js","sources":["../../../src/components/multi-select/multi-select.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2020, 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 { html, PropertyValues, TemplateResult } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { prefix } from '../../globals/settings';\nimport Close16 from '@carbon/icons/es/close/16.js';\nimport { filter, forEach } from '../../globals/internal/collection-helpers';\nimport CDSDropdown, {\n DROPDOWN_KEYBOARD_ACTION,\n DROPDOWN_TYPE,\n} from '../dropdown/dropdown';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport { SELECTION_FEEDBACK_OPTION } from './defs';\nimport CDSMultiSelectItem from './multi-select-item';\nimport styles from './multi-select.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport {\n DROPDOWN_SIZE,\n DROPDOWN_TYPE,\n DROPDOWN_DIRECTION,\n} from '../dropdown/dropdown';\n\nexport { SELECTION_FEEDBACK_OPTION };\n\n/**\n * Multi select.\n *\n * @element cds-custom-multi-select\n * @fires cds-custom-multi-select-beingselected\n * The custom event fired before a multi select item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires cds-custom-multi-select-selected - The custom event fired after a multi select item is selected upon a user gesture.\n * @fires cds-custom-multi-select-beingtoggled\n * The custom event fired before the open state of this multi select is toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated toggling.\n * @fires cds-custom-multi-select-toggled\n * The custom event fired after the open state of this multi select is toggled upon a user gesture.\n */\n@customElement(`${prefix}-multi-select`)\nclass CDSMultiSelect extends CDSDropdown {\n @property({ type: Boolean })\n filterable;\n\n /**\n * The count of selected items.\n */\n private _selectedItemsCount = 0;\n\n /**\n * The clear button.\n */\n @query('#clear-button')\n private _clearButtonNode!: HTMLElement;\n\n /**\n * The selection button.\n */\n @query('#selection-button')\n private _selectionButtonNode!: HTMLElement;\n\n /**\n * The `<input>` for filtering.\n */\n @query('input')\n private _filterInputNode!: HTMLInputElement;\n\n protected get _supportsMenuInputFiltering() {\n return Boolean(this.filterable);\n }\n\n protected willUpdate(changedProperties: PropertyValues) {\n this._shouldTriggerBeFocusable = !this.filterable;\n super.willUpdate(changedProperties);\n }\n\n protected get _menuInputNode(): HTMLInputElement | null {\n return this.filterable ? (this._filterInputNode ?? null) : null;\n }\n\n protected _clearMenuInputFiltering() {\n if (this.filterable) {\n this._handleUserInitiatedClearInput();\n }\n }\n\n protected _shouldClearMenuInputOnEscape({\n menuOpen,\n isInputTarget,\n }: {\n event: KeyboardEvent;\n menuOpen: boolean;\n isInputTarget: boolean;\n }) {\n if (!menuOpen) {\n return true;\n }\n\n if (!isInputTarget) {\n return false;\n }\n\n return Boolean(this._filterInputNode?.value);\n }\n\n /**\n * The trigger button.\n */\n @query(`.${prefix}--list-box__field`)\n private _triggerNode!: HTMLElement;\n\n protected _selectionShouldChange(itemToSelect?: CDSMultiSelectItem) {\n // If we are selecting an item, assumes we always toggle\n return Boolean(this.value || itemToSelect);\n }\n\n protected _selectionDidChange(itemToSelect?: CDSMultiSelectItem) {\n const allItems = Array.from(\n this.querySelectorAll(\n (this.constructor as typeof CDSMultiSelect).selectorItem\n )\n ) as CDSMultiSelectItem[];\n\n // clicked \"select all\" when it was indeterminate\n if (itemToSelect?.isSelectAll && itemToSelect.indeterminate) {\n allItems.forEach((i) => {\n i.selected = false;\n i.indeterminate = false;\n });\n this.value = '';\n return;\n }\n\n if (itemToSelect) {\n // clicked select all\n if (itemToSelect.isSelectAll) {\n const items = this.filterable\n ? Array.from(\n this.querySelectorAll(\n (this.constructor as typeof CDSMultiSelect).selectorItemResults\n )\n )\n : allItems;\n items.forEach((i) => {\n if (\n !(i as CDSMultiSelectItem).isSelectAll &&\n !(i as CDSMultiSelectItem).disabled\n ) {\n (i as CDSMultiSelectItem).selected = !itemToSelect.selected;\n }\n (i as CDSMultiSelectItem).indeterminate = false;\n });\n itemToSelect.selected = !itemToSelect.selected;\n // clicked regular item\n } else {\n itemToSelect.selected = !itemToSelect.selected;\n }\n } else {\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof CDSMultiSelect).selectorItemSelected\n ),\n (item) => {\n (item as CDSMultiSelectItem).selected = false;\n }\n );\n this._handleUserInitiatedToggle(false);\n }\n if (this.selectAll) this._computeSelectAllState();\n // Change in `.selected` hasn't been reflected to the corresponding attribute yet\n this.value = filter(\n this.querySelectorAll(\n (this.constructor as typeof CDSMultiSelect).selectorItem\n ),\n (item) => (item as CDSMultiSelectItem).selected\n )\n .map((item) => (item as CDSMultiSelectItem).value)\n .join(',');\n }\n\n // Keep the menu open for individual selections, close only when clearing.\n\n protected _shouldCloseAfterSelection(item?: CDSMultiSelectItem) {\n return !item;\n }\n\n protected _handleClickInner(event: MouseEvent) {\n const clickedItem = (event.target as HTMLElement).closest(\n `${prefix}-multi-select-item`\n ) as CDSMultiSelectItem | null;\n if (\n this._selectionButtonNode?.contains(event.target as Node) &&\n !this.readOnly\n ) {\n this._handleUserInitiatedSelectItem();\n if (this.filterable) {\n this._filterInputNode.focus();\n } else {\n this._triggerNode.focus();\n }\n } else if (clickedItem && !clickedItem.hasAttribute('disabled')) {\n // Handle focus highlight\n const allItems = this.querySelectorAll(`${prefix}-multi-select-item`);\n allItems.forEach((el) => el.removeAttribute('highlighted'));\n clickedItem.setAttribute('highlighted', '');\n this._handleUserInitiatedSelectItem(clickedItem);\n this.setAttribute('item-clicked', '');\n if (this.filterable) {\n this._filterInputNode.focus();\n }\n } else if (this._clearButtonNode?.contains(event.target as Node)) {\n this._handleUserInitiatedClearInput();\n } else if (\n !(event.target as HTMLElement)?.matches(\n (this.constructor as typeof CDSMultiSelect).aiLabelItem\n ) &&\n // remove reference to slug in v12\n !(event.target as HTMLElement)?.matches(\n (this.constructor as typeof CDSMultiSelect).slugItem\n )\n ) {\n super._handleClickInner(event);\n if (this.filterable) {\n this._filterInputNode.focus();\n }\n }\n }\n\n /**\n * Handler for the `keypress` event, ensures filter still works upon entering space\n */\n protected _handleKeypressInner(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof CDSDropdown).getAction(key);\n const { TRIGGERING } = DROPDOWN_KEYBOARD_ACTION;\n\n if (\n this._clearButtonNode?.contains(event.target as Node) &&\n // Space key should be handled by `<input>` unless \"clear selection\" button has focus\n (action === TRIGGERING || key === ' ')\n ) {\n this._handleUserInitiatedClearInput();\n } else if (this._selectionButtonNode?.contains(event.target as Node)) {\n this._handleUserInitiatedSelectItem();\n this.open = true;\n if (this.filterable) {\n this._filterInputNode.focus();\n } else {\n this._triggerNode.focus();\n }\n } else if (this.filterable) {\n this._handleKeypressInnerFlterable(event);\n } else {\n super._handleKeypressInner(event);\n }\n }\n\n protected _handleMouseoverInner(event: MouseEvent) {\n const item = this._getDropdownItemFromEvent(event);\n const isFiltering =\n this.filterable && Boolean(this._filterInputNode?.value.length);\n\n if (\n !item ||\n isFiltering ||\n !item.hasAttribute('selected') ||\n !item.hasAttribute('highlighted')\n ) {\n return;\n }\n\n super._handleMouseoverInner(event);\n }\n\n protected _handleMouseleaveInner(event: MouseEvent) {\n const constructor = this.constructor as typeof CDSMultiSelect;\n const isFiltering =\n this.filterable && Boolean(this._filterInputNode?.value.length);\n const highlightedItem = this.querySelector(\n constructor.selectorItemHighlighted\n ) as CDSMultiSelectItem | null;\n\n if (isFiltering || highlightedItem?.hasAttribute('selected')) {\n return;\n }\n\n super._handleMouseleaveInner(event);\n }\n\n /**\n * Special andler for the `keypress` event, ensures space selection for filterable\n * variation is disabled\n */\n\n protected _handleKeypressInnerFlterable(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof CDSDropdown).getAction(key);\n if (!this.open) {\n switch (action) {\n case DROPDOWN_KEYBOARD_ACTION.TRIGGERING:\n this._handleUserInitiatedToggle(true);\n break;\n default:\n break;\n }\n } else {\n switch (key) {\n case 'Enter':\n {\n const constructor = this.constructor as typeof CDSDropdown;\n const highlightedItem = this.querySelector(\n constructor.selectorItemHighlighted\n ) as CDSMultiSelectItem;\n if (highlightedItem) {\n this._handleUserInitiatedSelectItem(highlightedItem);\n } else {\n this._handleUserInitiatedToggle(false);\n }\n }\n break;\n default:\n break;\n }\n }\n }\n\n protected _renderTitleLabel() {\n const {\n clearSelectionDescription,\n clearSelectionText,\n disabled,\n hideLabel,\n titleText,\n _selectedItemsCount: selectedItemsCount,\n _slotTitleTextNode: slotTitleTextNode,\n _handleSlotchangeLabelText: handleSlotchangeLabelText,\n } = this;\n\n const labelClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--label--disabled`]: disabled,\n [`${prefix}--visually-hidden`]: hideLabel,\n });\n\n const hasTitleText =\n titleText ||\n (slotTitleTextNode && slotTitleTextNode.assignedNodes().length > 0);\n\n return html`\n <label\n part=\"title-text\"\n class=\"${labelClasses}\"\n ?hidden=\"${!hasTitleText}\">\n <slot name=\"title-text\" @slotchange=\"${handleSlotchangeLabelText}\"\n >${titleText}</slot\n >\n ${selectedItemsCount > 0\n ? html`\n <span class=\"${prefix}--visually-hidden\">\n ${clearSelectionDescription} ${selectedItemsCount},\n ${clearSelectionText}\n </span>\n `\n : null}\n </label>\n `;\n }\n\n protected _renderPrecedingLabel() {\n const {\n disabled,\n readOnly,\n clearSelectionLabel,\n _selectedItemsCount: selectedItemsCount,\n } = this;\n\n const selectionButtonClasses = classMap({\n [`${prefix}--list-box__selection`]: true,\n [`${prefix}--list-box__selection--multi`]: true,\n [`${prefix}--tag`]: true,\n [`${prefix}--tag--filter`]: true,\n [`${prefix}--tag--high-contrast`]: true,\n [`${prefix}--tag--disabled`]: disabled,\n });\n return selectedItemsCount === 0\n ? undefined\n : html`\n <div\n id=\"selection-button\"\n role=\"button\"\n class=\"${selectionButtonClasses}\"\n tabindex=\"-1\"\n aria-disabled=${readOnly}\n title=\"${clearSelectionLabel}\">\n ${selectedItemsCount}\n ${iconLoader(Close16, {\n 'aria-label': clearSelectionLabel,\n class: `${prefix}--tag__close-icon`,\n })}\n </div>\n `;\n }\n\n /**\n @returns The main content of the trigger button.\n */\n protected _renderLabel(): TemplateResult {\n const { label, value, _selectedItemContent: selectedItemContent } = this;\n\n const inputClasses = classMap({\n [`${prefix}--text-input`]: true,\n [`${prefix}--text-input--empty`]: !value,\n });\n\n return !this.filterable\n ? html`\n <span id=\"trigger-label\" class=\"${prefix}--list-box__label\"\n >${selectedItemContent || label}</span\n >\n `\n : html`\n <input\n id=\"trigger-label\"\n class=\"${inputClasses}\"\n placeholder=\"${label}\"\n role=\"combobox\"\n aria-controls=\"menu-body\"\n aria-expanded=\"${String(this.open)}\"\n aria-autocomplete=\"list\"\n @input=\"${this._handleInput}\" />\n `;\n }\n\n protected _renderFollowingLabel(): TemplateResult | undefined {\n const { clearSelectionLabel, _filterInputNode: filterInputNode } = this;\n return filterInputNode &&\n filterInputNode.value.length > 0 &&\n this.filterable\n ? html`\n <div\n id=\"clear-button\"\n role=\"button\"\n class=\"${prefix}--list-box__selection\"\n tabindex=\"0\"\n title=\"${clearSelectionLabel}\">\n ${iconLoader(Close16, { 'aria-label': clearSelectionLabel })}\n </div>\n `\n : undefined;\n }\n\n /**\n * Handles `input` event on the `<input>` for filtering.\n */\n protected _handleInput() {\n const items = this.querySelectorAll(\n (this.constructor as typeof CDSMultiSelect).selectorItem\n );\n const inputValue = this._filterInputNode.value.toLocaleLowerCase();\n this.toggleAttribute('has-value', inputValue.length > 0);\n\n if (!this.open) {\n this.open = true;\n }\n\n forEach(items, (item) => {\n // always show the selectAll item\n if ((item as CDSMultiSelectItem).isSelectAll) {\n item.removeAttribute('filtered');\n return;\n }\n const itemValue = (item as HTMLElement).innerText.toLocaleLowerCase();\n\n if (!itemValue.includes(inputValue)) {\n (item as CDSMultiSelectItem).setAttribute('filtered', '');\n (item as CDSMultiSelectItem).removeAttribute('highlighted');\n } else {\n (item as CDSMultiSelectItem).removeAttribute('filtered');\n }\n });\n\n this.requestUpdate();\n\n if (this.selectAll) {\n const selectAllItem = this.querySelector(\n `${prefix}-multi-select-item[is-select-all]`\n ) as CDSMultiSelectItem;\n if (selectAllItem) {\n const visible = Array.from(\n this.querySelectorAll(\n (this.constructor as typeof CDSMultiSelect).selectorItemResults\n )\n ) as CDSMultiSelectItem[];\n const actionable = visible.filter((i) => !i.isSelectAll && !i.disabled);\n if (actionable.length === 0) {\n selectAllItem.setAttribute('filtered', '');\n } else {\n selectAllItem.removeAttribute('filtered');\n this._computeSelectAllState();\n }\n }\n }\n\n const constructor = this.constructor as typeof CDSMultiSelect;\n const visibleItems = Array.from(\n this.querySelectorAll(constructor.selectorItemResults)\n ) as CDSMultiSelectItem[];\n\n if (visibleItems.length > 0) {\n visibleItems.forEach((i) => i.removeAttribute('highlighted'));\n this.setAttribute('item-clicked', '');\n const first = visibleItems[0] as HTMLElement;\n first.setAttribute('highlighted', '');\n first.focus();\n } else {\n this._filterInputNode.focus();\n }\n }\n\n /**\n * Navigate through dropdown items.\n *\n * @param direction `-1` to navigate backward, `1` to navigate forward.\n */\n protected _navigate(direction: number) {\n super._navigate(direction);\n if (this.filterable) {\n this.setAttribute('item-clicked', '');\n } else {\n this._triggerNode.classList.add('no-focus-style');\n }\n }\n\n /**\n * Handles user-initiated clearing the `<input>` for filtering.\n */\n protected _handleUserInitiatedClearInput() {\n const constructor = this.constructor as typeof CDSMultiSelect;\n const items = this.querySelectorAll(constructor.selectorItemFiltered);\n this._filterInputNode.value = '';\n this.open = true;\n this._filterInputNode.focus();\n forEach(items, (item) => {\n (item as CDSMultiSelectItem).removeAttribute('filtered');\n });\n this._filterInputNode.dispatchEvent(\n new Event('input', { bubbles: true, composed: true })\n );\n }\n\n /**\n * The `aria-label` attribute for the icon to clear selection.\n */\n @property({ attribute: 'clear-selection-label' })\n clearSelectionLabel = '';\n\n /**\n * Specify the text that should be read for screen readers that describes total items selected\n */\n @property({ attribute: 'clear-selection-description' })\n clearSelectionDescription = 'Total items selected: ';\n\n /**\n * Specify the text that should be read for screen readers to clear selection.\n */\n @property({ attribute: 'clear-selection-text' })\n clearSelectionText = 'To clear selection, press Delete or Backspace.';\n\n /**\n * Specify the locale of the control. Used for the default compareItems used for sorting the list of items in the control.\n */\n @property()\n locale = 'en';\n\n /**\n * Enables rendering of a “Select all” multi-select-item\n */\n @property({ type: Boolean, reflect: true, attribute: 'select-all' })\n selectAll = false;\n\n /**\n * Specify feedback (mode) of the selection.\n * `top`: selected item jumps to top\n * `fixed`: selected item stays at it's position\n * `top-after-reopen`: selected item jump to top after reopen dropdown\n */\n @property({ attribute: 'selection-feedback' })\n selectionFeedback = SELECTION_FEEDBACK_OPTION.TOP_AFTER_REOPEN;\n\n /**\n * The CSS class list for multi-select listbox\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452\n protected get _classes(): any {\n const {\n disabled,\n size,\n type,\n invalid,\n readOnly,\n open,\n warn,\n _selectedItemsCount: selectedItemsCount,\n } = this;\n const inline = type === DROPDOWN_TYPE.INLINE;\n\n const isInteractive = !readOnly && !disabled;\n\n const normalizedProps: {\n invalid: boolean;\n warn: boolean;\n } = {\n invalid: isInteractive && invalid,\n warn: isInteractive && !invalid && warn,\n };\n\n return classMap({\n [`${prefix}--multi-select`]: true,\n [`${prefix}--list-box`]: true,\n [`${prefix}--list-box--disabled`]: disabled,\n [`${prefix}--list-box--inline`]: inline,\n [`${prefix}--list-box--expanded`]: open,\n [`${prefix}--list-box--${size}`]: size,\n [`${prefix}--multi-select--invalid`]: normalizedProps.invalid,\n [`${prefix}--multi-select--warn`]: normalizedProps.warn,\n [`${prefix}--multi-select--inline`]: inline,\n [`${prefix}--multi-select--readonly`]: readOnly,\n [`${prefix}--multi-select--selected`]: selectedItemsCount > 0,\n [`${prefix}--list-box__wrapper--decorator`]: this._hasAILabel, // inherited from CDSDropdown\n [`${prefix}--multi-select--selectall`]: this.selectAll,\n });\n }\n\n protected compareItems = (itemA, itemB, { locale }) => {\n itemA.localeCompare(itemB, locale, { numeric: true });\n };\n\n protected sortItems = (\n menuItems: NodeList,\n { values, compareItems, locale = 'en' }\n ) => {\n const menuItemsArray = Array.from(menuItems);\n\n const sortedArray = menuItemsArray.sort((itemA, itemB) => {\n const hasItemA = values.includes((itemA as HTMLInputElement).value);\n const hasItemB = values.includes((itemB as HTMLInputElement).value);\n\n // Prefer whichever item is in the `value` array first\n if (hasItemA && !hasItemB) {\n return -1;\n }\n\n if (hasItemB && !hasItemA) {\n return 1;\n }\n\n return compareItems(\n (itemA as HTMLInputElement).value,\n (itemB as HTMLInputElement).value,\n {\n locale,\n }\n );\n });\n\n return sortedArray;\n };\n\n shouldUpdate(changedProperties) {\n const { selectorItem, aiLabelItem, slugItem } = this\n .constructor as typeof CDSMultiSelect;\n const aiLabel =\n this.querySelector(aiLabelItem) || this.querySelector(slugItem);\n const items = this.querySelectorAll(selectorItem);\n\n const { value, locale } = this;\n const values = !value ? [] : value.split(',');\n\n if (changedProperties.has('size')) {\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n (elem as CDSMultiSelectItem).size = this.size;\n });\n }\n if (changedProperties.has('value')) {\n // Updates selection beforehand because our rendering logic for `<cds-custom-multi-select>` looks for selected items via `qSA()`\n forEach(items, (elem) => {\n (elem as CDSMultiSelectItem).selected =\n values.indexOf((elem as CDSMultiSelectItem).value) >= 0;\n });\n this._selectedItemsCount = filter(\n items,\n (elem) =>\n values.indexOf((elem as CDSMultiSelectItem).value) >= 0 &&\n !(elem as CDSMultiSelectItem).isSelectAll\n ).length;\n\n if (this.selectionFeedback === SELECTION_FEEDBACK_OPTION.TOP) {\n const sortedMenuItems = this.sortItems(items, {\n values,\n compareItems: this.compareItems,\n locale,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions -- https://github.com/carbon-design-system/carbon/issues/20452\n aiLabel ? sortedMenuItems.unshift(aiLabel as Node) : '';\n // @todo remove typecast once we've updated to Typescript.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452\n (this as any).replaceChildren(...sortedMenuItems);\n }\n }\n if (changedProperties.has('open')) {\n if (\n this.selectionFeedback === SELECTION_FEEDBACK_OPTION.TOP_AFTER_REOPEN\n ) {\n const sortedMenuItems = this.sortItems(items, {\n values,\n compareItems: this.compareItems,\n locale,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions -- https://github.com/carbon-design-system/carbon/issues/20452\n aiLabel ? sortedMenuItems.unshift(aiLabel as Node) : '';\n // @todo remove typecast once we've updated to Typescript.\n sortedMenuItems.forEach((item) => {\n this.appendChild(item);\n });\n }\n }\n return true;\n }\n\n updated(changedProperties) {\n super.updated(changedProperties);\n\n if (changedProperties.has('open') && this.open) {\n const selectedItems = Array.from(\n this.querySelectorAll(`${prefix}-multi-select-item[selected]`)\n ) as CDSMultiSelectItem[];\n\n if (selectedItems.length > 0) {\n let itemToFocus: HTMLElement | null = null;\n if (this.selectAll) {\n itemToFocus = this.querySelector(\n `${prefix}-multi-select-item[is-select-all]`\n ) as CDSMultiSelectItem;\n }\n if (!itemToFocus) {\n itemToFocus = selectedItems[0] as HTMLElement;\n }\n this.setAttribute('item-clicked', '');\n itemToFocus.focus();\n itemToFocus.setAttribute('highlighted', '');\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions -- https://github.com/carbon-design-system/carbon/issues/20452\n this.filterable\n ? this._filterInputNode.focus()\n : this._triggerNode.focus();\n }\n }\n // reorder items so that select all is always at the top of the list\n if (this.selectAll && changedProperties.has('open') && this.open) {\n const items = Array.from(\n this.querySelectorAll('cds-custom-multi-select-item')\n ) as CDSMultiSelectItem[];\n\n const selectAllItem = items.find((i) => i.isSelectAll);\n if (selectAllItem) {\n this.appendChild(selectAllItem);\n items\n .filter((i) => i !== selectAllItem)\n .forEach((i) => this.appendChild(i));\n }\n }\n\n // flush the top of the first element\n Array.from(this.querySelectorAll('cds-custom-multi-select-item')).forEach(\n (item, index) => {\n if (index === 0 && !item.hasAttribute('is-select-all')) {\n item.setAttribute('flush-top', '');\n } else if (index === 1 && this.selectAll) {\n item.setAttribute('flush-top', '');\n } else {\n item.removeAttribute('flush-top');\n }\n }\n );\n\n if (changedProperties.has('open') && !this.open) {\n this._triggerNode.classList.remove('no-focus-style');\n this.removeAttribute('item-clicked');\n }\n }\n\n firstUpdated(changedProperties) {\n super.firstUpdated?.(changedProperties);\n\n // whenever more items are added/removed, recompute the state of the select all option\n if (!this.selectAll) return;\n const defaultSlot =\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n this.shadowRoot!.querySelector<HTMLSlotElement>('slot:not([name])')!;\n defaultSlot.addEventListener('slotchange', () =>\n this._computeSelectAllState()\n );\n }\n\n /**\n * Computes the state of the select all option and sets it to either\n * 'selected' or 'indeterminate'\n */\n private _computeSelectAllState() {\n if (!this.selectAll) return;\n\n const allItems = Array.from(\n this.querySelectorAll(\n (this.constructor as typeof CDSMultiSelect).selectorItem\n )\n ) as CDSMultiSelectItem[];\n const selectAllItem = allItems.find((i) => i.isSelectAll);\n if (!selectAllItem || selectAllItem.hasAttribute('filtered')) {\n return;\n }\n\n const enabledItems = allItems\n .filter((i) => !i.isSelectAll && !i.disabled)\n .filter((i) => !this.filterable || !i.hasAttribute('filtered'));\n const selectedCount = enabledItems.filter((i) => i.selected).length;\n const allSelected = selectedCount === enabledItems.length;\n\n selectAllItem.selected = allSelected;\n selectAllItem.indeterminate = selectedCount > 0 && !allSelected;\n }\n\n connectedCallback() {\n super.connectedCallback();\n /**\n * Detect if multi-select already has initially selected items\n */\n this.value = filter(\n this.querySelectorAll(\n (this.constructor as typeof CDSMultiSelect).selectorItem\n ),\n (item) => (item as CDSMultiSelectItem).hasAttribute('selected')\n )\n .map((item) => (item as CDSMultiSelectItem).getAttribute('value'))\n .join(',');\n }\n\n /**\n * A selector that will return menu body.\n */\n static get selectorMenuBody() {\n return `div[part=\"menu-body\"]`;\n }\n\n /**\n * A selector that will return highlighted items.\n */\n static get selectorItemHighlighted() {\n return `${prefix}-multi-select-item[highlighted]`;\n }\n\n /**\n * A selector that will return multi select items.\n * We use a separate property from `.itemTagName` due to the nature in difference of tag name vs. selector.\n */\n static get selectorItem() {\n return `${prefix}-multi-select-item`;\n }\n\n /**\n * A selector that will return remaining items after a filter.\n */\n static get selectorItemFiltered() {\n return `${prefix}-multi-select-item[filtered]`;\n }\n\n /**\n * A selector that will return remaining items after a filter.\n */\n static get selectorItemResults() {\n return `${prefix}-multi-select-item:not([filtered])`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-multi-select-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before this multi select item is being toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated action of toggling this multi select item.\n */\n static get eventBeforeToggle() {\n return `${prefix}-multi-select-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after this multi select item is toggled upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-multi-select-toggled`;\n }\n\n /**\n * The name of the custom event fired before a multi select item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n */\n static get eventBeforeSelect() {\n return `${prefix}-multi-select-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a multi select item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-multi-select-selected`;\n }\n\n static styles = styles;\n}\n\nexport default CDSMultiSelect;\n"],"names":["customElement"],"mappings":"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"}