@carbon/web-components 2.49.0 → 2.50.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 (826) hide show
  1. package/custom-elements.json +278 -228
  2. package/es/components/accordion/accordion-item-skeleton.js +3 -3
  3. package/es/components/accordion/accordion-item-skeleton.js.map +1 -1
  4. package/es/components/accordion/accordion-item.js +3 -3
  5. package/es/components/accordion/accordion-item.js.map +1 -1
  6. package/es/components/accordion/accordion-skeleton.js +3 -3
  7. package/es/components/accordion/accordion-skeleton.js.map +1 -1
  8. package/es/components/accordion/accordion.js +2 -2
  9. package/es/components/accordion/accordion.js.map +1 -1
  10. package/es/components/ai-label/ai-label-action-button.js +2 -2
  11. package/es/components/ai-label/ai-label-action-button.js.map +1 -1
  12. package/es/components/ai-label/ai-label.js +3 -3
  13. package/es/components/ai-label/ai-label.js.map +1 -1
  14. package/es/components/ai-skeleton/ai-skeleton-icon.js +2 -2
  15. package/es/components/ai-skeleton/ai-skeleton-icon.js.map +1 -1
  16. package/es/components/ai-skeleton/ai-skeleton-placeholder.js +2 -2
  17. package/es/components/ai-skeleton/ai-skeleton-placeholder.js.map +1 -1
  18. package/es/components/ai-skeleton/ai-skeleton-text.js +2 -2
  19. package/es/components/ai-skeleton/ai-skeleton-text.js.map +1 -1
  20. package/es/components/badge-indicator/badge-indicator.js +2 -2
  21. package/es/components/badge-indicator/badge-indicator.js.map +1 -1
  22. package/es/components/breadcrumb/breadcrumb-item.d.ts +1 -1
  23. package/es/components/breadcrumb/breadcrumb-item.js +15 -12
  24. package/es/components/breadcrumb/breadcrumb-item.js.map +1 -1
  25. package/es/components/breadcrumb/breadcrumb-link.js +2 -2
  26. package/es/components/breadcrumb/breadcrumb-link.js.map +1 -1
  27. package/es/components/breadcrumb/breadcrumb-overflow-menu.js +3 -3
  28. package/es/components/breadcrumb/breadcrumb-overflow-menu.js.map +1 -1
  29. package/es/components/breadcrumb/breadcrumb-skeleton.js +2 -2
  30. package/es/components/breadcrumb/breadcrumb-skeleton.js.map +1 -1
  31. package/es/components/breadcrumb/breadcrumb.js +2 -2
  32. package/es/components/breadcrumb/breadcrumb.js.map +1 -1
  33. package/es/components/button/button-set.js +2 -2
  34. package/es/components/button/button-set.js.map +1 -1
  35. package/es/components/button/button-skeleton.js +3 -2
  36. package/es/components/button/button-skeleton.js.map +1 -1
  37. package/es/components/button/button.d.ts +14 -16
  38. package/es/components/button/button.js +27 -24
  39. package/es/components/button/button.js.map +1 -1
  40. package/es/components/button/button.scss.js +1 -1
  41. package/es/components/chat-button/chat-button-skeleton.js +2 -2
  42. package/es/components/chat-button/chat-button-skeleton.js.map +1 -1
  43. package/es/components/chat-button/chat-button.js +2 -2
  44. package/es/components/chat-button/chat-button.js.map +1 -1
  45. package/es/components/checkbox/checkbox-group.js +3 -3
  46. package/es/components/checkbox/checkbox-group.js.map +1 -1
  47. package/es/components/checkbox/checkbox-skeleton.js +2 -2
  48. package/es/components/checkbox/checkbox-skeleton.js.map +1 -1
  49. package/es/components/checkbox/checkbox.js +1 -1
  50. package/es/components/code-snippet/code-snippet-skeleton.js +2 -2
  51. package/es/components/code-snippet/code-snippet-skeleton.js.map +1 -1
  52. package/es/components/code-snippet/code-snippet.js +3 -3
  53. package/es/components/code-snippet/code-snippet.js.map +1 -1
  54. package/es/components/combo-box/combo-box-item.js +2 -2
  55. package/es/components/combo-box/combo-box-item.js.map +1 -1
  56. package/es/components/combo-box/combo-box.js +16 -8
  57. package/es/components/combo-box/combo-box.js.map +1 -1
  58. package/es/components/combo-button/combo-button.js +3 -3
  59. package/es/components/combo-button/combo-button.js.map +1 -1
  60. package/es/components/contained-list/contained-list-description.js +2 -2
  61. package/es/components/contained-list/contained-list-description.js.map +1 -1
  62. package/es/components/contained-list/contained-list-item.js +2 -2
  63. package/es/components/contained-list/contained-list-item.js.map +1 -1
  64. package/es/components/contained-list/contained-list.js +2 -2
  65. package/es/components/contained-list/contained-list.js.map +1 -1
  66. package/es/components/copy/copy.js +2 -2
  67. package/es/components/copy/copy.js.map +1 -1
  68. package/es/components/copy-button/copy-button.js +3 -3
  69. package/es/components/copy-button/copy-button.js.map +1 -1
  70. package/es/components/data-table/table-batch-actions.js +2 -2
  71. package/es/components/data-table/table-batch-actions.js.map +1 -1
  72. package/es/components/data-table/table-body.js +2 -2
  73. package/es/components/data-table/table-body.js.map +1 -1
  74. package/es/components/data-table/table-cell-content.js +2 -2
  75. package/es/components/data-table/table-cell-content.js.map +1 -1
  76. package/es/components/data-table/table-cell.js +2 -2
  77. package/es/components/data-table/table-cell.js.map +1 -1
  78. package/es/components/data-table/table-expanded-row.js +2 -2
  79. package/es/components/data-table/table-expanded-row.js.map +1 -1
  80. package/es/components/data-table/table-head.js +2 -2
  81. package/es/components/data-table/table-head.js.map +1 -1
  82. package/es/components/data-table/table-header-cell.js +3 -3
  83. package/es/components/data-table/table-header-cell.js.map +1 -1
  84. package/es/components/data-table/table-header-description.js +2 -2
  85. package/es/components/data-table/table-header-description.js.map +1 -1
  86. package/es/components/data-table/table-header-row.js +2 -2
  87. package/es/components/data-table/table-header-row.js.map +1 -1
  88. package/es/components/data-table/table-header-title.js +2 -2
  89. package/es/components/data-table/table-header-title.js.map +1 -1
  90. package/es/components/data-table/table-row.js +1 -1
  91. package/es/components/data-table/table-skeleton.js +2 -2
  92. package/es/components/data-table/table-skeleton.js.map +1 -1
  93. package/es/components/data-table/table-toolbar-content.js +2 -2
  94. package/es/components/data-table/table-toolbar-content.js.map +1 -1
  95. package/es/components/data-table/table-toolbar-search.js +2 -2
  96. package/es/components/data-table/table-toolbar-search.js.map +1 -1
  97. package/es/components/data-table/table-toolbar.js +2 -2
  98. package/es/components/data-table/table-toolbar.js.map +1 -1
  99. package/es/components/data-table/table.js +2 -2
  100. package/es/components/data-table/table.js.map +1 -1
  101. package/es/components/date-picker/date-picker-input-skeleton.js +2 -2
  102. package/es/components/date-picker/date-picker-input-skeleton.js.map +1 -1
  103. package/es/components/date-picker/date-picker-input.js +1 -1
  104. package/es/components/date-picker/date-picker.js +2 -2
  105. package/es/components/date-picker/date-picker.js.map +1 -1
  106. package/es/components/date-picker/icon-plugin.js +1 -1
  107. package/es/components/dropdown/dropdown-item.js +1 -1
  108. package/es/components/dropdown/dropdown-skeleton.js +2 -2
  109. package/es/components/dropdown/dropdown-skeleton.js.map +1 -1
  110. package/es/components/dropdown/dropdown.js +1 -1
  111. package/es/components/feature-flags/index.d.ts +1 -1
  112. package/es/components/feature-flags/index.js +7 -4
  113. package/es/components/feature-flags/index.js.map +1 -1
  114. package/es/components/file-uploader/demo-file-uploader.js +2 -2
  115. package/es/components/file-uploader/demo-file-uploader.js.map +1 -1
  116. package/es/components/file-uploader/file-uploader-button.js +2 -2
  117. package/es/components/file-uploader/file-uploader-button.js.map +1 -1
  118. package/es/components/file-uploader/file-uploader-drop-container.js +2 -2
  119. package/es/components/file-uploader/file-uploader-drop-container.js.map +1 -1
  120. package/es/components/file-uploader/file-uploader-item.js +3 -3
  121. package/es/components/file-uploader/file-uploader-item.js.map +1 -1
  122. package/es/components/file-uploader/file-uploader-skeleton.js +2 -2
  123. package/es/components/file-uploader/file-uploader-skeleton.js.map +1 -1
  124. package/es/components/file-uploader/file-uploader.js +2 -2
  125. package/es/components/file-uploader/file-uploader.js.map +1 -1
  126. package/es/components/floating-menu/defs.d.ts +10 -2
  127. package/es/components/floating-menu/defs.js +9 -1
  128. package/es/components/floating-menu/defs.js.map +1 -1
  129. package/es/components/floating-menu/floating-menu.d.ts +31 -1
  130. package/es/components/floating-menu/floating-menu.js +110 -43
  131. package/es/components/floating-menu/floating-menu.js.map +1 -1
  132. package/es/components/fluid-number-input/fluid-number-input-skeleton.js +2 -2
  133. package/es/components/fluid-number-input/fluid-number-input-skeleton.js.map +1 -1
  134. package/es/components/fluid-number-input/fluid-number-input.js +2 -2
  135. package/es/components/fluid-number-input/fluid-number-input.js.map +1 -1
  136. package/es/components/fluid-search/fluid-search-skeleton.js +2 -2
  137. package/es/components/fluid-search/fluid-search-skeleton.js.map +1 -1
  138. package/es/components/fluid-search/fluid-search.js +2 -2
  139. package/es/components/fluid-search/fluid-search.js.map +1 -1
  140. package/es/components/fluid-select/fluid-select-skeleton.js +2 -2
  141. package/es/components/fluid-select/fluid-select-skeleton.js.map +1 -1
  142. package/es/components/fluid-text-input/fluid-text-input-skeleton.js +2 -2
  143. package/es/components/fluid-text-input/fluid-text-input-skeleton.js.map +1 -1
  144. package/es/components/fluid-text-input/fluid-text-input.js +2 -2
  145. package/es/components/fluid-text-input/fluid-text-input.js.map +1 -1
  146. package/es/components/fluid-textarea/fluid-textarea-skeleton.js +2 -2
  147. package/es/components/fluid-textarea/fluid-textarea-skeleton.js.map +1 -1
  148. package/es/components/fluid-textarea/fluid-textarea.js +2 -2
  149. package/es/components/fluid-textarea/fluid-textarea.js.map +1 -1
  150. package/es/components/fluid-time-picker/fluid-time-picker-select.js +2 -2
  151. package/es/components/fluid-time-picker/fluid-time-picker-select.js.map +1 -1
  152. package/es/components/fluid-time-picker/fluid-time-picker-skeleton.js +2 -2
  153. package/es/components/fluid-time-picker/fluid-time-picker-skeleton.js.map +1 -1
  154. package/es/components/fluid-time-picker/fluid-time-picker.js +3 -3
  155. package/es/components/fluid-time-picker/fluid-time-picker.js.map +1 -1
  156. package/es/components/form/form-item.js +2 -2
  157. package/es/components/form/form-item.js.map +1 -1
  158. package/es/components/form/form.js +2 -2
  159. package/es/components/form/form.js.map +1 -1
  160. package/es/components/form-group/form-group.js +2 -2
  161. package/es/components/form-group/form-group.js.map +1 -1
  162. package/es/components/grid/column-hang.js +2 -2
  163. package/es/components/grid/column-hang.js.map +1 -1
  164. package/es/components/grid/column.js +2 -2
  165. package/es/components/grid/column.js.map +1 -1
  166. package/es/components/grid/grid.js +2 -2
  167. package/es/components/grid/grid.js.map +1 -1
  168. package/es/components/heading/heading.js +2 -2
  169. package/es/components/heading/heading.js.map +1 -1
  170. package/es/components/icon/icon.js +2 -2
  171. package/es/components/icon/icon.js.map +1 -1
  172. package/es/components/icon-indicator/icon-indicator.js +3 -3
  173. package/es/components/icon-indicator/icon-indicator.js.map +1 -1
  174. package/es/components/inline-loading/inline-loading.js +3 -3
  175. package/es/components/inline-loading/inline-loading.js.map +1 -1
  176. package/es/components/layer/layer.js +2 -2
  177. package/es/components/layer/layer.js.map +1 -1
  178. package/es/components/list/list-item.js +2 -2
  179. package/es/components/list/list-item.js.map +1 -1
  180. package/es/components/list/ordered-list.js +2 -2
  181. package/es/components/list/ordered-list.js.map +1 -1
  182. package/es/components/loading/loading.js +2 -2
  183. package/es/components/loading/loading.js.map +1 -1
  184. package/es/components/menu/menu-item-divider.js +2 -2
  185. package/es/components/menu/menu-item-divider.js.map +1 -1
  186. package/es/components/menu/menu-item-group.js +2 -2
  187. package/es/components/menu/menu-item-group.js.map +1 -1
  188. package/es/components/menu/menu-item-radio-group.js +2 -2
  189. package/es/components/menu/menu-item-radio-group.js.map +1 -1
  190. package/es/components/menu/menu-item-selectable.js +2 -2
  191. package/es/components/menu/menu-item-selectable.js.map +1 -1
  192. package/es/components/menu/menu-item.js +3 -3
  193. package/es/components/menu/menu-item.js.map +1 -1
  194. package/es/components/menu/menu.js +2 -2
  195. package/es/components/menu/menu.js.map +1 -1
  196. package/es/components/menu-button/menu-button.js +3 -3
  197. package/es/components/menu-button/menu-button.js.map +1 -1
  198. package/es/components/modal/modal-body-content.js +2 -2
  199. package/es/components/modal/modal-body-content.js.map +1 -1
  200. package/es/components/modal/modal-body.js +2 -2
  201. package/es/components/modal/modal-body.js.map +1 -1
  202. package/es/components/modal/modal-close-button.js +3 -3
  203. package/es/components/modal/modal-close-button.js.map +1 -1
  204. package/es/components/modal/modal-footer-button.js +2 -2
  205. package/es/components/modal/modal-footer-button.js.map +1 -1
  206. package/es/components/modal/modal-footer.js +2 -2
  207. package/es/components/modal/modal-footer.js.map +1 -1
  208. package/es/components/modal/modal-header.js +2 -2
  209. package/es/components/modal/modal-header.js.map +1 -1
  210. package/es/components/modal/modal-heading.js +2 -2
  211. package/es/components/modal/modal-heading.js.map +1 -1
  212. package/es/components/modal/modal-label.js +2 -2
  213. package/es/components/modal/modal-label.js.map +1 -1
  214. package/es/components/modal/modal.js +2 -2
  215. package/es/components/modal/modal.js.map +1 -1
  216. package/es/components/multi-select/multi-select-item.js +2 -2
  217. package/es/components/multi-select/multi-select-item.js.map +1 -1
  218. package/es/components/multi-select/multi-select.d.ts +9 -0
  219. package/es/components/multi-select/multi-select.js +58 -11
  220. package/es/components/multi-select/multi-select.js.map +1 -1
  221. package/es/components/notification/actionable-notification-button.js +2 -2
  222. package/es/components/notification/actionable-notification-button.js.map +1 -1
  223. package/es/components/notification/actionable-notification.js +1 -1
  224. package/es/components/notification/callout-notification.js +3 -3
  225. package/es/components/notification/callout-notification.js.map +1 -1
  226. package/es/components/notification/inline-notification.js +1 -1
  227. package/es/components/notification/toast-notification.js +2 -2
  228. package/es/components/notification/toast-notification.js.map +1 -1
  229. package/es/components/number-input/number-input.js +1 -1
  230. package/es/components/overflow-menu/overflow-menu-body.d.ts +18 -2
  231. package/es/components/overflow-menu/overflow-menu-body.js +25 -4
  232. package/es/components/overflow-menu/overflow-menu-body.js.map +1 -1
  233. package/es/components/overflow-menu/overflow-menu-item.js +2 -2
  234. package/es/components/overflow-menu/overflow-menu-item.js.map +1 -1
  235. package/es/components/overflow-menu/overflow-menu.scss.js +1 -1
  236. package/es/components/page-header/page-header-breadcrumb.js +2 -2
  237. package/es/components/page-header/page-header-breadcrumb.js.map +1 -1
  238. package/es/components/page-header/page-header-content-text.js +2 -2
  239. package/es/components/page-header/page-header-content-text.js.map +1 -1
  240. package/es/components/page-header/page-header-content.js +2 -2
  241. package/es/components/page-header/page-header-content.js.map +1 -1
  242. package/es/components/page-header/page-header-hero-image.js +2 -2
  243. package/es/components/page-header/page-header-hero-image.js.map +1 -1
  244. package/es/components/page-header/page-header-tabs.js +2 -2
  245. package/es/components/page-header/page-header-tabs.js.map +1 -1
  246. package/es/components/page-header/page-header.js +2 -2
  247. package/es/components/page-header/page-header.js.map +1 -1
  248. package/es/components/pagination/pagination.js +4 -4
  249. package/es/components/pagination/pagination.js.map +1 -1
  250. package/es/components/pagination-nav/pagination-nav.js +3 -3
  251. package/es/components/pagination-nav/pagination-nav.js.map +1 -1
  252. package/es/components/password-input/password-input-skeleton.js +2 -2
  253. package/es/components/password-input/password-input-skeleton.js.map +1 -1
  254. package/es/components/password-input/password-input.js +3 -3
  255. package/es/components/password-input/password-input.js.map +1 -1
  256. package/es/components/progress-bar/progress-bar.js +3 -3
  257. package/es/components/progress-bar/progress-bar.js.map +1 -1
  258. package/es/components/progress-indicator/progress-indicator-skeleton.js +2 -2
  259. package/es/components/progress-indicator/progress-indicator-skeleton.js.map +1 -1
  260. package/es/components/progress-indicator/progress-indicator.js +2 -2
  261. package/es/components/progress-indicator/progress-indicator.js.map +1 -1
  262. package/es/components/progress-indicator/progress-step-skeleton.js +3 -3
  263. package/es/components/progress-indicator/progress-step-skeleton.js.map +1 -1
  264. package/es/components/progress-indicator/progress-step.js +3 -3
  265. package/es/components/progress-indicator/progress-step.js.map +1 -1
  266. package/es/components/radio-button/radio-button-group.js +3 -3
  267. package/es/components/radio-button/radio-button-group.js.map +1 -1
  268. package/es/components/radio-button/radio-button-skeleton.js +2 -2
  269. package/es/components/radio-button/radio-button-skeleton.js.map +1 -1
  270. package/es/components/radio-button/radio-button.js +2 -2
  271. package/es/components/radio-button/radio-button.js.map +1 -1
  272. package/es/components/search/search.js +1 -1
  273. package/es/components/select/select-item-group.js +2 -2
  274. package/es/components/select/select-item-group.js.map +1 -1
  275. package/es/components/select/select-item.js +2 -2
  276. package/es/components/select/select-item.js.map +1 -1
  277. package/es/components/select/select.js +1 -1
  278. package/es/components/shape-indicator/shape-indicator.js +3 -3
  279. package/es/components/shape-indicator/shape-indicator.js.map +1 -1
  280. package/es/components/side-panel/side-panel.js +3 -3
  281. package/es/components/side-panel/side-panel.js.map +1 -1
  282. package/es/components/skeleton-icon/skeleton-icon.js +2 -2
  283. package/es/components/skeleton-icon/skeleton-icon.js.map +1 -1
  284. package/es/components/skeleton-placeholder/skeleton-placeholder.js +2 -2
  285. package/es/components/skeleton-placeholder/skeleton-placeholder.js.map +1 -1
  286. package/es/components/skeleton-text/skeleton-text.js +2 -2
  287. package/es/components/skeleton-text/skeleton-text.js.map +1 -1
  288. package/es/components/skip-to-content/skip-to-content.js +2 -2
  289. package/es/components/skip-to-content/skip-to-content.js.map +1 -1
  290. package/es/components/slider/slider-input.js +3 -3
  291. package/es/components/slider/slider-input.js.map +1 -1
  292. package/es/components/slider/slider-skeleton.js +2 -2
  293. package/es/components/slider/slider-skeleton.js.map +1 -1
  294. package/es/components/slider/slider.js +2 -2
  295. package/es/components/slider/slider.js.map +1 -1
  296. package/es/components/slug/slug-action-button.js +2 -2
  297. package/es/components/slug/slug-action-button.js.map +1 -1
  298. package/es/components/slug/slug.js +3 -3
  299. package/es/components/slug/slug.js.map +1 -1
  300. package/es/components/stack/stack.js +2 -2
  301. package/es/components/stack/stack.js.map +1 -1
  302. package/es/components/structured-list/structured-list-body.js +2 -2
  303. package/es/components/structured-list/structured-list-body.js.map +1 -1
  304. package/es/components/structured-list/structured-list-cell.js +2 -2
  305. package/es/components/structured-list/structured-list-cell.js.map +1 -1
  306. package/es/components/structured-list/structured-list-head.js +2 -2
  307. package/es/components/structured-list/structured-list-head.js.map +1 -1
  308. package/es/components/structured-list/structured-list-header-cell-skeleton.js +2 -2
  309. package/es/components/structured-list/structured-list-header-cell-skeleton.js.map +1 -1
  310. package/es/components/structured-list/structured-list-header-cell.js +2 -2
  311. package/es/components/structured-list/structured-list-header-cell.js.map +1 -1
  312. package/es/components/structured-list/structured-list-header-row.js +2 -2
  313. package/es/components/structured-list/structured-list-header-row.js.map +1 -1
  314. package/es/components/structured-list/structured-list-row.js +3 -3
  315. package/es/components/structured-list/structured-list-row.js.map +1 -1
  316. package/es/components/structured-list/structured-list.js +2 -2
  317. package/es/components/structured-list/structured-list.js.map +1 -1
  318. package/es/components/tabs/tab-skeleton.js +2 -2
  319. package/es/components/tabs/tab-skeleton.js.map +1 -1
  320. package/es/components/tabs/tab.js +2 -2
  321. package/es/components/tabs/tab.js.map +1 -1
  322. package/es/components/tabs/tabs-skeleton.js +2 -2
  323. package/es/components/tabs/tabs-skeleton.js.map +1 -1
  324. package/es/components/tabs/tabs.js +3 -3
  325. package/es/components/tabs/tabs.js.map +1 -1
  326. package/es/components/tabs/tabs.scss.js +1 -1
  327. package/es/components/tag/dismissible-tag.js +3 -3
  328. package/es/components/tag/dismissible-tag.js.map +1 -1
  329. package/es/components/tag/operational-tag.js +2 -2
  330. package/es/components/tag/operational-tag.js.map +1 -1
  331. package/es/components/tag/selectable-tag.js +2 -2
  332. package/es/components/tag/selectable-tag.js.map +1 -1
  333. package/es/components/tag/tag-skeleton.js +2 -2
  334. package/es/components/tag/tag-skeleton.js.map +1 -1
  335. package/es/components/tag/tag.js +1 -1
  336. package/es/components/tearsheet/tearsheet.js +2 -2
  337. package/es/components/tearsheet/tearsheet.js.map +1 -1
  338. package/es/components/text-input/text-input.js +1 -1
  339. package/es/components/textarea/textarea.js +1 -1
  340. package/es/components/tile/clickable-tile.js +3 -3
  341. package/es/components/tile/clickable-tile.js.map +1 -1
  342. package/es/components/tile/expandable-tile.js +3 -3
  343. package/es/components/tile/expandable-tile.js.map +1 -1
  344. package/es/components/tile/radio-tile.js +3 -3
  345. package/es/components/tile/radio-tile.js.map +1 -1
  346. package/es/components/tile/selectable-tile.js +1 -1
  347. package/es/components/tile/tile-group.js +2 -2
  348. package/es/components/tile/tile-group.js.map +1 -1
  349. package/es/components/tile/tile.js +2 -2
  350. package/es/components/tile/tile.js.map +1 -1
  351. package/es/components/time-picker/time-picker-select.js +3 -3
  352. package/es/components/time-picker/time-picker-select.js.map +1 -1
  353. package/es/components/time-picker/time-picker.js +1 -1
  354. package/es/components/toggle/toggle-skeleton.js +2 -2
  355. package/es/components/toggle/toggle-skeleton.js.map +1 -1
  356. package/es/components/toggle/toggle.js +2 -2
  357. package/es/components/toggle/toggle.js.map +1 -1
  358. package/es/components/toggle-tip/toggletip.js +1 -1
  359. package/es/components/tooltip/definition-tooltip.js +2 -2
  360. package/es/components/tooltip/definition-tooltip.js.map +1 -1
  361. package/es/components/tooltip/tooltip-content.js +2 -2
  362. package/es/components/tooltip/tooltip-content.js.map +1 -1
  363. package/es/components/tooltip/tooltip.js +2 -2
  364. package/es/components/tooltip/tooltip.js.map +1 -1
  365. package/es/components/tree-view/tree-node.js +3 -3
  366. package/es/components/tree-view/tree-node.js.map +1 -1
  367. package/es/components/tree-view/tree-view.js +2 -2
  368. package/es/components/tree-view/tree-view.js.map +1 -1
  369. package/es/components/ui-shell/header-global-action.js +2 -2
  370. package/es/components/ui-shell/header-global-action.js.map +1 -1
  371. package/es/components/ui-shell/header-menu-button.js +3 -3
  372. package/es/components/ui-shell/header-menu-button.js.map +1 -1
  373. package/es/components/ui-shell/header-menu-item.js +2 -2
  374. package/es/components/ui-shell/header-menu-item.js.map +1 -1
  375. package/es/components/ui-shell/header-menu.js +3 -3
  376. package/es/components/ui-shell/header-menu.js.map +1 -1
  377. package/es/components/ui-shell/header-name.js +2 -2
  378. package/es/components/ui-shell/header-name.js.map +1 -1
  379. package/es/components/ui-shell/header-nav.js +2 -2
  380. package/es/components/ui-shell/header-nav.js.map +1 -1
  381. package/es/components/ui-shell/header-panel.js +2 -2
  382. package/es/components/ui-shell/header-panel.js.map +1 -1
  383. package/es/components/ui-shell/header-side-nav-items.js +2 -2
  384. package/es/components/ui-shell/header-side-nav-items.js.map +1 -1
  385. package/es/components/ui-shell/header.js +2 -2
  386. package/es/components/ui-shell/header.js.map +1 -1
  387. package/es/components/ui-shell/side-nav-divider.js +2 -2
  388. package/es/components/ui-shell/side-nav-divider.js.map +1 -1
  389. package/es/components/ui-shell/side-nav-items.js +2 -2
  390. package/es/components/ui-shell/side-nav-items.js.map +1 -1
  391. package/es/components/ui-shell/side-nav-link.js +2 -2
  392. package/es/components/ui-shell/side-nav-link.js.map +1 -1
  393. package/es/components/ui-shell/side-nav-menu-item.js +2 -2
  394. package/es/components/ui-shell/side-nav-menu-item.js.map +1 -1
  395. package/es/components/ui-shell/side-nav-menu.js +3 -3
  396. package/es/components/ui-shell/side-nav-menu.js.map +1 -1
  397. package/es/components/ui-shell/side-nav.js +2 -2
  398. package/es/components/ui-shell/side-nav.js.map +1 -1
  399. package/es/components/ui-shell/switcher-divider.js +2 -2
  400. package/es/components/ui-shell/switcher-divider.js.map +1 -1
  401. package/es/components/ui-shell/switcher-item.js +2 -2
  402. package/es/components/ui-shell/switcher-item.js.map +1 -1
  403. package/es/components/ui-shell/switcher.js +2 -2
  404. package/es/components/ui-shell/switcher.js.map +1 -1
  405. package/es/feature-flags/es/index.js +153 -144
  406. package/es/feature-flags/es/index.js.map +1 -1
  407. package/es-custom/components/accordion/accordion-item-skeleton.js +3 -3
  408. package/es-custom/components/accordion/accordion-item-skeleton.js.map +1 -1
  409. package/es-custom/components/accordion/accordion-item.js +3 -3
  410. package/es-custom/components/accordion/accordion-item.js.map +1 -1
  411. package/es-custom/components/accordion/accordion-skeleton.js +3 -3
  412. package/es-custom/components/accordion/accordion-skeleton.js.map +1 -1
  413. package/es-custom/components/accordion/accordion.js +2 -2
  414. package/es-custom/components/accordion/accordion.js.map +1 -1
  415. package/es-custom/components/ai-label/ai-label-action-button.js +2 -2
  416. package/es-custom/components/ai-label/ai-label-action-button.js.map +1 -1
  417. package/es-custom/components/ai-label/ai-label.js +3 -3
  418. package/es-custom/components/ai-label/ai-label.js.map +1 -1
  419. package/es-custom/components/ai-skeleton/ai-skeleton-icon.js +2 -2
  420. package/es-custom/components/ai-skeleton/ai-skeleton-icon.js.map +1 -1
  421. package/es-custom/components/ai-skeleton/ai-skeleton-placeholder.js +2 -2
  422. package/es-custom/components/ai-skeleton/ai-skeleton-placeholder.js.map +1 -1
  423. package/es-custom/components/ai-skeleton/ai-skeleton-text.js +2 -2
  424. package/es-custom/components/ai-skeleton/ai-skeleton-text.js.map +1 -1
  425. package/es-custom/components/badge-indicator/badge-indicator.js +2 -2
  426. package/es-custom/components/badge-indicator/badge-indicator.js.map +1 -1
  427. package/es-custom/components/breadcrumb/breadcrumb-item.d.ts +1 -1
  428. package/es-custom/components/breadcrumb/breadcrumb-item.js +15 -12
  429. package/es-custom/components/breadcrumb/breadcrumb-item.js.map +1 -1
  430. package/es-custom/components/breadcrumb/breadcrumb-link.js +2 -2
  431. package/es-custom/components/breadcrumb/breadcrumb-link.js.map +1 -1
  432. package/es-custom/components/breadcrumb/breadcrumb-overflow-menu.js +3 -3
  433. package/es-custom/components/breadcrumb/breadcrumb-overflow-menu.js.map +1 -1
  434. package/es-custom/components/breadcrumb/breadcrumb-skeleton.js +2 -2
  435. package/es-custom/components/breadcrumb/breadcrumb-skeleton.js.map +1 -1
  436. package/es-custom/components/breadcrumb/breadcrumb.js +2 -2
  437. package/es-custom/components/breadcrumb/breadcrumb.js.map +1 -1
  438. package/es-custom/components/button/button-set.js +2 -2
  439. package/es-custom/components/button/button-set.js.map +1 -1
  440. package/es-custom/components/button/button-skeleton.js +3 -2
  441. package/es-custom/components/button/button-skeleton.js.map +1 -1
  442. package/es-custom/components/button/button.d.ts +14 -16
  443. package/es-custom/components/button/button.js +27 -24
  444. package/es-custom/components/button/button.js.map +1 -1
  445. package/es-custom/components/button/button.scss.js +1 -1
  446. package/es-custom/components/chat-button/chat-button-skeleton.js +2 -2
  447. package/es-custom/components/chat-button/chat-button-skeleton.js.map +1 -1
  448. package/es-custom/components/chat-button/chat-button.js +2 -2
  449. package/es-custom/components/chat-button/chat-button.js.map +1 -1
  450. package/es-custom/components/checkbox/checkbox-group.js +3 -3
  451. package/es-custom/components/checkbox/checkbox-group.js.map +1 -1
  452. package/es-custom/components/checkbox/checkbox-skeleton.js +2 -2
  453. package/es-custom/components/checkbox/checkbox-skeleton.js.map +1 -1
  454. package/es-custom/components/checkbox/checkbox.js +1 -1
  455. package/es-custom/components/code-snippet/code-snippet-skeleton.js +2 -2
  456. package/es-custom/components/code-snippet/code-snippet-skeleton.js.map +1 -1
  457. package/es-custom/components/code-snippet/code-snippet.js +3 -3
  458. package/es-custom/components/code-snippet/code-snippet.js.map +1 -1
  459. package/es-custom/components/combo-box/combo-box-item.js +2 -2
  460. package/es-custom/components/combo-box/combo-box-item.js.map +1 -1
  461. package/es-custom/components/combo-box/combo-box.js +16 -8
  462. package/es-custom/components/combo-box/combo-box.js.map +1 -1
  463. package/es-custom/components/combo-button/combo-button.js +3 -3
  464. package/es-custom/components/combo-button/combo-button.js.map +1 -1
  465. package/es-custom/components/contained-list/contained-list-description.js +2 -2
  466. package/es-custom/components/contained-list/contained-list-description.js.map +1 -1
  467. package/es-custom/components/contained-list/contained-list-item.js +2 -2
  468. package/es-custom/components/contained-list/contained-list-item.js.map +1 -1
  469. package/es-custom/components/contained-list/contained-list.js +2 -2
  470. package/es-custom/components/contained-list/contained-list.js.map +1 -1
  471. package/es-custom/components/copy/copy.js +2 -2
  472. package/es-custom/components/copy/copy.js.map +1 -1
  473. package/es-custom/components/copy-button/copy-button.js +3 -3
  474. package/es-custom/components/copy-button/copy-button.js.map +1 -1
  475. package/es-custom/components/data-table/table-batch-actions.js +2 -2
  476. package/es-custom/components/data-table/table-batch-actions.js.map +1 -1
  477. package/es-custom/components/data-table/table-body.js +2 -2
  478. package/es-custom/components/data-table/table-body.js.map +1 -1
  479. package/es-custom/components/data-table/table-cell-content.js +2 -2
  480. package/es-custom/components/data-table/table-cell-content.js.map +1 -1
  481. package/es-custom/components/data-table/table-cell.js +2 -2
  482. package/es-custom/components/data-table/table-cell.js.map +1 -1
  483. package/es-custom/components/data-table/table-expanded-row.js +2 -2
  484. package/es-custom/components/data-table/table-expanded-row.js.map +1 -1
  485. package/es-custom/components/data-table/table-head.js +2 -2
  486. package/es-custom/components/data-table/table-head.js.map +1 -1
  487. package/es-custom/components/data-table/table-header-cell.js +3 -3
  488. package/es-custom/components/data-table/table-header-cell.js.map +1 -1
  489. package/es-custom/components/data-table/table-header-description.js +2 -2
  490. package/es-custom/components/data-table/table-header-description.js.map +1 -1
  491. package/es-custom/components/data-table/table-header-row.js +2 -2
  492. package/es-custom/components/data-table/table-header-row.js.map +1 -1
  493. package/es-custom/components/data-table/table-header-title.js +2 -2
  494. package/es-custom/components/data-table/table-header-title.js.map +1 -1
  495. package/es-custom/components/data-table/table-row.js +1 -1
  496. package/es-custom/components/data-table/table-skeleton.js +2 -2
  497. package/es-custom/components/data-table/table-skeleton.js.map +1 -1
  498. package/es-custom/components/data-table/table-toolbar-content.js +2 -2
  499. package/es-custom/components/data-table/table-toolbar-content.js.map +1 -1
  500. package/es-custom/components/data-table/table-toolbar-search.js +2 -2
  501. package/es-custom/components/data-table/table-toolbar-search.js.map +1 -1
  502. package/es-custom/components/data-table/table-toolbar.js +2 -2
  503. package/es-custom/components/data-table/table-toolbar.js.map +1 -1
  504. package/es-custom/components/data-table/table.js +2 -2
  505. package/es-custom/components/data-table/table.js.map +1 -1
  506. package/es-custom/components/date-picker/date-picker-input-skeleton.js +2 -2
  507. package/es-custom/components/date-picker/date-picker-input-skeleton.js.map +1 -1
  508. package/es-custom/components/date-picker/date-picker-input.js +1 -1
  509. package/es-custom/components/date-picker/date-picker.js +2 -2
  510. package/es-custom/components/date-picker/date-picker.js.map +1 -1
  511. package/es-custom/components/date-picker/icon-plugin.js +1 -1
  512. package/es-custom/components/dropdown/dropdown-item.js +1 -1
  513. package/es-custom/components/dropdown/dropdown-skeleton.js +2 -2
  514. package/es-custom/components/dropdown/dropdown-skeleton.js.map +1 -1
  515. package/es-custom/components/dropdown/dropdown.js +1 -1
  516. package/es-custom/components/feature-flags/index.d.ts +1 -1
  517. package/es-custom/components/feature-flags/index.js +7 -4
  518. package/es-custom/components/feature-flags/index.js.map +1 -1
  519. package/es-custom/components/file-uploader/demo-file-uploader.js +2 -2
  520. package/es-custom/components/file-uploader/demo-file-uploader.js.map +1 -1
  521. package/es-custom/components/file-uploader/file-uploader-button.js +2 -2
  522. package/es-custom/components/file-uploader/file-uploader-button.js.map +1 -1
  523. package/es-custom/components/file-uploader/file-uploader-drop-container.js +2 -2
  524. package/es-custom/components/file-uploader/file-uploader-drop-container.js.map +1 -1
  525. package/es-custom/components/file-uploader/file-uploader-item.js +3 -3
  526. package/es-custom/components/file-uploader/file-uploader-item.js.map +1 -1
  527. package/es-custom/components/file-uploader/file-uploader-skeleton.js +2 -2
  528. package/es-custom/components/file-uploader/file-uploader-skeleton.js.map +1 -1
  529. package/es-custom/components/file-uploader/file-uploader.js +2 -2
  530. package/es-custom/components/file-uploader/file-uploader.js.map +1 -1
  531. package/es-custom/components/floating-menu/defs.d.ts +10 -2
  532. package/es-custom/components/floating-menu/defs.js +9 -1
  533. package/es-custom/components/floating-menu/defs.js.map +1 -1
  534. package/es-custom/components/floating-menu/floating-menu.d.ts +31 -1
  535. package/es-custom/components/floating-menu/floating-menu.js +110 -43
  536. package/es-custom/components/floating-menu/floating-menu.js.map +1 -1
  537. package/es-custom/components/fluid-number-input/fluid-number-input-skeleton.js +2 -2
  538. package/es-custom/components/fluid-number-input/fluid-number-input-skeleton.js.map +1 -1
  539. package/es-custom/components/fluid-number-input/fluid-number-input.js +2 -2
  540. package/es-custom/components/fluid-number-input/fluid-number-input.js.map +1 -1
  541. package/es-custom/components/fluid-search/fluid-search-skeleton.js +2 -2
  542. package/es-custom/components/fluid-search/fluid-search-skeleton.js.map +1 -1
  543. package/es-custom/components/fluid-search/fluid-search.js +2 -2
  544. package/es-custom/components/fluid-search/fluid-search.js.map +1 -1
  545. package/es-custom/components/fluid-select/fluid-select-skeleton.js +2 -2
  546. package/es-custom/components/fluid-select/fluid-select-skeleton.js.map +1 -1
  547. package/es-custom/components/fluid-text-input/fluid-text-input-skeleton.js +2 -2
  548. package/es-custom/components/fluid-text-input/fluid-text-input-skeleton.js.map +1 -1
  549. package/es-custom/components/fluid-text-input/fluid-text-input.js +2 -2
  550. package/es-custom/components/fluid-text-input/fluid-text-input.js.map +1 -1
  551. package/es-custom/components/fluid-textarea/fluid-textarea-skeleton.js +2 -2
  552. package/es-custom/components/fluid-textarea/fluid-textarea-skeleton.js.map +1 -1
  553. package/es-custom/components/fluid-textarea/fluid-textarea.js +2 -2
  554. package/es-custom/components/fluid-textarea/fluid-textarea.js.map +1 -1
  555. package/es-custom/components/fluid-time-picker/fluid-time-picker-select.js +2 -2
  556. package/es-custom/components/fluid-time-picker/fluid-time-picker-select.js.map +1 -1
  557. package/es-custom/components/fluid-time-picker/fluid-time-picker-skeleton.js +2 -2
  558. package/es-custom/components/fluid-time-picker/fluid-time-picker-skeleton.js.map +1 -1
  559. package/es-custom/components/fluid-time-picker/fluid-time-picker.js +3 -3
  560. package/es-custom/components/fluid-time-picker/fluid-time-picker.js.map +1 -1
  561. package/es-custom/components/form/form-item.js +2 -2
  562. package/es-custom/components/form/form-item.js.map +1 -1
  563. package/es-custom/components/form/form.js +2 -2
  564. package/es-custom/components/form/form.js.map +1 -1
  565. package/es-custom/components/form-group/form-group.js +2 -2
  566. package/es-custom/components/form-group/form-group.js.map +1 -1
  567. package/es-custom/components/grid/column-hang.js +2 -2
  568. package/es-custom/components/grid/column-hang.js.map +1 -1
  569. package/es-custom/components/grid/column.js +2 -2
  570. package/es-custom/components/grid/column.js.map +1 -1
  571. package/es-custom/components/grid/grid.js +2 -2
  572. package/es-custom/components/grid/grid.js.map +1 -1
  573. package/es-custom/components/heading/heading.js +2 -2
  574. package/es-custom/components/heading/heading.js.map +1 -1
  575. package/es-custom/components/icon/icon.js +2 -2
  576. package/es-custom/components/icon/icon.js.map +1 -1
  577. package/es-custom/components/icon-indicator/icon-indicator.js +3 -3
  578. package/es-custom/components/icon-indicator/icon-indicator.js.map +1 -1
  579. package/es-custom/components/inline-loading/inline-loading.js +3 -3
  580. package/es-custom/components/inline-loading/inline-loading.js.map +1 -1
  581. package/es-custom/components/layer/layer.js +2 -2
  582. package/es-custom/components/layer/layer.js.map +1 -1
  583. package/es-custom/components/list/list-item.js +2 -2
  584. package/es-custom/components/list/list-item.js.map +1 -1
  585. package/es-custom/components/list/ordered-list.js +2 -2
  586. package/es-custom/components/list/ordered-list.js.map +1 -1
  587. package/es-custom/components/loading/loading.js +2 -2
  588. package/es-custom/components/loading/loading.js.map +1 -1
  589. package/es-custom/components/menu/menu-item-divider.js +2 -2
  590. package/es-custom/components/menu/menu-item-divider.js.map +1 -1
  591. package/es-custom/components/menu/menu-item-group.js +2 -2
  592. package/es-custom/components/menu/menu-item-group.js.map +1 -1
  593. package/es-custom/components/menu/menu-item-radio-group.js +2 -2
  594. package/es-custom/components/menu/menu-item-radio-group.js.map +1 -1
  595. package/es-custom/components/menu/menu-item-selectable.js +2 -2
  596. package/es-custom/components/menu/menu-item-selectable.js.map +1 -1
  597. package/es-custom/components/menu/menu-item.js +3 -3
  598. package/es-custom/components/menu/menu-item.js.map +1 -1
  599. package/es-custom/components/menu/menu.js +2 -2
  600. package/es-custom/components/menu/menu.js.map +1 -1
  601. package/es-custom/components/menu-button/menu-button.js +3 -3
  602. package/es-custom/components/menu-button/menu-button.js.map +1 -1
  603. package/es-custom/components/modal/modal-body-content.js +2 -2
  604. package/es-custom/components/modal/modal-body-content.js.map +1 -1
  605. package/es-custom/components/modal/modal-body.js +2 -2
  606. package/es-custom/components/modal/modal-body.js.map +1 -1
  607. package/es-custom/components/modal/modal-close-button.js +3 -3
  608. package/es-custom/components/modal/modal-close-button.js.map +1 -1
  609. package/es-custom/components/modal/modal-footer-button.js +2 -2
  610. package/es-custom/components/modal/modal-footer-button.js.map +1 -1
  611. package/es-custom/components/modal/modal-footer.js +2 -2
  612. package/es-custom/components/modal/modal-footer.js.map +1 -1
  613. package/es-custom/components/modal/modal-header.js +2 -2
  614. package/es-custom/components/modal/modal-header.js.map +1 -1
  615. package/es-custom/components/modal/modal-heading.js +2 -2
  616. package/es-custom/components/modal/modal-heading.js.map +1 -1
  617. package/es-custom/components/modal/modal-label.js +2 -2
  618. package/es-custom/components/modal/modal-label.js.map +1 -1
  619. package/es-custom/components/modal/modal.js +2 -2
  620. package/es-custom/components/modal/modal.js.map +1 -1
  621. package/es-custom/components/multi-select/multi-select-item.js +2 -2
  622. package/es-custom/components/multi-select/multi-select-item.js.map +1 -1
  623. package/es-custom/components/multi-select/multi-select.d.ts +9 -0
  624. package/es-custom/components/multi-select/multi-select.js +58 -11
  625. package/es-custom/components/multi-select/multi-select.js.map +1 -1
  626. package/es-custom/components/notification/actionable-notification-button.js +2 -2
  627. package/es-custom/components/notification/actionable-notification-button.js.map +1 -1
  628. package/es-custom/components/notification/actionable-notification.js +1 -1
  629. package/es-custom/components/notification/callout-notification.js +3 -3
  630. package/es-custom/components/notification/callout-notification.js.map +1 -1
  631. package/es-custom/components/notification/inline-notification.js +1 -1
  632. package/es-custom/components/notification/toast-notification.js +2 -2
  633. package/es-custom/components/notification/toast-notification.js.map +1 -1
  634. package/es-custom/components/number-input/number-input.js +1 -1
  635. package/es-custom/components/overflow-menu/overflow-menu-body.d.ts +18 -2
  636. package/es-custom/components/overflow-menu/overflow-menu-body.js +25 -4
  637. package/es-custom/components/overflow-menu/overflow-menu-body.js.map +1 -1
  638. package/es-custom/components/overflow-menu/overflow-menu-item.js +2 -2
  639. package/es-custom/components/overflow-menu/overflow-menu-item.js.map +1 -1
  640. package/es-custom/components/overflow-menu/overflow-menu.scss.js +1 -1
  641. package/es-custom/components/page-header/page-header-breadcrumb.js +2 -2
  642. package/es-custom/components/page-header/page-header-breadcrumb.js.map +1 -1
  643. package/es-custom/components/page-header/page-header-content-text.js +2 -2
  644. package/es-custom/components/page-header/page-header-content-text.js.map +1 -1
  645. package/es-custom/components/page-header/page-header-content.js +2 -2
  646. package/es-custom/components/page-header/page-header-content.js.map +1 -1
  647. package/es-custom/components/page-header/page-header-hero-image.js +2 -2
  648. package/es-custom/components/page-header/page-header-hero-image.js.map +1 -1
  649. package/es-custom/components/page-header/page-header-tabs.js +2 -2
  650. package/es-custom/components/page-header/page-header-tabs.js.map +1 -1
  651. package/es-custom/components/page-header/page-header.js +2 -2
  652. package/es-custom/components/page-header/page-header.js.map +1 -1
  653. package/es-custom/components/pagination/pagination.js +4 -4
  654. package/es-custom/components/pagination/pagination.js.map +1 -1
  655. package/es-custom/components/pagination-nav/pagination-nav.js +3 -3
  656. package/es-custom/components/pagination-nav/pagination-nav.js.map +1 -1
  657. package/es-custom/components/password-input/password-input-skeleton.js +2 -2
  658. package/es-custom/components/password-input/password-input-skeleton.js.map +1 -1
  659. package/es-custom/components/password-input/password-input.js +3 -3
  660. package/es-custom/components/password-input/password-input.js.map +1 -1
  661. package/es-custom/components/progress-bar/progress-bar.js +3 -3
  662. package/es-custom/components/progress-bar/progress-bar.js.map +1 -1
  663. package/es-custom/components/progress-indicator/progress-indicator-skeleton.js +2 -2
  664. package/es-custom/components/progress-indicator/progress-indicator-skeleton.js.map +1 -1
  665. package/es-custom/components/progress-indicator/progress-indicator.js +2 -2
  666. package/es-custom/components/progress-indicator/progress-indicator.js.map +1 -1
  667. package/es-custom/components/progress-indicator/progress-step-skeleton.js +3 -3
  668. package/es-custom/components/progress-indicator/progress-step-skeleton.js.map +1 -1
  669. package/es-custom/components/progress-indicator/progress-step.js +3 -3
  670. package/es-custom/components/progress-indicator/progress-step.js.map +1 -1
  671. package/es-custom/components/radio-button/radio-button-group.js +3 -3
  672. package/es-custom/components/radio-button/radio-button-group.js.map +1 -1
  673. package/es-custom/components/radio-button/radio-button-skeleton.js +2 -2
  674. package/es-custom/components/radio-button/radio-button-skeleton.js.map +1 -1
  675. package/es-custom/components/radio-button/radio-button.js +2 -2
  676. package/es-custom/components/radio-button/radio-button.js.map +1 -1
  677. package/es-custom/components/search/search.js +1 -1
  678. package/es-custom/components/select/select-item-group.js +2 -2
  679. package/es-custom/components/select/select-item-group.js.map +1 -1
  680. package/es-custom/components/select/select-item.js +2 -2
  681. package/es-custom/components/select/select-item.js.map +1 -1
  682. package/es-custom/components/select/select.js +1 -1
  683. package/es-custom/components/shape-indicator/shape-indicator.js +3 -3
  684. package/es-custom/components/shape-indicator/shape-indicator.js.map +1 -1
  685. package/es-custom/components/side-panel/side-panel.js +3 -3
  686. package/es-custom/components/side-panel/side-panel.js.map +1 -1
  687. package/es-custom/components/skeleton-icon/skeleton-icon.js +2 -2
  688. package/es-custom/components/skeleton-icon/skeleton-icon.js.map +1 -1
  689. package/es-custom/components/skeleton-placeholder/skeleton-placeholder.js +2 -2
  690. package/es-custom/components/skeleton-placeholder/skeleton-placeholder.js.map +1 -1
  691. package/es-custom/components/skeleton-text/skeleton-text.js +2 -2
  692. package/es-custom/components/skeleton-text/skeleton-text.js.map +1 -1
  693. package/es-custom/components/skip-to-content/skip-to-content.js +2 -2
  694. package/es-custom/components/skip-to-content/skip-to-content.js.map +1 -1
  695. package/es-custom/components/slider/slider-input.js +3 -3
  696. package/es-custom/components/slider/slider-input.js.map +1 -1
  697. package/es-custom/components/slider/slider-skeleton.js +2 -2
  698. package/es-custom/components/slider/slider-skeleton.js.map +1 -1
  699. package/es-custom/components/slider/slider.js +2 -2
  700. package/es-custom/components/slider/slider.js.map +1 -1
  701. package/es-custom/components/slug/slug-action-button.js +2 -2
  702. package/es-custom/components/slug/slug-action-button.js.map +1 -1
  703. package/es-custom/components/slug/slug.js +3 -3
  704. package/es-custom/components/slug/slug.js.map +1 -1
  705. package/es-custom/components/stack/stack.js +2 -2
  706. package/es-custom/components/stack/stack.js.map +1 -1
  707. package/es-custom/components/structured-list/structured-list-body.js +2 -2
  708. package/es-custom/components/structured-list/structured-list-body.js.map +1 -1
  709. package/es-custom/components/structured-list/structured-list-cell.js +2 -2
  710. package/es-custom/components/structured-list/structured-list-cell.js.map +1 -1
  711. package/es-custom/components/structured-list/structured-list-head.js +2 -2
  712. package/es-custom/components/structured-list/structured-list-head.js.map +1 -1
  713. package/es-custom/components/structured-list/structured-list-header-cell-skeleton.js +2 -2
  714. package/es-custom/components/structured-list/structured-list-header-cell-skeleton.js.map +1 -1
  715. package/es-custom/components/structured-list/structured-list-header-cell.js +2 -2
  716. package/es-custom/components/structured-list/structured-list-header-cell.js.map +1 -1
  717. package/es-custom/components/structured-list/structured-list-header-row.js +2 -2
  718. package/es-custom/components/structured-list/structured-list-header-row.js.map +1 -1
  719. package/es-custom/components/structured-list/structured-list-row.js +3 -3
  720. package/es-custom/components/structured-list/structured-list-row.js.map +1 -1
  721. package/es-custom/components/structured-list/structured-list.js +2 -2
  722. package/es-custom/components/structured-list/structured-list.js.map +1 -1
  723. package/es-custom/components/tabs/tab-skeleton.js +2 -2
  724. package/es-custom/components/tabs/tab-skeleton.js.map +1 -1
  725. package/es-custom/components/tabs/tab.js +2 -2
  726. package/es-custom/components/tabs/tab.js.map +1 -1
  727. package/es-custom/components/tabs/tabs-skeleton.js +2 -2
  728. package/es-custom/components/tabs/tabs-skeleton.js.map +1 -1
  729. package/es-custom/components/tabs/tabs.js +3 -3
  730. package/es-custom/components/tabs/tabs.js.map +1 -1
  731. package/es-custom/components/tabs/tabs.scss.js +1 -1
  732. package/es-custom/components/tag/dismissible-tag.js +3 -3
  733. package/es-custom/components/tag/dismissible-tag.js.map +1 -1
  734. package/es-custom/components/tag/operational-tag.js +2 -2
  735. package/es-custom/components/tag/operational-tag.js.map +1 -1
  736. package/es-custom/components/tag/selectable-tag.js +2 -2
  737. package/es-custom/components/tag/selectable-tag.js.map +1 -1
  738. package/es-custom/components/tag/tag-skeleton.js +2 -2
  739. package/es-custom/components/tag/tag-skeleton.js.map +1 -1
  740. package/es-custom/components/tag/tag.js +1 -1
  741. package/es-custom/components/tearsheet/tearsheet.js +2 -2
  742. package/es-custom/components/tearsheet/tearsheet.js.map +1 -1
  743. package/es-custom/components/text-input/text-input.js +1 -1
  744. package/es-custom/components/textarea/textarea.js +1 -1
  745. package/es-custom/components/tile/clickable-tile.js +3 -3
  746. package/es-custom/components/tile/clickable-tile.js.map +1 -1
  747. package/es-custom/components/tile/expandable-tile.js +3 -3
  748. package/es-custom/components/tile/expandable-tile.js.map +1 -1
  749. package/es-custom/components/tile/radio-tile.js +3 -3
  750. package/es-custom/components/tile/radio-tile.js.map +1 -1
  751. package/es-custom/components/tile/selectable-tile.js +1 -1
  752. package/es-custom/components/tile/tile-group.js +2 -2
  753. package/es-custom/components/tile/tile-group.js.map +1 -1
  754. package/es-custom/components/tile/tile.js +2 -2
  755. package/es-custom/components/tile/tile.js.map +1 -1
  756. package/es-custom/components/time-picker/time-picker-select.js +3 -3
  757. package/es-custom/components/time-picker/time-picker-select.js.map +1 -1
  758. package/es-custom/components/time-picker/time-picker.js +1 -1
  759. package/es-custom/components/toggle/toggle-skeleton.js +2 -2
  760. package/es-custom/components/toggle/toggle-skeleton.js.map +1 -1
  761. package/es-custom/components/toggle/toggle.js +2 -2
  762. package/es-custom/components/toggle/toggle.js.map +1 -1
  763. package/es-custom/components/toggle-tip/toggletip.js +1 -1
  764. package/es-custom/components/tooltip/definition-tooltip.js +2 -2
  765. package/es-custom/components/tooltip/definition-tooltip.js.map +1 -1
  766. package/es-custom/components/tooltip/tooltip-content.js +2 -2
  767. package/es-custom/components/tooltip/tooltip-content.js.map +1 -1
  768. package/es-custom/components/tooltip/tooltip.js +2 -2
  769. package/es-custom/components/tooltip/tooltip.js.map +1 -1
  770. package/es-custom/components/tree-view/tree-node.js +3 -3
  771. package/es-custom/components/tree-view/tree-node.js.map +1 -1
  772. package/es-custom/components/tree-view/tree-view.js +2 -2
  773. package/es-custom/components/tree-view/tree-view.js.map +1 -1
  774. package/es-custom/components/ui-shell/header-global-action.js +2 -2
  775. package/es-custom/components/ui-shell/header-global-action.js.map +1 -1
  776. package/es-custom/components/ui-shell/header-menu-button.js +3 -3
  777. package/es-custom/components/ui-shell/header-menu-button.js.map +1 -1
  778. package/es-custom/components/ui-shell/header-menu-item.js +2 -2
  779. package/es-custom/components/ui-shell/header-menu-item.js.map +1 -1
  780. package/es-custom/components/ui-shell/header-menu.js +3 -3
  781. package/es-custom/components/ui-shell/header-menu.js.map +1 -1
  782. package/es-custom/components/ui-shell/header-name.js +2 -2
  783. package/es-custom/components/ui-shell/header-name.js.map +1 -1
  784. package/es-custom/components/ui-shell/header-nav.js +2 -2
  785. package/es-custom/components/ui-shell/header-nav.js.map +1 -1
  786. package/es-custom/components/ui-shell/header-panel.js +2 -2
  787. package/es-custom/components/ui-shell/header-panel.js.map +1 -1
  788. package/es-custom/components/ui-shell/header-side-nav-items.js +2 -2
  789. package/es-custom/components/ui-shell/header-side-nav-items.js.map +1 -1
  790. package/es-custom/components/ui-shell/header.js +2 -2
  791. package/es-custom/components/ui-shell/header.js.map +1 -1
  792. package/es-custom/components/ui-shell/side-nav-divider.js +2 -2
  793. package/es-custom/components/ui-shell/side-nav-divider.js.map +1 -1
  794. package/es-custom/components/ui-shell/side-nav-items.js +2 -2
  795. package/es-custom/components/ui-shell/side-nav-items.js.map +1 -1
  796. package/es-custom/components/ui-shell/side-nav-link.js +2 -2
  797. package/es-custom/components/ui-shell/side-nav-link.js.map +1 -1
  798. package/es-custom/components/ui-shell/side-nav-menu-item.js +2 -2
  799. package/es-custom/components/ui-shell/side-nav-menu-item.js.map +1 -1
  800. package/es-custom/components/ui-shell/side-nav-menu.js +3 -3
  801. package/es-custom/components/ui-shell/side-nav-menu.js.map +1 -1
  802. package/es-custom/components/ui-shell/side-nav.js +2 -2
  803. package/es-custom/components/ui-shell/side-nav.js.map +1 -1
  804. package/es-custom/components/ui-shell/switcher-divider.js +2 -2
  805. package/es-custom/components/ui-shell/switcher-divider.js.map +1 -1
  806. package/es-custom/components/ui-shell/switcher-item.js +2 -2
  807. package/es-custom/components/ui-shell/switcher-item.js.map +1 -1
  808. package/es-custom/components/ui-shell/switcher.js +2 -2
  809. package/es-custom/components/ui-shell/switcher.js.map +1 -1
  810. package/es-custom/feature-flags/es/index.js +153 -144
  811. package/es-custom/feature-flags/es/index.js.map +1 -1
  812. package/lib/components/breadcrumb/breadcrumb-item.d.ts +1 -1
  813. package/lib/components/button/button.d.ts +14 -16
  814. package/lib/components/feature-flags/index.d.ts +1 -1
  815. package/lib/components/floating-menu/defs.d.ts +10 -2
  816. package/lib/components/floating-menu/defs.js +9 -1
  817. package/lib/components/floating-menu/defs.js.map +1 -1
  818. package/lib/components/floating-menu/floating-menu.d.ts +31 -1
  819. package/lib/components/multi-select/multi-select.d.ts +9 -0
  820. package/lib/components/overflow-menu/overflow-menu-body.d.ts +18 -2
  821. package/package.json +3 -3
  822. package/scss/components/button/button.scss +2 -0
  823. package/scss/components/overflow-menu/overflow-menu.scss +7 -1
  824. package/scss/components/tabs/tabs-story.scss +15 -1
  825. package/scss/components/tabs/tabs.scss +16 -3
  826. package/telemetry.yml +2 -0
