@brandsync/wc 0.0.11 → 0.1.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 (411) hide show
  1. package/custom-elements.json +5869 -1633
  2. package/dist/brandsync-wc/brandsync-wc.css +20 -0
  3. package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
  4. package/dist/brandsync-wc/p-00bb9bda.entry.js +1 -0
  5. package/dist/brandsync-wc/{p-8dff4f24.entry.js → p-0847f5c0.entry.js} +1 -1
  6. package/dist/brandsync-wc/p-0ba35c3b.entry.js +1 -0
  7. package/dist/brandsync-wc/{p-073e5fee.entry.js → p-0f3cb0c4.entry.js} +1 -1
  8. package/dist/brandsync-wc/p-10f6f3cd.entry.js +1 -0
  9. package/dist/brandsync-wc/{p-c6d330c3.entry.js → p-111974df.entry.js} +1 -1
  10. package/dist/brandsync-wc/p-11f3fceb.entry.js +1 -0
  11. package/dist/brandsync-wc/p-171fed0c.entry.js +1 -0
  12. package/dist/brandsync-wc/{p-dd224cb3.entry.js → p-18813680.entry.js} +1 -1
  13. package/dist/brandsync-wc/p-1b7c9928.entry.js +1 -0
  14. package/dist/brandsync-wc/p-1ce7dd64.entry.js +1 -0
  15. package/dist/brandsync-wc/p-2063a6d6.entry.js +1 -0
  16. package/dist/brandsync-wc/{p-4ca15322.entry.js → p-20c24179.entry.js} +1 -1
  17. package/dist/brandsync-wc/{p-b174403d.entry.js → p-321ed4d3.entry.js} +1 -1
  18. package/dist/brandsync-wc/p-38aad266.entry.js +1 -0
  19. package/dist/brandsync-wc/p-43e37883.entry.js +1 -0
  20. package/dist/brandsync-wc/p-55a8d4b5.entry.js +1 -0
  21. package/dist/brandsync-wc/p-59ac2495.entry.js +1 -0
  22. package/dist/brandsync-wc/p-5ae9e60e.entry.js +1 -0
  23. package/dist/brandsync-wc/p-6b469b2d.entry.js +1 -0
  24. package/dist/brandsync-wc/p-6d85fba4.entry.js +1 -0
  25. package/dist/brandsync-wc/p-6e95eb36.entry.js +1 -0
  26. package/dist/brandsync-wc/{p-84ae4420.entry.js → p-73217b90.entry.js} +1 -1
  27. package/dist/brandsync-wc/p-752c04c8.entry.js +1 -0
  28. package/dist/brandsync-wc/p-79af762c.entry.js +1 -0
  29. package/dist/brandsync-wc/p-81d49240.entry.js +1 -0
  30. package/dist/brandsync-wc/p-91551e7b.entry.js +1 -0
  31. package/dist/brandsync-wc/p-917a5bbc.entry.js +1 -0
  32. package/dist/brandsync-wc/{p-0b858120.entry.js → p-9876e83c.entry.js} +1 -1
  33. package/dist/brandsync-wc/p-9bcd99aa.entry.js +1 -0
  34. package/dist/brandsync-wc/{p-d1dc2ced.entry.js → p-9c4768aa.entry.js} +1 -1
  35. package/dist/brandsync-wc/{p-DP_bvuvB.js → p-Do3l4of3.js} +2 -2
  36. package/dist/brandsync-wc/p-aa43d478.entry.js +1 -0
  37. package/dist/brandsync-wc/p-c3079ad7.entry.js +1 -0
  38. package/dist/brandsync-wc/{p-74a4dd91.entry.js → p-c3c383dc.entry.js} +1 -1
  39. package/dist/brandsync-wc/p-cc79e75f.entry.js +1 -0
  40. package/dist/brandsync-wc/p-ce7fc368.entry.js +1 -0
  41. package/dist/brandsync-wc/{p-030a8ba7.entry.js → p-d3265e70.entry.js} +1 -1
  42. package/dist/brandsync-wc/p-d55bbcec.entry.js +1 -0
  43. package/dist/brandsync-wc/{p-1bf0b2d5.entry.js → p-e93e944b.entry.js} +1 -1
  44. package/dist/brandsync-wc/{p-7a605d98.entry.js → p-eb04c578.entry.js} +1 -1
  45. package/dist/brandsync-wc/{p-3c8fbaa8.entry.js → p-f0ae2740.entry.js} +1 -1
  46. package/dist/brandsync-wc/p-f4f22015.entry.js +1 -0
  47. package/dist/cjs/brandsync-wc.cjs.js +2 -2
  48. package/dist/cjs/bs-ai-disclaimer.cjs.entry.js +3 -2
  49. package/dist/cjs/bs-ai-greeting.cjs.entry.js +2 -2
  50. package/dist/cjs/bs-ai-thinking.cjs.entry.js +2 -2
  51. package/dist/cjs/bs-attachment-list.cjs.entry.js +2 -2
  52. package/dist/cjs/bs-attachment.cjs.entry.js +3 -3
  53. package/dist/cjs/bs-avatar.cjs.entry.js +60 -0
  54. package/dist/cjs/bs-badge.cjs.entry.js +1 -1
  55. package/dist/cjs/bs-breadcrumb-overflow.cjs.entry.js +56 -0
  56. package/dist/cjs/bs-breadcrumb.cjs.entry.js +33 -0
  57. package/dist/cjs/bs-breadcrumbs.cjs.entry.js +49 -0
  58. package/dist/cjs/bs-button-skeleton.cjs.entry.js +2 -2
  59. package/dist/cjs/bs-button.cjs.entry.js +3 -3
  60. package/dist/cjs/bs-card.cjs.entry.js +10 -3
  61. package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +2 -2
  62. package/dist/cjs/bs-chatbot-header.cjs.entry.js +2 -2
  63. package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +2 -2
  64. package/dist/cjs/bs-chatbot-sources-drawer.cjs.entry.js +2 -2
  65. package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +2 -2
  66. package/dist/cjs/bs-checkbox-skeleton.cjs.entry.js +20 -0
  67. package/dist/cjs/bs-checkbox.cjs.entry.js +14 -3
  68. package/dist/cjs/bs-composer-status-banner.cjs.entry.js +14 -2
  69. package/dist/cjs/bs-composer.cjs.entry.js +37 -4
  70. package/dist/cjs/bs-data-table.cjs.entry.js +3 -3
  71. package/dist/cjs/bs-dialog.cjs.entry.js +110 -0
  72. package/dist/cjs/bs-icon-button.cjs.entry.js +40 -0
  73. package/dist/cjs/bs-inline-tab.cjs.entry.js +69 -0
  74. package/dist/cjs/bs-input.cjs.entry.js +24 -12
  75. package/dist/cjs/bs-logo.cjs.entry.js +165 -0
  76. package/dist/cjs/{bs-menu_2.cjs.entry.js → bs-menu-item.cjs.entry.js} +2 -15
  77. package/dist/cjs/bs-menu.cjs.entry.js +17 -0
  78. package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +104 -0
  79. package/dist/cjs/bs-navigation-drawer.cjs.entry.js +87 -0
  80. package/dist/cjs/bs-navigation-header.cjs.entry.js +44 -0
  81. package/dist/cjs/bs-pagination.cjs.entry.js +85 -0
  82. package/dist/cjs/bs-radio.cjs.entry.js +49 -0
  83. package/dist/cjs/bs-slider.cjs.entry.js +191 -0
  84. package/dist/cjs/bs-snackbar.cjs.entry.js +41 -0
  85. package/dist/cjs/bs-source-link.cjs.entry.js +3 -3
  86. package/dist/cjs/bs-switch.cjs.entry.js +57 -0
  87. package/dist/cjs/bs-tab.cjs.entry.js +80 -0
  88. package/dist/cjs/bs-tabs.cjs.entry.js +39 -0
  89. package/dist/cjs/bs-tooltip.cjs.entry.js +2 -2
  90. package/dist/cjs/{index-CGrdFg95.js → index-DHVw-IPK.js} +2 -1
  91. package/dist/cjs/loader.cjs.js +2 -2
  92. package/dist/collection/collection-manifest.json +21 -3
  93. package/dist/collection/components/bs-ai-chatbot/bs-ai-chatbot.stories.js +26 -11
  94. package/dist/collection/components/bs-ai-disclaimer/bs-ai-disclaimer.js +2 -1
  95. package/dist/collection/components/bs-ai-greeting/bs-ai-greeting.js +1 -1
  96. package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.js +1 -1
  97. package/dist/collection/components/bs-attachment/bs-attachment.css +12 -33
  98. package/dist/collection/components/bs-attachment/bs-attachment.js +4 -10
  99. package/dist/collection/components/bs-attachment-list/bs-attachment-list.js +1 -1
  100. package/dist/collection/components/bs-avatar/bs-avatar.cmp.test.js +54 -0
  101. package/dist/collection/components/bs-avatar/bs-avatar.css +197 -0
  102. package/dist/collection/components/bs-avatar/bs-avatar.js +251 -0
  103. package/dist/collection/components/bs-avatar/bs-avatar.stories.js +67 -0
  104. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.cmp.test.js +62 -0
  105. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.css +93 -0
  106. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.js +130 -0
  107. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.cmp.test.js +118 -0
  108. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.css +125 -0
  109. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.js +192 -0
  110. package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.cmp.test.js +58 -0
  111. package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.css +18 -0
  112. package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.js +129 -0
  113. package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.stories.js +84 -0
  114. package/dist/collection/components/bs-button/{bs-button.cmp.test.js → bs-button/bs-button.cmp.test.js} +26 -0
  115. package/dist/collection/components/bs-button/{bs-button.css → bs-button/bs-button.css} +57 -6
  116. package/dist/collection/components/bs-button/{bs-button.js → bs-button/bs-button.js} +10 -5
  117. package/dist/collection/components/bs-button/{bs-button.stories.js → bs-button/bs-button.stories.js} +2 -27
  118. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.cmp.test.js +83 -0
  119. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.css +346 -0
  120. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.js +185 -0
  121. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.stories.js +74 -0
  122. package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +3 -3
  123. package/dist/collection/components/bs-card/bs-card.cmp.test.js +19 -0
  124. package/dist/collection/components/bs-card/bs-card.css +37 -5
  125. package/dist/collection/components/bs-card/bs-card.js +18 -2
  126. package/dist/collection/components/bs-card/bs-card.stories.js +17 -1
  127. package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.js +1 -1
  128. package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.js +1 -1
  129. package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.js +1 -1
  130. package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.css +1 -1
  131. package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.js +1 -1
  132. package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js +1 -1
  133. package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.cmp.test.js +23 -0
  134. package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.css +64 -0
  135. package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.js +81 -0
  136. package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.stories.js +25 -0
  137. package/dist/collection/components/bs-checkbox/bs-checkbox.cmp.test.js +10 -0
  138. package/dist/collection/components/bs-checkbox/bs-checkbox.css +7 -1
  139. package/dist/collection/components/bs-checkbox/bs-checkbox.js +32 -1
  140. package/dist/collection/components/bs-checkbox/bs-checkbox.stories.js +12 -0
  141. package/dist/collection/components/bs-composer/bs-composer.cmp.test.js +48 -7
  142. package/dist/collection/components/bs-composer/bs-composer.css +15 -0
  143. package/dist/collection/components/bs-composer/bs-composer.js +38 -4
  144. package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.cmp.test.js +47 -1
  145. package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.js +20 -1
  146. package/dist/collection/components/bs-data-table/bs-data-table.js +2 -2
  147. package/dist/collection/components/{bs-modal/bs-modal.cmp.test.js → bs-dialog/bs-dialog.cmp.test.js} +63 -19
  148. package/dist/collection/components/bs-dialog/bs-dialog.css +130 -0
  149. package/dist/collection/components/bs-dialog/bs-dialog.js +273 -0
  150. package/dist/collection/components/bs-dialog/bs-dialog.stories.js +115 -0
  151. package/dist/collection/components/bs-input/bs-input.cmp.test.js +20 -0
  152. package/dist/collection/components/bs-input/bs-input.css +80 -2
  153. package/dist/collection/components/bs-input/bs-input.js +28 -10
  154. package/dist/collection/components/bs-input/bs-input.stories.js +14 -11
  155. package/dist/collection/components/bs-logo/brandsync-logo-full-dark.js +44 -0
  156. package/dist/collection/components/bs-logo/brandsync-logo-full-light.js +40 -0
  157. package/dist/collection/components/bs-logo/brandsync-logo-mark.js +17 -0
  158. package/dist/collection/components/bs-logo/bs-logo.cmp.test.js +113 -0
  159. package/dist/collection/components/bs-logo/bs-logo.css +79 -0
  160. package/dist/collection/components/bs-logo/bs-logo.js +193 -0
  161. package/dist/collection/components/bs-logo/bs-logo.stories.js +69 -0
  162. package/dist/collection/components/bs-menu/bs-menu.js +1 -1
  163. package/dist/collection/components/bs-menu-item/bs-menu-item.js +1 -1
  164. package/dist/collection/components/bs-pagination/bs-pagination.cmp.test.js +102 -0
  165. package/dist/collection/components/bs-pagination/bs-pagination.css +120 -0
  166. package/dist/collection/components/bs-pagination/bs-pagination.js +233 -0
  167. package/dist/collection/components/bs-pagination/bs-pagination.stories.js +43 -0
  168. package/dist/collection/components/bs-radio/bs-radio.cmp.test.js +76 -0
  169. package/dist/collection/components/bs-radio/bs-radio.css +164 -0
  170. package/dist/collection/components/bs-radio/bs-radio.js +170 -0
  171. package/dist/collection/components/bs-radio/bs-radio.stories.js +56 -0
  172. package/dist/collection/components/bs-slider/bs-slider.cmp.test.js +139 -0
  173. package/dist/collection/components/bs-slider/bs-slider.css +409 -0
  174. package/dist/collection/components/bs-slider/bs-slider.js +499 -0
  175. package/dist/collection/components/bs-slider/bs-slider.stories.js +70 -0
  176. package/dist/collection/components/bs-snackbar/bs-snackbar.cmp.test.js +77 -0
  177. package/dist/collection/components/bs-snackbar/bs-snackbar.css +321 -0
  178. package/dist/collection/components/bs-snackbar/bs-snackbar.js +172 -0
  179. package/dist/collection/components/bs-snackbar/bs-snackbar.stories.js +59 -0
  180. package/dist/collection/components/bs-source-link/bs-source-link.js +2 -2
  181. package/dist/collection/components/bs-switch/bs-switch.cmp.test.js +71 -0
  182. package/dist/collection/components/bs-switch/bs-switch.css +196 -0
  183. package/dist/collection/components/bs-switch/bs-switch.js +185 -0
  184. package/dist/collection/components/bs-switch/bs-switch.stories.js +60 -0
  185. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.cmp.test.js +104 -0
  186. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.css +163 -0
  187. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.js +192 -0
  188. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.stories.js +95 -0
  189. package/dist/collection/components/bs-tab/bs-tab/bs-tab.cmp.test.js +120 -0
  190. package/dist/collection/components/bs-tab/bs-tab/bs-tab.css +216 -0
  191. package/dist/collection/components/bs-tab/bs-tab/bs-tab.js +232 -0
  192. package/dist/collection/components/bs-tab/bs-tab/bs-tab.stories.js +138 -0
  193. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.cmp.test.js +61 -0
  194. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.css +39 -0
  195. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.js +133 -0
  196. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.stories.js +39 -0
  197. package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
  198. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.cmp.test.js +143 -0
  199. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.css +257 -0
  200. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +281 -0
  201. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.stories.js +274 -0
  202. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.cmp.test.js +172 -0
  203. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.css +325 -0
  204. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.js +314 -0
  205. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.stories.js +78 -0
  206. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.cmp.test.js +77 -0
  207. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.css +106 -0
  208. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.js +188 -0
  209. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.stories.js +446 -0
  210. package/dist/components/bs-ai-disclaimer.js +1 -1
  211. package/dist/components/bs-ai-greeting.js +1 -1
  212. package/dist/components/bs-ai-thinking.js +1 -1
  213. package/dist/components/bs-attachment-list.js +1 -1
  214. package/dist/components/bs-attachment.js +1 -1
  215. package/dist/components/bs-avatar.d.ts +11 -0
  216. package/dist/components/bs-avatar.js +1 -0
  217. package/dist/components/bs-badge.js +1 -1
  218. package/dist/components/bs-breadcrumb-overflow.d.ts +11 -0
  219. package/dist/components/bs-breadcrumb-overflow.js +1 -0
  220. package/dist/components/bs-breadcrumb.d.ts +11 -0
  221. package/dist/components/bs-breadcrumb.js +1 -0
  222. package/dist/components/bs-breadcrumbs.d.ts +11 -0
  223. package/dist/components/bs-breadcrumbs.js +1 -0
  224. package/dist/components/bs-button-skeleton.js +1 -1
  225. package/dist/components/bs-button.js +1 -1
  226. package/dist/components/bs-card.js +1 -1
  227. package/dist/components/bs-chatbot-feedback.js +1 -1
  228. package/dist/components/bs-chatbot-header.js +1 -1
  229. package/dist/components/bs-chatbot-response-action.js +1 -1
  230. package/dist/components/bs-chatbot-sources-drawer.js +1 -1
  231. package/dist/components/bs-chatbot-suggestion-button.js +1 -1
  232. package/dist/components/bs-checkbox-skeleton.d.ts +11 -0
  233. package/dist/components/bs-checkbox-skeleton.js +1 -0
  234. package/dist/components/bs-checkbox.js +1 -1
  235. package/dist/components/bs-composer-status-banner.js +1 -1
  236. package/dist/components/bs-composer.js +1 -1
  237. package/dist/components/bs-data-table.js +1 -1
  238. package/dist/components/bs-dialog.d.ts +11 -0
  239. package/dist/components/bs-dialog.js +1 -0
  240. package/dist/components/bs-icon-button.d.ts +11 -0
  241. package/dist/components/bs-icon-button.js +1 -0
  242. package/dist/components/bs-inline-tab.d.ts +11 -0
  243. package/dist/components/bs-inline-tab.js +1 -0
  244. package/dist/components/bs-input.js +1 -1
  245. package/dist/components/{bs-modal.d.ts → bs-logo.d.ts} +4 -4
  246. package/dist/components/bs-logo.js +1 -0
  247. package/dist/components/bs-menu-item.js +1 -1
  248. package/dist/components/bs-menu.js +1 -1
  249. package/dist/components/bs-navigation-drawer-item.d.ts +11 -0
  250. package/dist/components/bs-navigation-drawer-item.js +1 -0
  251. package/dist/components/bs-navigation-drawer.d.ts +11 -0
  252. package/dist/components/bs-navigation-drawer.js +1 -0
  253. package/dist/components/bs-navigation-header.d.ts +11 -0
  254. package/dist/components/bs-navigation-header.js +1 -0
  255. package/dist/components/bs-pagination.d.ts +11 -0
  256. package/dist/components/bs-pagination.js +1 -0
  257. package/dist/components/bs-radio.d.ts +11 -0
  258. package/dist/components/bs-radio.js +1 -0
  259. package/dist/components/bs-slider.d.ts +11 -0
  260. package/dist/components/bs-slider.js +1 -0
  261. package/dist/components/bs-snackbar.d.ts +11 -0
  262. package/dist/components/bs-snackbar.js +1 -0
  263. package/dist/components/bs-source-link.js +1 -1
  264. package/dist/components/bs-switch.d.ts +11 -0
  265. package/dist/components/bs-switch.js +1 -0
  266. package/dist/components/bs-tab.d.ts +11 -0
  267. package/dist/components/bs-tab.js +1 -0
  268. package/dist/components/bs-tabs.d.ts +11 -0
  269. package/dist/components/bs-tabs.js +1 -0
  270. package/dist/components/bs-tooltip.js +1 -1
  271. package/dist/components/index.js +1 -1
  272. package/dist/components/p-BFcVSpES.js +1 -0
  273. package/dist/components/{p-D1cYtKyN.js → p-BJZYe7M4.js} +1 -1
  274. package/dist/components/p-BKaZWFE1.js +1 -0
  275. package/dist/components/{p-BUbGEXL7.js → p-BtX5URLk.js} +1 -1
  276. package/dist/components/{p-B9PrXIl_.js → p-CgaPcyEJ.js} +1 -1
  277. package/dist/components/{p-D2HDHZjz.js → p-qK1XlpTA.js} +1 -1
  278. package/dist/esm/brandsync-wc.js +3 -3
  279. package/dist/esm/bs-ai-disclaimer.entry.js +3 -2
  280. package/dist/esm/bs-ai-greeting.entry.js +2 -2
  281. package/dist/esm/bs-ai-thinking.entry.js +2 -2
  282. package/dist/esm/bs-attachment-list.entry.js +2 -2
  283. package/dist/esm/bs-attachment.entry.js +3 -3
  284. package/dist/esm/bs-avatar.entry.js +58 -0
  285. package/dist/esm/bs-badge.entry.js +1 -1
  286. package/dist/esm/bs-breadcrumb-overflow.entry.js +54 -0
  287. package/dist/esm/bs-breadcrumb.entry.js +31 -0
  288. package/dist/esm/bs-breadcrumbs.entry.js +47 -0
  289. package/dist/esm/bs-button-skeleton.entry.js +2 -2
  290. package/dist/esm/bs-button.entry.js +3 -3
  291. package/dist/esm/bs-card.entry.js +10 -3
  292. package/dist/esm/bs-chatbot-feedback.entry.js +2 -2
  293. package/dist/esm/bs-chatbot-header.entry.js +2 -2
  294. package/dist/esm/bs-chatbot-response-action.entry.js +2 -2
  295. package/dist/esm/bs-chatbot-sources-drawer.entry.js +2 -2
  296. package/dist/esm/bs-chatbot-suggestion-button.entry.js +2 -2
  297. package/dist/esm/bs-checkbox-skeleton.entry.js +18 -0
  298. package/dist/esm/bs-checkbox.entry.js +14 -3
  299. package/dist/esm/bs-composer-status-banner.entry.js +14 -2
  300. package/dist/esm/bs-composer.entry.js +37 -4
  301. package/dist/esm/bs-data-table.entry.js +3 -3
  302. package/dist/esm/bs-dialog.entry.js +108 -0
  303. package/dist/esm/bs-icon-button.entry.js +38 -0
  304. package/dist/esm/bs-inline-tab.entry.js +67 -0
  305. package/dist/esm/bs-input.entry.js +24 -12
  306. package/dist/esm/bs-logo.entry.js +163 -0
  307. package/dist/esm/{bs-menu_2.entry.js → bs-menu-item.entry.js} +3 -15
  308. package/dist/esm/bs-menu.entry.js +15 -0
  309. package/dist/esm/bs-navigation-drawer-item.entry.js +102 -0
  310. package/dist/esm/bs-navigation-drawer.entry.js +85 -0
  311. package/dist/esm/bs-navigation-header.entry.js +42 -0
  312. package/dist/esm/bs-pagination.entry.js +83 -0
  313. package/dist/esm/bs-radio.entry.js +47 -0
  314. package/dist/esm/bs-slider.entry.js +189 -0
  315. package/dist/esm/bs-snackbar.entry.js +39 -0
  316. package/dist/esm/bs-source-link.entry.js +3 -3
  317. package/dist/esm/bs-switch.entry.js +55 -0
  318. package/dist/esm/bs-tab.entry.js +78 -0
  319. package/dist/esm/bs-tabs.entry.js +37 -0
  320. package/dist/esm/bs-tooltip.entry.js +2 -2
  321. package/dist/esm/{index-DP_bvuvB.js → index-Do3l4of3.js} +2 -2
  322. package/dist/esm/loader.js +3 -3
  323. package/dist/types/components/bs-attachment/bs-attachment.d.ts +3 -9
  324. package/dist/types/components/bs-avatar/bs-avatar.d.ts +67 -0
  325. package/dist/types/components/bs-avatar/bs-avatar.stories.d.ts +20 -0
  326. package/dist/types/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.cmp.test.d.ts +1 -0
  327. package/dist/types/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.d.ts +44 -0
  328. package/dist/types/components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.d.ts +69 -0
  329. package/dist/types/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.cmp.test.d.ts +1 -0
  330. package/dist/types/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.d.ts +45 -0
  331. package/dist/types/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.stories.d.ts +14 -0
  332. package/dist/types/components/bs-button/bs-button/bs-button.cmp.test.d.ts +1 -0
  333. package/dist/types/components/bs-button/{bs-button.d.ts → bs-button/bs-button.d.ts} +5 -0
  334. package/dist/types/components/bs-button/{bs-button.stories.d.ts → bs-button/bs-button.stories.d.ts} +0 -2
  335. package/dist/types/components/bs-button/bs-icon-button/bs-icon-button.cmp.test.d.ts +1 -0
  336. package/dist/types/components/bs-button/bs-icon-button/bs-icon-button.d.ts +51 -0
  337. package/dist/types/components/bs-button/bs-icon-button/bs-icon-button.stories.d.ts +16 -0
  338. package/dist/types/components/bs-button-skeleton/bs-button-skeleton.d.ts +1 -1
  339. package/dist/types/components/bs-button-skeleton/bs-button-skeleton.stories.d.ts +1 -1
  340. package/dist/types/components/bs-card/bs-card.d.ts +10 -1
  341. package/dist/types/components/bs-card/bs-card.stories.d.ts +1 -0
  342. package/dist/types/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.cmp.test.d.ts +1 -0
  343. package/dist/types/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.d.ts +36 -0
  344. package/dist/types/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.stories.d.ts +10 -0
  345. package/dist/types/components/bs-checkbox/bs-checkbox.d.ts +11 -0
  346. package/dist/types/components/bs-checkbox/bs-checkbox.stories.d.ts +1 -0
  347. package/dist/types/components/bs-composer/bs-composer.d.ts +26 -2
  348. package/dist/types/components/bs-composer-status-banner/bs-composer-status-banner.d.ts +14 -0
  349. package/dist/types/components/bs-dialog/bs-dialog.cmp.test.d.ts +1 -0
  350. package/dist/types/components/bs-dialog/bs-dialog.d.ts +74 -0
  351. package/dist/types/components/{bs-modal/bs-modal.stories.d.ts → bs-dialog/bs-dialog.stories.d.ts} +5 -3
  352. package/dist/types/components/bs-input/bs-input.d.ts +8 -1
  353. package/dist/types/components/bs-logo/brandsync-logo-full-dark.d.ts +1 -0
  354. package/dist/types/components/bs-logo/brandsync-logo-full-light.d.ts +1 -0
  355. package/dist/types/components/bs-logo/brandsync-logo-mark.d.ts +1 -0
  356. package/dist/types/components/bs-logo/bs-logo.cmp.test.d.ts +1 -0
  357. package/dist/types/components/bs-logo/bs-logo.d.ts +73 -0
  358. package/dist/types/components/bs-logo/bs-logo.stories.d.ts +17 -0
  359. package/dist/types/components/bs-pagination/bs-pagination.cmp.test.d.ts +1 -0
  360. package/dist/types/components/bs-pagination/bs-pagination.d.ts +51 -0
  361. package/dist/types/components/bs-pagination/bs-pagination.stories.d.ts +14 -0
  362. package/dist/types/components/bs-radio/bs-radio.cmp.test.d.ts +1 -0
  363. package/dist/types/components/bs-radio/bs-radio.d.ts +45 -0
  364. package/dist/types/components/bs-radio/bs-radio.stories.d.ts +16 -0
  365. package/dist/types/components/bs-slider/bs-slider.cmp.test.d.ts +1 -0
  366. package/dist/types/components/bs-slider/bs-slider.d.ts +109 -0
  367. package/dist/types/components/bs-slider/bs-slider.stories.d.ts +24 -0
  368. package/dist/types/components/bs-snackbar/bs-snackbar.cmp.test.d.ts +1 -0
  369. package/dist/types/components/bs-snackbar/bs-snackbar.d.ts +51 -0
  370. package/dist/types/components/bs-snackbar/bs-snackbar.stories.d.ts +16 -0
  371. package/dist/types/components/bs-switch/bs-switch.cmp.test.d.ts +1 -0
  372. package/dist/types/components/bs-switch/bs-switch.d.ts +45 -0
  373. package/dist/types/components/bs-switch/bs-switch.stories.d.ts +17 -0
  374. package/dist/types/components/bs-tab/bs-inline-tab/bs-inline-tab.cmp.test.d.ts +1 -0
  375. package/dist/types/components/bs-tab/bs-inline-tab/bs-inline-tab.d.ts +65 -0
  376. package/dist/types/components/bs-tab/bs-inline-tab/bs-inline-tab.stories.d.ts +22 -0
  377. package/dist/types/components/bs-tab/bs-tab/bs-tab.cmp.test.d.ts +1 -0
  378. package/dist/types/components/bs-tab/bs-tab/bs-tab.d.ts +74 -0
  379. package/dist/types/components/bs-tab/bs-tab/bs-tab.stories.d.ts +30 -0
  380. package/dist/types/components/bs-tab/bs-tabs/bs-tabs.cmp.test.d.ts +1 -0
  381. package/dist/types/components/bs-tab/bs-tabs/bs-tabs.d.ts +45 -0
  382. package/dist/types/components/bs-tab/bs-tabs/bs-tabs.stories.d.ts +13 -0
  383. package/dist/types/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.cmp.test.d.ts +1 -0
  384. package/dist/types/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.d.ts +104 -0
  385. package/dist/types/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.stories.d.ts +19 -0
  386. package/dist/types/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.cmp.test.d.ts +1 -0
  387. package/dist/types/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.d.ts +103 -0
  388. package/dist/types/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.stories.d.ts +20 -0
  389. package/dist/types/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.cmp.test.d.ts +1 -0
  390. package/dist/types/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.d.ts +60 -0
  391. package/dist/types/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.stories.d.ts +25 -0
  392. package/dist/types/components.d.ts +2908 -114
  393. package/package.json +1 -1
  394. package/dist/brandsync-wc/p-2598ca88.entry.js +0 -1
  395. package/dist/brandsync-wc/p-3dd9b814.entry.js +0 -1
  396. package/dist/brandsync-wc/p-41edb0a2.entry.js +0 -1
  397. package/dist/brandsync-wc/p-6254dcbe.entry.js +0 -1
  398. package/dist/brandsync-wc/p-7131d0a1.entry.js +0 -1
  399. package/dist/brandsync-wc/p-8c302968.entry.js +0 -1
  400. package/dist/brandsync-wc/p-8d78171b.entry.js +0 -1
  401. package/dist/brandsync-wc/p-93e44903.entry.js +0 -1
  402. package/dist/brandsync-wc/p-aa45d877.entry.js +0 -1
  403. package/dist/cjs/bs-modal.cjs.entry.js +0 -69
  404. package/dist/collection/components/bs-modal/bs-modal.css +0 -66
  405. package/dist/collection/components/bs-modal/bs-modal.js +0 -198
  406. package/dist/collection/components/bs-modal/bs-modal.stories.js +0 -38
  407. package/dist/components/bs-modal.js +0 -1
  408. package/dist/esm/bs-modal.entry.js +0 -67
  409. package/dist/types/components/bs-modal/bs-modal.d.ts +0 -45
  410. /package/dist/types/components/{bs-button/bs-button.cmp.test.d.ts → bs-avatar/bs-avatar.cmp.test.d.ts} +0 -0
  411. /package/dist/types/components/{bs-modal/bs-modal.cmp.test.d.ts → bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.cmp.test.d.ts} +0 -0
