@brandsync/wc 1.21.0 → 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 (576) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/REFERENCE.md +2 -1
  3. package/custom-elements.json +136 -4
  4. package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
  5. package/dist/brandsync-wc/{p-7ee43b50.entry.js → p-018ab194.entry.js} +1 -1
  6. package/dist/brandsync-wc/{p-faea22be.entry.js → p-020a274b.entry.js} +1 -1
  7. package/dist/brandsync-wc/{p-3937bc23.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-f5bbbff2.entry.js → p-06a5fe99.entry.js} +1 -1
  10. package/dist/brandsync-wc/{p-383c076f.entry.js → p-0a0798c4.entry.js} +1 -1
  11. package/dist/brandsync-wc/{p-b6b880c0.entry.js → p-0b92d0d7.entry.js} +1 -1
  12. package/dist/brandsync-wc/{p-bd37c086.entry.js → p-0be65af0.entry.js} +1 -1
  13. package/dist/brandsync-wc/{p-c700a860.entry.js → p-0ce29fc2.entry.js} +1 -1
  14. package/dist/brandsync-wc/{p-34dd0976.entry.js → p-1436ae47.entry.js} +1 -1
  15. package/dist/brandsync-wc/{p-6cf303f1.entry.js → p-181a8372.entry.js} +1 -1
  16. package/dist/brandsync-wc/{p-2eed5ff2.entry.js → p-1bd3756c.entry.js} +1 -1
  17. package/dist/brandsync-wc/p-1c2402eb.entry.js +1 -0
  18. package/dist/brandsync-wc/{p-c1207ce6.entry.js → p-214b32bb.entry.js} +1 -1
  19. package/dist/brandsync-wc/{p-c305bde7.entry.js → p-21a592a4.entry.js} +1 -1
  20. package/dist/brandsync-wc/{p-64ef4a9f.entry.js → p-23e3bffe.entry.js} +1 -1
  21. package/dist/brandsync-wc/{p-324f0d11.entry.js → p-284e4e1e.entry.js} +1 -1
  22. package/dist/brandsync-wc/{p-fbd33eb3.entry.js → p-2c167f83.entry.js} +1 -1
  23. package/dist/brandsync-wc/p-2e2dc322.entry.js +1 -0
  24. package/dist/brandsync-wc/{p-b3284eca.entry.js → p-37da7465.entry.js} +1 -1
  25. package/dist/brandsync-wc/{p-56bd821c.entry.js → p-38f4552f.entry.js} +1 -1
  26. package/dist/brandsync-wc/{p-c542d67f.entry.js → p-39afd9b8.entry.js} +1 -1
  27. package/dist/brandsync-wc/{p-08af052c.entry.js → p-3a13747b.entry.js} +1 -1
  28. package/dist/brandsync-wc/{p-c5fa5d02.entry.js → p-3b3a9587.entry.js} +1 -1
  29. package/dist/brandsync-wc/{p-1ddcd867.entry.js → p-3de7989e.entry.js} +1 -1
  30. package/dist/brandsync-wc/{p-189eb922.entry.js → p-43a792a3.entry.js} +1 -1
  31. package/dist/brandsync-wc/{p-cf615c99.entry.js → p-4907f66e.entry.js} +1 -1
  32. package/dist/brandsync-wc/{p-0d3d8b6c.entry.js → p-4a8c2eca.entry.js} +1 -1
  33. package/dist/brandsync-wc/{p-da934f7b.entry.js → p-4ff5bc4b.entry.js} +1 -1
  34. package/dist/brandsync-wc/{p-2be42af3.entry.js → p-51e9d375.entry.js} +1 -1
  35. package/dist/brandsync-wc/{p-a30d456d.entry.js → p-5399e163.entry.js} +1 -1
  36. package/dist/brandsync-wc/{p-2e654764.entry.js → p-55db935b.entry.js} +1 -1
  37. package/dist/brandsync-wc/p-5f26d601.entry.js +1 -0
  38. package/dist/brandsync-wc/{p-83ea17b6.entry.js → p-60e4e07a.entry.js} +1 -1
  39. package/dist/brandsync-wc/{p-ea4ea55d.entry.js → p-645e1a78.entry.js} +1 -1
  40. package/dist/brandsync-wc/{p-05698f65.entry.js → p-682b9f3e.entry.js} +1 -1
  41. package/dist/brandsync-wc/{p-59ddf12e.entry.js → p-697de2b2.entry.js} +1 -1
  42. package/dist/brandsync-wc/{p-fc859e89.entry.js → p-6aa3dcef.entry.js} +1 -1
  43. package/dist/brandsync-wc/{p-9065d825.entry.js → p-6b11aebb.entry.js} +1 -1
  44. package/dist/brandsync-wc/{p-aea1e4f9.entry.js → p-6d18ba79.entry.js} +1 -1
  45. package/dist/brandsync-wc/p-6fcfd7d7.entry.js +1 -0
  46. package/dist/brandsync-wc/{p-4ec0dca9.entry.js → p-71ea6c1c.entry.js} +1 -1
  47. package/dist/brandsync-wc/{p-205a1ccf.entry.js → p-74dd9146.entry.js} +1 -1
  48. package/dist/brandsync-wc/{p-b9014d87.entry.js → p-75ec385a.entry.js} +1 -1
  49. package/dist/brandsync-wc/{p-82c8fde1.entry.js → p-78fdcd05.entry.js} +1 -1
  50. package/dist/brandsync-wc/{p-b0b73f22.entry.js → p-7a291cfc.entry.js} +1 -1
  51. package/dist/brandsync-wc/{p-0762a4dd.entry.js → p-7f3c8416.entry.js} +1 -1
  52. package/dist/brandsync-wc/{p-1187a158.entry.js → p-7f50ae81.entry.js} +1 -1
  53. package/dist/brandsync-wc/{p-21781ce5.entry.js → p-82533674.entry.js} +1 -1
  54. package/dist/brandsync-wc/{p-40aeeacf.entry.js → p-83977d40.entry.js} +1 -1
  55. package/dist/brandsync-wc/{p-5c1ccf35.entry.js → p-851c1498.entry.js} +1 -1
  56. package/dist/brandsync-wc/{p-cd1adef0.entry.js → p-87b91d38.entry.js} +1 -1
  57. package/dist/brandsync-wc/{p-1b41823c.entry.js → p-8a85e144.entry.js} +1 -1
  58. package/dist/brandsync-wc/{p-e56cc6ac.entry.js → p-9301f01e.entry.js} +1 -1
  59. package/dist/brandsync-wc/{p-dae0348e.entry.js → p-978c46d9.entry.js} +1 -1
  60. package/dist/brandsync-wc/{p-5f96d808.entry.js → p-9988ebab.entry.js} +1 -1
  61. package/dist/brandsync-wc/p-9a45899c.entry.js +1 -0
  62. package/dist/brandsync-wc/{p-7c627563.entry.js → p-9bd0c4a7.entry.js} +1 -1
  63. package/dist/brandsync-wc/{p-ab74da02.entry.js → p-9c1ea6f0.entry.js} +1 -1
  64. package/dist/brandsync-wc/{p-abaab890.entry.js → p-9c353a03.entry.js} +1 -1
  65. package/dist/brandsync-wc/{p-001f3790.entry.js → p-9d90d3b8.entry.js} +1 -1
  66. package/dist/brandsync-wc/{p-05a9cbda.entry.js → p-a59b4c08.entry.js} +1 -1
  67. package/dist/brandsync-wc/{p-4cdb1c8c.entry.js → p-ad53d283.entry.js} +1 -1
  68. package/dist/brandsync-wc/{p-8a3095d5.entry.js → p-ad9c3eea.entry.js} +1 -1
  69. package/dist/brandsync-wc/{p-1d2bc5b4.entry.js → p-aeb99b7d.entry.js} +1 -1
  70. package/dist/brandsync-wc/{p-f89d12d7.entry.js → p-b145997c.entry.js} +1 -1
  71. package/dist/brandsync-wc/{p-f0596399.entry.js → p-b6350eab.entry.js} +1 -1
  72. package/dist/brandsync-wc/{p-fe070433.entry.js → p-b90c8b7d.entry.js} +1 -1
  73. package/dist/brandsync-wc/{p-ac7f9aa0.entry.js → p-b93ce581.entry.js} +1 -1
  74. package/dist/brandsync-wc/p-ba933f3b.entry.js +1 -0
  75. package/dist/brandsync-wc/{p-dd8f593a.entry.js → p-bb1b2350.entry.js} +1 -1
  76. package/dist/brandsync-wc/{p-8560fb54.entry.js → p-bcb09ba4.entry.js} +1 -1
  77. package/dist/brandsync-wc/{p-9ca0d2db.entry.js → p-bde099fb.entry.js} +1 -1
  78. package/dist/brandsync-wc/{p-237f583d.entry.js → p-bf8da1b5.entry.js} +1 -1
  79. package/dist/brandsync-wc/{p-5e3fcc47.entry.js → p-c36f68a2.entry.js} +1 -1
  80. package/dist/brandsync-wc/{p-023dae02.entry.js → p-c4026551.entry.js} +1 -1
  81. package/dist/brandsync-wc/{p-513fa325.entry.js → p-c7c3c4ae.entry.js} +1 -1
  82. package/dist/brandsync-wc/{p-3592e6f3.entry.js → p-ca71e180.entry.js} +1 -1
  83. package/dist/brandsync-wc/p-cc664465.entry.js +1 -0
  84. package/dist/brandsync-wc/{p-953d0191.entry.js → p-ce3a762e.entry.js} +1 -1
  85. package/dist/brandsync-wc/{p-7cdcf7e7.entry.js → p-d38394ce.entry.js} +1 -1
  86. package/dist/brandsync-wc/{p-171db2b0.entry.js → p-d4caa814.entry.js} +1 -1
  87. package/dist/brandsync-wc/{p-1cf40f44.entry.js → p-d8dd2230.entry.js} +1 -1
  88. package/dist/brandsync-wc/{p-bc489296.entry.js → p-da091255.entry.js} +1 -1
  89. package/dist/brandsync-wc/{p-eb8da874.entry.js → p-dd7bb223.entry.js} +1 -1
  90. package/dist/brandsync-wc/{p-44c7fa4a.entry.js → p-e0d47019.entry.js} +1 -1
  91. package/dist/brandsync-wc/{p-eadbc160.entry.js → p-e8fe79bc.entry.js} +1 -1
  92. package/dist/brandsync-wc/{p-ffeea95f.entry.js → p-e90e4991.entry.js} +1 -1
  93. package/dist/brandsync-wc/{p-5cd95a12.entry.js → p-ee4f3b3d.entry.js} +1 -1
  94. package/dist/brandsync-wc/{p-cf297373.entry.js → p-f43615f7.entry.js} +1 -1
  95. package/dist/brandsync-wc/{p-64fbd43a.entry.js → p-fca95aae.entry.js} +1 -1
  96. package/dist/cjs/brandsync-wc.cjs.js +1 -1
  97. package/dist/cjs/bs-accordion-group.cjs.entry.js +1 -1
  98. package/dist/cjs/bs-ai-disclaimer.cjs.entry.js +1 -1
  99. package/dist/cjs/bs-ai-greeting.cjs.entry.js +1 -1
  100. package/dist/cjs/bs-ai-thinking.cjs.entry.js +1 -1
  101. package/dist/cjs/bs-app-recent-item_3.cjs.entry.js +4 -4
  102. package/dist/cjs/bs-app-shell.cjs.entry.js +1 -1
  103. package/dist/cjs/bs-attachment-list.cjs.entry.js +1 -1
  104. package/dist/cjs/bs-breadcrumbs.cjs.entry.js +1 -1
  105. package/dist/cjs/bs-button-skeleton.cjs.entry.js +1 -1
  106. package/dist/cjs/bs-button_2.cjs.entry.js +1 -1
  107. package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +1 -1
  108. package/dist/cjs/bs-chatbot-header.cjs.entry.js +1 -1
  109. package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +1 -1
  110. package/dist/cjs/bs-chatbot-sources-drawer.cjs.entry.js +1 -1
  111. package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +1 -1
  112. package/dist/cjs/bs-checkbox-skeleton.cjs.entry.js +1 -1
  113. package/dist/cjs/bs-chip-informative.cjs.entry.js +31 -2
  114. package/dist/cjs/bs-chip-input.cjs.entry.js +1 -1
  115. package/dist/cjs/bs-citation-preview.cjs.entry.js +1 -1
  116. package/dist/cjs/bs-command-palette.cjs.entry.js +1 -1
  117. package/dist/cjs/bs-compact-menu-block_2.cjs.entry.js +4 -4
  118. package/dist/cjs/bs-company-switcher.cjs.entry.js +2 -2
  119. package/dist/cjs/bs-composer-status-banner.cjs.entry.js +1 -1
  120. package/dist/cjs/bs-composer.cjs.entry.js +1 -1
  121. package/dist/cjs/bs-container.cjs.entry.js +1 -1
  122. package/dist/cjs/bs-data-table.cjs.entry.js +4 -2
  123. package/dist/cjs/bs-datepicker.cjs.entry.js +1 -1
  124. package/dist/cjs/bs-description-item.cjs.entry.js +1 -1
  125. package/dist/cjs/bs-description-list.cjs.entry.js +1 -1
  126. package/dist/cjs/bs-divider.cjs.entry.js +1 -1
  127. package/dist/cjs/bs-dropdown.cjs.entry.js +1 -1
  128. package/dist/cjs/bs-empty-state.cjs.entry.js +1 -1
  129. package/dist/cjs/bs-error-page.cjs.entry.js +1 -1
  130. package/dist/cjs/bs-file-upload-item.cjs.entry.js +1 -1
  131. package/dist/cjs/bs-file-upload.cjs.entry.js +1 -1
  132. package/dist/cjs/bs-global-search.cjs.entry.js +2 -2
  133. package/dist/cjs/bs-grid.cjs.entry.js +2 -2
  134. package/dist/cjs/bs-heading.cjs.entry.js +1 -1
  135. package/dist/cjs/bs-icon-button.cjs.entry.js +1 -1
  136. package/dist/cjs/bs-icon-tile.cjs.entry.js +2 -2
  137. package/dist/cjs/bs-icon.cjs.entry.js +1 -1
  138. package/dist/cjs/bs-inline-tab.cjs.entry.js +1 -1
  139. package/dist/cjs/bs-input_4.cjs.entry.js +9 -6
  140. package/dist/cjs/bs-key-caps.cjs.entry.js +1 -1
  141. package/dist/cjs/bs-key.cjs.entry.js +1 -1
  142. package/dist/cjs/bs-keyboard-shortcuts.cjs.entry.js +2 -2
  143. package/dist/cjs/bs-link.cjs.entry.js +1 -1
  144. package/dist/cjs/bs-list-item.cjs.entry.js +1 -1
  145. package/dist/cjs/bs-list.cjs.entry.js +1 -1
  146. package/dist/cjs/bs-mega-menu.cjs.entry.js +1 -1
  147. package/dist/cjs/bs-message-list.cjs.entry.js +1 -1
  148. package/dist/cjs/bs-message.cjs.entry.js +1 -1
  149. package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +1 -1
  150. package/dist/cjs/bs-navigation-drawer.cjs.entry.js +2 -2
  151. package/dist/cjs/bs-navigation-header.cjs.entry.js +2 -2
  152. package/dist/cjs/bs-page-header.cjs.entry.js +1 -1
  153. package/dist/cjs/bs-pagination.cjs.entry.js +1 -1
  154. package/dist/cjs/bs-popover.cjs.entry.js +1 -1
  155. package/dist/cjs/bs-presence.cjs.entry.js +1 -1
  156. package/dist/cjs/bs-progress-linear.cjs.entry.js +2 -2
  157. package/dist/cjs/bs-progress.cjs.entry.js +2 -2
  158. package/dist/cjs/bs-qr-code.cjs.entry.js +1 -1
  159. package/dist/cjs/bs-radio-group.cjs.entry.js +1 -1
  160. package/dist/cjs/bs-radio.cjs.entry.js +1 -1
  161. package/dist/cjs/bs-search-item.cjs.entry.js +1 -1
  162. package/dist/cjs/bs-select.cjs.entry.js +1 -1
  163. package/dist/cjs/bs-session-timeout.cjs.entry.js +1 -1
  164. package/dist/cjs/bs-shortcut-row.cjs.entry.js +1 -1
  165. package/dist/cjs/bs-skip-link.cjs.entry.js +1 -1
  166. package/dist/cjs/bs-slider.cjs.entry.js +1 -1
  167. package/dist/cjs/bs-snackbar.cjs.entry.js +1 -1
  168. package/dist/cjs/bs-source-link.cjs.entry.js +3 -3
  169. package/dist/cjs/bs-split-pane.cjs.entry.js +27 -2
  170. package/dist/cjs/bs-stack.cjs.entry.js +1 -1
  171. package/dist/cjs/bs-stat.cjs.entry.js +1 -1
  172. package/dist/cjs/bs-stepper-step.cjs.entry.js +1 -1
  173. package/dist/cjs/bs-stepper.cjs.entry.js +1 -1
  174. package/dist/cjs/bs-switch.cjs.entry.js +1 -1
  175. package/dist/cjs/bs-tab_3.cjs.entry.js +3 -3
  176. package/dist/cjs/bs-table-of-contents.cjs.entry.js +1 -1
  177. package/dist/cjs/bs-tag.cjs.entry.js +2 -2
  178. package/dist/cjs/bs-text.cjs.entry.js +1 -1
  179. package/dist/cjs/bs-timepicker.cjs.entry.js +2 -2
  180. package/dist/cjs/bs-toast.cjs.entry.js +1 -1
  181. package/dist/cjs/bs-toggle-button-group.cjs.entry.js +1 -1
  182. package/dist/cjs/bs-toggle-button.cjs.entry.js +9 -1
  183. package/dist/cjs/bs-toolbar.cjs.entry.js +1 -1
  184. package/dist/cjs/bs-tooltip-trigger.cjs.entry.js +1 -1
  185. package/dist/cjs/bs-tooltip.cjs.entry.js +1 -1
  186. package/dist/cjs/bs-tree-item.cjs.entry.js +2 -2
  187. package/dist/cjs/bs-tree.cjs.entry.js +1 -1
  188. package/dist/cjs/loader.cjs.js +1 -1
  189. package/dist/collection/components/bs-accordion/bs-accordion.stories.js +25 -1
  190. package/dist/collection/components/bs-accordion-group/bs-accordion-group.js +1 -1
  191. package/dist/collection/components/bs-ai-disclaimer/bs-ai-disclaimer.js +1 -1
  192. package/dist/collection/components/bs-ai-greeting/bs-ai-greeting.js +1 -1
  193. package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.js +1 -1
  194. package/dist/collection/components/bs-app-recent-item/bs-app-recent-item.js +3 -3
  195. package/dist/collection/components/bs-app-shell/bs-app-shell.js +1 -1
  196. package/dist/collection/components/bs-attachment-list/bs-attachment-list.js +1 -1
  197. package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.js +1 -1
  198. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.js +1 -1
  199. package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +1 -1
  200. package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.js +1 -1
  201. package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.js +1 -1
  202. package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.js +1 -1
  203. package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.js +1 -1
  204. package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js +1 -1
  205. package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.js +1 -1
  206. package/dist/collection/components/bs-checkbox/bs-checkbox.stories.js +25 -1
  207. package/dist/collection/components/bs-chip/bs-chip-informative/bs-chip-informative.cmp.test.js +44 -0
  208. package/dist/collection/components/bs-chip/bs-chip-informative/bs-chip-informative.css +30 -0
  209. package/dist/collection/components/bs-chip/bs-chip-informative/bs-chip-informative.js +139 -7
  210. package/dist/collection/components/bs-chip/bs-chip-informative/bs-chip-informative.stories.js +7 -0
  211. package/dist/collection/components/bs-chip/bs-chip-input/bs-chip-input.js +1 -1
  212. package/dist/collection/components/bs-citation-preview/bs-citation-preview.js +1 -1
  213. package/dist/collection/components/bs-command-palette/bs-command-palette.js +1 -1
  214. package/dist/collection/components/bs-compact-menu-block/bs-compact-menu-block.js +1 -1
  215. package/dist/collection/components/bs-company-switcher/bs-company-switcher.js +2 -2
  216. package/dist/collection/components/bs-composer/bs-composer.js +1 -1
  217. package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.js +1 -1
  218. package/dist/collection/components/bs-container/bs-container.js +1 -1
  219. package/dist/collection/components/bs-data-table/bs-data-table.cmp.test.js +9 -0
  220. package/dist/collection/components/bs-data-table/bs-data-table.js +24 -2
  221. package/dist/collection/components/bs-datepicker/bs-datepicker.js +1 -1
  222. package/dist/collection/components/bs-description-item/bs-description-item.js +1 -1
  223. package/dist/collection/components/bs-description-list/bs-description-list.js +1 -1
  224. package/dist/collection/components/bs-divider/bs-divider.js +1 -1
  225. package/dist/collection/components/bs-dropdown/bs-dropdown.js +1 -1
  226. package/dist/collection/components/bs-empty-state/bs-empty-state.js +1 -1
  227. package/dist/collection/components/bs-error-page/bs-error-page.js +1 -1
  228. package/dist/collection/components/bs-file-upload/bs-file-upload.js +1 -1
  229. package/dist/collection/components/bs-file-upload-item/bs-file-upload-item.js +1 -1
  230. package/dist/collection/components/bs-global-search/bs-global-search.js +2 -2
  231. package/dist/collection/components/bs-grid/bs-grid.js +2 -2
  232. package/dist/collection/components/bs-heading/bs-heading.js +1 -1
  233. package/dist/collection/components/bs-icon/bs-icon.js +1 -1
  234. package/dist/collection/components/bs-icon-tile/bs-icon-tile.js +2 -2
  235. package/dist/collection/components/bs-input/bs-input.cmp.test.js +12 -0
  236. package/dist/collection/components/bs-input/bs-input.js +26 -3
  237. package/dist/collection/components/bs-input/bs-input.stories.js +14 -0
  238. package/dist/collection/components/bs-key/bs-key.js +1 -1
  239. package/dist/collection/components/bs-key-caps/bs-key-caps.js +1 -1
  240. package/dist/collection/components/bs-keyboard-shortcuts/bs-keyboard-shortcuts.js +2 -2
  241. package/dist/collection/components/bs-link/bs-link.js +1 -1
  242. package/dist/collection/components/bs-list/bs-list.js +1 -1
  243. package/dist/collection/components/bs-list-item/bs-list-item.js +1 -1
  244. package/dist/collection/components/bs-mega-menu/bs-mega-menu.js +1 -1
  245. package/dist/collection/components/bs-menu/bs-menu.js +1 -1
  246. package/dist/collection/components/bs-menu-block/bs-menu-block.js +3 -3
  247. package/dist/collection/components/bs-menu-item/bs-menu-item.js +1 -1
  248. package/dist/collection/components/bs-message/bs-message.js +1 -1
  249. package/dist/collection/components/bs-message-list/bs-message-list.js +1 -1
  250. package/dist/collection/components/bs-page-header/bs-page-header.js +1 -1
  251. package/dist/collection/components/bs-pagination/bs-pagination.js +1 -1
  252. package/dist/collection/components/bs-popover/bs-popover.js +1 -1
  253. package/dist/collection/components/bs-presence/bs-presence.js +1 -1
  254. package/dist/collection/components/bs-progress/bs-progress.js +2 -2
  255. package/dist/collection/components/bs-progress/bs-progress.stories.js +6 -3
  256. package/dist/collection/components/bs-progress-linear/bs-progress-linear.js +2 -2
  257. package/dist/collection/components/bs-progress-linear/bs-progress-linear.stories.js +7 -5
  258. package/dist/collection/components/bs-qr-code/bs-qr-code.js +1 -1
  259. package/dist/collection/components/bs-radio/bs-radio.js +1 -1
  260. package/dist/collection/components/bs-radio-group/bs-radio-group.js +1 -1
  261. package/dist/collection/components/bs-radio-group/bs-radio-group.stories.js +15 -1
  262. package/dist/collection/components/bs-ripple/bs-ripple.js +1 -1
  263. package/dist/collection/components/bs-search-item/bs-search-item.js +1 -1
  264. package/dist/collection/components/bs-select/bs-select.js +1 -1
  265. package/dist/collection/components/bs-select/bs-select.stories.js +21 -1
  266. package/dist/collection/components/bs-session-timeout/bs-session-timeout.js +1 -1
  267. package/dist/collection/components/bs-shortcut-row/bs-shortcut-row.js +1 -1
  268. package/dist/collection/components/bs-skeleton/bs-skeleton.js +1 -1
  269. package/dist/collection/components/bs-skip-link/bs-skip-link.js +1 -1
  270. package/dist/collection/components/bs-slider/bs-slider.js +1 -1
  271. package/dist/collection/components/bs-snackbar/bs-snackbar.js +1 -1
  272. package/dist/collection/components/bs-source-link/bs-source-link.js +3 -3
  273. package/dist/collection/components/bs-spinner/bs-spinner.js +1 -1
  274. package/dist/collection/components/bs-split-pane/bs-split-pane.cmp.test.js +8 -0
  275. package/dist/collection/components/bs-split-pane/bs-split-pane.js +26 -1
  276. package/dist/collection/components/bs-stack/bs-stack.js +1 -1
  277. package/dist/collection/components/bs-stat/bs-stat.js +1 -1
  278. package/dist/collection/components/bs-stepper/bs-stepper/bs-stepper.js +1 -1
  279. package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.js +1 -1
  280. package/dist/collection/components/bs-switch/bs-switch.js +1 -1
  281. package/dist/collection/components/bs-switch/bs-switch.stories.js +33 -9
  282. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.js +1 -1
  283. package/dist/collection/components/bs-tab/bs-tab/bs-tab.js +1 -1
  284. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.js +1 -1
  285. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.stories.js +19 -1
  286. package/dist/collection/components/bs-table-of-contents/bs-table-of-contents.js +1 -1
  287. package/dist/collection/components/bs-tag/bs-tag.js +6 -2
  288. package/dist/collection/components/bs-text/bs-text.js +1 -1
  289. package/dist/collection/components/bs-timepicker/bs-timepicker.js +2 -2
  290. package/dist/collection/components/bs-toast/bs-toast.js +1 -1
  291. package/dist/collection/components/bs-toggle-button/bs-toggle-button.cmp.test.js +11 -0
  292. package/dist/collection/components/bs-toggle-button/bs-toggle-button.js +9 -1
  293. package/dist/collection/components/bs-toggle-button/bs-toggle-button.stories.js +1 -1
  294. package/dist/collection/components/bs-toggle-button-group/bs-toggle-button-group.js +1 -1
  295. package/dist/collection/components/bs-toggle-button-group/bs-toggle-button-group.stories.js +33 -3
  296. package/dist/collection/components/bs-toolbar/bs-toolbar.js +1 -1
  297. package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
  298. package/dist/collection/components/bs-tooltip-trigger/bs-tooltip-trigger.js +1 -1
  299. package/dist/collection/components/bs-tree/bs-tree.js +1 -1
  300. package/dist/collection/components/bs-tree-item/bs-tree-item.js +2 -2
  301. package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.js +1 -1
  302. package/dist/collection/components/tokens/tokens.stories.js +90 -0
  303. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +2 -2
  304. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.js +1 -1
  305. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.js +2 -2
  306. package/dist/collection/play-utils.js +24 -0
  307. package/dist/components/bs-accordion-group.js +1 -1
  308. package/dist/components/bs-ai-disclaimer.js +1 -1
  309. package/dist/components/bs-ai-greeting.js +1 -1
  310. package/dist/components/bs-ai-thinking.js +1 -1
  311. package/dist/components/bs-app-recent-item.js +1 -1
  312. package/dist/components/bs-app-shell.js +1 -1
  313. package/dist/components/bs-app-switcher.js +1 -1
  314. package/dist/components/bs-app-tile.js +1 -1
  315. package/dist/components/bs-attachment-list.js +1 -1
  316. package/dist/components/bs-attachment.js +1 -1
  317. package/dist/components/bs-avatar.js +1 -1
  318. package/dist/components/bs-breadcrumb-overflow.js +1 -1
  319. package/dist/components/bs-breadcrumbs.js +1 -1
  320. package/dist/components/bs-button-skeleton.js +1 -1
  321. package/dist/components/bs-button.js +1 -1
  322. package/dist/components/bs-carousel.js +1 -1
  323. package/dist/components/bs-chatbot-feedback.js +1 -1
  324. package/dist/components/bs-chatbot-header.js +1 -1
  325. package/dist/components/bs-chatbot-response-action.js +1 -1
  326. package/dist/components/bs-chatbot-sources-drawer.js +1 -1
  327. package/dist/components/bs-chatbot-suggestion-button.js +1 -1
  328. package/dist/components/bs-checkbox-skeleton.js +1 -1
  329. package/dist/components/bs-checkbox.js +1 -1
  330. package/dist/components/bs-chip-filter.js +1 -1
  331. package/dist/components/bs-chip-informative.js +1 -1
  332. package/dist/components/bs-chip-input.js +1 -1
  333. package/dist/components/bs-citation-preview.js +1 -1
  334. package/dist/components/bs-code-block.js +1 -1
  335. package/dist/components/bs-command-palette.js +1 -1
  336. package/dist/components/bs-compact-menu-block.js +1 -1
  337. package/dist/components/bs-company-switcher.js +1 -1
  338. package/dist/components/bs-composer-status-banner.js +1 -1
  339. package/dist/components/bs-composer.js +1 -1
  340. package/dist/components/bs-container.js +1 -1
  341. package/dist/components/bs-cookie-consent.js +1 -1
  342. package/dist/components/bs-data-table.js +1 -1
  343. package/dist/components/bs-datepicker.js +1 -1
  344. package/dist/components/bs-description-item.js +1 -1
  345. package/dist/components/bs-description-list.js +1 -1
  346. package/dist/components/bs-dialog.js +1 -1
  347. package/dist/components/bs-divider.js +1 -1
  348. package/dist/components/bs-dropdown.js +1 -1
  349. package/dist/components/bs-empty-state.js +1 -1
  350. package/dist/components/bs-error-page.js +1 -1
  351. package/dist/components/bs-file-upload-item.js +1 -1
  352. package/dist/components/bs-file-upload.js +1 -1
  353. package/dist/components/bs-global-search.js +1 -1
  354. package/dist/components/bs-grid.js +1 -1
  355. package/dist/components/bs-heading.js +1 -1
  356. package/dist/components/bs-icon-button.js +1 -1
  357. package/dist/components/bs-icon-tile.js +1 -1
  358. package/dist/components/bs-icon.js +1 -1
  359. package/dist/components/bs-inline-tab.js +1 -1
  360. package/dist/components/bs-input.js +1 -1
  361. package/dist/components/bs-key-caps.js +1 -1
  362. package/dist/components/bs-key.js +1 -1
  363. package/dist/components/bs-keyboard-shortcuts.js +1 -1
  364. package/dist/components/bs-link.js +1 -1
  365. package/dist/components/bs-list-item.js +1 -1
  366. package/dist/components/bs-list.js +1 -1
  367. package/dist/components/bs-mega-menu.js +1 -1
  368. package/dist/components/bs-menu-block.js +1 -1
  369. package/dist/components/bs-menu-item.js +1 -1
  370. package/dist/components/bs-menu.js +1 -1
  371. package/dist/components/bs-message-list.js +1 -1
  372. package/dist/components/bs-message.js +1 -1
  373. package/dist/components/bs-navigation-drawer-item.js +1 -1
  374. package/dist/components/bs-navigation-drawer.js +1 -1
  375. package/dist/components/bs-navigation-header.js +1 -1
  376. package/dist/components/bs-onboarding-checklist.js +1 -1
  377. package/dist/components/bs-page-header.js +1 -1
  378. package/dist/components/bs-pagination.js +1 -1
  379. package/dist/components/bs-popover.js +1 -1
  380. package/dist/components/bs-presence.js +1 -1
  381. package/dist/components/bs-product-tour.js +1 -1
  382. package/dist/components/bs-progress-linear.js +1 -1
  383. package/dist/components/bs-progress.js +1 -1
  384. package/dist/components/bs-qr-code.js +1 -1
  385. package/dist/components/bs-radio-group.js +1 -1
  386. package/dist/components/bs-radio.js +1 -1
  387. package/dist/components/bs-ripple.js +1 -1
  388. package/dist/components/bs-search-item.js +1 -1
  389. package/dist/components/bs-select.js +1 -1
  390. package/dist/components/bs-session-timeout.js +1 -1
  391. package/dist/components/bs-shortcut-row.js +1 -1
  392. package/dist/components/bs-side-panel.js +1 -1
  393. package/dist/components/bs-skeleton.js +1 -1
  394. package/dist/components/bs-skip-link.js +1 -1
  395. package/dist/components/bs-slider.js +1 -1
  396. package/dist/components/bs-snackbar.js +1 -1
  397. package/dist/components/bs-source-link.js +1 -1
  398. package/dist/components/bs-spinner.js +1 -1
  399. package/dist/components/bs-split-pane.js +1 -1
  400. package/dist/components/bs-stack.js +1 -1
  401. package/dist/components/bs-stat.js +1 -1
  402. package/dist/components/bs-stepper-step.js +1 -1
  403. package/dist/components/bs-stepper.js +1 -1
  404. package/dist/components/bs-switch.js +1 -1
  405. package/dist/components/bs-tab.js +1 -1
  406. package/dist/components/bs-table-of-contents.js +1 -1
  407. package/dist/components/bs-tabs.js +1 -1
  408. package/dist/components/bs-tag.js +1 -1
  409. package/dist/components/bs-text.js +1 -1
  410. package/dist/components/bs-timepicker.js +1 -1
  411. package/dist/components/bs-toast.js +1 -1
  412. package/dist/components/bs-toggle-button-group.js +1 -1
  413. package/dist/components/bs-toggle-button.js +1 -1
  414. package/dist/components/bs-toolbar.js +1 -1
  415. package/dist/components/bs-tooltip-trigger.js +1 -1
  416. package/dist/components/bs-tooltip.js +1 -1
  417. package/dist/components/bs-tree-item.js +1 -1
  418. package/dist/components/bs-tree.js +1 -1
  419. package/dist/components/bs-whats-new-entry.js +1 -1
  420. package/dist/components/bs-whats-new.js +1 -1
  421. package/dist/components/{p-B1Id2OKX.js → p--3dR13A5.js} +1 -1
  422. package/dist/components/{p-CJw83LkA.js → p-5OSJi5Hq.js} +1 -1
  423. package/dist/components/{p-Bn3Yxpe1.js → p-5yADpXI0.js} +1 -1
  424. package/dist/components/p-B1pqQBKC.js +1 -0
  425. package/dist/components/{p-i5Q__opK.js → p-B6bXreGu.js} +1 -1
  426. package/dist/components/{p-BabS3w3f.js → p-BDqzHL7T.js} +1 -1
  427. package/dist/components/{p-DY2EHN4U.js → p-BSaspygR.js} +1 -1
  428. package/dist/components/{p-CGFmvCoE.js → p-BYZ1TxxS.js} +1 -1
  429. package/dist/components/{p-BVX8P6fl.js → p-BenlMTiB.js} +1 -1
  430. package/dist/components/{p-BFv-3K2u.js → p-BkzRLgh4.js} +1 -1
  431. package/dist/components/{p-CWcci6TX.js → p-BpD6hqIE.js} +1 -1
  432. package/dist/components/{p-CvaS1abm.js → p-Bu47NRjs.js} +1 -1
  433. package/dist/components/{p-C7Qr4akd.js → p-C4NrLy_y.js} +1 -1
  434. package/dist/components/{p-AlcZrDeY.js → p-CA1qkJ9m.js} +1 -1
  435. package/dist/components/{p-C0RV5-An.js → p-CMhON6jB.js} +1 -1
  436. package/dist/components/{p-CFjeYXmC.js → p-Cau06t9C.js} +1 -1
  437. package/dist/components/{p-Bm1A449h.js → p-D9TQ0LLX.js} +1 -1
  438. package/dist/components/{p-DrlNm0Cv.js → p-DJqNdSU4.js} +1 -1
  439. package/dist/components/{p-hfcWxH0R.js → p-DLGXRivO.js} +1 -1
  440. package/dist/components/{p-bsKorXp2.js → p-DPIDWFCa.js} +1 -1
  441. package/dist/components/{p-C7IrV6pt.js → p-DQY3n0nR.js} +1 -1
  442. package/dist/components/{p-BanNal67.js → p-DfYJCczy.js} +1 -1
  443. package/dist/components/p-DoCH1kV9.js +1 -0
  444. package/dist/components/p-DpMqdknQ.js +1 -0
  445. package/dist/components/p-Dsyt34TD.js +1 -0
  446. package/dist/components/{p--AN2lu8b.js → p-Dx10cRTc.js} +1 -1
  447. package/dist/components/p-EQrsaDKp.js +1 -0
  448. package/dist/components/{p-BPxT7mqc.js → p-ESiaIgGU.js} +1 -1
  449. package/dist/components/p-OhKj-S2c.js +1 -0
  450. package/dist/components/{p-CrSwhBz7.js → p-TRtv6fbe.js} +1 -1
  451. package/dist/components/{p-B-gdXga9.js → p-_oStzQSx.js} +1 -1
  452. package/dist/components/{p-oc6e6_D0.js → p-bOSY8sKI.js} +1 -1
  453. package/dist/components/{p-Cm-s0vin.js → p-hjzkd-La.js} +1 -1
  454. package/dist/esm/brandsync-wc.js +1 -1
  455. package/dist/esm/bs-accordion-group.entry.js +1 -1
  456. package/dist/esm/bs-ai-disclaimer.entry.js +1 -1
  457. package/dist/esm/bs-ai-greeting.entry.js +1 -1
  458. package/dist/esm/bs-ai-thinking.entry.js +1 -1
  459. package/dist/esm/bs-app-recent-item_3.entry.js +4 -4
  460. package/dist/esm/bs-app-shell.entry.js +1 -1
  461. package/dist/esm/bs-attachment-list.entry.js +1 -1
  462. package/dist/esm/bs-breadcrumbs.entry.js +1 -1
  463. package/dist/esm/bs-button-skeleton.entry.js +1 -1
  464. package/dist/esm/bs-button_2.entry.js +1 -1
  465. package/dist/esm/bs-chatbot-feedback.entry.js +1 -1
  466. package/dist/esm/bs-chatbot-header.entry.js +1 -1
  467. package/dist/esm/bs-chatbot-response-action.entry.js +1 -1
  468. package/dist/esm/bs-chatbot-sources-drawer.entry.js +1 -1
  469. package/dist/esm/bs-chatbot-suggestion-button.entry.js +1 -1
  470. package/dist/esm/bs-checkbox-skeleton.entry.js +1 -1
  471. package/dist/esm/bs-chip-informative.entry.js +32 -3
  472. package/dist/esm/bs-chip-input.entry.js +1 -1
  473. package/dist/esm/bs-citation-preview.entry.js +1 -1
  474. package/dist/esm/bs-command-palette.entry.js +1 -1
  475. package/dist/esm/bs-compact-menu-block_2.entry.js +4 -4
  476. package/dist/esm/bs-company-switcher.entry.js +2 -2
  477. package/dist/esm/bs-composer-status-banner.entry.js +1 -1
  478. package/dist/esm/bs-composer.entry.js +1 -1
  479. package/dist/esm/bs-container.entry.js +1 -1
  480. package/dist/esm/bs-data-table.entry.js +4 -2
  481. package/dist/esm/bs-datepicker.entry.js +1 -1
  482. package/dist/esm/bs-description-item.entry.js +1 -1
  483. package/dist/esm/bs-description-list.entry.js +1 -1
  484. package/dist/esm/bs-divider.entry.js +1 -1
  485. package/dist/esm/bs-dropdown.entry.js +1 -1
  486. package/dist/esm/bs-empty-state.entry.js +1 -1
  487. package/dist/esm/bs-error-page.entry.js +1 -1
  488. package/dist/esm/bs-file-upload-item.entry.js +1 -1
  489. package/dist/esm/bs-file-upload.entry.js +1 -1
  490. package/dist/esm/bs-global-search.entry.js +2 -2
  491. package/dist/esm/bs-grid.entry.js +2 -2
  492. package/dist/esm/bs-heading.entry.js +1 -1
  493. package/dist/esm/bs-icon-button.entry.js +1 -1
  494. package/dist/esm/bs-icon-tile.entry.js +2 -2
  495. package/dist/esm/bs-icon.entry.js +1 -1
  496. package/dist/esm/bs-inline-tab.entry.js +1 -1
  497. package/dist/esm/bs-input_4.entry.js +9 -6
  498. package/dist/esm/bs-key-caps.entry.js +1 -1
  499. package/dist/esm/bs-key.entry.js +1 -1
  500. package/dist/esm/bs-keyboard-shortcuts.entry.js +2 -2
  501. package/dist/esm/bs-link.entry.js +1 -1
  502. package/dist/esm/bs-list-item.entry.js +1 -1
  503. package/dist/esm/bs-list.entry.js +1 -1
  504. package/dist/esm/bs-mega-menu.entry.js +1 -1
  505. package/dist/esm/bs-message-list.entry.js +1 -1
  506. package/dist/esm/bs-message.entry.js +1 -1
  507. package/dist/esm/bs-navigation-drawer-item.entry.js +1 -1
  508. package/dist/esm/bs-navigation-drawer.entry.js +2 -2
  509. package/dist/esm/bs-navigation-header.entry.js +2 -2
  510. package/dist/esm/bs-page-header.entry.js +1 -1
  511. package/dist/esm/bs-pagination.entry.js +1 -1
  512. package/dist/esm/bs-popover.entry.js +1 -1
  513. package/dist/esm/bs-presence.entry.js +1 -1
  514. package/dist/esm/bs-progress-linear.entry.js +2 -2
  515. package/dist/esm/bs-progress.entry.js +2 -2
  516. package/dist/esm/bs-qr-code.entry.js +1 -1
  517. package/dist/esm/bs-radio-group.entry.js +1 -1
  518. package/dist/esm/bs-radio.entry.js +1 -1
  519. package/dist/esm/bs-search-item.entry.js +1 -1
  520. package/dist/esm/bs-select.entry.js +1 -1
  521. package/dist/esm/bs-session-timeout.entry.js +1 -1
  522. package/dist/esm/bs-shortcut-row.entry.js +1 -1
  523. package/dist/esm/bs-skip-link.entry.js +1 -1
  524. package/dist/esm/bs-slider.entry.js +1 -1
  525. package/dist/esm/bs-snackbar.entry.js +1 -1
  526. package/dist/esm/bs-source-link.entry.js +3 -3
  527. package/dist/esm/bs-split-pane.entry.js +27 -2
  528. package/dist/esm/bs-stack.entry.js +1 -1
  529. package/dist/esm/bs-stat.entry.js +1 -1
  530. package/dist/esm/bs-stepper-step.entry.js +1 -1
  531. package/dist/esm/bs-stepper.entry.js +1 -1
  532. package/dist/esm/bs-switch.entry.js +1 -1
  533. package/dist/esm/bs-tab_3.entry.js +3 -3
  534. package/dist/esm/bs-table-of-contents.entry.js +1 -1
  535. package/dist/esm/bs-tag.entry.js +2 -2
  536. package/dist/esm/bs-text.entry.js +1 -1
  537. package/dist/esm/bs-timepicker.entry.js +2 -2
  538. package/dist/esm/bs-toast.entry.js +1 -1
  539. package/dist/esm/bs-toggle-button-group.entry.js +1 -1
  540. package/dist/esm/bs-toggle-button.entry.js +9 -1
  541. package/dist/esm/bs-toolbar.entry.js +1 -1
  542. package/dist/esm/bs-tooltip-trigger.entry.js +1 -1
  543. package/dist/esm/bs-tooltip.entry.js +1 -1
  544. package/dist/esm/bs-tree-item.entry.js +2 -2
  545. package/dist/esm/bs-tree.entry.js +1 -1
  546. package/dist/esm/loader.js +1 -1
  547. package/dist/types/components/bs-chip/bs-chip-informative/bs-chip-informative.d.ts +29 -5
  548. package/dist/types/components/bs-chip/bs-chip-informative/bs-chip-informative.stories.d.ts +2 -0
  549. package/dist/types/components/bs-data-table/bs-data-table.d.ts +2 -0
  550. package/dist/types/components/bs-input/bs-input.d.ts +3 -0
  551. package/dist/types/components/bs-progress/bs-progress.stories.d.ts +1 -0
  552. package/dist/types/components/bs-progress-linear/bs-progress-linear.stories.d.ts +1 -0
  553. package/dist/types/components/bs-split-pane/bs-split-pane.d.ts +3 -0
  554. package/dist/types/components/bs-tag/bs-tag.d.ts +4 -0
  555. package/dist/types/components/bs-toggle-button/bs-toggle-button.d.ts +1 -0
  556. package/dist/types/components/tokens/tokens.stories.d.ts +12 -0
  557. package/dist/types/components.d.ts +129 -16
  558. package/dist/types/play-utils.d.ts +6 -0
  559. package/dist/types/raw-css.d.ts +4 -0
  560. package/package.json +1 -1
  561. package/reference.d.ts +1 -1
  562. package/reference.json +6 -1
  563. package/dist/brandsync-wc/p-06277bb8.entry.js +0 -1
  564. package/dist/brandsync-wc/p-0d3d56ef.entry.js +0 -1
  565. package/dist/brandsync-wc/p-4865d4e1.entry.js +0 -1
  566. package/dist/brandsync-wc/p-48ce098c.entry.js +0 -1
  567. package/dist/brandsync-wc/p-6f0b5a91.entry.js +0 -1
  568. package/dist/brandsync-wc/p-80feac7e.entry.js +0 -1
  569. package/dist/brandsync-wc/p-99db8fca.entry.js +0 -1
  570. package/dist/brandsync-wc/p-bcb1730e.entry.js +0 -1
  571. package/dist/components/p-BCbaDQnq.js +0 -1
  572. package/dist/components/p-BoAmKy-C.js +0 -1
  573. package/dist/components/p-CkQ7TJdL.js +0 -1
  574. package/dist/components/p-Cz7CuNiM.js +0 -1
  575. package/dist/components/p-DE2x8-lX.js +0 -1
  576. package/dist/components/p-U9f09E0n.js +0 -1
