@brandsync/wc 1.6.0 → 1.8.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 (376) hide show
  1. package/custom-elements.json +1302 -90
  2. package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
  3. package/dist/brandsync-wc/{p-387ed85f.entry.js → p-002d258d.entry.js} +1 -1
  4. package/dist/brandsync-wc/{p-e35249c4.entry.js → p-03b08508.entry.js} +1 -1
  5. package/dist/brandsync-wc/{p-db46376b.entry.js → p-051d3064.entry.js} +1 -1
  6. package/dist/brandsync-wc/{p-c054f493.entry.js → p-05c7de28.entry.js} +1 -1
  7. package/dist/brandsync-wc/{p-639946e7.entry.js → p-062cfa34.entry.js} +1 -1
  8. package/dist/brandsync-wc/p-0e39b9cc.entry.js +1 -0
  9. package/dist/brandsync-wc/{p-9fb8848c.entry.js → p-114d2fd8.entry.js} +1 -1
  10. package/dist/brandsync-wc/{p-ef68f29b.entry.js → p-153da845.entry.js} +1 -1
  11. package/dist/brandsync-wc/{p-6754dfa9.entry.js → p-1c0db4d6.entry.js} +1 -1
  12. package/dist/brandsync-wc/{p-4a1a5d6e.entry.js → p-1f7208cb.entry.js} +1 -1
  13. package/dist/brandsync-wc/{p-43617f2e.entry.js → p-235ae012.entry.js} +1 -1
  14. package/dist/brandsync-wc/{p-2700a63e.entry.js → p-275072dd.entry.js} +1 -1
  15. package/dist/brandsync-wc/p-2891d40b.entry.js +1 -0
  16. package/dist/brandsync-wc/p-29027559.entry.js +1 -0
  17. package/dist/brandsync-wc/p-2e7a1082.entry.js +1 -0
  18. package/dist/brandsync-wc/{p-604553a0.entry.js → p-3176d1d3.entry.js} +1 -1
  19. package/dist/brandsync-wc/p-33e44094.entry.js +1 -0
  20. package/dist/brandsync-wc/p-360452c2.entry.js +1 -0
  21. package/dist/brandsync-wc/p-3ec74d35.entry.js +1 -0
  22. package/dist/brandsync-wc/p-4574a707.entry.js +1 -0
  23. package/dist/brandsync-wc/p-4e5dcaff.entry.js +1 -0
  24. package/dist/brandsync-wc/p-612cf79c.entry.js +1 -0
  25. package/dist/brandsync-wc/p-61c1a2a3.entry.js +1 -0
  26. package/dist/brandsync-wc/{p-11224cab.entry.js → p-6331de9c.entry.js} +1 -1
  27. package/dist/brandsync-wc/{p-d03eba2b.entry.js → p-652d4068.entry.js} +1 -1
  28. package/dist/brandsync-wc/{p-a603a13a.entry.js → p-6bf2f116.entry.js} +1 -1
  29. package/dist/brandsync-wc/{p-9b72cc12.entry.js → p-70f64b25.entry.js} +1 -1
  30. package/dist/brandsync-wc/{p-44bfdd4b.entry.js → p-7b00dd36.entry.js} +1 -1
  31. package/dist/brandsync-wc/p-7c94e6ae.entry.js +1 -0
  32. package/dist/brandsync-wc/p-835a8dc7.entry.js +1 -0
  33. package/dist/brandsync-wc/{p-0aca5f0e.entry.js → p-8ee0153b.entry.js} +1 -1
  34. package/dist/brandsync-wc/{p-bb77098b.entry.js → p-9f65f998.entry.js} +1 -1
  35. package/dist/brandsync-wc/p-9f8852a0.entry.js +1 -0
  36. package/dist/brandsync-wc/{p-DuyFft7h.js → p-AgoOSYvW.js} +2 -2
  37. package/dist/brandsync-wc/{p-a8e2a2b2.entry.js → p-a09e157f.entry.js} +1 -1
  38. package/dist/brandsync-wc/p-a0d5a620.entry.js +1 -0
  39. package/dist/brandsync-wc/{p-525504c2.entry.js → p-a5feaad4.entry.js} +1 -1
  40. package/dist/brandsync-wc/{p-cbaa19ab.entry.js → p-a92eec48.entry.js} +1 -1
  41. package/dist/brandsync-wc/{p-57e1dc35.entry.js → p-ae978c9a.entry.js} +1 -1
  42. package/dist/brandsync-wc/{p-f2ce9a1f.entry.js → p-bbcc47b0.entry.js} +1 -1
  43. package/dist/brandsync-wc/{p-fcd4ec60.entry.js → p-bc69a96c.entry.js} +1 -1
  44. package/dist/brandsync-wc/{p-80cf96ff.entry.js → p-be2c1740.entry.js} +1 -1
  45. package/dist/brandsync-wc/p-bf53ad52.entry.js +1 -0
  46. package/dist/brandsync-wc/p-c10d2529.entry.js +1 -0
  47. package/dist/brandsync-wc/{p-abda1d69.entry.js → p-c4de155c.entry.js} +1 -1
  48. package/dist/brandsync-wc/p-c7f4c114.entry.js +1 -0
  49. package/dist/brandsync-wc/{p-52d5f6a9.entry.js → p-cfcf3f0a.entry.js} +1 -1
  50. package/dist/brandsync-wc/p-de7c946d.entry.js +1 -0
  51. package/dist/brandsync-wc/{p-a8cdf449.entry.js → p-e9b43754.entry.js} +1 -1
  52. package/dist/brandsync-wc/{p-c5011746.entry.js → p-ee7da23d.entry.js} +1 -1
  53. package/dist/brandsync-wc/{p-4bff9b4b.entry.js → p-f006d962.entry.js} +1 -1
  54. package/dist/brandsync-wc/p-f074f94e.entry.js +1 -0
  55. package/dist/brandsync-wc/p-f7d47c17.entry.js +1 -0
  56. package/dist/brandsync-wc/{p-7609221f.entry.js → p-fc58c663.entry.js} +1 -1
  57. package/dist/brandsync-wc/{p-a3a4d541.entry.js → p-fddc7bd1.entry.js} +1 -1
  58. package/dist/cjs/brandsync-wc.cjs.js +2 -2
  59. package/dist/cjs/bs-accordion.cjs.entry.js +2 -2
  60. package/dist/cjs/bs-ai-disclaimer.cjs.entry.js +2 -2
  61. package/dist/cjs/bs-ai-greeting.cjs.entry.js +2 -2
  62. package/dist/cjs/bs-ai-thinking.cjs.entry.js +2 -2
  63. package/dist/cjs/bs-attachment-list.cjs.entry.js +3 -3
  64. package/dist/cjs/bs-attachment.cjs.entry.js +2 -2
  65. package/dist/cjs/bs-avatar.cjs.entry.js +1 -1
  66. package/dist/cjs/bs-badge.cjs.entry.js +1 -1
  67. package/dist/cjs/bs-breadcrumb-overflow.cjs.entry.js +2 -2
  68. package/dist/cjs/bs-breadcrumb.cjs.entry.js +1 -1
  69. package/dist/cjs/bs-breadcrumbs.cjs.entry.js +2 -2
  70. package/dist/cjs/bs-button-skeleton.cjs.entry.js +2 -2
  71. package/dist/cjs/bs-button.cjs.entry.js +23 -4
  72. package/dist/cjs/bs-card.cjs.entry.js +2 -2
  73. package/dist/cjs/bs-carousel.cjs.entry.js +196 -0
  74. package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +3 -3
  75. package/dist/cjs/bs-chatbot-header.cjs.entry.js +2 -2
  76. package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +3 -3
  77. package/dist/cjs/bs-chatbot-sources-drawer.cjs.entry.js +2 -2
  78. package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +2 -2
  79. package/dist/cjs/bs-checkbox-skeleton.cjs.entry.js +2 -2
  80. package/dist/cjs/bs-checkbox.cjs.entry.js +48 -3
  81. package/dist/cjs/bs-chip-filter.cjs.entry.js +3 -3
  82. package/dist/cjs/bs-chip-informative.cjs.entry.js +3 -3
  83. package/dist/cjs/bs-chip-input.cjs.entry.js +3 -3
  84. package/dist/cjs/bs-composer-status-banner.cjs.entry.js +2 -2
  85. package/dist/cjs/bs-composer.cjs.entry.js +2 -2
  86. package/dist/cjs/bs-data-table.cjs.entry.js +4 -4
  87. package/dist/cjs/bs-dialog.cjs.entry.js +2 -2
  88. package/dist/cjs/bs-file-upload-item.cjs.entry.js +85 -0
  89. package/dist/cjs/bs-file-upload.cjs.entry.js +110 -0
  90. package/dist/cjs/bs-icon-button.cjs.entry.js +22 -3
  91. package/dist/cjs/bs-inline-tab.cjs.entry.js +7 -3
  92. package/dist/cjs/bs-input.cjs.entry.js +69 -5
  93. package/dist/cjs/bs-logo.cjs.entry.js +1 -1
  94. package/dist/cjs/bs-menu-item.cjs.entry.js +2 -2
  95. package/dist/cjs/bs-menu.cjs.entry.js +25 -3
  96. package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +2 -2
  97. package/dist/cjs/bs-navigation-drawer.cjs.entry.js +2 -2
  98. package/dist/cjs/bs-navigation-header.cjs.entry.js +2 -2
  99. package/dist/cjs/bs-pagination.cjs.entry.js +2 -2
  100. package/dist/cjs/bs-progress-linear.cjs.entry.js +8 -3
  101. package/dist/cjs/bs-progress.cjs.entry.js +8 -3
  102. package/dist/cjs/bs-radio.cjs.entry.js +81 -12
  103. package/dist/cjs/bs-slider.cjs.entry.js +54 -2
  104. package/dist/cjs/bs-snackbar.cjs.entry.js +2 -2
  105. package/dist/cjs/bs-source-link.cjs.entry.js +4 -4
  106. package/dist/cjs/bs-stepper-step.cjs.entry.js +3 -3
  107. package/dist/cjs/bs-stepper.cjs.entry.js +3 -2
  108. package/dist/cjs/bs-switch.cjs.entry.js +36 -3
  109. package/dist/cjs/bs-tab.cjs.entry.js +7 -3
  110. package/dist/cjs/bs-tabs.cjs.entry.js +51 -2
  111. package/dist/cjs/bs-toast.cjs.entry.js +2 -2
  112. package/dist/cjs/bs-tooltip.cjs.entry.js +2 -2
  113. package/dist/cjs/{index-D7e6DfLV.js → index-kk9YXF2S.js} +43 -5
  114. package/dist/cjs/loader.cjs.js +2 -2
  115. package/dist/collection/collection-manifest.json +3 -0
  116. package/dist/collection/components/bs-a11y.cmp.test.js +54 -0
  117. package/dist/collection/components/bs-accordion/bs-accordion.cmp.test.js +5 -0
  118. package/dist/collection/components/bs-accordion/bs-accordion.css +5 -5
  119. package/dist/collection/components/bs-ai-disclaimer/bs-ai-disclaimer.js +1 -1
  120. package/dist/collection/components/bs-ai-greeting/bs-ai-greeting.js +1 -1
  121. package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.js +1 -1
  122. package/dist/collection/components/bs-attachment/bs-attachment.css +1 -1
  123. package/dist/collection/components/bs-attachment-list/bs-attachment-list.css +1 -1
  124. package/dist/collection/components/bs-attachment-list/bs-attachment-list.js +1 -1
  125. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.css +1 -1
  126. package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.js +1 -1
  127. package/dist/collection/components/bs-button/bs-button/bs-button.css +17 -10
  128. package/dist/collection/components/bs-button/bs-button/bs-button.js +16 -3
  129. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.js +16 -3
  130. package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +1 -1
  131. package/dist/collection/components/bs-card/bs-card.css +4 -0
  132. package/dist/collection/components/bs-carousel/bs-carousel.cmp.test.js +198 -0
  133. package/dist/collection/components/bs-carousel/bs-carousel.css +107 -0
  134. package/dist/collection/components/bs-carousel/bs-carousel.js +531 -0
  135. package/dist/collection/components/bs-carousel/bs-carousel.stories.js +68 -0
  136. package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.css +1 -1
  137. package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.js +1 -1
  138. package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.js +1 -1
  139. package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.css +3 -3
  140. package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.js +1 -1
  141. package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.js +1 -1
  142. package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js +1 -1
  143. package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.js +1 -1
  144. package/dist/collection/components/bs-checkbox/bs-checkbox.css +8 -1
  145. package/dist/collection/components/bs-checkbox/bs-checkbox.js +100 -2
  146. package/dist/collection/components/bs-chip/bs-chip-filter/bs-chip-filter.css +4 -4
  147. package/dist/collection/components/bs-chip/bs-chip-filter/bs-chip-filter.js +1 -1
  148. package/dist/collection/components/bs-chip/bs-chip-informative/bs-chip-informative.css +4 -4
  149. package/dist/collection/components/bs-chip/bs-chip-informative/bs-chip-informative.js +1 -1
  150. package/dist/collection/components/bs-chip/bs-chip-input/bs-chip-input.css +5 -5
  151. package/dist/collection/components/bs-chip/bs-chip-input/bs-chip-input.js +1 -1
  152. package/dist/collection/components/bs-composer/bs-composer.js +1 -1
  153. package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.js +1 -1
  154. package/dist/collection/components/bs-data-table/bs-data-table.css +1 -1
  155. package/dist/collection/components/bs-data-table/bs-data-table.js +2 -2
  156. package/dist/collection/components/bs-dialog/bs-dialog.css +5 -1
  157. package/dist/collection/components/bs-file-upload/bs-file-upload.cmp.test.js +119 -0
  158. package/dist/collection/components/bs-file-upload/bs-file-upload.css +139 -0
  159. package/dist/collection/components/bs-file-upload/bs-file-upload.js +342 -0
  160. package/dist/collection/components/bs-file-upload/bs-file-upload.stories.js +116 -0
  161. package/dist/collection/components/bs-file-upload-item/bs-file-upload-item.cmp.test.js +115 -0
  162. package/dist/collection/components/bs-file-upload-item/bs-file-upload-item.css +154 -0
  163. package/dist/collection/components/bs-file-upload-item/bs-file-upload-item.js +329 -0
  164. package/dist/collection/components/bs-file-upload-item/bs-file-upload-item.stories.js +54 -0
  165. package/dist/collection/components/bs-form-association.cmp.test.js +172 -0
  166. package/dist/collection/components/bs-input/bs-input.css +10 -4
  167. package/dist/collection/components/bs-input/bs-input.js +82 -4
  168. package/dist/collection/components/bs-keyboard-nav.cmp.test.js +100 -0
  169. package/dist/collection/components/bs-menu/bs-menu.css +4 -0
  170. package/dist/collection/components/bs-menu/bs-menu.js +33 -1
  171. package/dist/collection/components/bs-menu-item/bs-menu-item.js +1 -1
  172. package/dist/collection/components/bs-pagination/bs-pagination.js +1 -1
  173. package/dist/collection/components/bs-progress/bs-progress.js +27 -2
  174. package/dist/collection/components/bs-progress-linear/bs-progress-linear.js +27 -2
  175. package/dist/collection/components/bs-radio/bs-radio.cmp.test.js +4 -10
  176. package/dist/collection/components/bs-radio/bs-radio.css +7 -1
  177. package/dist/collection/components/bs-radio/bs-radio.js +92 -14
  178. package/dist/collection/components/bs-radio/bs-radio.stories.js +1 -10
  179. package/dist/collection/components/bs-slider/bs-slider.js +68 -2
  180. package/dist/collection/components/bs-snackbar/bs-snackbar.js +1 -1
  181. package/dist/collection/components/bs-source-link/bs-source-link.css +2 -2
  182. package/dist/collection/components/bs-source-link/bs-source-link.js +2 -2
  183. package/dist/collection/components/bs-stepper/bs-stepper/bs-stepper.js +3 -2
  184. package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.css +3 -3
  185. package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.js +1 -1
  186. package/dist/collection/components/bs-switch/bs-switch.css +10 -1
  187. package/dist/collection/components/bs-switch/bs-switch.js +69 -2
  188. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.css +2 -2
  189. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.js +24 -1
  190. package/dist/collection/components/bs-tab/bs-tab/bs-tab.css +2 -2
  191. package/dist/collection/components/bs-tab/bs-tab/bs-tab.js +24 -1
  192. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.js +57 -1
  193. package/dist/collection/components/bs-toast/bs-toast.js +1 -1
  194. package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
  195. package/dist/collection/components/forms/forms.stories.js +63 -0
  196. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +1 -1
  197. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.js +1 -1
  198. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.js +1 -1
  199. package/dist/collection/test/helpers/conventions.js +46 -0
  200. package/dist/collection/test/helpers/conventions.unit.test.js +38 -0
  201. package/dist/components/bs-accordion.js +1 -1
  202. package/dist/components/bs-ai-disclaimer.js +1 -1
  203. package/dist/components/bs-ai-greeting.js +1 -1
  204. package/dist/components/bs-ai-thinking.js +1 -1
  205. package/dist/components/bs-attachment-list.js +1 -1
  206. package/dist/components/bs-attachment.js +1 -1
  207. package/dist/components/bs-avatar.js +1 -1
  208. package/dist/components/bs-badge.js +1 -1
  209. package/dist/components/bs-breadcrumb-overflow.js +1 -1
  210. package/dist/components/bs-breadcrumb.js +1 -1
  211. package/dist/components/bs-breadcrumbs.js +1 -1
  212. package/dist/components/bs-button-skeleton.js +1 -1
  213. package/dist/components/bs-button.js +1 -1
  214. package/dist/components/bs-card.js +1 -1
  215. package/dist/components/bs-carousel.d.ts +11 -0
  216. package/dist/components/bs-carousel.js +1 -0
  217. package/dist/components/bs-chatbot-feedback.js +1 -1
  218. package/dist/components/bs-chatbot-header.js +1 -1
  219. package/dist/components/bs-chatbot-response-action.js +1 -1
  220. package/dist/components/bs-chatbot-sources-drawer.js +1 -1
  221. package/dist/components/bs-chatbot-suggestion-button.js +1 -1
  222. package/dist/components/bs-checkbox-skeleton.js +1 -1
  223. package/dist/components/bs-checkbox.js +1 -1
  224. package/dist/components/bs-chip-filter.js +1 -1
  225. package/dist/components/bs-chip-informative.js +1 -1
  226. package/dist/components/bs-chip-input.js +1 -1
  227. package/dist/components/bs-composer-status-banner.js +1 -1
  228. package/dist/components/bs-composer.js +1 -1
  229. package/dist/components/bs-data-table.js +1 -1
  230. package/dist/components/bs-dialog.js +1 -1
  231. package/dist/components/bs-file-upload-item.d.ts +11 -0
  232. package/dist/components/bs-file-upload-item.js +1 -0
  233. package/dist/components/bs-file-upload.d.ts +11 -0
  234. package/dist/components/bs-file-upload.js +1 -0
  235. package/dist/components/bs-icon-button.js +1 -1
  236. package/dist/components/bs-inline-tab.js +1 -1
  237. package/dist/components/bs-input.js +1 -1
  238. package/dist/components/bs-logo.js +1 -1
  239. package/dist/components/bs-menu-item.js +1 -1
  240. package/dist/components/bs-menu.js +1 -1
  241. package/dist/components/bs-navigation-drawer-item.js +1 -1
  242. package/dist/components/bs-navigation-drawer.js +1 -1
  243. package/dist/components/bs-navigation-header.js +1 -1
  244. package/dist/components/bs-pagination.js +1 -1
  245. package/dist/components/bs-progress-linear.js +1 -1
  246. package/dist/components/bs-progress.js +1 -1
  247. package/dist/components/bs-radio.js +1 -1
  248. package/dist/components/bs-slider.js +1 -1
  249. package/dist/components/bs-snackbar.js +1 -1
  250. package/dist/components/bs-source-link.js +1 -1
  251. package/dist/components/bs-stepper-step.js +1 -1
  252. package/dist/components/bs-stepper.js +1 -1
  253. package/dist/components/bs-switch.js +1 -1
  254. package/dist/components/bs-tab.js +1 -1
  255. package/dist/components/bs-tabs.js +1 -1
  256. package/dist/components/bs-toast.js +1 -1
  257. package/dist/components/bs-tooltip.js +1 -1
  258. package/dist/components/index.js +1 -1
  259. package/dist/components/{p-B8eut73c.js → p-BA3c9Rom.js} +1 -1
  260. package/dist/components/{p-DIezWdNu.js → p-BfEyD6Ku.js} +1 -1
  261. package/dist/components/p-BkHYJIyj.js +1 -0
  262. package/dist/components/p-Buly0d5G.js +1 -0
  263. package/dist/components/p-CpUHnsq9.js +1 -0
  264. package/dist/components/p-EtXc94lJ.js +1 -0
  265. package/dist/components/{p-mnGJPH85.js → p-JYlmcxBn.js} +1 -1
  266. package/dist/components/{p-BhvV55-6.js → p-R2MlkUzD.js} +1 -1
  267. package/dist/components/p-wei0Ija2.js +1 -0
  268. package/dist/esm/brandsync-wc.js +3 -3
  269. package/dist/esm/bs-accordion.entry.js +2 -2
  270. package/dist/esm/bs-ai-disclaimer.entry.js +2 -2
  271. package/dist/esm/bs-ai-greeting.entry.js +2 -2
  272. package/dist/esm/bs-ai-thinking.entry.js +2 -2
  273. package/dist/esm/bs-attachment-list.entry.js +3 -3
  274. package/dist/esm/bs-attachment.entry.js +2 -2
  275. package/dist/esm/bs-avatar.entry.js +1 -1
  276. package/dist/esm/bs-badge.entry.js +1 -1
  277. package/dist/esm/bs-breadcrumb-overflow.entry.js +2 -2
  278. package/dist/esm/bs-breadcrumb.entry.js +1 -1
  279. package/dist/esm/bs-breadcrumbs.entry.js +2 -2
  280. package/dist/esm/bs-button-skeleton.entry.js +2 -2
  281. package/dist/esm/bs-button.entry.js +23 -4
  282. package/dist/esm/bs-card.entry.js +2 -2
  283. package/dist/esm/bs-carousel.entry.js +194 -0
  284. package/dist/esm/bs-chatbot-feedback.entry.js +3 -3
  285. package/dist/esm/bs-chatbot-header.entry.js +2 -2
  286. package/dist/esm/bs-chatbot-response-action.entry.js +3 -3
  287. package/dist/esm/bs-chatbot-sources-drawer.entry.js +2 -2
  288. package/dist/esm/bs-chatbot-suggestion-button.entry.js +2 -2
  289. package/dist/esm/bs-checkbox-skeleton.entry.js +2 -2
  290. package/dist/esm/bs-checkbox.entry.js +48 -3
  291. package/dist/esm/bs-chip-filter.entry.js +3 -3
  292. package/dist/esm/bs-chip-informative.entry.js +3 -3
  293. package/dist/esm/bs-chip-input.entry.js +3 -3
  294. package/dist/esm/bs-composer-status-banner.entry.js +2 -2
  295. package/dist/esm/bs-composer.entry.js +2 -2
  296. package/dist/esm/bs-data-table.entry.js +4 -4
  297. package/dist/esm/bs-dialog.entry.js +2 -2
  298. package/dist/esm/bs-file-upload-item.entry.js +83 -0
  299. package/dist/esm/bs-file-upload.entry.js +108 -0
  300. package/dist/esm/bs-icon-button.entry.js +22 -3
  301. package/dist/esm/bs-inline-tab.entry.js +7 -3
  302. package/dist/esm/bs-input.entry.js +69 -5
  303. package/dist/esm/bs-logo.entry.js +1 -1
  304. package/dist/esm/bs-menu-item.entry.js +2 -2
  305. package/dist/esm/bs-menu.entry.js +25 -3
  306. package/dist/esm/bs-navigation-drawer-item.entry.js +2 -2
  307. package/dist/esm/bs-navigation-drawer.entry.js +2 -2
  308. package/dist/esm/bs-navigation-header.entry.js +2 -2
  309. package/dist/esm/bs-pagination.entry.js +2 -2
  310. package/dist/esm/bs-progress-linear.entry.js +8 -3
  311. package/dist/esm/bs-progress.entry.js +8 -3
  312. package/dist/esm/bs-radio.entry.js +81 -12
  313. package/dist/esm/bs-slider.entry.js +54 -2
  314. package/dist/esm/bs-snackbar.entry.js +2 -2
  315. package/dist/esm/bs-source-link.entry.js +4 -4
  316. package/dist/esm/bs-stepper-step.entry.js +3 -3
  317. package/dist/esm/bs-stepper.entry.js +3 -2
  318. package/dist/esm/bs-switch.entry.js +36 -3
  319. package/dist/esm/bs-tab.entry.js +7 -3
  320. package/dist/esm/bs-tabs.entry.js +51 -2
  321. package/dist/esm/bs-toast.entry.js +2 -2
  322. package/dist/esm/bs-tooltip.entry.js +2 -2
  323. package/dist/esm/{index-DuyFft7h.js → index-AgoOSYvW.js} +43 -5
  324. package/dist/esm/loader.js +3 -3
  325. package/dist/types/components/bs-a11y.cmp.test.d.ts +1 -0
  326. package/dist/types/components/bs-button/bs-button/bs-button.d.ts +4 -1
  327. package/dist/types/components/bs-button/bs-icon-button/bs-icon-button.d.ts +4 -1
  328. package/dist/types/components/bs-carousel/bs-carousel.cmp.test.d.ts +1 -0
  329. package/dist/types/components/bs-carousel/bs-carousel.d.ts +101 -0
  330. package/dist/types/components/bs-carousel/bs-carousel.stories.d.ts +17 -0
  331. package/dist/types/components/bs-checkbox/bs-checkbox.d.ts +12 -0
  332. package/dist/types/components/bs-file-upload/bs-file-upload.cmp.test.d.ts +1 -0
  333. package/dist/types/components/bs-file-upload/bs-file-upload.d.ts +59 -0
  334. package/dist/types/components/bs-file-upload/bs-file-upload.stories.d.ts +21 -0
  335. package/dist/types/components/bs-file-upload-item/bs-file-upload-item.cmp.test.d.ts +1 -0
  336. package/dist/types/components/bs-file-upload-item/bs-file-upload-item.d.ts +58 -0
  337. package/dist/types/components/bs-file-upload-item/bs-file-upload-item.stories.d.ts +18 -0
  338. package/dist/types/components/bs-form-association.cmp.test.d.ts +1 -0
  339. package/dist/types/components/bs-input/bs-input.d.ts +12 -0
  340. package/dist/types/components/bs-keyboard-nav.cmp.test.d.ts +1 -0
  341. package/dist/types/components/bs-menu/bs-menu.d.ts +4 -0
  342. package/dist/types/components/bs-progress/bs-progress.d.ts +5 -0
  343. package/dist/types/components/bs-progress-linear/bs-progress-linear.d.ts +5 -0
  344. package/dist/types/components/bs-radio/bs-radio.d.ts +23 -9
  345. package/dist/types/components/bs-slider/bs-slider.d.ts +9 -0
  346. package/dist/types/components/bs-switch/bs-switch.d.ts +10 -0
  347. package/dist/types/components/bs-tab/bs-inline-tab/bs-inline-tab.d.ts +4 -0
  348. package/dist/types/components/bs-tab/bs-tab/bs-tab.d.ts +4 -0
  349. package/dist/types/components/bs-tab/bs-tabs/bs-tabs.d.ts +7 -0
  350. package/dist/types/components/forms/forms.stories.d.ts +6 -0
  351. package/dist/types/components.d.ts +735 -7
  352. package/dist/types/test/helpers/conventions.d.ts +21 -0
  353. package/dist/types/test/helpers/conventions.unit.test.d.ts +1 -0
  354. package/package.json +2 -1
  355. package/readme.md +14 -0
  356. package/dist/brandsync-wc/p-00f733ef.entry.js +0 -1
  357. package/dist/brandsync-wc/p-18c59979.entry.js +0 -1
  358. package/dist/brandsync-wc/p-3cb58df8.entry.js +0 -1
  359. package/dist/brandsync-wc/p-3ed5b215.entry.js +0 -1
  360. package/dist/brandsync-wc/p-413a1ee0.entry.js +0 -1
  361. package/dist/brandsync-wc/p-512dafc6.entry.js +0 -1
  362. package/dist/brandsync-wc/p-57609703.entry.js +0 -1
  363. package/dist/brandsync-wc/p-6bf8a5bd.entry.js +0 -1
  364. package/dist/brandsync-wc/p-6c769a1d.entry.js +0 -1
  365. package/dist/brandsync-wc/p-6d0c054b.entry.js +0 -1
  366. package/dist/brandsync-wc/p-7b9598d9.entry.js +0 -1
  367. package/dist/brandsync-wc/p-98021881.entry.js +0 -1
  368. package/dist/brandsync-wc/p-a96856fd.entry.js +0 -1
  369. package/dist/brandsync-wc/p-bb68e236.entry.js +0 -1
  370. package/dist/brandsync-wc/p-cfb49342.entry.js +0 -1
  371. package/dist/brandsync-wc/p-e2ac61c4.entry.js +0 -1
  372. package/dist/brandsync-wc/p-f714683d.entry.js +0 -1
  373. package/dist/brandsync-wc/p-fe778b6b.entry.js +0 -1
  374. package/dist/components/p-3gs695M6.js +0 -1
  375. package/dist/components/p-BaxFLlKS.js +0 -1
  376. package/dist/components/p-DKMMCLxx.js +0 -1
