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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (537) hide show
  1. package/custom-elements.json +186 -40
  2. package/es/components/accordion/accordion.scss.js +1 -1
  3. package/es/components/ai-label/ai-label.scss.js +1 -1
  4. package/es/components/ai-label/ai-label.scss.js.map +1 -1
  5. package/es/components/breadcrumb/breadcrumb.scss.js +1 -1
  6. package/es/components/button/button.d.ts +2 -2
  7. package/es/components/button/button.d.ts.map +1 -1
  8. package/es/components/button/button.js +2 -2
  9. package/es/components/button/button.js.map +1 -1
  10. package/es/components/button/button.scss.js +1 -1
  11. package/es/components/button/button.scss.js.map +1 -1
  12. package/es/components/chat-button/chat-button.scss.js +1 -1
  13. package/es/components/chat-button/chat-button.scss.js.map +1 -1
  14. package/es/components/checkbox/checkbox-group.d.ts +1 -1
  15. package/es/components/checkbox/checkbox.d.ts +1 -1
  16. package/es/components/checkbox/checkbox.scss.js +1 -1
  17. package/es/components/code-snippet/code-snippet.d.ts +1 -1
  18. package/es/components/code-snippet/code-snippet.scss.js +1 -1
  19. package/es/components/combo-box/combo-box.scss.js +1 -1
  20. package/es/components/combo-box/combo-box.scss.js.map +1 -1
  21. package/es/components/combo-button/combo-button.scss.js +1 -1
  22. package/es/components/contained-list/contained-list.scss.js +1 -1
  23. package/es/components/contained-list/contained-list.scss.js.map +1 -1
  24. package/es/components/content-switcher/content-switcher-item.d.ts +1 -1
  25. package/es/components/content-switcher/content-switcher.scss.js +1 -1
  26. package/es/components/copy-button/copy-button.scss.js +1 -1
  27. package/es/components/copy-button/copy-button.scss.js.map +1 -1
  28. package/es/components/data-table/data-table.scss.js +1 -1
  29. package/es/components/data-table/table-header-cell.d.ts +1 -1
  30. package/es/components/data-table/table-toolbar-search.d.ts +1 -1
  31. package/es/components/date-picker/date-picker-input.d.ts +1 -1
  32. package/es/components/date-picker/date-picker.scss.js +1 -1
  33. package/es/components/dialog/dialog.scss.js +1 -1
  34. package/es/components/dropdown/dropdown.d.ts +1 -1
  35. package/es/components/dropdown/dropdown.scss.js +1 -1
  36. package/es/components/file-uploader/file-uploader-button.d.ts +1 -0
  37. package/es/components/file-uploader/file-uploader-button.d.ts.map +1 -1
  38. package/es/components/file-uploader/file-uploader-button.js +10 -11
  39. package/es/components/file-uploader/file-uploader-button.js.map +1 -1
  40. package/es/components/file-uploader/file-uploader-drop-container.d.ts +1 -0
  41. package/es/components/file-uploader/file-uploader-drop-container.d.ts.map +1 -1
  42. package/es/components/file-uploader/file-uploader-drop-container.js +6 -5
  43. package/es/components/file-uploader/file-uploader-drop-container.js.map +1 -1
  44. package/es/components/file-uploader/file-uploader.scss.js +1 -1
  45. package/es/components/file-uploader/file-uploader.scss.js.map +1 -1
  46. package/es/components/floating-menu/floating-menu.d.ts +1 -1
  47. package/es/components/floating-menu/floating-menu.js +1 -1
  48. package/es/components/floating-menu/floating-menu.js.map +1 -1
  49. package/es/components/fluid-combo-box/fluid-combo-box.scss.js +1 -1
  50. package/es/components/fluid-combo-box/fluid-combo-box.scss.js.map +1 -1
  51. package/es/components/fluid-dropdown/fluid-dropdown.scss.js +1 -1
  52. package/es/components/fluid-dropdown/fluid-dropdown.scss.js.map +1 -1
  53. package/es/components/fluid-multi-select/fluid-multi-select.scss.js +1 -1
  54. package/es/components/fluid-multi-select/fluid-multi-select.scss.js.map +1 -1
  55. package/es/components/fluid-number-input/fluid-number-input.scss.js +1 -1
  56. package/es/components/fluid-number-input/fluid-number-input.scss.js.map +1 -1
  57. package/es/components/fluid-password-input/fluid-password-input.scss.js +1 -1
  58. package/es/components/fluid-password-input/fluid-password-input.scss.js.map +1 -1
  59. package/es/components/fluid-search/fluid-search.scss.js +1 -1
  60. package/es/components/fluid-search/fluid-search.scss.js.map +1 -1
  61. package/es/components/fluid-select/fluid-select.scss.js +1 -1
  62. package/es/components/fluid-select/fluid-select.scss.js.map +1 -1
  63. package/es/components/fluid-text-input/fluid-text-input.scss.js +1 -1
  64. package/es/components/fluid-text-input/fluid-text-input.scss.js.map +1 -1
  65. package/es/components/fluid-textarea/fluid-textarea.scss.js +1 -1
  66. package/es/components/fluid-textarea/fluid-textarea.scss.js.map +1 -1
  67. package/es/components/fluid-time-picker/fluid-time-picker.scss.js +1 -1
  68. package/es/components/fluid-time-picker/fluid-time-picker.scss.js.map +1 -1
  69. package/es/components/icon-button/icon-button.d.ts +1 -1
  70. package/es/components/icon-button/icon-button.d.ts.map +1 -1
  71. package/es/components/icon-button/icon-button.js.map +1 -1
  72. package/es/components/icon-button/icon-button.scss.js +1 -1
  73. package/es/components/icon-button/icon-button.scss.js.map +1 -1
  74. package/es/components/icon-indicator/icon-indicator.d.ts +20 -1
  75. package/es/components/icon-indicator/icon-indicator.d.ts.map +1 -1
  76. package/es/components/icon-indicator/icon-indicator.js +30 -2
  77. package/es/components/icon-indicator/icon-indicator.js.map +1 -1
  78. package/es/components/icon-indicator/icon-indicator.scss.js +1 -1
  79. package/es/components/icon-indicator/icon-indicator.scss.js.map +1 -1
  80. package/es/components/layout/layout.scss.js +1 -1
  81. package/es/components/layout/layout.scss.js.map +1 -1
  82. package/es/components/link/link.d.ts +1 -1
  83. package/es/components/menu/menu-item-selectable.d.ts +1 -1
  84. package/es/components/menu/menu-item.scss.js +1 -1
  85. package/es/components/menu/menu-item.scss.js.map +1 -1
  86. package/es/components/menu/menu.scss.js +1 -1
  87. package/es/components/menu-button/menu-button.scss.js +1 -1
  88. package/es/components/modal/modal-close-button.d.ts +1 -1
  89. package/es/components/modal/modal.scss.js +1 -1
  90. package/es/components/multi-select/multi-select.scss.js +1 -1
  91. package/es/components/notification/actionable-notification.d.ts.map +1 -1
  92. package/es/components/notification/actionable-notification.js +5 -2
  93. package/es/components/notification/actionable-notification.js.map +1 -1
  94. package/es/components/notification/actionable-notification.scss.js +1 -1
  95. package/es/components/notification/actionable-notification.scss.js.map +1 -1
  96. package/es/components/notification/inline-notification.scss.js +1 -1
  97. package/es/components/notification/inline-notification.scss.js.map +1 -1
  98. package/es/components/notification/toast-notification.scss.js +1 -1
  99. package/es/components/notification/toast-notification.scss.js.map +1 -1
  100. package/es/components/number-input/number-input.d.ts +1 -1
  101. package/es/components/number-input/number-input.scss.js +1 -1
  102. package/es/components/overflow-menu/overflow-menu-body.d.ts +1 -1
  103. package/es/components/overflow-menu/overflow-menu-body.d.ts.map +1 -1
  104. package/es/components/overflow-menu/overflow-menu-body.js +2 -2
  105. package/es/components/overflow-menu/overflow-menu-body.js.map +1 -1
  106. package/es/components/overflow-menu/overflow-menu-item.d.ts +1 -1
  107. package/es/components/overflow-menu/overflow-menu.d.ts +8 -1
  108. package/es/components/overflow-menu/overflow-menu.d.ts.map +1 -1
  109. package/es/components/overflow-menu/overflow-menu.js +47 -3
  110. package/es/components/overflow-menu/overflow-menu.js.map +1 -1
  111. package/es/components/overflow-menu/overflow-menu.scss.js +1 -1
  112. package/es/components/overflow-menu/overflow-menu.scss.js.map +1 -1
  113. package/es/components/pagination/pagination.d.ts +1 -1
  114. package/es/components/pagination/pagination.scss.js +1 -1
  115. package/es/components/pagination/pagination.scss.js.map +1 -1
  116. package/es/components/pagination-nav/pagination-nav.scss.js +1 -1
  117. package/es/components/pagination-nav/pagination-nav.scss.js.map +1 -1
  118. package/es/components/password-input/password-input.d.ts +1 -1
  119. package/es/components/password-input/password-input.scss.js +1 -1
  120. package/es/components/password-input/password-input.scss.js.map +1 -1
  121. package/es/components/popover/popover.scss.js +1 -1
  122. package/es/components/popover/popover.scss.js.map +1 -1
  123. package/es/components/progress-bar/progress-bar.scss.js +1 -1
  124. package/es/components/progress-indicator/progress-indicator.scss.js +1 -1
  125. package/es/components/progress-indicator/progress-step.d.ts +1 -1
  126. package/es/components/radio-button/radio-button.d.ts +1 -1
  127. package/es/components/radio-button/radio-button.scss.js +1 -1
  128. package/es/components/search/search.d.ts +9 -1
  129. package/es/components/search/search.d.ts.map +1 -1
  130. package/es/components/search/search.js +7 -6
  131. package/es/components/search/search.js.map +1 -1
  132. package/es/components/search/search.scss.js +1 -1
  133. package/es/components/select/select.d.ts +1 -1
  134. package/es/components/select/select.scss.js +1 -1
  135. package/es/components/select/select.scss.js.map +1 -1
  136. package/es/components/shape-indicator/shape-indicator.d.ts +20 -1
  137. package/es/components/shape-indicator/shape-indicator.d.ts.map +1 -1
  138. package/es/components/shape-indicator/shape-indicator.js +32 -4
  139. package/es/components/shape-indicator/shape-indicator.js.map +1 -1
  140. package/es/components/shape-indicator/shape-indicator.scss.js +1 -1
  141. package/es/components/shape-indicator/shape-indicator.scss.js.map +1 -1
  142. package/es/components/skip-to-content/skip-to-content.d.ts +1 -1
  143. package/es/components/skip-to-content/skip-to-content.scss.js +1 -1
  144. package/es/components/slider/slider-input.d.ts +2 -1
  145. package/es/components/slider/slider-input.d.ts.map +1 -1
  146. package/es/components/slider/slider-input.js +2 -1
  147. package/es/components/slider/slider-input.js.map +1 -1
  148. package/es/components/slider/slider.d.ts +2 -1
  149. package/es/components/slider/slider.d.ts.map +1 -1
  150. package/es/components/slider/slider.js +5 -5
  151. package/es/components/slider/slider.js.map +1 -1
  152. package/es/components/slider/slider.scss.js +1 -1
  153. package/es/components/slider/slider.scss.js.map +1 -1
  154. package/es/components/slug/slug.scss.js +1 -1
  155. package/es/components/slug/slug.scss.js.map +1 -1
  156. package/es/components/structured-list/structured-list.d.ts +1 -1
  157. package/es/components/structured-list/structured-list.scss.js +1 -1
  158. package/es/components/tabs/tabs-vertical.d.ts +4 -0
  159. package/es/components/tabs/tabs-vertical.d.ts.map +1 -1
  160. package/es/components/tabs/tabs-vertical.js +3 -2
  161. package/es/components/tabs/tabs-vertical.js.map +1 -1
  162. package/es/components/tabs/tabs.scss.js +1 -1
  163. package/es/components/tabs/tabs.scss.js.map +1 -1
  164. package/es/components/tag/operational-tag.d.ts +1 -1
  165. package/es/components/tag/operational-tag.d.ts.map +1 -1
  166. package/es/components/tag/operational-tag.js +3 -3
  167. package/es/components/tag/operational-tag.js.map +1 -1
  168. package/es/components/tag/selectable-tag.d.ts +1 -1
  169. package/es/components/tag/selectable-tag.d.ts.map +1 -1
  170. package/es/components/tag/selectable-tag.js +3 -3
  171. package/es/components/tag/selectable-tag.js.map +1 -1
  172. package/es/components/tag/tag.d.ts +1 -0
  173. package/es/components/tag/tag.d.ts.map +1 -1
  174. package/es/components/tag/tag.js +3 -3
  175. package/es/components/tag/tag.js.map +1 -1
  176. package/es/components/tag/tag.scss.js +1 -1
  177. package/es/components/text-input/text-input.d.ts +1 -1
  178. package/es/components/text-input/text-input.scss.js +1 -1
  179. package/es/components/text-input/text-input.scss.js.map +1 -1
  180. package/es/components/textarea/textarea.d.ts +1 -1
  181. package/es/components/textarea/textarea.scss.js +1 -1
  182. package/es/components/textarea/textarea.scss.js.map +1 -1
  183. package/es/components/tile/selectable-tile.d.ts +1 -1
  184. package/es/components/tile/tile.scss.js +1 -1
  185. package/es/components/tile/tile.scss.js.map +1 -1
  186. package/es/components/time-picker/time-picker-select.d.ts +1 -1
  187. package/es/components/time-picker/time-picker.d.ts +1 -1
  188. package/es/components/time-picker/time-picker.scss.js +1 -1
  189. package/es/components/time-picker/time-picker.scss.js.map +1 -1
  190. package/es/components/toggle-tip/toggletip.d.ts +13 -1
  191. package/es/components/toggle-tip/toggletip.d.ts.map +1 -1
  192. package/es/components/toggle-tip/toggletip.js +10 -14
  193. package/es/components/toggle-tip/toggletip.js.map +1 -1
  194. package/es/components/toggle-tip/toggletip.scss.js +1 -1
  195. package/es/components/tooltip/definition-tooltip.d.ts +4 -2
  196. package/es/components/tooltip/definition-tooltip.d.ts.map +1 -1
  197. package/es/components/tooltip/definition-tooltip.js +23 -12
  198. package/es/components/tooltip/definition-tooltip.js.map +1 -1
  199. package/es/components/tooltip/tooltip.scss.js +1 -1
  200. package/es/components/tooltip/tooltip.scss.js.map +1 -1
  201. package/es/components/ui-shell/header-global-action.d.ts +1 -1
  202. package/es/components/ui-shell/header-menu-button.d.ts +1 -1
  203. package/es/components/ui-shell/header-menu.d.ts +1 -1
  204. package/es/components/ui-shell/header-name.d.ts +1 -1
  205. package/es/components/ui-shell/header-nav-item.d.ts +1 -1
  206. package/es/components/ui-shell/header-panel.d.ts +1 -1
  207. package/es/components/ui-shell/header.scss.js +1 -1
  208. package/es/components/ui-shell/side-nav-link.d.ts +1 -1
  209. package/es/components/ui-shell/side-nav-menu-item.d.ts +1 -1
  210. package/es/components/ui-shell/side-nav-menu.d.ts +1 -1
  211. package/es/components/ui-shell/switcher-item.d.ts +1 -1
  212. package/es/components/ui-shell/switcher.d.ts +1 -1
  213. package/es-custom/components/accordion/accordion.scss.js +1 -1
  214. package/es-custom/components/ai-label/ai-label.scss.js +1 -1
  215. package/es-custom/components/ai-label/ai-label.scss.js.map +1 -1
  216. package/es-custom/components/breadcrumb/breadcrumb.scss.js +1 -1
  217. package/es-custom/components/button/button.d.ts +2 -2
  218. package/es-custom/components/button/button.d.ts.map +1 -1
  219. package/es-custom/components/button/button.js +2 -2
  220. package/es-custom/components/button/button.js.map +1 -1
  221. package/es-custom/components/button/button.scss.js +1 -1
  222. package/es-custom/components/button/button.scss.js.map +1 -1
  223. package/es-custom/components/chat-button/chat-button.scss.js +1 -1
  224. package/es-custom/components/chat-button/chat-button.scss.js.map +1 -1
  225. package/es-custom/components/checkbox/checkbox-group.d.ts +1 -1
  226. package/es-custom/components/checkbox/checkbox.d.ts +1 -1
  227. package/es-custom/components/checkbox/checkbox.scss.js +1 -1
  228. package/es-custom/components/code-snippet/code-snippet.d.ts +1 -1
  229. package/es-custom/components/code-snippet/code-snippet.scss.js +1 -1
  230. package/es-custom/components/combo-box/combo-box.scss.js +1 -1
  231. package/es-custom/components/combo-box/combo-box.scss.js.map +1 -1
  232. package/es-custom/components/combo-button/combo-button.scss.js +1 -1
  233. package/es-custom/components/contained-list/contained-list.scss.js +1 -1
  234. package/es-custom/components/contained-list/contained-list.scss.js.map +1 -1
  235. package/es-custom/components/content-switcher/content-switcher-item.d.ts +1 -1
  236. package/es-custom/components/content-switcher/content-switcher.scss.js +1 -1
  237. package/es-custom/components/copy-button/copy-button.scss.js +1 -1
  238. package/es-custom/components/copy-button/copy-button.scss.js.map +1 -1
  239. package/es-custom/components/data-table/data-table.scss.js +1 -1
  240. package/es-custom/components/data-table/table-header-cell.d.ts +1 -1
  241. package/es-custom/components/data-table/table-toolbar-search.d.ts +1 -1
  242. package/es-custom/components/date-picker/date-picker-input.d.ts +1 -1
  243. package/es-custom/components/date-picker/date-picker.scss.js +1 -1
  244. package/es-custom/components/dialog/dialog.scss.js +1 -1
  245. package/es-custom/components/dropdown/dropdown.d.ts +1 -1
  246. package/es-custom/components/dropdown/dropdown.scss.js +1 -1
  247. package/es-custom/components/file-uploader/file-uploader-button.d.ts +1 -0
  248. package/es-custom/components/file-uploader/file-uploader-button.d.ts.map +1 -1
  249. package/es-custom/components/file-uploader/file-uploader-button.js +10 -11
  250. package/es-custom/components/file-uploader/file-uploader-button.js.map +1 -1
  251. package/es-custom/components/file-uploader/file-uploader-drop-container.d.ts +1 -0
  252. package/es-custom/components/file-uploader/file-uploader-drop-container.d.ts.map +1 -1
  253. package/es-custom/components/file-uploader/file-uploader-drop-container.js +6 -5
  254. package/es-custom/components/file-uploader/file-uploader-drop-container.js.map +1 -1
  255. package/es-custom/components/file-uploader/file-uploader.scss.js +1 -1
  256. package/es-custom/components/file-uploader/file-uploader.scss.js.map +1 -1
  257. package/es-custom/components/floating-menu/floating-menu.d.ts +1 -1
  258. package/es-custom/components/floating-menu/floating-menu.js +1 -1
  259. package/es-custom/components/floating-menu/floating-menu.js.map +1 -1
  260. package/es-custom/components/fluid-combo-box/fluid-combo-box.scss.js +1 -1
  261. package/es-custom/components/fluid-combo-box/fluid-combo-box.scss.js.map +1 -1
  262. package/es-custom/components/fluid-dropdown/fluid-dropdown.scss.js +1 -1
  263. package/es-custom/components/fluid-dropdown/fluid-dropdown.scss.js.map +1 -1
  264. package/es-custom/components/fluid-multi-select/fluid-multi-select.scss.js +1 -1
  265. package/es-custom/components/fluid-multi-select/fluid-multi-select.scss.js.map +1 -1
  266. package/es-custom/components/fluid-number-input/fluid-number-input.scss.js +1 -1
  267. package/es-custom/components/fluid-number-input/fluid-number-input.scss.js.map +1 -1
  268. package/es-custom/components/fluid-password-input/fluid-password-input.scss.js +1 -1
  269. package/es-custom/components/fluid-password-input/fluid-password-input.scss.js.map +1 -1
  270. package/es-custom/components/fluid-search/fluid-search.scss.js +1 -1
  271. package/es-custom/components/fluid-search/fluid-search.scss.js.map +1 -1
  272. package/es-custom/components/fluid-select/fluid-select.scss.js +1 -1
  273. package/es-custom/components/fluid-select/fluid-select.scss.js.map +1 -1
  274. package/es-custom/components/fluid-text-input/fluid-text-input.scss.js +1 -1
  275. package/es-custom/components/fluid-text-input/fluid-text-input.scss.js.map +1 -1
  276. package/es-custom/components/fluid-textarea/fluid-textarea.scss.js +1 -1
  277. package/es-custom/components/fluid-textarea/fluid-textarea.scss.js.map +1 -1
  278. package/es-custom/components/fluid-time-picker/fluid-time-picker.scss.js +1 -1
  279. package/es-custom/components/fluid-time-picker/fluid-time-picker.scss.js.map +1 -1
  280. package/es-custom/components/icon-button/icon-button.d.ts +1 -1
  281. package/es-custom/components/icon-button/icon-button.d.ts.map +1 -1
  282. package/es-custom/components/icon-button/icon-button.js.map +1 -1
  283. package/es-custom/components/icon-button/icon-button.scss.js +1 -1
  284. package/es-custom/components/icon-button/icon-button.scss.js.map +1 -1
  285. package/es-custom/components/icon-indicator/icon-indicator.d.ts +20 -1
  286. package/es-custom/components/icon-indicator/icon-indicator.d.ts.map +1 -1
  287. package/es-custom/components/icon-indicator/icon-indicator.js +30 -2
  288. package/es-custom/components/icon-indicator/icon-indicator.js.map +1 -1
  289. package/es-custom/components/icon-indicator/icon-indicator.scss.js +1 -1
  290. package/es-custom/components/icon-indicator/icon-indicator.scss.js.map +1 -1
  291. package/es-custom/components/layout/layout.scss.js +1 -1
  292. package/es-custom/components/layout/layout.scss.js.map +1 -1
  293. package/es-custom/components/link/link.d.ts +1 -1
  294. package/es-custom/components/menu/menu-item-selectable.d.ts +1 -1
  295. package/es-custom/components/menu/menu-item.scss.js +1 -1
  296. package/es-custom/components/menu/menu-item.scss.js.map +1 -1
  297. package/es-custom/components/menu/menu.scss.js +1 -1
  298. package/es-custom/components/menu-button/menu-button.scss.js +1 -1
  299. package/es-custom/components/modal/modal-close-button.d.ts +1 -1
  300. package/es-custom/components/modal/modal.scss.js +1 -1
  301. package/es-custom/components/multi-select/multi-select.scss.js +1 -1
  302. package/es-custom/components/notification/actionable-notification.d.ts.map +1 -1
  303. package/es-custom/components/notification/actionable-notification.js +5 -2
  304. package/es-custom/components/notification/actionable-notification.js.map +1 -1
  305. package/es-custom/components/notification/actionable-notification.scss.js +1 -1
  306. package/es-custom/components/notification/actionable-notification.scss.js.map +1 -1
  307. package/es-custom/components/notification/inline-notification.scss.js +1 -1
  308. package/es-custom/components/notification/inline-notification.scss.js.map +1 -1
  309. package/es-custom/components/notification/toast-notification.scss.js +1 -1
  310. package/es-custom/components/notification/toast-notification.scss.js.map +1 -1
  311. package/es-custom/components/number-input/number-input.d.ts +1 -1
  312. package/es-custom/components/number-input/number-input.scss.js +1 -1
  313. package/es-custom/components/overflow-menu/overflow-menu-body.d.ts +1 -1
  314. package/es-custom/components/overflow-menu/overflow-menu-body.d.ts.map +1 -1
  315. package/es-custom/components/overflow-menu/overflow-menu-body.js +2 -2
  316. package/es-custom/components/overflow-menu/overflow-menu-body.js.map +1 -1
  317. package/es-custom/components/overflow-menu/overflow-menu-item.d.ts +1 -1
  318. package/es-custom/components/overflow-menu/overflow-menu.d.ts +8 -1
  319. package/es-custom/components/overflow-menu/overflow-menu.d.ts.map +1 -1
  320. package/es-custom/components/overflow-menu/overflow-menu.js +47 -3
  321. package/es-custom/components/overflow-menu/overflow-menu.js.map +1 -1
  322. package/es-custom/components/overflow-menu/overflow-menu.scss.js +1 -1
  323. package/es-custom/components/overflow-menu/overflow-menu.scss.js.map +1 -1
  324. package/es-custom/components/pagination/pagination.d.ts +1 -1
  325. package/es-custom/components/pagination/pagination.scss.js +1 -1
  326. package/es-custom/components/pagination/pagination.scss.js.map +1 -1
  327. package/es-custom/components/pagination-nav/pagination-nav.scss.js +1 -1
  328. package/es-custom/components/pagination-nav/pagination-nav.scss.js.map +1 -1
  329. package/es-custom/components/password-input/password-input.d.ts +1 -1
  330. package/es-custom/components/password-input/password-input.scss.js +1 -1
  331. package/es-custom/components/password-input/password-input.scss.js.map +1 -1
  332. package/es-custom/components/popover/popover.scss.js +1 -1
  333. package/es-custom/components/popover/popover.scss.js.map +1 -1
  334. package/es-custom/components/progress-bar/progress-bar.scss.js +1 -1
  335. package/es-custom/components/progress-indicator/progress-indicator.scss.js +1 -1
  336. package/es-custom/components/progress-indicator/progress-step.d.ts +1 -1
  337. package/es-custom/components/radio-button/radio-button.d.ts +1 -1
  338. package/es-custom/components/radio-button/radio-button.scss.js +1 -1
  339. package/es-custom/components/search/search.d.ts +9 -1
  340. package/es-custom/components/search/search.d.ts.map +1 -1
  341. package/es-custom/components/search/search.js +7 -6
  342. package/es-custom/components/search/search.js.map +1 -1
  343. package/es-custom/components/search/search.scss.js +1 -1
  344. package/es-custom/components/select/select.d.ts +1 -1
  345. package/es-custom/components/select/select.scss.js +1 -1
  346. package/es-custom/components/select/select.scss.js.map +1 -1
  347. package/es-custom/components/shape-indicator/shape-indicator.d.ts +20 -1
  348. package/es-custom/components/shape-indicator/shape-indicator.d.ts.map +1 -1
  349. package/es-custom/components/shape-indicator/shape-indicator.js +32 -4
  350. package/es-custom/components/shape-indicator/shape-indicator.js.map +1 -1
  351. package/es-custom/components/shape-indicator/shape-indicator.scss.js +1 -1
  352. package/es-custom/components/shape-indicator/shape-indicator.scss.js.map +1 -1
  353. package/es-custom/components/skip-to-content/skip-to-content.d.ts +1 -1
  354. package/es-custom/components/skip-to-content/skip-to-content.scss.js +1 -1
  355. package/es-custom/components/slider/slider-input.d.ts +2 -1
  356. package/es-custom/components/slider/slider-input.d.ts.map +1 -1
  357. package/es-custom/components/slider/slider-input.js +2 -1
  358. package/es-custom/components/slider/slider-input.js.map +1 -1
  359. package/es-custom/components/slider/slider.d.ts +2 -1
  360. package/es-custom/components/slider/slider.d.ts.map +1 -1
  361. package/es-custom/components/slider/slider.js +5 -5
  362. package/es-custom/components/slider/slider.js.map +1 -1
  363. package/es-custom/components/slider/slider.scss.js +1 -1
  364. package/es-custom/components/slider/slider.scss.js.map +1 -1
  365. package/es-custom/components/slug/slug.scss.js +1 -1
  366. package/es-custom/components/slug/slug.scss.js.map +1 -1
  367. package/es-custom/components/structured-list/structured-list.d.ts +1 -1
  368. package/es-custom/components/structured-list/structured-list.scss.js +1 -1
  369. package/es-custom/components/tabs/tabs-vertical.d.ts +4 -0
  370. package/es-custom/components/tabs/tabs-vertical.d.ts.map +1 -1
  371. package/es-custom/components/tabs/tabs-vertical.js +3 -2
  372. package/es-custom/components/tabs/tabs-vertical.js.map +1 -1
  373. package/es-custom/components/tabs/tabs.scss.js +1 -1
  374. package/es-custom/components/tabs/tabs.scss.js.map +1 -1
  375. package/es-custom/components/tag/operational-tag.d.ts +1 -1
  376. package/es-custom/components/tag/operational-tag.d.ts.map +1 -1
  377. package/es-custom/components/tag/operational-tag.js +3 -3
  378. package/es-custom/components/tag/operational-tag.js.map +1 -1
  379. package/es-custom/components/tag/selectable-tag.d.ts +1 -1
  380. package/es-custom/components/tag/selectable-tag.d.ts.map +1 -1
  381. package/es-custom/components/tag/selectable-tag.js +3 -3
  382. package/es-custom/components/tag/selectable-tag.js.map +1 -1
  383. package/es-custom/components/tag/tag.d.ts +1 -0
  384. package/es-custom/components/tag/tag.d.ts.map +1 -1
  385. package/es-custom/components/tag/tag.js +3 -3
  386. package/es-custom/components/tag/tag.js.map +1 -1
  387. package/es-custom/components/tag/tag.scss.js +1 -1
  388. package/es-custom/components/text-input/text-input.d.ts +1 -1
  389. package/es-custom/components/text-input/text-input.scss.js +1 -1
  390. package/es-custom/components/text-input/text-input.scss.js.map +1 -1
  391. package/es-custom/components/textarea/textarea.d.ts +1 -1
  392. package/es-custom/components/textarea/textarea.scss.js +1 -1
  393. package/es-custom/components/textarea/textarea.scss.js.map +1 -1
  394. package/es-custom/components/tile/selectable-tile.d.ts +1 -1
  395. package/es-custom/components/tile/tile.scss.js +1 -1
  396. package/es-custom/components/tile/tile.scss.js.map +1 -1
  397. package/es-custom/components/time-picker/time-picker-select.d.ts +1 -1
  398. package/es-custom/components/time-picker/time-picker.d.ts +1 -1
  399. package/es-custom/components/time-picker/time-picker.scss.js +1 -1
  400. package/es-custom/components/time-picker/time-picker.scss.js.map +1 -1
  401. package/es-custom/components/toggle-tip/toggletip.d.ts +13 -1
  402. package/es-custom/components/toggle-tip/toggletip.d.ts.map +1 -1
  403. package/es-custom/components/toggle-tip/toggletip.js +10 -14
  404. package/es-custom/components/toggle-tip/toggletip.js.map +1 -1
  405. package/es-custom/components/toggle-tip/toggletip.scss.js +1 -1
  406. package/es-custom/components/tooltip/definition-tooltip.d.ts +4 -2
  407. package/es-custom/components/tooltip/definition-tooltip.d.ts.map +1 -1
  408. package/es-custom/components/tooltip/definition-tooltip.js +23 -12
  409. package/es-custom/components/tooltip/definition-tooltip.js.map +1 -1
  410. package/es-custom/components/tooltip/tooltip.scss.js +1 -1
  411. package/es-custom/components/tooltip/tooltip.scss.js.map +1 -1
  412. package/es-custom/components/ui-shell/header-global-action.d.ts +1 -1
  413. package/es-custom/components/ui-shell/header-menu-button.d.ts +1 -1
  414. package/es-custom/components/ui-shell/header-menu.d.ts +1 -1
  415. package/es-custom/components/ui-shell/header-name.d.ts +1 -1
  416. package/es-custom/components/ui-shell/header-nav-item.d.ts +1 -1
  417. package/es-custom/components/ui-shell/header-panel.d.ts +1 -1
  418. package/es-custom/components/ui-shell/header.scss.js +1 -1
  419. package/es-custom/components/ui-shell/side-nav-link.d.ts +1 -1
  420. package/es-custom/components/ui-shell/side-nav-menu-item.d.ts +1 -1
  421. package/es-custom/components/ui-shell/side-nav-menu.d.ts +1 -1
  422. package/es-custom/components/ui-shell/switcher-item.d.ts +1 -1
  423. package/es-custom/components/ui-shell/switcher.d.ts +1 -1
  424. package/lib/components/button/button.d.ts +2 -2
  425. package/lib/components/button/button.d.ts.map +1 -1
  426. package/lib/components/checkbox/checkbox-group.d.ts +1 -1
  427. package/lib/components/checkbox/checkbox.d.ts +1 -1
  428. package/lib/components/code-snippet/code-snippet.d.ts +1 -1
  429. package/lib/components/content-switcher/content-switcher-item.d.ts +1 -1
  430. package/lib/components/data-table/table-header-cell.d.ts +1 -1
  431. package/lib/components/data-table/table-toolbar-search.d.ts +1 -1
  432. package/lib/components/date-picker/date-picker-input.d.ts +1 -1
  433. package/lib/components/dropdown/dropdown.d.ts +1 -1
  434. package/lib/components/file-uploader/file-uploader-button.d.ts +1 -0
  435. package/lib/components/file-uploader/file-uploader-button.d.ts.map +1 -1
  436. package/lib/components/file-uploader/file-uploader-drop-container.d.ts +1 -0
  437. package/lib/components/file-uploader/file-uploader-drop-container.d.ts.map +1 -1
  438. package/lib/components/floating-menu/floating-menu.d.ts +1 -1
  439. package/lib/components/icon-button/icon-button.d.ts +1 -1
  440. package/lib/components/icon-button/icon-button.d.ts.map +1 -1
  441. package/lib/components/icon-indicator/icon-indicator.d.ts +20 -1
  442. package/lib/components/icon-indicator/icon-indicator.d.ts.map +1 -1
  443. package/lib/components/link/link.d.ts +1 -1
  444. package/lib/components/menu/menu-item-selectable.d.ts +1 -1
  445. package/lib/components/modal/modal-close-button.d.ts +1 -1
  446. package/lib/components/notification/actionable-notification.d.ts.map +1 -1
  447. package/lib/components/number-input/number-input.d.ts +1 -1
  448. package/lib/components/overflow-menu/overflow-menu-body.d.ts +1 -1
  449. package/lib/components/overflow-menu/overflow-menu-body.d.ts.map +1 -1
  450. package/lib/components/overflow-menu/overflow-menu-item.d.ts +1 -1
  451. package/lib/components/overflow-menu/overflow-menu.d.ts +8 -1
  452. package/lib/components/overflow-menu/overflow-menu.d.ts.map +1 -1
  453. package/lib/components/pagination/pagination.d.ts +1 -1
  454. package/lib/components/password-input/password-input.d.ts +1 -1
  455. package/lib/components/progress-indicator/progress-step.d.ts +1 -1
  456. package/lib/components/radio-button/radio-button.d.ts +1 -1
  457. package/lib/components/search/search.d.ts +9 -1
  458. package/lib/components/search/search.d.ts.map +1 -1
  459. package/lib/components/select/select.d.ts +1 -1
  460. package/lib/components/shape-indicator/shape-indicator.d.ts +20 -1
  461. package/lib/components/shape-indicator/shape-indicator.d.ts.map +1 -1
  462. package/lib/components/skip-to-content/skip-to-content.d.ts +1 -1
  463. package/lib/components/slider/slider-input.d.ts +2 -1
  464. package/lib/components/slider/slider-input.d.ts.map +1 -1
  465. package/lib/components/slider/slider.d.ts +2 -1
  466. package/lib/components/slider/slider.d.ts.map +1 -1
  467. package/lib/components/structured-list/structured-list.d.ts +1 -1
  468. package/lib/components/tabs/tabs-vertical.d.ts +4 -0
  469. package/lib/components/tabs/tabs-vertical.d.ts.map +1 -1
  470. package/lib/components/tag/operational-tag.d.ts +1 -1
  471. package/lib/components/tag/operational-tag.d.ts.map +1 -1
  472. package/lib/components/tag/selectable-tag.d.ts +1 -1
  473. package/lib/components/tag/selectable-tag.d.ts.map +1 -1
  474. package/lib/components/tag/tag.d.ts +1 -0
  475. package/lib/components/tag/tag.d.ts.map +1 -1
  476. package/lib/components/text-input/text-input.d.ts +1 -1
  477. package/lib/components/textarea/textarea.d.ts +1 -1
  478. package/lib/components/tile/selectable-tile.d.ts +1 -1
  479. package/lib/components/time-picker/time-picker-select.d.ts +1 -1
  480. package/lib/components/time-picker/time-picker.d.ts +1 -1
  481. package/lib/components/toggle-tip/toggletip.d.ts +13 -1
  482. package/lib/components/toggle-tip/toggletip.d.ts.map +1 -1
  483. package/lib/components/tooltip/definition-tooltip.d.ts +4 -2
  484. package/lib/components/tooltip/definition-tooltip.d.ts.map +1 -1
  485. package/lib/components/ui-shell/header-global-action.d.ts +1 -1
  486. package/lib/components/ui-shell/header-menu-button.d.ts +1 -1
  487. package/lib/components/ui-shell/header-menu.d.ts +1 -1
  488. package/lib/components/ui-shell/header-name.d.ts +1 -1
  489. package/lib/components/ui-shell/header-nav-item.d.ts +1 -1
  490. package/lib/components/ui-shell/header-panel.d.ts +1 -1
  491. package/lib/components/ui-shell/side-nav-link.d.ts +1 -1
  492. package/lib/components/ui-shell/side-nav-menu-item.d.ts +1 -1
  493. package/lib/components/ui-shell/side-nav-menu.d.ts +1 -1
  494. package/lib/components/ui-shell/switcher-item.d.ts +1 -1
  495. package/lib/components/ui-shell/switcher.d.ts +1 -1
  496. package/package.json +8 -7
  497. package/scss/components/ai-label/ai-label.scss +1 -1
  498. package/scss/components/button/button.scss +2 -1
  499. package/scss/components/chat-button/chat-button.scss +1 -1
  500. package/scss/components/combo-box/combo-box.scss +1 -1
  501. package/scss/components/contained-list/contained-list.scss +4 -1
  502. package/scss/components/copy-button/copy-button.scss +1 -1
  503. package/scss/components/data-table/_table-action.scss +0 -1
  504. package/scss/components/file-uploader/file-uploader.scss +3 -1
  505. package/scss/components/fluid-combo-box/fluid-combo-box.scss +1 -1
  506. package/scss/components/fluid-dropdown/fluid-dropdown.scss +1 -1
  507. package/scss/components/fluid-multi-select/fluid-multi-select.scss +1 -1
  508. package/scss/components/fluid-number-input/fluid-number-input.scss +1 -1
  509. package/scss/components/fluid-password-input/fluid-password-input.scss +1 -1
  510. package/scss/components/fluid-search/fluid-search.scss +1 -1
  511. package/scss/components/fluid-select/fluid-select.scss +1 -1
  512. package/scss/components/fluid-text-input/fluid-text-input.scss +1 -1
  513. package/scss/components/fluid-textarea/fluid-textarea.scss +1 -1
  514. package/scss/components/fluid-time-picker/fluid-time-picker.scss +1 -1
  515. package/scss/components/icon-button/icon-button.scss +1 -1
  516. package/scss/components/icon-indicator/icon-indicator.scss +19 -1
  517. package/scss/components/layout/layout.scss +1 -1
  518. package/scss/components/menu/menu-item.scss +4 -0
  519. package/scss/components/notification/actionable-notification.scss +1 -1
  520. package/scss/components/notification/inline-notification.scss +1 -1
  521. package/scss/components/notification/toast-notification.scss +1 -1
  522. package/scss/components/overflow-menu/overflow-menu.scss +13 -39
  523. package/scss/components/pagination/pagination.scss +1 -1
  524. package/scss/components/pagination-nav/pagination-nav.scss +3 -1
  525. package/scss/components/password-input/password-input.scss +3 -1
  526. package/scss/components/popover/popover.scss +3 -1
  527. package/scss/components/select/select.scss +1 -1
  528. package/scss/components/shape-indicator/shape-indicator.scss +19 -1
  529. package/scss/components/slider/slider.scss +1 -1
  530. package/scss/components/slug/slug.scss +1 -1
  531. package/scss/components/tabs/tabs.scss +4 -1
  532. package/scss/components/text-input/text-input.scss +3 -1
  533. package/scss/components/textarea/textarea.scss +1 -1
  534. package/scss/components/tile/tile.scss +1 -1
  535. package/scss/components/time-picker/time-picker.scss +1 -1
  536. package/scss/components/tooltip/tooltip.scss +15 -2
  537. package/telemetry.yml +4 -234
