@brandsync/wc 1.6.0 → 1.7.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 (267) hide show
  1. package/custom-elements.json +1122 -98
  2. package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
  3. package/dist/brandsync-wc/{p-44bfdd4b.entry.js → p-06e9b45d.entry.js} +1 -1
  4. package/dist/brandsync-wc/p-0d86c22d.entry.js +1 -0
  5. package/dist/brandsync-wc/{p-e2ac61c4.entry.js → p-13e4966c.entry.js} +1 -1
  6. package/dist/brandsync-wc/{p-18c59979.entry.js → p-18021c05.entry.js} +1 -1
  7. package/dist/brandsync-wc/{p-cfb49342.entry.js → p-1c8160c2.entry.js} +1 -1
  8. package/dist/brandsync-wc/{p-00f733ef.entry.js → p-21c14465.entry.js} +1 -1
  9. package/dist/brandsync-wc/{p-6d0c054b.entry.js → p-27100489.entry.js} +1 -1
  10. package/dist/brandsync-wc/{p-639946e7.entry.js → p-2d6955d6.entry.js} +1 -1
  11. package/dist/brandsync-wc/{p-3ed5b215.entry.js → p-309f920e.entry.js} +1 -1
  12. package/dist/brandsync-wc/{p-fcd4ec60.entry.js → p-30d6a6d0.entry.js} +1 -1
  13. package/dist/brandsync-wc/{p-57e1dc35.entry.js → p-3eab22a5.entry.js} +1 -1
  14. package/dist/brandsync-wc/{p-57609703.entry.js → p-4b0938a5.entry.js} +1 -1
  15. package/dist/brandsync-wc/{p-512dafc6.entry.js → p-5312b6a5.entry.js} +1 -1
  16. package/dist/brandsync-wc/{p-9fb8848c.entry.js → p-538cc08e.entry.js} +1 -1
  17. package/dist/brandsync-wc/p-55e6438c.entry.js +1 -0
  18. package/dist/brandsync-wc/{p-a8cdf449.entry.js → p-600b5434.entry.js} +1 -1
  19. package/dist/brandsync-wc/p-61db6ce2.entry.js +1 -0
  20. package/dist/brandsync-wc/{p-ef68f29b.entry.js → p-70e035ed.entry.js} +1 -1
  21. package/dist/brandsync-wc/{p-0aca5f0e.entry.js → p-77433277.entry.js} +1 -1
  22. package/dist/brandsync-wc/{p-f714683d.entry.js → p-777a9dbf.entry.js} +1 -1
  23. package/dist/brandsync-wc/p-7ed5670e.entry.js +1 -0
  24. package/dist/brandsync-wc/{p-e35249c4.entry.js → p-819a3dae.entry.js} +1 -1
  25. package/dist/brandsync-wc/{p-11224cab.entry.js → p-85c70f6d.entry.js} +1 -1
  26. package/dist/brandsync-wc/{p-525504c2.entry.js → p-8b2ab522.entry.js} +1 -1
  27. package/dist/brandsync-wc/{p-abda1d69.entry.js → p-8b57f606.entry.js} +1 -1
  28. package/dist/brandsync-wc/{p-a603a13a.entry.js → p-9c1be2a0.entry.js} +1 -1
  29. package/dist/brandsync-wc/{p-604553a0.entry.js → p-a36a0e6a.entry.js} +1 -1
  30. package/dist/brandsync-wc/{p-3cb58df8.entry.js → p-b0634051.entry.js} +1 -1
  31. package/dist/brandsync-wc/{p-7b9598d9.entry.js → p-b2dc9886.entry.js} +1 -1
  32. package/dist/brandsync-wc/{p-413a1ee0.entry.js → p-bcee3d60.entry.js} +1 -1
  33. package/dist/brandsync-wc/{p-a3a4d541.entry.js → p-be14f99f.entry.js} +1 -1
  34. package/dist/brandsync-wc/{p-52d5f6a9.entry.js → p-c197cc95.entry.js} +1 -1
  35. package/dist/brandsync-wc/{p-9b72cc12.entry.js → p-c3a28a89.entry.js} +1 -1
  36. package/dist/brandsync-wc/{p-43617f2e.entry.js → p-d06543a5.entry.js} +1 -1
  37. package/dist/brandsync-wc/{p-c5011746.entry.js → p-d25b7b74.entry.js} +1 -1
  38. package/dist/brandsync-wc/{p-bb77098b.entry.js → p-e1069ba9.entry.js} +1 -1
  39. package/dist/brandsync-wc/p-e427bbda.entry.js +1 -0
  40. package/dist/brandsync-wc/{p-bb68e236.entry.js → p-e61efe4d.entry.js} +1 -1
  41. package/dist/brandsync-wc/{p-6c769a1d.entry.js → p-f14bda01.entry.js} +1 -1
  42. package/dist/brandsync-wc/{p-c054f493.entry.js → p-f243683f.entry.js} +1 -1
  43. package/dist/brandsync-wc/{p-7609221f.entry.js → p-f518f486.entry.js} +1 -1
  44. package/dist/brandsync-wc/{p-98021881.entry.js → p-f8f03334.entry.js} +1 -1
  45. package/dist/brandsync-wc/{p-a8e2a2b2.entry.js → p-fba01c96.entry.js} +1 -1
  46. package/dist/brandsync-wc/{p-db46376b.entry.js → p-fde5e9f1.entry.js} +1 -1
  47. package/dist/cjs/brandsync-wc.cjs.js +1 -1
  48. package/dist/cjs/bs-ai-disclaimer.cjs.entry.js +1 -1
  49. package/dist/cjs/bs-ai-greeting.cjs.entry.js +1 -1
  50. package/dist/cjs/bs-ai-thinking.cjs.entry.js +1 -1
  51. package/dist/cjs/bs-attachment-list.cjs.entry.js +1 -1
  52. package/dist/cjs/bs-breadcrumbs.cjs.entry.js +1 -1
  53. package/dist/cjs/bs-button-skeleton.cjs.entry.js +1 -1
  54. package/dist/cjs/bs-carousel.cjs.entry.js +196 -0
  55. package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +1 -1
  56. package/dist/cjs/bs-chatbot-header.cjs.entry.js +1 -1
  57. package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +1 -1
  58. package/dist/cjs/bs-chatbot-sources-drawer.cjs.entry.js +1 -1
  59. package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +1 -1
  60. package/dist/cjs/bs-checkbox-skeleton.cjs.entry.js +1 -1
  61. package/dist/cjs/bs-checkbox.cjs.entry.js +1 -1
  62. package/dist/cjs/bs-chip-filter.cjs.entry.js +1 -1
  63. package/dist/cjs/bs-chip-informative.cjs.entry.js +1 -1
  64. package/dist/cjs/bs-chip-input.cjs.entry.js +1 -1
  65. package/dist/cjs/bs-composer-status-banner.cjs.entry.js +1 -1
  66. package/dist/cjs/bs-composer.cjs.entry.js +1 -1
  67. package/dist/cjs/bs-data-table.cjs.entry.js +2 -2
  68. package/dist/cjs/bs-file-upload-item.cjs.entry.js +85 -0
  69. package/dist/cjs/bs-file-upload.cjs.entry.js +110 -0
  70. package/dist/cjs/bs-icon-button.cjs.entry.js +1 -1
  71. package/dist/cjs/bs-inline-tab.cjs.entry.js +1 -1
  72. package/dist/cjs/bs-input.cjs.entry.js +2 -2
  73. package/dist/cjs/bs-menu-item.cjs.entry.js +1 -1
  74. package/dist/cjs/bs-menu.cjs.entry.js +1 -1
  75. package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +1 -1
  76. package/dist/cjs/bs-navigation-drawer.cjs.entry.js +1 -1
  77. package/dist/cjs/bs-navigation-header.cjs.entry.js +1 -1
  78. package/dist/cjs/bs-pagination.cjs.entry.js +1 -1
  79. package/dist/cjs/bs-progress-linear.cjs.entry.js +7 -2
  80. package/dist/cjs/bs-progress.cjs.entry.js +2 -2
  81. package/dist/cjs/bs-radio.cjs.entry.js +1 -1
  82. package/dist/cjs/bs-slider.cjs.entry.js +1 -1
  83. package/dist/cjs/bs-snackbar.cjs.entry.js +1 -1
  84. package/dist/cjs/bs-source-link.cjs.entry.js +2 -2
  85. package/dist/cjs/bs-stepper-step.cjs.entry.js +1 -1
  86. package/dist/cjs/bs-stepper.cjs.entry.js +1 -1
  87. package/dist/cjs/bs-switch.cjs.entry.js +1 -1
  88. package/dist/cjs/bs-tab.cjs.entry.js +1 -1
  89. package/dist/cjs/bs-tabs.cjs.entry.js +1 -1
  90. package/dist/cjs/bs-toast.cjs.entry.js +1 -1
  91. package/dist/cjs/bs-tooltip.cjs.entry.js +1 -1
  92. package/dist/cjs/loader.cjs.js +1 -1
  93. package/dist/collection/collection-manifest.json +3 -0
  94. package/dist/collection/components/bs-accordion/bs-accordion.cmp.test.js +5 -0
  95. package/dist/collection/components/bs-ai-disclaimer/bs-ai-disclaimer.js +1 -1
  96. package/dist/collection/components/bs-ai-greeting/bs-ai-greeting.js +1 -1
  97. package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.js +1 -1
  98. package/dist/collection/components/bs-attachment-list/bs-attachment-list.js +1 -1
  99. package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.js +1 -1
  100. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.js +1 -1
  101. package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +1 -1
  102. package/dist/collection/components/bs-carousel/bs-carousel.cmp.test.js +198 -0
  103. package/dist/collection/components/bs-carousel/bs-carousel.css +107 -0
  104. package/dist/collection/components/bs-carousel/bs-carousel.js +531 -0
  105. package/dist/collection/components/bs-carousel/bs-carousel.stories.js +68 -0
  106. package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.js +1 -1
  107. package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.js +1 -1
  108. package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.js +1 -1
  109. package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.js +1 -1
  110. package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js +1 -1
  111. package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.js +1 -1
  112. package/dist/collection/components/bs-checkbox/bs-checkbox.js +1 -1
  113. package/dist/collection/components/bs-chip/bs-chip-filter/bs-chip-filter.js +1 -1
  114. package/dist/collection/components/bs-chip/bs-chip-informative/bs-chip-informative.js +1 -1
  115. package/dist/collection/components/bs-chip/bs-chip-input/bs-chip-input.js +1 -1
  116. package/dist/collection/components/bs-composer/bs-composer.js +1 -1
  117. package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.js +1 -1
  118. package/dist/collection/components/bs-data-table/bs-data-table.js +2 -2
  119. package/dist/collection/components/bs-file-upload/bs-file-upload.cmp.test.js +119 -0
  120. package/dist/collection/components/bs-file-upload/bs-file-upload.css +139 -0
  121. package/dist/collection/components/bs-file-upload/bs-file-upload.js +342 -0
  122. package/dist/collection/components/bs-file-upload/bs-file-upload.stories.js +116 -0
  123. package/dist/collection/components/bs-file-upload-item/bs-file-upload-item.cmp.test.js +115 -0
  124. package/dist/collection/components/bs-file-upload-item/bs-file-upload-item.css +154 -0
  125. package/dist/collection/components/bs-file-upload-item/bs-file-upload-item.js +329 -0
  126. package/dist/collection/components/bs-file-upload-item/bs-file-upload-item.stories.js +54 -0
  127. package/dist/collection/components/bs-input/bs-input.js +2 -2
  128. package/dist/collection/components/bs-menu/bs-menu.js +1 -1
  129. package/dist/collection/components/bs-menu-item/bs-menu-item.js +1 -1
  130. package/dist/collection/components/bs-pagination/bs-pagination.js +1 -1
  131. package/dist/collection/components/bs-progress/bs-progress.js +2 -2
  132. package/dist/collection/components/bs-progress-linear/bs-progress-linear.js +27 -2
  133. package/dist/collection/components/bs-radio/bs-radio.js +1 -1
  134. package/dist/collection/components/bs-slider/bs-slider.js +1 -1
  135. package/dist/collection/components/bs-snackbar/bs-snackbar.js +1 -1
  136. package/dist/collection/components/bs-source-link/bs-source-link.js +2 -2
  137. package/dist/collection/components/bs-stepper/bs-stepper/bs-stepper.js +1 -1
  138. package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.js +1 -1
  139. package/dist/collection/components/bs-switch/bs-switch.js +1 -1
  140. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.js +1 -1
  141. package/dist/collection/components/bs-tab/bs-tab/bs-tab.js +1 -1
  142. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.js +1 -1
  143. package/dist/collection/components/bs-toast/bs-toast.js +1 -1
  144. package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
  145. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +1 -1
  146. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.js +1 -1
  147. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.js +1 -1
  148. package/dist/collection/test/helpers/conventions.js +46 -0
  149. package/dist/collection/test/helpers/conventions.unit.test.js +38 -0
  150. package/dist/components/bs-ai-disclaimer.js +1 -1
  151. package/dist/components/bs-ai-greeting.js +1 -1
  152. package/dist/components/bs-ai-thinking.js +1 -1
  153. package/dist/components/bs-attachment-list.js +1 -1
  154. package/dist/components/bs-attachment.js +1 -1
  155. package/dist/components/bs-breadcrumb-overflow.js +1 -1
  156. package/dist/components/bs-breadcrumbs.js +1 -1
  157. package/dist/components/bs-button-skeleton.js +1 -1
  158. package/dist/components/bs-carousel.d.ts +11 -0
  159. package/dist/components/bs-carousel.js +1 -0
  160. package/dist/components/bs-chatbot-feedback.js +1 -1
  161. package/dist/components/bs-chatbot-header.js +1 -1
  162. package/dist/components/bs-chatbot-response-action.js +1 -1
  163. package/dist/components/bs-chatbot-sources-drawer.js +1 -1
  164. package/dist/components/bs-chatbot-suggestion-button.js +1 -1
  165. package/dist/components/bs-checkbox-skeleton.js +1 -1
  166. package/dist/components/bs-checkbox.js +1 -1
  167. package/dist/components/bs-chip-filter.js +1 -1
  168. package/dist/components/bs-chip-informative.js +1 -1
  169. package/dist/components/bs-chip-input.js +1 -1
  170. package/dist/components/bs-composer-status-banner.js +1 -1
  171. package/dist/components/bs-composer.js +1 -1
  172. package/dist/components/bs-data-table.js +1 -1
  173. package/dist/components/bs-dialog.js +1 -1
  174. package/dist/components/bs-file-upload-item.d.ts +11 -0
  175. package/dist/components/bs-file-upload-item.js +1 -0
  176. package/dist/components/bs-file-upload.d.ts +11 -0
  177. package/dist/components/bs-file-upload.js +1 -0
  178. package/dist/components/bs-icon-button.js +1 -1
  179. package/dist/components/bs-inline-tab.js +1 -1
  180. package/dist/components/bs-input.js +1 -1
  181. package/dist/components/bs-menu-item.js +1 -1
  182. package/dist/components/bs-menu.js +1 -1
  183. package/dist/components/bs-navigation-drawer-item.js +1 -1
  184. package/dist/components/bs-navigation-drawer.js +1 -1
  185. package/dist/components/bs-navigation-header.js +1 -1
  186. package/dist/components/bs-pagination.js +1 -1
  187. package/dist/components/bs-progress-linear.js +1 -1
  188. package/dist/components/bs-progress.js +1 -1
  189. package/dist/components/bs-radio.js +1 -1
  190. package/dist/components/bs-slider.js +1 -1
  191. package/dist/components/bs-snackbar.js +1 -1
  192. package/dist/components/bs-source-link.js +1 -1
  193. package/dist/components/bs-stepper-step.js +1 -1
  194. package/dist/components/bs-stepper.js +1 -1
  195. package/dist/components/bs-switch.js +1 -1
  196. package/dist/components/bs-tab.js +1 -1
  197. package/dist/components/bs-tabs.js +1 -1
  198. package/dist/components/bs-toast.js +1 -1
  199. package/dist/components/bs-tooltip.js +1 -1
  200. package/dist/components/p-BxFJ74fI.js +1 -0
  201. package/dist/components/{p-DKMMCLxx.js → p-DI5GgSqL.js} +1 -1
  202. package/dist/components/{p-DIezWdNu.js → p-Dqt-Qp4W.js} +1 -1
  203. package/dist/components/p-Dx8gAOVC.js +1 -0
  204. package/dist/components/{p-B8eut73c.js → p-LYvoWZt4.js} +1 -1
  205. package/dist/components/{p-3gs695M6.js → p-v4T0qPVn.js} +1 -1
  206. package/dist/esm/brandsync-wc.js +1 -1
  207. package/dist/esm/bs-ai-disclaimer.entry.js +1 -1
  208. package/dist/esm/bs-ai-greeting.entry.js +1 -1
  209. package/dist/esm/bs-ai-thinking.entry.js +1 -1
  210. package/dist/esm/bs-attachment-list.entry.js +1 -1
  211. package/dist/esm/bs-breadcrumbs.entry.js +1 -1
  212. package/dist/esm/bs-button-skeleton.entry.js +1 -1
  213. package/dist/esm/bs-carousel.entry.js +194 -0
  214. package/dist/esm/bs-chatbot-feedback.entry.js +1 -1
  215. package/dist/esm/bs-chatbot-header.entry.js +1 -1
  216. package/dist/esm/bs-chatbot-response-action.entry.js +1 -1
  217. package/dist/esm/bs-chatbot-sources-drawer.entry.js +1 -1
  218. package/dist/esm/bs-chatbot-suggestion-button.entry.js +1 -1
  219. package/dist/esm/bs-checkbox-skeleton.entry.js +1 -1
  220. package/dist/esm/bs-checkbox.entry.js +1 -1
  221. package/dist/esm/bs-chip-filter.entry.js +1 -1
  222. package/dist/esm/bs-chip-informative.entry.js +1 -1
  223. package/dist/esm/bs-chip-input.entry.js +1 -1
  224. package/dist/esm/bs-composer-status-banner.entry.js +1 -1
  225. package/dist/esm/bs-composer.entry.js +1 -1
  226. package/dist/esm/bs-data-table.entry.js +2 -2
  227. package/dist/esm/bs-file-upload-item.entry.js +83 -0
  228. package/dist/esm/bs-file-upload.entry.js +108 -0
  229. package/dist/esm/bs-icon-button.entry.js +1 -1
  230. package/dist/esm/bs-inline-tab.entry.js +1 -1
  231. package/dist/esm/bs-input.entry.js +2 -2
  232. package/dist/esm/bs-menu-item.entry.js +1 -1
  233. package/dist/esm/bs-menu.entry.js +1 -1
  234. package/dist/esm/bs-navigation-drawer-item.entry.js +1 -1
  235. package/dist/esm/bs-navigation-drawer.entry.js +1 -1
  236. package/dist/esm/bs-navigation-header.entry.js +1 -1
  237. package/dist/esm/bs-pagination.entry.js +1 -1
  238. package/dist/esm/bs-progress-linear.entry.js +7 -2
  239. package/dist/esm/bs-progress.entry.js +2 -2
  240. package/dist/esm/bs-radio.entry.js +1 -1
  241. package/dist/esm/bs-slider.entry.js +1 -1
  242. package/dist/esm/bs-snackbar.entry.js +1 -1
  243. package/dist/esm/bs-source-link.entry.js +2 -2
  244. package/dist/esm/bs-stepper-step.entry.js +1 -1
  245. package/dist/esm/bs-stepper.entry.js +1 -1
  246. package/dist/esm/bs-switch.entry.js +1 -1
  247. package/dist/esm/bs-tab.entry.js +1 -1
  248. package/dist/esm/bs-tabs.entry.js +1 -1
  249. package/dist/esm/bs-toast.entry.js +1 -1
  250. package/dist/esm/bs-tooltip.entry.js +1 -1
  251. package/dist/esm/loader.js +1 -1
  252. package/dist/types/components/bs-carousel/bs-carousel.cmp.test.d.ts +1 -0
  253. package/dist/types/components/bs-carousel/bs-carousel.d.ts +101 -0
  254. package/dist/types/components/bs-carousel/bs-carousel.stories.d.ts +17 -0
  255. package/dist/types/components/bs-file-upload/bs-file-upload.cmp.test.d.ts +1 -0
  256. package/dist/types/components/bs-file-upload/bs-file-upload.d.ts +59 -0
  257. package/dist/types/components/bs-file-upload/bs-file-upload.stories.d.ts +21 -0
  258. package/dist/types/components/bs-file-upload-item/bs-file-upload-item.cmp.test.d.ts +1 -0
  259. package/dist/types/components/bs-file-upload-item/bs-file-upload-item.d.ts +58 -0
  260. package/dist/types/components/bs-file-upload-item/bs-file-upload-item.stories.d.ts +18 -0
  261. package/dist/types/components/bs-progress-linear/bs-progress-linear.d.ts +5 -0
  262. package/dist/types/components.d.ts +594 -0
  263. package/dist/types/test/helpers/conventions.d.ts +21 -0
  264. package/dist/types/test/helpers/conventions.unit.test.d.ts +1 -0
  265. package/package.json +2 -1
  266. package/dist/brandsync-wc/p-6bf8a5bd.entry.js +0 -1
  267. package/dist/brandsync-wc/p-fe778b6b.entry.js +0 -1