@@ -1556,7 +1556,7 @@
1556
1556
  },
1557
1557
  {
1558
1558
  "name": "type",
1559
- "description": "Native `<button>` type.",
1559
+ "description": "Button type. `submit` submits the surrounding `<form>` (via `requestSubmit()`, so validation\nruns); `reset` resets it; `button` (default) does nothing on its own.",
1560
1560
  "type": {
1561
1561
  "text": "\"button\" | \"reset\" | \"submit\""
1562
1562
  },
@@ -1617,7 +1617,7 @@
1617
1617
  {
1618
1618
  "kind": "field",
1619
1619
  "name": "type",
1620
- "description": "Native `<button>` type.",
1620
+ "description": "Button type. `submit` submits the surrounding `<form>` (via `requestSubmit()`, so validation\nruns); `reset` resets it; `button` (default) does nothing on its own.",
1621
1621
  "type": {
1622
1622
  "text": "\"button\" | \"reset\" | \"submit\""
1623
1623
  },
@@ -1859,6 +1859,358 @@
1859
1859
  }
1860
1860
  ]
1861
1861
  },
1862
+ {
1863
+ "kind": "javascript-module",
1864
+ "path": "src/components/bs-carousel/bs-carousel.tsx",
1865
+ "declarations": [
1866
+ {
1867
+ "kind": "class",
1868
+ "customElement": true,
1869
+ "tagName": "bs-carousel",
1870
+ "name": "BsCarousel",
1871
+ "description": "A carousel that shows a page of slides at a time, with a tracker (dots or numbered blocks) and\nprevious/next controls, and optional auto-advance with a Pause/Play button.\n\nSlides are the default slot's direct children (a `bs-card`, an image, anything). The carousel\nshows `slidesPerView` of them at once, so there are `ceil(slides / slidesPerView)` pages. It\nmanages two things on those slide elements: the `hidden` attribute (off-page slides are hidden,\nso they leave the tab order and the accessibility tree) and, only when not already set,\n`role=\"group\"`, `aria-roledescription=\"slide\"` and an `aria-label` of \"n of N\".\n\nComposes `bs-pagination` (`tracker=\"numbers\"`), `bs-icon-button` (previous/next for\n`tracker=\"dots\"`) and `bs-button` (Pause/Play) rather than re-implementing them.\n\n## When to use\n- Browsing a set of related items (cards, images, announcements) where only a few fit at once.\n- Rotating promotional or highlight content, where auto-advance with a Pause control is wanted.\n\n## When not to use\n- Content users must see in full to complete a task -- hiding it behind paging hurts discovery;\n lay it out in a list or grid instead.\n- A strict sequence of steps -- use `bs-stepper`.\n- Paging through a large, addressable result set -- use `bs-pagination`.",
1872
+ "attributes": [
1873
+ {
1874
+ "name": "autoplay",
1875
+ "description": "Auto-advances to the next page every `interval` ms, looping from the last page to the first.\nOff by default. The Pause/Play button is only rendered when this is set. Auto-advance also\nstops while the pointer is over the carousel or focus is inside it, and starts paused for\nusers who prefer reduced motion.",
1876
+ "type": {
1877
+ "text": "boolean"
1878
+ },
1879
+ "default": "false",
1880
+ "fieldName": "autoplay"
1881
+ },
1882
+ {
1883
+ "name": "current-page",
1884
+ "description": "The visible page, 1-based (same convention as `bs-pagination`). Mutable so the carousel\nadvances it itself (tracker, previous/next, autoplay). Clamped to the available pages.",
1885
+ "type": {
1886
+ "text": "number"
1887
+ },
1888
+ "default": "1",
1889
+ "fieldName": "currentPage"
1890
+ },
1891
+ {
1892
+ "name": "interval",
1893
+ "description": "Milliseconds between auto-advances, when `autoplay` is set.",
1894
+ "type": {
1895
+ "text": "number"
1896
+ },
1897
+ "default": "5000",
1898
+ "fieldName": "interval"
1899
+ },
1900
+ {
1901
+ "name": "label",
1902
+ "description": "Accessible name of the carousel region (e.g. \"Featured articles\").",
1903
+ "type": {
1904
+ "text": "string"
1905
+ },
1906
+ "default": "'Carousel'",
1907
+ "fieldName": "label"
1908
+ },
1909
+ {
1910
+ "name": "next-label",
1911
+ "description": "Accessible name of the next button (`tracker=\"dots\"`) -- override for localisation.",
1912
+ "type": {
1913
+ "text": "string"
1914
+ },
1915
+ "default": "'Next slide'",
1916
+ "fieldName": "nextLabel"
1917
+ },
1918
+ {
1919
+ "name": "pause-label",
1920
+ "description": "Label of the Pause/Play button while auto-advance is running.",
1921
+ "type": {
1922
+ "text": "string"
1923
+ },
1924
+ "default": "'Pause'",
1925
+ "fieldName": "pauseLabel"
1926
+ },
1927
+ {
1928
+ "name": "paused",
1929
+ "description": "Whether auto-advance is paused by the user (the Pause/Play button). Mutable and reflected so\nthe state is visible to CSS and settable from outside. Only meaningful with `autoplay`.",
1930
+ "type": {
1931
+ "text": "boolean"
1932
+ },
1933
+ "default": "false",
1934
+ "fieldName": "paused"
1935
+ },
1936
+ {
1937
+ "name": "play-label",
1938
+ "description": "Label of the Pause/Play button while auto-advance is paused.",
1939
+ "type": {
1940
+ "text": "string"
1941
+ },
1942
+ "default": "'Play'",
1943
+ "fieldName": "playLabel"
1944
+ },
1945
+ {
1946
+ "name": "previous-label",
1947
+ "description": "Accessible name of the previous button (`tracker=\"dots\"`) -- override for localisation.",
1948
+ "type": {
1949
+ "text": "string"
1950
+ },
1951
+ "default": "'Previous slide'",
1952
+ "fieldName": "previousLabel"
1953
+ },
1954
+ {
1955
+ "name": "slides-per-view",
1956
+ "description": "How many slides are visible at once. The tracker counts pages: `ceil(slides / slidesPerView)`.",
1957
+ "type": {
1958
+ "text": "number"
1959
+ },
1960
+ "default": "3",
1961
+ "fieldName": "slidesPerView"
1962
+ },
1963
+ {
1964
+ "name": "tracker",
1965
+ "description": "Which tracker to show under the slides. `dots` is a compact dot row between previous/next\nbuttons (the dots are an indicator, not buttons); `numbers` is a numbered `bs-pagination`\nwhere each page can be jumped to directly.",
1966
+ "type": {
1967
+ "text": "\"dots\" | \"numbers\"",
1968
+ "references": [
1969
+ {
1970
+ "name": "BsCarouselTracker"
1971
+ }
1972
+ ]
1973
+ },
1974
+ "default": "'dots'",
1975
+ "fieldName": "tracker"
1976
+ }
1977
+ ],
1978
+ "members": [
1979
+ {
1980
+ "kind": "field",
1981
+ "name": "autoplay",
1982
+ "description": "Auto-advances to the next page every `interval` ms, looping from the last page to the first.\nOff by default. The Pause/Play button is only rendered when this is set. Auto-advance also\nstops while the pointer is over the carousel or focus is inside it, and starts paused for\nusers who prefer reduced motion.",
1983
+ "type": {
1984
+ "text": "boolean"
1985
+ },
1986
+ "default": "false",
1987
+ "attribute": "autoplay"
1988
+ },
1989
+ {
1990
+ "kind": "field",
1991
+ "name": "currentPage",
1992
+ "description": "The visible page, 1-based (same convention as `bs-pagination`). Mutable so the carousel\nadvances it itself (tracker, previous/next, autoplay). Clamped to the available pages.",
1993
+ "type": {
1994
+ "text": "number"
1995
+ },
1996
+ "default": "1",
1997
+ "attribute": "current-page",
1998
+ "reflects": true
1999
+ },
2000
+ {
2001
+ "kind": "field",
2002
+ "name": "interval",
2003
+ "description": "Milliseconds between auto-advances, when `autoplay` is set.",
2004
+ "type": {
2005
+ "text": "number"
2006
+ },
2007
+ "default": "5000",
2008
+ "attribute": "interval"
2009
+ },
2010
+ {
2011
+ "kind": "field",
2012
+ "name": "label",
2013
+ "description": "Accessible name of the carousel region (e.g. \"Featured articles\").",
2014
+ "type": {
2015
+ "text": "string"
2016
+ },
2017
+ "default": "'Carousel'",
2018
+ "attribute": "label"
2019
+ },
2020
+ {
2021
+ "kind": "field",
2022
+ "name": "nextLabel",
2023
+ "description": "Accessible name of the next button (`tracker=\"dots\"`) -- override for localisation.",
2024
+ "type": {
2025
+ "text": "string"
2026
+ },
2027
+ "default": "'Next slide'",
2028
+ "attribute": "next-label"
2029
+ },
2030
+ {
2031
+ "kind": "field",
2032
+ "name": "pauseLabel",
2033
+ "description": "Label of the Pause/Play button while auto-advance is running.",
2034
+ "type": {
2035
+ "text": "string"
2036
+ },
2037
+ "default": "'Pause'",
2038
+ "attribute": "pause-label"
2039
+ },
2040
+ {
2041
+ "kind": "field",
2042
+ "name": "paused",
2043
+ "description": "Whether auto-advance is paused by the user (the Pause/Play button). Mutable and reflected so\nthe state is visible to CSS and settable from outside. Only meaningful with `autoplay`.",
2044
+ "type": {
2045
+ "text": "boolean"
2046
+ },
2047
+ "default": "false",
2048
+ "attribute": "paused",
2049
+ "reflects": true
2050
+ },
2051
+ {
2052
+ "kind": "field",
2053
+ "name": "playLabel",
2054
+ "description": "Label of the Pause/Play button while auto-advance is paused.",
2055
+ "type": {
2056
+ "text": "string"
2057
+ },
2058
+ "default": "'Play'",
2059
+ "attribute": "play-label"
2060
+ },
2061
+ {
2062
+ "kind": "field",
2063
+ "name": "previousLabel",
2064
+ "description": "Accessible name of the previous button (`tracker=\"dots\"`) -- override for localisation.",
2065
+ "type": {
2066
+ "text": "string"
2067
+ },
2068
+ "default": "'Previous slide'",
2069
+ "attribute": "previous-label"
2070
+ },
2071
+ {
2072
+ "kind": "field",
2073
+ "name": "slidesPerView",
2074
+ "description": "How many slides are visible at once. The tracker counts pages: `ceil(slides / slidesPerView)`.",
2075
+ "type": {
2076
+ "text": "number"
2077
+ },
2078
+ "default": "3",
2079
+ "attribute": "slides-per-view"
2080
+ },
2081
+ {
2082
+ "kind": "field",
2083
+ "name": "tracker",
2084
+ "description": "Which tracker to show under the slides. `dots` is a compact dot row between previous/next\nbuttons (the dots are an indicator, not buttons); `numbers` is a numbered `bs-pagination`\nwhere each page can be jumped to directly.",
2085
+ "type": {
2086
+ "text": "\"dots\" | \"numbers\"",
2087
+ "references": [
2088
+ {
2089
+ "name": "BsCarouselTracker"
2090
+ }
2091
+ ]
2092
+ },
2093
+ "default": "'dots'",
2094
+ "attribute": "tracker"
2095
+ }
2096
+ ],
2097
+ "events": [
2098
+ {
2099
+ "name": "bsPageChange",
2100
+ "description": "Fires after the visible page changes via the tracker, previous/next or autoplay, with the\nnew 1-based page.",
2101
+ "type": {
2102
+ "text": "CustomEvent<number>"
2103
+ }
2104
+ },
2105
+ {
2106
+ "name": "bsPauseChange",
2107
+ "description": "Fires when the user toggles the Pause/Play button, with the new `paused` value.",
2108
+ "type": {
2109
+ "text": "CustomEvent<boolean>"
2110
+ }
2111
+ }
2112
+ ],
2113
+ "slots": [
2114
+ {
2115
+ "name": "",
2116
+ "description": "Default slot: the slides. Each direct child is one slide."
2117
+ }
2118
+ ],
2119
+ "cssParts": [
2120
+ {
2121
+ "name": "carousel",
2122
+ "description": "The outer region (`role=\"region\"`, `aria-roledescription=\"carousel\"`)."
2123
+ },
2124
+ {
2125
+ "name": "current",
2126
+ "description": "The current page's dot (in addition to `dot`)."
2127
+ },
2128
+ {
2129
+ "name": "dot",
2130
+ "description": "Each dot (`tracker=\"dots\"`)."
2131
+ },
2132
+ {
2133
+ "name": "dots",
2134
+ "description": "The dot group (`tracker=\"dots\"`)."
2135
+ },
2136
+ {
2137
+ "name": "next",
2138
+ "description": "The next button (`tracker=\"dots\"`)."
2139
+ },
2140
+ {
2141
+ "name": "pagination",
2142
+ "description": "The numbered tracker (`tracker=\"numbers\"`)."
2143
+ },
2144
+ {
2145
+ "name": "pause",
2146
+ "description": "The Pause/Play button (only rendered when `autoplay`)."
2147
+ },
2148
+ {
2149
+ "name": "prev",
2150
+ "description": "The previous button (`tracker=\"dots\"`)."
2151
+ },
2152
+ {
2153
+ "name": "slides",
2154
+ "description": "The row holding the visible slides."
2155
+ },
2156
+ {
2157
+ "name": "tracker",
2158
+ "description": "The row holding the tracker and the Pause/Play button."
2159
+ }
2160
+ ],
2161
+ "cssProperties": [
2162
+ {
2163
+ "name": "--bs-carousel-dot-active-color",
2164
+ "description": "Fill of the active dot. Aliased to --bs-color-primary-default."
2165
+ },
2166
+ {
2167
+ "name": "--bs-carousel-dot-color",
2168
+ "description": "Fill of an inactive dot. Aliased to --bs-surface-container."
2169
+ },
2170
+ {
2171
+ "name": "--bs-carousel-dot-radius",
2172
+ "description": "Corner radius of a dot. Aliased to --bs-border-radius-full."
2173
+ },
2174
+ {
2175
+ "name": "--bs-carousel-dot-size",
2176
+ "description": "Width/height of an inactive dot; the active dot is twice as wide. Aliased to --bs-spacing-100 (8px, exact match to Figma)."
2177
+ },
2178
+ {
2179
+ "name": "--bs-carousel-dots-gap",
2180
+ "description": "Gap between dots. Aliased to --bs-spacing-50."
2181
+ },
2182
+ {
2183
+ "name": "--bs-carousel-gap",
2184
+ "description": "Gap between visible slides. Aliased to --bs-spacing-200."
2185
+ },
2186
+ {
2187
+ "name": "--bs-carousel-tracker-gap",
2188
+ "description": "Gap between the items of the tracker row (previous, dots, next, Pause). Aliased to --bs-spacing-50."
2189
+ },
2190
+ {
2191
+ "name": "--bs-carousel-tracker-offset",
2192
+ "description": "Vertical gap between the slides and the tracker row. Aliased to --bs-spacing-200."
2193
+ }
2194
+ ]
2195
+ }
2196
+ ],
2197
+ "exports": [
2198
+ {
2199
+ "kind": "js",
2200
+ "name": "BsCarousel",
2201
+ "declaration": {
2202
+ "name": "BsCarousel"
2203
+ }
2204
+ },
2205
+ {
2206
+ "kind": "custom-element-definition",
2207
+ "name": "bs-carousel",
2208
+ "declaration": {
2209
+ "name": "BsCarousel"
2210
+ }
2211
+ }
2212
+ ]
2213
+ },
1862
2214
  {
1863
2215
  "kind": "javascript-module",
1864
2216
  "path": "src/components/bs-chatbot-feedback/bs-chatbot-feedback.tsx",
@@ -2607,6 +2959,23 @@
2607
2959
  "default": "false",
2608
2960
  "fieldName": "indeterminate"
2609
2961
  },