@@ -14,7 +14,7 @@ import { FORM_ELEMENT_COLOR_SCHEME } from "../../globals/shared-enums.js";
14
14
  import if_non_empty_default from "../../globals/directives/if-non-empty.js";
15
15
  import file_uploader_default from "./file-uploader.scss.js";
16
16
  import { LitElement, html } from "lit";
17
- import { property } from "lit/decorators.js";
17
+ import { property, query } from "lit/decorators.js";
18
18
  import { classMap } from "lit/directives/class-map.js";
19
19
  //#region src/components/file-uploader/file-uploader-button.ts
20
20
  /**
@@ -23,6 +23,7 @@ import { classMap } from "lit/directives/class-map.js";
23
23
  * This source code is licensed under the Apache-2.0 license found in the
24
24
  * LICENSE file in the root directory of this source tree.
25
25
  */
26
+ const selectorInput = `.cds--file-input`;
26
27
  /**
27
28
  * File uploader button .
28
29
  *
@@ -45,18 +46,16 @@ let CDSFileUploaderButton = class CDSFileUploaderButton extends HostListenerMixi
45
46
  */
46
47
  _handleClick(event) {
47
48
  event.target.value = null;
48
- const { selectorInput } = this.constructor;
49
- this?.shadowRoot?.querySelector(selectorInput)?.setAttribute("value", "");
50
- (this?.shadowRoot?.querySelector(selectorInput)).click();
49
+ this._fileInput.setAttribute("value", "");
50
+ this._fileInput.click();
51
51
  }
