@brandsync/wc 1.13.0 → 1.15.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 (361) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/REFERENCE.md +108 -0
  3. package/custom-elements.json +910 -13
  4. package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
  5. package/dist/brandsync-wc/{p-9d660c03.entry.js → p-0f97fe35.entry.js} +1 -1
  6. package/dist/brandsync-wc/{p-ab07c9b5.entry.js → p-1b4c0971.entry.js} +1 -1
  7. package/dist/brandsync-wc/{p-694fe468.entry.js → p-1bf8fbbb.entry.js} +1 -1
  8. package/dist/brandsync-wc/{p-b6ac1b50.entry.js → p-1ca8b01e.entry.js} +1 -1
  9. package/dist/brandsync-wc/{p-47cd19aa.entry.js → p-23379d7c.entry.js} +1 -1
  10. package/dist/brandsync-wc/{p-95f034fc.entry.js → p-2e285364.entry.js} +1 -1
  11. package/dist/brandsync-wc/{p-3f6682f8.entry.js → p-3488c4fc.entry.js} +1 -1
  12. package/dist/brandsync-wc/{p-e1b7bea7.entry.js → p-34b0c048.entry.js} +1 -1
  13. package/dist/brandsync-wc/p-36fe783a.entry.js +1 -0
  14. package/dist/brandsync-wc/{p-8184d7de.entry.js → p-38ac9aad.entry.js} +1 -1
  15. package/dist/brandsync-wc/{p-4ea9b6a1.entry.js → p-3c21d0bf.entry.js} +1 -1
  16. package/dist/brandsync-wc/{p-6e923ebc.entry.js → p-401b3d3d.entry.js} +1 -1
  17. package/dist/brandsync-wc/p-45986ad4.entry.js +1 -0
  18. package/dist/brandsync-wc/{p-ed5c2d97.entry.js → p-4ca40386.entry.js} +1 -1
  19. package/dist/brandsync-wc/{p-9125632c.entry.js → p-4ed00786.entry.js} +1 -1
  20. package/dist/brandsync-wc/{p-bee30626.entry.js → p-538d5b58.entry.js} +1 -1
  21. package/dist/brandsync-wc/{p-fb4d0093.entry.js → p-54f9529f.entry.js} +1 -1
  22. package/dist/brandsync-wc/{p-1b5cc9b8.entry.js → p-5a45ef51.entry.js} +1 -1
  23. package/dist/brandsync-wc/{p-ce16f038.entry.js → p-5ed1f45e.entry.js} +1 -1
  24. package/dist/brandsync-wc/{p-10290c41.entry.js → p-65fa1b21.entry.js} +1 -1
  25. package/dist/brandsync-wc/{p-4054a944.entry.js → p-6cb21302.entry.js} +1 -1
  26. package/dist/brandsync-wc/{p-53362609.entry.js → p-6df48031.entry.js} +1 -1
  27. package/dist/brandsync-wc/p-769c5b4a.entry.js +1 -0
  28. package/dist/brandsync-wc/{p-07966676.entry.js → p-7a072e64.entry.js} +1 -1
  29. package/dist/brandsync-wc/p-7b3518b8.entry.js +1 -0
  30. package/dist/brandsync-wc/{p-658532b7.entry.js → p-86774165.entry.js} +1 -1
  31. package/dist/brandsync-wc/{p-7e24dbd7.entry.js → p-87d44938.entry.js} +1 -1
  32. package/dist/brandsync-wc/{p-4ea435a6.entry.js → p-89ea6366.entry.js} +1 -1
  33. package/dist/brandsync-wc/{p-d64cae57.entry.js → p-912629c6.entry.js} +1 -1
  34. package/dist/brandsync-wc/p-9beeb30c.entry.js +1 -0
  35. package/dist/brandsync-wc/{p-23cc532f.entry.js → p-a56bc608.entry.js} +1 -1
  36. package/dist/brandsync-wc/{p-9b58c0c5.entry.js → p-abfa43f5.entry.js} +1 -1
  37. package/dist/brandsync-wc/{p-cceb8484.entry.js → p-ac9472ec.entry.js} +1 -1
  38. package/dist/brandsync-wc/{p-f8d47004.entry.js → p-b6081bba.entry.js} +1 -1
  39. package/dist/brandsync-wc/{p-b0b2e525.entry.js → p-b663ee67.entry.js} +1 -1
  40. package/dist/brandsync-wc/{p-e0504a4b.entry.js → p-b67a0c8f.entry.js} +1 -1
  41. package/dist/brandsync-wc/{p-86028548.entry.js → p-b9c0b481.entry.js} +1 -1
  42. package/dist/brandsync-wc/{p-fa6b9750.entry.js → p-b9c9bcba.entry.js} +1 -1
  43. package/dist/brandsync-wc/{p-9cf8274a.entry.js → p-baa3d37a.entry.js} +1 -1
  44. package/dist/brandsync-wc/{p-68f0be29.entry.js → p-bc97ece8.entry.js} +1 -1
  45. package/dist/brandsync-wc/p-c25553bc.entry.js +1 -0
  46. package/dist/brandsync-wc/{p-45cb3e6d.entry.js → p-c85fe37b.entry.js} +1 -1
  47. package/dist/brandsync-wc/{p-c3da3080.entry.js → p-cf287ff1.entry.js} +1 -1
  48. package/dist/brandsync-wc/{p-c679b631.entry.js → p-d165a742.entry.js} +1 -1
  49. package/dist/brandsync-wc/{p-f134a502.entry.js → p-d81c4f58.entry.js} +1 -1
  50. package/dist/brandsync-wc/{p-94d435a2.entry.js → p-dcacee29.entry.js} +1 -1
  51. package/dist/brandsync-wc/p-e294f698.entry.js +1 -0
  52. package/dist/brandsync-wc/{p-0e940ee1.entry.js → p-e5f50e93.entry.js} +1 -1
  53. package/dist/brandsync-wc/p-e72dd05e.entry.js +1 -0
  54. package/dist/brandsync-wc/{p-0cb6fc39.entry.js → p-e9b6b30f.entry.js} +1 -1
  55. package/dist/brandsync-wc/{p-fa34fe20.entry.js → p-ed71eb02.entry.js} +1 -1
  56. package/dist/brandsync-wc/{p-e65d286c.entry.js → p-f0be9125.entry.js} +1 -1
  57. package/dist/brandsync-wc/p-f3cc961b.entry.js +1 -0
  58. package/dist/brandsync-wc/{p-6ca1e51b.entry.js → p-f4d1d56e.entry.js} +1 -1
  59. package/dist/cjs/brandsync-wc.cjs.js +1 -1
  60. package/dist/cjs/bs-accordion-group.cjs.entry.js +1 -1
  61. package/dist/cjs/bs-ai-disclaimer.cjs.entry.js +1 -1
  62. package/dist/cjs/bs-ai-greeting.cjs.entry.js +1 -1
  63. package/dist/cjs/bs-ai-thinking.cjs.entry.js +1 -1
  64. package/dist/cjs/bs-app-shell.cjs.entry.js +19 -0
  65. package/dist/cjs/bs-attachment-list.cjs.entry.js +1 -1
  66. package/dist/cjs/bs-breadcrumbs.cjs.entry.js +1 -1
  67. package/dist/cjs/bs-button-skeleton.cjs.entry.js +1 -1
  68. package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +1 -1
  69. package/dist/cjs/bs-chatbot-header.cjs.entry.js +1 -1
  70. package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +1 -1
  71. package/dist/cjs/bs-chatbot-sources-drawer.cjs.entry.js +1 -1
  72. package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +1 -1
  73. package/dist/cjs/bs-checkbox-skeleton.cjs.entry.js +1 -1
  74. package/dist/cjs/bs-citation-preview.cjs.entry.js +1 -1
  75. package/dist/cjs/bs-container.cjs.entry.js +23 -0
  76. package/dist/cjs/bs-data-table.cjs.entry.js +2 -2
  77. package/dist/cjs/bs-datepicker.cjs.entry.js +1 -1
  78. package/dist/cjs/bs-divider.cjs.entry.js +29 -0
  79. package/dist/cjs/bs-error-page.cjs.entry.js +1 -1
  80. package/dist/cjs/bs-file-upload-item.cjs.entry.js +1 -1
  81. package/dist/cjs/bs-file-upload.cjs.entry.js +1 -1
  82. package/dist/cjs/bs-grid.cjs.entry.js +55 -0
  83. package/dist/cjs/bs-icon-button.cjs.entry.js +1 -1
  84. package/dist/cjs/bs-icon-tile.cjs.entry.js +2 -2
  85. package/dist/cjs/bs-inline-tab.cjs.entry.js +1 -1
  86. package/dist/cjs/bs-input_3.cjs.entry.js +4 -4
  87. package/dist/cjs/bs-message-list.cjs.entry.js +1 -1
  88. package/dist/cjs/bs-message.cjs.entry.js +1 -1
  89. package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +1 -1
  90. package/dist/cjs/bs-navigation-drawer.cjs.entry.js +2 -2
  91. package/dist/cjs/bs-navigation-header.cjs.entry.js +1 -1
  92. package/dist/cjs/bs-pagination.cjs.entry.js +1 -1
  93. package/dist/cjs/bs-popover.cjs.entry.js +1 -1
  94. package/dist/cjs/bs-progress-linear.cjs.entry.js +2 -2
  95. package/dist/cjs/bs-progress.cjs.entry.js +2 -2
  96. package/dist/cjs/bs-qr-code.cjs.entry.js +1 -1
  97. package/dist/cjs/bs-radio.cjs.entry.js +1 -1
  98. package/dist/cjs/bs-session-timeout.cjs.entry.js +1 -1
  99. package/dist/cjs/bs-skeleton.cjs.entry.js +1 -1
  100. package/dist/cjs/bs-slider.cjs.entry.js +1 -1
  101. package/dist/cjs/bs-snackbar.cjs.entry.js +1 -1
  102. package/dist/cjs/bs-source-link.cjs.entry.js +2 -2
  103. package/dist/cjs/bs-spinner.cjs.entry.js +1 -1
  104. package/dist/cjs/bs-split-pane.cjs.entry.js +193 -0
  105. package/dist/cjs/bs-stack.cjs.entry.js +81 -0
  106. package/dist/cjs/bs-stepper-step.cjs.entry.js +1 -1
  107. package/dist/cjs/bs-stepper.cjs.entry.js +1 -1
  108. package/dist/cjs/bs-switch.cjs.entry.js +1 -1
  109. package/dist/cjs/bs-tab_3.cjs.entry.js +3 -3
  110. package/dist/cjs/bs-timepicker.cjs.entry.js +2 -2
  111. package/dist/cjs/bs-toast.cjs.entry.js +1 -1
  112. package/dist/cjs/bs-tooltip-trigger.cjs.entry.js +1 -1
  113. package/dist/cjs/bs-tooltip.cjs.entry.js +1 -1
  114. package/dist/cjs/loader.cjs.js +1 -1
  115. package/dist/collection/collection-manifest.json +6 -0
  116. package/dist/collection/components/bs-accordion-group/bs-accordion-group.js +1 -1
  117. package/dist/collection/components/bs-ai-disclaimer/bs-ai-disclaimer.js +1 -1
  118. package/dist/collection/components/bs-ai-greeting/bs-ai-greeting.js +1 -1
  119. package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.js +1 -1
  120. package/dist/collection/components/bs-app-shell/bs-app-shell.cmp.test.js +71 -0
  121. package/dist/collection/components/bs-app-shell/bs-app-shell.css +58 -0
  122. package/dist/collection/components/bs-app-shell/bs-app-shell.js +79 -0
  123. package/dist/collection/components/bs-app-shell/bs-app-shell.stories.js +34 -0
  124. package/dist/collection/components/bs-attachment-list/bs-attachment-list.js +1 -1
  125. package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.js +1 -1
  126. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.js +1 -1
  127. package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +1 -1
  128. package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.js +1 -1
  129. package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.js +1 -1
  130. package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.js +1 -1
  131. package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.js +1 -1
  132. package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js +1 -1
  133. package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.js +1 -1
  134. package/dist/collection/components/bs-citation-preview/bs-citation-preview.js +1 -1
  135. package/dist/collection/components/bs-container/bs-container.cmp.test.js +59 -0
  136. package/dist/collection/components/bs-container/bs-container.css +16 -0
  137. package/dist/collection/components/bs-container/bs-container.js +88 -0
  138. package/dist/collection/components/bs-container/bs-container.stories.js +24 -0
  139. package/dist/collection/components/bs-data-table/bs-data-table.js +2 -2
  140. package/dist/collection/components/bs-datepicker/bs-datepicker.js +1 -1
  141. package/dist/collection/components/bs-divider/bs-divider.cmp.test.js +47 -0
  142. package/dist/collection/components/bs-divider/bs-divider.css +47 -0
  143. package/dist/collection/components/bs-divider/bs-divider.js +147 -0
  144. package/dist/collection/components/bs-divider/bs-divider.stories.js +32 -0
  145. package/dist/collection/components/bs-error-page/bs-error-page.js +1 -1
  146. package/dist/collection/components/bs-file-upload/bs-file-upload.js +1 -1
  147. package/dist/collection/components/bs-file-upload-item/bs-file-upload-item.js +1 -1
  148. package/dist/collection/components/bs-grid/bs-grid.cmp.test.js +58 -0
  149. package/dist/collection/components/bs-grid/bs-grid.css +10 -0
  150. package/dist/collection/components/bs-grid/bs-grid.js +208 -0
  151. package/dist/collection/components/bs-grid/bs-grid.stories.js +38 -0
  152. package/dist/collection/components/bs-icon-tile/bs-icon-tile.js +2 -2
  153. package/dist/collection/components/bs-input/bs-input.js +2 -2
  154. package/dist/collection/components/bs-menu/bs-menu.js +1 -1
  155. package/dist/collection/components/bs-menu-item/bs-menu-item.js +1 -1
  156. package/dist/collection/components/bs-message/bs-message.js +1 -1
  157. package/dist/collection/components/bs-message-list/bs-message-list.js +1 -1
  158. package/dist/collection/components/bs-pagination/bs-pagination.js +1 -1
  159. package/dist/collection/components/bs-popover/bs-popover.js +1 -1
  160. package/dist/collection/components/bs-progress/bs-progress.js +2 -2
  161. package/dist/collection/components/bs-progress-linear/bs-progress-linear.js +2 -2
  162. package/dist/collection/components/bs-qr-code/bs-qr-code.js +1 -1
  163. package/dist/collection/components/bs-radio/bs-radio.js +1 -1
  164. package/dist/collection/components/bs-session-timeout/bs-session-timeout.js +1 -1
  165. package/dist/collection/components/bs-skeleton/bs-skeleton.js +1 -1
  166. package/dist/collection/components/bs-slider/bs-slider.js +1 -1
  167. package/dist/collection/components/bs-snackbar/bs-snackbar.js +1 -1
  168. package/dist/collection/components/bs-source-link/bs-source-link.js +2 -2
  169. package/dist/collection/components/bs-spinner/bs-spinner.js +1 -1
  170. package/dist/collection/components/bs-split-pane/bs-split-pane.cmp.test.js +107 -0
  171. package/dist/collection/components/bs-split-pane/bs-split-pane.css +108 -0
  172. package/dist/collection/components/bs-split-pane/bs-split-pane.js +404 -0
  173. package/dist/collection/components/bs-split-pane/bs-split-pane.stories.js +47 -0
  174. package/dist/collection/components/bs-stack/bs-stack.cmp.test.js +113 -0
  175. package/dist/collection/components/bs-stack/bs-stack.css +22 -0
  176. package/dist/collection/components/bs-stack/bs-stack.js +252 -0
  177. package/dist/collection/components/bs-stack/bs-stack.stories.js +36 -0
  178. package/dist/collection/components/bs-stepper/bs-stepper/bs-stepper.js +1 -1
  179. package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.js +1 -1
  180. package/dist/collection/components/bs-switch/bs-switch.js +1 -1
  181. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.js +1 -1
  182. package/dist/collection/components/bs-tab/bs-tab/bs-tab.js +1 -1
  183. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.js +1 -1
  184. package/dist/collection/components/bs-timepicker/bs-timepicker.js +2 -2
  185. package/dist/collection/components/bs-toast/bs-toast.js +1 -1
  186. package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
  187. package/dist/collection/components/bs-tooltip-trigger/bs-tooltip-trigger.js +1 -1
  188. package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.js +1 -1
  189. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +2 -2
  190. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.js +1 -1
  191. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.js +1 -1
  192. package/dist/components/bs-accordion-group.js +1 -1
  193. package/dist/components/bs-ai-disclaimer.js +1 -1
  194. package/dist/components/bs-ai-greeting.js +1 -1
  195. package/dist/components/bs-ai-thinking.js +1 -1
  196. package/dist/components/bs-app-shell.d.ts +11 -0
  197. package/dist/components/bs-app-shell.js +1 -0
  198. package/dist/components/bs-attachment-list.js +1 -1
  199. package/dist/components/bs-attachment.js +1 -1
  200. package/dist/components/bs-breadcrumb-overflow.js +1 -1
  201. package/dist/components/bs-breadcrumbs.js +1 -1
  202. package/dist/components/bs-button-skeleton.js +1 -1
  203. package/dist/components/bs-carousel.js +1 -1
  204. package/dist/components/bs-chatbot-feedback.js +1 -1
  205. package/dist/components/bs-chatbot-header.js +1 -1
  206. package/dist/components/bs-chatbot-response-action.js +1 -1
  207. package/dist/components/bs-chatbot-sources-drawer.js +1 -1
  208. package/dist/components/bs-chatbot-suggestion-button.js +1 -1
  209. package/dist/components/bs-checkbox-skeleton.js +1 -1
  210. package/dist/components/bs-citation-preview.js +1 -1
  211. package/dist/components/bs-container.d.ts +11 -0
  212. package/dist/components/bs-container.js +1 -0
  213. package/dist/components/bs-cookie-consent.js +1 -1
  214. package/dist/components/bs-data-table.js +1 -1
  215. package/dist/components/bs-datepicker.js +1 -1
  216. package/dist/components/bs-dialog.js +1 -1
  217. package/dist/components/bs-divider.d.ts +11 -0
  218. package/dist/components/bs-divider.js +1 -0
  219. package/dist/components/bs-error-page.js +1 -1
  220. package/dist/components/bs-file-upload-item.js +1 -1
  221. package/dist/components/bs-file-upload.js +1 -1
  222. package/dist/components/bs-grid.d.ts +11 -0
  223. package/dist/components/bs-grid.js +1 -0
  224. package/dist/components/bs-icon-button.js +1 -1
  225. package/dist/components/bs-icon-tile.js +1 -1
  226. package/dist/components/bs-inline-tab.js +1 -1
  227. package/dist/components/bs-input.js +1 -1
  228. package/dist/components/bs-menu-item.js +1 -1
  229. package/dist/components/bs-menu.js +1 -1
  230. package/dist/components/bs-message-list.js +1 -1
  231. package/dist/components/bs-message.js +1 -1
  232. package/dist/components/bs-navigation-drawer-item.js +1 -1
  233. package/dist/components/bs-navigation-drawer.js +1 -1
  234. package/dist/components/bs-navigation-header.js +1 -1
  235. package/dist/components/bs-onboarding-checklist.js +1 -1
  236. package/dist/components/bs-pagination.js +1 -1
  237. package/dist/components/bs-popover.js +1 -1
  238. package/dist/components/bs-product-tour.js +1 -1
  239. package/dist/components/bs-progress-linear.js +1 -1
  240. package/dist/components/bs-progress.js +1 -1
  241. package/dist/components/bs-qr-code.js +1 -1
  242. package/dist/components/bs-radio.js +1 -1
  243. package/dist/components/bs-session-timeout.js +1 -1
  244. package/dist/components/bs-side-panel.js +1 -1
  245. package/dist/components/bs-skeleton.js +1 -1
  246. package/dist/components/bs-slider.js +1 -1
  247. package/dist/components/bs-snackbar.js +1 -1
  248. package/dist/components/bs-source-link.js +1 -1
  249. package/dist/components/bs-spinner.js +1 -1
  250. package/dist/components/bs-split-pane.d.ts +11 -0
  251. package/dist/components/bs-split-pane.js +1 -0
  252. package/dist/components/bs-stack.d.ts +11 -0
  253. package/dist/components/bs-stack.js +1 -0
  254. package/dist/components/bs-stepper-step.js +1 -1
  255. package/dist/components/bs-stepper.js +1 -1
  256. package/dist/components/bs-switch.js +1 -1
  257. package/dist/components/bs-tab.js +1 -1
  258. package/dist/components/bs-tabs.js +1 -1
  259. package/dist/components/bs-timepicker.js +1 -1
  260. package/dist/components/bs-toast.js +1 -1
  261. package/dist/components/bs-tooltip-trigger.js +1 -1
  262. package/dist/components/bs-tooltip.js +1 -1
  263. package/dist/components/bs-whats-new-entry.js +1 -1
  264. package/dist/components/bs-whats-new.js +1 -1
  265. package/dist/components/{p-CrmEXUwm.js → p-B128GX8H.js} +1 -1
  266. package/dist/components/{p-DfzrJKwN.js → p-B3l4WpgS.js} +1 -1
  267. package/dist/components/{p-Rx4bpeYN.js → p-B80vOwH6.js} +1 -1
  268. package/dist/components/{p-Dqg8l1y6.js → p-Bqe4waKJ.js} +1 -1
  269. package/dist/components/{p-C9jIMBG3.js → p-BsbtyRJV.js} +1 -1
  270. package/dist/components/{p-Bfq5YVOv.js → p-BvYkZcOU.js} +1 -1
  271. package/dist/components/{p-BVhF8cZQ.js → p-ByKcHsj0.js} +1 -1
  272. package/dist/components/{p-owdeCW0M.js → p-ByLUtXxO.js} +1 -1
  273. package/dist/components/p-C7RZ6qZC.js +1 -0
  274. package/dist/components/{p-DpVeeIko.js → p-CK7fiES5.js} +1 -1
  275. package/dist/components/{p-QnTjSed5.js → p-CQjSDdH7.js} +1 -1
  276. package/dist/components/{p-uHvS81XA.js → p-D0KM1R2i.js} +1 -1
  277. package/dist/components/{p-DqXI9V2A.js → p-ElcsxZSh.js} +1 -1
  278. package/dist/components/{p-DAwSBMeM.js → p-GTDI4Ibw.js} +1 -1
  279. package/dist/components/{p-Cu-aeY9t.js → p-Mf1jorXP.js} +1 -1
  280. package/dist/components/{p-C2NR1v3p.js → p-kDJsWjTN.js} +1 -1
  281. package/dist/esm/brandsync-wc.js +1 -1
  282. package/dist/esm/bs-accordion-group.entry.js +1 -1
  283. package/dist/esm/bs-ai-disclaimer.entry.js +1 -1
  284. package/dist/esm/bs-ai-greeting.entry.js +1 -1
  285. package/dist/esm/bs-ai-thinking.entry.js +1 -1
  286. package/dist/esm/bs-app-shell.entry.js +17 -0
  287. package/dist/esm/bs-attachment-list.entry.js +1 -1
  288. package/dist/esm/bs-breadcrumbs.entry.js +1 -1
  289. package/dist/esm/bs-button-skeleton.entry.js +1 -1
  290. package/dist/esm/bs-chatbot-feedback.entry.js +1 -1
  291. package/dist/esm/bs-chatbot-header.entry.js +1 -1
  292. package/dist/esm/bs-chatbot-response-action.entry.js +1 -1
  293. package/dist/esm/bs-chatbot-sources-drawer.entry.js +1 -1
  294. package/dist/esm/bs-chatbot-suggestion-button.entry.js +1 -1
  295. package/dist/esm/bs-checkbox-skeleton.entry.js +1 -1
  296. package/dist/esm/bs-citation-preview.entry.js +1 -1
  297. package/dist/esm/bs-container.entry.js +21 -0
  298. package/dist/esm/bs-data-table.entry.js +2 -2
  299. package/dist/esm/bs-datepicker.entry.js +1 -1
  300. package/dist/esm/bs-divider.entry.js +27 -0
  301. package/dist/esm/bs-error-page.entry.js +1 -1
  302. package/dist/esm/bs-file-upload-item.entry.js +1 -1
  303. package/dist/esm/bs-file-upload.entry.js +1 -1
  304. package/dist/esm/bs-grid.entry.js +53 -0
  305. package/dist/esm/bs-icon-button.entry.js +1 -1
  306. package/dist/esm/bs-icon-tile.entry.js +2 -2
  307. package/dist/esm/bs-inline-tab.entry.js +1 -1
  308. package/dist/esm/bs-input_3.entry.js +4 -4
  309. package/dist/esm/bs-message-list.entry.js +1 -1
  310. package/dist/esm/bs-message.entry.js +1 -1
  311. package/dist/esm/bs-navigation-drawer-item.entry.js +1 -1
  312. package/dist/esm/bs-navigation-drawer.entry.js +2 -2
  313. package/dist/esm/bs-navigation-header.entry.js +1 -1
  314. package/dist/esm/bs-pagination.entry.js +1 -1
  315. package/dist/esm/bs-popover.entry.js +1 -1
  316. package/dist/esm/bs-progress-linear.entry.js +2 -2
  317. package/dist/esm/bs-progress.entry.js +2 -2
  318. package/dist/esm/bs-qr-code.entry.js +1 -1
  319. package/dist/esm/bs-radio.entry.js +1 -1
  320. package/dist/esm/bs-session-timeout.entry.js +1 -1
  321. package/dist/esm/bs-skeleton.entry.js +1 -1
  322. package/dist/esm/bs-slider.entry.js +1 -1
  323. package/dist/esm/bs-snackbar.entry.js +1 -1
  324. package/dist/esm/bs-source-link.entry.js +2 -2
  325. package/dist/esm/bs-spinner.entry.js +1 -1
  326. package/dist/esm/bs-split-pane.entry.js +191 -0
  327. package/dist/esm/bs-stack.entry.js +79 -0
  328. package/dist/esm/bs-stepper-step.entry.js +1 -1
  329. package/dist/esm/bs-stepper.entry.js +1 -1
  330. package/dist/esm/bs-switch.entry.js +1 -1
  331. package/dist/esm/bs-tab_3.entry.js +3 -3
  332. package/dist/esm/bs-timepicker.entry.js +2 -2
  333. package/dist/esm/bs-toast.entry.js +1 -1
  334. package/dist/esm/bs-tooltip-trigger.entry.js +1 -1
  335. package/dist/esm/bs-tooltip.entry.js +1 -1
  336. package/dist/esm/loader.js +1 -1
  337. package/dist/types/components/bs-app-shell/bs-app-shell.cmp.test.d.ts +1 -0
  338. package/dist/types/components/bs-app-shell/bs-app-shell.d.ts +40 -0
  339. package/dist/types/components/bs-app-shell/bs-app-shell.stories.d.ts +11 -0
  340. package/dist/types/components/bs-container/bs-container.cmp.test.d.ts +1 -0
  341. package/dist/types/components/bs-container/bs-container.d.ts +22 -0
  342. package/dist/types/components/bs-container/bs-container.stories.d.ts +15 -0
  343. package/dist/types/components/bs-divider/bs-divider.cmp.test.d.ts +1 -0
  344. package/dist/types/components/bs-divider/bs-divider.d.ts +29 -0
  345. package/dist/types/components/bs-divider/bs-divider.stories.d.ts +16 -0
  346. package/dist/types/components/bs-grid/bs-grid.cmp.test.d.ts +1 -0
  347. package/dist/types/components/bs-grid/bs-grid.d.ts +43 -0
  348. package/dist/types/components/bs-grid/bs-grid.stories.d.ts +18 -0
  349. package/dist/types/components/bs-split-pane/bs-split-pane.cmp.test.d.ts +1 -0
  350. package/dist/types/components/bs-split-pane/bs-split-pane.d.ts +85 -0
  351. package/dist/types/components/bs-split-pane/bs-split-pane.stories.d.ts +15 -0
  352. package/dist/types/components/bs-stack/bs-stack.cmp.test.d.ts +1 -0
  353. package/dist/types/components/bs-stack/bs-stack.d.ts +46 -0
  354. package/dist/types/components/bs-stack/bs-stack.stories.d.ts +18 -0
  355. package/dist/types/components.d.ts +798 -0
  356. package/package.json +1 -1
  357. package/reference.d.ts +18 -0
  358. package/reference.json +286 -0
  359. package/dist/brandsync-wc/p-4bbc4809.entry.js +0 -1
  360. package/dist/brandsync-wc/p-bf8bd386.entry.js +0 -1
  361. package/dist/brandsync-wc/p-cd53bba9.entry.js +0 -1