2962
+ {
2963
+ "name": "name",
2964
+ "description": "The `name` the value is submitted under in a surrounding `<form>`'s `FormData`.",
2965
+ "type": {
2966
+ "text": "string"
2967
+ },
2968
+ "fieldName": "name"
2969
+ },
2970
+ {
2971
+ "name": "required",
2972
+ "description": "Marks the checkbox as required: the surrounding form fails validation while unchecked.",
2973
+ "type": {
2974
+ "text": "boolean"
2975
+ },
2976
+ "default": "false",
2977
+ "fieldName": "required"
2978
+ },
2610
2979
  {
2611
2980
  "name": "size",
2612
2981
  "description": "Sizing scale. Controls the box's width/height and border width; corner radius is constant\nacross all sizes.",
@@ -2620,7 +2989,16 @@
2620
2989
  },
2621
2990
  "default": "'lg'",
2622
2991
  "fieldName": "size"
2623
- }
2992
+ },
2993
+ {
2994
+ "name": "value",
2995
+ "description": "The value submitted when checked (native checkbox default: `\"on\"`).",
2996
+ "type": {
2997
+ "text": "string"
2998
+ },
2999
+ "default": "'on'",
3000
+ "fieldName": "value"
3001
+ }
2624
3002
  ],
2625
3003
  "members": [
2626
3004
  {
@@ -2652,7 +3030,8 @@
2652
3030
  "text": "boolean"
2653
3031
  },
2654
3032
  "default": "false",
2655
- "attribute": "disabled"
3033
+ "attribute": "disabled",
3034
+ "reflects": true
2656
3035
  },
