@brandsync/wc 1.20.1 → 1.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (587) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/REFERENCE.md +2 -1
  3. package/custom-elements.json +157 -6
  4. package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
  5. package/dist/brandsync-wc/{p-dd3499ab.entry.js → p-018ab194.entry.js} +1 -1
  6. package/dist/brandsync-wc/{p-d6600c7c.entry.js → p-020a274b.entry.js} +1 -1
  7. package/dist/brandsync-wc/{p-2a96ce61.entry.js → p-0276bca4.entry.js} +1 -1
  8. package/dist/brandsync-wc/p-03acdd56.entry.js +1 -0
  9. package/dist/brandsync-wc/{p-32d83763.entry.js → p-06a5fe99.entry.js} +1 -1
  10. package/dist/brandsync-wc/{p-1a549f9a.entry.js → p-0a0798c4.entry.js} +1 -1
  11. package/dist/brandsync-wc/{p-ecb1a27d.entry.js → p-0b92d0d7.entry.js} +1 -1
  12. package/dist/brandsync-wc/{p-319b7baa.entry.js → p-0be65af0.entry.js} +1 -1
  13. package/dist/brandsync-wc/{p-0ebb60a8.entry.js → p-0ce29fc2.entry.js} +1 -1
  14. package/dist/brandsync-wc/{p-6ae75ed0.entry.js → p-1436ae47.entry.js} +1 -1
  15. package/dist/brandsync-wc/{p-66f1ca2e.entry.js → p-181a8372.entry.js} +1 -1
  16. package/dist/brandsync-wc/{p-f71d7582.entry.js → p-1bd3756c.entry.js} +1 -1
  17. package/dist/brandsync-wc/p-1bf91b43.entry.js +1 -0
  18. package/dist/brandsync-wc/p-1c2402eb.entry.js +1 -0
  19. package/dist/brandsync-wc/{p-ff85a9d8.entry.js → p-214b32bb.entry.js} +1 -1
  20. package/dist/brandsync-wc/{p-4810bcc8.entry.js → p-21a592a4.entry.js} +1 -1
  21. package/dist/brandsync-wc/{p-a3c7b4e7.entry.js → p-23e3bffe.entry.js} +1 -1
  22. package/dist/brandsync-wc/{p-e8027825.entry.js → p-284e4e1e.entry.js} +1 -1
  23. package/dist/brandsync-wc/{p-78e4dd14.entry.js → p-2c167f83.entry.js} +1 -1
  24. package/dist/brandsync-wc/p-2e2dc322.entry.js +1 -0
  25. package/dist/brandsync-wc/{p-f22d2db8.entry.js → p-37da7465.entry.js} +1 -1
  26. package/dist/brandsync-wc/{p-2621b1b2.entry.js → p-38f4552f.entry.js} +1 -1
  27. package/dist/brandsync-wc/{p-23367a4d.entry.js → p-39afd9b8.entry.js} +1 -1
  28. package/dist/brandsync-wc/{p-28a34097.entry.js → p-3a13747b.entry.js} +1 -1
  29. package/dist/brandsync-wc/{p-fc7df528.entry.js → p-3b3a9587.entry.js} +1 -1
  30. package/dist/brandsync-wc/{p-50a154b8.entry.js → p-3de7989e.entry.js} +1 -1
  31. package/dist/brandsync-wc/{p-d555984e.entry.js → p-43a792a3.entry.js} +1 -1
  32. package/dist/brandsync-wc/{p-bfdd135b.entry.js → p-4907f66e.entry.js} +1 -1
  33. package/dist/brandsync-wc/{p-9e93b482.entry.js → p-4a8c2eca.entry.js} +1 -1
  34. package/dist/brandsync-wc/{p-89dbb3c8.entry.js → p-4ff5bc4b.entry.js} +1 -1
  35. package/dist/brandsync-wc/{p-a6cbb6c6.entry.js → p-51e9d375.entry.js} +1 -1
  36. package/dist/brandsync-wc/{p-2f58b161.entry.js → p-5399e163.entry.js} +1 -1
  37. package/dist/brandsync-wc/{p-e2268c96.entry.js → p-55db935b.entry.js} +1 -1
  38. package/dist/brandsync-wc/p-5f26d601.entry.js +1 -0
  39. package/dist/brandsync-wc/{p-409cf56b.entry.js → p-60e4e07a.entry.js} +1 -1
  40. package/dist/brandsync-wc/{p-08d08dc9.entry.js → p-645e1a78.entry.js} +1 -1
  41. package/dist/brandsync-wc/{p-6adc9c4f.entry.js → p-682b9f3e.entry.js} +1 -1
  42. package/dist/brandsync-wc/{p-08a5e178.entry.js → p-697de2b2.entry.js} +1 -1
  43. package/dist/brandsync-wc/{p-e18cb639.entry.js → p-6aa3dcef.entry.js} +1 -1
  44. package/dist/brandsync-wc/{p-d8a299a9.entry.js → p-6b11aebb.entry.js} +1 -1
  45. package/dist/brandsync-wc/{p-a1d34ff3.entry.js → p-6d18ba79.entry.js} +1 -1
  46. package/dist/brandsync-wc/p-6fcfd7d7.entry.js +1 -0
  47. package/dist/brandsync-wc/{p-69489f45.entry.js → p-71ea6c1c.entry.js} +1 -1
  48. package/dist/brandsync-wc/{p-b0f4cbca.entry.js → p-74dd9146.entry.js} +1 -1
  49. package/dist/brandsync-wc/{p-8c83cc99.entry.js → p-75ec385a.entry.js} +1 -1
  50. package/dist/brandsync-wc/{p-ca8a1e51.entry.js → p-78fdcd05.entry.js} +1 -1
  51. package/dist/brandsync-wc/{p-eb4ad606.entry.js → p-7a291cfc.entry.js} +1 -1
  52. package/dist/brandsync-wc/{p-baca1abf.entry.js → p-7f3c8416.entry.js} +1 -1
  53. package/dist/brandsync-wc/{p-8d674f11.entry.js → p-7f50ae81.entry.js} +1 -1
  54. package/dist/brandsync-wc/{p-53b1c545.entry.js → p-82533674.entry.js} +1 -1
  55. package/dist/brandsync-wc/{p-d263deec.entry.js → p-83977d40.entry.js} +1 -1
  56. package/dist/brandsync-wc/{p-806bb471.entry.js → p-851c1498.entry.js} +1 -1
  57. package/dist/brandsync-wc/{p-3f6be3f7.entry.js → p-87b91d38.entry.js} +1 -1
  58. package/dist/brandsync-wc/{p-b7545d9b.entry.js → p-8a85e144.entry.js} +1 -1
  59. package/dist/brandsync-wc/{p-c0e5db3d.entry.js → p-9301f01e.entry.js} +1 -1
  60. package/dist/brandsync-wc/{p-c39e6be9.entry.js → p-978c46d9.entry.js} +1 -1
  61. package/dist/brandsync-wc/{p-fa894893.entry.js → p-9988ebab.entry.js} +1 -1
  62. package/dist/brandsync-wc/p-9a45899c.entry.js +1 -0
  63. package/dist/brandsync-wc/{p-debc308d.entry.js → p-9bd0c4a7.entry.js} +1 -1
  64. package/dist/brandsync-wc/{p-4d6f2fec.entry.js → p-9c1ea6f0.entry.js} +1 -1
  65. package/dist/brandsync-wc/{p-aa99b1f8.entry.js → p-9c353a03.entry.js} +1 -1
  66. package/dist/brandsync-wc/{p-1daf48b1.entry.js → p-9d90d3b8.entry.js} +1 -1
  67. package/dist/brandsync-wc/{p-5b48a6c7.entry.js → p-a59b4c08.entry.js} +1 -1
  68. package/dist/brandsync-wc/{p-39c50762.entry.js → p-ad53d283.entry.js} +1 -1
  69. package/dist/brandsync-wc/{p-4f19e8d8.entry.js → p-ad9c3eea.entry.js} +1 -1
  70. package/dist/brandsync-wc/{p-040d4755.entry.js → p-aeb99b7d.entry.js} +1 -1
  71. package/dist/brandsync-wc/{p-70924681.entry.js → p-b145997c.entry.js} +1 -1
  72. package/dist/brandsync-wc/{p-90442341.entry.js → p-b6350eab.entry.js} +1 -1
  73. package/dist/brandsync-wc/{p-f229f59a.entry.js → p-b90c8b7d.entry.js} +1 -1
  74. package/dist/brandsync-wc/{p-a86560e6.entry.js → p-b93ce581.entry.js} +1 -1
  75. package/dist/brandsync-wc/p-ba933f3b.entry.js +1 -0
  76. package/dist/brandsync-wc/{p-6db03e96.entry.js → p-bb1b2350.entry.js} +1 -1
  77. package/dist/brandsync-wc/{p-d67840f5.entry.js → p-bcb09ba4.entry.js} +1 -1
  78. package/dist/brandsync-wc/{p-50ac6889.entry.js → p-bde099fb.entry.js} +1 -1
  79. package/dist/brandsync-wc/{p-e18e45bc.entry.js → p-bef6e54b.entry.js} +1 -1
  80. package/dist/brandsync-wc/{p-520b277a.entry.js → p-bf8da1b5.entry.js} +1 -1
  81. package/dist/brandsync-wc/{p-2210c680.entry.js → p-c36f68a2.entry.js} +1 -1
  82. package/dist/brandsync-wc/{p-1ce4395a.entry.js → p-c4026551.entry.js} +1 -1
  83. package/dist/brandsync-wc/{p-14719554.entry.js → p-c7c3c4ae.entry.js} +1 -1
  84. package/dist/brandsync-wc/{p-eb1b1497.entry.js → p-ca71e180.entry.js} +1 -1
  85. package/dist/brandsync-wc/p-cc664465.entry.js +1 -0
  86. package/dist/brandsync-wc/{p-8a4d64fd.entry.js → p-ce3a762e.entry.js} +1 -1
  87. package/dist/brandsync-wc/{p-452f6c13.entry.js → p-d38394ce.entry.js} +1 -1
  88. package/dist/brandsync-wc/{p-fbd204b6.entry.js → p-d4caa814.entry.js} +1 -1
  89. package/dist/brandsync-wc/{p-47fc5f29.entry.js → p-d8dd2230.entry.js} +1 -1
  90. package/dist/brandsync-wc/{p-13d98ec3.entry.js → p-da091255.entry.js} +1 -1
  91. package/dist/brandsync-wc/{p-fe6f71da.entry.js → p-dd7bb223.entry.js} +1 -1
  92. package/dist/brandsync-wc/{p-548b96f7.entry.js → p-e0d47019.entry.js} +1 -1
  93. package/dist/brandsync-wc/{p-587be2c6.entry.js → p-e8fe79bc.entry.js} +1 -1
  94. package/dist/brandsync-wc/{p-b6dc9234.entry.js → p-e90e4991.entry.js} +1 -1
  95. package/dist/brandsync-wc/{p-338b5e39.entry.js → p-ee4f3b3d.entry.js} +1 -1
  96. package/dist/brandsync-wc/{p-32004fb3.entry.js → p-f43615f7.entry.js} +1 -1
  97. package/dist/brandsync-wc/{p-b1663378.entry.js → p-fca95aae.entry.js} +1 -1
  98. package/dist/cjs/brandsync-wc.cjs.js +1 -1
  99. package/dist/cjs/bs-accordion-group.cjs.entry.js +1 -1
  100. package/dist/cjs/bs-ai-disclaimer.cjs.entry.js +1 -1
  101. package/dist/cjs/bs-ai-greeting.cjs.entry.js +1 -1
  102. package/dist/cjs/bs-ai-thinking.cjs.entry.js +1 -1
  103. package/dist/cjs/bs-app-recent-item_3.cjs.entry.js +4 -4
  104. package/dist/cjs/bs-app-shell.cjs.entry.js +1 -1
  105. package/dist/cjs/bs-attachment-list.cjs.entry.js +1 -1
  106. package/dist/cjs/bs-breadcrumbs.cjs.entry.js +1 -1
  107. package/dist/cjs/bs-button-skeleton.cjs.entry.js +1 -1
  108. package/dist/cjs/bs-button_2.cjs.entry.js +1 -1
  109. package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +1 -1
  110. package/dist/cjs/bs-chatbot-header.cjs.entry.js +1 -1
  111. package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +1 -1
  112. package/dist/cjs/bs-chatbot-sources-drawer.cjs.entry.js +1 -1
  113. package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +1 -1
  114. package/dist/cjs/bs-checkbox-group.cjs.entry.js +8 -3
  115. package/dist/cjs/bs-checkbox-skeleton.cjs.entry.js +1 -1
  116. package/dist/cjs/bs-chip-filter.cjs.entry.js +1 -1
  117. package/dist/cjs/bs-chip-informative.cjs.entry.js +31 -2
  118. package/dist/cjs/bs-chip-input.cjs.entry.js +1 -1
  119. package/dist/cjs/bs-citation-preview.cjs.entry.js +1 -1
  120. package/dist/cjs/bs-command-palette.cjs.entry.js +1 -1
  121. package/dist/cjs/bs-compact-menu-block_2.cjs.entry.js +4 -4
  122. package/dist/cjs/bs-company-switcher.cjs.entry.js +2 -2
  123. package/dist/cjs/bs-composer-status-banner.cjs.entry.js +1 -1
  124. package/dist/cjs/bs-composer.cjs.entry.js +1 -1
  125. package/dist/cjs/bs-container.cjs.entry.js +1 -1
  126. package/dist/cjs/bs-data-table.cjs.entry.js +4 -2
  127. package/dist/cjs/bs-datepicker.cjs.entry.js +1 -1
  128. package/dist/cjs/bs-description-item.cjs.entry.js +1 -1
  129. package/dist/cjs/bs-description-list.cjs.entry.js +1 -1
  130. package/dist/cjs/bs-divider.cjs.entry.js +1 -1
  131. package/dist/cjs/bs-dropdown.cjs.entry.js +1 -1
  132. package/dist/cjs/bs-empty-state.cjs.entry.js +1 -1
  133. package/dist/cjs/bs-error-page.cjs.entry.js +1 -1
  134. package/dist/cjs/bs-file-upload-item.cjs.entry.js +1 -1
  135. package/dist/cjs/bs-file-upload.cjs.entry.js +1 -1
  136. package/dist/cjs/bs-global-search.cjs.entry.js +2 -2
  137. package/dist/cjs/bs-grid.cjs.entry.js +2 -2
  138. package/dist/cjs/bs-heading.cjs.entry.js +1 -1
  139. package/dist/cjs/bs-icon-button.cjs.entry.js +1 -1
  140. package/dist/cjs/bs-icon-tile.cjs.entry.js +2 -2
  141. package/dist/cjs/bs-icon.cjs.entry.js +1 -1
  142. package/dist/cjs/bs-inline-tab.cjs.entry.js +1 -1
  143. package/dist/cjs/bs-input_4.cjs.entry.js +9 -6
  144. package/dist/cjs/bs-key-caps.cjs.entry.js +1 -1
  145. package/dist/cjs/bs-key.cjs.entry.js +1 -1
  146. package/dist/cjs/bs-keyboard-shortcuts.cjs.entry.js +2 -2
  147. package/dist/cjs/bs-link.cjs.entry.js +1 -1
  148. package/dist/cjs/bs-list-item.cjs.entry.js +1 -1
  149. package/dist/cjs/bs-list.cjs.entry.js +1 -1
  150. package/dist/cjs/bs-mega-menu.cjs.entry.js +1 -1
  151. package/dist/cjs/bs-message-list.cjs.entry.js +1 -1
  152. package/dist/cjs/bs-message.cjs.entry.js +1 -1
  153. package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +1 -1
  154. package/dist/cjs/bs-navigation-drawer.cjs.entry.js +2 -2
  155. package/dist/cjs/bs-navigation-header.cjs.entry.js +2 -2
  156. package/dist/cjs/bs-page-header.cjs.entry.js +1 -1
  157. package/dist/cjs/bs-pagination.cjs.entry.js +1 -1
  158. package/dist/cjs/bs-popover.cjs.entry.js +1 -1
  159. package/dist/cjs/bs-presence.cjs.entry.js +1 -1
  160. package/dist/cjs/bs-progress-linear.cjs.entry.js +2 -2
  161. package/dist/cjs/bs-progress.cjs.entry.js +2 -2
  162. package/dist/cjs/bs-qr-code.cjs.entry.js +1 -1
  163. package/dist/cjs/bs-radio-group.cjs.entry.js +1 -1
  164. package/dist/cjs/bs-radio.cjs.entry.js +1 -1
  165. package/dist/cjs/bs-search-item.cjs.entry.js +1 -1
  166. package/dist/cjs/bs-select.cjs.entry.js +1 -1
  167. package/dist/cjs/bs-session-timeout.cjs.entry.js +1 -1
  168. package/dist/cjs/bs-shortcut-row.cjs.entry.js +1 -1
  169. package/dist/cjs/bs-skip-link.cjs.entry.js +1 -1
  170. package/dist/cjs/bs-slider.cjs.entry.js +1 -1
  171. package/dist/cjs/bs-snackbar.cjs.entry.js +1 -1
  172. package/dist/cjs/bs-source-link.cjs.entry.js +3 -3
  173. package/dist/cjs/bs-split-pane.cjs.entry.js +27 -2
  174. package/dist/cjs/bs-stack.cjs.entry.js +1 -1
  175. package/dist/cjs/bs-stat.cjs.entry.js +1 -1
  176. package/dist/cjs/bs-stepper-step.cjs.entry.js +1 -1
  177. package/dist/cjs/bs-stepper.cjs.entry.js +1 -1
  178. package/dist/cjs/bs-switch.cjs.entry.js +1 -1
  179. package/dist/cjs/bs-tab_3.cjs.entry.js +3 -3
  180. package/dist/cjs/bs-table-of-contents.cjs.entry.js +1 -1
  181. package/dist/cjs/bs-tag.cjs.entry.js +2 -2
  182. package/dist/cjs/bs-text.cjs.entry.js +1 -1
  183. package/dist/cjs/bs-timepicker.cjs.entry.js +2 -2
  184. package/dist/cjs/bs-toast.cjs.entry.js +1 -1
  185. package/dist/cjs/bs-toggle-button-group.cjs.entry.js +1 -1
  186. package/dist/cjs/bs-toggle-button.cjs.entry.js +9 -1
  187. package/dist/cjs/bs-toolbar.cjs.entry.js +1 -1
  188. package/dist/cjs/bs-tooltip-trigger.cjs.entry.js +1 -1
  189. package/dist/cjs/bs-tooltip.cjs.entry.js +1 -1
  190. package/dist/cjs/bs-tree-item.cjs.entry.js +2 -2
  191. package/dist/cjs/bs-tree.cjs.entry.js +1 -1
  192. package/dist/cjs/loader.cjs.js +1 -1
  193. package/dist/collection/components/bs-accordion/bs-accordion.stories.js +25 -1
  194. package/dist/collection/components/bs-accordion-group/bs-accordion-group.js +1 -1
  195. package/dist/collection/components/bs-ai-disclaimer/bs-ai-disclaimer.js +1 -1
  196. package/dist/collection/components/bs-ai-greeting/bs-ai-greeting.js +1 -1
  197. package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.js +1 -1
  198. package/dist/collection/components/bs-app-recent-item/bs-app-recent-item.js +3 -3
  199. package/dist/collection/components/bs-app-shell/bs-app-shell.js +1 -1
  200. package/dist/collection/components/bs-attachment-list/bs-attachment-list.js +1 -1
  201. package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.js +1 -1
  202. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.js +1 -1
  203. package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +1 -1
  204. package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.js +1 -1
  205. package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.js +1 -1
  206. package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.js +1 -1
  207. package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.js +1 -1
  208. package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js +1 -1
  209. package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.js +1 -1
  210. package/dist/collection/components/bs-checkbox/bs-checkbox.stories.js +25 -1
  211. package/dist/collection/components/bs-checkbox-group/bs-checkbox-group.cmp.test.js +9 -0
  212. package/dist/collection/components/bs-checkbox-group/bs-checkbox-group.css +13 -0
  213. package/dist/collection/components/bs-checkbox-group/bs-checkbox-group.js +28 -3
  214. package/dist/collection/components/bs-chip/bs-chip-filter/bs-chip-filter.js +1 -1
  215. package/dist/collection/components/bs-chip/bs-chip-informative/bs-chip-informative.cmp.test.js +44 -0
  216. package/dist/collection/components/bs-chip/bs-chip-informative/bs-chip-informative.css +30 -0
  217. package/dist/collection/components/bs-chip/bs-chip-informative/bs-chip-informative.js +139 -7
  218. package/dist/collection/components/bs-chip/bs-chip-informative/bs-chip-informative.stories.js +7 -0
  219. package/dist/collection/components/bs-chip/bs-chip-input/bs-chip-input.js +1 -1
  220. package/dist/collection/components/bs-citation-preview/bs-citation-preview.js +1 -1
  221. package/dist/collection/components/bs-command-palette/bs-command-palette.js +1 -1
  222. package/dist/collection/components/bs-compact-menu-block/bs-compact-menu-block.js +1 -1
  223. package/dist/collection/components/bs-company-switcher/bs-company-switcher.js +2 -2
  224. package/dist/collection/components/bs-composer/bs-composer.js +1 -1
  225. package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.js +1 -1
  226. package/dist/collection/components/bs-container/bs-container.js +1 -1
  227. package/dist/collection/components/bs-data-table/bs-data-table.cmp.test.js +9 -0
  228. package/dist/collection/components/bs-data-table/bs-data-table.js +24 -2
  229. package/dist/collection/components/bs-datepicker/bs-datepicker.js +1 -1
  230. package/dist/collection/components/bs-description-item/bs-description-item.js +1 -1
  231. package/dist/collection/components/bs-description-list/bs-description-list.js +1 -1
  232. package/dist/collection/components/bs-divider/bs-divider.js +1 -1
  233. package/dist/collection/components/bs-dropdown/bs-dropdown.js +1 -1
  234. package/dist/collection/components/bs-empty-state/bs-empty-state.js +1 -1
  235. package/dist/collection/components/bs-error-page/bs-error-page.js +1 -1
  236. package/dist/collection/components/bs-file-upload/bs-file-upload.js +1 -1
  237. package/dist/collection/components/bs-file-upload-item/bs-file-upload-item.js +1 -1
  238. package/dist/collection/components/bs-global-search/bs-global-search.js +2 -2
  239. package/dist/collection/components/bs-grid/bs-grid.js +2 -2
  240. package/dist/collection/components/bs-heading/bs-heading.js +1 -1
  241. package/dist/collection/components/bs-icon/bs-icon.js +1 -1
  242. package/dist/collection/components/bs-icon-tile/bs-icon-tile.js +2 -2
  243. package/dist/collection/components/bs-input/bs-input.cmp.test.js +12 -0
  244. package/dist/collection/components/bs-input/bs-input.js +26 -3
  245. package/dist/collection/components/bs-input/bs-input.stories.js +14 -0
  246. package/dist/collection/components/bs-key/bs-key.js +1 -1
  247. package/dist/collection/components/bs-key-caps/bs-key-caps.js +1 -1
  248. package/dist/collection/components/bs-keyboard-shortcuts/bs-keyboard-shortcuts.js +2 -2
  249. package/dist/collection/components/bs-link/bs-link.js +1 -1
  250. package/dist/collection/components/bs-list/bs-list.js +1 -1
  251. package/dist/collection/components/bs-list-item/bs-list-item.js +1 -1
  252. package/dist/collection/components/bs-mega-menu/bs-mega-menu.js +1 -1
  253. package/dist/collection/components/bs-menu/bs-menu.js +1 -1
  254. package/dist/collection/components/bs-menu-block/bs-menu-block.js +3 -3
  255. package/dist/collection/components/bs-menu-item/bs-menu-item.js +1 -1
  256. package/dist/collection/components/bs-message/bs-message.js +1 -1
  257. package/dist/collection/components/bs-message-list/bs-message-list.js +1 -1
  258. package/dist/collection/components/bs-page-header/bs-page-header.js +1 -1
  259. package/dist/collection/components/bs-pagination/bs-pagination.js +1 -1
  260. package/dist/collection/components/bs-popover/bs-popover.js +1 -1
  261. package/dist/collection/components/bs-presence/bs-presence.js +1 -1
  262. package/dist/collection/components/bs-progress/bs-progress.js +2 -2
  263. package/dist/collection/components/bs-progress/bs-progress.stories.js +6 -3
  264. package/dist/collection/components/bs-progress-linear/bs-progress-linear.js +2 -2
  265. package/dist/collection/components/bs-progress-linear/bs-progress-linear.stories.js +7 -5
  266. package/dist/collection/components/bs-qr-code/bs-qr-code.js +1 -1
  267. package/dist/collection/components/bs-radio/bs-radio.js +1 -1
  268. package/dist/collection/components/bs-radio-group/bs-radio-group.js +1 -1
  269. package/dist/collection/components/bs-radio-group/bs-radio-group.stories.js +15 -1
  270. package/dist/collection/components/bs-ripple/bs-ripple.js +1 -1
  271. package/dist/collection/components/bs-search-item/bs-search-item.js +1 -1
  272. package/dist/collection/components/bs-select/bs-select.js +1 -1
  273. package/dist/collection/components/bs-select/bs-select.stories.js +21 -1
  274. package/dist/collection/components/bs-session-timeout/bs-session-timeout.js +1 -1
  275. package/dist/collection/components/bs-shortcut-row/bs-shortcut-row.js +1 -1
  276. package/dist/collection/components/bs-skeleton/bs-skeleton.js +1 -1
  277. package/dist/collection/components/bs-skip-link/bs-skip-link.js +1 -1
  278. package/dist/collection/components/bs-slider/bs-slider.js +1 -1
  279. package/dist/collection/components/bs-snackbar/bs-snackbar.js +1 -1
  280. package/dist/collection/components/bs-source-link/bs-source-link.js +3 -3
  281. package/dist/collection/components/bs-spinner/bs-spinner.js +1 -1
  282. package/dist/collection/components/bs-split-pane/bs-split-pane.cmp.test.js +8 -0
  283. package/dist/collection/components/bs-split-pane/bs-split-pane.js +26 -1
  284. package/dist/collection/components/bs-stack/bs-stack.js +1 -1
  285. package/dist/collection/components/bs-stat/bs-stat.js +1 -1
  286. package/dist/collection/components/bs-stepper/bs-stepper/bs-stepper.js +1 -1
  287. package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.js +1 -1
  288. package/dist/collection/components/bs-switch/bs-switch.js +1 -1
  289. package/dist/collection/components/bs-switch/bs-switch.stories.js +33 -9
  290. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.js +1 -1
  291. package/dist/collection/components/bs-tab/bs-tab/bs-tab.js +1 -1
  292. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.js +1 -1
  293. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.stories.js +19 -1
  294. package/dist/collection/components/bs-table-of-contents/bs-table-of-contents.js +1 -1
  295. package/dist/collection/components/bs-tag/bs-tag.js +6 -2
  296. package/dist/collection/components/bs-text/bs-text.js +1 -1
  297. package/dist/collection/components/bs-timepicker/bs-timepicker.js +2 -2
  298. package/dist/collection/components/bs-toast/bs-toast.js +1 -1
  299. package/dist/collection/components/bs-toggle-button/bs-toggle-button.cmp.test.js +11 -0
  300. package/dist/collection/components/bs-toggle-button/bs-toggle-button.js +9 -1
  301. package/dist/collection/components/bs-toggle-button/bs-toggle-button.stories.js +1 -1
  302. package/dist/collection/components/bs-toggle-button-group/bs-toggle-button-group.js +1 -1
  303. package/dist/collection/components/bs-toggle-button-group/bs-toggle-button-group.stories.js +33 -3
  304. package/dist/collection/components/bs-toolbar/bs-toolbar.js +1 -1
  305. package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
  306. package/dist/collection/components/bs-tooltip-trigger/bs-tooltip-trigger.js +1 -1
  307. package/dist/collection/components/bs-tree/bs-tree.js +1 -1
  308. package/dist/collection/components/bs-tree-item/bs-tree-item.js +2 -2
  309. package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.js +1 -1
  310. package/dist/collection/components/tokens/tokens.stories.js +90 -0
  311. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +2 -2
  312. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.js +1 -1
  313. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.js +2 -2
  314. package/dist/collection/play-utils.js +24 -0
  315. package/dist/components/bs-accordion-group.js +1 -1
  316. package/dist/components/bs-ai-disclaimer.js +1 -1
  317. package/dist/components/bs-ai-greeting.js +1 -1
  318. package/dist/components/bs-ai-thinking.js +1 -1
  319. package/dist/components/bs-app-recent-item.js +1 -1
  320. package/dist/components/bs-app-shell.js +1 -1
  321. package/dist/components/bs-app-switcher.js +1 -1
  322. package/dist/components/bs-app-tile.js +1 -1
  323. package/dist/components/bs-attachment-list.js +1 -1
  324. package/dist/components/bs-attachment.js +1 -1
  325. package/dist/components/bs-avatar.js +1 -1
  326. package/dist/components/bs-breadcrumb-overflow.js +1 -1
  327. package/dist/components/bs-breadcrumbs.js +1 -1
  328. package/dist/components/bs-button-skeleton.js +1 -1
  329. package/dist/components/bs-button.js +1 -1
  330. package/dist/components/bs-carousel.js +1 -1
  331. package/dist/components/bs-chatbot-feedback.js +1 -1
  332. package/dist/components/bs-chatbot-header.js +1 -1
  333. package/dist/components/bs-chatbot-response-action.js +1 -1
  334. package/dist/components/bs-chatbot-sources-drawer.js +1 -1
  335. package/dist/components/bs-chatbot-suggestion-button.js +1 -1
  336. package/dist/components/bs-checkbox-group.js +1 -1
  337. package/dist/components/bs-checkbox-skeleton.js +1 -1
  338. package/dist/components/bs-checkbox.js +1 -1
  339. package/dist/components/bs-chip-filter.js +1 -1
  340. package/dist/components/bs-chip-informative.js +1 -1
  341. package/dist/components/bs-chip-input.js +1 -1
  342. package/dist/components/bs-citation-preview.js +1 -1
  343. package/dist/components/bs-code-block.js +1 -1
  344. package/dist/components/bs-command-palette.js +1 -1
  345. package/dist/components/bs-compact-menu-block.js +1 -1
  346. package/dist/components/bs-company-switcher.js +1 -1
  347. package/dist/components/bs-composer-status-banner.js +1 -1
  348. package/dist/components/bs-composer.js +1 -1
  349. package/dist/components/bs-container.js +1 -1
  350. package/dist/components/bs-cookie-consent.js +1 -1
  351. package/dist/components/bs-data-table.js +1 -1
  352. package/dist/components/bs-datepicker.js +1 -1
  353. package/dist/components/bs-description-item.js +1 -1
  354. package/dist/components/bs-description-list.js +1 -1
  355. package/dist/components/bs-dialog.js +1 -1
  356. package/dist/components/bs-divider.js +1 -1
  357. package/dist/components/bs-dropdown.js +1 -1
  358. package/dist/components/bs-empty-state.js +1 -1
  359. package/dist/components/bs-error-page.js +1 -1
  360. package/dist/components/bs-file-upload-item.js +1 -1
  361. package/dist/components/bs-file-upload.js +1 -1
  362. package/dist/components/bs-global-search.js +1 -1
  363. package/dist/components/bs-grid.js +1 -1
  364. package/dist/components/bs-heading.js +1 -1
  365. package/dist/components/bs-icon-button.js +1 -1
  366. package/dist/components/bs-icon-tile.js +1 -1
  367. package/dist/components/bs-icon.js +1 -1
  368. package/dist/components/bs-inline-tab.js +1 -1
  369. package/dist/components/bs-input.js +1 -1
  370. package/dist/components/bs-key-caps.js +1 -1
  371. package/dist/components/bs-key.js +1 -1
  372. package/dist/components/bs-keyboard-shortcuts.js +1 -1
  373. package/dist/components/bs-link.js +1 -1
  374. package/dist/components/bs-list-item.js +1 -1
  375. package/dist/components/bs-list.js +1 -1
  376. package/dist/components/bs-mega-menu.js +1 -1
  377. package/dist/components/bs-menu-block.js +1 -1
  378. package/dist/components/bs-menu-item.js +1 -1
  379. package/dist/components/bs-menu.js +1 -1
  380. package/dist/components/bs-message-list.js +1 -1
  381. package/dist/components/bs-message.js +1 -1
  382. package/dist/components/bs-navigation-drawer-item.js +1 -1
  383. package/dist/components/bs-navigation-drawer.js +1 -1
  384. package/dist/components/bs-navigation-header.js +1 -1
  385. package/dist/components/bs-onboarding-checklist.js +1 -1
  386. package/dist/components/bs-page-header.js +1 -1
  387. package/dist/components/bs-pagination.js +1 -1
  388. package/dist/components/bs-popover.js +1 -1
  389. package/dist/components/bs-presence.js +1 -1
  390. package/dist/components/bs-product-tour.js +1 -1
  391. package/dist/components/bs-progress-linear.js +1 -1
  392. package/dist/components/bs-progress.js +1 -1
  393. package/dist/components/bs-qr-code.js +1 -1
  394. package/dist/components/bs-radio-group.js +1 -1
  395. package/dist/components/bs-radio.js +1 -1
  396. package/dist/components/bs-ripple.js +1 -1
  397. package/dist/components/bs-search-item.js +1 -1
  398. package/dist/components/bs-select.js +1 -1
  399. package/dist/components/bs-session-timeout.js +1 -1
  400. package/dist/components/bs-shortcut-row.js +1 -1
  401. package/dist/components/bs-side-panel.js +1 -1
  402. package/dist/components/bs-skeleton.js +1 -1
  403. package/dist/components/bs-skip-link.js +1 -1
  404. package/dist/components/bs-slider.js +1 -1
  405. package/dist/components/bs-snackbar.js +1 -1
  406. package/dist/components/bs-source-link.js +1 -1
  407. package/dist/components/bs-spinner.js +1 -1
  408. package/dist/components/bs-split-pane.js +1 -1
  409. package/dist/components/bs-stack.js +1 -1
  410. package/dist/components/bs-stat.js +1 -1
  411. package/dist/components/bs-stepper-step.js +1 -1
  412. package/dist/components/bs-stepper.js +1 -1
  413. package/dist/components/bs-switch.js +1 -1
  414. package/dist/components/bs-tab.js +1 -1
  415. package/dist/components/bs-table-of-contents.js +1 -1
  416. package/dist/components/bs-tabs.js +1 -1
  417. package/dist/components/bs-tag.js +1 -1
  418. package/dist/components/bs-text.js +1 -1
  419. package/dist/components/bs-timepicker.js +1 -1
  420. package/dist/components/bs-toast.js +1 -1
  421. package/dist/components/bs-toggle-button-group.js +1 -1
  422. package/dist/components/bs-toggle-button.js +1 -1
  423. package/dist/components/bs-toolbar.js +1 -1
  424. package/dist/components/bs-tooltip-trigger.js +1 -1
  425. package/dist/components/bs-tooltip.js +1 -1
  426. package/dist/components/bs-tree-item.js +1 -1
  427. package/dist/components/bs-tree.js +1 -1
  428. package/dist/components/bs-whats-new-entry.js +1 -1
  429. package/dist/components/bs-whats-new.js +1 -1
  430. package/dist/components/{p-abyVFrPp.js → p--3dR13A5.js} +1 -1
  431. package/dist/components/{p-D4W5LcEW.js → p-5OSJi5Hq.js} +1 -1
  432. package/dist/components/{p-DHZ_DStJ.js → p-5yADpXI0.js} +1 -1
  433. package/dist/components/p-B1pqQBKC.js +1 -0
  434. package/dist/components/{p-BB1HiIxJ.js → p-B6bXreGu.js} +1 -1
  435. package/dist/components/{p-Ba8J2kHD.js → p-BDqzHL7T.js} +1 -1
  436. package/dist/components/{p-CALH_mHQ.js → p-BSaspygR.js} +1 -1
  437. package/dist/components/{p-Cz38kNDe.js → p-BYZ1TxxS.js} +1 -1
  438. package/dist/components/{p-DMp5CvEJ.js → p-BenlMTiB.js} +1 -1
  439. package/dist/components/{p-wscU7FUD.js → p-BkzRLgh4.js} +1 -1
  440. package/dist/components/{p-B81aicKA.js → p-BpD6hqIE.js} +1 -1
  441. package/dist/components/{p-CL99S8-7.js → p-Bu47NRjs.js} +1 -1
  442. package/dist/components/{p-DK1uv2fu.js → p-C4NrLy_y.js} +1 -1
  443. package/dist/components/{p-Dlp2c-Ii.js → p-CA1qkJ9m.js} +1 -1
  444. package/dist/components/{p-DO4sVZCh.js → p-CMhON6jB.js} +1 -1
  445. package/dist/components/{p-DUV80kt-.js → p-Cau06t9C.js} +1 -1
  446. package/dist/components/{p-DLNoxNuW.js → p-D9TQ0LLX.js} +1 -1
  447. package/dist/components/{p-Cso2DKAz.js → p-DJqNdSU4.js} +1 -1
  448. package/dist/components/{p-KiyJJwzr.js → p-DLGXRivO.js} +1 -1
  449. package/dist/components/{p-BLJL4BVY.js → p-DPIDWFCa.js} +1 -1
  450. package/dist/components/{p-wd9-vGpQ.js → p-DQY3n0nR.js} +1 -1
  451. package/dist/components/{p-DL9HtG41.js → p-DfYJCczy.js} +1 -1
  452. package/dist/components/{p-CxNNy2m6.js → p-DoCH1kV9.js} +1 -1
  453. package/dist/components/p-DpMqdknQ.js +1 -0
  454. package/dist/components/{p-Dt3b6VYT.js → p-Dsyt34TD.js} +1 -1
  455. package/dist/components/{p-CZfbB-t_.js → p-Dx10cRTc.js} +1 -1
  456. package/dist/components/p-EQrsaDKp.js +1 -0
  457. package/dist/components/{p-DaKBSL2O.js → p-ESiaIgGU.js} +1 -1
  458. package/dist/components/p-OhKj-S2c.js +1 -0
  459. package/dist/components/{p-DOW-YekD.js → p-TRtv6fbe.js} +1 -1
  460. package/dist/components/{p-DnagAPBF.js → p-_oStzQSx.js} +1 -1
  461. package/dist/components/{p-BR7C-aKy.js → p-bOSY8sKI.js} +1 -1
  462. package/dist/components/{p-DARbgzSz.js → p-hjzkd-La.js} +1 -1
  463. package/dist/esm/brandsync-wc.js +1 -1
  464. package/dist/esm/bs-accordion-group.entry.js +1 -1
  465. package/dist/esm/bs-ai-disclaimer.entry.js +1 -1
  466. package/dist/esm/bs-ai-greeting.entry.js +1 -1
  467. package/dist/esm/bs-ai-thinking.entry.js +1 -1
  468. package/dist/esm/bs-app-recent-item_3.entry.js +4 -4
  469. package/dist/esm/bs-app-shell.entry.js +1 -1
  470. package/dist/esm/bs-attachment-list.entry.js +1 -1
  471. package/dist/esm/bs-breadcrumbs.entry.js +1 -1
  472. package/dist/esm/bs-button-skeleton.entry.js +1 -1
  473. package/dist/esm/bs-button_2.entry.js +1 -1
  474. package/dist/esm/bs-chatbot-feedback.entry.js +1 -1
  475. package/dist/esm/bs-chatbot-header.entry.js +1 -1
  476. package/dist/esm/bs-chatbot-response-action.entry.js +1 -1
  477. package/dist/esm/bs-chatbot-sources-drawer.entry.js +1 -1
  478. package/dist/esm/bs-chatbot-suggestion-button.entry.js +1 -1
  479. package/dist/esm/bs-checkbox-group.entry.js +8 -3
  480. package/dist/esm/bs-checkbox-skeleton.entry.js +1 -1
  481. package/dist/esm/bs-chip-filter.entry.js +1 -1
  482. package/dist/esm/bs-chip-informative.entry.js +32 -3
  483. package/dist/esm/bs-chip-input.entry.js +1 -1
  484. package/dist/esm/bs-citation-preview.entry.js +1 -1
  485. package/dist/esm/bs-command-palette.entry.js +1 -1
  486. package/dist/esm/bs-compact-menu-block_2.entry.js +4 -4
  487. package/dist/esm/bs-company-switcher.entry.js +2 -2
  488. package/dist/esm/bs-composer-status-banner.entry.js +1 -1
  489. package/dist/esm/bs-composer.entry.js +1 -1
  490. package/dist/esm/bs-container.entry.js +1 -1
  491. package/dist/esm/bs-data-table.entry.js +4 -2
  492. package/dist/esm/bs-datepicker.entry.js +1 -1
  493. package/dist/esm/bs-description-item.entry.js +1 -1
  494. package/dist/esm/bs-description-list.entry.js +1 -1
  495. package/dist/esm/bs-divider.entry.js +1 -1
  496. package/dist/esm/bs-dropdown.entry.js +1 -1
  497. package/dist/esm/bs-empty-state.entry.js +1 -1
  498. package/dist/esm/bs-error-page.entry.js +1 -1
  499. package/dist/esm/bs-file-upload-item.entry.js +1 -1
  500. package/dist/esm/bs-file-upload.entry.js +1 -1
  501. package/dist/esm/bs-global-search.entry.js +2 -2
  502. package/dist/esm/bs-grid.entry.js +2 -2
  503. package/dist/esm/bs-heading.entry.js +1 -1
  504. package/dist/esm/bs-icon-button.entry.js +1 -1
  505. package/dist/esm/bs-icon-tile.entry.js +2 -2
  506. package/dist/esm/bs-icon.entry.js +1 -1
  507. package/dist/esm/bs-inline-tab.entry.js +1 -1
  508. package/dist/esm/bs-input_4.entry.js +9 -6
  509. package/dist/esm/bs-key-caps.entry.js +1 -1
  510. package/dist/esm/bs-key.entry.js +1 -1
  511. package/dist/esm/bs-keyboard-shortcuts.entry.js +2 -2
  512. package/dist/esm/bs-link.entry.js +1 -1
  513. package/dist/esm/bs-list-item.entry.js +1 -1
  514. package/dist/esm/bs-list.entry.js +1 -1
  515. package/dist/esm/bs-mega-menu.entry.js +1 -1
  516. package/dist/esm/bs-message-list.entry.js +1 -1
  517. package/dist/esm/bs-message.entry.js +1 -1
  518. package/dist/esm/bs-navigation-drawer-item.entry.js +1 -1
  519. package/dist/esm/bs-navigation-drawer.entry.js +2 -2
  520. package/dist/esm/bs-navigation-header.entry.js +2 -2
  521. package/dist/esm/bs-page-header.entry.js +1 -1
  522. package/dist/esm/bs-pagination.entry.js +1 -1
  523. package/dist/esm/bs-popover.entry.js +1 -1
  524. package/dist/esm/bs-presence.entry.js +1 -1
  525. package/dist/esm/bs-progress-linear.entry.js +2 -2
  526. package/dist/esm/bs-progress.entry.js +2 -2
  527. package/dist/esm/bs-qr-code.entry.js +1 -1
  528. package/dist/esm/bs-radio-group.entry.js +1 -1
  529. package/dist/esm/bs-radio.entry.js +1 -1
  530. package/dist/esm/bs-search-item.entry.js +1 -1
  531. package/dist/esm/bs-select.entry.js +1 -1
  532. package/dist/esm/bs-session-timeout.entry.js +1 -1
  533. package/dist/esm/bs-shortcut-row.entry.js +1 -1
  534. package/dist/esm/bs-skip-link.entry.js +1 -1
  535. package/dist/esm/bs-slider.entry.js +1 -1
  536. package/dist/esm/bs-snackbar.entry.js +1 -1
  537. package/dist/esm/bs-source-link.entry.js +3 -3
  538. package/dist/esm/bs-split-pane.entry.js +27 -2
  539. package/dist/esm/bs-stack.entry.js +1 -1
  540. package/dist/esm/bs-stat.entry.js +1 -1
  541. package/dist/esm/bs-stepper-step.entry.js +1 -1
  542. package/dist/esm/bs-stepper.entry.js +1 -1
  543. package/dist/esm/bs-switch.entry.js +1 -1
  544. package/dist/esm/bs-tab_3.entry.js +3 -3
  545. package/dist/esm/bs-table-of-contents.entry.js +1 -1
  546. package/dist/esm/bs-tag.entry.js +2 -2
  547. package/dist/esm/bs-text.entry.js +1 -1
  548. package/dist/esm/bs-timepicker.entry.js +2 -2
  549. package/dist/esm/bs-toast.entry.js +1 -1
  550. package/dist/esm/bs-toggle-button-group.entry.js +1 -1
  551. package/dist/esm/bs-toggle-button.entry.js +9 -1
  552. package/dist/esm/bs-toolbar.entry.js +1 -1
  553. package/dist/esm/bs-tooltip-trigger.entry.js +1 -1
  554. package/dist/esm/bs-tooltip.entry.js +1 -1
  555. package/dist/esm/bs-tree-item.entry.js +2 -2
  556. package/dist/esm/bs-tree.entry.js +1 -1
  557. package/dist/esm/loader.js +1 -1
  558. package/dist/types/components/bs-checkbox-group/bs-checkbox-group.d.ts +3 -1
  559. package/dist/types/components/bs-chip/bs-chip-informative/bs-chip-informative.d.ts +29 -5
  560. package/dist/types/components/bs-chip/bs-chip-informative/bs-chip-informative.stories.d.ts +2 -0
  561. package/dist/types/components/bs-data-table/bs-data-table.d.ts +2 -0
  562. package/dist/types/components/bs-input/bs-input.d.ts +3 -0
  563. package/dist/types/components/bs-progress/bs-progress.stories.d.ts +1 -0
  564. package/dist/types/components/bs-progress-linear/bs-progress-linear.stories.d.ts +1 -0
  565. package/dist/types/components/bs-split-pane/bs-split-pane.d.ts +3 -0
  566. package/dist/types/components/bs-tag/bs-tag.d.ts +4 -0
  567. package/dist/types/components/bs-toggle-button/bs-toggle-button.d.ts +1 -0
  568. package/dist/types/components/tokens/tokens.stories.d.ts +12 -0
  569. package/dist/types/components.d.ts +142 -18
  570. package/dist/types/play-utils.d.ts +6 -0
  571. package/dist/types/raw-css.d.ts +4 -0
  572. package/package.json +1 -1
  573. package/reference.d.ts +1 -1
  574. package/reference.json +6 -1
  575. package/dist/brandsync-wc/p-23affb5d.entry.js +0 -1
  576. package/dist/brandsync-wc/p-23b3958e.entry.js +0 -1
  577. package/dist/brandsync-wc/p-28723df1.entry.js +0 -1
  578. package/dist/brandsync-wc/p-32157c7a.entry.js +0 -1
  579. package/dist/brandsync-wc/p-4ae7b8b9.entry.js +0 -1
  580. package/dist/brandsync-wc/p-60636c6c.entry.js +0 -1
  581. package/dist/brandsync-wc/p-6096900b.entry.js +0 -1
  582. package/dist/brandsync-wc/p-6bdd9ef9.entry.js +0 -1
  583. package/dist/brandsync-wc/p-e4033ebc.entry.js +0 -1
  584. package/dist/components/p-B5yjDh8h.js +0 -1
  585. package/dist/components/p-C3YETziz.js +0 -1
  586. package/dist/components/p-CKTbatgt.js +0 -1
  587. package/dist/components/p-_zxYDrzi.js +0 -1