52
52
  /**
53
53
  * Handles `keydown` event on the button.
54
54
  */
55
55
  _handleKeyDown(event) {
56
- const { selectorInput } = this.constructor;
57
56
  if (event.key === "Enter" || event.key === "Space") {
58
- this?.shadowRoot?.querySelector(selectorInput)?.setAttribute("value", "");
59
- (this?.shadowRoot?.querySelector(selectorInput)).click();
57
+ this._fileInput.setAttribute("value", "");
58
+ this._fileInput.click();
60
59
  }
61
60
  }
62
61
  /**
@@ -66,14 +65,13 @@ let CDSFileUploaderButton = class CDSFileUploaderButton extends HostListenerMixi
66
65
  */
67
66
  _handleChange(event) {
68
67
  const addedFiles = this._getFiles(event);
69
- const { eventChange, selectorInput } = this.constructor;
68
+ const { eventChange } = this.constructor;
70
69
  this.dispatchEvent(new CustomEvent(eventChange, {
71
70
  bubbles: true,
72
71
  composed: true,
73
72
  detail: { addedFiles }
74
73
  }));
75
- const fileInput = this?.shadowRoot?.querySelector(selectorInput);
76
- if (fileInput) fileInput.value = "";
74
+ this._fileInput.value = "";
77
75
  }
