@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
@@ -100,4 +100,17 @@ describe('bs-icon-button', () => {
100
100
  expect(getComputedStyle(root.querySelector('i.glyph')).fontSize).toBe('30px');
101
101
  });
102
102
  });
103
+ describe('pressed (toggle)', () => {
104
+ it('sets aria-pressed on the inner button only when `pressed` is set', async () => {
105
+ const { root, waitForChanges } = await render(h("bs-icon-button", { ariaLabel: "Favourite" }));
106
+ const inner = () => root.shadowRoot.querySelector('button');
107
+ expect(inner().hasAttribute('aria-pressed')).toBe(false);
108
+ root.pressed = true;
109
+ await waitForChanges();
110
+ expect(inner().getAttribute('aria-pressed')).toBe('true');
111
+ root.pressed = false;
112
+ await waitForChanges();
113
+ expect(inner().getAttribute('aria-pressed')).toBe('false');
114
+ });
115
+ });
103
116
  });
@@ -132,6 +132,8 @@
132
132
  }
133
133
 
134
134
  .bs-icon-button {
135
+ /* Containing block for the absolutely-positioned bs-ripple layer. */
136
+ position: relative;
135
137
  display: inline-flex;
136
138
  align-items: center;
137
139
  justify-content: center;
@@ -23,6 +23,7 @@ import { h } from "@stencil/core";
23
23
  * @slot - Default slot: the icon content. Exactly one icon, no label -- an inline SVG, or an icon-font
24
24
  * glyph (sized by `font-size`, which this component sets from the `size` prop).
25
25
  * @part icon - The icon wrapper element.
26
+ * @part ripple - The press-ripple layer (a `bs-ripple`). Tune it with `::part(ripple) { --bs-ripple-color: ...; }`.
26
27
  */
27
28
  // Note: this component's CSS Custom Properties (--bs-icon-button-*) are documented via @prop
28
29
  // comments in bs-icon-button.css, not here -- Stencil's docs generator only parses @prop out of
@@ -52,6 +53,13 @@ export class BsIconButton {
52
53
  * prop to the `aria-label` HTML attribute automatically.
53
54
  */
54
55
  ariaLabel = null;
56
+ /**
57
+ * Makes this a toggle button: sets `aria-pressed` on the inner `<button>` to `true`/`false`. Leave it
58
+ * unset (the default) for a plain action button, which then has no `aria-pressed` at all. The component
59
+ * does not toggle itself; the owner flips this on click. Put the toggle's state in the icon (e.g. a filled
60
+ * star), not in the label, which should stay the same.
61
+ */
62
+ pressed;
55
63
  onClick = () => {
56
64
  const form = this.internals?.form;
57
65
  if (!form || this.disabled)
@@ -62,7 +70,7 @@ export class BsIconButton {
62
70
  form.reset();
63
71
  };
64
72
  render() {
65
- return (h("button", { key: '75325bed02f38716052a4341a971ed429355d615', class: `bs-icon-button bs-icon-button--${this.variant} bs-icon-button--${this.size}`, type: this.type, disabled: this.disabled, "aria-label": this.ariaLabel, onClick: this.onClick }, h("span", { key: 'a427c213e0bbf3ee96698917ffc127d1d4d15de8', part: "icon", class: "bs-icon-button__icon" }, h("slot", { key: 'b46bf34d3fb24e9b899ba52fbd2ca39a49c634d3' }))));
73
+ return (h("button", { key: '6ffeb6535c6c1fb493f6c805a1f70a431a593d08', class: `bs-icon-button bs-icon-button--${this.variant} bs-icon-button--${this.size}`, type: this.type, disabled: this.disabled, "aria-label": this.ariaLabel, "aria-pressed": this.pressed === undefined ? undefined : String(this.pressed), onClick: this.onClick }, h("bs-ripple", { key: '0f3f40ca57f447a5d92b3f0ef132c146ef25675d', part: "ripple", centered: true, disabled: this.disabled }), h("span", { key: '00c1039364372917781441fca63553a430b9398a', part: "icon", class: "bs-icon-button__icon" }, h("slot", { key: '18ba74587ec975b3f95115c211bcef1d4bac6ae5' }))));
66
74
  }
67
75
  static get is() { return "bs-icon-button"; }
68
76
  static get encapsulation() { return "shadow"; }
@@ -191,6 +199,25 @@ export class BsIconButton {
191
199
  "reflect": false,
192
200
  "attribute": "aria-label",
193
201
  "defaultValue": "null"
202
+ },
203
+ "pressed": {
204
+ "type": "boolean",
205
+ "mutable": false,
206
+ "complexType": {
207
+ "original": "boolean",
208
+ "resolved": "boolean",
209
+ "references": {}
210
+ },
211
+ "required": false,
212
+ "optional": true,
213
+ "docs": {
214
+ "tags": [],
215
+ "text": "Makes this a toggle button: sets `aria-pressed` on the inner `<button>` to `true`/`false`. Leave it\nunset (the default) for a plain action button, which then has no `aria-pressed` at all. The component\ndoes not toggle itself; the owner flips this on click. Put the toggle's state in the icon (e.g. a filled\nstar), not in the label, which should stay the same."
216
+ },
217
+ "getter": false,
218
+ "setter": false,
219
+ "reflect": false,
220
+ "attribute": "pressed"
194
221
  }
195
222
  };
196
223
  }
@@ -27,7 +27,7 @@ export class BsButtonSkeleton {
27
27
  /** Accessible name announced for the loading placeholder. */
28
28
  loadingLabel = 'Loading';
29
29
  render() {
30
- return h("span", { key: '248ee140711040c1a4a35cd8539431d79d5f5c7c', part: "container", class: `bs-button-skeleton bs-button-skeleton--${this.size}`, role: "status", "aria-label": this.loadingLabel });
30
+ return h("span", { key: 'c29256165abc3f5de50cf1f087f0ad161e33bb76', part: "container", class: `bs-button-skeleton bs-button-skeleton--${this.size}`, role: "status", "aria-label": this.loadingLabel });
31
31
  }
32
32
  static get is() { return "bs-button-skeleton"; }
33
33
  static get encapsulation() { return "shadow"; }
@@ -34,7 +34,7 @@ export class BsCard {
34
34
  this.hasImage = ev.target.assignedNodes().length > 0;
35
35
  };
36
36
  render() {
37
- return (h("div", { key: '288db1e39f66129bf5d6598f53fb49d5481d0f02', part: "container", class: `bs-card bs-card--${this.surface}` }, h("div", { key: '9f25abc5cdfdf40d7bdefab7f1154545cc634f9d', part: "image", class: `bs-card__image ${this.hasImage ? 'bs-card__image--visible' : ''}` }, h("slot", { key: '8eff4a23e8ecf977056206bc8c223b4ad97b7656', name: "image", onSlotchange: this.onImageSlotchange })), h("div", { key: 'b0a1580657943f30c9a5dba3361dcf00dd36e90f', class: "bs-card__content" }, h("div", { key: 'f151de3b9d5975d2953131aea92a2353ac665bbc', part: "header", class: "bs-card__header" }, h("slot", { key: '6d015146a6ff72788ad3843caa37f2c304728b8b', name: "header" })), h("div", { key: 'd678f0d33dba58725b397502d9aced9983466bf6', part: "body", class: "bs-card__body" }, h("slot", { key: '51b7cdca4af0e43ba7de04c14bca32f59baa2f58' })), h("div", { key: '6b6fe027565678561d7f7beb79f6ceb05397ff50', part: "footer", class: "bs-card__footer" }, h("slot", { key: '6d704d0e7b6644e3f0e6b4ce7ae12e515c84339d', name: "footer" })))));
37
+ return (h("div", { key: '5badbcc0d29f07bf53520091e1e8fe8d8187dd18', part: "container", class: `bs-card bs-card--${this.surface}` }, h("div", { key: '2c69c0795db112c2dc52289a47b76d60662ef693', part: "image", class: `bs-card__image ${this.hasImage ? 'bs-card__image--visible' : ''}` }, h("slot", { key: '3aa0debc45e28c88b05103a494ee52f047305d9d', name: "image", onSlotchange: this.onImageSlotchange })), h("div", { key: '6fbe78e872b7aa7e166907a4173edd813f8fd73b', class: "bs-card__content" }, h("div", { key: '19df2524b50471bbb56e95b445643a4bfddd0c12', part: "header", class: "bs-card__header" }, h("slot", { key: 'bd4c9b53ccc07b7a95f6aee28b2a95a0ab8b137e', name: "header" })), h("div", { key: 'c5351e535d77c007806554ae3580b1b0b0bafd9d', part: "body", class: "bs-card__body" }, h("slot", { key: '323ac4df7355ce44383137ad754c650ff515ef28' })), h("div", { key: 'ac3e228d13303ffcaab2a4879a202db28e2c3a6a', part: "footer", class: "bs-card__footer" }, h("slot", { key: 'a2afbae842ef598422853a0628bb9f14dee34c6a', name: "footer" })))));
38
38
  }
39
39
  static get is() { return "bs-card"; }
40
40
  static get encapsulation() { return "shadow"; }
@@ -1,8 +1,10 @@
1
1
  import { render, h, describe, it, expect } from "@stencil/vitest";
2
2
  import { afterEach, beforeEach, vi } from "vitest";
3
3
  import { userEvent } from "vitest/browser";
4
- import { assertShadowParts, runAxeCheck } from "../../test/helpers/conventions";
4
+ import { assertCssCustomProperties, assertShadowParts, runAxeCheck } from "../../test/helpers/conventions";
5
5
  const slides = (n) => Array.from({ length: n }, (_, i) => h("div", null, "Slide ", i + 1));
6
+ // Page changes play a short exit-then-enter motion (default 300ms); the new page is on screen after it.
7
+ const settled = () => new Promise(resolve => setTimeout(resolve, 450));
6
8
  const visible = (root) => Array.from(root.children).filter(c => !c.hidden).map(c => c.textContent);
7
9
  // Autoplay deliberately holds while the pointer is over the carousel (WCAG pause-on-hover). The test
8
10
  // browser keeps ONE pointer for the whole run, so an earlier test that hovered something near the top
@@ -88,6 +90,7 @@ describe('bs-carousel', () => {
88
90
  expect(prev.disabled).toBe(true);
89
91
  btn(next).click();
90
92
  await waitForChanges();
93
+ await settled();
91
94
  expect(visible(root)).toEqual(['Slide 4', 'Slide 5', 'Slide 6']);
92
95
  expect(root.currentPage).toBe(2);
93
96
  expect(spy).toHaveReceivedEventDetail(2);
@@ -108,6 +111,7 @@ describe('bs-carousel', () => {
108
111
  pagination.shadowRoot.querySelectorAll('.bs-pagination__page')[2].click();
109
112
  await waitForChanges();
110
113
  expect(root.currentPage).toBe(3);
114
+ await settled();
111
115
  expect(visible(root)).toEqual(['Slide 7', 'Slide 8', 'Slide 9']);
112
116
  expect(spy).toHaveReceivedEventTimes(1);
113
117
  expect(spy).toHaveReceivedEventDetail(3);
@@ -195,4 +199,38 @@ describe('bs-carousel', () => {
195
199
  expect(root.currentPage).toBe(1);
196
200
  });
197
201
  });
202
+ describe('page change motion', () => {
203
+ const wait = (ms) => new Promise(resolve => setTimeout(resolve, ms));
204
+ it('keeps the old page up while it animates out, then shows the new page', async () => {
205
+ const { root, waitForChanges } = await render(h("bs-carousel", { style: { '--bs-carousel-duration': '200ms' } }, slides(6)));
206
+ const before = visible(root);
207
+ root.currentPage = 2;
208
+ await waitForChanges();
209
+ expect(visible(root)).toEqual(before);
210
+ await wait(400);
211
+ await waitForChanges();
212
+ expect(visible(root)).not.toEqual(before);
213
+ expect(root.currentPage).toBe(2);
214
+ });
215
+ it('switches immediately when the duration is 0ms', async () => {
216
+ const { root, waitForChanges } = await render(h("bs-carousel", { style: { '--bs-carousel-duration': '0ms' } }, slides(6)));
217
+ const before = visible(root);
218
+ root.currentPage = 2;
219
+ await waitForChanges();
220
+ expect(visible(root)).not.toEqual(before);
221
+ });
222
+ it('snaps to the latest page when changed again mid-motion', async () => {
223
+ const { root, waitForChanges } = await render(h("bs-carousel", { style: { '--bs-carousel-duration': '400ms' } }, slides(9)));
224
+ root.currentPage = 2;
225
+ await waitForChanges();
226
+ root.currentPage = 3;
227
+ await waitForChanges();
228
+ await wait(100);
229
+ expect(visible(root)).toEqual(['Slide 7', 'Slide 8', 'Slide 9']);
230
+ });
231
+ it('exposes its motion custom properties', async () => {
232
+ const { root } = await render(h("bs-carousel", null, slides(6)));
233
+ assertCssCustomProperties(root, ['--bs-carousel-duration', '--bs-carousel-easing', '--bs-carousel-slide-distance']);
234
+ });
235
+ });
198
236
  });
@@ -7,6 +7,9 @@
7
7
  * @prop --bs-carousel-dot-color: Fill of an inactive dot. Aliased to --bs-surface-container.
8
8
  * @prop --bs-carousel-dot-active-color: Fill of the active dot. Aliased to --bs-color-primary-default.
9
9
  * @prop --bs-carousel-dots-gap: Gap between dots. Aliased to --bs-spacing-50.
10
+ * @prop --bs-carousel-duration: Length of a page change (slides out, then in; the dots use the same length). Aliased to --bs-duration-slow.
11
+ * @prop --bs-carousel-easing: Curve of a page change. Aliased to --bs-easing-standard.
12
+ * @prop --bs-carousel-slide-distance: How far the slides travel while they fade. Aliased to --bs-spacing-400.
10
13
  */
11
14
  :host {
12
15
  display: block;
@@ -20,6 +23,9 @@
20
23
  --bs-carousel-dot-color: var(--bs-surface-container);
21
24
  --bs-carousel-dot-active-color: var(--bs-color-primary-default);
22
25
  --bs-carousel-dots-gap: var(--bs-spacing-50);
26
+ --bs-carousel-duration: var(--bs-duration-slow);
27
+ --bs-carousel-easing: var(--bs-easing-standard);
28
+ --bs-carousel-slide-distance: var(--bs-spacing-400);
23
29
  }
24
30
 
25
31
  .bs-carousel {
@@ -77,6 +83,9 @@
77
83
  height: var(--bs-carousel-dot-size);
78
84
  border-radius: var(--bs-carousel-dot-radius);
79
85
  background: var(--bs-carousel-dot-color);
86
+ transition:
87
+ width var(--bs-carousel-duration) var(--bs-carousel-easing),
88
+ background-color var(--bs-carousel-duration) var(--bs-carousel-easing);
80
89
  }
81
90
 
82
91
  .bs-carousel__dot--active {
@@ -9,6 +9,12 @@ import { h } from "@stencil/core";
9
9
  * so they leave the tab order and the accessibility tree) and, only when not already set,
10
10
  * `role="group"`, `aria-roledescription="slide"` and an `aria-label` of "n of N".
11
11
  *
12
+ * Changing page plays a short motion: the visible slides fade and slide out in the direction of travel,
13
+ * then the next page's slides fade and slide in (reversed for previous, and mirrored in RTL). The dots
14
+ * also grow and fade between pages. Motion length and distance follow `--bs-carousel-duration`,
15
+ * `--bs-carousel-easing` and `--bs-carousel-slide-distance`. Under `prefers-reduced-motion: reduce`
16
+ * the duration token is `0ms`, so pages switch instantly.
17
+ *
12
18
  * Composes `bs-pagination` (`tracker="numbers"`), `bs-icon-button` (previous/next for
13
19
  * `tracker="dots"`) and `bs-button` (Pause/Play) rather than re-implementing them.
14
20
  *
@@ -77,6 +83,12 @@ export class BsCarousel {
77
83
  /** True while the pointer is over the carousel or focus is inside it (auto-advance holds). */
78
84
  interacting = false;
79
85
  timer;
86
+ /** The page whose slides are actually on screen. Lags `currentPage` while a page change animates out. */
87
+ shown = 0;
88
+ loaded = false;
89
+ transitioning = false;
90
+ runId = 0;
91
+ running = [];
80
92
  get slides() {
81
93
  return Array.from(this.el.children).filter(c => !c.hasAttribute('slot'));
82
94
  }
@@ -101,6 +113,7 @@ export class BsCarousel {
101
113
  }
102
114
  }
103
115
  componentDidLoad() {
116
+ this.loaded = true;
104
117
  this.applySlides();
105
118
  this.updateTimer();
106
119
  }
@@ -110,11 +123,66 @@ export class BsCarousel {
110
123
  }
111
124
  disconnectedCallback() {
112
125
  this.stopTimer();
126
+ this.cancelMotion();
113
127
  }
114
- onCurrentPageChange() {
128
+ onCurrentPageChange(next) {
115
129
  // Keep the mutable prop honest if it was set out of range from outside.
116
- if (this.currentPage !== this.page)
130
+ if (this.currentPage !== this.page) {
117
131
  this.currentPage = this.page;
132
+ return;
133
+ }
134
+ const wasMoving = this.transitioning;
135
+ this.cancelMotion();
136
+ // A change that lands mid-motion snaps straight to the new page instead of restarting the motion.
137
+ if (wasMoving || !this.loaded || next === this.shown || this.shown === 0)
138
+ return;
139
+ this.playPageChange(next > this.shown ? 1 : -1);
140
+ }
141
+ /**
142
+ * Exit then enter, each half the duration. While the old page animates out it stays mounted
143
+ * (`transitioning` makes `applySlides` keep showing `shown`); then the new page is shown and
144
+ * animated in. A new change arriving mid-motion cancels it and snaps to the latest page.
145
+ */
146
+ playPageChange(direction) {
147
+ const style = getComputedStyle(this.el);
148
+ const total = this.toMs(style.getPropertyValue('--bs-carousel-duration'));
149
+ const outgoing = this.slides.filter(slide => !slide.hidden);
150
+ if (total === 0 || outgoing.length === 0)
151
+ return;
152
+ const easing = style.getPropertyValue('--bs-carousel-easing').trim() || 'ease';
153
+ const distance = parseFloat(style.getPropertyValue('--bs-carousel-slide-distance')) || 0;
154
+ // In RTL "next" travels leftwards.
155
+ const dx = direction * (this.el.matches(':dir(rtl)') ? -1 : 1) * distance;
156
+ const half = total / 2;
157
+ const run = ++this.runId;
158
+ this.transitioning = true;
159
+ this.running = outgoing.map(slide => slide.animate([{ opacity: 1, transform: 'none' }, { opacity: 0, transform: `translateX(${-dx}px)` }], { duration: half, easing, fill: 'forwards' }));
160
+ Promise.all(this.running.map(a => a.finished)).then(() => {
161
+ if (run !== this.runId)
162
+ return;
163
+ this.running.forEach(a => a.cancel());
164
+ this.transitioning = false;
165
+ this.applySlides();
166
+ this.running = this.slides
167
+ .filter(slide => !slide.hidden)
168
+ .map(slide => slide.animate([{ opacity: 0, transform: `translateX(${dx}px)` }, { opacity: 1, transform: 'none' }], { duration: half, easing }));
169
+ }, () => {
170
+ /* cancelled by a newer page change */
171
+ });
172
+ }
173
+ cancelMotion() {
174
+ this.runId++;
175
+ this.running.forEach(a => a.cancel());
176
+ this.running = [];
177
+ this.transitioning = false;
178
+ }
179
+ toMs(value) {
180
+ const v = value.trim();
181
+ if (v.endsWith('ms'))
182
+ return parseFloat(v);
183
+ if (v.endsWith('s'))
184
+ return parseFloat(v) * 1000;
185
+ return 0;
118
186
  }
119
187
  updateTimer() {
120
188
  this.stopTimer();
@@ -150,7 +218,10 @@ export class BsCarousel {
150
218
  /** Shows only the current page's slides and labels each slide. */
151
219
  applySlides() {
152
220
  const slides = this.slides;
153
- const start = (this.page - 1) * this.perView;
221
+ // Keep showing the old page until its exit motion has finished.
222
+ if (!this.transitioning || this.shown === 0)
223
+ this.shown = this.page;
224
+ const start = (this.shown - 1) * this.perView;
154
225
  slides.forEach((slide, i) => {
155
226
  slide.hidden = i < start || i >= start + this.perView;
156
227
  if (!slide.hasAttribute('role'))
@@ -186,7 +257,7 @@ export class BsCarousel {
186
257
  // While auto-advance is actually running, slide changes must not be announced (it would
187
258
  // interrupt the user constantly); otherwise announce them politely.
188
259
  const rotating = this.autoplay && !this.paused && !this.interacting;
189
- return (h("section", { key: '4d3a0024b4f407a595769bc3dce7270104a0aeb7', part: "carousel", class: "bs-carousel", role: "region", "aria-roledescription": "carousel", "aria-label": this.label, style: { '--bs-carousel-slides-per-view': String(this.perView) } }, h("div", { key: '7160dbff92ce24112a5ebe54f10cfb4034d29750', part: "slides", class: "bs-carousel__slides", "aria-live": rotating ? 'off' : 'polite' }, h("slot", { key: 'fee4505b4a303719c62f9a7b76bea784ef920a20', onSlotchange: this.onSlotChange })), showTracker && (h("div", { key: 'd70a3780f4d9c00c087d931fb4b50401890a2c38', part: "tracker", class: "bs-carousel__tracker" }, this.tracker === 'numbers' ? (h("bs-pagination", { part: "pagination", totalPages: this.pageCount, currentPage: this.page, onBsPageChange: (ev) => {
260
+ return (h("section", { key: 'fe38898b10611d2bb20c3428cbc4009449186453', part: "carousel", class: "bs-carousel", role: "region", "aria-roledescription": "carousel", "aria-label": this.label, style: { '--bs-carousel-slides-per-view': String(this.perView) } }, h("div", { key: 'd1d01494417dc282a52931307406970b8a1b7011', part: "slides", class: "bs-carousel__slides", "aria-live": rotating ? 'off' : 'polite' }, h("slot", { key: '955bb5229671a23babeea85b7f23b5ec3b330ebe', onSlotchange: this.onSlotChange })), showTracker && (h("div", { key: '7c4c3e73bc8dbf05e351cb0628e26e138d0a4028', part: "tracker", class: "bs-carousel__tracker" }, this.tracker === 'numbers' ? (h("bs-pagination", { part: "pagination", totalPages: this.pageCount, currentPage: this.page, onBsPageChange: (ev) => {
190
261
  ev.stopPropagation();
191
262
  this.goTo(ev.detail);
192
263
  } })) : (h("div", { class: "bs-carousel__nav" }, this.renderDotsTracker())), this.renderPause()))));
@@ -139,7 +139,7 @@ export class BsChatbotFeedback {
139
139
  }
140
140
  render() {
141
141
  const stars = [1, 2, 3, 4, 5];
142
- return (h("div", { key: '64c7f8d329b25d54264ccc3fd2046c7b91b0a928', class: "bs-chatbot-feedback", role: "region", "aria-label": this.computedHeading() }, h("button", { key: '3b4f619db2a8f1f44fdc7229d3fda8726728483e', type: "button", part: "close", class: "bs-chatbot-feedback__close", "aria-label": this.closeLabel, onClick: this.onCloseClick }, h(CloseIcon, { key: 'c7c698aeb2b70255e3515b7f2aa505b326d26e53' })), h("div", { key: '6d076b4c3ce3ceb29e77faa28b8c9ff378166977', class: "bs-chatbot-feedback__top" }, h("div", { key: '4417e15cea995e2ae22cf606d0b13ca7f7c28a6d', class: "bs-chatbot-feedback__text" }, h("p", { key: 'c36b0301127b7f522cc7a491d4ef2fbb691ed082', part: "heading", class: "bs-chatbot-feedback__heading" }, this.computedHeading()), h("p", { key: 'bde47a0de3f408bf8f3deab1fd4bc6b44782528d', part: "subtitle", class: "bs-chatbot-feedback__subtitle" }, this.computedSubtitle())), h("div", { key: 'd6a28296298b30340ae249582a02f2242ddde6fd', class: "bs-chatbot-feedback__stars", role: "radiogroup", "aria-label": this.ratingLabel }, stars.map(value => (h("button", { type: "button", part: "star", class: "bs-chatbot-feedback__star", role: "radio", "aria-checked": (this.rating >= value).toString(), "aria-label": `${value} ${value > 1 ? this.starsLabel : this.starLabel}`, disabled: this.submitted, onClick: () => this.onStarClick(value) }, h(StarIcon, { filled: this.rating >= value }))))), !this.submitted && (h("div", { key: 'a3d957978212ba546914eb8f19a6c0b6776b4cda', class: "bs-chatbot-feedback__field" }, h("label", { key: 'ccbda1eeff0a7963704e1c095349ce503c76d6cc', part: "label", class: "bs-chatbot-feedback__label", htmlFor: "bs-chatbot-feedback-comment" }, this.commentLabel), h("textarea", { key: 'c1676c31a10315e8bccabe1841b8abc990f32158', part: "textarea", id: "bs-chatbot-feedback-comment", class: "bs-chatbot-feedback__textarea", placeholder: this.commentPlaceholder, value: this.comment, onInput: this.onCommentInput }))), this.submitted && this.comment && (h("p", { key: 'ca1fc129a1fa0645a9aa85fdbf0d0de73c24f8e6', part: "comment", class: "bs-chatbot-feedback__comment" }, this.comment))), h("div", { key: 'd6f9ae5f1c52de30bb07a22e6dcbe97fce7e5a97', class: "bs-chatbot-feedback__actions" }, !this.submitted && (h("button", { key: 'dd46f42be756a4f1af593c83c130ea25f1fcd312', type: "button", part: "submit", class: "bs-chatbot-feedback__submit", disabled: this.rating === 0, onClick: this.onSubmitClick }, h(SendIcon, { key: 'b462d0786b439f5543659d12875d1e42f5e649e6' }), this.submitLabel)), h("button", { key: '818daeb3198f4adfbb5d55b8bdfd07f6904c84d5', type: "button", part: "new-chat", class: `bs-chatbot-feedback__new-chat ${this.submitted ? 'bs-chatbot-feedback__new-chat--primary' : 'bs-chatbot-feedback__new-chat--outlined'}`, onClick: this.onNewChatClick }, h(EditIcon, { key: '504ed8bd1ac4b325afb3ed082105510bfebe4bd4' }), this.newChatLabel))));
142
+ return (h("div", { key: 'ee99c0b20a4dc2fee3543f66eaa8c8f354c8a3ff', class: "bs-chatbot-feedback", role: "region", "aria-label": this.computedHeading() }, h("button", { key: '31751520032972b7ae9a93848d1ee44045f00dc6', type: "button", part: "close", class: "bs-chatbot-feedback__close", "aria-label": this.closeLabel, onClick: this.onCloseClick }, h(CloseIcon, { key: '1b7367e072d066e183eccaf76b3b954026101db2' })), h("div", { key: '9ed28d17e8ba6c561fc72d1036d34a431a482251', class: "bs-chatbot-feedback__top" }, h("div", { key: '745c881283b828eb32586cf6f81b2142936f93f6', class: "bs-chatbot-feedback__text" }, h("p", { key: '8d8bea1913dc865ec79e88a31e0b93ca84c1a867', part: "heading", class: "bs-chatbot-feedback__heading" }, this.computedHeading()), h("p", { key: 'fffe199cc928e0b6c481270d7ad59dbdfdb2b2c4', part: "subtitle", class: "bs-chatbot-feedback__subtitle" }, this.computedSubtitle())), h("div", { key: '8cc7563ec8ae7ee981f12323b55397d5e0bcb2c2', class: "bs-chatbot-feedback__stars", role: "radiogroup", "aria-label": this.ratingLabel }, stars.map(value => (h("button", { type: "button", part: "star", class: "bs-chatbot-feedback__star", role: "radio", "aria-checked": (this.rating >= value).toString(), "aria-label": `${value} ${value > 1 ? this.starsLabel : this.starLabel}`, disabled: this.submitted, onClick: () => this.onStarClick(value) }, h(StarIcon, { filled: this.rating >= value }))))), !this.submitted && (h("div", { key: 'de939881796cf7f7e32294904aec1be2f7f71035', class: "bs-chatbot-feedback__field" }, h("label", { key: 'd58da98d04619b3bfcbe3b97fcf9529229526831', part: "label", class: "bs-chatbot-feedback__label", htmlFor: "bs-chatbot-feedback-comment" }, this.commentLabel), h("textarea", { key: 'c45059beddde013832133f21e20d86be7be2bd9c', part: "textarea", id: "bs-chatbot-feedback-comment", class: "bs-chatbot-feedback__textarea", placeholder: this.commentPlaceholder, value: this.comment, onInput: this.onCommentInput }))), this.submitted && this.comment && (h("p", { key: 'd630c3cb1561f90d123989015f0388da16a22595', part: "comment", class: "bs-chatbot-feedback__comment" }, this.comment))), h("div", { key: '37c06651e4f65c54e4e58da5f3c1a224c5125184', class: "bs-chatbot-feedback__actions" }, !this.submitted && (h("button", { key: 'a88d5a116114d4685d92562a49f3dc99bff86e9d', type: "button", part: "submit", class: "bs-chatbot-feedback__submit", disabled: this.rating === 0, onClick: this.onSubmitClick }, h(SendIcon, { key: '557e3de8ae2fcf5a76fda6cbcea1762e674f0734' }), this.submitLabel)), h("button", { key: '37c972da6bb7595d1a05a72a1c49c3184b054020', type: "button", part: "new-chat", class: `bs-chatbot-feedback__new-chat ${this.submitted ? 'bs-chatbot-feedback__new-chat--primary' : 'bs-chatbot-feedback__new-chat--outlined'}`, onClick: this.onNewChatClick }, h(EditIcon, { key: '76e954f39f7b45e227df1ee4f6bbc24fd6985b9f' }), this.newChatLabel))));
143
143
  }
144
144
  static get is() { return "bs-chatbot-feedback"; }
145
145
  static get encapsulation() { return "shadow"; }
@@ -93,7 +93,7 @@ export class BsChatbotHeader {
93
93
  this.bsClose.emit();
94
94
  };
95
95
  render() {
96
- return (h("div", { key: 'a3bf82b419fe181054ef681938edee90b3a7370c', class: "bs-chatbot-header", role: "banner", "aria-label": this.heading }, h("div", { key: '194e0c8da2af153b8a6c525db7c09d2960d00766', part: "logo", class: "bs-chatbot-header__logo", role: "img", "aria-label": this.heading, innerHTML: GENIE_LOGO_SVG }), h("div", { key: 'c5b7c45960c14dd1052fd6e0e16d9100e87f6065', class: "bs-chatbot-header__actions" }, h("slot", { key: 'ffb35bd3e7694623c672b086db42ee69e14606ae', name: "actions" }), !this.hideNewChat && (h("span", { key: '00870907a0971458c484c88082176f809f8eaa8e', class: "bs-chatbot-header__tooltip-wrapper" }, h("button", { key: '2b12b13ac7595a39b2f90bbfccf784d643ccb8a6', type: "button", part: "new-chat", class: "bs-chatbot-header__button", "aria-label": this.newChatLabel, onClick: this.onNewChatClick }, h("slot", { key: '12ffde1876b46f492d8690796e27c9e716020a6f', name: "new-chat-icon" }, h(NewChatIcon, { key: 'a720b894daaa12a6bb4e89391ac400a00217e2a1' }))), h("bs-tooltip", { key: 'f4a8aebd32eea278cc45d7ec67de564e539671c4', class: "bs-chatbot-header__tooltip", placement: "top", "aria-hidden": "true" }, this.newChatLabel))), !this.hideHistory && (h("span", { key: '38668bf4d54439e8b6aff21aed277753a9bfd05c', class: "bs-chatbot-header__tooltip-wrapper" }, h("button", { key: 'fd7dbd9db931baaa42a74523952bb58fd81f8c59', type: "button", part: "history", class: "bs-chatbot-header__button", "aria-label": this.historyLabel, onClick: this.onHistoryClick }, h("slot", { key: '8677cb10b69e30f1ed63f760a6d1384e43ee889a', name: "history-icon" }, h(HistoryIcon, { key: 'f3dbc6e2ad0e498d975ff12127ea5a04aa5feabb' }))), h("bs-tooltip", { key: 'f95bef141e03ea75a803786961d56cb57c4c4419', class: "bs-chatbot-header__tooltip", placement: "top", "aria-hidden": "true" }, this.historyLabel))), !this.hideExpand && (h("span", { key: 'cfc6b76abab457ddbb0f800c9421755fa4a7356f', class: "bs-chatbot-header__tooltip-wrapper" }, h("button", { key: '2413fa727f2eb5d6963ec0a60a0f52bce91a50bb', type: "button", part: "expand", class: "bs-chatbot-header__button", "aria-label": this.expanded ? this.collapseLabel : this.expandLabel, "aria-pressed": this.expanded ? 'true' : 'false', onClick: this.onExpandClick }, h("slot", { key: '2291b453f5d21ed2c605b9637530e719fd50b979', name: "expand-icon" }, h(ExpandIcon, { key: 'b8ed1f8839eea3714532283e15a6cd0fe5fe6fb4' }))), h("bs-tooltip", { key: '392da3045534004015b4b894f0948876e1f12141', class: "bs-chatbot-header__tooltip", placement: "top", "aria-hidden": "true" }, this.expanded ? this.collapseLabel : this.expandLabel))), !this.hideClose && (h("span", { key: '136d790708106fb64c1c83371af5d76e37cb57fd', class: "bs-chatbot-header__tooltip-wrapper" }, h("button", { key: 'b500c7104dace70ad434b556fa913fa650f95ce2', type: "button", part: "close", class: "bs-chatbot-header__button", "aria-label": this.closeLabel, onClick: this.onCloseClick }, h("slot", { key: '3ede2fe906f8819e496d1c8537b3520cf29698d7', name: "close-icon" }, h(CloseIcon, { key: '9d26f8d6b36cb51d564b7d44d375828af4671d6c' }))), h("bs-tooltip", { key: '14c17d47ac9e6bb7ed78a49fb8005879c6674718', class: "bs-chatbot-header__tooltip", placement: "top", "aria-hidden": "true" }, this.closeLabel))))));
96
+ return (h("div", { key: '4d749a85b3317c88b39c0042be1dd5c415bce812', class: "bs-chatbot-header", role: "banner", "aria-label": this.heading }, h("div", { key: 'adb4686e3c95bd0c63c4ae5e02726a23c90653e4', part: "logo", class: "bs-chatbot-header__logo", role: "img", "aria-label": this.heading, innerHTML: GENIE_LOGO_SVG }), h("div", { key: '9baf468f0792ec06ef3a4bf776df0ec938dae56c', class: "bs-chatbot-header__actions" }, h("slot", { key: '78a6ac0cce725bb63301351bdbf3fbb4af1dccfc', name: "actions" }), !this.hideNewChat && (h("span", { key: '5614b1689b6a1518cb2f466586453114a8eb2269', class: "bs-chatbot-header__tooltip-wrapper" }, h("button", { key: 'f593334c14d6890f6b204aede3af2ac21282c834', type: "button", part: "new-chat", class: "bs-chatbot-header__button", "aria-label": this.newChatLabel, onClick: this.onNewChatClick }, h("slot", { key: 'ce1f32ee3c7baf5b141004e3bcd4b92390c5f65a', name: "new-chat-icon" }, h(NewChatIcon, { key: 'db2ae97dfbeb82b0fec1def38a2d3a6efff915ca' }))), h("bs-tooltip", { key: '11fecac2381fadc649f6f0fa71bf22adaf7c7170', class: "bs-chatbot-header__tooltip", placement: "top", "aria-hidden": "true" }, this.newChatLabel))), !this.hideHistory && (h("span", { key: '8c6dd57c915550f2d9bf89aa3a915d036f5fb1db', class: "bs-chatbot-header__tooltip-wrapper" }, h("button", { key: 'c9c9a4df2bc94fee532c8997bbc91b94b0dc90f4', type: "button", part: "history", class: "bs-chatbot-header__button", "aria-label": this.historyLabel, onClick: this.onHistoryClick }, h("slot", { key: '7efd44b983dc8d7bcf0e517d1c283c30dc920388', name: "history-icon" }, h(HistoryIcon, { key: '5e053692985e9efb724ef315397e480a927a23af' }))), h("bs-tooltip", { key: '0736b67042161cfa09e1e4d6fe50aecdabc97da7', class: "bs-chatbot-header__tooltip", placement: "top", "aria-hidden": "true" }, this.historyLabel))), !this.hideExpand && (h("span", { key: '2f57c3fdf10c31c5d892a094df94e36a0273a8a3', class: "bs-chatbot-header__tooltip-wrapper" }, h("button", { key: '75b4864469e56ec3fa373740483118878e6e2637', type: "button", part: "expand", class: "bs-chatbot-header__button", "aria-label": this.expanded ? this.collapseLabel : this.expandLabel, "aria-pressed": this.expanded ? 'true' : 'false', onClick: this.onExpandClick }, h("slot", { key: '549a118c2784795cc4ac12c1c257221e57f40243', name: "expand-icon" }, h(ExpandIcon, { key: '88bb836b69e0293e45a0be50f33f6256242a5761' }))), h("bs-tooltip", { key: '9c957cdb8876be24b1fc2b9167852f80145ed43d', class: "bs-chatbot-header__tooltip", placement: "top", "aria-hidden": "true" }, this.expanded ? this.collapseLabel : this.expandLabel))), !this.hideClose && (h("span", { key: 'cacd2af286b69dc72340d045adceb97d5219a6d8', class: "bs-chatbot-header__tooltip-wrapper" }, h("button", { key: '03e08785d4db92fec96632fe60542f997c954e51', type: "button", part: "close", class: "bs-chatbot-header__button", "aria-label": this.closeLabel, onClick: this.onCloseClick }, h("slot", { key: '67b21828c6e8663333157f4d3f0f671cd8fcbf79', name: "close-icon" }, h(CloseIcon, { key: '11f16c5d485969216a25ef2b581d4dd72ef3cdc7' }))), h("bs-tooltip", { key: '7a9a19cf276a1e9c097f901ea57be2f32d11902e', class: "bs-chatbot-header__tooltip", placement: "top", "aria-hidden": "true" }, this.closeLabel))))));
97
97
  }
98
98
  static get is() { return "bs-chatbot-header"; }
99
99
  static get encapsulation() { return "shadow"; }
@@ -28,6 +28,8 @@
28
28
  }
29
29
 
30
30
  .bs-chatbot-response-action__button {
31
+ /* Containing block for the absolutely-positioned bs-ripple layer. */
32
+ position: relative;
31
33
  display: inline-flex;
32
34
  align-items: center;
33
35
  justify-content: center;
@@ -39,6 +39,7 @@ import { h } from "@stencil/core";
39
39
  * @prop --bs-chatbot-response-action-sources-color - Text color of the sources label. Aliased to `--bs-text-neutral-default`.
40
40
  * @prop --bs-chatbot-response-action-sources-font-size - Aliased to `--bs-font-size-sm`.
41
41
  * @prop --bs-chatbot-response-action-sources-line-height - Aliased to `--bs-line-height-body-sm`.
42
+ * @part ripple - The press-ripple layer (a `bs-ripple`). Tune it with `::part(ripple) { --bs-ripple-color: ...; }`.
42
43
  */
43
44
  export class BsChatbotResponseAction {
44
45
  host;
@@ -127,7 +128,7 @@ export class BsChatbotResponseAction {
127
128
  };
128
129
  render() {
129
130
  const hasSources = !!this.sourcesCount && this.sourcesCount > 0;
130
- return (h("div", { key: 'ebc6d993ea58554ab0a5d36c9148da333424ed8c', class: "bs-chatbot-response-action" }, h("button", { key: 'f171f6c7be3a81f75b036a6e19d8d25c60da45de', type: "button", part: "like", class: "bs-chatbot-response-action__button", "aria-label": this.likeLabel, "aria-pressed": this.liked ? 'true' : 'false', onClick: this.onLikeClick }, h("slot", { key: '36697458bd76eeb31d6a3cd0c793ba9b12850bb5', name: "like-icon" }, h(ThumbsUpIcon, { key: '3f07e995a80dff4a9ad993ec943e20dfba199828' }))), h("button", { key: '70a982907bfd4ea1843a157db2830dc251b6cce3', type: "button", part: "dislike", class: "bs-chatbot-response-action__button", "aria-label": this.dislikeLabel, "aria-pressed": this.disliked ? 'true' : 'false', onClick: this.onDislikeClick }, h("slot", { key: 'f74a10e3488db4167c7aeadb12dfe18e07bd8375', name: "dislike-icon" }, h(ThumbsDownIcon, { key: 'a84fd41bdb0b04f0899186f9dc7c3b3f9a01c4e4' }))), h("button", { key: 'f9607a0b7fb610308437fd348291a39a1a75c48f', type: "button", part: "copy", class: "bs-chatbot-response-action__button", "aria-label": this.copyLabel, onClick: this.onCopyClick }, h("slot", { key: '50d0ee6d299b0b9eaa2f2a76c8e163c62b0b1c46', name: "copy-icon" }, h(CopyIcon, { key: '4393f5f8613f96b3040bef7fb3ab56002bec882a' }))), !this.hideRegenerate && (h("button", { key: 'a7df160d71f63455807b0641fdb4ecc7c963262f', type: "button", part: "regenerate", class: "bs-chatbot-response-action__button", "aria-label": this.regenerateLabel, onClick: this.onRegenerateClick }, h("slot", { key: '746a947dcdc2513dcc14a2c45ad43e8c5689b155', name: "regenerate-icon" }, h(RegenerateIcon, { key: '6d64c1b4a2795d4700bbf398098bb660e1b7a61d' })))), h("div", { key: '6b3969c13b586c593f0e5a1a98407fd5514b5038', class: "bs-chatbot-response-action__menu-wrapper" }, h("button", { key: 'ce57cbfbb40b2a4888cc1aae725d94f330203dce', type: "button", part: "menu", class: "bs-chatbot-response-action__button", "aria-label": this.menuLabel, "aria-haspopup": "menu", "aria-expanded": this.menuOpen ? 'true' : 'false', onClick: this.onMenuClick }, h("slot", { key: 'c301f66e32e50b915374bb660f8e8ebfda5fece2', name: "menu-icon" }, h(MenuIcon, { key: '3cb0895245598879d982ff9f206a278d6c8332fc' }))), this.menuOpen && (h("div", { key: 'bc20c2db7f705d5b10d6d6f770ad0fc15de0cf55', class: "bs-chatbot-response-action__menu-popup" }, h("slot", { key: '0a429d4727cdc0138da8044e0b813722f1f17eec', name: "menu" })))), hasSources && (h("button", { key: '35dc4762ead97f292db9652a18f4fbb41a1ce4d2', type: "button", part: "sources", class: "bs-chatbot-response-action__sources", onClick: this.onSourcesClick }, h("slot", { key: 'fb308abbcfbef564e9e424ccdbfaaac95911bf6b', name: "sources-icon" }, h(SourcesIcon, { key: '281a8fbb031ff7af27b176894bfd287c78a4de97' })), h("span", { key: '6afee37c37811f052b9d83089f220b354dd161b7', class: "bs-chatbot-response-action__sources-label" }, this.sourcesCount, " ", this.sourcesCount === 1 ? this.sourceLabel : this.sourcesLabel)))));
131
+ return (h("div", { key: 'ea10465bf7825b4fd96464ee91b10566b51add61', class: "bs-chatbot-response-action" }, h("button", { key: '27a4ccd7a97f4821569b382377dfcd11520cf4b3', type: "button", part: "like", class: "bs-chatbot-response-action__button", "aria-label": this.likeLabel, "aria-pressed": this.liked ? 'true' : 'false', onClick: this.onLikeClick }, h("bs-ripple", { key: 'e51f72aaa2018b77f0e67454a42754a69c53b827', part: "ripple", centered: true }), h("slot", { key: '685362071a59475ce8831f3648f244721f183252', name: "like-icon" }, h(ThumbsUpIcon, { key: '4a9dd14db641ec7d6e60ce018218a7af6a34e34c' }))), h("button", { key: 'f48e058db0e94aaf2d13a93dffb1d995616074b9', type: "button", part: "dislike", class: "bs-chatbot-response-action__button", "aria-label": this.dislikeLabel, "aria-pressed": this.disliked ? 'true' : 'false', onClick: this.onDislikeClick }, h("bs-ripple", { key: '8e10c2a3793010a3be06412f09f5495185659b8f', part: "ripple", centered: true }), h("slot", { key: '017e084ab2b1188d1bdd19d4f4b5ca30a2e9dfb0', name: "dislike-icon" }, h(ThumbsDownIcon, { key: '6578301a7d4ba5351e59f91dbed3016d10834386' }))), h("button", { key: 'ea1425fc220fd8a8ad775e6f5e24fe3cb236dc78', type: "button", part: "copy", class: "bs-chatbot-response-action__button", "aria-label": this.copyLabel, onClick: this.onCopyClick }, h("bs-ripple", { key: 'f857a092b5db633da3d0dca78fb53dea0c764f3a', part: "ripple", centered: true }), h("slot", { key: 'a96a945f08995317c0bc08bc8e320575d4eaa6ac', name: "copy-icon" }, h(CopyIcon, { key: '8b3ca7ad7dd18b35a6be2d46e1a8d785f948559e' }))), !this.hideRegenerate && (h("button", { key: 'd114185e80a157217b8bdf7249db1d7c0434daf3', type: "button", part: "regenerate", class: "bs-chatbot-response-action__button", "aria-label": this.regenerateLabel, onClick: this.onRegenerateClick }, h("bs-ripple", { key: '47b10ab111100c2001ec64a1881839ef3c77486c', part: "ripple", centered: true }), h("slot", { key: 'aae132c65e481002ff95ea1fa65614d24b316cdb', name: "regenerate-icon" }, h(RegenerateIcon, { key: '77fe5385e571abc771f5a4118c9e7d2fe5214f31' })))), h("div", { key: '43ae8110dac16f340d1fbba57cb39d6e0fac2bba', class: "bs-chatbot-response-action__menu-wrapper" }, h("button", { key: '13b43339ccc55a0472e266a0812c867ea5684db0', type: "button", part: "menu", class: "bs-chatbot-response-action__button", "aria-label": this.menuLabel, "aria-haspopup": "menu", "aria-expanded": this.menuOpen ? 'true' : 'false', onClick: this.onMenuClick }, h("bs-ripple", { key: '9184bb5cf7a1ec514286be13561356a84020d8bc', part: "ripple", centered: true }), h("slot", { key: 'ec41980667b59320f6f1e64fa7ad1e61b48985f5', name: "menu-icon" }, h(MenuIcon, { key: '5f6065880fcab476067c9cdd641e3803594d47af' }))), this.menuOpen && (h("div", { key: '64657764d6e5e1b799b118defe89ab098e7cf284', class: "bs-chatbot-response-action__menu-popup" }, h("slot", { key: 'b70facad47bb5971fef174c209c023203f321441', name: "menu" })))), hasSources && (h("button", { key: '6f382c1f12d9c6588d93fbb8f3fff50f3d961ad0', type: "button", part: "sources", class: "bs-chatbot-response-action__sources", onClick: this.onSourcesClick }, h("slot", { key: 'bd9751f689fc23acaa5a3e62bf5490d36834772d', name: "sources-icon" }, h(SourcesIcon, { key: 'fb0bf01af7ad41d23827197bbce23573d7886a5b' })), h("span", { key: '3277653214f36c8a0277059929baeb14691dc1c3', class: "bs-chatbot-response-action__sources-label" }, this.sourcesCount, " ", this.sourcesCount === 1 ? this.sourceLabel : this.sourcesLabel)))));
131
132
  }
132
133
  static get is() { return "bs-chatbot-response-action"; }
133
134
  static get encapsulation() { return "shadow"; }
@@ -59,7 +59,7 @@ export class BsChatbotSourcesDrawer {
59
59
  };
60
60
  render() {
61
61
  const displayCount = this.count ?? this.slottedCount;
62
- return (h("div", { key: '00bae658c31f1b0cb31cde007056aad03bf0ad77', class: "bs-chatbot-sources-drawer", role: "region", "aria-label": this.heading }, h("div", { key: 'ee2f47d76139560f152dc730d8d4252c550c4874', class: "bs-chatbot-sources-drawer__header" }, h("div", { key: 'dacf3742bd6db7b2b4ab7dfa25a569d48fef4ae8', class: "bs-chatbot-sources-drawer__title-group" }, h("h2", { key: '4a574daa2822b1acd984268e1e758f457bf40c4f', part: "heading", class: "bs-chatbot-sources-drawer__heading" }, this.heading), displayCount > 0 && (h("span", { key: 'cef7cd7a050ecb145d62a8f0992e795405c8f8d6', part: "count", class: "bs-chatbot-sources-drawer__count" }, displayCount))), h("button", { key: '8a1c6a8c16de70836555fed325602e3e2152c618', type: "button", part: "collapse", class: "bs-chatbot-sources-drawer__collapse", "aria-label": this.collapseLabel, onClick: this.onCollapseClick }, h("slot", { key: '9dd216a247757d22fb6dea3b75e07dc9ed3e6cb0', name: "collapse-icon" }, h(CaretRightIcon, { key: '8c6a8d2dd8b1fa71812e257e43939990be25ce04' })))), h("div", { key: '4d057db59b72db7c13eacaa2113cb9964caef1c9', part: "list", class: "bs-chatbot-sources-drawer__list" }, h("slot", { key: '5e5e753897ed08f1b2e1e37919e7ac4ed721a893', onSlotchange: this.onSlotchange }))));
62
+ return (h("div", { key: '3a1ada3b813ff876728dc3aaa97f083cca62e06d', class: "bs-chatbot-sources-drawer", role: "region", "aria-label": this.heading }, h("div", { key: '97a5b46ecd7e365f19b97d22e64dd5f8ccc321a9', class: "bs-chatbot-sources-drawer__header" }, h("div", { key: '13da4c69fa4882f663bd0c50b7e076246b369f3b', class: "bs-chatbot-sources-drawer__title-group" }, h("h2", { key: 'cb709deaa389afca9f9f233772d00ceebf80c174', part: "heading", class: "bs-chatbot-sources-drawer__heading" }, this.heading), displayCount > 0 && (h("span", { key: 'a195d6e2de3305d6c4c8866d1333f7554c7dc3b3', part: "count", class: "bs-chatbot-sources-drawer__count" }, displayCount))), h("button", { key: '02cfdf86c2a83a0abfdbe36dd6ef0aee416477ca', type: "button", part: "collapse", class: "bs-chatbot-sources-drawer__collapse", "aria-label": this.collapseLabel, onClick: this.onCollapseClick }, h("slot", { key: 'ef4e483e4adb1a668401244d13eace6acf12023b', name: "collapse-icon" }, h(CaretRightIcon, { key: 'ca9e17d19e935606e196253136151d81d8ab2566' })))), h("div", { key: '1fe136577e90fc5eb650d6e856923ed1dfa60112', part: "list", class: "bs-chatbot-sources-drawer__list" }, h("slot", { key: 'd5a5204ebbca3035e1ba6360168c36e17d89431a', onSlotchange: this.onSlotchange }))));
63
63
  }
64
64
  static get is() { return "bs-chatbot-sources-drawer"; }
65
65
  static get encapsulation() { return "shadow"; }
@@ -12,6 +12,8 @@
12
12
  }
13
13
 
14
14
  .bs-chatbot-suggestion-button {
15
+ /* Containing block for the absolutely-positioned bs-ripple layer. */
16
+ position: relative;
15
17
  box-sizing: border-box;
16
18
  display: inline-flex;
17
19
  align-items: center;
@@ -32,6 +32,7 @@ import { h } from "@stencil/core";
32
32
  * Aliased to `--bs-text-action-hover`.
33
33
  * @prop --bs-chatbot-suggestion-button-focus-ring-color - Focus ring color. Aliased to
34
34
  * `--bs-border-primary-focus`.
35
+ * @part ripple - The press-ripple layer (a `bs-ripple`). Tune it with `::part(ripple) { --bs-ripple-color: ...; }`.
35
36
  */
36
37
  export class BsChatbotSuggestionButton {
37
38
  /** Disables the button and applies a reduced-opacity treatment. */
@@ -42,7 +43,7 @@ export class BsChatbotSuggestionButton {
42
43
  this.bsSelect.emit();
43
44
  };
44
45
  render() {
45
- return (h("button", { key: '9773b5f3b62675a48eacc9a63fd52cd92172fe68', type: "button", part: "button", class: "bs-chatbot-suggestion-button", disabled: this.disabled, onClick: this.onClick }, h("slot", { key: '1fbe7d378fb81cebc348b232c5fbe00fe31daf78' })));
46
+ return (h("button", { key: 'c76c66440c64cf4cfe60fbd98a49229896e593e2', type: "button", part: "button", class: "bs-chatbot-suggestion-button", disabled: this.disabled, onClick: this.onClick }, h("bs-ripple", { key: 'aa4295c7a0ae1c1fcefe567c594a7dfb01e5fc4e', part: "ripple", centered: false, disabled: this.disabled }), h("slot", { key: 'd9e21c45c97236d08f0d9e2c9829b6a0501424e2' })));
46
47
  }
47
48
  static get is() { return "bs-chatbot-suggestion-button"; }
48
49
  static get encapsulation() { return "shadow"; }
@@ -35,7 +35,7 @@ export class BsCheckboxSkeleton {
35
35
  /** Accessible name announced for the loading placeholder. */
36
36
  loadingLabel = 'Loading';
37
37
  render() {
38
- return (h("span", { key: '553af2d9b475730b4f399da364a42a8fe61de077', part: "container", class: "bs-checkbox-skeleton", role: "status", "aria-label": this.loadingLabel }, h("span", { key: '06b4a8dcb9b436f1f79a9d59144430d22081d89d', part: "box", class: `bs-checkbox-skeleton__box bs-checkbox-skeleton__box--${this.size}` }), h("span", { key: 'd56789d4ad329edf3336cabef6a7b5200f977210', part: "label", class: "bs-checkbox-skeleton__label" })));
38
+ return (h("span", { key: '92bd864f7f59de942901944109eabc70e4f6ee28', part: "container", class: "bs-checkbox-skeleton", role: "status", "aria-label": this.loadingLabel }, h("span", { key: 'e69ed9e4bef797036110d4ed504c3526272ef467', part: "box", class: `bs-checkbox-skeleton__box bs-checkbox-skeleton__box--${this.size}` }), h("span", { key: '562219d3322ba5b120143e04a34d6ab693ede45a', part: "label", class: "bs-checkbox-skeleton__label" })));
39
39
  }
40
40
  static get is() { return "bs-checkbox-skeleton"; }
41
41
  static get encapsulation() { return "shadow"; }
@@ -204,3 +204,10 @@
204
204
  .bs-checkbox__box--selected { background: Highlight; border-color: Highlight; color: HighlightText; }
205
205
  .bs-checkbox__box--disabled { border-color: GrayText; color: GrayText; }
206
206
  }
207
+
208
+ /* Round halo that extends past the box, tinted with the brand colour. The press target is the whole label. */
209
+ .bs-checkbox__ripple {
210
+ inset: -10px;
211
+ border-radius: 50%;
212
+ --bs-ripple-color: var(--bs-color-primary-default);
213
+ }
@@ -16,6 +16,7 @@ import { h } from "@stencil/core";
16
16
  * @part box - The visual checkbox square.
17
17
  * @part icon - The check/minus icon shown inside the box when `checked` or `indeterminate`.
18
18
  * @part label - The label text wrapper.
19
+ * @part ripple - The press-ripple halo (a `bs-ripple`). Tune it with `::part(ripple) { --bs-ripple-color: ...; }`.
19
20
  */
20
21
  // Note: this component's CSS Custom Properties (--bs-checkbox-*) are documented via @prop comments
21
22
  // in bs-checkbox.css, not here -- Stencil's docs generator only parses @prop out of CSS file
@@ -120,7 +121,7 @@ export class BsCheckbox {
120
121
  ]
121
122
  .filter(Boolean)
122
123
  .join(' ');
123
- return (h("label", { key: '98b2c7da5530c74c5632f28a770096201df43f1f', class: `bs-checkbox ${this.disabled ? 'bs-checkbox--disabled' : ''}` }, h("input", { key: '1765be1adab7001f6b8c6ca79c9da8ca3a67bb77', ref: el => (this.inputEl = el), class: "bs-checkbox__input", type: "checkbox", checked: this.checked, disabled: this.disabled, required: this.required, "aria-checked": this.indeterminate ? 'mixed' : String(this.checked), "aria-label": this.ariaLabel, onChange: this.onChange }), h("span", { key: 'ffae4c14191d40da029aaa058d0a11f1170e8c00', part: "box", class: boxClasses }, showIcon && (h("svg", { key: 'ef0ddf8663a8d1a517b3604c8fa3a98ff1ba7187', part: "icon", class: "bs-checkbox__icon", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true" }, this.indeterminate ? (h("path", { d: "M3 8H13", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" })) : (h("path", { d: "M3 8.5L6.2 11.5L13 4.5", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }))))), h("span", { key: '9fda5d8e25fecbc6d4ebe9339f63fae58e8bac26', part: "label", class: "bs-checkbox__label" }, h("slot", { key: '95d6e3a55c81444feb8d1221bb080b9c49a8cf46' }))));
124
+ return (h("label", { key: 'd35cd1c413ad4a5da2b964828f225ccd434f8724', class: `bs-checkbox ${this.disabled ? 'bs-checkbox--disabled' : ''}` }, h("input", { key: '6a50bcabb9856f732472c08acf28a72b47efcd0e', ref: el => (this.inputEl = el), class: "bs-checkbox__input", type: "checkbox", checked: this.checked, disabled: this.disabled, required: this.required, "aria-checked": this.indeterminate ? 'mixed' : String(this.checked), "aria-label": this.ariaLabel, onChange: this.onChange }), h("span", { key: '73125ca0d0b7f6820655d3f3001b91c4d7712979', part: "box", class: boxClasses }, h("bs-ripple", { key: 'e0e763aa5342b8241758cdb9f56397a36fd08b27', part: "ripple", class: "bs-checkbox__ripple", centered: true, triggerSelector: ".bs-checkbox", disabled: this.disabled }), showIcon && (h("svg", { key: '1d31573c1bf95fa1efa9c38e2516df59cf84e247', part: "icon", class: "bs-checkbox__icon", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true" }, this.indeterminate ? (h("path", { d: "M3 8H13", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" })) : (h("path", { d: "M3 8.5L6.2 11.5L13 4.5", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }))))), h("span", { key: '71101d692d0ebe55a1e36055394395adacfef564', part: "label", class: "bs-checkbox__label" }, h("slot", { key: '5964f3edad9f4217334c5703032a28c99974970b' }))));
124
125
  }
125
126
  static get is() { return "bs-checkbox"; }
126
127
  static get encapsulation() { return "shadow"; }
@@ -39,6 +39,8 @@
39
39
  }
40
40
 
41
41
  .bs-chip-filter {
42
+ /* Containing block for the absolutely-positioned bs-ripple layer. */
43
+ position: relative;
42
44
  display: inline-flex;
43
45
  align-items: center;
44
46
  gap: var(--bs-chip-filter-gap);
@@ -18,6 +18,7 @@ import { h } from "@stencil/core";
18
18
  * @part icon - The icon wrapper element.
19
19
  * @part label - The text label element.
20
20
  * @part caret - The dropdown caret wrapper element, when `dropdown` is set.
21
+ * @part ripple - The press-ripple layer (a `bs-ripple`). Tune it with `::part(ripple) { --bs-ripple-color: ...; }`.
21
22
  */
22
23
  export class BsChipFilter {
23
24
  el;
@@ -70,7 +71,7 @@ export class BsChipFilter {
70
71
  // label-only edge gets more -- except when NEITHER edge has a glyph, where both edges use a
71
72
  // third, larger value rather than the label-only one (see bs-chip-filter.css's own comment).
72
73
  const paddingVariant = this.hasIcon && this.dropdown ? 'icon-dropdown' : this.hasIcon ? 'icon-only' : this.dropdown ? 'dropdown-only' : 'text-only';
73
- return (h("button", { key: 'c1b7395764984baadd0d32d5bd6a3d8d61cb637a', type: "button", class: `bs-chip-filter bs-chip-filter--${this.size} bs-chip-filter--${paddingVariant} ${this.selected ? 'bs-chip-filter--selected' : ''}`, disabled: this.disabled, "aria-pressed": String(this.selected), "aria-label": this.ariaLabel, onClick: this.onClick }, h("span", { key: 'db74ff2a992268bb95564dc1631e54d00208255f', part: "icon", class: `bs-chip-filter__icon ${this.hasIcon ? 'bs-chip-filter__icon--visible' : ''}` }, h("slot", { key: '9319387acc35131d0555f9ad84c1f733034920d7', name: "icon", onSlotchange: this.onIconSlotchange })), h("span", { key: '06291c8712d77d43c3c823e4b90d99218618db35', part: "label", class: "bs-chip-filter__label" }, h("slot", { key: '3c72fcc1085239ba9c45ee6e89f5b8e8b4cc0ce8' })), this.dropdown && (h("span", { key: 'd2efca03ed06d2341aec986cca2c0d27bdce5a75', part: "caret", class: "bs-chip-filter__caret", "aria-hidden": "true" }, h(ChevronDownIcon, { key: '8bb9383201632e567f662909559702fcf391790e' })))));
74
+ return (h("button", { key: '330d7292dd7bb519c8cdf0dd237ad85913ab35fe', type: "button", class: `bs-chip-filter bs-chip-filter--${this.size} bs-chip-filter--${paddingVariant} ${this.selected ? 'bs-chip-filter--selected' : ''}`, disabled: this.disabled, "aria-pressed": String(this.selected), "aria-label": this.ariaLabel, onClick: this.onClick }, h("bs-ripple", { key: '34767b4129e742f2eaefb2192ae0bfb07449f480', part: "ripple", centered: false, disabled: this.disabled }), h("span", { key: '9ec983b47dec13c4ac573d2c2125fe314843693c', part: "icon", class: `bs-chip-filter__icon ${this.hasIcon ? 'bs-chip-filter__icon--visible' : ''}` }, h("slot", { key: '0b7093bf29bc156a0c969616af48c5c709b0ee6e', name: "icon", onSlotchange: this.onIconSlotchange })), h("span", { key: '3a309c3171bee1ccdf066da85aea80b5476f454d', part: "label", class: "bs-chip-filter__label" }, h("slot", { key: 'afda9556224d3faf5fed56796f0d2eebd335d612' })), this.dropdown && (h("span", { key: '692b0d968999335c18cf21eaea20af997f1a6599', part: "caret", class: "bs-chip-filter__caret", "aria-hidden": "true" }, h(ChevronDownIcon, { key: 'cc87f0f3f8e95a8733f083f36d5caee9b649bed7' })))));
74
75
  }
75
76
  static get is() { return "bs-chip-filter"; }
76
77
  static get encapsulation() { return "shadow"; }
@@ -44,7 +44,7 @@ export class BsChipInformative {
44
44
  };
45
45
  render() {
46
46
  const paddingVariant = this.hasIcon ? 'icon' : 'text';
47
- return (h(Host, { key: 'ee5706f8c040b01f97e44b9dba4d74a3b023005c', class: `bs-chip-informative bs-chip-informative--${this.color} bs-chip-informative--${this.size} bs-chip-informative--${paddingVariant}` }, h("span", { key: '611cc7bec3b22cc2e7de25fc8aa49e8d4eca3cba', part: "icon", class: `bs-chip-informative__icon ${this.hasIcon ? 'bs-chip-informative__icon--visible' : ''}` }, h("slot", { key: '5945478d567c7b6a6e4ff602c2edd6465d3b7778', name: "icon", onSlotchange: this.onIconSlotchange })), h("span", { key: '7e78fb0f2e5cfc2d232aa04f0c9edf94044f8eca', part: "label", class: "bs-chip-informative__label" }, h("slot", { key: 'fcec1018222e0da3f0adc6da13e0699c0bad764b' }))));
47
+ return (h(Host, { key: '1c590939607a3a3c511e60fbf13da81268a3f178', class: `bs-chip-informative bs-chip-informative--${this.color} bs-chip-informative--${this.size} bs-chip-informative--${paddingVariant}` }, h("span", { key: '9da198d1f3680e20364c13bee40c0123473ec37c', part: "icon", class: `bs-chip-informative__icon ${this.hasIcon ? 'bs-chip-informative__icon--visible' : ''}` }, h("slot", { key: '7951b8044a25a007641b2cff5d4e52543f5a2a82', name: "icon", onSlotchange: this.onIconSlotchange })), h("span", { key: '54c6f6abe99b04cc0b3dfd75202dde81bdc8a163', part: "label", class: "bs-chip-informative__label" }, h("slot", { key: '3e4f7a245054e0d8898028c5c1ed4e6e35496988' }))));
48
48
  }
49
49
  static get is() { return "bs-chip-informative"; }
50
50
  static get encapsulation() { return "shadow"; }
@@ -170,3 +170,10 @@
170
170
  .bs-chip-input__remove:disabled {
171
171
  cursor: not-allowed;
172
172
  }
173
+
174
+ .bs-chip-input__body,
175
+ .bs-chip-input__remove {
176
+ /* Containing block for the absolutely-positioned bs-ripple layer. */
177
+ position: relative;
178
+ border-radius: inherit;
179
+ }
@@ -21,6 +21,7 @@ import { Host, h } from "@stencil/core";
21
21
  * @part icon - The icon wrapper element.
22
22
  * @part label - The text label element.
23
23
  * @part remove - The trailing remove button.
24
+ * @part ripple - The press-ripple layer (a `bs-ripple`). Tune it with `::part(ripple) { --bs-ripple-color: ...; }`.
24
25
  */
25
26
  export class BsChipInput {
26
27
  el;
@@ -79,7 +80,7 @@ export class BsChipInput {
79
80
  };
80
81
  render() {
81
82
  const paddingVariant = this.hasIcon ? 'icon' : 'text';
82
- return (h(Host, { key: '1e44e8c6c324502677a711e9efdeea812181e93d', class: `bs-chip-input bs-chip-input--${this.size} bs-chip-input--${paddingVariant}` }, h("button", { key: '7c698a6cfbe6ca8ff1215edeb59d7a58071ec29e', type: "button", part: "body", class: "bs-chip-input__body", disabled: this.disabled, "aria-pressed": String(this.selected), onClick: this.onBodyClick }, h("span", { key: '159334959b3da3665fb6f4a2930c15fc1da028ad', part: "icon", class: `bs-chip-input__icon ${this.hasIcon ? 'bs-chip-input__icon--visible' : ''}` }, h("slot", { key: '0f12a8dbf2b17578ec1446032fa6b795f6aac9f4', name: "icon", onSlotchange: this.onIconSlotchange })), h("span", { key: 'd8236eaa237e3d204f721274551c0d50ce6b1f9a', part: "label", class: "bs-chip-input__label" }, h("slot", { key: '4872dcc68aa9a204801f10415fd1b3bc31db0c2a', onSlotchange: this.onLabelSlotchange }))), h("button", { key: 'ac930ef1166ff21f889641cf0644c20e77f92196', type: "button", part: "remove", class: "bs-chip-input__remove", disabled: this.disabled, "aria-label": `${this.removeLabel} ${this.labelText}`, onClick: this.onRemoveClick }, h(CloseIcon, { key: 'ba26dff61400df054f3b2d73526e08d02734ba07' }))));
83
+ return (h(Host, { key: '23b8519dece5666894eb211065d8ebc6208afb73', class: `bs-chip-input bs-chip-input--${this.size} bs-chip-input--${paddingVariant}` }, h("button", { key: 'bf65dbc1e0989c7ddeca7d863357934833d40889', type: "button", part: "body", class: "bs-chip-input__body", disabled: this.disabled, "aria-pressed": String(this.selected), onClick: this.onBodyClick }, h("bs-ripple", { key: '4b74e46a995d1e6429a69853550983066c53fd8b', part: "ripple", centered: false, disabled: this.disabled }), h("span", { key: '45c9089f5050b6417667b71af047b55d9df20aae', part: "icon", class: `bs-chip-input__icon ${this.hasIcon ? 'bs-chip-input__icon--visible' : ''}` }, h("slot", { key: 'e3e68eb90f3f4908ff1f3af61a2fbc524c148ae6', name: "icon", onSlotchange: this.onIconSlotchange })), h("span", { key: '2e4709dd6398fe589294bd884a2a60c7bc083804', part: "label", class: "bs-chip-input__label" }, h("slot", { key: '71b54619b617b3bf82cee8d7144e2b23af2353c7', onSlotchange: this.onLabelSlotchange }))), h("button", { key: 'bc3892fe66883bc9f43b9fb95274539be42d40b9', type: "button", part: "remove", class: "bs-chip-input__remove", disabled: this.disabled, "aria-label": `${this.removeLabel} ${this.labelText}`, onClick: this.onRemoveClick }, h("bs-ripple", { key: '283b64fdc5fcf4c490d07ffac9e66284d666fc15', part: "ripple", centered: true, disabled: this.disabled }), h(CloseIcon, { key: 'ed997aab7198b3de133c05c49a4a220422db3cf4' }))));
83
84
  }
84
85
  static get is() { return "bs-chip-input"; }
85
86
  static get encapsulation() { return "shadow"; }