@@ -1,6 +1,6 @@
1
- import { r as registerInstance, h } from './index-DP_bvuvB.js';
1
+ import { r as registerInstance, h } from './index-Do3l4of3.js';
2
2
 
3
- const bsCardCss = () => `:host{display:block}.bs-card{border:1px solid var(--bs-paper-border-surface);border-radius:var(--bs-border-radius-150);padding:var(--bs-spacing-400);font-family:inherit}.bs-card--base{background:var(--bs-paper-bg-base)}.bs-card--raised{background:var(--bs-paper-bg-raised);box-shadow:var(--bs-shadow-sm)}.bs-card--container{background:var(--bs-paper-bg-container)}.bs-card__header ::slotted(*){margin:0 0 var(--bs-spacing-300) 0}.bs-card__footer ::slotted(*){margin:var(--bs-spacing-300) 0 0 0}`;
3
+ const bsCardCss = () => `:host{display:block}.bs-card{overflow:hidden;border-radius:var(--bs-border-radius-100);font-family:inherit}.bs-card--base{background:var(--bs-paper-bg-base)}.bs-card--raised{background:var(--bs-paper-bg-raised);box-shadow:var(--bs-shadow-sm)}.bs-card--container{background:var(--bs-paper-bg-container)}.bs-card__image--visible ::slotted(img){display:block;width:100%;height:auto;object-fit:cover}.bs-card__content{padding:var(--bs-spacing-200)}.bs-card__header ::slotted(*){margin:0 0 var(--bs-spacing-100) 0}.bs-card__footer{display:flex;justify-content:flex-end;align-items:center;gap:var(--bs-spacing-200)}.bs-card__footer ::slotted(*){margin:var(--bs-spacing-100) 0 0 0}`;
4
4
 
