@brandsync/wc 1.19.0 → 1.20.1

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 (883) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/REFERENCE.md +266 -11
  3. package/custom-elements.json +11415 -6969
  4. package/dist/brandsync-wc/brandsync-wc.css +1 -1
  5. package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
  6. package/dist/brandsync-wc/index.esm.js +1 -1
  7. package/dist/brandsync-wc/p-040d4755.entry.js +1 -0
  8. package/dist/brandsync-wc/{p-a688a7ca.entry.js → p-08a5e178.entry.js} +1 -1
  9. package/dist/brandsync-wc/{p-a50c5e68.entry.js → p-08d08dc9.entry.js} +1 -1
  10. package/dist/brandsync-wc/{p-568de1b0.entry.js → p-0ebb60a8.entry.js} +1 -1
  11. package/dist/brandsync-wc/{p-10b8937f.entry.js → p-11fefb5a.entry.js} +1 -1
  12. package/dist/brandsync-wc/{p-313ec145.entry.js → p-13d98ec3.entry.js} +1 -1
  13. package/dist/brandsync-wc/p-14719554.entry.js +1 -0
  14. package/dist/brandsync-wc/{p-42fcf134.entry.js → p-18cfec13.entry.js} +1 -1
  15. package/dist/brandsync-wc/{p-9751a12d.entry.js → p-1a549f9a.entry.js} +1 -1
  16. package/dist/brandsync-wc/{p-a28ef52e.entry.js → p-1bf8a54a.entry.js} +1 -1
  17. package/dist/brandsync-wc/{p-5371b31c.entry.js → p-1ce4395a.entry.js} +1 -1
  18. package/dist/brandsync-wc/{p-de0dfd1c.entry.js → p-1daf48b1.entry.js} +1 -1
  19. package/dist/brandsync-wc/{p-86f04e9e.entry.js → p-20dd8b76.entry.js} +1 -1
  20. package/dist/brandsync-wc/{p-391504ab.entry.js → p-2210c680.entry.js} +1 -1
  21. package/dist/brandsync-wc/{p-f10b19a8.entry.js → p-23367a4d.entry.js} +1 -1
  22. package/dist/brandsync-wc/{p-02314404.entry.js → p-238be384.entry.js} +1 -1
  23. package/dist/brandsync-wc/p-23affb5d.entry.js +1 -0
  24. package/dist/brandsync-wc/p-23b3958e.entry.js +1 -0
  25. package/dist/brandsync-wc/{p-03ad83a3.entry.js → p-2621b1b2.entry.js} +1 -1
  26. package/dist/brandsync-wc/p-28723df1.entry.js +1 -0
  27. package/dist/brandsync-wc/{p-d484e976.entry.js → p-28a34097.entry.js} +1 -1
  28. package/dist/brandsync-wc/{p-129a4de7.entry.js → p-2a96ce61.entry.js} +1 -1
  29. package/dist/brandsync-wc/{p-7160a72e.entry.js → p-2f58b161.entry.js} +1 -1
  30. package/dist/brandsync-wc/p-319b7baa.entry.js +1 -0
  31. package/dist/brandsync-wc/{p-8a606b38.entry.js → p-32004fb3.entry.js} +1 -1
  32. package/dist/brandsync-wc/{p-78c94cfe.entry.js → p-32157c7a.entry.js} +1 -1
  33. package/dist/brandsync-wc/{p-ab99b8c3.entry.js → p-32d83763.entry.js} +1 -1
  34. package/dist/brandsync-wc/{p-8b21f623.entry.js → p-338b5e39.entry.js} +1 -1
  35. package/dist/brandsync-wc/p-39c50762.entry.js +1 -0
  36. package/dist/brandsync-wc/p-3f6be3f7.entry.js +1 -0
  37. package/dist/brandsync-wc/p-409cf56b.entry.js +1 -0
  38. package/dist/brandsync-wc/{p-8e107d7a.entry.js → p-452f6c13.entry.js} +1 -1
  39. package/dist/brandsync-wc/{p-527fd08d.entry.js → p-47fc5f29.entry.js} +1 -1
  40. package/dist/brandsync-wc/p-4810bcc8.entry.js +1 -0
  41. package/dist/brandsync-wc/p-484a6546.entry.js +1 -0
  42. package/dist/brandsync-wc/p-4ae7b8b9.entry.js +1 -0
  43. package/dist/brandsync-wc/p-4d6f2fec.entry.js +1 -0
  44. package/dist/brandsync-wc/{p-4ffcf41a.entry.js → p-4f19e8d8.entry.js} +1 -1
  45. package/dist/brandsync-wc/p-50a154b8.entry.js +1 -0
  46. package/dist/brandsync-wc/{p-26e0ab15.entry.js → p-50ac6889.entry.js} +1 -1
  47. package/dist/brandsync-wc/p-520b277a.entry.js +1 -0
  48. package/dist/brandsync-wc/p-53b1c545.entry.js +1 -0
  49. package/dist/brandsync-wc/{p-90d8d45f.entry.js → p-548b96f7.entry.js} +1 -1
  50. package/dist/brandsync-wc/{p-144b6ac8.entry.js → p-57ed5ac6.entry.js} +1 -1
  51. package/dist/brandsync-wc/{p-028d3244.entry.js → p-587be2c6.entry.js} +1 -1
  52. package/dist/brandsync-wc/p-5a35d573.entry.js +1 -0
  53. package/dist/brandsync-wc/p-5b48a6c7.entry.js +1 -0
  54. package/dist/brandsync-wc/{p-4d1ee16e.entry.js → p-5ea899c4.entry.js} +1 -1
  55. package/dist/brandsync-wc/p-60636c6c.entry.js +1 -0
  56. package/dist/brandsync-wc/p-6096900b.entry.js +1 -0
  57. package/dist/brandsync-wc/{p-fc76031e.entry.js → p-630d41ab.entry.js} +1 -1
  58. package/dist/brandsync-wc/p-66f1ca2e.entry.js +1 -0
  59. package/dist/brandsync-wc/p-69489f45.entry.js +1 -0
  60. package/dist/brandsync-wc/p-6adc9c4f.entry.js +1 -0
  61. package/dist/brandsync-wc/p-6ae75ed0.entry.js +1 -0
  62. package/dist/brandsync-wc/p-6b1ba5ec.entry.js +1 -0
  63. package/dist/brandsync-wc/p-6bdd9ef9.entry.js +1 -0
  64. package/dist/brandsync-wc/{p-dc2ea372.entry.js → p-6db03e96.entry.js} +1 -1
  65. package/dist/brandsync-wc/{p-64e19200.entry.js → p-70924681.entry.js} +1 -1
  66. package/dist/brandsync-wc/{p-590deea0.entry.js → p-78e4dd14.entry.js} +1 -1
  67. package/dist/brandsync-wc/{p-f96f45ae.entry.js → p-806bb471.entry.js} +1 -1
  68. package/dist/brandsync-wc/{p-8a18864a.entry.js → p-89dbb3c8.entry.js} +1 -1
  69. package/dist/brandsync-wc/{p-ebcd105d.entry.js → p-8a4d64fd.entry.js} +1 -1
  70. package/dist/brandsync-wc/p-8c83cc99.entry.js +1 -0
  71. package/dist/brandsync-wc/p-8ccd1735.entry.js +1 -0
  72. package/dist/brandsync-wc/p-8d674f11.entry.js +1 -0
  73. package/dist/brandsync-wc/{p-8d1ad4b0.entry.js → p-90442341.entry.js} +1 -1
  74. package/dist/brandsync-wc/{p-a2bfbf02.entry.js → p-9e93b482.entry.js} +1 -1
  75. package/dist/brandsync-wc/{p-020cb767.entry.js → p-9f852c8b.entry.js} +1 -1
  76. package/dist/brandsync-wc/p-Vo0zbGRB.js +1 -0
  77. package/dist/brandsync-wc/p-a1d34ff3.entry.js +1 -0
  78. package/dist/brandsync-wc/{p-15c6f0f3.entry.js → p-a3c7b4e7.entry.js} +1 -1
  79. package/dist/brandsync-wc/{p-9ba500f1.entry.js → p-a6cbb6c6.entry.js} +1 -1
  80. package/dist/brandsync-wc/{p-70a5897b.entry.js → p-a86560e6.entry.js} +1 -1
  81. package/dist/brandsync-wc/p-aa70e80c.entry.js +1 -0
  82. package/dist/brandsync-wc/p-aa99b1f8.entry.js +1 -0
  83. package/dist/brandsync-wc/{p-0dff9822.entry.js → p-b0f4cbca.entry.js} +1 -1
  84. package/dist/brandsync-wc/{p-3c6980b9.entry.js → p-b1663378.entry.js} +1 -1
  85. package/dist/brandsync-wc/{p-25914efc.entry.js → p-b1b14615.entry.js} +1 -1
  86. package/dist/brandsync-wc/p-b6dc9234.entry.js +1 -0
  87. package/dist/brandsync-wc/{p-2389f473.entry.js → p-b7545d9b.entry.js} +1 -1
  88. package/dist/brandsync-wc/{p-d80eecf4.entry.js → p-baca1abf.entry.js} +1 -1
  89. package/dist/brandsync-wc/{p-a92c0f06.entry.js → p-bfdd135b.entry.js} +1 -1
  90. package/dist/brandsync-wc/p-c0e5db3d.entry.js +1 -0
  91. package/dist/brandsync-wc/{p-89fa7567.entry.js → p-c23e274a.entry.js} +1 -1
  92. package/dist/brandsync-wc/{p-4928c4ad.entry.js → p-c39e6be9.entry.js} +1 -1
  93. package/dist/brandsync-wc/{p-30736034.entry.js → p-c6c15b9f.entry.js} +1 -1
  94. package/dist/brandsync-wc/p-ca8a1e51.entry.js +1 -0
  95. package/dist/brandsync-wc/{p-9fa7bd83.entry.js → p-d263deec.entry.js} +1 -1
  96. package/dist/brandsync-wc/p-d555984e.entry.js +1 -0
  97. package/dist/brandsync-wc/p-d6600c7c.entry.js +1 -0
  98. package/dist/brandsync-wc/{p-e5235e76.entry.js → p-d67840f5.entry.js} +1 -1
  99. package/dist/brandsync-wc/p-d8a299a9.entry.js +1 -0
  100. package/dist/brandsync-wc/{p-8ac86d16.entry.js → p-dc59a735.entry.js} +1 -1
  101. package/dist/brandsync-wc/{p-f4796801.entry.js → p-dd3499ab.entry.js} +1 -1
  102. package/dist/brandsync-wc/p-debc308d.entry.js +1 -0
  103. package/dist/brandsync-wc/{p-c01e231e.entry.js → p-e18cb639.entry.js} +1 -1
  104. package/dist/brandsync-wc/{p-7bff3aa5.entry.js → p-e18e45bc.entry.js} +1 -1
  105. package/dist/brandsync-wc/{p-4c51da66.entry.js → p-e2268c96.entry.js} +1 -1
  106. package/dist/brandsync-wc/p-e4033ebc.entry.js +1 -0
  107. package/dist/brandsync-wc/p-e8027825.entry.js +1 -0
  108. package/dist/brandsync-wc/{p-7c741b8d.entry.js → p-eb1b1497.entry.js} +1 -1
  109. package/dist/brandsync-wc/{p-9868ee72.entry.js → p-eb4ad606.entry.js} +1 -1
  110. package/dist/brandsync-wc/p-ecb1a27d.entry.js +1 -0
  111. package/dist/brandsync-wc/p-f229f59a.entry.js +1 -0
  112. package/dist/brandsync-wc/{p-0819add7.entry.js → p-f22d2db8.entry.js} +1 -1
  113. package/dist/brandsync-wc/{p-feb46fa6.entry.js → p-f71d7582.entry.js} +1 -1
  114. package/dist/brandsync-wc/p-fa894893.entry.js +1 -0
  115. package/dist/brandsync-wc/p-fbd204b6.entry.js +1 -0
  116. package/dist/brandsync-wc/{p-21e5d4d6.entry.js → p-fc7df528.entry.js} +1 -1
  117. package/dist/brandsync-wc/{p-27663faf.entry.js → p-fe6f71da.entry.js} +1 -1
  118. package/dist/brandsync-wc/p-ff85a9d8.entry.js +1 -0
  119. package/dist/brandsync-wc/p-wz7B473u.js +3 -0
  120. package/dist/cjs/brandsync-wc.cjs.js +2 -2
  121. package/dist/cjs/bs-accordion-group.cjs.entry.js +2 -2
  122. package/dist/cjs/bs-accordion.cjs.entry.js +2 -2
  123. package/dist/cjs/bs-ai-disclaimer.cjs.entry.js +2 -2
  124. package/dist/cjs/bs-ai-greeting.cjs.entry.js +2 -2
  125. package/dist/cjs/bs-ai-thinking.cjs.entry.js +2 -2
  126. package/dist/cjs/bs-app-recent-item_3.cjs.entry.js +5 -5
  127. package/dist/cjs/bs-app-shell.cjs.entry.js +2 -2
  128. package/dist/cjs/bs-app-switcher.cjs.entry.js +1 -1
  129. package/dist/cjs/bs-attachment-list.cjs.entry.js +2 -2
  130. package/dist/cjs/bs-attachment.cjs.entry.js +2 -2
  131. package/dist/cjs/bs-avatar.cjs.entry.js +3 -10
  132. package/dist/cjs/bs-badge.cjs.entry.js +2 -2
  133. package/dist/cjs/bs-breadcrumb-overflow.cjs.entry.js +1 -1
  134. package/dist/cjs/bs-breadcrumb.cjs.entry.js +3 -3
  135. package/dist/cjs/bs-breadcrumbs.cjs.entry.js +10 -2
  136. package/dist/cjs/bs-button-skeleton.cjs.entry.js +2 -2
  137. package/dist/cjs/bs-button_2.cjs.entry.js +17 -4
  138. package/dist/cjs/bs-card.cjs.entry.js +44 -3
  139. package/dist/cjs/bs-carousel.cjs.entry.js +2 -2
  140. package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +3 -7
  141. package/dist/cjs/bs-chatbot-header.cjs.entry.js +3 -7
  142. package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +2 -2
  143. package/dist/cjs/bs-chatbot-sources-drawer.cjs.entry.js +2 -2
  144. package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +3 -3
  145. package/dist/cjs/bs-checkbox-group.cjs.entry.js +80 -0
  146. package/dist/cjs/bs-checkbox-skeleton.cjs.entry.js +2 -2
  147. package/dist/cjs/bs-checkbox.cjs.entry.js +1 -1
  148. package/dist/cjs/bs-chip-filter.cjs.entry.js +2 -2
  149. package/dist/cjs/bs-chip-informative.cjs.entry.js +2 -2
  150. package/dist/cjs/bs-chip-input.cjs.entry.js +2 -2
  151. package/dist/cjs/bs-citation-preview.cjs.entry.js +2 -2
  152. package/dist/cjs/bs-code-block.cjs.entry.js +75 -0
  153. package/dist/cjs/bs-command-palette.cjs.entry.js +2 -2
  154. package/dist/cjs/bs-compact-menu-block_2.cjs.entry.js +5 -5
  155. package/dist/cjs/bs-company-switcher.cjs.entry.js +3 -3
  156. package/dist/cjs/bs-composer-status-banner.cjs.entry.js +2 -2
  157. package/dist/cjs/bs-composer.cjs.entry.js +6 -4
  158. package/dist/cjs/bs-container.cjs.entry.js +2 -2
  159. package/dist/cjs/bs-cookie-consent.cjs.entry.js +1 -1
  160. package/dist/cjs/bs-data-table.cjs.entry.js +8 -5
  161. package/dist/cjs/bs-datepicker.cjs.entry.js +2 -2
  162. package/dist/cjs/bs-description-item.cjs.entry.js +23 -0
  163. package/dist/cjs/bs-description-list.cjs.entry.js +40 -0
  164. package/dist/cjs/bs-dialog.cjs.entry.js +1 -1
  165. package/dist/cjs/bs-divider.cjs.entry.js +2 -2
  166. package/dist/cjs/bs-dropdown.cjs.entry.js +96 -0
  167. package/dist/cjs/bs-empty-state.cjs.entry.js +7 -3
  168. package/dist/cjs/bs-error-page.cjs.entry.js +2 -2
  169. package/dist/cjs/bs-file-upload-item.cjs.entry.js +2 -2
  170. package/dist/cjs/bs-file-upload.cjs.entry.js +2 -2
  171. package/dist/cjs/bs-global-search.cjs.entry.js +3 -3
  172. package/dist/cjs/bs-grid.cjs.entry.js +3 -3
  173. package/dist/cjs/bs-heading.cjs.entry.js +28 -0
  174. package/dist/cjs/bs-icon-button.cjs.entry.js +10 -3
  175. package/dist/cjs/bs-icon-tile.cjs.entry.js +3 -3
  176. package/dist/cjs/bs-icon.cjs.entry.js +35 -0
  177. package/dist/cjs/bs-inline-tab.cjs.entry.js +3 -3
  178. package/dist/cjs/bs-input_4.cjs.entry.js +794 -0
  179. package/dist/cjs/bs-key-caps.cjs.entry.js +2 -2
  180. package/dist/cjs/bs-key.cjs.entry.js +2 -2
  181. package/dist/cjs/bs-keyboard-shortcuts.cjs.entry.js +3 -3
  182. package/dist/cjs/bs-link.cjs.entry.js +52 -0
  183. package/dist/cjs/bs-list-item.cjs.entry.js +68 -0
  184. package/dist/cjs/bs-list.cjs.entry.js +9 -3
  185. package/dist/cjs/bs-logo.cjs.entry.js +1 -1
  186. package/dist/cjs/bs-mega-menu.cjs.entry.js +2 -2
  187. package/dist/cjs/bs-message-list.cjs.entry.js +2 -2
  188. package/dist/cjs/bs-message.cjs.entry.js +2 -2
  189. package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +26 -5
  190. package/dist/cjs/bs-navigation-drawer.cjs.entry.js +4 -4
  191. package/dist/cjs/bs-navigation-header.cjs.entry.js +4 -4
  192. package/dist/cjs/bs-onboarding-checklist.cjs.entry.js +1 -1
  193. package/dist/cjs/bs-page-header.cjs.entry.js +2 -2
  194. package/dist/cjs/bs-pagination.cjs.entry.js +2 -2
  195. package/dist/cjs/bs-popover.cjs.entry.js +223 -0
  196. package/dist/cjs/bs-presence.cjs.entry.js +2 -2
  197. package/dist/cjs/bs-product-tour.cjs.entry.js +1 -1
  198. package/dist/cjs/bs-progress-linear.cjs.entry.js +4 -4
  199. package/dist/cjs/bs-progress.cjs.entry.js +3 -3
  200. package/dist/cjs/bs-qr-code.cjs.entry.js +2 -2
  201. package/dist/cjs/bs-radio-group.cjs.entry.js +90 -0
  202. package/dist/cjs/bs-radio.cjs.entry.js +6 -2
  203. package/dist/cjs/bs-search-item.cjs.entry.js +2 -2
  204. package/dist/cjs/bs-select.cjs.entry.js +234 -0
  205. package/dist/cjs/bs-session-timeout.cjs.entry.js +2 -2
  206. package/dist/cjs/bs-shortcut-row.cjs.entry.js +2 -2
  207. package/dist/cjs/bs-side-panel.cjs.entry.js +1 -1
  208. package/dist/cjs/bs-skip-link.cjs.entry.js +52 -0
  209. package/dist/cjs/bs-slider.cjs.entry.js +3 -3
  210. package/dist/cjs/bs-snackbar.cjs.entry.js +3 -3
  211. package/dist/cjs/bs-source-link.cjs.entry.js +4 -4
  212. package/dist/cjs/bs-split-pane.cjs.entry.js +2 -2
  213. package/dist/cjs/bs-stack.cjs.entry.js +2 -2
  214. package/dist/cjs/bs-stat.cjs.entry.js +53 -0
  215. package/dist/cjs/bs-stepper-step.cjs.entry.js +2 -2
  216. package/dist/cjs/bs-stepper.cjs.entry.js +2 -2
  217. package/dist/cjs/bs-switch.cjs.entry.js +2 -2
  218. package/dist/cjs/bs-tab_3.cjs.entry.js +16 -9
  219. package/dist/cjs/bs-table-of-contents.cjs.entry.js +171 -0
  220. package/dist/cjs/bs-tag.cjs.entry.js +51 -0
  221. package/dist/cjs/bs-text.cjs.entry.js +24 -0
  222. package/dist/cjs/bs-timepicker.cjs.entry.js +3 -3
  223. package/dist/cjs/bs-toast.cjs.entry.js +2 -2
  224. package/dist/cjs/bs-toggle-button-group.cjs.entry.js +108 -0
  225. package/dist/cjs/bs-toggle-button.cjs.entry.js +57 -0
  226. package/dist/cjs/bs-toolbar.cjs.entry.js +195 -0
  227. package/dist/cjs/bs-tooltip-trigger.cjs.entry.js +2 -2
  228. package/dist/cjs/bs-tooltip.cjs.entry.js +2 -2
  229. package/dist/cjs/bs-tree-item.cjs.entry.js +3 -3
  230. package/dist/cjs/bs-tree.cjs.entry.js +2 -2
  231. package/dist/cjs/bs-whats-new.cjs.entry.js +1 -1
  232. package/dist/cjs/icon-registry-DWYCqjKw.js +64 -0
  233. package/dist/cjs/{index-BYfMRtlW.js → index-BFxk-bY6.js} +1 -1
  234. package/dist/cjs/index.cjs.js +4 -0
  235. package/dist/cjs/loader.cjs.js +2 -2
  236. package/dist/collection/collection-manifest.json +19 -1
  237. package/dist/collection/components/bs-a11y.cmp.test.js +9 -0
  238. package/dist/collection/components/bs-accordion/bs-accordion.js +1 -1
  239. package/dist/collection/components/bs-accordion-group/bs-accordion-group.js +1 -1
  240. package/dist/collection/components/bs-ai-disclaimer/bs-ai-disclaimer.js +1 -1
  241. package/dist/collection/components/bs-ai-greeting/bs-ai-greeting.js +1 -1
  242. package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.js +1 -1
  243. package/dist/collection/components/bs-app-recent-item/bs-app-recent-item.js +3 -3
  244. package/dist/collection/components/bs-app-shell/bs-app-shell.js +1 -1
  245. package/dist/collection/components/bs-attachment/bs-attachment.cmp.test.js +10 -0
  246. package/dist/collection/components/bs-attachment/bs-attachment.css +6 -6
  247. package/dist/collection/components/bs-attachment-list/bs-attachment-list.js +1 -1
  248. package/dist/collection/components/bs-avatar/bs-avatar.cmp.test.js +11 -1
  249. package/dist/collection/components/bs-avatar/bs-avatar.css +9 -4
  250. package/dist/collection/components/bs-avatar/bs-avatar.js +1 -8
  251. package/dist/collection/components/bs-badge/bs-badge.css +4 -1
  252. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.cmp.test.js +13 -0
  253. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.css +8 -0
  254. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.js +1 -1
  255. package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.js +26 -1
  256. package/dist/collection/components/bs-button/bs-button/bs-button.cmp.test.js +31 -2
  257. package/dist/collection/components/bs-button/bs-button/bs-button.css +16 -18
  258. package/dist/collection/components/bs-button/bs-button/bs-button.js +102 -7
  259. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.cmp.test.js +43 -0
  260. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.css +32 -2
  261. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.js +68 -1
  262. package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +1 -1
  263. package/dist/collection/components/bs-card/bs-card.cmp.test.js +78 -0
  264. package/dist/collection/components/bs-card/bs-card.css +75 -0
  265. package/dist/collection/components/bs-card/bs-card.js +200 -1
  266. package/dist/collection/components/bs-card/bs-card.stories.js +32 -0
  267. package/dist/collection/components/bs-carousel/bs-carousel.js +2 -2
  268. package/dist/collection/components/bs-carousel/bs-carousel.stories.js +9 -5
  269. package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.cmp.test.js +8 -0
  270. package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.css +11 -8
  271. package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.js +1 -5
  272. package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.css +2 -3
  273. package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.js +1 -5
  274. package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.js +1 -1
  275. package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.js +1 -1
  276. package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.cmp.test.js +18 -0
  277. package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.css +8 -2
  278. package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js +4 -1
  279. package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.js +1 -1
  280. package/dist/collection/components/bs-checkbox-group/bs-checkbox-group.cmp.test.js +58 -0
  281. package/dist/collection/components/bs-checkbox-group/bs-checkbox-group.css +65 -0
  282. package/dist/collection/components/bs-checkbox-group/bs-checkbox-group.js +254 -0
  283. package/dist/collection/components/bs-checkbox-group/bs-checkbox-group.stories.js +34 -0
  284. package/dist/collection/components/bs-chip/bs-chip-filter/bs-chip-filter.js +1 -1
  285. package/dist/collection/components/bs-chip/bs-chip-informative/bs-chip-informative.js +1 -1
  286. package/dist/collection/components/bs-chip/bs-chip-input/bs-chip-input.js +1 -1
  287. package/dist/collection/components/bs-citation-preview/bs-citation-preview.js +1 -1
  288. package/dist/collection/components/bs-code-block/bs-code-block.cmp.test.js +78 -0
  289. package/dist/collection/components/bs-code-block/bs-code-block.css +132 -0
  290. package/dist/collection/components/bs-code-block/bs-code-block.js +317 -0
  291. package/dist/collection/components/bs-code-block/bs-code-block.stories.js +56 -0
  292. package/dist/collection/components/bs-command-palette/bs-command-palette.js +1 -1
  293. package/dist/collection/components/bs-compact-menu-block/bs-compact-menu-block.js +1 -1
  294. package/dist/collection/components/bs-company-switcher/bs-company-switcher.cmp.test.js +13 -7
  295. package/dist/collection/components/bs-company-switcher/bs-company-switcher.js +2 -2
  296. package/dist/collection/components/bs-composer/bs-composer.cmp.test.js +29 -0
  297. package/dist/collection/components/bs-composer/bs-composer.css +2 -1
  298. package/dist/collection/components/bs-composer/bs-composer.js +4 -2
  299. package/dist/collection/components/bs-composer/bs-composer.stories.js +1 -2
  300. package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.js +1 -1
  301. package/dist/collection/components/bs-container/bs-container.js +1 -1
  302. package/dist/collection/components/bs-cookie-consent/bs-cookie-consent.cmp.test.js +1 -1
  303. package/dist/collection/components/bs-data-table/bs-data-table.cmp.test.js +39 -0
  304. package/dist/collection/components/bs-data-table/bs-data-table.css +12 -0
  305. package/dist/collection/components/bs-data-table/bs-data-table.js +34 -3
  306. package/dist/collection/components/bs-data-table/bs-data-table.stories.js +1 -1
  307. package/dist/collection/components/bs-datepicker/bs-datepicker.js +1 -1
  308. package/dist/collection/components/bs-description-item/bs-description-item.cmp.test.js +14 -0
  309. package/dist/collection/components/bs-description-item/bs-description-item.css +47 -0
  310. package/dist/collection/components/bs-description-item/bs-description-item.js +111 -0
  311. package/dist/collection/components/bs-description-list/bs-description-list.cmp.test.js +58 -0
  312. package/dist/collection/components/bs-description-list/bs-description-list.css +15 -0
  313. package/dist/collection/components/bs-description-list/bs-description-list.js +127 -0
  314. package/dist/collection/components/bs-description-list/bs-description-list.stories.js +34 -0
  315. package/dist/collection/components/bs-divider/bs-divider.js +1 -1
  316. package/dist/collection/components/bs-dropdown/bs-dropdown.cmp.test.js +133 -0
  317. package/dist/collection/components/bs-dropdown/bs-dropdown.css +3 -0
  318. package/dist/collection/components/bs-dropdown/bs-dropdown.js +218 -0
  319. package/dist/collection/components/bs-dropdown/bs-dropdown.stories.js +42 -0
  320. package/dist/collection/components/bs-empty-state/bs-empty-state.cmp.test.js +15 -0
  321. package/dist/collection/components/bs-empty-state/bs-empty-state.css +30 -1
  322. package/dist/collection/components/bs-empty-state/bs-empty-state.js +29 -1
  323. package/dist/collection/components/bs-empty-state/bs-empty-state.stories.js +24 -1
  324. package/dist/collection/components/bs-error-page/bs-error-page.js +1 -1
  325. package/dist/collection/components/bs-file-upload/bs-file-upload.js +1 -1
  326. package/dist/collection/components/bs-file-upload-item/bs-file-upload-item.js +1 -1
  327. package/dist/collection/components/bs-global-search/bs-global-search.js +2 -2
  328. package/dist/collection/components/bs-grid/bs-grid.js +2 -2
  329. package/dist/collection/components/bs-heading/bs-heading.cmp.test.js +38 -0
  330. package/dist/collection/components/bs-heading/bs-heading.css +42 -0
  331. package/dist/collection/components/bs-heading/bs-heading.js +154 -0
  332. package/dist/collection/components/bs-heading/bs-heading.stories.js +28 -0
  333. package/dist/collection/components/bs-icon/bs-icon.cmp.test.js +78 -0
  334. package/dist/collection/components/bs-icon/bs-icon.css +47 -0
  335. package/dist/collection/components/bs-icon/bs-icon.js +155 -0
  336. package/dist/collection/components/bs-icon/bs-icon.stories.js +52 -0
  337. package/dist/collection/components/bs-icon/icon-registry.js +58 -0
  338. package/dist/collection/components/bs-icon-tile/bs-icon-tile.js +2 -2
  339. package/dist/collection/components/bs-input/bs-input.cmp.test.js +431 -45
  340. package/dist/collection/components/bs-input/bs-input.css +196 -12
  341. package/dist/collection/components/bs-input/bs-input.js +565 -46
  342. package/dist/collection/components/bs-input/bs-input.stories.js +32 -4
  343. package/dist/collection/components/bs-key/bs-key.js +1 -1
  344. package/dist/collection/components/bs-key-caps/bs-key-caps.js +1 -1
  345. package/dist/collection/components/bs-keyboard-shortcuts/bs-keyboard-shortcuts.js +2 -2
  346. package/dist/collection/components/bs-link/bs-link.cmp.test.js +52 -0
  347. package/dist/collection/components/bs-link/bs-link.css +129 -0
  348. package/dist/collection/components/bs-link/bs-link.js +257 -0
  349. package/dist/collection/components/bs-link/bs-link.stories.js +31 -0
  350. package/dist/collection/components/bs-list/bs-list.cmp.test.js +23 -0
  351. package/dist/collection/components/bs-list/bs-list.js +32 -2
  352. package/dist/collection/components/bs-list/bs-list.stories.js +35 -2
  353. package/dist/collection/components/bs-list-item/bs-list-item.css +8 -0
  354. package/dist/collection/components/bs-list-item/bs-list-item.js +24 -1
  355. package/dist/collection/components/bs-mega-menu/bs-mega-menu.js +1 -1
  356. package/dist/collection/components/bs-menu/bs-menu.js +1 -1
  357. package/dist/collection/components/bs-menu-block/bs-menu-block.js +3 -3
  358. package/dist/collection/components/bs-menu-item/bs-menu-item.js +1 -1
  359. package/dist/collection/components/bs-menu-item/bs-menu-item.stories.js +19 -15
  360. package/dist/collection/components/bs-message/bs-message.js +1 -1
  361. package/dist/collection/components/bs-message-list/bs-message-list.js +1 -1
  362. package/dist/collection/components/bs-page-header/bs-page-header.js +1 -1
  363. package/dist/collection/components/bs-pagination/bs-pagination.js +1 -1
  364. package/dist/collection/components/bs-popover/bs-popover.cmp.test.js +11 -4
  365. package/dist/collection/components/bs-popover/bs-popover.js +26 -2
  366. package/dist/collection/components/bs-presence/bs-presence.js +1 -1
  367. package/dist/collection/components/bs-progress/bs-progress.js +2 -2
  368. package/dist/collection/components/bs-progress-linear/bs-progress-linear.css +4 -1
  369. package/dist/collection/components/bs-progress-linear/bs-progress-linear.js +2 -2
  370. package/dist/collection/components/bs-qr-code/bs-qr-code.js +1 -1
  371. package/dist/collection/components/bs-radio/bs-radio.cmp.test.js +8 -0
  372. package/dist/collection/components/bs-radio/bs-radio.js +25 -1
  373. package/dist/collection/components/bs-radio-group/bs-radio-group.cmp.test.js +85 -0
  374. package/dist/collection/components/bs-radio-group/bs-radio-group.css +59 -0
  375. package/dist/collection/components/bs-radio-group/bs-radio-group.js +309 -0
  376. package/dist/collection/components/bs-radio-group/bs-radio-group.stories.js +35 -0
  377. package/dist/collection/components/bs-ripple/bs-ripple.js +1 -1
  378. package/dist/collection/components/bs-search-item/bs-search-item.js +1 -1
  379. package/dist/collection/components/bs-select/bs-select.cmp.test.js +108 -0
  380. package/dist/collection/components/bs-select/bs-select.css +231 -0
  381. package/dist/collection/components/bs-select/bs-select.js +506 -0
  382. package/dist/collection/components/bs-select/bs-select.stories.js +58 -0
  383. package/dist/collection/components/bs-session-timeout/bs-session-timeout.js +1 -1
  384. package/dist/collection/components/bs-shortcut-row/bs-shortcut-row.js +1 -1
  385. package/dist/collection/components/bs-skeleton/bs-skeleton.js +1 -1
  386. package/dist/collection/components/bs-skip-link/bs-skip-link.cmp.test.js +60 -0
  387. package/dist/collection/components/bs-skip-link/bs-skip-link.css +58 -0
  388. package/dist/collection/components/bs-skip-link/bs-skip-link.js +123 -0
  389. package/dist/collection/components/bs-skip-link/bs-skip-link.stories.js +27 -0
  390. package/dist/collection/components/bs-slider/bs-slider.cmp.test.js +13 -0
  391. package/dist/collection/components/bs-slider/bs-slider.css +3 -2
  392. package/dist/collection/components/bs-slider/bs-slider.js +1 -1
  393. package/dist/collection/components/bs-snackbar/bs-snackbar.cmp.test.js +22 -0
  394. package/dist/collection/components/bs-snackbar/bs-snackbar.css +23 -0
  395. package/dist/collection/components/bs-snackbar/bs-snackbar.js +1 -1
  396. package/dist/collection/components/bs-source-link/bs-source-link.js +3 -3
  397. package/dist/collection/components/bs-spinner/bs-spinner.js +1 -1
  398. package/dist/collection/components/bs-split-pane/bs-split-pane.js +1 -1
  399. package/dist/collection/components/bs-stack/bs-stack.js +1 -1
  400. package/dist/collection/components/bs-stat/bs-stat.cmp.test.js +49 -0
  401. package/dist/collection/components/bs-stat/bs-stat.css +116 -0
  402. package/dist/collection/components/bs-stat/bs-stat.js +284 -0
  403. package/dist/collection/components/bs-stat/bs-stat.stories.js +44 -0
  404. package/dist/collection/components/bs-stepper/bs-stepper/bs-stepper.js +1 -1
  405. package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.js +1 -1
  406. package/dist/collection/components/bs-switch/bs-switch.js +1 -1
  407. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.css +2 -2
  408. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.js +1 -1
  409. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.stories.js +0 -4
  410. package/dist/collection/components/bs-tab/bs-tab/bs-tab.js +1 -1
  411. package/dist/collection/components/bs-tab/bs-tab/bs-tab.stories.js +7 -7
  412. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.cmp.test.js +35 -0
  413. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.css +6 -2
  414. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.js +13 -6
  415. package/dist/collection/components/bs-table-of-contents/bs-table-of-contents.cmp.test.js +125 -0
  416. package/dist/collection/components/bs-table-of-contents/bs-table-of-contents.css +115 -0
  417. package/dist/collection/components/bs-table-of-contents/bs-table-of-contents.js +392 -0
  418. package/dist/collection/components/bs-table-of-contents/bs-table-of-contents.stories.js +58 -0
  419. package/dist/collection/components/bs-tag/bs-tag.cmp.test.js +66 -0
  420. package/dist/collection/components/bs-tag/bs-tag.css +101 -0
  421. package/dist/collection/components/bs-tag/bs-tag.js +233 -0
  422. package/dist/collection/components/bs-tag/bs-tag.stories.js +59 -0
  423. package/dist/collection/components/bs-text/bs-text.cmp.test.js +33 -0
  424. package/dist/collection/components/bs-text/bs-text.css +48 -0
  425. package/dist/collection/components/bs-text/bs-text.js +126 -0
  426. package/dist/collection/components/bs-text/bs-text.stories.js +25 -0
  427. package/dist/collection/components/bs-timepicker/bs-timepicker.js +2 -2
  428. package/dist/collection/components/bs-toast/bs-toast.js +1 -1
  429. package/dist/collection/components/bs-toggle-button/bs-toggle-button.cmp.test.js +47 -0
  430. package/dist/collection/components/bs-toggle-button/bs-toggle-button.css +125 -0
  431. package/dist/collection/components/bs-toggle-button/bs-toggle-button.js +234 -0
  432. package/dist/collection/components/bs-toggle-button/bs-toggle-button.stories.js +22 -0
  433. package/dist/collection/components/bs-toggle-button-group/bs-toggle-button-group.cmp.test.js +69 -0
  434. package/dist/collection/components/bs-toggle-button-group/bs-toggle-button-group.css +43 -0
  435. package/dist/collection/components/bs-toggle-button-group/bs-toggle-button-group.js +264 -0
  436. package/dist/collection/components/bs-toggle-button-group/bs-toggle-button-group.stories.js +42 -0
  437. package/dist/collection/components/bs-toolbar/bs-toolbar.cmp.test.js +144 -0
  438. package/dist/collection/components/bs-toolbar/bs-toolbar.css +82 -0
  439. package/dist/collection/components/bs-toolbar/bs-toolbar.js +345 -0
  440. package/dist/collection/components/bs-toolbar/bs-toolbar.stories.js +49 -0
  441. package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
  442. package/dist/collection/components/bs-tooltip-trigger/bs-tooltip-trigger.js +1 -1
  443. package/dist/collection/components/bs-tree/bs-tree.js +1 -1
  444. package/dist/collection/components/bs-tree-item/bs-tree-item.js +2 -2
  445. package/dist/collection/components/bs-tree-item/bs-tree-item.stories.js +6 -4
  446. package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.js +1 -1
  447. package/dist/collection/components/disabled-aria.cmp.test.js +19 -0
  448. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.cmp.test.js +25 -0
  449. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.css +2 -2
  450. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +2 -2
  451. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.cmp.test.js +58 -0
  452. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.css +10 -2
  453. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.js +63 -4
  454. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.cmp.test.js +42 -9
  455. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.css +44 -37
  456. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.js +2 -2
  457. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.stories.js +22 -0
  458. package/dist/collection/index.js +1 -0
  459. package/dist/collection/test/helpers/block-link-navigation.js +13 -0
  460. package/dist/collection/test/helpers/contrast.js +57 -0
  461. package/dist/components/bs-accordion-group.js +1 -1
  462. package/dist/components/bs-accordion.js +1 -1
  463. package/dist/components/bs-ai-disclaimer.js +1 -1
  464. package/dist/components/bs-ai-greeting.js +1 -1
  465. package/dist/components/bs-ai-thinking.js +1 -1
  466. package/dist/components/bs-app-recent-item.js +1 -1
  467. package/dist/components/bs-app-shell.js +1 -1
  468. package/dist/components/bs-app-switcher.js +1 -1
  469. package/dist/components/bs-app-tile.js +1 -1
  470. package/dist/components/bs-attachment-list.js +1 -1
  471. package/dist/components/bs-attachment.js +1 -1
  472. package/dist/components/bs-avatar.js +1 -1
  473. package/dist/components/bs-badge.js +1 -1
  474. package/dist/components/bs-breadcrumb-overflow.js +1 -1
  475. package/dist/components/bs-breadcrumb.js +1 -1
  476. package/dist/components/bs-breadcrumbs.js +1 -1
  477. package/dist/components/bs-button-skeleton.js +1 -1
  478. package/dist/components/bs-button.js +1 -1
  479. package/dist/components/bs-card.js +1 -1
  480. package/dist/components/bs-carousel.js +1 -1
  481. package/dist/components/bs-chatbot-feedback.js +1 -1
  482. package/dist/components/bs-chatbot-header.js +1 -1
  483. package/dist/components/bs-chatbot-response-action.js +1 -1
  484. package/dist/components/bs-chatbot-sources-drawer.js +1 -1
  485. package/dist/components/bs-chatbot-suggestion-button.js +1 -1
  486. package/dist/components/bs-checkbox-group.d.ts +11 -0
  487. package/dist/components/bs-checkbox-group.js +1 -0
  488. package/dist/components/bs-checkbox-skeleton.js +1 -1
  489. package/dist/components/bs-checkbox.js +1 -1
  490. package/dist/components/bs-chip-filter.js +1 -1
  491. package/dist/components/bs-chip-informative.js +1 -1
  492. package/dist/components/bs-chip-input.js +1 -1
  493. package/dist/components/bs-citation-preview.js +1 -1
  494. package/dist/components/bs-code-block.d.ts +11 -0
  495. package/dist/components/bs-code-block.js +1 -0
  496. package/dist/components/bs-command-palette.js +1 -1
  497. package/dist/components/bs-compact-menu-block.js +1 -1
  498. package/dist/components/bs-company-switcher.js +1 -1
  499. package/dist/components/bs-composer-status-banner.js +1 -1
  500. package/dist/components/bs-composer.js +1 -1
  501. package/dist/components/bs-container.js +1 -1
  502. package/dist/components/bs-cookie-consent.js +1 -1
  503. package/dist/components/bs-data-table.js +1 -1
  504. package/dist/components/bs-datepicker.js +1 -1
  505. package/dist/components/bs-description-item.d.ts +11 -0
  506. package/dist/components/bs-description-item.js +1 -0
  507. package/dist/components/bs-description-list.d.ts +11 -0
  508. package/dist/components/bs-description-list.js +1 -0
  509. package/dist/components/bs-dialog.js +1 -1
  510. package/dist/components/bs-divider.js +1 -1
  511. package/dist/components/bs-dropdown.d.ts +11 -0
  512. package/dist/components/bs-dropdown.js +1 -0
  513. package/dist/components/bs-empty-state.js +1 -1
  514. package/dist/components/bs-error-page.js +1 -1
  515. package/dist/components/bs-file-upload-item.js +1 -1
  516. package/dist/components/bs-file-upload.js +1 -1
  517. package/dist/components/bs-global-search.js +1 -1
  518. package/dist/components/bs-grid.js +1 -1
  519. package/dist/components/bs-heading.d.ts +11 -0
  520. package/dist/components/bs-heading.js +1 -0
  521. package/dist/components/bs-icon-button.js +1 -1
  522. package/dist/components/bs-icon-tile.js +1 -1
  523. package/dist/components/bs-icon.d.ts +11 -0
  524. package/dist/components/bs-icon.js +1 -0
  525. package/dist/components/bs-inline-tab.js +1 -1
  526. package/dist/components/bs-input.js +1 -1
  527. package/dist/components/bs-key-caps.js +1 -1
  528. package/dist/components/bs-key.js +1 -1
  529. package/dist/components/bs-keyboard-shortcuts.js +1 -1
  530. package/dist/components/bs-link.d.ts +11 -0
  531. package/dist/components/bs-link.js +1 -0
  532. package/dist/components/bs-list-item.js +1 -1
  533. package/dist/components/bs-list.js +1 -1
  534. package/dist/components/bs-logo.js +1 -1
  535. package/dist/components/bs-mega-menu.js +1 -1
  536. package/dist/components/bs-menu-block.js +1 -1
  537. package/dist/components/bs-menu-item.js +1 -1
  538. package/dist/components/bs-menu.js +1 -1
  539. package/dist/components/bs-message-list.js +1 -1
  540. package/dist/components/bs-message.js +1 -1
  541. package/dist/components/bs-navigation-drawer-item.js +1 -1
  542. package/dist/components/bs-navigation-drawer.js +1 -1
  543. package/dist/components/bs-navigation-header.js +1 -1
  544. package/dist/components/bs-onboarding-checklist.js +1 -1
  545. package/dist/components/bs-page-header.js +1 -1
  546. package/dist/components/bs-pagination.js +1 -1
  547. package/dist/components/bs-popover.js +1 -1
  548. package/dist/components/bs-presence.js +1 -1
  549. package/dist/components/bs-product-tour.js +1 -1
  550. package/dist/components/bs-progress-linear.js +1 -1
  551. package/dist/components/bs-progress.js +1 -1
  552. package/dist/components/bs-qr-code.js +1 -1
  553. package/dist/components/bs-radio-group.d.ts +11 -0
  554. package/dist/components/bs-radio-group.js +1 -0
  555. package/dist/components/bs-radio.js +1 -1
  556. package/dist/components/bs-ripple.js +1 -1
  557. package/dist/components/bs-search-item.js +1 -1
  558. package/dist/components/bs-select.d.ts +11 -0
  559. package/dist/components/bs-select.js +1 -0
  560. package/dist/components/bs-session-timeout.js +1 -1
  561. package/dist/components/bs-shortcut-row.js +1 -1
  562. package/dist/components/bs-side-panel.js +1 -1
  563. package/dist/components/bs-skeleton.js +1 -1
  564. package/dist/components/bs-skip-link.d.ts +11 -0
  565. package/dist/components/bs-skip-link.js +1 -0
  566. package/dist/components/bs-slider.js +1 -1
  567. package/dist/components/bs-snackbar.js +1 -1
  568. package/dist/components/bs-source-link.js +1 -1
  569. package/dist/components/bs-spinner.js +1 -1
  570. package/dist/components/bs-split-pane.js +1 -1
  571. package/dist/components/bs-stack.js +1 -1
  572. package/dist/components/bs-stat.d.ts +11 -0
  573. package/dist/components/bs-stat.js +1 -0
  574. package/dist/components/bs-stepper-step.js +1 -1
  575. package/dist/components/bs-stepper.js +1 -1
  576. package/dist/components/bs-switch.js +1 -1
  577. package/dist/components/bs-tab.js +1 -1
  578. package/dist/components/bs-table-of-contents.d.ts +11 -0
  579. package/dist/components/bs-table-of-contents.js +1 -0
  580. package/dist/components/bs-tabs.js +1 -1
  581. package/dist/components/bs-tag.d.ts +11 -0
  582. package/dist/components/bs-tag.js +1 -0
  583. package/dist/components/bs-text.d.ts +11 -0
  584. package/dist/components/bs-text.js +1 -0
  585. package/dist/components/bs-timepicker.js +1 -1
  586. package/dist/components/bs-toast.js +1 -1
  587. package/dist/components/bs-toggle-button-group.d.ts +11 -0
  588. package/dist/components/bs-toggle-button-group.js +1 -0
  589. package/dist/components/bs-toggle-button.d.ts +11 -0
  590. package/dist/components/bs-toggle-button.js +1 -0
  591. package/dist/components/bs-toolbar.d.ts +11 -0
  592. package/dist/components/bs-toolbar.js +1 -0
  593. package/dist/components/bs-tooltip-trigger.js +1 -1
  594. package/dist/components/bs-tooltip.js +1 -1
  595. package/dist/components/bs-tree-item.js +1 -1
  596. package/dist/components/bs-tree.js +1 -1
  597. package/dist/components/bs-whats-new-entry.js +1 -1
  598. package/dist/components/bs-whats-new.js +1 -1
  599. package/dist/components/index.js +1 -1
  600. package/dist/components/p-B5yjDh8h.js +1 -0
  601. package/dist/components/p-B81aicKA.js +1 -0
  602. package/dist/components/{p-CFR3Q0io.js → p-BB1HiIxJ.js} +1 -1
  603. package/dist/components/p-BLJL4BVY.js +1 -0
  604. package/dist/components/{p-D5eN9Lfa.js → p-BR7C-aKy.js} +1 -1
  605. package/dist/components/{p-D3PuUD8Z.js → p-Ba8J2kHD.js} +1 -1
  606. package/dist/components/{p-DF2FcJPs.js → p-C3YETziz.js} +1 -1
  607. package/dist/components/p-CALH_mHQ.js +1 -0
  608. package/dist/components/{p-DcD5eV_Z.js → p-CKTbatgt.js} +1 -1
  609. package/dist/components/{p-lPTgyF9v.js → p-CL99S8-7.js} +1 -1
  610. package/dist/components/{p-Dj393s3S.js → p-CZfbB-t_.js} +1 -1
  611. package/dist/components/p-CcAX4o5o.js +1 -0
  612. package/dist/components/{p-6Rr9bjVN.js → p-Cso2DKAz.js} +1 -1
  613. package/dist/components/{p-CVQycAap.js → p-CxNNy2m6.js} +1 -1
  614. package/dist/components/{p-CHZE_FrW.js → p-Cz38kNDe.js} +1 -1
  615. package/dist/components/{p-Y5FyLR8G.js → p-D4W5LcEW.js} +1 -1
  616. package/dist/components/{p--Tyv3LIl.js → p-DARbgzSz.js} +1 -1
  617. package/dist/components/p-DHZ_DStJ.js +1 -0
  618. package/dist/components/{p-BQ4rSQDm.js → p-DK1uv2fu.js} +1 -1
  619. package/dist/components/{p-DLnZG_G9.js → p-DL9HtG41.js} +1 -1
  620. package/dist/components/{p-Cr8cHmpM.js → p-DLNoxNuW.js} +1 -1
  621. package/dist/components/{p-4yShCgRb.js → p-DMp5CvEJ.js} +1 -1
  622. package/dist/components/p-DO4sVZCh.js +1 -0
  623. package/dist/components/{p-DDgzEg1C.js → p-DOW-YekD.js} +1 -1
  624. package/dist/components/p-DUV80kt-.js +1 -0
  625. package/dist/components/{p-BTPdjnXT.js → p-DVqoLSEW.js} +1 -1
  626. package/dist/components/{p-DtkTnaOp.js → p-DaKBSL2O.js} +1 -1
  627. package/dist/components/{p-ZfE38vXZ.js → p-Dlp2c-Ii.js} +1 -1
  628. package/dist/components/{p-XZXdZpt4.js → p-DnagAPBF.js} +1 -1
  629. package/dist/components/p-Dt3b6VYT.js +1 -0
  630. package/dist/components/{p-BWRkbt0f.js → p-KiyJJwzr.js} +1 -1
  631. package/dist/components/p-Vo0zbGRB.js +1 -0
  632. package/dist/components/p-_zxYDrzi.js +1 -0
  633. package/dist/components/p-abyVFrPp.js +1 -0
  634. package/dist/components/p-mxDA3wKn.js +1 -0
  635. package/dist/components/p-wd9-vGpQ.js +1 -0
  636. package/dist/components/p-wscU7FUD.js +1 -0
  637. package/dist/esm/brandsync-wc.js +3 -3
  638. package/dist/esm/bs-accordion-group.entry.js +2 -2
  639. package/dist/esm/bs-accordion.entry.js +2 -2
  640. package/dist/esm/bs-ai-disclaimer.entry.js +2 -2
  641. package/dist/esm/bs-ai-greeting.entry.js +2 -2
  642. package/dist/esm/bs-ai-thinking.entry.js +2 -2
  643. package/dist/esm/bs-app-recent-item_3.entry.js +5 -5
  644. package/dist/esm/bs-app-shell.entry.js +2 -2
  645. package/dist/esm/bs-app-switcher.entry.js +1 -1
  646. package/dist/esm/bs-attachment-list.entry.js +2 -2
  647. package/dist/esm/bs-attachment.entry.js +2 -2
  648. package/dist/esm/bs-avatar.entry.js +3 -10
  649. package/dist/esm/bs-badge.entry.js +2 -2
  650. package/dist/esm/bs-breadcrumb-overflow.entry.js +1 -1
  651. package/dist/esm/bs-breadcrumb.entry.js +3 -3
  652. package/dist/esm/bs-breadcrumbs.entry.js +10 -2
  653. package/dist/esm/bs-button-skeleton.entry.js +2 -2
  654. package/dist/esm/bs-button_2.entry.js +17 -4
  655. package/dist/esm/bs-card.entry.js +44 -3
  656. package/dist/esm/bs-carousel.entry.js +2 -2
  657. package/dist/esm/bs-chatbot-feedback.entry.js +3 -7
  658. package/dist/esm/bs-chatbot-header.entry.js +3 -7
  659. package/dist/esm/bs-chatbot-response-action.entry.js +2 -2
  660. package/dist/esm/bs-chatbot-sources-drawer.entry.js +2 -2
  661. package/dist/esm/bs-chatbot-suggestion-button.entry.js +3 -3
  662. package/dist/esm/bs-checkbox-group.entry.js +78 -0
  663. package/dist/esm/bs-checkbox-skeleton.entry.js +2 -2
  664. package/dist/esm/bs-checkbox.entry.js +1 -1
  665. package/dist/esm/bs-chip-filter.entry.js +2 -2
  666. package/dist/esm/bs-chip-informative.entry.js +2 -2
  667. package/dist/esm/bs-chip-input.entry.js +2 -2
  668. package/dist/esm/bs-citation-preview.entry.js +2 -2
  669. package/dist/esm/bs-code-block.entry.js +73 -0
  670. package/dist/esm/bs-command-palette.entry.js +2 -2
  671. package/dist/esm/bs-compact-menu-block_2.entry.js +5 -5
  672. package/dist/esm/bs-company-switcher.entry.js +3 -3
  673. package/dist/esm/bs-composer-status-banner.entry.js +2 -2
  674. package/dist/esm/bs-composer.entry.js +6 -4
  675. package/dist/esm/bs-container.entry.js +2 -2
  676. package/dist/esm/bs-cookie-consent.entry.js +1 -1
  677. package/dist/esm/bs-data-table.entry.js +8 -5
  678. package/dist/esm/bs-datepicker.entry.js +2 -2
  679. package/dist/esm/bs-description-item.entry.js +21 -0
  680. package/dist/esm/bs-description-list.entry.js +38 -0
  681. package/dist/esm/bs-dialog.entry.js +1 -1
  682. package/dist/esm/bs-divider.entry.js +2 -2
  683. package/dist/esm/bs-dropdown.entry.js +94 -0
  684. package/dist/esm/bs-empty-state.entry.js +7 -3
  685. package/dist/esm/bs-error-page.entry.js +2 -2
  686. package/dist/esm/bs-file-upload-item.entry.js +2 -2
  687. package/dist/esm/bs-file-upload.entry.js +2 -2
  688. package/dist/esm/bs-global-search.entry.js +3 -3
  689. package/dist/esm/bs-grid.entry.js +3 -3
  690. package/dist/esm/bs-heading.entry.js +26 -0
  691. package/dist/esm/bs-icon-button.entry.js +10 -3
  692. package/dist/esm/bs-icon-tile.entry.js +3 -3
  693. package/dist/esm/bs-icon.entry.js +33 -0
  694. package/dist/esm/bs-inline-tab.entry.js +3 -3
  695. package/dist/esm/bs-input_4.entry.js +789 -0
  696. package/dist/esm/bs-key-caps.entry.js +2 -2
  697. package/dist/esm/bs-key.entry.js +2 -2
  698. package/dist/esm/bs-keyboard-shortcuts.entry.js +3 -3
  699. package/dist/esm/bs-link.entry.js +50 -0
  700. package/dist/esm/bs-list-item.entry.js +66 -0
  701. package/dist/esm/bs-list.entry.js +9 -3
  702. package/dist/esm/bs-logo.entry.js +1 -1
  703. package/dist/esm/bs-mega-menu.entry.js +2 -2
  704. package/dist/esm/bs-message-list.entry.js +2 -2
  705. package/dist/esm/bs-message.entry.js +2 -2
  706. package/dist/esm/bs-navigation-drawer-item.entry.js +26 -5
  707. package/dist/esm/bs-navigation-drawer.entry.js +4 -4
  708. package/dist/esm/bs-navigation-header.entry.js +4 -4
  709. package/dist/esm/bs-onboarding-checklist.entry.js +1 -1
  710. package/dist/esm/bs-page-header.entry.js +2 -2
  711. package/dist/esm/bs-pagination.entry.js +2 -2
  712. package/dist/esm/bs-popover.entry.js +221 -0
  713. package/dist/esm/bs-presence.entry.js +2 -2
  714. package/dist/esm/bs-product-tour.entry.js +1 -1
  715. package/dist/esm/bs-progress-linear.entry.js +4 -4
  716. package/dist/esm/bs-progress.entry.js +3 -3
  717. package/dist/esm/bs-qr-code.entry.js +2 -2
  718. package/dist/esm/bs-radio-group.entry.js +88 -0
  719. package/dist/esm/bs-radio.entry.js +6 -2
  720. package/dist/esm/bs-search-item.entry.js +2 -2
  721. package/dist/esm/bs-select.entry.js +232 -0
  722. package/dist/esm/bs-session-timeout.entry.js +2 -2
  723. package/dist/esm/bs-shortcut-row.entry.js +2 -2
  724. package/dist/esm/bs-side-panel.entry.js +1 -1
  725. package/dist/esm/bs-skip-link.entry.js +50 -0
  726. package/dist/esm/bs-slider.entry.js +3 -3
  727. package/dist/esm/bs-snackbar.entry.js +3 -3
  728. package/dist/esm/bs-source-link.entry.js +4 -4
  729. package/dist/esm/bs-split-pane.entry.js +2 -2
  730. package/dist/esm/bs-stack.entry.js +2 -2
  731. package/dist/esm/bs-stat.entry.js +51 -0
  732. package/dist/esm/bs-stepper-step.entry.js +2 -2
  733. package/dist/esm/bs-stepper.entry.js +2 -2
  734. package/dist/esm/bs-switch.entry.js +2 -2
  735. package/dist/esm/bs-tab_3.entry.js +16 -9
  736. package/dist/esm/bs-table-of-contents.entry.js +169 -0
  737. package/dist/esm/bs-tag.entry.js +49 -0
  738. package/dist/esm/bs-text.entry.js +22 -0
  739. package/dist/esm/bs-timepicker.entry.js +3 -3
  740. package/dist/esm/bs-toast.entry.js +2 -2
  741. package/dist/esm/bs-toggle-button-group.entry.js +106 -0
  742. package/dist/esm/bs-toggle-button.entry.js +55 -0
  743. package/dist/esm/bs-toolbar.entry.js +193 -0
  744. package/dist/esm/bs-tooltip-trigger.entry.js +2 -2
  745. package/dist/esm/bs-tooltip.entry.js +2 -2
  746. package/dist/esm/bs-tree-item.entry.js +3 -3
  747. package/dist/esm/bs-tree.entry.js +2 -2
  748. package/dist/esm/bs-whats-new.entry.js +1 -1
  749. package/dist/esm/icon-registry-Vo0zbGRB.js +60 -0
  750. package/dist/esm/{index-D3SkQJpw.js → index-wz7B473u.js} +1 -1
  751. package/dist/esm/index.js +2 -0
  752. package/dist/esm/loader.js +3 -3
  753. package/dist/types/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.d.ts +9 -0
  754. package/dist/types/components/bs-button/bs-button/bs-button.d.ts +22 -6
  755. package/dist/types/components/bs-button/bs-icon-button/bs-icon-button.d.ts +7 -0
  756. package/dist/types/components/bs-card/bs-card.d.ts +35 -0
  757. package/dist/types/components/bs-card/bs-card.stories.d.ts +3 -0
  758. package/dist/types/components/bs-carousel/bs-carousel.d.ts +1 -1
  759. package/dist/types/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.d.ts +3 -0
  760. package/dist/types/components/bs-checkbox-group/bs-checkbox-group.cmp.test.d.ts +1 -0
  761. package/dist/types/components/bs-checkbox-group/bs-checkbox-group.d.ts +48 -0
  762. package/dist/types/components/bs-checkbox-group/bs-checkbox-group.stories.d.ts +15 -0
  763. package/dist/types/components/bs-code-block/bs-code-block.cmp.test.d.ts +1 -0
  764. package/dist/types/components/bs-code-block/bs-code-block.d.ts +68 -0
  765. package/dist/types/components/bs-code-block/bs-code-block.stories.d.ts +18 -0
  766. package/dist/types/components/bs-data-table/bs-data-table.d.ts +11 -0
  767. package/dist/types/components/bs-description-item/bs-description-item.cmp.test.d.ts +1 -0
  768. package/dist/types/components/bs-description-item/bs-description-item.d.ts +34 -0
  769. package/dist/types/components/bs-description-list/bs-description-list.cmp.test.d.ts +1 -0
  770. package/dist/types/components/bs-description-list/bs-description-list.d.ts +33 -0
  771. package/dist/types/components/bs-description-list/bs-description-list.stories.d.ts +11 -0
  772. package/dist/types/components/bs-dropdown/bs-dropdown.cmp.test.d.ts +1 -0
  773. package/dist/types/components/bs-dropdown/bs-dropdown.d.ts +51 -0
  774. package/dist/types/components/bs-dropdown/bs-dropdown.stories.d.ts +12 -0
  775. package/dist/types/components/bs-empty-state/bs-empty-state.d.ts +6 -0
  776. package/dist/types/components/bs-empty-state/bs-empty-state.stories.d.ts +3 -0
  777. package/dist/types/components/bs-heading/bs-heading.cmp.test.d.ts +1 -0
  778. package/dist/types/components/bs-heading/bs-heading.d.ts +34 -0
  779. package/dist/types/components/bs-heading/bs-heading.stories.d.ts +15 -0
  780. package/dist/types/components/bs-icon/bs-icon.cmp.test.d.ts +1 -0
  781. package/dist/types/components/bs-icon/bs-icon.d.ts +39 -0
  782. package/dist/types/components/bs-icon/bs-icon.stories.d.ts +16 -0
  783. package/dist/types/components/bs-icon/icon-registry.d.ts +16 -0
  784. package/dist/types/components/bs-input/bs-input.d.ts +83 -12
  785. package/dist/types/components/bs-input/bs-input.stories.d.ts +3 -1
  786. package/dist/types/components/bs-link/bs-link.cmp.test.d.ts +1 -0
  787. package/dist/types/components/bs-link/bs-link.d.ts +48 -0
  788. package/dist/types/components/bs-link/bs-link.stories.d.ts +19 -0
  789. package/dist/types/components/bs-list/bs-list.d.ts +6 -0
  790. package/dist/types/components/bs-list/bs-list.stories.d.ts +4 -0
  791. package/dist/types/components/bs-list-item/bs-list-item.d.ts +3 -0
  792. package/dist/types/components/bs-popover/bs-popover.d.ts +9 -1
  793. package/dist/types/components/bs-radio/bs-radio.d.ts +4 -0
  794. package/dist/types/components/bs-radio-group/bs-radio-group.cmp.test.d.ts +1 -0
  795. package/dist/types/components/bs-radio-group/bs-radio-group.d.ts +57 -0
  796. package/dist/types/components/bs-radio-group/bs-radio-group.stories.d.ts +16 -0
  797. package/dist/types/components/bs-select/bs-select.cmp.test.d.ts +1 -0
  798. package/dist/types/components/bs-select/bs-select.d.ts +85 -0
  799. package/dist/types/components/bs-select/bs-select.stories.d.ts +19 -0
  800. package/dist/types/components/bs-skip-link/bs-skip-link.cmp.test.d.ts +1 -0
  801. package/dist/types/components/bs-skip-link/bs-skip-link.d.ts +40 -0
  802. package/dist/types/components/bs-skip-link/bs-skip-link.stories.d.ts +10 -0
  803. package/dist/types/components/bs-stat/bs-stat.cmp.test.d.ts +1 -0
  804. package/dist/types/components/bs-stat/bs-stat.d.ts +56 -0
  805. package/dist/types/components/bs-stat/bs-stat.stories.d.ts +16 -0
  806. package/dist/types/components/bs-tab/bs-inline-tab/bs-inline-tab.stories.d.ts +0 -1
  807. package/dist/types/components/bs-tab/bs-tabs/bs-tabs.d.ts +5 -3
  808. package/dist/types/components/bs-table-of-contents/bs-table-of-contents.cmp.test.d.ts +1 -0
  809. package/dist/types/components/bs-table-of-contents/bs-table-of-contents.d.ts +96 -0
  810. package/dist/types/components/bs-table-of-contents/bs-table-of-contents.stories.d.ts +13 -0
  811. package/dist/types/components/bs-tag/bs-tag.cmp.test.d.ts +1 -0
  812. package/dist/types/components/bs-tag/bs-tag.d.ts +49 -0
  813. package/dist/types/components/bs-tag/bs-tag.stories.d.ts +16 -0
  814. package/dist/types/components/bs-text/bs-text.cmp.test.d.ts +1 -0
  815. package/dist/types/components/bs-text/bs-text.d.ts +31 -0
  816. package/dist/types/components/bs-text/bs-text.stories.d.ts +14 -0
  817. package/dist/types/components/bs-toggle-button/bs-toggle-button.cmp.test.d.ts +1 -0
  818. package/dist/types/components/bs-toggle-button/bs-toggle-button.d.ts +48 -0
  819. package/dist/types/components/bs-toggle-button/bs-toggle-button.stories.d.ts +13 -0
  820. package/dist/types/components/bs-toggle-button-group/bs-toggle-button-group.cmp.test.d.ts +1 -0
  821. package/dist/types/components/bs-toggle-button-group/bs-toggle-button-group.d.ts +42 -0
  822. package/dist/types/components/bs-toggle-button-group/bs-toggle-button-group.stories.d.ts +13 -0
  823. package/dist/types/components/bs-toolbar/bs-toolbar.cmp.test.d.ts +1 -0
  824. package/dist/types/components/bs-toolbar/bs-toolbar.d.ts +88 -0
  825. package/dist/types/components/bs-toolbar/bs-toolbar.stories.d.ts +13 -0
  826. package/dist/types/components/disabled-aria.cmp.test.d.ts +1 -0
  827. package/dist/types/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.d.ts +11 -1
  828. package/dist/types/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.stories.d.ts +3 -0
  829. package/dist/types/components.d.ts +3107 -88
  830. package/dist/types/index.d.ts +1 -0
  831. package/dist/types/test/helpers/block-link-navigation.d.ts +8 -0
  832. package/dist/types/test/helpers/contrast.d.ts +5 -0
  833. package/package.json +6 -1
  834. package/reference.d.ts +63 -9
  835. package/reference.json +670 -17
  836. package/dist/brandsync-wc/p-08649f52.entry.js +0 -1
  837. package/dist/brandsync-wc/p-1580c56c.entry.js +0 -1
  838. package/dist/brandsync-wc/p-171fa239.entry.js +0 -1
  839. package/dist/brandsync-wc/p-197ac73f.entry.js +0 -1
  840. package/dist/brandsync-wc/p-1e33bc10.entry.js +0 -1
  841. package/dist/brandsync-wc/p-270b2cb0.entry.js +0 -1
  842. package/dist/brandsync-wc/p-28c38959.entry.js +0 -1
  843. package/dist/brandsync-wc/p-2a8b2ac9.entry.js +0 -1
  844. package/dist/brandsync-wc/p-2a967b45.entry.js +0 -1
  845. package/dist/brandsync-wc/p-2b3d0bd4.entry.js +0 -1
  846. package/dist/brandsync-wc/p-30ff0659.entry.js +0 -1
  847. package/dist/brandsync-wc/p-3627e0c6.entry.js +0 -1
  848. package/dist/brandsync-wc/p-38a2210a.entry.js +0 -1
  849. package/dist/brandsync-wc/p-3b212a8a.entry.js +0 -1
  850. package/dist/brandsync-wc/p-4dfd4715.entry.js +0 -1
  851. package/dist/brandsync-wc/p-6afacd47.entry.js +0 -1
  852. package/dist/brandsync-wc/p-6f32a08e.entry.js +0 -1
  853. package/dist/brandsync-wc/p-776b677f.entry.js +0 -1
  854. package/dist/brandsync-wc/p-D3SkQJpw.js +0 -3
  855. package/dist/brandsync-wc/p-ab301e9d.entry.js +0 -1
  856. package/dist/brandsync-wc/p-d15e48eb.entry.js +0 -1
  857. package/dist/brandsync-wc/p-e1d30e31.entry.js +0 -1
  858. package/dist/brandsync-wc/p-e776d145.entry.js +0 -1
  859. package/dist/brandsync-wc/p-e7c80f48.entry.js +0 -1
  860. package/dist/brandsync-wc/p-eb680cff.entry.js +0 -1
  861. package/dist/brandsync-wc/p-f3b60029.entry.js +0 -1
  862. package/dist/brandsync-wc/p-f4628861.entry.js +0 -1
  863. package/dist/brandsync-wc/p-f5e6fdf8.entry.js +0 -1
  864. package/dist/brandsync-wc/p-f93127e1.entry.js +0 -1
  865. package/dist/cjs/bs-input_3.cjs.entry.js +0 -461
  866. package/dist/cjs/bs-list-item_2.cjs.entry.js +0 -261
  867. package/dist/cjs/bs-spinner.cjs.entry.js +0 -24
  868. package/dist/components/p-B2gx7SZk.js +0 -1
  869. package/dist/components/p-BHzj13sd.js +0 -1
  870. package/dist/components/p-BIxcCDgl.js +0 -1
  871. package/dist/components/p-BfCah-Ij.js +0 -1
  872. package/dist/components/p-BpkPo4ay.js +0 -1
  873. package/dist/components/p-CvSewXZF.js +0 -1
  874. package/dist/components/p-DXbcyEgd.js +0 -1
  875. package/dist/components/p-DXwatzvM.js +0 -1
  876. package/dist/components/p-DsBToIYE.js +0 -1
  877. package/dist/components/p-EGNLb4cQ.js +0 -1
  878. package/dist/components/p-Jik5UkAe.js +0 -1
  879. package/dist/components/p-syO0ipbw.js +0 -1
  880. package/dist/components/p-up01gvHY.js +0 -1
  881. package/dist/esm/bs-input_3.entry.js +0 -457
  882. package/dist/esm/bs-list-item_2.entry.js +0 -258
  883. package/dist/esm/bs-spinner.entry.js +0 -22