@@ -15,6 +15,7 @@ import { BsBreadcrumbSize as BsBreadcrumbSize1 } from "./components/bs-breadcrum
15
15
  import { BsButtonSize, BsButtonVariant } from "./components/bs-button/bs-button/bs-button";
16
16
  import { BsButtonSize as BsButtonSize1 } from "./components/bs-button/bs-button/bs-button";
17
17
  import { BsCardSurface } from "./components/bs-card/bs-card";
18
+ import { BsCarouselTracker } from "./components/bs-carousel/bs-carousel";
18
19
  import { BsCheckboxSize } from "./components/bs-checkbox/bs-checkbox";
19
20
  import { BsCheckboxSize as BsCheckboxSize1 } from "./components/bs-checkbox/bs-checkbox";
20
21
  import { BsChipFilterSize } from "./components/bs-chip/bs-chip-filter/bs-chip-filter";
@@ -24,6 +25,8 @@ import { BsComposerState, BsComposerVariant } from "./components/bs-composer/bs-
24
25
  import { BsComposerStatusBannerType } from "./components/bs-composer-status-banner/bs-composer-status-banner";
25
26
  import { BsDataTableColumn, BsDataTableRow } from "./components/bs-data-table/bs-data-table";
26
27
  import { BsDialogSize } from "./components/bs-dialog/bs-dialog";