5
5
  const BsCard = class {
6
6
  constructor(hostRef) {
@@ -9,8 +9,15 @@ const BsCard = class {
9
9
  /** Maps to the brandsync-tokens `--bs-paper-bg-*` set — Brandsync's tokens don't have a
10
10
  * dedicated "card" component yet, so this reuses the existing Paper surface tokens. */
11
11
  surface = 'raised';
12
+ /** Tracks whether the `image` slot has assigned content, so the image wrapper only reserves
13
+ * layout space (and clips its top corners) when there's actually an image -- same pattern as
14
+ * `bs-dialog`'s `hasImage`. */
15
+ hasImage = false;
16
+ onImageSlotchange = (ev) => {
17
+ this.hasImage = ev.target.assignedNodes().length > 0;
18
+ };
12
19
  render() {
13
- return (h("div", { key: 'c8f95e45c3aa78315341d5ef5f7aa53b33f289cc', part: "container", class: `bs-card bs-card--${this.surface}` }, h("div", { key: 'b0787524f4b874e4e47459ef5325f2494ea8bf59', part: "header", class: "bs-card__header" }, h("slot", { key: '41ee7852c3ea215f9b6fbc72ccd13283b58afc50', name: "header" })), h("div", { key: 'e4537f5ec7e11af4518cfae464ee6f65120355cc', part: "body", class: "bs-card__body" }, h("slot", { key: 'b6ceecfa3ad173f43811ae7c24b70822879f89f4' })), h("div", { key: '31bc782bb46991e1db5718ff9690140965810572', part: "footer", class: "bs-card__footer" }, h("slot", { key: 'f2530ea24aab67ea5f3f575ef251419b5565b5bc', name: "footer" }))));
20
+ return (h("div", { key: '0662903c6a1d7132865b2d6cbacd2d4f106101fc', part: "container", class: `bs-card bs-card--${this.surface}` }, h("div", { key: 'ba7637d19b11d05241f64a6314a8cdeb846be488', part: "image", class: `bs-card__image ${this.hasImage ? 'bs-card__image--visible' : ''}` }, h("slot", { key: '5b4d49a64af886cb19c0142aedb615d4c96e1d77', name: "image", onSlotchange: this.onImageSlotchange })), h("div", { key: 'd98c200c1bc2772f33ee8c0c5029761d464d656d', class: "bs-card__content" }, h("div", { key: '7e80e6809aad33f9919c1b14f86bad18c4602250', part: "header", class: "bs-card__header" }, h("slot", { key: '5daf62af5d08c31a51ad5ca0cc186ca60a92a0ef', name: "header" })), h("div", { key: 'feb18f2cf8c9fcb99051b8b66073ec2b1b46e123', part: "body", class: "bs-card__body" }, h("slot", { key: '561ef6160b5acd92500d097f0d402c176dd81c04' })), h("div", { key: 'd5989024a37534dea720eebf483273c518a72cd3', part: "footer", class: "bs-card__footer" }, h("slot", { key: '829399f8f90c83b2ea75e063daa7afbaf5f0f8dd', name: "footer" })))));
14
21
  }
15
22
  };
16
23
  BsCard.style = bsCardCss();
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-DP_bvuvB.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-Do3l4of3.js';
2
2
 
3
3
  const bsChatbotFeedbackCss = () => `:host{display:block;--bs-chatbot-feedback-bg:var(--bs-surface-raised);--bs-chatbot-feedback-border:var(--bs-border-default);--bs-chatbot-feedback-radius:var(--bs-border-radius-200);--bs-chatbot-feedback-padding-x:var(--bs-spacing-250);--bs-chatbot-feedback-padding-y:var(--bs-spacing-550);--bs-chatbot-feedback-max-width:762px;--bs-chatbot-feedback-gap:var(--bs-spacing-300);--bs-chatbot-feedback-top-gap:var(--bs-spacing-250);--bs-chatbot-feedback-heading-color:var(--bs-text-default);--bs-chatbot-feedback-subtitle-color:var(--bs-text-secondary);--bs-chatbot-feedback-star-filled:var(--bs-color-primary-default);--bs-chatbot-feedback-star-empty:var(--bs-border-neutral-container);--bs-chatbot-feedback-comment-color:var(--bs-text-default);--bs-chatbot-feedback-close-hover:var(--bs-surface-hover);--bs-chatbot-feedback-primary-bg:var(--bs-button-primary-default);--bs-chatbot-feedback-primary-bg-hover:var(--bs-button-primary-hover);--bs-chatbot-feedback-primary-bg-disabled:var(--bs-button-primary-disabled);--bs-chatbot-feedback-outlined-border:var(--bs-border-primary);--bs-chatbot-feedback-outlined-hover:var(--bs-color-primary-container-hover);--bs-chatbot-feedback-outlined-text:var(--bs-text-action)}.bs-chatbot-feedback{box-sizing:border-box;position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--bs-chatbot-feedback-gap);max-width:var(--bs-chatbot-feedback-max-width);padding:var(--bs-chatbot-feedback-padding-y) var(--bs-chatbot-feedback-padding-x);background:var(--bs-chatbot-feedback-bg);border:1px solid var(--bs-chatbot-feedback-border);border-radius:var(--bs-chatbot-feedback-radius);font-family:inherit}.bs-chatbot-feedback__close{box-sizing:border-box;position:absolute;top:var(--bs-spacing-100);right:var(--bs-spacing-100);display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:none;border-radius:var(--bs-border-radius-100);color:var(--bs-icon-default);cursor:pointer;transition:background-color var(--bs-duration-fast) var(--bs-easing-standard)}.bs-chatbot-feedback__close svg{width:20px;height:20px}.bs-chatbot-feedback__close:hover{background:var(--bs-chatbot-feedback-close-hover)}.bs-chatbot-feedback__top{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;gap:var(--bs-chatbot-feedback-top-gap);width:100%}.bs-chatbot-feedback__text{display:flex;flex-direction:column;gap:var(--bs-spacing-50);width:100%;text-align:center}.bs-chatbot-feedback__heading{margin:0;color:var(--bs-chatbot-feedback-heading-color);font-size:var(--bs-font-size-xl);font-weight:var(--bs-font-weight-bold);line-height:calc(var(--bs-line-height-heading-h5) * 1px)}.bs-chatbot-feedback__subtitle{margin:0;color:var(--bs-chatbot-feedback-subtitle-color);font-size:var(--bs-font-size-md);line-height:calc(var(--bs-line-height-body-md) * 1px)}.bs-chatbot-feedback__stars{display:flex;gap:var(--bs-spacing-350)}.bs-chatbot-feedback__star{box-sizing:border-box;display:inline-flex;width:36px;height:36px;padding:0;background:transparent;border:none;color:var(--bs-chatbot-feedback-star-empty);cursor:pointer}.bs-chatbot-feedback__star[aria-checked='true']{color:var(--bs-chatbot-feedback-star-filled)}.bs-chatbot-feedback__star:disabled{cursor:default}.bs-chatbot-feedback__star:focus-visible{outline:2px solid var(--bs-border-neutral-focus);outline-offset:2px;border-radius:var(--bs-border-radius-50)}.bs-chatbot-feedback__field{display:flex;flex-direction:column;gap:var(--bs-spacing-50);width:100%}.bs-chatbot-feedback__label{color:var(--bs-input-label);font-size:var(--bs-font-size-md);font-weight:var(--bs-font-weight-semibold);line-height:calc(var(--bs-line-height-body-md) * 1px)}.bs-chatbot-feedback__textarea{box-sizing:border-box;width:100%;min-height:103px;padding:var(--bs-spacing-100) var(--bs-spacing-150);border:1px solid var(--bs-input-border-default);border-radius:var(--bs-border-radius-100);background:var(--bs-input-bg-default);color:var(--bs-input-text);font-family:inherit;font-size:var(--bs-font-size-md);line-height:calc(var(--bs-line-height-body-md) * 1px);resize:vertical}.bs-chatbot-feedback__textarea::placeholder{color:var(--bs-input-placeholder)}.bs-chatbot-feedback__textarea:hover{border-color:var(--bs-input-border-hover)}.bs-chatbot-feedback__textarea:focus-visible{outline:none;border-color:var(--bs-input-border-focus)}.bs-chatbot-feedback__comment{box-sizing:border-box;width:100%;min-height:103px;margin:0;padding:var(--bs-spacing-100) var(--bs-spacing-150);border:1px solid var(--bs-input-border-default);border-radius:var(--bs-border-radius-100);background:var(--bs-input-bg-filled);color:var(--bs-chatbot-feedback-comment-color);font-size:var(--bs-font-size-md);line-height:calc(var(--bs-line-height-body-md) * 1px);word-break:break-word}.bs-chatbot-feedback__actions{display:flex;flex-direction:column;gap:var(--bs-spacing-150);width:100%}.bs-chatbot-feedback__submit,.bs-chatbot-feedback__new-chat{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:var(--bs-spacing-50);width:100%;height:44px;padding:0 var(--bs-spacing-250) 0 var(--bs-spacing-150);border-radius:var(--bs-border-radius-100);font-family:inherit;font-size:var(--bs-font-size-md);font-weight:var(--bs-font-weight-medium);cursor:pointer;transition:background-color var(--bs-duration-fast) var(--bs-easing-standard)}.bs-chatbot-feedback__submit svg,.bs-chatbot-feedback__new-chat svg{width:24px;height:24px;flex-shrink:0}.bs-chatbot-feedback__submit,.bs-chatbot-feedback__new-chat--primary{background:var(--bs-chatbot-feedback-primary-bg);border:none;color:var(--bs-text-on-action)}.bs-chatbot-feedback__submit:hover:not(:disabled),.bs-chatbot-feedback__new-chat--primary:hover{background:var(--bs-chatbot-feedback-primary-bg-hover)}.bs-chatbot-feedback__submit:disabled{background:var(--bs-chatbot-feedback-primary-bg-disabled);color:var(--bs-text-on-disabled);cursor:not-allowed}.bs-chatbot-feedback__new-chat--outlined{background:transparent;border:1px solid var(--bs-chatbot-feedback-outlined-border);color:var(--bs-chatbot-feedback-outlined-text)}.bs-chatbot-feedback__new-chat--outlined:hover{background:var(--bs-chatbot-feedback-outlined-hover)}.bs-chatbot-feedback__submit:focus-visible,.bs-chatbot-feedback__new-chat:focus-visible{outline:2px solid var(--bs-border-neutral-focus);outline-offset:2px}`;
4
4
 
@@ -80,7 +80,7 @@ const BsChatbotFeedback = class {
80
80
  }
81
81
  render() {
82
82
  const stars = [1, 2, 3, 4, 5];
83
- return (h("div", { key: '278496768d42fffdf8df4d4688ecb2a845b709f0', class: "bs-chatbot-feedback", role: "region", "aria-label": this.computedHeading() }, h("button", { key: '29507aa7b8d4047c49360eebe9705c04f5cf635a', type: "button", part: "close", class: "bs-chatbot-feedback__close", "aria-label": "Close", onClick: this.onCloseClick }, h(CloseIcon, { key: '598403a5f96cb5e3b242da19c67f888f6e5442b5' })), h("div", { key: '44de5b26f1e9dd202ba55d71c4ef831608a9b7e2', class: "bs-chatbot-feedback__top" }, h("div", { key: '2ab88191c765a53cf72b1edd3ebfe22aa5ac6bee', class: "bs-chatbot-feedback__text" }, h("p", { key: '9f60601413f81b5120516197e239ce1baf42dad4', part: "heading", class: "bs-chatbot-feedback__heading" }, this.computedHeading()), h("p", { key: 'd2a7c2b250c5ca5d9e46c52e534d38ab2efb96c5', part: "subtitle", class: "bs-chatbot-feedback__subtitle" }, this.computedSubtitle())), h("div", { key: '1c4564a3a48f483b6285ffabea8b2cd875154907', class: "bs-chatbot-feedback__stars", role: "radiogroup", "aria-label": "Rating" }, 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} star${value > 1 ? 's' : ''}`, disabled: this.submitted, onClick: () => this.onStarClick(value) }, h(StarIcon, { filled: this.rating >= value }))))), !this.submitted && (h("div", { key: '92c3340c38bf2c4f0b54e3a9ea67403c6f4155e1', class: "bs-chatbot-feedback__field" }, h("label", { key: '87d7a0faeb236d72ddc066d2d390c8ad77a346c2', part: "label", class: "bs-chatbot-feedback__label", htmlFor: "bs-chatbot-feedback-comment" }, "Tell us what you think"), h("textarea", { key: 'd8a424d825fbac92a98475e496bfc5186a4adeb9', part: "textarea", id: "bs-chatbot-feedback-comment", class: "bs-chatbot-feedback__textarea", placeholder: "e.g.The response was helpful ....", value: this.comment, onInput: this.onCommentInput }))), this.submitted && this.comment && (h("p", { key: 'd9fda026f57448ebc537967e5a8bbab5faa96dd1', part: "comment", class: "bs-chatbot-feedback__comment" }, this.comment))), h("div", { key: '5fa34ac127e5525a0f3279c240ca57288329ce56', class: "bs-chatbot-feedback__actions" }, !this.submitted && (h("button", { key: '9165d3f98cbb39974ffdc3831c27bef0abd55b4d', type: "button", part: "submit", class: "bs-chatbot-feedback__submit", disabled: this.rating === 0, onClick: this.onSubmitClick }, h(SendIcon, { key: '69c0c8a74e7d3fbb1c06d7c05be4f9766ea141ea' }), "Submit feedback")), h("button", { key: '97634f47527312fdc6752a203fc0781a0e88c79f', 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: '55699b3a298e25f3e0584e05d3f751f3d6bfbb9a' }), "Start new chat"))));
83
+ return (h("div", { key: '81d4b297593509fc8dd189f6f793f779e74257a9', class: "bs-chatbot-feedback", role: "region", "aria-label": this.computedHeading() }, h("button", { key: '0354e90dafc04230f5ff232a41ef833be53109da', type: "button", part: "close", class: "bs-chatbot-feedback__close", "aria-label": "Close", onClick: this.onCloseClick }, h(CloseIcon, { key: 'bb7dbb0f779ae0c6ed97d89de9daeb273cb95891' })), h("div", { key: 'a08af9ead8ff286a6dbf0cd447c59d5daa985b2e', class: "bs-chatbot-feedback__top" }, h("div", { key: 'ec2566d3fa1b69296e834292718f64f8cdc4de7a', class: "bs-chatbot-feedback__text" }, h("p", { key: 'f93002e0eb4d23247e879910f1f04062eda3445a', part: "heading", class: "bs-chatbot-feedback__heading" }, this.computedHeading()), h("p", { key: '49bc3b0849d622b719dcc8b003c7b19d478e29fe', part: "subtitle", class: "bs-chatbot-feedback__subtitle" }, this.computedSubtitle())), h("div", { key: '4b94ee7207c95f78dd3fa2d3660647f553dda8a8', class: "bs-chatbot-feedback__stars", role: "radiogroup", "aria-label": "Rating" }, 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} star${value > 1 ? 's' : ''}`, disabled: this.submitted, onClick: () => this.onStarClick(value) }, h(StarIcon, { filled: this.rating >= value }))))), !this.submitted && (h("div", { key: '390dc5a2d4073f89ac90fb6f753d9cd6072cc8e1', class: "bs-chatbot-feedback__field" }, h("label", { key: '4ade9e346c7c5af11ea66f7a491d99f76ba4de8d', part: "label", class: "bs-chatbot-feedback__label", htmlFor: "bs-chatbot-feedback-comment" }, "Tell us what you think"), h("textarea", { key: '8ef6e3fa14f5ebdc060e34b8b73ef08b3ed07396', part: "textarea", id: "bs-chatbot-feedback-comment", class: "bs-chatbot-feedback__textarea", placeholder: "e.g.The response was helpful ....", value: this.comment, onInput: this.onCommentInput }))), this.submitted && this.comment && (h("p", { key: '6b2c93b3e8c494a8a24d2592163497b41c2eab26', part: "comment", class: "bs-chatbot-feedback__comment" }, this.comment))), h("div", { key: 'a38c0b8ad956c56dc9d6f53152744e3e1f4bf049', class: "bs-chatbot-feedback__actions" }, !this.submitted && (h("button", { key: 'b93d7d561dd3bf253c1a04b30ea61b8a27f65d37', type: "button", part: "submit", class: "bs-chatbot-feedback__submit", disabled: this.rating === 0, onClick: this.onSubmitClick }, h(SendIcon, { key: '48cdda204d0d4855d7ec75b9be4715acfc9ad738' }), "Submit feedback")), h("button", { key: '40b3568e4aabf7a4e274b52c26e0216af539ed9f', 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: '53804fd03520aefc0d88b5d35b6078c5488c121a' }), "Start new chat"))));
84
84
  }
85
85
  };
86
86
  const StarIcon = ({ filled }) => (h("svg", { viewBox: "0 0 24 24", fill: filled ? 'currentColor' : 'none', xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" }, h("path", { d: "M12 2.5L15.09 8.75L22 9.77L17 14.62L18.18 21.5L12 18.22L5.82 21.5L7 14.62L2 9.77L8.91 8.75L12 2.5Z", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" })));
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-DP_bvuvB.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-Do3l4of3.js';
2
2
 
3
3
  // Genie brand mark (icon + wordmark), exported directly from Figma (node 2019:120235,
4
4
  // 'Horizontal Logo-V1 1') and inlined as a self-contained SVG string -- same pattern every other
@@ -130,7 +130,7 @@ const BsChatbotHeader = class {
130
130
  this.bsClose.emit();
131
131
  };
