@brandsync/wc 1.14.0 → 1.16.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 (402) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/REFERENCE.md +159 -0
  3. package/custom-elements.json +1739 -196
  4. package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
  5. package/dist/brandsync-wc/{p-e0927a9a.entry.js → p-0159f0da.entry.js} +1 -1
  6. package/dist/brandsync-wc/p-0228a584.entry.js +1 -0
  7. package/dist/brandsync-wc/{p-9d660c03.entry.js → p-0f97fe35.entry.js} +1 -1
  8. package/dist/brandsync-wc/{p-31cd66e0.entry.js → p-15f4c343.entry.js} +1 -1
  9. package/dist/brandsync-wc/{p-b6ac1b50.entry.js → p-1ca8b01e.entry.js} +1 -1
  10. package/dist/brandsync-wc/{p-47cd19aa.entry.js → p-23379d7c.entry.js} +1 -1
  11. package/dist/brandsync-wc/{p-16c78ff6.entry.js → p-298158da.entry.js} +1 -1
  12. package/dist/brandsync-wc/{p-b793a0d6.entry.js → p-2e285364.entry.js} +1 -1
  13. package/dist/brandsync-wc/{p-204cc690.entry.js → p-3488c4fc.entry.js} +1 -1
  14. package/dist/brandsync-wc/{p-e1b7bea7.entry.js → p-34b0c048.entry.js} +1 -1
  15. package/dist/brandsync-wc/p-36fe783a.entry.js +1 -0
  16. package/dist/brandsync-wc/{p-8184d7de.entry.js → p-38ac9aad.entry.js} +1 -1
  17. package/dist/brandsync-wc/{p-c488cc8b.entry.js → p-38fe9d07.entry.js} +1 -1
  18. package/dist/brandsync-wc/{p-6e923ebc.entry.js → p-401b3d3d.entry.js} +1 -1
  19. package/dist/brandsync-wc/{p-2c1efaa1.entry.js → p-42b79d95.entry.js} +1 -1
  20. package/dist/brandsync-wc/p-45986ad4.entry.js +1 -0
  21. package/dist/brandsync-wc/{p-227a5182.entry.js → p-4ca40386.entry.js} +1 -1
  22. package/dist/brandsync-wc/{p-9125632c.entry.js → p-4ed00786.entry.js} +1 -1
  23. package/dist/brandsync-wc/{p-80700878.entry.js → p-521d0fc2.entry.js} +1 -1
  24. package/dist/brandsync-wc/{p-bee30626.entry.js → p-538d5b58.entry.js} +1 -1
  25. package/dist/brandsync-wc/{p-9fa67924.entry.js → p-54f9529f.entry.js} +1 -1
  26. package/dist/brandsync-wc/{p-1b5cc9b8.entry.js → p-5a45ef51.entry.js} +1 -1
  27. package/dist/brandsync-wc/{p-ce16f038.entry.js → p-5ed1f45e.entry.js} +1 -1
  28. package/dist/brandsync-wc/{p-10290c41.entry.js → p-65fa1b21.entry.js} +1 -1
  29. package/dist/brandsync-wc/{p-df3e7973.entry.js → p-67629178.entry.js} +1 -1
  30. package/dist/brandsync-wc/{p-e6fc2cd4.entry.js → p-6cb21302.entry.js} +1 -1
  31. package/dist/brandsync-wc/{p-3477539c.entry.js → p-76748795.entry.js} +1 -1
  32. package/dist/brandsync-wc/p-769c5b4a.entry.js +1 -0
  33. package/dist/brandsync-wc/p-7b3518b8.entry.js +1 -0
  34. package/dist/brandsync-wc/p-7dc59e0b.entry.js +1 -0
  35. package/dist/brandsync-wc/{p-658532b7.entry.js → p-86774165.entry.js} +1 -1
  36. package/dist/brandsync-wc/{p-cc1055e6.entry.js → p-89ea6366.entry.js} +1 -1
  37. package/dist/brandsync-wc/{p-4b40a596.entry.js → p-912629c6.entry.js} +1 -1
  38. package/dist/brandsync-wc/p-949a4270.entry.js +1 -0
  39. package/dist/brandsync-wc/{p-c67bc817.entry.js → p-9beeb30c.entry.js} +1 -1
  40. package/dist/brandsync-wc/{p-d892277f.entry.js → p-a12691d8.entry.js} +1 -1
  41. package/dist/brandsync-wc/{p-315b510c.entry.js → p-a56bc608.entry.js} +1 -1
  42. package/dist/brandsync-wc/{p-2967240d.entry.js → p-abfa43f5.entry.js} +1 -1
  43. package/dist/brandsync-wc/{p-686297f1.entry.js → p-b6081bba.entry.js} +1 -1
  44. package/dist/brandsync-wc/{p-833f9dc4.entry.js → p-b663ee67.entry.js} +1 -1
  45. package/dist/brandsync-wc/{p-dd52209a.entry.js → p-b67a0c8f.entry.js} +1 -1
  46. package/dist/brandsync-wc/{p-fa6b9750.entry.js → p-b9c9bcba.entry.js} +1 -1
  47. package/dist/brandsync-wc/{p-617bd76d.entry.js → p-baa3d37a.entry.js} +1 -1
  48. package/dist/brandsync-wc/p-c25553bc.entry.js +1 -0
  49. package/dist/brandsync-wc/{p-45cb3e6d.entry.js → p-c85fe37b.entry.js} +1 -1
  50. package/dist/brandsync-wc/{p-2e68b76e.entry.js → p-cc4c8c1d.entry.js} +1 -1
  51. package/dist/brandsync-wc/{p-056608f0.entry.js → p-cf287ff1.entry.js} +1 -1
  52. package/dist/brandsync-wc/{p-cc25ee67.entry.js → p-d165a742.entry.js} +1 -1
  53. package/dist/brandsync-wc/{p-51f40972.entry.js → p-d81c4f58.entry.js} +1 -1
  54. package/dist/brandsync-wc/{p-94d435a2.entry.js → p-dcacee29.entry.js} +1 -1
  55. package/dist/brandsync-wc/{p-3dabf202.entry.js → p-e5f50e93.entry.js} +1 -1
  56. package/dist/brandsync-wc/{p-221244a9.entry.js → p-e72dd05e.entry.js} +1 -1
  57. package/dist/brandsync-wc/p-e9afb553.entry.js +1 -0
  58. package/dist/brandsync-wc/{p-0cb6fc39.entry.js → p-e9b6b30f.entry.js} +1 -1
  59. package/dist/brandsync-wc/{p-a2e59aca.entry.js → p-ed71eb02.entry.js} +1 -1
  60. package/dist/brandsync-wc/{p-e65d286c.entry.js → p-f0be9125.entry.js} +1 -1
  61. package/dist/brandsync-wc/p-f3cc961b.entry.js +1 -0
  62. package/dist/brandsync-wc/{p-6ca1e51b.entry.js → p-f4d1d56e.entry.js} +1 -1
  63. package/dist/cjs/brandsync-wc.cjs.js +1 -1
  64. package/dist/cjs/bs-accordion-group.cjs.entry.js +1 -1
  65. package/dist/cjs/bs-ai-disclaimer.cjs.entry.js +1 -1
  66. package/dist/cjs/bs-ai-greeting.cjs.entry.js +1 -1
  67. package/dist/cjs/bs-ai-thinking.cjs.entry.js +1 -1
  68. package/dist/cjs/bs-app-shell.cjs.entry.js +19 -0
  69. package/dist/cjs/bs-attachment-list.cjs.entry.js +1 -1
  70. package/dist/cjs/bs-breadcrumbs.cjs.entry.js +1 -1
  71. package/dist/cjs/bs-button-skeleton.cjs.entry.js +1 -1
  72. package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +1 -1
  73. package/dist/cjs/bs-chatbot-header.cjs.entry.js +1 -1
  74. package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +1 -1
  75. package/dist/cjs/bs-chatbot-sources-drawer.cjs.entry.js +1 -1
  76. package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +1 -1
  77. package/dist/cjs/bs-checkbox-skeleton.cjs.entry.js +1 -1
  78. package/dist/cjs/bs-citation-preview.cjs.entry.js +1 -1
  79. package/dist/cjs/bs-container.cjs.entry.js +23 -0
  80. package/dist/cjs/bs-data-table.cjs.entry.js +2 -2
  81. package/dist/cjs/bs-datepicker.cjs.entry.js +1 -1
  82. package/dist/cjs/bs-divider.cjs.entry.js +29 -0
  83. package/dist/cjs/bs-error-page.cjs.entry.js +1 -1
  84. package/dist/cjs/bs-file-upload-item.cjs.entry.js +1 -1
  85. package/dist/cjs/bs-file-upload.cjs.entry.js +1 -1
  86. package/dist/cjs/bs-grid.cjs.entry.js +55 -0
  87. package/dist/cjs/bs-icon-button.cjs.entry.js +1 -1
  88. package/dist/cjs/bs-icon-tile.cjs.entry.js +2 -2
  89. package/dist/cjs/bs-inline-tab.cjs.entry.js +1 -1
  90. package/dist/cjs/bs-input_3.cjs.entry.js +4 -4
  91. package/dist/cjs/bs-list-item.cjs.entry.js +66 -0
  92. package/dist/cjs/bs-list.cjs.entry.js +103 -0
  93. package/dist/cjs/bs-message-list.cjs.entry.js +1 -1
  94. package/dist/cjs/bs-message.cjs.entry.js +1 -1
  95. package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +1 -1
  96. package/dist/cjs/bs-navigation-drawer.cjs.entry.js +2 -2
  97. package/dist/cjs/bs-navigation-header.cjs.entry.js +1 -1
  98. package/dist/cjs/bs-pagination.cjs.entry.js +1 -1
  99. package/dist/cjs/bs-popover.cjs.entry.js +1 -1
  100. package/dist/cjs/bs-progress-linear.cjs.entry.js +2 -2
  101. package/dist/cjs/bs-progress.cjs.entry.js +2 -2
  102. package/dist/cjs/bs-qr-code.cjs.entry.js +1 -1
  103. package/dist/cjs/bs-radio.cjs.entry.js +1 -1
  104. package/dist/cjs/bs-session-timeout.cjs.entry.js +1 -1
  105. package/dist/cjs/bs-skeleton.cjs.entry.js +1 -1
  106. package/dist/cjs/bs-slider.cjs.entry.js +1 -1
  107. package/dist/cjs/bs-snackbar.cjs.entry.js +1 -1
  108. package/dist/cjs/bs-source-link.cjs.entry.js +2 -2
  109. package/dist/cjs/bs-spinner.cjs.entry.js +1 -1
  110. package/dist/cjs/bs-split-pane.cjs.entry.js +1 -1
  111. package/dist/cjs/bs-stack.cjs.entry.js +81 -0
  112. package/dist/cjs/bs-stepper-step.cjs.entry.js +1 -1
  113. package/dist/cjs/bs-stepper.cjs.entry.js +1 -1
  114. package/dist/cjs/bs-switch.cjs.entry.js +1 -1
  115. package/dist/cjs/bs-tab_3.cjs.entry.js +3 -3
  116. package/dist/cjs/bs-timepicker.cjs.entry.js +2 -2
  117. package/dist/cjs/bs-toast.cjs.entry.js +1 -1
  118. package/dist/cjs/bs-tooltip-trigger.cjs.entry.js +1 -1
  119. package/dist/cjs/bs-tooltip.cjs.entry.js +1 -1
  120. package/dist/cjs/bs-tree-item.cjs.entry.js +94 -0
  121. package/dist/cjs/bs-tree.cjs.entry.js +197 -0
  122. package/dist/cjs/loader.cjs.js +1 -1
  123. package/dist/collection/collection-manifest.json +9 -0
  124. package/dist/collection/components/bs-accordion-group/bs-accordion-group.js +1 -1
  125. package/dist/collection/components/bs-ai-disclaimer/bs-ai-disclaimer.js +1 -1
  126. package/dist/collection/components/bs-ai-greeting/bs-ai-greeting.js +1 -1
  127. package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.js +1 -1
  128. package/dist/collection/components/bs-app-shell/bs-app-shell.cmp.test.js +71 -0
  129. package/dist/collection/components/bs-app-shell/bs-app-shell.css +58 -0
  130. package/dist/collection/components/bs-app-shell/bs-app-shell.js +79 -0
  131. package/dist/collection/components/bs-app-shell/bs-app-shell.stories.js +34 -0
  132. package/dist/collection/components/bs-attachment-list/bs-attachment-list.js +1 -1
  133. package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.js +1 -1
  134. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.js +1 -1
  135. package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +1 -1
  136. package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.js +1 -1
  137. package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.js +1 -1
  138. package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.js +1 -1
  139. package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.js +1 -1
  140. package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js +1 -1
  141. package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.js +1 -1
  142. package/dist/collection/components/bs-citation-preview/bs-citation-preview.js +1 -1
  143. package/dist/collection/components/bs-container/bs-container.cmp.test.js +59 -0
  144. package/dist/collection/components/bs-container/bs-container.css +16 -0
  145. package/dist/collection/components/bs-container/bs-container.js +88 -0
  146. package/dist/collection/components/bs-container/bs-container.stories.js +24 -0
  147. package/dist/collection/components/bs-data-table/bs-data-table.js +2 -2
  148. package/dist/collection/components/bs-datepicker/bs-datepicker.js +1 -1
  149. package/dist/collection/components/bs-divider/bs-divider.cmp.test.js +47 -0
  150. package/dist/collection/components/bs-divider/bs-divider.css +47 -0
  151. package/dist/collection/components/bs-divider/bs-divider.js +147 -0
  152. package/dist/collection/components/bs-divider/bs-divider.stories.js +32 -0
  153. package/dist/collection/components/bs-error-page/bs-error-page.js +1 -1
  154. package/dist/collection/components/bs-file-upload/bs-file-upload.js +1 -1
  155. package/dist/collection/components/bs-file-upload-item/bs-file-upload-item.js +1 -1
  156. package/dist/collection/components/bs-grid/bs-grid.cmp.test.js +58 -0
  157. package/dist/collection/components/bs-grid/bs-grid.css +10 -0
  158. package/dist/collection/components/bs-grid/bs-grid.js +208 -0
  159. package/dist/collection/components/bs-grid/bs-grid.stories.js +38 -0
  160. package/dist/collection/components/bs-icon-tile/bs-icon-tile.js +2 -2
  161. package/dist/collection/components/bs-input/bs-input.js +2 -2
  162. package/dist/collection/components/bs-list/bs-list.cmp.test.js +99 -0
  163. package/dist/collection/components/bs-list/bs-list.css +15 -0
  164. package/dist/collection/components/bs-list/bs-list.js +241 -0
  165. package/dist/collection/components/bs-list/bs-list.stories.js +43 -0
  166. package/dist/collection/components/bs-list-item/bs-list-item.cmp.test.js +137 -0
  167. package/dist/collection/components/bs-list-item/bs-list-item.css +139 -0
  168. package/dist/collection/components/bs-list-item/bs-list-item.js +343 -0
  169. package/dist/collection/components/bs-list-item/bs-list-item.stories.js +86 -0
  170. package/dist/collection/components/bs-menu/bs-menu.js +1 -1
  171. package/dist/collection/components/bs-menu-item/bs-menu-item.cmp.test.js +6 -0
  172. package/dist/collection/components/bs-menu-item/bs-menu-item.js +1 -1
  173. package/dist/collection/components/bs-message/bs-message.js +1 -1
  174. package/dist/collection/components/bs-message-list/bs-message-list.js +1 -1
  175. package/dist/collection/components/bs-pagination/bs-pagination.js +1 -1
  176. package/dist/collection/components/bs-popover/bs-popover.js +1 -1
  177. package/dist/collection/components/bs-progress/bs-progress.js +2 -2
  178. package/dist/collection/components/bs-progress-linear/bs-progress-linear.js +2 -2
  179. package/dist/collection/components/bs-qr-code/bs-qr-code.js +1 -1
  180. package/dist/collection/components/bs-radio/bs-radio.js +1 -1
  181. package/dist/collection/components/bs-session-timeout/bs-session-timeout.js +1 -1
  182. package/dist/collection/components/bs-skeleton/bs-skeleton.js +1 -1
  183. package/dist/collection/components/bs-slider/bs-slider.js +1 -1
  184. package/dist/collection/components/bs-snackbar/bs-snackbar.js +1 -1
  185. package/dist/collection/components/bs-source-link/bs-source-link.js +2 -2
  186. package/dist/collection/components/bs-spinner/bs-spinner.js +1 -1
  187. package/dist/collection/components/bs-split-pane/bs-split-pane.js +1 -1
  188. package/dist/collection/components/bs-stack/bs-stack.cmp.test.js +113 -0
  189. package/dist/collection/components/bs-stack/bs-stack.css +22 -0
  190. package/dist/collection/components/bs-stack/bs-stack.js +252 -0
  191. package/dist/collection/components/bs-stack/bs-stack.stories.js +36 -0
  192. package/dist/collection/components/bs-stepper/bs-stepper/bs-stepper.js +1 -1
  193. package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.js +1 -1
  194. package/dist/collection/components/bs-switch/bs-switch.js +1 -1
  195. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.js +1 -1
  196. package/dist/collection/components/bs-tab/bs-tab/bs-tab.js +1 -1
  197. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.js +1 -1
  198. package/dist/collection/components/bs-timepicker/bs-timepicker.js +2 -2
  199. package/dist/collection/components/bs-toast/bs-toast.js +1 -1
  200. package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
  201. package/dist/collection/components/bs-tooltip-trigger/bs-tooltip-trigger.js +1 -1
  202. package/dist/collection/components/bs-tree/bs-tree.cmp.test.js +166 -0
  203. package/dist/collection/components/bs-tree/bs-tree.css +8 -0
  204. package/dist/collection/components/bs-tree/bs-tree.js +354 -0
  205. package/dist/collection/components/bs-tree/bs-tree.stories.js +34 -0
  206. package/dist/collection/components/bs-tree-item/bs-tree-item.cmp.test.js +187 -0
  207. package/dist/collection/components/bs-tree-item/bs-tree-item.css +161 -0
  208. package/dist/collection/components/bs-tree-item/bs-tree-item.js +305 -0
  209. package/dist/collection/components/bs-tree-item/bs-tree-item.stories.js +54 -0
  210. package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.js +1 -1
  211. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +2 -2
  212. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.js +1 -1
  213. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.js +1 -1
  214. package/dist/components/bs-accordion-group.js +1 -1
  215. package/dist/components/bs-ai-disclaimer.js +1 -1
  216. package/dist/components/bs-ai-greeting.js +1 -1
  217. package/dist/components/bs-ai-thinking.js +1 -1
  218. package/dist/components/bs-app-shell.d.ts +11 -0
  219. package/dist/components/bs-app-shell.js +1 -0
  220. package/dist/components/bs-attachment-list.js +1 -1
  221. package/dist/components/bs-attachment.js +1 -1
  222. package/dist/components/bs-breadcrumb-overflow.js +1 -1
  223. package/dist/components/bs-breadcrumbs.js +1 -1
  224. package/dist/components/bs-button-skeleton.js +1 -1
  225. package/dist/components/bs-carousel.js +1 -1
  226. package/dist/components/bs-chatbot-feedback.js +1 -1
  227. package/dist/components/bs-chatbot-header.js +1 -1
  228. package/dist/components/bs-chatbot-response-action.js +1 -1
  229. package/dist/components/bs-chatbot-sources-drawer.js +1 -1
  230. package/dist/components/bs-chatbot-suggestion-button.js +1 -1
  231. package/dist/components/bs-checkbox-skeleton.js +1 -1
  232. package/dist/components/bs-citation-preview.js +1 -1
  233. package/dist/components/bs-container.d.ts +11 -0
  234. package/dist/components/bs-container.js +1 -0
  235. package/dist/components/bs-cookie-consent.js +1 -1
  236. package/dist/components/bs-data-table.js +1 -1
  237. package/dist/components/bs-datepicker.js +1 -1
  238. package/dist/components/bs-dialog.js +1 -1
  239. package/dist/components/bs-divider.d.ts +11 -0
  240. package/dist/components/bs-divider.js +1 -0
  241. package/dist/components/bs-error-page.js +1 -1
  242. package/dist/components/bs-file-upload-item.js +1 -1
  243. package/dist/components/bs-file-upload.js +1 -1
  244. package/dist/components/bs-grid.d.ts +11 -0
  245. package/dist/components/bs-grid.js +1 -0
  246. package/dist/components/bs-icon-button.js +1 -1
  247. package/dist/components/bs-icon-tile.js +1 -1
  248. package/dist/components/bs-inline-tab.js +1 -1
  249. package/dist/components/bs-input.js +1 -1
  250. package/dist/components/bs-list-item.d.ts +11 -0
  251. package/dist/components/bs-list-item.js +1 -0
  252. package/dist/components/bs-list.d.ts +11 -0
  253. package/dist/components/bs-list.js +1 -0
  254. package/dist/components/bs-menu-item.js +1 -1
  255. package/dist/components/bs-menu.js +1 -1
  256. package/dist/components/bs-message-list.js +1 -1
  257. package/dist/components/bs-message.js +1 -1
  258. package/dist/components/bs-navigation-drawer-item.js +1 -1
  259. package/dist/components/bs-navigation-drawer.js +1 -1
  260. package/dist/components/bs-navigation-header.js +1 -1
  261. package/dist/components/bs-onboarding-checklist.js +1 -1
  262. package/dist/components/bs-pagination.js +1 -1
  263. package/dist/components/bs-popover.js +1 -1
  264. package/dist/components/bs-product-tour.js +1 -1
  265. package/dist/components/bs-progress-linear.js +1 -1
  266. package/dist/components/bs-progress.js +1 -1
  267. package/dist/components/bs-qr-code.js +1 -1
  268. package/dist/components/bs-radio.js +1 -1
  269. package/dist/components/bs-session-timeout.js +1 -1
  270. package/dist/components/bs-side-panel.js +1 -1
  271. package/dist/components/bs-skeleton.js +1 -1
  272. package/dist/components/bs-slider.js +1 -1
  273. package/dist/components/bs-snackbar.js +1 -1
  274. package/dist/components/bs-source-link.js +1 -1
  275. package/dist/components/bs-spinner.js +1 -1
  276. package/dist/components/bs-split-pane.js +1 -1
  277. package/dist/components/bs-stack.d.ts +11 -0
  278. package/dist/components/bs-stack.js +1 -0
  279. package/dist/components/bs-stepper-step.js +1 -1
  280. package/dist/components/bs-stepper.js +1 -1
  281. package/dist/components/bs-switch.js +1 -1
  282. package/dist/components/bs-tab.js +1 -1
  283. package/dist/components/bs-tabs.js +1 -1
  284. package/dist/components/bs-timepicker.js +1 -1
  285. package/dist/components/bs-toast.js +1 -1
  286. package/dist/components/bs-tooltip-trigger.js +1 -1
  287. package/dist/components/bs-tooltip.js +1 -1
  288. package/dist/components/bs-tree-item.d.ts +11 -0
  289. package/dist/components/bs-tree-item.js +1 -0
  290. package/dist/components/bs-tree.d.ts +11 -0
  291. package/dist/components/bs-tree.js +1 -0
  292. package/dist/components/bs-whats-new-entry.js +1 -1
  293. package/dist/components/bs-whats-new.js +1 -1
  294. package/dist/components/{p-CrmEXUwm.js → p-B128GX8H.js} +1 -1
  295. package/dist/components/{p-Rx4bpeYN.js → p-B80vOwH6.js} +1 -1
  296. package/dist/components/p-BaJEv6rL.js +1 -0
  297. package/dist/components/{p-BESyTlfT.js → p-Bb1-2M8K.js} +1 -1
  298. package/dist/components/{p-nC2VxRNo.js → p-BdkE4auv.js} +1 -1
  299. package/dist/components/{p-BIW9eUic.js → p-BsbtyRJV.js} +1 -1
  300. package/dist/components/{p-BJR8KVFc.js → p-ByLUtXxO.js} +1 -1
  301. package/dist/components/p-C7RZ6qZC.js +1 -0
  302. package/dist/components/{p-HzaOqQ0U.js → p-C93ymWm7.js} +1 -1
  303. package/dist/components/{p-DpVeeIko.js → p-CK7fiES5.js} +1 -1
  304. package/dist/components/{p-QnTjSed5.js → p-CQjSDdH7.js} +1 -1
  305. package/dist/components/{p-HAmR4gM2.js → p-D0KM1R2i.js} +1 -1
  306. package/dist/components/{p-CDYw4Eyj.js → p-DFKc3lLA.js} +1 -1
  307. package/dist/components/{p-DAwSBMeM.js → p-GTDI4Ibw.js} +1 -1
  308. package/dist/components/{p-Dm3TqgV_.js → p-J9cxcDhY.js} +1 -1
  309. package/dist/components/{p-CiSEDtbE.js → p-kDJsWjTN.js} +1 -1
  310. package/dist/esm/brandsync-wc.js +1 -1
  311. package/dist/esm/bs-accordion-group.entry.js +1 -1
  312. package/dist/esm/bs-ai-disclaimer.entry.js +1 -1
  313. package/dist/esm/bs-ai-greeting.entry.js +1 -1
  314. package/dist/esm/bs-ai-thinking.entry.js +1 -1
  315. package/dist/esm/bs-app-shell.entry.js +17 -0
  316. package/dist/esm/bs-attachment-list.entry.js +1 -1
  317. package/dist/esm/bs-breadcrumbs.entry.js +1 -1
  318. package/dist/esm/bs-button-skeleton.entry.js +1 -1
  319. package/dist/esm/bs-chatbot-feedback.entry.js +1 -1
  320. package/dist/esm/bs-chatbot-header.entry.js +1 -1
  321. package/dist/esm/bs-chatbot-response-action.entry.js +1 -1
  322. package/dist/esm/bs-chatbot-sources-drawer.entry.js +1 -1
  323. package/dist/esm/bs-chatbot-suggestion-button.entry.js +1 -1
  324. package/dist/esm/bs-checkbox-skeleton.entry.js +1 -1
  325. package/dist/esm/bs-citation-preview.entry.js +1 -1
  326. package/dist/esm/bs-container.entry.js +21 -0
  327. package/dist/esm/bs-data-table.entry.js +2 -2
  328. package/dist/esm/bs-datepicker.entry.js +1 -1
  329. package/dist/esm/bs-divider.entry.js +27 -0
  330. package/dist/esm/bs-error-page.entry.js +1 -1
  331. package/dist/esm/bs-file-upload-item.entry.js +1 -1
  332. package/dist/esm/bs-file-upload.entry.js +1 -1
  333. package/dist/esm/bs-grid.entry.js +53 -0
  334. package/dist/esm/bs-icon-button.entry.js +1 -1
  335. package/dist/esm/bs-icon-tile.entry.js +2 -2
  336. package/dist/esm/bs-inline-tab.entry.js +1 -1
  337. package/dist/esm/bs-input_3.entry.js +4 -4
  338. package/dist/esm/bs-list-item.entry.js +64 -0
  339. package/dist/esm/bs-list.entry.js +101 -0
  340. package/dist/esm/bs-message-list.entry.js +1 -1
  341. package/dist/esm/bs-message.entry.js +1 -1
  342. package/dist/esm/bs-navigation-drawer-item.entry.js +1 -1
  343. package/dist/esm/bs-navigation-drawer.entry.js +2 -2
  344. package/dist/esm/bs-navigation-header.entry.js +1 -1
  345. package/dist/esm/bs-pagination.entry.js +1 -1
  346. package/dist/esm/bs-popover.entry.js +1 -1
  347. package/dist/esm/bs-progress-linear.entry.js +2 -2
  348. package/dist/esm/bs-progress.entry.js +2 -2
  349. package/dist/esm/bs-qr-code.entry.js +1 -1
  350. package/dist/esm/bs-radio.entry.js +1 -1
  351. package/dist/esm/bs-session-timeout.entry.js +1 -1
  352. package/dist/esm/bs-skeleton.entry.js +1 -1
  353. package/dist/esm/bs-slider.entry.js +1 -1
  354. package/dist/esm/bs-snackbar.entry.js +1 -1
  355. package/dist/esm/bs-source-link.entry.js +2 -2
  356. package/dist/esm/bs-spinner.entry.js +1 -1
  357. package/dist/esm/bs-split-pane.entry.js +1 -1
  358. package/dist/esm/bs-stack.entry.js +79 -0
  359. package/dist/esm/bs-stepper-step.entry.js +1 -1
  360. package/dist/esm/bs-stepper.entry.js +1 -1
  361. package/dist/esm/bs-switch.entry.js +1 -1
  362. package/dist/esm/bs-tab_3.entry.js +3 -3
  363. package/dist/esm/bs-timepicker.entry.js +2 -2
  364. package/dist/esm/bs-toast.entry.js +1 -1
  365. package/dist/esm/bs-tooltip-trigger.entry.js +1 -1
  366. package/dist/esm/bs-tooltip.entry.js +1 -1
  367. package/dist/esm/bs-tree-item.entry.js +92 -0
  368. package/dist/esm/bs-tree.entry.js +195 -0
  369. package/dist/esm/loader.js +1 -1
  370. package/dist/types/components/bs-app-shell/bs-app-shell.cmp.test.d.ts +1 -0
  371. package/dist/types/components/bs-app-shell/bs-app-shell.d.ts +40 -0
  372. package/dist/types/components/bs-app-shell/bs-app-shell.stories.d.ts +11 -0
  373. package/dist/types/components/bs-container/bs-container.cmp.test.d.ts +1 -0
  374. package/dist/types/components/bs-container/bs-container.d.ts +22 -0
  375. package/dist/types/components/bs-container/bs-container.stories.d.ts +15 -0
  376. package/dist/types/components/bs-divider/bs-divider.cmp.test.d.ts +1 -0
  377. package/dist/types/components/bs-divider/bs-divider.d.ts +29 -0
  378. package/dist/types/components/bs-divider/bs-divider.stories.d.ts +16 -0
  379. package/dist/types/components/bs-grid/bs-grid.cmp.test.d.ts +1 -0
  380. package/dist/types/components/bs-grid/bs-grid.d.ts +43 -0
  381. package/dist/types/components/bs-grid/bs-grid.stories.d.ts +18 -0
  382. package/dist/types/components/bs-list/bs-list.cmp.test.d.ts +1 -0
  383. package/dist/types/components/bs-list/bs-list.d.ts +42 -0
  384. package/dist/types/components/bs-list/bs-list.stories.d.ts +13 -0
  385. package/dist/types/components/bs-list-item/bs-list-item.cmp.test.d.ts +1 -0
  386. package/dist/types/components/bs-list-item/bs-list-item.d.ts +85 -0
  387. package/dist/types/components/bs-list-item/bs-list-item.stories.d.ts +22 -0
  388. package/dist/types/components/bs-stack/bs-stack.cmp.test.d.ts +1 -0
  389. package/dist/types/components/bs-stack/bs-stack.d.ts +46 -0
  390. package/dist/types/components/bs-stack/bs-stack.stories.d.ts +18 -0
  391. package/dist/types/components/bs-tree/bs-tree.cmp.test.d.ts +1 -0
  392. package/dist/types/components/bs-tree/bs-tree.d.ts +53 -0
  393. package/dist/types/components/bs-tree/bs-tree.stories.d.ts +11 -0
  394. package/dist/types/components/bs-tree-item/bs-tree-item.cmp.test.d.ts +1 -0
  395. package/dist/types/components/bs-tree-item/bs-tree-item.d.ts +60 -0
  396. package/dist/types/components/bs-tree-item/bs-tree-item.stories.d.ts +19 -0
  397. package/dist/types/components.d.ts +1257 -0
  398. package/package.json +1 -1
  399. package/reference.d.ts +27 -0
  400. package/reference.json +428 -0
  401. package/dist/brandsync-wc/p-0e738622.entry.js +0 -1
  402. package/dist/components/p-zscW5LNR.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";