2657
3036
  {
2658
3037
  "kind": "field",
@@ -2675,6 +3054,26 @@
2675
3054
  "attribute": "indeterminate",
2676
3055
  "reflects": true
2677
3056
  },
3057
+ {
3058
+ "kind": "field",
3059
+ "name": "name",
3060
+ "description": "The `name` the value is submitted under in a surrounding `<form>`'s `FormData`.",
3061
+ "type": {
3062
+ "text": "string"
3063
+ },
3064
+ "attribute": "name",
3065
+ "reflects": true
3066
+ },
3067
+ {
3068
+ "kind": "field",
3069
+ "name": "required",
3070
+ "description": "Marks the checkbox as required: the surrounding form fails validation while unchecked.",
3071
+ "type": {
3072
+ "text": "boolean"
3073
+ },
3074
+ "default": "false",
3075
+ "attribute": "required"
3076
+ },
2678
3077
  {
2679
3078
  "kind": "field",
2680
3079
  "name": "size",
@@ -2689,6 +3088,16 @@
2689
3088
  },
2690
3089
  "default": "'lg'",
2691
3090
  "attribute": "size"
3091
+ },
3092
+ {
3093
+ "kind": "field",
3094
+ "name": "value",
3095
+ "description": "The value submitted when checked (native checkbox default: `\"on\"`).",
3096
+ "type": {
3097
+ "text": "string"
3098
+ },
3099
+ "default": "'on'",
3100
+ "attribute": "value"
2692
3101
  }
2693
3102
  ],