@@ -0,0 +1,60 @@
1
+ import { render, h, describe, it, expect } from "@stencil/vitest";
2
+ import { runAxeCheck, assertShadowParts } from "../../test/helpers/conventions";
3
+ import { blockLinkNavigation } from "../../test/helpers/block-link-navigation";
4
+ blockLinkNavigation();
5
+ describe('bs-skip-link', () => {
6
+ it('renders a real anchor with the default label and href', async () => {
7
+ const { root } = await render(h("bs-skip-link", null));
8
+ const a = root.shadowRoot.querySelector('a');
9
+ expect(a.getAttribute('href')).toBe('#main-content');
10
+ expect(a.textContent.trim()).toBe('Skip to main content');
11
+ assertShadowParts(root.shadowRoot, ['link']);
12
+ });
13
+ it('uses slotted label and custom href', async () => {
14
+ const { root } = await render(h("bs-skip-link", { href: "#nav" }, "Skip navigation"));
15
+ expect(root.shadowRoot.querySelector('a').getAttribute('href')).toBe('#nav');
16
+ expect(root).toHaveTextContent('Skip navigation');
17
+ });
18
+ it('is off-screen until focused, then on-screen', async () => {
19
+ const { root } = await render(h("bs-skip-link", null));
20
+ const a = root.shadowRoot.querySelector('a');
21
+ expect(a.getBoundingClientRect().bottom).toBeLessThan(0);
22
+ a.focus();
23
+ expect(a.getBoundingClientRect().top).toBeGreaterThanOrEqual(0);
24
+ expect(a.getBoundingClientRect().bottom).toBeGreaterThan(0);
25
+ });
26
+ it('is reachable by focus() on the host (delegatesFocus)', async () => {
27
+ const { root } = await render(h("bs-skip-link", null));
28
+ root.focus();
29
+ expect(root.shadowRoot.activeElement).toBe(root.shadowRoot.querySelector('a'));
30
+ });
31
+ it('moves focus to the target on activation, adding a temporary tabindex', async () => {
32
+ const { root } = await render(h("div", null, h("bs-skip-link", { href: "#skip-target" }), h("main", { id: "skip-target" }, "Main")));
33
+ const link = root.querySelector('bs-skip-link');
34
+ const main = root.querySelector('main');
35
+ const events = [];
36
+ link.addEventListener('bsSkip', (e) => events.push(e.detail));
37
+ link.shadowRoot.querySelector('a').click();
38
+ expect(document.activeElement).toBe(main);
39
+ expect(main.getAttribute('tabindex')).toBe('-1');
40
+ expect(events[0].target).toBe(main);
41
+ main.blur();
42
+ expect(main.hasAttribute('tabindex')).toBe(false);
43
+ });
44
+ it('does not move focus when bsSkip is cancelled', async () => {
45
+ const { root } = await render(h("div", null, h("bs-skip-link", { href: "#skip-target2" }), h("main", { id: "skip-target2" }, "Main")));
46
+ const link = root.querySelector('bs-skip-link');
47
+ link.addEventListener('bsSkip', e => e.preventDefault());
48
+ link.shadowRoot.querySelector('a').click();
49
+ expect(document.activeElement).not.toBe(root.querySelector('main'));
50
+ });
51
+ it('does nothing harmful when the target does not exist', async () => {
52
+ const { root } = await render(h("bs-skip-link", { href: "#nope-x" }));
53
+ root.shadowRoot.querySelector('a').click();
54
+ expect(root.isConnected).toBe(true);
55
+ });
56
+ it('has no axe violations', async () => {
57
+ const { root } = await render(h("div", null, h("bs-skip-link", null), h("main", { id: "main-content" }, "Content")));
58
+ await runAxeCheck(root);
59
+ });
60
+ });
@@ -0,0 +1,58 @@
1
+ /**
2
+ * @prop --bs-skip-link-bg: Background once focused into view. Aliased to --bs-surface-action.
3
+ * @prop --bs-skip-link-color: Text colour once focused. Aliased to --bs-text-on-action.
4
+ * @prop --bs-skip-link-radius: Corner radius. Aliased to --bs-border-radius-100.
5
+ * @prop --bs-skip-link-padding-x: Horizontal padding. Aliased to --bs-spacing-200.
6
+ * @prop --bs-skip-link-padding-y: Vertical padding. Aliased to --bs-spacing-100.
7
+ * @prop --bs-skip-link-font-size: Font size. Aliased to --bs-font-size-md.
8
+ * @prop --bs-skip-link-font-weight: Font weight. Aliased to --bs-font-weight-semibold.
9
+ * @prop --bs-skip-link-offset: Distance from the top and start edge of the viewport when shown. Aliased to --bs-spacing-100.
10
+ * @prop --bs-skip-link-focus-ring-color: Focus ring colour. Aliased to --bs-border-neutral-focus.
11
+ * @prop --bs-skip-link-z-index: Stacking order when shown. Aliased to --bs-z-index-modal.
12
+ */
13
+ :host {
14
+ display: block;
15
+ /* The host takes no space: the link is out of flow whether hidden or shown. */
16
+ height: 0;
17
+
18
+ --bs-skip-link-bg: var(--bs-surface-action);
19
+ --bs-skip-link-color: var(--bs-text-on-action);
20
+ --bs-skip-link-radius: var(--bs-border-radius-100);
21
+ --bs-skip-link-padding-x: var(--bs-spacing-200);
22
+ --bs-skip-link-padding-y: var(--bs-spacing-100);
23
+ --bs-skip-link-font-size: var(--bs-font-size-md);
24
+ --bs-skip-link-font-weight: var(--bs-font-weight-semibold);
25
+ --bs-skip-link-offset: var(--bs-spacing-100);
26
+ --bs-skip-link-focus-ring-color: var(--bs-border-neutral-focus);
27
+ --bs-skip-link-z-index: var(--bs-z-index-modal);
28
+ }
29
+
30
+ /* Hidden by moving it off-screen, not display:none/visibility:hidden, which would drop it from the
31
+ tab order. :focus brings it to the top-start corner of the viewport. */
32
+ .bs-skip-link {
33
+ position: fixed;
34
+ inset-block-start: var(--bs-skip-link-offset);
35
+ inset-inline-start: var(--bs-skip-link-offset);
36
+ z-index: var(--bs-skip-link-z-index);
37
+ box-sizing: border-box;
38
+ padding: var(--bs-skip-link-padding-y) var(--bs-skip-link-padding-x);
39
+ border-radius: var(--bs-skip-link-radius);
40
+ background: var(--bs-skip-link-bg);
41
+ color: var(--bs-skip-link-color);
42
+ font-family: inherit;
43
+ font-size: var(--bs-skip-link-font-size);
44
+ font-weight: var(--bs-skip-link-font-weight);
45
+ text-decoration: underline;
46
+ transform: translateY(-300%);
47
+ }
48
+
49
+ .bs-skip-link:focus,
50
+ .bs-skip-link:focus-visible {
51
+ transform: none;
52
+ outline: 2px solid var(--bs-skip-link-focus-ring-color);
53
+ outline-offset: 2px;
54
+ }
55
+
56
+ @media (forced-colors: active) {
57
+ .bs-skip-link { border: 1px solid CanvasText; }
58
+ }
@@ -0,0 +1,123 @@
1
+ import { h } from "@stencil/core";
2
+ /**
3
+ * A "skip to main content" link: invisible until it receives keyboard focus, then shown at the top
4
+ * of the page. Activating it moves focus to the element its `href` points at, so keyboard and
5
+ * screen-reader users can bypass repeated navigation (WCAG 2.4.1 Bypass Blocks).
6
+ *
7
+ * Place it as the very first focusable element on the page. Renders a real `<a>`; the focus move is
8
+ * done explicitly (the target gets a temporary `tabindex="-1"` when it is not natively focusable),
9
+ * because a fragment navigation alone does not reliably move focus in every browser.
10
+ *
11
+ * ## When to use
12
+ * - Once per page, before the header/navigation, pointing at the `<main>` landmark.
13
+ * - Additionally before large repeated blocks (e.g. a long sidebar) pointing past them.
14
+ *
15
+ * ## When not to use
16
+ * - As a general in-page link -- use a plain link or `bs-table-of-contents`.
17
+ * - When the page has no repeated blocks before its main content.
18
+ *
19
+ * Composition: a leaf element (a single anchor); no existing `bs-*` component renders a link.
20
+ *
21
+ * @slot - Default slot: the link text. Falls back to "Skip to main content".
22
+ * @part link - The anchor element.
23
+ */
24
+ // Note: CSS Custom Properties (--bs-skip-link-*) are documented via @prop comments in bs-skip-link.css.
25
+ export class BsSkipLink {
26
+ el;
27
+ /** Target to skip to: a fragment (`#main-content`) naming an element id in the same document or
28
+ * shadow tree, or any URL (then the browser just navigates). Point it at an element that exists --
29
+ * if the id is not found, activating the link does nothing beyond the native fragment jump. */
30
+ href = '#main-content';
31
+ /** Fires when the link is activated, before focus moves. **Cancelable**: `preventDefault()` stops
32
+ * both the focus move and the native navigation so you can handle it yourself. Detail is
33
+ * `{ href, target }` (`target` is the resolved element or `null`). Bubbles and is composed. */
34
+ bsSkip;
35
+ resolveTarget() {
36
+ if (!this.href || !this.href.startsWith('#') || this.href.length < 2)
37
+ return null;
38
+ const id = decodeURIComponent(this.href.slice(1));
39
+ const root = this.el.getRootNode();
40
+ return (root.getElementById?.(id) ?? document.getElementById(id));
41
+ }
42
+ onClick = (ev) => {
43
+ if (ev.defaultPrevented || ev.button !== 0 || ev.metaKey || ev.ctrlKey || ev.shiftKey || ev.altKey)
44
+ return;
45
+ const target = this.resolveTarget();
46
+ const proceed = this.bsSkip.emit({ href: this.href, target });
47
+ if (proceed.defaultPrevented) {
48
+ ev.preventDefault();
49
+ return;
50
+ }
51
+ if (!target)
52
+ return;
53
+ if (!target.hasAttribute('tabindex') && !target.matches('a[href],button,input,select,textarea,[contenteditable]')) {
54
+ target.setAttribute('tabindex', '-1');
55
+ target.addEventListener('blur', () => target.removeAttribute('tabindex'), { once: true });
56
+ }
57
+ target.focus();
58
+ };
59
+ render() {
60
+ return (h("a", { key: '7f3d5a4e355caaa5529b5602c048c864a5e7e5a9', part: "link", class: "bs-skip-link", href: this.href, onClick: this.onClick }, h("slot", { key: '938c117509a209ac79d99af9cbe8e1eccf7a4c22' }, "Skip to main content")));
61
+ }
62
+ static get is() { return "bs-skip-link"; }
63
+ static get encapsulation() { return "shadow"; }
64
+ static get delegatesFocus() { return true; }
65
+ static get originalStyleUrls() {
66
+ return {
67
+ "$": ["bs-skip-link.css"]
68
+ };
69
+ }
70
+ static get styleUrls() {
71
+ return {
72
+ "$": ["bs-skip-link.css"]
73
+ };
74
+ }
75
+ static get properties() {
76
+ return {
77
+ "href": {
78
+ "type": "string",
79
+ "mutable": false,
80
+ "complexType": {
81
+ "original": "string",
82
+ "resolved": "string",
83
+ "references": {}
84
+ },
85
+ "required": false,
86
+ "optional": false,
87
+ "docs": {
88
+ "tags": [],
89
+ "text": "Target to skip to: a fragment (`#main-content`) naming an element id in the same document or\nshadow tree, or any URL (then the browser just navigates). Point it at an element that exists --\nif the id is not found, activating the link does nothing beyond the native fragment jump."
90
+ },
91
+ "getter": false,
92
+ "setter": false,
93
+ "reflect": false,
94
+ "attribute": "href",
95
+ "defaultValue": "'#main-content'"
96
+ }
97
+ };
98
+ }
99
+ static get events() {
100
+ return [{
101
+ "method": "bsSkip",
102
+ "name": "bsSkip",
103
+ "bubbles": true,
104
+ "cancelable": true,
105
+ "composed": true,
106
+ "docs": {
107
+ "tags": [],
108
+ "text": "Fires when the link is activated, before focus moves. **Cancelable**: `preventDefault()` stops\nboth the focus move and the native navigation so you can handle it yourself. Detail is\n`{ href, target }` (`target` is the resolved element or `null`). Bubbles and is composed."
109
+ },
110
+ "complexType": {
111
+ "original": "{ href: string; target: HTMLElement | null }",
112
+ "resolved": "{ href: string; target: HTMLElement; }",
113
+ "references": {
114
+ "HTMLElement": {
115
+ "location": "global",
116
+ "id": "global::HTMLElement"
117
+ }
118
+ }
119
+ }
120
+ }];
121
+ }
122
+ static get elementRef() { return "el"; }
123
+ }
@@ -0,0 +1,27 @@
1
+ import { html } from "lit";
2
+ import { componentDescription, propDescription } from "../../stories-utils";
3
+ const meta = {
4
+ title: 'Components/bs-skip-link',
5
+ parameters: { docs: { description: { component: componentDescription('bs-skip-link') } } },
6
+ render: args => html `
7
+ <div style="min-height: 160px;">
8
+ <p>Click here, then press Tab: the skip link appears at the top-left of the viewport.</p>
9
+ <bs-skip-link href=${args.href}>${args.label}</bs-skip-link>
10
+ <nav aria-label="Demo navigation" style="margin: 16px 0;">
11
+ <a href="#nav-a">Link A</a> | <a href="#nav-b">Link B</a> | <a href="#nav-c">Link C</a>
12
+ </nav>
13
+ <main id="main-content"><h1 style="font-size: 20px;">Main content</h1><p>Focus lands here when the skip link is activated.</p></main>
14
+ </div>
15
+ `,
16
+ argTypes: {
17
+ href: { control: 'text', description: propDescription('bs-skip-link', 'href') },
18
+ label: { control: 'text', description: 'Link text (default slot).' },
19
+ },
20
+ args: { href: '#main-content', label: 'Skip to main content' },
21
+ };
22
+ export default meta;
23
+ export const Default = {};
24
+ export const CustomLabelAndTarget = {
25
+ name: 'Custom label and target',
26
+ args: { href: '#main-content', label: 'Skip navigation' },
27
+ };
@@ -130,6 +130,19 @@ describe('bs-slider', () => {
130
130
  expect(ticks[0]).toHaveClass('bs-slider__tick--hidden');
131
131
  expect(ticks[1]).not.toHaveClass('bs-slider__tick--hidden');
132
132
  });