@@ -13,6 +13,7 @@ const meta = {
13
13
  stroke-width=${args.strokeWidth}
14
14
  value=${args.value}
15
15
  show-label=${args.showLabel}
16
+ aria-label=${args.ariaLabel}
16
17
  ></bs-progress>
17
18
  `,
18
19
  argTypes: {
@@ -25,6 +26,7 @@ const meta = {
25
26
  },
26
27
  value: { control: { type: 'range', min: 0, max: 100 }, description: propDescription('bs-progress', 'value') },
27
28
  showLabel: { control: 'boolean', description: propDescription('bs-progress', 'show-label') },
29
+ ariaLabel: { control: 'text', description: propDescription('bs-progress', 'aria-label') },
28
30
  },
29
31
  args: {
30
32
  type: 'determinate',
@@ -32,6 +34,7 @@ const meta = {
32
34
  strokeWidth: 4,
33
35
  value: 50,
34
36
  showLabel: true,
37
+ ariaLabel: 'Upload progress',
35
38
  },
36
39
  };
37
40
  export default meta;
@@ -41,7 +44,7 @@ export const Sizes = {
41
44
  name: 'Sizes',
42
45
  render: () => html `
43
46
  <div style="display: flex; align-items: flex-end; gap: 24px;">
44
- ${sizes.map(size => html `<bs-progress size=${size} value="50"></bs-progress>`)}
47
+ ${sizes.map(size => html `<bs-progress size=${size} value="50" aria-label="Upload progress"></bs-progress>`)}
45
48
  </div>
46
49
  `,
47
50
  };
@@ -50,7 +53,7 @@ export const StrokeWidths = {
50
53
  name: 'Stroke widths',
51
54
  render: () => html `
52
55
  <div style="display: flex; align-items: flex-end; gap: 24px;">
53
- ${strokeWidths.map(strokeWidth => html `<bs-progress size="large" stroke-width=${strokeWidth} value="50"></bs-progress>`)}
56
+ ${strokeWidths.map(strokeWidth => html `<bs-progress size="large" stroke-width=${strokeWidth} value="50" aria-label="Upload progress"></bs-progress>`)}
54
57
  </div>
55
58
  `,
56
59
  };
@@ -59,7 +62,7 @@ export const Values = {
59
62
  name: 'Values',
60
63
  render: () => html `
61
64
  <div style="display: flex; align-items: flex-end; gap: 24px;">
62
- ${[0, 25, 50, 75, 100].map(value => html `<bs-progress value=${value}></bs-progress>`)}
65
+ ${[0, 25, 50, 75, 100].map(value => html `<bs-progress value=${value} aria-label="Upload progress"></bs-progress>`)}
63
66
  </div>
64
67
  `,
65
68
  };
@@ -51,13 +51,13 @@ export class BsProgressLinear {
51
51
  render() {
52
52
  const isDeterminate = this.type === 'determinate';
53
53
  const value = this.clampedValue;
54
- return (h("div", { key: '004c6c83088157d322be56114f8885cb0b81a99f', part: "container", class: "bs-progress-linear" }, h("div", { key: '5154c0601c8a7601582363cd1f13abdf102376d1', part: "track", class: `bs-progress-linear__track bs-progress-linear__track--${this.size}`, role: "progressbar", "aria-label": this.ariaLabel, "aria-valuemin": isDeterminate ? '0' : undefined, "aria-valuemax": isDeterminate ? '100' : undefined, "aria-valuenow": isDeterminate ? String(value) : undefined, "aria-busy": isDeterminate ? undefined : 'true' }, isDeterminate ? (h("div", { part: "fill", class: "bs-progress-linear__fill", style: { width: `${value}%` } })) : (
54
+ return (h("div", { key: 'ebb65abea0eeae086f7de10ec3f509145497a14a', part: "container", class: "bs-progress-linear" }, h("div", { key: '9673fd25c2191a8cac67d40a264b5b36a68e65fc', part: "track", class: `bs-progress-linear__track bs-progress-linear__track--${this.size}`, role: "progressbar", "aria-label": this.ariaLabel, "aria-valuemin": isDeterminate ? '0' : undefined, "aria-valuemax": isDeterminate ? '100' : undefined, "aria-valuenow": isDeterminate ? String(value) : undefined, "aria-busy": isDeterminate ? undefined : 'true' }, isDeterminate ? (h("div", { part: "fill", class: "bs-progress-linear__fill", style: { width: `${value}%` } })) : (
55
55
  // Figma's indeterminate bar is a soft "comet" gradient segment (transparent -> blue ->
56
56
  // transparent) sliding left-to-right across the track's full width in a loop -- the
57
57
  // same fade concept as bs-progress's indeterminate ring's conic-gradient comet tail,
58
58
  // but along a straight line via a linear-gradient + `transform: translateX(...)`
59
59
  // keyframe animation instead of a rotating conic-gradient.
60
- h("div", { part: "fill", class: "bs-progress-linear__fill bs-progress-linear__fill--indeterminate" }))), this.showLabel && this.hasLabelContent && (h("span", { key: 'b06b6c6f5bfa096ac8f186569d17c05cb55f24d4', part: "label", class: "bs-progress-linear__label" }, h("slot", { key: '58350a58d914a45a221b44c3df47424c6e45a51b' })))));
60
+ h("div", { part: "fill", class: "bs-progress-linear__fill bs-progress-linear__fill--indeterminate" }))), this.showLabel && this.hasLabelContent && (h("span", { key: 'ccaa0586c64ace7d61d0983027ffac9553d09fc1', part: "label", class: "bs-progress-linear__label" }, h("slot", { key: 'cf3582f32b00eb4f00dfe4804c61f6d10eae8421' })))));
61
61
  }
62
62
  // The default slot's assigned content lives in the host's light DOM regardless of whether a
63
63
  // <slot> is currently rendered in the shadow tree, so this can be computed directly from the
@@ -6,7 +6,7 @@ const meta = {
6
6
  title: 'Components/bs-progress/Linear',
7
7
  parameters: { docs: { description: { component: componentDescription('bs-progress-linear') } } },
8
8
  render: args => html `
9
- <bs-progress-linear type=${args.type} size=${args.size} value=${args.value} show-label=${args.showLabel}>
9
+ <bs-progress-linear type=${args.type} size=${args.size} value=${args.value} show-label=${args.showLabel} aria-label=${args.ariaLabel}>
10
10
  ${args.label}
11
11
  </bs-progress-linear>
12
12
  `,
@@ -16,6 +16,7 @@ const meta = {
16
16
  value: { control: { type: 'range', min: 0, max: 100 }, description: propDescription('bs-progress-linear', 'value') },
17
17
  showLabel: { control: 'boolean', description: propDescription('bs-progress-linear', 'show-label') },
18
18
  label: { control: 'text', description: 'Slotted label content (default slot).' },
19
+ ariaLabel: { control: 'text', description: propDescription('bs-progress-linear', 'aria-label') },
19
20
  },
20
21
  args: {
21
22
  type: 'determinate',
@@ -23,6 +24,7 @@ const meta = {
23
24
  value: 40,
24
25
  showLabel: true,
25
26
  label: 'Label',
27
+ ariaLabel: 'Upload progress',
26
28
  },
27
29
  };
28
30
  export default meta;
@@ -32,7 +34,7 @@ export const Sizes = {
32
34
  name: 'Sizes',
33
35
  render: () => html `
34
36
  <div style="display: flex; flex-direction: column; gap: 24px; width: 320px;">
35
- ${sizes.map(size => html `<bs-progress-linear size=${size} value="40">Label</bs-progress-linear>`)}
37
+ ${sizes.map(size => html `<bs-progress-linear size=${size} value="40" aria-label="Upload progress">Label</bs-progress-linear>`)}
36
38
  </div>
37
39
  `,
38
40
  };
@@ -41,7 +43,7 @@ export const Values = {
41
43
  name: 'Values',
42
44
  render: () => html `
43
45
  <div style="display: flex; flex-direction: column; gap: 24px; width: 320px;">
44
- ${[0, 25, 50, 75, 100].map(value => html `<bs-progress-linear value=${value}>${value}%</bs-progress-linear>`)}
46
+ ${[0, 25, 50, 75, 100].map(value => html `<bs-progress-linear value=${value} aria-label="Upload progress">${value}%</bs-progress-linear>`)}
45
47
  </div>
46
48
  `,
47
49
  };
@@ -50,7 +52,7 @@ export const WithoutLabel = {
50
52
  args: { showLabel: false },
51
53
  render: args => html `
52
54
  <div style="width: 320px;">
53
- <bs-progress-linear type=${args.type} size=${args.size} value=${args.value} show-label=${args.showLabel}>
55
+ <bs-progress-linear type=${args.type} size=${args.size} value=${args.value} show-label=${args.showLabel} aria-label=${args.ariaLabel}>
54
56
  ${args.label}
55
57
  </bs-progress-linear>
56
58
  </div>
@@ -60,7 +62,7 @@ export const Indeterminate = {
60
62
  args: { type: 'indeterminate' },
61
63
  render: args => html `
62
64
  <div style="width: 320px;">
63
- <bs-progress-linear type=${args.type} size=${args.size} show-label=${args.showLabel}> ${args.label} </bs-progress-linear>
65
+ <bs-progress-linear type=${args.type} size=${args.size} show-label=${args.showLabel} aria-label=${args.ariaLabel}> ${args.label} </bs-progress-linear>
64
66
  </div>
65
67
  `,
66
68
  };
@@ -168,7 +168,7 @@ export class BsQrCode {
168
168
  const buttonSize = this.size === 'sm' ? 'sm' : 'md';
169
169
  // Figma shows the unavailable actions as filled-disabled (grey) rather than a faded outline,
170
170
  // which is what bs-button's disabled primary looks like.
171
- return (h("bs-card", { key: 'ca422530afebebe0ce18ce8c1445a06d202d97d4', part: "container", class: "bs-qr-code", surface: "base" }, this.closable && (h("bs-icon-button", { key: 'f14dd77c2ce0652bf94f7b324ea0e807d3550d94', part: "close", class: "bs-qr-code__close", variant: "subtle", size: "sm", ariaLabel: this.closeLabel, onClick: () => this.bsClose.emit() }, h("svg", { key: '4a3e29041401cded70e8fa60822b48ca5d442517', viewBox: "0 0 20 20", fill: "none", stroke: "currentColor", "stroke-width": "1.6", "stroke-linecap": "round", "aria-hidden": "true" }, h("path", { key: '1e987f16f4ead0d451172f54ca73f36201aaba15', d: "M5 5L15 15M15 5L5 15" })))), h("div", { key: 'bc14d35f6b9a3e4519916faa4a58da7ba02968c2', class: "bs-qr-code__body" }, h("div", { key: 'b60b3cab47cb43b700d916c199d0e64f5c05274a', part: "head", class: "bs-qr-code__head" }, h("p", { key: '6f22983a46370ad7712ba6f0da8277aa5f2673b9', part: "title", class: "bs-qr-code__title" }, this.heading), this.description && (h("p", { key: '5cd4b55d96798d17db852c8cd763e3567de4f79a', part: "description", class: "bs-qr-code__description" }, this.description))), h("div", { key: '488b2ff294b754bd66589d7e066771ee18925949', part: "qr", class: "bs-qr-code__qr" }, h("div", { key: '082d3d22f546210f6da00e0f6742ced8fac0e49b', part: "code", class: "bs-qr-code__code" }, h("slot", { key: 'f003aa0c063f67befeb598527f214db48ab32223', name: "code" }, this.renderMatrix()), h("div", { key: '14ef033186cecb67c8ec03af3016f992645bbb83', part: "logo", class: { 'bs-qr-code__logo': true, 'bs-qr-code__logo--visible': this.hasLogo } }, h("slot", { key: '0d0716edce8fddff9b32bd50132ef5da668c56db', name: "logo", onSlotchange: (ev) => (this.hasLogo = ev.target.assignedNodes().length > 0) }))), this.renderOverlay()), this.type === 'payment' && this.amount && (h("div", { key: '83762e2cb36c66f0e6e1452408d0908abdec930c', part: "amount", class: "bs-qr-code__amount" }, this.amountLabel && h("p", { key: '7e6102877e193d34bf2ba077cccc4c6e6c32bbea', class: "bs-qr-code__amount-label" }, this.amountLabel), h("p", { key: '7ed0e74a2e91dd70da9ab71ceb883ee4ea323dfd', class: "bs-qr-code__amount-value" }, this.amount))), this.type === 'default' && this.url && (h("div", { key: 'd45463defa962c51192ff2f067a5abe3aaf37a05', part: "url", class: "bs-qr-code__url" }, this.url)), this.expiry && (h("bs-chip-informative", { key: 'eac00eec4fdb9ac8d0537fa9b6fa8e2cdc6204e7', part: "expiry", size: "md" }, h(TimerIcon, { key: '5f758aa92580f589a1315d2e921ac185271fd94a', slot: "icon" }), this.expiry)), showActions && (h("div", { key: 'ca4ab2498dcb3bf0b9ddbc83e6a8a2416dcd9e10', part: "actions", class: "bs-qr-code__actions" }, !this.hideDownload && (h("bs-button", { key: '8dd9eb4372b1af1afbba0bc987885f578c3c6b6d', part: "download", variant: interactive ? 'outlined' : 'primary', size: buttonSize, disabled: !interactive, onClick: () => interactive && this.bsDownload.emit() }, h(DownloadIcon, { key: '53ae611b745f51f4e5ec5e011a94fe00a5be1bed', slot: "icon" }), this.downloadLabel)), !this.hideCopy && (h("bs-button", { key: 'deed453a9bc0a5ed2df2e003b02f14723ef0796a', part: "copy", variant: interactive ? 'outlined' : 'primary', size: buttonSize, disabled: !interactive, onClick: () => interactive && this.onCopy() }, h(CopyIcon, { key: 'b0fdf348b30aec104094578afa392a3cc1c6ddac', slot: "icon" }), this.copyLabel)))))));
171
+ return (h("bs-card", { key: 'acac137c9373a4e33e03de20577625674aeeec64', part: "container", class: "bs-qr-code", surface: "base" }, this.closable && (h("bs-icon-button", { key: 'da324148b093c87218dcba26ca7ffb16ee0f2790', part: "close", class: "bs-qr-code__close", variant: "subtle", size: "sm", ariaLabel: this.closeLabel, onClick: () => this.bsClose.emit() }, h("svg", { key: '6acba64213477d592b7f234270422a14fbe05b79', viewBox: "0 0 20 20", fill: "none", stroke: "currentColor", "stroke-width": "1.6", "stroke-linecap": "round", "aria-hidden": "true" }, h("path", { key: '8b546585eec6f52bbb2ce845e17f49e1cdbe579c', d: "M5 5L15 15M15 5L5 15" })))), h("div", { key: 'd63f0bffd499637c20177905b931dd7fc62f55c7', class: "bs-qr-code__body" }, h("div", { key: 'bc0ac041e8bd83d5f30491b8d03aa593913665cc', part: "head", class: "bs-qr-code__head" }, h("p", { key: '8c2c150daddf98ef7e32aee7ee7972203185cc1f', part: "title", class: "bs-qr-code__title" }, this.heading), this.description && (h("p", { key: 'c2535fbccf5c9a33fbc416399fa589091da94278', part: "description", class: "bs-qr-code__description" }, this.description))), h("div", { key: '9fa8b02d1dcd4edcf5d937db44a2d0e1d4bbd307', part: "qr", class: "bs-qr-code__qr" }, h("div", { key: '502affeb1af80fc3af626af9b5c179444982b249', part: "code", class: "bs-qr-code__code" }, h("slot", { key: 'a802218022f125612fd61f63854005a2bed3223c', name: "code" }, this.renderMatrix()), h("div", { key: '045351ad97351e49131fbf79996350fd9af6160d', part: "logo", class: { 'bs-qr-code__logo': true, 'bs-qr-code__logo--visible': this.hasLogo } }, h("slot", { key: 'e4b05ef5c4e5df468a0fb3c0ec245a0e4a53a609', name: "logo", onSlotchange: (ev) => (this.hasLogo = ev.target.assignedNodes().length > 0) }))), this.renderOverlay()), this.type === 'payment' && this.amount && (h("div", { key: '6a338d449756d1c6e0c5d59604d614acf3938811', part: "amount", class: "bs-qr-code__amount" }, this.amountLabel && h("p", { key: '60657d505fe402761d84f562f929726f528e792a', class: "bs-qr-code__amount-label" }, this.amountLabel), h("p", { key: 'c757d8d15955b352fc9eced1e4fb116f8e39afc4', class: "bs-qr-code__amount-value" }, this.amount))), this.type === 'default' && this.url && (h("div", { key: '59d77665d6e850cb9bc3c60d2b39e3abd61fa546', part: "url", class: "bs-qr-code__url" }, this.url)), this.expiry && (h("bs-chip-informative", { key: '412542db129e3b1335eb9e754c0b981f496f72f1', part: "expiry", size: "md" }, h(TimerIcon, { key: '0721618163064e70e5b181c8bac7296214b72d86', slot: "icon" }), this.expiry)), showActions && (h("div", { key: 'dfc0aa9a44c623dbee6ffca247b21af2ff791545', part: "actions", class: "bs-qr-code__actions" }, !this.hideDownload && (h("bs-button", { key: 'e7ce8219ff5f35a05c64dcf62995b2b531cd37f2', part: "download", variant: interactive ? 'outlined' : 'primary', size: buttonSize, disabled: !interactive, onClick: () => interactive && this.bsDownload.emit() }, h(DownloadIcon, { key: 'b936f66da8e66bc4ad5cee666d63c16892dcccf6', slot: "icon" }), this.downloadLabel)), !this.hideCopy && (h("bs-button", { key: 'ef1fe130c78f47d774c174978e0f242101b2f6eb', part: "copy", variant: interactive ? 'outlined' : 'primary', size: buttonSize, disabled: !interactive, onClick: () => interactive && this.onCopy() }, h(CopyIcon, { key: 'd4a3e188b650994ff4bd3848ac3baf70ece52646', slot: "icon" }), this.copyLabel)))))));
172
172
  }
173
173
  static get is() { return "bs-qr-code"; }
174
174
  static get encapsulation() { return "shadow"; }
@@ -109,7 +109,7 @@ export class BsRadio {
109
109
  }
110
110
  };