@@ -23,13 +23,16 @@ import { BsChipInformativeColor, BsChipInformativeSize } from "./components/bs-c
23
23
  import { BsChipInputSize } from "./components/bs-chip/bs-chip-input/bs-chip-input";
24
24
  import { BsComposerState, BsComposerVariant } from "./components/bs-composer/bs-composer";
25
25
  import { BsComposerStatusBannerType } from "./components/bs-composer-status-banner/bs-composer-status-banner";
26
+ import { BsContainerSize } from "./components/bs-container/bs-container";
26
27
  import { BsCookieCategory, BsCookieChoices, BsCookieConsentType } from "./components/bs-cookie-consent/bs-cookie-consent";
27
28
  import { BsDataTableColumn, BsDataTableRow } from "./components/bs-data-table/bs-data-table";
28
29
  import { BsDatepickerChange } from "./components/bs-datepicker/bs-datepicker";
29
30
  import { BsDialogSize } from "./components/bs-dialog/bs-dialog";
31
+ import { BsDividerInset, BsDividerOrientation, BsDividerVariant } from "./components/bs-divider/bs-divider";
30
32
  import { BsErrorPageType } from "./components/bs-error-page/bs-error-page";
31
33
  import { BsFileUploadDirection } from "./components/bs-file-upload/bs-file-upload";