133
+ it('ticks span the full knob/frame height, centred on the track, without blocking pointer events', async () => {
134
+ const { root } = await render(h("bs-slider", { type: "segmented", segments: 5, value: 40 }));
135
+ const tick = root.shadowRoot.querySelectorAll('.bs-slider__tick')[2];
136
+ const track = root.shadowRoot.querySelector('.bs-slider__track');
137
+ const ticks = root.shadowRoot.querySelector('.bs-slider__ticks');
138
+ const tr = tick.getBoundingClientRect();
139
+ const kr = track.getBoundingClientRect();
140
+ const knob = parseFloat(getComputedStyle(root).getPropertyValue('--bs-slider-knob-size')) || 24;
141
+ expect(tr.height).toBeGreaterThan(kr.height * 2);
142
+ expect(Math.round(tr.height)).toBe(Math.round(knob));
143
+ expect(Math.abs(tr.top + tr.height / 2 - (kr.top + kr.height / 2))).toBeLessThan(1);
144
+ expect(getComputedStyle(ticks).pointerEvents).toBe('none');
145
+ });
133
146
  it('derives the range input step from (max - min) / segments', async () => {
134
147
  const { root } = await render(h("bs-slider", { type: "segmented", min: 0, max: 100, segments: 4 }));
135
148
  const input = root.shadowRoot.querySelector('input[type="range"]');
@@ -239,7 +239,8 @@
239
239
  top: 50%;
240
240
  left: 0;
241
241
  width: 100%;
242
- height: 0;
242
+ /* Ticks span the full visible slider frame (the knob's height), not just the 4px track. */
243
+ height: var(--bs-slider-knob-size);
243
244
  display: flex;
244
245
  justify-content: space-between;
245
246
  transform: translateY(-50%);
@@ -248,7 +249,7 @@
248
249
 
249
250
  .bs-slider__tick {
250
251
  width: 2px;
251
- height: var(--bs-spacing-50);
252
+ height: 100%;
252
253
  background: var(--bs-slider-tick-bg);
253
254
  }
254
255
 
@@ -233,7 +233,7 @@ export class BsSlider {
233
233
  render() {
234
234
  const isRange = this.type === 'range';
235
235
  const rootClasses = ['bs-slider', this.disabled ? 'bs-slider--disabled' : ''].filter(Boolean).join(' ');
236
- return (h("div", { key: '78480dc37808335f258e1ad06e8b19ca97aed1b9', class: rootClasses }, this.showLabel && (h("div", { key: '0fd24602403f811367605786a07d9962c6f3522f', class: "bs-slider__header" }, h("span", { key: 'dd1c85fa0c4718e381bfef7f00977230d60e9d6c', id: "bs-slider-label", part: "label", class: "bs-slider__label" }, this.label), isRange ? (h("span", { class: "bs-slider__value-fields" }, this.renderPercentField(this.percent(this.effectiveValueStart), this.onStartPercentFieldChange, this.ariaLabel ?? this.startValueLabel), h("span", { class: "bs-slider__separator" }, "\u2013"), this.renderPercentField(this.percent(this.effectiveValueEnd), this.onEndPercentFieldChange, this.ariaLabel ? `${this.ariaLabel} end` : this.endValueLabel))) : (this.renderPercentField(this.percent(this.value), this.onPercentFieldChange, this.ariaLabel ? `${this.ariaLabel} value` : 'Value')))), h("div", { key: '6628c6c2332590f3580a759903bfc2b817ec1ef6', class: "bs-slider__row" }, this.showLabel && (h("span", { key: 'ecda7ec3285991312fbd0fba003294ba94fa8777', part: "bound", class: "bs-slider__bound" }, this.min)), isRange ? this.renderRangeThumbs() : this.renderSingleThumb(), this.showLabel && (h("span", { key: '3db1ee50efbfe1d14aae2609997bbd589710f2d1', part: "bound", class: "bs-slider__bound" }, this.max)))));
236
+ return (h("div", { key: 'edb31a417eff920fb2fbff7cd26620629038449b', class: rootClasses, "aria-disabled": this.disabled ? 'true' : undefined }, this.showLabel && (h("div", { key: '8732ee01cd1441c0a715b45257ac560b062fc384', class: "bs-slider__header" }, h("span", { key: '25440a9c9bee46d3c82c1eda056e24b7e92e8302', id: "bs-slider-label", part: "label", class: "bs-slider__label" }, this.label), isRange ? (h("span", { class: "bs-slider__value-fields" }, this.renderPercentField(this.percent(this.effectiveValueStart), this.onStartPercentFieldChange, this.ariaLabel ?? this.startValueLabel), h("span", { class: "bs-slider__separator" }, "\u2013"), this.renderPercentField(this.percent(this.effectiveValueEnd), this.onEndPercentFieldChange, this.ariaLabel ? `${this.ariaLabel} end` : this.endValueLabel))) : (this.renderPercentField(this.percent(this.value), this.onPercentFieldChange, this.ariaLabel ? `${this.ariaLabel} value` : 'Value')))), h("div", { key: '9fcd6e0729266f1c38719347f6b48590788fb8c5', class: "bs-slider__row" }, this.showLabel && (h("span", { key: 'c55a68e9244d1ab2102d6c90d31b35df49f6119c', part: "bound", class: "bs-slider__bound" }, this.min)), isRange ? this.renderRangeThumbs() : this.renderSingleThumb(), this.showLabel && (h("span", { key: '1140fda48f69433161dc2fd1e65f18d1f09f2ed9', part: "bound", class: "bs-slider__bound" }, this.max)))));
237
237
  }
238
238
  static get is() { return "bs-slider"; }
239
239
  static get encapsulation() { return "shadow"; }
@@ -1,4 +1,5 @@
1
1
  import { render, h, describe, it, expect } from "@stencil/vitest";
2
+ import { contrastRatio, withTheme } from "../../test/helpers/contrast";
2
3
  describe('bs-snackbar', () => {
3
4
  it('defaults to the "default" variant', async () => {
4
5
  const { root } = await render(h("bs-snackbar", null, "Files uploaded successfully."));
@@ -97,4 +98,25 @@ describe('bs-snackbar', () => {
97
98
  expect(container).toEqualAttribute('aria-live', 'assertive');
98
99
  });
99
100
  });
101
+ describe('action button contrast (#39)', () => {
102
+ for (const theme of ['light', 'dark']) {
103
+ for (const variant of ['default', 'info', 'warning', 'success', 'error']) {
104
+ it(`${variant} / ${theme}: action label >= 4.5:1 on its surface; default border equals label`, async () => {
105
+ await withTheme(theme, async () => {
106
+ const { root } = await render(h("bs-snackbar", { variant: variant, actionLabel: "Undo" }, "Saved"));
107
+ const bar = getComputedStyle(root.shadowRoot.querySelector('.bs-snackbar'));
108
+ const btn = root.shadowRoot.querySelector('bs-button').shadowRoot.querySelector('button');
109
+ const cs = getComputedStyle(btn);
110
+ const fill = cs.backgroundColor !== 'rgba(0, 0, 0, 0)' ? cs.backgroundColor : bar.backgroundColor;
111
+ // Translucent surfaces (dark inverse) sit on the page: black in dark, white in light.
112
+ const backdrop = theme === 'dark' ? 'rgb(0, 0, 0)' : 'rgb(255, 255, 255)';
113
+ expect(contrastRatio(cs.color, fill, backdrop)).toBeGreaterThanOrEqual(4.5);
114
+ if (variant === 'default') {
115
+ expect(cs.borderTopColor).toBe(cs.color);
116
+ }
117
+ });
118
+ });
119
+ }
120
+ }
121
+ });
100
122
  });
@@ -21,6 +21,8 @@
21
21
  * @prop --bs-snackbar-text-success: Icon/message/close color, variant="success". Aliased to --bs-text-success.
22
22
  * @prop --bs-snackbar-surface-error: Bar background, variant="error". Aliased to --bs-color-error-container.
23
23
  * @prop --bs-snackbar-text-error: Icon/message/close color, variant="error". Aliased to --bs-text-error.
24
+ * @prop --bs-snackbar-action-color: Action button label AND border colour on the dark default bar (outlined/subtle action). Aliased to --bs-text-inverse.
25
+ * @prop --bs-snackbar-action-hover: Action button hover/pressed fill on the dark default bar. A translucent mix of --bs-snackbar-action-color.
24
26
  * @prop --bs-snackbar-spinner-track: Loading spinner's background ring. Aliased to --bs-neutral-200.
25
27
  *
26
28
  * The action/close buttons are composed from bs-button/bs-icon-button (see bs-snackbar.tsx) --
@@ -66,6 +68,9 @@
66
68
  --bs-snackbar-text-error: var(--bs-text-error);
67
69
 
68
70
  --bs-snackbar-spinner-track: var(--bs-neutral-200);
71
+
72
+ --bs-snackbar-action-color: var(--bs-text-inverse);
73
+ --bs-snackbar-action-hover: color-mix(in srgb, var(--bs-snackbar-action-color) 16%, transparent);
69
74
  }
70
75
 
71
76
  .bs-snackbar {
@@ -174,3 +179,21 @@
174
179
  (see bs-snackbar.tsx) instead of hand-rolled <button> markup -- all the button-level styling
175
180
  (fill colors, hover/pressed states, focus rings, and slotted-icon sizing) lives in those
176
181
  components' own CSS, so there's nothing left to style here. */
182
+
183
+ /* Dark default bar (#39): the outlined/subtle action's label AND border use the same inverse token
184
+ (the default blue border/label pair has poor contrast on the dark surface). Hover, pressed and
185
+ focus stay defined from the same token. Coloured variants keep bs-button's own filled variants,
186
+ whose on-action label is already high contrast on their fill. */
187
+ .bs-snackbar--default bs-button {
188
+ --bs-button-outlined-color: var(--bs-snackbar-action-color);
189
+ --bs-button-outlined-border: var(--bs-snackbar-action-color);
190
+ --bs-button-outlined-border-hover: var(--bs-snackbar-action-color);
191
+ --bs-button-outlined-border-pressed: var(--bs-snackbar-action-color);
192
+ --bs-button-outlined-text-hover: var(--bs-snackbar-action-color);
193
+ --bs-button-outlined-container: var(--bs-snackbar-action-hover);
194
+ --bs-button-outlined-focus: var(--bs-snackbar-action-color);
195
+ --bs-button-subtle-color: var(--bs-snackbar-action-color);
196
+ --bs-button-subtle-hover: var(--bs-snackbar-action-hover);
197
+ --bs-button-subtle-pressed: var(--bs-snackbar-action-hover);
198
+ --bs-button-subtle-focus: var(--bs-snackbar-action-color);
199
+ }
@@ -67,7 +67,7 @@ export class BsSnackbar {
67
67
  this.bsDismiss.emit();
68
68
  };
69
69
  render() {
70
- return (h("div", { key: '26aad3204c2d6ca34162da66a173afab22663973', part: "container", class: `bs-snackbar bs-snackbar--${this.variant}`, role: "status", "aria-live": this.variant === 'error' ? 'assertive' : 'polite' }, h("div", { key: '8837bc51a479fbd276b2c02fccf98eb3e6683801', class: "bs-snackbar__content" }, h("span", { key: '791564815c28aebeabff97b6b113f04acc4fa0b6', part: "icon", class: "bs-snackbar__icon", "aria-hidden": "true" }, this.loading ? h("span", { class: "bs-snackbar__spinner" }) : h(CheckCircleIcon, null)), h("span", { key: '28920c114f18f996d0dc4778d4de2ff523626c99', part: "message", class: "bs-snackbar__message" }, h("slot", { key: '4bf02f4ad00ab5a3def30c066648b4df55bf7457' }))), h("div", { key: '7f3c619ba2164e8e7eb780c737b410a50fdf813b', class: "bs-snackbar__actions" }, this.actionLabel && (h("bs-button", { key: '43886c3acaef928d08cf76d8d4660df6100f1ba3', part: "action", variant: this.actionVariant ?? ACTION_VARIANT[this.variant], size: "sm", onClick: this.onAction }, this.actionLabel)), !this.hideClose && (h("bs-icon-button", { key: 'd28c20079af83708865ad4b6ba72a65de2a1d458', part: "close", variant: "subtle", size: "md", ariaLabel: "Dismiss", onClick: this.onDismiss }, h(CloseIcon, { key: '7f9df3eef9dcf22f587b69e4ecd36566876c29b9' }))))));
70
+ return (h("div", { key: 'e0e55c6a5c3de86ef00ac24c9050df32d837fde1', part: "container", class: `bs-snackbar bs-snackbar--${this.variant}`, role: "status", "aria-live": this.variant === 'error' ? 'assertive' : 'polite' }, h("div", { key: '229c3d183ac1fe74f81bbbdd96def0eeb64a4e45', class: "bs-snackbar__content" }, h("span", { key: 'af87602a2346ed594c559a4ddc73dfa463f8d849', part: "icon", class: "bs-snackbar__icon", "aria-hidden": "true" }, this.loading ? h("span", { class: "bs-snackbar__spinner" }) : h(CheckCircleIcon, null)), h("span", { key: '1b19b6ac5560905902999a9cdfaca75afab57731', part: "message", class: "bs-snackbar__message" }, h("slot", { key: '9192722d75632f0eabe2200f72a9a828dc0137df' }))), h("div", { key: 'df8a454adb4bf591908a50f2ab67513fe12c00a2', class: "bs-snackbar__actions" }, this.actionLabel && (h("bs-button", { key: '50a8f6a4cd75a2fc22150bf14b15e0dce665104f', part: "action", variant: this.actionVariant ?? ACTION_VARIANT[this.variant], size: "sm", onClick: this.onAction }, this.actionLabel)), !this.hideClose && (h("bs-icon-button", { key: '9c5358e0094800a6e0085ddf7ca8e98fc2cf4d14', part: "close", variant: "subtle", size: "md", ariaLabel: "Dismiss", onClick: this.onDismiss }, h(CloseIcon, { key: 'b00d5ce56c2d40a3a612e4506f5c1c5ccc0859a9' }))))));
71
71
  }
72
72
  static get is() { return "bs-snackbar"; }
73
73
  static get encapsulation() { return "shadow"; }
@@ -52,9 +52,9 @@ export class BsSourceLink {
52
52
  };
53
53
  render() {
54
54
  const inner = [
55
- h("bs-ripple", { key: '2ddd937da894bc3584b82489e35d41167c19cb6c', part: "ripple" }),
56
- h("span", { key: 'd1141377078beec80d8726b1633ea9261bce215d', class: "bs-source-link__left" }, h("span", { key: '75d04109faa8168ba271c8bfc2cfd15abf02fb57', class: "bs-source-link__filename-row" }, h("span", { key: '50f28021063c49b0ccc7348e7b0b9cd6ca0749b7', part: "icon", class: "bs-source-link__icon" }, h("slot", { key: 'aca4ff56e585d65d2b38d0b1f8634d56d521b549', name: "icon" }, h(FileTextIcon, { key: 'e89b337ded8658b2b76ba59e6ea79e70763ddb72' }))), h("p", { key: '5d9cdf3618072784aeb9bd067ae505b57afa625c', part: "filename", class: "bs-source-link__filename" }, this.fileName)), h("span", { key: '35d6d485989679eb05b6fcf2096477456e6b7bc0', class: "bs-source-link__meta" }, this.sourceName && (h("span", { key: 'e3ffae28c3ed65d255961c172eb823d52583c7b2', part: "source", class: "bs-source-link__source" }, this.sourceName)), this.sourceName && this.version && h("span", { key: 'c460e9ccfa2d92b11d8bb2a1e87fcedc94d392ae', class: "bs-source-link__dot", "aria-hidden": "true" }), this.version && (h("span", { key: '9a33d16c96a6d904dd1b69169170da0d0801b9f1', part: "version", class: "bs-source-link__version" }, this.version)))),
57
- h("span", { key: 'c2f42b73b59ae97bb8e95e80c20a2038826329bf', part: "arrow", class: "bs-source-link__arrow", "aria-hidden": "true" }, h(ArrowUpRightIcon, { key: '61d67aaa0a4382ecb12ed49d5716e1c4385c6af5' })),
55
+ h("bs-ripple", { key: '075746e101103adfdf0a18aef1e0149b137fd542', part: "ripple" }),
56
+ h("span", { key: '466a693b6abe05191356d81e86cc60e0391171e3', class: "bs-source-link__left" }, h("span", { key: 'e8b570d2f99693271492d333d0c7f49e68ee39a9', class: "bs-source-link__filename-row" }, h("span", { key: '9e88d1377a38deb11bec9de4e0715d3ad2ce97c2', part: "icon", class: "bs-source-link__icon" }, h("slot", { key: 'bf8bd319bea1f81e623e1abd6d17700fe65979a5', name: "icon" }, h(FileTextIcon, { key: 'ed754e533962bfe6354d4a3350495b0838886ec0' }))), h("p", { key: 'b623db1019d63064708896a629c0a7f5db406453', part: "filename", class: "bs-source-link__filename" }, this.fileName)), h("span", { key: '97f3d0841d0650227cfa50e5301ae5bfffb528ff', class: "bs-source-link__meta" }, this.sourceName && (h("span", { key: '857afee71f6b359f7354362427930cc7ae3ebf52', part: "source", class: "bs-source-link__source" }, this.sourceName)), this.sourceName && this.version && h("span", { key: '0ce6a6368f9b550f6122598e4b259af813728410', class: "bs-source-link__dot", "aria-hidden": "true" }), this.version && (h("span", { key: 'f0d6d7be2db179ad3f0eed720df04b082c856da2', part: "version", class: "bs-source-link__version" }, this.version)))),
57
+ h("span", { key: '704fbe31e50ba22c8fe8703262d4050377336f07', part: "arrow", class: "bs-source-link__arrow", "aria-hidden": "true" }, h(ArrowUpRightIcon, { key: 'b7e4f15c4f5818db70ab7ae9bb4b94544b971f68' })),
58
58
  ];
59
59
  return this.href ? (h("a", { class: "bs-source-link", href: this.href, target: this.target, rel: "noopener noreferrer", onClick: this.onClick }, inner)) : (h("button", { type: "button", class: "bs-source-link", onClick: this.onClick }, inner));
60
60
  }
@@ -30,7 +30,7 @@ export class BsSpinner {
30
30
  label;
31
31
  render() {
32
32
  const hasLabel = !!this.label;
33
- return (h("span", { key: '17b3ac21aefe35279e52717c529bcba6d2ae7b75', part: "container", class: `bs-spinner bs-spinner--${this.size}`, role: hasLabel ? 'status' : undefined, "aria-label": hasLabel ? this.label : undefined, "aria-hidden": hasLabel ? undefined : 'true' }, h("svg", { key: '8ca1165795b8fadb7ea3c3c8228fc6f24d3ce3b2', part: "svg", class: "bs-spinner__svg", viewBox: "0 0 24 24", fill: "none", focusable: "false" }, h("circle", { key: '07d9b05e6e6f11e742bdbeea99e7f31322696363', class: "bs-spinner__track", cx: "12", cy: "12", r: "9", "stroke-width": "3" }), h("path", { key: '83d83f51d3c89cc3997950ff94e4911c6d1c0748', class: "bs-spinner__arc", d: "M12 3a9 9 0 0 1 9 9", "stroke-width": "3", "stroke-linecap": "round" }))));
33
+ return (h("span", { key: '536b5a9eeee4583c4a6e513deb458baa0c2351c7', part: "container", class: `bs-spinner bs-spinner--${this.size}`, role: hasLabel ? 'status' : undefined, "aria-label": hasLabel ? this.label : undefined, "aria-hidden": hasLabel ? undefined : 'true' }, h("svg", { key: '2daa95caf00c24adfbb181b54c510262494b51ae', part: "svg", class: "bs-spinner__svg", viewBox: "0 0 24 24", fill: "none", focusable: "false" }, h("circle", { key: '27f9997a334a11d735a42ff72a5d6b2293f45087', class: "bs-spinner__track", cx: "12", cy: "12", r: "9", "stroke-width": "3" }), h("path", { key: '3d82ac0c874c564dc6383161c0b6b1b293370b88', class: "bs-spinner__arc", d: "M12 3a9 9 0 0 1 9 9", "stroke-width": "3", "stroke-linecap": "round" }))));
34
34
  }
35
35
  static get is() { return "bs-spinner"; }
36
36
  static get encapsulation() { return "shadow"; }
@@ -215,7 +215,7 @@ export class BsSplitPane {
215
215
  nodes.push(h("div", { part: "divider", class: { 'bs-split-pane__divider': true, 'bs-split-pane__divider--active': this.draggingIndex === i, 'bs-split-pane__divider--static': !this.resizable }, role: "separator", "aria-orientation": dividerOrientation, "aria-label": this.dividerLabel, "aria-valuemin": 0, "aria-valuemax": 100, "aria-valuenow": this.percentFor(i), tabindex: this.resizable ? 0 : undefined, onPointerDown: this.onPointerDown(i), onPointerMove: this.onPointerMove, onPointerUp: this.onPointerUp, onPointerCancel: this.onPointerUp, onKeyDown: this.onKeyDown(i) }, h("span", { part: "divider-thumb", class: "bs-split-pane__thumb" })));
216
216
  }
217
217
  }
218
- return (h("div", { key: 'c427313cbfcd736d044ced8e07658ad6de6ed0bd', part: "container", class: `bs-split-pane bs-split-pane--${this.orientation}` }, nodes));
218
+ return (h("div", { key: 'a8907feecf4f151d88192eea0fbdffeedac25d09', part: "container", class: `bs-split-pane bs-split-pane--${this.orientation}` }, nodes));
219
219
  }
220
220
  static get is() { return "bs-split-pane"; }
221
221
  static get encapsulation() { return "shadow"; }
@@ -81,7 +81,7 @@ export class BsStack {
81
81
  parts.push(h("slot", { name: `bs-stack-item-${i}`, onSlotchange: this.sync }));
82
82
  }
83
83
  }
84
- return (h(Host, { key: '39852df38f3638826e331e5e1028fa069e15322c', style: { '--bs-stack-gap-token': `var(--bs-spacing-${gap})` } }, h("slot", { key: '9e303ef2361fd7b804aea37b1b5bf4269f480b2d', onSlotchange: this.sync }), parts));
84
+ return (h(Host, { key: '778684be1eb1af11919fd4d374031f03bdea3f30', style: { '--bs-stack-gap-token': `var(--bs-spacing-${gap})` } }, h("slot", { key: '43efd637eb76a62d3c3591158f4e17edbe6f5907', onSlotchange: this.sync }), parts));
85
85
  }