@@ -196,7 +196,7 @@ export class BsSessionTimeout {
196
196
  const description = this.description ?? d.description;
197
197
  const primary = this.primaryLabel ?? d.primary;
198
198
  const secondary = this.secondaryLabel ?? d.secondary;
199
- return (h("bs-card", { key: '62d189825b91f610d76413f186aa5cd46f535553', part: "container", class: "bs-session-timeout", surface: "base", role: "region", "aria-labelledby": "heading" }, h("div", { key: '658dcf88fb5e6b46184d2bd1d7211f2f3b70cedc', class: "bs-session-timeout__body" }, !this.hideIcon && (h("bs-icon-tile", { key: '5355eb08e32eeb42edcccd0e078bdae383aba564', part: "art", intent: d.intent, size: "lg" }, h("slot", { key: 'cf1169b6f28504292026bd99189fae658001c76b', name: "icon" }, d.glyph()))), this.renderHeading(heading, description), this.type === 'warning' && this.renderWarning(), this.type === 'warning' && this.savedMessage && (h("p", { key: 'c5327542b3737b79fc986aed5103db57d699d92b', part: "saved", class: "bs-session-timeout__saved" }, h(InfoIcon, { key: 'faa674e2a70d71591efbe4fd7eb94b39851f315d' }), h("span", { key: '399c78c01aafe8d79ec69b28e5451e2a06fba836' }, this.savedMessage))), this.type === 'signed-out' && this.renderAccount(), this.type === 'confirm-identity' && this.renderConfirm(), this.type === 'warning' && (primary || secondary) && (h("div", { key: '42987f730c2767ef88b57ae3e28c08db804085de', part: "actions", class: "bs-session-timeout__actions" }, secondary && (h("bs-button", { key: 'f758266373ef8f94edd5d53de97397b6498af3ac', part: "secondary", variant: "outlined", onClick: () => this.bsSecondary.emit() }, secondary)), primary && (h("bs-button", { key: 'eaced5b60ea1a15398c3beea9d8d1522fc60792e', part: "primary", variant: "primary", onClick: () => this.bsPrimary.emit() }, primary)))), this.type === 'signed-out' && (primary || secondary) && (h("div", { key: '9e731177eb48665ef99c64a564be0ba8340b79f3', part: "actions", class: "bs-session-timeout__actions bs-session-timeout__actions--stacked" }, primary && (h("bs-button", { key: 'f7bfa81c52bc83c0d9e4009c4aecb2584632b95d', part: "primary", class: "bs-session-timeout__block-button", variant: "primary", onClick: () => this.bsPrimary.emit() }, primary)), secondary && (h("bs-button", { key: '6fe76eeaefdd48288e2c4821991f12ee12bbe358', part: "secondary", class: "bs-session-timeout__text-button", variant: "subtle", size: "lg", onClick: () => this.bsSecondary.emit() }, secondary)))), h("div", { key: '77bd8a11863bccceaae1ab0103ef81771ca9f1f1', class: "bs-session-timeout__sr-only", role: "status", "aria-live": "polite" }, this.announcement))));
199
+ return (h("bs-card", { key: '13eb3bbaf4ca631be2261c38381e6328e2bbbe92', part: "container", class: "bs-session-timeout", surface: "base", role: "region", "aria-labelledby": "heading" }, h("div", { key: '813dd3d614e935ed3a09f532a0720839562fd98c', class: "bs-session-timeout__body" }, !this.hideIcon && (h("bs-icon-tile", { key: '1bdf9c09e8f16a7501f80b6e43ad7279210d71f8', part: "art", intent: d.intent, size: "lg" }, h("slot", { key: '43703d8669030ccfe4d7102570c9bb3ba9391535', name: "icon" }, d.glyph()))), this.renderHeading(heading, description), this.type === 'warning' && this.renderWarning(), this.type === 'warning' && this.savedMessage && (h("p", { key: '528151234d53961de3d79cdec606a94a1ef17d6d', part: "saved", class: "bs-session-timeout__saved" }, h(InfoIcon, { key: 'ac6603076709172755c01b87d848c102d893f600' }), h("span", { key: '7be82576874f920a42570f7b27d8bc251b37f606' }, this.savedMessage))), this.type === 'signed-out' && this.renderAccount(), this.type === 'confirm-identity' && this.renderConfirm(), this.type === 'warning' && (primary || secondary) && (h("div", { key: 'c85cabd7efab756eec46441722dbb431bf7c14d8', part: "actions", class: "bs-session-timeout__actions" }, secondary && (h("bs-button", { key: 'e40cf0525badc649ea177fd5a102ef6a55dea3be', part: "secondary", variant: "outlined", onClick: () => this.bsSecondary.emit() }, secondary)), primary && (h("bs-button", { key: '46b08f9b82a9874f854511e9040a42c348036ac3', part: "primary", variant: "primary", onClick: () => this.bsPrimary.emit() }, primary)))), this.type === 'signed-out' && (primary || secondary) && (h("div", { key: 'f1ef91ee05b4b1f2ef2ca37a155491f61885fa6d', part: "actions", class: "bs-session-timeout__actions bs-session-timeout__actions--stacked" }, primary && (h("bs-button", { key: '855f234d9ad9d70986b62bb97252f05b50eab82b', part: "primary", class: "bs-session-timeout__block-button", variant: "primary", onClick: () => this.bsPrimary.emit() }, primary)), secondary && (h("bs-button", { key: '4dc3d48201f3f53f020d2615ec5dfd84f3d21417', part: "secondary", class: "bs-session-timeout__text-button", variant: "subtle", size: "lg", onClick: () => this.bsSecondary.emit() }, secondary)))), h("div", { key: 'b9a61ad613e36e5338e3e1bd5644c3184b8d76bb', class: "bs-session-timeout__sr-only", role: "status", "aria-live": "polite" }, this.announcement))));
200
200
  }
