@carbon/web-components 2.47.0 → 2.48.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 (431) hide show
  1. package/custom-elements.json +963 -145
  2. package/es/components/accordion/accordion-item.d.ts +28 -12
  3. package/es/components/accordion/accordion-item.js +7 -5
  4. package/es/components/accordion/accordion-item.js.map +1 -1
  5. package/es/components/accordion/accordion-skeleton.d.ts +1 -1
  6. package/es/components/accordion/accordion-skeleton.js +7 -5
  7. package/es/components/accordion/accordion-skeleton.js.map +1 -1
  8. package/es/components/accordion/accordion.d.ts +1 -1
  9. package/es/components/accordion/accordion.js +7 -5
  10. package/es/components/accordion/accordion.js.map +1 -1
  11. package/es/components/ai-label/ai-label.d.ts +1 -1
  12. package/es/components/ai-label/ai-label.js +6 -5
  13. package/es/components/ai-label/ai-label.js.map +1 -1
  14. package/es/components/button/button.d.ts +56 -22
  15. package/es/components/checkbox/checkbox-group.d.ts +2 -0
  16. package/es/components/checkbox/checkbox.d.ts +57 -23
  17. package/es/components/checkbox/checkbox.js +7 -5
  18. package/es/components/checkbox/checkbox.js.map +1 -1
  19. package/es/components/code-snippet/code-snippet.d.ts +29 -11
  20. package/es/components/code-snippet/code-snippet.js +15 -14
  21. package/es/components/code-snippet/code-snippet.js.map +1 -1
  22. package/es/components/combo-box/combo-box.scss.js +1 -1
  23. package/es/components/combo-button/combo-button.d.ts +27 -11
  24. package/es/components/content-switcher/content-switcher-item.d.ts +29 -11
  25. package/es/components/copy-button/copy-button.d.ts +27 -11
  26. package/es/components/data-table/table-expanded-row.d.ts +28 -12
  27. package/es/components/data-table/table-expanded-row.js +7 -5
  28. package/es/components/data-table/table-expanded-row.js.map +1 -1
  29. package/es/components/data-table/table-header-cell.d.ts +29 -11
  30. package/es/components/data-table/table-row.d.ts +54 -22
  31. package/es/components/data-table/table-toolbar-search.d.ts +29 -11
  32. package/es/components/data-table/table.d.ts +28 -12
  33. package/es/components/data-table/table.js +9 -8
  34. package/es/components/data-table/table.js.map +1 -1
  35. package/es/components/date-picker/date-picker-input.d.ts +29 -11
  36. package/es/components/date-picker/date-picker.d.ts +54 -22
  37. package/es/components/dropdown/dropdown.d.ts +110 -44
  38. package/es/components/dropdown/dropdown.js +8 -6
  39. package/es/components/dropdown/dropdown.js.map +1 -1
  40. package/es/components/file-uploader/file-uploader-button.d.ts +27 -11
  41. package/es/components/file-uploader/file-uploader-drop-container.d.ts +27 -11
  42. package/es/components/floating-menu/floating-menu.d.ts +56 -22
  43. package/es/components/fluid-select/fluid-select.d.ts +5 -0
  44. package/es/components/fluid-select/fluid-select.js +50 -1
  45. package/es/components/fluid-select/fluid-select.js.map +1 -1
  46. package/es/components/fluid-textarea/fluid-textarea-skeleton.d.ts +3 -3
  47. package/es/components/fluid-textarea/fluid-textarea-skeleton.js +3 -3
  48. package/es/components/fluid-textarea/fluid-textarea-skeleton.js.map +1 -1
  49. package/es/components/fluid-time-picker/fluid-time-picker-select.d.ts +21 -0
  50. package/es/components/fluid-time-picker/fluid-time-picker-select.js +53 -0
  51. package/es/components/fluid-time-picker/fluid-time-picker-select.js.map +1 -0
  52. package/es/components/fluid-time-picker/fluid-time-picker-skeleton.d.ts +23 -0
  53. package/es/components/fluid-time-picker/fluid-time-picker-skeleton.js +63 -0
  54. package/es/components/fluid-time-picker/fluid-time-picker-skeleton.js.map +1 -0
  55. package/es/components/fluid-time-picker/fluid-time-picker.d.ts +32 -0
  56. package/es/components/fluid-time-picker/fluid-time-picker.js +239 -0
  57. package/es/components/fluid-time-picker/fluid-time-picker.js.map +1 -0
  58. package/es/components/fluid-time-picker/fluid-time-picker.scss.js +13 -0
  59. package/es/components/fluid-time-picker/fluid-time-picker.scss.js.map +1 -0
  60. package/es/components/fluid-time-picker/index.d.ts +9 -0
  61. package/es/components/fluid-time-picker/index.js +11 -0
  62. package/es/components/fluid-time-picker/index.js.map +1 -0
  63. package/es/components/grid/column.d.ts +3 -1
  64. package/es/components/grid/column.js +6 -0
  65. package/es/components/grid/column.js.map +1 -1
  66. package/es/components/icon-button/icon-button.d.ts +1 -1
  67. package/es/components/icon-button/icon-button.js +6 -5
  68. package/es/components/icon-button/icon-button.js.map +1 -1
  69. package/es/components/link/link.d.ts +29 -11
  70. package/es/components/menu/menu-item-selectable.d.ts +5 -3
  71. package/es/components/menu/menu-item-selectable.js +3 -3
  72. package/es/components/menu/menu-item-selectable.js.map +1 -1
  73. package/es/components/menu/menu-item.d.ts +68 -23
  74. package/es/components/menu/menu-item.js +37 -2
  75. package/es/components/menu/menu-item.js.map +1 -1
  76. package/es/components/menu/menu.d.ts +27 -11
  77. package/es/components/menu-button/menu-button.d.ts +27 -11
  78. package/es/components/modal/modal-close-button.d.ts +29 -11
  79. package/es/components/modal/modal.d.ts +27 -11
  80. package/es/components/modal/modal.js +6 -4
  81. package/es/components/modal/modal.js.map +1 -1
  82. package/es/components/multi-select/multi-select.js +12 -8
  83. package/es/components/multi-select/multi-select.js.map +1 -1
  84. package/es/components/notification/actionable-notification.d.ts +27 -11
  85. package/es/components/notification/actionable-notification.scss.js +1 -1
  86. package/es/components/notification/inline-notification.d.ts +27 -11
  87. package/es/components/notification/inline-notification.scss.js +1 -1
  88. package/es/components/notification/toast-notification.scss.js +1 -1
  89. package/es/components/number-input/number-input.d.ts +2 -0
  90. package/es/components/overflow-menu/overflow-menu-item.d.ts +29 -11
  91. package/es/components/overflow-menu/overflow-menu.d.ts +54 -22
  92. package/es/components/pagination/pagination.d.ts +56 -22
  93. package/es/components/pagination-nav/defs.d.ts +61 -0
  94. package/es/components/pagination-nav/defs.js +74 -0
  95. package/es/components/pagination-nav/defs.js.map +1 -0
  96. package/es/components/pagination-nav/index.d.ts +7 -0
  97. package/es/components/pagination-nav/index.js +9 -0
  98. package/es/components/pagination-nav/index.js.map +1 -0
  99. package/es/components/pagination-nav/pagination-nav.d.ts +109 -0
  100. package/es/components/pagination-nav/pagination-nav.js +427 -0
  101. package/es/components/pagination-nav/pagination-nav.js.map +1 -0
  102. package/es/components/pagination-nav/pagination-nav.scss.js +13 -0
  103. package/es/components/pagination-nav/pagination-nav.scss.js.map +1 -0
  104. package/es/components/password-input/password-input.d.ts +2 -0
  105. package/es/components/popover/popover.d.ts +27 -11
  106. package/es/components/popover/popover.js +1 -1
  107. package/es/components/popover/popover.js.map +1 -1
  108. package/es/components/progress-indicator/progress-step.d.ts +29 -11
  109. package/es/components/radio-button/radio-button-group.d.ts +54 -22
  110. package/es/components/radio-button/radio-button.d.ts +57 -23
  111. package/es/components/radio-button/radio-button.js +7 -5
  112. package/es/components/radio-button/radio-button.js.map +1 -1
  113. package/es/components/search/search.d.ts +83 -33
  114. package/es/components/select/select.d.ts +29 -11
  115. package/es/components/side-panel/side-panel.d.ts +27 -11
  116. package/es/components/skip-to-content/skip-to-content.d.ts +29 -11
  117. package/es/components/slider/slider-input.d.ts +29 -11
  118. package/es/components/slider/slider.d.ts +84 -34
  119. package/es/components/slider/slider.js +9 -7
  120. package/es/components/slider/slider.js.map +1 -1
  121. package/es/components/slug/slug.d.ts +1 -1
  122. package/es/components/slug/slug.js +6 -4
  123. package/es/components/slug/slug.js.map +1 -1
  124. package/es/components/structured-list/structured-list-row.d.ts +27 -11
  125. package/es/components/structured-list/structured-list.d.ts +30 -12
  126. package/es/components/structured-list/structured-list.js +7 -5
  127. package/es/components/structured-list/structured-list.js.map +1 -1
  128. package/es/components/tabs/tabs.d.ts +27 -11
  129. package/es/components/tag/dismissible-tag.d.ts +54 -22
  130. package/es/components/tag/operational-tag.d.ts +54 -22
  131. package/es/components/tag/selectable-tag.d.ts +54 -22
  132. package/es/components/tag/tag.d.ts +54 -22
  133. package/es/components/tearsheet/tearsheet.d.ts +27 -11
  134. package/es/components/text-input/text-input.d.ts +56 -22
  135. package/es/components/textarea/textarea.d.ts +2 -0
  136. package/es/components/tile/expandable-tile.d.ts +54 -22
  137. package/es/components/tile/selectable-tile.d.ts +56 -22
  138. package/es/components/tile/tile-group.d.ts +27 -11
  139. package/es/components/time-picker/time-picker-select.d.ts +29 -11
  140. package/es/components/time-picker/time-picker.d.ts +56 -22
  141. package/es/components/toggle/toggle.d.ts +27 -11
  142. package/es/components/toggle-tip/toggletip.d.ts +57 -23
  143. package/es/components/toggle-tip/toggletip.js +7 -5
  144. package/es/components/toggle-tip/toggletip.js.map +1 -1
  145. package/es/components/tooltip/tooltip.d.ts +28 -12
  146. package/es/components/tooltip/tooltip.js +7 -5
  147. package/es/components/tooltip/tooltip.js.map +1 -1
  148. package/es/components/tree-view/tree-view.d.ts +28 -12
  149. package/es/components/tree-view/tree-view.js +7 -5
  150. package/es/components/tree-view/tree-view.js.map +1 -1
  151. package/es/components/ui-shell/header-global-action.d.ts +2 -0
  152. package/es/components/ui-shell/header-menu-button.d.ts +29 -11
  153. package/es/components/ui-shell/header-menu.d.ts +56 -22
  154. package/es/components/ui-shell/header-name.d.ts +29 -11
  155. package/es/components/ui-shell/header-nav-item.d.ts +29 -11
  156. package/es/components/ui-shell/header-panel.d.ts +2 -0
  157. package/es/components/ui-shell/side-nav-link.d.ts +29 -11
  158. package/es/components/ui-shell/side-nav-menu-item.d.ts +29 -11
  159. package/es/components/ui-shell/side-nav-menu.d.ts +29 -11
  160. package/es/components/ui-shell/side-nav.d.ts +27 -11
  161. package/es/components/ui-shell/switcher-item.d.ts +29 -11
  162. package/es/components/ui-shell/switcher.d.ts +2 -0
  163. package/es/globals/mixins/focus.d.ts +27 -11
  164. package/es/globals/mixins/form.d.ts +27 -11
  165. package/es/globals/mixins/host-listener.d.ts +27 -11
  166. package/es/globals/mixins/validity.d.ts +27 -11
  167. package/es-custom/components/accordion/accordion-item.d.ts +28 -12
  168. package/es-custom/components/accordion/accordion-item.js +7 -5
  169. package/es-custom/components/accordion/accordion-item.js.map +1 -1
  170. package/es-custom/components/accordion/accordion-skeleton.d.ts +1 -1
  171. package/es-custom/components/accordion/accordion-skeleton.js +7 -5
  172. package/es-custom/components/accordion/accordion-skeleton.js.map +1 -1
  173. package/es-custom/components/accordion/accordion.d.ts +1 -1
  174. package/es-custom/components/accordion/accordion.js +7 -5
  175. package/es-custom/components/accordion/accordion.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 +6 -5
  178. package/es-custom/components/ai-label/ai-label.js.map +1 -1
  179. package/es-custom/components/button/button.d.ts +56 -22
  180. package/es-custom/components/checkbox/checkbox-group.d.ts +2 -0
  181. package/es-custom/components/checkbox/checkbox.d.ts +57 -23
  182. package/es-custom/components/checkbox/checkbox.js +7 -5
  183. package/es-custom/components/checkbox/checkbox.js.map +1 -1
  184. package/es-custom/components/code-snippet/code-snippet.d.ts +29 -11
  185. package/es-custom/components/code-snippet/code-snippet.js +15 -14
  186. package/es-custom/components/code-snippet/code-snippet.js.map +1 -1
  187. package/es-custom/components/combo-box/combo-box.scss.js +1 -1
  188. package/es-custom/components/combo-button/combo-button.d.ts +27 -11
  189. package/es-custom/components/content-switcher/content-switcher-item.d.ts +29 -11
  190. package/es-custom/components/copy-button/copy-button.d.ts +27 -11
  191. package/es-custom/components/data-table/table-expanded-row.d.ts +28 -12
  192. package/es-custom/components/data-table/table-expanded-row.js +7 -5
  193. package/es-custom/components/data-table/table-expanded-row.js.map +1 -1
  194. package/es-custom/components/data-table/table-header-cell.d.ts +29 -11
  195. package/es-custom/components/data-table/table-row.d.ts +54 -22
  196. package/es-custom/components/data-table/table-toolbar-search.d.ts +29 -11
  197. package/es-custom/components/data-table/table.d.ts +28 -12
  198. package/es-custom/components/data-table/table.js +9 -8
  199. package/es-custom/components/data-table/table.js.map +1 -1
  200. package/es-custom/components/date-picker/date-picker-input.d.ts +29 -11
  201. package/es-custom/components/date-picker/date-picker.d.ts +54 -22
  202. package/es-custom/components/dropdown/dropdown.d.ts +110 -44
  203. package/es-custom/components/dropdown/dropdown.js +8 -6
  204. package/es-custom/components/dropdown/dropdown.js.map +1 -1
  205. package/es-custom/components/file-uploader/file-uploader-button.d.ts +27 -11
  206. package/es-custom/components/file-uploader/file-uploader-drop-container.d.ts +27 -11
  207. package/es-custom/components/floating-menu/floating-menu.d.ts +56 -22
  208. package/es-custom/components/fluid-select/fluid-select.d.ts +5 -0
  209. package/es-custom/components/fluid-select/fluid-select.js +50 -1
  210. package/es-custom/components/fluid-select/fluid-select.js.map +1 -1
  211. package/es-custom/components/fluid-textarea/fluid-textarea-skeleton.d.ts +3 -3
  212. package/es-custom/components/fluid-textarea/fluid-textarea-skeleton.js +3 -3
  213. package/es-custom/components/fluid-textarea/fluid-textarea-skeleton.js.map +1 -1
  214. package/es-custom/components/fluid-time-picker/fluid-time-picker-select.d.ts +21 -0
  215. package/es-custom/components/fluid-time-picker/fluid-time-picker-select.js +53 -0
  216. package/es-custom/components/fluid-time-picker/fluid-time-picker-select.js.map +1 -0
  217. package/es-custom/components/fluid-time-picker/fluid-time-picker-skeleton.d.ts +23 -0
  218. package/es-custom/components/fluid-time-picker/fluid-time-picker-skeleton.js +63 -0
  219. package/es-custom/components/fluid-time-picker/fluid-time-picker-skeleton.js.map +1 -0
  220. package/es-custom/components/fluid-time-picker/fluid-time-picker.d.ts +32 -0
  221. package/es-custom/components/fluid-time-picker/fluid-time-picker.js +239 -0
  222. package/es-custom/components/fluid-time-picker/fluid-time-picker.js.map +1 -0
  223. package/es-custom/components/fluid-time-picker/fluid-time-picker.scss.js +13 -0
  224. package/es-custom/components/fluid-time-picker/fluid-time-picker.scss.js.map +1 -0
  225. package/es-custom/components/fluid-time-picker/index.d.ts +9 -0
  226. package/es-custom/components/fluid-time-picker/index.js +11 -0
  227. package/es-custom/components/fluid-time-picker/index.js.map +1 -0
  228. package/es-custom/components/grid/column.d.ts +3 -1
  229. package/es-custom/components/grid/column.js +6 -0
  230. package/es-custom/components/grid/column.js.map +1 -1
  231. package/es-custom/components/icon-button/icon-button.d.ts +1 -1
  232. package/es-custom/components/icon-button/icon-button.js +6 -5
  233. package/es-custom/components/icon-button/icon-button.js.map +1 -1
  234. package/es-custom/components/link/link.d.ts +29 -11
  235. package/es-custom/components/menu/menu-item-selectable.d.ts +5 -3
  236. package/es-custom/components/menu/menu-item-selectable.js +3 -3
  237. package/es-custom/components/menu/menu-item-selectable.js.map +1 -1
  238. package/es-custom/components/menu/menu-item.d.ts +68 -23
  239. package/es-custom/components/menu/menu-item.js +37 -2
  240. package/es-custom/components/menu/menu-item.js.map +1 -1
  241. package/es-custom/components/menu/menu.d.ts +27 -11
  242. package/es-custom/components/menu-button/menu-button.d.ts +27 -11
  243. package/es-custom/components/modal/modal-close-button.d.ts +29 -11
  244. package/es-custom/components/modal/modal.d.ts +27 -11
  245. package/es-custom/components/modal/modal.js +6 -4
  246. package/es-custom/components/modal/modal.js.map +1 -1
  247. package/es-custom/components/multi-select/multi-select.js +12 -8
  248. package/es-custom/components/multi-select/multi-select.js.map +1 -1
  249. package/es-custom/components/notification/actionable-notification.d.ts +27 -11
  250. package/es-custom/components/notification/actionable-notification.scss.js +1 -1
  251. package/es-custom/components/notification/inline-notification.d.ts +27 -11
  252. package/es-custom/components/notification/inline-notification.scss.js +1 -1
  253. package/es-custom/components/notification/toast-notification.scss.js +1 -1
  254. package/es-custom/components/number-input/number-input.d.ts +2 -0
  255. package/es-custom/components/overflow-menu/overflow-menu-item.d.ts +29 -11
  256. package/es-custom/components/overflow-menu/overflow-menu.d.ts +54 -22
  257. package/es-custom/components/pagination/pagination.d.ts +56 -22
  258. package/es-custom/components/pagination-nav/defs.d.ts +61 -0
  259. package/es-custom/components/pagination-nav/defs.js +74 -0
  260. package/es-custom/components/pagination-nav/defs.js.map +1 -0
  261. package/es-custom/components/pagination-nav/index.d.ts +7 -0
  262. package/es-custom/components/pagination-nav/index.js +9 -0
  263. package/es-custom/components/pagination-nav/index.js.map +1 -0
  264. package/es-custom/components/pagination-nav/pagination-nav.d.ts +109 -0
  265. package/es-custom/components/pagination-nav/pagination-nav.js +427 -0
  266. package/es-custom/components/pagination-nav/pagination-nav.js.map +1 -0
  267. package/es-custom/components/pagination-nav/pagination-nav.scss.js +13 -0
  268. package/es-custom/components/pagination-nav/pagination-nav.scss.js.map +1 -0
  269. package/es-custom/components/password-input/password-input.d.ts +2 -0
  270. package/es-custom/components/popover/popover.d.ts +27 -11
  271. package/es-custom/components/popover/popover.js +1 -1
  272. package/es-custom/components/popover/popover.js.map +1 -1
  273. package/es-custom/components/progress-indicator/progress-step.d.ts +29 -11
  274. package/es-custom/components/radio-button/radio-button-group.d.ts +54 -22
  275. package/es-custom/components/radio-button/radio-button.d.ts +57 -23
  276. package/es-custom/components/radio-button/radio-button.js +7 -5
  277. package/es-custom/components/radio-button/radio-button.js.map +1 -1
  278. package/es-custom/components/search/search.d.ts +83 -33
  279. package/es-custom/components/select/select.d.ts +29 -11
  280. package/es-custom/components/side-panel/side-panel.d.ts +27 -11
  281. package/es-custom/components/skip-to-content/skip-to-content.d.ts +29 -11
  282. package/es-custom/components/slider/slider-input.d.ts +29 -11
  283. package/es-custom/components/slider/slider.d.ts +84 -34
  284. package/es-custom/components/slider/slider.js +9 -7
  285. package/es-custom/components/slider/slider.js.map +1 -1
  286. package/es-custom/components/slug/slug.d.ts +1 -1
  287. package/es-custom/components/slug/slug.js +6 -4
  288. package/es-custom/components/slug/slug.js.map +1 -1
  289. package/es-custom/components/structured-list/structured-list-row.d.ts +27 -11
  290. package/es-custom/components/structured-list/structured-list.d.ts +30 -12
  291. package/es-custom/components/structured-list/structured-list.js +7 -5
  292. package/es-custom/components/structured-list/structured-list.js.map +1 -1
  293. package/es-custom/components/tabs/tabs.d.ts +27 -11
  294. package/es-custom/components/tag/dismissible-tag.d.ts +54 -22
  295. package/es-custom/components/tag/operational-tag.d.ts +54 -22
  296. package/es-custom/components/tag/selectable-tag.d.ts +54 -22
  297. package/es-custom/components/tag/tag.d.ts +54 -22
  298. package/es-custom/components/tearsheet/tearsheet.d.ts +27 -11
  299. package/es-custom/components/text-input/text-input.d.ts +56 -22
  300. package/es-custom/components/textarea/textarea.d.ts +2 -0
  301. package/es-custom/components/tile/expandable-tile.d.ts +54 -22
  302. package/es-custom/components/tile/selectable-tile.d.ts +56 -22
  303. package/es-custom/components/tile/tile-group.d.ts +27 -11
  304. package/es-custom/components/time-picker/time-picker-select.d.ts +29 -11
  305. package/es-custom/components/time-picker/time-picker.d.ts +56 -22
  306. package/es-custom/components/toggle/toggle.d.ts +27 -11
  307. package/es-custom/components/toggle-tip/toggletip.d.ts +57 -23
  308. package/es-custom/components/toggle-tip/toggletip.js +7 -5
  309. package/es-custom/components/toggle-tip/toggletip.js.map +1 -1
  310. package/es-custom/components/tooltip/tooltip.d.ts +28 -12
  311. package/es-custom/components/tooltip/tooltip.js +7 -5
  312. package/es-custom/components/tooltip/tooltip.js.map +1 -1
  313. package/es-custom/components/tree-view/tree-view.d.ts +28 -12
  314. package/es-custom/components/tree-view/tree-view.js +7 -5
  315. package/es-custom/components/tree-view/tree-view.js.map +1 -1
  316. package/es-custom/components/ui-shell/header-global-action.d.ts +2 -0
  317. package/es-custom/components/ui-shell/header-menu-button.d.ts +29 -11
  318. package/es-custom/components/ui-shell/header-menu.d.ts +56 -22
  319. package/es-custom/components/ui-shell/header-name.d.ts +29 -11
  320. package/es-custom/components/ui-shell/header-nav-item.d.ts +29 -11
  321. package/es-custom/components/ui-shell/header-panel.d.ts +2 -0
  322. package/es-custom/components/ui-shell/side-nav-link.d.ts +29 -11
  323. package/es-custom/components/ui-shell/side-nav-menu-item.d.ts +29 -11
  324. package/es-custom/components/ui-shell/side-nav-menu.d.ts +29 -11
  325. package/es-custom/components/ui-shell/side-nav.d.ts +27 -11
  326. package/es-custom/components/ui-shell/switcher-item.d.ts +29 -11
  327. package/es-custom/components/ui-shell/switcher.d.ts +2 -0
  328. package/es-custom/globals/mixins/focus.d.ts +27 -11
  329. package/es-custom/globals/mixins/form.d.ts +27 -11
  330. package/es-custom/globals/mixins/host-listener.d.ts +27 -11
  331. package/es-custom/globals/mixins/validity.d.ts +27 -11
  332. package/lib/components/accordion/accordion-item.d.ts +28 -12
  333. package/lib/components/accordion/accordion-skeleton.d.ts +1 -1
  334. package/lib/components/accordion/accordion.d.ts +1 -1
  335. package/lib/components/ai-label/ai-label.d.ts +1 -1
  336. package/lib/components/button/button.d.ts +56 -22
  337. package/lib/components/checkbox/checkbox-group.d.ts +2 -0
  338. package/lib/components/checkbox/checkbox.d.ts +57 -23
  339. package/lib/components/code-snippet/code-snippet.d.ts +29 -11
  340. package/lib/components/combo-button/combo-button.d.ts +27 -11
  341. package/lib/components/content-switcher/content-switcher-item.d.ts +29 -11
  342. package/lib/components/copy-button/copy-button.d.ts +27 -11
  343. package/lib/components/data-table/table-expanded-row.d.ts +28 -12
  344. package/lib/components/data-table/table-header-cell.d.ts +29 -11
  345. package/lib/components/data-table/table-row.d.ts +54 -22
  346. package/lib/components/data-table/table-toolbar-search.d.ts +29 -11
  347. package/lib/components/data-table/table.d.ts +28 -12
  348. package/lib/components/date-picker/date-picker-input.d.ts +29 -11
  349. package/lib/components/date-picker/date-picker.d.ts +54 -22
  350. package/lib/components/dropdown/dropdown.d.ts +110 -44
  351. package/lib/components/file-uploader/file-uploader-button.d.ts +27 -11
  352. package/lib/components/file-uploader/file-uploader-drop-container.d.ts +27 -11
  353. package/lib/components/floating-menu/floating-menu.d.ts +56 -22
  354. package/lib/components/fluid-select/fluid-select.d.ts +5 -0
  355. package/lib/components/fluid-textarea/fluid-textarea-skeleton.d.ts +3 -3
  356. package/lib/components/fluid-time-picker/fluid-time-picker-select.d.ts +21 -0
  357. package/lib/components/fluid-time-picker/fluid-time-picker-skeleton.d.ts +23 -0
  358. package/lib/components/fluid-time-picker/fluid-time-picker.d.ts +32 -0
  359. package/lib/components/fluid-time-picker/index.d.ts +9 -0
  360. package/lib/components/grid/column.d.ts +3 -1
  361. package/lib/components/icon-button/icon-button.d.ts +1 -1
  362. package/lib/components/link/link.d.ts +29 -11
  363. package/lib/components/menu/menu-item-selectable.d.ts +5 -3
  364. package/lib/components/menu/menu-item.d.ts +68 -23
  365. package/lib/components/menu/menu.d.ts +27 -11
  366. package/lib/components/menu-button/menu-button.d.ts +27 -11
  367. package/lib/components/modal/modal-close-button.d.ts +29 -11
  368. package/lib/components/modal/modal.d.ts +27 -11
  369. package/lib/components/notification/actionable-notification.d.ts +27 -11
  370. package/lib/components/notification/inline-notification.d.ts +27 -11
  371. package/lib/components/number-input/number-input.d.ts +2 -0
  372. package/lib/components/overflow-menu/overflow-menu-item.d.ts +29 -11
  373. package/lib/components/overflow-menu/overflow-menu.d.ts +54 -22
  374. package/lib/components/pagination/pagination.d.ts +56 -22
  375. package/lib/components/pagination-nav/defs.d.ts +61 -0
  376. package/lib/components/pagination-nav/defs.js +74 -0
  377. package/lib/components/pagination-nav/defs.js.map +1 -0
  378. package/lib/components/pagination-nav/index.d.ts +7 -0
  379. package/lib/components/pagination-nav/pagination-nav.d.ts +109 -0
  380. package/lib/components/password-input/password-input.d.ts +2 -0
  381. package/lib/components/popover/popover.d.ts +27 -11
  382. package/lib/components/progress-indicator/progress-step.d.ts +29 -11
  383. package/lib/components/radio-button/radio-button-group.d.ts +54 -22
  384. package/lib/components/radio-button/radio-button.d.ts +57 -23
  385. package/lib/components/search/search.d.ts +83 -33
  386. package/lib/components/select/select.d.ts +29 -11
  387. package/lib/components/side-panel/side-panel.d.ts +27 -11
  388. package/lib/components/skip-to-content/skip-to-content.d.ts +29 -11
  389. package/lib/components/slider/slider-input.d.ts +29 -11
  390. package/lib/components/slider/slider.d.ts +84 -34
  391. package/lib/components/slug/slug.d.ts +1 -1
  392. package/lib/components/structured-list/structured-list-row.d.ts +27 -11
  393. package/lib/components/structured-list/structured-list.d.ts +30 -12
  394. package/lib/components/tabs/tabs.d.ts +27 -11
  395. package/lib/components/tag/dismissible-tag.d.ts +54 -22
  396. package/lib/components/tag/operational-tag.d.ts +54 -22
  397. package/lib/components/tag/selectable-tag.d.ts +54 -22
  398. package/lib/components/tag/tag.d.ts +54 -22
  399. package/lib/components/tearsheet/tearsheet.d.ts +27 -11
  400. package/lib/components/text-input/text-input.d.ts +56 -22
  401. package/lib/components/textarea/textarea.d.ts +2 -0
  402. package/lib/components/tile/expandable-tile.d.ts +54 -22
  403. package/lib/components/tile/selectable-tile.d.ts +56 -22
  404. package/lib/components/tile/tile-group.d.ts +27 -11
  405. package/lib/components/time-picker/time-picker-select.d.ts +29 -11
  406. package/lib/components/time-picker/time-picker.d.ts +56 -22
  407. package/lib/components/toggle/toggle.d.ts +27 -11
  408. package/lib/components/toggle-tip/toggletip.d.ts +57 -23
  409. package/lib/components/tooltip/tooltip.d.ts +28 -12
  410. package/lib/components/tree-view/tree-view.d.ts +28 -12
  411. package/lib/components/ui-shell/header-global-action.d.ts +2 -0
  412. package/lib/components/ui-shell/header-menu-button.d.ts +29 -11
  413. package/lib/components/ui-shell/header-menu.d.ts +56 -22
  414. package/lib/components/ui-shell/header-name.d.ts +29 -11
  415. package/lib/components/ui-shell/header-nav-item.d.ts +29 -11
  416. package/lib/components/ui-shell/header-panel.d.ts +2 -0
  417. package/lib/components/ui-shell/side-nav-link.d.ts +29 -11
  418. package/lib/components/ui-shell/side-nav-menu-item.d.ts +29 -11
  419. package/lib/components/ui-shell/side-nav-menu.d.ts +29 -11
  420. package/lib/components/ui-shell/side-nav.d.ts +27 -11
  421. package/lib/components/ui-shell/switcher-item.d.ts +29 -11
  422. package/lib/components/ui-shell/switcher.d.ts +2 -0
  423. package/lib/globals/mixins/focus.d.ts +27 -11
  424. package/lib/globals/mixins/form.d.ts +27 -11
  425. package/lib/globals/mixins/host-listener.d.ts +27 -11
  426. package/lib/globals/mixins/validity.d.ts +27 -11
  427. package/package.json +7 -7
  428. package/scss/components/combo-box/combo-box.scss +1 -1
  429. package/scss/components/fluid-time-picker/fluid-time-picker.scss +198 -0
  430. package/scss/components/pagination-nav/pagination-nav.scss +29 -0
  431. package/telemetry.yml +16 -8
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.js","sources":["../../../src/components/dropdown/dropdown.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 { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { LitElement, html, TemplateResult } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport WarningFilled16 from '@carbon/icons/es/warning--filled/16.js';\nimport WarningAltFilled16 from '@carbon/icons/es/warning--alt--filled/16.js';\nimport ChevronDown16 from '@carbon/icons/es/chevron--down/16.js';\nimport FocusMixin from '../../globals/mixins/focus';\nimport FormMixin from '../../globals/mixins/form';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport ValidityMixin from '../../globals/mixins/validity';\nimport HostListener from '../../globals/decorators/host-listener';\nimport FloatingUIController from '../../globals/controllers/floating-controller';\nimport {\n find,\n forEach,\n indexOf,\n} from '../../globals/internal/collection-helpers';\nimport {\n DROPDOWN_DIRECTION,\n DROPDOWN_KEYBOARD_ACTION,\n DROPDOWN_SIZE,\n DROPDOWN_TYPE,\n NAVIGATION_DIRECTION,\n} from './defs';\nimport CDSDropdownItem from './dropdown-item';\nimport styles from './dropdown.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport {\n DROPDOWN_KEYBOARD_ACTION,\n DROPDOWN_DIRECTION,\n DROPDOWN_SIZE,\n DROPDOWN_TYPE,\n NAVIGATION_DIRECTION,\n};\n\n/**\n * Dropdown.\n *\n * @element cds-dropdown\n * @csspart label-text The label text.\n * @csspart helper-text The helper text.\n * @csspart trigger-button The trigger button.\n * @csspart menu-body The menu body.\n * @csspart validity-message The validity message.\n * @fires cds-dropdown-beingselected\n * The custom event fired before a dropdown item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires cds-dropdown-beingtoggled\n * The custom event fired before the open state of this dropdown is toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated toggling.\n * @fires cds-dropdown-selected - The custom event fired after a dropdown item is selected upon a user gesture.\n * @fires cds-dropdown-toggled - The custom event fired after the open state of this dropdown is toggled upon a user gesture.\n */\n@customElement(`${prefix}-dropdown`)\nclass CDSDropdown extends ValidityMixin(\n HostListenerMixin(FormMixin(FocusMixin(LitElement)))\n) {\n /**\n * `true` if there is an AI Label.\n */\n protected _hasAILabel = false;\n\n /**\n * Currently slotted AI decorator nodes (`cds-ai-label`/slug) with listeners attached.\n */\n private _aiDecoratorNodes: HTMLElement[] = [];\n\n /**\n * Floating UI controller instance for autoalign positioning.\n */\n private _floatingController = new FloatingUIController(this);\n\n /**\n * Handles interaction on an AI decorator while the menu is open.\n */\n private _handleAIDecoratorInteraction = () => {\n if (!this.open) {\n return;\n }\n\n this._handleUserInitiatedToggle(false);\n };\n\n @state()\n protected _activeDescendant?: string;\n\n /**\n * The content of the selected item.\n */\n protected _selectedItemContent: DocumentFragment | null = null;\n\n /**\n * `true` if the trigger button should be focusable.\n * Derived class can set `false` to this if the trigger button contains another primary focusable element (e.g. `input`).\n */\n protected _shouldTriggerBeFocusable = true;\n\n /**\n * The list box `<div>` node.\n */\n @query(`.${prefix}--list-box`)\n protected _listBoxNode!: HTMLDivElement;\n\n /**\n * The menu body element.\n */\n @query('#menu-body')\n protected _menuBodyNode!: HTMLDivElement;\n\n /**\n * The trigger button element.\n */\n @query('#trigger-button')\n protected _triggerButtonNode!: HTMLDivElement;\n\n /**\n * The `<slot>` element for the helper text in the shadow DOM.\n */\n @query('slot[name=\"helper-text\"]')\n protected _slotHelperTextNode!: HTMLSlotElement;\n\n /**\n * The `<slot>` element for the title text in the shadow DOM.\n */\n @query('slot[name=\"title-text\"]')\n protected _slotTitleTextNode!: HTMLSlotElement;\n\n /**\n * @param itemToSelect A dropdown item. Absense of this argument means clearing selection.\n * @returns `true` if the selection of this dropdown should change if the given item is selected upon user interaction.\n */\n protected _selectionShouldChange(itemToSelect?: CDSDropdownItem) {\n return !itemToSelect || itemToSelect.value !== this.value;\n }\n\n /**\n * A callback that runs after change in dropdown selection upon user interaction is confirmed.\n *\n * @param itemToSelect\n * A dropdown item.\n * Absense of this argument means clearing selection, which may be handled by a derived class.\n */\n protected _selectionDidChange(itemToSelect?: CDSDropdownItem) {\n const constructor = this.constructor as typeof CDSDropdown;\n if (itemToSelect) {\n this.value = itemToSelect.value;\n this._activeDescendant = itemToSelect.id;\n forEach(\n this.querySelectorAll(constructor.selectorItemSelected),\n (item) => {\n (item as CDSDropdownItem).selected = false;\n item.setAttribute('aria-selected', 'false');\n }\n );\n itemToSelect.selected = true;\n itemToSelect.setAttribute('aria-selected', 'true');\n this._updateSelectedNextSibling(itemToSelect);\n } else {\n this._updateSelectedNextSibling();\n }\n }\n\n /**\n * Handles `click` event on the top-level element in the shadow DOM.\n *\n * @param event The event.\n */\n protected _handleClickInner(event: MouseEvent) {\n if (this.readOnly) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n if (this.shadowRoot!.contains(event.target as Node)) {\n const opening = !this.open;\n const constructor = this.constructor as typeof CDSDropdown;\n const selectedItem = this.querySelector(\n constructor.selectorItemSelected\n ) as CDSDropdownItem | null;\n if (opening) {\n const shouldFocusMenu = Boolean(selectedItem);\n this._handleUserInitiatedToggle(true, {\n focusMenu: shouldFocusMenu,\n highlightSelectedOnOpen: shouldFocusMenu,\n });\n } else {\n this._handleUserInitiatedToggle(false, {\n restoreTriggerFocus: true,\n });\n }\n } else {\n const item = (event.target as Element).closest(\n (this.constructor as typeof CDSDropdown).selectorItem\n ) as CDSDropdownItem;\n if (this.contains(item)) {\n this._handleUserInitiatedSelectItem(item);\n }\n }\n }\n\n /**\n * Handler for the `keydown` event on the top-level element in the shadow DOM.\n */\n protected _handleKeydownInner(event: KeyboardEvent) {\n if (this._handleMenuInputKeydown(event)) {\n return;\n }\n\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.NAVIGATING: {\n const shouldKeepInputFocus = this._shouldRetainMenuInputFocus(event);\n const menuInputNode = this._menuInputNode;\n if (this.readOnly) {\n event.preventDefault();\n return;\n }\n const direction =\n NAVIGATION_DIRECTION[key as keyof typeof NAVIGATION_DIRECTION];\n\n event.preventDefault();\n if (direction === -1) {\n break;\n }\n const constructor = this.constructor as typeof CDSDropdown;\n const selectedItem = this.querySelector(\n constructor.selectorItemSelected\n ) as CDSDropdownItem | null;\n const shouldHighlightSelected = Boolean(selectedItem);\n\n this._handleUserInitiatedToggle(true, {\n focusMenu: false,\n highlightSelectedOnOpen: shouldHighlightSelected,\n });\n\n this.updateComplete.then(() => {\n const constructor = this.constructor as typeof CDSDropdown;\n const items = this.querySelectorAll(constructor.selectorItem);\n if (items.length > 0) {\n const selectedItem = this.querySelector(\n constructor.selectorItemSelected\n ) as CDSDropdownItem | null;\n\n const firstEnabledItem = Array.from(items).find(\n (item) => !(item as CDSDropdownItem).hasAttribute('disabled')\n ) as CDSDropdownItem | undefined;\n\n const initialItem =\n selectedItem && !selectedItem.hasAttribute('disabled')\n ? selectedItem\n : (firstEnabledItem ?? null);\n\n if (initialItem) {\n this._setHighlightedItem(initialItem, { scrollIntoView: true });\n } else {\n this._clearHighlight();\n }\n\n const menu = this.shadowRoot?.getElementById('menu-body');\n if (shouldKeepInputFocus && menuInputNode) {\n menuInputNode.focus({ preventScroll: true });\n } else if (menu) {\n menu.focus();\n }\n }\n });\n break;\n }\n default:\n break;\n }\n } else {\n switch (action) {\n case DROPDOWN_KEYBOARD_ACTION.CLOSING:\n this._handleUserInitiatedToggle(false, {\n restoreTriggerFocus: true,\n });\n break;\n case DROPDOWN_KEYBOARD_ACTION.NAVIGATING: {\n event.preventDefault();\n const menu = this.shadowRoot?.getElementById('menu-body');\n const menuInputNode = this._menuInputNode;\n const shouldKeepInputFocus = this._shouldRetainMenuInputFocus(event);\n if (shouldKeepInputFocus && menuInputNode) {\n menuInputNode.focus({ preventScroll: true });\n } else if (menu) {\n menu.focus();\n }\n this._navigate(NAVIGATION_DIRECTION[key]);\n break;\n }\n default:\n break;\n }\n }\n }\n\n private _handleMenuInputKeydown(event: KeyboardEvent) {\n if (\n event.defaultPrevented ||\n !this._supportsMenuInputFiltering ||\n !this._menuInputNode\n ) {\n return false;\n }\n\n const input = this._menuInputNode;\n if (!input) {\n return false;\n }\n const isInputTarget = event.target === input;\n\n const hasFilterValue = Boolean(input.value || this.value);\n if (\n event.key === 'Escape' &&\n hasFilterValue &&\n this._shouldClearMenuInputOnEscape({\n event,\n menuOpen: this.open,\n isInputTarget,\n })\n ) {\n event.preventDefault();\n this._clearMenuInputFiltering();\n return true;\n }\n\n if (!this.open || isInputTarget) {\n return false;\n }\n\n if (this._shouldForwardKeyToMenuInput(event)) {\n event.preventDefault();\n this._forwardKeyToMenuInput(event, input);\n return true;\n }\n\n return false;\n }\n\n protected _shouldClearMenuInputOnEscape({\n menuOpen,\n }: {\n event: KeyboardEvent;\n menuOpen: boolean;\n isInputTarget: boolean;\n }) {\n return menuOpen;\n }\n\n protected get _supportsMenuInputFiltering() {\n return false;\n }\n\n protected get _menuInputNode(): HTMLInputElement | null {\n return null;\n }\n\n protected _clearMenuInputFiltering() {}\n\n private _shouldForwardKeyToMenuInput(event: KeyboardEvent) {\n if (event.altKey || event.metaKey || event.ctrlKey) {\n return false;\n }\n const { key } = event;\n if (key === 'Backspace' || key === 'Delete') {\n return true;\n }\n return key.length === 1;\n }\n\n private _forwardKeyToMenuInput(\n event: KeyboardEvent,\n input: HTMLInputElement\n ) {\n input.focus({ preventScroll: true });\n const key = event.key;\n const selectionStart = input.selectionStart ?? input.value.length;\n const selectionEnd = input.selectionEnd ?? input.value.length;\n if (key === 'Backspace') {\n if (selectionStart === 0 && selectionEnd === 0) {\n return;\n }\n const start =\n selectionStart === selectionEnd\n ? Math.max(0, selectionStart - 1)\n : selectionStart;\n input.setRangeText('', start, selectionEnd, 'end');\n } else if (key === 'Delete') {\n if (\n selectionStart === input.value.length &&\n selectionStart === selectionEnd\n ) {\n return;\n }\n const end =\n selectionStart === selectionEnd\n ? Math.min(input.value.length, selectionEnd + 1)\n : selectionEnd;\n input.setRangeText('', selectionStart, end, 'end');\n } else if (key.length === 1) {\n input.setRangeText(key, selectionStart, selectionEnd, 'end');\n }\n input.dispatchEvent(new Event('input', { bubbles: true, composed: true }));\n }\n\n private _shouldRetainMenuInputFocus(event: Event) {\n if (!this._supportsMenuInputFiltering || !this._menuInputNode) {\n return false;\n }\n if (event.target === this._menuInputNode) {\n return true;\n }\n const path =\n typeof event.composedPath === 'function' ? event.composedPath() : [];\n return path.includes(this._menuInputNode);\n }\n\n /**\n * Handles keypress events (Space, Enter)\n */\n protected _handleKeypressInner(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof CDSDropdown).getAction(key);\n // When closed\n if (!this.open) {\n if (this.readOnly && action === DROPDOWN_KEYBOARD_ACTION.TRIGGERING) {\n if (key === ' ' || key === 'Space') {\n event.preventDefault();\n }\n return;\n }\n switch (action) {\n case DROPDOWN_KEYBOARD_ACTION.TRIGGERING: {\n if (key === ' ' || key === 'Space') {\n event.preventDefault();\n }\n\n const constructor = this.constructor as typeof CDSDropdown;\n const selectedItem = this.querySelector(\n constructor.selectorItemSelected\n ) as CDSDropdownItem | null;\n const shouldFocusMenu = Boolean(selectedItem);\n\n this._handleUserInitiatedToggle(true, {\n focusMenu: shouldFocusMenu,\n highlightSelectedOnOpen: shouldFocusMenu,\n });\n break;\n }\n default:\n break;\n }\n } else {\n // When open\n switch (action) {\n case DROPDOWN_KEYBOARD_ACTION.TRIGGERING: {\n const constructor = this.constructor as typeof CDSDropdown;\n const selectedItem = this.querySelector(\n constructor.selectorItemSelected\n ) as CDSDropdownItem | null;\n const highlightedItem = this.querySelector(\n constructor.selectorItemHighlighted\n ) as CDSDropdownItem;\n if (highlightedItem) {\n this._handleUserInitiatedSelectItem(highlightedItem);\n } else if (selectedItem) {\n this._handleUserInitiatedSelectItem(selectedItem);\n } else {\n this._handleUserInitiatedToggle(false, {\n restoreTriggerFocus: true,\n });\n }\n break;\n }\n default:\n break;\n }\n }\n }\n\n /**\n * Handles `blur` event handler on the document this element is in.\n *\n * @param event The event.\n */\n\n protected _handleMouseoverInner(event: MouseEvent) {\n if (!this.open) {\n return;\n }\n\n const item = this._getDropdownItemFromEvent(event);\n if (!item) {\n return;\n }\n\n if (item.hasAttribute('disabled')) {\n this._clearHighlight();\n return;\n }\n\n this._setHighlightedItem(item);\n }\n\n protected _handleMouseleaveInner(event: MouseEvent) {\n if (!this.open) {\n return;\n }\n\n const menu = this.shadowRoot?.getElementById('menu-body');\n const relatedTarget = event.relatedTarget as Node | null;\n if (menu && relatedTarget && menu.contains(relatedTarget)) {\n return;\n }\n\n const shadowActiveElement = this.shadowRoot?.activeElement;\n if (menu && shadowActiveElement && menu.contains(shadowActiveElement)) {\n return;\n }\n\n if (\n this._supportsMenuInputFiltering &&\n this._menuInputNode &&\n this.shadowRoot?.activeElement === this._menuInputNode\n ) {\n return;\n }\n\n this._clearHighlight();\n }\n\n @HostListener('focusout')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n protected _handleFocusOut(event: FocusEvent) {\n if (!this.contains(event.relatedTarget as Node)) {\n this._handleUserInitiatedToggle(false);\n }\n }\n\n /**\n * Handles `slotchange` event for the `<slot>` for helper text.\n */\n protected _handleSlotchangeHelperText() {\n this.requestUpdate();\n }\n\n /**\n * Handles `slotchange` event for the `<slot>` for label text.\n */\n protected _handleSlotchangeLabelText() {\n this.requestUpdate();\n }\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleAILabelSlotChange({ target }: Event) {\n const decoratorNodes = (target as HTMLSlotElement)\n .assignedNodes()\n .filter((elem) =>\n (elem as HTMLElement).matches !== undefined\n ? (elem as HTMLElement).matches(\n (this.constructor as typeof CDSDropdown).aiLabelItem\n ) ||\n // remove reference to slug in v12\n (elem as HTMLElement).matches(\n (this.constructor as typeof CDSDropdown).slugItem\n )\n : false\n );\n\n const decoratorElements = decoratorNodes.filter(\n (node): node is HTMLElement => node instanceof HTMLElement\n );\n\n this._updateAIDecoratorListeners(decoratorElements);\n\n this._hasAILabel = Boolean(decoratorElements.length);\n decoratorElements[0]?.setAttribute('size', 'mini');\n this.requestUpdate();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this._updateAIDecoratorListeners([]);\n }\n\n /**\n * Updates listeners for AI decorator nodes to ensure only one menu stays open.\n */\n private _updateAIDecoratorListeners(nodes: HTMLElement[]) {\n this._aiDecoratorNodes.forEach((node) => {\n node.removeEventListener('click', this._handleAIDecoratorInteraction);\n });\n\n this._aiDecoratorNodes = nodes;\n\n this._aiDecoratorNodes.forEach((node) => {\n node.addEventListener('click', this._handleAIDecoratorInteraction);\n });\n }\n\n /**\n * Handles user-initiated selection of a dropdown item.\n *\n * @param [item] The dropdown item user wants to select. Absense of this argument means clearing selection.\n */\n protected _handleUserInitiatedSelectItem(item?: CDSDropdownItem) {\n if (item?.hasAttribute('disabled')) {\n return;\n }\n\n const shouldClose = this._shouldCloseAfterSelection(item);\n\n if (this._selectionShouldChange(item)) {\n const init = {\n bubbles: true,\n composed: true,\n detail: {\n item,\n },\n };\n const constructor = this.constructor as typeof CDSDropdown;\n const beforeSelectEvent = new CustomEvent(constructor.eventBeforeSelect, {\n ...init,\n cancelable: true,\n });\n if (this.dispatchEvent(beforeSelectEvent)) {\n this._selectionDidChange(item);\n const afterSelectEvent = new CustomEvent(constructor.eventSelect, init);\n this.dispatchEvent(afterSelectEvent);\n if (shouldClose) {\n this._handleUserInitiatedToggle(false, {\n restoreTriggerFocus: true,\n });\n }\n }\n } else if (item && shouldClose) {\n this._handleUserInitiatedToggle(false, {\n restoreTriggerFocus: true,\n });\n }\n }\n\n // Default dropdowns close after user selection.\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- https://github.com/carbon-design-system/carbon/issues/20452\n protected _shouldCloseAfterSelection(_item?: CDSDropdownItem) {\n return true;\n }\n\n /**\n * Handles user-initiated toggling the open state.\n *\n * @param [force] If specified, forces the open state to the given one.\n */\n protected _handleUserInitiatedToggle(\n force = !this.open,\n {\n restoreTriggerFocus = false,\n focusMenu = true,\n highlightSelectedOnOpen = false,\n }: {\n restoreTriggerFocus?: boolean;\n focusMenu?: boolean;\n highlightSelectedOnOpen?: boolean;\n } = {}\n ) {\n const { eventBeforeToggle, eventToggle } = this\n .constructor as typeof CDSDropdown;\n\n const { disabled } = this;\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n open: force,\n },\n };\n if (!disabled) {\n if (this.dispatchEvent(new CustomEvent(eventBeforeToggle, init))) {\n this.open = force;\n if (this.open) {\n const activeElement = this.shadowRoot?.activeElement;\n const preserveFocusTarget =\n activeElement instanceof HTMLInputElement ? activeElement : null;\n this.updateComplete.then(() => {\n if (preserveFocusTarget) {\n preserveFocusTarget.focus();\n } else if (focusMenu) {\n const menu = this.shadowRoot?.getElementById('menu-body');\n menu?.focus();\n } else if (this._shouldTriggerBeFocusable) {\n const trigger = this.shadowRoot?.getElementById('trigger-button');\n trigger?.focus();\n }\n\n if (highlightSelectedOnOpen) {\n this._highlightSelectedItem();\n }\n });\n } else if (restoreTriggerFocus && this._shouldTriggerBeFocusable) {\n this.updateComplete.then(() => {\n const trigger = this.shadowRoot?.getElementById('trigger-button');\n trigger?.focus();\n });\n }\n\n if (!this.open) {\n this._clearHighlight();\n }\n this.requestUpdate();\n this.dispatchEvent(new CustomEvent(eventToggle, init));\n }\n }\n }\n\n /**\n * Clears the selection of dropdown items.\n */\n protected _clearHighlight() {\n this._setHighlightedItem();\n }\n\n protected _getDropdownItemFromEvent(event: Event): CDSDropdownItem | null {\n const constructor = this.constructor as typeof CDSDropdown;\n const selector = constructor.selectorItem;\n const path = event.composedPath();\n\n for (const node of path) {\n if (\n node instanceof Element &&\n typeof node.matches === 'function' &&\n node.matches(selector)\n ) {\n return node as CDSDropdownItem;\n }\n }\n\n return null;\n }\n\n protected _setHighlightedItem(\n item?: CDSDropdownItem | null,\n { scrollIntoView = false }: { scrollIntoView?: boolean } = {}\n ) {\n const constructor = this.constructor as typeof CDSDropdown;\n const items = this.querySelectorAll(constructor.selectorItem);\n const target =\n item && !item.hasAttribute('disabled') ? (item as CDSDropdownItem) : null;\n\n forEach(items, (listItem) => {\n const dropdownItem = listItem as CDSDropdownItem;\n dropdownItem.highlighted = dropdownItem === target;\n dropdownItem.removeAttribute('highlighted-next-sibling');\n });\n\n if (target) {\n const nextSibling = this._getNextDropdownItem(target);\n if (nextSibling) {\n nextSibling.setAttribute('highlighted-next-sibling', '');\n }\n\n const itemId = target.id;\n if (itemId) {\n this._activeDescendant = itemId;\n }\n\n if (scrollIntoView) {\n target.scrollIntoView({ block: 'nearest' });\n }\n } else {\n this._activeDescendant = undefined;\n }\n }\n\n protected _getNextDropdownItem(\n item: CDSDropdownItem\n ): CDSDropdownItem | null {\n const constructor = this.constructor as typeof CDSDropdown;\n const selector = constructor.selectorItem;\n let next = item.nextElementSibling as Element | null;\n\n while (next) {\n if (typeof next.matches === 'function' && next.matches(selector)) {\n return next as CDSDropdownItem;\n }\n next = next.nextElementSibling as Element | null;\n }\n\n return null;\n }\n\n protected _updateSelectedNextSibling(item?: CDSDropdownItem | null): void {\n const constructor = this.constructor as typeof CDSDropdown;\n forEach(this.querySelectorAll(constructor.selectorItem), (listItem) => {\n (listItem as CDSDropdownItem).removeAttribute('selected-next-sibling');\n });\n\n if (item) {\n const nextSibling = this._getNextDropdownItem(item);\n if (nextSibling) {\n nextSibling.setAttribute('selected-next-sibling', '');\n }\n }\n }\n\n protected _highlightSelectedItem() {\n const constructor = this.constructor as typeof CDSDropdown;\n const selectedItem = this.querySelector(\n constructor.selectorItemSelected\n ) as CDSDropdownItem | null;\n\n if (selectedItem && !selectedItem.hasAttribute('disabled')) {\n this._setHighlightedItem(selectedItem, { scrollIntoView: true });\n } else {\n this._clearHighlight();\n }\n }\n\n protected _navigate(direction: number) {\n const constructor = this.constructor as typeof CDSDropdown;\n const items = this.querySelectorAll(constructor.selectorItem);\n if (!items.length) {\n return;\n }\n const highlightedItem = this.querySelector(\n constructor.selectorItemHighlighted\n );\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n const highlightedIndex = indexOf(items, highlightedItem!);\n let nextIndex =\n highlightedIndex === -1\n ? direction > 0\n ? 0\n : items.length - 1\n : highlightedIndex + direction;\n\n while (\n nextIndex >= 0 &&\n nextIndex < items.length &&\n items[nextIndex]?.hasAttribute('disabled')\n ) {\n nextIndex += direction;\n }\n if (nextIndex < 0 || nextIndex >= items.length) {\n return;\n }\n\n const nextItem = items[nextIndex] as CDSDropdownItem;\n this._setHighlightedItem(nextItem, { scrollIntoView: true });\n }\n\n /**\n * @returns The content preceding the trigger button.\n */\n protected _renderPrecedingLabel(): TemplateResult | undefined {\n return undefined;\n }\n\n /**\n * @returns The main content of the trigger button.\n */\n protected _renderLabel(): TemplateResult {\n const { label, _selectedItemContent: selectedItemContent } = this;\n return html`\n <span id=\"trigger-label\" class=\"${prefix}--list-box__label\"\n >${selectedItemContent || label}</span\n >\n `;\n }\n\n /**\n * @returns The title label.\n */\n protected _renderTitleLabel(): TemplateResult {\n const {\n disabled,\n hideLabel,\n titleText,\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 id=\"dropdown-label\"\n part=\"title-text\"\n class=\"${labelClasses}\"\n for=\"trigger-button\"\n ?hidden=\"${!hasTitleText}\">\n <slot name=\"title-text\" @slotchange=\"${handleSlotchangeLabelText}\"\n >${titleText}</slot\n >\n </label>\n `;\n }\n\n /**\n * @returns The content following the trigger button.\n */\n protected _renderFollowingLabel(): TemplateResult | undefined {\n return undefined;\n }\n\n /**\n * Handles event to include selected value on the parent form.\n *\n * @param event The event.\n */\n _handleFormdata(event: FormDataEvent) {\n const { formData } = event;\n const { disabled, name, value } = this;\n if (!disabled) {\n formData.append(name, value);\n }\n }\n\n /**\n * 'aria-label' of the ListBox component.\n * Specify a label to be read by screen readers on the container node\n */\n @property({ type: String, attribute: 'aria-label' })\n ariaLabel = '';\n\n /**\n * Specify the direction of the dropdown. Can be either top or bottom.\n */\n @property({ type: String, reflect: true })\n direction = DROPDOWN_DIRECTION.BOTTOM;\n\n /**\n * Specify whether auto align functionality should be applied\n */\n @property({ type: Boolean, reflect: true })\n autoalign = false;\n\n /**\n * `true` if this dropdown should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * The helper text.\n */\n @property({ attribute: 'helper-text' })\n helperText = '';\n\n /**\n * Specify whether the title text should be hidden or not\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-label' })\n hideLabel = false;\n\n /**\n * `true` to show the UI of the invalid state.\n */\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n /**\n * Message which is displayed if the value is invalid.\n */\n @property({ attribute: 'invalid-text' })\n invalidText = '';\n\n /**\n * Provide the title text that will be read by a screen reader when visiting this control\n */\n @property({ attribute: 'title-text' })\n titleText = '';\n\n /**\n * Name for the dropdown in the `FormData`\n */\n @property()\n name = '';\n\n /**\n * `true` if this dropdown should be open.\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Whether or not the Dropdown is readonly\n */\n @property({ type: Boolean, reflect: true, attribute: 'read-only' })\n readOnly = false;\n\n /**\n * `true` if the value is required.\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * The special validity message for `required`.\n */\n @property({ attribute: 'required-validity-message' })\n requiredValidityMessage = 'Please fill out this field.';\n\n /**\n * Dropdown size.\n */\n @property({ reflect: true })\n size = DROPDOWN_SIZE.MEDIUM;\n\n /**\n * The `aria-label` attribute for the UI indicating the closed state.\n */\n @property({ attribute: 'toggle-label-closed' })\n toggleLabelClosed = '';\n\n /**\n * The `aria-label` attribute for the UI indicating the open state.\n */\n @property({ attribute: 'toggle-label-open' })\n toggleLabelOpen = '';\n\n /**\n * Generic label that will be used as the textual representation of what this field is for\n */\n @property({ attribute: 'label' })\n label = '';\n\n /**\n * `true` if this dropdown should use the inline UI variant.\n */\n @property({ reflect: true })\n type = DROPDOWN_TYPE.DEFAULT;\n\n /**\n * The validity message.\n */\n @property({ attribute: 'validity-message' })\n validityMessage = '';\n\n /**\n * The value of the selected item.\n */\n @property({ reflect: true })\n value = '';\n\n /**\n * Specify whether the control is currently in warning state\n */\n @property({ type: Boolean, reflect: true })\n warn = false;\n\n /**\n * Provide the text that is displayed when the control is in warning state\n */\n @property({ attribute: 'warn-text' })\n warnText = '';\n\n /**\n * The computed aria-label for the toggle button based on open state.\n */\n get toggleLabel(): string {\n return (this.open ? this.toggleLabelOpen : this.toggleLabelClosed) || '';\n }\n\n shouldUpdate(changedProperties) {\n const { selectorItem } = this.constructor as typeof CDSDropdown;\n if (changedProperties.has('size')) {\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n (elem as CDSDropdownItem).size = this.size;\n });\n }\n if (changedProperties.has('disabled')) {\n const { disabled } = this;\n // Propagate `disabled` attribute to descendants until `:host-context()` gets supported in all major browsers\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n const item = elem as CDSDropdownItem;\n if (disabled) {\n if (!item.disabled) {\n item.setAttribute('parent-disabled', '');\n }\n item.disabled = true;\n } else if (item.hasAttribute('parent-disabled')) {\n item.removeAttribute('parent-disabled');\n item.disabled = false;\n }\n });\n }\n if (changedProperties.has('value')) {\n // `<cds-multi-select>` updates selection beforehand\n // because our rendering logic for `<cds-multi-select>` looks for selected items via `qSA()`\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n (elem as CDSDropdownItem).selected =\n (elem as CDSDropdownItem).value === this.value;\n });\n const selectedItem = find(\n this.querySelectorAll(selectorItem),\n (elem) => (elem as CDSDropdownItem).value === this.value\n ) as CDSDropdownItem | undefined;\n if (selectedItem) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n const range = this.ownerDocument!.createRange();\n range.selectNodeContents(selectedItem);\n this._selectedItemContent = range.cloneContents();\n } else {\n this._selectedItemContent = null;\n }\n this._updateSelectedNextSibling(selectedItem);\n }\n return true;\n }\n\n updated(changedProperties) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions -- https://github.com/carbon-design-system/carbon/issues/20452\n this._hasAILabel\n ? this.setAttribute('ai-label', '')\n : this.removeAttribute('ai-label');\n\n const label = this.shadowRoot?.querySelector(\"slot[name='ai-label']\");\n if (label) {\n label?.classList.toggle(\n `${prefix}--slug--revert`,\n this.querySelector(`${prefix}-ai-label`)?.hasAttribute('revert-active')\n );\n } else {\n this.shadowRoot\n ?.querySelector(\"slot[name='slug']\")\n ?.classList.toggle(\n `${prefix}--slug--revert`,\n this.querySelector(`${prefix}-slug`)?.hasAttribute('revert-active')\n );\n }\n\n if (\n this.autoalign &&\n this.open &&\n (changedProperties.has('open') ||\n (changedProperties.has('autoalign') && this.autoalign) ||\n changedProperties.has('direction') ||\n changedProperties.has('size'))\n ) {\n this._updateAutoAlignPlacement();\n } else if (\n (changedProperties.has('autoalign') && !this.autoalign) ||\n (changedProperties.has('open') && !this.open)\n ) {\n this._floatingController.hostDisconnected();\n this._resetFloatingStyles();\n }\n }\n\n /**\n * Clears Floating UI styles when auto-align is off or the menu closes.\n */\n private _resetFloatingStyles() {\n const menu = this._menuBodyNode;\n if (!menu) {\n return;\n }\n\n menu.style.removeProperty('left');\n menu.style.removeProperty('top');\n menu.style.removeProperty('position');\n menu.style.removeProperty('width');\n menu.style.removeProperty('visibility');\n menu.removeAttribute('align');\n }\n\n /**\n * Runs Floating UI placement while auto-align is active.\n */\n private _updateAutoAlignPlacement() {\n if (!this.autoalign || !this.open) {\n return;\n }\n\n const menu = this._menuBodyNode;\n const trigger = this._triggerButtonNode || this._listBoxNode;\n\n if (!menu || !trigger) {\n return;\n }\n\n const alignment =\n this.direction === DROPDOWN_DIRECTION.TOP\n ? DROPDOWN_DIRECTION.TOP\n : DROPDOWN_DIRECTION.BOTTOM;\n\n this._floatingController.setPlacement({\n alignment,\n matchWidth: true,\n open: this.open,\n target: menu,\n trigger,\n });\n }\n\n /**\n * Normalizes validation props based on disabled and readOnly states\n */\n protected get _normalizedProps() {\n const { disabled, readOnly, invalid, warn } = this;\n return {\n disabled: !readOnly && disabled,\n invalid: !readOnly && !disabled && invalid,\n warn: !readOnly && !invalid && !disabled && warn,\n };\n }\n\n /**\n * The CSS class list for dropdown 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 { size, type, open, autoalign } = this;\n const inline = type === DROPDOWN_TYPE.INLINE;\n const normalizedProps = this._normalizedProps;\n\n const selectedItemsCount = this.querySelectorAll(\n (this.constructor as typeof CDSDropdown).selectorItemSelected\n ).length;\n\n return classMap({\n [`${prefix}--dropdown`]: true,\n [`${prefix}--list-box`]: true,\n [`${prefix}--list-box--disabled`]: normalizedProps.disabled,\n [`${prefix}--list-box--inline`]: inline,\n [`${prefix}--list-box--expanded`]: open,\n [`${prefix}--list-box--${size}`]: size,\n [`${prefix}--dropdown--invalid`]: normalizedProps.invalid,\n [`${prefix}--dropdown--warn`]: normalizedProps.warn,\n [`${prefix}--dropdown--inline`]: inline,\n [`${prefix}--dropdown--selected`]: selectedItemsCount > 0,\n [`${prefix}--list-box__wrapper--decorator`]: this._hasAILabel,\n [`${prefix}--autoalign`]: autoalign,\n });\n }\n\n render() {\n const {\n ariaLabel,\n _classes: classes,\n helperText,\n invalidText,\n open,\n toggleLabelClosed,\n toggleLabelOpen,\n type,\n warn,\n warnText,\n _activeDescendant: activeDescendant,\n _shouldTriggerBeFocusable: shouldTriggerBeFocusable,\n _handleClickInner: handleClickInner,\n _handleKeydownInner: handleKeydownInner,\n _handleKeypressInner: handleKeypressInner,\n _handleMouseleaveInner: handleMouseleaveInner,\n _handleMouseoverInner: handleMouseoverInner,\n _handleSlotchangeHelperText: handleSlotchangeHelperText,\n _handleAILabelSlotChange: handleAILabelSlotChange,\n _slotHelperTextNode: slotHelperTextNode,\n } = this;\n const inline = type === DROPDOWN_TYPE.INLINE;\n const normalizedProps = this._normalizedProps;\n\n let activeDescendantFallback: string | undefined;\n if (open && !activeDescendant) {\n const constructor = this.constructor as typeof CDSDropdown;\n const items = this.querySelectorAll(constructor.selectorItem);\n activeDescendantFallback = items[0]?.id;\n }\n\n const helperClasses = classMap({\n [`${prefix}--form__helper-text`]: true,\n [`${prefix}--form__helper-text--disabled`]: normalizedProps.disabled,\n });\n const iconContainerClasses = classMap({\n [`${prefix}--list-box__menu-icon`]: true,\n [`${prefix}--list-box__menu-icon--open`]: open,\n });\n const toggleLabel = (open ? toggleLabelOpen : toggleLabelClosed) || '';\n const hasHelperText =\n helperText ||\n invalidText ||\n warnText ||\n (slotHelperTextNode && slotHelperTextNode.assignedNodes().length > 0);\n const validityIcon = !normalizedProps.invalid\n ? undefined\n : iconLoader(WarningFilled16, {\n class: `${prefix}--list-box__invalid-icon`,\n 'aria-label': toggleLabel,\n });\n const warningIcon = !normalizedProps.warn\n ? undefined\n : iconLoader(WarningAltFilled16, {\n class: `${prefix}--list-box__invalid-icon ${prefix}--list-box__invalid-icon--warning`,\n 'aria-label': toggleLabel,\n });\n const helperMessage = normalizedProps.invalid\n ? invalidText\n : normalizedProps.warn\n ? warnText\n : helperText;\n const menuBody = html`\n <div\n aria-labelledby=\"${ifDefined(ariaLabel ? undefined : 'dropdown-label')}\"\n aria-label=\"${ifDefined(ariaLabel ? ariaLabel : undefined)}\"\n id=\"menu-body\"\n part=\"menu-body\"\n class=\"${prefix}--list-box__menu\"\n role=\"listbox\"\n tabindex=\"-1\"\n ?hidden=${!open}\n @mouseover=${handleMouseoverInner}\n @mouseleave=${handleMouseleaveInner}>\n <slot></slot>\n </div>\n `;\n return html`\n ${this._renderTitleLabel()}\n <div\n class=\"${classes}\"\n ?data-invalid=${normalizedProps.invalid}\n @click=${handleClickInner}\n @keydown=${handleKeydownInner}\n @keypress=${handleKeypressInner}>\n ${validityIcon}${warningIcon}\n <div\n id=\"${ifDefined(\n !shouldTriggerBeFocusable ? undefined : 'trigger-button'\n )}\"\n class=\"${prefix}--list-box__field\"\n part=\"trigger-button\"\n tabindex=\"${ifDefined(!shouldTriggerBeFocusable ? undefined : '0')}\"\n role=\"${ifDefined(\n !shouldTriggerBeFocusable ? undefined : 'combobox'\n )}\"\n aria-label=\"${ifDefined(ariaLabel ? ariaLabel : undefined)}\"\n aria-labelledby=\"${ifDefined(\n !shouldTriggerBeFocusable ? undefined : 'dropdown-label'\n )}\"\n aria-expanded=\"${ifDefined(\n !shouldTriggerBeFocusable ? undefined : String(open)\n )}\"\n aria-haspopup=\"${ifDefined(\n !shouldTriggerBeFocusable ? undefined : 'listbox'\n )}\"\n aria-controls=\"${ifDefined(\n !shouldTriggerBeFocusable ? undefined : 'menu-body'\n )}\"\n aria-activedescendant=\"${ifDefined(\n !shouldTriggerBeFocusable\n ? undefined\n : open\n ? (activeDescendant ?? activeDescendantFallback)\n : ''\n )}\">\n ${this._renderPrecedingLabel()}${this._renderLabel()}${this._renderFollowingLabel()}\n <div id=\"trigger-caret\" class=\"${iconContainerClasses}\">\n ${iconLoader(ChevronDown16, { 'aria-label': toggleLabel })}\n </div>\n </div>\n <slot name=\"ai-label\" @slotchange=${handleAILabelSlotChange}></slot>\n <slot name=\"slug\" @slotchange=${handleAILabelSlotChange}></slot>\n ${menuBody}\n </div>\n <div\n part=\"helper-text\"\n class=\"${helperClasses}\"\n ?hidden=\"${(inline && !warn && !normalizedProps.invalid) ||\n !hasHelperText}\">\n <slot name=\"helper-text\" @slotchange=\"${handleSlotchangeHelperText}\"\n >${helperMessage}</slot\n >\n </div>\n `;\n }\n\n /**\n * Symbols of keys that triggers opening/closing menu and selecting/deselecting menu item.\n */\n static TRIGGER_KEYS = new Set([' ', 'Enter']);\n\n /**\n * A selector that will return highlighted items.\n */\n static get selectorItemHighlighted() {\n return `${prefix}-dropdown-item[highlighted]`;\n }\n\n /**\n * A selector that will return dropdown items.\n */\n static get selectorItem() {\n return `${prefix}-dropdown-item`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-dropdown-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before a dropdown 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}-dropdown-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a dropdown item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-dropdown-selected`;\n }\n\n /**\n * The name of the custom event fired before this dropdown item is being toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated action of toggling this dropdown item.\n */\n static get eventBeforeToggle() {\n return `${prefix}-dropdown-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after this dropdown item is toggled upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-dropdown-toggled`;\n }\n\n /**\n * A selector that will return the slug item.\n *\n * remove in v12\n */\n static get slugItem() {\n return `${prefix}-slug`;\n }\n\n /**\n * A selector that will return the AI Label item.\n */\n static get aiLabelItem() {\n return `${prefix}-ai-label`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n static styles = styles;\n\n /**\n * @returns A action for dropdown for the given key symbol.\n */\n static getAction(key: string) {\n if (key === 'Escape') {\n return DROPDOWN_KEYBOARD_ACTION.CLOSING;\n }\n if (key in NAVIGATION_DIRECTION) {\n return DROPDOWN_KEYBOARD_ACTION.NAVIGATING;\n }\n if (this.TRIGGER_KEYS.has(key)) {\n return DROPDOWN_KEYBOARD_ACTION.TRIGGERING;\n }\n return DROPDOWN_KEYBOARD_ACTION.NONE;\n }\n}\n\nexport default CDSDropdown;\n"],"names":["FloatingUIController","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"dropdown.js","sources":["../../../src/components/dropdown/dropdown.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 { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { LitElement, html, TemplateResult } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport WarningFilled16 from '@carbon/icons/es/warning--filled/16.js';\nimport WarningAltFilled16 from '@carbon/icons/es/warning--alt--filled/16.js';\nimport ChevronDown16 from '@carbon/icons/es/chevron--down/16.js';\nimport FocusMixin from '../../globals/mixins/focus';\nimport FormMixin from '../../globals/mixins/form';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport ValidityMixin from '../../globals/mixins/validity';\nimport HostListener from '../../globals/decorators/host-listener';\nimport FloatingUIController from '../../globals/controllers/floating-controller';\nimport {\n find,\n forEach,\n indexOf,\n} from '../../globals/internal/collection-helpers';\nimport {\n DROPDOWN_DIRECTION,\n DROPDOWN_KEYBOARD_ACTION,\n DROPDOWN_SIZE,\n DROPDOWN_TYPE,\n NAVIGATION_DIRECTION,\n} from './defs';\nimport CDSDropdownItem from './dropdown-item';\nimport styles from './dropdown.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport {\n DROPDOWN_KEYBOARD_ACTION,\n DROPDOWN_DIRECTION,\n DROPDOWN_SIZE,\n DROPDOWN_TYPE,\n NAVIGATION_DIRECTION,\n};\n\n/**\n * Dropdown.\n *\n * @element cds-dropdown\n * @csspart label-text The label text.\n * @csspart helper-text The helper text.\n * @csspart trigger-button The trigger button.\n * @csspart menu-body The menu body.\n * @csspart validity-message The validity message.\n * @fires cds-dropdown-beingselected\n * The custom event fired before a dropdown item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires cds-dropdown-beingtoggled\n * The custom event fired before the open state of this dropdown is toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated toggling.\n * @fires cds-dropdown-selected - The custom event fired after a dropdown item is selected upon a user gesture.\n * @fires cds-dropdown-toggled - The custom event fired after the open state of this dropdown is toggled upon a user gesture.\n */\n@customElement(`${prefix}-dropdown`)\nclass CDSDropdown extends ValidityMixin(\n HostListenerMixin(FormMixin(FocusMixin(LitElement)))\n) {\n /**\n * `true` if there is an AI Label.\n */\n protected _hasAILabel = false;\n\n /**\n * Currently slotted AI decorator nodes (`cds-ai-label`/slug) with listeners attached.\n */\n private _aiDecoratorNodes: HTMLElement[] = [];\n\n /**\n * Floating UI controller instance for autoalign positioning.\n */\n private _floatingController = new FloatingUIController(this);\n\n /**\n * Handles interaction on an AI decorator while the menu is open.\n */\n private _handleAIDecoratorInteraction = () => {\n if (!this.open) {\n return;\n }\n\n this._handleUserInitiatedToggle(false);\n };\n\n @state()\n protected _activeDescendant?: string;\n\n /**\n * The content of the selected item.\n */\n protected _selectedItemContent: DocumentFragment | null = null;\n\n /**\n * `true` if the trigger button should be focusable.\n * Derived class can set `false` to this if the trigger button contains another primary focusable element (e.g. `input`).\n */\n protected _shouldTriggerBeFocusable = true;\n\n /**\n * The list box `<div>` node.\n */\n @query(`.${prefix}--list-box`)\n protected _listBoxNode!: HTMLDivElement;\n\n /**\n * The menu body element.\n */\n @query('#menu-body')\n protected _menuBodyNode!: HTMLDivElement;\n\n /**\n * The trigger button element.\n */\n @query('#trigger-button')\n protected _triggerButtonNode!: HTMLDivElement;\n\n /**\n * The `<slot>` element for the helper text in the shadow DOM.\n */\n @query('slot[name=\"helper-text\"]')\n protected _slotHelperTextNode!: HTMLSlotElement;\n\n /**\n * The `<slot>` element for the title text in the shadow DOM.\n */\n @query('slot[name=\"title-text\"]')\n protected _slotTitleTextNode!: HTMLSlotElement;\n\n /**\n * @param itemToSelect A dropdown item. Absense of this argument means clearing selection.\n * @returns `true` if the selection of this dropdown should change if the given item is selected upon user interaction.\n */\n protected _selectionShouldChange(itemToSelect?: CDSDropdownItem) {\n return !itemToSelect || itemToSelect.value !== this.value;\n }\n\n /**\n * A callback that runs after change in dropdown selection upon user interaction is confirmed.\n *\n * @param itemToSelect\n * A dropdown item.\n * Absense of this argument means clearing selection, which may be handled by a derived class.\n */\n protected _selectionDidChange(itemToSelect?: CDSDropdownItem) {\n const constructor = this.constructor as typeof CDSDropdown;\n if (itemToSelect) {\n this.value = itemToSelect.value;\n this._activeDescendant = itemToSelect.id;\n forEach(\n this.querySelectorAll(constructor.selectorItemSelected),\n (item) => {\n (item as CDSDropdownItem).selected = false;\n item.setAttribute('aria-selected', 'false');\n }\n );\n itemToSelect.selected = true;\n itemToSelect.setAttribute('aria-selected', 'true');\n this._updateSelectedNextSibling(itemToSelect);\n } else {\n this._updateSelectedNextSibling();\n }\n }\n\n /**\n * Handles `click` event on the top-level element in the shadow DOM.\n *\n * @param event The event.\n */\n protected _handleClickInner(event: MouseEvent) {\n if (this.readOnly) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n if (this.shadowRoot!.contains(event.target as Node)) {\n const opening = !this.open;\n const constructor = this.constructor as typeof CDSDropdown;\n const selectedItem = this.querySelector(\n constructor.selectorItemSelected\n ) as CDSDropdownItem | null;\n if (opening) {\n const shouldFocusMenu = Boolean(selectedItem);\n this._handleUserInitiatedToggle(true, {\n focusMenu: shouldFocusMenu,\n highlightSelectedOnOpen: shouldFocusMenu,\n });\n } else {\n this._handleUserInitiatedToggle(false, {\n restoreTriggerFocus: true,\n });\n }\n } else {\n const item = (event.target as Element).closest(\n (this.constructor as typeof CDSDropdown).selectorItem\n ) as CDSDropdownItem;\n if (this.contains(item)) {\n this._handleUserInitiatedSelectItem(item);\n }\n }\n }\n\n /**\n * Handler for the `keydown` event on the top-level element in the shadow DOM.\n */\n protected _handleKeydownInner(event: KeyboardEvent) {\n if (this._handleMenuInputKeydown(event)) {\n return;\n }\n\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.NAVIGATING: {\n const shouldKeepInputFocus = this._shouldRetainMenuInputFocus(event);\n const menuInputNode = this._menuInputNode;\n if (this.readOnly) {\n event.preventDefault();\n return;\n }\n const direction =\n NAVIGATION_DIRECTION[key as keyof typeof NAVIGATION_DIRECTION];\n\n event.preventDefault();\n if (direction === -1) {\n break;\n }\n const constructor = this.constructor as typeof CDSDropdown;\n const selectedItem = this.querySelector(\n constructor.selectorItemSelected\n ) as CDSDropdownItem | null;\n const shouldHighlightSelected = Boolean(selectedItem);\n\n this._handleUserInitiatedToggle(true, {\n focusMenu: false,\n highlightSelectedOnOpen: shouldHighlightSelected,\n });\n\n this.updateComplete.then(() => {\n const constructor = this.constructor as typeof CDSDropdown;\n const items = this.querySelectorAll(constructor.selectorItem);\n if (items.length > 0) {\n const selectedItem = this.querySelector(\n constructor.selectorItemSelected\n ) as CDSDropdownItem | null;\n\n const firstEnabledItem = Array.from(items).find(\n (item) => !(item as CDSDropdownItem).hasAttribute('disabled')\n ) as CDSDropdownItem | undefined;\n\n const initialItem =\n selectedItem && !selectedItem.hasAttribute('disabled')\n ? selectedItem\n : (firstEnabledItem ?? null);\n\n if (initialItem) {\n this._setHighlightedItem(initialItem, { scrollIntoView: true });\n } else {\n this._clearHighlight();\n }\n\n const menu = this.shadowRoot?.getElementById('menu-body');\n if (shouldKeepInputFocus && menuInputNode) {\n menuInputNode.focus({ preventScroll: true });\n } else if (menu) {\n menu.focus();\n }\n }\n });\n break;\n }\n default:\n break;\n }\n } else {\n switch (action) {\n case DROPDOWN_KEYBOARD_ACTION.CLOSING:\n this._handleUserInitiatedToggle(false, {\n restoreTriggerFocus: true,\n });\n break;\n case DROPDOWN_KEYBOARD_ACTION.NAVIGATING: {\n event.preventDefault();\n const menu = this.shadowRoot?.getElementById('menu-body');\n const menuInputNode = this._menuInputNode;\n const shouldKeepInputFocus = this._shouldRetainMenuInputFocus(event);\n if (shouldKeepInputFocus && menuInputNode) {\n menuInputNode.focus({ preventScroll: true });\n } else if (menu) {\n menu.focus();\n }\n this._navigate(NAVIGATION_DIRECTION[key]);\n break;\n }\n default:\n break;\n }\n }\n }\n\n private _handleMenuInputKeydown(event: KeyboardEvent) {\n if (\n event.defaultPrevented ||\n !this._supportsMenuInputFiltering ||\n !this._menuInputNode\n ) {\n return false;\n }\n\n const input = this._menuInputNode;\n if (!input) {\n return false;\n }\n const isInputTarget = event.target === input;\n\n const hasFilterValue = Boolean(input.value || this.value);\n if (\n event.key === 'Escape' &&\n hasFilterValue &&\n this._shouldClearMenuInputOnEscape({\n event,\n menuOpen: this.open,\n isInputTarget,\n })\n ) {\n event.preventDefault();\n this._clearMenuInputFiltering();\n return true;\n }\n\n if (!this.open || isInputTarget) {\n return false;\n }\n\n if (this._shouldForwardKeyToMenuInput(event)) {\n event.preventDefault();\n this._forwardKeyToMenuInput(event, input);\n return true;\n }\n\n return false;\n }\n\n protected _shouldClearMenuInputOnEscape({\n menuOpen,\n }: {\n event: KeyboardEvent;\n menuOpen: boolean;\n isInputTarget: boolean;\n }) {\n return menuOpen;\n }\n\n protected get _supportsMenuInputFiltering() {\n return false;\n }\n\n protected get _menuInputNode(): HTMLInputElement | null {\n return null;\n }\n\n protected _clearMenuInputFiltering() {}\n\n private _shouldForwardKeyToMenuInput(event: KeyboardEvent) {\n if (event.altKey || event.metaKey || event.ctrlKey) {\n return false;\n }\n const { key } = event;\n if (key === 'Backspace' || key === 'Delete') {\n return true;\n }\n return key.length === 1;\n }\n\n private _forwardKeyToMenuInput(\n event: KeyboardEvent,\n input: HTMLInputElement\n ) {\n input.focus({ preventScroll: true });\n const key = event.key;\n const selectionStart = input.selectionStart ?? input.value.length;\n const selectionEnd = input.selectionEnd ?? input.value.length;\n if (key === 'Backspace') {\n if (selectionStart === 0 && selectionEnd === 0) {\n return;\n }\n const start =\n selectionStart === selectionEnd\n ? Math.max(0, selectionStart - 1)\n : selectionStart;\n input.setRangeText('', start, selectionEnd, 'end');\n } else if (key === 'Delete') {\n if (\n selectionStart === input.value.length &&\n selectionStart === selectionEnd\n ) {\n return;\n }\n const end =\n selectionStart === selectionEnd\n ? Math.min(input.value.length, selectionEnd + 1)\n : selectionEnd;\n input.setRangeText('', selectionStart, end, 'end');\n } else if (key.length === 1) {\n input.setRangeText(key, selectionStart, selectionEnd, 'end');\n }\n input.dispatchEvent(new Event('input', { bubbles: true, composed: true }));\n }\n\n private _shouldRetainMenuInputFocus(event: Event) {\n if (!this._supportsMenuInputFiltering || !this._menuInputNode) {\n return false;\n }\n if (event.target === this._menuInputNode) {\n return true;\n }\n const path =\n typeof event.composedPath === 'function' ? event.composedPath() : [];\n return path.includes(this._menuInputNode);\n }\n\n /**\n * Handles keypress events (Space, Enter)\n */\n protected _handleKeypressInner(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof CDSDropdown).getAction(key);\n // When closed\n if (!this.open) {\n if (this.readOnly && action === DROPDOWN_KEYBOARD_ACTION.TRIGGERING) {\n if (key === ' ' || key === 'Space') {\n event.preventDefault();\n }\n return;\n }\n switch (action) {\n case DROPDOWN_KEYBOARD_ACTION.TRIGGERING: {\n if (key === ' ' || key === 'Space') {\n event.preventDefault();\n }\n\n const constructor = this.constructor as typeof CDSDropdown;\n const selectedItem = this.querySelector(\n constructor.selectorItemSelected\n ) as CDSDropdownItem | null;\n const shouldFocusMenu = Boolean(selectedItem);\n\n this._handleUserInitiatedToggle(true, {\n focusMenu: shouldFocusMenu,\n highlightSelectedOnOpen: shouldFocusMenu,\n });\n break;\n }\n default:\n break;\n }\n } else {\n // When open\n switch (action) {\n case DROPDOWN_KEYBOARD_ACTION.TRIGGERING: {\n const constructor = this.constructor as typeof CDSDropdown;\n const selectedItem = this.querySelector(\n constructor.selectorItemSelected\n ) as CDSDropdownItem | null;\n const highlightedItem = this.querySelector(\n constructor.selectorItemHighlighted\n ) as CDSDropdownItem;\n if (highlightedItem) {\n this._handleUserInitiatedSelectItem(highlightedItem);\n } else if (selectedItem) {\n this._handleUserInitiatedSelectItem(selectedItem);\n } else {\n this._handleUserInitiatedToggle(false, {\n restoreTriggerFocus: true,\n });\n }\n break;\n }\n default:\n break;\n }\n }\n }\n\n /**\n * Handles `blur` event handler on the document this element is in.\n *\n * @param event The event.\n */\n\n protected _handleMouseoverInner(event: MouseEvent) {\n if (!this.open) {\n return;\n }\n\n const item = this._getDropdownItemFromEvent(event);\n if (!item) {\n return;\n }\n\n if (item.hasAttribute('disabled')) {\n this._clearHighlight();\n return;\n }\n\n this._setHighlightedItem(item);\n }\n\n protected _handleMouseleaveInner(event: MouseEvent) {\n if (!this.open) {\n return;\n }\n\n const menu = this.shadowRoot?.getElementById('menu-body');\n const relatedTarget = event.relatedTarget as Node | null;\n if (menu && relatedTarget && menu.contains(relatedTarget)) {\n return;\n }\n\n const shadowActiveElement = this.shadowRoot?.activeElement;\n if (menu && shadowActiveElement && menu.contains(shadowActiveElement)) {\n return;\n }\n\n if (\n this._supportsMenuInputFiltering &&\n this._menuInputNode &&\n this.shadowRoot?.activeElement === this._menuInputNode\n ) {\n return;\n }\n\n this._clearHighlight();\n }\n\n @HostListener('focusout')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n protected _handleFocusOut(event: FocusEvent) {\n if (!this.contains(event.relatedTarget as Node)) {\n this._handleUserInitiatedToggle(false);\n }\n }\n\n /**\n * Handles `slotchange` event for the `<slot>` for helper text.\n */\n protected _handleSlotchangeHelperText() {\n this.requestUpdate();\n }\n\n /**\n * Handles `slotchange` event for the `<slot>` for label text.\n */\n protected _handleSlotchangeLabelText() {\n this.requestUpdate();\n }\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleAILabelSlotChange({ target }: Event) {\n const decoratorNodes = (target as HTMLSlotElement)\n .assignedNodes()\n .filter((elem) =>\n (elem as HTMLElement).matches !== undefined\n ? (elem as HTMLElement).matches(\n (this.constructor as typeof CDSDropdown).aiLabelItem\n ) ||\n // remove reference to slug in v12\n (elem as HTMLElement).matches(\n (this.constructor as typeof CDSDropdown).slugItem\n )\n : false\n );\n\n const decoratorElements = decoratorNodes.filter(\n (node): node is HTMLElement => node instanceof HTMLElement\n );\n\n this._updateAIDecoratorListeners(decoratorElements);\n\n this._hasAILabel = Boolean(decoratorElements.length);\n decoratorElements[0]?.setAttribute('size', 'mini');\n this.requestUpdate();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this._updateAIDecoratorListeners([]);\n }\n\n /**\n * Updates listeners for AI decorator nodes to ensure only one menu stays open.\n */\n private _updateAIDecoratorListeners(nodes: HTMLElement[]) {\n this._aiDecoratorNodes.forEach((node) => {\n node.removeEventListener('click', this._handleAIDecoratorInteraction);\n });\n\n this._aiDecoratorNodes = nodes;\n\n this._aiDecoratorNodes.forEach((node) => {\n node.addEventListener('click', this._handleAIDecoratorInteraction);\n });\n }\n\n /**\n * Handles user-initiated selection of a dropdown item.\n *\n * @param [item] The dropdown item user wants to select. Absense of this argument means clearing selection.\n */\n protected _handleUserInitiatedSelectItem(item?: CDSDropdownItem) {\n if (item?.hasAttribute('disabled')) {\n return;\n }\n\n const shouldClose = this._shouldCloseAfterSelection(item);\n\n if (this._selectionShouldChange(item)) {\n const init = {\n bubbles: true,\n composed: true,\n detail: {\n item,\n },\n };\n const constructor = this.constructor as typeof CDSDropdown;\n const beforeSelectEvent = new CustomEvent(constructor.eventBeforeSelect, {\n ...init,\n cancelable: true,\n });\n if (this.dispatchEvent(beforeSelectEvent)) {\n this._selectionDidChange(item);\n const afterSelectEvent = new CustomEvent(constructor.eventSelect, init);\n this.dispatchEvent(afterSelectEvent);\n if (shouldClose) {\n this._handleUserInitiatedToggle(false, {\n restoreTriggerFocus: true,\n });\n }\n }\n } else if (item && shouldClose) {\n this._handleUserInitiatedToggle(false, {\n restoreTriggerFocus: true,\n });\n }\n }\n\n // Default dropdowns close after user selection.\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- https://github.com/carbon-design-system/carbon/issues/20452\n protected _shouldCloseAfterSelection(_item?: CDSDropdownItem) {\n return true;\n }\n\n /**\n * Handles user-initiated toggling the open state.\n *\n * @param [force] If specified, forces the open state to the given one.\n */\n protected _handleUserInitiatedToggle(\n force = !this.open,\n {\n restoreTriggerFocus = false,\n focusMenu = true,\n highlightSelectedOnOpen = false,\n }: {\n restoreTriggerFocus?: boolean;\n focusMenu?: boolean;\n highlightSelectedOnOpen?: boolean;\n } = {}\n ) {\n const { eventBeforeToggle, eventToggle } = this\n .constructor as typeof CDSDropdown;\n\n const { disabled } = this;\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n open: force,\n },\n };\n if (!disabled) {\n if (this.dispatchEvent(new CustomEvent(eventBeforeToggle, init))) {\n this.open = force;\n if (this.open) {\n const activeElement = this.shadowRoot?.activeElement;\n const preserveFocusTarget =\n activeElement instanceof HTMLInputElement ? activeElement : null;\n this.updateComplete.then(() => {\n if (preserveFocusTarget) {\n preserveFocusTarget.focus();\n } else if (focusMenu) {\n const menu = this.shadowRoot?.getElementById('menu-body');\n menu?.focus();\n } else if (this._shouldTriggerBeFocusable) {\n const trigger = this.shadowRoot?.getElementById('trigger-button');\n trigger?.focus();\n }\n\n if (highlightSelectedOnOpen) {\n this._highlightSelectedItem();\n }\n });\n } else if (restoreTriggerFocus && this._shouldTriggerBeFocusable) {\n this.updateComplete.then(() => {\n const trigger = this.shadowRoot?.getElementById('trigger-button');\n trigger?.focus();\n });\n }\n\n if (!this.open) {\n this._clearHighlight();\n }\n this.requestUpdate();\n this.dispatchEvent(new CustomEvent(eventToggle, init));\n }\n }\n }\n\n /**\n * Clears the selection of dropdown items.\n */\n protected _clearHighlight() {\n this._setHighlightedItem();\n }\n\n protected _getDropdownItemFromEvent(event: Event): CDSDropdownItem | null {\n const constructor = this.constructor as typeof CDSDropdown;\n const selector = constructor.selectorItem;\n const path = event.composedPath();\n\n for (const node of path) {\n if (\n node instanceof Element &&\n typeof node.matches === 'function' &&\n node.matches(selector)\n ) {\n return node as CDSDropdownItem;\n }\n }\n\n return null;\n }\n\n protected _setHighlightedItem(\n item?: CDSDropdownItem | null,\n { scrollIntoView = false }: { scrollIntoView?: boolean } = {}\n ) {\n const constructor = this.constructor as typeof CDSDropdown;\n const items = this.querySelectorAll(constructor.selectorItem);\n const target =\n item && !item.hasAttribute('disabled') ? (item as CDSDropdownItem) : null;\n\n forEach(items, (listItem) => {\n const dropdownItem = listItem as CDSDropdownItem;\n dropdownItem.highlighted = dropdownItem === target;\n dropdownItem.removeAttribute('highlighted-next-sibling');\n });\n\n if (target) {\n const nextSibling = this._getNextDropdownItem(target);\n if (nextSibling) {\n nextSibling.setAttribute('highlighted-next-sibling', '');\n }\n\n const itemId = target.id;\n if (itemId) {\n this._activeDescendant = itemId;\n }\n\n if (scrollIntoView) {\n target.scrollIntoView({ block: 'nearest' });\n }\n } else {\n this._activeDescendant = undefined;\n }\n }\n\n protected _getNextDropdownItem(\n item: CDSDropdownItem\n ): CDSDropdownItem | null {\n const constructor = this.constructor as typeof CDSDropdown;\n const selector = constructor.selectorItem;\n let next = item.nextElementSibling as Element | null;\n\n while (next) {\n if (typeof next.matches === 'function' && next.matches(selector)) {\n return next as CDSDropdownItem;\n }\n next = next.nextElementSibling as Element | null;\n }\n\n return null;\n }\n\n protected _updateSelectedNextSibling(item?: CDSDropdownItem | null): void {\n const constructor = this.constructor as typeof CDSDropdown;\n forEach(this.querySelectorAll(constructor.selectorItem), (listItem) => {\n (listItem as CDSDropdownItem).removeAttribute('selected-next-sibling');\n });\n\n if (item) {\n const nextSibling = this._getNextDropdownItem(item);\n if (nextSibling) {\n nextSibling.setAttribute('selected-next-sibling', '');\n }\n }\n }\n\n protected _highlightSelectedItem() {\n const constructor = this.constructor as typeof CDSDropdown;\n const selectedItem = this.querySelector(\n constructor.selectorItemSelected\n ) as CDSDropdownItem | null;\n\n if (selectedItem && !selectedItem.hasAttribute('disabled')) {\n this._setHighlightedItem(selectedItem, { scrollIntoView: true });\n } else {\n this._clearHighlight();\n }\n }\n\n protected _navigate(direction: number) {\n const constructor = this.constructor as typeof CDSDropdown;\n const items = this.querySelectorAll(constructor.selectorItem);\n if (!items.length) {\n return;\n }\n const highlightedItem = this.querySelector(\n constructor.selectorItemHighlighted\n );\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n const highlightedIndex = indexOf(items, highlightedItem!);\n let nextIndex =\n highlightedIndex === -1\n ? direction > 0\n ? 0\n : items.length - 1\n : highlightedIndex + direction;\n\n while (\n nextIndex >= 0 &&\n nextIndex < items.length &&\n items[nextIndex]?.hasAttribute('disabled')\n ) {\n nextIndex += direction;\n }\n if (nextIndex < 0 || nextIndex >= items.length) {\n return;\n }\n\n const nextItem = items[nextIndex] as CDSDropdownItem;\n this._setHighlightedItem(nextItem, { scrollIntoView: true });\n }\n\n /**\n * @returns The content preceding the trigger button.\n */\n protected _renderPrecedingLabel(): TemplateResult | undefined {\n return undefined;\n }\n\n /**\n * @returns The main content of the trigger button.\n */\n protected _renderLabel(): TemplateResult {\n const { label, _selectedItemContent: selectedItemContent } = this;\n return html`\n <span id=\"trigger-label\" class=\"${prefix}--list-box__label\"\n >${selectedItemContent || label}</span\n >\n `;\n }\n\n /**\n * @returns The title label.\n */\n protected _renderTitleLabel(): TemplateResult {\n const {\n disabled,\n hideLabel,\n titleText,\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 id=\"dropdown-label\"\n part=\"title-text\"\n class=\"${labelClasses}\"\n for=\"trigger-button\"\n ?hidden=\"${!hasTitleText}\">\n <slot name=\"title-text\" @slotchange=\"${handleSlotchangeLabelText}\"\n >${titleText}</slot\n >\n </label>\n `;\n }\n\n /**\n * @returns The content following the trigger button.\n */\n protected _renderFollowingLabel(): TemplateResult | undefined {\n return undefined;\n }\n\n /**\n * Handles event to include selected value on the parent form.\n *\n * @param event The event.\n */\n _handleFormdata(event: FormDataEvent) {\n const { formData } = event;\n const { disabled, name, value } = this;\n if (!disabled) {\n formData.append(name, value);\n }\n }\n\n /**\n * 'aria-label' of the ListBox component.\n * Specify a label to be read by screen readers on the container node\n */\n @property({ type: String, attribute: 'aria-label' })\n ariaLabel = '';\n\n /**\n * Specify the direction of the dropdown. Can be either top or bottom.\n */\n @property({ type: String, reflect: true })\n direction = DROPDOWN_DIRECTION.BOTTOM;\n\n /**\n * Specify whether auto align functionality should be applied\n */\n @property({ type: Boolean, reflect: true })\n autoalign = false;\n\n /**\n * `true` if this dropdown should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * The helper text.\n */\n @property({ attribute: 'helper-text' })\n helperText = '';\n\n /**\n * Specify whether the title text should be hidden or not\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-label' })\n hideLabel = false;\n\n /**\n * `true` to show the UI of the invalid state.\n */\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n /**\n * Message which is displayed if the value is invalid.\n */\n @property({ attribute: 'invalid-text' })\n invalidText = '';\n\n /**\n * Provide the title text that will be read by a screen reader when visiting this control\n */\n @property({ attribute: 'title-text' })\n titleText = '';\n\n /**\n * Name for the dropdown in the `FormData`\n */\n @property()\n name = '';\n\n /**\n * `true` if this dropdown should be open.\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Whether or not the Dropdown is readonly\n */\n @property({ type: Boolean, reflect: true, attribute: 'read-only' })\n readOnly = false;\n\n /**\n * `true` if the value is required.\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * The special validity message for `required`.\n */\n @property({ attribute: 'required-validity-message' })\n requiredValidityMessage = 'Please fill out this field.';\n\n /**\n * Dropdown size.\n */\n @property({ reflect: true })\n size = DROPDOWN_SIZE.MEDIUM;\n\n /**\n * The `aria-label` attribute for the UI indicating the closed state.\n */\n @property({ attribute: 'toggle-label-closed' })\n toggleLabelClosed = '';\n\n /**\n * The `aria-label` attribute for the UI indicating the open state.\n */\n @property({ attribute: 'toggle-label-open' })\n toggleLabelOpen = '';\n\n /**\n * Generic label that will be used as the textual representation of what this field is for\n */\n @property({ attribute: 'label' })\n label = '';\n\n /**\n * `true` if this dropdown should use the inline UI variant.\n */\n @property({ reflect: true })\n type = DROPDOWN_TYPE.DEFAULT;\n\n /**\n * The validity message.\n */\n @property({ attribute: 'validity-message' })\n validityMessage = '';\n\n /**\n * The value of the selected item.\n */\n @property({ reflect: true })\n value = '';\n\n /**\n * Specify whether the control is currently in warning state\n */\n @property({ type: Boolean, reflect: true })\n warn = false;\n\n /**\n * Provide the text that is displayed when the control is in warning state\n */\n @property({ attribute: 'warn-text' })\n warnText = '';\n\n /**\n * The computed aria-label for the toggle button based on open state.\n */\n get toggleLabel(): string {\n return (this.open ? this.toggleLabelOpen : this.toggleLabelClosed) || '';\n }\n\n shouldUpdate(changedProperties) {\n const { selectorItem } = this.constructor as typeof CDSDropdown;\n if (changedProperties.has('size')) {\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n (elem as CDSDropdownItem).size = this.size;\n });\n }\n if (changedProperties.has('disabled')) {\n const { disabled } = this;\n // Propagate `disabled` attribute to descendants until `:host-context()` gets supported in all major browsers\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n const item = elem as CDSDropdownItem;\n if (disabled) {\n if (!item.disabled) {\n item.setAttribute('parent-disabled', '');\n }\n item.disabled = true;\n } else if (item.hasAttribute('parent-disabled')) {\n item.removeAttribute('parent-disabled');\n item.disabled = false;\n }\n });\n }\n if (changedProperties.has('value')) {\n // `<cds-multi-select>` updates selection beforehand\n // because our rendering logic for `<cds-multi-select>` looks for selected items via `qSA()`\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n (elem as CDSDropdownItem).selected =\n (elem as CDSDropdownItem).value === this.value;\n });\n const selectedItem = find(\n this.querySelectorAll(selectorItem),\n (elem) => (elem as CDSDropdownItem).value === this.value\n ) as CDSDropdownItem | undefined;\n if (selectedItem) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n const range = this.ownerDocument!.createRange();\n range.selectNodeContents(selectedItem);\n this._selectedItemContent = range.cloneContents();\n } else {\n this._selectedItemContent = null;\n }\n this._updateSelectedNextSibling(selectedItem);\n }\n return true;\n }\n\n updated(changedProperties) {\n if (this._hasAILabel) {\n this.setAttribute('ai-label', '');\n } else {\n this.removeAttribute('ai-label');\n }\n\n const label = this.shadowRoot?.querySelector(\"slot[name='ai-label']\");\n if (label) {\n label?.classList.toggle(\n `${prefix}--slug--revert`,\n this.querySelector(`${prefix}-ai-label`)?.hasAttribute('revert-active')\n );\n } else {\n this.shadowRoot\n ?.querySelector(\"slot[name='slug']\")\n ?.classList.toggle(\n `${prefix}--slug--revert`,\n this.querySelector(`${prefix}-slug`)?.hasAttribute('revert-active')\n );\n }\n\n if (\n this.autoalign &&\n this.open &&\n (changedProperties.has('open') ||\n (changedProperties.has('autoalign') && this.autoalign) ||\n changedProperties.has('direction') ||\n changedProperties.has('size'))\n ) {\n this._updateAutoAlignPlacement();\n } else if (\n (changedProperties.has('autoalign') && !this.autoalign) ||\n (changedProperties.has('open') && !this.open)\n ) {\n this._floatingController.hostDisconnected();\n this._resetFloatingStyles();\n }\n }\n\n /**\n * Clears Floating UI styles when auto-align is off or the menu closes.\n */\n private _resetFloatingStyles() {\n const menu = this._menuBodyNode;\n if (!menu) {\n return;\n }\n\n menu.style.removeProperty('left');\n menu.style.removeProperty('top');\n menu.style.removeProperty('position');\n menu.style.removeProperty('width');\n menu.style.removeProperty('visibility');\n menu.removeAttribute('align');\n }\n\n /**\n * Runs Floating UI placement while auto-align is active.\n */\n private _updateAutoAlignPlacement() {\n if (!this.autoalign || !this.open) {\n return;\n }\n\n const menu = this._menuBodyNode;\n const trigger = this._triggerButtonNode || this._listBoxNode;\n\n if (!menu || !trigger) {\n return;\n }\n\n const alignment =\n this.direction === DROPDOWN_DIRECTION.TOP\n ? DROPDOWN_DIRECTION.TOP\n : DROPDOWN_DIRECTION.BOTTOM;\n\n this._floatingController.setPlacement({\n alignment,\n matchWidth: true,\n open: this.open,\n target: menu,\n trigger,\n });\n }\n\n /**\n * Normalizes validation props based on disabled and readOnly states\n */\n protected get _normalizedProps() {\n const { disabled, readOnly, invalid, warn } = this;\n return {\n disabled: !readOnly && disabled,\n invalid: !readOnly && !disabled && invalid,\n warn: !readOnly && !invalid && !disabled && warn,\n };\n }\n\n /**\n * The CSS class list for dropdown 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 { size, type, open, autoalign } = this;\n const inline = type === DROPDOWN_TYPE.INLINE;\n const normalizedProps = this._normalizedProps;\n\n const selectedItemsCount = this.querySelectorAll(\n (this.constructor as typeof CDSDropdown).selectorItemSelected\n ).length;\n\n return classMap({\n [`${prefix}--dropdown`]: true,\n [`${prefix}--list-box`]: true,\n [`${prefix}--list-box--disabled`]: normalizedProps.disabled,\n [`${prefix}--list-box--inline`]: inline,\n [`${prefix}--list-box--expanded`]: open,\n [`${prefix}--list-box--${size}`]: size,\n [`${prefix}--dropdown--invalid`]: normalizedProps.invalid,\n [`${prefix}--dropdown--warn`]: normalizedProps.warn,\n [`${prefix}--dropdown--inline`]: inline,\n [`${prefix}--dropdown--selected`]: selectedItemsCount > 0,\n [`${prefix}--list-box__wrapper--decorator`]: this._hasAILabel,\n [`${prefix}--autoalign`]: autoalign,\n });\n }\n\n render() {\n const {\n ariaLabel,\n _classes: classes,\n helperText,\n invalidText,\n open,\n toggleLabelClosed,\n toggleLabelOpen,\n type,\n warnText,\n _activeDescendant: activeDescendant,\n _shouldTriggerBeFocusable: shouldTriggerBeFocusable,\n _handleClickInner: handleClickInner,\n _handleKeydownInner: handleKeydownInner,\n _handleKeypressInner: handleKeypressInner,\n _handleMouseleaveInner: handleMouseleaveInner,\n _handleMouseoverInner: handleMouseoverInner,\n _handleSlotchangeHelperText: handleSlotchangeHelperText,\n _handleAILabelSlotChange: handleAILabelSlotChange,\n _slotHelperTextNode: slotHelperTextNode,\n } = this;\n const inline = type === DROPDOWN_TYPE.INLINE;\n const normalizedProps = this._normalizedProps;\n\n let activeDescendantFallback: string | undefined;\n if (open && !activeDescendant) {\n const constructor = this.constructor as typeof CDSDropdown;\n const items = this.querySelectorAll(constructor.selectorItem);\n activeDescendantFallback = items[0]?.id;\n }\n\n const helperClasses = classMap({\n [`${prefix}--form__helper-text`]: true,\n [`${prefix}--form__helper-text--disabled`]: normalizedProps.disabled,\n });\n const iconContainerClasses = classMap({\n [`${prefix}--list-box__menu-icon`]: true,\n [`${prefix}--list-box__menu-icon--open`]: open,\n });\n const toggleLabel = (open ? toggleLabelOpen : toggleLabelClosed) || '';\n const hasHelperText =\n helperText ||\n invalidText ||\n warnText ||\n (slotHelperTextNode && slotHelperTextNode.assignedNodes().length > 0);\n const validityIcon = !normalizedProps.invalid\n ? undefined\n : iconLoader(WarningFilled16, {\n class: `${prefix}--list-box__invalid-icon`,\n 'aria-label': toggleLabel,\n });\n const warningIcon = !normalizedProps.warn\n ? undefined\n : iconLoader(WarningAltFilled16, {\n class: `${prefix}--list-box__invalid-icon ${prefix}--list-box__invalid-icon--warning`,\n 'aria-label': toggleLabel,\n });\n const helperMessage = normalizedProps.invalid\n ? invalidText\n : normalizedProps.warn\n ? warnText\n : helperText;\n const menuBody = html`\n <div\n aria-labelledby=\"${ifDefined(ariaLabel ? undefined : 'dropdown-label')}\"\n aria-label=\"${ifDefined(ariaLabel ? ariaLabel : undefined)}\"\n id=\"menu-body\"\n part=\"menu-body\"\n class=\"${prefix}--list-box__menu\"\n role=\"listbox\"\n tabindex=\"-1\"\n ?hidden=${!open}\n @mouseover=${handleMouseoverInner}\n @mouseleave=${handleMouseleaveInner}>\n <slot></slot>\n </div>\n `;\n return html`\n ${this._renderTitleLabel()}\n <div\n class=\"${classes}\"\n ?data-invalid=${normalizedProps.invalid}\n @click=${handleClickInner}\n @keydown=${handleKeydownInner}\n @keypress=${handleKeypressInner}>\n ${validityIcon}${warningIcon}\n <div\n id=\"${ifDefined(\n !shouldTriggerBeFocusable ? undefined : 'trigger-button'\n )}\"\n class=\"${prefix}--list-box__field\"\n part=\"trigger-button\"\n tabindex=\"${ifDefined(!shouldTriggerBeFocusable ? undefined : '0')}\"\n role=\"${ifDefined(\n !shouldTriggerBeFocusable ? undefined : 'combobox'\n )}\"\n aria-label=\"${ifDefined(ariaLabel ? ariaLabel : undefined)}\"\n aria-labelledby=\"${ifDefined(\n !shouldTriggerBeFocusable ? undefined : 'dropdown-label'\n )}\"\n aria-expanded=\"${ifDefined(\n !shouldTriggerBeFocusable ? undefined : String(open)\n )}\"\n aria-haspopup=\"${ifDefined(\n !shouldTriggerBeFocusable ? undefined : 'listbox'\n )}\"\n aria-controls=\"${ifDefined(\n !shouldTriggerBeFocusable ? undefined : 'menu-body'\n )}\"\n aria-activedescendant=\"${ifDefined(\n !shouldTriggerBeFocusable\n ? undefined\n : open\n ? (activeDescendant ?? activeDescendantFallback)\n : ''\n )}\">\n ${this._renderPrecedingLabel()}${this._renderLabel()}${this._renderFollowingLabel()}\n <div id=\"trigger-caret\" class=\"${iconContainerClasses}\">\n ${iconLoader(ChevronDown16, { 'aria-label': toggleLabel })}\n </div>\n </div>\n <slot name=\"ai-label\" @slotchange=${handleAILabelSlotChange}></slot>\n <slot name=\"slug\" @slotchange=${handleAILabelSlotChange}></slot>\n ${menuBody}\n </div>\n <div\n part=\"helper-text\"\n class=\"${helperClasses}\"\n ?hidden=\"${(inline && !this.warn && !normalizedProps.invalid) ||\n !hasHelperText}\">\n <slot name=\"helper-text\" @slotchange=\"${handleSlotchangeHelperText}\"\n >${helperMessage}</slot\n >\n </div>\n `;\n }\n\n /**\n * Symbols of keys that triggers opening/closing menu and selecting/deselecting menu item.\n */\n static TRIGGER_KEYS = new Set([' ', 'Enter']);\n\n /**\n * A selector that will return highlighted items.\n */\n static get selectorItemHighlighted() {\n return `${prefix}-dropdown-item[highlighted]`;\n }\n\n /**\n * A selector that will return dropdown items.\n */\n static get selectorItem() {\n return `${prefix}-dropdown-item`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-dropdown-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before a dropdown 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}-dropdown-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a dropdown item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-dropdown-selected`;\n }\n\n /**\n * The name of the custom event fired before this dropdown item is being toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated action of toggling this dropdown item.\n */\n static get eventBeforeToggle() {\n return `${prefix}-dropdown-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after this dropdown item is toggled upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-dropdown-toggled`;\n }\n\n /**\n * A selector that will return the slug item.\n *\n * remove in v12\n */\n static get slugItem() {\n return `${prefix}-slug`;\n }\n\n /**\n * A selector that will return the AI Label item.\n */\n static get aiLabelItem() {\n return `${prefix}-ai-label`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n static styles = styles;\n\n /**\n * @returns A action for dropdown for the given key symbol.\n */\n static getAction(key: string) {\n if (key === 'Escape') {\n return DROPDOWN_KEYBOARD_ACTION.CLOSING;\n }\n if (key in NAVIGATION_DIRECTION) {\n return DROPDOWN_KEYBOARD_ACTION.NAVIGATING;\n }\n if (this.TRIGGER_KEYS.has(key)) {\n return DROPDOWN_KEYBOARD_ACTION.TRIGGERING;\n }\n return DROPDOWN_KEYBOARD_ACTION.NONE;\n }\n}\n\nexport default CDSDropdown;\n"],"names":["FloatingUIController","customElement"],"mappings":"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"}
@@ -15,6 +15,7 @@ declare const CDSFileUploaderButton_base: {
15
15
  accessKey: string;
16
16
  readonly accessKeyLabel: string;
17
17
  autocapitalize: string;
18
+ autocorrect: boolean;
18
19
  dir: string;
19
20
  draggable: boolean;
20
21
  hidden: boolean;
@@ -36,13 +37,14 @@ declare const CDSFileUploaderButton_base: {
36
37
  click(): void;
37
38
  hidePopover(): void;
38
39
  showPopover(): void;
39
- togglePopover(force?: boolean): boolean;
40
+ togglePopover(options?: boolean): boolean;
40
41
  addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
41
42
  addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
42
43
  removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
43
44
  removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
44
45
  readonly attributes: NamedNodeMap;
45
- readonly classList: DOMTokenList;
46
+ get classList(): DOMTokenList;
47
+ set classList(value: string);
46
48
  className: string;
47
49
  readonly clientHeight: number;
48
50
  readonly clientLeft: number;
@@ -57,7 +59,8 @@ declare const CDSFileUploaderButton_base: {
57
59
  onfullscreenerror: ((this: Element, ev: Event) => any) | null;
58
60
  outerHTML: string;
59
61
  readonly ownerDocument: Document;
60
- readonly part: DOMTokenList;
62
+ get part(): DOMTokenList;
63
+ set part(value: string);
61
64
  readonly prefix: string | null;
62
65
  readonly scrollHeight: number;
63
66
  scrollLeft: number;
@@ -120,6 +123,8 @@ declare const CDSFileUploaderButton_base: {
120
123
  setPointerCapture(pointerId: number): void;
121
124
  toggleAttribute(qualifiedName: string, force?: boolean): boolean;
122
125
  webkitMatchesSelector(selectors: string): boolean;
126
+ get textContent(): string;
127
+ set textContent(value: string | null);
123
128
  readonly baseURI: string;
124
129
  readonly childNodes: NodeListOf<ChildNode>;
125
130
  readonly firstChild: ChildNode | null;
@@ -132,9 +137,8 @@ declare const CDSFileUploaderButton_base: {
132
137
  readonly parentElement: HTMLElement | null;
133
138
  readonly parentNode: ParentNode | null;
134
139
  readonly previousSibling: ChildNode | null;
135
- textContent: string | null;
136
140
  appendChild<T extends Node>(node: T): T;
137
- cloneNode(deep?: boolean): Node;
141
+ cloneNode(subtree?: boolean): Node;
138
142
  compareDocumentPosition(other: Node): number;
139
143
  contains(other: Node | null): boolean;
140
144
  getRootNode(options?: GetRootNodeOptions): Node;
@@ -167,6 +171,7 @@ declare const CDSFileUploaderButton_base: {
167
171
  readonly DOCUMENT_POSITION_CONTAINED_BY: 16;
168
172
  readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32;
169
173
  dispatchEvent(event: Event): boolean;
174
+ ariaActiveDescendantElement: Element | null;
170
175
  ariaAtomic: string | null;
171
176
  ariaAutoComplete: string | null;
172
177
  ariaBrailleLabel: string | null;
@@ -177,25 +182,33 @@ declare const CDSFileUploaderButton_base: {
177
182
  ariaColIndex: string | null;
178
183
  ariaColIndexText: string | null;
179
184
  ariaColSpan: string | null;
185
+ ariaControlsElements: ReadonlyArray<Element> | null;
180
186
  ariaCurrent: string | null;
187
+ ariaDescribedByElements: ReadonlyArray<Element> | null;
181
188
  ariaDescription: string | null;
189
+ ariaDetailsElements: ReadonlyArray<Element> | null;
182
190
  ariaDisabled: string | null;
191
+ ariaErrorMessageElements: ReadonlyArray<Element> | null;
183
192
  ariaExpanded: string | null;
193
+ ariaFlowToElements: ReadonlyArray<Element> | null;
184
194
  ariaHasPopup: string | null;
185
195
  ariaHidden: string | null;
186
196
  ariaInvalid: string | null;
187
197
  ariaKeyShortcuts: string | null;
188
198
  ariaLabel: string | null;
199
+ ariaLabelledByElements: ReadonlyArray<Element> | null;
189
200
  ariaLevel: string | null;
190
201
  ariaLive: string | null;
191
202
  ariaModal: string | null;
192
203
  ariaMultiLine: string | null;
193
204
  ariaMultiSelectable: string | null;
194
205
  ariaOrientation: string | null;
206
+ ariaOwnsElements: ReadonlyArray<Element> | null;
195
207
  ariaPlaceholder: string | null;
196
208
  ariaPosInSet: string | null;
197
209
  ariaPressed: string | null;
198
210
  ariaReadOnly: string | null;
211
+ ariaRelevant: string | null;
199
212
  ariaRequired: string | null;
200
213
  ariaRoleDescription: string | null;
201
214
  ariaRowCount: string | null;
@@ -237,7 +250,8 @@ declare const CDSFileUploaderButton_base: {
237
250
  replaceChildren(...nodes: (Node | string)[]): void;
238
251
  readonly assignedSlot: HTMLSlotElement | null;
239
252
  readonly attributeStyleMap: StylePropertyMap;
240
- readonly style: CSSStyleDeclaration;
253
+ get style(): CSSStyleDeclaration;
254
+ set style(cssText: string);
241
255
  contentEditable: string;
242
256
  enterKeyHint: string;
243
257
  inputMode: string;
@@ -247,18 +261,19 @@ declare const CDSFileUploaderButton_base: {
247
261
  onanimationend: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
248
262
  onanimationiteration: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
249
263
  onanimationstart: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
250
- onauxclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
264
+ onauxclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
251
265
  onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null;
252
- onbeforetoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null;
266
+ onbeforematch: ((this: GlobalEventHandlers, ev: Event) => any) | null;
267
+ onbeforetoggle: ((this: GlobalEventHandlers, ev: ToggleEvent) => any) | null;
253
268
  onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
254
269
  oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null;
255
270
  oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
256
271
  oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null;
257
272
  onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
258
- onclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
273
+ onclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
259
274
  onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null;
260
275
  oncontextlost: ((this: GlobalEventHandlers, ev: Event) => any) | null;
261
- oncontextmenu: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
276
+ oncontextmenu: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
262
277
  oncontextrestored: ((this: GlobalEventHandlers, ev: Event) => any) | null;
263
278
  oncopy: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
264
279
  oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
@@ -306,6 +321,7 @@ declare const CDSFileUploaderButton_base: {
306
321
  onpointermove: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
307
322
  onpointerout: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
308
323
  onpointerover: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
324
+ onpointerrawupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;
309
325
  onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
310
326
  onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null;
311
327
  onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
@@ -324,7 +340,7 @@ declare const CDSFileUploaderButton_base: {
324
340
  onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null;
325
341
  onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
326
342
  ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;
327
- ontoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null;
343
+ ontoggle: ((this: GlobalEventHandlers, ev: ToggleEvent) => any) | null;
328
344
  ontouchcancel?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
329
345
  ontouchend?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
330
346
  ontouchmove?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;