@brandsync/wc 1.17.0 → 1.19.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 (691) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/REFERENCE.md +316 -8
  3. package/custom-elements.json +9323 -6758
  4. package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
  5. package/dist/brandsync-wc/p-02314404.entry.js +1 -0
  6. package/dist/brandsync-wc/{p-0bbaef51.entry.js → p-028d3244.entry.js} +1 -1
  7. package/dist/brandsync-wc/{p-8c4dfccb.entry.js → p-03ad83a3.entry.js} +1 -1
  8. package/dist/brandsync-wc/{p-f82a9f0d.entry.js → p-0819add7.entry.js} +1 -1
  9. package/dist/brandsync-wc/{p-67f125e8.entry.js → p-08649f52.entry.js} +1 -1
  10. package/dist/brandsync-wc/p-0dff9822.entry.js +1 -0
  11. package/dist/brandsync-wc/{p-9d12b1fb.entry.js → p-10b8937f.entry.js} +1 -1
  12. package/dist/brandsync-wc/{p-aec2dfeb.entry.js → p-129a4de7.entry.js} +1 -1
  13. package/dist/brandsync-wc/p-1580c56c.entry.js +1 -0
  14. package/dist/brandsync-wc/p-15c6f0f3.entry.js +1 -0
  15. package/dist/brandsync-wc/{p-9d740928.entry.js → p-171fa239.entry.js} +1 -1
  16. package/dist/brandsync-wc/p-197ac73f.entry.js +1 -0
  17. package/dist/brandsync-wc/p-1e33bc10.entry.js +1 -0
  18. package/dist/brandsync-wc/{p-b5710db6.entry.js → p-21e5d4d6.entry.js} +1 -1
  19. package/dist/brandsync-wc/{p-90ba3032.entry.js → p-2389f473.entry.js} +1 -1
  20. package/dist/brandsync-wc/p-25914efc.entry.js +1 -0
  21. package/dist/brandsync-wc/{p-4f4c0c68.entry.js → p-26e0ab15.entry.js} +1 -1
  22. package/dist/brandsync-wc/{p-6ea02b98.entry.js → p-270b2cb0.entry.js} +1 -1
  23. package/dist/brandsync-wc/{p-54d91ac9.entry.js → p-27663faf.entry.js} +1 -1
  24. package/dist/brandsync-wc/p-28c38959.entry.js +1 -0
  25. package/dist/brandsync-wc/{p-70c650b2.entry.js → p-2a8b2ac9.entry.js} +1 -1
  26. package/dist/brandsync-wc/{p-84d6d6eb.entry.js → p-2a967b45.entry.js} +1 -1
  27. package/dist/brandsync-wc/p-2b3d0bd4.entry.js +1 -0
  28. package/dist/brandsync-wc/p-30736034.entry.js +1 -0
  29. package/dist/brandsync-wc/{p-9396c67e.entry.js → p-30ff0659.entry.js} +1 -1
  30. package/dist/brandsync-wc/{p-a7fa839a.entry.js → p-313ec145.entry.js} +1 -1
  31. package/dist/brandsync-wc/{p-3c6ec5d0.entry.js → p-3627e0c6.entry.js} +1 -1
  32. package/dist/brandsync-wc/{p-e8ae626d.entry.js → p-38a2210a.entry.js} +1 -1
  33. package/dist/brandsync-wc/{p-3bad5e1b.entry.js → p-391504ab.entry.js} +1 -1
  34. package/dist/brandsync-wc/{p-47b7fe76.entry.js → p-3b212a8a.entry.js} +1 -1
  35. package/dist/brandsync-wc/p-3c6980b9.entry.js +1 -0
  36. package/dist/brandsync-wc/{p-d5a6098d.entry.js → p-42fcf134.entry.js} +1 -1
  37. package/dist/brandsync-wc/p-4928c4ad.entry.js +1 -0
  38. package/dist/brandsync-wc/{p-844205d9.entry.js → p-4c51da66.entry.js} +1 -1
  39. package/dist/brandsync-wc/{p-f3eca1ce.entry.js → p-4d1ee16e.entry.js} +1 -1
  40. package/dist/brandsync-wc/{p-5b933ff4.entry.js → p-4dfd4715.entry.js} +1 -1
  41. package/dist/brandsync-wc/p-4ffcf41a.entry.js +1 -0
  42. package/dist/brandsync-wc/{p-11d80e17.entry.js → p-527fd08d.entry.js} +1 -1
  43. package/dist/brandsync-wc/{p-43d5f708.entry.js → p-5371b31c.entry.js} +1 -1
  44. package/dist/brandsync-wc/p-568de1b0.entry.js +1 -0
  45. package/dist/brandsync-wc/{p-dcbeb143.entry.js → p-590deea0.entry.js} +1 -1
  46. package/dist/brandsync-wc/{p-2bd30709.entry.js → p-64e19200.entry.js} +1 -1
  47. package/dist/brandsync-wc/p-6afacd47.entry.js +1 -0
  48. package/dist/brandsync-wc/p-6f32a08e.entry.js +1 -0
  49. package/dist/brandsync-wc/{p-5c61eb06.entry.js → p-70a5897b.entry.js} +1 -1
  50. package/dist/brandsync-wc/{p-8134f97c.entry.js → p-7160a72e.entry.js} +1 -1
  51. package/dist/brandsync-wc/p-776b677f.entry.js +1 -0
  52. package/dist/brandsync-wc/{p-b142d8c9.entry.js → p-78c94cfe.entry.js} +1 -1
  53. package/dist/brandsync-wc/p-7bff3aa5.entry.js +1 -0
  54. package/dist/brandsync-wc/{p-fdc168ec.entry.js → p-7c741b8d.entry.js} +1 -1
  55. package/dist/brandsync-wc/p-86f04e9e.entry.js +1 -0
  56. package/dist/brandsync-wc/{p-4eaa9ed4.entry.js → p-8a18864a.entry.js} +1 -1
  57. package/dist/brandsync-wc/{p-35f76ea7.entry.js → p-8a606b38.entry.js} +1 -1
  58. package/dist/brandsync-wc/p-8ac86d16.entry.js +1 -0
  59. package/dist/brandsync-wc/p-8b21f623.entry.js +1 -0
  60. package/dist/brandsync-wc/{p-1bd99669.entry.js → p-8d1ad4b0.entry.js} +1 -1
  61. package/dist/brandsync-wc/{p-07673a48.entry.js → p-8e107d7a.entry.js} +1 -1
  62. package/dist/brandsync-wc/{p-d9184940.entry.js → p-90d8d45f.entry.js} +1 -1
  63. package/dist/brandsync-wc/p-9751a12d.entry.js +1 -0
  64. package/dist/brandsync-wc/{p-857987f9.entry.js → p-9868ee72.entry.js} +1 -1
  65. package/dist/brandsync-wc/{p-f98dfa85.entry.js → p-9ba500f1.entry.js} +1 -1
  66. package/dist/brandsync-wc/p-9fa7bd83.entry.js +1 -0
  67. package/dist/brandsync-wc/p-BSt9HeTa.js +1 -0
  68. package/dist/brandsync-wc/{p-c835afb7.entry.js → p-a2bfbf02.entry.js} +1 -1
  69. package/dist/brandsync-wc/{p-ffccc1ee.entry.js → p-a50c5e68.entry.js} +1 -1
  70. package/dist/brandsync-wc/{p-3bdeeb9d.entry.js → p-a688a7ca.entry.js} +1 -1
  71. package/dist/brandsync-wc/{p-f43a7f16.entry.js → p-a92c0f06.entry.js} +1 -1
  72. package/dist/brandsync-wc/p-ab301e9d.entry.js +1 -0
  73. package/dist/brandsync-wc/{p-065c7e7c.entry.js → p-ab99b8c3.entry.js} +1 -1
  74. package/dist/brandsync-wc/{p-3cb79512.entry.js → p-c01e231e.entry.js} +1 -1
  75. package/dist/brandsync-wc/p-d15e48eb.entry.js +1 -0
  76. package/dist/brandsync-wc/p-d484e976.entry.js +1 -0
  77. package/dist/brandsync-wc/{p-d25adab2.entry.js → p-d80eecf4.entry.js} +1 -1
  78. package/dist/brandsync-wc/p-dc2ea372.entry.js +1 -0
  79. package/dist/brandsync-wc/p-de0dfd1c.entry.js +1 -0
  80. package/dist/brandsync-wc/p-e1d30e31.entry.js +1 -0
  81. package/dist/brandsync-wc/{p-a7fb0b59.entry.js → p-e5235e76.entry.js} +1 -1
  82. package/dist/brandsync-wc/{p-00be9a64.entry.js → p-e776d145.entry.js} +1 -1
  83. package/dist/brandsync-wc/{p-ffc07eb5.entry.js → p-e7c80f48.entry.js} +1 -1
  84. package/dist/brandsync-wc/{p-e0a9f2d1.entry.js → p-eb680cff.entry.js} +1 -1
  85. package/dist/brandsync-wc/p-ebcd105d.entry.js +1 -0
  86. package/dist/brandsync-wc/p-f10b19a8.entry.js +1 -0
  87. package/dist/brandsync-wc/{p-5057e4fe.entry.js → p-f3b60029.entry.js} +1 -1
  88. package/dist/brandsync-wc/p-f4628861.entry.js +1 -0
  89. package/dist/brandsync-wc/{p-b02bf1ca.entry.js → p-f4796801.entry.js} +1 -1
  90. package/dist/brandsync-wc/p-f5e6fdf8.entry.js +1 -0
  91. package/dist/brandsync-wc/p-f93127e1.entry.js +1 -0
  92. package/dist/brandsync-wc/{p-57ff14ca.entry.js → p-f96f45ae.entry.js} +1 -1
  93. package/dist/brandsync-wc/{p-debc83cc.entry.js → p-feb46fa6.entry.js} +1 -1
  94. package/dist/cjs/brandsync-wc.cjs.js +1 -1
  95. package/dist/cjs/bs-accordion-group.cjs.entry.js +1 -1
  96. package/dist/cjs/bs-accordion.cjs.entry.js +60 -3
  97. package/dist/cjs/bs-ai-disclaimer.cjs.entry.js +1 -1
  98. package/dist/cjs/bs-ai-greeting.cjs.entry.js +1 -1
  99. package/dist/cjs/bs-ai-thinking.cjs.entry.js +1 -1
  100. package/dist/cjs/bs-app-recent-item_3.cjs.entry.js +133 -0
  101. package/dist/cjs/bs-app-shell.cjs.entry.js +1 -1
  102. package/dist/cjs/bs-app-switcher.cjs.entry.js +208 -0
  103. package/dist/cjs/bs-attachment-list.cjs.entry.js +1 -1
  104. package/dist/cjs/bs-attachment.cjs.entry.js +1 -1
  105. package/dist/cjs/bs-avatar.cjs.entry.js +1 -1
  106. package/dist/cjs/bs-badge.cjs.entry.js +1 -1
  107. package/dist/cjs/bs-breadcrumb-overflow.cjs.entry.js +1 -1
  108. package/dist/cjs/bs-breadcrumb.cjs.entry.js +1 -1
  109. package/dist/cjs/bs-breadcrumbs.cjs.entry.js +1 -1
  110. package/dist/cjs/bs-button-skeleton.cjs.entry.js +1 -1
  111. package/dist/cjs/bs-button_2.cjs.entry.js +198 -0
  112. package/dist/cjs/bs-card.cjs.entry.js +1 -1
  113. package/dist/cjs/bs-carousel.cjs.entry.js +70 -5
  114. package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +1 -1
  115. package/dist/cjs/bs-chatbot-header.cjs.entry.js +1 -1
  116. package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +2 -2
  117. package/dist/cjs/bs-chatbot-sources-drawer.cjs.entry.js +1 -1
  118. package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +2 -2
  119. package/dist/cjs/bs-checkbox-skeleton.cjs.entry.js +1 -1
  120. package/dist/cjs/bs-checkbox.cjs.entry.js +2 -2
  121. package/dist/cjs/bs-chip-filter.cjs.entry.js +2 -2
  122. package/dist/cjs/bs-chip-informative.cjs.entry.js +1 -1
  123. package/dist/cjs/bs-chip-input.cjs.entry.js +2 -2
  124. package/dist/cjs/bs-citation-preview.cjs.entry.js +1 -1
  125. package/dist/cjs/bs-command-palette.cjs.entry.js +1 -1
  126. package/dist/cjs/bs-compact-menu-block_2.cjs.entry.js +46 -0
  127. package/dist/cjs/bs-company-switcher.cjs.entry.js +211 -0
  128. package/dist/cjs/bs-composer-status-banner.cjs.entry.js +1 -1
  129. package/dist/cjs/bs-composer.cjs.entry.js +1 -1
  130. package/dist/cjs/bs-container.cjs.entry.js +1 -1
  131. package/dist/cjs/bs-data-table.cjs.entry.js +2 -2
  132. package/dist/cjs/bs-datepicker.cjs.entry.js +1 -1
  133. package/dist/cjs/bs-dialog.cjs.entry.js +54 -3
  134. package/dist/cjs/bs-divider.cjs.entry.js +1 -1
  135. package/dist/cjs/bs-empty-state.cjs.entry.js +1 -1
  136. package/dist/cjs/bs-error-page.cjs.entry.js +1 -1
  137. package/dist/cjs/bs-file-upload-item.cjs.entry.js +1 -1
  138. package/dist/cjs/bs-file-upload.cjs.entry.js +1 -1
  139. package/dist/cjs/bs-global-search.cjs.entry.js +2 -2
  140. package/dist/cjs/bs-grid.cjs.entry.js +2 -2
  141. package/dist/cjs/bs-icon-button.cjs.entry.js +9 -2
  142. package/dist/cjs/bs-icon-tile.cjs.entry.js +10 -2
  143. package/dist/cjs/bs-inline-tab.cjs.entry.js +2 -2
  144. package/dist/cjs/bs-input_3.cjs.entry.js +5 -5
  145. package/dist/cjs/bs-key-caps.cjs.entry.js +1 -1
  146. package/dist/cjs/bs-key.cjs.entry.js +1 -1
  147. package/dist/cjs/bs-keyboard-shortcuts.cjs.entry.js +2 -2
  148. package/dist/cjs/bs-list-item_2.cjs.entry.js +261 -0
  149. package/dist/cjs/bs-list.cjs.entry.js +1 -1
  150. package/dist/cjs/bs-mega-menu.cjs.entry.js +120 -0
  151. package/dist/cjs/bs-message-list.cjs.entry.js +1 -1
  152. package/dist/cjs/bs-message.cjs.entry.js +1 -1
  153. package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +1 -1
  154. package/dist/cjs/bs-navigation-drawer.cjs.entry.js +2 -2
  155. package/dist/cjs/bs-navigation-header.cjs.entry.js +5 -2
  156. package/dist/cjs/bs-page-header.cjs.entry.js +66 -0
  157. package/dist/cjs/bs-pagination.cjs.entry.js +2 -2
  158. package/dist/cjs/bs-presence.cjs.entry.js +88 -0
  159. package/dist/cjs/bs-progress-linear.cjs.entry.js +2 -2
  160. package/dist/cjs/bs-progress.cjs.entry.js +2 -2
  161. package/dist/cjs/bs-qr-code.cjs.entry.js +1 -1
  162. package/dist/cjs/bs-radio.cjs.entry.js +4 -4
  163. package/dist/cjs/bs-search-item.cjs.entry.js +2 -2
  164. package/dist/cjs/bs-session-timeout.cjs.entry.js +1 -1
  165. package/dist/cjs/bs-shortcut-row.cjs.entry.js +1 -1
  166. package/dist/cjs/bs-side-panel.cjs.entry.js +52 -3
  167. package/dist/cjs/bs-slider.cjs.entry.js +1 -1
  168. package/dist/cjs/bs-snackbar.cjs.entry.js +1 -1
  169. package/dist/cjs/bs-source-link.cjs.entry.js +4 -3
  170. package/dist/cjs/bs-spinner.cjs.entry.js +1 -1
  171. package/dist/cjs/bs-split-pane.cjs.entry.js +1 -1
  172. package/dist/cjs/bs-stack.cjs.entry.js +1 -1
  173. package/dist/cjs/bs-stepper-step.cjs.entry.js +1 -1
  174. package/dist/cjs/bs-stepper.cjs.entry.js +1 -1
  175. package/dist/cjs/bs-switch.cjs.entry.js +4 -11
  176. package/dist/cjs/bs-tab_3.cjs.entry.js +3 -3
  177. package/dist/cjs/bs-timepicker.cjs.entry.js +2 -2
  178. package/dist/cjs/bs-toast.cjs.entry.js +1 -1
  179. package/dist/cjs/bs-tooltip-trigger.cjs.entry.js +61 -3
  180. package/dist/cjs/bs-tooltip.cjs.entry.js +1 -1
  181. package/dist/cjs/bs-tree-item.cjs.entry.js +3 -3
  182. package/dist/cjs/bs-tree.cjs.entry.js +1 -1
  183. package/dist/cjs/loader.cjs.js +1 -1
  184. package/dist/cjs/motion-DOlI71lc.js +43 -0
  185. package/dist/collection/collection-manifest.json +10 -0
  186. package/dist/collection/components/bs-accordion/bs-accordion.cmp.test.js +21 -6
  187. package/dist/collection/components/bs-accordion/bs-accordion.css +15 -0
  188. package/dist/collection/components/bs-accordion/bs-accordion.js +71 -2
  189. package/dist/collection/components/bs-accordion-group/bs-accordion-group.js +1 -1
  190. package/dist/collection/components/bs-ai-disclaimer/bs-ai-disclaimer.js +1 -1
  191. package/dist/collection/components/bs-ai-greeting/bs-ai-greeting.js +1 -1
  192. package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.js +1 -1
  193. package/dist/collection/components/bs-app-recent-item/bs-app-recent-item.cmp.test.js +52 -0
  194. package/dist/collection/components/bs-app-recent-item/bs-app-recent-item.css +111 -0
  195. package/dist/collection/components/bs-app-recent-item/bs-app-recent-item.js +184 -0
  196. package/dist/collection/components/bs-app-recent-item/bs-app-recent-item.stories.js +28 -0
  197. package/dist/collection/components/bs-app-shell/bs-app-shell.js +1 -1
  198. package/dist/collection/components/bs-app-switcher/bs-app-switcher.cmp.test.js +179 -0
  199. package/dist/collection/components/bs-app-switcher/bs-app-switcher.css +173 -0
  200. package/dist/collection/components/bs-app-switcher/bs-app-switcher.js +902 -0
  201. package/dist/collection/components/bs-app-switcher/bs-app-switcher.stories.js +91 -0
  202. package/dist/collection/components/bs-app-tile/bs-app-tile.cmp.test.js +58 -0
  203. package/dist/collection/components/bs-app-tile/bs-app-tile.css +104 -0
  204. package/dist/collection/components/bs-app-tile/bs-app-tile.js +190 -0
  205. package/dist/collection/components/bs-app-tile/bs-app-tile.stories.js +43 -0
  206. package/dist/collection/components/bs-attachment/bs-attachment.js +1 -1
  207. package/dist/collection/components/bs-attachment-list/bs-attachment-list.js +1 -1
  208. package/dist/collection/components/bs-avatar/bs-avatar.css +3 -3
  209. package/dist/collection/components/bs-badge/bs-badge.js +1 -1
  210. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.js +1 -1
  211. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.js +1 -1
  212. package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.js +1 -1
  213. package/dist/collection/components/bs-button/bs-button/bs-button.cmp.test.js +12 -0
  214. package/dist/collection/components/bs-button/bs-button/bs-button.css +2 -0
  215. package/dist/collection/components/bs-button/bs-button/bs-button.js +4 -1
  216. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.cmp.test.js +13 -0
  217. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.css +2 -0
  218. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.js +28 -1
  219. package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +1 -1
  220. package/dist/collection/components/bs-card/bs-card.js +1 -1
  221. package/dist/collection/components/bs-carousel/bs-carousel.cmp.test.js +39 -1
  222. package/dist/collection/components/bs-carousel/bs-carousel.css +9 -0
  223. package/dist/collection/components/bs-carousel/bs-carousel.js +75 -4
  224. package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.js +1 -1
  225. package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.js +1 -1
  226. package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.css +2 -0
  227. package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.js +2 -1
  228. package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.js +1 -1
  229. package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.css +2 -0
  230. package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js +2 -1
  231. package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.js +1 -1
  232. package/dist/collection/components/bs-checkbox/bs-checkbox.css +7 -0
  233. package/dist/collection/components/bs-checkbox/bs-checkbox.js +2 -1
  234. package/dist/collection/components/bs-chip/bs-chip-filter/bs-chip-filter.css +2 -0
  235. package/dist/collection/components/bs-chip/bs-chip-filter/bs-chip-filter.js +2 -1
  236. package/dist/collection/components/bs-chip/bs-chip-informative/bs-chip-informative.js +1 -1
  237. package/dist/collection/components/bs-chip/bs-chip-input/bs-chip-input.css +7 -0
  238. package/dist/collection/components/bs-chip/bs-chip-input/bs-chip-input.js +2 -1
  239. package/dist/collection/components/bs-citation-preview/bs-citation-preview.js +1 -1
  240. package/dist/collection/components/bs-command-palette/bs-command-palette.js +1 -1
  241. package/dist/collection/components/bs-compact-menu-block/bs-compact-menu-block.cmp.test.js +32 -0
  242. package/dist/collection/components/bs-compact-menu-block/bs-compact-menu-block.css +43 -0
  243. package/dist/collection/components/bs-compact-menu-block/bs-compact-menu-block.js +67 -0
  244. package/dist/collection/components/bs-compact-menu-block/bs-compact-menu-block.stories.js +25 -0
  245. package/dist/collection/components/bs-company-switcher/bs-company-switcher.cmp.test.js +171 -0
  246. package/dist/collection/components/bs-company-switcher/bs-company-switcher.css +196 -0
  247. package/dist/collection/components/bs-company-switcher/bs-company-switcher.js +720 -0
  248. package/dist/collection/components/bs-company-switcher/bs-company-switcher.stories.js +78 -0
  249. package/dist/collection/components/bs-composer/bs-composer.js +1 -1
  250. package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.js +1 -1
  251. package/dist/collection/components/bs-container/bs-container.js +1 -1
  252. package/dist/collection/components/bs-data-table/bs-data-table.js +2 -2
  253. package/dist/collection/components/bs-datepicker/bs-datepicker.js +1 -1
  254. package/dist/collection/components/bs-dialog/bs-dialog.cmp.test.js +32 -0
  255. package/dist/collection/components/bs-dialog/bs-dialog.css +16 -0
  256. package/dist/collection/components/bs-dialog/bs-dialog.js +61 -3
  257. package/dist/collection/components/bs-divider/bs-divider.js +1 -1
  258. package/dist/collection/components/bs-empty-state/bs-empty-state.js +1 -1
  259. package/dist/collection/components/bs-error-page/bs-error-page.js +1 -1
  260. package/dist/collection/components/bs-file-upload/bs-file-upload.js +1 -1
  261. package/dist/collection/components/bs-file-upload-item/bs-file-upload-item.js +1 -1
  262. package/dist/collection/components/bs-global-search/bs-global-search.js +2 -2
  263. package/dist/collection/components/bs-grid/bs-grid.js +2 -2
  264. package/dist/collection/components/bs-icon-tile/bs-icon-tile.js +11 -2
  265. package/dist/collection/components/bs-input/bs-input.js +2 -2
  266. package/dist/collection/components/bs-key/bs-key.js +1 -1
  267. package/dist/collection/components/bs-key-caps/bs-key-caps.js +1 -1
  268. package/dist/collection/components/bs-keyboard-shortcuts/bs-keyboard-shortcuts.js +2 -2
  269. package/dist/collection/components/bs-list/bs-list.js +1 -1
  270. package/dist/collection/components/bs-list-item/bs-list-item.css +2 -0
  271. package/dist/collection/components/bs-list-item/bs-list-item.js +2 -1
  272. package/dist/collection/components/bs-mega-menu/bs-mega-menu.cmp.test.js +204 -0
  273. package/dist/collection/components/bs-mega-menu/bs-mega-menu.css +143 -0
  274. package/dist/collection/components/bs-mega-menu/bs-mega-menu.js +443 -0
  275. package/dist/collection/components/bs-mega-menu/bs-mega-menu.stories.js +188 -0
  276. package/dist/collection/components/bs-menu/bs-menu.js +1 -1
  277. package/dist/collection/components/bs-menu-block/bs-menu-block.cmp.test.js +44 -0
  278. package/dist/collection/components/bs-menu-block/bs-menu-block.css +106 -0
  279. package/dist/collection/components/bs-menu-block/bs-menu-block.js +147 -0
  280. package/dist/collection/components/bs-menu-block/bs-menu-block.stories.js +36 -0
  281. package/dist/collection/components/bs-menu-item/bs-menu-item.css +2 -0
  282. package/dist/collection/components/bs-menu-item/bs-menu-item.js +2 -1
  283. package/dist/collection/components/bs-message/bs-message.js +1 -1
  284. package/dist/collection/components/bs-message-list/bs-message-list.js +1 -1
  285. package/dist/collection/components/bs-page-header/bs-page-header.cmp.test.js +206 -0
  286. package/dist/collection/components/bs-page-header/bs-page-header.css +252 -0
  287. package/dist/collection/components/bs-page-header/bs-page-header.js +351 -0
  288. package/dist/collection/components/bs-page-header/bs-page-header.stories.js +177 -0
  289. package/dist/collection/components/bs-pagination/bs-pagination.css +2 -0
  290. package/dist/collection/components/bs-pagination/bs-pagination.js +2 -1
  291. package/dist/collection/components/bs-popover/bs-popover.cmp.test.js +20 -0
  292. package/dist/collection/components/bs-popover/bs-popover.css +3 -0
  293. package/dist/collection/components/bs-popover/bs-popover.js +59 -2
  294. package/dist/collection/components/bs-presence/bs-presence.cmp.test.js +64 -0
  295. package/dist/collection/components/bs-presence/bs-presence.css +80 -0
  296. package/dist/collection/components/bs-presence/bs-presence.js +233 -0
  297. package/dist/collection/components/bs-presence/bs-presence.stories.js +101 -0
  298. package/dist/collection/components/bs-progress/bs-progress.js +2 -2
  299. package/dist/collection/components/bs-progress-linear/bs-progress-linear.js +2 -2
  300. package/dist/collection/components/bs-qr-code/bs-qr-code.js +1 -1
  301. package/dist/collection/components/bs-radio/bs-radio.css +6 -0
  302. package/dist/collection/components/bs-radio/bs-radio.js +4 -3
  303. package/dist/collection/components/bs-ripple/bs-ripple.cmp.test.js +45 -0
  304. package/dist/collection/components/bs-ripple/bs-ripple.css +32 -0
  305. package/dist/collection/components/bs-ripple/bs-ripple.js +188 -0
  306. package/dist/collection/components/bs-ripple/bs-ripple.stories.js +33 -0
  307. package/dist/collection/components/bs-search-item/bs-search-item.css +2 -0
  308. package/dist/collection/components/bs-search-item/bs-search-item.js +2 -1
  309. package/dist/collection/components/bs-session-timeout/bs-session-timeout.js +1 -1
  310. package/dist/collection/components/bs-shortcut-row/bs-shortcut-row.js +1 -1
  311. package/dist/collection/components/bs-side-panel/bs-side-panel.cmp.test.js +19 -0
  312. package/dist/collection/components/bs-side-panel/bs-side-panel.css +8 -0
  313. package/dist/collection/components/bs-side-panel/bs-side-panel.js +58 -2
  314. package/dist/collection/components/bs-skeleton/bs-skeleton.js +1 -1
  315. package/dist/collection/components/bs-slider/bs-slider.js +1 -1
  316. package/dist/collection/components/bs-snackbar/bs-snackbar.js +1 -1
  317. package/dist/collection/components/bs-source-link/bs-source-link.css +2 -0
  318. package/dist/collection/components/bs-source-link/bs-source-link.js +4 -2
  319. package/dist/collection/components/bs-spinner/bs-spinner.js +1 -1
  320. package/dist/collection/components/bs-split-pane/bs-split-pane.js +1 -1
  321. package/dist/collection/components/bs-stack/bs-stack.js +1 -1
  322. package/dist/collection/components/bs-stepper/bs-stepper/bs-stepper.js +1 -1
  323. package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.js +1 -1
  324. package/dist/collection/components/bs-switch/bs-switch.css +9 -0
  325. package/dist/collection/components/bs-switch/bs-switch.js +4 -10
  326. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.css +2 -0
  327. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.js +2 -1
  328. package/dist/collection/components/bs-tab/bs-tab/bs-tab.js +2 -1
  329. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.js +1 -1
  330. package/dist/collection/components/bs-timepicker/bs-timepicker.js +2 -2
  331. package/dist/collection/components/bs-toast/bs-toast.js +1 -1
  332. package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
  333. package/dist/collection/components/bs-tooltip-trigger/bs-tooltip-trigger.cmp.test.js +53 -2
  334. package/dist/collection/components/bs-tooltip-trigger/bs-tooltip-trigger.css +3 -0
  335. package/dist/collection/components/bs-tooltip-trigger/bs-tooltip-trigger.js +70 -3
  336. package/dist/collection/components/bs-tree/bs-tree.js +1 -1
  337. package/dist/collection/components/bs-tree-item/bs-tree-item.css +2 -0
  338. package/dist/collection/components/bs-tree-item/bs-tree-item.js +3 -2
  339. package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.js +1 -1
  340. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +2 -2
  341. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.js +1 -1
  342. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.cmp.test.js +79 -0
  343. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.css +46 -0
  344. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.js +10 -1
  345. package/dist/collection/utils/motion.js +37 -0
  346. package/dist/components/bs-accordion-group.js +1 -1
  347. package/dist/components/bs-accordion.js +1 -1
  348. package/dist/components/bs-ai-disclaimer.js +1 -1
  349. package/dist/components/bs-ai-greeting.js +1 -1
  350. package/dist/components/bs-ai-thinking.js +1 -1
  351. package/dist/components/bs-app-recent-item.d.ts +11 -0
  352. package/dist/components/bs-app-recent-item.js +1 -0
  353. package/dist/components/bs-app-shell.js +1 -1
  354. package/dist/components/bs-app-switcher.d.ts +11 -0
  355. package/dist/components/bs-app-switcher.js +1 -0
  356. package/dist/components/bs-app-tile.d.ts +11 -0
  357. package/dist/components/bs-app-tile.js +1 -0
  358. package/dist/components/bs-attachment-list.js +1 -1
  359. package/dist/components/bs-attachment.js +1 -1
  360. package/dist/components/bs-avatar.js +1 -1
  361. package/dist/components/bs-badge.js +1 -1
  362. package/dist/components/bs-breadcrumb-overflow.js +1 -1
  363. package/dist/components/bs-breadcrumb.js +1 -1
  364. package/dist/components/bs-breadcrumbs.js +1 -1
  365. package/dist/components/bs-button-skeleton.js +1 -1
  366. package/dist/components/bs-button.js +1 -1
  367. package/dist/components/bs-card.js +1 -1
  368. package/dist/components/bs-carousel.js +1 -1
  369. package/dist/components/bs-chatbot-feedback.js +1 -1
  370. package/dist/components/bs-chatbot-header.js +1 -1
  371. package/dist/components/bs-chatbot-response-action.js +1 -1
  372. package/dist/components/bs-chatbot-sources-drawer.js +1 -1
  373. package/dist/components/bs-chatbot-suggestion-button.js +1 -1
  374. package/dist/components/bs-checkbox-skeleton.js +1 -1
  375. package/dist/components/bs-checkbox.js +1 -1
  376. package/dist/components/bs-chip-filter.js +1 -1
  377. package/dist/components/bs-chip-informative.js +1 -1
  378. package/dist/components/bs-chip-input.js +1 -1
  379. package/dist/components/bs-citation-preview.js +1 -1
  380. package/dist/components/bs-command-palette.js +1 -1
  381. package/dist/components/bs-compact-menu-block.d.ts +11 -0
  382. package/dist/components/bs-compact-menu-block.js +1 -0
  383. package/dist/components/bs-company-switcher.d.ts +11 -0
  384. package/dist/components/bs-company-switcher.js +1 -0
  385. package/dist/components/bs-composer-status-banner.js +1 -1
  386. package/dist/components/bs-composer.js +1 -1
  387. package/dist/components/bs-container.js +1 -1
  388. package/dist/components/bs-cookie-consent.js +1 -1
  389. package/dist/components/bs-data-table.js +1 -1
  390. package/dist/components/bs-datepicker.js +1 -1
  391. package/dist/components/bs-dialog.js +1 -1
  392. package/dist/components/bs-divider.js +1 -1
  393. package/dist/components/bs-empty-state.js +1 -1
  394. package/dist/components/bs-error-page.js +1 -1
  395. package/dist/components/bs-file-upload-item.js +1 -1
  396. package/dist/components/bs-file-upload.js +1 -1
  397. package/dist/components/bs-global-search.js +1 -1
  398. package/dist/components/bs-grid.js +1 -1
  399. package/dist/components/bs-icon-button.js +1 -1
  400. package/dist/components/bs-icon-tile.js +1 -1
  401. package/dist/components/bs-inline-tab.js +1 -1
  402. package/dist/components/bs-input.js +1 -1
  403. package/dist/components/bs-key-caps.js +1 -1
  404. package/dist/components/bs-key.js +1 -1
  405. package/dist/components/bs-keyboard-shortcuts.js +1 -1
  406. package/dist/components/bs-list-item.js +1 -1
  407. package/dist/components/bs-list.js +1 -1
  408. package/dist/components/bs-mega-menu.d.ts +11 -0
  409. package/dist/components/bs-mega-menu.js +1 -0
  410. package/dist/components/bs-menu-block.d.ts +11 -0
  411. package/dist/components/bs-menu-block.js +1 -0
  412. package/dist/components/bs-menu-item.js +1 -1
  413. package/dist/components/bs-menu.js +1 -1
  414. package/dist/components/bs-message-list.js +1 -1
  415. package/dist/components/bs-message.js +1 -1
  416. package/dist/components/bs-navigation-drawer-item.js +1 -1
  417. package/dist/components/bs-navigation-drawer.js +1 -1
  418. package/dist/components/bs-navigation-header.js +1 -1
  419. package/dist/components/bs-onboarding-checklist.js +1 -1
  420. package/dist/components/bs-page-header.d.ts +11 -0
  421. package/dist/components/bs-page-header.js +1 -0
  422. package/dist/components/bs-pagination.js +1 -1
  423. package/dist/components/bs-popover.js +1 -1
  424. package/dist/components/bs-presence.d.ts +11 -0
  425. package/dist/components/bs-presence.js +1 -0
  426. package/dist/components/bs-product-tour.js +1 -1
  427. package/dist/components/bs-progress-linear.js +1 -1
  428. package/dist/components/bs-progress.js +1 -1
  429. package/dist/components/bs-qr-code.js +1 -1
  430. package/dist/components/bs-radio.js +1 -1
  431. package/dist/components/bs-ripple.d.ts +11 -0
  432. package/dist/components/bs-ripple.js +1 -0
  433. package/dist/components/bs-search-item.js +1 -1
  434. package/dist/components/bs-session-timeout.js +1 -1
  435. package/dist/components/bs-shortcut-row.js +1 -1
  436. package/dist/components/bs-side-panel.js +1 -1
  437. package/dist/components/bs-skeleton.js +1 -1
  438. package/dist/components/bs-slider.js +1 -1
  439. package/dist/components/bs-snackbar.js +1 -1
  440. package/dist/components/bs-source-link.js +1 -1
  441. package/dist/components/bs-spinner.js +1 -1
  442. package/dist/components/bs-split-pane.js +1 -1
  443. package/dist/components/bs-stack.js +1 -1
  444. package/dist/components/bs-stepper-step.js +1 -1
  445. package/dist/components/bs-stepper.js +1 -1
  446. package/dist/components/bs-switch.js +1 -1
  447. package/dist/components/bs-tab.js +1 -1
  448. package/dist/components/bs-tabs.js +1 -1
  449. package/dist/components/bs-timepicker.js +1 -1
  450. package/dist/components/bs-toast.js +1 -1
  451. package/dist/components/bs-tooltip-trigger.js +1 -1
  452. package/dist/components/bs-tooltip.js +1 -1
  453. package/dist/components/bs-tree-item.js +1 -1
  454. package/dist/components/bs-tree.js +1 -1
  455. package/dist/components/bs-whats-new-entry.js +1 -1
  456. package/dist/components/bs-whats-new.js +1 -1
  457. package/dist/components/p--Tyv3LIl.js +1 -0
  458. package/dist/components/p-4yShCgRb.js +1 -0
  459. package/dist/components/p-6Rr9bjVN.js +1 -0
  460. package/dist/components/{p-CervX0wH.js → p-BHzj13sd.js} +1 -1
  461. package/dist/components/p-BIxcCDgl.js +1 -0
  462. package/dist/components/p-BQ4rSQDm.js +1 -0
  463. package/dist/components/p-BSt9HeTa.js +1 -0
  464. package/dist/components/p-BWRkbt0f.js +1 -0
  465. package/dist/components/p-BfCah-Ij.js +1 -0
  466. package/dist/components/p-BpkPo4ay.js +1 -0
  467. package/dist/components/{p-Bp3DIxjT.js → p-CFR3Q0io.js} +1 -1
  468. package/dist/components/p-CHZE_FrW.js +1 -0
  469. package/dist/components/{p-CYzBTzzf.js → p-CVQycAap.js} +1 -1
  470. package/dist/components/{p-DtYTs9Kh.js → p-Cr8cHmpM.js} +1 -1
  471. package/dist/components/p-CvSewXZF.js +1 -0
  472. package/dist/components/{p-Dt4JNhHT.js → p-D3PuUD8Z.js} +1 -1
  473. package/dist/components/p-D5eN9Lfa.js +1 -0
  474. package/dist/components/{p-BDnZvjlq.js → p-DDgzEg1C.js} +1 -1
  475. package/dist/components/p-DF2FcJPs.js +1 -0
  476. package/dist/components/{p-DcjgRtSQ.js → p-DLnZG_G9.js} +1 -1
  477. package/dist/components/{p-CH5atin4.js → p-DXbcyEgd.js} +1 -1
  478. package/dist/components/{p-CRtvJlh8.js → p-DXwatzvM.js} +1 -1
  479. package/dist/components/p-DcD5eV_Z.js +1 -0
  480. package/dist/components/p-Dj393s3S.js +1 -0
  481. package/dist/components/p-DsBToIYE.js +1 -0
  482. package/dist/components/p-DtkTnaOp.js +1 -0
  483. package/dist/components/{p-DvNED6Lb.js → p-EGNLb4cQ.js} +1 -1
  484. package/dist/components/{p-CRM1wIX9.js → p-Jik5UkAe.js} +1 -1
  485. package/dist/components/p-XZXdZpt4.js +1 -0
  486. package/dist/components/{p-BcYNrEOB.js → p-Y5FyLR8G.js} +1 -1
  487. package/dist/components/{p-DG9eT5yi.js → p-ZfE38vXZ.js} +1 -1
  488. package/dist/components/p-lPTgyF9v.js +1 -0
  489. package/dist/components/p-syO0ipbw.js +1 -0
  490. package/dist/components/p-up01gvHY.js +1 -0
  491. package/dist/esm/brandsync-wc.js +1 -1
  492. package/dist/esm/bs-accordion-group.entry.js +1 -1
  493. package/dist/esm/bs-accordion.entry.js +61 -4
  494. package/dist/esm/bs-ai-disclaimer.entry.js +1 -1
  495. package/dist/esm/bs-ai-greeting.entry.js +1 -1
  496. package/dist/esm/bs-ai-thinking.entry.js +1 -1
  497. package/dist/esm/bs-app-recent-item_3.entry.js +129 -0
  498. package/dist/esm/bs-app-shell.entry.js +1 -1
  499. package/dist/esm/bs-app-switcher.entry.js +206 -0
  500. package/dist/esm/bs-attachment-list.entry.js +1 -1
  501. package/dist/esm/bs-attachment.entry.js +1 -1
  502. package/dist/esm/bs-avatar.entry.js +1 -1
  503. package/dist/esm/bs-badge.entry.js +1 -1
  504. package/dist/esm/bs-breadcrumb-overflow.entry.js +1 -1
  505. package/dist/esm/bs-breadcrumb.entry.js +1 -1
  506. package/dist/esm/bs-breadcrumbs.entry.js +1 -1
  507. package/dist/esm/bs-button-skeleton.entry.js +1 -1
  508. package/dist/esm/bs-button_2.entry.js +195 -0
  509. package/dist/esm/bs-card.entry.js +1 -1
  510. package/dist/esm/bs-carousel.entry.js +70 -5
  511. package/dist/esm/bs-chatbot-feedback.entry.js +1 -1
  512. package/dist/esm/bs-chatbot-header.entry.js +1 -1
  513. package/dist/esm/bs-chatbot-response-action.entry.js +2 -2
  514. package/dist/esm/bs-chatbot-sources-drawer.entry.js +1 -1
  515. package/dist/esm/bs-chatbot-suggestion-button.entry.js +2 -2
  516. package/dist/esm/bs-checkbox-skeleton.entry.js +1 -1
  517. package/dist/esm/bs-checkbox.entry.js +2 -2
  518. package/dist/esm/bs-chip-filter.entry.js +2 -2
  519. package/dist/esm/bs-chip-informative.entry.js +1 -1
  520. package/dist/esm/bs-chip-input.entry.js +2 -2
  521. package/dist/esm/bs-citation-preview.entry.js +1 -1
  522. package/dist/esm/bs-command-palette.entry.js +1 -1
  523. package/dist/esm/bs-compact-menu-block_2.entry.js +43 -0
  524. package/dist/esm/bs-company-switcher.entry.js +209 -0
  525. package/dist/esm/bs-composer-status-banner.entry.js +1 -1
  526. package/dist/esm/bs-composer.entry.js +1 -1
  527. package/dist/esm/bs-container.entry.js +1 -1
  528. package/dist/esm/bs-data-table.entry.js +2 -2
  529. package/dist/esm/bs-datepicker.entry.js +1 -1
  530. package/dist/esm/bs-dialog.entry.js +55 -4
  531. package/dist/esm/bs-divider.entry.js +1 -1
  532. package/dist/esm/bs-empty-state.entry.js +1 -1
  533. package/dist/esm/bs-error-page.entry.js +1 -1
  534. package/dist/esm/bs-file-upload-item.entry.js +1 -1
  535. package/dist/esm/bs-file-upload.entry.js +1 -1
  536. package/dist/esm/bs-global-search.entry.js +2 -2
  537. package/dist/esm/bs-grid.entry.js +2 -2
  538. package/dist/esm/bs-icon-button.entry.js +9 -2
  539. package/dist/esm/bs-icon-tile.entry.js +11 -3
  540. package/dist/esm/bs-inline-tab.entry.js +2 -2
  541. package/dist/esm/bs-input_3.entry.js +5 -5
  542. package/dist/esm/bs-key-caps.entry.js +1 -1
  543. package/dist/esm/bs-key.entry.js +1 -1
  544. package/dist/esm/bs-keyboard-shortcuts.entry.js +2 -2
  545. package/dist/esm/bs-list-item_2.entry.js +258 -0
  546. package/dist/esm/bs-list.entry.js +1 -1
  547. package/dist/esm/bs-mega-menu.entry.js +118 -0
  548. package/dist/esm/bs-message-list.entry.js +1 -1
  549. package/dist/esm/bs-message.entry.js +1 -1
  550. package/dist/esm/bs-navigation-drawer-item.entry.js +1 -1
  551. package/dist/esm/bs-navigation-drawer.entry.js +2 -2
  552. package/dist/esm/bs-navigation-header.entry.js +5 -2
  553. package/dist/esm/bs-page-header.entry.js +64 -0
  554. package/dist/esm/bs-pagination.entry.js +2 -2
  555. package/dist/esm/bs-presence.entry.js +86 -0
  556. package/dist/esm/bs-progress-linear.entry.js +2 -2
  557. package/dist/esm/bs-progress.entry.js +2 -2
  558. package/dist/esm/bs-qr-code.entry.js +1 -1
  559. package/dist/esm/bs-radio.entry.js +4 -4
  560. package/dist/esm/bs-search-item.entry.js +2 -2
  561. package/dist/esm/bs-session-timeout.entry.js +1 -1
  562. package/dist/esm/bs-shortcut-row.entry.js +1 -1
  563. package/dist/esm/bs-side-panel.entry.js +52 -3
  564. package/dist/esm/bs-slider.entry.js +1 -1
  565. package/dist/esm/bs-snackbar.entry.js +1 -1
  566. package/dist/esm/bs-source-link.entry.js +4 -3
  567. package/dist/esm/bs-spinner.entry.js +1 -1
  568. package/dist/esm/bs-split-pane.entry.js +1 -1
  569. package/dist/esm/bs-stack.entry.js +1 -1
  570. package/dist/esm/bs-stepper-step.entry.js +1 -1
  571. package/dist/esm/bs-stepper.entry.js +1 -1
  572. package/dist/esm/bs-switch.entry.js +4 -11
  573. package/dist/esm/bs-tab_3.entry.js +3 -3
  574. package/dist/esm/bs-timepicker.entry.js +2 -2
  575. package/dist/esm/bs-toast.entry.js +1 -1
  576. package/dist/esm/bs-tooltip-trigger.entry.js +62 -4
  577. package/dist/esm/bs-tooltip.entry.js +1 -1
  578. package/dist/esm/bs-tree-item.entry.js +3 -3
  579. package/dist/esm/bs-tree.entry.js +1 -1
  580. package/dist/esm/loader.js +1 -1
  581. package/dist/esm/motion-BSt9HeTa.js +39 -0
  582. package/dist/types/components/bs-accordion/bs-accordion.d.ts +22 -0
  583. package/dist/types/components/bs-app-recent-item/bs-app-recent-item.cmp.test.d.ts +1 -0
  584. package/dist/types/components/bs-app-recent-item/bs-app-recent-item.d.ts +51 -0
  585. package/dist/types/components/bs-app-recent-item/bs-app-recent-item.stories.d.ts +15 -0
  586. package/dist/types/components/bs-app-switcher/bs-app-switcher.cmp.test.d.ts +1 -0
  587. package/dist/types/components/bs-app-switcher/bs-app-switcher.d.ts +159 -0
  588. package/dist/types/components/bs-app-switcher/bs-app-switcher.stories.d.ts +34 -0
  589. package/dist/types/components/bs-app-tile/bs-app-tile.cmp.test.d.ts +1 -0
  590. package/dist/types/components/bs-app-tile/bs-app-tile.d.ts +51 -0
  591. package/dist/types/components/bs-app-tile/bs-app-tile.stories.d.ts +18 -0
  592. package/dist/types/components/bs-button/bs-button/bs-button.d.ts +3 -0
  593. package/dist/types/components/bs-button/bs-icon-button/bs-icon-button.d.ts +8 -0
  594. package/dist/types/components/bs-carousel/bs-carousel.d.ts +21 -1
  595. package/dist/types/components/bs-chatbot-response-action/bs-chatbot-response-action.d.ts +1 -0
  596. package/dist/types/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.d.ts +1 -0
  597. package/dist/types/components/bs-checkbox/bs-checkbox.d.ts +1 -0
  598. package/dist/types/components/bs-chip/bs-chip-filter/bs-chip-filter.d.ts +1 -0
  599. package/dist/types/components/bs-chip/bs-chip-input/bs-chip-input.d.ts +1 -0
  600. package/dist/types/components/bs-compact-menu-block/bs-compact-menu-block.cmp.test.d.ts +1 -0
  601. package/dist/types/components/bs-compact-menu-block/bs-compact-menu-block.d.ts +28 -0
  602. package/dist/types/components/bs-compact-menu-block/bs-compact-menu-block.stories.d.ts +10 -0
  603. package/dist/types/components/bs-company-switcher/bs-company-switcher.cmp.test.d.ts +1 -0
  604. package/dist/types/components/bs-company-switcher/bs-company-switcher.d.ts +130 -0
  605. package/dist/types/components/bs-company-switcher/bs-company-switcher.stories.d.ts +25 -0
  606. package/dist/types/components/bs-dialog/bs-dialog.d.ts +14 -0
  607. package/dist/types/components/bs-icon-tile/bs-icon-tile.d.ts +5 -0
  608. package/dist/types/components/bs-list-item/bs-list-item.d.ts +1 -0
  609. package/dist/types/components/bs-mega-menu/bs-mega-menu.cmp.test.d.ts +1 -0
  610. package/dist/types/components/bs-mega-menu/bs-mega-menu.d.ts +134 -0
  611. package/dist/types/components/bs-mega-menu/bs-mega-menu.stories.d.ts +55 -0
  612. package/dist/types/components/bs-menu-block/bs-menu-block.cmp.test.d.ts +1 -0
  613. package/dist/types/components/bs-menu-block/bs-menu-block.d.ts +47 -0
  614. package/dist/types/components/bs-menu-block/bs-menu-block.stories.d.ts +15 -0
  615. package/dist/types/components/bs-menu-item/bs-menu-item.d.ts +1 -0
  616. package/dist/types/components/bs-page-header/bs-page-header.cmp.test.d.ts +1 -0
  617. package/dist/types/components/bs-page-header/bs-page-header.d.ts +100 -0
  618. package/dist/types/components/bs-page-header/bs-page-header.stories.d.ts +41 -0
  619. package/dist/types/components/bs-pagination/bs-pagination.d.ts +1 -0
  620. package/dist/types/components/bs-popover/bs-popover.d.ts +15 -0
  621. package/dist/types/components/bs-presence/bs-presence.cmp.test.d.ts +1 -0
  622. package/dist/types/components/bs-presence/bs-presence.d.ts +50 -0
  623. package/dist/types/components/bs-presence/bs-presence.stories.d.ts +15 -0
  624. package/dist/types/components/bs-radio/bs-radio.d.ts +1 -0
  625. package/dist/types/components/bs-ripple/bs-ripple.cmp.test.d.ts +1 -0
  626. package/dist/types/components/bs-ripple/bs-ripple.d.ts +52 -0
  627. package/dist/types/components/bs-ripple/bs-ripple.stories.d.ts +11 -0
  628. package/dist/types/components/bs-search-item/bs-search-item.d.ts +1 -0
  629. package/dist/types/components/bs-side-panel/bs-side-panel.d.ts +13 -0
  630. package/dist/types/components/bs-source-link/bs-source-link.d.ts +1 -0
  631. package/dist/types/components/bs-switch/bs-switch.d.ts +1 -0
  632. package/dist/types/components/bs-tab/bs-inline-tab/bs-inline-tab.d.ts +1 -0
  633. package/dist/types/components/bs-tab/bs-tab/bs-tab.d.ts +1 -0
  634. package/dist/types/components/bs-tooltip-trigger/bs-tooltip-trigger.d.ts +18 -0
  635. package/dist/types/components/bs-tree-item/bs-tree-item.d.ts +1 -0
  636. package/dist/types/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.d.ts +7 -1
  637. package/dist/types/components.d.ts +2422 -0
  638. package/dist/types/svg-inline.d.ts +5 -0
  639. package/dist/types/utils/motion.d.ts +21 -0
  640. package/package.json +2 -1
  641. package/reference.d.ts +53 -23
  642. package/reference.json +1210 -98
  643. package/dist/brandsync-wc/p-044ac86c.entry.js +0 -1
  644. package/dist/brandsync-wc/p-046a53de.entry.js +0 -1
  645. package/dist/brandsync-wc/p-08e96f13.entry.js +0 -1
  646. package/dist/brandsync-wc/p-225148be.entry.js +0 -1
  647. package/dist/brandsync-wc/p-23b56775.entry.js +0 -1
  648. package/dist/brandsync-wc/p-32297416.entry.js +0 -1
  649. package/dist/brandsync-wc/p-361aef36.entry.js +0 -1
  650. package/dist/brandsync-wc/p-3789c7a5.entry.js +0 -1
  651. package/dist/brandsync-wc/p-3d2c62a6.entry.js +0 -1
  652. package/dist/brandsync-wc/p-3d7b0708.entry.js +0 -1
  653. package/dist/brandsync-wc/p-4b460eda.entry.js +0 -1
  654. package/dist/brandsync-wc/p-5eb5795f.entry.js +0 -1
  655. package/dist/brandsync-wc/p-61deb48c.entry.js +0 -1
  656. package/dist/brandsync-wc/p-79fc849c.entry.js +0 -1
  657. package/dist/brandsync-wc/p-7ed071fb.entry.js +0 -1
  658. package/dist/brandsync-wc/p-8048d033.entry.js +0 -1
  659. package/dist/brandsync-wc/p-8c9938a5.entry.js +0 -1
  660. package/dist/brandsync-wc/p-a5659499.entry.js +0 -1
  661. package/dist/brandsync-wc/p-ab14a07d.entry.js +0 -1
  662. package/dist/brandsync-wc/p-b4511ad3.entry.js +0 -1
  663. package/dist/brandsync-wc/p-baa39c08.entry.js +0 -1
  664. package/dist/brandsync-wc/p-be7aac52.entry.js +0 -1
  665. package/dist/brandsync-wc/p-c05ee501.entry.js +0 -1
  666. package/dist/brandsync-wc/p-d2a15599.entry.js +0 -1
  667. package/dist/brandsync-wc/p-d7956c51.entry.js +0 -1
  668. package/dist/brandsync-wc/p-dfad8c0a.entry.js +0 -1
  669. package/dist/brandsync-wc/p-e123b391.entry.js +0 -1
  670. package/dist/brandsync-wc/p-e8e22238.entry.js +0 -1
  671. package/dist/brandsync-wc/p-eb0dc5bf.entry.js +0 -1
  672. package/dist/cjs/bs-button.cjs.entry.js +0 -107
  673. package/dist/cjs/bs-list-item.cjs.entry.js +0 -66
  674. package/dist/cjs/bs-popover.cjs.entry.js +0 -153
  675. package/dist/cjs/bs-skeleton.cjs.entry.js +0 -51
  676. package/dist/components/p-B32Kl4IB.js +0 -1
  677. package/dist/components/p-BUpnOUIM.js +0 -1
  678. package/dist/components/p-BcbaiZLh.js +0 -1
  679. package/dist/components/p-ChcaPfNL.js +0 -1
  680. package/dist/components/p-Cpe2k7ZC.js +0 -1
  681. package/dist/components/p-D7AXo5NT.js +0 -1
  682. package/dist/components/p-D8bvv9QQ.js +0 -1
  683. package/dist/components/p-DMLfXpva.js +0 -1
  684. package/dist/components/p-DYDk73TF.js +0 -1
  685. package/dist/components/p-DYuzgzxI.js +0 -1
  686. package/dist/components/p-TAY9S9yG.js +0 -1
  687. package/dist/components/p-w-DkdA4O.js +0 -1
  688. package/dist/esm/bs-button.entry.js +0 -105
  689. package/dist/esm/bs-list-item.entry.js +0 -64
  690. package/dist/esm/bs-popover.entry.js +0 -151
  691. package/dist/esm/bs-skeleton.entry.js +0 -49