@@ -48,6 +51,7 @@ 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";
50
53
  import { BsSplitPaneOrientation } from "./components/bs-split-pane/bs-split-pane";
54
+ import { BsStackAlign, BsStackDirection, BsStackJustify } from "./components/bs-stack/bs-stack";
51
55
  import { BsStepperDirection } from "./components/bs-stepper/bs-stepper-step/bs-stepper-step";
52
56
  import { BsStepperDirection as BsStepperDirection1, BsStepperStepComputedState } from "./components/bs-stepper/bs-stepper-step/bs-stepper-step";
53
57
  import { BsSwitchSize } from "./components/bs-switch/bs-switch";
@@ -77,13 +81,16 @@ export { BsChipInformativeColor, BsChipInformativeSize } from "./components/bs-c
77
81
  export { BsChipInputSize } from "./components/bs-chip/bs-chip-input/bs-chip-input";
78
82
  export { BsComposerState, BsComposerVariant } from "./components/bs-composer/bs-composer";
79
83
  export { BsComposerStatusBannerType } from "./components/bs-composer-status-banner/bs-composer-status-banner";
84
+ export { BsContainerSize } from "./components/bs-container/bs-container";
80
85
  export { BsCookieCategory, BsCookieChoices, BsCookieConsentType } from "./components/bs-cookie-consent/bs-cookie-consent";