@@ -11,7 +11,7 @@ import { carbonElement } from '../../globals/decorators/carbon-element.js';
11
11
  import { LitElement, html } from 'lit';
12
12
 
13
13
  /**
14
- * Copyright IBM Corp. 2025, 2025
14
+ * Copyright IBM Corp. 2025, 2026
15
15
  *
16
16
  * This source code is licensed under the Apache-2.0 license found in the
17
17
  * LICENSE file in the root directory of this source tree.
@@ -36,6 +36,7 @@ import { LitElement, html } from 'lit';
36
36
  * Returns true if the flag is enabled in the nearest <feature-flags> ancestor
37
37
  */
38
38
  var FeatureFlagsElement_1;
39
+ const hasOwn = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key);
39
40
  let FeatureFlagsElement = FeatureFlagsElement_1 = class FeatureFlagsElement extends LitElement {
40
41
  static get observedAttributes() {
41
42
  return Object.keys(FeatureFlagsElement_1.flagComponentMap);
@@ -55,7 +56,9 @@ let FeatureFlagsElement = FeatureFlagsElement_1 = class FeatureFlagsElement exte
55
56
  const value = newVal === 'true';
56
57
  this.flags[name] = value;
57
58
  // Set feature flag to top component level
58
- const relatedComponent = FeatureFlagsElement_1.flagComponentMap[name] || 'unknown';
59
+ const relatedComponent = hasOwn(FeatureFlagsElement_1.flagComponentMap, name)
60
+ ? FeatureFlagsElement_1.flagComponentMap[name]
61
+ : 'unknown';
59
62
  if (((_a = this.firstElementChild) === null || _a === void 0 ? void 0 : _a.tagName) === relatedComponent) {
60
63
  this.firstElementChild.setAttribute(name, '');
61
64
  }
@@ -106,7 +109,7 @@ FeatureFlagsElement.flagComponentMap = {
106
109
  FeatureFlagsElement = FeatureFlagsElement_1 = __decorate([
107
110
  carbonElement('feature-flags')
108
111
  ], FeatureFlagsElement);
109
- var FeatureFlagsElement$1 = FeatureFlagsElement;
112
+ var FeatureFlagsElement_default = FeatureFlagsElement;
110
113
  // Utility functions
111
114
  // Function to find the nearest parent FeatureFlagsElement
112
115
  function findParentFeatureFlags(el) {
@@ -126,5 +129,5 @@ function isFeatureFlagEnabled(flag, context) {
126
129
  return (_a = instance === null || instance === void 0 ? void 0 : instance.isFeatureFlagEnabled(flag)) !== null && _a !== void 0 ? _a : false;
127
130
  }
128
131
 
129
- export { FeatureFlagsElement$1 as default, findParentFeatureFlags, isFeatureFlagEnabled };
132
+ export { FeatureFlagsElement_default as default, findParentFeatureFlags, isFeatureFlagEnabled };
130
133
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/feature-flags/index.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2025, 2025\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/**\n * <feature-flags> provides scoped feature flags to child components.\n *\n * Usage:\n * Wrap any child components inside <feature-flags> to provide scoped feature flags like this:\n * <feature-flags enable-dialog-element=\"true\">\n * <component></component>\n * </feature-flags>\n *\n * Available flags:\n * - enable-dialog-element\n * - enable-treeview-controllable\n * - ... (and others listed in observedAttributes)\n *\n * How to check a Flag in your component:\n * import { isFeatureFlagEnabled } from './feature-flags';\n * isFeatureFlagEnabled('enable-dialog-element', this)\n * Returns true if the flag is enabled in the nearest <feature-flags> ancestor\n */\n\nimport {\n FeatureFlags as GlobalFeatureFlags,\n createScope,\n} from '@carbon/feature-flags';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { LitElement, html } from 'lit';\n\n/**\n * Feature Flags\n *\n * @element feature-flags\n */\n\ntype FeatureFlags = Record<string, boolean>;\n\n@customElement('feature-flags')\nclass FeatureFlagsElement extends LitElement {\n private scope = GlobalFeatureFlags;\n private flags: FeatureFlags = {};\n\n /**\n * Mapping of feature flag attributes to their related component names.\n */\n private static readonly flagComponentMap: Record<string, string> = {\n 'enable-v12-tile-default-icons': 'CDS-TILE',\n 'enable-v12-tile-radio-icons': 'CDS-TILE',\n 'enable-v12-overflowmenu': 'CDS-OVERFLOW-MENU',\n 'enable-treeview-controllable': 'CDS-TREEVIEW',\n 'enable-experimental-focus-wrap-without-sentinels': 'CDS-FOCUS-WRAP',\n 'enable-focus-wrap-without-sentinels': 'CDS-FOCUS-WRAP',\n 'enable-dialog-element': 'CDS-DIALOG',\n 'enable-v12-dynamic-floating-styles': 'CDS-FLOATING',\n 'enable-v12-toggle-reduced-label-spacing': 'CDS-TOGGLE',\n };\n\n static get observedAttributes() {\n return Object.keys(FeatureFlagsElement.flagComponentMap);\n }\n\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.updateScope();\n }\n\n attributeChangedCallback(\n name: string,\n _oldVal: string | null,\n newVal: string | null\n ) {\n const value = newVal === 'true';\n this.flags[name] = value;\n\n // Set feature flag to top component level\n const relatedComponent =\n FeatureFlagsElement.flagComponentMap[name] || 'unknown';\n if (this.firstElementChild?.tagName === relatedComponent) {\n this.firstElementChild.setAttribute(name, '');\n }\n\n this.updateScope();\n }\n\n private getParentScope(): FeatureFlagsElement | null {\n let parent = this.parentNode;\n while (parent) {\n if (parent instanceof FeatureFlagsElement) {\n return parent.getScope();\n }\n parent = parent.parentNode;\n }\n return null;\n }\n\n private updateScope() {\n const newScope = createScope(this.flags);\n const parentScope = this.getParentScope() || GlobalFeatureFlags;\n if (parentScope) {\n newScope.mergeWithScope(parentScope);\n }\n this.scope = newScope;\n }\n\n render() {\n return html` <slot></slot> `;\n }\n\n public isFeatureFlagEnabled(flag: string): boolean {\n return this.scope.enabled(flag);\n }\n\n private getScope() {\n return this.scope;\n }\n}\n\nexport default FeatureFlagsElement;\n\n// Utility functions\n\n// Function to find the nearest parent FeatureFlagsElement\nexport function findParentFeatureFlags(\n el: HTMLElement\n): FeatureFlagsElement | null {\n let parent = el.parentNode;\n while (parent) {\n if (parent instanceof FeatureFlagsElement) {\n return parent;\n }\n parent = (parent as HTMLElement).parentNode;\n }\n return null;\n}\n\n// function to check if a feature flag is enabled in components\nexport function isFeatureFlagEnabled(\n flag: string,\n context: HTMLElement\n): boolean {\n const instance = findParentFeatureFlags(context);\n return instance?.isFeatureFlagEnabled(flag) ?? false;\n}\n"],"names":["GlobalFeatureFlags","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/feature-flags/index.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2025, 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/**\n * <feature-flags> provides scoped feature flags to child components.\n *\n * Usage:\n * Wrap any child components inside <feature-flags> to provide scoped feature flags like this:\n * <feature-flags enable-dialog-element=\"true\">\n * <component></component>\n * </feature-flags>\n *\n * Available flags:\n * - enable-dialog-element\n * - enable-treeview-controllable\n * - ... (and others listed in observedAttributes)\n *\n * How to check a Flag in your component:\n * import { isFeatureFlagEnabled } from './feature-flags';\n * isFeatureFlagEnabled('enable-dialog-element', this)\n * Returns true if the flag is enabled in the nearest <feature-flags> ancestor\n */\n\nimport {\n FeatureFlags as GlobalFeatureFlags,\n createScope,\n} from '@carbon/feature-flags';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { LitElement, html } from 'lit';\n\n/**\n * Feature Flags\n *\n * @element feature-flags\n */\ntype FeatureFlags = Record<string, boolean>;\n\nconst hasOwn = <T extends object>(obj: T, key: PropertyKey): key is keyof T =>\n Object.prototype.hasOwnProperty.call(obj, key);\n\n@customElement('feature-flags')\nclass FeatureFlagsElement extends LitElement {\n private scope = GlobalFeatureFlags;\n private flags: FeatureFlags = {};\n\n /**\n * Mapping of feature flag attributes to their related component names.\n */\n private static readonly flagComponentMap = {\n 'enable-v12-tile-default-icons': 'CDS-TILE',\n 'enable-v12-tile-radio-icons': 'CDS-TILE',\n 'enable-v12-overflowmenu': 'CDS-OVERFLOW-MENU',\n 'enable-treeview-controllable': 'CDS-TREEVIEW',\n 'enable-experimental-focus-wrap-without-sentinels': 'CDS-FOCUS-WRAP',\n 'enable-focus-wrap-without-sentinels': 'CDS-FOCUS-WRAP',\n 'enable-dialog-element': 'CDS-DIALOG',\n 'enable-v12-dynamic-floating-styles': 'CDS-FLOATING',\n 'enable-v12-toggle-reduced-label-spacing': 'CDS-TOGGLE',\n } as const;\n\n static get observedAttributes() {\n return Object.keys(FeatureFlagsElement.flagComponentMap);\n }\n\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.updateScope();\n }\n\n attributeChangedCallback(\n name: string,\n _oldVal: string | null,\n newVal: string | null\n ) {\n const value = newVal === 'true';\n this.flags[name] = value;\n\n // Set feature flag to top component level\n const relatedComponent = hasOwn(FeatureFlagsElement.flagComponentMap, name)\n ? FeatureFlagsElement.flagComponentMap[name]\n : 'unknown';\n if (this.firstElementChild?.tagName === relatedComponent) {\n this.firstElementChild.setAttribute(name, '');\n }\n\n this.updateScope();\n }\n\n private getParentScope() {\n let parent = this.parentNode;\n while (parent) {\n if (parent instanceof FeatureFlagsElement) {\n return parent.getScope();\n }\n parent = parent.parentNode;\n }\n return null;\n }\n\n private updateScope() {\n const newScope = createScope(this.flags);\n const parentScope = this.getParentScope() || GlobalFeatureFlags;\n if (parentScope) {\n newScope.mergeWithScope(parentScope);\n }\n this.scope = newScope;\n }\n\n render() {\n return html` <slot></slot> `;\n }\n\n public isFeatureFlagEnabled(flag: string) {\n return this.scope.enabled(flag);\n }\n\n private getScope() {\n return this.scope;\n }\n}\n\nexport default FeatureFlagsElement;\n\n// Utility functions\n\n// Function to find the nearest parent FeatureFlagsElement\nexport function findParentFeatureFlags(\n el: HTMLElement\n): FeatureFlagsElement | null {\n let parent = el.parentNode;\n while (parent) {\n if (parent instanceof FeatureFlagsElement) {\n return parent;\n }\n parent = (parent as HTMLElement).parentNode;\n }\n return null;\n}\n\n// function to check if a feature flag is enabled in components\nexport function isFeatureFlagEnabled(\n flag: string,\n context: HTMLElement\n): boolean {\n const instance = findParentFeatureFlags(context);\n return instance?.isFeatureFlagEnabled(flag) ?? false;\n}\n"],"names":["GlobalFeatureFlags","customElement"],"mappings":"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"}
@@ -232,7 +232,7 @@ __decorate([
232
232
  CDSCEDemoFileUploader = __decorate([
233
233
  carbonElement(`${prefix}-ce-demo-file-uploader`)
234
234
  ], CDSCEDemoFileUploader);
235
- var CDSCEDemoFileUploader$1 = CDSCEDemoFileUploader;
235
+ var CDSCEDemoFileUploader_default = CDSCEDemoFileUploader;
236
236
 
237
- export { CDSCEDemoFileUploader$1 as default };
237
+ export { CDSCEDemoFileUploader_default as default };
238
238
  //# sourceMappingURL=demo-file-uploader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"demo-file-uploader.js","sources":["../../../src/components/file-uploader/demo-file-uploader.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nimport { prefix } from '../../globals/settings';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport './index';\nimport { FILE_UPLOADER_ITEM_STATE } from './file-uploader-item';\nimport { BUTTON_SIZE } from '../button/button';\nimport { FileData } from './stories/types';\n\n/**\n * A class to manage file uploading states, like sending file contents to server.\n * DEMONSTRATION-PURPOSE ONLY.\n * Data/state handling in file uploading tends to involve lots of application-specific logics\n * and thus abstracting everything in a library won't be a good return on investment\n * vs. letting users copy code here and implement features that fit their needs.\n */\n@customElement(`${prefix}-ce-demo-file-uploader`)\nexport default class CDSCEDemoFileUploader extends LitElement {\n /**\n * The files being uploaded.\n */\n private _files: FileData[] = [];\n\n /**\n * Handles `cds-custom-drop-container-changed` on `<cds-custom-file-drop-container>`.\n *\n * @param event The event.\n */\n private _handleChange(event: CustomEvent) {\n const { addedFiles } = event.detail;\n const newFiles: FileData[] = addedFiles.map(\n (item) =>\n ({\n id: Math.random().toString(36).slice(2),\n file: item,\n state: FILE_UPLOADER_ITEM_STATE.UPLOADING,\n }) as FileData\n );\n const { multiple, _files: files, _simulateUpload: simulateUpload } = this;\n if (multiple) {\n this._files = files.concat(newFiles);\n this.requestUpdate();\n newFiles.forEach(simulateUpload, this);\n } else if (addedFiles.length > 0) {\n this._files = files.concat(newFiles[0]);\n this.requestUpdate();\n this._simulateUpload(newFiles[0]);\n }\n }\n\n /**\n * Handles `cds-custom-file-uploader-item-deleted` on `<cds-custom-file-uploader-item>`.\n *\n * @param event The event.\n */\n private _handleDelete(event: CustomEvent) {\n const { fileId: idToDelete } = (event.target as HTMLElement).dataset;\n this._files = this._files.filter(({ id }) => idToDelete !== id);\n this.requestUpdate();\n }\n\n /**\n * Simulates updating file.\n *\n * @param data The data of the file being uploaded.\n */\n private async _simulateUpload(data: FileData) {\n const { id, file } = data;\n if (file.size > 524288) {\n this._files = this._files.map((item) =>\n id !== item.id\n ? item\n : {\n ...item,\n state: FILE_UPLOADER_ITEM_STATE.EDIT,\n invalid: true,\n errorSubject: 'File size exceeds limit',\n errorBody:\n '500kb max file size. Select a new file and try again.',\n }\n );\n this.requestUpdate();\n } else {\n // Simulates network request time\n const rand = Math.random() * 1000;\n await new Promise((t) => setTimeout(t, rand));\n this._files = this._files.map((item) =>\n id !== item.id\n ? item\n : {\n ...item,\n state: FILE_UPLOADER_ITEM_STATE.COMPLETE,\n }\n );\n this.requestUpdate();\n // Shows x icon after 1 second\n await new Promise((t) => setTimeout(t, 1000));\n this._files = this._files.map((item) =>\n id !== item.id\n ? item\n : {\n ...item,\n state: FILE_UPLOADER_ITEM_STATE.EDIT,\n }\n );\n this.requestUpdate();\n }\n }\n\n /**\n * The file types the file input should accept, separated by space.\n */\n @property()\n accept = '';\n\n /**\n * `true` if the drop container should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n button = false;\n\n /**\n * Button kind.\n */\n @property({ attribute: 'button-kind' })\n buttonKind = 'primary';\n\n /**\n * Button label.\n */\n @property({ attribute: 'button-label' })\n buttonLabel = 'Add file';\n\n /**\n * `true` if the drop container should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Icon description.\n */\n @property({ attribute: 'icon-description' })\n iconDescription = '';\n\n /**\n * The input name.\n */\n @property({ attribute: 'input-name' })\n inputName = '';\n\n /**\n * The label description text.\n */\n @property({ attribute: 'label-description' })\n labelDescription = '';\n\n /**\n * The label title.\n */\n @property({ attribute: 'label-title' })\n labelTitle = '';\n\n /**\n * `true` if the 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 size of the button item.\n */\n @property({ reflect: true })\n size = BUTTON_SIZE.MEDIUM;\n\n /**\n * The state of this file uploader item.\n */\n @property({ reflect: true, attribute: 'input-state' })\n inputState = '';\n\n render() {\n const {\n accept,\n button,\n buttonKind,\n buttonLabel,\n disabled,\n labelDescription,\n labelTitle,\n multiple,\n size,\n inputState,\n iconDescription,\n _files: files,\n _handleChange: handleChange,\n _handleDelete: handleDelete,\n } = this;\n return html`\n <cds-custom-file-uploader\n label-description=\"${ifDefined(labelDescription)}\"\n label-title=\"${ifDefined(labelTitle)}\"\n ?disabled=\"${disabled}\">\n ${!button\n ? html` <cds-custom-file-uploader-drop-container\n accept=\"${ifDefined(accept)}\"\n ?multiple=\"${multiple}\"\n name=\"${ifDefined(this.inputName)}\"\n @cds-custom-file-uploader-drop-container-changed=\"${handleChange}\">\n Drag and drop files here or click to upload\n </cds-custom-file-uploader-drop-container>`\n : html` <cds-custom-file-uploader-button\n size=\"${ifDefined(size)}\"\n button-kind=\"${buttonKind}\"\n accept=\"${ifDefined(accept)}\"\n name=\"${ifDefined(this.inputName)}\"\n ?multiple=\"${multiple}\"\n @cds-custom-file-uploader-button-changed=\"${handleChange}\">\n ${buttonLabel}\n </cds-custom-file-uploader-button>`}\n ${files.map(\n ({ id, invalid, file, state, errorSubject, errorBody }) => html`\n <cds-custom-file-uploader-item\n data-file-id=\"${id}\"\n ?invalid=\"${invalid}\"\n state=\"${inputState || ifDefined(state)}\"\n icon-description=\"${ifDefined(iconDescription)}\"\n error-subject=\"${ifDefined(errorSubject)}\"\n error-body=\"${ifDefined(errorBody)}\"\n @cds-custom-file-uploader-item-deleted=\"${handleDelete}\">\n ${file.name}\n </cds-custom-file-uploader-item>\n `\n )}\n </cds-custom-file-uploader>\n `;\n }\n}\n"],"names":["customElement"],"mappings":"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"}
1
+ {"version":3,"file":"demo-file-uploader.js","sources":["../../../src/components/file-uploader/demo-file-uploader.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nimport { prefix } from '../../globals/settings';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport './index';\nimport { FILE_UPLOADER_ITEM_STATE } from './file-uploader-item';\nimport { BUTTON_SIZE } from '../button/button';\nimport { FileData } from './stories/types';\n\n/**\n * A class to manage file uploading states, like sending file contents to server.\n * DEMONSTRATION-PURPOSE ONLY.\n * Data/state handling in file uploading tends to involve lots of application-specific logics\n * and thus abstracting everything in a library won't be a good return on investment\n * vs. letting users copy code here and implement features that fit their needs.\n */\n@customElement(`${prefix}-ce-demo-file-uploader`)\nexport default class CDSCEDemoFileUploader extends LitElement {\n /**\n * The files being uploaded.\n */\n private _files: FileData[] = [];\n\n /**\n * Handles `cds-custom-drop-container-changed` on `<cds-custom-file-drop-container>`.\n *\n * @param event The event.\n */\n private _handleChange(event: CustomEvent) {\n const { addedFiles } = event.detail;\n const newFiles: FileData[] = addedFiles.map(\n (item) =>\n ({\n id: Math.random().toString(36).slice(2),\n file: item,\n state: FILE_UPLOADER_ITEM_STATE.UPLOADING,\n }) as FileData\n );\n const { multiple, _files: files, _simulateUpload: simulateUpload } = this;\n if (multiple) {\n this._files = files.concat(newFiles);\n this.requestUpdate();\n newFiles.forEach(simulateUpload, this);\n } else if (addedFiles.length > 0) {\n this._files = files.concat(newFiles[0]);\n this.requestUpdate();\n this._simulateUpload(newFiles[0]);\n }\n }\n\n /**\n * Handles `cds-custom-file-uploader-item-deleted` on `<cds-custom-file-uploader-item>`.\n *\n * @param event The event.\n */\n private _handleDelete(event: CustomEvent) {\n const { fileId: idToDelete } = (event.target as HTMLElement).dataset;\n this._files = this._files.filter(({ id }) => idToDelete !== id);\n this.requestUpdate();\n }\n\n /**\n * Simulates updating file.\n *\n * @param data The data of the file being uploaded.\n */\n private async _simulateUpload(data: FileData) {\n const { id, file } = data;\n if (file.size > 524288) {\n this._files = this._files.map((item) =>\n id !== item.id\n ? item\n : {\n ...item,\n state: FILE_UPLOADER_ITEM_STATE.EDIT,\n invalid: true,\n errorSubject: 'File size exceeds limit',\n errorBody:\n '500kb max file size. Select a new file and try again.',\n }\n );\n this.requestUpdate();\n } else {\n // Simulates network request time\n const rand = Math.random() * 1000;\n await new Promise((t) => setTimeout(t, rand));\n this._files = this._files.map((item) =>\n id !== item.id\n ? item\n : {\n ...item,\n state: FILE_UPLOADER_ITEM_STATE.COMPLETE,\n }\n );\n this.requestUpdate();\n // Shows x icon after 1 second\n await new Promise((t) => setTimeout(t, 1000));\n this._files = this._files.map((item) =>\n id !== item.id\n ? item\n : {\n ...item,\n state: FILE_UPLOADER_ITEM_STATE.EDIT,\n }\n );\n this.requestUpdate();\n }\n }\n\n /**\n * The file types the file input should accept, separated by space.\n */\n @property()\n accept = '';\n\n /**\n * `true` if the drop container should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n button = false;\n\n /**\n * Button kind.\n */\n @property({ attribute: 'button-kind' })\n buttonKind = 'primary';\n\n /**\n * Button label.\n */\n @property({ attribute: 'button-label' })\n buttonLabel = 'Add file';\n\n /**\n * `true` if the drop container should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Icon description.\n */\n @property({ attribute: 'icon-description' })\n iconDescription = '';\n\n /**\n * The input name.\n */\n @property({ attribute: 'input-name' })\n inputName = '';\n\n /**\n * The label description text.\n */\n @property({ attribute: 'label-description' })\n labelDescription = '';\n\n /**\n * The label title.\n */\n @property({ attribute: 'label-title' })\n labelTitle = '';\n\n /**\n * `true` if the 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 size of the button item.\n */\n @property({ reflect: true })\n size = BUTTON_SIZE.MEDIUM;\n\n /**\n * The state of this file uploader item.\n */\n @property({ reflect: true, attribute: 'input-state' })\n inputState = '';\n\n render() {\n const {\n accept,\n button,\n buttonKind,\n buttonLabel,\n disabled,\n labelDescription,\n labelTitle,\n multiple,\n size,\n inputState,\n iconDescription,\n _files: files,\n _handleChange: handleChange,\n _handleDelete: handleDelete,\n } = this;\n return html`\n <cds-custom-file-uploader\n label-description=\"${ifDefined(labelDescription)}\"\n label-title=\"${ifDefined(labelTitle)}\"\n ?disabled=\"${disabled}\">\n ${!button\n ? html` <cds-custom-file-uploader-drop-container\n accept=\"${ifDefined(accept)}\"\n ?multiple=\"${multiple}\"\n name=\"${ifDefined(this.inputName)}\"\n @cds-custom-file-uploader-drop-container-changed=\"${handleChange}\">\n Drag and drop files here or click to upload\n </cds-custom-file-uploader-drop-container>`\n : html` <cds-custom-file-uploader-button\n size=\"${ifDefined(size)}\"\n button-kind=\"${buttonKind}\"\n accept=\"${ifDefined(accept)}\"\n name=\"${ifDefined(this.inputName)}\"\n ?multiple=\"${multiple}\"\n @cds-custom-file-uploader-button-changed=\"${handleChange}\">\n ${buttonLabel}\n </cds-custom-file-uploader-button>`}\n ${files.map(\n ({ id, invalid, file, state, errorSubject, errorBody }) => html`\n <cds-custom-file-uploader-item\n data-file-id=\"${id}\"\n ?invalid=\"${invalid}\"\n state=\"${inputState || ifDefined(state)}\"\n icon-description=\"${ifDefined(iconDescription)}\"\n error-subject=\"${ifDefined(errorSubject)}\"\n error-body=\"${ifDefined(errorBody)}\"\n @cds-custom-file-uploader-item-deleted=\"${handleDelete}\">\n ${file.name}\n </cds-custom-file-uploader-item>\n `\n )}\n </cds-custom-file-uploader>\n `;\n }\n}\n"],"names":["customElement"],"mappings":"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"}
@@ -202,7 +202,7 @@ __decorate([
202
202
  CDSFileUploaderButton = __decorate([
203
203
  carbonElement(`${prefix}-file-uploader-button`)
204
204
  ], CDSFileUploaderButton);
205
- var CDSFileUploaderButton$1 = CDSFileUploaderButton;
205
+ var CDSFileUploaderButton_default = CDSFileUploaderButton;
206
206
 
207
- export { CDSFileUploaderButton$1 as default };
207
+ export { CDSFileUploaderButton_default as default };
208
208
  //# sourceMappingURL=file-uploader-button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-uploader-button.js","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-custom-file-uploader-button\n * @fires cds-custom-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(' '));\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\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(accept)}\"\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"],"names":["customElement"],"mappings":"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"}
1
+ {"version":3,"file":"file-uploader-button.js","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-custom-file-uploader-button\n * @fires cds-custom-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(' '));\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\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(accept)}\"\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"],"names":["customElement"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;;;;AAKG;AAcH;;;;;AAKG;AAEH,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,iBAAiB,CAAC,UAAU,CAAC,CAAA;AAAjE,IAAA,WAAA,GAAA;;AA8EE;;AAEG;AAEH,QAAA,IAAA,CAAA,UAAU,GAAG,WAAW,CAAC,OAAO;AAEhC;;AAEG;AAEH,QAAA,IAAA,CAAA,IAAI,GAAG,WAAW,CAAC,MAAM;AAEzB;;AAEG;QAEH,IAAA,CAAA,MAAM,GAAG,EAAE;AAEX;;AAEG;QAEH,IAAA,CAAA,QAAQ,GAAG,KAAK;AAEhB;;;AAGG;QAEH,IAAA,CAAA,QAAQ,GAAG,KAAK;AAEhB;;AAEG;QAEH,IAAA,CAAA,IAAI,GAAG,EAAE;AAET;;AAEG;QAEH,IAAA,CAAA,IAAI,GAAG,gBAAgB;IA6DzB;AAnLE;;AAEG;AACK,IAAA,YAAY,CAAC,KAAK,EAAA;;AACxB,QAAA,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI;AACzB,QAAA,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,WAA2C;QAC1E,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,aAAa,CAAC,aAAa,CAAC,0CAAE,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;AACzE,QAAA,CAAC,MAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJ,IAAI,CAAE,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,aAAa,CAAC,aAAa,CAAiB,EAAC,KAAK,EAAE;IACzE;AAEA;;AAEG;AACK,IAAA,cAAc,CAAC,KAAK,EAAA;;AAC1B,QAAA,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,WAA2C;AAC1E,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;YAClD,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,aAAa,CAAC,aAAa,CAAC,0CAAE,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;AACzE,YAAA,CAAC,MAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJ,IAAI,CAAE,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,aAAa,CAAC,aAAa,CAAiB,EAAC,KAAK,EAAE;QACzE;IACF;AAEA;;;;AAIG;AACK,IAAA,aAAa,CAAC,KAAwB,EAAA;;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AACxC,QAAA,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG;AACpC,aAAA,WAA2C;AAC9C,QAAA,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,WAAW,EAAE;AAC3B,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,MAAM,EAAE;gBACN,UAAU;AACX,aAAA;AACF,SAAA,CAAC,CACH;AAED,QAAA,MAAM,SAAS,GAAG,CAAA,EAAA,GAAA,IAAI,aAAJ,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJ,IAAI,CAAE,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,aAAa,CAAC,aAAa,CAAC;QAChE,IAAI,SAAS,EAAE;AACZ,YAAA,SAA8B,CAAC,KAAK,GAAG,EAAE;QAC5C;IACF;AAEA;;;AAGG;AACK,IAAA,SAAS,CAAC,KAAwB,EAAA;;QACxC,MAAM,EAAE,KAAK,EAAE,GACb,CAAA,EAAA,IAAC,KAAK,CAAC,IAAI,KAAK;cACX,KAAmB,CAAC;AACvB,cAAG,KAAK,CAAC,MAA2B,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE;AAC/C,QAAA,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,MAAA,GAAL,KAAK,GAAI,EAAE,CAAC;QAChC;AACA,QAAA,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChD,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAChC,KAAK,EACL,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,GAAG,EAAE,EAAE,KAAI;;YAChC,MAAM,mBAAmB,GAAG,UAAU;YACtC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;AACvD,YAAA,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC;kBACrB,CAAC,SAAS;AACZ,mBAAG,CAAA,EAAA,GAAA,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE,CAAC;AAE1C,YAAA,QACE,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC;iBAC1B,aAAa,IAAI,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAEvD,QAAA,CAAC,CACQ;IACb;IA6CA,MAAM,GAAA;AACJ,QAAA,MAAM,EACJ,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,aAAa,EAAE,YAAY,GAC5B,GAAG,IAAI;QAER,MAAM,YAAY,GAAG,QAAQ,CAAC;AAC5B,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,iBAAA,CAAmB,GAAG,IAAI;AACpC,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,2BAAA,CAA6B,GAAG,QAAQ;AACnD,SAAA,CAAC;QACF,MAAM,aAAa,GAAG,QAAQ,CAAC;AAC7B,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,KAAA,CAAO,GAAG,IAAI;AACxB,YAAA,CAAC,GAAG,MAAM,CAAA,OAAA,EAAU,UAAU,CAAA,CAAE,GAAG,UAAU;AAC7C,YAAA,CAAC,GAAG,MAAM,CAAA,eAAA,EAAkB,IAAI,CAAA,CAAE,GAAG,IAAI;AACzC,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,eAAA,CAAiB,GAAG,QAAQ;AACtC,YAAA,CAAC,GAAG,MAAM,CAAA,OAAA,EAAU,IAAI,CAAA,CAAE,GAAG,IAAI;AAClC,SAAA,CAAC;AACF,QAAA,OAAO,IAAI,CAAA;;;iBAGE,aAAa,CAAA;AACZ,gBAAA,EAAA,IAAI,CAAC,YAAY,CAAA;AACf,kBAAA,EAAA,IAAI,CAAC,cAAc,CAAA;;;sBAGjB,YAAY,CAAA;;;;iBAIjB,MAAM,CAAA;;kBAEL,UAAU,CAAC,MAAM,CAAC,CAAA;qBACf,QAAQ,CAAA;qBACR,QAAQ,CAAA;gBACb,UAAU,CAAC,IAAI,CAAC,CAAA;mBACb,YAAY,CAAA;KAC1B;IACH;AAEA;;AAEG;AACH,IAAA,WAAW,WAAW,GAAA;QACpB,OAAO,CAAA,EAAG,MAAM,CAAA,6BAAA,CAA+B;IACjD;AAEA;;AAEG;AACH,IAAA,WAAW,aAAa,GAAA;QACtB,OAAO,CAAA,CAAA,EAAI,MAAM,CAAA,YAAA,CAAc;IACjC;;AAEO,qBAAA,CAAA,MAAM,GAAG,MAAH;AAjGb,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE;AACpB,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA;AAMjC,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AACD,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAM1B,UAAA,CAAA;AADC,IAAA,QAAQ;AACG,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,QAAA,EAAA,MAAA,CAAA;AAMZ,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AACzB,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAOjB,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AACzB,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAMjB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AACjB,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAMV,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AACH,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAvHpB,qBAAqB,GAAA,UAAA,CAAA;AAD1B,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,qBAAA,CAAuB;AACzC,CAAA,EAAA,qBAAqB,CAoL1B;AAED,oCAAe,qBAAqB;;;;"}
@@ -199,7 +199,7 @@ __decorate([
199
199
  CDSFileUploaderDropContainer = __decorate([
200
200
  carbonElement(`${prefix}-file-uploader-drop-container`)
201
201
  ], CDSFileUploaderDropContainer);
202
- var CDSFileUploaderDropContainer$1 = CDSFileUploaderDropContainer;
202
+ var CDSFileUploaderDropContainer_default = CDSFileUploaderDropContainer;
203
203
 
204
- export { CDSFileUploaderDropContainer$1 as default };
204
+ export { CDSFileUploaderDropContainer_default as default };
205
205
  //# sourceMappingURL=file-uploader-drop-container.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-uploader-drop-container.js","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-custom-file-uploader-drop-container\n * @fires cds-custom-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(' '));\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 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 _active: active,\n _handleChange: handleChange,\n } = this;\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(accept)}\"\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"],"names":["customElement"],"mappings":"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"}
1
+ {"version":3,"file":"file-uploader-drop-container.js","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-custom-file-uploader-drop-container\n * @fires cds-custom-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(' '));\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 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 _active: active,\n _handleChange: handleChange,\n } = this;\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(accept)}\"\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"],"names":["customElement"],"mappings":"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"}
@@ -9,7 +9,7 @@ import { __decorate } from 'tslib';
9
9
  import { LitElement, html } from 'lit';
10
10
  import { property } from 'lit/decorators.js';
11
11
  import { prefix } from '../../globals/settings.js';
12
- import { iconLoader } from '../../globals/internal/icon-loader.js';
12
+ import iconLoader from '../../globals/internal/icon-loader.js';
13
13
  import WarningFilled16 from '@carbon/icons/es/warning--filled/16.js';
14
14
  import Close16 from '@carbon/icons/es/close/16.js';
15
15
  import CheckmarkFilled16 from '@carbon/icons/es/checkmark--filled/16.js';
@@ -187,7 +187,7 @@ __decorate([
187
187
  CDSFileUploaderItem = __decorate([
188
188
  carbonElement(`${prefix}-file-uploader-item`)
189
189
  ], CDSFileUploaderItem);
190
- var CDSFileUploaderItem$1 = CDSFileUploaderItem;
190
+ var CDSFileUploaderItem_default = CDSFileUploaderItem;
191
191
 
192
- export { FILE_UPLOADER_ITEM_SIZE, FILE_UPLOADER_ITEM_STATE, CDSFileUploaderItem$1 as default };
192
+ export { FILE_UPLOADER_ITEM_SIZE, FILE_UPLOADER_ITEM_STATE, CDSFileUploaderItem_default as default };
193
193
  //# sourceMappingURL=file-uploader-item.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-uploader-item.js","sources":["../../../src/components/file-uploader/file-uploader-item.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2020, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property } 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 Close16 from '@carbon/icons/es/close/16.js';\nimport CheckmarkFilled16 from '@carbon/icons/es/checkmark--filled/16.js';\nimport { LOADING_TYPE } from '../loading/loading';\nimport { FILE_UPLOADER_ITEM_SIZE, FILE_UPLOADER_ITEM_STATE } from './defs';\nimport styles from './file-uploader.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { FILE_UPLOADER_ITEM_SIZE, FILE_UPLOADER_ITEM_STATE };\n\n/**\n * File uploader item.\n *\n * @element cds-custom-file-uploader-item\n * @slot validity-message The validity message.\n * @slot validity-message-supplement The supplemental validity message.\n * @fires cds-custom-file-uploader-item-beingdeleted\n * The custom event fired before this file uploader item is being deleted upon a user gesture.\n * Cancellation of this event stops the user-initiated action of deleting this file uploader item.\n * @fires cds-custom-file-uploader-item-deleted - The custom event fired after this file uploader item is deleted upon a user gesture.\n */\n@customElement(`${prefix}-file-uploader-item`)\nclass CDSFileUploaderItem extends LitElement {\n /**\n * Handles `click` event on the delete button.\n */\n private _handleClickDeleteButton() {\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n };\n const { eventBeforeDelete, eventDelete } = this\n .constructor as typeof CDSFileUploaderItem;\n if (this.dispatchEvent(new CustomEvent(eventBeforeDelete, init))) {\n this.dispatchEvent(new CustomEvent(eventDelete, init));\n }\n }\n\n /**\n * @returns The content showing the editing UI of this file uploader item.\n */\n private _renderEditing() {\n const {\n iconDescription,\n invalid,\n _handleClickDeleteButton: handleClickDeleteButton,\n } = this;\n return html`\n ${!invalid\n ? undefined\n : iconLoader(WarningFilled16, { class: `${prefix}--file-invalid` })}\n <button\n type=\"button\"\n aria-label=\"${iconDescription}\"\n class=\"${prefix}--file-close\"\n @click=\"${handleClickDeleteButton}\">\n ${iconLoader(Close16)}\n </button>\n `;\n }\n\n /**\n * @returns The content showing this file uploader's file uploading status as in progress.\n */\n private _renderUploading() {\n const { iconDescription } = this;\n return html`\n <cds-custom-loading\n assistive-text=\"${iconDescription}\"\n type=\"${LOADING_TYPE.SMALL}\"></cds-custom-loading>\n `;\n }\n\n /**\n * @returns The content showing this file uploader's file uploading status as complete.\n */\n private _renderUploaded() {\n const { iconDescription } = this;\n return iconLoader(CheckmarkFilled16, {\n class: `${prefix}--file-complete`,\n 'aria-label': iconDescription,\n });\n }\n\n /**\n * @returns The content showing this file uploader's status.\n */\n private _renderStatus() {\n const { state } = this;\n switch (state) {\n case FILE_UPLOADER_ITEM_STATE.EDIT:\n return this._renderEditing();\n case FILE_UPLOADER_ITEM_STATE.UPLOADING:\n return this._renderUploading();\n case FILE_UPLOADER_ITEM_STATE.COMPLETE:\n return this._renderUploaded();\n default:\n return undefined;\n }\n }\n\n /**\n * The `aria-label` attribute for the icon to delete this file uploader item.\n */\n @property({ attribute: 'icon-description' })\n iconDescription = 'Delete this file';\n\n /**\n * Controls the invalid state and visibility of the `validityMessage`.\n */\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n /**\n * The size of this file uploader item.\n */\n @property({ reflect: true })\n size = FILE_UPLOADER_ITEM_SIZE.MEDIUM;\n\n /**\n * The state of this file uploader item.\n */\n @property({ reflect: true })\n state = FILE_UPLOADER_ITEM_STATE.UPLOADING;\n\n /**\n * The error subject text.\n */\n @property({ attribute: 'error-subject' })\n errorSubject = '';\n\n /**\n * The error body text\n */\n @property({ attribute: 'error-body' })\n errorBody = '';\n\n render() {\n const { invalid, errorSubject, errorBody } = this;\n return html` <p class=\"${prefix}--file-filename\"><slot></slot></p>\n <span class=\"${prefix}--file__state-container\"\n >${this._renderStatus()}</span\n >\n <div\n class=\"${prefix}--form-requirement\"\n ?hidden=\"${!invalid && !errorSubject}\">\n <div class=\"${prefix}--form-requirement__title\">${errorSubject}</div>\n <p\n class=\"${prefix}--form-requirement__supplement\"\n ?hidden=\"${!errorBody}\">\n ${errorBody}\n </p>\n </div>`;\n }\n\n /**\n * The name of the custom event fired before this file uplodaer item is being deleted upon a user gesture.\n * Cancellation of this event stops the user-initiated action of deleting this file uploader item.\n */\n static get eventBeforeDelete() {\n return `${prefix}-file-uploader-item-beingdeleted`;\n }\n\n /**\n * The name of the custom event fired after this file uplodaer item is deleted upon a user gesture.\n */\n static get eventDelete() {\n return `${prefix}-file-uploader-item-deleted`;\n }\n\n static styles = styles;\n}\n\nexport default CDSFileUploaderItem;\n"],"names":["customElement"],"mappings":"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"}
1
+ {"version":3,"file":"file-uploader-item.js","sources":["../../../src/components/file-uploader/file-uploader-item.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2020, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property } 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 Close16 from '@carbon/icons/es/close/16.js';\nimport CheckmarkFilled16 from '@carbon/icons/es/checkmark--filled/16.js';\nimport { LOADING_TYPE } from '../loading/loading';\nimport { FILE_UPLOADER_ITEM_SIZE, FILE_UPLOADER_ITEM_STATE } from './defs';\nimport styles from './file-uploader.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { FILE_UPLOADER_ITEM_SIZE, FILE_UPLOADER_ITEM_STATE };\n\n/**\n * File uploader item.\n *\n * @element cds-custom-file-uploader-item\n * @slot validity-message The validity message.\n * @slot validity-message-supplement The supplemental validity message.\n * @fires cds-custom-file-uploader-item-beingdeleted\n * The custom event fired before this file uploader item is being deleted upon a user gesture.\n * Cancellation of this event stops the user-initiated action of deleting this file uploader item.\n * @fires cds-custom-file-uploader-item-deleted - The custom event fired after this file uploader item is deleted upon a user gesture.\n */\n@customElement(`${prefix}-file-uploader-item`)\nclass CDSFileUploaderItem extends LitElement {\n /**\n * Handles `click` event on the delete button.\n */\n private _handleClickDeleteButton() {\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n };\n const { eventBeforeDelete, eventDelete } = this\n .constructor as typeof CDSFileUploaderItem;\n if (this.dispatchEvent(new CustomEvent(eventBeforeDelete, init))) {\n this.dispatchEvent(new CustomEvent(eventDelete, init));\n }\n }\n\n /**\n * @returns The content showing the editing UI of this file uploader item.\n */\n private _renderEditing() {\n const {\n iconDescription,\n invalid,\n _handleClickDeleteButton: handleClickDeleteButton,\n } = this;\n return html`\n ${!invalid\n ? undefined\n : iconLoader(WarningFilled16, { class: `${prefix}--file-invalid` })}\n <button\n type=\"button\"\n aria-label=\"${iconDescription}\"\n class=\"${prefix}--file-close\"\n @click=\"${handleClickDeleteButton}\">\n ${iconLoader(Close16)}\n </button>\n `;\n }\n\n /**\n * @returns The content showing this file uploader's file uploading status as in progress.\n */\n private _renderUploading() {\n const { iconDescription } = this;\n return html`\n <cds-custom-loading\n assistive-text=\"${iconDescription}\"\n type=\"${LOADING_TYPE.SMALL}\"></cds-custom-loading>\n `;\n }\n\n /**\n * @returns The content showing this file uploader's file uploading status as complete.\n */\n private _renderUploaded() {\n const { iconDescription } = this;\n return iconLoader(CheckmarkFilled16, {\n class: `${prefix}--file-complete`,\n 'aria-label': iconDescription,\n });\n }\n\n /**\n * @returns The content showing this file uploader's status.\n */\n private _renderStatus() {\n const { state } = this;\n switch (state) {\n case FILE_UPLOADER_ITEM_STATE.EDIT:\n return this._renderEditing();\n case FILE_UPLOADER_ITEM_STATE.UPLOADING:\n return this._renderUploading();\n case FILE_UPLOADER_ITEM_STATE.COMPLETE:\n return this._renderUploaded();\n default:\n return undefined;\n }\n }\n\n /**\n * The `aria-label` attribute for the icon to delete this file uploader item.\n */\n @property({ attribute: 'icon-description' })\n iconDescription = 'Delete this file';\n\n /**\n * Controls the invalid state and visibility of the `validityMessage`.\n */\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n /**\n * The size of this file uploader item.\n */\n @property({ reflect: true })\n size = FILE_UPLOADER_ITEM_SIZE.MEDIUM;\n\n /**\n * The state of this file uploader item.\n */\n @property({ reflect: true })\n state = FILE_UPLOADER_ITEM_STATE.UPLOADING;\n\n /**\n * The error subject text.\n */\n @property({ attribute: 'error-subject' })\n errorSubject = '';\n\n /**\n * The error body text\n */\n @property({ attribute: 'error-body' })\n errorBody = '';\n\n render() {\n const { invalid, errorSubject, errorBody } = this;\n return html` <p class=\"${prefix}--file-filename\"><slot></slot></p>\n <span class=\"${prefix}--file__state-container\"\n >${this._renderStatus()}</span\n >\n <div\n class=\"${prefix}--form-requirement\"\n ?hidden=\"${!invalid && !errorSubject}\">\n <div class=\"${prefix}--form-requirement__title\">${errorSubject}</div>\n <p\n class=\"${prefix}--form-requirement__supplement\"\n ?hidden=\"${!errorBody}\">\n ${errorBody}\n </p>\n </div>`;\n }\n\n /**\n * The name of the custom event fired before this file uplodaer item is being deleted upon a user gesture.\n * Cancellation of this event stops the user-initiated action of deleting this file uploader item.\n */\n static get eventBeforeDelete() {\n return `${prefix}-file-uploader-item-beingdeleted`;\n }\n\n /**\n * The name of the custom event fired after this file uplodaer item is deleted upon a user gesture.\n */\n static get eventDelete() {\n return `${prefix}-file-uploader-item-deleted`;\n }\n\n static styles = styles;\n}\n\nexport default CDSFileUploaderItem;\n"],"names":["customElement"],"mappings":"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"}
@@ -38,7 +38,7 @@ let CDSFileUploaderSkeleton = class CDSFileUploaderSkeleton extends LitElement {
38
38
  CDSFileUploaderSkeleton = __decorate([
39
39
  carbonElement(`${prefix}-file-uploader-skeleton`)
40
40
  ], CDSFileUploaderSkeleton);
41
- var CDSFileUploaderSkeleton$1 = CDSFileUploaderSkeleton;
41
+ var CDSFileUploaderSkeleton_default = CDSFileUploaderSkeleton;
42
42
 
43
- export { CDSFileUploaderSkeleton$1 as default };
43
+ export { CDSFileUploaderSkeleton_default as default };
44
44
  //# sourceMappingURL=file-uploader-skeleton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-uploader-skeleton.js","sources":["../../../src/components/file-uploader/file-uploader-skeleton.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { prefix } from '../../globals/settings';\nimport '../skeleton-text/skeleton-text';\nimport { SKELETON_TEXT_TYPE } from '../skeleton-text/skeleton-text';\nimport '../button/button-skeleton';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * The File uploader skeleton.\n *\n * @element cds-custom-file-uploader-skeleton\n */\n@customElement(`${prefix}-file-uploader-skeleton`)\nclass CDSFileUploaderSkeleton extends LitElement {\n render() {\n return html`\n <cds-custom-skeleton-text\n type=\"${SKELETON_TEXT_TYPE.HEADING}\"\n width=\"100px\"></cds-custom-skeleton-text>\n <cds-custom-skeleton-text width=\"225px\"></cds-custom-skeleton-text>\n <cds-custom-button-skeleton></cds-custom-button-skeleton>\n `;\n }\n}\n\nexport default CDSFileUploaderSkeleton;\n"],"names":["customElement"],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;AAKG;AASH;;;;AAIG;AAEH,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,UAAU,CAAA;IAC9C,MAAM,GAAA;AACJ,QAAA,OAAO,IAAI,CAAA;;AAEC,cAAA,EAAA,kBAAkB,CAAC,OAAO,CAAA;;;;KAIrC;IACH;CACD;AAVK,uBAAuB,GAAA,UAAA,CAAA;AAD5B,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,uBAAA,CAAyB;AAC3C,CAAA,EAAA,uBAAuB,CAU5B;AAED,gCAAe,uBAAuB;;;;"}
1
+ {"version":3,"file":"file-uploader-skeleton.js","sources":["../../../src/components/file-uploader/file-uploader-skeleton.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { prefix } from '../../globals/settings';\nimport '../skeleton-text/skeleton-text';\nimport { SKELETON_TEXT_TYPE } from '../skeleton-text/skeleton-text';\nimport '../button/button-skeleton';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * The File uploader skeleton.\n *\n * @element cds-custom-file-uploader-skeleton\n */\n@customElement(`${prefix}-file-uploader-skeleton`)\nclass CDSFileUploaderSkeleton extends LitElement {\n render() {\n return html`\n <cds-custom-skeleton-text\n type=\"${SKELETON_TEXT_TYPE.HEADING}\"\n width=\"100px\"></cds-custom-skeleton-text>\n <cds-custom-skeleton-text width=\"225px\"></cds-custom-skeleton-text>\n <cds-custom-button-skeleton></cds-custom-button-skeleton>\n `;\n }\n}\n\nexport default CDSFileUploaderSkeleton;\n"],"names":["customElement"],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;AAKG;AASH;;;;AAIG;AAEH,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,UAAU,CAAA;IAC9C,MAAM,GAAA;AACJ,QAAA,OAAO,IAAI,CAAA;;AAEC,cAAA,EAAA,kBAAkB,CAAC,OAAO,CAAA;;;;KAIrC;IACH;CACD;AAVK,uBAAuB,GAAA,UAAA,CAAA;AAD5B,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,uBAAA,CAAyB;AAC3C,CAAA,EAAA,uBAAuB,CAU5B;AAED,sCAAe,uBAAuB;;;;"}
@@ -91,7 +91,7 @@ __decorate([
91
91
  CDSFileUploader = __decorate([
92
92
  carbonElement(`${prefix}-file-uploader`)
93
93
  ], CDSFileUploader);
94
- var CDSFileUploader$1 = CDSFileUploader;
94
+ var CDSFileUploader_default = CDSFileUploader;
95
95
 
96
- export { CDSFileUploader$1 as default };
96
+ export { CDSFileUploader_default as default };
97
97
  //# sourceMappingURL=file-uploader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-uploader.js","sources":["../../../src/components/file-uploader/file-uploader.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit/directives/class-map.js';\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './file-uploader.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * The file uploader component.\n *\n * @element cds-custom-file-uploader\n */\n@customElement(`${prefix}-file-uploader`)\nclass CDSFileUploader extends LitElement {\n /**\n * `true` if the file uploader should disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * The description text.\n */\n @property({ attribute: 'label-description' })\n labelDescription = '';\n\n /**\n * The label title.\n */\n @property({ attribute: 'label-title' })\n labelTitle = '';\n\n updated(changedProperties) {\n if (changedProperties.has('disabled')) {\n const { selectorUploaderItem } = this\n .constructor as typeof CDSFileUploader;\n const uploaderItem = this.querySelector(\n selectorUploaderItem\n ) as CDSFileUploader;\n uploaderItem.disabled = this.disabled;\n }\n }\n\n render() {\n const { disabled, labelDescription, labelTitle } = this;\n\n const labelClasses = classMap({\n [`${prefix}--file--label`]: true,\n [`${prefix}--label-description--disabled`]: disabled,\n });\n\n const descriptionClasses = classMap({\n [`${prefix}--label-description`]: true,\n [`${prefix}--label-description--disabled`]: disabled,\n });\n\n return html`\n <p class=\"${labelClasses}\">\n <slot name=\"label-title\">${labelTitle}</slot>\n </p>\n <p class=\"${descriptionClasses}\">\n <slot name=\"label-description\">${labelDescription}</slot>\n </p>\n <slot name=\"drop-container\"></slot>\n <div class=\"${prefix}--file-container\">\n <slot></slot>\n </div>\n `;\n }\n\n /**\n * A selector that will return the `input` to enter starting date.\n */\n static get selectorUploaderItem() {\n return `${prefix}-file-uploader-button,${prefix}-file-uploader-drop-container`;\n }\n\n static styles = styles;\n}\n\nexport default CDSFileUploader;\n"],"names":["customElement"],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;AAKG;AASH;;;;AAIG;AAEH,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,UAAU,CAAA;AAAxC,IAAA,WAAA,GAAA;;AACE;;AAEG;QAEH,IAAA,CAAA,QAAQ,GAAG,KAAK;AAEhB;;AAEG;QAEH,IAAA,CAAA,gBAAgB,GAAG,EAAE;AAErB;;AAEG;QAEH,IAAA,CAAA,UAAU,GAAG,EAAE;IAgDjB;AA9CE,IAAA,OAAO,CAAC,iBAAiB,EAAA;AACvB,QAAA,IAAI,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AACrC,YAAA,MAAM,EAAE,oBAAoB,EAAE,GAAG;AAC9B,iBAAA,WAAqC;YACxC,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CACrC,oBAAoB,CACF;AACpB,YAAA,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;QACvC;IACF;IAEA,MAAM,GAAA;QACJ,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,IAAI;QAEvD,MAAM,YAAY,GAAG,QAAQ,CAAC;AAC5B,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,aAAA,CAAe,GAAG,IAAI;AAChC,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,6BAAA,CAA+B,GAAG,QAAQ;AACrD,SAAA,CAAC;QAEF,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AAClC,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,mBAAA,CAAqB,GAAG,IAAI;AACtC,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,6BAAA,CAA+B,GAAG,QAAQ;AACrD,SAAA,CAAC;AAEF,QAAA,OAAO,IAAI,CAAA;kBACG,YAAY,CAAA;mCACK,UAAU,CAAA;;kBAE3B,kBAAkB,CAAA;yCACK,gBAAgB,CAAA;;;oBAGrC,MAAM,CAAA;;;KAGrB;IACH;AAEA;;AAEG;AACH,IAAA,WAAW,oBAAoB,GAAA;AAC7B,QAAA,OAAO,CAAA,EAAG,MAAM,CAAA,sBAAA,EAAyB,MAAM,+BAA+B;IAChF;;AAEO,eAAA,CAAA,MAAM,GAAG,MAAH;AA3Db,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AACzB,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAMjB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE;AACtB,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,MAAA,CAAA;AAMtB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE;AACtB,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA;AAjBZ,eAAe,GAAA,UAAA,CAAA;AADpB,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,cAAA,CAAgB;AAClC,CAAA,EAAA,eAAe,CAiEpB;AAED,wBAAe,eAAe;;;;"}
1
+ {"version":3,"file":"file-uploader.js","sources":["../../../src/components/file-uploader/file-uploader.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit/directives/class-map.js';\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './file-uploader.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * The file uploader component.\n *\n * @element cds-custom-file-uploader\n */\n@customElement(`${prefix}-file-uploader`)\nclass CDSFileUploader extends LitElement {\n /**\n * `true` if the file uploader should disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * The description text.\n */\n @property({ attribute: 'label-description' })\n labelDescription = '';\n\n /**\n * The label title.\n */\n @property({ attribute: 'label-title' })\n labelTitle = '';\n\n updated(changedProperties) {\n if (changedProperties.has('disabled')) {\n const { selectorUploaderItem } = this\n .constructor as typeof CDSFileUploader;\n const uploaderItem = this.querySelector(\n selectorUploaderItem\n ) as CDSFileUploader;\n uploaderItem.disabled = this.disabled;\n }\n }\n\n render() {\n const { disabled, labelDescription, labelTitle } = this;\n\n const labelClasses = classMap({\n [`${prefix}--file--label`]: true,\n [`${prefix}--label-description--disabled`]: disabled,\n });\n\n const descriptionClasses = classMap({\n [`${prefix}--label-description`]: true,\n [`${prefix}--label-description--disabled`]: disabled,\n });\n\n return html`\n <p class=\"${labelClasses}\">\n <slot name=\"label-title\">${labelTitle}</slot>\n </p>\n <p class=\"${descriptionClasses}\">\n <slot name=\"label-description\">${labelDescription}</slot>\n </p>\n <slot name=\"drop-container\"></slot>\n <div class=\"${prefix}--file-container\">\n <slot></slot>\n </div>\n `;\n }\n\n /**\n * A selector that will return the `input` to enter starting date.\n */\n static get selectorUploaderItem() {\n return `${prefix}-file-uploader-button,${prefix}-file-uploader-drop-container`;\n }\n\n static styles = styles;\n}\n\nexport default CDSFileUploader;\n"],"names":["customElement"],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;AAKG;AASH;;;;AAIG;AAEH,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,UAAU,CAAA;AAAxC,IAAA,WAAA,GAAA;;AACE;;AAEG;QAEH,IAAA,CAAA,QAAQ,GAAG,KAAK;AAEhB;;AAEG;QAEH,IAAA,CAAA,gBAAgB,GAAG,EAAE;AAErB;;AAEG;QAEH,IAAA,CAAA,UAAU,GAAG,EAAE;IAgDjB;AA9CE,IAAA,OAAO,CAAC,iBAAiB,EAAA;AACvB,QAAA,IAAI,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AACrC,YAAA,MAAM,EAAE,oBAAoB,EAAE,GAAG;AAC9B,iBAAA,WAAqC;YACxC,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CACrC,oBAAoB,CACF;AACpB,YAAA,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;QACvC;IACF;IAEA,MAAM,GAAA;QACJ,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,IAAI;QAEvD,MAAM,YAAY,GAAG,QAAQ,CAAC;AAC5B,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,aAAA,CAAe,GAAG,IAAI;AAChC,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,6BAAA,CAA+B,GAAG,QAAQ;AACrD,SAAA,CAAC;QAEF,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AAClC,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,mBAAA,CAAqB,GAAG,IAAI;AACtC,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,6BAAA,CAA+B,GAAG,QAAQ;AACrD,SAAA,CAAC;AAEF,QAAA,OAAO,IAAI,CAAA;kBACG,YAAY,CAAA;mCACK,UAAU,CAAA;;kBAE3B,kBAAkB,CAAA;yCACK,gBAAgB,CAAA;;;oBAGrC,MAAM,CAAA;;;KAGrB;IACH;AAEA;;AAEG;AACH,IAAA,WAAW,oBAAoB,GAAA;AAC7B,QAAA,OAAO,CAAA,EAAG,MAAM,CAAA,sBAAA,EAAyB,MAAM,+BAA+B;IAChF;;AAEO,eAAA,CAAA,MAAM,GAAG,MAAH;AA3Db,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AACzB,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAMjB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE;AACtB,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,MAAA,CAAA;AAMtB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE;AACtB,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA;AAjBZ,eAAe,GAAA,UAAA,CAAA;AADpB,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,cAAA,CAAgB;AAClC,CAAA,EAAA,eAAe,CAiEpB;AAED,8BAAe,eAAe;;;;"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2020, 2022, 2023
2
+ * Copyright IBM Corp. 2020, 2022, 2026
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -28,5 +28,13 @@ export declare enum FLOATING_MENU_DIRECTION {
28
28
  /**
29
29
  * Put menu body at the bottom of its trigger button.
30
30
  */
31
- BOTTOM = "bottom"
31
+ BOTTOM = "bottom",
32
+ /**
33
+ * Put menu body to the left of its trigger button.
34
+ */
35
+ LEFT = "left",
36
+ /**
37
+ * Put menu body to the right of its trigger button.
38
+ */
39
+ RIGHT = "right"
32
40
  }
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  /**
9
- * Copyright IBM Corp. 2020, 2022, 2023
9
+ * Copyright IBM Corp. 2020, 2022, 2026
10
10
  *
11
11
  * This source code is licensed under the Apache-2.0 license found in the
12
12
  * LICENSE file in the root directory of this source tree.
@@ -38,6 +38,14 @@ var FLOATING_MENU_DIRECTION;
38
38
  * Put menu body at the bottom of its trigger button.
39
39
  */
40
40
  FLOATING_MENU_DIRECTION["BOTTOM"] = "bottom";
41
+ /**
42
+ * Put menu body to the left of its trigger button.
43
+ */
44
+ FLOATING_MENU_DIRECTION["LEFT"] = "left";
45
+ /**
46
+ * Put menu body to the right of its trigger button.
47
+ */
48
+ FLOATING_MENU_DIRECTION["RIGHT"] = "right";
41
49
  })(FLOATING_MENU_DIRECTION || (FLOATING_MENU_DIRECTION = {}));
42
50
 
43
51
  export { FLOATING_MENU_DIRECTION, FLOATING_MENU_POSITION_DIRECTION };
@@ -1 +1 @@
1
- {"version":3,"file":"defs.js","sources":["../../../src/components/floating-menu/defs.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2020, 2022, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/**\n * The LTR/RTL direction used for positioning floating menu.\n */\nexport enum FLOATING_MENU_POSITION_DIRECTION {\n /**\n * LTR.\n */\n LTR = 'ltr',\n\n /**\n * RTL.\n */\n RTL = 'rtl',\n}\n\n/**\n * The direction/positioning/orientation choices of floating menu.\n */\nexport enum FLOATING_MENU_DIRECTION {\n /**\n * Put menu body at the top of its trigger button.\n */\n TOP = 'top',\n\n /**\n * Put menu body at the bottom of its trigger button.\n */\n BOTTOM = 'bottom',\n}\n"],"names":[],"mappings":";;;;;;;AAAA;;;;;AAKG;AAEH;;AAEG;IACS;AAAZ,CAAA,UAAY,gCAAgC,EAAA;AAC1C;;AAEG;AACH,IAAA,gCAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AAEX;;AAEG;AACH,IAAA,gCAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACb,CAAC,EAVW,gCAAgC,KAAhC,gCAAgC,GAAA,EAAA,CAAA,CAAA;AAY5C;;AAEG;IACS;AAAZ,CAAA,UAAY,uBAAuB,EAAA;AACjC;;AAEG;AACH,IAAA,uBAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AAEX;;AAEG;AACH,IAAA,uBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACnB,CAAC,EAVW,uBAAuB,KAAvB,uBAAuB,GAAA,EAAA,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"defs.js","sources":["../../../src/components/floating-menu/defs.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2020, 2022, 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\n/**\n * The LTR/RTL direction used for positioning floating menu.\n */\nexport enum FLOATING_MENU_POSITION_DIRECTION {\n /**\n * LTR.\n */\n LTR = 'ltr',\n\n /**\n * RTL.\n */\n RTL = 'rtl',\n}\n\n/**\n * The direction/positioning/orientation choices of floating menu.\n */\nexport enum FLOATING_MENU_DIRECTION {\n /**\n * Put menu body at the top of its trigger button.\n */\n TOP = 'top',\n\n /**\n * Put menu body at the bottom of its trigger button.\n */\n BOTTOM = 'bottom',\n\n /**\n * Put menu body to the left of its trigger button.\n */\n LEFT = 'left',\n\n /**\n * Put menu body to the right of its trigger button.\n */\n RIGHT = 'right',\n}\n"],"names":[],"mappings":";;;;;;;AAAA;;;;;AAKG;AAEH;;AAEG;IACS;AAAZ,CAAA,UAAY,gCAAgC,EAAA;AAC1C;;AAEG;AACH,IAAA,gCAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AAEX;;AAEG;AACH,IAAA,gCAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACb,CAAC,EAVW,gCAAgC,KAAhC,gCAAgC,GAAA,EAAA,CAAA,CAAA;AAY5C;;AAEG;IACS;AAAZ,CAAA,UAAY,uBAAuB,EAAA;AACjC;;AAEG;AACH,IAAA,uBAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AAEX;;AAEG;AACH,IAAA,uBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AAEjB;;AAEG;AACH,IAAA,uBAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AAEb;;AAEG;AACH,IAAA,uBAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,CAAC,EApBW,uBAAuB,KAAvB,uBAAuB,GAAA,EAAA,CAAA,CAAA;;;;"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2019, 2024
2
+ * Copyright IBM Corp. 2019, 2026
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -9,6 +9,22 @@ import Handle from '../../globals/internal/handle';
9
9
  import { FLOATING_MENU_DIRECTION, FLOATING_MENU_POSITION_DIRECTION } from './defs';
10
10
  import CDSFloatingMenuTrigger from './floating-menu-trigger';
11
11
  export { FLOATING_MENU_DIRECTION, FLOATING_MENU_POSITION_DIRECTION };
12
+ export interface Offset {
13
+ top: number;
14
+ left: number;
15
+ }
16
+ export type MenuDirection = FLOATING_MENU_DIRECTION;
17
+ export type MenuOffset = Offset | ((menuBody: HTMLElement, menuDirection: MenuDirection, trigger?: HTMLElement | null, flipped?: boolean) => Offset);
18
+ /**
19
+ * Calculates the offset for the floating menu.
20
+ *
21
+ * @param menuBody - The menu body element.
22
+ * @param menuDirection - The floating menu direction.
23
+ * @param trigger - The trigger element.
24
+ * @param flipped - Whether the menu is flipped.
25
+ * @returns The adjustment of the floating menu position.
26
+ */
27
+ export declare const getMenuOffset: (menuBody: HTMLElement, menuDirection: MenuDirection, trigger?: HTMLElement, flipped?: boolean) => Offset;
12
28
  /**
13
29
  * Position of floating menu, or trigger button of floating menu.
14
30
  */
@@ -778,6 +794,20 @@ declare abstract class CDSFloatingMenu extends CDSFloatingMenu_base {
778
794
  * `true` if the menu alignment should be flipped.
779
795
  */
780
796
  abstract flipped: boolean;
797
+ /**
798
+ * Gets the menu offset configuration (object or function).
799
+ * Subclasses override this to specify custom offset configs.
800
+ *
801
+ * @returns The menu offset configuration, or undefined for no offset.
802
+ */
803
+ protected getOffsetConfig(): MenuOffset | undefined;
804
+ /**
805
+ * Resolves the final menu offset by evaluating the offset configuration.
806
+ * Handles both static offset objects and dynamic offset functions.
807
+ *
808
+ * @returns The resolved offset with left and top values.
809
+ */
810
+ protected resolveOffset(): Offset;
781
811
  /**
782
812
  * The DOM element to put this menu into.
783
813
  */