@@ -0,0 +1,188 @@
1
+ import { Host, h } from "@stencil/core";
2
+ /**
3
+ * A touch-ripple effect: on pointer press, a circle grows from the press point and fades out.
4
+ *
5
+ * It is a building block for pressable components (`bs-button`, `bs-icon-button`, ...), not something
6
+ * to place on a page by itself. Put it inside a positioned, pressable parent; it fills that parent,
7
+ * follows its corner radius, and listens for `pointerdown` on it. Pointer-events pass through, so the
8
+ * parent still receives every click.
9
+ *
10
+ * The motion uses the shared duration and easing tokens. Under `prefers-reduced-motion: reduce` those
11
+ * durations are `0ms`, and the ripple does not play at all.
12
+ *
13
+ * ## When to use
14
+ * - Inside a pressable `bs-*` component, to give press feedback.
15
+ *
16
+ * ## When not to use
17
+ * - As a hover or focus indicator. Those are colour changes on the parent.
18
+ * - On non-interactive surfaces.
19
+ *
20
+ * Set the custom properties on the `bs-ripple` element itself. Inside another component that means `::part(ripple)`,
21
+ * e.g. `bs-button::part(ripple) { --bs-ripple-color: white; }`.
22
+ *
23
+ * @part surface - The clipping layer the ripple circles are drawn in.
24
+ * @prop --bs-ripple-color - Ripple colour. `currentColor` by default, so it follows the parent's text colour and works on every variant.
25
+ * @prop --bs-ripple-opacity - Starting opacity of the ripple. No opacity token fits, so the default is `0.24`.
26
+ * @prop --bs-ripple-duration - Length of the ripple. Aliased to `--bs-duration-slower`.
27
+ * @prop --bs-ripple-easing - Curve of the ripple. Aliased to `--bs-easing-decelerate`.
28
+ */
29
+ export class BsRipple {
30
+ el;
31
+ /** Always start the ripple from the centre instead of the press point. Use it for round or icon-only controls. */
32
+ centered = false;
33
+ /** Turns the ripple off. A disabled parent (`<button disabled>`) also stops it. */
34
+ disabled = false;
35
+ /**
36
+ * CSS selector of the element to listen on, found with `closest()` from the ripple (so it stays inside
37
+ * the same shadow tree). By default the ripple listens on its parent. Use it when the pressable element
38
+ * is bigger than the ripple's own parent, e.g. a switch whose ripple sits on the knob but whose whole
39
+ * `<label>` is the press target.
40
+ */
41
+ triggerSelector;
42
+ onTriggerChange() {
43
+ this.bind();
44
+ }
45
+ surface;
46
+ target;
47
+ connectedCallback() {
48
+ this.bind();
49
+ }
50
+ componentDidLoad() {
51
+ // Props are set by now, so a `triggerSelector` is resolved against the final DOM.
52
+ this.bind();
53
+ }
54
+ disconnectedCallback() {
55
+ this.unbind();
56
+ }
57
+ bind() {
58
+ this.unbind();
59
+ const target = (this.triggerSelector && this.el.closest(this.triggerSelector)) || this.el.parentElement || this.el.getRootNode().host;
60
+ this.target = target;
61
+ this.target?.addEventListener('pointerdown', this.onPointerDown);
62
+ }
63
+ unbind() {
64
+ this.target?.removeEventListener('pointerdown', this.onPointerDown);
65
+ this.target = undefined;
66
+ }
67
+ onPointerDown = (ev) => {
68
+ if (this.disabled || ev.button !== 0 || this.target?.disabled)
69
+ return;
70
+ const surface = this.surface;
71
+ if (!surface)
72
+ return;
73
+ const style = getComputedStyle(this.el);
74
+ const duration = this.toMs(style.getPropertyValue('--bs-ripple-duration'));
75
+ if (duration === 0)
76
+ return;
77
+ const rect = this.el.getBoundingClientRect();
78
+ const x = this.centered ? rect.width / 2 : ev.clientX - rect.left;
79
+ const y = this.centered ? rect.height / 2 : ev.clientY - rect.top;
80
+ // Radius that reaches the farthest corner, so the ripple always covers the whole surface.
81
+ const radius = Math.hypot(Math.max(x, rect.width - x), Math.max(y, rect.height - y));
82
+ const circle = document.createElement('span');
83
+ circle.className = 'bs-ripple__circle';
84
+ circle.style.left = `${x - radius}px`;
85
+ circle.style.top = `${y - radius}px`;
86
+ circle.style.width = circle.style.height = `${radius * 2}px`;
87
+ surface.appendChild(circle);
88
+ const opacity = style.getPropertyValue('--bs-ripple-opacity').trim() || '0.24';
89
+ const animation = circle.animate([
90
+ { transform: 'scale(0)', opacity },
91
+ { transform: 'scale(1)', opacity: 0 },
92
+ ], { duration, easing: style.getPropertyValue('--bs-ripple-easing').trim() || 'ease-out' });
93
+ animation.onfinish = animation.oncancel = () => circle.remove();
94
+ };
95
+ toMs(value) {
96
+ const v = value.trim();
97
+ if (v.endsWith('ms'))
98
+ return parseFloat(v);
99
+ if (v.endsWith('s'))
100
+ return parseFloat(v) * 1000;
101
+ return 0;
102
+ }
103
+ render() {
104
+ return (h(Host, { key: '4bb0dd71635f57ed90deeeabc39a7abee9e66103', "aria-hidden": "true" }, h("div", { key: '29c6a7f4eefcb14598ee0aa2bc3980be2e04ebbc', part: "surface", class: "bs-ripple", ref: el => (this.surface = el) })));
105
+ }
106
+ static get is() { return "bs-ripple"; }
107
+ static get encapsulation() { return "shadow"; }
108
+ static get originalStyleUrls() {
109
+ return {
110
+ "$": ["bs-ripple.css"]
111
+ };
112
+ }
113
+ static get styleUrls() {
114
+ return {
115
+ "$": ["bs-ripple.css"]
116
+ };
117
+ }
118
+ static get properties() {
119
+ return {
120
+ "centered": {
121
+ "type": "boolean",
122
+ "mutable": false,
123
+ "complexType": {
124
+ "original": "boolean",
125
+ "resolved": "boolean",
126
+ "references": {}
127
+ },
128
+ "required": false,
129
+ "optional": false,
130
+ "docs": {
131
+ "tags": [],
132
+ "text": "Always start the ripple from the centre instead of the press point. Use it for round or icon-only controls."
133
+ },
134
+ "getter": false,
135
+ "setter": false,
136
+ "reflect": false,
137
+ "attribute": "centered",
138
+ "defaultValue": "false"
139
+ },
140
+ "disabled": {
141
+ "type": "boolean",
142
+ "mutable": false,
143
+ "complexType": {
144
+ "original": "boolean",
145
+ "resolved": "boolean",
146
+ "references": {}
147
+ },
148
+ "required": false,
149
+ "optional": false,
150
+ "docs": {
151
+ "tags": [],
152
+ "text": "Turns the ripple off. A disabled parent (`<button disabled>`) also stops it."
153
+ },
154
+ "getter": false,
155
+ "setter": false,
156
+ "reflect": false,
157
+ "attribute": "disabled",
158
+ "defaultValue": "false"
159
+ },
160
+ "triggerSelector": {
161
+ "type": "string",
162
+ "mutable": false,
163
+ "complexType": {
164
+ "original": "string",
165
+ "resolved": "string",
166
+ "references": {}
167
+ },
168
+ "required": false,
169
+ "optional": true,
170
+ "docs": {
171
+ "tags": [],
172
+ "text": "CSS selector of the element to listen on, found with `closest()` from the ripple (so it stays inside\nthe same shadow tree). By default the ripple listens on its parent. Use it when the pressable element\nis bigger than the ripple's own parent, e.g. a switch whose ripple sits on the knob but whose whole\n`<label>` is the press target."
173
+ },
174
+ "getter": false,
175
+ "setter": false,
176
+ "reflect": false,
177
+ "attribute": "trigger-selector"
178
+ }
179
+ };
180
+ }
181
+ static get elementRef() { return "el"; }
182
+ static get watchers() {
183
+ return [{
184
+ "propName": "triggerSelector",
185
+ "methodName": "onTriggerChange"
186
+ }];
187
+ }
188
+ }
@@ -0,0 +1,33 @@
1
+ import { html } from "lit";
2
+ import { componentDescription, propDescription } from "../../stories-utils";
3
+ const meta = {
4
+ title: 'Motion/bs-ripple',
5
+ parameters: { docs: { description: { component: componentDescription('bs-ripple') } } },
6
+ render: args => html `
7
+ <div
8
+ style="position: relative; width: 320px; height: 120px; display: grid; place-items: center; border-radius: var(--bs-border-radius-100); background: var(--bs-surface-hover); color: var(--bs-text-default); cursor: pointer; user-select: none;"
9
+ >
10
+ Press anywhere
11
+ <bs-ripple ?centered=${args.centered} ?disabled=${args.disabled}></bs-ripple>
12
+ </div>
13
+ `,
14
+ argTypes: {
15
+ centered: { control: 'boolean', description: propDescription('bs-ripple', 'centered') },
16
+ disabled: { control: 'boolean', description: propDescription('bs-ripple', 'disabled') },
17
+ },
18
+ args: { centered: false, disabled: false },
19
+ };
20
+ export default meta;
21
+ export const Default = {};
22
+ export const Centered = { args: { centered: true } };
23
+ export const InButtons = {
24
+ render: () => html `
25
+ <bs-stack gap="200">
26
+ <bs-button>Primary</bs-button>
27
+ <bs-button variant="neutral">Neutral</bs-button>
28
+ <bs-button variant="outlined">Outlined</bs-button>
29
+ <bs-button variant="error">Error</bs-button>
30
+ <bs-button disabled>Disabled (no ripple)</bs-button>
31
+ </bs-stack>
32
+ `,
33
+ };
@@ -17,6 +17,8 @@
17
17
  }