2694
3103
  "events": [
@@ -4135,82 +4544,681 @@
4135
4544
  {
4136
4545
  "name": "heading",
4137
4546
  "type": {
4138
- "text": "string"
4547
+ "text": "string"
4548
+ },
4549
+ "fieldName": "heading"
4550
+ },
4551
+ {
4552
+ "name": "open",
4553
+ "description": "Mutable + reflected so the component can close itself (backdrop click, Escape, close button)\nthe same way a native `<dialog>` does, while still emitting `bsClose` for the consumer to react to.",
4554
+ "type": {
4555
+ "text": "boolean"
4556
+ },
4557
+ "default": "false",
4558
+ "fieldName": "open"
4559
+ },
4560
+ {
4561
+ "name": "size",
4562
+ "type": {
4563
+ "text": "\"lg\" | \"md\" | \"sm\"",
4564
+ "references": [
4565
+ {
4566
+ "name": "BsDialogSize"
4567
+ }
4568
+ ]
4569
+ },
4570
+ "default": "'md'",
4571
+ "fieldName": "size"
4572
+ }
4573
+ ],
4574
+ "members": [
4575
+ {
4576
+ "kind": "field",
4577
+ "name": "centered",
4578
+ "description": "Switches to the Figma \"Icon Centered\" layout: heading/body text centered, the `icon` slot\nrendered above the heading, and the close button floating top-right of the dialog instead of\ninline in the header row. Doesn't hide a slotted `image` if one is also provided -- Figma's\nspec doesn't show the two combined, so this is unspecified rather than actively blocked.\nReflected so consumers/CSS can target `bs-dialog[centered]`.",
4579
+ "type": {
4580
+ "text": "boolean"
4581
+ },
4582
+ "default": "false",
4583
+ "attribute": "centered",
4584
+ "reflects": true
4585
+ },
4586
+ {
4587
+ "kind": "field",
4588
+ "name": "heading",
4589
+ "type": {
4590
+ "text": "string"
4591
+ },
4592
+ "attribute": "heading"
4593
+ },
4594
+ {
4595
+ "kind": "field",
4596
+ "name": "open",
4597
+ "description": "Mutable + reflected so the component can close itself (backdrop click, Escape, close button)\nthe same way a native `<dialog>` does, while still emitting `bsClose` for the consumer to react to.",
4598
+ "type": {
4599
+ "text": "boolean"
4600
+ },
4601
+ "default": "false",
4602
+ "attribute": "open",
4603
+ "reflects": true
4604
+ },
4605
+ {
4606
+ "kind": "field",
4607
+ "name": "size",
4608
+ "type": {
4609
+ "text": "\"lg\" | \"md\" | \"sm\"",
4610
+ "references": [
4611
+ {
4612
+ "name": "BsDialogSize"
4613
+ }
4614
+ ]
4615
+ },
4616
+ "default": "'md'",
4617
+ "attribute": "size"
4618
+ }
4619
+ ],
4620
+ "events": [
4621
+ {
4622
+ "name": "bsClose",
4623
+ "type": {
4624
+ "text": "CustomEvent<void>"
4625
+ }
4626
+ }
4627
+ ],
4628
+ "slots": [
4629
+ {
4630
+ "name": "",
4631
+ "description": "Default slot: the dialog body content."
4632
+ },
4633
+ {
4634
+ "name": "footer",
4635
+ "description": "Optional footer content (typically action buttons)."
4636
+ },
4637
+ {
4638
+ "name": "icon",
4639
+ "description": "Optional icon shown above the heading, only rendered at all when `centered` is true."
4640
+ },
4641
+ {
4642
+ "name": "image",
4643
+ "description": "Optional hero image across the top of the dialog. Presence of assigned content\nswitches the close button to float over it; doesn't affect layout when empty."
4644
+ }
4645
+ ],
4646
+ "cssParts": [
4647
+ {
4648
+ "name": "backdrop",
4649
+ "description": "The full-viewport overlay behind the dialog."
4650
+ },
4651
+ {
4652
+ "name": "body",
4653
+ "description": "The body content wrapper."
4654
+ },
4655
+ {
4656
+ "name": "close",
4657
+ "description": "The close button (inline in the header, or floating -- see the class doc above)."
4658
+ },
4659
+ {
4660
+ "name": "dialog",
4661
+ "description": "The dialog box itself."
4662
+ },
4663
+ {
4664
+ "name": "footer",
4665
+ "description": "The footer wrapper (only visible when the footer slot has content)."
4666
+ },
4667
+ {
4668
+ "name": "header",
4669
+ "description": "The header row (heading + close button, when the close button isn't floating)."
4670
+ },
4671
+ {
4672
+ "name": "icon",
4673
+ "description": "The icon wrapper (only rendered when `centered` is true)."
4674
+ },
4675
+ {
4676
+ "name": "image",
4677
+ "description": "The hero image wrapper (only visible when the `image` slot has content)."
4678
+ }
4679
+ ]
4680
+ }
4681
+ ],
4682
+ "exports": [
4683
+ {
4684
+ "kind": "js",
4685
+ "name": "BsDialog",
4686
+ "declaration": {
4687
+ "name": "BsDialog"
4688
+ }
4689
+ },
4690
+ {
4691
+ "kind": "custom-element-definition",
4692
+ "name": "bs-dialog",
4693
+ "declaration": {
4694
+ "name": "BsDialog"
4695
+ }
4696
+ }
4697
+ ]
4698
+ },
4699
+ {
4700
+ "kind": "javascript-module",
4701
+ "path": "src/components/bs-file-upload/bs-file-upload.tsx",
4702
+ "declarations": [
4703
+ {
4704
+ "kind": "class",
4705
+ "customElement": true,
4706
+ "tagName": "bs-file-upload",
4707
+ "name": "BsFileUpload",
4708
+ "description": "A file dropzone: drag files onto it, or press \"Browse file\" to open the file picker. It reports\nthe chosen files and does nothing else -- the consuming app owns the upload itself and shows its\nprogress with `bs-file-upload-item`.\n\n## When to use\n- Letting users add one or more files (documents, images) to upload.\n\n## When not to use\n- Attaching files to a chat message -- see `bs-composer` / `bs-attachment`.\n- A file input that must submit with a native `<form>`: this component is **not**\n form-associated. Read the files from `bsFilesSelect` and submit them yourself.",
4709
+ "attributes": [
4710
+ {
4711
+ "name": "accept",
4712
+ "description": "Which files are accepted, same syntax as the native `accept` attribute: comma-separated\nextensions (`.pdf`), MIME types (`image/png`) or wildcards (`image/*`). Applied to the picker\nand also to dropped files, which the browser does not filter.",
4713
+ "type": {
4714
+ "text": "string"
4715
+ },
4716
+ "fieldName": "accept"
4717
+ },
4718
+ {
4719
+ "name": "button-label",
4720
+ "description": "Label of the browse button. Override for localisation.",
4721
+ "type": {
4722
+ "text": "string"
4723
+ },
4724
+ "default": "'Browse file'",
4725
+ "fieldName": "buttonLabel"
4726
+ },
4727
+ {
4728
+ "name": "description",
4729
+ "description": "Guidelines under the heading (e.g. \"PDF or JPG, up to 8MB\").",
4730
+ "type": {
4731
+ "text": "string"
4732
+ },
4733
+ "fieldName": "description"
4734
+ },
4735
+ {
4736
+ "name": "direction",
4737
+ "description": "Layout: icon beside the text (`horizontal`) or stacked above it, centered (`vertical`).",
4738
+ "type": {
4739
+ "text": "\"horizontal\" | \"vertical\"",
4740
+ "references": [
4741
+ {
4742
+ "name": "BsFileUploadDirection"
4743
+ }
4744
+ ]
4745
+ },
4746
+ "default": "'horizontal'",
4747
+ "fieldName": "direction"
4748
+ },
4749
+ {
4750
+ "name": "disabled",
4751
+ "description": "Disables the browse button and ignores drops.",
4752
+ "type": {
4753
+ "text": "boolean"
4754
+ },
4755
+ "default": "false",
4756
+ "fieldName": "disabled"
4757
+ },
4758
+ {
4759
+ "name": "dragging",
4760
+ "description": "Whether a file is currently being dragged over the dropzone (the Figma \"Drop\" state). Set by\nthe component during a drag; mutable and reflected so it can also be set to show the state\nstatically.",
4761
+ "type": {
4762
+ "text": "boolean"
4763
+ },
4764
+ "default": "false",
4765
+ "fieldName": "dragging"
4766
+ },
4767
+ {
4768
+ "name": "heading",
4769
+ "description": "Heading text (e.g. \"Upload your documents\").",
4770
+ "type": {
4771
+ "text": "string"
4772
+ },
4773
+ "fieldName": "heading"
4774
+ },
4775
+ {
4776
+ "name": "multiple",
4777
+ "description": "Allows selecting/dropping more than one file. Without it only the first file is taken.",
4778
+ "type": {
4779
+ "text": "boolean"
4780
+ },
4781
+ "default": "false",
4782
+ "fieldName": "multiple"
4783
+ }
4784
+ ],
4785
+ "members": [
4786
+ {
4787
+ "kind": "field",
4788
+ "name": "accept",
4789
+ "description": "Which files are accepted, same syntax as the native `accept` attribute: comma-separated\nextensions (`.pdf`), MIME types (`image/png`) or wildcards (`image/*`). Applied to the picker\nand also to dropped files, which the browser does not filter.",
4790
+ "type": {
4791
+ "text": "string"
4792
+ },
4793
+ "attribute": "accept"
4794
+ },
4795
+ {
4796
+ "kind": "field",
4797
+ "name": "buttonLabel",
4798
+ "description": "Label of the browse button. Override for localisation.",
4799
+ "type": {
4800
+ "text": "string"
4801
+ },
4802
+ "default": "'Browse file'",
4803
+ "attribute": "button-label"
4804
+ },
4805
+ {
4806
+ "kind": "field",
4807
+ "name": "description",
4808
+ "description": "Guidelines under the heading (e.g. \"PDF or JPG, up to 8MB\").",
4809
+ "type": {
4810
+ "text": "string"
4811
+ },
4812
+ "attribute": "description"
4813
+ },
4814
+ {
4815
+ "kind": "field",
4816
+ "name": "direction",
4817
+ "description": "Layout: icon beside the text (`horizontal`) or stacked above it, centered (`vertical`).",
4818
+ "type": {
4819
+ "text": "\"horizontal\" | \"vertical\"",
4820
+ "references": [
4821
+ {
4822
+ "name": "BsFileUploadDirection"
4823
+ }
4824
+ ]
4825
+ },
4826
+ "default": "'horizontal'",
4827
+ "attribute": "direction",
4828
+ "reflects": true
4829
+ },
4830
+ {
4831
+ "kind": "field",
4832
+ "name": "disabled",
4833
+ "description": "Disables the browse button and ignores drops.",
4834
+ "type": {
4835
+ "text": "boolean"
4836
+ },
4837
+ "default": "false",
4838
+ "attribute": "disabled",
4839
+ "reflects": true
4840
+ },
4841
+ {
4842
+ "kind": "field",
4843
+ "name": "dragging",
4844
+ "description": "Whether a file is currently being dragged over the dropzone (the Figma \"Drop\" state). Set by\nthe component during a drag; mutable and reflected so it can also be set to show the state\nstatically.",
4845
+ "type": {
4846
+ "text": "boolean"
4847
+ },
4848
+ "default": "false",
4849
+ "attribute": "dragging",
4850
+ "reflects": true
4851
+ },
4852
+ {
4853
+ "kind": "field",
4854
+ "name": "heading",
4855
+ "description": "Heading text (e.g. \"Upload your documents\").",
4856
+ "type": {
4857
+ "text": "string"
4858
+ },
4859
+ "attribute": "heading"
4860
+ },
4861
+ {
4862
+ "kind": "field",
4863
+ "name": "multiple",
4864
+ "description": "Allows selecting/dropping more than one file. Without it only the first file is taken.",
4865
+ "type": {
4866
+ "text": "boolean"
4867
+ },
4868
+ "default": "false",
4869
+ "attribute": "multiple"
4870
+ }
4871
+ ],
4872
+ "events": [
4873
+ {
4874
+ "name": "bsFilesReject",
4875
+ "description": "Fires with files that were not taken: they didn't match `accept`, or were extra files\ndropped while `multiple` is off.",
4876
+ "type": {
4877
+ "text": "CustomEvent<File[]>",
4878
+ "references": [
4879
+ {
4880
+ "name": "File",
4881
+ "package": "global:"
4882
+ }
4883
+ ]
4884
+ }
4885
+ },
4886
+ {
4887
+ "name": "bsFilesSelect",
4888
+ "description": "Fires with the accepted files, after the picker closes or files are dropped.",
4889
+ "type": {
4890
+ "text": "CustomEvent<File[]>",
4891
+ "references": [
4892
+ {
4893
+ "name": "File",
4894
+ "package": "global:"
4895
+ }
4896
+ ]
4897
+ }
4898
+ }
4899
+ ],
4900
+ "slots": [
4901
+ {
4902
+ "name": "icon",
4903
+ "description": "Replaces the default upload icon inside the round icon area."
4904
+ }
4905
+ ],
4906
+ "cssParts": [
4907
+ {
4908
+ "name": "browse",
4909
+ "description": "The \"Browse file\" button."
4910
+ },
4911
+ {
4912
+ "name": "description",
4913
+ "description": "The guidelines text under the heading."
4914
+ },
4915
+ {
4916
+ "name": "dropzone",
4917
+ "description": "The dashed drop area."
4918
+ },
4919
+ {
4920
+ "name": "heading",
4921
+ "description": "The heading text."
4922
+ },
4923
+ {
4924
+ "name": "icon",
4925
+ "description": "The round icon area."
4926
+ }
4927
+ ],
4928
+ "cssProperties": [
4929
+ {
4930
+ "name": "--bs-file-upload-bg",
4931
+ "description": "Background of the dropzone at rest. Aliased to --bs-surface-raised."
4932
+ },
4933
+ {
4934
+ "name": "--bs-file-upload-bg-dragging",
4935
+ "description": "Background while a file is dragged over it. Aliased to --bs-surface-container."
4936
+ },
4937
+ {
4938
+ "name": "--bs-file-upload-border-color",
4939
+ "description": "Dashed border color at rest. Aliased to --bs-border-neutral-container."
4940
+ },
4941
+ {
4942
+ "name": "--bs-file-upload-border-color-dragging",
4943
+ "description": "Dashed border color while dragging. Aliased to --bs-border-neutral-container-pressed."
4944
+ },
4945
+ {
4946
+ "name": "--bs-file-upload-border-width",
4947
+ "description": "Dashed border width. Aliased to --bs-border-width-medium."
4948
+ },
4949
+ {
4950
+ "name": "--bs-file-upload-content-gap",
4951
+ "description": "Gap between the text and the browse button. Aliased to --bs-spacing-100."
4952
+ },
4953
+ {
4954
+ "name": "--bs-file-upload-description-color",
4955
+ "description": "Guidelines color. Aliased to --bs-text-secondary."
4956
+ },
4957
+ {
4958
+ "name": "--bs-file-upload-font-size",
4959
+ "description": "Text size. Aliased to --bs-font-size-md."
4960
+ },
4961
+ {
4962
+ "name": "--bs-file-upload-gap",
4963
+ "description": "Gap between the icon area and the content. Aliased to --bs-spacing-300."
4964
+ },
4965
+ {
4966
+ "name": "--bs-file-upload-heading-color",
4967
+ "description": "Heading color. Aliased to --bs-text-default."
4968
+ },
4969
+ {
4970
+ "name": "--bs-file-upload-icon-bg",
4971
+ "description": "Background of the round icon area at rest. Aliased to --bs-surface-hover."
4972
+ },
4973
+ {
4974
+ "name": "--bs-file-upload-icon-bg-dragging",
4975
+ "description": "Background of the icon area while dragging. Aliased to --bs-surface-raised."
4976
+ },
4977
+ {
4978
+ "name": "--bs-file-upload-icon-color",
4979
+ "description": "Upload icon color. Aliased to --bs-icon-default."
4980
+ },
4981
+ {
4982
+ "name": "--bs-file-upload-icon-size",
4983
+ "description": "Diameter of the round icon area. 102px, per the Figma spec."
4984
+ },
4985
+ {
4986
+ "name": "--bs-file-upload-line-height",
4987
+ "description": "Text line height. Aliased to --bs-line-height-body-md."
4988
+ },
4989
+ {
4990
+ "name": "--bs-file-upload-padding",
4991
+ "description": "Padding on all sides. Aliased to --bs-spacing-300."
4992
+ },
4993
+ {
4994
+ "name": "--bs-file-upload-radius",
4995
+ "description": "Corner radius. Aliased to --bs-border-radius-150."
4996
+ },
4997
+ {
4998
+ "name": "--bs-file-upload-text-gap",
4999
+ "description": "Gap between the heading and the guidelines. Aliased to --bs-spacing-25."
5000
+ }
5001
+ ]
5002
+ }
5003
+ ],
5004
+ "exports": [
5005
+ {
5006
+ "kind": "js",
5007
+ "name": "BsFileUpload",
5008
+ "declaration": {
5009
+ "name": "BsFileUpload"
5010
+ }
5011
+ },
5012
+ {
5013
+ "kind": "custom-element-definition",
5014
+ "name": "bs-file-upload",
5015
+ "declaration": {
5016
+ "name": "BsFileUpload"
5017
+ }
5018
+ }
5019
+ ]
5020
+ },
5021
+ {
5022
+ "kind": "javascript-module",
5023
+ "path": "src/components/bs-file-upload-item/bs-file-upload-item.tsx",
5024
+ "declarations": [
5025
+ {
5026
+ "kind": "class",
5027
+ "customElement": true,
5028
+ "tagName": "bs-file-upload-item",
5029
+ "name": "BsFileUploadItem",
5030
+ "description": "One file in an upload list: a thumbnail, the file name and size, a status line (a progress bar\nwhile uploading, or a success / error message) and an action button (cancel while uploading or\nafter an error, remove once uploaded).\n\nPresentational only -- the consuming app owns the upload and drives `state`, `progress` and\n`message` from it. Pair with `bs-file-upload` (the dropzone that picks the files).\n\n## When to use\n- Showing the status of each file the user has added, in a list under a `bs-file-upload`.\n\n## When not to use\n- Attaching files to a chat message -- use `bs-attachment`.",
5031
+ "attributes": [
5032
+ {
5033
+ "name": "cancel-label",
5034
+ "description": "Accessible name of the cancel button (`loading`, `in-progress`, `error`).",
5035
+ "type": {
5036
+ "text": "string"
5037
+ },
5038
+ "default": "'Cancel upload'",
5039
+ "fieldName": "cancelLabel"
5040
+ },
5041
+ {
5042
+ "name": "file-name",
5043
+ "description": "The file name.",
5044
+ "type": {
5045
+ "text": "string"
5046
+ },
5047
+ "default": "''",
5048
+ "fieldName": "fileName"
5049
+ },
5050
+ {
5051
+ "name": "file-size",
5052
+ "description": "The file size, already formatted (e.g. \"8MB\").",
5053
+ "type": {
5054
+ "text": "string"
5055
+ },
5056
+ "fieldName": "fileSize"
5057
+ },
5058
+ {
5059
+ "name": "message",
5060
+ "description": "The status text. Defaults per state: \"Loading...\" (`loading`), \"{progress}% uploaded\"\n(`in-progress`), \"Upload failed\" (`error`), \"File uploaded successfully\" (`success`). Provide\nyour own for localisation or a specific error.",
5061
+ "type": {
5062
+ "text": "string"
5063
+ },
5064
+ "fieldName": "message"
5065
+ },
5066
+ {
5067
+ "name": "progress",
5068
+ "description": "Upload progress, 0-100. Only used when `state=\"in-progress\"`.",
5069
+ "type": {
5070
+ "text": "number"
5071
+ },
5072
+ "default": "0",
5073
+ "fieldName": "progress"
5074
+ },
5075
+ {
5076
+ "name": "remove-label",
5077
+ "description": "Accessible name of the remove button (`success`).",
5078
+ "type": {
5079
+ "text": "string"
5080
+ },
5081
+ "default": "'Remove file'",
5082
+ "fieldName": "removeLabel"
5083
+ },
5084
+ {
5085
+ "name": "state",
5086
+ "description": "Where the upload is. `loading` = working with no known percentage (indeterminate bar);\n`in-progress` = uploading with a known `progress`; `error` and `success` are final.",
5087
+ "type": {
5088
+ "text": "\"error\" | \"in-progress\" | \"loading\" | \"success\"",
5089
+ "references": [
5090
+ {
5091
+ "name": "BsFileUploadItemState"
5092
+ }
5093
+ ]
5094
+ },
5095
+ "default": "'loading'",
5096
+ "fieldName": "state"
5097
+ },
5098
+ {
5099
+ "name": "thumbnail-alt",
5100
+ "description": "Alt text for `thumbnailSrc`. Leave empty when the file name already says it all.",
5101
+ "type": {
5102
+ "text": "string"
5103
+ },
5104
+ "default": "''",
5105
+ "fieldName": "thumbnailAlt"
5106
+ },
5107
+ {
5108
+ "name": "thumbnail-src",
5109
+ "description": "A preview image of the file. Shown instead of the placeholder icon when set.",
5110
+ "type": {
5111
+ "text": "string"
5112
+ },
5113
+ "fieldName": "thumbnailSrc"
5114
+ }
5115
+ ],
5116
+ "members": [
5117
+ {
5118
+ "kind": "field",
5119
+ "name": "cancelLabel",
5120
+ "description": "Accessible name of the cancel button (`loading`, `in-progress`, `error`).",
5121
+ "type": {
5122
+ "text": "string"
5123
+ },
5124
+ "default": "'Cancel upload'",
5125
+ "attribute": "cancel-label"
5126
+ },
5127
+ {
5128
+ "kind": "field",
5129
+ "name": "fileName",
5130
+ "description": "The file name.",
5131
+ "type": {
5132
+ "text": "string"
5133
+ },
5134
+ "default": "''",
5135
+ "attribute": "file-name"
5136
+ },
5137
+ {
5138
+ "kind": "field",
5139
+ "name": "fileSize",
5140
+ "description": "The file size, already formatted (e.g. \"8MB\").",
5141
+ "type": {
5142
+ "text": "string"
5143
+ },
5144
+ "attribute": "file-size"
5145
+ },
5146
+ {
5147
+ "kind": "field",
5148
+ "name": "message",
5149
+ "description": "The status text. Defaults per state: \"Loading...\" (`loading`), \"{progress}% uploaded\"\n(`in-progress`), \"Upload failed\" (`error`), \"File uploaded successfully\" (`success`). Provide\nyour own for localisation or a specific error.",
5150
+ "type": {
5151
+ "text": "string"
5152
+ },
5153
+ "attribute": "message"
5154
+ },
5155
+ {
5156
+ "kind": "field",
5157
+ "name": "progress",
5158
+ "description": "Upload progress, 0-100. Only used when `state=\"in-progress\"`.",
5159
+ "type": {
5160
+ "text": "number"
4139
5161
  },
4140
- "fieldName": "heading"
5162
+ "default": "0",
5163
+ "attribute": "progress"
4141
5164
  },
4142
5165
  {
4143
- "name": "open",
4144
- "description": "Mutable + reflected so the component can close itself (backdrop click, Escape, close button)\nthe same way a native `<dialog>` does, while still emitting `bsClose` for the consumer to react to.",
5166
+ "kind": "field",
5167
+ "name": "removeLabel",
5168
+ "description": "Accessible name of the remove button (`success`).",
4145
5169
  "type": {
4146
- "text": "boolean"
5170
+ "text": "string"
4147
5171
  },
4148
- "default": "false",
4149
- "fieldName": "open"
5172
+ "default": "'Remove file'",
5173
+ "attribute": "remove-label"
4150
5174
  },
4151
5175
  {
4152
- "name": "size",
5176
+ "kind": "field",
5177
+ "name": "state",
5178
+ "description": "Where the upload is. `loading` = working with no known percentage (indeterminate bar);\n`in-progress` = uploading with a known `progress`; `error` and `success` are final.",
4153
5179
  "type": {
4154
- "text": "\"lg\" | \"md\" | \"sm\"",
5180
+ "text": "\"error\" | \"in-progress\" | \"loading\" | \"success\"",
4155
5181
  "references": [
4156
5182
  {
4157
- "name": "BsDialogSize"
5183
+ "name": "BsFileUploadItemState"
4158
5184
  }
4159
5185
  ]
4160
5186
  },
4161
- "default": "'md'",
4162
- "fieldName": "size"
4163
- }
4164
- ],
4165
- "members": [
4166
- {
4167
- "kind": "field",
4168
- "name": "centered",
4169
- "description": "Switches to the Figma \"Icon Centered\" layout: heading/body text centered, the `icon` slot\nrendered above the heading, and the close button floating top-right of the dialog instead of\ninline in the header row. Doesn't hide a slotted `image` if one is also provided -- Figma's\nspec doesn't show the two combined, so this is unspecified rather than actively blocked.\nReflected so consumers/CSS can target `bs-dialog[centered]`.",
4170
- "type": {
4171
- "text": "boolean"
4172
- },
4173
- "default": "false",
4174
- "attribute": "centered",
5187
+ "default": "'loading'",
5188
+ "attribute": "state",
4175
5189
  "reflects": true
4176
5190
  },
4177
5191
  {
4178
5192
  "kind": "field",
4179
- "name": "heading",
5193
+ "name": "thumbnailAlt",
5194
+ "description": "Alt text for `thumbnailSrc`. Leave empty when the file name already says it all.",
4180
5195
  "type": {
4181
5196
  "text": "string"
4182
5197
  },
4183
- "attribute": "heading"
4184
- },
4185
- {
4186
- "kind": "field",
4187
- "name": "open",
4188
- "description": "Mutable + reflected so the component can close itself (backdrop click, Escape, close button)\nthe same way a native `<dialog>` does, while still emitting `bsClose` for the consumer to react to.",
4189
- "type": {
4190
- "text": "boolean"
4191
- },
4192
- "default": "false",
4193
- "attribute": "open",
4194
- "reflects": true
5198
+ "default": "''",
5199
+ "attribute": "thumbnail-alt"
4195
5200
  },
4196
5201
  {
4197
5202
  "kind": "field",
4198
- "name": "size",
5203
+ "name": "thumbnailSrc",
5204
+ "description": "A preview image of the file. Shown instead of the placeholder icon when set.",
4199
5205
  "type": {
4200
- "text": "\"lg\" | \"md\" | \"sm\"",
4201
- "references": [
4202
- {
4203
- "name": "BsDialogSize"
4204
- }
4205
- ]
5206
+ "text": "string"
4206
5207
  },
4207
- "default": "'md'",
4208
- "attribute": "size"
5208
+ "attribute": "thumbnail-src"
4209
5209
  }
4210
5210
  ],
4211
5211
  "events": [
4212
5212
  {
4213
- "name": "bsClose",
5213
+ "name": "bsCancel",
5214
+ "description": "Fires when the cancel button is clicked (`loading`, `in-progress`, `error`). The consumer\nstops the upload and removes the item.",
5215
+ "type": {
5216
+ "text": "CustomEvent<void>"
5217
+ }
5218
+ },
5219
+ {
5220
+ "name": "bsRemove",
5221
+ "description": "Fires when the remove button is clicked (`success`). The consumer removes the file.",
4214
5222
  "type": {
4215
5223
  "text": "CustomEvent<void>"
4216
5224
  }
@@ -4218,54 +5226,108 @@
4218
5226
  ],
4219
5227
  "slots": [
4220
5228
  {
4221
- "name": "",
4222
- "description": "Default slot: the dialog body content."
5229
+ "name": "thumbnail",
5230
+ "description": "Replaces the thumbnail content (the image-placeholder icon, or `thumbnailSrc`)."
5231
+ }
5232
+ ],
5233
+ "cssParts": [
5234
+ {
5235
+ "name": "action",
5236
+ "description": "The cancel / remove button."
4223
5237
  },
4224
5238
  {
4225
- "name": "footer",
4226
- "description": "Optional footer content (typically action buttons)."
5239
+ "name": "item",
5240
+ "description": "The card."
4227
5241
  },
4228
5242
  {
4229
- "name": "icon",
4230
- "description": "Optional icon shown above the heading, only rendered at all when `centered` is true."
5243
+ "name": "name",
5244
+ "description": "The file name."
4231
5245
  },
4232
5246
  {
4233
- "name": "image",
4234
- "description": "Optional hero image across the top of the dialog. Presence of assigned content\nswitches the close button to float over it; doesn't affect layout when empty."
5247
+ "name": "progress",
5248
+ "description": "The progress bar (`loading` / `in-progress`)."
5249
+ },
5250
+ {
5251
+ "name": "size",
5252
+ "description": "The file size text."
5253
+ },
5254
+ {
5255
+ "name": "status",
5256
+ "description": "The success / error message line."
5257
+ },
5258
+ {
5259
+ "name": "thumbnail",
5260
+ "description": "The thumbnail box."
4235
5261
  }
4236
5262
  ],
4237
- "cssParts": [
5263
+ "cssProperties": [
4238
5264
  {
4239
- "name": "backdrop",
4240
- "description": "The full-viewport overlay behind the dialog."
5265
+ "name": "--bs-file-upload-item-bg",
5266
+ "description": "Card background. Aliased to --bs-surface-base."
4241
5267
  },
4242
5268
  {
4243
- "name": "body",
4244
- "description": "The body content wrapper."
5269
+ "name": "--bs-file-upload-item-border-color",
5270
+ "description": "Card border color. Aliased to --bs-border-default."
4245
5271
  },
4246
5272
  {
4247
- "name": "close",
4248
- "description": "The close button (inline in the header, or floating -- see the class doc above)."
5273
+ "name": "--bs-file-upload-item-border-width",
5274
+ "description": "Card border width. Aliased to --bs-border-width-thin."
4249
5275
  },
4250
5276
  {
4251
- "name": "dialog",
4252
- "description": "The dialog box itself."
5277
+ "name": "--bs-file-upload-item-content-gap",
5278
+ "description": "Gap between the name/size block and the status line. Aliased to --bs-spacing-100."
4253
5279
  },
4254
5280
  {
4255
- "name": "footer",
4256
- "description": "The footer wrapper (only visible when the footer slot has content)."
5281
+ "name": "--bs-file-upload-item-error-color",
5282
+ "description": "Error text color. Aliased to --bs-text-error."
4257
5283
  },
4258
5284
  {
4259
- "name": "header",
4260
- "description": "The header row (heading + close button, when the close button isn't floating)."
5285
+ "name": "--bs-file-upload-item-error-icon-color",
5286
+ "description": "Error icon color. Aliased to --bs-icon-error."
4261
5287
  },
4262
5288
  {
4263
- "name": "icon",
4264
- "description": "The icon wrapper (only rendered when `centered` is true)."
5289
+ "name": "--bs-file-upload-item-gap",
5290
+ "description": "Gap between the thumbnail, the content and the action. Aliased to --bs-spacing-150."
4265
5291
  },
4266
5292
  {
4267
- "name": "image",
4268
- "description": "The hero image wrapper (only visible when the `image` slot has content)."
5293
+ "name": "--bs-file-upload-item-name-color",
5294
+ "description": "File name color. Aliased to --bs-text-default."
5295
+ },
5296
+ {
5297
+ "name": "--bs-file-upload-item-padding",
5298
+ "description": "Card padding on all sides. Aliased to --bs-spacing-200."
5299
+ },
5300
+ {
5301
+ "name": "--bs-file-upload-item-radius",
5302
+ "description": "Card corner radius. Aliased to --bs-border-radius-150."
5303
+ },
5304
+ {
5305
+ "name": "--bs-file-upload-item-size-color",
5306
+ "description": "File size color. Aliased to --bs-text-default."
5307
+ },
5308
+ {
5309
+ "name": "--bs-file-upload-item-success-color",
5310
+ "description": "Success text color. Aliased to --bs-text-success."
5311
+ },
5312
+ {
5313
+ "name": "--bs-file-upload-item-success-icon-color",
5314
+ "description": "Success icon color. Aliased to --bs-icon-success."
5315
+ },
5316
+ {
5317
+ "name": "--bs-file-upload-item-thumbnail-bg",
5318
+ "description": "Placeholder background (when there is no image). Aliased to --bs-surface-container."
5319
+ },
5320
+ {
5321
+ "name": "--bs-file-upload-item-thumbnail-icon-color",
5322
+ "description": "Placeholder icon color. Aliased to --bs-icon-muted."
5323
+ },
5324
+ {
5325
+ "name": "--bs-file-upload-item-thumbnail-radius",
5326
+ "description": "Thumbnail corner radius. Aliased to --bs-border-radius-100."
5327
+ },
5328
+ {
5329
+ "name": "--bs-file-upload-item-thumbnail-size",
5330
+ "description": "Thumbnail width/height. 80px, per the Figma spec."
4269
5331
  }
4270
5332
  ]
4271
5333
  }
@@ -4273,16 +5335,16 @@
4273
5335
  "exports": [
4274
5336
  {
4275
5337
  "kind": "js",
4276
- "name": "BsDialog",
5338
+ "name": "BsFileUploadItem",
4277
5339
  "declaration": {
4278
- "name": "BsDialog"
5340
+ "name": "BsFileUploadItem"
4279
5341
  }
4280
5342
  },
4281
5343
  {
4282
5344
  "kind": "custom-element-definition",
4283
- "name": "bs-dialog",
5345
+ "name": "bs-file-upload-item",
4284
5346
  "declaration": {
4285
- "name": "BsDialog"
5347
+ "name": "BsFileUploadItem"
4286
5348
  }
4287
5349
  }
4288
5350
  ]
@@ -4332,7 +5394,7 @@
4332
5394
  },
4333
5395
  {
4334
5396
  "name": "type",
4335
- "description": "Native `<button>` type.",
5397
+ "description": "Button type. `submit` submits the surrounding `<form>` (via `requestSubmit()`, so validation\nruns); `reset` resets it; `button` (default) does nothing on its own.",
4336
5398
  "type": {
4337
5399
  "text": "\"button\" | \"reset\" | \"submit\""
4338
5400
  },
@@ -4393,7 +5455,7 @@
4393
5455
  {
4394
5456
  "kind": "field",
4395
5457
  "name": "type",
4396
- "description": "Native `<button>` type.",
5458
+ "description": "Button type. `submit` submits the surrounding `<form>` (via `requestSubmit()`, so validation\nruns); `reset` resets it; `button` (default) does nothing on its own.",
4397
5459
  "type": {
4398
5460
  "text": "\"button\" | \"reset\" | \"submit\""
4399
5461
  },
@@ -4690,6 +5752,14 @@
4690
5752
  },
4691
5753
  "default": "false",
4692
5754
  "fieldName": "selected"
5755
+ },
5756
+ {
5757
+ "name": "tabbable",
5758
+ "description": "Set by a parent `bs-tabs` to implement roving tabindex (only one tab in the group is in the\nTab order; arrow keys move between them). Left `undefined` for a standalone tab, which stays\na normal tab stop.",
5759
+ "type": {
5760
+ "text": "boolean"
5761
+ },
5762
+ "fieldName": "tabbable"
4693
5763
  }
4694
5764
  ],
4695
5765
  "members": [
@@ -4723,6 +5793,15 @@
4723
5793
  "default": "false",
4724
5794
  "attribute": "selected",
4725
5795
  "reflects": true
5796
+ },
5797
+ {
5798
+ "kind": "field",
5799
+ "name": "tabbable",
5800
+ "description": "Set by a parent `bs-tabs` to implement roving tabindex (only one tab in the group is in the\nTab order; arrow keys move between them). Left `undefined` for a standalone tab, which stays\na normal tab stop.",
5801
+ "type": {
5802
+ "text": "boolean"
5803
+ },
5804
+ "attribute": "tabbable"
4726
5805
  }
4727
5806
  ],
4728
5807
  "events": [
@@ -4954,6 +6033,14 @@
4954
6033
  },
4955
6034
  "fieldName": "min"
4956
6035
  },