32
34
  import { BsFileUploadItemState } from "./components/bs-file-upload-item/bs-file-upload-item";
35
+ import { BsGridAlign } from "./components/bs-grid/bs-grid";
33
36
  import { BsIconButtonSize, BsIconButtonVariant } from "./components/bs-button/bs-icon-button/bs-icon-button";
34
37
  import { BsIconTileIntent, BsIconTileSize } from "./components/bs-icon-tile/bs-icon-tile";
35
38
  import { BsLogoBackground, BsLogoVariant } from "./components/bs-logo/bs-logo";
@@ -47,6 +50,8 @@ import { BsSkeletonVariant } from "./components/bs-skeleton/bs-skeleton";
47
50
  import { BsSliderType } from "./components/bs-slider/bs-slider";
48
51
  import { BsSnackbarVariant } from "./components/bs-snackbar/bs-snackbar";
49
52
  import { BsSpinnerSize } from "./components/bs-spinner/bs-spinner";
53
+ import { BsSplitPaneOrientation } from "./components/bs-split-pane/bs-split-pane";
54
+ import { BsStackAlign, BsStackDirection, BsStackJustify } from "./components/bs-stack/bs-stack";
50
55
  import { BsStepperDirection } from "./components/bs-stepper/bs-stepper-step/bs-stepper-step";
51
56
  import { BsStepperDirection as BsStepperDirection1, BsStepperStepComputedState } from "./components/bs-stepper/bs-stepper-step/bs-stepper-step";
52
57
  import { BsSwitchSize } from "./components/bs-switch/bs-switch";
@@ -76,13 +81,16 @@ export { BsChipInformativeColor, BsChipInformativeSize } from "./components/bs-c
76
81
  export { BsChipInputSize } from "./components/bs-chip/bs-chip-input/bs-chip-input";
77
82
  export { BsComposerState, BsComposerVariant } from "./components/bs-composer/bs-composer";
78
83
  export { BsComposerStatusBannerType } from "./components/bs-composer-status-banner/bs-composer-status-banner";
84
+ export { BsContainerSize } from "./components/bs-container/bs-container";
79
85
  export { BsCookieCategory, BsCookieChoices, BsCookieConsentType } from "./components/bs-cookie-consent/bs-cookie-consent";
80
86
  export { BsDataTableColumn, BsDataTableRow } from "./components/bs-data-table/bs-data-table";
81
87
  export { BsDatepickerChange } from "./components/bs-datepicker/bs-datepicker";
82
88
  export { BsDialogSize } from "./components/bs-dialog/bs-dialog";
89
+ export { BsDividerInset, BsDividerOrientation, BsDividerVariant } from "./components/bs-divider/bs-divider";
83
90
  export { BsErrorPageType } from "./components/bs-error-page/bs-error-page";
84
91
  export { BsFileUploadDirection } from "./components/bs-file-upload/bs-file-upload";
85
92
  export { BsFileUploadItemState } from "./components/bs-file-upload-item/bs-file-upload-item";
93
+ export { BsGridAlign } from "./components/bs-grid/bs-grid";
86
94
  export { BsIconButtonSize, BsIconButtonVariant } from "./components/bs-button/bs-icon-button/bs-icon-button";
87
95
  export { BsIconTileIntent, BsIconTileSize } from "./components/bs-icon-tile/bs-icon-tile";
88
96
  export { BsLogoBackground, BsLogoVariant } from "./components/bs-logo/bs-logo";
@@ -100,6 +108,8 @@ export { BsSkeletonVariant } from "./components/bs-skeleton/bs-skeleton";
100
108
  export { BsSliderType } from "./components/bs-slider/bs-slider";
101
109
  export { BsSnackbarVariant } from "./components/bs-snackbar/bs-snackbar";
102
110
  export { BsSpinnerSize } from "./components/bs-spinner/bs-spinner";
111
+ export { BsSplitPaneOrientation } from "./components/bs-split-pane/bs-split-pane";
112
+ export { BsStackAlign, BsStackDirection, BsStackJustify } from "./components/bs-stack/bs-stack";
103
113
  export { BsStepperDirection } from "./components/bs-stepper/bs-stepper-step/bs-stepper-step";
104
114
  export { BsStepperDirection as BsStepperDirection1, BsStepperStepComputedState } from "./components/bs-stepper/bs-stepper-step/bs-stepper-step";
105
115
  export { BsSwitchSize } from "./components/bs-switch/bs-switch";
@@ -251,6 +261,34 @@ export namespace Components {
251
261
  */
252
262
  "label": string;
253
263
  }
264
+ /**
265
+ * The page frame: a header across the top, and below it a navigation | main | aside row, laid out
266
+ * with CSS grid. The main column scrolls independently of the header and the side columns.
267
+ * Layout only. Compose it from the existing shell components: put a `bs-navigation-header`
268
+ * (usually `alignment="with-navigation-drawer"`) in `header` and a `bs-navigation-drawer` in
269
+ * `navigation`. The drawer sizes itself (expanded or collapsed rail); the shell reserves an `auto`
270
+ * track for it, so there is no `navigationWidth` prop. `bs-navigation-header` has no `collapsed`
271
+ * prop, so there is no collapse state to mirror and the shell does not listen to `bsCollapse`: the
272
+ * auto track follows the drawer's width on its own.
273
+ * The shell creates no landmarks besides `<main>`; the slotted header and drawer bring their own
274
+ * `banner` and `navigation` roles.
275
+ * ## When to use
276
+ * - The outer frame of an application page with a header and side navigation.
277
+ * ## When not to use
278
+ * - Content layout inside the page (use `bs-grid`) or resizable panes (use `bs-split-pane`).
279
+ * - Pages that already have their own `<main>`; the shell would add a duplicate landmark.
280
+ * @prop --bs-app-shell-bg - Shell background. Aliased to `--bs-surface-base`.
281
+ * @prop --bs-app-shell-color - Text colour. Aliased to `--bs-text-default`.
282
+ * @prop --bs-app-shell-main-padding - Padding of the main area. Aliased to `--bs-spacing-400`.
283
+ * @prop --bs-app-shell-aside-width - Width of the aside column. Defaults to `auto` (zero when empty).
284
+ */
285
+ interface BsAppShell {
286
+ /**
287
+ * When true the host is `height: 100%`; when false it is content-sized with `min-height: 100vh`.
288
+ * @default true
289
+ */
290
+ "fullHeight": boolean;
291
+ }
254
292
  /**
255
293
  * A single file attachment preview for `bs-composer` -- an image thumbnail, or a filename card
256
294
  * with a colored file-type badge (PDF/Document), with an optional upload-in-progress spinner and
@@ -1482,6 +1520,28 @@ export namespace Components {
1482
1520
  */
1483
1521
  "type": BsComposerStatusBannerType;
1484
1522
  }
1523
+ /**
1524
+ * A centred wrapper that limits content width to a breakpoint and adds horizontal padding.
1525
+ * ## When to use
1526
+ * - Constraining page or section content to a readable, consistent maximum width.
1527
+ * ## When not to use
1528
+ * - Arranging children relative to each other (use `bs-stack`).
1529
+ * - Full-bleed regions such as hero backgrounds (use `size="fluid"` or no container).
1530
+ * @prop --bs-container-max-width - Maximum width. Aliased to the `--bs-breakpoint-*` token for `size`; `none` for `fluid`.
1531
+ * @prop --bs-container-padding - Horizontal padding. Aliased to the `padding` spacing token (default `--bs-spacing-300`).
1532
+ */
1533
+ interface BsContainer {
1534
+ /**
1535
+ * Spacing token name for horizontal padding (e.g. `300` => `--bs-spacing-300`). Invalid values fall back to `300`.
1536
+ * @default '300'
1537
+ */
1538
+ "padding": string;
1539
+ /**
1540
+ * Maximum width, taken from the breakpoint tokens. `fluid` removes the limit.
1541
+ * @default 'xl'
1542
+ */
1543
+ "size": BsContainerSize;
1544
+ }
1485
1545
  /**
1486
1546
  * A cookie consent prompt in four forms, matching the Figma "Cookie consent" component:
1487
1547
  * - `banner` -- a wide bar: icon, heading, text, policy link, and Customise / Reject optional / Accept
@@ -1757,6 +1817,39 @@ export namespace Components {
1757
1817
  */
1758
1818
  "size": BsDialogSize;
1759
1819
  }
1820
+ /**
1821
+ * A thin line that separates content, horizontally or vertically.
1822
+ * ## When to use
1823
+ * - Separating groups of related content in a list, menu, toolbar or card.
1824
+ * ## When not to use
1825
+ * - Adding vertical space between blocks (use `bs-stack` gap or spacing tokens).
1826
+ * - Drawing a border around a surface (use `bs-card`).
1827
+ * @prop --bs-divider-thickness - Line thickness. Defaults to `1px`.
1828
+ * @prop --bs-divider-color - Line colour. Aliased to `--bs-border-neutral-container` (`default`) or `--bs-neutral-100` (`subtle`).
1829
+ * @prop --bs-divider-inset - Indent applied by `inset`. Aliased to `--bs-spacing-300`.
1830
+ */
1831
+ interface BsDivider {
1832
+ /**
1833
+ * Purely visual: hides the divider from assistive technology instead of exposing a separator.
1834
+ * @default false
1835
+ */
1836
+ "decorative": boolean;
1837
+ /**
1838
+ * Indents the line from its start edge, or from both edges.
1839
+ * @default 'none'
1840
+ */
1841
+ "inset": BsDividerInset;
1842
+ /**
1843
+ * Direction of the line. A vertical divider stretches to the height of its container.
1844
+ * @default 'horizontal'
1845
+ */
1846
+ "orientation": BsDividerOrientation;
1847
+ /**
1848
+ * Visual weight of the line.
1849
+ * @default 'default'
1850
+ */
1851
+ "variant": BsDividerVariant;
1852
+ }
1760
1853
  /**
1761
1854
  * A full-block page for when the user can't get to what they asked for: page not found (404), a server
1762
1855
  * error (500), no access (403), planned maintenance, or no internet connection. Matches the Figma
@@ -1912,6 +2005,53 @@ export namespace Components {
1912
2005
  */
1913
2006
  "thumbnailSrc"?: string;
1914
2007
  }
