@brandsync/wc 1.7.0 → 1.9.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 (345) hide show
  1. package/custom-elements.json +340 -24
  2. package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
  3. package/dist/brandsync-wc/{p-fde5e9f1.entry.js → p-051d3064.entry.js} +1 -1
  4. package/dist/brandsync-wc/{p-f243683f.entry.js → p-05c7de28.entry.js} +1 -1
  5. package/dist/brandsync-wc/{p-2d6955d6.entry.js → p-062cfa34.entry.js} +1 -1
  6. package/dist/brandsync-wc/p-0e39b9cc.entry.js +1 -0
  7. package/dist/brandsync-wc/p-0eed6813.entry.js +1 -0
  8. package/dist/brandsync-wc/{p-d25b7b74.entry.js → p-107b1c5d.entry.js} +1 -1
  9. package/dist/brandsync-wc/{p-538cc08e.entry.js → p-114d2fd8.entry.js} +1 -1
  10. package/dist/brandsync-wc/{p-6754dfa9.entry.js → p-1c0db4d6.entry.js} +1 -1
  11. package/dist/brandsync-wc/{p-4a1a5d6e.entry.js → p-1f7208cb.entry.js} +1 -1
  12. package/dist/brandsync-wc/p-2181378f.entry.js +1 -0
  13. package/dist/brandsync-wc/{p-d06543a5.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-27bbed83.entry.js +1 -0
  16. package/dist/brandsync-wc/p-2891d40b.entry.js +1 -0
  17. package/dist/brandsync-wc/p-29027559.entry.js +1 -0
  18. package/dist/brandsync-wc/{p-a36a0e6a.entry.js → p-3176d1d3.entry.js} +1 -1
  19. package/dist/brandsync-wc/{p-0d86c22d.entry.js → p-33e44094.entry.js} +1 -1
  20. package/dist/brandsync-wc/{p-e427bbda.entry.js → p-360452c2.entry.js} +1 -1
  21. package/dist/brandsync-wc/p-36bf37d9.entry.js +1 -0
  22. package/dist/brandsync-wc/p-3b64e3cd.entry.js +1 -0
  23. package/dist/brandsync-wc/p-3ec74d35.entry.js +1 -0
  24. package/dist/brandsync-wc/p-4574a707.entry.js +1 -0
  25. package/dist/brandsync-wc/p-4e5dcaff.entry.js +1 -0
  26. package/dist/brandsync-wc/{p-61db6ce2.entry.js → p-61c1a2a3.entry.js} +1 -1
  27. package/dist/brandsync-wc/{p-85c70f6d.entry.js → p-6331de9c.entry.js} +1 -1
  28. package/dist/brandsync-wc/{p-9c1be2a0.entry.js → p-6bf2f116.entry.js} +1 -1
  29. package/dist/brandsync-wc/p-6fd7dd6a.entry.js +1 -0
  30. package/dist/brandsync-wc/{p-c3a28a89.entry.js → p-70f64b25.entry.js} +1 -1
  31. package/dist/brandsync-wc/{p-06e9b45d.entry.js → p-7b00dd36.entry.js} +1 -1
  32. package/dist/brandsync-wc/{p-13e4966c.entry.js → p-7c94e6ae.entry.js} +1 -1
  33. package/dist/brandsync-wc/p-835a8dc7.entry.js +1 -0
  34. package/dist/brandsync-wc/{p-77433277.entry.js → p-8ee0153b.entry.js} +1 -1
  35. package/dist/brandsync-wc/{p-e1069ba9.entry.js → p-9f65f998.entry.js} +1 -1
  36. package/dist/brandsync-wc/p-9f6fe37d.entry.js +1 -0
  37. package/dist/brandsync-wc/{p-b2dc9886.entry.js → p-9f8852a0.entry.js} +1 -1
  38. package/dist/brandsync-wc/{p-DuyFft7h.js → p-AgoOSYvW.js} +2 -2
  39. package/dist/brandsync-wc/{p-fba01c96.entry.js → p-a09e157f.entry.js} +1 -1
  40. package/dist/brandsync-wc/{p-55e6438c.entry.js → p-a0d5a620.entry.js} +1 -1
  41. package/dist/brandsync-wc/{p-8b2ab522.entry.js → p-a5feaad4.entry.js} +1 -1
  42. package/dist/brandsync-wc/{p-cbaa19ab.entry.js → p-a92eec48.entry.js} +1 -1
  43. package/dist/brandsync-wc/{p-3eab22a5.entry.js → p-ae978c9a.entry.js} +1 -1
  44. package/dist/brandsync-wc/{p-f2ce9a1f.entry.js → p-bbcc47b0.entry.js} +1 -1
  45. package/dist/brandsync-wc/{p-80cf96ff.entry.js → p-be2c1740.entry.js} +1 -1
  46. package/dist/brandsync-wc/p-c10d2529.entry.js +1 -0
  47. package/dist/brandsync-wc/{p-819a3dae.entry.js → p-c3f72584.entry.js} +1 -1
  48. package/dist/brandsync-wc/{p-8b57f606.entry.js → p-c4de155c.entry.js} +1 -1
  49. package/dist/brandsync-wc/{p-c197cc95.entry.js → p-cfcf3f0a.entry.js} +1 -1
  50. package/dist/brandsync-wc/{p-f8f03334.entry.js → p-de7c946d.entry.js} +1 -1
  51. package/dist/brandsync-wc/{p-600b5434.entry.js → p-e9b43754.entry.js} +1 -1
  52. package/dist/brandsync-wc/{p-4bff9b4b.entry.js → p-f006d962.entry.js} +1 -1
  53. package/dist/brandsync-wc/p-f074f94e.entry.js +1 -0
  54. package/dist/brandsync-wc/{p-7ed5670e.entry.js → p-f7d47c17.entry.js} +1 -1
  55. package/dist/brandsync-wc/p-fc240aa0.entry.js +1 -0
  56. package/dist/brandsync-wc/{p-f518f486.entry.js → p-fc58c663.entry.js} +1 -1
  57. package/dist/brandsync-wc/{p-be14f99f.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 +1 -1
  61. package/dist/cjs/bs-ai-greeting.cjs.entry.js +1 -1
  62. package/dist/cjs/bs-ai-thinking.cjs.entry.js +1 -1
  63. package/dist/cjs/bs-attachment-list.cjs.entry.js +2 -2
  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 +15 -3
  68. package/dist/cjs/bs-breadcrumb.cjs.entry.js +16 -2
  69. package/dist/cjs/bs-breadcrumbs.cjs.entry.js +1 -1
  70. package/dist/cjs/bs-button-skeleton.cjs.entry.js +1 -1
  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 +1 -1
  74. package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +2 -2
  75. package/dist/cjs/bs-chatbot-header.cjs.entry.js +1 -1
  76. package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +2 -2
  77. package/dist/cjs/bs-chatbot-sources-drawer.cjs.entry.js +1 -1
  78. package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +1 -1
  79. package/dist/cjs/bs-checkbox-skeleton.cjs.entry.js +1 -1
  80. package/dist/cjs/bs-checkbox.cjs.entry.js +48 -3
  81. package/dist/cjs/bs-chip-filter.cjs.entry.js +2 -2
  82. package/dist/cjs/bs-chip-informative.cjs.entry.js +2 -2
  83. package/dist/cjs/bs-chip-input.cjs.entry.js +2 -2
  84. package/dist/cjs/bs-composer-status-banner.cjs.entry.js +1 -1
  85. package/dist/cjs/bs-composer.cjs.entry.js +1 -1
  86. package/dist/cjs/bs-data-table.cjs.entry.js +20 -6
  87. package/dist/cjs/bs-dialog.cjs.entry.js +2 -2
  88. package/dist/cjs/bs-file-upload-item.cjs.entry.js +1 -1
  89. package/dist/cjs/bs-file-upload.cjs.entry.js +1 -1
  90. package/dist/cjs/bs-icon-button.cjs.entry.js +23 -4
  91. package/dist/cjs/bs-inline-tab.cjs.entry.js +11 -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 +1 -1
  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 +119 -6
  98. package/dist/cjs/bs-navigation-header.cjs.entry.js +2 -2
  99. package/dist/cjs/bs-pagination.cjs.entry.js +1 -1
  100. package/dist/cjs/bs-progress-linear.cjs.entry.js +1 -1
  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 +1 -1
  105. package/dist/cjs/bs-source-link.cjs.entry.js +2 -2
  106. package/dist/cjs/bs-stepper-step.cjs.entry.js +2 -2
  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 +11 -3
  110. package/dist/cjs/bs-tabs.cjs.entry.js +97 -3
  111. package/dist/cjs/bs-toast.cjs.entry.js +1 -1
  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/components/bs-a11y.cmp.test.js +54 -0
  116. package/dist/collection/components/bs-accordion/bs-accordion.css +5 -5
  117. package/dist/collection/components/bs-attachment/bs-attachment.css +1 -1
  118. package/dist/collection/components/bs-attachment-list/bs-attachment-list.css +1 -1
  119. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.cmp.test.js +63 -0
  120. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.js +32 -1
  121. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.cmp.test.js +45 -0
  122. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.css +1 -1
  123. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.js +30 -1
  124. package/dist/collection/components/bs-button/bs-button/bs-button.css +17 -10
  125. package/dist/collection/components/bs-button/bs-button/bs-button.js +16 -3
  126. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.cmp.test.js +20 -0
  127. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.css +21 -4
  128. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.js +18 -4
  129. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.stories.js +10 -0
  130. package/dist/collection/components/bs-card/bs-card.css +4 -0
  131. package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.css +1 -1
  132. package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.css +3 -3
  133. package/dist/collection/components/bs-checkbox/bs-checkbox.css +8 -1
  134. package/dist/collection/components/bs-checkbox/bs-checkbox.js +100 -2
  135. package/dist/collection/components/bs-chip/bs-chip-filter/bs-chip-filter.css +4 -4
  136. package/dist/collection/components/bs-chip/bs-chip-informative/bs-chip-informative.css +4 -4
  137. package/dist/collection/components/bs-chip/bs-chip-input/bs-chip-input.css +5 -5
  138. package/dist/collection/components/bs-data-table/bs-data-table.cmp.test.js +19 -0
  139. package/dist/collection/components/bs-data-table/bs-data-table.css +1 -1
  140. package/dist/collection/components/bs-data-table/bs-data-table.js +19 -5
  141. package/dist/collection/components/bs-data-table/bs-data-table.stories.js +8 -1
  142. package/dist/collection/components/bs-dialog/bs-dialog.css +5 -1
  143. package/dist/collection/components/bs-form-association.cmp.test.js +172 -0
  144. package/dist/collection/components/bs-input/bs-input.css +10 -4
  145. package/dist/collection/components/bs-input/bs-input.js +82 -4
  146. package/dist/collection/components/bs-keyboard-nav.cmp.test.js +100 -0
  147. package/dist/collection/components/bs-logo/bs-logo.cmp.test.js +52 -3
  148. package/dist/collection/components/bs-menu/bs-menu.css +4 -0
  149. package/dist/collection/components/bs-menu/bs-menu.js +33 -1
  150. package/dist/collection/components/bs-menu/bs-menu.stories.js +54 -0
  151. package/dist/collection/components/bs-progress/bs-progress.js +27 -2
  152. package/dist/collection/components/bs-radio/bs-radio.cmp.test.js +4 -10
  153. package/dist/collection/components/bs-radio/bs-radio.css +7 -1
  154. package/dist/collection/components/bs-radio/bs-radio.js +92 -14
  155. package/dist/collection/components/bs-radio/bs-radio.stories.js +1 -10
  156. package/dist/collection/components/bs-slider/bs-slider.js +68 -2
  157. package/dist/collection/components/bs-source-link/bs-source-link.css +2 -2
  158. package/dist/collection/components/bs-stepper/bs-stepper/bs-stepper.js +3 -2
  159. package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.css +3 -3
  160. package/dist/collection/components/bs-switch/bs-switch.css +10 -1
  161. package/dist/collection/components/bs-switch/bs-switch.js +69 -2
  162. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.css +2 -2
  163. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.js +47 -1
  164. package/dist/collection/components/bs-tab/bs-tab/bs-tab.css +2 -2
  165. package/dist/collection/components/bs-tab/bs-tab/bs-tab.js +47 -1
  166. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.cmp.test.js +88 -0
  167. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.js +139 -2
  168. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.stories.js +24 -0
  169. package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
  170. package/dist/collection/components/forms/forms.stories.js +63 -0
  171. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.cmp.test.js +173 -5
  172. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.css +106 -34
  173. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +181 -5
  174. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.stories.js +48 -0
  175. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.js +1 -1
  176. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.cmp.test.js +68 -0
  177. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.css +31 -17
  178. package/dist/components/bs-accordion.js +1 -1
  179. package/dist/components/bs-ai-disclaimer.js +1 -1
  180. package/dist/components/bs-ai-greeting.js +1 -1
  181. package/dist/components/bs-ai-thinking.js +1 -1
  182. package/dist/components/bs-attachment-list.js +1 -1
  183. package/dist/components/bs-attachment.js +1 -1
  184. package/dist/components/bs-avatar.js +1 -1
  185. package/dist/components/bs-badge.js +1 -1
  186. package/dist/components/bs-breadcrumb-overflow.js +1 -1
  187. package/dist/components/bs-breadcrumb.js +1 -1
  188. package/dist/components/bs-breadcrumbs.js +1 -1
  189. package/dist/components/bs-button-skeleton.js +1 -1
  190. package/dist/components/bs-button.js +1 -1
  191. package/dist/components/bs-card.js +1 -1
  192. package/dist/components/bs-carousel.js +1 -1
  193. package/dist/components/bs-chatbot-feedback.js +1 -1
  194. package/dist/components/bs-chatbot-header.js +1 -1
  195. package/dist/components/bs-chatbot-response-action.js +1 -1
  196. package/dist/components/bs-chatbot-sources-drawer.js +1 -1
  197. package/dist/components/bs-chatbot-suggestion-button.js +1 -1
  198. package/dist/components/bs-checkbox-skeleton.js +1 -1
  199. package/dist/components/bs-checkbox.js +1 -1
  200. package/dist/components/bs-chip-filter.js +1 -1
  201. package/dist/components/bs-chip-informative.js +1 -1
  202. package/dist/components/bs-chip-input.js +1 -1
  203. package/dist/components/bs-composer-status-banner.js +1 -1
  204. package/dist/components/bs-composer.js +1 -1
  205. package/dist/components/bs-data-table.js +1 -1
  206. package/dist/components/bs-dialog.js +1 -1
  207. package/dist/components/bs-file-upload-item.js +1 -1
  208. package/dist/components/bs-file-upload.js +1 -1
  209. package/dist/components/bs-icon-button.js +1 -1
  210. package/dist/components/bs-inline-tab.js +1 -1
  211. package/dist/components/bs-input.js +1 -1
  212. package/dist/components/bs-logo.js +1 -1
  213. package/dist/components/bs-menu-item.js +1 -1
  214. package/dist/components/bs-menu.js +1 -1
  215. package/dist/components/bs-navigation-drawer-item.js +1 -1
  216. package/dist/components/bs-navigation-drawer.js +1 -1
  217. package/dist/components/bs-navigation-header.js +1 -1
  218. package/dist/components/bs-pagination.js +1 -1
  219. package/dist/components/bs-progress-linear.js +1 -1
  220. package/dist/components/bs-progress.js +1 -1
  221. package/dist/components/bs-radio.js +1 -1
  222. package/dist/components/bs-slider.js +1 -1
  223. package/dist/components/bs-snackbar.js +1 -1
  224. package/dist/components/bs-source-link.js +1 -1
  225. package/dist/components/bs-stepper-step.js +1 -1
  226. package/dist/components/bs-stepper.js +1 -1
  227. package/dist/components/bs-switch.js +1 -1
  228. package/dist/components/bs-tab.js +1 -1
  229. package/dist/components/bs-tabs.js +1 -1
  230. package/dist/components/bs-toast.js +1 -1
  231. package/dist/components/bs-tooltip.js +1 -1
  232. package/dist/components/index.js +1 -1
  233. package/dist/components/{p-LYvoWZt4.js → p-BA3c9Rom.js} +1 -1
  234. package/dist/components/{p-Dqt-Qp4W.js → p-BfEyD6Ku.js} +1 -1
  235. package/dist/components/p-BoeorHNv.js +1 -0
  236. package/dist/components/p-Buly0d5G.js +1 -0
  237. package/dist/components/p-CpUHnsq9.js +1 -0
  238. package/dist/components/{p-BxFJ74fI.js → p-EtXc94lJ.js} +1 -1
  239. package/dist/components/{p-mnGJPH85.js → p-JYlmcxBn.js} +1 -1
  240. package/dist/components/{p-BhvV55-6.js → p-R2MlkUzD.js} +1 -1
  241. package/dist/components/{p-Dx8gAOVC.js → p-wei0Ija2.js} +1 -1
  242. package/dist/esm/brandsync-wc.js +3 -3
  243. package/dist/esm/bs-accordion.entry.js +2 -2
  244. package/dist/esm/bs-ai-disclaimer.entry.js +1 -1
  245. package/dist/esm/bs-ai-greeting.entry.js +1 -1
  246. package/dist/esm/bs-ai-thinking.entry.js +1 -1
  247. package/dist/esm/bs-attachment-list.entry.js +2 -2
  248. package/dist/esm/bs-attachment.entry.js +2 -2
  249. package/dist/esm/bs-avatar.entry.js +1 -1
  250. package/dist/esm/bs-badge.entry.js +1 -1
  251. package/dist/esm/bs-breadcrumb-overflow.entry.js +15 -3
  252. package/dist/esm/bs-breadcrumb.entry.js +16 -2
  253. package/dist/esm/bs-breadcrumbs.entry.js +1 -1
  254. package/dist/esm/bs-button-skeleton.entry.js +1 -1
  255. package/dist/esm/bs-button.entry.js +23 -4
  256. package/dist/esm/bs-card.entry.js +2 -2
  257. package/dist/esm/bs-carousel.entry.js +1 -1
  258. package/dist/esm/bs-chatbot-feedback.entry.js +2 -2
  259. package/dist/esm/bs-chatbot-header.entry.js +1 -1
  260. package/dist/esm/bs-chatbot-response-action.entry.js +2 -2
  261. package/dist/esm/bs-chatbot-sources-drawer.entry.js +1 -1
  262. package/dist/esm/bs-chatbot-suggestion-button.entry.js +1 -1
  263. package/dist/esm/bs-checkbox-skeleton.entry.js +1 -1
  264. package/dist/esm/bs-checkbox.entry.js +48 -3
  265. package/dist/esm/bs-chip-filter.entry.js +2 -2
  266. package/dist/esm/bs-chip-informative.entry.js +2 -2
  267. package/dist/esm/bs-chip-input.entry.js +2 -2
  268. package/dist/esm/bs-composer-status-banner.entry.js +1 -1
  269. package/dist/esm/bs-composer.entry.js +1 -1
  270. package/dist/esm/bs-data-table.entry.js +20 -6
  271. package/dist/esm/bs-dialog.entry.js +2 -2
  272. package/dist/esm/bs-file-upload-item.entry.js +1 -1
  273. package/dist/esm/bs-file-upload.entry.js +1 -1
  274. package/dist/esm/bs-icon-button.entry.js +23 -4
  275. package/dist/esm/bs-inline-tab.entry.js +11 -3
  276. package/dist/esm/bs-input.entry.js +69 -5
  277. package/dist/esm/bs-logo.entry.js +1 -1
  278. package/dist/esm/bs-menu-item.entry.js +1 -1
  279. package/dist/esm/bs-menu.entry.js +25 -3
  280. package/dist/esm/bs-navigation-drawer-item.entry.js +2 -2
  281. package/dist/esm/bs-navigation-drawer.entry.js +119 -6
  282. package/dist/esm/bs-navigation-header.entry.js +2 -2
  283. package/dist/esm/bs-pagination.entry.js +1 -1
  284. package/dist/esm/bs-progress-linear.entry.js +1 -1
  285. package/dist/esm/bs-progress.entry.js +8 -3
  286. package/dist/esm/bs-radio.entry.js +81 -12
  287. package/dist/esm/bs-slider.entry.js +54 -2
  288. package/dist/esm/bs-snackbar.entry.js +1 -1
  289. package/dist/esm/bs-source-link.entry.js +2 -2
  290. package/dist/esm/bs-stepper-step.entry.js +2 -2
  291. package/dist/esm/bs-stepper.entry.js +3 -2
  292. package/dist/esm/bs-switch.entry.js +36 -3
  293. package/dist/esm/bs-tab.entry.js +11 -3
  294. package/dist/esm/bs-tabs.entry.js +97 -3
  295. package/dist/esm/bs-toast.entry.js +1 -1
  296. package/dist/esm/bs-tooltip.entry.js +2 -2
  297. package/dist/esm/{index-DuyFft7h.js → index-AgoOSYvW.js} +43 -5
  298. package/dist/esm/loader.js +3 -3
  299. package/dist/types/components/bs-a11y.cmp.test.d.ts +1 -0
  300. package/dist/types/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.d.ts +10 -0
  301. package/dist/types/components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.d.ts +8 -0
  302. package/dist/types/components/bs-button/bs-button/bs-button.d.ts +4 -1
  303. package/dist/types/components/bs-button/bs-icon-button/bs-icon-button.d.ts +6 -2
  304. package/dist/types/components/bs-button/bs-icon-button/bs-icon-button.stories.d.ts +1 -0
  305. package/dist/types/components/bs-checkbox/bs-checkbox.d.ts +12 -0
  306. package/dist/types/components/bs-data-table/bs-data-table.d.ts +16 -2
  307. package/dist/types/components/bs-form-association.cmp.test.d.ts +1 -0
  308. package/dist/types/components/bs-input/bs-input.d.ts +12 -0
  309. package/dist/types/components/bs-keyboard-nav.cmp.test.d.ts +1 -0
  310. package/dist/types/components/bs-menu/bs-menu.d.ts +4 -0
  311. package/dist/types/components/bs-menu/bs-menu.stories.d.ts +1 -0
  312. package/dist/types/components/bs-progress/bs-progress.d.ts +5 -0
  313. package/dist/types/components/bs-radio/bs-radio.d.ts +23 -9
  314. package/dist/types/components/bs-slider/bs-slider.d.ts +9 -0
  315. package/dist/types/components/bs-switch/bs-switch.d.ts +10 -0
  316. package/dist/types/components/bs-tab/bs-inline-tab/bs-inline-tab.d.ts +8 -0
  317. package/dist/types/components/bs-tab/bs-tab/bs-tab.d.ts +8 -0
  318. package/dist/types/components/bs-tab/bs-tabs/bs-tabs.d.ts +24 -0
  319. package/dist/types/components/bs-tab/bs-tabs/bs-tabs.stories.d.ts +1 -0
  320. package/dist/types/components/forms/forms.stories.d.ts +6 -0
  321. package/dist/types/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.d.ts +50 -1
  322. package/dist/types/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.stories.d.ts +2 -0
  323. package/dist/types/components.d.ts +271 -9
  324. package/package.json +1 -1
  325. package/readme.md +14 -0
  326. package/dist/brandsync-wc/p-18021c05.entry.js +0 -1
  327. package/dist/brandsync-wc/p-1c8160c2.entry.js +0 -1
  328. package/dist/brandsync-wc/p-21c14465.entry.js +0 -1
  329. package/dist/brandsync-wc/p-27100489.entry.js +0 -1
  330. package/dist/brandsync-wc/p-309f920e.entry.js +0 -1
  331. package/dist/brandsync-wc/p-30d6a6d0.entry.js +0 -1
  332. package/dist/brandsync-wc/p-387ed85f.entry.js +0 -1
  333. package/dist/brandsync-wc/p-4b0938a5.entry.js +0 -1
  334. package/dist/brandsync-wc/p-5312b6a5.entry.js +0 -1
  335. package/dist/brandsync-wc/p-70e035ed.entry.js +0 -1
  336. package/dist/brandsync-wc/p-777a9dbf.entry.js +0 -1
  337. package/dist/brandsync-wc/p-a96856fd.entry.js +0 -1
  338. package/dist/brandsync-wc/p-b0634051.entry.js +0 -1
  339. package/dist/brandsync-wc/p-bcee3d60.entry.js +0 -1
  340. package/dist/brandsync-wc/p-d03eba2b.entry.js +0 -1
  341. package/dist/brandsync-wc/p-e61efe4d.entry.js +0 -1
  342. package/dist/brandsync-wc/p-f14bda01.entry.js +0 -1
  343. package/dist/components/p-BaxFLlKS.js +0 -1
  344. package/dist/components/p-DI5GgSqL.js +0 -1
  345. package/dist/components/p-v4T0qPVn.js +0 -1
@@ -494,7 +494,7 @@ export namespace Components {
494
494
  */
495
495
  "size": BsButtonSize;
496
496
  /**
497
- * Native `<button>` type.
497
+ * Button type. `submit` submits the surrounding `<form>` (via `requestSubmit()`, so validation runs); `reset` resets it; `button` (default) does nothing on its own.
498
498
  * @default 'button'
499
499
  */
500
500
  "type": 'button' | 'submit' | 'reset';
@@ -874,11 +874,25 @@ export namespace Components {
874
874
  * @default false
875
875
  */
876
876
  "indeterminate": boolean;
877
+ /**
878
+ * The `name` the value is submitted under in a surrounding `<form>`'s `FormData`.
879
+ */
880
+ "name"?: string;
881
+ /**
882
+ * Marks the checkbox as required: the surrounding form fails validation while unchecked.
883
+ * @default false
884
+ */
885
+ "required": boolean;
877
886
  /**
878
887
  * Sizing scale. Controls the box's width/height and border width; corner radius is constant across all sizes.
879
888
  * @default 'lg'
880
889
  */
881
890
  "size": BsCheckboxSize;
891
+ /**
892
+ * The value submitted when checked (native checkbox default: `"on"`).
893
+ * @default 'on'
894
+ */
895
+ "value": string;
882
896
  }
883
897
  /**
884
898
  * A shape-matched loading placeholder for `bs-checkbox`, shown while the real label text isn't
@@ -1173,7 +1187,7 @@ export namespace Components {
1173
1187
  */
1174
1188
  interface BsDataTable {
1175
1189
  /**
1176
- * Optional custom cell renderer, e.g. for an actions column. Function props are JS-property-only, same as array props -- there is no attribute equivalent. Falls back to the raw cell value.
1190
+ * Optional custom cell renderer, for rich cells such as a status badge, a link or an actions column. It returns an **HTML string** that is inserted into the cell as real markup (`innerHTML`), so links, buttons, `<img>` and other web components (e.g. `<bs-badge>`) all render. **When set it renders every cell, not just the special ones** -- return the plain value for ordinary columns too. And **the returned string is not escaped or sanitized** (same trust model as React's `dangerouslySetInnerHTML`): escape any untrusted row data you put in it, plain columns included, or it will be interpreted as HTML. Without a `cellRenderer`, values are rendered as escaped text. The markup is static HTML -- attach behavior yourself, e.g. one `click` listener on the table that reads `event.composedPath()[0]` (events from inside the shadow root are retargeted to the table itself). Function props are JS-property-only, same as array props -- there is no attribute equivalent. Falls back to the raw cell value (as escaped text) when unset.
1177
1191
  */
1178
1192
  "cellRenderer"?: (row: BsDataTableRow, column: BsDataTableColumn) => string;
1179
1193
  /**
@@ -1374,7 +1388,7 @@ export namespace Components {
1374
1388
  */
1375
1389
  "size": BsIconButtonSize;
1376
1390
  /**
1377
- * Native `<button>` type.
1391
+ * Button type. `submit` submits the surrounding `<form>` (via `requestSubmit()`, so validation runs); `reset` resets it; `button` (default) does nothing on its own.
1378
1392
  * @default 'button'
1379
1393
  */
1380
1394
  "type": 'button' | 'submit' | 'reset';
@@ -1422,6 +1436,14 @@ export namespace Components {
1422
1436
  * @default false
1423
1437
  */
1424
1438
  "selected": boolean;
1439
+ /**
1440
+ * Set by a parent `bs-tabs` to implement roving tabindex (only one tab in the group is in the Tab order; arrow keys move between them). Left `undefined` for a standalone tab, which stays a normal tab stop.
1441
+ */
1442
+ "tabbable"?: boolean;
1443
+ /**
1444
+ * Identifies this tab within a parent `bs-tabs`: the group's `value` is the selected tab's `value`, and `bsChange` reports it. Optional -- a tab without one is identified by its zero-based position in the group (`"0"`, `"1"`...).
1445
+ */
1446
+ "value"?: string;
1425
1447
  }
1426
1448
  /**
1427
1449
  * A single-line text field with an optional label, description, and error state. Also covers a
@@ -1480,6 +1502,10 @@ export namespace Components {
1480
1502
  * Minimum value for `type="number"`'s stepper buttons.
1481
1503
  */
1482
1504
  "min"?: number;
1505
+ /**
1506
+ * The `name` the value is submitted under in a surrounding `<form>`'s `FormData`.
1507
+ */
1508
+ "name"?: string;
1483
1509
  /**
1484
1510
  * Whether the `type="dropdown"` trigger is open. Reflects to an attribute so consumers can style an open state via CSS. When `options` is non-empty, this also controls whether the `bs-menu` of `bs-menu-item`s is rendered below the field.
1485
1511
  * @default false
@@ -1658,6 +1684,13 @@ export namespace Components {
1658
1684
  * reuses the identical left-pointing "CaretLeft" asset unchanged, confirmed by directly inspecting
1659
1685
  * that state, so this deliberately does not add the same "flip on toggle" idiom the drawer item's
1660
1686
  * own disclosure chevron does (that one really is an unconfirmed addition; this one was checked).
1687
+ * **Small screens (768px and below)** switch to an off-canvas overlay instead of a permanent rail:
1688
+ * the drawer is hidden until `open` is set, then slides in over the page with a backdrop, fully
1689
+ * expanded (labels visible, nested items reachable). Escape or a click on the backdrop closes it and
1690
+ * emits `bsClose`; focus moves into it on open and back to whatever opened it on close. The
1691
+ * collapse toggle and the compact search trigger are not shown in this mode (nothing sits behind
1692
+ * them). The drawer has no trigger of its own -- put a button in your header and set `open` from it.
1693
+ * On wider screens `open` is ignored and nothing changes.
1661
1694
  */
1662
1695
  interface BsNavigationDrawer {
1663
1696
  /**
@@ -1680,6 +1713,11 @@ export namespace Components {
1680
1713
  * @default 'auto'
1681
1714
  */
1682
1715
  "logoBackground": 'auto' | 'light' | 'dark';
1716
+ /**
1717
+ * Small screens only (768px and below): whether the off-canvas overlay is shown. Mutable and reflected -- the drawer sets it back to `false` itself when the user dismisses it (Escape or the backdrop), and emits `bsClose`. Ignored on wider screens, where the drawer is always in the page flow. There is no built-in trigger: set this from your own button.
1718
+ * @default false
1719
+ */
1720
+ "open": boolean;
1683
1721
  /**
1684
1722
  * Whether to render the BrandSync logo at all. Defaults to `true`. This drawer is normally the one that owns the logo when paired with a `bs-navigation-header` (that header's own `with-navigation-drawer` alignment omits its logo for exactly this reason) -- but the reverse pairing works too: a header that keeps its own logo (`alignment="default"`) paired with this drawer set to `showLogo={false}`, so the brand mark only ever appears once.
1685
1723
  * @default true
@@ -1847,6 +1885,11 @@ export namespace Components {
1847
1885
  * weight of a ring.
1848
1886
  */
1849
1887
  interface BsProgress {
1888
+ /**
1889
+ * 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`.
1890
+ * @default null
1891
+ */
1892
+ "ariaLabel": string | null;
1850
1893
  /**
1851
1894
  * Shows the `${value}%` label below the ring. Only takes effect for `type="determinate"` -- `indeterminate` never shows a label regardless of this prop, since there's no percentage to show. Defaults to `true`.
1852
1895
  * @default true
@@ -1936,7 +1979,7 @@ export namespace Components {
1936
1979
  */
1937
1980
  "disabled": boolean;
1938
1981
  /**
1939
- * The native radio input's `name` attribute. Passed straight through to the native input inside. NOTE: because each `bs-radio` renders its own shadow root, native `<input type="radio">` mutual-exclusion grouping (which the HTML spec scopes to a single DOM tree) does NOT extend across separate `bs-radio` instances sharing the same `name` -- checking one will not natively uncheck another. Within a single instance this still behaves like a normal radio input. See bs-radio.mdx's Accessibility section for this known gap; consumers building a group currently need to manage mutual exclusivity themselves (e.g. via `bsChange`) until a `bs-radio-group` wrapper exists.
1982
+ * The native radio input's `name` attribute. Passed straight through to the native input inside. Also the group key: `bs-radio` elements sharing a `name` within the same root (document or shadow root) behave as one radio group -- checking one unchecks the others, arrow keys move between them, and only one is in the tab order. Native grouping can't cross each radio's own shadow root, so this component implements it itself.
1940
1983
  */
1941
1984
  "name": string;
1942
1985
  /**
@@ -1985,6 +2028,10 @@ export namespace Components {
1985
2028
  * @default 0
1986
2029
  */
1987
2030
  "min": number;
2031
+ /**
2032
+ * The `name` the value is submitted under in a surrounding `<form>`'s `FormData`. `type="range"` submits two entries under this name: the start value, then the end value.
2033
+ */
2034
+ "name"?: string;
1988
2035
  /**
1989
2036
  * Number of equal divisions marked by tick lines along the track, for `type="segmented"` only. The first tick (at the very start of the track) is rendered with `opacity: 0` to keep the tick spacing math consistent while not visually doubling up with the track's own start edge -- this matches the design spec, not a bug.
1990
2037
  * @default 10
@@ -2221,11 +2268,20 @@ export namespace Components {
2221
2268
  * @default false
2222
2269
  */
2223
2270
  "disabled": boolean;
2271
+ /**
2272
+ * The `name` the value is submitted under in a surrounding `<form>`'s `FormData`.
2273
+ */
2274
+ "name"?: string;
2224
2275
  /**
2225
2276
  * Sizing scale. Controls the track's width/height and the knob's diameter.
2226
2277
  * @default 'lg'
2227
2278
  */
2228
2279
  "size": BsSwitchSize;
2280
+ /**
2281
+ * The value submitted when on (native checkbox default: `"on"`).
2282
+ * @default 'on'
2283
+ */
2284
+ "value": string;
2229
2285
  }
2230
2286
  /**
2231
2287
  * A single tab button -- an optional icon plus a text label, rendered as a real `<button>` so it
@@ -2266,6 +2322,14 @@ export namespace Components {
2266
2322
  * @default false
2267
2323
  */
2268
2324
  "selected": boolean;
2325
+ /**
2326
+ * Set by a parent `bs-tabs` to implement roving tabindex (only one tab in the group is in the Tab order; arrow keys move between them). Left `undefined` for a standalone tab, which stays a normal tab stop.
2327
+ */
2328
+ "tabbable"?: boolean;
2329
+ /**
2330
+ * Identifies this tab within a parent `bs-tabs`: the group's `value` is the selected tab's `value`, and `bsChange` reports it. Optional -- a tab without one is identified by its zero-based position in the group (`"0"`, `"1"`...).
2331
+ */
2332
+ "value"?: string;
2269
2333
  }
2270
2334
  /**
2271
2335
  * A tab-group wrapper: owns `role="tablist"` and coordinates selection across its slotted
@@ -2295,6 +2359,10 @@ export namespace Components {
2295
2359
  * @default 'bs-tab'
2296
2360
  */
2297
2361
  "type": BsTabsType;
2362
+ /**
2363
+ * The selected tab's `value`. Mutable and reflected: it follows the user's selection, and setting it from outside (attribute or property) selects the matching tab -- without emitting `bsChange`, which only fires for user-driven changes. A tab's value is its own `value` prop, or, for a tab without one, its zero-based position in the group as a string (`"0"`, `"1"`...). If unset, it is read from whichever tab is already `selected` once the group loads.
2364
+ */
2365
+ "value"?: string;
2298
2366
  }
2299
2367
  /**
2300
2368
  * A transient status message for confirming the result of an action (e.g. "Files uploaded
@@ -2354,6 +2422,14 @@ export interface BsAttachmentCustomEvent<T> extends CustomEvent<T> {
2354
2422
  detail: T;
2355
2423
  target: HTMLBsAttachmentElement;
2356
2424
  }
2425
+ export interface BsBreadcrumbCustomEvent<T> extends CustomEvent<T> {
2426
+ detail: T;
2427
+ target: HTMLBsBreadcrumbElement;
2428
+ }
2429
+ export interface BsBreadcrumbOverflowCustomEvent<T> extends CustomEvent<T> {
2430
+ detail: T;
2431
+ target: HTMLBsBreadcrumbOverflowElement;
2432
+ }
2357
2433
  export interface BsCarouselCustomEvent<T> extends CustomEvent<T> {
2358
2434
  detail: T;
2359
2435
  target: HTMLBsCarouselElement;
@@ -2462,6 +2538,10 @@ export interface BsTabCustomEvent<T> extends CustomEvent<T> {
2462
2538
  detail: T;
2463
2539
  target: HTMLBsTabElement;
2464
2540
  }
2541
+ export interface BsTabsCustomEvent<T> extends CustomEvent<T> {
2542
+ detail: T;
2543
+ target: HTMLBsTabsElement;
2544
+ }
2465
2545
  export interface BsToastCustomEvent<T> extends CustomEvent<T> {
2466
2546
  detail: T;
2467
2547
  target: HTMLBsToastElement;
@@ -2681,6 +2761,9 @@ declare global {
2681
2761
  prototype: HTMLBsBadgeElement;
2682
2762
  new (): HTMLBsBadgeElement;
2683
2763
  };
2764
+ interface HTMLBsBreadcrumbElementEventMap {
2765
+ "bsNavigate": { href: string };
2766
+ }
2684
2767
  /**
2685
2768
  * A single crumb within a `<bs-breadcrumbs>` trail: a leading separator icon plus either a link,
2686
2769
  * plain text, or the current-page label, depending on `current`/`href`.
@@ -2698,11 +2781,22 @@ declare global {
2698
2781
  * first-child-aware separator hiding depend on that parent structure.
2699
2782
  */
2700
2783
  interface HTMLBsBreadcrumbElement extends Components.BsBreadcrumb, HTMLStencilElement {
2784
+ addEventListener<K extends keyof HTMLBsBreadcrumbElementEventMap>(type: K, listener: (this: HTMLBsBreadcrumbElement, ev: BsBreadcrumbCustomEvent<HTMLBsBreadcrumbElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2785
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2786
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2787
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
2788
+ removeEventListener<K extends keyof HTMLBsBreadcrumbElementEventMap>(type: K, listener: (this: HTMLBsBreadcrumbElement, ev: BsBreadcrumbCustomEvent<HTMLBsBreadcrumbElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
2789
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2790
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2791
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
2701
2792
  }
2702
2793
  var HTMLBsBreadcrumbElement: {
2703
2794
  prototype: HTMLBsBreadcrumbElement;
2704
2795
  new (): HTMLBsBreadcrumbElement;
2705
2796
  };
2797
+ interface HTMLBsBreadcrumbOverflowElementEventMap {
2798
+ "bsNavigate": { href: string };
2799
+ }
2706
2800
  /**
2707
2801
  * A manually-placed collapsed-items disclosure for a `<bs-breadcrumbs>` trail: a leading separator
2708
2802
  * plus an icon-only ellipsis button that reveals a `bs-menu` popup listing every hidden crumb.
@@ -2729,6 +2823,14 @@ declare global {
2729
2823
  * - As an automatic collapsing mechanism -- there is none; the consumer decides what's hidden.
2730
2824
  */
2731
2825
  interface HTMLBsBreadcrumbOverflowElement extends Components.BsBreadcrumbOverflow, HTMLStencilElement {
2826
+ addEventListener<K extends keyof HTMLBsBreadcrumbOverflowElementEventMap>(type: K, listener: (this: HTMLBsBreadcrumbOverflowElement, ev: BsBreadcrumbOverflowCustomEvent<HTMLBsBreadcrumbOverflowElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2827
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2828
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2829
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
2830
+ removeEventListener<K extends keyof HTMLBsBreadcrumbOverflowElementEventMap>(type: K, listener: (this: HTMLBsBreadcrumbOverflowElement, ev: BsBreadcrumbOverflowCustomEvent<HTMLBsBreadcrumbOverflowElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
2831
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2832
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2833
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
2732
2834
  }
2733
2835
  var HTMLBsBreadcrumbOverflowElement: {
2734
2836
  prototype: HTMLBsBreadcrumbOverflowElement;
@@ -3696,6 +3798,7 @@ declare global {
3696
3798
  interface HTMLBsNavigationDrawerElementEventMap {
3697
3799
  "bsCollapse": boolean;
3698
3800
  "bsSearchClick": void;
3801
+ "bsClose": void;
3699
3802
  }
3700
3803
  /**
3701
3804
  * A left-side persistent navigation sidebar: the BrandSync logo, a "Main Menu" title with a
@@ -3730,6 +3833,13 @@ declare global {
3730
3833
  * reuses the identical left-pointing "CaretLeft" asset unchanged, confirmed by directly inspecting
3731
3834
  * that state, so this deliberately does not add the same "flip on toggle" idiom the drawer item's
3732
3835
  * own disclosure chevron does (that one really is an unconfirmed addition; this one was checked).
3836
+ * **Small screens (768px and below)** switch to an off-canvas overlay instead of a permanent rail:
3837
+ * the drawer is hidden until `open` is set, then slides in over the page with a backdrop, fully
3838
+ * expanded (labels visible, nested items reachable). Escape or a click on the backdrop closes it and
3839
+ * emits `bsClose`; focus moves into it on open and back to whatever opened it on close. The
3840
+ * collapse toggle and the compact search trigger are not shown in this mode (nothing sits behind
3841
+ * them). The drawer has no trigger of its own -- put a button in your header and set `open` from it.
3842
+ * On wider screens `open` is ignored and nothing changes.
3733
3843
  */
3734
3844
  interface HTMLBsNavigationDrawerElement extends Components.BsNavigationDrawer, HTMLStencilElement {
3735
3845
  addEventListener<K extends keyof HTMLBsNavigationDrawerElementEventMap>(type: K, listener: (this: HTMLBsNavigationDrawerElement, ev: BsNavigationDrawerCustomEvent<HTMLBsNavigationDrawerElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
@@ -4138,6 +4248,9 @@ declare global {
4138
4248
  prototype: HTMLBsTabElement;
4139
4249
  new (): HTMLBsTabElement;
4140
4250
  };
4251
+ interface HTMLBsTabsElementEventMap {
4252
+ "bsChange": { value: string };
4253
+ }
4141
4254
  /**
4142
4255
  * A tab-group wrapper: owns `role="tablist"` and coordinates selection across its slotted
4143
4256
  * `<bs-tab>` or `<bs-inline-tab>` children, so consumers no longer have to hand-roll this.
@@ -4156,6 +4269,14 @@ declare global {
4156
4269
  * directly.
4157
4270
  */
4158
4271
  interface HTMLBsTabsElement extends Components.BsTabs, HTMLStencilElement {
4272
+ addEventListener<K extends keyof HTMLBsTabsElementEventMap>(type: K, listener: (this: HTMLBsTabsElement, ev: BsTabsCustomEvent<HTMLBsTabsElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
4273
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
4274
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
4275
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
4276
+ removeEventListener<K extends keyof HTMLBsTabsElementEventMap>(type: K, listener: (this: HTMLBsTabsElement, ev: BsTabsCustomEvent<HTMLBsTabsElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
4277
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
4278
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
4279
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
4159
4280
  }
4160
4281
  var HTMLBsTabsElement: {
4161
4282
  prototype: HTMLBsTabsElement;
@@ -4584,6 +4705,10 @@ declare namespace LocalJSX {
4584
4705
  * Destination for a non-current crumb. Ignored when `current` is true -- the current page is never a link, even if `href` is set (see the class JSDoc).
4585
4706
  */
4586
4707
  "href"?: string;
4708
+ /**
4709
+ * Fires when the crumb's link is clicked, before the browser navigates. **Cancelable**: call `event.preventDefault()` to stop the native navigation and route it yourself (an SPA router). Detail is `{ href }`. Only a plain primary-button click emits it -- ctrl/cmd/shift/alt-clicks and middle-clicks (open in a new tab/window) are left to the browser. Bubbles and is composed, so one listener on the surrounding `<bs-breadcrumbs>` covers every crumb.
4710
+ */
4711
+ "onBsNavigate"?: (event: BsBreadcrumbCustomEvent<{ href: string }>) => void;
4587
4712
  /**
4588
4713
  * Size variant. Normally set automatically by a parent `<bs-breadcrumbs size="...">` -- the container propagates its own `size` as a JS property to every slotted `bs-breadcrumb`/ `bs-breadcrumb-overflow` child (see `bs-breadcrumbs.tsx`'s `propagateSize`), since CSS custom properties can't carry an enum that switches rules on their own. Can also be set directly on a standalone crumb. `sm` scales down font-size/line-height only -- the separator icon's pixel size is unchanged, since Figma didn't specify a `sm` icon size and guessing one risked drifting off-brand. Reflected so consumers/CSS can target `bs-breadcrumb[size="sm"]`.
4589
4714
  * @default 'md'
@@ -4621,6 +4746,10 @@ declare namespace LocalJSX {
4621
4746
  * @default []
4622
4747
  */
4623
4748
  "items"?: BsBreadcrumbOverflowItem[];
4749
+ /**
4750
+ * Fires when one of the popup's links is clicked, before the browser navigates. **Cancelable** -- see `bs-breadcrumb`'s `bsNavigate`, which this mirrors (same detail, same modified-click rule). Detail is `{ href }`.
4751
+ */
4752
+ "onBsNavigate"?: (event: BsBreadcrumbOverflowCustomEvent<{ href: string }>) => void;
4624
4753
  /**
4625
4754
  * Accessible name (`aria-label`) for the icon-only ellipsis trigger button.
4626
4755
  * @default 'Show hidden breadcrumbs'
@@ -4697,13 +4826,21 @@ declare namespace LocalJSX {
4697
4826
  * @default false
4698
4827
  */
4699
4828
  "disabled"?: boolean;
4829
+ /**
4830
+ * The `id` of a `<form>` element to associate this element with.
4831
+ */
4832
+ "form"?: string;
4833
+ /**
4834
+ * The name of the element, used when submitting an HTML form.
4835
+ */
4836
+ "name"?: string;
4700
4837
  /**
4701
4838
  * Sizing scale.
4702
4839
  * @default 'md'
4703
4840
  */
4704
4841
  "size"?: BsButtonSize;
4705
4842
  /**
4706
- * Native `<button>` type.
4843
+ * Button type. `submit` submits the surrounding `<form>` (via `requestSubmit()`, so validation runs); `reset` resets it; `button` (default) does nothing on its own.
4707
4844
  * @default 'button'
4708
4845
  */
4709
4846
  "type"?: 'button' | 'submit' | 'reset';
@@ -5154,20 +5291,38 @@ declare namespace LocalJSX {
5154
5291
  * @default false
5155
5292
  */
5156
5293
  "error"?: boolean;
5294
+ /**
5295
+ * The `id` of a `<form>` element to associate this element with.
5296
+ */
5297
+ "form"?: string;
5157
5298
  /**
5158
5299
  * Whether the checkbox is in the indeterminate ("partially selected") state -- shows a minus icon instead of a check, and takes visual precedence over `checked`. Unlike `checked`, native checkboxes have no `indeterminate` HTML attribute; it can only be set as a JS property on the element. This `@Prop` still works as an attribute for the *host* (`<bs-checkbox>`) since that's this component's own reflected state, not the native control's -- the native `<input>` inside has its `.indeterminate` property set imperatively in `componentDidLoad`/`componentDidUpdate`.
5159
5300
  * @default false
5160
5301
  */
5161
5302
  "indeterminate"?: boolean;
5303
+ /**
5304
+ * The `name` the value is submitted under in a surrounding `<form>`'s `FormData`.
5305
+ */
5306
+ "name"?: string;
5162
5307
  /**
5163
5308
  * Emitted when the checked state changes via user interaction, with the new `checked` value.
5164
5309
  */
5165
5310
  "onBsChange"?: (event: BsCheckboxCustomEvent<boolean>) => void;
5311
+ /**
5312
+ * Marks the checkbox as required: the surrounding form fails validation while unchecked.
5313
+ * @default false
5314
+ */
5315
+ "required"?: boolean;
5166
5316
  /**
5167
5317
  * Sizing scale. Controls the box's width/height and border width; corner radius is constant across all sizes.
5168
5318
  * @default 'lg'
5169
5319
  */
5170
5320
  "size"?: BsCheckboxSize;
5321
+ /**
5322
+ * The value submitted when checked (native checkbox default: `"on"`).
5323
+ * @default 'on'
5324
+ */
5325
+ "value"?: string;
5171
5326
  }
5172
5327
  /**
5173
5328
  * A shape-matched loading placeholder for `bs-checkbox`, shown while the real label text isn't
@@ -5506,7 +5661,7 @@ declare namespace LocalJSX {
5506
5661
  */
5507
5662
  interface BsDataTable {
5508
5663
  /**
5509
- * Optional custom cell renderer, e.g. for an actions column. Function props are JS-property-only, same as array props -- there is no attribute equivalent. Falls back to the raw cell value.
5664
+ * Optional custom cell renderer, for rich cells such as a status badge, a link or an actions column. It returns an **HTML string** that is inserted into the cell as real markup (`innerHTML`), so links, buttons, `<img>` and other web components (e.g. `<bs-badge>`) all render. **When set it renders every cell, not just the special ones** -- return the plain value for ordinary columns too. And **the returned string is not escaped or sanitized** (same trust model as React's `dangerouslySetInnerHTML`): escape any untrusted row data you put in it, plain columns included, or it will be interpreted as HTML. Without a `cellRenderer`, values are rendered as escaped text. The markup is static HTML -- attach behavior yourself, e.g. one `click` listener on the table that reads `event.composedPath()[0]` (events from inside the shadow root are retargeted to the table itself). Function props are JS-property-only, same as array props -- there is no attribute equivalent. Falls back to the raw cell value (as escaped text) when unset.
5510
5665
  */
5511
5666
  "cellRenderer"?: (row: BsDataTableRow, column: BsDataTableColumn) => string;
5512
5667
  /**
@@ -5716,13 +5871,21 @@ declare namespace LocalJSX {
5716
5871
  * @default false
5717
5872
  */
5718
5873
  "disabled"?: boolean;
5874
+ /**
5875
+ * The `id` of a `<form>` element to associate this element with.
5876
+ */
5877
+ "form"?: string;
5878
+ /**
5879
+ * The name of the element, used when submitting an HTML form.
5880
+ */
5881
+ "name"?: string;
5719
5882
  /**
5720
5883
  * Sizing scale. `xs` (16px, an 8px icon) is a distinct, much smaller tier meant for compact chip/tag "remove" controls, not just a smaller toolbar button -- verified against a separate Figma redline (EG BrandSync UI Kit v1.5, node 20731:18427) from the one `sm`/`md`/`lg` were built against.
5721
5884
  * @default 'md'
5722
5885
  */
5723
5886
  "size"?: BsIconButtonSize;
5724
5887
  /**
5725
- * Native `<button>` type.
5888
+ * Button type. `submit` submits the surrounding `<form>` (via `requestSubmit()`, so validation runs); `reset` resets it; `button` (default) does nothing on its own.
5726
5889
  * @default 'button'
5727
5890
  */
5728
5891
  "type"?: 'button' | 'submit' | 'reset';
@@ -5774,6 +5937,14 @@ declare namespace LocalJSX {
5774
5937
  * @default false
5775
5938
  */
5776
5939
  "selected"?: boolean;
5940
+ /**
5941
+ * Set by a parent `bs-tabs` to implement roving tabindex (only one tab in the group is in the Tab order; arrow keys move between them). Left `undefined` for a standalone tab, which stays a normal tab stop.
5942
+ */
5943
+ "tabbable"?: boolean;
5944
+ /**
5945
+ * Identifies this tab within a parent `bs-tabs`: the group's `value` is the selected tab's `value`, and `bsChange` reports it. Optional -- a tab without one is identified by its zero-based position in the group (`"0"`, `"1"`...).
5946
+ */
5947
+ "value"?: string;
5777
5948
  }
5778
5949
  /**
5779
5950
  * A single-line text field with an optional label, description, and error state. Also covers a
@@ -5813,6 +5984,10 @@ declare namespace LocalJSX {
5813
5984
  */
5814
5985
  "disabled"?: boolean;
5815
5986
  "error"?: string;
5987
+ /**
5988
+ * The `id` of a `<form>` element to associate this element with.
5989
+ */
5990
+ "form"?: string;
5816
5991
  /**
5817
5992
  * Current selected title for `type="initials"`. Named `initialsTitle` rather than `title` -- `title` is a reserved standard HTML attribute (tooltip text) inherited by every element, and Stencil warns against shadowing it with a component `@Prop`.
5818
5993
  * @default ''
@@ -5832,6 +6007,10 @@ declare namespace LocalJSX {
5832
6007
  * Minimum value for `type="number"`'s stepper buttons.
5833
6008
  */
5834
6009
  "min"?: number;
6010
+ /**
6011
+ * The `name` the value is submitted under in a surrounding `<form>`'s `FormData`.
6012
+ */
6013
+ "name"?: string;
5835
6014
  "onBsChange"?: (event: BsInputCustomEvent<string>) => void;
5836
6015
  /**
5837
6016
  * Emitted when a chip is committed (Enter pressed in the draft input) for `type="chip"`.
@@ -6036,6 +6215,13 @@ declare namespace LocalJSX {
6036
6215
  * reuses the identical left-pointing "CaretLeft" asset unchanged, confirmed by directly inspecting
6037
6216
  * that state, so this deliberately does not add the same "flip on toggle" idiom the drawer item's
6038
6217
  * own disclosure chevron does (that one really is an unconfirmed addition; this one was checked).
6218
+ * **Small screens (768px and below)** switch to an off-canvas overlay instead of a permanent rail:
6219
+ * the drawer is hidden until `open` is set, then slides in over the page with a backdrop, fully
6220
+ * expanded (labels visible, nested items reachable). Escape or a click on the backdrop closes it and
6221
+ * emits `bsClose`; focus moves into it on open and back to whatever opened it on close. The
6222
+ * collapse toggle and the compact search trigger are not shown in this mode (nothing sits behind
6223
+ * them). The drawer has no trigger of its own -- put a button in your header and set `open` from it.
6224
+ * On wider screens `open` is ignored and nothing changes.
6039
6225
  */
6040
6226
  interface BsNavigationDrawer {
6041
6227
  /**
@@ -6058,6 +6244,10 @@ declare namespace LocalJSX {
6058
6244
  * @default 'auto'
6059
6245
  */
6060
6246
  "logoBackground"?: 'auto' | 'light' | 'dark';
6247
+ /**
6248
+ * Fires when the user dismisses the overlay (Escape, or a click on the backdrop), after `open` has been set back to `false`. Does not fire when you set `open = false` yourself.
6249
+ */
6250
+ "onBsClose"?: (event: BsNavigationDrawerCustomEvent<void>) => void;
6061
6251
  /**
6062
6252
  * Fires with the new `collapsed` value when the collapse toggle button is clicked.
6063
6253
  */
@@ -6066,6 +6256,11 @@ declare namespace LocalJSX {
6066
6256
  * Fires when the compact search-trigger button (shown instead of the `search` slot while `collapsed`) is clicked -- e.g. to open a full search overlay. This component has no visibility into what the `search` slot actually contains, so it can't drive a real search itself once shrunk to icon size.
6067
6257
  */
6068
6258
  "onBsSearchClick"?: (event: BsNavigationDrawerCustomEvent<void>) => void;
6259
+ /**
6260
+ * Small screens only (768px and below): whether the off-canvas overlay is shown. Mutable and reflected -- the drawer sets it back to `false` itself when the user dismisses it (Escape or the backdrop), and emits `bsClose`. Ignored on wider screens, where the drawer is always in the page flow. There is no built-in trigger: set this from your own button.
6261
+ * @default false
6262
+ */
6263
+ "open"?: boolean;
6069
6264
  /**
6070
6265
  * Whether to render the BrandSync logo at all. Defaults to `true`. This drawer is normally the one that owns the logo when paired with a `bs-navigation-header` (that header's own `with-navigation-drawer` alignment omits its logo for exactly this reason) -- but the reverse pairing works too: a header that keeps its own logo (`alignment="default"`) paired with this drawer set to `showLogo={false}`, so the brand mark only ever appears once.
6071
6266
  * @default true
@@ -6245,6 +6440,11 @@ declare namespace LocalJSX {
6245
6440
  * weight of a ring.
6246
6441
  */
6247
6442
  interface BsProgress {
6443
+ /**
6444
+ * 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`.
6445
+ * @default null
6446
+ */
6447
+ "ariaLabel"?: string | null;
6248
6448
  /**
6249
6449
  * Shows the `${value}%` label below the ring. Only takes effect for `type="determinate"` -- `indeterminate` never shows a label regardless of this prop, since there's no percentage to show. Defaults to `true`.
6250
6450
  * @default true
@@ -6334,11 +6534,15 @@ declare namespace LocalJSX {
6334
6534
  */
6335
6535
  "disabled"?: boolean;
6336
6536
  /**
6337
- * The native radio input's `name` attribute. Passed straight through to the native input inside. NOTE: because each `bs-radio` renders its own shadow root, native `<input type="radio">` mutual-exclusion grouping (which the HTML spec scopes to a single DOM tree) does NOT extend across separate `bs-radio` instances sharing the same `name` -- checking one will not natively uncheck another. Within a single instance this still behaves like a normal radio input. See bs-radio.mdx's Accessibility section for this known gap; consumers building a group currently need to manage mutual exclusivity themselves (e.g. via `bsChange`) until a `bs-radio-group` wrapper exists.
6537
+ * The `id` of a `<form>` element to associate this element with.
6538
+ */
6539
+ "form"?: string;
6540
+ /**
6541
+ * The native radio input's `name` attribute. Passed straight through to the native input inside. Also the group key: `bs-radio` elements sharing a `name` within the same root (document or shadow root) behave as one radio group -- checking one unchecks the others, arrow keys move between them, and only one is in the tab order. Native grouping can't cross each radio's own shadow root, so this component implements it itself.
6338
6542
  */
6339
6543
  "name"?: string;
6340
6544
  /**
6341
- * Emitted with this radio's own `value` when it becomes checked via user interaction. Since native same-`name` grouping doesn't cross shadow-root boundaries (see the `name` prop's doc), a consumer wiring up a group of `bs-radio`s must itself set `checked = false` on the others in response to this event -- there's no automatic un-checking to rely on here.
6545
+ * Emitted with this radio's own `value` when it becomes checked via user interaction. Since native same-`name` grouping doesn't cross shadow-root boundaries (see the `name` prop's doc), a consumer wiring up a group of `bs-radio`s does not need to un-check the others itself.
6342
6546
  */
6343
6547
  "onBsChange"?: (event: BsRadioCustomEvent<string>) => void;
6344
6548
  /**
@@ -6372,6 +6576,10 @@ declare namespace LocalJSX {
6372
6576
  * @default false
6373
6577
  */
6374
6578
  "disabled"?: boolean;
6579
+ /**
6580
+ * The `id` of a `<form>` element to associate this element with.
6581
+ */
6582
+ "form"?: string;
6375
6583
  /**
6376
6584
  * Label text shown above the track when `showLabel` is set.
6377
6585
  * @default 'Label'
@@ -6387,6 +6595,10 @@ declare namespace LocalJSX {
6387
6595
  * @default 0
6388
6596
  */
6389
6597
  "min"?: number;
6598
+ /**
6599
+ * The `name` the value is submitted under in a surrounding `<form>`'s `FormData`. `type="range"` submits two entries under this name: the start value, then the end value.
6600
+ */
6601
+ "name"?: string;
6390
6602
  /**
6391
6603
  * Emitted when `value` changes via user interaction (dragging the thumb, or committing the value field), with the new value. Only fires for `type="default"`/`type="segmented"`.
6392
6604
  */
@@ -6643,6 +6855,14 @@ declare namespace LocalJSX {
6643
6855
  * @default false
6644
6856
  */
6645
6857
  "disabled"?: boolean;
6858
+ /**
6859
+ * The `id` of a `<form>` element to associate this element with.
6860
+ */
6861
+ "form"?: string;
6862
+ /**
6863
+ * The `name` the value is submitted under in a surrounding `<form>`'s `FormData`.
6864
+ */
6865
+ "name"?: string;
6646
6866
  /**
6647
6867
  * Emitted when the checked state changes via user interaction, with the new `checked` value.
6648
6868
  */
@@ -6652,6 +6872,11 @@ declare namespace LocalJSX {
6652
6872
  * @default 'lg'
6653
6873
  */
6654
6874
  "size"?: BsSwitchSize;
6875
+ /**
6876
+ * The value submitted when on (native checkbox default: `"on"`).
6877
+ * @default 'on'
6878
+ */
6879
+ "value"?: string;
6655
6880
  }
6656
6881
  /**
6657
6882
  * A single tab button -- an optional icon plus a text label, rendered as a real `<button>` so it
@@ -6696,6 +6921,14 @@ declare namespace LocalJSX {
6696
6921
  * @default false
6697
6922
  */
6698
6923
  "selected"?: boolean;
6924
+ /**
6925
+ * Set by a parent `bs-tabs` to implement roving tabindex (only one tab in the group is in the Tab order; arrow keys move between them). Left `undefined` for a standalone tab, which stays a normal tab stop.
6926
+ */
6927
+ "tabbable"?: boolean;
6928
+ /**
6929
+ * Identifies this tab within a parent `bs-tabs`: the group's `value` is the selected tab's `value`, and `bsChange` reports it. Optional -- a tab without one is identified by its zero-based position in the group (`"0"`, `"1"`...).
6930
+ */
6931
+ "value"?: string;
6699
6932
  }
6700
6933
  /**
6701
6934
  * A tab-group wrapper: owns `role="tablist"` and coordinates selection across its slotted
@@ -6715,6 +6948,10 @@ declare namespace LocalJSX {
6715
6948
  * directly.
6716
6949
  */
6717
6950
  interface BsTabs {
6951
+ /**
6952
+ * Fires when the user selects a different tab (click, or arrow/Home/End), with the new `value`. Does not fire when `value` is set programmatically. `bsSelect` on the individual tab still fires as before.
6953
+ */
6954
+ "onBsChange"?: (event: BsTabsCustomEvent<{ value: string }>) => void;
6718
6955
  /**
6719
6956
  * Layout direction of the tab bar itself. Sets `aria-orientation` on the internal wrapper and switches `flex-direction`.
6720
6957
  * @default 'horizontal'
@@ -6725,6 +6962,10 @@ declare namespace LocalJSX {
6725
6962
  * @default 'bs-tab'
6726
6963
  */
6727
6964
  "type"?: BsTabsType;
6965
+ /**
6966
+ * The selected tab's `value`. Mutable and reflected: it follows the user's selection, and setting it from outside (attribute or property) selects the matching tab -- without emitting `bsChange`, which only fires for user-driven changes. A tab's value is its own `value` prop, or, for a tab without one, its zero-based position in the group as a string (`"0"`, `"1"`...). If unset, it is read from whichever tab is already `selected` once the group loads.
6967
+ */
6968
+ "value"?: string;
6728
6969
  }
6729
6970
  /**
6730
6971
  * A transient status message for confirming the result of an action (e.g. "Files uploaded
@@ -6879,6 +7120,9 @@ declare namespace LocalJSX {
6879
7120
  "disabled": boolean;
6880
7121
  }
6881
7122
  interface BsCheckboxAttributes {
7123
+ "name": string;
7124
+ "value": string;
7125
+ "required": boolean;
6882
7126
  "size": BsCheckboxSize;
6883
7127
  "checked": boolean;
6884
7128
  "indeterminate": boolean;
@@ -6964,8 +7208,11 @@ declare namespace LocalJSX {
6964
7208
  "selected": boolean;
6965
7209
  "disabled": boolean;
6966
7210
  "ariaLabel": string | null;
7211
+ "value": string;
7212
+ "tabbable": boolean;
6967
7213
  }
6968
7214
  interface BsInputAttributes {
7215
+ "name": string;
6969
7216
  "value": string;
6970
7217
  "type": | 'text'
6971
7218
  | 'email'
@@ -7010,6 +7257,7 @@ declare namespace LocalJSX {
7010
7257
  "collapsed": boolean;
7011
7258
  "logoBackground": 'auto' | 'light' | 'dark';
7012
7259
  "showLogo": boolean;
7260
+ "open": boolean;
7013
7261
  }
7014
7262
  interface BsNavigationDrawerItemAttributes {
7015
7263
  "selected": boolean;
@@ -7039,6 +7287,7 @@ declare namespace LocalJSX {
7039
7287
  "strokeWidth": BsProgressStrokeWidth;
7040
7288
  "value": number;
7041
7289
  "showLabel": boolean;
7290
+ "ariaLabel": string | null;
7042
7291
  }
7043
7292
  interface BsProgressLinearAttributes {
7044
7293
  "type": BsProgressLinearType;
@@ -7055,6 +7304,7 @@ declare namespace LocalJSX {
7055
7304
  }
7056
7305
  interface BsSliderAttributes {
7057
7306
  "type": BsSliderType;
7307
+ "name": string;
7058
7308
  "showLabel": boolean;
7059
7309
  "label": string;
7060
7310
  "min": number;
@@ -7094,6 +7344,8 @@ declare namespace LocalJSX {
7094
7344
  "showDescription": boolean;
7095
7345
  }
7096
7346
  interface BsSwitchAttributes {
7347
+ "name": string;
7348
+ "value": string;
7097
7349
  "size": BsSwitchSize;
7098
7350
  "checked": boolean;
7099
7351
  "disabled": boolean;
@@ -7104,10 +7356,13 @@ declare namespace LocalJSX {
7104
7356
  "disabled": boolean;
7105
7357
  "iconPosition": BsTabIconPosition;
7106
7358
  "ariaLabel": string | null;
7359
+ "value": string;
7360
+ "tabbable": boolean;
7107
7361
  }
7108
7362
  interface BsTabsAttributes {
7109
7363
  "type": BsTabsType;
7110
7364
  "orientation": BsTabsOrientation;
7365
+ "value": string;
7111
7366
  }
7112
7367
  interface BsToastAttributes {
7113
7368
  "state": BsToastState;
@@ -8002,6 +8257,13 @@ declare module "@stencil/core" {
8002
8257
  * reuses the identical left-pointing "CaretLeft" asset unchanged, confirmed by directly inspecting
8003
8258
  * that state, so this deliberately does not add the same "flip on toggle" idiom the drawer item's
8004
8259
  * own disclosure chevron does (that one really is an unconfirmed addition; this one was checked).
8260
+ * **Small screens (768px and below)** switch to an off-canvas overlay instead of a permanent rail:
8261
+ * the drawer is hidden until `open` is set, then slides in over the page with a backdrop, fully
8262
+ * expanded (labels visible, nested items reachable). Escape or a click on the backdrop closes it and
8263
+ * emits `bsClose`; focus moves into it on open and back to whatever opened it on close. The
8264
+ * collapse toggle and the compact search trigger are not shown in this mode (nothing sits behind
8265
+ * them). The drawer has no trigger of its own -- put a button in your header and set `open` from it.
8266
+ * On wider screens `open` is ignored and nothing changes.
8005
8267
  */
8006
8268
  "bs-navigation-drawer": LocalJSX.IntrinsicElements["bs-navigation-drawer"] & JSXBase.HTMLAttributes<HTMLBsNavigationDrawerElement>;
8007
8269
  /**