6036
+ {
6037
+ "name": "name",
6038
+ "description": "The `name` the value is submitted under in a surrounding `<form>`'s `FormData`.",
6039
+ "type": {
6040
+ "text": "string"
6041
+ },
6042
+ "fieldName": "name"
6043
+ },
4957
6044
  {
4958
6045
  "name": "open",
4959
6046
  "description": "Whether the `type=\"dropdown\"` trigger is open. Reflects to an attribute so consumers can style\nan open state via CSS. When `options` is non-empty, this also controls whether the `bs-menu`\nof `bs-menu-item`s is rendered below the field.",
@@ -5059,7 +6146,8 @@
5059
6146
  "text": "boolean"
5060
6147
  },
5061
6148
  "default": "false",
5062
- "attribute": "disabled"
6149
+ "attribute": "disabled",
6150
+ "reflects": true
5063
6151
  },
5064
6152
  {
5065
6153
  "kind": "field",
@@ -5115,6 +6203,16 @@
5115
6203
  },
5116
6204
  "attribute": "min"
5117
6205
  },
6206
+ {
6207
+ "kind": "field",
6208
+ "name": "name",
6209
+ "description": "The `name` the value is submitted under in a surrounding `<form>`'s `FormData`.",
6210
+ "type": {
6211
+ "text": "string"
6212
+ },
6213
+ "attribute": "name",
6214
+ "reflects": true
6215
+ },
5118
6216
  {
5119
6217
  "kind": "field",
5120
6218
  "name": "open",
@@ -6751,6 +7849,15 @@
6751
7849
  "name": "BsProgress",
6752
7850
  "description": "A circular progress indicator -- either a static ring showing a percentage sweep\n(`type=\"determinate\"`) or a continuously spinning ring signaling in-progress work with no known\ncompletion percentage (`type=\"indeterminate\"`).\n\n## When to use\n- Showing the progress of a task with a known, quantifiable completion percentage (`determinate`).\n- Signaling that work is happening in the background with no meaningful percentage to report\n (`indeterminate`), e.g. while waiting on a network response.\n\n## When not to use\n- For a horizontal, bar-shaped progress indicator -- this component is a ring, not a bar.\n- For a percentage that's better expressed as plain text, without the reserved space and visual\n weight of a ring.",
6753
7851
  "attributes": [
7852
+ {
7853
+ "name": "aria-label",
7854
+ "description": "Accessible name for the progress bar (e.g. \"Uploading report\"). Required for assistive tech --\na `role=\"progressbar\"` with no name is an axe-core `aria-progressbar-name` violation. Setting\n`aria-label` on the host doesn't reach the inner element across the shadow boundary, so this\nprop binds it directly -- same pattern as `bs-button`'s `ariaLabel`.",
7855
+ "type": {
7856
+ "text": "string"
7857
+ },
7858
+ "default": "null",
7859
+ "fieldName": "ariaLabel"
7860
+ },
6754
7861
  {
6755
7862
  "name": "show-label",
6756
7863
  "description": "Shows the `${value}%` label below the ring. Only takes effect for `type=\"determinate\"` --\n`indeterminate` never shows a label regardless of this prop, since there's no percentage to\nshow. Defaults to `true`.",
@@ -6813,6 +7920,16 @@
6813
7920
  }
6814
7921
  ],
6815
7922
  "members": [
7923
+ {
7924
+ "kind": "field",
7925
+ "name": "ariaLabel",
7926
+ "description": "Accessible name for the progress bar (e.g. \"Uploading report\"). Required for assistive tech --\na `role=\"progressbar\"` with no name is an axe-core `aria-progressbar-name` violation. Setting\n`aria-label` on the host doesn't reach the inner element across the shadow boundary, so this\nprop binds it directly -- same pattern as `bs-button`'s `ariaLabel`.",
7927
+ "type": {
7928
+ "text": "string"
7929
+ },
7930
+ "default": "null",
7931
+ "attribute": "aria-label"
7932
+ },
6816
7933
  {
6817
7934
  "kind": "field",
6818
7935
  "name": "showLabel",
@@ -6969,6 +8086,15 @@
6969
8086
  "name": "BsProgressLinear",
6970
8087
  "description": "A linear (horizontal) progress indicator -- either a static bar showing a percentage fill\n(`type=\"determinate\"`) or a continuously sliding bar signaling in-progress work with no known\ncompletion percentage (`type=\"indeterminate\"`).\n\n## When to use\n- Showing the progress of a task with a known, quantifiable completion percentage (`determinate`),\n e.g. a file upload.\n- Signaling that work is happening in the background with no meaningful percentage to report\n (`indeterminate`), e.g. while waiting on a network response.\n\n## When not to use\n- For a compact, ring-shaped progress indicator -- use `bs-progress` (circular) instead.\n- For a percentage that's better expressed as plain text, without the reserved space and visual\n weight of a bar.",
6971
8088
  "attributes": [
8089
+ {
8090
+ "name": "aria-label",
8091
+ "description": "Accessible name for the progress bar (e.g. \"Uploading report\"). Required for assistive tech --\na `role=\"progressbar\"` with no name is an axe-core `aria-progressbar-name` violation. Setting\n`aria-label` on the host doesn't reach the inner element across the shadow boundary, so this\nprop binds it directly -- same pattern as `bs-button`'s `ariaLabel`.",
8092
+ "type": {
8093
+ "text": "string"
8094
+ },
8095
+ "default": "null",
8096
+ "fieldName": "ariaLabel"
8097
+ },
6972
8098
  {
6973
8099
  "name": "show-label",
6974
8100
  "description": "Shows the slotted label below the bar. When `false`, or when no content is slotted, the\nlabel wrapper isn't rendered at all. Defaults to `true`.",
@@ -7017,6 +8143,16 @@
7017
8143
  }
7018
8144
  ],
7019
8145
  "members": [
8146
+ {
8147
+ "kind": "field",
8148
+ "name": "ariaLabel",
8149
+ "description": "Accessible name for the progress bar (e.g. \"Uploading report\"). Required for assistive tech --\na `role=\"progressbar\"` with no name is an axe-core `aria-progressbar-name` violation. Setting\n`aria-label` on the host doesn't reach the inner element across the shadow boundary, so this\nprop binds it directly -- same pattern as `bs-button`'s `ariaLabel`.",
8150
+ "type": {
8151
+ "text": "string"
8152
+ },
8153
+ "default": "null",
8154
+ "attribute": "aria-label"
8155
+ },
7020
8156
  {
7021
8157
  "kind": "field",
7022
8158
  "name": "showLabel",
@@ -7188,7 +8324,7 @@
7188
8324
  },
7189
8325
  {
7190
8326
  "name": "name",
7191
- "description": "The native radio input's `name` attribute. Passed straight through to the native input inside.\nNOTE: because each `bs-radio` renders its own shadow root, native `<input type=\"radio\">`\nmutual-exclusion grouping (which the HTML spec scopes to a single DOM tree) does NOT extend\nacross separate `bs-radio` instances sharing the same `name` -- checking one will not natively\nuncheck another. Within a single instance this still behaves like a normal radio input. See\nbs-radio.mdx's Accessibility section for this known gap; consumers building a group currently\nneed to manage mutual exclusivity themselves (e.g. via `bsChange`) until a `bs-radio-group`\nwrapper exists.",
8327
+ "description": "The native radio input's `name` attribute. Passed straight through to the native input inside.\nAlso the group key: `bs-radio` elements sharing a `name` within the same root (document or\nshadow root) behave as one radio group -- checking one unchecks the others, arrow keys move\nbetween them, and only one is in the tab order. Native grouping can't cross each radio's own\nshadow root, so this component implements it itself.",
7192
8328
  "type": {
7193
8329
  "text": "string"
7194
8330
  },
@@ -7223,16 +8359,18 @@
7223
8359
  "text": "boolean"
7224
8360
  },
7225
8361
  "default": "false",
7226
- "attribute": "disabled"
8362
+ "attribute": "disabled",
8363
+ "reflects": true
7227
8364
  },
7228
8365
  {
7229
8366
  "kind": "field",
7230
8367
  "name": "name",
7231
- "description": "The native radio input's `name` attribute. Passed straight through to the native input inside.\nNOTE: because each `bs-radio` renders its own shadow root, native `<input type=\"radio\">`\nmutual-exclusion grouping (which the HTML spec scopes to a single DOM tree) does NOT extend\nacross separate `bs-radio` instances sharing the same `name` -- checking one will not natively\nuncheck another. Within a single instance this still behaves like a normal radio input. See\nbs-radio.mdx's Accessibility section for this known gap; consumers building a group currently\nneed to manage mutual exclusivity themselves (e.g. via `bsChange`) until a `bs-radio-group`\nwrapper exists.",
8368
+ "description": "The native radio input's `name` attribute. Passed straight through to the native input inside.\nAlso the group key: `bs-radio` elements sharing a `name` within the same root (document or\nshadow root) behave as one radio group -- checking one unchecks the others, arrow keys move\nbetween them, and only one is in the tab order. Native grouping can't cross each radio's own\nshadow root, so this component implements it itself.",
7232
8369
  "type": {
7233
8370
  "text": "string"
7234
8371
  },
7235
- "attribute": "name"
8372
+ "attribute": "name",
8373
+ "reflects": true
7236
8374
  },
7237
8375
  {
7238
8376
  "kind": "field",
@@ -7247,7 +8385,7 @@
7247
8385
  "events": [
7248
8386
  {
7249
8387
  "name": "bsChange",
7250
- "description": "Emitted with this radio's own `value` when it becomes checked via user interaction. Since\nnative same-`name` grouping doesn't cross shadow-root boundaries (see the `name` prop's doc),\na consumer wiring up a group of `bs-radio`s must itself set `checked = false` on the others in\nresponse to this event -- there's no automatic un-checking to rely on here.",
8388
+ "description": "Emitted with this radio's own `value` when it becomes checked via user interaction. Since\nnative same-`name` grouping doesn't cross shadow-root boundaries (see the `name` prop's doc),\na consumer wiring up a group of `bs-radio`s does not need to un-check the others itself.",
7251
8389
  "type": {
7252
8390
  "text": "CustomEvent<string>"
7253
8391
  }
@@ -7370,6 +8508,14 @@
7370
8508
  "default": "0",
7371
8509
  "fieldName": "min"
7372
8510
  },
8511
+ {
8512
+ "name": "name",
8513
+ "description": "The `name` the value is submitted under in a surrounding `<form>`'s `FormData`. `type=\"range\"`\nsubmits two entries under this name: the start value, then the end value.",
8514
+ "type": {
8515
+ "text": "string"
8516
+ },
8517
+ "fieldName": "name"
8518
+ },
7373
8519
  {
7374
8520
  "name": "segments",
7375
8521
  "description": "Number of equal divisions marked by tick lines along the track, for `type=\"segmented\"` only.\nThe first tick (at the very start of the track) is rendered with `opacity: 0` to keep the\ntick spacing math consistent while not visually doubling up with the track's own start edge --\nthis matches the design spec, not a bug.",
@@ -7456,7 +8602,8 @@
7456
8602
  "text": "boolean"
7457
8603
  },
7458
8604
  "default": "false",
7459
- "attribute": "disabled"
8605
+ "attribute": "disabled",
8606
+ "reflects": true
7460
8607
  },
7461
8608
  {
7462
8609
  "kind": "field",
@@ -7488,6 +8635,16 @@
7488
8635
  "default": "0",
7489
8636
  "attribute": "min"
7490
8637
  },
8638
+ {
8639
+ "kind": "field",
8640
+ "name": "name",
8641
+ "description": "The `name` the value is submitted under in a surrounding `<form>`'s `FormData`. `type=\"range\"`\nsubmits two entries under this name: the start value, then the end value.",
8642
+ "type": {
8643
+ "text": "string"
8644
+ },
8645
+ "attribute": "name",
8646
+ "reflects": true
8647
+ },
7491
8648
  {
7492
8649
  "kind": "field",
7493
8650
  "name": "segments",
@@ -8579,6 +9736,14 @@
8579
9736
  "default": "false",
8580
9737
  "fieldName": "disabled"
8581
9738
  },
9739
+ {
9740
+ "name": "name",
9741
+ "description": "The `name` the value is submitted under in a surrounding `<form>`'s `FormData`.",
9742
+ "type": {
9743
+ "text": "string"
9744
+ },
9745
+ "fieldName": "name"
9746
+ },
8582
9747
  {
8583
9748
  "name": "size",
8584
9749
  "description": "Sizing scale. Controls the track's width/height and the knob's diameter.",
@@ -8592,6 +9757,15 @@
8592
9757
  },
8593
9758
  "default": "'lg'",
8594
9759
  "fieldName": "size"
9760
+ },
9761
+ {
9762
+ "name": "value",
9763
+ "description": "The value submitted when on (native checkbox default: `\"on\"`).",
9764
+ "type": {
9765
+ "text": "string"
9766
+ },
9767
+ "default": "'on'",
9768
+ "fieldName": "value"
8595
9769
  }
8596
9770
  ],
8597
9771
  "members": [
@@ -8624,7 +9798,18 @@
8624
9798
  "text": "boolean"
8625
9799
  },
8626
9800
  "default": "false",
8627
- "attribute": "disabled"
9801
+ "attribute": "disabled",
9802
+ "reflects": true
9803
+ },
9804
+ {
9805
+ "kind": "field",
9806
+ "name": "name",
9807
+ "description": "The `name` the value is submitted under in a surrounding `<form>`'s `FormData`.",
9808
+ "type": {
9809
+ "text": "string"
9810
+ },
9811
+ "attribute": "name",
9812
+ "reflects": true
8628
9813
  },
8629
9814
  {
8630
9815
  "kind": "field",
@@ -8640,6 +9825,16 @@
8640
9825
  },
8641
9826
  "default": "'lg'",
8642
9827
  "attribute": "size"
9828
+ },
9829
+ {
9830
+ "kind": "field",
9831
+ "name": "value",
9832
+ "description": "The value submitted when on (native checkbox default: `\"on\"`).",
9833
+ "type": {
9834
+ "text": "string"
9835
+ },
9836
+ "default": "'on'",
9837
+ "attribute": "value"
8643
9838
  }