28
+ import { BsFileUploadDirection } from "./components/bs-file-upload/bs-file-upload";
29
+ import { BsFileUploadItemState } from "./components/bs-file-upload-item/bs-file-upload-item";
27
30
  import { BsIconButtonSize, BsIconButtonVariant } from "./components/bs-button/bs-icon-button/bs-icon-button";
28
31
  import { BsLogoBackground, BsLogoVariant } from "./components/bs-logo/bs-logo";
29
32
  import { BsNavigationHeaderAlignment } from "./components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header";
@@ -47,6 +50,7 @@ export { BsBreadcrumbSize as BsBreadcrumbSize1 } from "./components/bs-breadcrum
47
50
  export { BsButtonSize, BsButtonVariant } from "./components/bs-button/bs-button/bs-button";
48
51
  export { BsButtonSize as BsButtonSize1 } from "./components/bs-button/bs-button/bs-button";
49
52
  export { BsCardSurface } from "./components/bs-card/bs-card";
53
+ export { BsCarouselTracker } from "./components/bs-carousel/bs-carousel";
50
54
  export { BsCheckboxSize } from "./components/bs-checkbox/bs-checkbox";
51
55
  export { BsCheckboxSize as BsCheckboxSize1 } from "./components/bs-checkbox/bs-checkbox";
52
56
  export { BsChipFilterSize } from "./components/bs-chip/bs-chip-filter/bs-chip-filter";
@@ -56,6 +60,8 @@ export { BsComposerState, BsComposerVariant } from "./components/bs-composer/bs-
56
60
  export { BsComposerStatusBannerType } from "./components/bs-composer-status-banner/bs-composer-status-banner";
57
61
  export { BsDataTableColumn, BsDataTableRow } from "./components/bs-data-table/bs-data-table";
58
62
  export { BsDialogSize } from "./components/bs-dialog/bs-dialog";
63
+ export { BsFileUploadDirection } from "./components/bs-file-upload/bs-file-upload";
64
+ export { BsFileUploadItemState } from "./components/bs-file-upload-item/bs-file-upload-item";
59
65
  export { BsIconButtonSize, BsIconButtonVariant } from "./components/bs-button/bs-icon-button/bs-icon-button";
60
66
  export { BsLogoBackground, BsLogoVariant } from "./components/bs-logo/bs-logo";
61
67
  export { BsNavigationHeaderAlignment } from "./components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header";
@@ -538,6 +544,82 @@ export namespace Components {
538
544
  */
539
545
  "surface": BsCardSurface;
540
546
  }