2008
+ /**
2009
+ * A CSS grid layout wrapper. Children are placed in equal-width columns with a token-based gap.
2010
+ * `columns` takes either a number (`"3"` becomes `repeat(3, minmax(0, 1fr))`) or any raw
2011
+ * `grid-template-columns` value (`"200px 1fr"`). `minColumnWidth` is the responsive mechanism: it
2012
+ * switches to `repeat(auto-fit, minmax(min(100%, X), 1fr))`, so the column count adapts to the
2013
+ * container width and `columns` is ignored. There are deliberately no per-breakpoint props in v1.
2014
+ * `gap`, `rowGap` and `columnGap` take spacing token names (`"200"` maps to `var(--bs-spacing-200)`);
2015
+ * unknown names fall back to `100`.
2016
+ * ## When to use
2017
+ * - Card grids, form field grids and dashboards where items share equal column tracks.
2018
+ * - Responsive galleries via `minColumnWidth`.
2019
+ * ## When not to use
2020
+ * - A single row or column of items with no wrapping (plain flex).
2021
+ * - Resizable multi-pane layouts (use `bs-split-pane`) or the page frame (use `bs-app-shell`).
2022
+ * @prop --bs-grid-gap - Gap on both axes. Overrides the `gap` prop's token (default `--bs-spacing-100`).
2023
+ * @prop --bs-grid-row-gap - Row gap. Overrides `--bs-grid-gap` and the `rowGap` prop's token.
2024
+ * @prop --bs-grid-column-gap - Column gap. Overrides `--bs-grid-gap` and the `columnGap` prop's token.
2025
+ */
2026
+ interface BsGrid {
2027
+ /**
2028
+ * Block-axis alignment of items within their cell.
2029
+ * @default 'stretch'
2030
+ */
2031
+ "align": BsGridAlign;
2032
+ /**
2033
+ * Spacing token name for the column gap; overrides `gap` for columns.
2034
+ */
2035
+ "columnGap"?: string;
2036
+ /**
2037
+ * A number of equal columns (`"3"`), or a raw `grid-template-columns` value. Ignored when `minColumnWidth` is set.
2038
+ * @default '1'
2039
+ */
2040
+ "columns": string;
2041
+ /**
2042
+ * Spacing token name for the gap on both axes, e.g. `"200"` for `--bs-spacing-200`.
2043
+ * @default '100'
2044
+ */
2045
+ "gap": string;
2046
+ /**
2047
+ * CSS length (e.g. `240px`). Switches to auto-fit columns at least this wide and overrides `columns`.
2048
+ */
2049
+ "minColumnWidth"?: string;
2050
+ /**
2051
+ * Spacing token name for the row gap; overrides `gap` for rows.
2052
+ */
2053
+ "rowGap"?: string;
2054
+ }
1915
2055
  /**
1916
2056
  * A clickable, icon-only action element -- the icon-only sibling of `bs-button`, sharing the same
1917
2057
  * 8 visual variants and color language, but ALWAYS rendering just a single icon, never a label.
@@ -3464,6 +3604,112 @@ export namespace Components {
3464
3604
  */
3465
3605
  "size": BsSpinnerSize;
3466
3606
  }
3607
+ /**
3608
+ * A resizable layout of two or three panes separated by draggable, keyboard-operable dividers
3609
+ * (the WAI-ARIA "window splitter" pattern). Content goes into the named slots `pane-1`, `pane-2`
3610
+ * and (optionally) `pane-3`; the pane count follows which slots have content.
3611
+ * `orientation="horizontal"` places panes side by side (vertical dividers); `"vertical"` stacks
3612
+ * them (horizontal dividers). The first pane has a fixed size (`--bs-split-pane-first-size`) that
3613
+ * the user can change by dragging; the last pane absorbs the remaining space. `collapsed` shrinks
3614
+ * the first pane to a narrow rail (`--bs-split-pane-collapsed-size`) -- the component reflects the
3615
+ * attribute so slotted content can switch to its compact rendering (e.g. icon-only list items).
3616
+ * ## When to use
3617
+ * - Master/detail layouts: a navigation or list pane next to one or two detail panes.
3618
+ * ## When not to use
3619
+ * - A temporary overlay panel (use `bs-side-panel`).
3620
+ * - A fixed, non-resizable two-column layout (plain CSS grid; or set `resizable="false"` to keep
3621
+ * the dividers purely visual).
3622
+ * @prop --bs-split-pane-radius - Corner radius of the container. Aliased to `--bs-border-radius-100`.
3623
+ * @prop --bs-split-pane-bg - Pane background. Aliased to `--bs-surface-base`.
3624
+ * @prop --bs-split-pane-color - Text colour inherited by slotted content. Aliased to `--bs-text-default`.
3625
+ * @prop --bs-split-pane-first-size - Initial size of the first pane along the layout axis. Defaults to `333px` (Figma).
3626
+ * @prop --bs-split-pane-collapsed-size - Size of the first pane while `collapsed`. Defaults to `106px` (Figma).
3627
+ * @prop --bs-split-pane-min-size - Smallest size a resized pane may take. Defaults to `96px`.
3628
+ * @prop --bs-split-pane-divider-size - Thickness of a divider. Aliased to `--bs-spacing-75`.
3629
+ * @prop --bs-split-pane-divider-bg - Divider track colour. Aliased to `--bs-surface-container`.
3630
+ * @prop --bs-split-pane-divider-thumb - Divider thumb colour. Aliased to `--bs-border-neutral-container`.
3631
+ * @prop --bs-split-pane-divider-thumb-active - Divider thumb colour on hover, focus and drag. Aliased to `--bs-border-neutral-hover`.
3632
+ * @prop --bs-split-pane-divider-thumb-length - Length of the divider thumb. Defaults to `250px` (Figma).
3633
+ * @prop --bs-split-pane-border - Border between the first pane and the rest when dividers are not resizable. Aliased to `--bs-border-neutral-container`.
3634
+ * @prop --bs-split-pane-focus-ring - Divider focus ring colour. Aliased to `--bs-border-neutral-focus`.
3635
+ */
3636
+ interface BsSplitPane {
3637
+ /**
3638
+ * Collapses the first pane to a narrow rail. Mutable: the Enter key on the first divider toggles it.
3639
+ * @default false
3640
+ */
3641
+ "collapsed": boolean;
3642
+ /**
3643
+ * Accessible name of each divider.
3644
+ * @default 'Resize panes'
3645
+ */
3646
+ "dividerLabel": string;
3647
+ /**
3648
+ * `horizontal` = panes side by side, `vertical` = panes stacked.
3649
+ * @default 'horizontal'
3650
+ */
3651
+ "orientation": BsSplitPaneOrientation;
3652
+ /**
3653
+ * Whether the dividers can be dragged / operated by keyboard. `false` keeps them as visual separators.
3654
+ * @default true
3655
+ */
3656
+ "resizable": boolean;
3657
+ /**
3658
+ * Pixels moved per arrow-key press (Shift multiplies by 4).
3659
+ * @default 16
3660
+ */
3661
+ "step": number;
3662
+ /**
3663
+ * Toggles `collapsed` and emits `bsCollapsedChange`.
3664
+ */
3665
+ "toggleCollapsed": () => Promise<void>;
3666
+ }
3667
+ /**
3668
+ * A flex layout that arranges its children in a row or column with a token-based gap, optionally
3669
+ * drawing a divider between children.
3670
+ * Built from: `bs-divider` (when `divider` is set).
3671
+ * With `divider`, each child is given a generated `slot="bs-stack-item-N"` attribute (plus a
3672
+ * `data-bs-stack-item` marker) so a divider can be rendered between the named slots. Light-DOM
3673
+ * nodes are never moved; the attributes are removed again when `divider` is turned off.
3674
+ * ## When to use
3675
+ * - Spacing and aligning a short run of siblings (form fields, button rows, card content).
3676
+ * ## When not to use
3677
+ * - Two-dimensional grids (use CSS grid).
3678
+ * - Resizable panes (use `bs-split-pane`).
3679
+ * @prop --bs-stack-gap - Space between items. Defaults from the `gap` prop (`--bs-spacing-<gap>`); may be overridden directly.
3680
+ */
3681
+ interface BsStack {
3682
+ /**
3683
+ * Cross-axis alignment.
3684
+ * @default 'stretch'
3685
+ */
3686
+ "align": BsStackAlign;
3687
+ /**
3688
+ * Main axis: `vertical` stacks children in a column, `horizontal` in a row.
3689
+ * @default 'vertical'
3690
+ */
3691
+ "direction": BsStackDirection;
3692
+ /**
3693
+ * Renders a decorative `bs-divider` between each child.
3694
+ * @default false
3695
+ */
3696
+ "divider": boolean;
3697
+ /**
3698
+ * Spacing token name (e.g. `200` => `--bs-spacing-200`). Invalid values fall back to `100`.
3699
+ * @default '100'
3700
+ */
3701
+ "gap": string;
3702
+ /**
3703
+ * Main-axis distribution.
3704
+ * @default 'start'
3705
+ */
3706
+ "justify": BsStackJustify;
3707
+ /**
3708
+ * Lets items wrap onto further lines.
3709
+ * @default false
3710
+ */
3711
+ "wrap": boolean;
3712
+ }
3467
3713
  /**
3468
3714
  * A sequence of named steps showing overall progress through a multi-step flow (e.g. a checkout,
3469
3715
  * an onboarding wizard) -- each step reads as enabled (not yet reached), current, done, error, or
@@ -4196,6 +4442,10 @@ export interface BsSourceLinkCustomEvent<T> extends CustomEvent<T> {
4196
4442
  detail: T;
4197
4443
  target: HTMLBsSourceLinkElement;
4198
4444
  }
4445
+ export interface BsSplitPaneCustomEvent<T> extends CustomEvent<T> {
4446
+ detail: T;
4447
+ target: HTMLBsSplitPaneElement;
4448
+ }
4199
4449
  export interface BsSwitchCustomEvent<T> extends CustomEvent<T> {
4200
4450
  detail: T;
4201
4451
  target: HTMLBsSwitchElement;
@@ -4351,6 +4601,33 @@ declare global {
4351
4601
  prototype: HTMLBsAiThinkingElement;
4352
4602
  new (): HTMLBsAiThinkingElement;
4353
4603
  };
4604
+ /**
4605
+ * The page frame: a header across the top, and below it a navigation | main | aside row, laid out
4606
+ * with CSS grid. The main column scrolls independently of the header and the side columns.
4607
+ * Layout only. Compose it from the existing shell components: put a `bs-navigation-header`
4608
+ * (usually `alignment="with-navigation-drawer"`) in `header` and a `bs-navigation-drawer` in
4609
+ * `navigation`. The drawer sizes itself (expanded or collapsed rail); the shell reserves an `auto`
4610
+ * track for it, so there is no `navigationWidth` prop. `bs-navigation-header` has no `collapsed`
4611
+ * prop, so there is no collapse state to mirror and the shell does not listen to `bsCollapse`: the
4612
+ * auto track follows the drawer's width on its own.
4613
+ * The shell creates no landmarks besides `<main>`; the slotted header and drawer bring their own
4614
+ * `banner` and `navigation` roles.
4615
+ * ## When to use
4616
+ * - The outer frame of an application page with a header and side navigation.
4617
+ * ## When not to use
4618
+ * - Content layout inside the page (use `bs-grid`) or resizable panes (use `bs-split-pane`).
4619
+ * - Pages that already have their own `<main>`; the shell would add a duplicate landmark.
4620
+ * @prop --bs-app-shell-bg - Shell background. Aliased to `--bs-surface-base`.
4621
+ * @prop --bs-app-shell-color - Text colour. Aliased to `--bs-text-default`.
4622
+ * @prop --bs-app-shell-main-padding - Padding of the main area. Aliased to `--bs-spacing-400`.
4623
+ * @prop --bs-app-shell-aside-width - Width of the aside column. Defaults to `auto` (zero when empty).
4624
+ */
4625
+ interface HTMLBsAppShellElement extends Components.BsAppShell, HTMLStencilElement {
4626
+ }
4627
+ var HTMLBsAppShellElement: {
4628
+ prototype: HTMLBsAppShellElement;
4629
+ new (): HTMLBsAppShellElement;
4630
+ };
4354
4631
  interface HTMLBsAttachmentElementEventMap {
4355
4632
  "bsRemove": void;
4356
4633
  }
@@ -5211,6 +5488,22 @@ declare global {
5211
5488
  prototype: HTMLBsComposerStatusBannerElement;
5212
5489
  new (): HTMLBsComposerStatusBannerElement;
5213
5490
  };