8644
9839
  ],
8645
9840
  "events": [
@@ -8843,6 +10038,14 @@
8843
10038
  },
8844
10039
  "default": "false",
8845
10040
  "fieldName": "selected"
10041
+ },
10042
+ {
10043
+ "name": "tabbable",
10044
+ "description": "Set by a parent `bs-tabs` to implement roving tabindex (only one tab in the group is in the\nTab order; arrow keys move between them). Left `undefined` for a standalone tab, which stays\na normal tab stop.",
10045
+ "type": {
10046
+ "text": "boolean"
10047
+ },
10048
+ "fieldName": "tabbable"
8846
10049
  }
8847
10050
  ],
8848
10051
  "members": [
@@ -8891,6 +10094,15 @@
8891
10094
  "default": "false",
8892
10095
  "attribute": "selected",
8893
10096
  "reflects": true
10097
+ },
10098
+ {
10099
+ "kind": "field",
10100
+ "name": "tabbable",
10101
+ "description": "Set by a parent `bs-tabs` to implement roving tabindex (only one tab in the group is in the\nTab order; arrow keys move between them). Left `undefined` for a standalone tab, which stays\na normal tab stop.",
10102
+ "type": {
10103
+ "text": "boolean"
10104
+ },
10105
+ "attribute": "tabbable"
8894
10106
  }
8895
10107
  ],
8896
10108
  "events": [