547
+ /**
548
+ * A carousel that shows a page of slides at a time, with a tracker (dots or numbered blocks) and
549
+ * previous/next controls, and optional auto-advance with a Pause/Play button.
550
+ * Slides are the default slot's direct children (a `bs-card`, an image, anything). The carousel
551
+ * shows `slidesPerView` of them at once, so there are `ceil(slides / slidesPerView)` pages. It
552
+ * manages two things on those slide elements: the `hidden` attribute (off-page slides are hidden,
553
+ * so they leave the tab order and the accessibility tree) and, only when not already set,
554
+ * `role="group"`, `aria-roledescription="slide"` and an `aria-label` of "n of N".
555
+ * Composes `bs-pagination` (`tracker="numbers"`), `bs-icon-button` (previous/next for
556
+ * `tracker="dots"`) and `bs-button` (Pause/Play) rather than re-implementing them.
557
+ * ## When to use
558
+ * - Browsing a set of related items (cards, images, announcements) where only a few fit at once.
559
+ * - Rotating promotional or highlight content, where auto-advance with a Pause control is wanted.
560
+ * ## When not to use
561
+ * - Content users must see in full to complete a task -- hiding it behind paging hurts discovery;
562
+ * lay it out in a list or grid instead.
563
+ * - A strict sequence of steps -- use `bs-stepper`.
564
+ * - Paging through a large, addressable result set -- use `bs-pagination`.
565
+ */
566
+ interface BsCarousel {
567
+ /**
568
+ * Auto-advances to the next page every `interval` ms, looping from the last page to the first. Off by default. The Pause/Play button is only rendered when this is set. Auto-advance also stops while the pointer is over the carousel or focus is inside it, and starts paused for users who prefer reduced motion.
569
+ * @default false
570
+ */
571
+ "autoplay": boolean;
572
+ /**
573
+ * The visible page, 1-based (same convention as `bs-pagination`). Mutable so the carousel advances it itself (tracker, previous/next, autoplay). Clamped to the available pages.
574
+ * @default 1
575
+ */
576
+ "currentPage": number;
577
+ /**
578
+ * Milliseconds between auto-advances, when `autoplay` is set.
579
+ * @default 5000
580
+ */
581
+ "interval": number;
582
+ /**
583
+ * Accessible name of the carousel region (e.g. "Featured articles").
584
+ * @default 'Carousel'
585
+ */
586
+ "label": string;
587
+ /**
588
+ * Accessible name of the next button (`tracker="dots"`) -- override for localisation.
589
+ * @default 'Next slide'
590
+ */
591
+ "nextLabel": string;
592
+ /**
593
+ * Label of the Pause/Play button while auto-advance is running.
594
+ * @default 'Pause'
595
+ */
596
+ "pauseLabel": string;
597
+ /**
598
+ * Whether auto-advance is paused by the user (the Pause/Play button). Mutable and reflected so the state is visible to CSS and settable from outside. Only meaningful with `autoplay`.
599
+ * @default false
600
+ */
601
+ "paused": boolean;
602
+ /**
603
+ * Label of the Pause/Play button while auto-advance is paused.
604
+ * @default 'Play'
605
+ */
606
+ "playLabel": string;
607
+ /**
608
+ * Accessible name of the previous button (`tracker="dots"`) -- override for localisation.
609
+ * @default 'Previous slide'
610
+ */
611
+ "previousLabel": string;
612
+ /**
613
+ * How many slides are visible at once. The tracker counts pages: `ceil(slides / slidesPerView)`.
614
+ * @default 3
615
+ */
616
+ "slidesPerView": number;
617
+ /**
618
+ * Which tracker to show under the slides. `dots` is a compact dot row between previous/next buttons (the dots are an indicator, not buttons); `numbers` is a numbered `bs-pagination` where each page can be jumped to directly.
619
+ * @default 'dots'
620
+ */
621
+ "tracker": BsCarouselTracker;
622
+ }
541
623
  /**
542
624
  * A star-rating feedback card shown at the end of a Genie AI chat: a heading/subtitle, a 5-star
543
625
  * rating, an optional comment, and either "Submit feedback" + "Start new chat" (before
@@ -1152,6 +1234,111 @@ export namespace Components {
1152
1234
  */
1153
1235
  "size": BsDialogSize;
1154
1236
  }
1237
+ /**
1238
+ * A file dropzone: drag files onto it, or press "Browse file" to open the file picker. It reports
1239
+ * the chosen files and does nothing else -- the consuming app owns the upload itself and shows its
1240
+ * progress with `bs-file-upload-item`.
1241
+ * ## When to use
1242
+ * - Letting users add one or more files (documents, images) to upload.
1243
+ * ## When not to use
1244
+ * - Attaching files to a chat message -- see `bs-composer` / `bs-attachment`.
1245
+ * - A file input that must submit with a native `<form>`: this component is **not**
1246
+ * form-associated. Read the files from `bsFilesSelect` and submit them yourself.
1247
+ */
1248
+ interface BsFileUpload {
1249
+ /**
1250
+ * Which files are accepted, same syntax as the native `accept` attribute: comma-separated extensions (`.pdf`), MIME types (`image/png`) or wildcards (`image/*`). Applied to the picker and also to dropped files, which the browser does not filter.
1251
+ */
1252
+ "accept"?: string;
1253
+ /**
1254
+ * Label of the browse button. Override for localisation.
1255
+ * @default 'Browse file'
1256
+ */
1257
+ "buttonLabel": string;
1258
+ /**
1259
+ * Guidelines under the heading (e.g. "PDF or JPG, up to 8MB").
1260
+ */
1261
+ "description"?: string;
1262
+ /**
1263
+ * Layout: icon beside the text (`horizontal`) or stacked above it, centered (`vertical`).
1264
+ * @default 'horizontal'
1265
+ */
1266
+ "direction": BsFileUploadDirection;
1267
+ /**
1268
+ * Disables the browse button and ignores drops.
1269
+ * @default false
1270
+ */
1271
+ "disabled": boolean;
1272
+ /**
1273
+ * Whether a file is currently being dragged over the dropzone (the Figma "Drop" state). Set by the component during a drag; mutable and reflected so it can also be set to show the state statically.
1274
+ * @default false
1275
+ */
1276
+ "dragging": boolean;
1277
+ /**
1278
+ * Heading text (e.g. "Upload your documents").
1279
+ */
1280
+ "heading"?: string;
1281
+ /**
1282
+ * Allows selecting/dropping more than one file. Without it only the first file is taken.
1283
+ * @default false
1284
+ */
1285
+ "multiple": boolean;
1286
+ }
1287
+ /**
1288
+ * One file in an upload list: a thumbnail, the file name and size, a status line (a progress bar
1289
+ * while uploading, or a success / error message) and an action button (cancel while uploading or
1290
+ * after an error, remove once uploaded).
1291
+ * Presentational only -- the consuming app owns the upload and drives `state`, `progress` and
1292
+ * `message` from it. Pair with `bs-file-upload` (the dropzone that picks the files).
1293
+ * ## When to use
1294
+ * - Showing the status of each file the user has added, in a list under a `bs-file-upload`.
1295
+ * ## When not to use
1296
+ * - Attaching files to a chat message -- use `bs-attachment`.
1297
+ */
1298
+ interface BsFileUploadItem {
1299
+ /**
1300
+ * Accessible name of the cancel button (`loading`, `in-progress`, `error`).
1301
+ * @default 'Cancel upload'
1302
+ */
1303
+ "cancelLabel": string;
1304
+ /**
1305
+ * The file name.
1306
+ * @default ''
1307
+ */
1308
+ "fileName": string;
1309
+ /**
1310
+ * The file size, already formatted (e.g. "8MB").
1311
+ */
1312
+ "fileSize"?: string;
1313
+ /**
1314
+ * The status text. Defaults per state: "Loading..." (`loading`), "{progress}% uploaded" (`in-progress`), "Upload failed" (`error`), "File uploaded successfully" (`success`). Provide your own for localisation or a specific error.
1315
+ */
1316
+ "message"?: string;
1317
+ /**
1318
+ * Upload progress, 0-100. Only used when `state="in-progress"`.
1319
+ * @default 0
1320
+ */
1321
+ "progress": number;
1322
+ /**
1323
+ * Accessible name of the remove button (`success`).
1324
+ * @default 'Remove file'
1325
+ */
1326
+ "removeLabel": string;
1327
+ /**
1328
+ * Where the upload is. `loading` = working with no known percentage (indeterminate bar); `in-progress` = uploading with a known `progress`; `error` and `success` are final.
1329
+ * @default 'loading'
1330
+ */
1331
+ "state": BsFileUploadItemState;
1332
+ /**
1333
+ * Alt text for `thumbnailSrc`. Leave empty when the file name already says it all.
1334
+ * @default ''
1335
+ */
1336
+ "thumbnailAlt": string;
1337
+ /**
1338
+ * A preview image of the file. Shown instead of the placeholder icon when set.
1339
+ */
1340
+ "thumbnailSrc"?: string;
1341
+ }
1155
1342
  /**
1156
1343
  * A clickable, icon-only action element -- the icon-only sibling of `bs-button`, sharing the same
1157
1344
  * 8 visual variants and color language, but ALWAYS rendering just a single icon, never a label.
@@ -1701,6 +1888,11 @@ export namespace Components {
1701
1888
  * weight of a bar.
1702
1889
  */