5491
+ /**
5492
+ * A centred wrapper that limits content width to a breakpoint and adds horizontal padding.
5493
+ * ## When to use
5494
+ * - Constraining page or section content to a readable, consistent maximum width.
5495
+ * ## When not to use
5496
+ * - Arranging children relative to each other (use `bs-stack`).
5497
+ * - Full-bleed regions such as hero backgrounds (use `size="fluid"` or no container).
5498
+ * @prop --bs-container-max-width - Maximum width. Aliased to the `--bs-breakpoint-*` token for `size`; `none` for `fluid`.
5499
+ * @prop --bs-container-padding - Horizontal padding. Aliased to the `padding` spacing token (default `--bs-spacing-300`).
5500
+ */
5501
+ interface HTMLBsContainerElement extends Components.BsContainer, HTMLStencilElement {
5502
+ }
5503
+ var HTMLBsContainerElement: {
5504
+ prototype: HTMLBsContainerElement;
5505
+ new (): HTMLBsContainerElement;
5506
+ };
5214
5507
  interface HTMLBsCookieConsentElementEventMap {
5215
5508
  "bsAccept": { choices: BsCookieChoices };
5216
5509
  "bsReject": { choices: BsCookieChoices };
@@ -5357,6 +5650,23 @@ declare global {
5357
5650
  prototype: HTMLBsDialogElement;
5358
5651
  new (): HTMLBsDialogElement;
5359
5652
  };
5653
+ /**
5654
+ * A thin line that separates content, horizontally or vertically.
5655
+ * ## When to use
5656
+ * - Separating groups of related content in a list, menu, toolbar or card.
5657
+ * ## When not to use
5658
+ * - Adding vertical space between blocks (use `bs-stack` gap or spacing tokens).
5659
+ * - Drawing a border around a surface (use `bs-card`).
5660
+ * @prop --bs-divider-thickness - Line thickness. Defaults to `1px`.
5661
+ * @prop --bs-divider-color - Line colour. Aliased to `--bs-border-neutral-container` (`default`) or `--bs-neutral-100` (`subtle`).
5662
+ * @prop --bs-divider-inset - Indent applied by `inset`. Aliased to `--bs-spacing-300`.
5663
+ */
5664
+ interface HTMLBsDividerElement extends Components.BsDivider, HTMLStencilElement {
5665
+ }
5666
+ var HTMLBsDividerElement: {
5667
+ prototype: HTMLBsDividerElement;
5668
+ new (): HTMLBsDividerElement;
5669
+ };
5360
5670
  interface HTMLBsErrorPageElementEventMap {
5361
5671
  "bsPrimary": void;
5362
5672
  "bsSecondary": void;
@@ -5447,6 +5757,30 @@ declare global {
5447
5757
  prototype: HTMLBsFileUploadItemElement;
5448
5758
  new (): HTMLBsFileUploadItemElement;
5449
5759
  };
5760
+ /**
5761
+ * A CSS grid layout wrapper. Children are placed in equal-width columns with a token-based gap.
5762
+ * `columns` takes either a number (`"3"` becomes `repeat(3, minmax(0, 1fr))`) or any raw
5763
+ * `grid-template-columns` value (`"200px 1fr"`). `minColumnWidth` is the responsive mechanism: it
5764
+ * switches to `repeat(auto-fit, minmax(min(100%, X), 1fr))`, so the column count adapts to the
5765
+ * container width and `columns` is ignored. There are deliberately no per-breakpoint props in v1.
5766
+ * `gap`, `rowGap` and `columnGap` take spacing token names (`"200"` maps to `var(--bs-spacing-200)`);
5767
+ * unknown names fall back to `100`.
5768
+ * ## When to use
5769
+ * - Card grids, form field grids and dashboards where items share equal column tracks.
5770
+ * - Responsive galleries via `minColumnWidth`.
5771
+ * ## When not to use
5772
+ * - A single row or column of items with no wrapping (plain flex).
5773
+ * - Resizable multi-pane layouts (use `bs-split-pane`) or the page frame (use `bs-app-shell`).
5774
+ * @prop --bs-grid-gap - Gap on both axes. Overrides the `gap` prop's token (default `--bs-spacing-100`).
5775
+ * @prop --bs-grid-row-gap - Row gap. Overrides `--bs-grid-gap` and the `rowGap` prop's token.
5776
+ * @prop --bs-grid-column-gap - Column gap. Overrides `--bs-grid-gap` and the `columnGap` prop's token.
5777
+ */
5778
+ interface HTMLBsGridElement extends Components.BsGrid, HTMLStencilElement {
5779
+ }
5780
+ var HTMLBsGridElement: {
5781
+ prototype: HTMLBsGridElement;
5782
+ new (): HTMLBsGridElement;
5783
+ };
5450
5784
  /**
5451
5785
  * A clickable, icon-only action element -- the icon-only sibling of `bs-button`, sharing the same
5452
5786
  * 8 visual variants and color language, but ALWAYS rendering just a single icon, never a label.
@@ -6346,6 +6680,73 @@ declare global {
6346
6680
  prototype: HTMLBsSpinnerElement;
6347
6681
  new (): HTMLBsSpinnerElement;
6348
6682
  };
6683
+ interface HTMLBsSplitPaneElementEventMap {
6684
+ "bsResize": number[];
6685
+ "bsCollapsedChange": boolean;
6686
+ }
6687
+ /**
6688
+ * A resizable layout of two or three panes separated by draggable, keyboard-operable dividers
6689
+ * (the WAI-ARIA "window splitter" pattern). Content goes into the named slots `pane-1`, `pane-2`
6690
+ * and (optionally) `pane-3`; the pane count follows which slots have content.
6691
+ * `orientation="horizontal"` places panes side by side (vertical dividers); `"vertical"` stacks
6692
+ * them (horizontal dividers). The first pane has a fixed size (`--bs-split-pane-first-size`) that
6693
+ * the user can change by dragging; the last pane absorbs the remaining space. `collapsed` shrinks
6694
+ * the first pane to a narrow rail (`--bs-split-pane-collapsed-size`) -- the component reflects the
6695
+ * attribute so slotted content can switch to its compact rendering (e.g. icon-only list items).
6696
+ * ## When to use
6697
+ * - Master/detail layouts: a navigation or list pane next to one or two detail panes.
6698
+ * ## When not to use
6699
+ * - A temporary overlay panel (use `bs-side-panel`).
6700
+ * - A fixed, non-resizable two-column layout (plain CSS grid; or set `resizable="false"` to keep
6701
+ * the dividers purely visual).
6702
+ * @prop --bs-split-pane-radius - Corner radius of the container. Aliased to `--bs-border-radius-100`.
6703
+ * @prop --bs-split-pane-bg - Pane background. Aliased to `--bs-surface-base`.
6704
+ * @prop --bs-split-pane-color - Text colour inherited by slotted content. Aliased to `--bs-text-default`.
6705
+ * @prop --bs-split-pane-first-size - Initial size of the first pane along the layout axis. Defaults to `333px` (Figma).
6706
+ * @prop --bs-split-pane-collapsed-size - Size of the first pane while `collapsed`. Defaults to `106px` (Figma).
6707
+ * @prop --bs-split-pane-min-size - Smallest size a resized pane may take. Defaults to `96px`.
6708
+ * @prop --bs-split-pane-divider-size - Thickness of a divider. Aliased to `--bs-spacing-75`.
6709
+ * @prop --bs-split-pane-divider-bg - Divider track colour. Aliased to `--bs-surface-container`.
6710
+ * @prop --bs-split-pane-divider-thumb - Divider thumb colour. Aliased to `--bs-border-neutral-container`.
6711
+ * @prop --bs-split-pane-divider-thumb-active - Divider thumb colour on hover, focus and drag. Aliased to `--bs-border-neutral-hover`.
6712
+ * @prop --bs-split-pane-divider-thumb-length - Length of the divider thumb. Defaults to `250px` (Figma).
6713
+ * @prop --bs-split-pane-border - Border between the first pane and the rest when dividers are not resizable. Aliased to `--bs-border-neutral-container`.
6714
+ * @prop --bs-split-pane-focus-ring - Divider focus ring colour. Aliased to `--bs-border-neutral-focus`.
6715
+ */
6716
+ interface HTMLBsSplitPaneElement extends Components.BsSplitPane, HTMLStencilElement {
6717
+ addEventListener<K extends keyof HTMLBsSplitPaneElementEventMap>(type: K, listener: (this: HTMLBsSplitPaneElement, ev: BsSplitPaneCustomEvent<HTMLBsSplitPaneElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
6718
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
6719
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
6720
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
6721
+ removeEventListener<K extends keyof HTMLBsSplitPaneElementEventMap>(type: K, listener: (this: HTMLBsSplitPaneElement, ev: BsSplitPaneCustomEvent<HTMLBsSplitPaneElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
6722
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
6723
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
6724
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
6725
+ }
6726
+ var HTMLBsSplitPaneElement: {
6727
+ prototype: HTMLBsSplitPaneElement;
6728
+ new (): HTMLBsSplitPaneElement;
6729
+ };
6730
+ /**
6731
+ * A flex layout that arranges its children in a row or column with a token-based gap, optionally
6732
+ * drawing a divider between children.
6733
+ * Built from: `bs-divider` (when `divider` is set).
6734
+ * With `divider`, each child is given a generated `slot="bs-stack-item-N"` attribute (plus a
6735
+ * `data-bs-stack-item` marker) so a divider can be rendered between the named slots. Light-DOM
6736
+ * nodes are never moved; the attributes are removed again when `divider` is turned off.
6737
+ * ## When to use
6738
+ * - Spacing and aligning a short run of siblings (form fields, button rows, card content).
6739
+ * ## When not to use
6740
+ * - Two-dimensional grids (use CSS grid).
6741
+ * - Resizable panes (use `bs-split-pane`).
6742
+ * @prop --bs-stack-gap - Space between items. Defaults from the `gap` prop (`--bs-spacing-<gap>`); may be overridden directly.
6743
+ */
6744
+ interface HTMLBsStackElement extends Components.BsStack, HTMLStencilElement {
6745
+ }
6746
+ var HTMLBsStackElement: {
6747
+ prototype: HTMLBsStackElement;
6748
+ new (): HTMLBsStackElement;
6749
+ };
6349
6750
  /**
6350
6751
  * A sequence of named steps showing overall progress through a multi-step flow (e.g. a checkout,
6351
6752
  * an onboarding wizard) -- each step reads as enabled (not yet reached), current, done, error, or
@@ -6679,6 +7080,7 @@ declare global {
6679
7080
  "bs-ai-disclaimer": HTMLBsAiDisclaimerElement;
6680
7081
  "bs-ai-greeting": HTMLBsAiGreetingElement;
6681
7082
  "bs-ai-thinking": HTMLBsAiThinkingElement;
7083
+ "bs-app-shell": HTMLBsAppShellElement;
6682
7084
  "bs-attachment": HTMLBsAttachmentElement;
6683
7085
  "bs-attachment-list": HTMLBsAttachmentListElement;
6684
7086
  "bs-avatar": HTMLBsAvatarElement;
@@ -6703,13 +7105,16 @@ declare global {
6703
7105
  "bs-citation-preview": HTMLBsCitationPreviewElement;
6704
7106
  "bs-composer": HTMLBsComposerElement;
6705
7107
  "bs-composer-status-banner": HTMLBsComposerStatusBannerElement;
7108
+ "bs-container": HTMLBsContainerElement;
6706
7109
  "bs-cookie-consent": HTMLBsCookieConsentElement;
6707
7110
  "bs-data-table": HTMLBsDataTableElement;
6708
7111
  "bs-datepicker": HTMLBsDatepickerElement;
6709
7112
  "bs-dialog": HTMLBsDialogElement;
7113
+ "bs-divider": HTMLBsDividerElement;
6710
7114
  "bs-error-page": HTMLBsErrorPageElement;
6711
7115
  "bs-file-upload": HTMLBsFileUploadElement;
6712
7116
  "bs-file-upload-item": HTMLBsFileUploadItemElement;
7117
+ "bs-grid": HTMLBsGridElement;
6713
7118
  "bs-icon-button": HTMLBsIconButtonElement;
6714
7119
  "bs-icon-tile": HTMLBsIconTileElement;
6715
7120
  "bs-inline-tab": HTMLBsInlineTabElement;
@@ -6737,6 +7142,8 @@ declare global {
6737
7142
  "bs-snackbar": HTMLBsSnackbarElement;
6738
7143
  "bs-source-link": HTMLBsSourceLinkElement;
6739
7144
  "bs-spinner": HTMLBsSpinnerElement;
7145
+ "bs-split-pane": HTMLBsSplitPaneElement;
7146
+ "bs-stack": HTMLBsStackElement;
6740
7147
  "bs-stepper": HTMLBsStepperElement;
6741
7148
  "bs-stepper-step": HTMLBsStepperStepElement;
6742
7149
  "bs-switch": HTMLBsSwitchElement;
@@ -6894,6 +7301,34 @@ declare namespace LocalJSX {
6894
7301
  */
6895
7302
  "label"?: string;
6896
7303
  }
7304
+ /**
7305
+ * The page frame: a header across the top, and below it a navigation | main | aside row, laid out
7306
+ * with CSS grid. The main column scrolls independently of the header and the side columns.
7307
+ * Layout only. Compose it from the existing shell components: put a `bs-navigation-header`
7308
+ * (usually `alignment="with-navigation-drawer"`) in `header` and a `bs-navigation-drawer` in
7309
+ * `navigation`. The drawer sizes itself (expanded or collapsed rail); the shell reserves an `auto`
7310
+ * track for it, so there is no `navigationWidth` prop. `bs-navigation-header` has no `collapsed`
7311
+ * prop, so there is no collapse state to mirror and the shell does not listen to `bsCollapse`: the
7312
+ * auto track follows the drawer's width on its own.
7313
+ * The shell creates no landmarks besides `<main>`; the slotted header and drawer bring their own
7314
+ * `banner` and `navigation` roles.
7315
+ * ## When to use
7316
+ * - The outer frame of an application page with a header and side navigation.
7317
+ * ## When not to use
7318
+ * - Content layout inside the page (use `bs-grid`) or resizable panes (use `bs-split-pane`).
7319
+ * - Pages that already have their own `<main>`; the shell would add a duplicate landmark.
7320
+ * @prop --bs-app-shell-bg - Shell background. Aliased to `--bs-surface-base`.
7321
+ * @prop --bs-app-shell-color - Text colour. Aliased to `--bs-text-default`.
7322
+ * @prop --bs-app-shell-main-padding - Padding of the main area. Aliased to `--bs-spacing-400`.
7323
+ * @prop --bs-app-shell-aside-width - Width of the aside column. Defaults to `auto` (zero when empty).
7324
+ */
7325
+ interface BsAppShell {
7326
+ /**
7327
+ * When true the host is `height: 100%`; when false it is content-sized with `min-height: 100vh`.
7328
+ * @default true
7329
+ */
7330
+ "fullHeight"?: boolean;
7331
+ }
6897
7332
  /**
6898
7333
  * A single file attachment preview for `bs-composer` -- an image thumbnail, or a filename card
6899
7334
  * with a colored file-type badge (PDF/Document), with an optional upload-in-progress spinner and
@@ -8277,6 +8712,28 @@ declare namespace LocalJSX {
8277
8712
  */
8278
8713
  "type"?: BsComposerStatusBannerType;
8279
8714
  }
8715
+ /**
8716
+ * A centred wrapper that limits content width to a breakpoint and adds horizontal padding.
8717
+ * ## When to use
8718
+ * - Constraining page or section content to a readable, consistent maximum width.
8719
+ * ## When not to use
8720
+ * - Arranging children relative to each other (use `bs-stack`).
8721
+ * - Full-bleed regions such as hero backgrounds (use `size="fluid"` or no container).
8722
+ * @prop --bs-container-max-width - Maximum width. Aliased to the `--bs-breakpoint-*` token for `size`; `none` for `fluid`.
8723
+ * @prop --bs-container-padding - Horizontal padding. Aliased to the `padding` spacing token (default `--bs-spacing-300`).
8724
+ */
8725
+ interface BsContainer {
8726
+ /**
8727
+ * Spacing token name for horizontal padding (e.g. `300` => `--bs-spacing-300`). Invalid values fall back to `300`.
8728
+ * @default '300'
8729
+ */
8730
+ "padding"?: string;
8731
+ /**
8732
+ * Maximum width, taken from the breakpoint tokens. `fluid` removes the limit.
8733
+ * @default 'xl'
8734
+ */
8735
+ "size"?: BsContainerSize;
8736
+ }
8280
8737
  /**
8281
8738
  * A cookie consent prompt in four forms, matching the Figma "Cookie consent" component:
8282
8739
  * - `banner` -- a wide bar: icon, heading, text, policy link, and Customise / Reject optional / Accept
@@ -8591,6 +9048,39 @@ declare namespace LocalJSX {
8591
9048
  */
8592
9049
  "size"?: BsDialogSize;
8593
9050
  }
9051
+ /**
9052
+ * A thin line that separates content, horizontally or vertically.
9053
+ * ## When to use
9054
+ * - Separating groups of related content in a list, menu, toolbar or card.
9055
+ * ## When not to use
9056
+ * - Adding vertical space between blocks (use `bs-stack` gap or spacing tokens).
9057
+ * - Drawing a border around a surface (use `bs-card`).
9058
+ * @prop --bs-divider-thickness - Line thickness. Defaults to `1px`.
9059
+ * @prop --bs-divider-color - Line colour. Aliased to `--bs-border-neutral-container` (`default`) or `--bs-neutral-100` (`subtle`).
9060
+ * @prop --bs-divider-inset - Indent applied by `inset`. Aliased to `--bs-spacing-300`.
9061
+ */
9062
+ interface BsDivider {
9063
+ /**
9064
+ * Purely visual: hides the divider from assistive technology instead of exposing a separator.
9065
+ * @default false
9066
+ */
9067
+ "decorative"?: boolean;
9068
+ /**
9069
+ * Indents the line from its start edge, or from both edges.
9070
+ * @default 'none'
9071
+ */
9072
+ "inset"?: BsDividerInset;
9073
+ /**
9074
+ * Direction of the line. A vertical divider stretches to the height of its container.
9075
+ * @default 'horizontal'
9076
+ */
9077
+ "orientation"?: BsDividerOrientation;
9078
+ /**
9079
+ * Visual weight of the line.
9080
+ * @default 'default'
9081
+ */
9082
+ "variant"?: BsDividerVariant;
9083
+ }
8594
9084
  /**
8595
9085
  * A full-block page for when the user can't get to what they asked for: page not found (404), a server
8596
9086
  * error (500), no access (403), planned maintenance, or no internet connection. Matches the Figma
@@ -8770,6 +9260,53 @@ declare namespace LocalJSX {
8770
9260
  */
8771
9261
  "thumbnailSrc"?: string;
8772
9262
  }
9263
+ /**
9264
+ * A CSS grid layout wrapper. Children are placed in equal-width columns with a token-based gap.
9265
+ * `columns` takes either a number (`"3"` becomes `repeat(3, minmax(0, 1fr))`) or any raw
9266
+ * `grid-template-columns` value (`"200px 1fr"`). `minColumnWidth` is the responsive mechanism: it
9267
+ * switches to `repeat(auto-fit, minmax(min(100%, X), 1fr))`, so the column count adapts to the
9268
+ * container width and `columns` is ignored. There are deliberately no per-breakpoint props in v1.
9269
+ * `gap`, `rowGap` and `columnGap` take spacing token names (`"200"` maps to `var(--bs-spacing-200)`);
9270
+ * unknown names fall back to `100`.
9271
+ * ## When to use
9272
+ * - Card grids, form field grids and dashboards where items share equal column tracks.
9273
+ * - Responsive galleries via `minColumnWidth`.
9274
+ * ## When not to use
9275
+ * - A single row or column of items with no wrapping (plain flex).
9276
+ * - Resizable multi-pane layouts (use `bs-split-pane`) or the page frame (use `bs-app-shell`).
9277
+ * @prop --bs-grid-gap - Gap on both axes. Overrides the `gap` prop's token (default `--bs-spacing-100`).
9278
+ * @prop --bs-grid-row-gap - Row gap. Overrides `--bs-grid-gap` and the `rowGap` prop's token.
9279
+ * @prop --bs-grid-column-gap - Column gap. Overrides `--bs-grid-gap` and the `columnGap` prop's token.
9280
+ */
9281
+ interface BsGrid {
9282
+ /**
9283
+ * Block-axis alignment of items within their cell.
9284
+ * @default 'stretch'
9285
+ */
9286
+ "align"?: BsGridAlign;
9287
+ /**
9288
+ * Spacing token name for the column gap; overrides `gap` for columns.
9289
+ */
9290
+ "columnGap"?: string;
9291
+ /**
9292
+ * A number of equal columns (`"3"`), or a raw `grid-template-columns` value. Ignored when `minColumnWidth` is set.
9293
+ * @default '1'
9294
+ */
9295
+ "columns"?: string;
9296
+ /**
9297
+ * Spacing token name for the gap on both axes, e.g. `"200"` for `--bs-spacing-200`.
9298
+ * @default '100'
9299
+ */
9300
+ "gap"?: string;
9301
+ /**
9302
+ * CSS length (e.g. `240px`). Switches to auto-fit columns at least this wide and overrides `columns`.
9303
+ */
9304
+ "minColumnWidth"?: string;
9305
+ /**
9306
+ * Spacing token name for the row gap; overrides `gap` for rows.
9307
+ */
9308
+ "rowGap"?: string;
9309
+ }
8773
9310
  /**
8774
9311
  * A clickable, icon-only action element -- the icon-only sibling of `bs-button`, sharing the same
8775
9312
  * 8 visual variants and color language, but ALWAYS rendering just a single icon, never a label.
@@ -10504,6 +11041,116 @@ declare namespace LocalJSX {
10504
11041
  */
10505
11042
  "size"?: BsSpinnerSize;
10506
11043
  }
11044
+ /**
11045
+ * A resizable layout of two or three panes separated by draggable, keyboard-operable dividers
11046
+ * (the WAI-ARIA "window splitter" pattern). Content goes into the named slots `pane-1`, `pane-2`
11047
+ * and (optionally) `pane-3`; the pane count follows which slots have content.
11048
+ * `orientation="horizontal"` places panes side by side (vertical dividers); `"vertical"` stacks
11049
+ * them (horizontal dividers). The first pane has a fixed size (`--bs-split-pane-first-size`) that
11050
+ * the user can change by dragging; the last pane absorbs the remaining space. `collapsed` shrinks
11051
+ * the first pane to a narrow rail (`--bs-split-pane-collapsed-size`) -- the component reflects the
11052
+ * attribute so slotted content can switch to its compact rendering (e.g. icon-only list items).
11053
+ * ## When to use
11054
+ * - Master/detail layouts: a navigation or list pane next to one or two detail panes.
11055
+ * ## When not to use
11056
+ * - A temporary overlay panel (use `bs-side-panel`).
11057
+ * - A fixed, non-resizable two-column layout (plain CSS grid; or set `resizable="false"` to keep
11058
+ * the dividers purely visual).
11059
+ * @prop --bs-split-pane-radius - Corner radius of the container. Aliased to `--bs-border-radius-100`.
11060
+ * @prop --bs-split-pane-bg - Pane background. Aliased to `--bs-surface-base`.
11061
+ * @prop --bs-split-pane-color - Text colour inherited by slotted content. Aliased to `--bs-text-default`.
11062
+ * @prop --bs-split-pane-first-size - Initial size of the first pane along the layout axis. Defaults to `333px` (Figma).
11063
+ * @prop --bs-split-pane-collapsed-size - Size of the first pane while `collapsed`. Defaults to `106px` (Figma).
11064
+ * @prop --bs-split-pane-min-size - Smallest size a resized pane may take. Defaults to `96px`.
11065
+ * @prop --bs-split-pane-divider-size - Thickness of a divider. Aliased to `--bs-spacing-75`.
11066
+ * @prop --bs-split-pane-divider-bg - Divider track colour. Aliased to `--bs-surface-container`.
11067
+ * @prop --bs-split-pane-divider-thumb - Divider thumb colour. Aliased to `--bs-border-neutral-container`.
11068
+ * @prop --bs-split-pane-divider-thumb-active - Divider thumb colour on hover, focus and drag. Aliased to `--bs-border-neutral-hover`.
11069
+ * @prop --bs-split-pane-divider-thumb-length - Length of the divider thumb. Defaults to `250px` (Figma).
11070
+ * @prop --bs-split-pane-border - Border between the first pane and the rest when dividers are not resizable. Aliased to `--bs-border-neutral-container`.
11071
+ * @prop --bs-split-pane-focus-ring - Divider focus ring colour. Aliased to `--bs-border-neutral-focus`.
11072
+ */
11073
+ interface BsSplitPane {
11074
+ /**
11075
+ * Collapses the first pane to a narrow rail. Mutable: the Enter key on the first divider toggles it.
11076
+ * @default false
11077
+ */
11078
+ "collapsed"?: boolean;
11079
+ /**
11080
+ * Accessible name of each divider.
11081
+ * @default 'Resize panes'
11082
+ */
11083
+ "dividerLabel"?: string;
11084
+ /**
11085
+ * Fires when `collapsed` changes through user interaction.
11086
+ */
11087
+ "onBsCollapsedChange"?: (event: BsSplitPaneCustomEvent<boolean>) => void;
11088
+ /**
11089
+ * Fires after a resize (pointer release or key press) with the pixel size of every pane except the last.
11090
+ */
11091
+ "onBsResize"?: (event: BsSplitPaneCustomEvent<number[]>) => void;
11092
+ /**
11093
+ * `horizontal` = panes side by side, `vertical` = panes stacked.
11094
+ * @default 'horizontal'
11095
+ */
11096
+ "orientation"?: BsSplitPaneOrientation;
11097
+ /**
11098
+ * Whether the dividers can be dragged / operated by keyboard. `false` keeps them as visual separators.
11099
+ * @default true
11100
+ */
11101
+ "resizable"?: boolean;
11102
+ /**
11103
+ * Pixels moved per arrow-key press (Shift multiplies by 4).
11104
+ * @default 16
11105
+ */
11106
+ "step"?: number;
11107
+ }
11108
+ /**
11109
+ * A flex layout that arranges its children in a row or column with a token-based gap, optionally
11110
+ * drawing a divider between children.
11111
+ * Built from: `bs-divider` (when `divider` is set).
11112
+ * With `divider`, each child is given a generated `slot="bs-stack-item-N"` attribute (plus a
11113
+ * `data-bs-stack-item` marker) so a divider can be rendered between the named slots. Light-DOM
11114
+ * nodes are never moved; the attributes are removed again when `divider` is turned off.
11115
+ * ## When to use
11116
+ * - Spacing and aligning a short run of siblings (form fields, button rows, card content).
11117
+ * ## When not to use
11118
+ * - Two-dimensional grids (use CSS grid).
11119
+ * - Resizable panes (use `bs-split-pane`).
11120
+ * @prop --bs-stack-gap - Space between items. Defaults from the `gap` prop (`--bs-spacing-<gap>`); may be overridden directly.
11121
+ */
11122
+ interface BsStack {
11123
+ /**
11124
+ * Cross-axis alignment.
11125
+ * @default 'stretch'
11126
+ */
11127
+ "align"?: BsStackAlign;
11128
+ /**
11129
+ * Main axis: `vertical` stacks children in a column, `horizontal` in a row.
11130
+ * @default 'vertical'
11131
+ */
11132
+ "direction"?: BsStackDirection;
11133
+ /**
11134
+ * Renders a decorative `bs-divider` between each child.
11135
+ * @default false
11136
+ */
11137
+ "divider"?: boolean;
11138
+ /**
11139
+ * Spacing token name (e.g. `200` => `--bs-spacing-200`). Invalid values fall back to `100`.
11140
+ * @default '100'
11141
+ */
11142
+ "gap"?: string;
11143
+ /**
11144
+ * Main-axis distribution.
11145
+ * @default 'start'
11146
+ */
11147
+ "justify"?: BsStackJustify;
11148
+ /**
11149
+ * Lets items wrap onto further lines.
11150
+ * @default false
11151
+ */
11152
+ "wrap"?: boolean;
11153
+ }
10507
11154
  /**
10508
11155
  * A sequence of named steps showing overall progress through a multi-step flow (e.g. a checkout,
10509
11156
  * an onboarding wizard) -- each step reads as enabled (not yet reached), current, done, error, or
@@ -11161,6 +11808,9 @@ declare namespace LocalJSX {
11161
11808
  interface BsAiThinkingAttributes {
11162
11809
  "label": string;
11163
11810
  }
11811
+ interface BsAppShellAttributes {
11812
+ "fullHeight": boolean;
11813
+ }
11164
11814
  interface BsAttachmentAttributes {
11165
11815
  "uploadingLabel": string;
11166
11816
  "removeLabel": string;
@@ -11342,6 +11992,10 @@ declare namespace LocalJSX {
11342
11992
  "closeLabel": string;
11343
11993
  "allowClose": boolean;
11344
11994
  }
11995
+ interface BsContainerAttributes {
11996
+ "size": BsContainerSize;
11997
+ "padding": string;
11998
+ }
11345
11999
  interface BsCookieConsentAttributes {
11346
12000
  "type": BsCookieConsentType;
11347
12001
  "heading": string;
@@ -11388,6 +12042,12 @@ declare namespace LocalJSX {
11388
12042
  "size": BsDialogSize;
11389
12043
  "centered": boolean;
11390
12044
  }
12045
+ interface BsDividerAttributes {
12046
+ "orientation": BsDividerOrientation;
12047
+ "variant": BsDividerVariant;
12048
+ "inset": BsDividerInset;
12049
+ "decorative": boolean;
12050
+ }
11391
12051
  interface BsErrorPageAttributes {
11392
12052
  "type": BsErrorPageType;
11393
12053
  "code": string;
@@ -11419,6 +12079,14 @@ declare namespace LocalJSX {
11419
12079
  "cancelLabel": string;
11420
12080
  "removeLabel": string;
11421
12081
  }
12082
+ interface BsGridAttributes {
12083
+ "columns": string;
12084
+ "gap": string;
12085
+ "rowGap": string;
12086
+ "columnGap": string;
12087
+ "minColumnWidth": string;
12088
+ "align": BsGridAlign;
12089
+ }
11422
12090
  interface BsIconButtonAttributes {
11423
12091
  "variant": BsIconButtonVariant;
11424
12092
  "size": BsIconButtonSize;
@@ -11680,6 +12348,21 @@ declare namespace LocalJSX {
11680
12348
  "size": BsSpinnerSize;
11681
12349
  "label": string;
11682
12350
  }
12351
+ interface BsSplitPaneAttributes {
12352
+ "orientation": BsSplitPaneOrientation;
12353
+ "collapsed": boolean;
12354
+ "resizable": boolean;
12355
+ "dividerLabel": string;
12356
+ "step": number;
12357
+ }
12358
+ interface BsStackAttributes {
12359
+ "direction": BsStackDirection;
12360
+ "gap": string;
12361
+ "align": BsStackAlign;
12362
+ "justify": BsStackJustify;
12363
+ "wrap": boolean;
12364
+ "divider": boolean;
12365
+ }
11683
12366
  interface BsStepperAttributes {
11684
12367
  "currentStep": number;
11685
12368
  "direction": BsStepperDirection;
@@ -11784,6 +12467,7 @@ declare namespace LocalJSX {
11784
12467
  "bs-ai-disclaimer": BsAiDisclaimer;
11785
12468
  "bs-ai-greeting": Omit<BsAiGreeting, keyof BsAiGreetingAttributes> & { [K in keyof BsAiGreeting & keyof BsAiGreetingAttributes]?: BsAiGreeting[K] } & { [K in keyof BsAiGreeting & keyof BsAiGreetingAttributes as `attr:${K}`]?: BsAiGreetingAttributes[K] } & { [K in keyof BsAiGreeting & keyof BsAiGreetingAttributes as `prop:${K}`]?: BsAiGreeting[K] };
11786
12469
  "bs-ai-thinking": Omit<BsAiThinking, keyof BsAiThinkingAttributes> & { [K in keyof BsAiThinking & keyof BsAiThinkingAttributes]?: BsAiThinking[K] } & { [K in keyof BsAiThinking & keyof BsAiThinkingAttributes as `attr:${K}`]?: BsAiThinkingAttributes[K] } & { [K in keyof BsAiThinking & keyof BsAiThinkingAttributes as `prop:${K}`]?: BsAiThinking[K] };
12470
+ "bs-app-shell": Omit<BsAppShell, keyof BsAppShellAttributes> & { [K in keyof BsAppShell & keyof BsAppShellAttributes]?: BsAppShell[K] } & { [K in keyof BsAppShell & keyof BsAppShellAttributes as `attr:${K}`]?: BsAppShellAttributes[K] } & { [K in keyof BsAppShell & keyof BsAppShellAttributes as `prop:${K}`]?: BsAppShell[K] };
11787
12471
  "bs-attachment": Omit<BsAttachment, keyof BsAttachmentAttributes> & { [K in keyof BsAttachment & keyof BsAttachmentAttributes]?: BsAttachment[K] } & { [K in keyof BsAttachment & keyof BsAttachmentAttributes as `attr:${K}`]?: BsAttachmentAttributes[K] } & { [K in keyof BsAttachment & keyof BsAttachmentAttributes as `prop:${K}`]?: BsAttachment[K] };
11788
12472
  "bs-attachment-list": Omit<BsAttachmentList, keyof BsAttachmentListAttributes> & { [K in keyof BsAttachmentList & keyof BsAttachmentListAttributes]?: BsAttachmentList[K] } & { [K in keyof BsAttachmentList & keyof BsAttachmentListAttributes as `attr:${K}`]?: BsAttachmentListAttributes[K] } & { [K in keyof BsAttachmentList & keyof BsAttachmentListAttributes as `prop:${K}`]?: BsAttachmentList[K] };
11789
12473
  "bs-avatar": Omit<BsAvatar, keyof BsAvatarAttributes> & { [K in keyof BsAvatar & keyof BsAvatarAttributes]?: BsAvatar[K] } & { [K in keyof BsAvatar & keyof BsAvatarAttributes as `attr:${K}`]?: BsAvatarAttributes[K] } & { [K in keyof BsAvatar & keyof BsAvatarAttributes as `prop:${K}`]?: BsAvatar[K] };
@@ -11808,13 +12492,16 @@ declare namespace LocalJSX {
11808
12492
  "bs-citation-preview": Omit<BsCitationPreview, keyof BsCitationPreviewAttributes> & { [K in keyof BsCitationPreview & keyof BsCitationPreviewAttributes]?: BsCitationPreview[K] } & { [K in keyof BsCitationPreview & keyof BsCitationPreviewAttributes as `attr:${K}`]?: BsCitationPreviewAttributes[K] } & { [K in keyof BsCitationPreview & keyof BsCitationPreviewAttributes as `prop:${K}`]?: BsCitationPreview[K] };
11809
12493
  "bs-composer": Omit<BsComposer, keyof BsComposerAttributes> & { [K in keyof BsComposer & keyof BsComposerAttributes]?: BsComposer[K] } & { [K in keyof BsComposer & keyof BsComposerAttributes as `attr:${K}`]?: BsComposerAttributes[K] } & { [K in keyof BsComposer & keyof BsComposerAttributes as `prop:${K}`]?: BsComposer[K] };
11810
12494
  "bs-composer-status-banner": Omit<BsComposerStatusBanner, keyof BsComposerStatusBannerAttributes> & { [K in keyof BsComposerStatusBanner & keyof BsComposerStatusBannerAttributes]?: BsComposerStatusBanner[K] } & { [K in keyof BsComposerStatusBanner & keyof BsComposerStatusBannerAttributes as `attr:${K}`]?: BsComposerStatusBannerAttributes[K] } & { [K in keyof BsComposerStatusBanner & keyof BsComposerStatusBannerAttributes as `prop:${K}`]?: BsComposerStatusBanner[K] };
12495
+ "bs-container": Omit<BsContainer, keyof BsContainerAttributes> & { [K in keyof BsContainer & keyof BsContainerAttributes]?: BsContainer[K] } & { [K in keyof BsContainer & keyof BsContainerAttributes as `attr:${K}`]?: BsContainerAttributes[K] } & { [K in keyof BsContainer & keyof BsContainerAttributes as `prop:${K}`]?: BsContainer[K] };
11811
12496
  "bs-cookie-consent": Omit<BsCookieConsent, keyof BsCookieConsentAttributes> & { [K in keyof BsCookieConsent & keyof BsCookieConsentAttributes]?: BsCookieConsent[K] } & { [K in keyof BsCookieConsent & keyof BsCookieConsentAttributes as `attr:${K}`]?: BsCookieConsentAttributes[K] } & { [K in keyof BsCookieConsent & keyof BsCookieConsentAttributes as `prop:${K}`]?: BsCookieConsent[K] };
11812
12497
  "bs-data-table": Omit<BsDataTable, keyof BsDataTableAttributes> & { [K in keyof BsDataTable & keyof BsDataTableAttributes]?: BsDataTable[K] } & { [K in keyof BsDataTable & keyof BsDataTableAttributes as `attr:${K}`]?: BsDataTableAttributes[K] } & { [K in keyof BsDataTable & keyof BsDataTableAttributes as `prop:${K}`]?: BsDataTable[K] };
11813
12498
  "bs-datepicker": Omit<BsDatepicker, keyof BsDatepickerAttributes> & { [K in keyof BsDatepicker & keyof BsDatepickerAttributes]?: BsDatepicker[K] } & { [K in keyof BsDatepicker & keyof BsDatepickerAttributes as `attr:${K}`]?: BsDatepickerAttributes[K] } & { [K in keyof BsDatepicker & keyof BsDatepickerAttributes as `prop:${K}`]?: BsDatepicker[K] };
11814
12499
  "bs-dialog": Omit<BsDialog, keyof BsDialogAttributes> & { [K in keyof BsDialog & keyof BsDialogAttributes]?: BsDialog[K] } & { [K in keyof BsDialog & keyof BsDialogAttributes as `attr:${K}`]?: BsDialogAttributes[K] } & { [K in keyof BsDialog & keyof BsDialogAttributes as `prop:${K}`]?: BsDialog[K] };
12500
+ "bs-divider": Omit<BsDivider, keyof BsDividerAttributes> & { [K in keyof BsDivider & keyof BsDividerAttributes]?: BsDivider[K] } & { [K in keyof BsDivider & keyof BsDividerAttributes as `attr:${K}`]?: BsDividerAttributes[K] } & { [K in keyof BsDivider & keyof BsDividerAttributes as `prop:${K}`]?: BsDivider[K] };
11815
12501
  "bs-error-page": Omit<BsErrorPage, keyof BsErrorPageAttributes> & { [K in keyof BsErrorPage & keyof BsErrorPageAttributes]?: BsErrorPage[K] } & { [K in keyof BsErrorPage & keyof BsErrorPageAttributes as `attr:${K}`]?: BsErrorPageAttributes[K] } & { [K in keyof BsErrorPage & keyof BsErrorPageAttributes as `prop:${K}`]?: BsErrorPage[K] };
11816
12502
  "bs-file-upload": Omit<BsFileUpload, keyof BsFileUploadAttributes> & { [K in keyof BsFileUpload & keyof BsFileUploadAttributes]?: BsFileUpload[K] } & { [K in keyof BsFileUpload & keyof BsFileUploadAttributes as `attr:${K}`]?: BsFileUploadAttributes[K] } & { [K in keyof BsFileUpload & keyof BsFileUploadAttributes as `prop:${K}`]?: BsFileUpload[K] };
11817
12503
  "bs-file-upload-item": Omit<BsFileUploadItem, keyof BsFileUploadItemAttributes> & { [K in keyof BsFileUploadItem & keyof BsFileUploadItemAttributes]?: BsFileUploadItem[K] } & { [K in keyof BsFileUploadItem & keyof BsFileUploadItemAttributes as `attr:${K}`]?: BsFileUploadItemAttributes[K] } & { [K in keyof BsFileUploadItem & keyof BsFileUploadItemAttributes as `prop:${K}`]?: BsFileUploadItem[K] };
12504
+ "bs-grid": Omit<BsGrid, keyof BsGridAttributes> & { [K in keyof BsGrid & keyof BsGridAttributes]?: BsGrid[K] } & { [K in keyof BsGrid & keyof BsGridAttributes as `attr:${K}`]?: BsGridAttributes[K] } & { [K in keyof BsGrid & keyof BsGridAttributes as `prop:${K}`]?: BsGrid[K] };
11818
12505
  "bs-icon-button": Omit<BsIconButton, keyof BsIconButtonAttributes> & { [K in keyof BsIconButton & keyof BsIconButtonAttributes]?: BsIconButton[K] } & { [K in keyof BsIconButton & keyof BsIconButtonAttributes as `attr:${K}`]?: BsIconButtonAttributes[K] } & { [K in keyof BsIconButton & keyof BsIconButtonAttributes as `prop:${K}`]?: BsIconButton[K] };
11819
12506
  "bs-icon-tile": Omit<BsIconTile, keyof BsIconTileAttributes> & { [K in keyof BsIconTile & keyof BsIconTileAttributes]?: BsIconTile[K] } & { [K in keyof BsIconTile & keyof BsIconTileAttributes as `attr:${K}`]?: BsIconTileAttributes[K] } & { [K in keyof BsIconTile & keyof BsIconTileAttributes as `prop:${K}`]?: BsIconTile[K] };
11820
12507
  "bs-inline-tab": Omit<BsInlineTab, keyof BsInlineTabAttributes> & { [K in keyof BsInlineTab & keyof BsInlineTabAttributes]?: BsInlineTab[K] } & { [K in keyof BsInlineTab & keyof BsInlineTabAttributes as `attr:${K}`]?: BsInlineTabAttributes[K] } & { [K in keyof BsInlineTab & keyof BsInlineTabAttributes as `prop:${K}`]?: BsInlineTab[K] };
@@ -11842,6 +12529,8 @@ declare namespace LocalJSX {
11842
12529
  "bs-snackbar": Omit<BsSnackbar, keyof BsSnackbarAttributes> & { [K in keyof BsSnackbar & keyof BsSnackbarAttributes]?: BsSnackbar[K] } & { [K in keyof BsSnackbar & keyof BsSnackbarAttributes as `attr:${K}`]?: BsSnackbarAttributes[K] } & { [K in keyof BsSnackbar & keyof BsSnackbarAttributes as `prop:${K}`]?: BsSnackbar[K] };
11843
12530
  "bs-source-link": Omit<BsSourceLink, keyof BsSourceLinkAttributes> & { [K in keyof BsSourceLink & keyof BsSourceLinkAttributes]?: BsSourceLink[K] } & { [K in keyof BsSourceLink & keyof BsSourceLinkAttributes as `attr:${K}`]?: BsSourceLinkAttributes[K] } & { [K in keyof BsSourceLink & keyof BsSourceLinkAttributes as `prop:${K}`]?: BsSourceLink[K] };
11844
12531
  "bs-spinner": Omit<BsSpinner, keyof BsSpinnerAttributes> & { [K in keyof BsSpinner & keyof BsSpinnerAttributes]?: BsSpinner[K] } & { [K in keyof BsSpinner & keyof BsSpinnerAttributes as `attr:${K}`]?: BsSpinnerAttributes[K] } & { [K in keyof BsSpinner & keyof BsSpinnerAttributes as `prop:${K}`]?: BsSpinner[K] };
12532
+ "bs-split-pane": Omit<BsSplitPane, keyof BsSplitPaneAttributes> & { [K in keyof BsSplitPane & keyof BsSplitPaneAttributes]?: BsSplitPane[K] } & { [K in keyof BsSplitPane & keyof BsSplitPaneAttributes as `attr:${K}`]?: BsSplitPaneAttributes[K] } & { [K in keyof BsSplitPane & keyof BsSplitPaneAttributes as `prop:${K}`]?: BsSplitPane[K] };
12533
+ "bs-stack": Omit<BsStack, keyof BsStackAttributes> & { [K in keyof BsStack & keyof BsStackAttributes]?: BsStack[K] } & { [K in keyof BsStack & keyof BsStackAttributes as `attr:${K}`]?: BsStackAttributes[K] } & { [K in keyof BsStack & keyof BsStackAttributes as `prop:${K}`]?: BsStack[K] };
11845
12534
  "bs-stepper": Omit<BsStepper, keyof BsStepperAttributes> & { [K in keyof BsStepper & keyof BsStepperAttributes]?: BsStepper[K] } & { [K in keyof BsStepper & keyof BsStepperAttributes as `attr:${K}`]?: BsStepperAttributes[K] } & { [K in keyof BsStepper & keyof BsStepperAttributes as `prop:${K}`]?: BsStepper[K] };
11846
12535
  "bs-stepper-step": Omit<BsStepperStep, keyof BsStepperStepAttributes> & { [K in keyof BsStepperStep & keyof BsStepperStepAttributes]?: BsStepperStep[K] } & { [K in keyof BsStepperStep & keyof BsStepperStepAttributes as `attr:${K}`]?: BsStepperStepAttributes[K] } & { [K in keyof BsStepperStep & keyof BsStepperStepAttributes as `prop:${K}`]?: BsStepperStep[K] };
11847
12536
  "bs-switch": Omit<BsSwitch, keyof BsSwitchAttributes> & { [K in keyof BsSwitch & keyof BsSwitchAttributes]?: BsSwitch[K] } & { [K in keyof BsSwitch & keyof BsSwitchAttributes as `attr:${K}`]?: BsSwitchAttributes[K] } & { [K in keyof BsSwitch & keyof BsSwitchAttributes as `prop:${K}`]?: BsSwitch[K] };
@@ -11949,6 +12638,28 @@ declare module "@stencil/core" {
11949
12638
  * `--bs-duration-slower` is 500ms), so this is aliased directly to the literal value.
11950
12639
  */
11951
12640
  "bs-ai-thinking": LocalJSX.IntrinsicElements["bs-ai-thinking"] & JSXBase.HTMLAttributes<HTMLBsAiThinkingElement>;
12641
+ /**
12642
+ * The page frame: a header across the top, and below it a navigation | main | aside row, laid out
12643
+ * with CSS grid. The main column scrolls independently of the header and the side columns.
12644
+ * Layout only. Compose it from the existing shell components: put a `bs-navigation-header`
12645
+ * (usually `alignment="with-navigation-drawer"`) in `header` and a `bs-navigation-drawer` in
12646
+ * `navigation`. The drawer sizes itself (expanded or collapsed rail); the shell reserves an `auto`
12647
+ * track for it, so there is no `navigationWidth` prop. `bs-navigation-header` has no `collapsed`
12648
+ * prop, so there is no collapse state to mirror and the shell does not listen to `bsCollapse`: the
12649
+ * auto track follows the drawer's width on its own.
12650
+ * The shell creates no landmarks besides `<main>`; the slotted header and drawer bring their own
12651
+ * `banner` and `navigation` roles.
12652
+ * ## When to use
12653
+ * - The outer frame of an application page with a header and side navigation.
12654
+ * ## When not to use
12655
+ * - Content layout inside the page (use `bs-grid`) or resizable panes (use `bs-split-pane`).
12656
+ * - Pages that already have their own `<main>`; the shell would add a duplicate landmark.
12657
+ * @prop --bs-app-shell-bg - Shell background. Aliased to `--bs-surface-base`.
12658
+ * @prop --bs-app-shell-color - Text colour. Aliased to `--bs-text-default`.
12659
+ * @prop --bs-app-shell-main-padding - Padding of the main area. Aliased to `--bs-spacing-400`.
12660
+ * @prop --bs-app-shell-aside-width - Width of the aside column. Defaults to `auto` (zero when empty).
12661
+ */
12662
+ "bs-app-shell": LocalJSX.IntrinsicElements["bs-app-shell"] & JSXBase.HTMLAttributes<HTMLBsAppShellElement>;
11952
12663
  /**
11953
12664
  * A single file attachment preview for `bs-composer` -- an image thumbnail, or a filename card
11954
12665
  * with a colored file-type badge (PDF/Document), with an optional upload-in-progress spinner and
@@ -12504,6 +13215,17 @@ declare module "@stencil/core" {
12504
13215
  * every `type`). Aliased to `--bs-color-neutral-container-hover`.
12505
13216
  */
12506
13217
  "bs-composer-status-banner": LocalJSX.IntrinsicElements["bs-composer-status-banner"] & JSXBase.HTMLAttributes<HTMLBsComposerStatusBannerElement>;
13218
+ /**
13219
+ * A centred wrapper that limits content width to a breakpoint and adds horizontal padding.
13220
+ * ## When to use
13221
+ * - Constraining page or section content to a readable, consistent maximum width.
13222
+ * ## When not to use
13223
+ * - Arranging children relative to each other (use `bs-stack`).
13224
+ * - Full-bleed regions such as hero backgrounds (use `size="fluid"` or no container).
13225
+ * @prop --bs-container-max-width - Maximum width. Aliased to the `--bs-breakpoint-*` token for `size`; `none` for `fluid`.
13226
+ * @prop --bs-container-padding - Horizontal padding. Aliased to the `padding` spacing token (default `--bs-spacing-300`).
13227
+ */
13228
+ "bs-container": LocalJSX.IntrinsicElements["bs-container"] & JSXBase.HTMLAttributes<HTMLBsContainerElement>;
12507
13229
  /**
12508
13230
  * A cookie consent prompt in four forms, matching the Figma "Cookie consent" component:
12509
13231
  * - `banner` -- a wide bar: icon, heading, text, policy link, and Customise / Reject optional / Accept
@@ -12579,6 +13301,18 @@ declare module "@stencil/core" {
12579
13301
  * button in the header row next to the heading, same as before this addition.
12580
13302
  */
12581
13303
  "bs-dialog": LocalJSX.IntrinsicElements["bs-dialog"] & JSXBase.HTMLAttributes<HTMLBsDialogElement>;
13304
+ /**
13305
+ * A thin line that separates content, horizontally or vertically.
13306
+ * ## When to use
13307
+ * - Separating groups of related content in a list, menu, toolbar or card.
13308
+ * ## When not to use
13309
+ * - Adding vertical space between blocks (use `bs-stack` gap or spacing tokens).
13310
+ * - Drawing a border around a surface (use `bs-card`).
13311
+ * @prop --bs-divider-thickness - Line thickness. Defaults to `1px`.
13312
+ * @prop --bs-divider-color - Line colour. Aliased to `--bs-border-neutral-container` (`default`) or `--bs-neutral-100` (`subtle`).
13313
+ * @prop --bs-divider-inset - Indent applied by `inset`. Aliased to `--bs-spacing-300`.
13314
+ */
13315
+ "bs-divider": LocalJSX.IntrinsicElements["bs-divider"] & JSXBase.HTMLAttributes<HTMLBsDividerElement>;
12582
13316
  /**
12583
13317
  * A full-block page for when the user can't get to what they asked for: page not found (404), a server
12584
13318
  * error (500), no access (403), planned maintenance, or no internet connection. Matches the Figma
@@ -12618,6 +13352,25 @@ declare module "@stencil/core" {
12618
13352
  * - Attaching files to a chat message -- use `bs-attachment`.
12619
13353
  */
12620
13354
  "bs-file-upload-item": LocalJSX.IntrinsicElements["bs-file-upload-item"] & JSXBase.HTMLAttributes<HTMLBsFileUploadItemElement>;
13355
+ /**
13356
+ * A CSS grid layout wrapper. Children are placed in equal-width columns with a token-based gap.
13357
+ * `columns` takes either a number (`"3"` becomes `repeat(3, minmax(0, 1fr))`) or any raw
13358
+ * `grid-template-columns` value (`"200px 1fr"`). `minColumnWidth` is the responsive mechanism: it
13359
+ * switches to `repeat(auto-fit, minmax(min(100%, X), 1fr))`, so the column count adapts to the
13360
+ * container width and `columns` is ignored. There are deliberately no per-breakpoint props in v1.
13361
+ * `gap`, `rowGap` and `columnGap` take spacing token names (`"200"` maps to `var(--bs-spacing-200)`);
13362
+ * unknown names fall back to `100`.
13363
+ * ## When to use
13364
+ * - Card grids, form field grids and dashboards where items share equal column tracks.
13365
+ * - Responsive galleries via `minColumnWidth`.
13366
+ * ## When not to use
13367
+ * - A single row or column of items with no wrapping (plain flex).
13368
+ * - Resizable multi-pane layouts (use `bs-split-pane`) or the page frame (use `bs-app-shell`).
13369
+ * @prop --bs-grid-gap - Gap on both axes. Overrides the `gap` prop's token (default `--bs-spacing-100`).
13370
+ * @prop --bs-grid-row-gap - Row gap. Overrides `--bs-grid-gap` and the `rowGap` prop's token.
13371
+ * @prop --bs-grid-column-gap - Column gap. Overrides `--bs-grid-gap` and the `columnGap` prop's token.
13372
+ */
13373
+ "bs-grid": LocalJSX.IntrinsicElements["bs-grid"] & JSXBase.HTMLAttributes<HTMLBsGridElement>;
12621
13374
  /**
12622
13375
  * A clickable, icon-only action element -- the icon-only sibling of `bs-button`, sharing the same
12623
13376
  * 8 visual variants and color language, but ALWAYS rendering just a single icon, never a label.
@@ -13169,6 +13922,51 @@ declare module "@stencil/core" {
13169
13922
  * @prop --bs-spinner-duration - Rotation duration. Defaults to `0.8s`.
13170
13923
  */
13171
13924
  "bs-spinner": LocalJSX.IntrinsicElements["bs-spinner"] & JSXBase.HTMLAttributes<HTMLBsSpinnerElement>;
13925
+ /**
13926
+ * A resizable layout of two or three panes separated by draggable, keyboard-operable dividers
13927
+ * (the WAI-ARIA "window splitter" pattern). Content goes into the named slots `pane-1`, `pane-2`
13928
+ * and (optionally) `pane-3`; the pane count follows which slots have content.
13929
+ * `orientation="horizontal"` places panes side by side (vertical dividers); `"vertical"` stacks
13930
+ * them (horizontal dividers). The first pane has a fixed size (`--bs-split-pane-first-size`) that
13931
+ * the user can change by dragging; the last pane absorbs the remaining space. `collapsed` shrinks
13932
+ * the first pane to a narrow rail (`--bs-split-pane-collapsed-size`) -- the component reflects the
13933
+ * attribute so slotted content can switch to its compact rendering (e.g. icon-only list items).
13934
+ * ## When to use
13935
+ * - Master/detail layouts: a navigation or list pane next to one or two detail panes.
13936
+ * ## When not to use
13937
+ * - A temporary overlay panel (use `bs-side-panel`).
13938
+ * - A fixed, non-resizable two-column layout (plain CSS grid; or set `resizable="false"` to keep
13939
+ * the dividers purely visual).
13940
+ * @prop --bs-split-pane-radius - Corner radius of the container. Aliased to `--bs-border-radius-100`.
13941
+ * @prop --bs-split-pane-bg - Pane background. Aliased to `--bs-surface-base`.
13942
+ * @prop --bs-split-pane-color - Text colour inherited by slotted content. Aliased to `--bs-text-default`.
13943
+ * @prop --bs-split-pane-first-size - Initial size of the first pane along the layout axis. Defaults to `333px` (Figma).
13944
+ * @prop --bs-split-pane-collapsed-size - Size of the first pane while `collapsed`. Defaults to `106px` (Figma).
13945
+ * @prop --bs-split-pane-min-size - Smallest size a resized pane may take. Defaults to `96px`.
13946
+ * @prop --bs-split-pane-divider-size - Thickness of a divider. Aliased to `--bs-spacing-75`.
13947
+ * @prop --bs-split-pane-divider-bg - Divider track colour. Aliased to `--bs-surface-container`.
13948
+ * @prop --bs-split-pane-divider-thumb - Divider thumb colour. Aliased to `--bs-border-neutral-container`.
13949
+ * @prop --bs-split-pane-divider-thumb-active - Divider thumb colour on hover, focus and drag. Aliased to `--bs-border-neutral-hover`.
13950
+ * @prop --bs-split-pane-divider-thumb-length - Length of the divider thumb. Defaults to `250px` (Figma).
13951
+ * @prop --bs-split-pane-border - Border between the first pane and the rest when dividers are not resizable. Aliased to `--bs-border-neutral-container`.
13952
+ * @prop --bs-split-pane-focus-ring - Divider focus ring colour. Aliased to `--bs-border-neutral-focus`.
13953
+ */
13954
+ "bs-split-pane": LocalJSX.IntrinsicElements["bs-split-pane"] & JSXBase.HTMLAttributes<HTMLBsSplitPaneElement>;
13955
+ /**
13956
+ * A flex layout that arranges its children in a row or column with a token-based gap, optionally
13957
+ * drawing a divider between children.
13958
+ * Built from: `bs-divider` (when `divider` is set).
13959
+ * With `divider`, each child is given a generated `slot="bs-stack-item-N"` attribute (plus a
13960
+ * `data-bs-stack-item` marker) so a divider can be rendered between the named slots. Light-DOM
13961
+ * nodes are never moved; the attributes are removed again when `divider` is turned off.
13962
+ * ## When to use
13963
+ * - Spacing and aligning a short run of siblings (form fields, button rows, card content).
13964
+ * ## When not to use
13965
+ * - Two-dimensional grids (use CSS grid).
13966
+ * - Resizable panes (use `bs-split-pane`).
13967
+ * @prop --bs-stack-gap - Space between items. Defaults from the `gap` prop (`--bs-spacing-<gap>`); may be overridden directly.
13968
+ */
13969
+ "bs-stack": LocalJSX.IntrinsicElements["bs-stack"] & JSXBase.HTMLAttributes<HTMLBsStackElement>;
13172
13970
  /**
13173
13971
  * A sequence of named steps showing overall progress through a multi-step flow (e.g. a checkout,
13174
13972
  * an onboarding wizard) -- each step reads as enabled (not yet reached), current, done, error, or