132
132
  render() {
133
- return (h("div", { key: 'b67eb065f0bacc73cea6cfba97f95db26d939fef', class: "bs-chatbot-header", role: "banner", "aria-label": this.heading }, h("div", { key: '14495ee7659e6d9198799b19fe2482996acd9cb1', part: "logo", class: "bs-chatbot-header__logo", role: "img", "aria-label": this.heading, innerHTML: GENIE_LOGO_SVG }), h("div", { key: '4f90a6351c004327440e92ca32a7d5f16dc10f35', class: "bs-chatbot-header__actions" }, h("span", { key: '77a7a55d92a4844778cd2f9e968e497b6f6dc3ec', class: "bs-chatbot-header__tooltip-wrapper" }, h("button", { key: '5e7e9ad3beb2a74d05178fb3b847994284b84078', type: "button", part: "new-chat", class: "bs-chatbot-header__button", "aria-label": "New chat", onClick: this.onNewChatClick }, h("slot", { key: '71fdc53fdb397fdb45a1e05d4ecf4505f2ee6546', name: "new-chat-icon" }, h(NewChatIcon, { key: '1ca210d70f3a16869092cf681d737c698b136e52' }))), h("bs-tooltip", { key: 'ec6e597102a7bccfbe82f3d4cdd24f6e9939671c', class: "bs-chatbot-header__tooltip", placement: "top", "aria-hidden": "true" }, "New chat")), h("span", { key: '5ab09f2170faa1e820ae43034e8d2c28263c8f9b', class: "bs-chatbot-header__tooltip-wrapper" }, h("button", { key: '457c6b31a93bc8afb9f6140283332f1e9cece997', type: "button", part: "history", class: "bs-chatbot-header__button", "aria-label": "History", onClick: this.onHistoryClick }, h("slot", { key: 'cec925b6dc90978e447ac2abe519fd39299f719d', name: "history-icon" }, h(HistoryIcon, { key: 'aec4f574f79fc80266cadb78d4db3a5e5a791af7' }))), h("bs-tooltip", { key: '76a28dd05c9648a27cb47d843a48c71b2a4736a1', class: "bs-chatbot-header__tooltip", placement: "top", "aria-hidden": "true" }, "History")), h("span", { key: 'f77e9dfc1640fd0820f1afdc47692767307793ed', class: "bs-chatbot-header__tooltip-wrapper" }, h("button", { key: 'd6c09ae435f7c43141990ac411bbfdd48be2746d', type: "button", part: "expand", class: "bs-chatbot-header__button", "aria-label": this.expanded ? 'Collapse' : 'Expand', "aria-pressed": this.expanded ? 'true' : 'false', onClick: this.onExpandClick }, h("slot", { key: 'd98d678009f56c298289527c505eb9863a783155', name: "expand-icon" }, h(ExpandIcon, { key: 'b5717154a53b3d6745a20de74f2e2a51497f1718' }))), h("bs-tooltip", { key: 'ee742bdb2e8f948756ea1f9b13ee2a1c35d0597d', class: "bs-chatbot-header__tooltip", placement: "top", "aria-hidden": "true" }, this.expanded ? 'Collapse' : 'Expand')), h("span", { key: '7a19e71b35be8052f206beff78531f17ff080dab', class: "bs-chatbot-header__tooltip-wrapper" }, h("button", { key: '758ddf35814919c575699bd27fdc303a80ef7307', type: "button", part: "close", class: "bs-chatbot-header__button", "aria-label": "Close", onClick: this.onCloseClick }, h("slot", { key: 'c545d1a724431ccff6593ba3047462bd9bfaefeb', name: "close-icon" }, h(CloseIcon, { key: '4ed2a585be65e2c77200ceeb2b99329afda177a3' }))), h("bs-tooltip", { key: '9ce32d5f9772d91fea7a937341a5866938d87ac5', class: "bs-chatbot-header__tooltip", placement: "top", "aria-hidden": "true" }, "Close")))));
133
+ return (h("div", { key: 'e0ea19eeb010af536dba9981ed9859181445dfe3', class: "bs-chatbot-header", role: "banner", "aria-label": this.heading }, h("div", { key: 'b2e9ebadd61e80ad1f4559dd0e0130d6b36f625c', part: "logo", class: "bs-chatbot-header__logo", role: "img", "aria-label": this.heading, innerHTML: GENIE_LOGO_SVG }), h("div", { key: '51a96ee8e2c456e00d090ef329a0a7625e8a22dd', class: "bs-chatbot-header__actions" }, h("span", { key: '26f392cb56b496da1e4c26fe378246bb47f0a7e9', class: "bs-chatbot-header__tooltip-wrapper" }, h("button", { key: '7418cea294cc509323049494464fc292c643d881', type: "button", part: "new-chat", class: "bs-chatbot-header__button", "aria-label": "New chat", onClick: this.onNewChatClick }, h("slot", { key: '510a66d1d0cc7baccf0f2d9f2dc6b26acfc76d0b', name: "new-chat-icon" }, h(NewChatIcon, { key: 'b135187338a185bda4f145f2311c7ea3b21839d5' }))), h("bs-tooltip", { key: '55605b4ec0d3c51fc5fc5546676e240a64bb5278', class: "bs-chatbot-header__tooltip", placement: "top", "aria-hidden": "true" }, "New chat")), h("span", { key: 'bab4c50dcf6d0931f90de7a1c45249559149aa9c', class: "bs-chatbot-header__tooltip-wrapper" }, h("button", { key: 'a70f0acd00a29476800e0cc1367a1f11ab159c75', type: "button", part: "history", class: "bs-chatbot-header__button", "aria-label": "History", onClick: this.onHistoryClick }, h("slot", { key: 'dfbd816dee51c428359509c4d9fc97efbd290a0e', name: "history-icon" }, h(HistoryIcon, { key: '5550515b799ab3d494d812aa9567781f86c7381a' }))), h("bs-tooltip", { key: '66cc280bc34b411b4ad8d0640acafbc14259bfab', class: "bs-chatbot-header__tooltip", placement: "top", "aria-hidden": "true" }, "History")), h("span", { key: '21bd18c8221473430d5afa844d0a8fd6072fabe4', class: "bs-chatbot-header__tooltip-wrapper" }, h("button", { key: 'fe794fafeb13f4aa5ae1f228b8b28eeb82317631', type: "button", part: "expand", class: "bs-chatbot-header__button", "aria-label": this.expanded ? 'Collapse' : 'Expand', "aria-pressed": this.expanded ? 'true' : 'false', onClick: this.onExpandClick }, h("slot", { key: '457d0ca096b2f44aee67db3ca6cae24d440b9bb0', name: "expand-icon" }, h(ExpandIcon, { key: '207caae0afda63b8ddc55b13c9de0abf991a5650' }))), h("bs-tooltip", { key: '12251a2b24cd651f0ee91307d62f7179e67fb066', class: "bs-chatbot-header__tooltip", placement: "top", "aria-hidden": "true" }, this.expanded ? 'Collapse' : 'Expand')), h("span", { key: '25d6e11049392522aa8a0b1b9bc6327850a10084', class: "bs-chatbot-header__tooltip-wrapper" }, h("button", { key: 'ed9df95ed3922f23d135980ffc2e1306c3d09da2', type: "button", part: "close", class: "bs-chatbot-header__button", "aria-label": "Close", onClick: this.onCloseClick }, h("slot", { key: '73fbf236b91e874ebc40a51b565b772d8b4f65fd', name: "close-icon" }, h(CloseIcon, { key: '26ab31c650988a86860790fd9591b5cd2d0daf3c' }))), h("bs-tooltip", { key: 'f51ce61c93ba84116545d95c6ce89b21e791dc4c', class: "bs-chatbot-header__tooltip", placement: "top", "aria-hidden": "true" }, "Close")))));
134
134
  }
135
135
  };