81
86
  export { BsDataTableColumn, BsDataTableRow } from "./components/bs-data-table/bs-data-table";
82
87
  export { BsDatepickerChange } from "./components/bs-datepicker/bs-datepicker";
83
88
  export { BsDialogSize } from "./components/bs-dialog/bs-dialog";
89
+ export { BsDividerInset, BsDividerOrientation, BsDividerVariant } from "./components/bs-divider/bs-divider";
84
90
  export { BsErrorPageType } from "./components/bs-error-page/bs-error-page";
85
91
  export { BsFileUploadDirection } from "./components/bs-file-upload/bs-file-upload";
86
92
  export { BsFileUploadItemState } from "./components/bs-file-upload-item/bs-file-upload-item";
93
+ export { BsGridAlign } from "./components/bs-grid/bs-grid";
87
94
  export { BsIconButtonSize, BsIconButtonVariant } from "./components/bs-button/bs-icon-button/bs-icon-button";
88
95
  export { BsIconTileIntent, BsIconTileSize } from "./components/bs-icon-tile/bs-icon-tile";
89
96
  export { BsLogoBackground, BsLogoVariant } from "./components/bs-logo/bs-logo";
@@ -102,6 +109,7 @@ export { BsSliderType } from "./components/bs-slider/bs-slider";
102
109
  export { BsSnackbarVariant } from "./components/bs-snackbar/bs-snackbar";
103
110
  export { BsSpinnerSize } from "./components/bs-spinner/bs-spinner";
104
111
  export { BsSplitPaneOrientation } from "./components/bs-split-pane/bs-split-pane";
112
+ export { BsStackAlign, BsStackDirection, BsStackJustify } from "./components/bs-stack/bs-stack";
105
113
  export { BsStepperDirection } from "./components/bs-stepper/bs-stepper-step/bs-stepper-step";
106
114
  export { BsStepperDirection as BsStepperDirection1, BsStepperStepComputedState } from "./components/bs-stepper/bs-stepper-step/bs-stepper-step";
107
115
  export { BsSwitchSize } from "./components/bs-switch/bs-switch";
@@ -253,6 +261,34 @@ export namespace Components {
253
261
  */
254
262
  "label": string;
255
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
+ }
256
292
  /**
257
293
  * A single file attachment preview for `bs-composer` -- an image thumbnail, or a filename card
258
294
  * with a colored file-type badge (PDF/Document), with an optional upload-in-progress spinner and
@@ -1484,6 +1520,28 @@ export namespace Components {
1484
1520
  */
1485
1521
  "type": BsComposerStatusBannerType;
1486
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
+ }
1487
1545
  /**
1488
1546
  * A cookie consent prompt in four forms, matching the Figma "Cookie consent" component:
1489
1547
  * - `banner` -- a wide bar: icon, heading, text, policy link, and Customise / Reject optional / Accept
@@ -1759,6 +1817,39 @@ export namespace Components {
1759
1817
  */
1760
1818
  "size": BsDialogSize;
1761
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
+ }
1762
1853
  /**
1763
1854
  * A full-block page for when the user can't get to what they asked for: page not found (404), a server
1764
1855
  * error (500), no access (403), planned maintenance, or no internet connection. Matches the Figma
@@ -1914,6 +2005,53 @@ export namespace Components {
1914
2005
  */
1915
2006
  "thumbnailSrc"?: string;
1916
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
+ }
1917
2055
  /**
1918
2056
  * A clickable, icon-only action element -- the icon-only sibling of `bs-button`, sharing the same
1919
2057
  * 8 visual variants and color language, but ALWAYS rendering just a single icon, never a label.
@@ -2171,6 +2309,125 @@ export namespace Components {
2171
2309
  */
2172
2310
  "value": string;
2173
2311
  }
2312
+ /**
2313
+ * A vertical list of `bs-list-item` rows, optionally single-select.
2314
+ * ## When to use
2315
+ * - Records, people, files or options shown as rows with leading media and descriptions.
2316
+ * - `selectable` for a single-choice list (e.g. a conversation list next to a detail pane).
2317
+ * ## When not to use
2318
+ * - A popup list of actions -- use `bs-menu`.
2319
+ * - Navigation between app sections -- use `bs-navigation-drawer`.
2320
+ * - Multi-column, sortable or paged data -- use `bs-data-table`.
2321
+ * Built from `bs-list-item` children (light DOM; the list never moves nodes).
2322
+ * @prop --bs-list-gap - Gap between rows. Defaults to `0`.
2323
+ * @prop --bs-list-divider-color - Divider colour when `dividers` is set. Aliased to `--bs-border-neutral-container`.
2324
+ */
2325
+ interface BsList {
2326
+ /**
2327
+ * Accessible name of the list.
2328
+ * @default null
2329
+ */
2330
+ "ariaLabel": string | null;
2331
+ /**
2332
+ * Draws a 1px separator between rows.
2333
+ * @default false
2334
+ */
2335
+ "dividers": boolean;
2336
+ /**
2337
+ * Single-selection mode: role="listbox", rows are `option`s with roving tabindex.
2338
+ * @default false
2339
+ */
2340
+ "selectable": boolean;
2341
+ /**
2342
+ * `value` of the selected item (selectable mode).
2343
+ * @default null
2344
+ */
2345
+ "value": string | null;
2346
+ }
2347
+ /**
2348
+ * A single row of a list: optional leading media (avatar, icon, image), a label, a description and
2349
+ * optional support text, and an optional trailing caret or custom trailing content.
2350
+ * ## When to use
2351
+ * - As a child of `bs-list`, one per record, person, file or option.
2352
+ * - Standalone as a plain information row (non-interactive), or with `interactive` as a button-like row.
2353
+ * ## When not to use
2354
+ * - A popup list of actions -- use `bs-menu` / `bs-menu-item`.
2355
+ * - App navigation with an active route -- use `bs-navigation-drawer-item`.
2356
+ * - Tabular data with columns, sorting or paging -- use `bs-data-table`.
2357
+ * Composed from: leading media (`bs-avatar`) and trailing controls (`bs-icon-button`) are supplied by the
2358
+ * consumer through the `leading` and `trailing` slots; the row itself only reserves layout. The default
2359
+ * trailing caret is inline SVG.
2360
+ * Roles are driven by the parent `bs-list` (via `selectionRole`). Standalone, the row has no role
2361
+ * (`listitem` is only valid inside a list) unless `interactive` is set, which makes it a focusable
2362
+ * `role="button"`.
2363
+ * @prop --bs-list-item-min-height - Minimum row height. Aliased to `--bs-spacing-1000`.
2364
+ * @prop --bs-list-item-padding-y - Aliased to `--bs-spacing-150`.
2365
+ * @prop --bs-list-item-padding-x - Aliased to `--bs-spacing-200`.
2366
+ * @prop --bs-list-item-gap - Gap between leading, content and trailing. Aliased to `--bs-spacing-200`.
2367
+ * @prop --bs-list-item-content-gap - Gap between text lines. Aliased to `--bs-spacing-25`.
2368
+ * @prop --bs-list-item-radius - Aliased to `--bs-border-radius-100`.
2369
+ * @prop --bs-list-item-bg - Enabled background. `transparent`.
2370
+ * @prop --bs-list-item-bg-hover - Aliased to `--bs-surface-hover`.
2371
+ * @prop --bs-list-item-bg-pressed - Aliased to `--bs-surface-pressed`.
2372
+ * @prop --bs-list-item-bg-focus - Aliased to `--bs-surface-focus`.
2373
+ * @prop --bs-list-item-bg-selected - Aliased to `--bs-surface-selected`.
2374
+ * @prop --bs-list-item-bg-selected-hover - Aliased to `--bs-surface-selected-hover`.
2375
+ * @prop --bs-list-item-bg-selected-pressed - Aliased to `--bs-surface-selected-pressed`.
2376
+ * @prop --bs-list-item-bg-selected-focus - Aliased to `--bs-surface-selected-focus`.
2377
+ * @prop --bs-list-item-bg-disabled - Aliased to `--bs-surface-action-disabled`.
2378
+ * @prop --bs-list-item-color - Text colour. Aliased to `--bs-text-default`.
2379
+ * @prop --bs-list-item-color-disabled - Aliased to `--bs-text-on-disabled`.
2380
+ * @prop --bs-list-item-focus-ring - Focus ring colour. Aliased to `--bs-border-neutral-focus`.
2381
+ * @prop --bs-list-item-image-width - Leading image width. 72px.
2382
+ * @prop --bs-list-item-image-height - Leading image height. 56px.
2383
+ */
2384
+ interface BsListItem {
2385
+ /**
2386
+ * Second text line (the "paragraph").
2387
+ * @default null
2388
+ */
2389
+ "description": string | null;
2390
+ /**
2391
+ * Disables the row: dimmed, not focusable, no click event.
2392
+ * @default false
2393
+ */
2394
+ "disabled": boolean;
2395
+ /**
2396
+ * Makes a standalone row a focusable `role="button"` that emits `bsItemClick`.
2397
+ * @default false
2398
+ */
2399
+ "interactive": boolean;
2400
+ /**
2401
+ * First text line (semibold).
2402
+ * @default null
2403
+ */
2404
+ "label": string | null;
2405
+ /**
2406
+ * Marks the row as selected. Managed by the parent `bs-list` when it is `selectable`.
2407
+ * @default false
2408
+ */
2409
+ "selected": boolean;
2410
+ /**
2411
+ * Set by the parent `bs-list`: `listitem` (plain list) or `option` (selectable list). Do not set by hand.
2412
+ * @default null
2413
+ */
2414
+ "selectionRole": 'listitem' | 'option' | null;
2415
+ /**
2416
+ * Shows a trailing caret (unless the `trailing` slot has content).
2417
+ * @default false
2418
+ */
2419
+ "showArrow": boolean;
2420
+ /**
2421
+ * Optional third text line.
2422
+ * @default null
2423
+ */
2424
+ "supportText": string | null;
2425
+ /**
2426
+ * Identifies the item; emitted by `bsItemClick` and matched against `bs-list`'s `value`.
2427
+ * @default null
2428
+ */
2429
+ "value": string | null;
2430
+ }
2174
2431
  /**
2175
2432
  * The BrandSync brand mark, as its own standalone component -- shared by `bs-navigation-header`
2176
2433
  * and `bs-navigation-drawer`, which used to each render their own duplicated copy of this SVG
@@ -3526,6 +3783,52 @@ export namespace Components {
3526
3783
  */
3527
3784
  "toggleCollapsed": () => Promise<void>;
3528
3785
  }
3786
+ /**
3787
+ * A flex layout that arranges its children in a row or column with a token-based gap, optionally
3788
+ * drawing a divider between children.
3789
+ * Built from: `bs-divider` (when `divider` is set).
3790
+ * With `divider`, each child is given a generated `slot="bs-stack-item-N"` attribute (plus a
3791
+ * `data-bs-stack-item` marker) so a divider can be rendered between the named slots. Light-DOM
3792
+ * nodes are never moved; the attributes are removed again when `divider` is turned off.
3793
+ * ## When to use
3794
+ * - Spacing and aligning a short run of siblings (form fields, button rows, card content).
3795
+ * ## When not to use
3796
+ * - Two-dimensional grids (use CSS grid).
3797
+ * - Resizable panes (use `bs-split-pane`).
3798
+ * @prop --bs-stack-gap - Space between items. Defaults from the `gap` prop (`--bs-spacing-<gap>`); may be overridden directly.
3799
+ */
3800
+ interface BsStack {
3801
+ /**
3802
+ * Cross-axis alignment.
3803
+ * @default 'stretch'
3804
+ */
3805
+ "align": BsStackAlign;
3806
+ /**
3807
+ * Main axis: `vertical` stacks children in a column, `horizontal` in a row.
3808
+ * @default 'vertical'
3809
+ */
3810
+ "direction": BsStackDirection;
3811
+ /**
3812
+ * Renders a decorative `bs-divider` between each child.
3813
+ * @default false
3814
+ */
3815
+ "divider": boolean;
3816
+ /**
3817
+ * Spacing token name (e.g. `200` => `--bs-spacing-200`). Invalid values fall back to `100`.
3818
+ * @default '100'
3819
+ */
3820
+ "gap": string;
3821
+ /**
3822
+ * Main-axis distribution.
3823
+ * @default 'start'
3824
+ */
3825
+ "justify": BsStackJustify;
3826
+ /**
3827
+ * Lets items wrap onto further lines.
3828
+ * @default false
3829
+ */
3830
+ "wrap": boolean;
3831
+ }
3529
3832
  /**
3530
3833
  * A sequence of named steps showing overall progress through a multi-step flow (e.g. a checkout,
3531
3834
  * an onboarding wizard) -- each step reads as enabled (not yet reached), current, done, error, or
@@ -3905,6 +4208,87 @@ export namespace Components {
3905
4208
  */
3906
4209
  "text": string;
3907
4210
  }