111
111
  render() {
112
- return (h("label", { key: 'f306e00e27f679e419cfa5f4fa645ce890b5f595', class: `bs-radio ${this.disabled ? 'bs-radio--disabled' : ''}` }, h("input", { key: '8d531aa5fc6616bd2179e63a9ac1f801d8c5a0a0', class: "bs-radio__input", type: "radio", name: this.name, value: this.value, checked: this.checked, disabled: this.disabled, "aria-label": this.ariaLabel, tabIndex: this.checked || !this.groupHasChecked ? 0 : -1, onKeyDown: this.onKeyDown, onChange: this.onChange }), h("span", { key: '4b34023e14a244d775b78a0d3448abf11675df9d', class: "bs-radio__hit-area" }, h("bs-ripple", { key: 'a5e40330de337e361eb20f833a4a8043abe7f57e', part: "ripple", class: "bs-radio__ripple", centered: true, triggerSelector: ".bs-radio", disabled: this.disabled }), h("span", { key: 'b2474d2435bd670c0d314af20c33c86eca87ec70', class: "bs-radio__state-layer" }, h("span", { key: 'fecc8416c4d534cc061f86b10e3bc471719990e6', part: "circle", class: `bs-radio__circle ${this.checked ? 'bs-radio__circle--selected' : ''}` }, this.checked && h("span", { key: '24941aede8c24ed27dff8f033732d779579d08c2', part: "dot", class: "bs-radio__dot" })))), h("span", { key: 'b51c9ac9b90d9cc4498aeeadabf1539409649db3', part: "label", class: "bs-radio__label" }, h("slot", { key: 'aea76fb7e8d2330e1b02858af95e721af60dc4f1' }))));
112
+ return (h("label", { key: '8fe69faddaab6937235d4b949f51e8f71a5e8f86', class: `bs-radio ${this.disabled ? 'bs-radio--disabled' : ''}` }, h("input", { key: 'da0f6c12e2e9900d0679afb22dd9c2b48d9561e3', class: "bs-radio__input", type: "radio", name: this.name, value: this.value, checked: this.checked, disabled: this.disabled, "aria-label": this.ariaLabel, tabIndex: this.checked || !this.groupHasChecked ? 0 : -1, onKeyDown: this.onKeyDown, onChange: this.onChange }), h("span", { key: '365fdee2ea5a087dbf44cbfe5b7e3f1ec74e3cbe', class: "bs-radio__hit-area" }, h("bs-ripple", { key: '3937ed7859d9579555a3bf05494628e1ba240096', part: "ripple", class: "bs-radio__ripple", centered: true, triggerSelector: ".bs-radio", disabled: this.disabled }), h("span", { key: '1180c9932b5489228318f1d46d643ec8c6234c2f', class: "bs-radio__state-layer" }, h("span", { key: 'c0d2d0defc96fb2e875840d14cf2da97d50a5b89', part: "circle", class: `bs-radio__circle ${this.checked ? 'bs-radio__circle--selected' : ''}` }, this.checked && h("span", { key: 'd5f335acf4df51c1e5acb87aed111cea2aeb9987', part: "dot", class: "bs-radio__dot" })))), h("span", { key: '306438ba56a512bda5bf9bebf0ce4188b2461353', part: "label", class: "bs-radio__label" }, h("slot", { key: '00cb4aafde55424c58f72ba4d04b16e757171814' }))));
113
113
  }