78
76
  /**
79
77
  * @param event The event.
@@ -134,12 +132,13 @@ let CDSFileUploaderButton = class CDSFileUploaderButton extends HostListenerMixi
134
132
  * A selector that will return the file `input`.
135
133
  */
136
134
  static get selectorInput() {
137
- return `.cds--file-input`;
135
+ return selectorInput;
138
136
  }
139
137
  static {
140
138
  this.styles = file_uploader_default;
141
139
  }
142
140
  };
141
+ __decorate([query(selectorInput)], CDSFileUploaderButton.prototype, "_fileInput", void 0);
143
142
  __decorate([property({
144
143
  reflect: true,
145
144
  attribute: "button-kind"
@@ -1 +1 @@
1
- {"version":3,"file":"file-uploader-button.js","names":["ifNonEmpty","styles","customElement"],"sources":["../../../src/components/file-uploader/file-uploader-button.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2020, 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit/directives/class-map.js';\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { prefix } from '../../globals/settings';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport styles from './file-uploader.scss?lit';\nimport { BUTTON_KIND, BUTTON_SIZE } from '../button/defs';\n\nexport { FORM_ELEMENT_COLOR_SCHEME as TILE_COLOR_SCHEME } from '../../globals/shared-enums';\n\n/**\n * File uploader button .\n *\n * @element cds-file-uploader-button\n * @fires cds-file-uploader-button-changed The custom event fired when there is a user gesture to select files to upload.\n */\n@customElement(`${prefix}-file-uploader-button`)\nclass CDSFileUploaderButton extends HostListenerMixin(LitElement) {\n /**\n * Handles `click` event on the button.\n */\n private _handleClick(event) {\n event.target.value = null;\n const { selectorInput } = this.constructor as typeof CDSFileUploaderButton;\n this?.shadowRoot?.querySelector(selectorInput)?.setAttribute('value', '');\n (this?.shadowRoot?.querySelector(selectorInput) as HTMLElement).click();\n }\n\n /**\n * Handles `keydown` event on the button.\n */\n private _handleKeyDown(event) {\n const { selectorInput } = this.constructor as typeof CDSFileUploaderButton;\n if (event.key === 'Enter' || event.key === 'Space') {\n this?.shadowRoot?.querySelector(selectorInput)?.setAttribute('value', '');\n (this?.shadowRoot?.querySelector(selectorInput) as HTMLElement).click();\n }\n }\n\n /**\n * Handles user gesture to select files to upload.\n *\n * @param event The event.\n */\n private _handleChange(event: Event | DragEvent) {\n const addedFiles = this._getFiles(event);\n const { eventChange, selectorInput } = this\n .constructor as typeof CDSFileUploaderButton;\n this.dispatchEvent(\n new CustomEvent(eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n addedFiles,\n },\n })\n );\n\n const fileInput = this?.shadowRoot?.querySelector(selectorInput);\n if (fileInput) {\n (fileInput as HTMLInputElement).value = '';\n }\n }\n\n /**\n * @param event The event.\n * @returns The list of files user chose to upload.\n */\n private _getFiles(event: Event | DragEvent) {\n const { files } =\n (event.type === 'drop'\n ? (event as DragEvent).dataTransfer\n : (event.target as HTMLInputElement)) ?? {};\n const { accept } = this;\n if (!accept || !/^(change|drop)$/.test(event.type)) {\n return Array.from(files ?? []);\n }\n const acceptedTypes = new Set(accept.split(/[\\s,]+/).filter(Boolean));\n return Array.prototype.filter.call(\n files,\n ({ name, type: mimeType = '' }) => {\n const fileExtensionRegExp = /\\.[^.]+$/;\n const hasFileExtension = fileExtensionRegExp.test(name);\n const [fileExtension] = !hasFileExtension\n ? [undefined]\n : (fileExtensionRegExp.exec(name) ?? []);\n\n return (\n acceptedTypes.has(mimeType) ||\n (fileExtension && acceptedTypes.has(fileExtension))\n );\n }\n ) as File[];\n }\n\n /**\n * Button kind.\n */\n @property({ reflect: true, attribute: 'button-kind' })\n buttonKind = BUTTON_KIND.PRIMARY;\n\n /**\n * Button size.\n */\n @property({ reflect: true })\n size = BUTTON_SIZE.MEDIUM;\n\n /**\n * The file types the file input should accept, separated by space.\n */\n @property()\n accept = '';\n\n /**\n * `true` if this drop container should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if this drop container should accept more than one files at once.\n * Note that even with `false` set here, user _can_ select multiple files one by one.\n */\n @property({ type: Boolean, reflect: true })\n multiple = false;\n\n /**\n * The name of the input.\n */\n @property({ reflect: true })\n name = '';\n\n /**\n * The shadow DOM slot to put this drop container in.\n */\n @property({ reflect: true })\n slot = 'drop-container';\n\n render() {\n const {\n accept,\n disabled,\n multiple,\n name,\n buttonKind,\n size,\n _handleChange: handleChange,\n } = this;\n const acceptForInput = accept\n ? accept\n .split(/[\\s,]+/)\n .filter(Boolean)\n .join(',')\n : '';\n\n const labelClasses = classMap({\n [`${prefix}--file-browse-btn`]: true,\n [`${prefix}--file-browse-btn--disabled`]: disabled,\n });\n const buttonClasses = classMap({\n [`${prefix}--btn`]: true,\n [`${prefix}--btn--${buttonKind}`]: buttonKind,\n [`${prefix}--layout--size-${size}`]: size,\n [`${prefix}--btn--disabled`]: disabled,\n [`${prefix}--btn--${size}`]: size,\n });\n return html`\n <button\n type=\"button\"\n class=\"${buttonClasses}\"\n @click=\"${this._handleClick}\"\n @keydown=\"${this._handleKeyDown}\">\n <slot></slot>\n </button>\n <label class=\"${labelClasses}\" for=\"file\"> </label>\n <input\n id=\"file\"\n type=\"file\"\n class=\"${prefix}--file-input\"\n tabindex=\"-1\"\n accept=\"${ifNonEmpty(acceptForInput)}\"\n ?disabled=\"${disabled}\"\n ?multiple=\"${multiple}\"\n name=\"${ifNonEmpty(name)}\"\n @change=\"${handleChange}\" />\n `;\n }\n\n /**\n * The name of the custom event fired when there is a user gesture to select files to upload.\n */\n static get eventChange() {\n return `${prefix}-file-uploader-button-changed`;\n }\n\n /**\n * A selector that will return the file `input`.\n */\n static get selectorInput() {\n return `.${prefix}--file-input`;\n }\n\n static styles = styles;\n}\n\nexport default CDSFileUploaderButton;\n"],"mappings":"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"}
1
+ {"version":3,"file":"file-uploader-button.js","names":["ifNonEmpty","styles","customElement"],"sources":["../../../src/components/file-uploader/file-uploader-button.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2020, 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit/directives/class-map.js';\nimport { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { prefix } from '../../globals/settings';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport styles from './file-uploader.scss?lit';\nimport { BUTTON_KIND, BUTTON_SIZE } from '../button/defs';\n\nexport { FORM_ELEMENT_COLOR_SCHEME as TILE_COLOR_SCHEME } from '../../globals/shared-enums';\n\nconst selectorInput = `.${prefix}--file-input`;\n\n/**\n * File uploader button .\n *\n * @element cds-file-uploader-button\n * @fires cds-file-uploader-button-changed The custom event fired when there is a user gesture to select files to upload.\n */\n@customElement(`${prefix}-file-uploader-button`)\nclass CDSFileUploaderButton extends HostListenerMixin(LitElement) {\n @query(selectorInput)\n private _fileInput!: HTMLInputElement;\n\n /**\n * Handles `click` event on the button.\n */\n private _handleClick(event) {\n event.target.value = null;\n this._fileInput.setAttribute('value', '');\n this._fileInput.click();\n }\n\n /**\n * Handles `keydown` event on the button.\n */\n private _handleKeyDown(event) {\n if (event.key === 'Enter' || event.key === 'Space') {\n this._fileInput.setAttribute('value', '');\n this._fileInput.click();\n }\n }\n\n /**\n * Handles user gesture to select files to upload.\n *\n * @param event The event.\n */\n private _handleChange(event: Event | DragEvent) {\n const addedFiles = this._getFiles(event);\n const { eventChange } = this.constructor as typeof CDSFileUploaderButton;\n this.dispatchEvent(\n new CustomEvent(eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n addedFiles,\n },\n })\n );\n\n this._fileInput.value = '';\n }\n\n /**\n * @param event The event.\n * @returns The list of files user chose to upload.\n */\n private _getFiles(event: Event | DragEvent) {\n const { files } =\n (event.type === 'drop'\n ? (event as DragEvent).dataTransfer\n : (event.target as HTMLInputElement)) ?? {};\n const { accept } = this;\n if (!accept || !/^(change|drop)$/.test(event.type)) {\n return Array.from(files ?? []);\n }\n const acceptedTypes = new Set(accept.split(/[\\s,]+/).filter(Boolean));\n return Array.prototype.filter.call(\n files,\n ({ name, type: mimeType = '' }) => {\n const fileExtensionRegExp = /\\.[^.]+$/;\n const hasFileExtension = fileExtensionRegExp.test(name);\n const [fileExtension] = !hasFileExtension\n ? [undefined]\n : (fileExtensionRegExp.exec(name) ?? []);\n\n return (\n acceptedTypes.has(mimeType) ||\n (fileExtension && acceptedTypes.has(fileExtension))\n );\n }\n ) as File[];\n }\n\n /**\n * Button kind.\n */\n @property({ reflect: true, attribute: 'button-kind' })\n buttonKind = BUTTON_KIND.PRIMARY;\n\n /**\n * Button size.\n */\n @property({ reflect: true })\n size = BUTTON_SIZE.MEDIUM;\n\n /**\n * The file types the file input should accept, separated by space.\n */\n @property()\n accept = '';\n\n /**\n * `true` if this drop container should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if this drop container should accept more than one files at once.\n * Note that even with `false` set here, user _can_ select multiple files one by one.\n */\n @property({ type: Boolean, reflect: true })\n multiple = false;\n\n /**\n * The name of the input.\n */\n @property({ reflect: true })\n name = '';\n\n /**\n * The shadow DOM slot to put this drop container in.\n */\n @property({ reflect: true })\n slot = 'drop-container';\n\n render() {\n const {\n accept,\n disabled,\n multiple,\n name,\n buttonKind,\n size,\n _handleChange: handleChange,\n } = this;\n const acceptForInput = accept\n ? accept\n .split(/[\\s,]+/)\n .filter(Boolean)\n .join(',')\n : '';\n\n const labelClasses = classMap({\n [`${prefix}--file-browse-btn`]: true,\n [`${prefix}--file-browse-btn--disabled`]: disabled,\n });\n const buttonClasses = classMap({\n [`${prefix}--btn`]: true,\n [`${prefix}--btn--${buttonKind}`]: buttonKind,\n [`${prefix}--layout--size-${size}`]: size,\n [`${prefix}--btn--disabled`]: disabled,\n [`${prefix}--btn--${size}`]: size,\n });\n return html`\n <button\n type=\"button\"\n class=\"${buttonClasses}\"\n @click=\"${this._handleClick}\"\n @keydown=\"${this._handleKeyDown}\">\n <slot></slot>\n </button>\n <label class=\"${labelClasses}\" for=\"file\"> </label>\n <input\n id=\"file\"\n type=\"file\"\n class=\"${prefix}--file-input\"\n tabindex=\"-1\"\n accept=\"${ifNonEmpty(acceptForInput)}\"\n ?disabled=\"${disabled}\"\n ?multiple=\"${multiple}\"\n name=\"${ifNonEmpty(name)}\"\n @change=\"${handleChange}\" />\n `;\n }\n\n /**\n * The name of the custom event fired when there is a user gesture to select files to upload.\n */\n static get eventChange() {\n return `${prefix}-file-uploader-button-changed`;\n }\n\n /**\n * A selector that will return the file `input`.\n */\n static get selectorInput() {\n return selectorInput;\n }\n\n static styles = styles;\n}\n\nexport default CDSFileUploaderButton;\n"],"mappings":"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"}
@@ -27,6 +27,7 @@ declare const CDSFileUploaderDropContainer_base: {
27
27
  * @fires cds-file-uploader-drop-container-changed The custom event fired when there is a user gesture to select files to upload.
28
28
  */
29
29
  declare class CDSFileUploaderDropContainer extends CDSFileUploaderDropContainer_base {
30
+ private _fileInput;
30
31
  /**
31
32
  * `true` to show the active state of this UI.
32
33
  */
@@ -1 +1 @@
1
- {"version":3,"file":"file-uploader-drop-container.d.ts","sourceRoot":"","sources":["../../../src/components/file-uploader/file-uploader-drop-container.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AASvC,OAAO,EAAE,yBAAyB,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;;;;;;;;;;uBAK/E,CAAC;;;;;AAKd;;;;;GAKG;AACH,cACM,4BAA6B,SAAQ,iCAA6B;IACtE;;OAEG;IACH,OAAO,CAAC,OAAO,CAAS;IAExB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAyBrB;;;;OAIG;IAMH,OAAO,CAAC,WAAW;IAiBnB;;;OAGG;IACH,OAAO,CAAC,SAAS;IAuBjB;;OAEG;IAEH,MAAM,SAAM;IAEZ;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;;OAGG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,IAAI,SAAM;IAEV;;OAEG;IAEH,IAAI,SAAoB;IAExB,MAAM;IA0CN;;OAEG;IACH,MAAM,KAAK,WAAW,WAErB;IAED;;OAEG;IACH,MAAM,KAAK,aAAa,WAEvB;IAED,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,4BAA4B,CAAC"}
1
+ {"version":3,"file":"file-uploader-drop-container.d.ts","sourceRoot":"","sources":["../../../src/components/file-uploader/file-uploader-drop-container.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AASvC,OAAO,EAAE,yBAAyB,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;;;;;;;;;;uBAKlD,CAAC;;;;;AAO3C;;;;;GAKG;AACH,cACM,4BAA6B,SAAQ,iCAA6B;IAEtE,OAAO,CAAC,UAAU,CAAoB;IAEtC;;OAEG;IACH,OAAO,CAAC,OAAO,CAAS;IAExB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAsBrB;;;;OAIG;IAMH,OAAO,CAAC,WAAW;IAiBnB;;;OAGG;IACH,OAAO,CAAC,SAAS;IAuBjB;;OAEG;IAEH,MAAM,SAAM;IAEZ;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;;OAGG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,IAAI,SAAM;IAEV;;OAEG;IAEH,IAAI,SAAoB;IAExB,MAAM;IA0CN;;OAEG;IACH,MAAM,KAAK,WAAW,WAErB;IAED;;OAEG;IACH,MAAM,KAAK,aAAa,WAEvB;IAED,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,4BAA4B,CAAC"}
@@ -14,7 +14,7 @@ import { FORM_ELEMENT_COLOR_SCHEME } from "../../globals/shared-enums.js";
14
14
  import if_non_empty_default from "../../globals/directives/if-non-empty.js";
15
15
  import file_uploader_default from "./file-uploader.scss.js";
16
16
  import { LitElement, html } from "lit";
17
- import { property } from "lit/decorators.js";
17
+ import { property, query } from "lit/decorators.js";
18
18
  import { classMap } from "lit/directives/class-map.js";
19
19
  //#region src/components/file-uploader/file-uploader-drop-container.ts
20
20
  /**
@@ -23,6 +23,7 @@ import { classMap } from "lit/directives/class-map.js";
23
23
  * This source code is licensed under the Apache-2.0 license found in the
24
24
  * LICENSE file in the root directory of this source tree.
25
25
  */
26
+ const selectorInput = `.cds--file-input`;
26
27
  /**
27
28
  * The value to set to `event.dataTransfer.dropEffect`, keyed by the event nane.
28
29
  */
@@ -52,7 +53,7 @@ let CDSFileUploaderDropContainer = class CDSFileUploaderDropContainer extends Ho
52
53
  * @param event The event.
53
54
  */
54
55
  _handleChange(event) {
55
- const { eventChange, selectorInput } = this.constructor;
56
+ const { eventChange } = this.constructor;
56
57
  const { files } = (event.type === "drop" ? event.dataTransfer : event.target) ?? {};
57
58
  const addedFiles = this._getFiles(event, files);
58
59
  this.dispatchEvent(new CustomEvent(eventChange, {
@@ -60,8 +61,7 @@ let CDSFileUploaderDropContainer = class CDSFileUploaderDropContainer extends Ho
60
61
  composed: true,
61
62
  detail: { addedFiles }
62
63
  }));
63
- const fileInput = this?.shadowRoot?.querySelector(selectorInput);
64
- if (fileInput) fileInput.value = "";
64
+ this._fileInput.value = "";
65
65
  }
66
66
  /**
67
67
  * Handles `dragover`, `dragleave` and `drop` events.
@@ -129,12 +129,13 @@ let CDSFileUploaderDropContainer = class CDSFileUploaderDropContainer extends Ho
129
129
  * A selector that will return the file `input`.
130
130
  */
131
131
  static get selectorInput() {
132
- return `.cds--file-input`;
132
+ return selectorInput;
133
133
  }
134
134
  static {
135
135
  this.styles = file_uploader_default;
136
136
  }
137
137
  };
138
+ __decorate([query(selectorInput)], CDSFileUploaderDropContainer.prototype, "_fileInput", void 0);
138
139
  __decorate([
139
140
  HostListener("dragover"),
140
141
  HostListener("dragleave"),
@@ -1 +1 @@
1
- {"version":3,"file":"file-uploader-drop-container.js","names":["ifNonEmpty","styles","customElement"],"sources":["../../../src/components/file-uploader/file-uploader-drop-container.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2020, 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit/directives/class-map.js';\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport HostListener from '../../globals/decorators/host-listener';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport styles from './file-uploader.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { FORM_ELEMENT_COLOR_SCHEME as TILE_COLOR_SCHEME } from '../../globals/shared-enums';\n\n/**\n * The value to set to `event.dataTransfer.dropEffect`, keyed by the event nane.\n */\nconst dropEffects = {\n dragover: 'copy',\n dragleave: 'move',\n};\n\n/**\n * File uploader drop container.\n *\n * @element cds-file-uploader-drop-container\n * @fires cds-file-uploader-drop-container-changed The custom event fired when there is a user gesture to select files to upload.\n */\n@customElement(`${prefix}-file-uploader-drop-container`)\nclass CDSFileUploaderDropContainer extends HostListenerMixin(LitElement) {\n /**\n * `true` to show the active state of this UI.\n */\n private _active = false;\n\n /**\n * Handles user gesture to select files to upload.\n *\n * @param event The event.\n */\n private _handleChange(event: Event | DragEvent) {\n const { eventChange, selectorInput } = this\n .constructor as typeof CDSFileUploaderDropContainer;\n const { files } =\n (event.type === 'drop'\n ? (event as DragEvent).dataTransfer\n : (event.target as HTMLInputElement)) ?? {};\n const addedFiles = this._getFiles(event, files);\n\n this.dispatchEvent(\n new CustomEvent(eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n addedFiles,\n },\n })\n );\n\n const fileInput = this?.shadowRoot?.querySelector(selectorInput);\n if (fileInput) {\n (fileInput as HTMLInputElement).value = ''; // carbon-web-components#904\n }\n }\n\n /**\n * Handles `dragover`, `dragleave` and `drop` events.\n *\n * @param event The event.\n */\n @HostListener('dragover')\n @HostListener('dragleave')\n @HostListener('drop')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleDrag(event: DragEvent) {\n event.preventDefault(); // Prevents page navigation upon dropping\n if (this.disabled) {\n return;\n }\n const { dataTransfer, type } = event;\n const dropEffect = dropEffects[type];\n if (dataTransfer && dropEffect) {\n dataTransfer.dropEffect = dropEffect;\n }\n this._active = type === 'dragover';\n if (type === 'drop') {\n this._handleChange(event);\n }\n this.requestUpdate();\n }\n\n /**\n * @param event The event.\n * @returns The list of files user chose to upload.\n */\n private _getFiles(event, files) {\n const { accept } = this;\n if (!accept || !/^(change|drop)$/.test(event.type)) {\n return Array.from(files ?? []);\n }\n const acceptedTypes = new Set(accept.split(/[\\s,]+/).filter(Boolean));\n return Array.prototype.filter.call(\n files,\n ({ name, type: mimeType = '' }) => {\n const fileExtensionRegExp = /\\.[^.]+$/;\n const hasFileExtension = fileExtensionRegExp.test(name);\n const [fileExtension] = !hasFileExtension\n ? [undefined]\n : (fileExtensionRegExp.exec(name) ?? []);\n\n return (\n acceptedTypes.has(mimeType) ||\n (fileExtension && acceptedTypes.has(fileExtension))\n );\n }\n ) as File[];\n }\n\n /**\n * The file types the file input should accept, separated by spaces and/or commas.\n */\n @property()\n accept = '';\n\n /**\n * `true` if this drop container should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if this drop container should accept more than one files at once.\n * Note that even with `false` set here, user _can_ select multiple files one by one.\n */\n @property({ type: Boolean, reflect: true })\n multiple = false;\n\n /**\n * The name of the input.\n */\n @property({ reflect: true })\n name = '';\n\n /**\n * The shadow DOM slot to put this drop container in.\n */\n @property({ reflect: true })\n slot = 'drop-container';\n\n render() {\n const {\n accept,\n disabled,\n multiple,\n name,\n _active: active,\n _handleChange: handleChange,\n } = this;\n const acceptForInput = accept\n ? accept\n .split(/[\\s,]+/)\n .filter(Boolean)\n .join(',')\n : '';\n const labelClasses = classMap({\n [`${prefix}--file-browse-btn`]: true,\n [`${prefix}--file-browse-btn--disabled`]: disabled,\n });\n const dropareaClasses = classMap({\n [`${prefix}--file__drop-container`]: true,\n [`${prefix}--file__drop-container--drag-over`]: active,\n });\n return html`\n <label class=\"${labelClasses}\" for=\"file\" tabindex=\"0\">\n <div class=\"${dropareaClasses}\" role=\"button\">\n <slot></slot>\n <input\n id=\"file\"\n type=\"file\"\n name=\"${ifNonEmpty(name)}\"\n class=\"${prefix}--file-input\"\n tabindex=\"-1\"\n accept=\"${ifNonEmpty(acceptForInput)}\"\n ?disabled=\"${disabled}\"\n ?multiple=\"${multiple}\"\n @change=\"${handleChange}\" />\n </div>\n </label>\n `;\n }\n\n /**\n * The name of the custom event fired when there is a user gesture to select files to upload.\n */\n static get eventChange() {\n return `${prefix}-file-uploader-drop-container-changed`;\n }\n\n /**\n * A selector that will return the file `input`.\n */\n static get selectorInput() {\n return `.${prefix}--file-input`;\n }\n\n static styles = styles;\n}\n\nexport default CDSFileUploaderDropContainer;\n"],"mappings":"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"}
1
+ {"version":3,"file":"file-uploader-drop-container.js","names":["ifNonEmpty","styles","customElement"],"sources":["../../../src/components/file-uploader/file-uploader-drop-container.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2020, 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit/directives/class-map.js';\nimport { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport HostListener from '../../globals/decorators/host-listener';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport styles from './file-uploader.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { FORM_ELEMENT_COLOR_SCHEME as TILE_COLOR_SCHEME } from '../../globals/shared-enums';\n\nconst selectorInput = `.${prefix}--file-input`;\n\n/**\n * The value to set to `event.dataTransfer.dropEffect`, keyed by the event nane.\n */\nconst dropEffects = {\n dragover: 'copy',\n dragleave: 'move',\n};\n\n/**\n * File uploader drop container.\n *\n * @element cds-file-uploader-drop-container\n * @fires cds-file-uploader-drop-container-changed The custom event fired when there is a user gesture to select files to upload.\n */\n@customElement(`${prefix}-file-uploader-drop-container`)\nclass CDSFileUploaderDropContainer extends HostListenerMixin(LitElement) {\n @query(selectorInput)\n private _fileInput!: HTMLInputElement;\n\n /**\n * `true` to show the active state of this UI.\n */\n private _active = false;\n\n /**\n * Handles user gesture to select files to upload.\n *\n * @param event The event.\n */\n private _handleChange(event: Event | DragEvent) {\n const { eventChange } = this\n .constructor as typeof CDSFileUploaderDropContainer;\n const { files } =\n (event.type === 'drop'\n ? (event as DragEvent).dataTransfer\n : (event.target as HTMLInputElement)) ?? {};\n const addedFiles = this._getFiles(event, files);\n\n this.dispatchEvent(\n new CustomEvent(eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n addedFiles,\n },\n })\n );\n\n this._fileInput.value = ''; // carbon-web-components#904\n }\n\n /**\n * Handles `dragover`, `dragleave` and `drop` events.\n *\n * @param event The event.\n */\n @HostListener('dragover')\n @HostListener('dragleave')\n @HostListener('drop')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleDrag(event: DragEvent) {\n event.preventDefault(); // Prevents page navigation upon dropping\n if (this.disabled) {\n return;\n }\n const { dataTransfer, type } = event;\n const dropEffect = dropEffects[type];\n if (dataTransfer && dropEffect) {\n dataTransfer.dropEffect = dropEffect;\n }\n this._active = type === 'dragover';\n if (type === 'drop') {\n this._handleChange(event);\n }\n this.requestUpdate();\n }\n\n /**\n * @param event The event.\n * @returns The list of files user chose to upload.\n */\n private _getFiles(event, files) {\n const { accept } = this;\n if (!accept || !/^(change|drop)$/.test(event.type)) {\n return Array.from(files ?? []);\n }\n const acceptedTypes = new Set(accept.split(/[\\s,]+/).filter(Boolean));\n return Array.prototype.filter.call(\n files,\n ({ name, type: mimeType = '' }) => {\n const fileExtensionRegExp = /\\.[^.]+$/;\n const hasFileExtension = fileExtensionRegExp.test(name);\n const [fileExtension] = !hasFileExtension\n ? [undefined]\n : (fileExtensionRegExp.exec(name) ?? []);\n\n return (\n acceptedTypes.has(mimeType) ||\n (fileExtension && acceptedTypes.has(fileExtension))\n );\n }\n ) as File[];\n }\n\n /**\n * The file types the file input should accept, separated by spaces and/or commas.\n */\n @property()\n accept = '';\n\n /**\n * `true` if this drop container should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if this drop container should accept more than one files at once.\n * Note that even with `false` set here, user _can_ select multiple files one by one.\n */\n @property({ type: Boolean, reflect: true })\n multiple = false;\n\n /**\n * The name of the input.\n */\n @property({ reflect: true })\n name = '';\n\n /**\n * The shadow DOM slot to put this drop container in.\n */\n @property({ reflect: true })\n slot = 'drop-container';\n\n render() {\n const {\n accept,\n disabled,\n multiple,\n name,\n _active: active,\n _handleChange: handleChange,\n } = this;\n const acceptForInput = accept\n ? accept\n .split(/[\\s,]+/)\n .filter(Boolean)\n .join(',')\n : '';\n const labelClasses = classMap({\n [`${prefix}--file-browse-btn`]: true,\n [`${prefix}--file-browse-btn--disabled`]: disabled,\n });\n const dropareaClasses = classMap({\n [`${prefix}--file__drop-container`]: true,\n [`${prefix}--file__drop-container--drag-over`]: active,\n });\n return html`\n <label class=\"${labelClasses}\" for=\"file\" tabindex=\"0\">\n <div class=\"${dropareaClasses}\" role=\"button\">\n <slot></slot>\n <input\n id=\"file\"\n type=\"file\"\n name=\"${ifNonEmpty(name)}\"\n class=\"${prefix}--file-input\"\n tabindex=\"-1\"\n accept=\"${ifNonEmpty(acceptForInput)}\"\n ?disabled=\"${disabled}\"\n ?multiple=\"${multiple}\"\n @change=\"${handleChange}\" />\n </div>\n </label>\n `;\n }\n\n /**\n * The name of the custom event fired when there is a user gesture to select files to upload.\n */\n static get eventChange() {\n return `${prefix}-file-uploader-drop-container-changed`;\n }\n\n /**\n * A selector that will return the file `input`.\n */\n static get selectorInput() {\n return selectorInput;\n }\n\n static styles = styles;\n}\n\nexport default CDSFileUploaderDropContainer;\n"],"mappings":"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"}