4211
+ /**
4212
+ * A hierarchical list of `bs-tree-item` rows with single selection, expand/collapse and the
4213
+ * WAI-ARIA tree keyboard pattern.
4214
+ * The tree owns `role="tree"`, the roving `tabindex` (exactly one enabled, visible item is
4215
+ * tabbable: the selected one, otherwise the first), selection (kept in sync with each item's
4216
+ * `selected`) and keyboard navigation over the visible (rendered, non-disabled) items. Items own
4217
+ * their expansion state and emit `bsSelect` / `bsToggle`.
4218
+ * Built from: `bs-tree-item` rows.
4219
+ */
4220
+ interface BsTree {
4221
+ /**
4222
+ * Accessible name of the tree. Bound onto the internal `role="tree"` element (an `aria-label` on the host would not reach it).
4223
+ * @default null
4224
+ */
4225
+ "ariaLabel": string | null;
4226
+ /**
4227
+ * Collapses every parent item.
4228
+ */
4229
+ "collapseAll": () => Promise<void>;
4230
+ /**
4231
+ * Expands every parent item.
4232
+ */
4233
+ "expandAll": () => Promise<void>;
4234
+ /**
4235
+ * When `false`, rows do not select (clicks and Enter/Space do nothing) but parents still expand and collapse.
4236
+ * @default true
4237
+ */
4238
+ "selectable": boolean;
4239
+ /**
4240
+ * The `value` (or, when empty, the `label`) of the selected item. Two-way synced with each item's `selected` (single selection). Setting it from code does not emit `bsChange`.
4241
+ * @default ''
4242
+ */
4243
+ "value": string;
4244
+ }
4245
+ /**
4246
+ * A single row of a `bs-tree`. An item that contains child `bs-tree-item` elements is a parent
4247
+ * (it gets an expand/collapse caret and a folder icon); an item without children is a leaf (no
4248
+ * caret, file icon).
4249
+ * The host carries `role="treeitem"` and the `aria-*` state; the owning `bs-tree` manages the
4250
+ * roving `tabindex`, selection and keyboard navigation. Nesting depth is computed automatically
4251
+ * from the number of ancestor `bs-tree-item` elements and exposed as `aria-level` -- it is not a
4252
+ * prop. Clicking the row selects it; clicking the caret (or pressing Right/Left in a tree) toggles
4253
+ * expansion -- the two are deliberately separate.
4254
+ * Built from: inline SVG icons only (no existing `bs-*` component covers a tree row).
4255
+ */
4256
+ interface BsTreeItem {
4257
+ /**
4258
+ * Disables the row: not focusable, ignores clicks, dimmed. Reflected.
4259
+ * @default false
4260
+ */
4261
+ "disabled": boolean;
4262
+ /**
4263
+ * Whether the child items are shown. Only meaningful for parents. Mutable: the caret, the keyboard and the owning tree toggle it. Reflected.
4264
+ * @default false
4265
+ */
4266
+ "expanded": boolean;
4267
+ /**
4268
+ * The row's text. Use the `label` slot for rich content.
4269
+ * @default ''
4270
+ */
4271
+ "label": string;
4272
+ /**
4273
+ * Marks the row as selected. Owned by the tree (single selection, synced with its `value`). Reflected.
4274
+ * @default false
4275
+ */
4276
+ "selected": boolean;
4277
+ /**
4278
+ * Sets `expanded` as a user action: updates the prop and emits `bsToggle`. No-op for leaves, disabled items, or when the value would not change.
4279
+ */
4280
+ "setExpanded": (next: boolean) => Promise<void>;
4281
+ /**
4282
+ * Shows the leading icon (default folder / file, or the `icon` slot).
4283
+ * @default true
4284
+ */
4285
+ "showIcon": boolean;
4286
+ /**
4287
+ * Identifier used in events and for the tree's `value`. Falls back to `label` when empty.
4288
+ * @default ''
4289
+ */
4290
+ "value": string;
4291
+ }
3908
4292
  /**
3909
4293
  * A product's "What's new" surface, in three forms matching the Figma component:
3910
4294
  * - `feed` -- a docked panel: heading, "Mark all as read", filter tabs, the list of updates (each a
@@ -4198,6 +4582,14 @@ export interface BsInputCustomEvent<T> extends CustomEvent<T> {
4198
4582
  detail: T;
4199
4583
  target: HTMLBsInputElement;
4200
4584
  }
4585
+ export interface BsListCustomEvent<T> extends CustomEvent<T> {
4586
+ detail: T;
4587
+ target: HTMLBsListElement;
4588
+ }
4589
+ export interface BsListItemCustomEvent<T> extends CustomEvent<T> {
4590
+ detail: T;
4591
+ target: HTMLBsListItemElement;
4592
+ }
4201
4593
  export interface BsMenuItemCustomEvent<T> extends CustomEvent<T> {
4202
4594
  detail: T;
4203
4595
  target: HTMLBsMenuItemElement;
@@ -4282,6 +4674,14 @@ export interface BsToastCustomEvent<T> extends CustomEvent<T> {
4282
4674
  detail: T;
4283
4675
  target: HTMLBsToastElement;
4284
4676
  }
4677
+ export interface BsTreeCustomEvent<T> extends CustomEvent<T> {
4678
+ detail: T;
4679
+ target: HTMLBsTreeElement;
4680
+ }
4681
+ export interface BsTreeItemCustomEvent<T> extends CustomEvent<T> {
4682
+ detail: T;
4683
+ target: HTMLBsTreeItemElement;
4684
+ }
4285
4685
  export interface BsWhatsNewCustomEvent<T> extends CustomEvent<T> {
4286
4686
  detail: T;
4287
4687
  target: HTMLBsWhatsNewElement;
@@ -4417,6 +4817,33 @@ declare global {
4417
4817
  prototype: HTMLBsAiThinkingElement;
4418
4818
  new (): HTMLBsAiThinkingElement;
4419
4819
  };
4820
+ /**
4821
+ * The page frame: a header across the top, and below it a navigation | main | aside row, laid out
4822
+ * with CSS grid. The main column scrolls independently of the header and the side columns.
4823
+ * Layout only. Compose it from the existing shell components: put a `bs-navigation-header`
4824
+ * (usually `alignment="with-navigation-drawer"`) in `header` and a `bs-navigation-drawer` in
4825
+ * `navigation`. The drawer sizes itself (expanded or collapsed rail); the shell reserves an `auto`
4826
+ * track for it, so there is no `navigationWidth` prop. `bs-navigation-header` has no `collapsed`
4827
+ * prop, so there is no collapse state to mirror and the shell does not listen to `bsCollapse`: the
4828
+ * auto track follows the drawer's width on its own.
4829
+ * The shell creates no landmarks besides `<main>`; the slotted header and drawer bring their own
4830
+ * `banner` and `navigation` roles.
4831
+ * ## When to use
4832
+ * - The outer frame of an application page with a header and side navigation.
4833
+ * ## When not to use
4834
+ * - Content layout inside the page (use `bs-grid`) or resizable panes (use `bs-split-pane`).
4835
+ * - Pages that already have their own `<main>`; the shell would add a duplicate landmark.
4836
+ * @prop --bs-app-shell-bg - Shell background. Aliased to `--bs-surface-base`.
4837
+ * @prop --bs-app-shell-color - Text colour. Aliased to `--bs-text-default`.
4838
+ * @prop --bs-app-shell-main-padding - Padding of the main area. Aliased to `--bs-spacing-400`.
4839
+ * @prop --bs-app-shell-aside-width - Width of the aside column. Defaults to `auto` (zero when empty).
4840
+ */
4841
+ interface HTMLBsAppShellElement extends Components.BsAppShell, HTMLStencilElement {
4842
+ }
4843
+ var HTMLBsAppShellElement: {
4844
+ prototype: HTMLBsAppShellElement;
4845
+ new (): HTMLBsAppShellElement;
4846
+ };
4420
4847
  interface HTMLBsAttachmentElementEventMap {
4421
4848
  "bsRemove": void;
4422
4849
  }
@@ -5277,6 +5704,22 @@ declare global {
5277
5704
  prototype: HTMLBsComposerStatusBannerElement;
5278
5705
  new (): HTMLBsComposerStatusBannerElement;
5279
5706
  };