114
114
  static get is() { return "bs-radio"; }
115
115
  static get encapsulation() { return "shadow"; }
@@ -90,7 +90,7 @@ export class BsRadioGroup {
90
90
  const labelId = `${this.id}-label`;
91
91
  const descId = `${this.id}-desc`;
92
92
  const note = this.error || this.description;
93
- return (h("div", { key: 'cfc1e80a169ffcb0bed6172a23ebf764a1f0f424', part: "group", class: { 'bs-radio-group': true, 'bs-radio-group--error': !!this.error }, role: "radiogroup", "aria-labelledby": this.label ? labelId : undefined, "aria-describedby": note ? descId : undefined, "aria-invalid": this.error ? 'true' : undefined, "aria-required": this.required ? 'true' : undefined }, this.label && (h("span", { key: '4cac10e71108811c7138c1e0309d6faacf671e58', id: labelId, part: "label", class: "bs-radio-group__label" }, this.label, this.required && h("span", { key: 'f7f64cf3452d0a52a9823d1cf9db2d89941b27b3', "aria-hidden": "true" }, " *"))), h("div", { key: 'b6123200ba34f2507289996c995022a7cc42f26e', part: "options", class: "bs-radio-group__options" }, h("slot", { key: '482111d3caaec3ff0ec4dfaf7b5e951bd9052552', onSlotchange: this.onSlotchange })), note && (h("span", { key: 'b4c663c6fc2626a92210562ea530c8293638e266', id: descId, part: this.error ? 'error' : 'description', class: this.error ? 'bs-radio-group__error' : 'bs-radio-group__description' }, this.error || this.description))));
93
+ return (h("div", { key: '47cc53ab00dd36c03e421cbf5eda4c32b91442ec', part: "group", class: { 'bs-radio-group': true, 'bs-radio-group--error': !!this.error }, role: "radiogroup", "aria-labelledby": this.label ? labelId : undefined, "aria-describedby": note ? descId : undefined, "aria-invalid": this.error ? 'true' : undefined, "aria-required": this.required ? 'true' : undefined }, this.label && (h("span", { key: '7d52c46d6fc5929b71df5597e31d1292b1dcac49', id: labelId, part: "label", class: "bs-radio-group__label" }, this.label, this.required && h("span", { key: '7693050336567a5916f9fb6c23879649d8d2df3e', "aria-hidden": "true" }, " *"))), h("div", { key: '11622d25f87f4bd4b9cf13a0f3f099d986f77494', part: "options", class: "bs-radio-group__options" }, h("slot", { key: 'e337931a641588403008e622c558b1512de69f78', onSlotchange: this.onSlotchange })), note && (h("span", { key: 'f446de2184455d4c497a7daf18ef07605c6c64cd', id: descId, part: this.error ? 'error' : 'description', class: this.error ? 'bs-radio-group__error' : 'bs-radio-group__description' }, this.error || this.description))));
94
94
  }