18
18
 
19
19
  .bs-search-item {
20
+ /* Containing block for the absolutely-positioned bs-ripple layer. */
21
+ position: relative;
20
22
  box-sizing: border-box;
21
23
  display: flex;
22
24
  align-items: center;
@@ -36,6 +36,7 @@ import { h } from "@stencil/core";
36
36
  * @prop --bs-search-item-color-muted - Description and trailing text. Aliased to `--bs-text-muted`.
37
37
  * @prop --bs-search-item-color-disabled - Aliased to `--bs-text-on-disabled`.
38
38
  * @prop --bs-search-item-icon-color - Aliased to `--bs-icon-default`.
39
+ * @part ripple - The press-ripple layer (a `bs-ripple`). Tune it with `::part(ripple) { --bs-ripple-color: ...; }`.
39
40
  */
40
41
  export class BsSearchItem {
41
42
  el;
@@ -68,7 +69,7 @@ export class BsSearchItem {
68
69
  slotFilled = (set) => (ev) => set(ev.target.assignedNodes().length > 0);
69
70
  render() {
70
71
  const role = this.selectionRole ?? undefined;
71
- return (h("div", { key: '0c570b63e05b1fc0294329710fbf88b2fc21e1ff', part: "container", class: "bs-search-item", role: role, "aria-selected": role ? String(this.active) : undefined, "aria-disabled": role && this.disabled ? 'true' : undefined }, h("span", { key: '5dd4eebb10183d38704ac1669c024ef863846c00', part: "icon", class: { 'bs-search-item__icon': true, 'bs-search-item__icon--hidden': !this.hasIcon } }, h("slot", { key: '4c1b4f5d589201f1fa98081cc432d630950311e0', name: "icon", onSlotchange: this.slotFilled(v => (this.hasIcon = v)) })), h("span", { key: '0908a9fc5a42c00e6bae6e5f69fe1f3224a73147', part: "content", class: "bs-search-item__content" }, h("span", { key: '817216a76634be9b203bb324c8ee5cb54505f44f', part: "label", class: "bs-search-item__label" }, h("slot", { key: '7ee0d2da1dc6e2ddd9dc25e5a3d2238c87b223b1' })), h("span", { key: '765a7dae7761d72b1b3a5571549a044420c88a05', part: "description", class: { 'bs-search-item__description': true, 'bs-search-item__description--hidden': !this.hasDescription } }, h("slot", { key: '8d1da1dc91b3133b10a17f711227031daa40e5ee', name: "description", onSlotchange: this.slotFilled(v => (this.hasDescription = v)) }))), h("span", { key: '33fcb4ab13f5ab8659249c70626699ee831a008d', part: "trailing", class: { 'bs-search-item__trailing': true, 'bs-search-item__trailing--hidden': !this.hasTrailingSlot && !this.trailing } }, h("slot", { key: '21cd86383493354482304367794e557c1b20bf17', name: "trailing", onSlotchange: this.slotFilled(v => (this.hasTrailingSlot = v)) }, this.trailing))));
72
+ return (h("div", { key: '5a3a8580e47d0c10e55db1b787b0b74e6cb3a4f3', part: "container", class: "bs-search-item", role: role, "aria-selected": role ? String(this.active) : undefined, "aria-disabled": role && this.disabled ? 'true' : undefined }, !this.disabled && h("bs-ripple", { key: 'c8e27ae7b1e0d50f8ecff26c91bcae9c3b62950f', part: "ripple" }), h("span", { key: '81ad3c5bec85021e7276909753e4f1a3a17e4b00', part: "icon", class: { 'bs-search-item__icon': true, 'bs-search-item__icon--hidden': !this.hasIcon } }, h("slot", { key: '88262df53a785c5e60b8ec3935b1d1861cf1ae6a', name: "icon", onSlotchange: this.slotFilled(v => (this.hasIcon = v)) })), h("span", { key: '5924d34123f7889eddd068ee24a2dfc6df8f41b3', part: "content", class: "bs-search-item__content" }, h("span", { key: '671557c0b077e15450be02e5bb474c0f449dfea7', part: "label", class: "bs-search-item__label" }, h("slot", { key: '97ebaf915bcc552fd77d78e7ddb39fdc640ee023' })), h("span", { key: 'e60d0190f0c562c041d0c305917220f4a34f450f', part: "description", class: { 'bs-search-item__description': true, 'bs-search-item__description--hidden': !this.hasDescription } }, h("slot", { key: 'd044cb988f1edc550a18cfe06a9258b7cae2f15f', name: "description", onSlotchange: this.slotFilled(v => (this.hasDescription = v)) }))), h("span", { key: 'e55b0b5c9a7fb2531f6d20667970dc587a27b140', part: "trailing", class: { 'bs-search-item__trailing': true, 'bs-search-item__trailing--hidden': !this.hasTrailingSlot && !this.trailing } }, h("slot", { key: 'bae1da141d180b3dbb788c19a632548d0127bd64', name: "trailing", onSlotchange: this.slotFilled(v => (this.hasTrailingSlot = v)) }, this.trailing))));
72
73
  }
73
74
  static get is() { return "bs-search-item"; }
74
75
  static get encapsulation() { return "shadow"; }
@@ -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: 'd24c6a8c35ba5fa00d09789ae3b9fb9c13478aa2', part: "container", class: "bs-session-timeout", surface: "base", role: "region", "aria-labelledby": "heading" }, h("div", { key: '519212dd44edaf8b6083d0b4a0aa554721030edb', class: "bs-session-timeout__body" }, !this.hideIcon && (h("bs-icon-tile", { key: '0afcc5d7ac6331327c54f207c7bf17a85e1d4ca6', part: "art", intent: d.intent, size: "lg" }, h("slot", { key: '9b23c1e0ac3338026d9fd865f388156f79dbbccf', name: "icon" }, d.glyph()))), this.renderHeading(heading, description), this.type === 'warning' && this.renderWarning(), this.type === 'warning' && this.savedMessage && (h("p", { key: '28feba54a260237d0fbd4f1fd73c0a2f759f1de7', part: "saved", class: "bs-session-timeout__saved" }, h(InfoIcon, { key: 'cf8cc480add0d2269e5dc60b6eca92429f2747bd' }), h("span", { key: '9bcaa1f9605dec86b2323b6b30ea433426c760dc' }, this.savedMessage))), this.type === 'signed-out' && this.renderAccount(), this.type === 'confirm-identity' && this.renderConfirm(), this.type === 'warning' && (primary || secondary) && (h("div", { key: '3c5da6d79a8e7958d24d4a5426f4e44c04333b65', part: "actions", class: "bs-session-timeout__actions" }, secondary && (h("bs-button", { key: '0e552712f93f9a59919ed2a64bd71d9d79908978', part: "secondary", variant: "outlined", onClick: () => this.bsSecondary.emit() }, secondary)), primary && (h("bs-button", { key: 'f461ea7b8119d8608a7d560b6aa52c404c61028c', part: "primary", variant: "primary", onClick: () => this.bsPrimary.emit() }, primary)))), this.type === 'signed-out' && (primary || secondary) && (h("div", { key: '8e4ea5ec9e71e233bfd1a125bacf4ada41ee3a6d', part: "actions", class: "bs-session-timeout__actions bs-session-timeout__actions--stacked" }, primary && (h("bs-button", { key: '104e37dc1b7b7ce672c12a8a81e3069d2c85a7f2', part: "primary", class: "bs-session-timeout__block-button", variant: "primary", onClick: () => this.bsPrimary.emit() }, primary)), secondary && (h("bs-button", { key: '3ab259894ba4ab7362e3543762c575ca5c5c1feb', part: "secondary", class: "bs-session-timeout__text-button", variant: "subtle", size: "lg", onClick: () => this.bsSecondary.emit() }, secondary)))), h("div", { key: 'e44f63e49fc80fa1f297d9b10beadfd2a192c586', class: "bs-session-timeout__sr-only", role: "status", "aria-live": "polite" }, this.announcement))));
199
+ return (h("bs-card", { key: '6e8091dcd3e15ebf5b68dc024f69ef23cf1850d4', part: "container", class: "bs-session-timeout", surface: "base", role: "region", "aria-labelledby": "heading" }, h("div", { key: '53eca19dff3cde4bac5b0fac889da620980db6d6', class: "bs-session-timeout__body" }, !this.hideIcon && (h("bs-icon-tile", { key: '07074e81e49beaada9dd4b92770bfd4999353629', part: "art", intent: d.intent, size: "lg" }, h("slot", { key: '362feaab173e019303ab2e69bb6c38a8ac5898f6', name: "icon" }, d.glyph()))), this.renderHeading(heading, description), this.type === 'warning' && this.renderWarning(), this.type === 'warning' && this.savedMessage && (h("p", { key: 'b264006e5b5fc1ad21850d2b00b7a8fda4f0da18', part: "saved", class: "bs-session-timeout__saved" }, h(InfoIcon, { key: 'b5928e557e3b4b84e56e4312652725f03a3349da' }), h("span", { key: 'a9830a6ecb1cc3c889132c298bf93ae1cd590b09' }, this.savedMessage))), this.type === 'signed-out' && this.renderAccount(), this.type === 'confirm-identity' && this.renderConfirm(), this.type === 'warning' && (primary || secondary) && (h("div", { key: 'de05950cdcbbaee5bea7f9078ab21675423720a5', part: "actions", class: "bs-session-timeout__actions" }, secondary && (h("bs-button", { key: 'f3c9295fd63ab6362ff3c3821e994523a6faed4a', part: "secondary", variant: "outlined", onClick: () => this.bsSecondary.emit() }, secondary)), primary && (h("bs-button", { key: 'b121ea361fd5e69092079f5aa87f5af06e46039e', part: "primary", variant: "primary", onClick: () => this.bsPrimary.emit() }, primary)))), this.type === 'signed-out' && (primary || secondary) && (h("div", { key: '77acc3ed926513e60706d02fcb3077dee05b5b26', part: "actions", class: "bs-session-timeout__actions bs-session-timeout__actions--stacked" }, primary && (h("bs-button", { key: 'f8279d2ddb817395c88bd5d467f3a53ce927ac77', part: "primary", class: "bs-session-timeout__block-button", variant: "primary", onClick: () => this.bsPrimary.emit() }, primary)), secondary && (h("bs-button", { key: '40c06a5a88c6b91833f50b61db6953a205f8102a', part: "secondary", class: "bs-session-timeout__text-button", variant: "subtle", size: "lg", onClick: () => this.bsSecondary.emit() }, secondary)))), h("div", { key: '179e7d8a22872c50f531758bfc64b1de7c4f557d', 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: '3594dbd6526283414539f46dbf83430c35b6aa03', part: "container", class: "bs-shortcut-row", role: this.selectionRole ?? undefined }, h("span", { key: '74bf12e32a4fc15c77ee4b650ae1facee76f68c0', part: "action", class: "bs-shortcut-row__action" }, h("slot", { key: '6bfc823e7ffb68d7a2d677d828dfe5f765f1d094' }, this.action)), h("span", { key: '4f6ba475754e26dffdae4dbbc29d64c1f01d2463', part: "keys", class: "bs-shortcut-row__keys" }, h("slot", { key: '251e7333354292aacc6f93265d3ebce68db0af53', name: "keys" }, h("bs-key-caps", { key: 'f887b73b0c21c92997cee5a4742e23b5caad358d', keys: this.keys, label: this.label, disabled: this.disabled })))));
39
+ return (h("div", { key: 'd336bcc14fe7dcd1e89e436869fc3a45f354d6e8', part: "container", class: "bs-shortcut-row", role: this.selectionRole ?? undefined }, h("span", { key: '45583d2bd4a7ef0b803e09d044bb90d5db86fe56', part: "action", class: "bs-shortcut-row__action" }, h("slot", { key: '3dd97ce7647a6efe7f7f0f4f4f10bda2f7f282b9' }, this.action)), h("span", { key: '3974fb0a6d0ca7aaaf136253db49e53c4dbedca4', part: "keys", class: "bs-shortcut-row__keys" }, h("slot", { key: '3341c3a3e96eb4e0f1cbe821ea2a52936fa1bb37', name: "keys" }, h("bs-key-caps", { key: 'cbd12693cf4c679e7dcd04e3e00a7d7c43d1fe76', 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"; }
@@ -1,4 +1,5 @@
1
1
  import { render, h, describe, it, expect } from "@stencil/vitest";
2
+ const wait = (ms) => new Promise(resolve => setTimeout(resolve, ms));
2
3
  describe('bs-side-panel', () => {
3
4
  it('renders nothing when closed', async () => {
4
5
  const { root } = await render(h("bs-side-panel", { heading: "History" }, "Body"));
@@ -114,4 +115,22 @@ describe('bs-side-panel', () => {
114
115
  expect(plain.inert).toBe(false);
115
116
  plain.remove();
116
117
  });
118
+ describe('open/close motion', () => {
119
+ it('stays mounted while it slides out, then unmounts', async () => {
120
+ const { root, waitForChanges } = await render(h("bs-side-panel", { open: true, heading: "History", style: { '--bs-side-panel-duration': '150ms' } }, "Body"));
121
+ root.open = false;
122
+ await waitForChanges();
123
+ expect(root.shadowRoot.querySelector('[role="dialog"]')).not.toBeNull();
124
+ expect(root.shadowRoot.querySelector('.bs-side-panel')).toHaveClass('bs-side-panel--closing');
125
+ await wait(400);
126
+ await waitForChanges();
127
+ expect(root.shadowRoot.querySelector('[role="dialog"]')).toBeNull();
128
+ });
129
+ it('unmounts immediately when the duration is 0ms', async () => {
130
+ const { root, waitForChanges } = await render(h("bs-side-panel", { open: true, heading: "History", style: { '--bs-side-panel-duration': '0ms' } }, "Body"));
131
+ root.open = false;
132
+ await waitForChanges();
133
+ expect(root.shadowRoot.querySelector('[role="dialog"]')).toBeNull();
134
+ });
135
+ });
117
136
  });
@@ -6,6 +6,8 @@
6
6
  --bs-side-panel-overlay-bg: var(--bs-surface-overlay);
7
7
  --bs-side-panel-color: var(--bs-text-default);
8
8
  --bs-side-panel-z-index: var(--bs-z-index-modal);
9
+ --bs-side-panel-duration: var(--bs-duration-slow);
10
+ --bs-side-panel-easing: var(--bs-easing-standard);
9
11
  }
10
12
 
11
13
  .bs-side-panel {
@@ -75,3 +77,9 @@
75
77
  .bs-side-panel__footer {
76
78
  padding: var(--bs-side-panel-padding);
77
79
  }
80
+
81
+ /* On its way out: neither the panel nor the backdrop may take clicks. */
82
+ .bs-side-panel--closing .bs-side-panel__overlay,
83
+ .bs-side-panel--closing .bs-side-panel__panel {
84
+ pointer-events: none;
85
+ }
@@ -1,4 +1,5 @@
1
1
  import { h } from "@stencil/core";
2
+ import { cancelMotion, play, readMotion } from "../../utils/motion";
2
3
  let panelId = 0;
3
4
  /**
4
5
  * A generic slide-in panel (drawer) anchored to the start or end edge, for history, filters, FAQ
@@ -30,6 +31,8 @@ let panelId = 0;
30
31
  * @prop --bs-side-panel-overlay-bg - Backdrop color. Aliased to `--bs-surface-overlay`.
31
32
  * @prop --bs-side-panel-color - Text color. Aliased to `--bs-text-default`.
32
33
  * @prop --bs-side-panel-z-index - Stacking order. Aliased to `--bs-z-index-modal`.
34
+ * @prop --bs-side-panel-duration - Length of the slide in/out. Aliased to `--bs-duration-slow`.
35
+ * @prop --bs-side-panel-easing - Curve of the slide in/out. Aliased to `--bs-easing-standard`.
33
36
  */
34
37
  export class BsSidePanel {
35
38
  el;
@@ -50,7 +53,24 @@ export class BsSidePanel {
50
53
  panelEl;
51
54
  /** Elements we set `inert` on (so we only undo our own changes). */
52
55
  inertified = [];
56
+ /** True while the slide-out plays after `open` went false, so the panel stays mounted for it. */
57
+ closing = false;
58
+ overlayEl;
59
+ enterPending = false;
60
+ exitPending = false;
61
+ motionRun = 0;
62
+ wasRendered = false;
53
63
  onOpenChange(next) {
64
+ this.motionRun++;
65
+ cancelMotion(this.overlayEl, this.panelEl);
66
+ if (next) {
67
+ this.closing = false;
68
+ this.enterPending = true;
69
+ }
70
+ else if (this.wasRendered && readMotion(this.el, 'bs-side-panel').ms > 0) {
71
+ this.closing = true;
72
+ this.exitPending = true;
73
+ }
54
74
  if (next) {
55
75
  this.previouslyFocused = document.activeElement ?? null;
56
76
  this.applyInert();
@@ -144,7 +164,38 @@ export class BsSidePanel {
144
164
  first.focus();
145
165
  }
146
166
  }
167
+ /** Where the panel sits when hidden: fully past its own edge. Physical, like the panel's own left/right. */
168
+ offscreen() {
169
+ return this.side === 'start' ? 'translateX(-100%)' : 'translateX(100%)';
170
+ }
171
+ playEnter() {
172
+ const { ms, easing } = readMotion(this.el, 'bs-side-panel');
173
+ if (ms === 0)
174
+ return;
175
+ play(this.overlayEl, [{ opacity: 0 }, { opacity: 1 }], ms, easing);
176
+ play(this.panelEl, [{ transform: this.offscreen() }, { transform: 'none' }], ms, easing);
177
+ }
178
+ playExit() {
179
+ const { ms, easing } = readMotion(this.el, 'bs-side-panel');
180
+ const run = ++this.motionRun;
181
+ Promise.all([
182
+ play(this.overlayEl, [{ opacity: 1 }, { opacity: 0 }], ms, easing, 'forwards'),
183
+ play(this.panelEl, [{ transform: 'none' }, { transform: this.offscreen() }], ms, easing, 'forwards'),
184
+ ]).then(() => {
185
+ if (run === this.motionRun)
186
+ this.closing = false;
187
+ });
188
+ }
147
189
  componentDidRender() {
190
+ this.wasRendered = this.open || this.closing;
191
+ if (this.open && this.enterPending) {
192
+ this.enterPending = false;
193
+ this.playEnter();
194
+ }
195
+ else if (!this.open && this.closing && this.exitPending) {
196
+ this.exitPending = false;
197
+ this.playExit();
198
+ }
148
199
  if (this.open && this.panelEl && !this.focusedIn) {
149
200
  this.focusedIn = true;
150
201
  this.panelEl.focus();
@@ -168,9 +219,9 @@ export class BsSidePanel {
168
219
  }
169
220
  };
170
221
  render() {
171
- if (!this.open)
222
+ if (!this.open && !this.closing)
172
223
  return null;
173
- return (h("div", { class: `bs-side-panel bs-side-panel--${this.side}`, onKeyDown: this.onKeyDown }, this.overlay && h("div", { part: "overlay", class: "bs-side-panel__overlay", onClick: this.close }), h("div", { part: "panel", class: "bs-side-panel__panel", role: "dialog", "aria-modal": "true", "aria-labelledby": this.headingId, tabindex: "-1", ref: el => (this.panelEl = el) }, h("div", { part: "header", class: "bs-side-panel__header" }, h("h2", { part: "heading", id: this.headingId, class: "bs-side-panel__heading" }, this.heading), h("div", { class: "bs-side-panel__actions" }, h("slot", { name: "header-actions" }), h("bs-icon-button", { variant: "subtle", ariaLabel: this.closeLabel, onClick: this.close }, h("svg", { viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true" }, h("path", { d: "M6 6L18 18M18 6L6 18", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round" }))))), h("div", { part: "body", class: "bs-side-panel__body" }, h("slot", null)), h("div", { part: "footer", class: "bs-side-panel__footer" }, h("slot", { name: "footer" })))));
224
+ return (h("div", { class: `bs-side-panel bs-side-panel--${this.side} ${this.open ? '' : 'bs-side-panel--closing'}`, onKeyDown: this.onKeyDown }, this.overlay && h("div", { part: "overlay", class: "bs-side-panel__overlay", onClick: this.close, ref: el => (this.overlayEl = el) }), h("div", { part: "panel", class: "bs-side-panel__panel", role: "dialog", "aria-modal": "true", "aria-labelledby": this.headingId, tabindex: "-1", ref: el => (this.panelEl = el) }, h("div", { part: "header", class: "bs-side-panel__header" }, h("h2", { part: "heading", id: this.headingId, class: "bs-side-panel__heading" }, this.heading), h("div", { class: "bs-side-panel__actions" }, h("slot", { name: "header-actions" }), h("bs-icon-button", { variant: "subtle", ariaLabel: this.closeLabel, onClick: this.close }, h("svg", { viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true" }, h("path", { d: "M6 6L18 18M18 6L6 18", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round" }))))), h("div", { part: "body", class: "bs-side-panel__body" }, h("slot", null)), h("div", { part: "footer", class: "bs-side-panel__footer" }, h("slot", { name: "footer" })))));
174
225
  }
175
226
  static get is() { return "bs-side-panel"; }
176
227
  static get encapsulation() { return "shadow"; }
@@ -294,6 +345,11 @@ export class BsSidePanel {
294
345
  }
295
346
  };
296
347
  }
348
+ static get states() {
349
+ return {
350
+ "closing": {}
351
+ };
352
+ }
297
353
  static get events() {
298
354
  return [{
299
355
  "method": "bsClose",
@@ -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: 'c5cbf5b6a64b8658ffd5b60816db3d226c342d65', 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: '0ee4009d1f3de93bdca785aac769f559c42b4d27', 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"; }
@@ -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: '8d3274ef80b6bdd4a52efc8f8802ebb3aba86b9a', class: rootClasses }, this.showLabel && (h("div", { key: 'd852f58c8c92a8f69153192e74136362e2ab226e', class: "bs-slider__header" }, h("span", { key: 'e02b3c4fd839d812b516bab33349f1a4f2d5b0c4', 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: '30bc9f0bb1380dfa22542d04af160f13f70d276f', class: "bs-slider__row" }, this.showLabel && (h("span", { key: '824de56e2112ef5af4e20ebf097b17e4d7122624', part: "bound", class: "bs-slider__bound" }, this.min)), isRange ? this.renderRangeThumbs() : this.renderSingleThumb(), this.showLabel && (h("span", { key: 'cd0848d7add9ea1fd53c92ebd5b5f13a4a06fdbe', part: "bound", class: "bs-slider__bound" }, this.max)))));
236
+ return (h("div", { key: '78480dc37808335f258e1ad06e8b19ca97aed1b9', class: rootClasses }, this.showLabel && (h("div", { key: '0fd24602403f811367605786a07d9962c6f3522f', class: "bs-slider__header" }, h("span", { key: 'dd1c85fa0c4718e381bfef7f00977230d60e9d6c', id: "bs-slider-label", part: "label", class: "bs-slider__label" }, this.label), isRange ? (h("span", { class: "bs-slider__value-fields" }, this.renderPercentField(this.percent(this.effectiveValueStart), this.onStartPercentFieldChange, this.ariaLabel ?? this.startValueLabel), h("span", { class: "bs-slider__separator" }, "\u2013"), this.renderPercentField(this.percent(this.effectiveValueEnd), this.onEndPercentFieldChange, this.ariaLabel ? `${this.ariaLabel} end` : this.endValueLabel))) : (this.renderPercentField(this.percent(this.value), this.onPercentFieldChange, this.ariaLabel ? `${this.ariaLabel} value` : 'Value')))), h("div", { key: '6628c6c2332590f3580a759903bfc2b817ec1ef6', class: "bs-slider__row" }, this.showLabel && (h("span", { key: 'ecda7ec3285991312fbd0fba003294ba94fa8777', part: "bound", class: "bs-slider__bound" }, this.min)), isRange ? this.renderRangeThumbs() : this.renderSingleThumb(), this.showLabel && (h("span", { key: '3db1ee50efbfe1d14aae2609997bbd589710f2d1', part: "bound", class: "bs-slider__bound" }, this.max)))));
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: '2b54d2d4ddfed7e1942ab21f09cf074ab58b2f22', part: "container", class: `bs-snackbar bs-snackbar--${this.variant}`, role: "status", "aria-live": this.variant === 'error' ? 'assertive' : 'polite' }, h("div", { key: 'a3ca39bf6b7c1047b013bac648b6fb60acaf520d', class: "bs-snackbar__content" }, h("span", { key: 'fa5a5cc6a24ad4f7ee434bf9f8ae4976872c57df', part: "icon", class: "bs-snackbar__icon", "aria-hidden": "true" }, this.loading ? h("span", { class: "bs-snackbar__spinner" }) : h(CheckCircleIcon, null)), h("span", { key: '58b52f72b9290a986832b954ad9f7e5d1e51eac8', part: "message", class: "bs-snackbar__message" }, h("slot", { key: 'c907524f91afd4b5ac22f0b86bb123ac831021f9' }))), h("div", { key: 'b746a574030f0023826ef131643eb49088db7da0', class: "bs-snackbar__actions" }, this.actionLabel && (h("bs-button", { key: 'fef75f43a0a15208b43ad4601dcc639022160ccc', part: "action", variant: this.actionVariant ?? ACTION_VARIANT[this.variant], size: "sm", onClick: this.onAction }, this.actionLabel)), !this.hideClose && (h("bs-icon-button", { key: 'a582778e2469b68a683c6cff867c5f8839989f2e', part: "close", variant: "subtle", size: "md", ariaLabel: "Dismiss", onClick: this.onDismiss }, h(CloseIcon, { key: '1e7a6f872373fe2f62a99aa03421815a6f55e8d2' }))))));
70
+ return (h("div", { key: '26aad3204c2d6ca34162da66a173afab22663973', part: "container", class: `bs-snackbar bs-snackbar--${this.variant}`, role: "status", "aria-live": this.variant === 'error' ? 'assertive' : 'polite' }, h("div", { key: '8837bc51a479fbd276b2c02fccf98eb3e6683801', class: "bs-snackbar__content" }, h("span", { key: '791564815c28aebeabff97b6b113f04acc4fa0b6', part: "icon", class: "bs-snackbar__icon", "aria-hidden": "true" }, this.loading ? h("span", { class: "bs-snackbar__spinner" }) : h(CheckCircleIcon, null)), h("span", { key: '28920c114f18f996d0dc4778d4de2ff523626c99', part: "message", class: "bs-snackbar__message" }, h("slot", { key: '4bf02f4ad00ab5a3def30c066648b4df55bf7457' }))), h("div", { key: '7f3c619ba2164e8e7eb780c737b410a50fdf813b', class: "bs-snackbar__actions" }, this.actionLabel && (h("bs-button", { key: '43886c3acaef928d08cf76d8d4660df6100f1ba3', part: "action", variant: this.actionVariant ?? ACTION_VARIANT[this.variant], size: "sm", onClick: this.onAction }, this.actionLabel)), !this.hideClose && (h("bs-icon-button", { key: 'd28c20079af83708865ad4b6ba72a65de2a1d458', part: "close", variant: "subtle", size: "md", ariaLabel: "Dismiss", onClick: this.onDismiss }, h(CloseIcon, { key: '7f9df3eef9dcf22f587b69e4ecd36566876c29b9' }))))));
71
71
  }
72
72
  static get is() { return "bs-snackbar"; }
73
73
  static get encapsulation() { return "shadow"; }
@@ -14,6 +14,8 @@
14
14
  }
15
15
 
16
16
  .bs-source-link {
17
+ /* Containing block for the absolutely-positioned bs-ripple layer. */
18
+ position: relative;
17
19
  box-sizing: border-box;
18
20
  display: flex;
19
21
  align-items: center;
@@ -32,6 +32,7 @@ import { h } from "@stencil/core";
32
32
  * @prop --bs-source-link-icon-color - File icon and arrow color. Aliased to `--bs-icon-default`.
33
33
  * @prop --bs-source-link-dot-color - Separator dot between source and version. Aliased to
34
34
  * `--bs-text-secondary`.
35
+ * @part ripple - The press-ripple layer (a `bs-ripple`). Tune it with `::part(ripple) { --bs-ripple-color: ...; }`.
35
36
  */
36
37
  export class BsSourceLink {
37
38
  /** The cited document's filename. */
@@ -51,8 +52,9 @@ export class BsSourceLink {
51
52
  };
52
53
  render() {
53
54
  const inner = [
54
- h("span", { key: 'f6cbdaccaa104fa4e6d16db23ae8f66e9d3d7aa7', class: "bs-source-link__left" }, h("span", { key: 'a66ccda2c131b3a708402d0b06206e355fca0dad', class: "bs-source-link__filename-row" }, h("span", { key: '74af0518a127378fc13291c3cec12b8eb470268b', part: "icon", class: "bs-source-link__icon" }, h("slot", { key: '9b1f4a71a0c5313210481106988a851ea87b40b6', name: "icon" }, h(FileTextIcon, { key: '1b1b9e285a744a074537fbf4ea19c852343b4513' }))), h("p", { key: 'ecdedebb0281ec56ec08a1657de2d924bb34a421', part: "filename", class: "bs-source-link__filename" }, this.fileName)), h("span", { key: 'b109074e833ef4feb438f9b4992fe6bd7ebc8279', class: "bs-source-link__meta" }, this.sourceName && (h("span", { key: '182f41c9115004f345028e991e38345dcc9bc7b2', part: "source", class: "bs-source-link__source" }, this.sourceName)), this.sourceName && this.version && h("span", { key: '95b31ed9741bbaeb215109139520108991d33ffe', class: "bs-source-link__dot", "aria-hidden": "true" }), this.version && (h("span", { key: '3241c29460a9287bba9bebac78cefdb1ef62ca65', part: "version", class: "bs-source-link__version" }, this.version)))),
55
- h("span", { key: '67327845908098595d935c87c96809205cb25d38', part: "arrow", class: "bs-source-link__arrow", "aria-hidden": "true" }, h(ArrowUpRightIcon, { key: 'fcf4946e7d5647a6137ff1a6d24851cc7bcb9aef' })),
55
+ h("bs-ripple", { key: '2ddd937da894bc3584b82489e35d41167c19cb6c', part: "ripple" }),
56
+ h("span", { key: 'd1141377078beec80d8726b1633ea9261bce215d', class: "bs-source-link__left" }, h("span", { key: '75d04109faa8168ba271c8bfc2cfd15abf02fb57', class: "bs-source-link__filename-row" }, h("span", { key: '50f28021063c49b0ccc7348e7b0b9cd6ca0749b7', part: "icon", class: "bs-source-link__icon" }, h("slot", { key: 'aca4ff56e585d65d2b38d0b1f8634d56d521b549', name: "icon" }, h(FileTextIcon, { key: 'e89b337ded8658b2b76ba59e6ea79e70763ddb72' }))), h("p", { key: '5d9cdf3618072784aeb9bd067ae505b57afa625c', part: "filename", class: "bs-source-link__filename" }, this.fileName)), h("span", { key: '35d6d485989679eb05b6fcf2096477456e6b7bc0', class: "bs-source-link__meta" }, this.sourceName && (h("span", { key: 'e3ffae28c3ed65d255961c172eb823d52583c7b2', part: "source", class: "bs-source-link__source" }, this.sourceName)), this.sourceName && this.version && h("span", { key: 'c460e9ccfa2d92b11d8bb2a1e87fcedc94d392ae', class: "bs-source-link__dot", "aria-hidden": "true" }), this.version && (h("span", { key: '9a33d16c96a6d904dd1b69169170da0d0801b9f1', part: "version", class: "bs-source-link__version" }, this.version)))),
57
+ h("span", { key: 'c2f42b73b59ae97bb8e95e80c20a2038826329bf', part: "arrow", class: "bs-source-link__arrow", "aria-hidden": "true" }, h(ArrowUpRightIcon, { key: '61d67aaa0a4382ecb12ed49d5716e1c4385c6af5' })),
56
58
  ];
57
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));
58
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: '3c9d75df5028a1bad32c909ef1e382ffae53fd91', 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: '431baaa3fbe8c6f9a4d9189b46d24d5e15ad8f18', part: "svg", class: "bs-spinner__svg", viewBox: "0 0 24 24", fill: "none", focusable: "false" }, h("circle", { key: 'd71a6901ce3cccd9647287ea06693137cd5c9b64', class: "bs-spinner__track", cx: "12", cy: "12", r: "9", "stroke-width": "3" }), h("path", { key: '65f5e995822a96e293b3541eb16606a178ec6c88', class: "bs-spinner__arc", d: "M12 3a9 9 0 0 1 9 9", "stroke-width": "3", "stroke-linecap": "round" }))));
33
+ return (h("span", { key: '17b3ac21aefe35279e52717c529bcba6d2ae7b75', part: "container", class: `bs-spinner bs-spinner--${this.size}`, role: hasLabel ? 'status' : undefined, "aria-label": hasLabel ? this.label : undefined, "aria-hidden": hasLabel ? undefined : 'true' }, h("svg", { key: '8ca1165795b8fadb7ea3c3c8228fc6f24d3ce3b2', part: "svg", class: "bs-spinner__svg", viewBox: "0 0 24 24", fill: "none", focusable: "false" }, h("circle", { key: '07d9b05e6e6f11e742bdbeea99e7f31322696363', class: "bs-spinner__track", cx: "12", cy: "12", r: "9", "stroke-width": "3" }), h("path", { key: '83d83f51d3c89cc3997950ff94e4911c6d1c0748', class: "bs-spinner__arc", d: "M12 3a9 9 0 0 1 9 9", "stroke-width": "3", "stroke-linecap": "round" }))));
34
34
  }
35
35
  static get is() { return "bs-spinner"; }
36
36
  static get encapsulation() { return "shadow"; }
@@ -215,7 +215,7 @@ export class BsSplitPane {
215
215
  nodes.push(h("div", { part: "divider", class: { 'bs-split-pane__divider': true, 'bs-split-pane__divider--active': this.draggingIndex === i, 'bs-split-pane__divider--static': !this.resizable }, role: "separator", "aria-orientation": dividerOrientation, "aria-label": this.dividerLabel, "aria-valuemin": 0, "aria-valuemax": 100, "aria-valuenow": this.percentFor(i), tabindex: this.resizable ? 0 : undefined, onPointerDown: this.onPointerDown(i), onPointerMove: this.onPointerMove, onPointerUp: this.onPointerUp, onPointerCancel: this.onPointerUp, onKeyDown: this.onKeyDown(i) }, h("span", { part: "divider-thumb", class: "bs-split-pane__thumb" })));
216
216
  }
217
217
  }
218
- return (h("div", { key: '70a36a863fc3fb144160616725126d0421cea69f', part: "container", class: `bs-split-pane bs-split-pane--${this.orientation}` }, nodes));
218
+ return (h("div", { key: 'c427313cbfcd736d044ced8e07658ad6de6ed0bd', part: "container", class: `bs-split-pane bs-split-pane--${this.orientation}` }, nodes));
219
219
  }
220
220
  static get is() { return "bs-split-pane"; }
221
221
  static get encapsulation() { return "shadow"; }
@@ -81,7 +81,7 @@ export class BsStack {
81
81
  parts.push(h("slot", { name: `bs-stack-item-${i}`, onSlotchange: this.sync }));
82
82
  }
83
83
  }