5707
+ /**
5708
+ * A centred wrapper that limits content width to a breakpoint and adds horizontal padding.
5709
+ * ## When to use
5710
+ * - Constraining page or section content to a readable, consistent maximum width.
5711
+ * ## When not to use
5712
+ * - Arranging children relative to each other (use `bs-stack`).
5713
+ * - Full-bleed regions such as hero backgrounds (use `size="fluid"` or no container).
5714
+ * @prop --bs-container-max-width - Maximum width. Aliased to the `--bs-breakpoint-*` token for `size`; `none` for `fluid`.
5715
+ * @prop --bs-container-padding - Horizontal padding. Aliased to the `padding` spacing token (default `--bs-spacing-300`).
5716
+ */
5717
+ interface HTMLBsContainerElement extends Components.BsContainer, HTMLStencilElement {
5718
+ }
5719
+ var HTMLBsContainerElement: {
5720
+ prototype: HTMLBsContainerElement;
5721
+ new (): HTMLBsContainerElement;
5722
+ };
5280
5723
  interface HTMLBsCookieConsentElementEventMap {
5281
5724
  "bsAccept": { choices: BsCookieChoices };
5282
5725
  "bsReject": { choices: BsCookieChoices };
@@ -5423,6 +5866,23 @@ declare global {
5423
5866
  prototype: HTMLBsDialogElement;
5424
5867
  new (): HTMLBsDialogElement;
5425
5868
  };
5869
+ /**
5870
+ * A thin line that separates content, horizontally or vertically.
5871
+ * ## When to use
5872
+ * - Separating groups of related content in a list, menu, toolbar or card.
5873
+ * ## When not to use
5874
+ * - Adding vertical space between blocks (use `bs-stack` gap or spacing tokens).
5875
+ * - Drawing a border around a surface (use `bs-card`).
5876
+ * @prop --bs-divider-thickness - Line thickness. Defaults to `1px`.
5877
+ * @prop --bs-divider-color - Line colour. Aliased to `--bs-border-neutral-container` (`default`) or `--bs-neutral-100` (`subtle`).
5878
+ * @prop --bs-divider-inset - Indent applied by `inset`. Aliased to `--bs-spacing-300`.
5879
+ */
5880
+ interface HTMLBsDividerElement extends Components.BsDivider, HTMLStencilElement {
5881
+ }
5882
+ var HTMLBsDividerElement: {
5883
+ prototype: HTMLBsDividerElement;
5884
+ new (): HTMLBsDividerElement;
5885
+ };
5426
5886
  interface HTMLBsErrorPageElementEventMap {
5427
5887
  "bsPrimary": void;
5428
5888
  "bsSecondary": void;
@@ -5513,6 +5973,30 @@ declare global {
5513
5973
  prototype: HTMLBsFileUploadItemElement;
5514
5974
  new (): HTMLBsFileUploadItemElement;
5515
5975
  };
5976
+ /**
5977
+ * A CSS grid layout wrapper. Children are placed in equal-width columns with a token-based gap.
5978
+ * `columns` takes either a number (`"3"` becomes `repeat(3, minmax(0, 1fr))`) or any raw
5979
+ * `grid-template-columns` value (`"200px 1fr"`). `minColumnWidth` is the responsive mechanism: it
5980
+ * switches to `repeat(auto-fit, minmax(min(100%, X), 1fr))`, so the column count adapts to the
5981
+ * container width and `columns` is ignored. There are deliberately no per-breakpoint props in v1.
5982
+ * `gap`, `rowGap` and `columnGap` take spacing token names (`"200"` maps to `var(--bs-spacing-200)`);
5983
+ * unknown names fall back to `100`.
5984
+ * ## When to use
5985
+ * - Card grids, form field grids and dashboards where items share equal column tracks.
5986
+ * - Responsive galleries via `minColumnWidth`.
5987
+ * ## When not to use
5988
+ * - A single row or column of items with no wrapping (plain flex).
5989
+ * - Resizable multi-pane layouts (use `bs-split-pane`) or the page frame (use `bs-app-shell`).
5990
+ * @prop --bs-grid-gap - Gap on both axes. Overrides the `gap` prop's token (default `--bs-spacing-100`).
5991
+ * @prop --bs-grid-row-gap - Row gap. Overrides `--bs-grid-gap` and the `rowGap` prop's token.
5992
+ * @prop --bs-grid-column-gap - Column gap. Overrides `--bs-grid-gap` and the `columnGap` prop's token.
5993
+ */
5994
+ interface HTMLBsGridElement extends Components.BsGrid, HTMLStencilElement {
5995
+ }
5996
+ var HTMLBsGridElement: {
5997
+ prototype: HTMLBsGridElement;
5998
+ new (): HTMLBsGridElement;
5999
+ };
5516
6000
  /**
5517
6001
  * A clickable, icon-only action element -- the icon-only sibling of `bs-button`, sharing the same
5518
6002
  * 8 visual variants and color language, but ALWAYS rendering just a single icon, never a label.
@@ -5636,6 +6120,90 @@ declare global {
5636
6120
  prototype: HTMLBsInputElement;
5637
6121
  new (): HTMLBsInputElement;
5638
6122
  };
6123
+ interface HTMLBsListElementEventMap {
6124
+ "bsChange": string | null;
6125
+ }
6126
+ /**
6127
+ * A vertical list of `bs-list-item` rows, optionally single-select.
6128
+ * ## When to use
6129
+ * - Records, people, files or options shown as rows with leading media and descriptions.
6130
+ * - `selectable` for a single-choice list (e.g. a conversation list next to a detail pane).
6131
+ * ## When not to use
6132
+ * - A popup list of actions -- use `bs-menu`.
6133
+ * - Navigation between app sections -- use `bs-navigation-drawer`.
6134
+ * - Multi-column, sortable or paged data -- use `bs-data-table`.
6135
+ * Built from `bs-list-item` children (light DOM; the list never moves nodes).
6136
+ * @prop --bs-list-gap - Gap between rows. Defaults to `0`.
6137
+ * @prop --bs-list-divider-color - Divider colour when `dividers` is set. Aliased to `--bs-border-neutral-container`.
6138
+ */
6139
+ interface HTMLBsListElement extends Components.BsList, HTMLStencilElement {
6140
+ addEventListener<K extends keyof HTMLBsListElementEventMap>(type: K, listener: (this: HTMLBsListElement, ev: BsListCustomEvent<HTMLBsListElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
6141
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
6142
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
6143
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
6144
+ removeEventListener<K extends keyof HTMLBsListElementEventMap>(type: K, listener: (this: HTMLBsListElement, ev: BsListCustomEvent<HTMLBsListElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
6145
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
6146
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
6147
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
6148
+ }
6149
+ var HTMLBsListElement: {
6150
+ prototype: HTMLBsListElement;
6151
+ new (): HTMLBsListElement;
6152
+ };
6153
+ interface HTMLBsListItemElementEventMap {
6154
+ "bsItemClick": string | null;
6155
+ }
6156
+ /**
6157
+ * A single row of a list: optional leading media (avatar, icon, image), a label, a description and
6158
+ * optional support text, and an optional trailing caret or custom trailing content.
6159
+ * ## When to use
6160
+ * - As a child of `bs-list`, one per record, person, file or option.
6161
+ * - Standalone as a plain information row (non-interactive), or with `interactive` as a button-like row.
6162
+ * ## When not to use
6163
+ * - A popup list of actions -- use `bs-menu` / `bs-menu-item`.
6164
+ * - App navigation with an active route -- use `bs-navigation-drawer-item`.
6165
+ * - Tabular data with columns, sorting or paging -- use `bs-data-table`.
6166
+ * Composed from: leading media (`bs-avatar`) and trailing controls (`bs-icon-button`) are supplied by the
6167
+ * consumer through the `leading` and `trailing` slots; the row itself only reserves layout. The default
6168
+ * trailing caret is inline SVG.
6169
+ * Roles are driven by the parent `bs-list` (via `selectionRole`). Standalone, the row has no role
6170
+ * (`listitem` is only valid inside a list) unless `interactive` is set, which makes it a focusable
6171
+ * `role="button"`.
6172
+ * @prop --bs-list-item-min-height - Minimum row height. Aliased to `--bs-spacing-1000`.
6173
+ * @prop --bs-list-item-padding-y - Aliased to `--bs-spacing-150`.
6174
+ * @prop --bs-list-item-padding-x - Aliased to `--bs-spacing-200`.
6175
+ * @prop --bs-list-item-gap - Gap between leading, content and trailing. Aliased to `--bs-spacing-200`.
6176
+ * @prop --bs-list-item-content-gap - Gap between text lines. Aliased to `--bs-spacing-25`.
6177
+ * @prop --bs-list-item-radius - Aliased to `--bs-border-radius-100`.
6178
+ * @prop --bs-list-item-bg - Enabled background. `transparent`.
6179
+ * @prop --bs-list-item-bg-hover - Aliased to `--bs-surface-hover`.
6180
+ * @prop --bs-list-item-bg-pressed - Aliased to `--bs-surface-pressed`.
6181
+ * @prop --bs-list-item-bg-focus - Aliased to `--bs-surface-focus`.
6182
+ * @prop --bs-list-item-bg-selected - Aliased to `--bs-surface-selected`.
6183
+ * @prop --bs-list-item-bg-selected-hover - Aliased to `--bs-surface-selected-hover`.
6184
+ * @prop --bs-list-item-bg-selected-pressed - Aliased to `--bs-surface-selected-pressed`.
6185
+ * @prop --bs-list-item-bg-selected-focus - Aliased to `--bs-surface-selected-focus`.
6186
+ * @prop --bs-list-item-bg-disabled - Aliased to `--bs-surface-action-disabled`.
6187
+ * @prop --bs-list-item-color - Text colour. Aliased to `--bs-text-default`.
6188
+ * @prop --bs-list-item-color-disabled - Aliased to `--bs-text-on-disabled`.
6189
+ * @prop --bs-list-item-focus-ring - Focus ring colour. Aliased to `--bs-border-neutral-focus`.
6190
+ * @prop --bs-list-item-image-width - Leading image width. 72px.
6191
+ * @prop --bs-list-item-image-height - Leading image height. 56px.
6192
+ */
6193
+ interface HTMLBsListItemElement extends Components.BsListItem, HTMLStencilElement {
6194
+ addEventListener<K extends keyof HTMLBsListItemElementEventMap>(type: K, listener: (this: HTMLBsListItemElement, ev: BsListItemCustomEvent<HTMLBsListItemElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
6195
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
6196
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
6197
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
6198
+ removeEventListener<K extends keyof HTMLBsListItemElementEventMap>(type: K, listener: (this: HTMLBsListItemElement, ev: BsListItemCustomEvent<HTMLBsListItemElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
6199
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
6200
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
6201
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
6202
+ }
6203
+ var HTMLBsListItemElement: {
6204
+ prototype: HTMLBsListItemElement;
6205
+ new (): HTMLBsListItemElement;
6206
+ };
5639
6207
  /**
5640
6208
  * The BrandSync brand mark, as its own standalone component -- shared by `bs-navigation-header`
5641
6209
  * and `bs-navigation-drawer`, which used to each render their own duplicated copy of this SVG
@@ -6459,6 +7027,26 @@ declare global {
6459
7027
  prototype: HTMLBsSplitPaneElement;
6460
7028
  new (): HTMLBsSplitPaneElement;
6461
7029
  };
7030
+ /**
7031
+ * A flex layout that arranges its children in a row or column with a token-based gap, optionally
7032
+ * drawing a divider between children.
7033
+ * Built from: `bs-divider` (when `divider` is set).
7034
+ * With `divider`, each child is given a generated `slot="bs-stack-item-N"` attribute (plus a
7035
+ * `data-bs-stack-item` marker) so a divider can be rendered between the named slots. Light-DOM
7036
+ * nodes are never moved; the attributes are removed again when `divider` is turned off.
7037
+ * ## When to use
7038
+ * - Spacing and aligning a short run of siblings (form fields, button rows, card content).
7039
+ * ## When not to use
7040
+ * - Two-dimensional grids (use CSS grid).
7041
+ * - Resizable panes (use `bs-split-pane`).
7042
+ * @prop --bs-stack-gap - Space between items. Defaults from the `gap` prop (`--bs-spacing-<gap>`); may be overridden directly.
7043
+ */
7044
+ interface HTMLBsStackElement extends Components.BsStack, HTMLStencilElement {
7045
+ }
7046
+ var HTMLBsStackElement: {
7047
+ prototype: HTMLBsStackElement;
7048
+ new (): HTMLBsStackElement;
7049
+ };
6462
7050
  /**
6463
7051
  * A sequence of named steps showing overall progress through a multi-step flow (e.g. a checkout,
6464
7052
  * an onboarding wizard) -- each step reads as enabled (not yet reached), current, done, error, or
@@ -6717,6 +7305,61 @@ declare global {
6717
7305
  prototype: HTMLBsTooltipTriggerElement;
6718
7306
  new (): HTMLBsTooltipTriggerElement;
6719
7307
  };
7308
+ interface HTMLBsTreeElementEventMap {
7309
+ "bsChange": string;
7310
+ }
7311
+ /**
7312
+ * A hierarchical list of `bs-tree-item` rows with single selection, expand/collapse and the
7313
+ * WAI-ARIA tree keyboard pattern.
7314
+ * The tree owns `role="tree"`, the roving `tabindex` (exactly one enabled, visible item is
7315
+ * tabbable: the selected one, otherwise the first), selection (kept in sync with each item's
7316
+ * `selected`) and keyboard navigation over the visible (rendered, non-disabled) items. Items own
7317
+ * their expansion state and emit `bsSelect` / `bsToggle`.
7318
+ * Built from: `bs-tree-item` rows.
7319
+ */
7320
+ interface HTMLBsTreeElement extends Components.BsTree, HTMLStencilElement {
7321
+ addEventListener<K extends keyof HTMLBsTreeElementEventMap>(type: K, listener: (this: HTMLBsTreeElement, ev: BsTreeCustomEvent<HTMLBsTreeElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
7322
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
7323
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
7324
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
7325
+ removeEventListener<K extends keyof HTMLBsTreeElementEventMap>(type: K, listener: (this: HTMLBsTreeElement, ev: BsTreeCustomEvent<HTMLBsTreeElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
7326
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
7327
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
7328
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
7329
+ }
7330
+ var HTMLBsTreeElement: {
7331
+ prototype: HTMLBsTreeElement;
7332
+ new (): HTMLBsTreeElement;
7333
+ };
7334
+ interface HTMLBsTreeItemElementEventMap {
7335
+ "bsToggle": boolean;
7336
+ "bsSelect": string;
7337
+ }
7338
+ /**
7339
+ * A single row of a `bs-tree`. An item that contains child `bs-tree-item` elements is a parent
7340
+ * (it gets an expand/collapse caret and a folder icon); an item without children is a leaf (no
7341
+ * caret, file icon).
7342
+ * The host carries `role="treeitem"` and the `aria-*` state; the owning `bs-tree` manages the
7343
+ * roving `tabindex`, selection and keyboard navigation. Nesting depth is computed automatically
7344
+ * from the number of ancestor `bs-tree-item` elements and exposed as `aria-level` -- it is not a
7345
+ * prop. Clicking the row selects it; clicking the caret (or pressing Right/Left in a tree) toggles
7346
+ * expansion -- the two are deliberately separate.
7347
+ * Built from: inline SVG icons only (no existing `bs-*` component covers a tree row).
7348
+ */
7349
+ interface HTMLBsTreeItemElement extends Components.BsTreeItem, HTMLStencilElement {
7350
+ addEventListener<K extends keyof HTMLBsTreeItemElementEventMap>(type: K, listener: (this: HTMLBsTreeItemElement, ev: BsTreeItemCustomEvent<HTMLBsTreeItemElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
7351
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
7352
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
7353
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
7354
+ removeEventListener<K extends keyof HTMLBsTreeItemElementEventMap>(type: K, listener: (this: HTMLBsTreeItemElement, ev: BsTreeItemCustomEvent<HTMLBsTreeItemElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
7355
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
7356
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
7357
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
7358
+ }
7359
+ var HTMLBsTreeItemElement: {
7360
+ prototype: HTMLBsTreeItemElement;
7361
+ new (): HTMLBsTreeItemElement;
7362
+ };
6720
7363
  interface HTMLBsWhatsNewElementEventMap {
6721
7364
  "bsMarkAllRead": void;
6722
7365
  "bsEntryAction": { id: string };
@@ -6792,6 +7435,7 @@ declare global {
6792
7435
  "bs-ai-disclaimer": HTMLBsAiDisclaimerElement;
6793
7436
  "bs-ai-greeting": HTMLBsAiGreetingElement;
6794
7437
  "bs-ai-thinking": HTMLBsAiThinkingElement;
7438
+ "bs-app-shell": HTMLBsAppShellElement;
6795
7439
  "bs-attachment": HTMLBsAttachmentElement;
6796
7440
  "bs-attachment-list": HTMLBsAttachmentListElement;
6797
7441
  "bs-avatar": HTMLBsAvatarElement;
@@ -6816,17 +7460,22 @@ declare global {
6816
7460
  "bs-citation-preview": HTMLBsCitationPreviewElement;
6817
7461
  "bs-composer": HTMLBsComposerElement;
6818
7462
  "bs-composer-status-banner": HTMLBsComposerStatusBannerElement;
7463
+ "bs-container": HTMLBsContainerElement;
6819
7464
  "bs-cookie-consent": HTMLBsCookieConsentElement;
6820
7465
  "bs-data-table": HTMLBsDataTableElement;
6821
7466
  "bs-datepicker": HTMLBsDatepickerElement;
6822
7467
  "bs-dialog": HTMLBsDialogElement;
7468
+ "bs-divider": HTMLBsDividerElement;
6823
7469
  "bs-error-page": HTMLBsErrorPageElement;
6824
7470
  "bs-file-upload": HTMLBsFileUploadElement;
6825
7471
  "bs-file-upload-item": HTMLBsFileUploadItemElement;
7472
+ "bs-grid": HTMLBsGridElement;
6826
7473
  "bs-icon-button": HTMLBsIconButtonElement;
6827
7474
  "bs-icon-tile": HTMLBsIconTileElement;
6828
7475
  "bs-inline-tab": HTMLBsInlineTabElement;
6829
7476
  "bs-input": HTMLBsInputElement;
7477
+ "bs-list": HTMLBsListElement;
7478
+ "bs-list-item": HTMLBsListItemElement;
6830
7479
  "bs-logo": HTMLBsLogoElement;
6831
7480
  "bs-menu": HTMLBsMenuElement;
6832
7481
  "bs-menu-item": HTMLBsMenuItemElement;
@@ -6851,6 +7500,7 @@ declare global {
6851
7500
  "bs-source-link": HTMLBsSourceLinkElement;
6852
7501
  "bs-spinner": HTMLBsSpinnerElement;
6853
7502
  "bs-split-pane": HTMLBsSplitPaneElement;
7503
+ "bs-stack": HTMLBsStackElement;
6854
7504
  "bs-stepper": HTMLBsStepperElement;
6855
7505
  "bs-stepper-step": HTMLBsStepperStepElement;
6856
7506
  "bs-switch": HTMLBsSwitchElement;
@@ -6860,6 +7510,8 @@ declare global {
6860
7510
  "bs-toast": HTMLBsToastElement;
6861
7511
  "bs-tooltip": HTMLBsTooltipElement;
6862
7512
  "bs-tooltip-trigger": HTMLBsTooltipTriggerElement;
7513
+ "bs-tree": HTMLBsTreeElement;
7514
+ "bs-tree-item": HTMLBsTreeItemElement;
6863
7515
  "bs-whats-new": HTMLBsWhatsNewElement;
6864
7516
  "bs-whats-new-entry": HTMLBsWhatsNewEntryElement;
6865
7517
  }
@@ -7008,6 +7660,34 @@ declare namespace LocalJSX {
7008
7660
  */
7009
7661
  "label"?: string;
7010
7662
  }
7663
+ /**
7664
+ * The page frame: a header across the top, and below it a navigation | main | aside row, laid out
7665
+ * with CSS grid. The main column scrolls independently of the header and the side columns.
7666
+ * Layout only. Compose it from the existing shell components: put a `bs-navigation-header`
7667
+ * (usually `alignment="with-navigation-drawer"`) in `header` and a `bs-navigation-drawer` in
7668
+ * `navigation`. The drawer sizes itself (expanded or collapsed rail); the shell reserves an `auto`
7669
+ * track for it, so there is no `navigationWidth` prop. `bs-navigation-header` has no `collapsed`
7670
+ * prop, so there is no collapse state to mirror and the shell does not listen to `bsCollapse`: the
7671
+ * auto track follows the drawer's width on its own.
7672
+ * The shell creates no landmarks besides `<main>`; the slotted header and drawer bring their own
7673
+ * `banner` and `navigation` roles.
7674
+ * ## When to use
7675
+ * - The outer frame of an application page with a header and side navigation.
7676
+ * ## When not to use
7677
+ * - Content layout inside the page (use `bs-grid`) or resizable panes (use `bs-split-pane`).
7678
+ * - Pages that already have their own `<main>`; the shell would add a duplicate landmark.
7679
+ * @prop --bs-app-shell-bg - Shell background. Aliased to `--bs-surface-base`.
7680
+ * @prop --bs-app-shell-color - Text colour. Aliased to `--bs-text-default`.
7681
+ * @prop --bs-app-shell-main-padding - Padding of the main area. Aliased to `--bs-spacing-400`.
7682
+ * @prop --bs-app-shell-aside-width - Width of the aside column. Defaults to `auto` (zero when empty).
7683
+ */
7684
+ interface BsAppShell {
7685
+ /**
7686
+ * When true the host is `height: 100%`; when false it is content-sized with `min-height: 100vh`.
7687
+ * @default true
7688
+ */
7689
+ "fullHeight"?: boolean;
7690
+ }
7011
7691
  /**
7012
7692
  * A single file attachment preview for `bs-composer` -- an image thumbnail, or a filename card
7013
7693
  * with a colored file-type badge (PDF/Document), with an optional upload-in-progress spinner and
@@ -8391,6 +9071,28 @@ declare namespace LocalJSX {
8391
9071
  */
8392
9072
  "type"?: BsComposerStatusBannerType;
8393
9073
  }
9074
+ /**
9075
+ * A centred wrapper that limits content width to a breakpoint and adds horizontal padding.
9076
+ * ## When to use
9077
+ * - Constraining page or section content to a readable, consistent maximum width.
9078
+ * ## When not to use
9079
+ * - Arranging children relative to each other (use `bs-stack`).
9080
+ * - Full-bleed regions such as hero backgrounds (use `size="fluid"` or no container).
9081
+ * @prop --bs-container-max-width - Maximum width. Aliased to the `--bs-breakpoint-*` token for `size`; `none` for `fluid`.
9082
+ * @prop --bs-container-padding - Horizontal padding. Aliased to the `padding` spacing token (default `--bs-spacing-300`).
9083
+ */
9084
+ interface BsContainer {
9085
+ /**
9086
+ * Spacing token name for horizontal padding (e.g. `300` => `--bs-spacing-300`). Invalid values fall back to `300`.
9087
+ * @default '300'
9088
+ */
9089
+ "padding"?: string;
9090
+ /**
9091
+ * Maximum width, taken from the breakpoint tokens. `fluid` removes the limit.
9092
+ * @default 'xl'
9093
+ */
9094
+ "size"?: BsContainerSize;
9095
+ }
8394
9096
  /**
8395
9097
  * A cookie consent prompt in four forms, matching the Figma "Cookie consent" component:
8396
9098
  * - `banner` -- a wide bar: icon, heading, text, policy link, and Customise / Reject optional / Accept
@@ -8705,6 +9407,39 @@ declare namespace LocalJSX {
8705
9407
  */
8706
9408
  "size"?: BsDialogSize;
8707
9409
  }
9410
+ /**
9411
+ * A thin line that separates content, horizontally or vertically.
9412
+ * ## When to use
9413
+ * - Separating groups of related content in a list, menu, toolbar or card.
9414
+ * ## When not to use
9415
+ * - Adding vertical space between blocks (use `bs-stack` gap or spacing tokens).
9416
+ * - Drawing a border around a surface (use `bs-card`).
9417
+ * @prop --bs-divider-thickness - Line thickness. Defaults to `1px`.
9418
+ * @prop --bs-divider-color - Line colour. Aliased to `--bs-border-neutral-container` (`default`) or `--bs-neutral-100` (`subtle`).
9419
+ * @prop --bs-divider-inset - Indent applied by `inset`. Aliased to `--bs-spacing-300`.
9420
+ */
9421
+ interface BsDivider {
9422
+ /**
9423
+ * Purely visual: hides the divider from assistive technology instead of exposing a separator.
9424
+ * @default false
9425
+ */
9426
+ "decorative"?: boolean;
9427
+ /**
9428
+ * Indents the line from its start edge, or from both edges.
9429
+ * @default 'none'
9430
+ */
9431
+ "inset"?: BsDividerInset;
9432
+ /**
9433
+ * Direction of the line. A vertical divider stretches to the height of its container.
9434
+ * @default 'horizontal'
9435
+ */
9436
+ "orientation"?: BsDividerOrientation;
9437
+ /**
9438
+ * Visual weight of the line.
9439
+ * @default 'default'
9440
+ */
9441
+ "variant"?: BsDividerVariant;
9442
+ }
8708
9443
  /**
8709
9444
  * A full-block page for when the user can't get to what they asked for: page not found (404), a server
8710
9445
  * error (500), no access (403), planned maintenance, or no internet connection. Matches the Figma
@@ -8884,6 +9619,53 @@ declare namespace LocalJSX {
8884
9619
  */
8885
9620
  "thumbnailSrc"?: string;
8886
9621
  }
9622
+ /**
9623
+ * A CSS grid layout wrapper. Children are placed in equal-width columns with a token-based gap.
9624
+ * `columns` takes either a number (`"3"` becomes `repeat(3, minmax(0, 1fr))`) or any raw
9625
+ * `grid-template-columns` value (`"200px 1fr"`). `minColumnWidth` is the responsive mechanism: it
9626
+ * switches to `repeat(auto-fit, minmax(min(100%, X), 1fr))`, so the column count adapts to the
9627
+ * container width and `columns` is ignored. There are deliberately no per-breakpoint props in v1.
9628
+ * `gap`, `rowGap` and `columnGap` take spacing token names (`"200"` maps to `var(--bs-spacing-200)`);
9629
+ * unknown names fall back to `100`.
9630
+ * ## When to use
9631
+ * - Card grids, form field grids and dashboards where items share equal column tracks.
9632
+ * - Responsive galleries via `minColumnWidth`.
9633
+ * ## When not to use
9634
+ * - A single row or column of items with no wrapping (plain flex).
9635
+ * - Resizable multi-pane layouts (use `bs-split-pane`) or the page frame (use `bs-app-shell`).
9636
+ * @prop --bs-grid-gap - Gap on both axes. Overrides the `gap` prop's token (default `--bs-spacing-100`).
9637
+ * @prop --bs-grid-row-gap - Row gap. Overrides `--bs-grid-gap` and the `rowGap` prop's token.
9638
+ * @prop --bs-grid-column-gap - Column gap. Overrides `--bs-grid-gap` and the `columnGap` prop's token.
9639
+ */
9640
+ interface BsGrid {
9641
+ /**
9642
+ * Block-axis alignment of items within their cell.
9643
+ * @default 'stretch'
9644
+ */
9645
+ "align"?: BsGridAlign;
9646
+ /**
9647
+ * Spacing token name for the column gap; overrides `gap` for columns.
9648
+ */
9649
+ "columnGap"?: string;
9650
+ /**
9651
+ * A number of equal columns (`"3"`), or a raw `grid-template-columns` value. Ignored when `minColumnWidth` is set.
9652
+ * @default '1'
9653
+ */
9654
+ "columns"?: string;
9655
+ /**
9656
+ * Spacing token name for the gap on both axes, e.g. `"200"` for `--bs-spacing-200`.
9657
+ * @default '100'
9658
+ */
9659
+ "gap"?: string;
9660
+ /**
9661
+ * CSS length (e.g. `240px`). Switches to auto-fit columns at least this wide and overrides `columns`.
9662
+ */
9663
+ "minColumnWidth"?: string;
9664
+ /**
9665
+ * Spacing token name for the row gap; overrides `gap` for rows.
9666
+ */
9667
+ "rowGap"?: string;
9668
+ }
8887
9669
  /**
8888
9670
  * A clickable, icon-only action element -- the icon-only sibling of `bs-button`, sharing the same
8889
9671
  * 8 visual variants and color language, but ALWAYS rendering just a single icon, never a label.
@@ -9179,6 +9961,133 @@ declare namespace LocalJSX {
9179
9961
  */
9180
9962
  "value"?: string;
9181
9963
  }
9964
+ /**
9965
+ * A vertical list of `bs-list-item` rows, optionally single-select.
9966
+ * ## When to use
9967
+ * - Records, people, files or options shown as rows with leading media and descriptions.
9968
+ * - `selectable` for a single-choice list (e.g. a conversation list next to a detail pane).
9969
+ * ## When not to use
9970
+ * - A popup list of actions -- use `bs-menu`.
9971
+ * - Navigation between app sections -- use `bs-navigation-drawer`.
9972
+ * - Multi-column, sortable or paged data -- use `bs-data-table`.
9973
+ * Built from `bs-list-item` children (light DOM; the list never moves nodes).
9974
+ * @prop --bs-list-gap - Gap between rows. Defaults to `0`.
9975
+ * @prop --bs-list-divider-color - Divider colour when `dividers` is set. Aliased to `--bs-border-neutral-container`.
9976
+ */
9977
+ interface BsList {
9978
+ /**
9979
+ * Accessible name of the list.
9980
+ * @default null
9981
+ */
9982
+ "ariaLabel"?: string | null;
9983
+ /**
9984
+ * Draws a 1px separator between rows.
9985
+ * @default false
9986
+ */
9987
+ "dividers"?: boolean;
9988
+ /**
9989
+ * Fires with the new `value` when the user changes the selection.
9990
+ */
9991
+ "onBsChange"?: (event: BsListCustomEvent<string | null>) => void;
9992
+ /**
9993
+ * Single-selection mode: role="listbox", rows are `option`s with roving tabindex.
9994
+ * @default false
9995
+ */
9996
+ "selectable"?: boolean;
9997
+ /**
9998
+ * `value` of the selected item (selectable mode).
9999
+ * @default null
10000
+ */
10001
+ "value"?: string | null;
10002
+ }
10003
+ /**
10004
+ * A single row of a list: optional leading media (avatar, icon, image), a label, a description and
10005
+ * optional support text, and an optional trailing caret or custom trailing content.
10006
+ * ## When to use
10007
+ * - As a child of `bs-list`, one per record, person, file or option.
10008
+ * - Standalone as a plain information row (non-interactive), or with `interactive` as a button-like row.
10009
+ * ## When not to use
10010
+ * - A popup list of actions -- use `bs-menu` / `bs-menu-item`.
10011
+ * - App navigation with an active route -- use `bs-navigation-drawer-item`.
10012
+ * - Tabular data with columns, sorting or paging -- use `bs-data-table`.
10013
+ * Composed from: leading media (`bs-avatar`) and trailing controls (`bs-icon-button`) are supplied by the
10014
+ * consumer through the `leading` and `trailing` slots; the row itself only reserves layout. The default
10015
+ * trailing caret is inline SVG.
10016
+ * Roles are driven by the parent `bs-list` (via `selectionRole`). Standalone, the row has no role
10017
+ * (`listitem` is only valid inside a list) unless `interactive` is set, which makes it a focusable
10018
+ * `role="button"`.
10019
+ * @prop --bs-list-item-min-height - Minimum row height. Aliased to `--bs-spacing-1000`.
10020
+ * @prop --bs-list-item-padding-y - Aliased to `--bs-spacing-150`.
10021
+ * @prop --bs-list-item-padding-x - Aliased to `--bs-spacing-200`.
10022
+ * @prop --bs-list-item-gap - Gap between leading, content and trailing. Aliased to `--bs-spacing-200`.
10023
+ * @prop --bs-list-item-content-gap - Gap between text lines. Aliased to `--bs-spacing-25`.
10024
+ * @prop --bs-list-item-radius - Aliased to `--bs-border-radius-100`.
10025
+ * @prop --bs-list-item-bg - Enabled background. `transparent`.
10026
+ * @prop --bs-list-item-bg-hover - Aliased to `--bs-surface-hover`.
10027
+ * @prop --bs-list-item-bg-pressed - Aliased to `--bs-surface-pressed`.
10028
+ * @prop --bs-list-item-bg-focus - Aliased to `--bs-surface-focus`.
10029
+ * @prop --bs-list-item-bg-selected - Aliased to `--bs-surface-selected`.
10030
+ * @prop --bs-list-item-bg-selected-hover - Aliased to `--bs-surface-selected-hover`.
10031
+ * @prop --bs-list-item-bg-selected-pressed - Aliased to `--bs-surface-selected-pressed`.
10032
+ * @prop --bs-list-item-bg-selected-focus - Aliased to `--bs-surface-selected-focus`.
10033
+ * @prop --bs-list-item-bg-disabled - Aliased to `--bs-surface-action-disabled`.
10034
+ * @prop --bs-list-item-color - Text colour. Aliased to `--bs-text-default`.
10035
+ * @prop --bs-list-item-color-disabled - Aliased to `--bs-text-on-disabled`.
10036
+ * @prop --bs-list-item-focus-ring - Focus ring colour. Aliased to `--bs-border-neutral-focus`.
10037
+ * @prop --bs-list-item-image-width - Leading image width. 72px.
10038
+ * @prop --bs-list-item-image-height - Leading image height. 56px.
10039
+ */
10040
+ interface BsListItem {
10041
+ /**
10042
+ * Second text line (the "paragraph").
10043
+ * @default null
10044
+ */
10045
+ "description"?: string | null;
10046
+ /**
10047
+ * Disables the row: dimmed, not focusable, no click event.
10048
+ * @default false
10049
+ */
10050
+ "disabled"?: boolean;
10051
+ /**
10052
+ * Makes a standalone row a focusable `role="button"` that emits `bsItemClick`.
10053
+ * @default false
10054
+ */
10055
+ "interactive"?: boolean;
10056
+ /**
10057
+ * First text line (semibold).
10058
+ * @default null
10059
+ */
10060
+ "label"?: string | null;
10061
+ /**
10062
+ * Fires on click / Enter / Space when the row is interactive and not disabled. Payload is `value`.
10063
+ */
10064
+ "onBsItemClick"?: (event: BsListItemCustomEvent<string | null>) => void;
10065
+ /**
10066
+ * Marks the row as selected. Managed by the parent `bs-list` when it is `selectable`.
10067
+ * @default false
10068
+ */
10069
+ "selected"?: boolean;
10070
+ /**
10071
+ * Set by the parent `bs-list`: `listitem` (plain list) or `option` (selectable list). Do not set by hand.
10072
+ * @default null
10073
+ */
10074
+ "selectionRole"?: 'listitem' | 'option' | null;
10075
+ /**
10076
+ * Shows a trailing caret (unless the `trailing` slot has content).
10077
+ * @default false
10078
+ */
10079
+ "showArrow"?: boolean;
10080
+ /**
10081
+ * Optional third text line.
10082
+ * @default null
10083
+ */
10084
+ "supportText"?: string | null;
10085
+ /**
10086
+ * Identifies the item; emitted by `bsItemClick` and matched against `bs-list`'s `value`.
10087
+ * @default null
10088
+ */
10089
+ "value"?: string | null;
10090
+ }
9182
10091
  /**
9183
10092
  * The BrandSync brand mark, as its own standalone component -- shared by `bs-navigation-header`
9184
10093
  * and `bs-navigation-drawer`, which used to each render their own duplicated copy of this SVG
@@ -10682,6 +11591,52 @@ declare namespace LocalJSX {
10682
11591
  */
10683
11592
  "step"?: number;
10684
11593
  }
11594
+ /**
11595
+ * A flex layout that arranges its children in a row or column with a token-based gap, optionally
11596
+ * drawing a divider between children.
11597
+ * Built from: `bs-divider` (when `divider` is set).
11598
+ * With `divider`, each child is given a generated `slot="bs-stack-item-N"` attribute (plus a
11599
+ * `data-bs-stack-item` marker) so a divider can be rendered between the named slots. Light-DOM
11600
+ * nodes are never moved; the attributes are removed again when `divider` is turned off.
11601
+ * ## When to use
11602
+ * - Spacing and aligning a short run of siblings (form fields, button rows, card content).
11603
+ * ## When not to use
11604
+ * - Two-dimensional grids (use CSS grid).
11605
+ * - Resizable panes (use `bs-split-pane`).
11606
+ * @prop --bs-stack-gap - Space between items. Defaults from the `gap` prop (`--bs-spacing-<gap>`); may be overridden directly.
11607
+ */
11608
+ interface BsStack {
11609
+ /**
11610
+ * Cross-axis alignment.
11611
+ * @default 'stretch'
11612
+ */
11613
+ "align"?: BsStackAlign;
11614
+ /**
11615
+ * Main axis: `vertical` stacks children in a column, `horizontal` in a row.
11616
+ * @default 'vertical'
11617
+ */
11618
+ "direction"?: BsStackDirection;
11619
+ /**
11620
+ * Renders a decorative `bs-divider` between each child.
11621
+ * @default false
11622
+ */
11623
+ "divider"?: boolean;
11624
+ /**
11625
+ * Spacing token name (e.g. `200` => `--bs-spacing-200`). Invalid values fall back to `100`.
11626
+ * @default '100'
11627
+ */
11628
+ "gap"?: string;
11629
+ /**
11630
+ * Main-axis distribution.
11631
+ * @default 'start'
11632
+ */
11633
+ "justify"?: BsStackJustify;
11634
+ /**
11635
+ * Lets items wrap onto further lines.
11636
+ * @default false
11637
+ */
11638
+ "wrap"?: boolean;
11639
+ }
10685
11640
  /**
10686
11641
  * A sequence of named steps showing overall progress through a multi-step flow (e.g. a checkout,
10687
11642
  * an onboarding wizard) -- each step reads as enabled (not yet reached), current, done, error, or
@@ -11097,6 +12052,87 @@ declare namespace LocalJSX {
11097
12052
  */
11098
12053
  "text"?: string;
11099
12054
  }
12055
+ /**
12056
+ * A hierarchical list of `bs-tree-item` rows with single selection, expand/collapse and the
12057
+ * WAI-ARIA tree keyboard pattern.
12058
+ * The tree owns `role="tree"`, the roving `tabindex` (exactly one enabled, visible item is
12059
+ * tabbable: the selected one, otherwise the first), selection (kept in sync with each item's
12060
+ * `selected`) and keyboard navigation over the visible (rendered, non-disabled) items. Items own
12061
+ * their expansion state and emit `bsSelect` / `bsToggle`.
12062
+ * Built from: `bs-tree-item` rows.
12063
+ */
12064
+ interface BsTree {
12065
+ /**
12066
+ * Accessible name of the tree. Bound onto the internal `role="tree"` element (an `aria-label` on the host would not reach it).
12067
+ * @default null
12068
+ */
12069
+ "ariaLabel"?: string | null;
12070
+ /**
12071
+ * Emitted when the user changes the selection (click, Enter/Space), with the new value. Not emitted when `value` is set from code.
12072
+ */
12073
+ "onBsChange"?: (event: BsTreeCustomEvent<string>) => void;
12074
+ /**
12075
+ * When `false`, rows do not select (clicks and Enter/Space do nothing) but parents still expand and collapse.
12076
+ * @default true
12077
+ */
12078
+ "selectable"?: boolean;
12079
+ /**
12080
+ * The `value` (or, when empty, the `label`) of the selected item. Two-way synced with each item's `selected` (single selection). Setting it from code does not emit `bsChange`.
12081
+ * @default ''
12082
+ */
12083
+ "value"?: string;
12084
+ }
12085
+ /**
12086
+ * A single row of a `bs-tree`. An item that contains child `bs-tree-item` elements is a parent
12087
+ * (it gets an expand/collapse caret and a folder icon); an item without children is a leaf (no
12088
+ * caret, file icon).
12089
+ * The host carries `role="treeitem"` and the `aria-*` state; the owning `bs-tree` manages the
12090
+ * roving `tabindex`, selection and keyboard navigation. Nesting depth is computed automatically
12091
+ * from the number of ancestor `bs-tree-item` elements and exposed as `aria-level` -- it is not a
12092
+ * prop. Clicking the row selects it; clicking the caret (or pressing Right/Left in a tree) toggles
12093
+ * expansion -- the two are deliberately separate.
12094
+ * Built from: inline SVG icons only (no existing `bs-*` component covers a tree row).
12095
+ */
12096
+ interface BsTreeItem {
12097
+ /**
12098
+ * Disables the row: not focusable, ignores clicks, dimmed. Reflected.
12099
+ * @default false
12100
+ */
12101
+ "disabled"?: boolean;
12102
+ /**
12103
+ * Whether the child items are shown. Only meaningful for parents. Mutable: the caret, the keyboard and the owning tree toggle it. Reflected.
12104
+ * @default false
12105
+ */
12106
+ "expanded"?: boolean;
12107
+ /**
12108
+ * The row's text. Use the `label` slot for rich content.
12109
+ * @default ''
12110
+ */
12111
+ "label"?: string;
12112
+ /**
12113
+ * Emitted (bubbling, composed) when the user activates the row, with the item's value. The owning `bs-tree` listens and updates the selection.
12114
+ */
12115
+ "onBsSelect"?: (event: BsTreeItemCustomEvent<string>) => void;
12116
+ /**
12117
+ * Emitted when the user toggles expansion (caret click or keyboard), with the new `expanded` value. Not emitted when `expanded` is set from code.
12118
+ */
12119
+ "onBsToggle"?: (event: BsTreeItemCustomEvent<boolean>) => void;
12120
+ /**
12121
+ * Marks the row as selected. Owned by the tree (single selection, synced with its `value`). Reflected.
12122
+ * @default false
12123
+ */
12124
+ "selected"?: boolean;
12125
+ /**
12126
+ * Shows the leading icon (default folder / file, or the `icon` slot).
12127
+ * @default true
12128
+ */
12129
+ "showIcon"?: boolean;
12130
+ /**
12131
+ * Identifier used in events and for the tree's `value`. Falls back to `label` when empty.
12132
+ * @default ''
12133
+ */
12134
+ "value"?: string;
12135
+ }
11100
12136
  /**
11101
12137
  * A product's "What's new" surface, in three forms matching the Figma component:
11102
12138
  * - `feed` -- a docked panel: heading, "Mark all as read", filter tabs, the list of updates (each a
@@ -11339,6 +12375,9 @@ declare namespace LocalJSX {
11339
12375
  interface BsAiThinkingAttributes {
11340
12376
  "label": string;
11341
12377
  }
12378
+ interface BsAppShellAttributes {
12379
+ "fullHeight": boolean;
12380
+ }
11342
12381
  interface BsAttachmentAttributes {
11343
12382
  "uploadingLabel": string;
11344
12383
  "removeLabel": string;
@@ -11520,6 +12559,10 @@ declare namespace LocalJSX {
11520
12559
  "closeLabel": string;
11521
12560
  "allowClose": boolean;
11522
12561
  }
12562
+ interface BsContainerAttributes {
12563
+ "size": BsContainerSize;
12564
+ "padding": string;
12565
+ }
11523
12566
  interface BsCookieConsentAttributes {
11524
12567
  "type": BsCookieConsentType;
11525
12568
  "heading": string;
@@ -11566,6 +12609,12 @@ declare namespace LocalJSX {
11566
12609
  "size": BsDialogSize;
11567
12610
  "centered": boolean;
11568
12611
  }
12612
+ interface BsDividerAttributes {
12613
+ "orientation": BsDividerOrientation;
12614
+ "variant": BsDividerVariant;
12615
+ "inset": BsDividerInset;
12616
+ "decorative": boolean;
12617
+ }
11569
12618
  interface BsErrorPageAttributes {
11570
12619
  "type": BsErrorPageType;
11571
12620
  "code": string;
@@ -11597,6 +12646,14 @@ declare namespace LocalJSX {
11597
12646
  "cancelLabel": string;
11598
12647
  "removeLabel": string;
11599
12648
  }
12649
+ interface BsGridAttributes {
12650
+ "columns": string;
12651
+ "gap": string;
12652
+ "rowGap": string;
12653
+ "columnGap": string;
12654
+ "minColumnWidth": string;
12655
+ "align": BsGridAlign;
12656
+ }
11600
12657
  interface BsIconButtonAttributes {
11601
12658
  "variant": BsIconButtonVariant;
11602
12659
  "size": BsIconButtonSize;
@@ -11651,6 +12708,23 @@ declare namespace LocalJSX {
11651
12708
  "length": number;
11652
12709
  "open": boolean;
11653
12710
  }
12711
+ interface BsListAttributes {
12712
+ "selectable": boolean;
12713
+ "value": string | null;
12714
+ "dividers": boolean;
12715
+ "ariaLabel": string | null;
12716
+ }
12717
+ interface BsListItemAttributes {
12718
+ "label": string | null;
12719
+ "description": string | null;
12720
+ "supportText": string | null;
12721
+ "selected": boolean;
12722
+ "disabled": boolean;
12723
+ "showArrow": boolean;
12724
+ "value": string | null;
12725
+ "interactive": boolean;
12726
+ "selectionRole": 'listitem' | 'option' | null;
12727
+ }
11654
12728
  interface BsLogoAttributes {
11655
12729
  "variant": BsLogoVariant;
11656
12730
  "background": BsLogoBackground;
@@ -11865,6 +12939,14 @@ declare namespace LocalJSX {
11865
12939
  "dividerLabel": string;
11866
12940
  "step": number;
11867
12941
  }
12942
+ interface BsStackAttributes {
12943
+ "direction": BsStackDirection;
12944
+ "gap": string;
12945
+ "align": BsStackAlign;
12946
+ "justify": BsStackJustify;
12947
+ "wrap": boolean;
12948
+ "divider": boolean;
12949
+ }
11868
12950
  interface BsStepperAttributes {
11869
12951
  "currentStep": number;
11870
12952
  "direction": BsStepperDirection;
@@ -11927,6 +13009,19 @@ declare namespace LocalJSX {
11927
13009
  "delay": number;
11928
13010
  "placement": BsTooltipTriggerPlacement;
11929
13011
  }
13012
+ interface BsTreeAttributes {
13013
+ "ariaLabel": string | null;
13014
+ "value": string;
13015
+ "selectable": boolean;
13016
+ }
13017
+ interface BsTreeItemAttributes {
13018
+ "label": string;
13019
+ "expanded": boolean;
13020
+ "selected": boolean;
13021
+ "disabled": boolean;
13022
+ "showIcon": boolean;
13023
+ "value": string;
13024
+ }
11930
13025
  interface BsWhatsNewAttributes {
11931
13026
  "type": BsWhatsNewType;
11932
13027
  "heading": string;
@@ -11969,6 +13064,7 @@ declare namespace LocalJSX {
11969
13064
  "bs-ai-disclaimer": BsAiDisclaimer;
11970
13065
  "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] };
11971
13066
  "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] };
13067
+ "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] };
11972
13068
  "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] };
11973
13069
  "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] };
11974
13070
  "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] };
@@ -11993,17 +13089,22 @@ declare namespace LocalJSX {
11993
13089
  "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] };
11994
13090
  "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] };
11995
13091
  "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] };
13092
+ "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] };
11996
13093
  "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] };
11997
13094
  "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] };
11998
13095
  "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] };
11999
13096
  "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] };
13097
+ "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] };
12000
13098
  "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] };
12001
13099
  "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] };
12002
13100
  "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] };
13101
+ "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] };
12003
13102
  "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] };
12004
13103
  "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] };
12005
13104
  "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] };
12006
13105
  "bs-input": Omit<BsInput, keyof BsInputAttributes> & { [K in keyof BsInput & keyof BsInputAttributes]?: BsInput[K] } & { [K in keyof BsInput & keyof BsInputAttributes as `attr:${K}`]?: BsInputAttributes[K] } & { [K in keyof BsInput & keyof BsInputAttributes as `prop:${K}`]?: BsInput[K] };
13106
+ "bs-list": Omit<BsList, keyof BsListAttributes> & { [K in keyof BsList & keyof BsListAttributes]?: BsList[K] } & { [K in keyof BsList & keyof BsListAttributes as `attr:${K}`]?: BsListAttributes[K] } & { [K in keyof BsList & keyof BsListAttributes as `prop:${K}`]?: BsList[K] };
13107
+ "bs-list-item": Omit<BsListItem, keyof BsListItemAttributes> & { [K in keyof BsListItem & keyof BsListItemAttributes]?: BsListItem[K] } & { [K in keyof BsListItem & keyof BsListItemAttributes as `attr:${K}`]?: BsListItemAttributes[K] } & { [K in keyof BsListItem & keyof BsListItemAttributes as `prop:${K}`]?: BsListItem[K] };
12007
13108
  "bs-logo": Omit<BsLogo, keyof BsLogoAttributes> & { [K in keyof BsLogo & keyof BsLogoAttributes]?: BsLogo[K] } & { [K in keyof BsLogo & keyof BsLogoAttributes as `attr:${K}`]?: BsLogoAttributes[K] } & { [K in keyof BsLogo & keyof BsLogoAttributes as `prop:${K}`]?: BsLogo[K] };
12008
13109
  "bs-menu": BsMenu;
12009
13110
  "bs-menu-item": Omit<BsMenuItem, keyof BsMenuItemAttributes> & { [K in keyof BsMenuItem & keyof BsMenuItemAttributes]?: BsMenuItem[K] } & { [K in keyof BsMenuItem & keyof BsMenuItemAttributes as `attr:${K}`]?: BsMenuItemAttributes[K] } & { [K in keyof BsMenuItem & keyof BsMenuItemAttributes as `prop:${K}`]?: BsMenuItem[K] };
@@ -12028,6 +13129,7 @@ declare namespace LocalJSX {
12028
13129
  "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] };
12029
13130
  "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] };
12030
13131
  "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] };
13132
+ "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] };
12031
13133
  "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] };
12032
13134
  "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] };
12033
13135
  "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] };
@@ -12037,6 +13139,8 @@ declare namespace LocalJSX {
12037
13139
  "bs-toast": Omit<BsToast, keyof BsToastAttributes> & { [K in keyof BsToast & keyof BsToastAttributes]?: BsToast[K] } & { [K in keyof BsToast & keyof BsToastAttributes as `attr:${K}`]?: BsToastAttributes[K] } & { [K in keyof BsToast & keyof BsToastAttributes as `prop:${K}`]?: BsToast[K] };
12038
13140
  "bs-tooltip": Omit<BsTooltip, keyof BsTooltipAttributes> & { [K in keyof BsTooltip & keyof BsTooltipAttributes]?: BsTooltip[K] } & { [K in keyof BsTooltip & keyof BsTooltipAttributes as `attr:${K}`]?: BsTooltipAttributes[K] } & { [K in keyof BsTooltip & keyof BsTooltipAttributes as `prop:${K}`]?: BsTooltip[K] };
12039
13141
  "bs-tooltip-trigger": Omit<BsTooltipTrigger, keyof BsTooltipTriggerAttributes> & { [K in keyof BsTooltipTrigger & keyof BsTooltipTriggerAttributes]?: BsTooltipTrigger[K] } & { [K in keyof BsTooltipTrigger & keyof BsTooltipTriggerAttributes as `attr:${K}`]?: BsTooltipTriggerAttributes[K] } & { [K in keyof BsTooltipTrigger & keyof BsTooltipTriggerAttributes as `prop:${K}`]?: BsTooltipTrigger[K] };
13142
+ "bs-tree": Omit<BsTree, keyof BsTreeAttributes> & { [K in keyof BsTree & keyof BsTreeAttributes]?: BsTree[K] } & { [K in keyof BsTree & keyof BsTreeAttributes as `attr:${K}`]?: BsTreeAttributes[K] } & { [K in keyof BsTree & keyof BsTreeAttributes as `prop:${K}`]?: BsTree[K] };
13143
+ "bs-tree-item": Omit<BsTreeItem, keyof BsTreeItemAttributes> & { [K in keyof BsTreeItem & keyof BsTreeItemAttributes]?: BsTreeItem[K] } & { [K in keyof BsTreeItem & keyof BsTreeItemAttributes as `attr:${K}`]?: BsTreeItemAttributes[K] } & { [K in keyof BsTreeItem & keyof BsTreeItemAttributes as `prop:${K}`]?: BsTreeItem[K] };
12040
13144
  "bs-whats-new": Omit<BsWhatsNew, keyof BsWhatsNewAttributes> & { [K in keyof BsWhatsNew & keyof BsWhatsNewAttributes]?: BsWhatsNew[K] } & { [K in keyof BsWhatsNew & keyof BsWhatsNewAttributes as `attr:${K}`]?: BsWhatsNewAttributes[K] } & { [K in keyof BsWhatsNew & keyof BsWhatsNewAttributes as `prop:${K}`]?: BsWhatsNew[K] };
12041
13145
  "bs-whats-new-entry": Omit<BsWhatsNewEntry, keyof BsWhatsNewEntryAttributes> & { [K in keyof BsWhatsNewEntry & keyof BsWhatsNewEntryAttributes]?: BsWhatsNewEntry[K] } & { [K in keyof BsWhatsNewEntry & keyof BsWhatsNewEntryAttributes as `attr:${K}`]?: BsWhatsNewEntryAttributes[K] } & { [K in keyof BsWhatsNewEntry & keyof BsWhatsNewEntryAttributes as `prop:${K}`]?: BsWhatsNewEntry[K] };
12042
13146
  }
@@ -12135,6 +13239,28 @@ declare module "@stencil/core" {
12135
13239
  * `--bs-duration-slower` is 500ms), so this is aliased directly to the literal value.
12136
13240
  */
12137
13241
  "bs-ai-thinking": LocalJSX.IntrinsicElements["bs-ai-thinking"] & JSXBase.HTMLAttributes<HTMLBsAiThinkingElement>;
13242
+ /**
13243
+ * The page frame: a header across the top, and below it a navigation | main | aside row, laid out
13244
+ * with CSS grid. The main column scrolls independently of the header and the side columns.
13245
+ * Layout only. Compose it from the existing shell components: put a `bs-navigation-header`
13246
+ * (usually `alignment="with-navigation-drawer"`) in `header` and a `bs-navigation-drawer` in
13247
+ * `navigation`. The drawer sizes itself (expanded or collapsed rail); the shell reserves an `auto`
13248
+ * track for it, so there is no `navigationWidth` prop. `bs-navigation-header` has no `collapsed`
13249
+ * prop, so there is no collapse state to mirror and the shell does not listen to `bsCollapse`: the
13250
+ * auto track follows the drawer's width on its own.
13251
+ * The shell creates no landmarks besides `<main>`; the slotted header and drawer bring their own
13252
+ * `banner` and `navigation` roles.
13253
+ * ## When to use
13254
+ * - The outer frame of an application page with a header and side navigation.
13255
+ * ## When not to use
13256
+ * - Content layout inside the page (use `bs-grid`) or resizable panes (use `bs-split-pane`).
13257
+ * - Pages that already have their own `<main>`; the shell would add a duplicate landmark.
13258
+ * @prop --bs-app-shell-bg - Shell background. Aliased to `--bs-surface-base`.
13259
+ * @prop --bs-app-shell-color - Text colour. Aliased to `--bs-text-default`.
13260
+ * @prop --bs-app-shell-main-padding - Padding of the main area. Aliased to `--bs-spacing-400`.
13261
+ * @prop --bs-app-shell-aside-width - Width of the aside column. Defaults to `auto` (zero when empty).
13262
+ */
13263
+ "bs-app-shell": LocalJSX.IntrinsicElements["bs-app-shell"] & JSXBase.HTMLAttributes<HTMLBsAppShellElement>;
12138
13264
  /**
12139
13265
  * A single file attachment preview for `bs-composer` -- an image thumbnail, or a filename card
12140
13266
  * with a colored file-type badge (PDF/Document), with an optional upload-in-progress spinner and
@@ -12690,6 +13816,17 @@ declare module "@stencil/core" {
12690
13816
  * every `type`). Aliased to `--bs-color-neutral-container-hover`.
12691
13817
  */
12692
13818
  "bs-composer-status-banner": LocalJSX.IntrinsicElements["bs-composer-status-banner"] & JSXBase.HTMLAttributes<HTMLBsComposerStatusBannerElement>;
13819
+ /**
13820
+ * A centred wrapper that limits content width to a breakpoint and adds horizontal padding.
13821
+ * ## When to use
13822
+ * - Constraining page or section content to a readable, consistent maximum width.
13823
+ * ## When not to use
13824
+ * - Arranging children relative to each other (use `bs-stack`).
13825
+ * - Full-bleed regions such as hero backgrounds (use `size="fluid"` or no container).
13826
+ * @prop --bs-container-max-width - Maximum width. Aliased to the `--bs-breakpoint-*` token for `size`; `none` for `fluid`.
13827
+ * @prop --bs-container-padding - Horizontal padding. Aliased to the `padding` spacing token (default `--bs-spacing-300`).
13828
+ */
13829
+ "bs-container": LocalJSX.IntrinsicElements["bs-container"] & JSXBase.HTMLAttributes<HTMLBsContainerElement>;
12693
13830
  /**
12694
13831
  * A cookie consent prompt in four forms, matching the Figma "Cookie consent" component:
12695
13832
  * - `banner` -- a wide bar: icon, heading, text, policy link, and Customise / Reject optional / Accept
@@ -12765,6 +13902,18 @@ declare module "@stencil/core" {
12765
13902
  * button in the header row next to the heading, same as before this addition.
12766
13903
  */
12767
13904
  "bs-dialog": LocalJSX.IntrinsicElements["bs-dialog"] & JSXBase.HTMLAttributes<HTMLBsDialogElement>;
13905
+ /**
13906
+ * A thin line that separates content, horizontally or vertically.
13907
+ * ## When to use
13908
+ * - Separating groups of related content in a list, menu, toolbar or card.
13909
+ * ## When not to use
13910
+ * - Adding vertical space between blocks (use `bs-stack` gap or spacing tokens).
13911
+ * - Drawing a border around a surface (use `bs-card`).
13912
+ * @prop --bs-divider-thickness - Line thickness. Defaults to `1px`.
13913
+ * @prop --bs-divider-color - Line colour. Aliased to `--bs-border-neutral-container` (`default`) or `--bs-neutral-100` (`subtle`).
13914
+ * @prop --bs-divider-inset - Indent applied by `inset`. Aliased to `--bs-spacing-300`.
13915
+ */
13916
+ "bs-divider": LocalJSX.IntrinsicElements["bs-divider"] & JSXBase.HTMLAttributes<HTMLBsDividerElement>;
12768
13917
  /**
12769
13918
  * A full-block page for when the user can't get to what they asked for: page not found (404), a server
12770
13919
  * error (500), no access (403), planned maintenance, or no internet connection. Matches the Figma
@@ -12804,6 +13953,25 @@ declare module "@stencil/core" {
12804
13953
  * - Attaching files to a chat message -- use `bs-attachment`.
12805
13954
  */
12806
13955
  "bs-file-upload-item": LocalJSX.IntrinsicElements["bs-file-upload-item"] & JSXBase.HTMLAttributes<HTMLBsFileUploadItemElement>;
13956
+ /**
13957
+ * A CSS grid layout wrapper. Children are placed in equal-width columns with a token-based gap.
13958
+ * `columns` takes either a number (`"3"` becomes `repeat(3, minmax(0, 1fr))`) or any raw
13959
+ * `grid-template-columns` value (`"200px 1fr"`). `minColumnWidth` is the responsive mechanism: it
13960
+ * switches to `repeat(auto-fit, minmax(min(100%, X), 1fr))`, so the column count adapts to the
13961
+ * container width and `columns` is ignored. There are deliberately no per-breakpoint props in v1.
13962
+ * `gap`, `rowGap` and `columnGap` take spacing token names (`"200"` maps to `var(--bs-spacing-200)`);
13963
+ * unknown names fall back to `100`.
13964
+ * ## When to use
13965
+ * - Card grids, form field grids and dashboards where items share equal column tracks.
13966
+ * - Responsive galleries via `minColumnWidth`.
13967
+ * ## When not to use
13968
+ * - A single row or column of items with no wrapping (plain flex).
13969
+ * - Resizable multi-pane layouts (use `bs-split-pane`) or the page frame (use `bs-app-shell`).
13970
+ * @prop --bs-grid-gap - Gap on both axes. Overrides the `gap` prop's token (default `--bs-spacing-100`).
13971
+ * @prop --bs-grid-row-gap - Row gap. Overrides `--bs-grid-gap` and the `rowGap` prop's token.
13972
+ * @prop --bs-grid-column-gap - Column gap. Overrides `--bs-grid-gap` and the `columnGap` prop's token.
13973
+ */
13974
+ "bs-grid": LocalJSX.IntrinsicElements["bs-grid"] & JSXBase.HTMLAttributes<HTMLBsGridElement>;
12807
13975
  /**
12808
13976
  * A clickable, icon-only action element -- the icon-only sibling of `bs-button`, sharing the same
12809
13977
  * 8 visual variants and color language, but ALWAYS rendering just a single icon, never a label.
@@ -12879,6 +14047,58 @@ declare module "@stencil/core" {
12879
14047
  * options list at all (freeform chip entry).
12880
14048
  */
12881
14049
  "bs-input": LocalJSX.IntrinsicElements["bs-input"] & JSXBase.HTMLAttributes<HTMLBsInputElement>;
14050
+ /**
14051
+ * A vertical list of `bs-list-item` rows, optionally single-select.
14052
+ * ## When to use
14053
+ * - Records, people, files or options shown as rows with leading media and descriptions.
14054
+ * - `selectable` for a single-choice list (e.g. a conversation list next to a detail pane).
14055
+ * ## When not to use
14056
+ * - A popup list of actions -- use `bs-menu`.
14057
+ * - Navigation between app sections -- use `bs-navigation-drawer`.
14058
+ * - Multi-column, sortable or paged data -- use `bs-data-table`.
14059
+ * Built from `bs-list-item` children (light DOM; the list never moves nodes).
14060
+ * @prop --bs-list-gap - Gap between rows. Defaults to `0`.
14061
+ * @prop --bs-list-divider-color - Divider colour when `dividers` is set. Aliased to `--bs-border-neutral-container`.
14062
+ */
14063
+ "bs-list": LocalJSX.IntrinsicElements["bs-list"] & JSXBase.HTMLAttributes<HTMLBsListElement>;
14064
+ /**
14065
+ * A single row of a list: optional leading media (avatar, icon, image), a label, a description and
14066
+ * optional support text, and an optional trailing caret or custom trailing content.
14067
+ * ## When to use
14068
+ * - As a child of `bs-list`, one per record, person, file or option.
14069
+ * - Standalone as a plain information row (non-interactive), or with `interactive` as a button-like row.
14070
+ * ## When not to use
14071
+ * - A popup list of actions -- use `bs-menu` / `bs-menu-item`.
14072
+ * - App navigation with an active route -- use `bs-navigation-drawer-item`.
14073
+ * - Tabular data with columns, sorting or paging -- use `bs-data-table`.
14074
+ * Composed from: leading media (`bs-avatar`) and trailing controls (`bs-icon-button`) are supplied by the
14075
+ * consumer through the `leading` and `trailing` slots; the row itself only reserves layout. The default
14076
+ * trailing caret is inline SVG.
14077
+ * Roles are driven by the parent `bs-list` (via `selectionRole`). Standalone, the row has no role
14078
+ * (`listitem` is only valid inside a list) unless `interactive` is set, which makes it a focusable
14079
+ * `role="button"`.
14080
+ * @prop --bs-list-item-min-height - Minimum row height. Aliased to `--bs-spacing-1000`.
14081
+ * @prop --bs-list-item-padding-y - Aliased to `--bs-spacing-150`.
14082
+ * @prop --bs-list-item-padding-x - Aliased to `--bs-spacing-200`.
14083
+ * @prop --bs-list-item-gap - Gap between leading, content and trailing. Aliased to `--bs-spacing-200`.
14084
+ * @prop --bs-list-item-content-gap - Gap between text lines. Aliased to `--bs-spacing-25`.
14085
+ * @prop --bs-list-item-radius - Aliased to `--bs-border-radius-100`.
14086
+ * @prop --bs-list-item-bg - Enabled background. `transparent`.
14087
+ * @prop --bs-list-item-bg-hover - Aliased to `--bs-surface-hover`.
14088
+ * @prop --bs-list-item-bg-pressed - Aliased to `--bs-surface-pressed`.
14089
+ * @prop --bs-list-item-bg-focus - Aliased to `--bs-surface-focus`.
14090
+ * @prop --bs-list-item-bg-selected - Aliased to `--bs-surface-selected`.
14091
+ * @prop --bs-list-item-bg-selected-hover - Aliased to `--bs-surface-selected-hover`.
14092
+ * @prop --bs-list-item-bg-selected-pressed - Aliased to `--bs-surface-selected-pressed`.
14093
+ * @prop --bs-list-item-bg-selected-focus - Aliased to `--bs-surface-selected-focus`.
14094
+ * @prop --bs-list-item-bg-disabled - Aliased to `--bs-surface-action-disabled`.
14095
+ * @prop --bs-list-item-color - Text colour. Aliased to `--bs-text-default`.
14096
+ * @prop --bs-list-item-color-disabled - Aliased to `--bs-text-on-disabled`.
14097
+ * @prop --bs-list-item-focus-ring - Focus ring colour. Aliased to `--bs-border-neutral-focus`.
14098
+ * @prop --bs-list-item-image-width - Leading image width. 72px.
14099
+ * @prop --bs-list-item-image-height - Leading image height. 56px.
14100
+ */
14101
+ "bs-list-item": LocalJSX.IntrinsicElements["bs-list-item"] & JSXBase.HTMLAttributes<HTMLBsListItemElement>;
12882
14102
  /**
12883
14103
  * The BrandSync brand mark, as its own standalone component -- shared by `bs-navigation-header`
12884
14104
  * and `bs-navigation-drawer`, which used to each render their own duplicated copy of this SVG
@@ -13385,6 +14605,21 @@ declare module "@stencil/core" {
13385
14605
  * @prop --bs-split-pane-focus-ring - Divider focus ring colour. Aliased to `--bs-border-neutral-focus`.
13386
14606
  */
13387
14607
  "bs-split-pane": LocalJSX.IntrinsicElements["bs-split-pane"] & JSXBase.HTMLAttributes<HTMLBsSplitPaneElement>;
14608
+ /**
14609
+ * A flex layout that arranges its children in a row or column with a token-based gap, optionally
14610
+ * drawing a divider between children.
14611
+ * Built from: `bs-divider` (when `divider` is set).
14612
+ * With `divider`, each child is given a generated `slot="bs-stack-item-N"` attribute (plus a
14613
+ * `data-bs-stack-item` marker) so a divider can be rendered between the named slots. Light-DOM
14614
+ * nodes are never moved; the attributes are removed again when `divider` is turned off.
14615
+ * ## When to use
14616
+ * - Spacing and aligning a short run of siblings (form fields, button rows, card content).
14617
+ * ## When not to use
14618
+ * - Two-dimensional grids (use CSS grid).
14619
+ * - Resizable panes (use `bs-split-pane`).
14620
+ * @prop --bs-stack-gap - Space between items. Defaults from the `gap` prop (`--bs-spacing-<gap>`); may be overridden directly.
14621
+ */
14622
+ "bs-stack": LocalJSX.IntrinsicElements["bs-stack"] & JSXBase.HTMLAttributes<HTMLBsStackElement>;
13388
14623
  /**
13389
14624
  * A sequence of named steps showing overall progress through a multi-step flow (e.g. a checkout,
13390
14625
  * an onboarding wizard) -- each step reads as enabled (not yet reached), current, done, error, or
@@ -13542,6 +14777,28 @@ declare module "@stencil/core" {
13542
14777
  * @prop --bs-tooltip-trigger-z-index - Stacking order. Aliased to `--bs-z-index-popover`.
13543
14778
  */
13544
14779
  "bs-tooltip-trigger": LocalJSX.IntrinsicElements["bs-tooltip-trigger"] & JSXBase.HTMLAttributes<HTMLBsTooltipTriggerElement>;
14780
+ /**
14781
+ * A hierarchical list of `bs-tree-item` rows with single selection, expand/collapse and the
14782
+ * WAI-ARIA tree keyboard pattern.
14783
+ * The tree owns `role="tree"`, the roving `tabindex` (exactly one enabled, visible item is
14784
+ * tabbable: the selected one, otherwise the first), selection (kept in sync with each item's
14785
+ * `selected`) and keyboard navigation over the visible (rendered, non-disabled) items. Items own
14786
+ * their expansion state and emit `bsSelect` / `bsToggle`.
14787
+ * Built from: `bs-tree-item` rows.
14788
+ */
14789
+ "bs-tree": LocalJSX.IntrinsicElements["bs-tree"] & JSXBase.HTMLAttributes<HTMLBsTreeElement>;
14790
+ /**
14791
+ * A single row of a `bs-tree`. An item that contains child `bs-tree-item` elements is a parent
14792
+ * (it gets an expand/collapse caret and a folder icon); an item without children is a leaf (no
14793
+ * caret, file icon).
14794
+ * The host carries `role="treeitem"` and the `aria-*` state; the owning `bs-tree` manages the
14795
+ * roving `tabindex`, selection and keyboard navigation. Nesting depth is computed automatically
14796
+ * from the number of ancestor `bs-tree-item` elements and exposed as `aria-level` -- it is not a
14797
+ * prop. Clicking the row selects it; clicking the caret (or pressing Right/Left in a tree) toggles
14798
+ * expansion -- the two are deliberately separate.
14799
+ * Built from: inline SVG icons only (no existing `bs-*` component covers a tree row).
14800
+ */
14801
+ "bs-tree-item": LocalJSX.IntrinsicElements["bs-tree-item"] & JSXBase.HTMLAttributes<HTMLBsTreeItemElement>;
13545
14802
  /**
13546
14803
  * A product's "What's new" surface, in three forms matching the Figma component:
13547
14804
  * - `feed` -- a docked panel: heading, "Mark all as read", filter tabs, the list of updates (each a