86
86
  static get is() { return "bs-stack"; }
87
87
  static get encapsulation() { return "shadow"; }
@@ -0,0 +1,49 @@
1
+ import { render, h, describe, it, expect } from "@stencil/vitest";
2
+ import { assertShadowParts, assertCssCustomProperties, runAxeCheck } from "../../test/helpers/conventions";
3
+ const q = (el, s) => el.shadowRoot.querySelector(s);
4
+ describe('bs-stat', () => {
5
+ it('renders label and value inside a bs-card with dl semantics', async () => {
6
+ const { root } = await render(h("bs-stat", { label: "Active users", value: "1,284" }));
7
+ expect(q(root, '[part="container"]').tagName).toBe('BS-CARD');
8
+ expect(q(root, 'dl dt [part="label"]').textContent).toBe('Active users');
9
+ expect(q(root, 'dl dd [part="value"]').textContent).toBe('1,284');
10
+ expect(q(root, '[part="trend"]')).toBeNull();
11
+ assertShadowParts(root.shadowRoot, ['container', 'label', 'value']);
12
+ assertCssCustomProperties(root, ['--bs-stat-value-size', '--bs-stat-label-color', '--bs-stat-trend-color-positive']);
13
+ });
14
+ it.each([
15
+ ['up', 'positive', 'Increase of'],
16
+ ['down', 'negative', 'Decrease of'],
17
+ ['neutral', 'neutral', 'No change'],
18
+ ])('trend %s has %s styling and accessible text', async (trend, intent, text) => {
19
+ const { root } = await render(h("bs-stat", { label: "L", value: "1", trend: trend, trendValue: "12%" }));
20
+ const t = q(root, '[part="trend"]');
21
+ expect(t.classList.contains(`bs-stat__trend--${intent}`)).toBe(true);
22
+ expect(t.textContent).toContain(text);
23
+ expect(t.textContent).toContain('12%');
24
+ expect(q(root, '[part="trend-icon"]').getAttribute('aria-hidden')).toBe('true');
25
+ });
26
+ it('trendIntent overrides the direction colour (e.g. churn going up)', async () => {
27
+ const { root } = await render(h("bs-stat", { label: "Churn", value: "4%", trend: "up", trendValue: "1%", trendIntent: "negative" }));
28
+ expect(q(root, '[part="trend"]').classList.contains('bs-stat__trend--negative')).toBe(true);
29
+ expect(q(root, '[part="trend"]').textContent).toContain('Increase of');
30
+ });
31
+ it('uses custom trend labels', async () => {
32
+ const { root } = await render(h("bs-stat", { label: "L", value: "1", trend: "up", trendValue: "2", trendUpLabel: "Op med" }));
33
+ expect(q(root, '[part="trend"]').textContent).toContain('Op med');
34
+ });
35
+ it('passes surface to bs-card', async () => {
36
+ const { root } = await render(h("bs-stat", { label: "L", value: "1", surface: "base" }));
37
+ expect(q(root, '[part="container"]').getAttribute('surface')).toBe('base');
38
+ });
39
+ it('shows the icon wrapper only with a slotted icon', async () => {
40
+ const { root } = await render(h("bs-stat", { label: "L", value: "1" }, h("svg", { slot: "icon", viewBox: "0 0 20 20" })));
41
+ expect(getComputedStyle(q(root, '.bs-stat__icon')).display).not.toBe('none');
42
+ const { root: plain } = await render(h("bs-stat", { label: "L", value: "1" }));
43
+ expect(getComputedStyle(q(plain, '.bs-stat__icon')).display).toBe('none');
44
+ });
45
+ it('passes axe', async () => {
46
+ const { root } = await render(h("div", null, h("bs-stat", { label: "Active users", value: "1,284", trend: "up", trendValue: "12%" }), h("bs-stat", { label: "Churn", value: "4%", trend: "down", trendValue: "1%" }), h("bs-stat", { label: "Revenue", value: "$2M", trend: "neutral" })));
47
+ await runAxeCheck(root);
48
+ });
49
+ });
@@ -0,0 +1,116 @@
1
+ /**
2
+ * @prop --bs-stat-gap: Gap between label, value and extra content. Aliased to --bs-spacing-50.
3
+ * @prop --bs-stat-padding: Card padding. Aliased to --bs-spacing-200 (forwarded to --bs-card-padding).
4
+ * @prop --bs-stat-label-color: Aliased to --bs-text-secondary.
5
+ * @prop --bs-stat-label-size: Aliased to --bs-font-size-sm.
6
+ * @prop --bs-stat-value-color: Aliased to --bs-text-default.
7
+ * @prop --bs-stat-value-size: Aliased to --bs-font-size-4xl.
8
+ * @prop --bs-stat-value-weight: Aliased to --bs-font-weight-bold.
9
+ * @prop --bs-stat-trend-size: Aliased to --bs-font-size-sm.
10
+ * @prop --bs-stat-trend-color-positive: Aliased to --bs-text-success.
11
+ * @prop --bs-stat-trend-color-negative: Aliased to --bs-text-error.
12
+ * @prop --bs-stat-trend-color-neutral: Aliased to --bs-text-secondary.
13
+ */
14
+ :host {
15
+ display: block;
16
+ --bs-stat-gap: var(--bs-spacing-50);
17
+ --bs-stat-padding: var(--bs-spacing-200);
18
+ --bs-stat-label-color: var(--bs-text-secondary);
19
+ --bs-stat-label-size: var(--bs-font-size-sm);
20
+ --bs-stat-value-color: var(--bs-text-default);
21
+ --bs-stat-value-size: var(--bs-font-size-4xl);
22
+ --bs-stat-value-weight: var(--bs-font-weight-bold);
23
+ --bs-stat-trend-size: var(--bs-font-size-sm);
24
+ --bs-stat-trend-color-positive: var(--bs-text-success);
25
+ --bs-stat-trend-color-negative: var(--bs-text-error);
26
+ --bs-stat-trend-color-neutral: var(--bs-text-secondary);
27
+ }
28
+
29
+ .bs-stat {
30
+ --bs-card-padding: var(--bs-stat-padding);
31
+ }
32
+
33
+ .bs-stat__body {
34
+ display: flex;
35
+ flex-direction: column;
36
+ gap: var(--bs-stat-gap);
37
+ margin: 0;
38
+ font-family: inherit;
39
+ }
40
+ .bs-stat__body dd,
41
+ .bs-stat__body dt {
42
+ margin: 0;
43
+ }
44
+
45
+ .bs-stat__head {
46
+ display: flex;
47
+ align-items: center;
48
+ gap: var(--bs-spacing-100);
49
+ color: var(--bs-stat-label-color);
50
+ font-size: var(--bs-stat-label-size);
51
+ line-height: 1.4;
52
+ }
53
+ .bs-stat__icon {
54
+ display: none;
55
+ }
56
+ .bs-stat__icon--visible {
57
+ display: inline-flex;
58
+ }
59
+ .bs-stat__icon ::slotted(*) {
60
+ width: 20px;
61
+ height: 20px;
62
+ }
63
+
64
+ .bs-stat__figure {
65
+ display: flex;
66
+ align-items: baseline;
67
+ flex-wrap: wrap;
68
+ column-gap: var(--bs-spacing-150);
69
+ }
70
+ .bs-stat__value {
71
+ color: var(--bs-stat-value-color);
72
+ font-size: var(--bs-stat-value-size);
73
+ font-weight: var(--bs-stat-value-weight);
74
+ line-height: 1.2;
75
+ }
76
+
77
+ .bs-stat__trend {
78
+ display: inline-flex;
79
+ align-items: center;
80
+ gap: var(--bs-spacing-25);
81
+ font-size: var(--bs-stat-trend-size);
82
+ font-weight: var(--bs-font-weight-semibold);
83
+ }
84
+ .bs-stat__trend--positive {
85
+ color: var(--bs-stat-trend-color-positive);
86
+ }
87
+ .bs-stat__trend--negative {
88
+ color: var(--bs-stat-trend-color-negative);
89
+ }
90
+ .bs-stat__trend--neutral {
91
+ color: var(--bs-stat-trend-color-neutral);
92
+ }
93
+ .bs-stat__trend-icon {
94
+ width: 16px;
95
+ height: 16px;
96
+ flex-shrink: 0;
97
+ }
98
+ .bs-stat__sr {
99
+ position: absolute;
100
+ width: 1px;
101
+ height: 1px;
102
+ margin: -1px;
103
+ padding: 0;
104
+ overflow: hidden;
105
+ clip: rect(0 0 0 0);
106
+ white-space: nowrap;
107
+ border: 0;
108
+ }
109
+
110
+ .bs-stat__extra {
111
+ color: var(--bs-stat-label-color);
112
+ font-size: var(--bs-stat-label-size);
113
+ }
114
+ .bs-stat__extra:not(.bs-stat__extra--visible) {
115
+ display: none;
116
+ }