84
- return (h(Host, { key: 'be2e4a8ecb5d4fd27441b8cafbfd7e8a17ea3b82', style: { '--bs-stack-gap-token': `var(--bs-spacing-${gap})` } }, h("slot", { key: '4eab2557384cb6ae620ea3feef8e36dc0a2e2f08', onSlotchange: this.sync }), parts));
84
+ return (h(Host, { key: '39852df38f3638826e331e5e1028fa069e15322c', style: { '--bs-stack-gap-token': `var(--bs-spacing-${gap})` } }, h("slot", { key: '9e303ef2361fd7b804aea37b1b5bf4269f480b2d', 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 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: '3f002aa5977dd81a203b44aeb3ffd9e82e1d78ab', role: "list" }, h("slot", { key: 'f5a64626aba6cef29bcc7710c839583ccc2a2c71', onSlotchange: this.onSlotChange })));
65
+ return (h(Host, { key: '12784d8efa1487b3fb39f9f59d7ebcd314ad6518', role: "list" }, h("slot", { key: 'af46ba1e66089cbacbc4e0b483df643196434f0b', 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: '8e11ed2e78a5e6468ed6265f90199bdc0c2e4bcc', role: "listitem", class: `bs-stepper-step--${this.direction}` }, h("div", { key: '0d50e2845fb886a73e7eeaad474c0d9c1b2e06cb', class: "bs-stepper-step__top" }, h("span", { key: '1bfe85491c42f8e1bf00a4e86c162448564b5142', part: "icon", class: `bs-stepper-step__icon bs-stepper-step__icon--${state}` }, state === 'current' && h("span", { key: 'e3ac4066de9f1c9bfa824a889c654952891221b8', class: "bs-stepper-step__icon-dot" }), state === 'done' && h(CheckIcon, { key: '7c1e237ce011d77b47d26e622974d6a2629ecfd3' }), state === 'error' && h(ExclamationIcon, { key: '9420c50c9154f007ae0802473f0a5e0cf18fe8fd' })), h("span", { key: '039f2ca1186b82bebb8e989630f575599c64e85b', part: "connector", class: "bs-stepper-step__connector", "aria-hidden": "true" }, h("span", { key: 'dc5a250a1437eda9baf7cd38a69fa36d26e6cfaa', class: "bs-stepper-step__connector-line" }))), h("span", { key: 'df8d2c94073f134125d34e5686f0c340c2c59d87', part: "label", class: `bs-stepper-step__label bs-stepper-step__label--${state}` }, h("span", { key: '5bdce9915c1e6e2610bbe101bc41108cfa2e0cd5', part: "name", class: "bs-stepper-step__name" }, this.name), this.showDescription && this.description && (h("span", { key: '39ddca52aa59717d22ca56ece74b4518d1ae2370', part: "description", class: "bs-stepper-step__description" }, this.description)))));
60
+ return (h(Host, { key: 'e9b5948fbba4037488296cdc5e479f2070e0aff9', role: "listitem", class: `bs-stepper-step--${this.direction}` }, h("div", { key: 'debe65501bcdbc563bad4800d9f5bcad4d5de76a', class: "bs-stepper-step__top" }, h("span", { key: '0e0315aa8146c0f11e6ebd9e939735f7f339113e', part: "icon", class: `bs-stepper-step__icon bs-stepper-step__icon--${state}` }, state === 'current' && h("span", { key: 'c02f6a5c3de19fa5a2b54d6de53d0a7b345697d2', class: "bs-stepper-step__icon-dot" }), state === 'done' && h(CheckIcon, { key: '1147e186c821d21fc164ca589a2f9f6a179c145f' }), state === 'error' && h(ExclamationIcon, { key: '5f8c5874811de90db1e537b0f3d24e82e038a123' })), h("span", { key: 'b0347e06b36bf4fabdba4300803dc1a3b8c68719', part: "connector", class: "bs-stepper-step__connector", "aria-hidden": "true" }, h("span", { key: 'fa4f577a71a70151aaa3a9eb16eb2db91ba0fc01', class: "bs-stepper-step__connector-line" }))), h("span", { key: 'd5d9f431e11074aba9996833adbb9b2cb1f227cb', part: "label", class: `bs-stepper-step__label bs-stepper-step__label--${state}` }, h("span", { key: 'bb233d28351a78c13b604fd2f940b29467ae316c', part: "name", class: "bs-stepper-step__name" }, this.name), this.showDescription && this.description && (h("span", { key: '921a2bd021cb0cccb261313f3076370c8e620ccb', 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"; }
@@ -128,6 +128,8 @@
128
128
  }
129
129
 
130
130
  .bs-switch__knob {
131
+ /* Containing block for the bs-ripple halo. */
132
+ position: relative;
131
133
  box-sizing: border-box;
132
134
  border-radius: var(--bs-border-radius-full);
133
135
  background: var(--bs-switch-knob-bg);
@@ -203,3 +205,10 @@
203
205
  .bs-switch__track--checked .bs-switch__knob { background: HighlightText; }
204
206
  .bs-switch__track--disabled { border-color: GrayText; }
205
207
  }
208
+
209
+ /* Round halo that extends past the knob, tinted with the brand colour. The press target is the whole label. */
210
+ .bs-switch__ripple {
211
+ inset: -12px;
212
+ border-radius: 50%;
213
+ --bs-ripple-color: var(--bs-color-primary-default);
214
+ }