136
136
  const NewChatIcon = () => (h("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" }, h("path", { d: "M12 15H9V12L18 3L21 6L12 15Z", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("path", { d: "M15.75 5.25L18.75 8.25", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("path", { d: "M20.25 12V19.5C20.25 19.6989 20.171 19.8897 20.0303 20.0303C19.8897 20.171 19.6989 20.25 19.5 20.25H4.5C4.30109 20.25 4.11032 20.171 3.96967 20.0303C3.82902 19.8897 3.75 19.6989 3.75 19.5V4.5C3.75 4.30109 3.82902 4.11032 3.96967 3.96967C4.11032 3.82902 4.30109 3.75 4.5 3.75H12", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })));
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, a as getElement, h } from './index-DP_bvuvB.js';
1
+ import { r as registerInstance, c as createEvent, a as getElement, h } from './index-Do3l4of3.js';
2
2
 
3
3
  const bsChatbotResponseActionCss = () => `:host{display:block;--bs-chatbot-response-action-gap:var(--bs-spacing-100);--bs-chatbot-response-action-padding-top:var(--bs-spacing-150);--bs-chatbot-response-action-padding-bottom:var(--bs-spacing-50);--bs-chatbot-response-action-button-size:var(--bs-spacing-400);--bs-chatbot-response-action-button-radius:var(--bs-border-radius-100);--bs-chatbot-response-action-button-hover:var(--bs-color-neutral-container);--bs-chatbot-response-action-button-pressed:var(--bs-color-neutral-container-pressed);--bs-chatbot-response-action-icon:var(--bs-icon-neutral-default);--bs-chatbot-response-action-sources-gap:var(--bs-spacing-50);--bs-chatbot-response-action-sources-padding-left:var(--bs-spacing-100);--bs-chatbot-response-action-sources-padding-right:var(--bs-spacing-150);--bs-chatbot-response-action-sources-color:var(--bs-text-neutral-default);--bs-chatbot-response-action-sources-font-size:var(--bs-font-size-sm);--bs-chatbot-response-action-sources-line-height:var(--bs-line-height-body-sm)}.bs-chatbot-response-action{box-sizing:border-box;display:flex;align-items:center;gap:var(--bs-chatbot-response-action-gap);padding-top:var(--bs-chatbot-response-action-padding-top);padding-bottom:var(--bs-chatbot-response-action-padding-bottom);background:transparent;font-family:inherit}.bs-chatbot-response-action__button{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;border:none;padding:0;cursor:pointer;background:transparent;color:var(--bs-chatbot-response-action-icon);font-family:inherit;border-radius:var(--bs-chatbot-response-action-button-radius);width:var(--bs-chatbot-response-action-button-size);height:var(--bs-chatbot-response-action-button-size);flex-shrink:0;transition:background-color var(--bs-duration-fast) var(--bs-easing-standard)}.bs-chatbot-response-action__button:focus-visible{outline:2px solid var(--bs-border-neutral-focus);outline-offset:2px}.bs-chatbot-response-action__button svg{width:20px;height:20px}.bs-chatbot-response-action__button:hover{background:var(--bs-chatbot-response-action-button-hover)}.bs-chatbot-response-action__button:active{background:var(--bs-chatbot-response-action-button-pressed)}.bs-chatbot-response-action__menu-wrapper{position:relative;display:inline-flex;flex-shrink:0}.bs-chatbot-response-action__menu-popup{position:absolute;top:calc(100% + var(--bs-spacing-50));left:0;z-index:1}.bs-chatbot-response-action__sources{display:inline-flex;align-items:center;box-sizing:border-box;border:none;cursor:pointer;background:transparent;color:var(--bs-chatbot-response-action-sources-color);font-family:inherit;font-size:var(--bs-chatbot-response-action-sources-font-size);line-height:calc(var(--bs-chatbot-response-action-sources-line-height) * 1px);gap:var(--bs-chatbot-response-action-sources-gap);border-radius:var(--bs-chatbot-response-action-button-radius);height:var(--bs-chatbot-response-action-button-size);padding-left:var(--bs-chatbot-response-action-sources-padding-left);padding-right:var(--bs-chatbot-response-action-sources-padding-right);flex-shrink:0;transition:background-color var(--bs-duration-fast) var(--bs-easing-standard)}.bs-chatbot-response-action__sources:focus-visible{outline:2px solid var(--bs-border-neutral-focus);outline-offset:2px}.bs-chatbot-response-action__sources svg{width:20px;height:20px;flex-shrink:0}.bs-chatbot-response-action__sources:hover{background:var(--bs-chatbot-response-action-button-hover)}.bs-chatbot-response-action__sources:active{background:var(--bs-chatbot-response-action-button-pressed)}.bs-chatbot-response-action__sources-label{white-space:nowrap}`;
4
4
 
@@ -76,7 +76,7 @@ const BsChatbotResponseAction = class {
76
76
  };
77
77
  render() {
78
78
  const hasSources = !!this.sourcesCount && this.sourcesCount > 0;
79
- return (h("div", { key: '7d97251380f7e6b002eaafb3699ea981d5068555', class: "bs-chatbot-response-action" }, h("button", { key: 'd05f73b0f1d1f9f03a452397ef3206a866abcefc', type: "button", part: "like", class: "bs-chatbot-response-action__button", "aria-label": "Like", onClick: this.onLikeClick }, h("slot", { key: '30b7a9da1dd2c317ac7c4ecbdda76c0f146a3495', name: "like-icon" }, h(ThumbsUpIcon, { key: 'b5bf2e9915a5c1263e18304f4b487807cc256879' }))), h("button", { key: 'f601202a175a47978595d080d938ce48be1715d8', type: "button", part: "dislike", class: "bs-chatbot-response-action__button", "aria-label": "Dislike", onClick: this.onDislikeClick }, h("slot", { key: 'c141f978f453abc6062e8274a4fdb6e1f80ac5b2', name: "dislike-icon" }, h(ThumbsDownIcon, { key: '158799c27d18b62152937e7485cec5a23598d177' }))), h("button", { key: 'cdb6b1ab5f2bb12e43ae3ab0fa73a81e24ba1f16', type: "button", part: "copy", class: "bs-chatbot-response-action__button", "aria-label": "Copy", onClick: this.onCopyClick }, h("slot", { key: '8e9387d18ed444da1b7d20f4a6b60e7c2fae32bc', name: "copy-icon" }, h(CopyIcon, { key: '7c1cfede4ef084babd7aeeb3a2a3817ca4346663' }))), h("button", { key: 'f4e190de92eb4936594f4701c406c3b2bc1f84c8', type: "button", part: "regenerate", class: "bs-chatbot-response-action__button", "aria-label": "Regenerate", onClick: this.onRegenerateClick }, h("slot", { key: 'c52e03dc83f047125a5bd1c73cafba8b71a21fed', name: "regenerate-icon" }, h(RegenerateIcon, { key: '1564599695557eea663d770779301c34e815cbf5' }))), h("div", { key: '90a6b3c75e169be71c217ac8b711bb2ca001ee49', class: "bs-chatbot-response-action__menu-wrapper" }, h("button", { key: '2d8d25c6e183638233ef9287360bc0969f2fa2ac', type: "button", part: "menu", class: "bs-chatbot-response-action__button", "aria-label": "More options", "aria-haspopup": "menu", "aria-expanded": this.menuOpen ? 'true' : 'false', onClick: this.onMenuClick }, h("slot", { key: 'f992794d9e964c830e1780078ea83abec1be471b', name: "menu-icon" }, h(MenuIcon, { key: '4b75676316bc826b3a7cd19cba8f46b8ceacf19c' }))), this.menuOpen && (h("div", { key: 'f24430ebab56eda589f19f7cb9f3f1c31d7185cb', class: "bs-chatbot-response-action__menu-popup" }, h("slot", { key: '2978dee3a0d5521e805a4496d6e33c6b31b52fc6', name: "menu" })))), hasSources && (h("button", { key: '1ab402dd2ef3c97b5b30d86e4f1e3db4f879baf9', type: "button", part: "sources", class: "bs-chatbot-response-action__sources", onClick: this.onSourcesClick }, h("slot", { key: 'f2cf31ff9311d8c888f2b8a0130a9f82161c4b8f', name: "sources-icon" }, h(SourcesIcon, { key: '333dae604a7eb80319b8e822c332067076e4a04d' })), h("span", { key: '04929996660675c23f1a02fc1d756d6735b58b8d', class: "bs-chatbot-response-action__sources-label" }, this.sourcesCount, " ", this.sourcesCount === 1 ? 'source' : 'sources')))));
79
+ return (h("div", { key: '6f0fe6d237fa76a44aebc5452d77619f8a6f3e07', class: "bs-chatbot-response-action" }, h("button", { key: 'e46a78f8a28c8b23780d86ea52618bb96003bbc6', type: "button", part: "like", class: "bs-chatbot-response-action__button", "aria-label": "Like", onClick: this.onLikeClick }, h("slot", { key: 'cf59ea0115e99fef5e5398f8101ecd4702f6d13c', name: "like-icon" }, h(ThumbsUpIcon, { key: '0597457db34f2e4677f63a7253dd59015bbcbaf5' }))), h("button", { key: '9dd6db57941126a2b50f3c1c45653e35cc4e9113', type: "button", part: "dislike", class: "bs-chatbot-response-action__button", "aria-label": "Dislike", onClick: this.onDislikeClick }, h("slot", { key: '8ab78179e979275461cd420e1ab7919396e6126e', name: "dislike-icon" }, h(ThumbsDownIcon, { key: '5f9eeeb87c3bb3f635468dfcdddb323069c20c6f' }))), h("button", { key: '6bf0a37024846ababcfc0c1593f6d9fd4bd2b6af', type: "button", part: "copy", class: "bs-chatbot-response-action__button", "aria-label": "Copy", onClick: this.onCopyClick }, h("slot", { key: '68c68be3274b3bf2c0f59178640e6009ec5869da', name: "copy-icon" }, h(CopyIcon, { key: '229bd54acaad25cc05da69361142be1588c723f9' }))), h("button", { key: '1cc152937d132b179b72daf1342f63cbabcc67f2', type: "button", part: "regenerate", class: "bs-chatbot-response-action__button", "aria-label": "Regenerate", onClick: this.onRegenerateClick }, h("slot", { key: '407f9527d50f75d0063b92a6f68ed6a4364b72bc', name: "regenerate-icon" }, h(RegenerateIcon, { key: 'f1d5fca176ef8f90c167a62307bda06bdc86b4a6' }))), h("div", { key: '2fe454900888c46dc17d24ce28c3af1d2d9afcf6', class: "bs-chatbot-response-action__menu-wrapper" }, h("button", { key: '3046ca6507dd70c734a37e6aed89613167ce5e29', type: "button", part: "menu", class: "bs-chatbot-response-action__button", "aria-label": "More options", "aria-haspopup": "menu", "aria-expanded": this.menuOpen ? 'true' : 'false', onClick: this.onMenuClick }, h("slot", { key: '3e6814659655c0ba61bc84a3eacae0a13b2c9cd6', name: "menu-icon" }, h(MenuIcon, { key: '70a898b1158a284f1c8e07a6d92ce11de1265844' }))), this.menuOpen && (h("div", { key: '95bc1e4c5a8e8d160a6b59c36bf3485ecfdc8505', class: "bs-chatbot-response-action__menu-popup" }, h("slot", { key: '80dd0220745586c213c4372ded2f2138c4e3dadb', name: "menu" })))), hasSources && (h("button", { key: '4f1036874d1a02347820bb0d19a77c18f5d33bc0', type: "button", part: "sources", class: "bs-chatbot-response-action__sources", onClick: this.onSourcesClick }, h("slot", { key: '11c4b6b5399ffd011bb60da19265e19bc4407061', name: "sources-icon" }, h(SourcesIcon, { key: 'fd64afb252fb5b32332cc46ff664fc947df22ea5' })), h("span", { key: 'ef47e93369d033e3306e7006516470d5b1c9c13f', class: "bs-chatbot-response-action__sources-label" }, this.sourcesCount, " ", this.sourcesCount === 1 ? 'source' : 'sources')))));
80
80
  }
81
81
  };
82
82
  const ThumbsUpIcon = () => (h("svg", { viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" }, h("path", { d: "M2.5 8.125H6.25V16.25H2.5C2.33424 16.25 2.17527 16.1842 2.05806 16.0669C1.94085 15.9497 1.875 15.7908 1.875 15.625V8.75C1.875 8.58424 1.94085 8.42527 2.05806 8.30806C2.17527 8.19085 2.33424 8.125 2.5 8.125Z", stroke: "currentColor", "stroke-width": "1.66667", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("path", { d: "M6.25 8.125L9.375 1.875C10.038 1.875 10.6739 2.13839 11.1428 2.60723C11.6116 3.07607 11.875 3.71196 11.875 4.375V6.25H16.875C17.0523 6.25005 17.2276 6.28782 17.3892 6.36081C17.5508 6.4338 17.695 6.54033 17.8123 6.67333C17.9295 6.80634 18.0172 6.96277 18.0693 7.13223C18.1215 7.3017 18.137 7.48033 18.1148 7.65625L17.1773 15.1562C17.1393 15.4583 16.9923 15.736 16.7641 15.9374C16.5358 16.1388 16.2419 16.2499 15.9375 16.25H6.25", stroke: "currentColor", "stroke-width": "1.66667", "stroke-linecap": "round", "stroke-linejoin": "round" })));
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, a as getElement, h } from './index-DP_bvuvB.js';
1
+ import { r as registerInstance, c as createEvent, a as getElement, h } from './index-Do3l4of3.js';
2
2
 
3
3
  const bsChatbotSourcesDrawerCss = () => `:host{display:block;--bs-chatbot-sources-drawer-bg:var(--bs-surface-raised);--bs-chatbot-sources-drawer-header-shadow:var(--bs-shadow-xs);--bs-chatbot-sources-drawer-header-padding-x:var(--bs-spacing-200);--bs-chatbot-sources-drawer-header-padding-top:var(--bs-spacing-150);--bs-chatbot-sources-drawer-header-padding-bottom:var(--bs-spacing-100);--bs-chatbot-sources-drawer-heading-color:var(--bs-text-default);--bs-chatbot-sources-drawer-count-bg:var(--bs-badge-bg-neutral-container);--bs-chatbot-sources-drawer-count-color:var(--bs-badge-text-neutral);--bs-chatbot-sources-drawer-collapse-hover:var(--bs-surface-hover);--bs-chatbot-sources-drawer-section-gap:var(--bs-spacing-200);--bs-chatbot-sources-drawer-list-padding:var(--bs-spacing-200);--bs-chatbot-sources-drawer-list-gap:var(--bs-spacing-50)}.bs-chatbot-sources-drawer{box-sizing:border-box;display:flex;flex-direction:column;gap:var(--bs-chatbot-sources-drawer-section-gap);width:100%;height:100%;background:var(--bs-chatbot-sources-drawer-bg);font-family:inherit}.bs-chatbot-sources-drawer__header{box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;padding:var(--bs-chatbot-sources-drawer-header-padding-top) var(--bs-chatbot-sources-drawer-header-padding-x) var(--bs-chatbot-sources-drawer-header-padding-bottom);box-shadow:var(--bs-chatbot-sources-drawer-header-shadow)}.bs-chatbot-sources-drawer__title-group{display:flex;align-items:center;gap:var(--bs-spacing-100)}.bs-chatbot-sources-drawer__heading{margin:0;color:var(--bs-chatbot-sources-drawer-heading-color);font-size:var(--bs-font-size-2xl);font-weight:var(--bs-font-weight-bold);line-height:calc(var(--bs-line-height-heading-h4) * 1px)}.bs-chatbot-sources-drawer__count{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-width:16px;max-width:34px;padding:var(--bs-spacing-50) var(--bs-spacing-100);background:var(--bs-chatbot-sources-drawer-count-bg);border-radius:var(--bs-border-radius-50);color:var(--bs-chatbot-sources-drawer-count-color);font-size:var(--bs-font-size-xs);line-height:calc(var(--bs-line-height-caption-sm) * 1px)}.bs-chatbot-sources-drawer__collapse{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:none;border:none;border-radius:var(--bs-border-radius-100);color:var(--bs-icon-default);cursor:pointer}.bs-chatbot-sources-drawer__collapse:hover{background:var(--bs-chatbot-sources-drawer-collapse-hover)}.bs-chatbot-sources-drawer__collapse:focus-visible{outline:2px solid var(--bs-border-neutral-focus);outline-offset:1px}.bs-chatbot-sources-drawer__list{box-sizing:border-box;display:flex;flex-direction:column;gap:var(--bs-chatbot-sources-drawer-list-gap);padding:0 var(--bs-chatbot-sources-drawer-list-padding) var(--bs-chatbot-sources-drawer-list-padding);overflow-y:auto}`;
4
4
 
@@ -27,7 +27,7 @@ const BsChatbotSourcesDrawer = class {
27
27
  };
28
28
  render() {
29
29
  const displayCount = this.count ?? this.slottedCount;
30
- return (h("div", { key: 'e71c8b6f4856092a6fd43fd6dcd8cda04d3a103e', class: "bs-chatbot-sources-drawer", role: "region", "aria-label": this.heading }, h("div", { key: 'f46a1383d8e95aeb83541b2620647839fbe4d3f9', class: "bs-chatbot-sources-drawer__header" }, h("div", { key: '62663736cb4f9e56a5b837da27b4d7d8915c1838', class: "bs-chatbot-sources-drawer__title-group" }, h("h2", { key: '765954b929796005966efaf5aa23ca68053a894e', part: "heading", class: "bs-chatbot-sources-drawer__heading" }, this.heading), displayCount > 0 && (h("span", { key: '562cfc14be64d938879fad31ab185a2f3a441e63', part: "count", class: "bs-chatbot-sources-drawer__count" }, displayCount))), h("button", { key: '8e538aa2aa31b54c8845c9c5d8ffd581cbf1028b', type: "button", part: "collapse", class: "bs-chatbot-sources-drawer__collapse", "aria-label": "Collapse sources", onClick: this.onCollapseClick }, h("slot", { key: '53b12abc52c217d3264ece6cf26daf8c5e01f84e', name: "collapse-icon" }, h(CaretRightIcon, { key: '90b61c4694fd1d908d74e47a19124327a001ce53' })))), h("div", { key: 'a7fc0ceb5b280867237ac3ce6c3bd314c7809075', part: "list", class: "bs-chatbot-sources-drawer__list" }, h("slot", { key: 'db40db9dad7f4e24c8eb0665e2286870f0800843', onSlotchange: this.onSlotchange }))));
30
+ return (h("div", { key: '4f5ba818b20615f14f05744f7da90293687fb571', class: "bs-chatbot-sources-drawer", role: "region", "aria-label": this.heading }, h("div", { key: 'e42b0c3ea3c33da5ab3c5aff08a27dfdf91f9213', class: "bs-chatbot-sources-drawer__header" }, h("div", { key: '47364bc1d824a102c63a8f3fbca310c3c50996db', class: "bs-chatbot-sources-drawer__title-group" }, h("h2", { key: 'ad91fd640f31ad585438ed0da4fa6964321d0839', part: "heading", class: "bs-chatbot-sources-drawer__heading" }, this.heading), displayCount > 0 && (h("span", { key: 'c46163c92ba3d15e384101d5e37d72c1e2034534', part: "count", class: "bs-chatbot-sources-drawer__count" }, displayCount))), h("button", { key: 'f82bf6ec52abb532b3fd5f4b6d7d4405d71685a0', type: "button", part: "collapse", class: "bs-chatbot-sources-drawer__collapse", "aria-label": "Collapse sources", onClick: this.onCollapseClick }, h("slot", { key: 'f7e7edab6658cbf745f06fa18931d9522e488723', name: "collapse-icon" }, h(CaretRightIcon, { key: '6e3ac570d6a5ca716b39c611b2f6d0c15078cbbf' })))), h("div", { key: '5006ed497dec22fb534a8805edbf24a8196e3cbc', part: "list", class: "bs-chatbot-sources-drawer__list" }, h("slot", { key: 'f32856392781219b2f0102181cbcfb768a331cea', onSlotchange: this.onSlotchange }))));
31
31
  }
32
32
  };
33
33
  const CaretRightIcon = () => (h("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" }, h("path", { d: "M7.5 4.375L13.125 10L7.5 15.625", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" })));
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-DP_bvuvB.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-Do3l4of3.js';
2
2
 
3
3
  const bsChatbotSuggestionButtonCss = () => `:host{display:inline-block;--bs-chatbot-suggestion-button-radius:var(--bs-border-radius-full);--bs-chatbot-suggestion-button-border-color:var(--bs-border-primary);--bs-chatbot-suggestion-button-bg-default:var(--bs-color-primary-container);--bs-chatbot-suggestion-button-bg-hover:var(--bs-color-primary-container-hover);--bs-chatbot-suggestion-button-bg-pressed:var(--bs-brand-200);--bs-chatbot-suggestion-button-bg-focus:var(--bs-color-primary-container-hover);--bs-chatbot-suggestion-button-text-default:var(--bs-text-action);--bs-chatbot-suggestion-button-text-hover:var(--bs-text-action-hover);--bs-chatbot-suggestion-button-focus-ring-color:var(--bs-border-primary-focus)}.bs-chatbot-suggestion-button{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;height:40px;min-width:80px;padding:var(--bs-spacing-100) var(--bs-spacing-200);border:var(--bs-border-width-thin) solid var(--bs-chatbot-suggestion-button-border-color);border-radius:var(--bs-chatbot-suggestion-button-radius);background:var(--bs-chatbot-suggestion-button-bg-default);color:var(--bs-chatbot-suggestion-button-text-default);font-family:inherit;font-size:var(--bs-font-size-md);line-height:calc(var(--bs-line-height-body-md) * 1px);text-align:center;cursor:pointer;transition:background-color var(--bs-duration-fast) var(--bs-easing-standard)}.bs-chatbot-suggestion-button:hover:not(:disabled){background:var(--bs-chatbot-suggestion-button-bg-hover);color:var(--bs-chatbot-suggestion-button-text-hover)}.bs-chatbot-suggestion-button:active:not(:disabled){background:var(--bs-chatbot-suggestion-button-bg-pressed);color:var(--bs-chatbot-suggestion-button-text-hover)}.bs-chatbot-suggestion-button:focus-visible{background:var(--bs-chatbot-suggestion-button-bg-focus);color:var(--bs-chatbot-suggestion-button-text-hover);outline:var(--bs-border-width-medium) solid var(--bs-chatbot-suggestion-button-focus-ring-color);outline-offset:3px}.bs-chatbot-suggestion-button:disabled{opacity:var(--bs-opacity-disabled);cursor:not-allowed}`;
4
4
 
@@ -15,7 +15,7 @@ const BsChatbotSuggestionButton = class {
15
15
  this.bsSelect.emit();
16
16
  };
17
17
  render() {
18
- return (h("button", { key: 'ec0d9d02fe71438dc564a36d4e57bcf465b4395d', type: "button", part: "button", class: "bs-chatbot-suggestion-button", disabled: this.disabled, onClick: this.onClick }, h("slot", { key: '443a388996b21359df334af0319244f4c736e259' })));
18
+ return (h("button", { key: '6382d81881701ca9363c0031e8db634812f233f7', type: "button", part: "button", class: "bs-chatbot-suggestion-button", disabled: this.disabled, onClick: this.onClick }, h("slot", { key: 'cc6a6586b36c70f5420f08ebc44db5452fe184bc' })));
19
19
  }
20
20
  };
21
21
  BsChatbotSuggestionButton.style = bsChatbotSuggestionButtonCss();
@@ -0,0 +1,18 @@
1
+ import { r as registerInstance, h } from './index-Do3l4of3.js';
2
+
3
+ const bsCheckboxSkeletonCss = () => `:host{display:inline-block;--bs-checkbox-skeleton-size-sm:var(--bs-spacing-200);--bs-checkbox-skeleton-size-md:var(--bs-spacing-250);--bs-checkbox-skeleton-size-lg:var(--bs-spacing-300);--bs-checkbox-skeleton-gap:var(--bs-spacing-100);--bs-checkbox-skeleton-label-width:96px}.bs-checkbox-skeleton{display:inline-flex;align-items:center;gap:var(--bs-checkbox-skeleton-gap)}.bs-checkbox-skeleton__box,.bs-checkbox-skeleton__label{background:var(--bs-color-neutral-container);animation:bs-checkbox-skeleton-pulse 1.5s ease-in-out infinite}.bs-checkbox-skeleton__box{flex-shrink:0;border-radius:var(--bs-border-radius-50)}.bs-checkbox-skeleton__box--sm{width:var(--bs-checkbox-skeleton-size-sm);height:var(--bs-checkbox-skeleton-size-sm)}.bs-checkbox-skeleton__box--md{width:var(--bs-checkbox-skeleton-size-md);height:var(--bs-checkbox-skeleton-size-md)}.bs-checkbox-skeleton__box--lg{width:var(--bs-checkbox-skeleton-size-lg);height:var(--bs-checkbox-skeleton-size-lg)}.bs-checkbox-skeleton__label{width:var(--bs-checkbox-skeleton-label-width);height:16px;border-radius:var(--bs-border-radius-50)}@keyframes bs-checkbox-skeleton-pulse{0%,100%{opacity:1}50%{opacity:0.5}}@media (prefers-reduced-motion: reduce){.bs-checkbox-skeleton__box,.bs-checkbox-skeleton__label{animation:none}}`;
4
+
5
+ const BsCheckboxSkeleton = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ }
9
+ /** Sizing scale, matching the `bs-checkbox` size it stands in for. Defaults to `lg`, the same
10
+ * (unusual) default `bs-checkbox` itself uses. */
11
+ size = 'lg';
12
+ render() {
13
+ return (h("span", { key: '3ce0fec776997d16edcb84d3fe46c461721230b1', part: "container", class: "bs-checkbox-skeleton", role: "status", "aria-label": "Loading" }, h("span", { key: 'b59ec36ba925cb95545a4836bfa3b631a5ac54f6', part: "box", class: `bs-checkbox-skeleton__box bs-checkbox-skeleton__box--${this.size}` }), h("span", { key: '847024bd9c5d30157fe2e2cf3ef7421c8741dc21', part: "label", class: "bs-checkbox-skeleton__label" })));
14
+ }
15
+ };
16
+ BsCheckboxSkeleton.style = bsCheckboxSkeletonCss();
17
+
18
+ export { BsCheckboxSkeleton as bs_checkbox_skeleton };
@@ -1,6 +1,6 @@
1
- import { r as registerInstance, c as createEvent, a as getElement, h } from './index-DP_bvuvB.js';
1
+ import { r as registerInstance, c as createEvent, a as getElement, h } from './index-Do3l4of3.js';
2
2
 
3
- const bsCheckboxCss = () => `:host{display:inline-block;--bs-checkbox-radius:var(--bs-border-radius-50);--bs-checkbox-gap:var(--bs-spacing-100);--bs-checkbox-size-sm:var(--bs-spacing-200);--bs-checkbox-size-md:var(--bs-spacing-250);--bs-checkbox-size-lg:var(--bs-spacing-300);--bs-checkbox-border-width-sm:1.333px;--bs-checkbox-border-width-md:1.667px;--bs-checkbox-border-width-lg:2px;--bs-checkbox-border-default:var(--bs-border-default);--bs-checkbox-bg-hover:var(--bs-surface-hover);--bs-checkbox-border-hover:var(--bs-border-neutral-hover);--bs-checkbox-bg-focus:var(--bs-surface-raised);--bs-checkbox-border-focus:var(--bs-border-neutral-hover);--bs-checkbox-focus-ring-color:var(--bs-border-neutral-focus);--bs-checkbox-bg-disabled:var(--bs-surface-action-disabled);--bs-checkbox-border-disabled:var(--bs-border-neutral-disabled);--bs-checkbox-border-error:var(--bs-border-error);--bs-checkbox-bg-selected:var(--bs-color-primary-default);--bs-checkbox-border-selected:var(--bs-color-primary-default);--bs-checkbox-bg-selected-hover:var(--bs-color-primary-hover);--bs-checkbox-border-selected-hover:var(--bs-color-primary-hover);--bs-checkbox-bg-selected-error:var(--bs-icon-error);--bs-checkbox-border-selected-error:var(--bs-icon-error);--bs-checkbox-icon-color:var(--bs-icon-static-white);--bs-checkbox-icon-color-disabled:var(--bs-icon-disabled);--bs-checkbox-label-color:var(--bs-text-default);--bs-checkbox-label-color-disabled:var(--bs-text-on-disabled);--bs-checkbox-label-color-error:var(--bs-text-error)}.bs-checkbox{position:relative;display:inline-flex;align-items:center;gap:var(--bs-checkbox-gap);font-family:inherit;cursor:pointer}.bs-checkbox--disabled{cursor:not-allowed}.bs-checkbox__input{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:pointer}.bs-checkbox__input:disabled{cursor:not-allowed}.bs-checkbox__box{box-sizing:border-box;position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--bs-checkbox-size-lg);height:var(--bs-checkbox-size-lg);border:var(--bs-checkbox-border-width-lg) solid var(--bs-checkbox-border-default);border-radius:var(--bs-checkbox-radius);background:transparent;color:var(--bs-checkbox-icon-color)}.bs-checkbox__box--md{width:var(--bs-checkbox-size-md);height:var(--bs-checkbox-size-md);border-width:var(--bs-checkbox-border-width-md)}.bs-checkbox__box--sm{width:var(--bs-checkbox-size-sm);height:var(--bs-checkbox-size-sm);border-width:var(--bs-checkbox-border-width-sm)}.bs-checkbox__box--selected{background:var(--bs-checkbox-bg-selected);border-color:var(--bs-checkbox-border-selected)}.bs-checkbox__input:hover:not(:disabled)~.bs-checkbox__box{background:var(--bs-checkbox-bg-hover);border-color:var(--bs-checkbox-border-hover)}.bs-checkbox__input:hover:not(:disabled)~.bs-checkbox__box--selected{background:var(--bs-checkbox-bg-selected-hover);border-color:var(--bs-checkbox-border-selected-hover)}.bs-checkbox__input:focus-visible~.bs-checkbox__box{background:var(--bs-checkbox-bg-focus);border-color:var(--bs-checkbox-border-focus);outline:2px solid var(--bs-checkbox-focus-ring-color);outline-offset:2px}.bs-checkbox__input:focus-visible~.bs-checkbox__box--selected{background:var(--bs-checkbox-bg-selected-hover);border-color:var(--bs-checkbox-border-selected-hover)}.bs-checkbox__box--error{border-color:var(--bs-checkbox-border-error)}.bs-checkbox__box--error.bs-checkbox__box--selected{background:var(--bs-checkbox-bg-selected-error);border-color:var(--bs-checkbox-border-selected-error)}.bs-checkbox__box--disabled{background:var(--bs-checkbox-bg-disabled);border-color:var(--bs-checkbox-border-disabled);color:var(--bs-checkbox-icon-color-disabled)}.bs-checkbox__box--disabled.bs-checkbox__box--selected{background:var(--bs-checkbox-bg-disabled);border-color:var(--bs-checkbox-border-disabled)}.bs-checkbox__icon{width:80%;height:80%}.bs-checkbox__label{font-size:var(--bs-font-size-sm);color:var(--bs-checkbox-label-color)}.bs-checkbox--disabled .bs-checkbox__label{color:var(--bs-checkbox-label-color-disabled)}.bs-checkbox:not(.bs-checkbox--disabled) .bs-checkbox__box--error~.bs-checkbox__label{color:var(--bs-checkbox-label-color-error)}`;
3
+ const bsCheckboxCss = () => `:host{display:inline-block;--bs-checkbox-radius:var(--bs-border-radius-50);--bs-checkbox-gap:var(--bs-spacing-100);--bs-checkbox-size-sm:var(--bs-spacing-200);--bs-checkbox-size-md:var(--bs-spacing-250);--bs-checkbox-size-lg:var(--bs-spacing-300);--bs-checkbox-border-width-sm:1.333px;--bs-checkbox-border-width-md:1.667px;--bs-checkbox-border-width-lg:2px;--bs-checkbox-border-default:var(--bs-border-default);--bs-checkbox-bg-hover:var(--bs-surface-hover);--bs-checkbox-border-hover:var(--bs-border-neutral-hover);--bs-checkbox-bg-focus:var(--bs-surface-raised);--bs-checkbox-border-focus:var(--bs-border-neutral-hover);--bs-checkbox-focus-ring-color:var(--bs-border-neutral-focus);--bs-checkbox-bg-disabled:var(--bs-surface-action-disabled);--bs-checkbox-border-disabled:var(--bs-border-neutral-disabled);--bs-checkbox-border-error:var(--bs-border-error);--bs-checkbox-bg-selected:var(--bs-color-primary-default);--bs-checkbox-border-selected:var(--bs-color-primary-default);--bs-checkbox-bg-selected-hover:var(--bs-color-primary-hover);--bs-checkbox-border-selected-hover:var(--bs-color-primary-hover);--bs-checkbox-bg-selected-error:var(--bs-icon-error);--bs-checkbox-border-selected-error:var(--bs-icon-error);--bs-checkbox-icon-color:var(--bs-icon-static-white);--bs-checkbox-icon-color-disabled:var(--bs-icon-disabled);--bs-checkbox-label-color:var(--bs-text-default);--bs-checkbox-label-color-disabled:var(--bs-text-on-disabled);--bs-checkbox-label-color-error:var(--bs-text-error)}.bs-checkbox{position:relative;display:inline-flex;align-items:center;gap:var(--bs-checkbox-gap);font-family:inherit;cursor:pointer}.bs-checkbox--disabled{cursor:not-allowed}.bs-checkbox__input{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:pointer}.bs-checkbox__input:disabled{cursor:not-allowed}.bs-checkbox__box{box-sizing:border-box;position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--bs-checkbox-size-lg);height:var(--bs-checkbox-size-lg);border:var(--bs-checkbox-border-width-lg) solid var(--bs-checkbox-border-default);border-radius:var(--bs-checkbox-radius);background:transparent;color:var(--bs-checkbox-icon-color)}.bs-checkbox__box--md{width:var(--bs-checkbox-size-md);height:var(--bs-checkbox-size-md);border-width:var(--bs-checkbox-border-width-md)}.bs-checkbox__box--sm{width:var(--bs-checkbox-size-sm);height:var(--bs-checkbox-size-sm);border-width:var(--bs-checkbox-border-width-sm)}.bs-checkbox__box--selected{background:var(--bs-checkbox-bg-selected);border-color:var(--bs-checkbox-border-selected)}.bs-checkbox__input:hover:not(:disabled)~.bs-checkbox__box{background:var(--bs-checkbox-bg-hover);border-color:var(--bs-checkbox-border-hover)}.bs-checkbox__input:hover:not(:disabled)~.bs-checkbox__box--selected{background:var(--bs-checkbox-bg-selected-hover);border-color:var(--bs-checkbox-border-selected-hover)}.bs-checkbox__input:focus-visible~.bs-checkbox__box{background:var(--bs-checkbox-bg-focus);border-color:var(--bs-checkbox-border-focus);outline:2px solid var(--bs-checkbox-focus-ring-color);outline-offset:2px}.bs-checkbox__input:focus-visible~.bs-checkbox__box--selected{background:var(--bs-checkbox-bg-selected-hover);border-color:var(--bs-checkbox-border-selected-hover)}.bs-checkbox__box--error{border-color:var(--bs-checkbox-border-error)}.bs-checkbox__box--error.bs-checkbox__box--selected{background:var(--bs-checkbox-bg-selected-error);border-color:var(--bs-checkbox-border-selected-error)}.bs-checkbox__box--disabled{background:var(--bs-checkbox-bg-disabled);border-color:var(--bs-checkbox-border-disabled);color:var(--bs-checkbox-icon-color-disabled)}.bs-checkbox__box--disabled.bs-checkbox__box--selected{background:var(--bs-checkbox-bg-disabled);border-color:var(--bs-checkbox-border-disabled)}.bs-checkbox__icon{width:80%;height:80%}.bs-checkbox__label{font-size:var(--bs-font-size-md);color:var(--bs-checkbox-label-color)}.bs-checkbox__box--sm~.bs-checkbox__label{font-size:var(--bs-font-size-sm)}.bs-checkbox--disabled .bs-checkbox__label{color:var(--bs-checkbox-label-color-disabled)}.bs-checkbox:not(.bs-checkbox--disabled) .bs-checkbox__box--error~.bs-checkbox__label{color:var(--bs-checkbox-label-color-error)}`;
4
4
 
5
5
  const BsCheckbox = class {
6
6
  constructor(hostRef) {
@@ -29,6 +29,17 @@ const BsCheckbox = class {
29
29
  /** Applies the error border/label-color treatment. This component's spec has no error message
30
30
  * text of its own (unlike `bs-input`'s `error: string`), so it's a plain boolean. */
31
31
  error = false;
32
+ /**
33
+ * Accessible name for the checkbox. Required whenever the default (label) slot is empty (e.g. a
34
+ * bare "select row" checkbox in a table) -- without it, the internal native `<input>` has no
35
+ * accessible name at all. Setting `aria-label` directly on the `<bs-checkbox>` host does NOT
36
+ * work for this: that attribute stays on the light-DOM host and is never forwarded into the
37
+ * shadow DOM by the browser, so the actual focusable element (the native `<input>` inside) stays
38
+ * nameless. This prop exists specifically to bridge that gap -- same pattern as `bs-button`'s and
39
+ * `bs-tab`'s identical `ariaLabel` prop, both of which explicitly bind it onto their own internal
40
+ * focusable element for the same reason.
41
+ */
42
+ ariaLabel = null;
32
43
  /** Emitted when the checked state changes via user interaction, with the new `checked` value. */
33
44
  bsChange;
34
45
  /** Keeps the native input's `.indeterminate` JS property in sync -- this can't be expressed as a
@@ -67,7 +78,7 @@ const BsCheckbox = class {
67
78
  ]
68
79
  .filter(Boolean)
69
80
  .join(' ');
70
- return (h("label", { key: 'a5cae53f4a82545ce4f9146891ad3a24c90ad2cf', class: `bs-checkbox ${this.disabled ? 'bs-checkbox--disabled' : ''}` }, h("input", { key: 'b9e40a9c3347bcb8517474209febd048bd853e25', ref: el => (this.inputEl = el), class: "bs-checkbox__input", type: "checkbox", checked: this.checked, disabled: this.disabled, "aria-checked": this.indeterminate ? 'mixed' : String(this.checked), onChange: this.onChange }), h("span", { key: '60af78d14456f4cb65d6e9e7aa54f4b4bce84cfe', part: "box", class: boxClasses }, showIcon && (h("svg", { key: '5c64f14f979b866a71290584931f994fc485fb70', 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: 'd0993da246362d50fc924e8e6e9e9465cbec631f', part: "label", class: "bs-checkbox__label" }, h("slot", { key: '719bb1f6c842f9a482f2672490f5df1025090d87' }))));
81
+ return (h("label", { key: '78f89b0841c20e030bf8af7384a870d9e660e44f', class: `bs-checkbox ${this.disabled ? 'bs-checkbox--disabled' : ''}` }, h("input", { key: '254d622c1603c444272864f10bc6abccac825f76', ref: el => (this.inputEl = el), class: "bs-checkbox__input", type: "checkbox", checked: this.checked, disabled: this.disabled, "aria-checked": this.indeterminate ? 'mixed' : String(this.checked), "aria-label": this.ariaLabel, onChange: this.onChange }), h("span", { key: '39d94a0d5e590b920082911400554185088a2ebe', part: "box", class: boxClasses }, showIcon && (h("svg", { key: '609448a396a59a9aad9d14eeb8c574d7255dc076', 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: '16ed6f220ee2417837c2166c9369bff78638095d', part: "label", class: "bs-checkbox__label" }, h("slot", { key: 'd22610712a6bb1e41ecc72ae60c1e6a5df8e93da' }))));
71
82
  }
72
83
  static get delegatesFocus() { return true; }
73
84
  static get watchers() { return {
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-DP_bvuvB.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-Do3l4of3.js';
2
2
 
3
3
  const bsComposerStatusBannerCss = () => `:host{display:block;--bs-composer-status-banner-radius:var(--bs-border-radius-150);--bs-composer-status-banner-padding-x:var(--bs-spacing-150);--bs-composer-status-banner-padding-top:var(--bs-spacing-100);--bs-composer-status-banner-padding-bottom:var(--bs-spacing-200);--bs-composer-status-banner-gap:var(--bs-spacing-100);--bs-composer-status-banner-icon-gap:var(--bs-spacing-75);--bs-composer-status-banner-error-bg:var(--bs-color-error-container);--bs-composer-status-banner-error-text:var(--bs-text-error);--bs-composer-status-banner-error-action-bg:var(--bs-color-error-default);--bs-composer-status-banner-error-action-bg-hover:var(--bs-color-error-hover);--bs-composer-status-banner-info-bg:var(--bs-color-info-container);--bs-composer-status-banner-info-text:var(--bs-text-info);--bs-composer-status-banner-info-action-bg:var(--bs-color-info-default);--bs-composer-status-banner-info-action-bg-hover:var(--bs-color-info-hover);--bs-composer-status-banner-neutral-bg:var(--bs-color-neutral-container);--bs-composer-status-banner-neutral-text:var(--bs-text-default);--bs-composer-status-banner-neutral-action-bg:var(--bs-color-neutral-container);--bs-composer-status-banner-neutral-action-bg-hover:var(--bs-color-neutral-container-hover);--bs-composer-status-banner-neutral-action-border:var(--bs-border-neutral-container);--bs-composer-status-banner-warning-bg:var(--bs-color-warning-container);--bs-composer-status-banner-warning-text:var(--bs-text-warning);--bs-composer-status-banner-warning-action-bg:var(--bs-color-warning-default);--bs-composer-status-banner-warning-action-bg-hover:var(--bs-color-warning-hover);--bs-composer-status-banner-close-hover-bg:var(--bs-color-neutral-container-hover)}.bs-composer-status-banner{box-sizing:border-box;display:flex;align-items:center;gap:var(--bs-composer-status-banner-gap);padding:var(--bs-composer-status-banner-padding-top) var(--bs-composer-status-banner-padding-x) var(--bs-composer-status-banner-padding-bottom);border-radius:var(--bs-composer-status-banner-radius) var(--bs-composer-status-banner-radius) 0 0;font-family:inherit}.bs-composer-status-banner--error{background:var(--bs-composer-status-banner-error-bg);color:var(--bs-composer-status-banner-error-text)}.bs-composer-status-banner--info{background:var(--bs-composer-status-banner-info-bg);color:var(--bs-composer-status-banner-info-text)}.bs-composer-status-banner--neutral{background:var(--bs-composer-status-banner-neutral-bg);color:var(--bs-composer-status-banner-neutral-text)}.bs-composer-status-banner--warning{background:var(--bs-composer-status-banner-warning-bg);color:var(--bs-composer-status-banner-warning-text)}.bs-composer-status-banner__message-group{box-sizing:border-box;display:flex;align-items:center;flex:1 0 0;min-width:0;gap:var(--bs-composer-status-banner-icon-gap)}.bs-composer-status-banner__icon{display:inline-flex;flex-shrink:0;width:20px;height:20px}.bs-composer-status-banner__icon ::slotted(*){display:block;width:100%;height:100%}.bs-composer-status-banner__message{margin:0;flex:1 0 0;min-width:0;font-size:var(--bs-font-size-md);line-height:calc(var(--bs-line-height-body-md) * 1px);word-break:break-word}.bs-composer-status-banner__action{box-sizing:border-box;flex-shrink:0;height:32px;padding:0 var(--bs-spacing-150);border:none;border-radius:var(--bs-border-radius-100);color:var(--bs-text-on-action);font-family:inherit;font-size:var(--bs-font-size-sm);font-weight:var(--bs-font-weight-medium);line-height:calc(var(--bs-line-height-body-sm) * 1px);cursor:pointer;transition:background-color var(--bs-duration-fast) var(--bs-easing-standard)}.bs-composer-status-banner--error .bs-composer-status-banner__action{background:var(--bs-composer-status-banner-error-action-bg)}.bs-composer-status-banner--error .bs-composer-status-banner__action:hover{background:var(--bs-composer-status-banner-error-action-bg-hover)}.bs-composer-status-banner--info .bs-composer-status-banner__action{background:var(--bs-composer-status-banner-info-action-bg)}.bs-composer-status-banner--info .bs-composer-status-banner__action:hover{background:var(--bs-composer-status-banner-info-action-bg-hover)}.bs-composer-status-banner--warning .bs-composer-status-banner__action{background:var(--bs-composer-status-banner-warning-action-bg)}.bs-composer-status-banner--warning .bs-composer-status-banner__action:hover{background:var(--bs-composer-status-banner-warning-action-bg-hover)}.bs-composer-status-banner--neutral .bs-composer-status-banner__action{background:var(--bs-composer-status-banner-neutral-action-bg);border:var(--bs-border-width-thin) solid var(--bs-composer-status-banner-neutral-action-border);color:var(--bs-text-default)}.bs-composer-status-banner--neutral .bs-composer-status-banner__action:hover{background:var(--bs-composer-status-banner-neutral-action-bg-hover)}.bs-composer-status-banner__close{box-sizing:border-box;display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:none;border-radius:var(--bs-border-radius-100);color:inherit;cursor:pointer;transition:background-color var(--bs-duration-fast) var(--bs-easing-standard)}.bs-composer-status-banner__close:hover{background:var(--bs-composer-status-banner-close-hover-bg)}.bs-composer-status-banner__close svg{width:20px;height:20px}.bs-composer-status-banner__close:focus-visible,.bs-composer-status-banner__action:focus-visible{outline:2px solid var(--bs-border-neutral-focus);outline-offset:1px}`;
4
4
 
@@ -30,11 +30,23 @@ const BsComposerStatusBanner = class {
30
30
  onCloseClick = () => {
31
31
  this.bsClose.emit();
32
32
  };
33
+ /** `error`/`warning` need immediate, interrupting announcement (`alert`); `info`/`neutral` only
34
+ * need a polite one (`status`) -- matches the Figma Accessibility guidelines for this component. */
35
+ roleForType() {
36
+ return this.type === 'error' || this.type === 'warning' ? 'alert' : 'status';
37
+ }
38
+ /** Clock reads as "waiting/pending", a reasonable default for info/neutral notices -- but is a
39
+ * weak match for error/warning, which get a warning-triangle icon instead. Either default is
40
+ * still overridable via the `icon` slot. */
41
+ renderDefaultIcon() {
42
+ return this.type === 'error' || this.type === 'warning' ? h(WarningIcon, null) : h(ClockIcon, null);
43
+ }
33
44
  render() {
34
- return (h("div", { key: '9444cd90c8a529a7a3155a27303ca4af3abcb733', class: `bs-composer-status-banner bs-composer-status-banner--${this.type}` }, h("div", { key: '7a25dd42f4941c928e7d21a83e66c46bd4a28f7c', class: "bs-composer-status-banner__message-group" }, this.showIcon && (h("span", { key: 'e21ef754303df6c0bcb6cb4d6a0f9cdd2453a347', part: "icon", class: "bs-composer-status-banner__icon" }, h("slot", { key: '8df995de6f4553178552fb2905aa95290741328d', name: "icon" }, h(ClockIcon, { key: 'c2f25db5e1bb964ad4ec2ded6018c8692074bc19' })))), h("p", { key: 'a57b869260c3fc87e3ab50f9af14558047f70955', part: "message", class: "bs-composer-status-banner__message" }, this.message)), this.showButton && (h("button", { key: '6fa67847f17e3c83705f1ddf888c89e3cf9d0752', type: "button", part: "action", class: "bs-composer-status-banner__action", onClick: this.onActionClick }, this.actionLabel)), this.allowClose && (h("button", { key: '3cc3420291a3687d579d18f365154c0db1c4a79f', type: "button", part: "close", class: "bs-composer-status-banner__close", "aria-label": "Dismiss", onClick: this.onCloseClick }, h(CloseIcon, { key: '14617eacef6a6ab4e6056d115dcf8929481eeeee' })))));
45
+ return (h("div", { key: 'f8f5ae2de96dc534f4e9c9a5f46fe28e3da57939', role: this.roleForType(), class: `bs-composer-status-banner bs-composer-status-banner--${this.type}` }, h("div", { key: '28d77b1058c375afaba827f4dd4563b6cff058e4', class: "bs-composer-status-banner__message-group" }, this.showIcon && (h("span", { key: 'aaa867907b3610a1e2a9be087d2d077cd1252503', part: "icon", class: "bs-composer-status-banner__icon" }, h("slot", { key: '1d0db69c42e4a23978655e86e16b9624f05a8edb', name: "icon" }, this.renderDefaultIcon()))), h("p", { key: 'bdad9aaf7efa1d96afd07c9d214d7a2ee369c010', part: "message", class: "bs-composer-status-banner__message" }, this.message)), this.showButton && (h("button", { key: 'cf949f6cada1c35d91ebc7ec81c56ea9e9255c30', type: "button", part: "action", class: "bs-composer-status-banner__action", onClick: this.onActionClick }, this.actionLabel)), this.allowClose && (h("button", { key: '5108346a07f7bb3c23ea94c213f395212497b4e8', type: "button", part: "close", class: "bs-composer-status-banner__close", "aria-label": "Dismiss", onClick: this.onCloseClick }, h(CloseIcon, { key: '7651748165308c30394ea312f227ff83eb7b1d1a' })))));
35
46
  }
36
47
  };
37
48
  const ClockIcon = () => (h("svg", { viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" }, h("circle", { cx: "10", cy: "10", r: "7.25", stroke: "currentColor", "stroke-width": "1.3" }), h("path", { d: "M10 5.83V10L12.5 11.67", stroke: "currentColor", "stroke-width": "1.3", "stroke-linecap": "round", "stroke-linejoin": "round" })));
49
+ const WarningIcon = () => (h("svg", { viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" }, h("path", { d: "M10 3L18 17H2L10 3Z", stroke: "currentColor", "stroke-width": "1.3", "stroke-linejoin": "round" }), h("path", { d: "M10 8V11.5", stroke: "currentColor", "stroke-width": "1.3", "stroke-linecap": "round" }), h("circle", { cx: "10", cy: "14", r: "0.75", fill: "currentColor" })));
38
50
  const CloseIcon = () => (h("svg", { viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" }, h("path", { d: "M15 5L5 15", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("path", { d: "M15 15L5 5", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" })));
39
51
  BsComposerStatusBanner.style = bsComposerStatusBannerCss();
40
52
 
@@ -1,6 +1,6 @@
1
- import { r as registerInstance, c as createEvent, a as getElement, h } from './index-DP_bvuvB.js';
1
+ import { r as registerInstance, c as createEvent, a as getElement, h } from './index-Do3l4of3.js';
2
2
 
3
- const bsComposerCss = () => `:host{display:block;--bs-composer-radius:var(--bs-border-radius-150);--bs-composer-button-radius:var(--bs-border-radius-100);--bs-composer-button-size:var(--bs-spacing-600);--bs-composer-bg:var(--bs-input-bg-default);--bs-composer-border:var(--bs-input-border-default);--bs-composer-border-focus:var(--bs-input-border-focus);--bs-composer-action-bg:var(--bs-color-primary-default);--bs-composer-action-bg-hover:var(--bs-color-primary-hover);--bs-composer-action-bg-pressed:var(--bs-color-primary-pressed);--bs-composer-action-bg-disabled:var(--bs-surface-action-disabled);--bs-composer-action-icon:var(--bs-text-on-action);--bs-composer-action-icon-disabled:var(--bs-text-on-disabled);--bs-composer-attach-icon:var(--bs-icon-default);--bs-composer-mic-icon:var(--bs-icon-default);--bs-composer-mic-icon-disabled:var(--bs-icon-disabled);--bs-composer-mic-recording-icon:var(--bs-icon-default);--bs-composer-subtle-hover:var(--bs-color-neutral-container);--bs-composer-subtle-pressed:var(--bs-color-neutral-container-pressed);--bs-composer-waveform-color:var(--bs-border-default)}.bs-composer{box-sizing:border-box;display:flex;flex-direction:column;border:1px solid var(--bs-composer-border);border-radius:var(--bs-composer-radius);background:var(--bs-composer-bg);font-family:inherit}.bs-composer--human{border-style:dashed}.bs-composer:focus-within{border-color:var(--bs-composer-border-focus)}.bs-composer__attachments-row{display:none}.bs-composer__attachments-row--visible{display:block}.bs-composer__text-row{display:flex;align-items:center;gap:var(--bs-spacing-150);padding:var(--bs-spacing-150)}.bs-composer__input{flex:1;min-width:0;border:none;outline:none;background:transparent;color:var(--bs-input-text);font-family:inherit;font-size:var(--bs-font-size-md)}.bs-composer__input::placeholder{color:var(--bs-input-placeholder)}.bs-composer__input:disabled{color:var(--bs-input-text-disabled);cursor:not-allowed}.bs-composer__waveform{display:inline-flex;flex:1;min-width:0;align-items:center;justify-content:center;gap:3px;overflow:hidden}.bs-composer__waveform-bar{display:inline-block;flex-shrink:0;width:2.5px;border-radius:1.5px;background:var(--bs-composer-waveform-color);height:var(--bs-composer-bar-height, 6px)}.bs-composer__controls-row{display:flex;align-items:center;gap:var(--bs-spacing-200);padding:var(--bs-spacing-150)}.bs-composer__spacer{flex:1}.bs-composer__attach,.bs-composer__mic,.bs-composer__action{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;border:none;padding:0;cursor:pointer;font-family:inherit;border-radius:var(--bs-composer-button-radius);width:var(--bs-composer-button-size);height:var(--bs-composer-button-size);flex-shrink:0;transition:background-color var(--bs-duration-fast) var(--bs-easing-standard)}.bs-composer__attach:focus-visible,.bs-composer__mic:focus-visible,.bs-composer__action:focus-visible{outline:2px solid var(--bs-border-neutral-focus);outline-offset:2px}.bs-composer__attach svg,.bs-composer__mic svg,.bs-composer__action svg{width:24px;height:24px}.bs-composer__attach,.bs-composer__mic{background:transparent}.bs-composer__attach:hover:not(:disabled),.bs-composer__mic:hover:not(:disabled){background:var(--bs-composer-subtle-hover)}.bs-composer__attach:active:not(:disabled),.bs-composer__mic:active:not(:disabled){background:var(--bs-composer-subtle-pressed)}.bs-composer__attach{color:var(--bs-composer-attach-icon)}.bs-composer__mic{color:var(--bs-composer-mic-icon)}.bs-composer__mic--recording{color:var(--bs-composer-mic-recording-icon)}.bs-composer__mic:disabled{color:var(--bs-composer-mic-icon-disabled);cursor:not-allowed}.bs-composer__action{background:var(--bs-composer-action-bg);color:var(--bs-composer-action-icon)}.bs-composer__action:hover:not(:disabled){background:var(--bs-composer-action-bg-hover)}.bs-composer__action:active:not(:disabled){background:var(--bs-composer-action-bg-pressed)}.bs-composer__action:disabled{background:var(--bs-composer-action-bg-disabled);color:var(--bs-composer-action-icon-disabled);cursor:not-allowed}`;
3
+ const bsComposerCss = () => `:host{display:block;--bs-composer-radius:var(--bs-border-radius-150);--bs-composer-button-radius:var(--bs-border-radius-100);--bs-composer-button-size:var(--bs-spacing-600);--bs-composer-bg:var(--bs-input-bg-default);--bs-composer-border:var(--bs-input-border-default);--bs-composer-border-focus:var(--bs-input-border-focus);--bs-composer-action-bg:var(--bs-color-primary-default);--bs-composer-action-bg-hover:var(--bs-color-primary-hover);--bs-composer-action-bg-pressed:var(--bs-color-primary-pressed);--bs-composer-action-bg-disabled:var(--bs-surface-action-disabled);--bs-composer-action-icon:var(--bs-text-on-action);--bs-composer-action-icon-disabled:var(--bs-text-on-disabled);--bs-composer-attach-icon:var(--bs-icon-default);--bs-composer-mic-icon:var(--bs-icon-default);--bs-composer-mic-icon-disabled:var(--bs-icon-disabled);--bs-composer-mic-recording-icon:var(--bs-icon-default);--bs-composer-subtle-hover:var(--bs-color-neutral-container);--bs-composer-subtle-pressed:var(--bs-color-neutral-container-pressed);--bs-composer-waveform-color:var(--bs-border-default);--bs-composer-input-max-lines:10}.bs-composer{box-sizing:border-box;display:flex;flex-direction:column;border:1px solid var(--bs-composer-border);border-radius:var(--bs-composer-radius);background:var(--bs-composer-bg);font-family:inherit}.bs-composer--human{border-style:dashed}.bs-composer:focus-within{border-color:var(--bs-composer-border-focus)}.bs-composer__attachments-row{display:none}.bs-composer__attachments-row--visible{display:block}.bs-composer__text-row{display:flex;align-items:center;gap:var(--bs-spacing-150);padding:var(--bs-spacing-150)}.bs-composer__input{flex:1;min-width:0;box-sizing:border-box;padding:0;border:none;outline:none;resize:none;background:transparent;color:var(--bs-input-text);font-family:inherit;font-size:var(--bs-font-size-md);line-height:calc(var(--bs-line-height-body-md) * 1px);max-height:calc(var(--bs-composer-input-max-lines) * var(--bs-line-height-body-md) * 1px);overflow-y:auto}.bs-composer__input::placeholder{color:var(--bs-input-placeholder)}.bs-composer__input:disabled{color:var(--bs-input-text-disabled);cursor:not-allowed}.bs-composer__waveform{display:inline-flex;flex:1;min-width:0;align-items:center;justify-content:center;gap:3px;overflow:hidden}.bs-composer__waveform-bar{display:inline-block;flex-shrink:0;width:2.5px;border-radius:1.5px;background:var(--bs-composer-waveform-color);height:var(--bs-composer-bar-height, 6px)}.bs-composer__controls-row{display:flex;align-items:center;gap:var(--bs-spacing-200);padding:var(--bs-spacing-150)}.bs-composer__spacer{flex:1}.bs-composer__attach,.bs-composer__mic,.bs-composer__action{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;border:none;padding:0;cursor:pointer;font-family:inherit;border-radius:var(--bs-composer-button-radius);width:var(--bs-composer-button-size);height:var(--bs-composer-button-size);flex-shrink:0;transition:background-color var(--bs-duration-fast) var(--bs-easing-standard)}.bs-composer__attach:focus-visible,.bs-composer__mic:focus-visible,.bs-composer__action:focus-visible{outline:2px solid var(--bs-border-neutral-focus);outline-offset:2px}.bs-composer__attach svg,.bs-composer__mic svg,.bs-composer__action svg{width:24px;height:24px}.bs-composer__attach,.bs-composer__mic{background:transparent}.bs-composer__attach:hover:not(:disabled),.bs-composer__mic:hover:not(:disabled){background:var(--bs-composer-subtle-hover)}.bs-composer__attach:active:not(:disabled),.bs-composer__mic:active:not(:disabled){background:var(--bs-composer-subtle-pressed)}.bs-composer__attach{color:var(--bs-composer-attach-icon)}.bs-composer__mic{color:var(--bs-composer-mic-icon)}.bs-composer__mic--recording{color:var(--bs-composer-mic-recording-icon)}.bs-composer__mic:disabled{color:var(--bs-composer-mic-icon-disabled);cursor:not-allowed}.bs-composer__action{background:var(--bs-composer-action-bg);color:var(--bs-composer-action-icon)}.bs-composer__action:hover:not(:disabled){background:var(--bs-composer-action-bg-hover)}.bs-composer__action:active:not(:disabled){background:var(--bs-composer-action-bg-pressed)}.bs-composer__action:disabled{background:var(--bs-composer-action-bg-disabled);color:var(--bs-composer-action-icon-disabled);cursor:not-allowed}`;
4
4
 
5
5
  const DEFAULT_PLACEHOLDERS = {
6
6
  ai: 'Ask Genie something...',
@@ -24,6 +24,7 @@ const BsComposer = class {
24
24
  this.bsMicToggle = createEvent(this, "bsMicToggle");
25
25
  }
26
26
  get el() { return getElement(this); }
27
+ inputEl;
27
28
  /**
28
29
  * Which flavor of composer this is: changes the *default* placeholder text (set `placeholder`
29
30
  * directly to override it) and, per the Figma design, renders the container border dashed
@@ -34,7 +35,12 @@ const BsComposer = class {
34
35
  /** Overrides the variant's default placeholder. */
35
36
  placeholder;
36
37
  /** Current text value. Native `input` events don't cross the Shadow DOM boundary, so this
37
- * component re-dispatches them as a `bsInput` custom event instead. */
38
+ * component re-dispatches them as a `bsInput` custom event instead.
39
+ *
40
+ * The field is a `<textarea>` (not a single-line `<input>`) that grows with its content, up to
41
+ * `--bs-composer-input-max-lines` (10 by default) -- beyond that it scrolls internally instead
42
+ * of growing further. Setting `value` as a prop (not just typing) also re-triggers the resize,
43
+ * so e.g. programmatically clearing the field after submit correctly shrinks it back down. */
38
44
  value = '';
39
45
  /**
40
46
  * Which of the four mutually-exclusive composer states to render: `idle` (send, enabled),
@@ -71,11 +77,38 @@ const BsComposer = class {
71
77
  componentWillLoad() {
72
78
  this.hasAttachments = Array.from(this.el.childNodes).some(node => node.nodeType === Node.ELEMENT_NODE && node.getAttribute('slot') === 'attachments');
73
79
  }
80
+ componentDidLoad() {
81
+ this.resizeInput();
82
+ }
83
+ /** Re-runs the auto-grow calculation after every re-render -- notably including a `value` prop
84
+ * change from the outside (e.g. a consumer clearing the field after submit, or pre-filling it),
85
+ * not just while the user is typing. This has to be `componentDidUpdate`, not a `@Watch('value')`
86
+ * callback: `@Watch` fires as soon as the prop is reassigned, which is BEFORE Stencil's next
87
+ * render actually pushes the new value into the textarea's DOM `.value` -- reading `scrollHeight`
88
+ * at that point still reflects the OLD content, so the resize would silently no-op. */
89
+ componentDidUpdate() {
90
+ this.resizeInput();
91
+ }
92
+ /**
93
+ * Grows the textarea to fit its content, up to `--bs-composer-input-max-lines` worth of height
94
+ * (CSS `max-height` clamps the visual result and `overflow-y: auto` takes over beyond that --
95
+ * see bs-composer.css). Resetting `height` to `auto` first is required before reading
96
+ * `scrollHeight`, otherwise a shrinking edit (e.g. deleting a line) would never shrink the
97
+ * textarea back down -- `scrollHeight` only ever reports the larger of "current height" and
98
+ * "content height" if the height isn't cleared first.
99
+ */
100
+ resizeInput() {
101
+ if (!this.inputEl)
102
+ return;
103
+ this.inputEl.style.height = 'auto';
104
+ this.inputEl.style.height = `${this.inputEl.scrollHeight}px`;
105
+ }
74
106
  onAttachmentsSlotchange = (ev) => {
75
107
  this.hasAttachments = ev.target.assignedNodes().length > 0;
76
108
  };
77
109
  onInput = (ev) => {
78
110
  const value = ev.target.value;
111
+ this.resizeInput();
79
112
  this.bsInput.emit(value);
80
113
  };
81
114
  onAttachClick = () => {
@@ -113,7 +146,7 @@ const BsComposer = class {
113
146
  const placeholder = this.placeholder ?? DEFAULT_PLACEHOLDERS[this.variant];
114
147
  const disabled = this.state === 'disabled';
115
148
  const recording = this.state === 'recording';
116
- return (h("div", { key: '6215ac865d4df3984f1f0aee90ecd430d138aab3', class: `bs-composer bs-composer--${this.state} bs-composer--${this.variant}` }, h("div", { key: '93232e0bc2112d2e774b6f276aca7e392a4c9a10', part: "attachments", class: `bs-composer__attachments-row ${this.hasAttachments ? 'bs-composer__attachments-row--visible' : ''}` }, h("slot", { key: 'd169cece5b8924396dc1b0ed01b1eec34d18fa7a', name: "attachments", onSlotchange: this.onAttachmentsSlotchange })), h("div", { key: 'bbe77f36bf48b50a2555502df2d19d38e132279a', class: "bs-composer__text-row" }, h("input", { key: '1f15cd9bf4fc0861390709d1bdfc780866432601', part: "input", class: "bs-composer__input", type: "text", value: this.value, placeholder: placeholder, disabled: disabled, "aria-label": this.ariaLabel, onInput: this.onInput })), h("div", { key: '7dccc69d8182c63d0c817d0cb688df17925eb40d', class: "bs-composer__controls-row" }, h("button", { key: '30a209358b6b1a2af6412cbcf83ab6088a610ac8', type: "button", part: "attach", class: "bs-composer__attach", "aria-label": "Attach", onClick: this.onAttachClick }, h(PlusIcon, { key: '37ad5b75cc1358649fe99f68a99b391a7cf9ec04' })), recording ? (h("span", { class: "bs-composer__waveform", "aria-hidden": "true" }, WAVEFORM_BAR_HEIGHTS.map(height => (h("span", { class: "bs-composer__waveform-bar", style: { '--bs-composer-bar-height': `${height}px` } }))))) : (h("span", { class: "bs-composer__spacer" })), h("button", { key: '86e9ba5f61901274c12f71cdc1c2518becf37ac5', type: "button", part: "mic", class: `bs-composer__mic ${recording ? 'bs-composer__mic--recording' : ''}`, "aria-label": recording ? 'Stop recording' : 'Start voice input', disabled: disabled, onClick: this.onMicClick }, recording ? h(StopIcon, null) : h(MicIcon, null)), h("button", { key: '13d9f765e69b896cb6697fcb74c1f99efa4fe4a0', type: "button", part: "action", class: `bs-composer__action bs-composer__action--${this.state}`, "aria-label": this.actionLabel(), disabled: disabled, onClick: this.onActionClick }, this.renderActionIcon()), h("slot", { key: '4aa85ea3ba7f515095c0a8c2091a219e13de38e3', name: "actions-end" }))));
149
+ return (h("div", { key: 'ee8e0a250798b3b5f9da6acde497779581c3b9ca', class: `bs-composer bs-composer--${this.state} bs-composer--${this.variant}` }, h("div", { key: 'fe37e3bd240379513c97022b77635121ae100826', part: "attachments", class: `bs-composer__attachments-row ${this.hasAttachments ? 'bs-composer__attachments-row--visible' : ''}` }, h("slot", { key: 'c6237cef8ebf742d6a68d513bd4366226317ec43', name: "attachments", onSlotchange: this.onAttachmentsSlotchange })), h("div", { key: 'e88d294aba83e6a4c11f35095ae4efd58aeb9586', class: "bs-composer__text-row" }, h("textarea", { key: 'c6a123b0134e74fed67ec590a7ee9c0eaa238318', ref: el => (this.inputEl = el), part: "input", class: "bs-composer__input", rows: 1, value: this.value, placeholder: placeholder, disabled: disabled, "aria-label": this.ariaLabel, onInput: this.onInput })), h("div", { key: 'aab617b78bfd3bcd33d43f08669f6f1688238388', class: "bs-composer__controls-row" }, h("button", { key: 'db8147a8841c08786c725052fdbaa366718c9a2e', type: "button", part: "attach", class: "bs-composer__attach", "aria-label": "Attach", onClick: this.onAttachClick }, h(PlusIcon, { key: 'cc13f52bfc496bd2a530012917b098fe10dff27b' })), recording ? (h("span", { class: "bs-composer__waveform", "aria-hidden": "true" }, WAVEFORM_BAR_HEIGHTS.map(height => (h("span", { class: "bs-composer__waveform-bar", style: { '--bs-composer-bar-height': `${height}px` } }))))) : (h("span", { class: "bs-composer__spacer" })), h("button", { key: '372d2751ea5dab5793314aa4469ef80ab28536a5', type: "button", part: "mic", class: `bs-composer__mic ${recording ? 'bs-composer__mic--recording' : ''}`, "aria-label": recording ? 'Stop recording' : 'Start voice input', disabled: disabled, onClick: this.onMicClick }, recording ? h(StopIcon, null) : h(MicIcon, null)), h("button", { key: '4694605f9e970097290d0eabbc1d4815c3b3bfe2', type: "button", part: "action", class: `bs-composer__action bs-composer__action--${this.state}`, "aria-label": this.actionLabel(), disabled: disabled, onClick: this.onActionClick }, this.renderActionIcon()), h("slot", { key: '71976baf242f384a2c69ef8561dda47d0a3739ae', name: "actions-end" }))));
117
150
  }
118
151
  static get delegatesFocus() { return true; }
119
152
  };
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-DP_bvuvB.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-Do3l4of3.js';
2
2
 
3
3
  const bsDataTableCss = () => `:host{display:block}.bs-data-table{width:100%;border-collapse:collapse;font-family:inherit;font-size:var(--bs-font-size-sm);color:var(--bs-text-default)}.bs-data-table__header-cell{text-align:left;padding:var(--bs-spacing-200) var(--bs-spacing-300);border-bottom:1px solid var(--bs-border-default);font-weight:var(--bs-font-weight-semibold);color:var(--bs-text-secondary);white-space:nowrap}.bs-data-table__sort-button{display:inline-flex;align-items:center;border:none;background:none;padding:0;font:inherit;color:inherit;cursor:pointer;user-select:none}.bs-data-table__sort-button:focus-visible{outline:2px solid var(--bs-border-neutral-focus);outline-offset:2px}.bs-data-table__sort-indicator{color:var(--bs-text-action)}.bs-data-table__row:hover{background:var(--bs-surface-hover)}.bs-data-table__cell{padding:var(--bs-spacing-200) var(--bs-spacing-300);border-bottom:1px solid var(--bs-border-default)}.bs-data-table__select-col{width:var(--bs-spacing-500);padding:var(--bs-spacing-200) var(--bs-spacing-300);border-bottom:1px solid var(--bs-border-default)}`;
4
4
 
@@ -41,11 +41,11 @@ const BsDataTable = class {
41
41
  this.bsRowSelect.emit({ id: row.id, selected });
42
42
  };
43
43
  render() {
44
- return (h("table", { key: 'fac4ff9ccea077cebdb9a7e80759234b08f39420', part: "table", class: "bs-data-table" }, h("thead", { key: 'ffdf80f1945ac824cabaf2c405d7f46a60bada13', part: "head" }, h("tr", { key: 'a7105ca41522ffa29234058b8a77e7ecd6c51451' }, this.selectable && h("th", { key: '7388b969f17245485f096acc8eebca17a2c1295f', class: "bs-data-table__select-col" }), this.columns.map(column => {
44
+ return (h("table", { key: 'fa798fc4873097b91f1e5527836c9607630535ad', part: "table", class: "bs-data-table" }, h("thead", { key: '4ce731b46239412e2f87167ca678c0a9376a67dd', part: "head" }, h("tr", { key: '74fd0fb91c96b62e7ea97f85fb9e215ab5883af5' }, this.selectable && h("th", { key: '595ffb64be9ddb12851acc704e503653c623a385', class: "bs-data-table__select-col" }), this.columns.map(column => {
45
45
  const isSorted = this.sortColumn === column.key;
46
46
  const ariaSort = column.sortable ? (isSorted ? (this.sortDirection === 'asc' ? 'ascending' : 'descending') : 'none') : undefined;
47
47
  return (h("th", { part: "header-cell", class: "bs-data-table__header-cell", "aria-sort": ariaSort }, column.sortable ? (h("button", { type: "button", class: "bs-data-table__sort-button", onClick: () => this.onHeaderClick(column) }, column.label, isSorted && h("span", { class: "bs-data-table__sort-indicator" }, this.sortDirection === 'asc' ? ' ▲' : ' ▼'))) : (column.label)));
48
- }))), h("tbody", { key: '47041704bc1fcde4047a2cf73f0cab402eafbc61', part: "body" }, this.rows.map(row => (h("tr", { part: "row", class: "bs-data-table__row" }, this.selectable && (h("td", { class: "bs-data-table__select-col" }, h("input", { type: "checkbox", checked: this.selectedIds.has(row.id), onChange: ev => this.onRowCheckboxChange(row, ev) }))), this.columns.map(column => this.cellRenderer ? (
48
+ }))), h("tbody", { key: '1e46254b85803cbd3925b6a4bbc9ca0205816753', part: "body" }, this.rows.map(row => (h("tr", { part: "row", class: "bs-data-table__row" }, this.selectable && (h("td", { class: "bs-data-table__select-col" }, h("input", { type: "checkbox", checked: this.selectedIds.has(row.id), onChange: ev => this.onRowCheckboxChange(row, ev) }))), this.columns.map(column => this.cellRenderer ? (
49
49
  // cellRenderer is a developer-supplied, trusted function (JS-property-only, never
50
50
  // derived from untrusted input) -- its HTML output is intentionally not escaped,
51
51
  // same trust model as React's dangerouslySetInnerHTML.
@@ -0,0 +1,108 @@
1
+ import { r as registerInstance, c as createEvent, h } from './index-Do3l4of3.js';
2
+
3
+ const bsDialogCss = () => `.bs-dialog__backdrop{position:fixed;inset:0;z-index:var(--bs-z-index-modal);display:flex;align-items:center;justify-content:center;background:rgba(0, 0, 0, 0.4)}.bs-dialog__dialog{position:relative;display:flex;flex-direction:column;max-height:calc(100vh - var(--bs-spacing-800));background:var(--bs-surface-base);color:var(--bs-text-default);border-radius:var(--bs-border-radius-200);box-shadow:var(--bs-shadow-xl);font-family:inherit}.bs-dialog__dialog--sm{width:360px}.bs-dialog__dialog--md{width:560px}.bs-dialog__dialog--lg{width:800px}.bs-dialog__header{display:flex;align-items:center;justify-content:space-between;padding:var(--bs-spacing-200) var(--bs-spacing-200) var(--bs-spacing-100)}.bs-dialog__image--visible+.bs-dialog__header,.bs-dialog__icon--visible+.bs-dialog__header{padding-top:0}.bs-dialog__heading{font-size:var(--bs-font-size-lg);font-weight:var(--bs-font-weight-semibold);color:var(--bs-text-default)}.bs-dialog__close--floating{position:absolute;top:var(--bs-spacing-200);right:var(--bs-spacing-200);z-index:1}.bs-dialog__body{padding:0 var(--bs-spacing-200) var(--bs-spacing-200);overflow-y:auto}.bs-dialog__body--centered{text-align:center}.bs-dialog__footer--visible{display:flex;justify-content:flex-end;gap:var(--bs-spacing-200);padding:0 var(--bs-spacing-200) var(--bs-spacing-200)}.bs-dialog__image--visible{overflow:hidden;border-radius:var(--bs-border-radius-200) var(--bs-border-radius-200) 0 0;margin-bottom:var(--bs-spacing-200)}.bs-dialog__image--visible ::slotted(img){display:block;width:100%;height:auto;object-fit:cover}.bs-dialog__icon--visible{display:flex;align-items:center;justify-content:center;padding:var(--bs-spacing-200) var(--bs-spacing-200) 0;margin-bottom:var(--bs-spacing-200)}.bs-dialog__icon--visible ::slotted(*){width:64px;height:64px}.bs-dialog__header--centered{justify-content:center;text-align:center}`;
4
+
5
+ const BsDialog = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ this.bsClose = createEvent(this, "bsClose");
9
+ }
10
+ /** Mutable + reflected so the component can close itself (backdrop click, Escape, close button)
11
+ * the same way a native `<dialog>` does, while still emitting `bsClose` for the consumer to react to. */
12
+ open = false;
13
+ heading;
14
+ size = 'md';
15
+ /** Switches to the Figma "Icon Centered" layout: heading/body text centered, the `icon` slot
16
+ * rendered above the heading, and the close button floating top-right of the dialog instead of
17
+ * inline in the header row. Doesn't hide a slotted `image` if one is also provided -- Figma's
18
+ * spec doesn't show the two combined, so this is unspecified rather than actively blocked.
19
+ * Reflected so consumers/CSS can target `bs-dialog[centered]`. */
20
+ centered = false;
21
+ bsClose;
22
+ /** Tracks whether the `footer` slot has assigned content, so the footer bar (border + padding)
23
+ * only renders when there's actually something to put in it. */
24
+ hasFooter = false;
25
+ /** Tracks whether the `image` slot has assigned content -- drives both whether the image wrapper
26
+ * is visible and whether the close button floats over it (see `floatingClose` in `render()`). */
27
+ hasImage = false;
28
+ /** Tracks whether the `icon` slot has assigned content, so the icon wrapper only reserves layout
29
+ * space when there's actually an icon -- same pattern as `bs-tab`'s `hasIcon`. Only relevant when
30
+ * `centered` is true, since the icon wrapper isn't rendered at all otherwise. */
31
+ hasIcon = false;
32
+ onFooterSlotchange = (ev) => {
33
+ this.hasFooter = ev.target.assignedNodes().length > 0;
34
+ };
35
+ onImageSlotchange = (ev) => {
36
+ this.hasImage = ev.target.assignedNodes().length > 0;
37
+ };
38
+ onIconSlotchange = (ev) => {
39
+ this.hasIcon = ev.target.assignedNodes().length > 0;
40
+ };
41
+ dialogRef;
42
+ previouslyFocused;
43
+ previousBodyOverflow;
44
+ wasOpen = false;
45
+ close = () => {
46
+ this.open = false;
47
+ this.bsClose.emit();
48
+ };
49
+ onKeydown(ev) {
50
+ if (this.open && ev.key === 'Escape') {
51
+ this.close();
52
+ }
53
+ }
54
+ onBackdropClick = (ev) => {
55
+ if (ev.target === ev.currentTarget) {
56
+ this.close();
57
+ }
58
+ };
59
+ // Simple focus containment: rather than manually enumerating focusable elements (which can't
60
+ // reliably walk into slotted children's own Shadow DOM anyway), redirect any focus that lands
61
+ // outside the dialog back to it. composedPath() correctly reports elements across Shadow DOM
62
+ // boundaries, unlike a plain `.contains()` check.
63
+ onFocusIn(ev) {
64
+ if (this.open && this.dialogRef && !ev.composedPath().includes(this.dialogRef)) {
65
+ this.dialogRef.focus();
66
+ }
67
+ }
68
+ componentDidRender() {
69
+ if (this.open && !this.wasOpen) {
70
+ this.previouslyFocused = document.activeElement;
71
+ this.dialogRef?.focus();
72
+ // Locks the page behind the dialog from scrolling while it's open -- a fixed-position
73
+ // backdrop/dialog doesn't block scroll on its own, since scroll input still targets whatever
74
+ // element is under the pointer/has focus, not the topmost painted layer.
75
+ this.previousBodyOverflow = document.body.style.overflow;
76
+ document.body.style.overflow = 'hidden';
77
+ }
78
+ else if (!this.open && this.wasOpen) {
79
+ this.previouslyFocused?.focus();
80
+ document.body.style.overflow = this.previousBodyOverflow ?? '';
81
+ }
82
+ this.wasOpen = this.open;
83
+ }
84
+ disconnectedCallback() {
85
+ // Covers the case where the host is removed from the DOM entirely while still open (e.g. a
86
+ // consumer conditionally rendering `<bs-dialog>` itself rather than toggling `open`) -- without
87
+ // this, the page would be left permanently unscrollable since componentDidRender's own
88
+ // open->closed transition never runs.
89
+ if (this.wasOpen) {
90
+ document.body.style.overflow = this.previousBodyOverflow ?? '';
91
+ }
92
+ }
93
+ render() {
94
+ if (!this.open) {
95
+ return null;
96
+ }
97
+ // The close button floats (absolute, over the top of the dialog) whenever there's a hero image
98
+ // to sit over, or the centered layout has no header row to put an inline close button in.
99
+ const floatingClose = this.centered || this.hasImage;
100
+ return (h("div", { part: "backdrop", class: "bs-dialog__backdrop", onClick: this.onBackdropClick }, h("div", { ref: el => (this.dialogRef = el), tabIndex: -1, part: "dialog", class: `bs-dialog__dialog bs-dialog__dialog--${this.size}`, role: "dialog", "aria-modal": "true", "aria-label": this.heading }, floatingClose && (h("bs-icon-button", { part: "close", class: "bs-dialog__close--floating", variant: "neutral", size: "md", "aria-label": "Close", onClick: this.close }, h(CloseIcon, null))), h("div", { part: "image", class: `bs-dialog__image ${this.hasImage ? 'bs-dialog__image--visible' : ''}` }, h("slot", { name: "image", onSlotchange: this.onImageSlotchange })), this.centered && (h("div", { part: "icon", class: `bs-dialog__icon ${this.hasIcon ? 'bs-dialog__icon--visible' : ''}` }, h("slot", { name: "icon", onSlotchange: this.onIconSlotchange }))), h("div", { part: "header", class: `bs-dialog__header ${this.centered ? 'bs-dialog__header--centered' : ''}` }, h("span", { class: "bs-dialog__heading" }, this.heading), !floatingClose && (h("bs-icon-button", { part: "close", variant: "subtle", size: "md", "aria-label": "Close", onClick: this.close }, h(CloseIcon, null)))), h("div", { part: "body", class: `bs-dialog__body ${this.centered ? 'bs-dialog__body--centered' : ''}` }, h("slot", null)), h("div", { part: "footer", class: `bs-dialog__footer ${this.hasFooter ? 'bs-dialog__footer--visible' : ''}` }, h("slot", { name: "footer", onSlotchange: this.onFooterSlotchange })))));
101
+ }
102
+ };
103
+ // 16x16 native viewBox, matching bs-attachment's own CloseIcon proportions (two crossing diagonal
104
+ // strokes) -- shared between both close button variants above rather than duplicated inline.
105
+ const CloseIcon = () => (h("svg", { viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" }, h("path", { d: "M12.5 3.5L3.5 12.5", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("path", { d: "M12.5 12.5L3.5 3.5", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" })));
106
+ BsDialog.style = bsDialogCss();
107
+
108
+ export { BsDialog as bs_dialog };