201
201
  static get is() { return "bs-session-timeout"; }
202
202
  static get encapsulation() { return "shadow"; }
@@ -36,7 +36,7 @@ export class BsShortcutRow {
36
36
  /** Set by the parent list (`"listitem"`). Standalone rows have no role. */
37
37
  selectionRole = null;
38
38
  render() {
39
- return (h("div", { key: '01234047de01effc5d7ae411a6180d02e663d9af', part: "container", class: "bs-shortcut-row", role: this.selectionRole ?? undefined, "aria-disabled": this.disabled ? 'true' : undefined }, h("span", { key: 'd8c80f480f4f463f5c0ee46719e4b051e1f54816', part: "action", class: "bs-shortcut-row__action" }, h("slot", { key: '8c5da35b9c05f1544892808b75b4b24701554dc7' }, this.action)), h("span", { key: '3588f962523eabfdbebc2de3d8cdd3cface4ca07', part: "keys", class: "bs-shortcut-row__keys" }, h("slot", { key: '3315142746d44c8c27ce6952a5cffad1f51473d8', name: "keys" }, h("bs-key-caps", { key: '70a4155ce7ed5b0e585ab45e9f2a8b1c69880e4e', keys: this.keys, label: this.label, disabled: this.disabled })))));
39
+ return (h("div", { key: 'b32ad47b3799cf0bc6e9251febbd694f611addc2', part: "container", class: "bs-shortcut-row", role: this.selectionRole ?? undefined, "aria-disabled": this.disabled ? 'true' : undefined }, h("span", { key: 'c4c333aab2f4e4de4e71ee2ed9ac6bee2fb14a39', part: "action", class: "bs-shortcut-row__action" }, h("slot", { key: '65d9211d05069beb18cd79e37a6bc1df560b5c3c' }, this.action)), h("span", { key: '08eea1a42c6d510ac1cad3905e979ea90ee63dcb', part: "keys", class: "bs-shortcut-row__keys" }, h("slot", { key: '306d7ee0733693686c3d48113b2c17f48f874114', name: "keys" }, h("bs-key-caps", { key: '66b296276b82657ed0e5799769ba509ac0c6318d', keys: this.keys, label: this.label, disabled: this.disabled })))));
40
40
  }
41
41
  static get is() { return "bs-shortcut-row"; }
42
42
  static get encapsulation() { return "shadow"; }
@@ -60,7 +60,7 @@ export class BsSkeleton {
60
60
  lines.push(h("span", { part: "line", class: { 'bs-skeleton__line': true, [`bs-skeleton__line--${this.variant}`]: true, 'bs-skeleton__line--short': isShortLast }, style: style }));
61
61
  }
62
62
  const hasLabel = !!this.label;
63
- return (h("span", { key: 'cdaaa8a2de9a1552a900a1ef33e3a7259e57ed3e', part: "container", class: { 'bs-skeleton': true, 'bs-skeleton--animated': this.animated, [`bs-skeleton--${this.variant}`]: true }, role: hasLabel ? 'status' : undefined, "aria-label": hasLabel ? this.label : undefined, "aria-hidden": hasLabel ? undefined : 'true' }, lines));
63
+ return (h("span", { key: '71e9f66677e291c7b813a419a4357b110666cac5', part: "container", class: { 'bs-skeleton': true, 'bs-skeleton--animated': this.animated, [`bs-skeleton--${this.variant}`]: true }, role: hasLabel ? 'status' : undefined, "aria-label": hasLabel ? this.label : undefined, "aria-hidden": hasLabel ? undefined : 'true' }, lines));
64
64
  }