95
95
  static get is() { return "bs-radio-group"; }
96
96
  static get encapsulation() { return "shadow"; }
@@ -1,6 +1,8 @@
1
1
  import { html } from "lit";
2
2
  import { ifDefined } from "lit/directives/if-defined.js";
3
3
  import { componentDescription } from "../../stories-utils";
4
+ import { expect, userEvent, waitFor } from "storybook/test";
5
+ import { ready, inShadow, recordEvents } from "../../play-utils";
4
6
  const meta = {
5
7
  title: 'Components/bs-radio-group',
6
8
  parameters: { docs: { description: { component: componentDescription('bs-radio-group') } } },
@@ -29,7 +31,19 @@ const meta = {
29
31
  args: { label: 'Billing period', description: '', error: '', orientation: 'vertical', required: false, value: 'monthly' },
30
32
  };
31
33
  export default meta;
32
- export const Default = {};
34
+ export const Default = {
35
+ play: async ({ canvasElement }) => {
36
+ const group = await ready(canvasElement, 'bs-radio-group');
37
+ const changes = recordEvents(group, 'bsChange');
38
+ const radio = async (value) => inShadow(await ready(canvasElement, `bs-radio[value="${value}"]`), 'input');
39
+ await expect(await radio('monthly')).toBeChecked();
40
+ await userEvent.click(await radio('yearly'));
41
+ await waitFor(() => expect(group.value).toBe('yearly'));
42
+ await expect(await radio('yearly')).toBeChecked();
43
+ await waitFor(async () => expect(await radio('monthly')).not.toBeChecked());
44
+ await expect(changes.map(e => e.detail)).toEqual(['yearly']);
45
+ },
46
+ };
33
47
  export const Horizontal = { args: { orientation: 'horizontal' } };
34
48
  export const WithHelperText = { name: 'With helper text', args: { description: 'You can change this later.', required: true } };
35
49
  export const WithError = { name: 'With error', args: { value: '', required: true, error: 'Choose a billing period.' } };
@@ -101,7 +101,7 @@ export class BsRipple {
101
101
  return 0;
102
102
  }
103
103
  render() {
104
- return (h(Host, { key: 'f1046b962acdf37311a3c1af1e0dcbdc112008fa', "aria-hidden": "true" }, h("div", { key: '444cd2910477b66aa0f5183050621a83101f0f66', part: "surface", class: "bs-ripple", ref: el => (this.surface = el) })));
104
+ return (h(Host, { key: 'b8368df07d335750d51c9e885100c9f51f1cc568', "aria-hidden": "true" }, h("div", { key: '47af802e56c92f1d2496a4f925f074aa287d785f', part: "surface", class: "bs-ripple", ref: el => (this.surface = el) })));
105
105
  }
106
106
  static get is() { return "bs-ripple"; }
107
107
  static get encapsulation() { return "shadow"; }
@@ -69,7 +69,7 @@ export class BsSearchItem {
69
69
  slotFilled = (set) => (ev) => set(ev.target.assignedNodes().length > 0);
70
70
  render() {
71
71
  const role = this.selectionRole ?? undefined;
72
- return (h("div", { key: '4e893a0005ebd09facffe756cf47d393cbb19a2a', part: "container", class: "bs-search-item", role: role, "aria-selected": role ? String(this.active) : undefined, "aria-disabled": this.disabled ? 'true' : undefined }, !this.disabled && h("bs-ripple", { key: 'ed44f2b37d8c7fa740c69a5a734b2a1bb4b34ebc', part: "ripple" }), h("span", { key: 'c013610e802e299f8f3ac8307061e01155e9d35f', part: "icon", class: { 'bs-search-item__icon': true, 'bs-search-item__icon--hidden': !this.hasIcon } }, h("slot", { key: '79bbb9cf256885b7540485d68cf1f4492a336393', name: "icon", onSlotchange: this.slotFilled(v => (this.hasIcon = v)) })), h("span", { key: '5dc3f4f00182d13f3a79828170a9573d65f3f6ff', part: "content", class: "bs-search-item__content" }, h("span", { key: '3aefdebe10cedee45b2ba83feb3ef6dddaaead8e', part: "label", class: "bs-search-item__label" }, h("slot", { key: '150ad4ff3e29288b63ebdae2d456ed0f182b09be' })), h("span", { key: 'dc2ff7caa2f9d8313d810efb1d7ff4d7751036cc', part: "description", class: { 'bs-search-item__description': true, 'bs-search-item__description--hidden': !this.hasDescription } }, h("slot", { key: 'bb7a747ce8b5a8c4c48313361fa43c009755aba9', name: "description", onSlotchange: this.slotFilled(v => (this.hasDescription = v)) }))), h("span", { key: '38c442550fcdeebf667a70af3105775a9b02d57e', part: "trailing", class: { 'bs-search-item__trailing': true, 'bs-search-item__trailing--hidden': !this.hasTrailingSlot && !this.trailing } }, h("slot", { key: 'a66b8babf306a4fb1e0aacf45caf642e843a270b', name: "trailing", onSlotchange: this.slotFilled(v => (this.hasTrailingSlot = v)) }, this.trailing))));
72
+ return (h("div", { key: '6c0faf1a5d945dbdfcaf6ff5e23a6029efb0ab62', part: "container", class: "bs-search-item", role: role, "aria-selected": role ? String(this.active) : undefined, "aria-disabled": this.disabled ? 'true' : undefined }, !this.disabled && h("bs-ripple", { key: 'ae363a22e2d4d40045b2afc739f41c5e5eabf508', part: "ripple" }), h("span", { key: 'f8d861cffe529ab1b119bbc59f71042b0cee3820', part: "icon", class: { 'bs-search-item__icon': true, 'bs-search-item__icon--hidden': !this.hasIcon } }, h("slot", { key: 'fe1e31814f84747c1ebf148211d3c703cac74c35', name: "icon", onSlotchange: this.slotFilled(v => (this.hasIcon = v)) })), h("span", { key: '872182c11ea6fb19b80b2630a5898acb00bfe53c', part: "content", class: "bs-search-item__content" }, h("span", { key: '3fe5621200fbff4021b677b740b189f181aa9b68', part: "label", class: "bs-search-item__label" }, h("slot", { key: '3c996c15654a841c63897c551c7f8d7d00946390' })), h("span", { key: '17a925fc22786a02cfce8573060df2690680374a', part: "description", class: { 'bs-search-item__description': true, 'bs-search-item__description--hidden': !this.hasDescription } }, h("slot", { key: '134aa77acfa05875bb0cc551bcad3e746c0e27d2', name: "description", onSlotchange: this.slotFilled(v => (this.hasDescription = v)) }))), h("span", { key: 'cd18deec1f4cdd5420d96a2a4dcb82ec5d846bc1', part: "trailing", class: { 'bs-search-item__trailing': true, 'bs-search-item__trailing--hidden': !this.hasTrailingSlot && !this.trailing } }, h("slot", { key: '869bf9df401f4958a368f1c9a3e8a93bc1c20e61', name: "trailing", onSlotchange: this.slotFilled(v => (this.hasTrailingSlot = v)) }, this.trailing))));
73
73
  }
74
74
  static get is() { return "bs-search-item"; }
75
75
  static get encapsulation() { return "shadow"; }
@@ -221,7 +221,7 @@ export class BsSelect {
221
221
  const fieldClasses = ['bs-select__field', this.error ? 'bs-select__field--error' : '', this.disabled ? 'bs-select__field--disabled' : '', this.open ? 'bs-select__field--open' : '']
222
222
  .filter(Boolean)
223
223
  .join(' ');
224
- return (h("div", { key: 'ebde3002856a4effa89249b70a5a51bcaa107367', class: `bs-select ${this.error ? 'bs-select--error' : ''}` }, this.label && (h("span", { key: 'b0b80484156f29d560901f64786988e0d0071bf7', part: "label", id: labelId, class: "bs-select__label", onClick: () => !this.disabled && this.fieldEl?.focus() }, this.label, this.required && (h("span", { key: 'a43acdc97df00ad5ac1b2d74903ed7e8616ce32f', class: "bs-select__required", "aria-hidden": "true" }, "*")))), h("div", { key: '84eb4775e064d56644395555e5488a22d718e9bb', class: "bs-select__wrapper" }, h("div", { key: '5d81b1ce333fa45eda0e46f30a11f8bff21fee64', part: "field", class: fieldClasses, ref: el => (this.fieldEl = el), role: "combobox", tabindex: this.disabled ? -1 : 0, "aria-haspopup": "listbox", "aria-expanded": String(this.open), "aria-controls": listId, "aria-labelledby": this.label ? labelId : undefined, "aria-label": this.label ? undefined : this.ariaLabel, "aria-activedescendant": this.open && this.activeIndex >= 0 ? optId(this.activeIndex) : undefined, "aria-describedby": this.error || this.description ? msgId : undefined, "aria-invalid": this.error ? 'true' : undefined, "aria-required": this.required ? 'true' : undefined, "aria-disabled": this.disabled ? 'true' : undefined, onClick: this.onFieldClick, onKeyDown: this.onKeyDown, onBlur: this.onBlur }, h("span", { key: '08340b9d62f1633753a6858b24a38ef49ba3d382', part: "value", class: `bs-select__value ${selected ? '' : 'bs-select__value--placeholder'}` }, selected ? selected.label : this.placeholder), h("svg", { key: 'df5e92b3555c508617c899ea8b597d980af3295f', part: "icon", class: "bs-select__chevron", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true" }, h("path", { key: '991d65667ae91e25cb39a12a8066bb81288b84e5', d: "M4 6L8 10L12 6", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }))), h("ul", { key: '42256fc2bff2d31bde0347192ded1fdf56be043f', part: "listbox", id: listId, class: "bs-select__listbox", role: "listbox", "aria-labelledby": this.label ? labelId : undefined, "aria-label": this.label ? undefined : this.ariaLabel, hidden: !this.open, ref: el => (this.listEl = el), onMouseDown: (ev) => ev.preventDefault() }, this.options.map((o, i) => (h("li", { part: "option", id: optId(i), key: o.value, role: "option", "aria-selected": String(o.value === this.value), "aria-disabled": o.disabled ? 'true' : undefined, class: ['bs-select__option', i === this.activeIndex ? 'bs-select__option--active' : '', o.disabled ? 'bs-select__option--disabled' : '', o.value === this.value ? 'bs-select__option--selected' : '']
224
+ return (h("div", { key: '4aed1f57bb8649ab29946658e9b2248377e32306', class: `bs-select ${this.error ? 'bs-select--error' : ''}` }, this.label && (h("span", { key: '91955ebde96948c58c1fbd1c9293b006bbcad591', part: "label", id: labelId, class: "bs-select__label", onClick: () => !this.disabled && this.fieldEl?.focus() }, this.label, this.required && (h("span", { key: 'd5beb71e22df9e41f07c54dc305240dce7f9c44e', class: "bs-select__required", "aria-hidden": "true" }, "*")))), h("div", { key: '12154c69cb340dbb5920a89ef844fb61e1e71c5f', class: "bs-select__wrapper" }, h("div", { key: '6725f28ae24c0c1297ce51651d097d516cc50f30', part: "field", class: fieldClasses, ref: el => (this.fieldEl = el), role: "combobox", tabindex: this.disabled ? -1 : 0, "aria-haspopup": "listbox", "aria-expanded": String(this.open), "aria-controls": listId, "aria-labelledby": this.label ? labelId : undefined, "aria-label": this.label ? undefined : this.ariaLabel, "aria-activedescendant": this.open && this.activeIndex >= 0 ? optId(this.activeIndex) : undefined, "aria-describedby": this.error || this.description ? msgId : undefined, "aria-invalid": this.error ? 'true' : undefined, "aria-required": this.required ? 'true' : undefined, "aria-disabled": this.disabled ? 'true' : undefined, onClick: this.onFieldClick, onKeyDown: this.onKeyDown, onBlur: this.onBlur }, h("span", { key: '7640eea18ff247d361e5181dda85bb7631d6beb3', part: "value", class: `bs-select__value ${selected ? '' : 'bs-select__value--placeholder'}` }, selected ? selected.label : this.placeholder), h("svg", { key: '4ecf0f4eef95f9050d8c0bda3a7f3a2845fad1d8', part: "icon", class: "bs-select__chevron", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true" }, h("path", { key: '874cf7736a8f0aff3e26935bdafdba41ac4c1e19', d: "M4 6L8 10L12 6", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }))), h("ul", { key: 'c3166fb6b4716ab49f98a88be697bdb6a09cd2ed', part: "listbox", id: listId, class: "bs-select__listbox", role: "listbox", "aria-labelledby": this.label ? labelId : undefined, "aria-label": this.label ? undefined : this.ariaLabel, hidden: !this.open, ref: el => (this.listEl = el), onMouseDown: (ev) => ev.preventDefault() }, this.options.map((o, i) => (h("li", { part: "option", id: optId(i), key: o.value, role: "option", "aria-selected": String(o.value === this.value), "aria-disabled": o.disabled ? 'true' : undefined, class: ['bs-select__option', i === this.activeIndex ? 'bs-select__option--active' : '', o.disabled ? 'bs-select__option--disabled' : '', o.value === this.value ? 'bs-select__option--selected' : '']
225
225
  .filter(Boolean)
226
226
  .join(' '), onClick: () => this.commit(i), onMouseMove: () => !o.disabled && this.activeIndex !== i && (this.activeIndex = i) }, h("span", { class: "bs-select__option-label" }, o.label), o.value === this.value && (h("svg", { class: "bs-select__check", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true" }, h("path", { d: "M3.5 8.5L6.5 11.5L12.5 4.5", stroke: "currentColor", "stroke-width": "1.75", "stroke-linecap": "round", "stroke-linejoin": "round" })))))))), this.error ? (h("span", { id: msgId, part: "error", class: "bs-select__error" }, this.error)) : this.description ? (h("span", { id: msgId, part: "description", class: "bs-select__description" }, this.description)) : null));
227
227
  }
@@ -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 fruit = [
4
6
  { label: 'Apple', value: 'apple' },
5
7
  { label: 'Banana', value: 'banana' },
@@ -36,7 +38,25 @@ const meta = {
36
38
  args: { label: 'Fruit', placeholder: 'Select a fruit', description: '', error: '', disabled: false, required: false, value: '' },
37
39
  };
38
40
  export default meta;
39
- export const Default = {};
41
+ export const Default = {
42
+ play: async ({ canvasElement }) => {
43
+ const host = await ready(canvasElement, 'bs-select');
44
+ const changes = recordEvents(host, 'bsChange');
45
+ const field = inShadow(host, '[part="field"]');
46
+ const option = (i) => host.shadowRoot.querySelectorAll('[part="option"]')[i];
47
+ await expect(field).toHaveAttribute('aria-expanded', 'false');
48
+ await userEvent.click(field);
49
+ await waitFor(() => expect(field).toHaveAttribute('aria-expanded', 'true'));
50
+ // "Blueberry (sold out)" is disabled: clicking it must not select it.
51
+ await userEvent.click(option(2));
52
+ await expect(host.value).toBe('');
53
+ await expect(changes).toHaveLength(0);
54
+ await userEvent.click(option(1));
55
+ await waitFor(() => expect(host.value).toBe('banana'));
56
+ await expect(changes.map(e => e.detail)).toEqual(['banana']);
57
+ await waitFor(() => expect(field).toHaveAttribute('aria-expanded', 'false'));
58
+ },
59
+ };
40
60
  export const WithHelperText = {
41
61
  name: 'With helper text',
42
62
  args: { description: 'Pick the fruit you want in the box.' },
@@ -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: '69492b1be5aba242ffdeacd2181a9b4007c97300', part: "container", class: "bs-session-timeout", surface: "base", role: "region", "aria-labelledby": "heading" }, h("div", { key: 'a7ad5d3d7e58f159efb282ffe0dbfd0a7c2ad120', class: "bs-session-timeout__body" }, !this.hideIcon && (h("bs-icon-tile", { key: '2a813414653c152354dea524d3a605c5945dee84', part: "art", intent: d.intent, size: "lg" }, h("slot", { key: '45b0ff33e36f2d13f9544981eefe9d54f5fff640', name: "icon" }, d.glyph()))), this.renderHeading(heading, description), this.type === 'warning' && this.renderWarning(), this.type === 'warning' && this.savedMessage && (h("p", { key: '1a08b4612f6e4d152445b15f1ace42d039ce2716', part: "saved", class: "bs-session-timeout__saved" }, h(InfoIcon, { key: 'e84a18ce87b52f5bd1a6b8faf233883f005d512b' }), h("span", { key: 'cac0e19552062075cac38780f30f7ccea88dd9b8' }, this.savedMessage))), this.type === 'signed-out' && this.renderAccount(), this.type === 'confirm-identity' && this.renderConfirm(), this.type === 'warning' && (primary || secondary) && (h("div", { key: '927ce76f8956112938619fff025cdb80add48cb7', part: "actions", class: "bs-session-timeout__actions" }, secondary && (h("bs-button", { key: 'a607a2defd1ca2bfaf82dad2c493867bac123be4', part: "secondary", variant: "outlined", onClick: () => this.bsSecondary.emit() }, secondary)), primary && (h("bs-button", { key: '88357d0a2238ea9cbdf5cd03db3cc2f28cdcb322', part: "primary", variant: "primary", onClick: () => this.bsPrimary.emit() }, primary)))), this.type === 'signed-out' && (primary || secondary) && (h("div", { key: '4e7dc325d82fd193386ee1fe13afaef9308ceb2f', part: "actions", class: "bs-session-timeout__actions bs-session-timeout__actions--stacked" }, primary && (h("bs-button", { key: '8739ade10f09e0503a4d1d6dfc284cf23ae43e5d', part: "primary", class: "bs-session-timeout__block-button", variant: "primary", onClick: () => this.bsPrimary.emit() }, primary)), secondary && (h("bs-button", { key: '0b1304b18ee010519fbb5e911c52ac64379ecbcc', part: "secondary", class: "bs-session-timeout__text-button", variant: "subtle", size: "lg", onClick: () => this.bsSecondary.emit() }, secondary)))), h("div", { key: '973d818d379dbcf34216fd8b5e6bcb1a5cfec5e5', 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: 'd3956a19e61cf2de661506b116c160b5a968c139', part: "container", class: "bs-shortcut-row", role: this.selectionRole ?? undefined, "aria-disabled": this.disabled ? 'true' : undefined }, h("span", { key: '4f1358b1536d313397b8dc9697d13bdaca77971f', part: "action", class: "bs-shortcut-row__action" }, h("slot", { key: 'd45777d253c65e03a9705dfe8b2f709e0b864918' }, this.action)), h("span", { key: '19f1f4f506b06ef59a8b0d0e65d56d4262cccdef', part: "keys", class: "bs-shortcut-row__keys" }, h("slot", { key: 'c5e1e282de5dad7dfebb242493de0fc5dc4213fe', name: "keys" }, h("bs-key-caps", { key: 'fc8618b576cba9973305e56704ad5ee31131d353', 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: '36599506573efe1672d5d9be3c6df23f8e8dd10c', 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: '62bea478a5a3568d18116406133c737eda387796', part: "link", class: "bs-skip-link", href: this.href, onClick: this.onClick }, h("slot", { key: 'ff567267fb5b12c630ece1064af6d0fc1175c44a' }, "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: '84aea3221c41e19ffa310a2d17c0385ea11041df', class: rootClasses, "aria-disabled": this.disabled ? 'true' : undefined }, this.showLabel && (h("div", { key: 'f26d63ea2bbd9e47b7c30c9ee03cdeff6f7280b8', class: "bs-slider__header" }, h("span", { key: 'df0996ae3e6a3548f7b6da584179f118b4eb4da9', 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: '6f96cd1cde58d5c6988b7271fc5d6fdfa133b29a', class: "bs-slider__row" }, this.showLabel && (h("span", { key: '34204ca12f519b9be931cf54a96f3da8756d5430', part: "bound", class: "bs-slider__bound" }, this.min)), isRange ? this.renderRangeThumbs() : this.renderSingleThumb(), this.showLabel && (h("span", { key: 'ff16e9ed98447d8211a5a5d22749ec801cabebd4', 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: '853522bb5eb39a46e30e5ac18fe16ee55755afff', part: "container", class: `bs-snackbar bs-snackbar--${this.variant}`, role: "status", "aria-live": this.variant === 'error' ? 'assertive' : 'polite' }, h("div", { key: '73b6b2cc350a90f32aa143aab3be2b85ba73eeae', class: "bs-snackbar__content" }, h("span", { key: 'f3880db1b2b6eca4661ee5bb3e0c96d1e6da8e6f', part: "icon", class: "bs-snackbar__icon", "aria-hidden": "true" }, this.loading ? h("span", { class: "bs-snackbar__spinner" }) : h(CheckCircleIcon, null)), h("span", { key: 'a56e5d22939edede5949bcf1340d59065fc694b0', part: "message", class: "bs-snackbar__message" }, h("slot", { key: '46357548d5af22e4f72d20a99ba566067c3c1fa0' }))), h("div", { key: '1e2a66b55bd06dc152956004430159a0c2370939', class: "bs-snackbar__actions" }, this.actionLabel && (h("bs-button", { key: '563ead50e48142407812caf3727b4bf290e02b86', part: "action", variant: this.actionVariant ?? ACTION_VARIANT[this.variant], size: "sm", onClick: this.onAction }, this.actionLabel)), !this.hideClose && (h("bs-icon-button", { key: '84506a32eef3551b4fc560d899913e792cdfeba0', part: "close", variant: "subtle", size: "md", ariaLabel: "Dismiss", onClick: this.onDismiss }, h(CloseIcon, { key: '55d3e926776e980e18bf77c08e2912f2424afd41' }))))));
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: '2a875265b65f749466162d903f923e1433c7d397', part: "ripple" }),
56
- h("span", { key: '62e74329531e0917670e0d480603692f422c7acc', class: "bs-source-link__left" }, h("span", { key: 'e639ffac289dbc1aed0aa6a2caecb16d326aa11a', class: "bs-source-link__filename-row" }, h("span", { key: 'fe01cfd760152e6bf81fb40d7ec4d77dbbef6ee4', part: "icon", class: "bs-source-link__icon" }, h("slot", { key: '358a3c7acc24b9c4d40bd60d6c076e8047f80023', name: "icon" }, h(FileTextIcon, { key: 'e15554ec81c33fa58dd4d06dbac35f322f890c2b' }))), h("p", { key: '0f90eff6d1999a7512a510d1c07817bc1682f85c', part: "filename", class: "bs-source-link__filename" }, this.fileName)), h("span", { key: 'f510d7ae0610604f09c01fe9e05c7973d5152283', class: "bs-source-link__meta" }, this.sourceName && (h("span", { key: 'de22c00cf119569ed2ed6f7eb483813431214237', part: "source", class: "bs-source-link__source" }, this.sourceName)), this.sourceName && this.version && h("span", { key: '3f8262d1d3b9e8403b58d244fb25e12db353599c', class: "bs-source-link__dot", "aria-hidden": "true" }), this.version && (h("span", { key: '02ab1216020d9cd0de5f02b2b50d1d1c2cf18cb8', part: "version", class: "bs-source-link__version" }, this.version)))),
57
- h("span", { key: 'eea76db4a9167aa545ef296f82819c04b6f1a21b', part: "arrow", class: "bs-source-link__arrow", "aria-hidden": "true" }, h(ArrowUpRightIcon, { key: 'f9b21efca8e16963e110bf5f35034582fe616034' })),
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: 'c715fcc72eda399bdefbbcb5684426e52c695b44', 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: '02a8585935575b9be103e12e6232dac63a41f5fa', part: "svg", class: "bs-spinner__svg", viewBox: "0 0 24 24", fill: "none", focusable: "false" }, h("circle", { key: 'ddae2f0d9d74dd48c971ad9ee3973819bbafa5fe', class: "bs-spinner__track", cx: "12", cy: "12", r: "9", "stroke-width": "3" }), h("path", { key: 'f261cb4b4726c7e0ef937cb34cdf03b8ec3bc609', 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: '57afdf0fbed93930a76aae2dab8faddacbc8e6e7', 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: '4761db31dd50f134e1d8b35775a69ff9a177bcfa', style: { '--bs-stack-gap-token': `var(--bs-spacing-${gap})` } }, h("slot", { key: '5714b01e0b05429fae91067b05143b677db998e8', 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: '6230f6e7164d99fb94e79a37d6301d514bf1c75c', part: "container", class: "bs-stat", surface: this.surface }, h("dl", { key: 'dc1688f2e20f4133c516e7f57ffc5d7b8a4de477', class: "bs-stat__body" }, h("dt", { key: '4772333b022fd6b95655209f7a7775eab653c6e0', class: "bs-stat__head" }, h("span", { key: '7aef50daa2c87b811b1e242753e081416df25b0d', class: { 'bs-stat__icon': true, 'bs-stat__icon--visible': this.hasIcon } }, h("slot", { key: '2ad02c5fffb58d31a4cf4ffb57fd58257fab0280', name: "icon", onSlotchange: (e) => (this.hasIcon = e.target.assignedNodes().length > 0) })), h("span", { key: 'b6b2d089a0b03da7aaad4447dd4291bf916964d3', part: "label", class: "bs-stat__label" }, this.label)), h("dd", { key: '2ccfdbcc3000d8448b2bac965efc23c14fdab5a4', class: "bs-stat__figure" }, h("span", { key: '6f6afb174d960a414fc3f95f862f70d3cd17105a', part: "value", class: "bs-stat__value" }, this.value), this.trend && (h("span", { key: '6887872c440d88f5269f39d65492c54589133d7d', part: "trend", class: `bs-stat__trend bs-stat__trend--${this.intent}` }, this.arrow(), h("span", { key: '0efad11fe74ac272c4f6d8f84cbf77fb45bf44f3', class: "bs-stat__sr" }, this.trendPrefix), this.trendValue && h("span", { key: 'de6eb28c4f20210ad7f9f9f4b2bbc02c5db1af78', class: "bs-stat__trend-value" }, this.trendValue)))), h("dd", { key: 'afc35315402059068afd3caf5bff330e73ab099d', class: { 'bs-stat__extra': true, 'bs-stat__extra--visible': this.hasExtra } }, h("slot", { key: '18280f7d6d2866b76307a1a651c2a21e55fd4c75', 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: '247099bad82070cc039de6602c9556df019d66e0', role: "list" }, h("slot", { key: '9243fd55edfbce9ee460f38580951e951eb2e48e', 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: 'e4cedd89e79fe57ae5dee2bce70502dcf245eded', role: "listitem", class: `bs-stepper-step--${this.direction}`, "aria-disabled": state === 'disabled' ? 'true' : undefined }, h("div", { key: '9505c6283fd3058f1acaf733e8c393a8e38f5a87', class: "bs-stepper-step__top" }, h("span", { key: '01d9efbed7ea81d3d24da21c3676d619925a4c5f', part: "icon", class: `bs-stepper-step__icon bs-stepper-step__icon--${state}` }, state === 'current' && h("span", { key: '643ecb7b48f6dc08107e1d1a63a6abb4f9b9256b', class: "bs-stepper-step__icon-dot" }), state === 'done' && h(CheckIcon, { key: 'a51c760d0ad168574ab87969b1f5838106f4a474' }), state === 'error' && h(ExclamationIcon, { key: 'd3d7c06a38e04440a4cbe6ffc6f8b039e331f835' })), h("span", { key: '905c43488affd27c328457f9158f61e6aa89d219', part: "connector", class: "bs-stepper-step__connector", "aria-hidden": "true" }, h("span", { key: '734591eb91413fd6fcf7f9a0c9454544ed953ab4', class: "bs-stepper-step__connector-line" }))), h("span", { key: '89d06195df7aba3b00883a4a104f59a0585a99af', part: "label", class: `bs-stepper-step__label bs-stepper-step__label--${state}` }, h("span", { key: '5ec9219bddf35ff96578262a07e163993a0a7a50', part: "name", class: "bs-stepper-step__name" }, this.name), this.showDescription && this.description && (h("span", { key: '72d1542b56bd129d89b29c2e81b03ec4778eaf02', 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: '30e18dccef0481bd8859ecf0771246719508c622', class: `bs-switch ${this.disabled ? 'bs-switch--disabled' : ''}` }, h("input", { key: 'bc94d02e313578cef43fe39b3a490f3f8cecbeec', 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: 'b7a6bf92d5fe4ca044c0ad790a57a4c3ef52d0be', part: "track", class: trackClasses }, h("span", { key: '8fd97319f4eccd6ae4ab24253dcc72ddb4eb7378', part: "knob", class: knobClasses }, h("bs-ripple", { key: '6e574549b8d85273d36d6526216dba51a04b86bf', part: "ripple", class: "bs-switch__ripple", centered: true, triggerSelector: ".bs-switch", disabled: this.disabled }))), h("span", { key: '092ca9f47fb1be8af3aff85d3d8a8e0d17f8d49d', part: "label", class: "bs-switch__label" }, h("slot", { key: '5356de3f833020a83a1aef15cb049a14ebee939c' }))));
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"; }