1703
1890
  interface BsProgressLinear {
1891
+ /**
1892
+ * Accessible name for the progress bar (e.g. "Uploading report"). Required for assistive tech -- a `role="progressbar"` with no name is an axe-core `aria-progressbar-name` violation. Setting `aria-label` on the host doesn't reach the inner element across the shadow boundary, so this prop binds it directly -- same pattern as `bs-button`'s `ariaLabel`.
1893
+ * @default null
1894
+ */
1895
+ "ariaLabel": string | null;
1704
1896
  /**
1705
1897
  * Shows the slotted label below the bar. When `false`, or when no content is slotted, the label wrapper isn't rendered at all. Defaults to `true`.
1706
1898
  * @default true
@@ -2162,6 +2354,10 @@ export interface BsAttachmentCustomEvent<T> extends CustomEvent<T> {
2162
2354
  detail: T;
2163
2355
  target: HTMLBsAttachmentElement;
2164
2356
  }
2357
+ export interface BsCarouselCustomEvent<T> extends CustomEvent<T> {
2358
+ detail: T;
2359
+ target: HTMLBsCarouselElement;
2360
+ }
2165
2361
  export interface BsChatbotFeedbackCustomEvent<T> extends CustomEvent<T> {
2166
2362
  detail: T;
2167
2363
  target: HTMLBsChatbotFeedbackElement;
@@ -2210,6 +2406,14 @@ export interface BsDialogCustomEvent<T> extends CustomEvent<T> {
2210
2406
  detail: T;
2211
2407
  target: HTMLBsDialogElement;
2212
2408
  }
2409
+ export interface BsFileUploadCustomEvent<T> extends CustomEvent<T> {
2410
+ detail: T;
2411
+ target: HTMLBsFileUploadElement;
2412
+ }
2413
+ export interface BsFileUploadItemCustomEvent<T> extends CustomEvent<T> {
2414
+ detail: T;
2415
+ target: HTMLBsFileUploadItemElement;
2416
+ }
2213
2417
  export interface BsInlineTabCustomEvent<T> extends CustomEvent<T> {
2214
2418
  detail: T;
2215
2419
  target: HTMLBsInlineTabElement;
@@ -2622,6 +2826,43 @@ declare global {
2622
2826
  prototype: HTMLBsCardElement;
2623
2827
  new (): HTMLBsCardElement;
2624
2828
  };
2829
+ interface HTMLBsCarouselElementEventMap {
2830
+ "bsPageChange": number;
2831
+ "bsPauseChange": boolean;
2832
+ }
2833
+ /**
2834
+ * A carousel that shows a page of slides at a time, with a tracker (dots or numbered blocks) and
2835
+ * previous/next controls, and optional auto-advance with a Pause/Play button.
2836
+ * Slides are the default slot's direct children (a `bs-card`, an image, anything). The carousel
2837
+ * shows `slidesPerView` of them at once, so there are `ceil(slides / slidesPerView)` pages. It
2838
+ * manages two things on those slide elements: the `hidden` attribute (off-page slides are hidden,
2839
+ * so they leave the tab order and the accessibility tree) and, only when not already set,
2840
+ * `role="group"`, `aria-roledescription="slide"` and an `aria-label` of "n of N".
2841
+ * Composes `bs-pagination` (`tracker="numbers"`), `bs-icon-button` (previous/next for
2842
+ * `tracker="dots"`) and `bs-button` (Pause/Play) rather than re-implementing them.
2843
+ * ## When to use
2844
+ * - Browsing a set of related items (cards, images, announcements) where only a few fit at once.
2845
+ * - Rotating promotional or highlight content, where auto-advance with a Pause control is wanted.
2846
+ * ## When not to use
2847
+ * - Content users must see in full to complete a task -- hiding it behind paging hurts discovery;
2848
+ * lay it out in a list or grid instead.
2849
+ * - A strict sequence of steps -- use `bs-stepper`.
2850
+ * - Paging through a large, addressable result set -- use `bs-pagination`.
2851
+ */
2852
+ interface HTMLBsCarouselElement extends Components.BsCarousel, HTMLStencilElement {
2853
+ addEventListener<K extends keyof HTMLBsCarouselElementEventMap>(type: K, listener: (this: HTMLBsCarouselElement, ev: BsCarouselCustomEvent<HTMLBsCarouselElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2854
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2855
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2856
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
2857
+ removeEventListener<K extends keyof HTMLBsCarouselElementEventMap>(type: K, listener: (this: HTMLBsCarouselElement, ev: BsCarouselCustomEvent<HTMLBsCarouselElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
2858
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2859
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2860
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
2861
+ }
2862
+ var HTMLBsCarouselElement: {
2863
+ prototype: HTMLBsCarouselElement;
2864
+ new (): HTMLBsCarouselElement;
2865
+ };
2625
2866
  interface HTMLBsChatbotFeedbackElementEventMap {
2626
2867
  "bsRatingChange": number;
2627
2868
  "bsCommentInput": string;
@@ -3202,6 +3443,64 @@ declare global {
3202
3443
  prototype: HTMLBsDialogElement;
3203
3444
  new (): HTMLBsDialogElement;
3204
3445
  };
3446
+ interface HTMLBsFileUploadElementEventMap {
3447
+ "bsFilesSelect": File[];
3448
+ "bsFilesReject": File[];
3449
+ }
3450
+ /**
3451
+ * A file dropzone: drag files onto it, or press "Browse file" to open the file picker. It reports
3452
+ * the chosen files and does nothing else -- the consuming app owns the upload itself and shows its
3453
+ * progress with `bs-file-upload-item`.
3454
+ * ## When to use
3455
+ * - Letting users add one or more files (documents, images) to upload.
3456
+ * ## When not to use
3457
+ * - Attaching files to a chat message -- see `bs-composer` / `bs-attachment`.
3458
+ * - A file input that must submit with a native `<form>`: this component is **not**
3459
+ * form-associated. Read the files from `bsFilesSelect` and submit them yourself.
3460
+ */
3461
+ interface HTMLBsFileUploadElement extends Components.BsFileUpload, HTMLStencilElement {
3462
+ addEventListener<K extends keyof HTMLBsFileUploadElementEventMap>(type: K, listener: (this: HTMLBsFileUploadElement, ev: BsFileUploadCustomEvent<HTMLBsFileUploadElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
3463
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
3464
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
3465
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
3466
+ removeEventListener<K extends keyof HTMLBsFileUploadElementEventMap>(type: K, listener: (this: HTMLBsFileUploadElement, ev: BsFileUploadCustomEvent<HTMLBsFileUploadElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
3467
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
3468
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
3469
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
3470
+ }
3471
+ var HTMLBsFileUploadElement: {
3472
+ prototype: HTMLBsFileUploadElement;
3473
+ new (): HTMLBsFileUploadElement;
3474
+ };
3475
+ interface HTMLBsFileUploadItemElementEventMap {
3476
+ "bsCancel": void;
3477
+ "bsRemove": void;
3478
+ }
3479
+ /**
3480
+ * One file in an upload list: a thumbnail, the file name and size, a status line (a progress bar
3481
+ * while uploading, or a success / error message) and an action button (cancel while uploading or
3482
+ * after an error, remove once uploaded).
3483
+ * Presentational only -- the consuming app owns the upload and drives `state`, `progress` and
3484
+ * `message` from it. Pair with `bs-file-upload` (the dropzone that picks the files).
3485
+ * ## When to use
3486
+ * - Showing the status of each file the user has added, in a list under a `bs-file-upload`.
3487
+ * ## When not to use
3488
+ * - Attaching files to a chat message -- use `bs-attachment`.
3489
+ */
3490
+ interface HTMLBsFileUploadItemElement extends Components.BsFileUploadItem, HTMLStencilElement {
3491
+ addEventListener<K extends keyof HTMLBsFileUploadItemElementEventMap>(type: K, listener: (this: HTMLBsFileUploadItemElement, ev: BsFileUploadItemCustomEvent<HTMLBsFileUploadItemElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
3492
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
3493
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
3494
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
3495
+ removeEventListener<K extends keyof HTMLBsFileUploadItemElementEventMap>(type: K, listener: (this: HTMLBsFileUploadItemElement, ev: BsFileUploadItemCustomEvent<HTMLBsFileUploadItemElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
3496
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
3497
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
3498
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
3499
+ }
3500
+ var HTMLBsFileUploadItemElement: {
3501
+ prototype: HTMLBsFileUploadItemElement;
3502
+ new (): HTMLBsFileUploadItemElement;
3503
+ };
3205
3504
  /**
3206
3505
  * A clickable, icon-only action element -- the icon-only sibling of `bs-button`, sharing the same
3207
3506
  * 8 visual variants and color language, but ALWAYS rendering just a single icon, never a label.
@@ -3935,6 +4234,7 @@ declare global {
3935
4234
  "bs-button": HTMLBsButtonElement;
3936
4235
  "bs-button-skeleton": HTMLBsButtonSkeletonElement;
3937
4236
  "bs-card": HTMLBsCardElement;
4237
+ "bs-carousel": HTMLBsCarouselElement;
3938
4238
  "bs-chatbot-feedback": HTMLBsChatbotFeedbackElement;
3939
4239
  "bs-chatbot-header": HTMLBsChatbotHeaderElement;
3940
4240
  "bs-chatbot-response-action": HTMLBsChatbotResponseActionElement;
@@ -3949,6 +4249,8 @@ declare global {
3949
4249
  "bs-composer-status-banner": HTMLBsComposerStatusBannerElement;
3950
4250
  "bs-data-table": HTMLBsDataTableElement;
3951
4251
  "bs-dialog": HTMLBsDialogElement;
4252
+ "bs-file-upload": HTMLBsFileUploadElement;
4253
+ "bs-file-upload-item": HTMLBsFileUploadItemElement;
3952
4254
  "bs-icon-button": HTMLBsIconButtonElement;
3953
4255
  "bs-inline-tab": HTMLBsInlineTabElement;
3954
4256
  "bs-input": HTMLBsInputElement;
@@ -4451,6 +4753,90 @@ declare namespace LocalJSX {
4451
4753
  */
4452
4754
  "surface"?: BsCardSurface;
4453
4755
  }
4756
+ /**
4757
+ * A carousel that shows a page of slides at a time, with a tracker (dots or numbered blocks) and
4758
+ * previous/next controls, and optional auto-advance with a Pause/Play button.
4759
+ * Slides are the default slot's direct children (a `bs-card`, an image, anything). The carousel
4760
+ * shows `slidesPerView` of them at once, so there are `ceil(slides / slidesPerView)` pages. It
4761
+ * manages two things on those slide elements: the `hidden` attribute (off-page slides are hidden,
4762
+ * so they leave the tab order and the accessibility tree) and, only when not already set,
4763
+ * `role="group"`, `aria-roledescription="slide"` and an `aria-label` of "n of N".
4764
+ * Composes `bs-pagination` (`tracker="numbers"`), `bs-icon-button` (previous/next for
4765
+ * `tracker="dots"`) and `bs-button` (Pause/Play) rather than re-implementing them.
4766
+ * ## When to use
4767
+ * - Browsing a set of related items (cards, images, announcements) where only a few fit at once.
4768
+ * - Rotating promotional or highlight content, where auto-advance with a Pause control is wanted.
4769
+ * ## When not to use
4770
+ * - Content users must see in full to complete a task -- hiding it behind paging hurts discovery;
4771
+ * lay it out in a list or grid instead.
4772
+ * - A strict sequence of steps -- use `bs-stepper`.
4773
+ * - Paging through a large, addressable result set -- use `bs-pagination`.
4774
+ */
4775
+ interface BsCarousel {
4776
+ /**
4777
+ * Auto-advances to the next page every `interval` ms, looping from the last page to the first. Off by default. The Pause/Play button is only rendered when this is set. Auto-advance also stops while the pointer is over the carousel or focus is inside it, and starts paused for users who prefer reduced motion.
4778
+ * @default false
4779
+ */
4780
+ "autoplay"?: boolean;
4781
+ /**
4782
+ * The visible page, 1-based (same convention as `bs-pagination`). Mutable so the carousel advances it itself (tracker, previous/next, autoplay). Clamped to the available pages.
4783
+ * @default 1
4784
+ */
4785
+ "currentPage"?: number;
4786
+ /**
4787
+ * Milliseconds between auto-advances, when `autoplay` is set.
4788
+ * @default 5000
4789
+ */
4790
+ "interval"?: number;
4791
+ /**
4792
+ * Accessible name of the carousel region (e.g. "Featured articles").
4793
+ * @default 'Carousel'
4794
+ */
4795
+ "label"?: string;
4796
+ /**
4797
+ * Accessible name of the next button (`tracker="dots"`) -- override for localisation.
4798
+ * @default 'Next slide'
4799
+ */
4800
+ "nextLabel"?: string;
4801
+ /**
4802
+ * Fires after the visible page changes via the tracker, previous/next or autoplay, with the new 1-based page.
4803
+ */
4804
+ "onBsPageChange"?: (event: BsCarouselCustomEvent<number>) => void;
4805
+ /**
4806
+ * Fires when the user toggles the Pause/Play button, with the new `paused` value.
4807
+ */
4808
+ "onBsPauseChange"?: (event: BsCarouselCustomEvent<boolean>) => void;
4809
+ /**
4810
+ * Label of the Pause/Play button while auto-advance is running.
4811
+ * @default 'Pause'
4812
+ */
4813
+ "pauseLabel"?: string;
4814
+ /**
4815
+ * Whether auto-advance is paused by the user (the Pause/Play button). Mutable and reflected so the state is visible to CSS and settable from outside. Only meaningful with `autoplay`.
4816
+ * @default false
4817
+ */
4818
+ "paused"?: boolean;
4819
+ /**
4820
+ * Label of the Pause/Play button while auto-advance is paused.
4821
+ * @default 'Play'
4822
+ */
4823
+ "playLabel"?: string;
4824
+ /**
4825
+ * Accessible name of the previous button (`tracker="dots"`) -- override for localisation.
4826
+ * @default 'Previous slide'
4827
+ */
4828
+ "previousLabel"?: string;
4829
+ /**
4830
+ * How many slides are visible at once. The tracker counts pages: `ceil(slides / slidesPerView)`.
4831
+ * @default 3
4832
+ */
4833
+ "slidesPerView"?: number;
4834
+ /**
4835
+ * Which tracker to show under the slides. `dots` is a compact dot row between previous/next buttons (the dots are an indicator, not buttons); `numbers` is a numbered `bs-pagination` where each page can be jumped to directly.
4836
+ * @default 'dots'
4837
+ */
4838
+ "tracker"?: BsCarouselTracker;
4839
+ }
4454
4840
  /**
4455
4841
  * A star-rating feedback card shown at the end of a Genie AI chat: a heading/subtitle, a 5-star
4456
4842
  * rating, an optional comment, and either "Submit feedback" + "Start new chat" (before
@@ -5180,6 +5566,127 @@ declare namespace LocalJSX {
5180
5566
  */
5181
5567
  "size"?: BsDialogSize;
5182
5568
  }
5569
+ /**
5570
+ * A file dropzone: drag files onto it, or press "Browse file" to open the file picker. It reports
5571
+ * the chosen files and does nothing else -- the consuming app owns the upload itself and shows its
5572
+ * progress with `bs-file-upload-item`.
5573
+ * ## When to use
5574
+ * - Letting users add one or more files (documents, images) to upload.
5575
+ * ## When not to use
5576
+ * - Attaching files to a chat message -- see `bs-composer` / `bs-attachment`.
5577
+ * - A file input that must submit with a native `<form>`: this component is **not**
5578
+ * form-associated. Read the files from `bsFilesSelect` and submit them yourself.
5579
+ */
5580
+ interface BsFileUpload {
5581
+ /**
5582
+ * Which files are accepted, same syntax as the native `accept` attribute: comma-separated extensions (`.pdf`), MIME types (`image/png`) or wildcards (`image/*`). Applied to the picker and also to dropped files, which the browser does not filter.
5583
+ */
5584
+ "accept"?: string;
5585
+ /**
5586
+ * Label of the browse button. Override for localisation.
5587
+ * @default 'Browse file'
5588
+ */
5589
+ "buttonLabel"?: string;
5590
+ /**
5591
+ * Guidelines under the heading (e.g. "PDF or JPG, up to 8MB").
5592
+ */
5593
+ "description"?: string;
5594
+ /**
5595
+ * Layout: icon beside the text (`horizontal`) or stacked above it, centered (`vertical`).
5596
+ * @default 'horizontal'
5597
+ */
5598
+ "direction"?: BsFileUploadDirection;
5599
+ /**
5600
+ * Disables the browse button and ignores drops.
5601
+ * @default false
5602
+ */
5603
+ "disabled"?: boolean;
5604
+ /**
5605
+ * Whether a file is currently being dragged over the dropzone (the Figma "Drop" state). Set by the component during a drag; mutable and reflected so it can also be set to show the state statically.
5606
+ * @default false
5607
+ */
5608
+ "dragging"?: boolean;
5609
+ /**
5610
+ * Heading text (e.g. "Upload your documents").
5611
+ */
5612
+ "heading"?: string;
5613
+ /**
5614
+ * Allows selecting/dropping more than one file. Without it only the first file is taken.
5615
+ * @default false
5616
+ */
5617
+ "multiple"?: boolean;
5618
+ /**
5619
+ * Fires with files that were not taken: they didn't match `accept`, or were extra files dropped while `multiple` is off.
5620
+ */
5621
+ "onBsFilesReject"?: (event: BsFileUploadCustomEvent<File[]>) => void;
5622
+ /**
5623
+ * Fires with the accepted files, after the picker closes or files are dropped.
5624
+ */
5625
+ "onBsFilesSelect"?: (event: BsFileUploadCustomEvent<File[]>) => void;
5626
+ }
5627
+ /**
5628
+ * One file in an upload list: a thumbnail, the file name and size, a status line (a progress bar
5629
+ * while uploading, or a success / error message) and an action button (cancel while uploading or
5630
+ * after an error, remove once uploaded).
5631
+ * Presentational only -- the consuming app owns the upload and drives `state`, `progress` and
5632
+ * `message` from it. Pair with `bs-file-upload` (the dropzone that picks the files).
5633
+ * ## When to use
5634
+ * - Showing the status of each file the user has added, in a list under a `bs-file-upload`.
5635
+ * ## When not to use
5636
+ * - Attaching files to a chat message -- use `bs-attachment`.
5637
+ */
5638
+ interface BsFileUploadItem {
5639
+ /**
5640
+ * Accessible name of the cancel button (`loading`, `in-progress`, `error`).
5641
+ * @default 'Cancel upload'
5642
+ */
5643
+ "cancelLabel"?: string;
5644
+ /**
5645
+ * The file name.
5646
+ * @default ''
5647
+ */
5648
+ "fileName"?: string;
5649
+ /**
5650
+ * The file size, already formatted (e.g. "8MB").
5651
+ */
5652
+ "fileSize"?: string;
5653
+ /**
5654
+ * The status text. Defaults per state: "Loading..." (`loading`), "{progress}% uploaded" (`in-progress`), "Upload failed" (`error`), "File uploaded successfully" (`success`). Provide your own for localisation or a specific error.
5655
+ */
5656
+ "message"?: string;
5657
+ /**
5658
+ * Fires when the cancel button is clicked (`loading`, `in-progress`, `error`). The consumer stops the upload and removes the item.
5659
+ */
5660
+ "onBsCancel"?: (event: BsFileUploadItemCustomEvent<void>) => void;
5661
+ /**
5662
+ * Fires when the remove button is clicked (`success`). The consumer removes the file.
5663
+ */
5664
+ "onBsRemove"?: (event: BsFileUploadItemCustomEvent<void>) => void;
5665
+ /**
5666
+ * Upload progress, 0-100. Only used when `state="in-progress"`.
5667
+ * @default 0
5668
+ */
5669
+ "progress"?: number;
5670
+ /**
5671
+ * Accessible name of the remove button (`success`).
5672
+ * @default 'Remove file'
5673
+ */
5674
+ "removeLabel"?: string;
5675
+ /**
5676
+ * Where the upload is. `loading` = working with no known percentage (indeterminate bar); `in-progress` = uploading with a known `progress`; `error` and `success` are final.
5677
+ * @default 'loading'
5678
+ */
5679
+ "state"?: BsFileUploadItemState;
5680
+ /**
5681
+ * Alt text for `thumbnailSrc`. Leave empty when the file name already says it all.
5682
+ * @default ''
5683
+ */
5684
+ "thumbnailAlt"?: string;
5685
+ /**
5686
+ * A preview image of the file. Shown instead of the placeholder icon when set.
5687
+ */
5688
+ "thumbnailSrc"?: string;
5689
+ }
5183
5690
  /**
5184
5691
  * A clickable, icon-only action element -- the icon-only sibling of `bs-button`, sharing the same
5185
5692
  * 8 visual variants and color language, but ALWAYS rendering just a single icon, never a label.
@@ -5779,6 +6286,11 @@ declare namespace LocalJSX {
5779
6286
  * weight of a bar.
5780
6287
  */
5781
6288
  interface BsProgressLinear {
6289
+ /**
6290
+ * Accessible name for the progress bar (e.g. "Uploading report"). Required for assistive tech -- a `role="progressbar"` with no name is an axe-core `aria-progressbar-name` violation. Setting `aria-label` on the host doesn't reach the inner element across the shadow boundary, so this prop binds it directly -- same pattern as `bs-button`'s `ariaLabel`.
6291
+ * @default null
6292
+ */
6293
+ "ariaLabel"?: string | null;
5782
6294
  /**
5783
6295
  * Shows the slotted label below the bar. When `false`, or when no content is slotted, the label wrapper isn't rendered at all. Defaults to `true`.
5784
6296
  * @default true
@@ -6331,6 +6843,19 @@ declare namespace LocalJSX {
6331
6843
  interface BsCardAttributes {
6332
6844
  "surface": BsCardSurface;
6333
6845
  }
6846
+ interface BsCarouselAttributes {
6847
+ "tracker": BsCarouselTracker;
6848
+ "slidesPerView": number;
6849
+ "currentPage": number;
6850
+ "autoplay": boolean;
6851
+ "interval": number;
6852
+ "paused": boolean;
6853
+ "label": string;
6854
+ "previousLabel": string;
6855
+ "nextLabel": string;
6856
+ "pauseLabel": string;
6857
+ "playLabel": string;
6858
+ }
6334
6859
  interface BsChatbotFeedbackAttributes {
6335
6860
  "rating": number;
6336
6861
  "submitted": boolean;
@@ -6407,6 +6932,27 @@ declare namespace LocalJSX {
6407
6932
  "size": BsDialogSize;
6408
6933
  "centered": boolean;
6409
6934
  }
6935
+ interface BsFileUploadAttributes {
6936
+ "direction": BsFileUploadDirection;
6937
+ "heading": string;
6938
+ "description": string;
6939
+ "buttonLabel": string;
6940
+ "accept": string;
6941
+ "multiple": boolean;
6942
+ "disabled": boolean;
6943
+ "dragging": boolean;
6944
+ }
6945
+ interface BsFileUploadItemAttributes {
6946
+ "state": BsFileUploadItemState;
6947
+ "fileName": string;
6948
+ "fileSize": string;
6949
+ "progress": number;
6950
+ "message": string;
6951
+ "thumbnailSrc": string;
6952
+ "thumbnailAlt": string;
6953
+ "cancelLabel": string;
6954
+ "removeLabel": string;
6955
+ }
6410
6956
  interface BsIconButtonAttributes {
6411
6957
  "variant": BsIconButtonVariant;
6412
6958
  "size": BsIconButtonSize;
@@ -6499,6 +7045,7 @@ declare namespace LocalJSX {
6499
7045
  "size": BsProgressLinearSize;
6500
7046
  "value": number;
6501
7047
  "showLabel": boolean;
7048
+ "ariaLabel": string | null;
6502
7049
  }
6503
7050
  interface BsRadioAttributes {
6504
7051
  "name": string;
@@ -6584,6 +7131,7 @@ declare namespace LocalJSX {
6584
7131
  "bs-button": Omit<BsButton, keyof BsButtonAttributes> & { [K in keyof BsButton & keyof BsButtonAttributes]?: BsButton[K] } & { [K in keyof BsButton & keyof BsButtonAttributes as `attr:${K}`]?: BsButtonAttributes[K] } & { [K in keyof BsButton & keyof BsButtonAttributes as `prop:${K}`]?: BsButton[K] };
6585
7132
  "bs-button-skeleton": Omit<BsButtonSkeleton, keyof BsButtonSkeletonAttributes> & { [K in keyof BsButtonSkeleton & keyof BsButtonSkeletonAttributes]?: BsButtonSkeleton[K] } & { [K in keyof BsButtonSkeleton & keyof BsButtonSkeletonAttributes as `attr:${K}`]?: BsButtonSkeletonAttributes[K] } & { [K in keyof BsButtonSkeleton & keyof BsButtonSkeletonAttributes as `prop:${K}`]?: BsButtonSkeleton[K] };
6586
7133
  "bs-card": Omit<BsCard, keyof BsCardAttributes> & { [K in keyof BsCard & keyof BsCardAttributes]?: BsCard[K] } & { [K in keyof BsCard & keyof BsCardAttributes as `attr:${K}`]?: BsCardAttributes[K] } & { [K in keyof BsCard & keyof BsCardAttributes as `prop:${K}`]?: BsCard[K] };
7134
+ "bs-carousel": Omit<BsCarousel, keyof BsCarouselAttributes> & { [K in keyof BsCarousel & keyof BsCarouselAttributes]?: BsCarousel[K] } & { [K in keyof BsCarousel & keyof BsCarouselAttributes as `attr:${K}`]?: BsCarouselAttributes[K] } & { [K in keyof BsCarousel & keyof BsCarouselAttributes as `prop:${K}`]?: BsCarousel[K] };
6587
7135
  "bs-chatbot-feedback": Omit<BsChatbotFeedback, keyof BsChatbotFeedbackAttributes> & { [K in keyof BsChatbotFeedback & keyof BsChatbotFeedbackAttributes]?: BsChatbotFeedback[K] } & { [K in keyof BsChatbotFeedback & keyof BsChatbotFeedbackAttributes as `attr:${K}`]?: BsChatbotFeedbackAttributes[K] } & { [K in keyof BsChatbotFeedback & keyof BsChatbotFeedbackAttributes as `prop:${K}`]?: BsChatbotFeedback[K] };
6588
7136
  "bs-chatbot-header": Omit<BsChatbotHeader, keyof BsChatbotHeaderAttributes> & { [K in keyof BsChatbotHeader & keyof BsChatbotHeaderAttributes]?: BsChatbotHeader[K] } & { [K in keyof BsChatbotHeader & keyof BsChatbotHeaderAttributes as `attr:${K}`]?: BsChatbotHeaderAttributes[K] } & { [K in keyof BsChatbotHeader & keyof BsChatbotHeaderAttributes as `prop:${K}`]?: BsChatbotHeader[K] };
6589
7137
  "bs-chatbot-response-action": Omit<BsChatbotResponseAction, keyof BsChatbotResponseActionAttributes> & { [K in keyof BsChatbotResponseAction & keyof BsChatbotResponseActionAttributes]?: BsChatbotResponseAction[K] } & { [K in keyof BsChatbotResponseAction & keyof BsChatbotResponseActionAttributes as `attr:${K}`]?: BsChatbotResponseActionAttributes[K] } & { [K in keyof BsChatbotResponseAction & keyof BsChatbotResponseActionAttributes as `prop:${K}`]?: BsChatbotResponseAction[K] };
@@ -6598,6 +7146,8 @@ declare namespace LocalJSX {
6598
7146
  "bs-composer-status-banner": Omit<BsComposerStatusBanner, keyof BsComposerStatusBannerAttributes> & { [K in keyof BsComposerStatusBanner & keyof BsComposerStatusBannerAttributes]?: BsComposerStatusBanner[K] } & { [K in keyof BsComposerStatusBanner & keyof BsComposerStatusBannerAttributes as `attr:${K}`]?: BsComposerStatusBannerAttributes[K] } & { [K in keyof BsComposerStatusBanner & keyof BsComposerStatusBannerAttributes as `prop:${K}`]?: BsComposerStatusBanner[K] };
6599
7147
  "bs-data-table": Omit<BsDataTable, keyof BsDataTableAttributes> & { [K in keyof BsDataTable & keyof BsDataTableAttributes]?: BsDataTable[K] } & { [K in keyof BsDataTable & keyof BsDataTableAttributes as `attr:${K}`]?: BsDataTableAttributes[K] } & { [K in keyof BsDataTable & keyof BsDataTableAttributes as `prop:${K}`]?: BsDataTable[K] };
6600
7148
  "bs-dialog": Omit<BsDialog, keyof BsDialogAttributes> & { [K in keyof BsDialog & keyof BsDialogAttributes]?: BsDialog[K] } & { [K in keyof BsDialog & keyof BsDialogAttributes as `attr:${K}`]?: BsDialogAttributes[K] } & { [K in keyof BsDialog & keyof BsDialogAttributes as `prop:${K}`]?: BsDialog[K] };
7149
+ "bs-file-upload": Omit<BsFileUpload, keyof BsFileUploadAttributes> & { [K in keyof BsFileUpload & keyof BsFileUploadAttributes]?: BsFileUpload[K] } & { [K in keyof BsFileUpload & keyof BsFileUploadAttributes as `attr:${K}`]?: BsFileUploadAttributes[K] } & { [K in keyof BsFileUpload & keyof BsFileUploadAttributes as `prop:${K}`]?: BsFileUpload[K] };
7150
+ "bs-file-upload-item": Omit<BsFileUploadItem, keyof BsFileUploadItemAttributes> & { [K in keyof BsFileUploadItem & keyof BsFileUploadItemAttributes]?: BsFileUploadItem[K] } & { [K in keyof BsFileUploadItem & keyof BsFileUploadItemAttributes as `attr:${K}`]?: BsFileUploadItemAttributes[K] } & { [K in keyof BsFileUploadItem & keyof BsFileUploadItemAttributes as `prop:${K}`]?: BsFileUploadItem[K] };
6601
7151
  "bs-icon-button": Omit<BsIconButton, keyof BsIconButtonAttributes> & { [K in keyof BsIconButton & keyof BsIconButtonAttributes]?: BsIconButton[K] } & { [K in keyof BsIconButton & keyof BsIconButtonAttributes as `attr:${K}`]?: BsIconButtonAttributes[K] } & { [K in keyof BsIconButton & keyof BsIconButtonAttributes as `prop:${K}`]?: BsIconButton[K] };
6602
7152
  "bs-inline-tab": Omit<BsInlineTab, keyof BsInlineTabAttributes> & { [K in keyof BsInlineTab & keyof BsInlineTabAttributes]?: BsInlineTab[K] } & { [K in keyof BsInlineTab & keyof BsInlineTabAttributes as `attr:${K}`]?: BsInlineTabAttributes[K] } & { [K in keyof BsInlineTab & keyof BsInlineTabAttributes as `prop:${K}`]?: BsInlineTab[K] };
6603
7153
  "bs-input": Omit<BsInput, keyof BsInputAttributes> & { [K in keyof BsInput & keyof BsInputAttributes]?: BsInput[K] } & { [K in keyof BsInput & keyof BsInputAttributes as `attr:${K}`]?: BsInputAttributes[K] } & { [K in keyof BsInput & keyof BsInputAttributes as `prop:${K}`]?: BsInput[K] };
@@ -6894,6 +7444,26 @@ declare module "@stencil/core" {
6894
7444
  * - For a dismissible/transient message — use a modal or a dedicated notification component.
6895
7445
  */
6896
7446
  "bs-card": LocalJSX.IntrinsicElements["bs-card"] & JSXBase.HTMLAttributes<HTMLBsCardElement>;
7447
+ /**
7448
+ * A carousel that shows a page of slides at a time, with a tracker (dots or numbered blocks) and
7449
+ * previous/next controls, and optional auto-advance with a Pause/Play button.
7450
+ * Slides are the default slot's direct children (a `bs-card`, an image, anything). The carousel
7451
+ * shows `slidesPerView` of them at once, so there are `ceil(slides / slidesPerView)` pages. It
7452
+ * manages two things on those slide elements: the `hidden` attribute (off-page slides are hidden,
7453
+ * so they leave the tab order and the accessibility tree) and, only when not already set,
7454
+ * `role="group"`, `aria-roledescription="slide"` and an `aria-label` of "n of N".
7455
+ * Composes `bs-pagination` (`tracker="numbers"`), `bs-icon-button` (previous/next for
7456
+ * `tracker="dots"`) and `bs-button` (Pause/Play) rather than re-implementing them.
7457
+ * ## When to use
7458
+ * - Browsing a set of related items (cards, images, announcements) where only a few fit at once.
7459
+ * - Rotating promotional or highlight content, where auto-advance with a Pause control is wanted.
7460
+ * ## When not to use
7461
+ * - Content users must see in full to complete a task -- hiding it behind paging hurts discovery;
7462
+ * lay it out in a list or grid instead.
7463
+ * - A strict sequence of steps -- use `bs-stepper`.
7464
+ * - Paging through a large, addressable result set -- use `bs-pagination`.
7465
+ */
7466
+ "bs-carousel": LocalJSX.IntrinsicElements["bs-carousel"] & JSXBase.HTMLAttributes<HTMLBsCarouselElement>;
6897
7467
  /**
6898
7468
  * A star-rating feedback card shown at the end of a Genie AI chat: a heading/subtitle, a 5-star
6899
7469
  * rating, an optional comment, and either "Submit feedback" + "Start new chat" (before
@@ -7252,6 +7822,30 @@ declare module "@stencil/core" {
7252
7822
  * button in the header row next to the heading, same as before this addition.
7253
7823
  */
7254
7824
  "bs-dialog": LocalJSX.IntrinsicElements["bs-dialog"] & JSXBase.HTMLAttributes<HTMLBsDialogElement>;
7825
+ /**
7826
+ * A file dropzone: drag files onto it, or press "Browse file" to open the file picker. It reports
7827
+ * the chosen files and does nothing else -- the consuming app owns the upload itself and shows its
7828
+ * progress with `bs-file-upload-item`.
7829
+ * ## When to use
7830
+ * - Letting users add one or more files (documents, images) to upload.
7831
+ * ## When not to use
7832
+ * - Attaching files to a chat message -- see `bs-composer` / `bs-attachment`.
7833
+ * - A file input that must submit with a native `<form>`: this component is **not**
7834
+ * form-associated. Read the files from `bsFilesSelect` and submit them yourself.
7835
+ */
7836
+ "bs-file-upload": LocalJSX.IntrinsicElements["bs-file-upload"] & JSXBase.HTMLAttributes<HTMLBsFileUploadElement>;
7837
+ /**
7838
+ * One file in an upload list: a thumbnail, the file name and size, a status line (a progress bar
7839
+ * while uploading, or a success / error message) and an action button (cancel while uploading or
7840
+ * after an error, remove once uploaded).
7841
+ * Presentational only -- the consuming app owns the upload and drives `state`, `progress` and
7842
+ * `message` from it. Pair with `bs-file-upload` (the dropzone that picks the files).
7843
+ * ## When to use
7844
+ * - Showing the status of each file the user has added, in a list under a `bs-file-upload`.
7845
+ * ## When not to use
7846
+ * - Attaching files to a chat message -- use `bs-attachment`.
7847
+ */
7848
+ "bs-file-upload-item": LocalJSX.IntrinsicElements["bs-file-upload-item"] & JSXBase.HTMLAttributes<HTMLBsFileUploadItemElement>;
7255
7849
  /**
7256
7850
  * A clickable, icon-only action element -- the icon-only sibling of `bs-button`, sharing the same
7257
7851
  * 8 visual variants and color language, but ALWAYS rendering just a single icon, never a label.