65
65
  static get is() { return "bs-skeleton"; }
66
66
  static get encapsulation() { return "shadow"; }
@@ -57,7 +57,7 @@ export class BsSkipLink {
57
57
  target.focus();
58
58
  };
59
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")));
60
+ return (h("a", { key: '71579aa69b09083c78af4db47c32202da8472f34', part: "link", class: "bs-skip-link", href: this.href, onClick: this.onClick }, h("slot", { key: '1f2077ae9cb624f9700745a6e0e0d168fbb746b1' }, "Skip to main content")));
61
61
  }
62
62
  static get is() { return "bs-skip-link"; }
63
63
  static get encapsulation() { return "shadow"; }
@@ -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: '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)))));
236
+ return (h("div", { key: '453a65b49b780806ed2d9a1ead9a8d6a2934f7d5', class: rootClasses, "aria-disabled": this.disabled ? 'true' : undefined }, this.showLabel && (h("div", { key: 'add1883ea1990fec07b3b50c3a910dc7c38f9ffd', class: "bs-slider__header" }, h("span", { key: 'b85fcbb0798aac73a8ae003abe68fa42e2fe905d', 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: '528e5766856c1cddb4379089cf206c500171e381', class: "bs-slider__row" }, this.showLabel && (h("span", { key: '17db3029eed38bb3759f6307f08f16bb477ff14c', part: "bound", class: "bs-slider__bound" }, this.min)), isRange ? this.renderRangeThumbs() : this.renderSingleThumb(), this.showLabel && (h("span", { key: 'bc80bd2268e3faf4bc2abbd62337f5fb88fe0700', 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"; }
@@ -67,7 +67,7 @@ export class BsSnackbar {
67
67
  this.bsDismiss.emit();
68
68
  };
69
69
  render() {
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' }))))));
70
+ return (h("div", { key: 'd5766c577a0f6ca53c1d26406888d79140400133', part: "container", class: `bs-snackbar bs-snackbar--${this.variant}`, role: "status", "aria-live": this.variant === 'error' ? 'assertive' : 'polite' }, h("div", { key: 'd42f65e798ccdf73da5a01e297b67794daa1101c', class: "bs-snackbar__content" }, h("span", { key: '50eb509bdfbc800e18c705ac9bbfb5868180dd87', part: "icon", class: "bs-snackbar__icon", "aria-hidden": "true" }, this.loading ? h("span", { class: "bs-snackbar__spinner" }) : h(CheckCircleIcon, null)), h("span", { key: '546badfb1dfffcc51736b20991cc0629e450e244', part: "message", class: "bs-snackbar__message" }, h("slot", { key: 'd7d91d944100ea1beb5a8693506db34a293e0594' }))), h("div", { key: 'fbcf2cda2619546ae1b8a5b771f05e32326690b6', class: "bs-snackbar__actions" }, this.actionLabel && (h("bs-button", { key: '41b81763fc38ff533cb3729d90bbd6855a378baa', part: "action", variant: this.actionVariant ?? ACTION_VARIANT[this.variant], size: "sm", onClick: this.onAction }, this.actionLabel)), !this.hideClose && (h("bs-icon-button", { key: '1d7adc41ceeaabb43340089db37fa273ed411535', part: "close", variant: "subtle", size: "md", ariaLabel: "Dismiss", onClick: this.onDismiss }, h(CloseIcon, { key: 'f93ef4c3b53a1eb00a80d3c52c66cc213067ec55' }))))));
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: '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' })),
55
+ h("bs-ripple", { key: '64724c67ba2ef27787a2e85bb1084ef1f3c6a916', part: "ripple" }),
56
+ h("span", { key: 'd8fefb50b0740a65cac0fb918672b1593d07a716', class: "bs-source-link__left" }, h("span", { key: 'f5cf73cbf855bca76a5dd476013cfbd4fd13b77b', class: "bs-source-link__filename-row" }, h("span", { key: 'e204449475ce6d95a3ce0346cb3e92578f8bf155', part: "icon", class: "bs-source-link__icon" }, h("slot", { key: 'f19c4375744c58f9ac87cdd74016b6b0a21d1acb', name: "icon" }, h(FileTextIcon, { key: '75a6c2bc7b228c6dca2dcb4d27739d8cbb3dca1a' }))), h("p", { key: 'e8cf5752fad06b84310093f6de56a101226ddb52', part: "filename", class: "bs-source-link__filename" }, this.fileName)), h("span", { key: 'b9c631fe47d4bd480d231cc33de98064c14b525e', class: "bs-source-link__meta" }, this.sourceName && (h("span", { key: '705510aa4dd8567a3d1a2136842c04c4f4776393', part: "source", class: "bs-source-link__source" }, this.sourceName)), this.sourceName && this.version && h("span", { key: '362b50a97cc2de79c89058c607862703c29c347a', class: "bs-source-link__dot", "aria-hidden": "true" }), this.version && (h("span", { key: '7c628efdff57c8a95c5ff0f74409e485f2efc286', part: "version", class: "bs-source-link__version" }, this.version)))),
57
+ h("span", { key: '9fe18a62a7a49d4a68c120e7972299dbde6b22dd', part: "arrow", class: "bs-source-link__arrow", "aria-hidden": "true" }, h(ArrowUpRightIcon, { key: 'd637cfe57cf0501f521c94d42df8fb587fdfd85f' })),
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: '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" }))));
33
+ return (h("span", { key: 'f7225e3f094164ee522d45c87ead3194f4ec3a00', 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: 'a0e36d1125301b81ecfad237d76f87ac7ccb4194', part: "svg", class: "bs-spinner__svg", viewBox: "0 0 24 24", fill: "none", focusable: "false" }, h("circle", { key: 'b1d345f1ab09ad745b9549b149a2abbb17d48358', class: "bs-spinner__track", cx: "12", cy: "12", r: "9", "stroke-width": "3" }), h("path", { key: '15d0989159c4e747d9c0d71a4530af7f7a63767c', 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"; }
@@ -13,6 +13,14 @@ describe('bs-split-pane', () => {
13
13
  expect(dividers[0]).toEqualAttribute('tabindex', '0');
14
14
  expect(split.shadowRoot.querySelectorAll('[part~="pane"]').length).toBe(3);
15
15
  });
16
+ it('makes only overflowing panes keyboard-focusable', async () => {
17
+ const { root } = await render(h("div", { style: { width: '600px', height: '200px' } }, h("bs-split-pane", null, h("div", { slot: "pane-1" }, "Short"), h("div", { slot: "pane-2", style: { height: '900px' } }, "Tall"))));
18
+ const split = root.querySelector('bs-split-pane');
19
+ await new Promise(r => setTimeout(r, 150));
20
+ const [first, second] = Array.from(split.shadowRoot.querySelectorAll('.bs-split-pane__pane'));
21
+ expect(first.hasAttribute('tabindex')).toBe(false);
22
+ expect(second).toEqualAttribute('tabindex', '0');
23
+ });
16
24
  it('follows the filled slots: two panes means one divider', async () => {
17
25
  const { root } = await mount({}, 2);
18
26
  const split = root.querySelector('bs-split-pane');
@@ -61,6 +61,7 @@ export class BsSplitPane {
61
61
  sizes = [];
62
62
  draggingIndex = -1;
63
63
  observer;
64
+ sizeObserver;
64
65
  dragStart;
65
66
  /** Toggles `collapsed` and emits `bsCollapsedChange`. */
66
67
  async toggleCollapsed() {
@@ -76,7 +77,31 @@ export class BsSplitPane {
76
77
  }
77
78
  disconnectedCallback() {
78
79
  this.observer?.disconnect();
80
+ this.sizeObserver?.disconnect();
79
81
  }
82
+ componentDidRender() {
83
+ // Re-observe after every render: panes come and go with `paneCount`, and a pane's slotted content
84
+ // is what grows past it, so watch both.
85
+ this.sizeObserver?.disconnect();
86
+ this.sizeObserver = new ResizeObserver(this.updateScrollable);
87
+ this.el.shadowRoot?.querySelectorAll('.bs-split-pane__pane').forEach(pane => {
88
+ this.sizeObserver.observe(pane);
89
+ pane.querySelector('slot')?.assignedElements().forEach(child => this.sizeObserver.observe(child));
90
+ });
91
+ this.updateScrollable();
92
+ }
93
+ // A scrollable region must be keyboard-reachable, so a pane whose content overflows gets tabindex=0.
94
+ // Written straight to the DOM (not via render state) so it is in place as soon as the first render
95
+ // finishes, rather than a re-render later. Stencil leaves attributes it doesn't manage alone.
96
+ updateScrollable = () => {
97
+ this.el.shadowRoot?.querySelectorAll('.bs-split-pane__pane').forEach(pane => {
98
+ const overflows = pane.scrollHeight > pane.clientHeight + 1 || pane.scrollWidth > pane.clientWidth + 1;
99
+ if (overflows)
100
+ pane.setAttribute('tabindex', '0');
101
+ else
102
+ pane.removeAttribute('tabindex');
103
+ });
104
+ };
80
105
  countPanes() {
81
106
  let count = 1;
82
107
  for (let i = 1; i <= MAX_PANES; i++) {
@@ -215,7 +240,7 @@ export class BsSplitPane {
215
240
  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
241
  }
217
242
  }
218
- return (h("div", { key: 'a8907feecf4f151d88192eea0fbdffeedac25d09', part: "container", class: `bs-split-pane bs-split-pane--${this.orientation}` }, nodes));
243
+ return (h("div", { key: '59361ae67d4d5c41c55be27500f43b6cea70ce8c', part: "container", class: `bs-split-pane bs-split-pane--${this.orientation}` }, nodes));
219
244
  }
220
245
  static get is() { return "bs-split-pane"; }
221
246
  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: '778684be1eb1af11919fd4d374031f03bdea3f30', style: { '--bs-stack-gap-token': `var(--bs-spacing-${gap})` } }, h("slot", { key: '43efd637eb76a62d3c3591158f4e17edbe6f5907', onSlotchange: this.sync }), parts));
84
+ return (h(Host, { key: '8fa4ffade10cbe8f2bc0288f9f075df45067ab21', style: { '--bs-stack-gap-token': `var(--bs-spacing-${gap})` } }, h("slot", { key: 'f6f49b162fbbd0d6ca052781aa94ebff370e9df7', onSlotchange: this.sync }), parts));
85
85
  }
86
86
  static get is() { return "bs-stack"; }
87
87
  static get encapsulation() { return "shadow"; }
@@ -62,7 +62,7 @@ export class BsStat {
62
62
  return (h("svg", { part: "trend-icon", class: "bs-stat__trend-icon", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true" }, h("path", { d: d, stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" })));
63
63
  }
64
64
  render() {
65
- return (h("bs-card", { key: 'b80fd8bcab40a0c0253ba662787400be2d5ce9fa', part: "container", class: "bs-stat", surface: this.surface }, h("dl", { key: 'b0c82e41728231629349dde73fdb6e23ce119b52', class: "bs-stat__body" }, h("dt", { key: '6a774975bc9242d6a875f4e4362dbadfab74c8db', class: "bs-stat__head" }, h("span", { key: 'd38853b09be10da36f162b81544ff8d90f682963', class: { 'bs-stat__icon': true, 'bs-stat__icon--visible': this.hasIcon } }, h("slot", { key: '2c9500cb005e6ccb87525eb5285d0b9fab29a5d6', name: "icon", onSlotchange: (e) => (this.hasIcon = e.target.assignedNodes().length > 0) })), h("span", { key: '2b1d18f442f02334947bd0164741abdb36ffdd1b', part: "label", class: "bs-stat__label" }, this.label)), h("dd", { key: '77b730dc10e13f9dca8b6217efe61cce9dd77f26', class: "bs-stat__figure" }, h("span", { key: '1b3f628b89aa8ba007cc1bbb501cab20ffeaae0e', part: "value", class: "bs-stat__value" }, this.value), this.trend && (h("span", { key: '5abea4bf54d77c759d80ae6fb53630ba5220ade3', part: "trend", class: `bs-stat__trend bs-stat__trend--${this.intent}` }, this.arrow(), h("span", { key: 'd911d6c7b3b560378fa0bed66d193de0d5d43646', class: "bs-stat__sr" }, this.trendPrefix), this.trendValue && h("span", { key: '9f217624152213e1c4b960963d86127e5c33f2c9', class: "bs-stat__trend-value" }, this.trendValue)))), h("dd", { key: 'fb85171704f96b0770d08ff557134bde2a78ccfb', class: { 'bs-stat__extra': true, 'bs-stat__extra--visible': this.hasExtra } }, h("slot", { key: '81ef5d72329b8a4cfa2ef02317fc77abecff74d3', onSlotchange: (e) => (this.hasExtra = e.target.assignedNodes().some(n => n.nodeType === 1 || !!n.textContent?.trim())) })))));
65
+ return (h("bs-card", { key: '5f6b9075f385608f80e241fa098ec2b7c41e0e68', part: "container", class: "bs-stat", surface: this.surface }, h("dl", { key: '0cf96c923a21917d2d3896e63da754d385fabbce', class: "bs-stat__body" }, h("dt", { key: '5c91ee3aa9976c7c2389723b87566e7f1890ec6b', class: "bs-stat__head" }, h("span", { key: 'c7c6552c10e951f6ebf13ee5bd77500a2f3d2fae', class: { 'bs-stat__icon': true, 'bs-stat__icon--visible': this.hasIcon } }, h("slot", { key: '0273ec7aec05787bb319e914fbcabee6a80e7468', name: "icon", onSlotchange: (e) => (this.hasIcon = e.target.assignedNodes().length > 0) })), h("span", { key: 'a21e688823f26c01ee444dd57fd502a9505557be', part: "label", class: "bs-stat__label" }, this.label)), h("dd", { key: '246ec9052be7f754776eb60f49dd012ebe350200', class: "bs-stat__figure" }, h("span", { key: '8bb7924706fcf3bf22dc0ce4bb8c5d213693b17c', part: "value", class: "bs-stat__value" }, this.value), this.trend && (h("span", { key: 'b335cc04264ac21d217c6bcb16032cecbcde70cb', part: "trend", class: `bs-stat__trend bs-stat__trend--${this.intent}` }, this.arrow(), h("span", { key: 'a850986d7f5b920b603f70cef688cf2e00647527', class: "bs-stat__sr" }, this.trendPrefix), this.trendValue && h("span", { key: '85228d88fe1d96ff94d712a94f448b135a571edd', class: "bs-stat__trend-value" }, this.trendValue)))), h("dd", { key: '0c2eebe7c40245de0090345e2884c8b2dcbcd1b9', class: { 'bs-stat__extra': true, 'bs-stat__extra--visible': this.hasExtra } }, h("slot", { key: '75723e31ac5595c062ef8661afd8b42dc7dc6a5c', onSlotchange: (e) => (this.hasExtra = e.target.assignedNodes().some(n => n.nodeType === 1 || !!n.textContent?.trim())) })))));
66
66
  }
67
67
  static get is() { return "bs-stat"; }
68
68
  static get encapsulation() { return "shadow"; }
@@ -62,7 +62,7 @@ export class BsStepper {
62
62
  }
63
63
  render() {
64
64
  // role="list" so each bs-stepper-step's role="listitem" has the required parent.
65
- return (h(Host, { key: '7161c01432c1d0d35f63a963fba140d4b0f9cd77', role: "list" }, h("slot", { key: '67021fc831679453fa1340bad8df75e338d9fb28', onSlotchange: this.onSlotChange })));
65
+ return (h(Host, { key: '4848554ab39b7722394d94da0125940d78e3d68a', role: "list" }, h("slot", { key: '665709822f40bf4c3105cbcbbf7d795527c6472f', onSlotchange: this.onSlotChange })));
66
66
  }
67
67
  static get is() { return "bs-stepper"; }
68
68
  static get encapsulation() { return "shadow"; }
@@ -57,7 +57,7 @@ export class BsStepperStep {
57
57
  }
58
58
  render() {
59
59
  const state = this.state;
60
- return (h(Host, { key: 'a413a500376629d039afab3168b83cae5c636dc1', role: "listitem", class: `bs-stepper-step--${this.direction}`, "aria-disabled": state === 'disabled' ? 'true' : undefined }, h("div", { key: '7978cd670eeafe2dee95a2e3d97625ff22cd006d', class: "bs-stepper-step__top" }, h("span", { key: '0d0e5ef0199013cd0ed59b26fe169c2bac727920', part: "icon", class: `bs-stepper-step__icon bs-stepper-step__icon--${state}` }, state === 'current' && h("span", { key: '6c9ab59838f63958a54b852c4a8f3babf1ddc48e', class: "bs-stepper-step__icon-dot" }), state === 'done' && h(CheckIcon, { key: '284d95f3e0ae3033ab2baa079c00cb2dc1fbcd3f' }), state === 'error' && h(ExclamationIcon, { key: '45b894a13cf54b0d5cb027d89646c712584bf6bb' })), h("span", { key: '79621665f9aecb82c4135ac2e1139ce1ee9af6be', part: "connector", class: "bs-stepper-step__connector", "aria-hidden": "true" }, h("span", { key: '91454b553634d90734dbd2b8bb9ab53d9bead49c', class: "bs-stepper-step__connector-line" }))), h("span", { key: 'd5f1606511df9745571d96cad36d38774fd943b4', part: "label", class: `bs-stepper-step__label bs-stepper-step__label--${state}` }, h("span", { key: '81df6e0b9607c22cfdad7e37095d245ec428e0f1', part: "name", class: "bs-stepper-step__name" }, this.name), this.showDescription && this.description && (h("span", { key: '77c4951d570219071e8acedc361a73eed6a89612', part: "description", class: "bs-stepper-step__description" }, this.description)))));
60
+ return (h(Host, { key: 'b585c4ce677e7600da944ef54bc2392b1de0ff0e', role: "listitem", class: `bs-stepper-step--${this.direction}`, "aria-disabled": state === 'disabled' ? 'true' : undefined }, h("div", { key: '29e40d651026a757eb042a6421704ed0b32d9e31', class: "bs-stepper-step__top" }, h("span", { key: 'cb033a3ebb0bab094faa03088bb9ed3e99b7b3d2', part: "icon", class: `bs-stepper-step__icon bs-stepper-step__icon--${state}` }, state === 'current' && h("span", { key: '3be9f56a6541d903d0c0d7e36a837c31ee3e99ab', class: "bs-stepper-step__icon-dot" }), state === 'done' && h(CheckIcon, { key: 'd9d704f3c03d4e98be52aca9378e4662dc916990' }), state === 'error' && h(ExclamationIcon, { key: 'b20da59b195ec4e7914c92218520070f1fbda2cb' })), h("span", { key: 'a2a3c05a900a84e4038995d19ecedfdba8e2ff81', part: "connector", class: "bs-stepper-step__connector", "aria-hidden": "true" }, h("span", { key: '57ae3b403b2ae8e626afbd23dd2127a700fa75f0', class: "bs-stepper-step__connector-line" }))), h("span", { key: '742d48ec8606bb7012377d3331c604d1b77a2618', part: "label", class: `bs-stepper-step__label bs-stepper-step__label--${state}` }, h("span", { key: '6b1e4fa784433c33a2674dab2998b5ff20b40e82', part: "name", class: "bs-stepper-step__name" }, this.name), this.showDescription && this.description && (h("span", { key: 'ab56d0905142ee0f29ae37280f74aea0a133b438', part: "description", class: "bs-stepper-step__description" }, this.description)))));
61
61
  }
62
62
  static get is() { return "bs-stepper-step"; }
63
63
  static get encapsulation() { return "shadow"; }
@@ -69,7 +69,7 @@ export class BsSwitch {
69
69
  .filter(Boolean)
70
70
  .join(' ');
71
71
  const knobClasses = ['bs-switch__knob', `bs-switch__knob--${this.size}`, this.disabled ? 'bs-switch__knob--disabled' : ''].filter(Boolean).join(' ');
72
- return (h("label", { key: '8302d6c142ae0c0d761baa10686473abfeed7fe3', class: `bs-switch ${this.disabled ? 'bs-switch--disabled' : ''}` }, h("input", { key: 'e71a6809194104feeec376fb2af96a5b7930a9c2', class: "bs-switch__input", type: "checkbox", role: "switch", checked: this.checked, disabled: this.disabled, "aria-checked": String(this.checked), "aria-label": this.ariaLabel, onChange: this.onChange }), h("span", { key: 'fa52fc07183460c8c96f1d96f23fc16288d08f2f', part: "track", class: trackClasses }, h("span", { key: '69df38b0f655d07ea203ab8835e3d9d293540a3b', part: "knob", class: knobClasses }, h("bs-ripple", { key: '5806afd146b220e647897d4a0ed6c4ba0577bef9', part: "ripple", class: "bs-switch__ripple", centered: true, triggerSelector: ".bs-switch", disabled: this.disabled }))), h("span", { key: 'bf587f014da6bd9e29326f7246d1bfe73fda6b1c', part: "label", class: "bs-switch__label" }, h("slot", { key: '9d2a90c68a00c1e5d4a53475a25d19365277e71a' }))));
72
+ return (h("label", { key: '980c1ae91a474119f5f80e334333aeeec7f9ca9a', class: `bs-switch ${this.disabled ? 'bs-switch--disabled' : ''}` }, h("input", { key: '39dadbfc6e242947268cca62b5a220662fd1f509', class: "bs-switch__input", type: "checkbox", role: "switch", checked: this.checked, disabled: this.disabled, "aria-checked": String(this.checked), "aria-label": this.ariaLabel, onChange: this.onChange }), h("span", { key: '604d30b69702c27dff09af51c3700fdfb2aed5b5', part: "track", class: trackClasses }, h("span", { key: '6c7fcc721db39058e95e39dad5ee5f85cbda3ecc', part: "knob", class: knobClasses }, h("bs-ripple", { key: '2016d5a40eb077b6e37ab9a65b46fa1bce61e861', part: "ripple", class: "bs-switch__ripple", centered: true, triggerSelector: ".bs-switch", disabled: this.disabled }))), h("span", { key: 'c2fde21c14553f82dadba7013aad090ad3af67a9', part: "label", class: "bs-switch__label" }, h("slot", { key: 'a26df0fb49ded9f531292dbc21918f34a33e1ab6' }))));
73
73
  }
74
74
  static get is() { return "bs-switch"; }
75
75
  static get encapsulation() { return "shadow"; }
@@ -1,5 +1,7 @@
1
1
  import { html } from "lit";
2
2
  import { componentDescription, propDescription } from "../../stories-utils";
3
+ import { expect, userEvent, waitFor } from "storybook/test";
4
+ import { ready, inShadow, recordEvents } from "../../play-utils";
3
5
  const sizes = ['md', 'lg'];
4
6
  const meta = {
5
7
  title: 'Components/bs-switch',
@@ -23,12 +25,34 @@ const meta = {
23
25
  },
24
26
  };
25
27
  export default meta;
26
- export const Default = {};
28
+ export const Default = {
29
+ play: async ({ canvasElement }) => {
30
+ const host = await ready(canvasElement, 'bs-switch');
31
+ const changes = recordEvents(host, 'bsChange');
32
+ const control = inShadow(host, 'input[role="switch"]');
33
+ await expect(control).toHaveAttribute('aria-checked', 'false');
34
+ await userEvent.click(control);
35
+ await waitFor(() => expect(control).toHaveAttribute('aria-checked', 'true'));
36
+ await expect(changes.map(e => e.detail)).toEqual([true]);
37
+ await userEvent.click(control);
38
+ await waitFor(() => expect(control).toHaveAttribute('aria-checked', 'false'));
39
+ await expect(changes.map(e => e.detail)).toEqual([true, false]);
40
+ },
41
+ };
27
42
  export const Checked = {
28
43
  args: { checked: true },
29
44
  };
30
45
  export const Disabled = {
31
46
  args: { disabled: true },
47
+ play: async ({ canvasElement }) => {
48
+ const host = await ready(canvasElement, 'bs-switch');
49
+ const changes = recordEvents(host, 'bsChange');
50
+ const control = inShadow(host, 'input[role="switch"]');
51
+ await expect(control).toBeDisabled();
52
+ await userEvent.click(control);
53
+ await expect(control).toHaveAttribute('aria-checked', 'false');
54
+ await expect(changes).toHaveLength(0);
55
+ },
32
56
  };
33
57
  export const Medium = {
34
58
  args: { size: 'md', checked: true },
@@ -46,15 +70,15 @@ export const AllCombinations = {
46
70
  <strong>Disabled</strong>
47
71
  <strong>Disabled + checked</strong>
48
72
  <strong>Md</strong>
49
- <bs-switch size="md"></bs-switch>
50
- <bs-switch size="md" checked></bs-switch>
51
- <bs-switch size="md" disabled></bs-switch>
52
- <bs-switch size="md" disabled checked></bs-switch>
73
+ <bs-switch size="md" aria-label="Md unchecked"></bs-switch>
74
+ <bs-switch size="md" aria-label="Md checked" checked></bs-switch>
75
+ <bs-switch size="md" aria-label="Md disabled" disabled></bs-switch>
76
+ <bs-switch size="md" aria-label="Md disabled and checked" disabled checked></bs-switch>
53
77
  <strong>Lg</strong>
54
- <bs-switch size="lg"></bs-switch>
55
- <bs-switch size="lg" checked></bs-switch>
56
- <bs-switch size="lg" disabled></bs-switch>
57
- <bs-switch size="lg" disabled checked></bs-switch>
78
+ <bs-switch size="lg" aria-label="Lg unchecked"></bs-switch>
79
+ <bs-switch size="lg" aria-label="Lg checked" checked></bs-switch>
80
+ <bs-switch size="lg" aria-label="Lg disabled" disabled></bs-switch>
81
+ <bs-switch size="lg" aria-label="Lg disabled and checked" disabled checked></bs-switch>
58
82
  </div>
59
83
  `,
60
84
  };
@@ -95,7 +95,7 @@ export class BsInlineTab {
95
95
  };
96
96
  render() {
97
97
  const iconOnly = this.hasIcon && !this.hasLabel;
98
- return (h("button", { key: 'c44b448caa89c6317c0aec6c316ba31213bc2a79', type: "button", part: "tab", role: "tab", class: `bs-inline-tab ${this.selected ? 'bs-inline-tab--selected' : ''} ${this.disabled ? 'bs-inline-tab--disabled' : ''} ${iconOnly ? 'bs-inline-tab--icon-only' : ''} ${this.hasIcon ? 'bs-inline-tab--has-icon' : ''}`, disabled: this.disabled, "aria-selected": String(this.selected), "aria-disabled": this.disabled ? 'true' : undefined, "aria-label": this.ariaLabel, tabIndex: this.tabbable === undefined ? undefined : this.tabbable ? 0 : -1, onClick: this.onClick }, h("bs-ripple", { key: 'f4d5b5cf846ecbb08dbdbcc3496463ed0dba0f77', part: "ripple", centered: false, disabled: this.disabled }), h("span", { key: '7da10306a8d27d5846491a3a7f3d8826d96cc62c', part: "icon", class: `bs-inline-tab__icon ${this.hasIcon ? 'bs-inline-tab__icon--has-content' : ''}` }, h("slot", { key: '023aa132bb9d272577bec309a5b7aeb9c2841651', name: "icon", onSlotchange: this.onIconSlotchange })), h("span", { key: 'e8eead01034c76f6d5edb591dc861915e5c9707e', part: "label", class: `bs-inline-tab__label ${this.hasLabel ? 'bs-inline-tab__label--has-content' : ''}` }, h("slot", { key: 'cc085193d58c2b3c8a379dac93983a79f8e5f22f', onSlotchange: this.onLabelSlotchange }))));
98
+ return (h("button", { key: '72a7b79df2f920240bb9e800b1a662b91481d090', type: "button", part: "tab", role: "tab", class: `bs-inline-tab ${this.selected ? 'bs-inline-tab--selected' : ''} ${this.disabled ? 'bs-inline-tab--disabled' : ''} ${iconOnly ? 'bs-inline-tab--icon-only' : ''} ${this.hasIcon ? 'bs-inline-tab--has-icon' : ''}`, disabled: this.disabled, "aria-selected": String(this.selected), "aria-disabled": this.disabled ? 'true' : undefined, "aria-label": this.ariaLabel, tabIndex: this.tabbable === undefined ? undefined : this.tabbable ? 0 : -1, onClick: this.onClick }, h("bs-ripple", { key: '62d5478adf647dcf8e61f9cbcb8485edb355d9e2', part: "ripple", centered: false, disabled: this.disabled }), h("span", { key: 'c14a5ede027fc8b5ac941fce332451b4bf5232b6', part: "icon", class: `bs-inline-tab__icon ${this.hasIcon ? 'bs-inline-tab__icon--has-content' : ''}` }, h("slot", { key: '2997b46d314089103fe5738c0cde2600c9fa4121', name: "icon", onSlotchange: this.onIconSlotchange })), h("span", { key: 'b42c580e6468ad84c30e01b6dddd257f5d0b078d', part: "label", class: `bs-inline-tab__label ${this.hasLabel ? 'bs-inline-tab__label--has-content' : ''}` }, h("slot", { key: '99a55082aa21cca4003033e284bf9c049acc6d52', onSlotchange: this.onLabelSlotchange }))));
99
99
  }
100
100
  static get is() { return "bs-inline-tab"; }
101
101
  static get encapsulation() { return "shadow"; }
@@ -108,7 +108,7 @@ export class BsTab {
108
108
  const iconOnly = this.hasIcon && !this.hasLabel;
109
109
  const vertical = this.hasIcon && this.hasLabel && this.iconPosition === 'top';
110
110
  const showBadge = this.hasBadge && !iconOnly && !vertical;
111
- return (h("button", { key: 'b2d2de98c36ee3f1a234b26d02301444511c7fa6', type: "button", part: "tab", role: "tab", class: `bs-tab ${this.selected ? 'bs-tab--selected' : ''} ${this.disabled ? 'bs-tab--disabled' : ''} ${iconOnly ? 'bs-tab--icon-only' : ''} ${vertical ? 'bs-tab--vertical' : ''}`, disabled: this.disabled, "aria-selected": String(this.selected), "aria-disabled": this.disabled ? 'true' : undefined, "aria-label": this.ariaLabel, tabIndex: this.tabbable === undefined ? undefined : this.tabbable ? 0 : -1, onClick: this.onClick }, h("bs-ripple", { key: 'ce6536ce97610f7de52ee6015af383a696c1bc27', part: "ripple", centered: false, disabled: this.disabled }), h("span", { key: 'c3ac3b7cf5d2991375d5dc1ccde201b3295f80c5', part: "icon", class: `bs-tab__icon ${this.hasIcon ? 'bs-tab__icon--has-content' : ''}` }, h("slot", { key: '1a07b29dd8a41480a1ddeb74ee5f3064d4b3b270', name: "icon", onSlotchange: this.onIconSlotchange })), h("span", { key: 'c8e7f3d6a30231994203e5ed44dc84896b23f6ca', part: "label", class: `bs-tab__label ${this.hasLabel ? 'bs-tab__label--has-content' : ''}` }, h("slot", { key: '5fb9c0fd9b6b71e07d037d9e6a3404c54dab822a', onSlotchange: this.onLabelSlotchange })), h("span", { key: '566c636af2dcb775170b1807c6d022dab2e4a811', part: "badge", class: `bs-tab__badge ${showBadge ? 'bs-tab__badge--has-content' : ''}` }, h("slot", { key: 'e762c6a042a248ef61d6cd4449e94395788784d2', name: "badge", onSlotchange: this.onBadgeSlotchange })), h("span", { key: '0ca377dce1ddb8dcafe2bc808355ffdbd3759959', part: "indicator", class: "bs-tab__indicator" })));
111
+ return (h("button", { key: 'a74abcd56b3dbe37c84543b6f9c7ffca1e5519d6', type: "button", part: "tab", role: "tab", class: `bs-tab ${this.selected ? 'bs-tab--selected' : ''} ${this.disabled ? 'bs-tab--disabled' : ''} ${iconOnly ? 'bs-tab--icon-only' : ''} ${vertical ? 'bs-tab--vertical' : ''}`, disabled: this.disabled, "aria-selected": String(this.selected), "aria-disabled": this.disabled ? 'true' : undefined, "aria-label": this.ariaLabel, tabIndex: this.tabbable === undefined ? undefined : this.tabbable ? 0 : -1, onClick: this.onClick }, h("bs-ripple", { key: 'c0d7e7a0612ca60facde0d07345406148d43dd89', part: "ripple", centered: false, disabled: this.disabled }), h("span", { key: '0decf034c01ec42325d55e071405c2ab9d84180e', part: "icon", class: `bs-tab__icon ${this.hasIcon ? 'bs-tab__icon--has-content' : ''}` }, h("slot", { key: '9bfad6e083a8df7afde382e6db551b0d59201f82', name: "icon", onSlotchange: this.onIconSlotchange })), h("span", { key: 'd9376434f2c2780dcc4f7f0fba92bec00bc8b31c', part: "label", class: `bs-tab__label ${this.hasLabel ? 'bs-tab__label--has-content' : ''}` }, h("slot", { key: '6be3d55acf8e2da19d32f2c821d2f2d956cb0e0c', onSlotchange: this.onLabelSlotchange })), h("span", { key: '9fc2c317d7dcd5fc66225b56619105897c974bf6', part: "badge", class: `bs-tab__badge ${showBadge ? 'bs-tab__badge--has-content' : ''}` }, h("slot", { key: '6174f294d93d4102f21dbff094d505b7e929cae9', name: "badge", onSlotchange: this.onBadgeSlotchange })), h("span", { key: '0723083e4b00d00111b0f0cade36de63b805185d', part: "indicator", class: "bs-tab__indicator" })));
112
112
  }
113
113
  static get is() { return "bs-tab"; }
114
114
  static get encapsulation() { return "shadow"; }
@@ -142,7 +142,7 @@ export class BsTabs {
142
142
  }
143
143
  render() {
144
144
  const vertical = this.orientation === 'vertical';
145
- return (h("div", { key: 'a5e190b0439a02353c187f94db3c42f274936ce8', part: "tablist", role: "tablist", "aria-orientation": this.orientation, class: `bs-tabs bs-tabs--${this.type} ${vertical ? 'bs-tabs--vertical' : ''}` }, h("slot", { key: 'c20d0df9c448227a429dd42f9ec484225c172882', onSlotchange: () => this.syncRovingTabindex() })));
145
+ return (h("div", { key: 'a48d2ee16e78ca21fce532f10c009d092d889dbb', part: "tablist", role: "tablist", "aria-orientation": this.orientation, class: `bs-tabs bs-tabs--${this.type} ${vertical ? 'bs-tabs--vertical' : ''}` }, h("slot", { key: 'd4a32f7486fdc2c86bbf6cdd9f5bb79197878d9b', onSlotchange: () => this.syncRovingTabindex() })));
146
146
  }
147
147
  static get is() { return "bs-tabs"; }
148
148
  static get encapsulation() { return "shadow"; }
@@ -1,5 +1,7 @@
1
1
  import { html } from "lit";
2
2
  import { componentDescription, propDescription } from "../../../stories-utils";
3
+ import { expect, userEvent, waitFor } from "storybook/test";
4
+ import { ready, inShadow, recordEvents } from "../../../play-utils";
3
5
  const types = ['bs-tab', 'bs-inline-tab'];
4
6
  const orientations = ['horizontal', 'vertical'];
5
7
  const tabLabels = ['Overview', 'Details', 'Settings', 'Archived'];
@@ -29,7 +31,23 @@ const meta = {
29
31
  },
30
32
  };
31
33
  export default meta;
32
- export const Default = {};
34
+ export const Default = {
35
+ play: async ({ canvasElement }) => {
36
+ const tabs = await ready(canvasElement, 'bs-tabs');
37
+ const changes = recordEvents(tabs, 'bsChange');
38
+ const tabButton = (index) => inShadow(canvasElement.querySelectorAll('bs-tab')[index], '[part="tab"]');
39
+ await expect(tabButton(0)).toHaveAttribute('aria-selected', 'true');
40
+ await userEvent.click(tabButton(1));
41
+ await waitFor(() => expect(tabButton(1)).toHaveAttribute('aria-selected', 'true'));
42
+ await expect(tabButton(0)).toHaveAttribute('aria-selected', 'false');
43
+ await expect(changes).toHaveLength(1);
44
+ await expect(tabs.value).toBe(changes[0].detail.value);
45
+ // The last tab is disabled: clicking it must not select it or emit another change.
46
+ await userEvent.click(tabButton(3));
47
+ await expect(tabButton(3)).toHaveAttribute('aria-selected', 'false');
48
+ await expect(changes).toHaveLength(1);
49
+ },
50
+ };
33
51
  export const InlineTabGroup = {
34
52
  name: 'Inline tab group',
35
53
  args: { type: 'bs-inline-tab' },
@@ -177,7 +177,7 @@ export class BsTableOfContents {
177
177
  }
178
178
  render() {
179
179
  const nodes = this.tree();
180
- return (h("nav", { key: '76e2a4abce943d0dd8e567c7ab2beef7b0d5b1c4', part: "container", class: "bs-toc", "aria-label": this.label }, !this.hideTitle && (h("p", { key: 'ba45bce72e66d2b8ccb1bcd3960c0af0f3fc3717', part: "title", id: this.titleId, class: "bs-toc__title" }, this.label)), nodes.length > 0 && this.renderList(nodes, 1), h("slot", { key: '8c1b4c8cb93c35b43cd8bf91d1473d9fe5311aa9', onSlotchange: this.readSlotted })));
180
+ return (h("nav", { key: 'd804da8cde3c5e97f62ce8c9d7bfba30d6a493b0', part: "container", class: "bs-toc", "aria-label": this.label }, !this.hideTitle && (h("p", { key: 'f797d4a7cb59639cede25a91b5ad3074dda98774', part: "title", id: this.titleId, class: "bs-toc__title" }, this.label)), nodes.length > 0 && this.renderList(nodes, 1), h("slot", { key: '06732b5cf28a816e4a504b3f64a699ec29c2697c', onSlotchange: this.readSlotted })));
181
181
  }
182
182
  static get is() { return "bs-table-of-contents"; }
183
183
  static get encapsulation() { return "shadow"; }
@@ -1,5 +1,9 @@
1
1
  import { Host, h } from "@stencil/core";
2
2
  /**
3
+ * @deprecated Use `bs-chip-informative` with `removable` and/or `href` instead -- it has the same colours and
4
+ * sizes plus the remove button and link option, so a separate tag component is redundant. `bs-tag` keeps
5
+ * working unchanged and will be removed in a later major version.
6
+ *
3
7
  * A small label that categorises or annotates an item (a topic, a keyword, a status of a record). It can be
4
8
  * neutral or coloured, optionally removable, and optionally a link.
5
9
  *
@@ -56,8 +60,8 @@ export class BsTag {
56
60
  };
57
61
  render() {
58
62
  const rel = this.href && this.target === '_blank' ? 'noopener noreferrer' : undefined;
59
- const label = h("slot", { key: '08ceba56454f3419009e4714cdb264cf377a2ca1', onSlotchange: () => (this.labelText = this.readLabel()) });
60
- return (h(Host, { key: '02747ac2c8afd9204257bbcd212bdf6db5c061fe' }, h("span", { key: '2f65cb5c37463a196f79e5a0149e0be810ae15ff', part: "container", class: { 'bs-tag': true, 'bs-tag--removable': this.removable } }, h("span", { key: '7520ed22f21e2fb3dbaa24113cf7740de1a52dcc', part: "icon", class: { 'bs-tag__icon': true, 'bs-tag__icon--visible': this.hasIcon } }, h("slot", { key: 'e6ccfd5de8815950e466a107d731a817fa5d2f06', name: "icon", onSlotchange: (e) => (this.hasIcon = e.target.assignedNodes().length > 0) })), this.href ? (h("a", { part: "label", class: "bs-tag__label bs-tag__label--link", href: this.href, target: this.target, rel: rel }, label)) : (h("span", { part: "label", class: "bs-tag__label" }, label)), this.removable && (h("bs-icon-button", { key: 'fddf2c1f5c3e8a12cd317a19652e800837c741ea', part: "remove", class: "bs-tag__remove", size: "xs", variant: "subtle", ariaLabel: `${this.removeLabel} ${this.labelText}`.trim(), onClick: this.onRemove }, h("svg", { key: '7c708bd1a08d9c8897bdb9e76b133fa2ed52a3e7', viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true" }, h("path", { key: 'b7641a61417f15eddf96fa9e580dd999b2077d08', d: "M12.5 3.5L3.5 12.5M12.5 12.5L3.5 3.5", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" })))))));
63
+ const label = h("slot", { key: '9f9ee0444b576ad3e258c942222580112acf9278', onSlotchange: () => (this.labelText = this.readLabel()) });
64
+ return (h(Host, { key: '0e7e0b30816237f8b1ff4e188989bf5494ebe5b2' }, h("span", { key: '71a97a157c57a9e4bae9f2606f8670913d92f1e2', part: "container", class: { 'bs-tag': true, 'bs-tag--removable': this.removable } }, h("span", { key: '870efd02cc59cc348465aee33f1232660353cc25', part: "icon", class: { 'bs-tag__icon': true, 'bs-tag__icon--visible': this.hasIcon } }, h("slot", { key: '6b44752833f018db3b2c4efe72fab6db9742e017', name: "icon", onSlotchange: (e) => (this.hasIcon = e.target.assignedNodes().length > 0) })), this.href ? (h("a", { part: "label", class: "bs-tag__label bs-tag__label--link", href: this.href, target: this.target, rel: rel }, label)) : (h("span", { part: "label", class: "bs-tag__label" }, label)), this.removable && (h("bs-icon-button", { key: '4cf3c5b4f886806d56fbfe453221130186ac9130', part: "remove", class: "bs-tag__remove", size: "xs", variant: "subtle", ariaLabel: `${this.removeLabel} ${this.labelText}`.trim(), onClick: this.onRemove }, h("svg", { key: '0c3313fdfd20098b98f9d864ac3143dcd647d10a', viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true" }, h("path", { key: 'eecaf5e9b0880265a5eb64973c1b9b7b5c02ab56', d: "M12.5 3.5L3.5 12.5M12.5 12.5L3.5 3.5", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" })))))));
61
65
  }
62
66
  static get is() { return "bs-tag"; }
63
67
  static get encapsulation() { return "shadow"; }
@@ -27,7 +27,7 @@ export class BsText {
27
27
  tone = 'default';
28
28
  render() {
29
29
  const Tag = this.as;
30
- return (h(Tag, { key: '249b8ddd92904587ac8eff6a585f03e8d228aae9', part: "text", class: `bs-text bs-text--${this.variant}` }, h("slot", { key: '2e29e03955058bb6feb8aff484ddf0f7d5836cd0' })));
30
+ return (h(Tag, { key: '39b932702ac56ba72165816fefadecc19899b302', part: "text", class: `bs-text bs-text--${this.variant}` }, h("slot", { key: '10c274f769fdc64b6994c967eb517997f6a00742' })));
31
31
  }
32
32
  static get is() { return "bs-text"; }
33
33
  static get encapsulation() { return "shadow"; }
@@ -200,14 +200,14 @@ export class BsTimepicker {
200
200
  return (h("div", { part: "spinner", class: "bs-timepicker__spinner" }, h("button", { part: "step", type: "button", class: "bs-timepicker__step", "aria-label": stepLabel(this.increaseLabel), tabindex: -1, onClick: () => this.stepBy(col, 1) }, h("svg", { viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true" }, h("path", { d: "M18 15L12 9L6 15", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }))), h("div", { part: "value", class: "bs-timepicker__value", role: "spinbutton", tabindex: 0, "aria-label": label, "aria-valuemin": min, "aria-valuemax": max, "aria-valuenow": n, "aria-valuetext": pad(n), onKeyDown: this.onKeyDown(col), onBlur: () => (this.typed = '') }, pad(n)), h("button", { part: "step", type: "button", class: "bs-timepicker__step", "aria-label": stepLabel(this.decreaseLabel), tabindex: -1, onClick: () => this.stepBy(col, -1) }, h("svg", { viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true" }, h("path", { d: "M6 9L12 15L18 9", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })))));
201
201
  }
202
202
  render() {
203
- return (h("bs-card", { key: 'fdbf8e19525a53d43094d1b2115c232fb0ea9500', part: "container", class: "bs-timepicker", surface: "raised" }, h("div", { key: 'a2b9aa1ce9529d3f52fd45f4ca5af02582930a15', class: "bs-timepicker__body" }, h("div", { key: 'c59f6c9fdec3a1f9ffb81aa7e5bac9421dadcd35', part: "header", class: "bs-timepicker__header" }, h("div", { key: '2825b6a11f97a7186eb6340faa816b0b6d8be28a', part: "title", class: "bs-timepicker__title" }, this.heading), h("label", { key: '4f6dc3e9768f0396b3e59943496a9d9443a8501c', class: "bs-timepicker__format" }, h("span", { key: 'b94eccc6949019c78b98051a8eba3d41a4546cf1' }, this.formatLabel), h("bs-switch", { key: '6a2d43b1b37472720d5ca1f84951dc908b37689e', part: "format-toggle", size: "md", ariaLabel: this.formatLabel, checked: !this.is12h, onBsChange: (ev) => (this.format = ev.detail ? '24h' : '12h') }))), h("div", { key: '01efb69cc03be59785b36df9fccf4452a1894225', class: "bs-timepicker__divider" }), h("div", { key: 'ead194685c2ae0976d4f134ad0231208e3fab1ea', part: "selector", class: "bs-timepicker__selector" }, this.renderColumn('hour', this.hourLabel), h("div", { key: '0250edfefe27363208489c147026462edbf7648a', part: "separator", class: "bs-timepicker__separator", "aria-hidden": "true" }, h("svg", { key: 'e79c68f3dd11a3ee9edd5d18ebd9065e4019f029', viewBox: "0 0 4 32", fill: "currentColor" }, h("circle", { key: 'b0fcd6e48bddfbf722c0aa6356be05665258cda6', cx: "2", cy: "10", r: "2" }), h("circle", { key: '892630f5f5a51aa48f97d8a7c86791aef6bd2ba2', cx: "2", cy: "22", r: "2" }))), this.renderColumn('minute', this.minuteLabel), this.is12h && (h("bs-input", { key: '502e6bebb0f241b3800b699efbb8cdbcf671597d', part: "period", class: "bs-timepicker__period", type: "dropdown", label: this.periodLabel, value: this.isPm ? 'PM' : 'AM', options: [
203
+ return (h("bs-card", { key: '57964e003d5d7d6abccb13a17e759721e2aa272e', part: "container", class: "bs-timepicker", surface: "raised" }, h("div", { key: '664469ea766475d939684231e4c1c5f01afe824a', class: "bs-timepicker__body" }, h("div", { key: '75aa6484e5fd2735ef972f3a29ebba5ce89838d4', part: "header", class: "bs-timepicker__header" }, h("div", { key: '06978e8b2b3f245d723bbf8099bc542a1ffcce78', part: "title", class: "bs-timepicker__title" }, this.heading), h("label", { key: '69154fd6015f1d945adcdf954841da6bf2d4d539', class: "bs-timepicker__format" }, h("span", { key: 'f8dadb20d719f379e5f47a888706af6b2ab0202b' }, this.formatLabel), h("bs-switch", { key: '5411272d1141e5c0c9d3742c81df88f78eb113ed', part: "format-toggle", size: "md", ariaLabel: this.formatLabel, checked: !this.is12h, onBsChange: (ev) => (this.format = ev.detail ? '24h' : '12h') }))), h("div", { key: '3cb6c8ccad07ec88afab6f9f40a1115f82ed477e', class: "bs-timepicker__divider" }), h("div", { key: '54f473f57a0c498a3267cabf84db3c1a8ba285ab', part: "selector", class: "bs-timepicker__selector" }, this.renderColumn('hour', this.hourLabel), h("div", { key: '92e9520755d52e58fe4412a073748e9928b3cff7', part: "separator", class: "bs-timepicker__separator", "aria-hidden": "true" }, h("svg", { key: 'cd55a6677dd695e5e93d296302cc429d84e01887', viewBox: "0 0 4 32", fill: "currentColor" }, h("circle", { key: 'ef746f64ebb5a49ee0f56c0c50b167316aec5053', cx: "2", cy: "10", r: "2" }), h("circle", { key: '65852107527c34a4aaec9c00fca8d5be4ef2d5aa', cx: "2", cy: "22", r: "2" }))), this.renderColumn('minute', this.minuteLabel), this.is12h && (h("bs-input", { key: '9d17f6c9401969e52ff99a4b84560617c2525300', part: "period", class: "bs-timepicker__period", type: "dropdown", label: this.periodLabel, value: this.isPm ? 'PM' : 'AM', options: [
204
204
  { label: 'AM', value: 'AM' },
205
205
  { label: 'PM', value: 'PM' },
206
206
  ], onBsChange: (ev) => {
207
207
  const pm = ev.detail === 'PM';
208
208
  if (pm !== this.isPm)
209
209
  this.hour = (this.hour + 12) % 24;
210
- } }))), h("div", { key: 'ed95958ca424696e252fe90eab8855d0bdffd89c', class: "bs-timepicker__divider" }), h("div", { key: '77c404d4617a5ee6f669a2ffba63fa5729f98cf5', part: "footer", class: "bs-timepicker__footer" }, h("bs-button", { key: 'fbeb76d30f1eea912b3e37def67f8058b74626a7', part: "cancel", variant: "subtle", onClick: this.cancel }, this.cancelLabel), h("bs-button", { key: '1baf37a0708379ef23951f76765d048087d3083b', part: "confirm", variant: "primary", onClick: this.confirm }, this.confirmLabel)))));
210
+ } }))), h("div", { key: '914705bd05bf0a3d1a8d85c671241325cc564369', class: "bs-timepicker__divider" }), h("div", { key: '1c1849dde9807f507dc0c7b1446f725f8e5971a0', part: "footer", class: "bs-timepicker__footer" }, h("bs-button", { key: '2e3bd483d598b9539b28742fba2a2dbff56a38ea', part: "cancel", variant: "subtle", onClick: this.cancel }, this.cancelLabel), h("bs-button", { key: '667c14ac6847e9d27439ea0637038deb019f0ccc', part: "confirm", variant: "primary", onClick: this.confirm }, this.confirmLabel)))));
211
211
  }
212
212
  static get is() { return "bs-timepicker"; }
213
213
  static get encapsulation() { return "shadow"; }
@@ -27,7 +27,7 @@ export class BsToast {
27
27
  this.bsDismiss.emit();
28
28
  };
29
29
  render() {
30
- return (h("div", { key: '8cca96362a50acd1f552c08163e8a2991b191d17', part: "container", class: `bs-toast bs-toast--${this.state}`, role: "status", "aria-live": this.state === 'error' ? 'assertive' : 'polite' }, h("div", { key: '01cc2a6b9b8ba851dec751efff862fe3225058be', class: "bs-toast__content" }, h("span", { key: '29ed8cc01ac3f5b46d0cb8299bc60af5fdaf281c', part: "icon", class: "bs-toast__icon", "aria-hidden": "true" }, h(StateIcon, { key: '568f57389206d284b9717fa7f1cb894f20d50cf7', state: this.state })), h("span", { key: '7271784969a334c9e5f297a1ca845c2c08d12c5d', part: "message", class: "bs-toast__message" }, h("slot", { key: 'b46cf88eb3ac95c47ea8aff52f9accd1a9755546' }))), h("div", { key: '23d69f46262dbd5a4279d608f4a72c2a9c2e1463', class: "bs-toast__actions" }, h("button", { key: '722b445b6fcf22f97ed44fca3ecd9a2d286f8bad', part: "close", type: "button", class: "bs-toast__close", "aria-label": this.dismissLabel, onClick: this.onDismiss }, h(CloseIcon, { key: '2401bd61c3f8873b8a37d2f9474850c253b1b9ab' })))));
30
+ return (h("div", { key: '5bc681de86bd983ebe893b9ea8ed94b473896982', part: "container", class: `bs-toast bs-toast--${this.state}`, role: "status", "aria-live": this.state === 'error' ? 'assertive' : 'polite' }, h("div", { key: '4842f349978fedfcceb535da81e90029d98b3432', class: "bs-toast__content" }, h("span", { key: 'c396041be59b6088c2a50ef156b218c7c2cc70d0', part: "icon", class: "bs-toast__icon", "aria-hidden": "true" }, h(StateIcon, { key: '33342d2bab947b9144e2bee18abb8292c75fe339', state: this.state })), h("span", { key: 'c6b2840d95a518e5d91dc281a81a83e6442bab1b', part: "message", class: "bs-toast__message" }, h("slot", { key: '1505051e3ce412f7b6bcefd82183717f870418b5' }))), h("div", { key: '50e3f96e3f7b325b97d3cf90771374f60aa87f24', class: "bs-toast__actions" }, h("button", { key: '69962e5d154c55372b562b45e06c07b8e16ce306', part: "close", type: "button", class: "bs-toast__close", "aria-label": this.dismissLabel, onClick: this.onDismiss }, h(CloseIcon, { key: '96d3547e268179d3f4799d43bf2d71abfbe8dc07' })))));
31
31
  }
32
32
  static get is() { return "bs-toast"; }
33
33
  static get encapsulation() { return "shadow"; }
@@ -40,6 +40,17 @@ describe('bs-toggle-button', () => {
40
40
  expect(btn.getAttribute('aria-label')).toBe('Grid view');
41
41
  expect(btn).toHaveClass('bs-toggle-button--icon-only');
42
42
  });
43
+ it('is not icon-only on the very first render when it has label text', async () => {
44
+ // The class must be right before any `slotchange` fires, or the label is hidden for a frame
45
+ // and the button briefly has no accessible name.
46
+ const el = document.createElement('bs-toggle-button');
47
+ el.textContent = 'Bold';
48
+ document.body.appendChild(el);
49
+ await el.componentOnReady();
50
+ const btn = el.shadowRoot.querySelector('button');
51
+ expect(btn).not.toHaveClass('bs-toggle-button--icon-only');
52
+ el.remove();
53
+ });
43
54
  it('tabbable=false sets tabindex -1', async () => {
44
55
  const { root } = await render(h("bs-toggle-button", { tabbable: false }, "A"));
45
56
  expect(root.shadowRoot.querySelector('button').getAttribute('tabindex')).toBe('-1');
@@ -41,6 +41,14 @@ export class BsToggleButton {
41
41
  bsChange;
42
42
  hasLabel = false;
43
43
  hasIcon = false;
44
+ // Seed from the light DOM so the first render is already correct. Waiting for `slotchange` leaves
45
+ // a frame where a labelled button is styled icon-only (label hidden, so no accessible name).
46
+ componentWillLoad() {
47
+ const children = Array.from(this.el.childNodes);
48
+ const slotOf = (n) => (n.nodeType === 1 ? n.getAttribute('slot') : null);
49
+ this.hasIcon = children.some(n => slotOf(n) === 'icon');
50
+ this.hasLabel = children.some(n => slotOf(n) === null && (n.nodeType === 1 || !!n.textContent?.trim()));
51
+ }
44
52
  onIconSlotchange = (ev) => {
45
53
  this.hasIcon = ev.target.assignedNodes().length > 0;
46
54
  };
@@ -62,7 +70,7 @@ export class BsToggleButton {
62
70
  };
63
71
  render() {
64
72
  const radio = this.mode === 'radio';
65
- return (h("button", { key: 'ec490445b357966720ae68f8f1e748d650b4028f', type: "button", part: "button", class: `bs-toggle-button ${this.pressed ? 'bs-toggle-button--pressed' : ''} ${this.hasLabel ? '' : 'bs-toggle-button--icon-only'}`, role: radio ? 'radio' : undefined, "aria-pressed": radio ? undefined : String(this.pressed), "aria-checked": radio ? String(this.pressed) : undefined, "aria-label": this.ariaLabel, disabled: this.disabled, tabindex: this.tabbable ? undefined : -1, onClick: this.onClick }, h("bs-ripple", { key: 'd774dd4ba709a7056a66148ce10a530198a6880b', part: "ripple", centered: false, disabled: this.disabled }), h("span", { key: '2379755618752fedb3c877a10513f2c62f8cbb9c', part: "icon", class: `bs-toggle-button__icon ${this.hasIcon ? 'bs-toggle-button__icon--has-content' : ''}` }, h("slot", { key: '15ad567b32ede0f8aa8bc00f3aebf232044cb2fb', name: "icon", onSlotchange: this.onIconSlotchange })), h("span", { key: 'd103bd76433e1aa4876380b6fb24061fb37b1643', part: "label", class: "bs-toggle-button__label" }, h("slot", { key: '83257a1e5543cc7e3ce490a52617c7d599605cec', onSlotchange: this.onLabelSlotchange }))));
73
+ return (h("button", { key: 'f0d0b857c75ded029be27ec9adb00d5f181a3d50', type: "button", part: "button", class: `bs-toggle-button ${this.pressed ? 'bs-toggle-button--pressed' : ''} ${this.hasLabel ? '' : 'bs-toggle-button--icon-only'}`, role: radio ? 'radio' : undefined, "aria-pressed": radio ? undefined : String(this.pressed), "aria-checked": radio ? String(this.pressed) : undefined, "aria-label": this.ariaLabel, disabled: this.disabled, tabindex: this.tabbable ? undefined : -1, onClick: this.onClick }, h("bs-ripple", { key: '4aec0e3eee4ae6a5a407833de52533fc03f6b8f3', part: "ripple", centered: false, disabled: this.disabled }), h("span", { key: '3917ef305cf87dbbda33c4770cf86e6892423b39', part: "icon", class: `bs-toggle-button__icon ${this.hasIcon ? 'bs-toggle-button__icon--has-content' : ''}` }, h("slot", { key: '4bd9d1e4da1a7a37efa980e36a07266911c04afe', name: "icon", onSlotchange: this.onIconSlotchange })), h("span", { key: 'e33eeb741ebda53df820aaec814892082fb1076d', part: "label", class: "bs-toggle-button__label" }, h("slot", { key: 'ab303182f9bcc5bb6330f59e4a1d7e2fef698db8', onSlotchange: this.onLabelSlotchange }))));
66
74
  }
67
75
  static get is() { return "bs-toggle-button"; }
68
76
  static get encapsulation() { return "shadow"; }
@@ -18,5 +18,5 @@ export const Pressed = { args: { pressed: true } };
18
18
  export const Disabled = { args: { disabled: true } };
19
19
  export const IconOnly = {
20
20
  name: 'Icon only',
21
- render: () => html `<bs-toggle-button ariaLabel="Grid view">${gridIcon}</bs-toggle-button>`,
21
+ render: () => html `<bs-toggle-button aria-label="Grid view">${gridIcon}</bs-toggle-button>`,
22
22
  };
@@ -97,7 +97,7 @@ export class BsToggleButtonGroup {
97
97
  btn?.click();
98
98
  }
99
99
  render() {
100
- return (h("div", { key: '905bc6d78ea98ca06ad49d2835daa8cbde5dfe9c', part: "group", class: "bs-toggle-button-group", role: this.multiple ? 'group' : 'radiogroup', "aria-label": this.ariaLabel, "aria-disabled": this.disabled ? 'true' : undefined }, h("slot", { key: 'f06398e10058a9f3ece77bf95a3922fb80f31a0a', onSlotchange: () => this.sync() })));
100
+ return (h("div", { key: '61d043efa2ecdf437d48bc2ca0b3d75f17a00b43', part: "group", class: "bs-toggle-button-group", role: this.multiple ? 'group' : 'radiogroup', "aria-label": this.ariaLabel, "aria-disabled": this.disabled ? 'true' : undefined }, h("slot", { key: '4b1c8e64b23cd54607c19b214b938e44dee99fef', onSlotchange: () => this.sync() })));
101
101
  }
102
102
  static get is() { return "bs-toggle-button-group"; }
103
103
  static get encapsulation() { return "shadow"; }