@brandsync/wc 0.0.11 → 0.0.12

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 (297) hide show
  1. package/custom-elements.json +3388 -598
  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-6254dcbe.entry.js → p-09aa03d1.entry.js} +1 -1
  5. package/dist/brandsync-wc/p-0eee5477.entry.js +1 -0
  6. package/dist/brandsync-wc/p-0fa017ce.entry.js +1 -0
  7. package/dist/brandsync-wc/p-12ec9e92.entry.js +1 -0
  8. package/dist/brandsync-wc/{p-4ca15322.entry.js → p-1900f6ce.entry.js} +1 -1
  9. package/dist/brandsync-wc/{p-1bf0b2d5.entry.js → p-1adc59be.entry.js} +1 -1
  10. package/dist/brandsync-wc/p-1c6fa697.entry.js +1 -0
  11. package/dist/brandsync-wc/{p-8d78171b.entry.js → p-1cf715aa.entry.js} +1 -1
  12. package/dist/brandsync-wc/{p-84ae4420.entry.js → p-20dbc6a1.entry.js} +1 -1
  13. package/dist/brandsync-wc/{p-74a4dd91.entry.js → p-23457a21.entry.js} +1 -1
  14. package/dist/brandsync-wc/p-266f5dde.entry.js +1 -0
  15. package/dist/brandsync-wc/{p-073e5fee.entry.js → p-2a65aabb.entry.js} +1 -1
  16. package/dist/brandsync-wc/{p-030a8ba7.entry.js → p-2c51d738.entry.js} +1 -1
  17. package/dist/brandsync-wc/p-3b31f7c7.entry.js +1 -0
  18. package/dist/brandsync-wc/p-46ddc8e1.entry.js +1 -0
  19. package/dist/brandsync-wc/p-56c66448.entry.js +1 -0
  20. package/dist/brandsync-wc/{p-dd224cb3.entry.js → p-57fdbb76.entry.js} +1 -1
  21. package/dist/brandsync-wc/{p-8dff4f24.entry.js → p-64e2a7d7.entry.js} +1 -1
  22. package/dist/brandsync-wc/{p-b174403d.entry.js → p-6e854e92.entry.js} +1 -1
  23. package/dist/brandsync-wc/p-72a33f88.entry.js +1 -0
  24. package/dist/brandsync-wc/p-8049f9f2.entry.js +1 -0
  25. package/dist/brandsync-wc/{p-c6d330c3.entry.js → p-88a0abee.entry.js} +1 -1
  26. package/dist/brandsync-wc/p-8b662ee3.entry.js +1 -0
  27. package/dist/brandsync-wc/{p-41edb0a2.entry.js → p-8ded1eb6.entry.js} +1 -1
  28. package/dist/brandsync-wc/{p-DP_bvuvB.js → p-DST5-cTx.js} +2 -2
  29. package/dist/brandsync-wc/p-a5b15061.entry.js +1 -0
  30. package/dist/brandsync-wc/{p-7a605d98.entry.js → p-aba300a9.entry.js} +1 -1
  31. package/dist/brandsync-wc/p-b24a980b.entry.js +1 -0
  32. package/dist/brandsync-wc/p-b289450a.entry.js +1 -0
  33. package/dist/brandsync-wc/{p-7131d0a1.entry.js → p-b8a2f882.entry.js} +1 -1
  34. package/dist/brandsync-wc/p-c320b6b4.entry.js +1 -0
  35. package/dist/brandsync-wc/{p-d1dc2ced.entry.js → p-d4e3ca77.entry.js} +1 -1
  36. package/dist/brandsync-wc/{p-0b858120.entry.js → p-dd09d335.entry.js} +1 -1
  37. package/dist/brandsync-wc/p-ef8522b5.entry.js +1 -0
  38. package/dist/brandsync-wc/p-f04db1b0.entry.js +1 -0
  39. package/dist/cjs/brandsync-wc.cjs.js +2 -2
  40. package/dist/cjs/bs-ai-disclaimer.cjs.entry.js +3 -2
  41. package/dist/cjs/bs-ai-greeting.cjs.entry.js +2 -2
  42. package/dist/cjs/bs-ai-thinking.cjs.entry.js +2 -2
  43. package/dist/cjs/bs-attachment-list.cjs.entry.js +2 -2
  44. package/dist/cjs/bs-attachment.cjs.entry.js +3 -3
  45. package/dist/cjs/bs-badge.cjs.entry.js +1 -1
  46. package/dist/cjs/bs-button-skeleton.cjs.entry.js +2 -2
  47. package/dist/cjs/bs-button.cjs.entry.js +3 -3
  48. package/dist/cjs/bs-card.cjs.entry.js +1 -1
  49. package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +2 -2
  50. package/dist/cjs/bs-chatbot-header.cjs.entry.js +2 -2
  51. package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +2 -2
  52. package/dist/cjs/bs-chatbot-sources-drawer.cjs.entry.js +2 -2
  53. package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +2 -2
  54. package/dist/cjs/bs-checkbox.cjs.entry.js +14 -3
  55. package/dist/cjs/bs-composer-status-banner.cjs.entry.js +14 -2
  56. package/dist/cjs/bs-composer.cjs.entry.js +37 -4
  57. package/dist/cjs/bs-data-table.cjs.entry.js +3 -3
  58. package/dist/cjs/bs-icon-button.cjs.entry.js +40 -0
  59. package/dist/cjs/bs-inline-tab.cjs.entry.js +69 -0
  60. package/dist/cjs/bs-input.cjs.entry.js +3 -3
  61. package/dist/cjs/bs-logo.cjs.entry.js +165 -0
  62. package/dist/cjs/bs-menu_2.cjs.entry.js +3 -3
  63. package/dist/cjs/bs-modal.cjs.entry.js +1 -1
  64. package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +104 -0
  65. package/dist/cjs/bs-navigation-drawer.cjs.entry.js +81 -0
  66. package/dist/cjs/bs-navigation-header.cjs.entry.js +44 -0
  67. package/dist/cjs/bs-radio.cjs.entry.js +49 -0
  68. package/dist/cjs/bs-slider.cjs.entry.js +191 -0
  69. package/dist/cjs/bs-source-link.cjs.entry.js +3 -3
  70. package/dist/cjs/bs-switch.cjs.entry.js +57 -0
  71. package/dist/cjs/bs-tab.cjs.entry.js +80 -0
  72. package/dist/cjs/bs-tabs.cjs.entry.js +39 -0
  73. package/dist/cjs/bs-tooltip.cjs.entry.js +2 -2
  74. package/dist/cjs/{index-CGrdFg95.js → index-B3sdhEGk.js} +1 -1
  75. package/dist/cjs/loader.cjs.js +2 -2
  76. package/dist/collection/collection-manifest.json +13 -2
  77. package/dist/collection/components/bs-ai-chatbot/bs-ai-chatbot.stories.js +26 -11
  78. package/dist/collection/components/bs-ai-disclaimer/bs-ai-disclaimer.js +2 -1
  79. package/dist/collection/components/bs-ai-greeting/bs-ai-greeting.js +1 -1
  80. package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.js +1 -1
  81. package/dist/collection/components/bs-attachment/bs-attachment.css +12 -33
  82. package/dist/collection/components/bs-attachment/bs-attachment.js +4 -10
  83. package/dist/collection/components/bs-attachment-list/bs-attachment-list.js +1 -1
  84. package/dist/collection/components/bs-button/{bs-button.cmp.test.js → bs-button/bs-button.cmp.test.js} +26 -0
  85. package/dist/collection/components/bs-button/{bs-button.css → bs-button/bs-button.css} +57 -6
  86. package/dist/collection/components/bs-button/{bs-button.js → bs-button/bs-button.js} +10 -5
  87. package/dist/collection/components/bs-button/{bs-button.stories.js → bs-button/bs-button.stories.js} +2 -27
  88. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.cmp.test.js +83 -0
  89. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.css +346 -0
  90. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.js +185 -0
  91. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.stories.js +74 -0
  92. package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +3 -3
  93. package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.js +1 -1
  94. package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.js +1 -1
  95. package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.js +1 -1
  96. package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.js +1 -1
  97. package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js +1 -1
  98. package/dist/collection/components/bs-checkbox/bs-checkbox.cmp.test.js +10 -0
  99. package/dist/collection/components/bs-checkbox/bs-checkbox.css +7 -1
  100. package/dist/collection/components/bs-checkbox/bs-checkbox.js +32 -1
  101. package/dist/collection/components/bs-composer/bs-composer.cmp.test.js +48 -7
  102. package/dist/collection/components/bs-composer/bs-composer.css +15 -0
  103. package/dist/collection/components/bs-composer/bs-composer.js +38 -4
  104. package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.cmp.test.js +47 -1
  105. package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.js +20 -1
  106. package/dist/collection/components/bs-data-table/bs-data-table.js +2 -2
  107. package/dist/collection/components/bs-input/bs-input.js +2 -2
  108. package/dist/collection/components/bs-logo/brandsync-logo-full-dark.js +44 -0
  109. package/dist/collection/components/bs-logo/brandsync-logo-full-light.js +40 -0
  110. package/dist/collection/components/bs-logo/brandsync-logo-mark.js +17 -0
  111. package/dist/collection/components/bs-logo/bs-logo.cmp.test.js +113 -0
  112. package/dist/collection/components/bs-logo/bs-logo.css +79 -0
  113. package/dist/collection/components/bs-logo/bs-logo.js +193 -0
  114. package/dist/collection/components/bs-logo/bs-logo.stories.js +69 -0
  115. package/dist/collection/components/bs-menu/bs-menu.js +1 -1
  116. package/dist/collection/components/bs-menu-item/bs-menu-item.js +1 -1
  117. package/dist/collection/components/bs-radio/bs-radio.cmp.test.js +76 -0
  118. package/dist/collection/components/bs-radio/bs-radio.css +164 -0
  119. package/dist/collection/components/bs-radio/bs-radio.js +170 -0
  120. package/dist/collection/components/bs-radio/bs-radio.stories.js +56 -0
  121. package/dist/collection/components/bs-slider/bs-slider.cmp.test.js +139 -0
  122. package/dist/collection/components/bs-slider/bs-slider.css +409 -0
  123. package/dist/collection/components/bs-slider/bs-slider.js +499 -0
  124. package/dist/collection/components/bs-slider/bs-slider.stories.js +70 -0
  125. package/dist/collection/components/bs-source-link/bs-source-link.js +2 -2
  126. package/dist/collection/components/bs-switch/bs-switch.cmp.test.js +71 -0
  127. package/dist/collection/components/bs-switch/bs-switch.css +196 -0
  128. package/dist/collection/components/bs-switch/bs-switch.js +185 -0
  129. package/dist/collection/components/bs-switch/bs-switch.stories.js +60 -0
  130. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.cmp.test.js +104 -0
  131. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.css +163 -0
  132. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.js +192 -0
  133. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.stories.js +95 -0
  134. package/dist/collection/components/bs-tab/bs-tab/bs-tab.cmp.test.js +120 -0
  135. package/dist/collection/components/bs-tab/bs-tab/bs-tab.css +216 -0
  136. package/dist/collection/components/bs-tab/bs-tab/bs-tab.js +232 -0
  137. package/dist/collection/components/bs-tab/bs-tab/bs-tab.stories.js +138 -0
  138. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.cmp.test.js +61 -0
  139. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.css +39 -0
  140. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.js +133 -0
  141. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.stories.js +39 -0
  142. package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
  143. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.cmp.test.js +131 -0
  144. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.css +257 -0
  145. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +253 -0
  146. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.stories.js +202 -0
  147. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.cmp.test.js +172 -0
  148. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.css +325 -0
  149. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.js +314 -0
  150. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.stories.js +78 -0
  151. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.cmp.test.js +77 -0
  152. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.css +106 -0
  153. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.js +188 -0
  154. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.stories.js +189 -0
  155. package/dist/components/bs-ai-disclaimer.js +1 -1
  156. package/dist/components/bs-ai-greeting.js +1 -1
  157. package/dist/components/bs-ai-thinking.js +1 -1
  158. package/dist/components/bs-attachment-list.js +1 -1
  159. package/dist/components/bs-attachment.js +1 -1
  160. package/dist/components/bs-badge.js +1 -1
  161. package/dist/components/bs-button-skeleton.js +1 -1
  162. package/dist/components/bs-button.js +1 -1
  163. package/dist/components/bs-card.js +1 -1
  164. package/dist/components/bs-chatbot-feedback.js +1 -1
  165. package/dist/components/bs-chatbot-header.js +1 -1
  166. package/dist/components/bs-chatbot-response-action.js +1 -1
  167. package/dist/components/bs-chatbot-sources-drawer.js +1 -1
  168. package/dist/components/bs-chatbot-suggestion-button.js +1 -1
  169. package/dist/components/bs-checkbox.js +1 -1
  170. package/dist/components/bs-composer-status-banner.js +1 -1
  171. package/dist/components/bs-composer.js +1 -1
  172. package/dist/components/bs-data-table.js +1 -1
  173. package/dist/components/bs-icon-button.d.ts +11 -0
  174. package/dist/components/bs-icon-button.js +1 -0
  175. package/dist/components/bs-inline-tab.d.ts +11 -0
  176. package/dist/components/bs-inline-tab.js +1 -0
  177. package/dist/components/bs-input.js +1 -1
  178. package/dist/components/bs-logo.d.ts +11 -0
  179. package/dist/components/bs-logo.js +1 -0
  180. package/dist/components/bs-menu-item.js +1 -1
  181. package/dist/components/bs-menu.js +1 -1
  182. package/dist/components/bs-modal.js +1 -1
  183. package/dist/components/bs-navigation-drawer-item.d.ts +11 -0
  184. package/dist/components/bs-navigation-drawer-item.js +1 -0
  185. package/dist/components/bs-navigation-drawer.d.ts +11 -0
  186. package/dist/components/bs-navigation-drawer.js +1 -0
  187. package/dist/components/bs-navigation-header.d.ts +11 -0
  188. package/dist/components/bs-navigation-header.js +1 -0
  189. package/dist/components/bs-radio.d.ts +11 -0
  190. package/dist/components/bs-radio.js +1 -0
  191. package/dist/components/bs-slider.d.ts +11 -0
  192. package/dist/components/bs-slider.js +1 -0
  193. package/dist/components/bs-source-link.js +1 -1
  194. package/dist/components/bs-switch.d.ts +11 -0
  195. package/dist/components/bs-switch.js +1 -0
  196. package/dist/components/bs-tab.d.ts +11 -0
  197. package/dist/components/bs-tab.js +1 -0
  198. package/dist/components/bs-tabs.d.ts +11 -0
  199. package/dist/components/bs-tabs.js +1 -0
  200. package/dist/components/bs-tooltip.js +1 -1
  201. package/dist/components/index.js +1 -1
  202. package/dist/components/p-BAOJc0V0.js +1 -0
  203. package/dist/components/{p-D1cYtKyN.js → p-Be1Pfcnm.js} +1 -1
  204. package/dist/components/{p-B9PrXIl_.js → p-BqYyMGrB.js} +1 -1
  205. package/dist/components/p-CaWqTQBZ.js +1 -0
  206. package/dist/components/{p-BUbGEXL7.js → p-DivZLd6i.js} +1 -1
  207. package/dist/components/{p-D2HDHZjz.js → p-xfx69LQx.js} +1 -1
  208. package/dist/esm/brandsync-wc.js +3 -3
  209. package/dist/esm/bs-ai-disclaimer.entry.js +3 -2
  210. package/dist/esm/bs-ai-greeting.entry.js +2 -2
  211. package/dist/esm/bs-ai-thinking.entry.js +2 -2
  212. package/dist/esm/bs-attachment-list.entry.js +2 -2
  213. package/dist/esm/bs-attachment.entry.js +3 -3
  214. package/dist/esm/bs-badge.entry.js +1 -1
  215. package/dist/esm/bs-button-skeleton.entry.js +2 -2
  216. package/dist/esm/bs-button.entry.js +3 -3
  217. package/dist/esm/bs-card.entry.js +1 -1
  218. package/dist/esm/bs-chatbot-feedback.entry.js +2 -2
  219. package/dist/esm/bs-chatbot-header.entry.js +2 -2
  220. package/dist/esm/bs-chatbot-response-action.entry.js +2 -2
  221. package/dist/esm/bs-chatbot-sources-drawer.entry.js +2 -2
  222. package/dist/esm/bs-chatbot-suggestion-button.entry.js +2 -2
  223. package/dist/esm/bs-checkbox.entry.js +14 -3
  224. package/dist/esm/bs-composer-status-banner.entry.js +14 -2
  225. package/dist/esm/bs-composer.entry.js +37 -4
  226. package/dist/esm/bs-data-table.entry.js +3 -3
  227. package/dist/esm/bs-icon-button.entry.js +38 -0
  228. package/dist/esm/bs-inline-tab.entry.js +67 -0
  229. package/dist/esm/bs-input.entry.js +3 -3
  230. package/dist/esm/bs-logo.entry.js +163 -0
  231. package/dist/esm/bs-menu_2.entry.js +3 -3
  232. package/dist/esm/bs-modal.entry.js +1 -1
  233. package/dist/esm/bs-navigation-drawer-item.entry.js +102 -0
  234. package/dist/esm/bs-navigation-drawer.entry.js +79 -0
  235. package/dist/esm/bs-navigation-header.entry.js +42 -0
  236. package/dist/esm/bs-radio.entry.js +47 -0
  237. package/dist/esm/bs-slider.entry.js +189 -0
  238. package/dist/esm/bs-source-link.entry.js +3 -3
  239. package/dist/esm/bs-switch.entry.js +55 -0
  240. package/dist/esm/bs-tab.entry.js +78 -0
  241. package/dist/esm/bs-tabs.entry.js +37 -0
  242. package/dist/esm/bs-tooltip.entry.js +2 -2
  243. package/dist/esm/{index-DP_bvuvB.js → index-DST5-cTx.js} +1 -1
  244. package/dist/esm/loader.js +3 -3
  245. package/dist/types/components/bs-attachment/bs-attachment.d.ts +3 -9
  246. package/dist/types/components/bs-button/{bs-button.d.ts → bs-button/bs-button.d.ts} +5 -0
  247. package/dist/types/components/bs-button/{bs-button.stories.d.ts → bs-button/bs-button.stories.d.ts} +0 -2
  248. package/dist/types/components/bs-button/bs-icon-button/bs-icon-button.cmp.test.d.ts +1 -0
  249. package/dist/types/components/bs-button/bs-icon-button/bs-icon-button.d.ts +51 -0
  250. package/dist/types/components/bs-button/bs-icon-button/bs-icon-button.stories.d.ts +16 -0
  251. package/dist/types/components/bs-button-skeleton/bs-button-skeleton.d.ts +1 -1
  252. package/dist/types/components/bs-button-skeleton/bs-button-skeleton.stories.d.ts +1 -1
  253. package/dist/types/components/bs-checkbox/bs-checkbox.d.ts +11 -0
  254. package/dist/types/components/bs-composer/bs-composer.d.ts +26 -2
  255. package/dist/types/components/bs-composer-status-banner/bs-composer-status-banner.d.ts +14 -0
  256. package/dist/types/components/bs-logo/brandsync-logo-full-dark.d.ts +1 -0
  257. package/dist/types/components/bs-logo/brandsync-logo-full-light.d.ts +1 -0
  258. package/dist/types/components/bs-logo/brandsync-logo-mark.d.ts +1 -0
  259. package/dist/types/components/bs-logo/bs-logo.cmp.test.d.ts +1 -0
  260. package/dist/types/components/bs-logo/bs-logo.d.ts +73 -0
  261. package/dist/types/components/bs-logo/bs-logo.stories.d.ts +17 -0
  262. package/dist/types/components/bs-radio/bs-radio.cmp.test.d.ts +1 -0
  263. package/dist/types/components/bs-radio/bs-radio.d.ts +45 -0
  264. package/dist/types/components/bs-radio/bs-radio.stories.d.ts +16 -0
  265. package/dist/types/components/bs-slider/bs-slider.cmp.test.d.ts +1 -0
  266. package/dist/types/components/bs-slider/bs-slider.d.ts +109 -0
  267. package/dist/types/components/bs-slider/bs-slider.stories.d.ts +24 -0
  268. package/dist/types/components/bs-switch/bs-switch.cmp.test.d.ts +1 -0
  269. package/dist/types/components/bs-switch/bs-switch.d.ts +45 -0
  270. package/dist/types/components/bs-switch/bs-switch.stories.d.ts +17 -0
  271. package/dist/types/components/bs-tab/bs-inline-tab/bs-inline-tab.cmp.test.d.ts +1 -0
  272. package/dist/types/components/bs-tab/bs-inline-tab/bs-inline-tab.d.ts +65 -0
  273. package/dist/types/components/bs-tab/bs-inline-tab/bs-inline-tab.stories.d.ts +22 -0
  274. package/dist/types/components/bs-tab/bs-tab/bs-tab.cmp.test.d.ts +1 -0
  275. package/dist/types/components/bs-tab/bs-tab/bs-tab.d.ts +74 -0
  276. package/dist/types/components/bs-tab/bs-tab/bs-tab.stories.d.ts +30 -0
  277. package/dist/types/components/bs-tab/bs-tabs/bs-tabs.cmp.test.d.ts +1 -0
  278. package/dist/types/components/bs-tab/bs-tabs/bs-tabs.d.ts +45 -0
  279. package/dist/types/components/bs-tab/bs-tabs/bs-tabs.stories.d.ts +13 -0
  280. package/dist/types/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.cmp.test.d.ts +1 -0
  281. package/dist/types/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.d.ts +96 -0
  282. package/dist/types/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.stories.d.ts +16 -0
  283. package/dist/types/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.cmp.test.d.ts +1 -0
  284. package/dist/types/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.d.ts +103 -0
  285. package/dist/types/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.stories.d.ts +20 -0
  286. package/dist/types/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.cmp.test.d.ts +1 -0
  287. package/dist/types/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.d.ts +60 -0
  288. package/dist/types/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.stories.d.ts +21 -0
  289. package/dist/types/components.d.ts +1842 -53
  290. package/package.json +1 -1
  291. package/dist/brandsync-wc/p-2598ca88.entry.js +0 -1
  292. package/dist/brandsync-wc/p-3c8fbaa8.entry.js +0 -1
  293. package/dist/brandsync-wc/p-3dd9b814.entry.js +0 -1
  294. package/dist/brandsync-wc/p-8c302968.entry.js +0 -1
  295. package/dist/brandsync-wc/p-93e44903.entry.js +0 -1
  296. package/dist/brandsync-wc/p-aa45d877.entry.js +0 -1
  297. /package/dist/types/components/bs-button/{bs-button.cmp.test.d.ts → bs-button/bs-button.cmp.test.d.ts} +0 -0
@@ -0,0 +1,44 @@
1
+ // BrandSync brand mark (icon + "EG BrandSync" wordmark) on a dark background, exported directly
2
+ // from Figma's "Logo" component set (node 10909:30421, Device=Desktop, Background=Dark). This is
3
+ // a genuinely separate, differently-drawn asset from brandsync-logo-full-light.ts's
4
+ // BRANDSYNC_LOGO_FULL_LIGHT_SVG -- not a currentColor swap of the same paths: every wordmark path
5
+ // is filled solid `white` instead of `#363C47`, and the icon mark's outer shape is a single solid
6
+ // white path instead of the light version's two-path white-fill-plus-subtle-border-ring. Composed
7
+ // the same way as the light asset (icon + word group, translated so the word is vertically
8
+ // centered against the 44px-tall icon) -- icon is 44px wide, and translate-y = (44 - 21.3383) / 2 =
9
+ // 11.3308, matching the light asset's own vertical-centering math exactly (word height 21.3383,
10
+ // word width 130.977 either way).
11
+ //
12
+ // The icon-to-wordmark gap was tightened from Figma's own exported spacing (a ~48px gap, i.e. the
13
+ // word group translated to x=91.868) to 16px (translate-x=60) at the user's request after seeing
14
+ // it rendered -- the original gap read as too much empty space between the mark and the text. Not
15
+ // a Figma re-measurement -- a deliberate deviation, matching the same change made to the light
16
+ // asset. Total width is 190.0 -- 0.977px narrower than the light asset's 190.977 despite an
17
+ // identical translate-x, since the two assets' word-group bounding boxes already differed by that
18
+ // same amount before this change (a pre-existing Figma export discrepancy, not something this
19
+ // change touches).
20
+ export const BRANDSYNC_LOGO_FULL_DARK_SVG = `<svg width="190.0" height="44" viewBox="0 0 190.0 44" fill="none" xmlns="http://www.w3.org/2000/svg">
21
+ <g id="Group">
22
+ <path id="Vector" d="M35.2 44H8.8C3.93938 44 0 40.0606 0 35.2V8.8C0 3.93938 3.93938 0 8.8 0H35.2C40.0606 0 44 3.93938 44 8.8V35.2C44 40.0606 40.0606 44 35.2 44Z" fill="white"/>
23
+ <path id="Vector_2" d="M18.6038 21.5067L21.5067 18.6038C21.7748 18.3356 22.2097 18.3356 22.4795 18.6038L25.3963 21.5205C25.6644 21.7886 25.6644 22.2252 25.3963 22.4933L22.4933 25.3962C22.2252 25.6644 21.7886 25.6644 21.5205 25.3962L18.6038 22.4795C18.3356 22.2114 18.3356 21.7748 18.6038 21.5067Z" fill="#57B1FF"/>
24
+ <path id="Vector_3" d="M15.6423 12.6586L6.7925 21.5084C6.52438 21.7766 6.52438 22.2114 6.7925 22.4813L9.82782 25.5166C10.0959 25.7847 10.5308 25.7847 10.8006 25.5166L19.6505 16.6667C19.9186 16.3986 19.9186 15.962 19.6505 15.6939L16.6152 12.6586C16.347 12.3905 15.9105 12.3905 15.6423 12.6586Z" fill="#57B1FF"/>
25
+ <path id="Vector_4" d="M28.3559 31.3414L37.2161 22.4813C37.4842 22.2131 37.4842 21.7766 37.2161 21.5084L34.1808 18.4731C33.9127 18.205 33.4778 18.205 33.208 18.4731L24.3478 27.3333C24.0797 27.6014 24.0797 28.038 24.3478 28.3061L27.3831 31.3414C27.6513 31.6095 28.0878 31.6095 28.3559 31.3414Z" fill="#57B1FF"/>
26
+ <path id="Vector_5" d="M28.3577 12.6586L37.2075 21.5084C37.4756 21.7766 37.4756 22.2114 37.2075 22.4813L34.1722 25.5166C33.9041 25.7847 33.4692 25.7847 33.1994 25.5166L24.3495 16.6667C24.0814 16.3986 24.0814 15.962 24.3495 15.6939L27.3848 12.6586C27.653 12.3905 28.0895 12.3905 28.3577 12.6586Z" fill="#1B85FF"/>
27
+ <path id="Vector_6" d="M15.6441 31.3414L6.78391 22.4813C6.51578 22.2131 6.51578 21.7766 6.78391 21.5084L9.81922 18.4731C10.0873 18.205 10.5222 18.205 10.792 18.4731L19.6522 27.3333C19.9203 27.6014 19.9203 28.038 19.6522 28.3061L16.6169 31.3414C16.3488 31.6095 15.9122 31.6095 15.6441 31.3414Z" fill="#1B85FF"/>
28
+ </g>
29
+ <g transform="translate(60, 11.3308)">
30
+ <g id="Group">
31
+ <path id="Vector" d="M58.4306 4.455C57.2773 4.455 56.1223 4.55125 55.0017 4.74203C54.5222 4.81078 54.4225 5.08063 54.4225 5.29547V6.06547C54.4225 6.24766 54.4912 6.55531 54.9553 6.55531H55.0773C56.3286 6.43672 57.4252 6.38 58.4306 6.38C59.2591 6.38 59.84 6.55016 60.1562 6.88703C60.4811 7.2325 60.6461 7.85297 60.6461 8.72781V9.47031H59.1559C57.2223 9.47031 55.8199 9.76766 54.9863 10.3538C54.1441 10.945 53.7178 11.8938 53.7178 13.1708V13.4355C53.7178 14.1384 53.8141 14.7159 54.0134 15.2023C54.218 15.7008 54.4981 16.0789 54.8728 16.3608C55.2802 16.6667 55.6411 16.8506 56.0416 16.9555C56.497 17.0758 56.968 17.1359 57.4406 17.1359C58.4547 17.1359 59.5203 16.8163 60.6908 16.158V16.4038C60.6908 16.5653 60.7441 16.6891 60.8627 16.8094C60.9812 16.928 61.1067 16.9813 61.2683 16.9813H62.2806C62.4422 16.9813 62.5659 16.928 62.6863 16.8094C62.8048 16.6908 62.8581 16.5653 62.8581 16.4038V8.72781C62.8581 7.35625 62.4972 6.28719 61.7856 5.55328C61.0706 4.81422 59.9723 4.455 58.4323 4.455M55.9281 13.1484C55.9281 12.4094 56.1498 11.8714 56.5709 11.5913C56.8872 11.3816 57.5902 11.1306 59.1559 11.1306H60.6461V14.453C59.6458 14.9927 58.6695 15.2763 57.8136 15.2763C57.1777 15.2763 56.6964 15.1388 56.3853 14.8706C56.0862 14.6111 55.9264 14.1058 55.9264 13.4131V13.1484H55.9281Z" fill="white"/>
32
+ <path id="Vector_2" d="M52.0747 4.455C51.0555 4.455 50.0827 4.76094 49.1116 5.39V5.18547C49.1116 5.02391 49.0583 4.90016 48.9397 4.77984C48.8314 4.67156 48.7334 4.60797 48.5564 4.60797H47.5234C47.3619 4.60797 47.2381 4.66125 47.1178 4.77984C46.9855 4.91219 46.9683 5.05313 46.9683 5.18547V16.4038C46.9683 16.5653 47.0216 16.6891 47.1402 16.8094C47.257 16.9263 47.3791 16.9813 47.5234 16.9813H48.6011C48.7627 16.9813 48.8864 16.928 49.0067 16.8094C49.1184 16.6994 49.1786 16.555 49.1786 16.4038V7.26688C50.1634 6.69281 51.138 6.40234 52.0764 6.40234C52.6178 6.40234 52.6763 6.04484 52.6763 5.89016V4.98781C52.6763 4.64922 52.458 4.455 52.0764 4.455" fill="white"/>
33
+ <path id="Vector_3" d="M42.6456 8.39266C43.2644 8.10219 43.7525 7.69484 44.1306 7.15688C44.5552 6.55188 44.7717 5.80766 44.7717 4.94484V4.5925C44.7717 1.68438 42.5563 0.209689 38.1889 0.209689C36.8913 0.209689 35.7088 0.269845 34.6792 0.38672C34.1378 0.438282 33.8508 0.766563 33.8508 1.33719V15.9861C33.8508 16.2886 33.9298 16.5395 34.0673 16.677C34.1963 16.8059 34.3888 16.885 34.693 16.9348C35.5438 17.0689 36.7245 17.1342 38.2989 17.1342C42.6525 17.1342 44.8594 15.5186 44.8594 12.3338V11.9591C44.8594 11.0911 44.6291 10.3177 44.1753 9.65938C43.7783 9.0836 43.2764 8.66594 42.6456 8.39094M36.1505 15.082V9.30531H39.4006C40.0331 9.30531 40.5591 9.3775 40.9613 9.51672C41.372 9.6611 41.7106 9.86906 41.9392 10.1183C42.1558 10.3555 42.3294 10.6425 42.4394 10.9519C42.5374 11.2269 42.5855 11.5569 42.5855 11.9608V12.3355C42.5855 12.8683 42.4875 13.3358 42.2916 13.7259C42.1094 14.0886 41.8258 14.3808 41.4459 14.5905C41.0678 14.8002 40.6244 14.9497 40.1259 15.0373C39.6292 15.1233 39.0156 15.168 38.3024 15.168C38.0841 15.168 37.7919 15.1559 37.4206 15.1388L37.0752 15.1233C36.8723 15.1147 36.6953 15.1061 36.5458 15.0992C36.3859 15.0923 36.2536 15.0855 36.1522 15.082M42.4961 4.94484C42.4961 6.61375 41.4837 7.425 39.4006 7.425H36.1505V2.23953C37.2952 2.19828 37.9809 2.17766 38.1906 2.17766C38.763 2.17766 39.2614 2.2 39.6722 2.24297C40.1414 2.29281 40.5367 2.36328 40.8822 2.45953C41.2517 2.56266 41.5456 2.70531 41.7777 2.89609C42.0372 3.10922 42.2022 3.31547 42.3105 3.56984C42.4359 3.86375 42.4978 4.19719 42.4978 4.59422V4.94656L42.4961 4.94484Z" fill="white"/>
34
+ <path id="Vector_4" d="M116.841 4.455C116.21 4.455 115.605 4.5375 115.043 4.7025C114.587 4.83484 114.087 5.04969 113.48 5.37281V5.18547C113.48 5.00328 113.412 4.88641 113.343 4.79531C113.252 4.675 113.104 4.60797 112.925 4.60797H111.825C111.664 4.60797 111.54 4.66125 111.42 4.77984C111.287 4.91219 111.27 5.05313 111.27 5.18547V16.4037C111.27 16.5653 111.323 16.6891 111.442 16.8094C111.559 16.9263 111.681 16.9813 111.825 16.9813H112.903C113.065 16.9813 113.188 16.928 113.309 16.8094C113.42 16.6977 113.48 16.555 113.48 16.4037V7.20672C114.568 6.67219 115.521 6.40063 116.313 6.40063C117.105 6.40063 117.707 6.6 118.057 6.99188C118.408 7.38375 118.594 8.13656 118.594 9.16609V16.402C118.594 16.5636 118.647 16.6873 118.766 16.8077C118.884 16.9263 119.01 16.9795 119.171 16.9795H120.227C120.388 16.9795 120.512 16.9263 120.632 16.8077C120.751 16.6891 120.804 16.5636 120.804 16.402V9.16609C120.804 6.03969 119.47 4.45328 116.839 4.45328" fill="white"/>
35
+ <path id="Vector_5" d="M109.022 4.60969H107.79C107.68 4.60969 107.566 4.65438 107.443 4.74719C107.331 4.83141 107.269 4.9225 107.238 5.04109L104.583 14.9909H104.337C104.271 14.9909 104.225 14.9755 104.192 14.9428C104.172 14.9222 104.103 14.8397 104.051 14.6077L101.456 5.06516C101.427 4.94656 101.367 4.83828 101.288 4.75922C101.191 4.66297 101.069 4.60969 100.949 4.60969H99.7391C99.4056 4.60969 99.2063 4.80047 99.2063 5.12188C99.2063 5.21125 99.2063 5.28172 99.2406 5.33672L102.159 15.3622C102.248 15.6939 102.36 15.9723 102.505 16.2113C102.652 16.457 102.773 16.6203 102.95 16.7217L103.022 16.7647C103.153 16.842 103.278 16.9142 103.412 16.9366C103.538 16.9572 103.727 16.983 103.919 16.983H104.051L103.873 17.7152C103.703 18.437 103.476 18.9148 103.195 19.1348C102.905 19.3634 102.444 19.4786 101.829 19.4786C101.503 19.4786 100.83 19.4339 99.8834 19.348H99.8044C99.3455 19.348 99.2492 19.6144 99.2492 19.8361V20.6508C99.2492 20.7608 99.3042 21.0272 99.8198 21.1372C100.42 21.2713 101.052 21.3383 101.697 21.3383C102.57 21.3383 103.276 21.2231 103.797 20.9963C104.313 20.7728 104.732 20.4153 105.045 19.9341C105.337 19.4855 105.609 18.8289 105.853 17.9833L109.476 5.33672C109.51 5.28 109.51 5.21125 109.51 5.12188C109.51 5.02219 109.496 4.87609 109.381 4.76094C109.283 4.66297 109.158 4.61141 109.02 4.61141" fill="white"/>
36
+ <path id="Vector_6" d="M127.652 6.42297C128.631 6.42297 129.518 6.47281 130.362 6.57594H130.467C130.567 6.57594 130.713 6.56391 130.828 6.44875C130.902 6.37484 130.977 6.27688 130.977 6.11016V5.31781C130.977 5.1786 130.962 5.005 130.848 4.88984C130.776 4.81766 130.642 4.72484 130.422 4.69734C129.451 4.53578 128.52 4.45328 127.65 4.45328C126.125 4.45328 124.929 4.95859 124.092 5.95375C123.241 6.96438 122.829 8.26719 122.829 9.9361V11.6514C122.829 13.3186 123.243 14.6214 124.092 15.6338C124.929 16.6289 126.127 17.1342 127.65 17.1342C128.554 17.1342 129.461 17.0552 130.417 16.8919C130.642 16.8644 130.776 16.7716 130.848 16.6994C130.962 16.5859 130.977 16.4106 130.977 16.2714V15.4791C130.977 15.3123 130.902 15.2144 130.828 15.1405C130.713 15.0253 130.567 15.0116 130.467 15.0116H130.364C129.456 15.1147 128.569 15.1663 127.652 15.1663C125.893 15.1663 125.039 14.0164 125.039 11.6531V9.93781C125.039 7.57281 125.893 6.42469 127.652 6.42469" fill="white"/>
37
+ <path id="Vector_7" d="M85.8808 0.165001H84.7584C84.5969 0.165001 84.4731 0.218282 84.3528 0.336876C84.2205 0.46922 84.2033 0.605001 84.2033 0.720158V4.6475C83.4213 4.51688 82.6237 4.45328 81.7678 4.45328C80.1573 4.45328 78.9164 4.93453 78.0794 5.885C77.2544 6.82172 76.835 8.20016 76.835 9.97906V11.562C76.835 13.2739 77.2458 14.642 78.0536 15.6303C78.8683 16.6272 80.1178 17.1325 81.7678 17.1325C83.1995 17.1325 84.5694 17.0053 85.8327 16.7578C85.9805 16.7389 86.1884 16.6977 86.3002 16.5498C86.3809 16.4416 86.4153 16.3127 86.4153 16.115V0.718439C86.4153 0.586095 86.3964 0.445157 86.2658 0.312814C86.1334 0.18047 85.9977 0.163282 85.8825 0.163282M84.2033 6.55531V15.0459C83.2047 15.125 82.3642 15.168 81.7678 15.168C80.7641 15.168 80.0748 14.8844 79.6589 14.3017C79.2464 13.7242 79.047 12.8305 79.047 11.5655V9.9825C79.047 8.78625 79.2602 7.88047 79.6813 7.29094C80.0972 6.70828 80.7812 6.42469 81.7695 6.42469C82.8902 6.42469 83.6705 6.46594 84.205 6.55703" fill="white"/>
38
+ <path id="Vector_8" d="M95.028 7.99391L93.005 6.78391C92.1216 6.25453 91.5028 5.8025 91.1642 5.44328C90.8394 5.09781 90.6744 4.69219 90.6744 4.24016C90.6744 3.51656 90.8978 3.02156 91.3584 2.72766C91.8174 2.43547 92.6286 2.28766 93.7698 2.28766C95.0022 2.28766 96.238 2.33063 97.5528 2.42H97.5975C97.735 2.42 97.8605 2.36844 97.9584 2.27047C98.0323 2.19656 98.108 2.09688 98.108 1.93188V0.986563C98.108 0.720157 97.9309 0.534532 97.6164 0.476094C96.4494 0.299063 95.1552 0.211407 93.7681 0.211407C92.0494 0.211407 90.7053 0.544845 89.7738 1.20485C88.8319 1.87172 88.3747 2.86516 88.3747 4.24188C88.3747 5.12016 88.6291 5.88844 89.1292 6.52609C89.6466 7.18438 90.4578 7.85813 91.4753 8.47172L93.6083 9.76938C94.6086 10.3864 95.303 10.8969 95.6708 11.287C96.0111 11.6463 96.183 12.0897 96.183 12.6002C96.183 13.3822 95.9406 14.0164 95.48 14.4341C95.0245 14.8483 94.1823 15.058 92.9775 15.058C91.5802 15.058 90.3633 15.0133 89.3595 14.9256H89.2822C89.1825 14.9256 89.0364 14.9377 88.9212 15.0528C88.8233 15.1508 88.7717 15.2762 88.7717 15.4137V16.2937C88.7717 16.4777 88.8078 16.6066 88.8783 16.677C88.9728 16.7716 89.1894 16.8111 89.3063 16.8266C90.6709 17.0345 91.8723 17.1359 92.9775 17.1359C93.8283 17.1359 94.588 17.0448 95.2359 16.8678C95.9234 16.677 96.4494 16.4484 96.8413 16.1648C97.2606 15.8623 97.5786 15.5375 97.8433 15.1405C98.1148 14.7331 98.3005 14.3172 98.3916 13.9064C98.4981 13.4234 98.548 13.0092 98.548 12.6002C98.548 11.6669 98.2799 10.847 97.7488 10.163C97.2039 9.45828 96.3119 8.75016 95.028 7.99562" fill="white"/>
39
+ <path id="Vector_9" d="M70.8469 4.455C70.2161 4.455 69.6111 4.5375 69.0491 4.7025C68.5936 4.83484 68.0934 5.04969 67.4867 5.37281V5.18547C67.4867 5.00328 67.418 4.88641 67.3492 4.79531C67.2581 4.675 67.1103 4.60797 66.9316 4.60797H65.8316C65.67 4.60797 65.5463 4.66125 65.4259 4.77984C65.2936 4.91219 65.2764 5.05313 65.2764 5.18547V16.4037C65.2764 16.5653 65.3297 16.6891 65.4483 16.8094C65.5652 16.9263 65.6872 16.9813 65.8316 16.9813H66.9092C67.0708 16.9813 67.1945 16.928 67.3148 16.8094C67.4266 16.6994 67.4867 16.555 67.4867 16.4037V7.20672C68.5747 6.67219 69.5269 6.40063 70.3192 6.40063C71.1116 6.40063 71.7131 6.6 72.0638 6.99188C72.4144 7.38375 72.6 8.13656 72.6 9.16609V16.402C72.6 16.5636 72.6533 16.6873 72.7719 16.8077C72.8905 16.928 73.0159 16.9795 73.1775 16.9795H74.2328C74.3944 16.9795 74.5181 16.9263 74.6384 16.8077C74.757 16.6891 74.8103 16.5636 74.8103 16.402V9.16609C74.8103 6.03969 73.4766 4.45328 70.8452 4.45328" fill="white"/>
40
+ <path id="Vector_10" d="M4.96032 17.2288C3.33438 17.2288 2.09172 16.8816 1.265 16.1975C0.426254 15.5014 9.53674e-07 14.3791 9.53674e-07 12.8631V4.39484C9.53674e-07 2.87719 0.426254 1.75484 1.265 1.06047C2.09 0.376407 3.33438 0.0292195 4.96032 0.0292195C8.84813 0.0292195 10.132 0.0687515 11.1117 0.161564C11.3231 0.16672 11.4366 0.336876 11.4744 0.393595C11.5483 0.505314 11.5861 0.623908 11.5861 0.74422V1.84422C11.5861 2.0075 11.5363 2.13985 11.44 2.2361C11.3472 2.32891 11.2114 2.38219 11.0705 2.38219H4.98266C4.27625 2.38219 3.72625 2.45781 3.34469 2.60563C3.01297 2.73453 2.805 2.90984 2.70532 3.14016C2.60047 3.38422 2.55063 3.78469 2.55063 4.39484V7.1775H10.6373C10.835 7.1775 10.9948 7.24453 11.1392 7.39063C11.2836 7.535 11.3523 7.69484 11.3523 7.8925V8.72781C11.3523 8.92547 11.2853 9.08531 11.1392 9.22969C10.9948 9.37406 10.835 9.44281 10.6373 9.44281H2.55063V12.8631C2.55063 13.475 2.59875 13.8737 2.70532 14.1178C2.80329 14.3481 3.01297 14.5234 3.34469 14.6523C3.70907 14.7933 4.10438 14.8758 5.36938 14.8758H11.0705C11.2131 14.8758 11.3489 14.9291 11.4417 15.0219C11.538 15.1181 11.5878 15.2505 11.5878 15.4138V16.5361C11.5878 16.6564 11.55 16.775 11.4761 16.8867C11.4383 16.9434 11.3248 17.1136 11.1048 17.1188C10.3469 17.1892 8.81719 17.2288 6.80454 17.2288H4.96204H4.96032Z" fill="white"/>
41
+ <path id="Vector_11" d="M26.8623 8.94094V16.1906C26.8623 16.6547 26.6114 16.7406 26.5048 16.7716C26.4498 16.7888 24.2086 17.2838 20.5717 17.2838C16.2456 17.2838 12.9095 14.8139 12.9095 10.3813C12.9095 9.96875 12.9044 9.8175 12.9044 7.08125C12.9044 1.32859 17.3542 1.07288e-06 20.8209 1.07288e-06C23.9456 1.07288e-06 25.0491 0.266407 26.2281 0.445157C26.3398 0.462344 26.4413 0.495001 26.5255 0.541408C26.5891 0.575783 26.6441 0.618751 26.6905 0.666876C26.785 0.766563 26.84 0.897189 26.84 1.05016V2.15531C26.84 2.25844 26.8073 2.57125 26.4327 2.64C26.3863 2.64859 26.333 2.65375 26.2745 2.65375C26.2745 2.65375 26.1834 2.65375 26.1577 2.65031C25.9428 2.63141 23.6569 2.36844 21.0203 2.36844C17.3663 2.36844 15.467 3.92734 15.467 7.23594V10.1372C15.467 13.5541 17.7255 14.9428 20.6903 14.9428C23.0244 14.9428 24.2963 14.7177 24.2963 14.7177V10.5016H22.715C22.3953 10.5016 22.0017 10.2678 22.0017 9.8725C22.0017 9.47719 21.9966 9.45828 21.9966 8.94266C21.9966 8.42703 22.4056 8.22422 22.715 8.22422H26.1645C26.5822 8.22422 26.8606 8.57485 26.8606 8.94266" fill="white"/>
42
+ </g>
43
+ </g>
44
+ </svg>`;
@@ -0,0 +1,40 @@
1
+ // BrandSync brand mark (icon + "EG BrandSync" wordmark) on a light background, exported directly
2
+ // from Figma's "Logo" component set (node 10909:30421, Device=Desktop, Background=Light) and
3
+ // inlined as a self-contained SVG string -- same pattern as bs-chatbot-header's GENIE_LOGO_SVG.
4
+ // The mark and wordmark were exported as two separate flat SVGs (Figma's own source splits them
5
+ // into several layered clip-path/mask groups that don't matter once flattened) and composited
6
+ // here into one <svg>, since combining them in markup avoids a second HTTP request and keeps the
7
+ // logo a single atomic asset.
8
+ //
9
+ // The icon-to-wordmark gap was tightened from Figma's own exported spacing (a ~48px gap, i.e. the
10
+ // word group translated to x=92.015 against a 44px-wide icon) to 16px (translate-x=60) at the
11
+ // user's request after seeing it rendered -- the original gap read as too much empty space
12
+ // between the mark and the text. Not a Figma re-measurement -- a deliberate deviation. Word group
13
+ // itself (130.977 wide, vertically centered at translate-y=11.3308 against the 44px-tall icon) is
14
+ // unchanged, so the total width is just 60 + 130.977 = 190.977.
15
+ export const BRANDSYNC_LOGO_FULL_LIGHT_SVG = `<svg width="190.977" height="44" viewBox="0 0 190.977 44" fill="none" xmlns="http://www.w3.org/2000/svg">
16
+ <g id="Group">
17
+ <path id="Vector" d="M35.2 0.128906H8.8C4.01109 0.128906 0.128905 4.01109 0.128905 8.8V35.2C0.128905 39.9889 4.01109 43.8711 8.8 43.8711H35.2C39.9889 43.8711 43.8711 39.9889 43.8711 35.2V8.8C43.8711 4.01109 39.9889 0.128906 35.2 0.128906Z" fill="white"/>
18
+ <path id="Vector_2" d="M35.2 0.257812C39.9094 0.257812 43.7422 4.08891 43.7422 8.8V35.2C43.7422 39.9094 39.9111 43.7422 35.2 43.7422H8.8C4.09063 43.7422 0.257812 39.9111 0.257812 35.2V8.8C0.257812 4.08891 4.08891 0.257812 8.8 0.257812H35.2ZM35.2 0H8.8C3.93938 0 0 3.93938 0 8.8V35.2C0 40.0606 3.93938 44 8.8 44H35.2C40.0606 44 44 40.0606 44 35.2V8.8C44 3.93938 40.0606 0 35.2 0Z" fill="#E8EAEE"/>
19
+ <path id="Vector_3" d="M18.6038 21.5067L21.5067 18.6038C21.7748 18.3356 22.2097 18.3356 22.4795 18.6038L25.3962 21.5205C25.6644 21.7886 25.6644 22.2252 25.3962 22.4933L22.4933 25.3962C22.2252 25.6644 21.7886 25.6644 21.5205 25.3962L18.6038 22.4795C18.3356 22.2114 18.3356 21.7748 18.6038 21.5067Z" fill="#57B1FF"/>
20
+ <path id="Vector_4" d="M15.6423 12.6586L6.7925 21.5084C6.52438 21.7766 6.52438 22.2114 6.7925 22.4813L9.82781 25.5166C10.0959 25.7847 10.5308 25.7847 10.8006 25.5166L19.6505 16.6667C19.9186 16.3986 19.9186 15.962 19.6505 15.6939L16.6152 12.6586C16.347 12.3905 15.9105 12.3905 15.6423 12.6586Z" fill="#57B1FF"/>
21
+ <path id="Vector_5" d="M28.3559 31.3414L37.2161 22.4813C37.4842 22.2131 37.4842 21.7766 37.2161 21.5084L34.1808 18.4731C33.9127 18.205 33.4778 18.205 33.208 18.4731L24.3478 27.3333C24.0797 27.6014 24.0797 28.038 24.3478 28.3061L27.3831 31.3414C27.6512 31.6095 28.0878 31.6095 28.3559 31.3414Z" fill="#57B1FF"/>
22
+ <path id="Vector_6" d="M28.3577 12.6586L37.2075 21.5084C37.4756 21.7766 37.4756 22.2114 37.2075 22.4813L34.1722 25.5166C33.9041 25.7847 33.4692 25.7847 33.1994 25.5166L24.3495 16.6667C24.0814 16.3986 24.0814 15.962 24.3495 15.6939L27.3848 12.6586C27.653 12.3905 28.0895 12.3905 28.3577 12.6586Z" fill="#1B85FF"/>
23
+ <path id="Vector_7" d="M15.6441 31.3414L6.7839 22.4813C6.51578 22.2131 6.51578 21.7766 6.7839 21.5084L9.81922 18.4731C10.0873 18.205 10.5222 18.205 10.792 18.4731L19.6522 27.3333C19.9203 27.6014 19.9203 28.038 19.6522 28.3061L16.6169 31.3414C16.3487 31.6095 15.9122 31.6095 15.6441 31.3414Z" fill="#1B85FF"/>
24
+ </g>
25
+ <g transform="translate(60, 11.3308)">
26
+ <g id="Group">
27
+ <path id="Vector" d="M116.841 4.455C116.21 4.455 115.605 4.5375 115.043 4.7025C114.587 4.83485 114.087 5.04969 113.48 5.37282V5.18547C113.48 5.00328 113.412 4.88641 113.343 4.79532C113.252 4.675 113.104 4.60797 112.925 4.60797H111.825C111.664 4.60797 111.54 4.66125 111.42 4.77985C111.287 4.91219 111.27 5.05313 111.27 5.18547V16.4038C111.27 16.5653 111.323 16.6891 111.442 16.8094C111.559 16.9263 111.681 16.9813 111.825 16.9813H112.903C113.065 16.9813 113.188 16.928 113.309 16.8094C113.42 16.6977 113.48 16.555 113.48 16.4038V7.20672C114.568 6.67219 115.521 6.40063 116.313 6.40063C117.105 6.40063 117.707 6.6 118.057 6.99188C118.408 7.38375 118.594 8.13656 118.594 9.1661V16.402C118.594 16.5636 118.647 16.6873 118.766 16.8077C118.884 16.9263 119.01 16.9795 119.171 16.9795H120.227C120.388 16.9795 120.512 16.9263 120.632 16.8077C120.751 16.6891 120.804 16.5636 120.804 16.402V9.1661C120.804 6.03969 119.47 4.45328 116.839 4.45328" fill="#363C47"/>
28
+ <path id="Vector_2" d="M52.0747 4.455C51.0555 4.455 50.0827 4.76094 49.1116 5.39V5.18547C49.1116 5.02391 49.0583 4.90016 48.9397 4.77985C48.8314 4.67156 48.7334 4.60797 48.5564 4.60797H47.5234C47.3619 4.60797 47.2381 4.66125 47.1178 4.77985C46.9855 4.91219 46.9683 5.05313 46.9683 5.18547V16.4038C46.9683 16.5653 47.0216 16.6891 47.1402 16.8094C47.257 16.9263 47.3791 16.9813 47.5234 16.9813H48.6011C48.7627 16.9813 48.8864 16.928 49.0067 16.8094C49.1184 16.6994 49.1786 16.555 49.1786 16.4038V7.26688C50.1634 6.69281 51.138 6.40235 52.0764 6.40235C52.6178 6.40235 52.6763 6.04485 52.6763 5.89016V4.98781C52.6763 4.64922 52.458 4.455 52.0764 4.455" fill="#363C47"/>
29
+ <path id="Vector_3" d="M42.6456 8.39266C43.2644 8.10219 43.7525 7.69485 44.1306 7.15688C44.5552 6.55188 44.7717 5.80766 44.7717 4.94485V4.5925C44.7717 1.68438 42.5563 0.20969 38.1889 0.20969C36.8913 0.20969 35.7088 0.269846 34.6792 0.386721C34.1378 0.438284 33.8508 0.766565 33.8508 1.33719V15.9861C33.8508 16.2886 33.9298 16.5395 34.0673 16.677C34.1963 16.8059 34.3888 16.885 34.693 16.9348C35.5438 17.0689 36.7245 17.1342 38.2989 17.1342C42.6525 17.1342 44.8594 15.5186 44.8594 12.3338V11.9591C44.8594 11.0911 44.6291 10.3177 44.1753 9.65938C43.7783 9.0836 43.2764 8.66594 42.6456 8.39094M36.1505 15.082V9.30531H39.4006C40.0331 9.30531 40.5591 9.3775 40.9613 9.51672C41.372 9.6611 41.7106 9.86907 41.9392 10.1183C42.1558 10.3555 42.3294 10.6425 42.4394 10.9519C42.5374 11.2269 42.5855 11.5569 42.5855 11.9608V12.3355C42.5855 12.8683 42.4875 13.3358 42.2916 13.7259C42.1094 14.0886 41.8258 14.3808 41.4459 14.5905C41.0678 14.8002 40.6244 14.9497 40.1259 15.0373C39.6292 15.1233 39.0156 15.168 38.3024 15.168C38.0841 15.168 37.7919 15.1559 37.4206 15.1388L37.0752 15.1233C36.8723 15.1147 36.6953 15.1061 36.5458 15.0992C36.3859 15.0923 36.2536 15.0855 36.1522 15.082M42.4961 4.94485C42.4961 6.61375 41.4837 7.425 39.4006 7.425H36.1505V2.23953C37.2952 2.19828 37.9809 2.17766 38.1906 2.17766C38.763 2.17766 39.2614 2.2 39.6722 2.24297C40.1414 2.29281 40.5367 2.36328 40.8822 2.45953C41.2517 2.56266 41.5456 2.70531 41.7777 2.8961C42.0372 3.10922 42.2022 3.31547 42.3105 3.56985C42.4359 3.86375 42.4978 4.19719 42.4978 4.59422V4.94656L42.4961 4.94485Z" fill="#363C47"/>
30
+ <path id="Vector_4" d="M127.652 6.42297C128.631 6.42297 129.518 6.47282 130.362 6.57594H130.467C130.567 6.57594 130.713 6.56391 130.828 6.44875C130.902 6.37485 130.977 6.27688 130.977 6.11016V5.31782C130.977 5.1786 130.962 5.005 130.848 4.88985C130.776 4.81766 130.642 4.72485 130.422 4.69735C129.451 4.53578 128.52 4.45328 127.65 4.45328C126.125 4.45328 124.929 4.9586 124.092 5.95375C123.241 6.96438 122.829 8.26719 122.829 9.9361V11.6514C122.829 13.3186 123.243 14.6214 124.092 15.6338C124.929 16.6289 126.127 17.1342 127.65 17.1342C128.554 17.1342 129.461 17.0552 130.417 16.8919C130.642 16.8644 130.776 16.7716 130.848 16.6994C130.962 16.5859 130.977 16.4106 130.977 16.2714V15.4791C130.977 15.3123 130.902 15.2144 130.828 15.1405C130.713 15.0253 130.567 15.0116 130.467 15.0116H130.364C129.456 15.1147 128.569 15.1663 127.652 15.1663C125.893 15.1663 125.039 14.0164 125.039 11.6531V9.93781C125.039 7.57281 125.893 6.42469 127.652 6.42469" fill="#363C47"/>
31
+ <path id="Vector_5" d="M58.4306 4.455C57.2773 4.455 56.1223 4.55125 55.0017 4.74203C54.5222 4.81078 54.4225 5.08063 54.4225 5.29547V6.06547C54.4225 6.24766 54.4912 6.55532 54.9553 6.55532H55.0773C56.3286 6.43672 57.4252 6.38 58.4306 6.38C59.2591 6.38 59.84 6.55016 60.1562 6.88703C60.4811 7.2325 60.6461 7.85297 60.6461 8.72782V9.47031H59.1559C57.2223 9.47031 55.8199 9.76766 54.9863 10.3538C54.1441 10.945 53.7178 11.8938 53.7178 13.1708V13.4355C53.7178 14.1384 53.8141 14.7159 54.0134 15.2023C54.218 15.7008 54.4981 16.0789 54.8728 16.3608C55.2802 16.6667 55.6411 16.8506 56.0416 16.9555C56.497 17.0758 56.968 17.1359 57.4406 17.1359C58.4547 17.1359 59.5203 16.8163 60.6908 16.158V16.4038C60.6908 16.5653 60.7441 16.6891 60.8627 16.8094C60.9812 16.928 61.1067 16.9813 61.2683 16.9813H62.2806C62.4422 16.9813 62.5659 16.928 62.6863 16.8094C62.8048 16.6908 62.8581 16.5653 62.8581 16.4038V8.72782C62.8581 7.35625 62.4972 6.28719 61.7856 5.55328C61.0706 4.81422 59.9723 4.455 58.4323 4.455M55.9281 13.1484C55.9281 12.4094 56.1498 11.8714 56.5709 11.5913C56.8872 11.3816 57.5902 11.1306 59.1559 11.1306H60.6461V14.453C59.6458 14.9927 58.6695 15.2763 57.8136 15.2763C57.1777 15.2763 56.6964 15.1388 56.3853 14.8706C56.0862 14.6111 55.9264 14.1058 55.9264 13.4131V13.1484H55.9281Z" fill="#363C47"/>
32
+ <path id="Vector_6" d="M95.028 7.99391L93.005 6.78391C92.1216 6.25453 91.5028 5.8025 91.1642 5.44328C90.8394 5.09781 90.6744 4.69219 90.6744 4.24016C90.6744 3.51656 90.8978 3.02157 91.3584 2.72766C91.8174 2.43547 92.6286 2.28766 93.7698 2.28766C95.0022 2.28766 96.238 2.33063 97.5528 2.42H97.5975C97.735 2.42 97.8605 2.36844 97.9584 2.27047C98.0323 2.19656 98.108 2.09688 98.108 1.93188V0.986564C98.108 0.720158 97.9309 0.534533 97.6164 0.476096C96.4494 0.299064 95.1552 0.211408 93.7681 0.211408C92.0494 0.211408 90.7053 0.544846 89.7738 1.20485C88.8319 1.87172 88.3747 2.86516 88.3747 4.24188C88.3747 5.12016 88.6291 5.88844 89.1292 6.5261C89.6466 7.18438 90.4578 7.85813 91.4753 8.47172L93.6083 9.76938C94.6086 10.3864 95.303 10.8969 95.6708 11.287C96.0111 11.6463 96.183 12.0897 96.183 12.6002C96.183 13.3822 95.9406 14.0164 95.48 14.4341C95.0245 14.8483 94.1823 15.058 92.9775 15.058C91.5802 15.058 90.3633 15.0133 89.3595 14.9256H89.2822C89.1825 14.9256 89.0364 14.9377 88.9212 15.0528C88.8233 15.1508 88.7717 15.2763 88.7717 15.4138V16.2938C88.7717 16.4777 88.8078 16.6066 88.8783 16.677C88.9728 16.7716 89.1894 16.8111 89.3063 16.8266C90.6709 17.0345 91.8723 17.1359 92.9775 17.1359C93.8283 17.1359 94.588 17.0448 95.2359 16.8678C95.9234 16.677 96.4494 16.4484 96.8413 16.1648C97.2606 15.8623 97.5786 15.5375 97.8433 15.1405C98.1148 14.7331 98.3005 14.3172 98.3916 13.9064C98.4981 13.4234 98.548 13.0092 98.548 12.6002C98.548 11.6669 98.2799 10.847 97.7488 10.163C97.2039 9.45828 96.3119 8.75016 95.028 7.99563" fill="#363C47"/>
33
+ <path id="Vector_7" d="M109.022 4.60969H107.79C107.68 4.60969 107.566 4.65438 107.443 4.74719C107.331 4.83141 107.269 4.9225 107.238 5.0411L104.583 14.9909H104.337C104.271 14.9909 104.225 14.9755 104.192 14.9428C104.172 14.9222 104.103 14.8397 104.051 14.6077L101.456 5.06516C101.427 4.94656 101.367 4.83828 101.288 4.75922C101.191 4.66297 101.069 4.60969 100.949 4.60969H99.7391C99.4056 4.60969 99.2063 4.80047 99.2063 5.12188C99.2063 5.21125 99.2063 5.28172 99.2406 5.33672L102.159 15.3622C102.248 15.6939 102.36 15.9723 102.505 16.2113C102.652 16.457 102.773 16.6203 102.95 16.7217L103.022 16.7647C103.153 16.842 103.278 16.9142 103.412 16.9366C103.538 16.9572 103.727 16.983 103.919 16.983H104.051L103.873 17.7152C103.703 18.437 103.476 18.9148 103.195 19.1348C102.905 19.3634 102.444 19.4786 101.829 19.4786C101.503 19.4786 100.83 19.4339 99.8834 19.348H99.8044C99.3455 19.348 99.2492 19.6144 99.2492 19.8361V20.6508C99.2492 20.7608 99.3042 21.0272 99.8198 21.1372C100.42 21.2713 101.052 21.3383 101.697 21.3383C102.57 21.3383 103.276 21.2231 103.797 20.9963C104.313 20.7728 104.732 20.4153 105.045 19.9341C105.337 19.4855 105.609 18.8289 105.853 17.9833L109.476 5.33672C109.51 5.28 109.51 5.21125 109.51 5.12188C109.51 5.02219 109.496 4.8761 109.381 4.76094C109.283 4.66297 109.158 4.61141 109.02 4.61141" fill="#363C47"/>
34
+ <path id="Vector_8" d="M85.8808 0.165002H84.7584C84.5969 0.165002 84.4731 0.218283 84.3528 0.336877C84.2205 0.469221 84.2033 0.605003 84.2033 0.720159V4.6475C83.4213 4.51688 82.6237 4.45328 81.7678 4.45328C80.1573 4.45328 78.9164 4.93453 78.0794 5.885C77.2544 6.82172 76.835 8.20016 76.835 9.97907V11.562C76.835 13.2739 77.2458 14.642 78.0536 15.6303C78.8683 16.6272 80.1178 17.1325 81.7678 17.1325C83.1995 17.1325 84.5694 17.0053 85.8327 16.7578C85.9805 16.7389 86.1884 16.6977 86.3002 16.5498C86.3809 16.4416 86.4153 16.3127 86.4153 16.115V0.71844C86.4153 0.586096 86.3964 0.445159 86.2658 0.312815C86.1334 0.180471 85.9977 0.163283 85.8825 0.163283M84.2033 6.55531V15.0459C83.2047 15.125 82.3642 15.168 81.7678 15.168C80.7641 15.168 80.0748 14.8844 79.6589 14.3017C79.2464 13.7242 79.047 12.8305 79.047 11.5655V9.9825C79.047 8.78625 79.2602 7.88047 79.6813 7.29094C80.0972 6.70828 80.7812 6.42469 81.7695 6.42469C82.8902 6.42469 83.6705 6.46594 84.205 6.55703" fill="#363C47"/>
35
+ <path id="Vector_9" d="M70.8469 4.455C70.2161 4.455 69.6111 4.5375 69.0491 4.7025C68.5936 4.83485 68.0934 5.04969 67.4867 5.37282V5.18547C67.4867 5.00328 67.418 4.88641 67.3492 4.79532C67.2581 4.675 67.1103 4.60797 66.9316 4.60797H65.8316C65.67 4.60797 65.5463 4.66125 65.4259 4.77985C65.2936 4.91219 65.2764 5.05313 65.2764 5.18547V16.4038C65.2764 16.5653 65.3297 16.6891 65.4483 16.8094C65.5652 16.9263 65.6872 16.9813 65.8316 16.9813H66.9092C67.0708 16.9813 67.1945 16.928 67.3148 16.8094C67.4266 16.6994 67.4867 16.555 67.4867 16.4038V7.20672C68.5747 6.67219 69.5269 6.40063 70.3192 6.40063C71.1116 6.40063 71.7131 6.6 72.0638 6.99188C72.4144 7.38375 72.6 8.13656 72.6 9.1661V16.402C72.6 16.5636 72.6533 16.6873 72.7719 16.8077C72.8905 16.928 73.0159 16.9795 73.1775 16.9795H74.2328C74.3944 16.9795 74.5181 16.9263 74.6384 16.8077C74.757 16.6891 74.8103 16.5636 74.8103 16.402V9.1661C74.8103 6.03969 73.4766 4.45328 70.8452 4.45328" fill="#363C47"/>
36
+ <path id="Vector_10" d="M4.96032 17.2288C3.33438 17.2288 2.09172 16.8816 1.265 16.1975C0.426254 15.5014 9.53674e-07 14.3791 9.53674e-07 12.8631V4.39485C9.53674e-07 2.87719 0.426254 1.75485 1.265 1.06047C2.09 0.376408 3.33438 0.0292208 4.96032 0.0292208C8.84813 0.0292208 10.132 0.0687528 11.1117 0.161565C11.3231 0.166722 11.4366 0.336878 11.4744 0.393596C11.5483 0.505315 11.5861 0.623909 11.5861 0.744221V1.84422C11.5861 2.0075 11.5363 2.13985 11.44 2.2361C11.3472 2.32891 11.2114 2.38219 11.0705 2.38219H4.98266C4.27625 2.38219 3.72625 2.45781 3.34469 2.60563C3.01297 2.73453 2.805 2.90985 2.70532 3.14016C2.60047 3.38422 2.55063 3.78469 2.55063 4.39485V7.1775H10.6373C10.835 7.1775 10.9948 7.24453 11.1392 7.39063C11.2836 7.535 11.3523 7.69485 11.3523 7.8925V8.72782C11.3523 8.92547 11.2853 9.08532 11.1392 9.22969C10.9948 9.37407 10.835 9.44281 10.6373 9.44281H2.55063V12.8631C2.55063 13.475 2.59875 13.8738 2.70532 14.1178C2.80329 14.3481 3.01297 14.5234 3.34469 14.6523C3.70907 14.7933 4.10438 14.8758 5.36938 14.8758H11.0705C11.2131 14.8758 11.3489 14.9291 11.4417 15.0219C11.538 15.1181 11.5878 15.2505 11.5878 15.4138V16.5361C11.5878 16.6564 11.55 16.775 11.4761 16.8867C11.4383 16.9434 11.3248 17.1136 11.1048 17.1188C10.3469 17.1892 8.81719 17.2288 6.80454 17.2288H4.96204H4.96032Z" fill="#363C47"/>
37
+ <path id="Vector_11" d="M26.8623 8.94094V16.1906C26.8623 16.6547 26.6114 16.7406 26.5048 16.7716C26.4498 16.7888 24.2086 17.2838 20.5717 17.2838C16.2456 17.2838 12.9095 14.8139 12.9095 10.3813C12.9095 9.96875 12.9044 9.8175 12.9044 7.08125C12.9044 1.3286 17.3542 2.38419e-06 20.8209 2.38419e-06C23.9456 2.38419e-06 25.0491 0.266408 26.2281 0.445158C26.3398 0.462346 26.4413 0.495003 26.5255 0.541409C26.5891 0.575784 26.6441 0.618752 26.6905 0.666877C26.785 0.766564 26.84 0.89719 26.84 1.05016V2.15532C26.84 2.25844 26.8073 2.57125 26.4327 2.64C26.3863 2.6486 26.333 2.65375 26.2745 2.65375C26.2745 2.65375 26.1834 2.65375 26.1577 2.65031C25.9428 2.63141 23.6569 2.36844 21.0203 2.36844C17.3663 2.36844 15.467 3.92735 15.467 7.23594V10.1372C15.467 13.5541 17.7255 14.9428 20.6903 14.9428C23.0244 14.9428 24.2963 14.7177 24.2963 14.7177V10.5016H22.715C22.3953 10.5016 22.0017 10.2678 22.0017 9.8725C22.0017 9.47719 21.9966 9.45828 21.9966 8.94266C21.9966 8.42703 22.4056 8.22422 22.715 8.22422H26.1645C26.5822 8.22422 26.8606 8.57485 26.8606 8.94266" fill="#363C47"/>
38
+ </g>
39
+ </g>
40
+ </svg>`;
@@ -0,0 +1,17 @@
1
+ // BrandSync icon mark only (no wordmark), extracted from the icon portion of
2
+ // brandsync-logo-full-light.ts's BRANDSYNC_LOGO_FULL_LIGHT_SVG (its first <g id="Group"> block,
3
+ // viewBox 0 0 44 44) and wrapped as its own standalone <svg>. Figma's "Logo" component set (node
4
+ // 10909:30421) only has one real designed instance of the icon-only mark (Device="Tab and
5
+ // mobile", Background="Default") -- there is no separate dark-background version of it, so this
6
+ // single asset is used regardless of bs-logo's `background` prop when `variant="mark"`.
7
+ export const BRANDSYNC_LOGO_MARK_SVG = `<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg">
8
+ <g id="Group">
9
+ <path id="Vector" d="M35.2 0.128906H8.8C4.01109 0.128906 0.128905 4.01109 0.128905 8.8V35.2C0.128905 39.9889 4.01109 43.8711 8.8 43.8711H35.2C39.9889 43.8711 43.8711 39.9889 43.8711 35.2V8.8C43.8711 4.01109 39.9889 0.128906 35.2 0.128906Z" fill="white"/>
10
+ <path id="Vector_2" d="M35.2 0.257812C39.9094 0.257812 43.7422 4.08891 43.7422 8.8V35.2C43.7422 39.9094 39.9111 43.7422 35.2 43.7422H8.8C4.09063 43.7422 0.257812 39.9111 0.257812 35.2V8.8C0.257812 4.08891 4.08891 0.257812 8.8 0.257812H35.2ZM35.2 0H8.8C3.93938 0 0 3.93938 0 8.8V35.2C0 40.0606 3.93938 44 8.8 44H35.2C40.0606 44 44 40.0606 44 35.2V8.8C44 3.93938 40.0606 0 35.2 0Z" fill="#E8EAEE"/>
11
+ <path id="Vector_3" d="M18.6038 21.5067L21.5067 18.6038C21.7748 18.3356 22.2097 18.3356 22.4795 18.6038L25.3962 21.5205C25.6644 21.7886 25.6644 22.2252 25.3962 22.4933L22.4933 25.3962C22.2252 25.6644 21.7886 25.6644 21.5205 25.3962L18.6038 22.4795C18.3356 22.2114 18.3356 21.7748 18.6038 21.5067Z" fill="#57B1FF"/>
12
+ <path id="Vector_4" d="M15.6423 12.6586L6.7925 21.5084C6.52438 21.7766 6.52438 22.2114 6.7925 22.4813L9.82781 25.5166C10.0959 25.7847 10.5308 25.7847 10.8006 25.5166L19.6505 16.6667C19.9186 16.3986 19.9186 15.962 19.6505 15.6939L16.6152 12.6586C16.347 12.3905 15.9105 12.3905 15.6423 12.6586Z" fill="#57B1FF"/>
13
+ <path id="Vector_5" d="M28.3559 31.3414L37.2161 22.4813C37.4842 22.2131 37.4842 21.7766 37.2161 21.5084L34.1808 18.4731C33.9127 18.205 33.4778 18.205 33.208 18.4731L24.3478 27.3333C24.0797 27.6014 24.0797 28.038 24.3478 28.3061L27.3831 31.3414C27.6512 31.6095 28.0878 31.6095 28.3559 31.3414Z" fill="#57B1FF"/>
14
+ <path id="Vector_6" d="M28.3577 12.6586L37.2075 21.5084C37.4756 21.7766 37.4756 22.2114 37.2075 22.4813L34.1722 25.5166C33.9041 25.7847 33.4692 25.7847 33.1994 25.5166L24.3495 16.6667C24.0814 16.3986 24.0814 15.962 24.3495 15.6939L27.3848 12.6586C27.653 12.3905 28.0895 12.3905 28.3577 12.6586Z" fill="#1B85FF"/>
15
+ <path id="Vector_7" d="M15.6441 31.3414L6.7839 22.4813C6.51578 22.2131 6.51578 21.7766 6.7839 21.5084L9.81922 18.4731C10.0873 18.205 10.5222 18.205 10.792 18.4731L19.6522 27.3333C19.9203 27.6014 19.9203 28.038 19.6522 28.3061L16.6169 31.3414C16.3487 31.6095 15.9122 31.6095 15.6441 31.3414Z" fill="#1B85FF"/>
16
+ </g>
17
+ </svg>`;
@@ -0,0 +1,113 @@
1
+ import { render, h, describe, it, expect } from "@stencil/vitest";
2
+ describe('bs-logo', () => {
3
+ it('renders role="img" and aria-label="BrandSync"', async () => {
4
+ const { root } = await render(h("bs-logo", null));
5
+ const logo = root.shadowRoot.querySelector('[part="logo"]');
6
+ expect(logo).not.toBeNull();
7
+ expect(logo).toEqualAttribute('role', 'img');
8
+ expect(logo).toEqualAttribute('aria-label', 'BrandSync');
9
+ });
10
+ it('renders both the light and dark full-wordmark assets in the shadow DOM regardless of background', async () => {
11
+ // variant="full" always renders both assets and picks one via CSS (see bs-logo.css) -- this
12
+ // lets background="auto" react to the ambient theme with no re-render needed.
13
+ const { root } = await render(h("bs-logo", null));
14
+ const lightSvg = root.shadowRoot.querySelector('.bs-logo__asset--light svg');
15
+ const darkSvg = root.shadowRoot.querySelector('.bs-logo__asset--dark svg');
16
+ expect(lightSvg).toEqualAttribute('width', '190.977');
17
+ expect(lightSvg).toEqualAttribute('height', '44');
18
+ // Light asset's icon mark is a two-path composition (solid fill + a subtle #E8EAEE border ring).
19
+ expect(lightSvg.querySelector('path[fill="#E8EAEE"]')).not.toBeNull();
20
+ expect(darkSvg).toEqualAttribute('width', '190.0');
21
+ expect(darkSvg).toEqualAttribute('height', '44');
22
+ // Dark asset's icon mark is a single solid-white path -- no #E8EAEE border-ring path, and no
23
+ // #363C47 wordmark fills (all wordmark paths are solid white instead).
24
+ expect(darkSvg.querySelector('path[fill="#E8EAEE"]')).toBeNull();
25
+ expect(darkSvg.querySelector('path[fill="#363C47"]')).toBeNull();
26
+ });
27
+ describe('background="auto" (default)', () => {
28
+ it('applies the bs-logo--bg-auto class', async () => {
29
+ const { root } = await render(h("bs-logo", null));
30
+ expect(root.shadowRoot.querySelector('[part="logo"]')).toHaveClass('bs-logo--bg-auto');
31
+ });
32
+ it('shows the light asset and hides the dark one when no ambient theme is set', async () => {
33
+ const { root } = await render(h("bs-logo", null));
34
+ const lightAsset = root.shadowRoot.querySelector('.bs-logo__asset--light');
35
+ const darkAsset = root.shadowRoot.querySelector('.bs-logo__asset--dark');
36
+ expect(getComputedStyle(lightAsset).display).not.toBe('none');
37
+ expect(getComputedStyle(darkAsset).display).toBe('none');
38
+ });
39
+ it('shows the dark asset and hides the light one when an ambient dark theme sets --bs-logo-asset-*-display', async () => {
40
+ // Simulates what src/global/base.css's [data-theme="dark"] rule sets on <html> in a real
41
+ // app -- setting the same custom properties directly on the render stage container here,
42
+ // since this isolated component test doesn't load that global stylesheet. CSS custom
43
+ // properties inherit through the shadow boundary regardless of where they're defined.
44
+ const { root } = await render(h("bs-logo", null), {
45
+ stageAttrs: { style: '--bs-logo-asset-light-display: none; --bs-logo-asset-dark-display: block;' },
46
+ });
47
+ const lightAsset = root.shadowRoot.querySelector('.bs-logo__asset--light');
48
+ const darkAsset = root.shadowRoot.querySelector('.bs-logo__asset--dark');
49
+ expect(getComputedStyle(lightAsset).display).toBe('none');
50
+ expect(getComputedStyle(darkAsset).display).not.toBe('none');
51
+ });
52
+ });
53
+ describe('background="light"/"dark" (explicit)', () => {
54
+ it('pins the light asset even when an ambient dark theme is set', async () => {
55
+ const { root } = await render(h("bs-logo", { background: "light" }), {
56
+ stageAttrs: { style: '--bs-logo-asset-light-display: none; --bs-logo-asset-dark-display: block;' },
57
+ });
58
+ expect(root.shadowRoot.querySelector('[part="logo"]')).toHaveClass('bs-logo--bg-light');
59
+ expect(getComputedStyle(root.shadowRoot.querySelector('.bs-logo__asset--light')).display).not.toBe('none');
60
+ expect(getComputedStyle(root.shadowRoot.querySelector('.bs-logo__asset--dark')).display).toBe('none');
61
+ });
62
+ it('pins the dark asset even when no ambient theme is set', async () => {
63
+ const { root } = await render(h("bs-logo", { background: "dark" }));
64
+ expect(root.shadowRoot.querySelector('[part="logo"]')).toHaveClass('bs-logo--bg-dark');
65
+ expect(getComputedStyle(root.shadowRoot.querySelector('.bs-logo__asset--light')).display).toBe('none');
66
+ expect(getComputedStyle(root.shadowRoot.querySelector('.bs-logo__asset--dark')).display).not.toBe('none');
67
+ });
68
+ });
69
+ it('renders the icon-only mark asset for variant="mark"', async () => {
70
+ const { root } = await render(h("bs-logo", { variant: "mark" }));
71
+ const svg = root.shadowRoot.querySelector('[part="logo"] svg');
72
+ expect(svg).toEqualAttribute('width', '44');
73
+ expect(svg).toEqualAttribute('height', '44');
74
+ expect(svg).toEqualAttribute('viewBox', '0 0 44 44');
75
+ });
76
+ it('applies the bs-logo--full/bs-logo--mark class matching the variant', async () => {
77
+ const { root: fullRoot } = await render(h("bs-logo", { variant: "full" }));
78
+ expect(fullRoot.shadowRoot.querySelector('[part="logo"]')).toHaveClass('bs-logo--full');
79
+ const { root: markRoot } = await render(h("bs-logo", { variant: "mark" }));
80
+ expect(markRoot.shadowRoot.querySelector('[part="logo"]')).toHaveClass('bs-logo--mark');
81
+ });
82
+ it('renders identical markup for variant="mark" regardless of background (no separate dark mark asset)', async () => {
83
+ const { root: lightRoot } = await render(h("bs-logo", { variant: "mark", background: "light" }));
84
+ const { root: darkRoot } = await render(h("bs-logo", { variant: "mark", background: "dark" }));
85
+ const lightMarkup = lightRoot.shadowRoot.querySelector('[part="logo"]').innerHTML;
86
+ const darkMarkup = darkRoot.shadowRoot.querySelector('[part="logo"]').innerHTML;
87
+ expect(lightMarkup).toBe(darkMarkup);
88
+ });
89
+ describe('variant="custom"', () => {
90
+ it('renders a real <img> with the given src/alt instead of a built-in asset', async () => {
91
+ const { root } = await render(h("bs-logo", { variant: "custom", src: "https://example.com/logo.png", alt: "Acme Co" }));
92
+ const img = root.shadowRoot.querySelector('[part="logo"]');
93
+ expect(img.tagName).toBe('IMG');
94
+ expect(img).toEqualAttribute('src', 'https://example.com/logo.png');
95
+ expect(img).toEqualAttribute('alt', 'Acme Co');
96
+ expect(img).toHaveClass('bs-logo--custom');
97
+ });
98
+ it('falls back to alt="" (not a missing attribute) when alt is not provided', async () => {
99
+ const { root } = await render(h("bs-logo", { variant: "custom", src: "https://example.com/logo.png" }));
100
+ const img = root.shadowRoot.querySelector('[part="logo"]');
101
+ expect(img).toEqualAttribute('alt', '');
102
+ });
103
+ it('does not fetch/render any built-in BrandSync asset when custom', async () => {
104
+ const { root } = await render(h("bs-logo", { variant: "custom", src: "https://example.com/logo.png", alt: "Acme Co" }));
105
+ expect(root.shadowRoot.querySelector('svg')).toBeNull();
106
+ });
107
+ it('ignores background for variant="custom"', async () => {
108
+ const { root: lightRoot } = await render(h("bs-logo", { variant: "custom", background: "light", src: "https://example.com/logo.png", alt: "Acme" }));
109
+ const { root: darkRoot } = await render(h("bs-logo", { variant: "custom", background: "dark", src: "https://example.com/logo.png", alt: "Acme" }));
110
+ expect(lightRoot.shadowRoot.querySelector('[part="logo"]').outerHTML).toBe(darkRoot.shadowRoot.querySelector('[part="logo"]').outerHTML);
111
+ });
112
+ });
113
+ });
@@ -0,0 +1,79 @@
1
+ /**
2
+ * @prop --bs-logo-width-full: Width of the rendered logo when variant="full". 190.977px -- the
3
+ * light asset's natural width after its icon-to-wordmark gap was tightened from Figma's own
4
+ * exported spacing (see brandsync-logo-full-light.ts) -- a literal size, not a brandsync-tokens
5
+ * alias, since this is a fixed asset's natural dimensions rather than a themeable design token.
6
+ * @prop --bs-logo-height-full: Height of the rendered logo when variant="full". 44px.
7
+ * @prop --bs-logo-width-mark: Width of the rendered logo when variant="mark". 44px.
8
+ * @prop --bs-logo-height-mark: Height of the rendered logo when variant="mark". 44px.
9
+ * @prop --bs-logo-height-custom: Height of the rendered image when variant="custom". Width is
10
+ * `auto` (not a fixed custom property) so a consumer's own logo keeps its natural aspect ratio --
11
+ * only the height is constrained, matching `full`/`mark`'s shared 44px height. Defaults to 44px.
12
+ * @prop --bs-logo-asset-light-display: Only read when background="auto" (the default). Defined in
13
+ * src/global/base.css, not here -- that's this library's own bridge from the ambient
14
+ * [data-theme="dark"] attribute to which full-wordmark asset shows, not a per-component override
15
+ * point most consumers need to touch directly.
16
+ * @prop --bs-logo-asset-dark-display: The background="auto" counterpart to
17
+ * --bs-logo-asset-light-display above -- see that entry.
18
+ */
19
+ :host {
20
+ display: inline-block;
21
+
22
+ --bs-logo-width-full: 190.977px;
23
+ --bs-logo-height-full: 44px;
24
+ --bs-logo-width-mark: 44px;
25
+ --bs-logo-height-mark: 44px;
26
+ --bs-logo-height-custom: 44px;
27
+ }
28
+
29
+ .bs-logo {
30
+ display: block;
31
+ }
32
+
33
+ .bs-logo--full {
34
+ width: var(--bs-logo-width-full);
35
+ height: var(--bs-logo-height-full);
36
+ }
37
+
38
+ .bs-logo--mark {
39
+ width: var(--bs-logo-width-mark);
40
+ height: var(--bs-logo-height-mark);
41
+ }
42
+
43
+ .bs-logo svg {
44
+ display: block;
45
+ width: 100%;
46
+ height: 100%;
47
+ }
48
+
49
+ /* variant="full" renders both the light and dark assets at once (see bs-logo.tsx) and picks one
50
+ via these display toggles -- "auto" reacts to --bs-logo-asset-light-display/-dark-display
51
+ (defined in src/global/base.css, flipped by [data-theme="dark"]); "light"/"dark" pin one
52
+ directly regardless of that ambient token. */
53
+ .bs-logo__asset {
54
+ display: none;
55
+ width: 100%;
56
+ height: 100%;
57
+ }
58
+
59
+ .bs-logo--bg-auto .bs-logo__asset--light {
60
+ display: var(--bs-logo-asset-light-display, block);
61
+ }
62
+
63
+ .bs-logo--bg-auto .bs-logo__asset--dark {
64
+ display: var(--bs-logo-asset-dark-display, none);
65
+ }
66
+
67
+ .bs-logo--bg-light .bs-logo__asset--light {
68
+ display: block;
69
+ }
70
+
71
+ .bs-logo--bg-dark .bs-logo__asset--dark {
72
+ display: block;
73
+ }
74
+
75
+ .bs-logo--custom {
76
+ width: auto;
77
+ height: var(--bs-logo-height-custom);
78
+ object-fit: contain;
79
+ }
@@ -0,0 +1,193 @@
1
+ import { h } from "@stencil/core";
2
+ import { BRANDSYNC_LOGO_FULL_LIGHT_SVG } from "./brandsync-logo-full-light";
3
+ import { BRANDSYNC_LOGO_FULL_DARK_SVG } from "./brandsync-logo-full-dark";
4
+ import { BRANDSYNC_LOGO_MARK_SVG } from "./brandsync-logo-mark";
5
+ /**
6
+ * The BrandSync brand mark, as its own standalone component -- shared by `bs-navigation-header`
7
+ * and `bs-navigation-drawer`, which used to each render their own duplicated copy of this SVG
8
+ * (the drawer's collapsed state even faked an icon-only look by clipping the full wordmark asset
9
+ * down to a narrowed box, rather than using a real icon-only asset).
10
+ *
11
+ * ## When to use
12
+ * - Anywhere the BrandSync logo/icon needs to render: a navigation header, a nav drawer, etc.
13
+ *
14
+ * ## When not to use
15
+ * - The Genie AI chat panel's own brand mark -- that's a different logo (`bs-chatbot-header`'s
16
+ * own inline Genie asset), not this one.
17
+ *
18
+ * `variant` mirrors Figma's "Logo" component set (node 10909:30421) `Device` property
19
+ * ("Desktop" / "Tab and mobile"), which was originally meant to distinguish the full lockup from
20
+ * the icon-only mark at different responsive breakpoints -- renamed here to
21
+ * `variant: 'full' | 'mark'` since that's what it actually controls (how much of the logo
22
+ * renders), not literally a device/breakpoint switch.
23
+ *
24
+ * `variant="custom"` is not a Figma variant at all -- it's an escape hatch for a consuming app
25
+ * that needs to show a DIFFERENT product's logo in the same slot (e.g. a white-labeled deployment,
26
+ * or a logo fetched at runtime from a service like brand.dev), via `src`/`alt`, instead of the
27
+ * built-in BrandSync assets. This component deliberately does NOT fetch that image itself --
28
+ * network calls, loading/error states, and caching are the consuming app's responsibility, same as
29
+ * every other component in this library (e.g. `bs-attachment` takes `imageSrc` rather than fetching
30
+ * an image on its own). `background` has no effect on `variant="custom"` -- a consumer's own image
31
+ * is already designed for whatever surface it's placed on.
32
+ *
33
+ * @part logo - The rendered SVG/image's wrapper.
34
+ */
35
+ // Note: this component's CSS Custom Properties are documented via @prop comments in bs-logo.css,
36
+ // not here -- see bs-navigation-header.css's identical note.
37
+ export class BsLogo {
38
+ /** How much of the logo to render. `full` is the icon + "EG BrandSync" wordmark (190.977x44
39
+ * natural size); `mark` is just the icon (44x44 natural size), no wordmark; `custom` renders a
40
+ * consumer-supplied image via `src`/`alt` instead of a built-in BrandSync asset -- see the class
41
+ * doc above. */
42
+ variant = 'full';
43
+ /**
44
+ * Which pre-built asset to use for `variant="full"` -- Figma ships a genuinely separate,
45
+ * differently-drawn dark-background asset (every wordmark path filled solid white, and the
46
+ * icon's outer shape a single solid-white path instead of the light version's two-path
47
+ * white-fill-plus-border-ring), not a CSS currentColor swap of identical paths.
48
+ *
49
+ * `"auto"` (default) renders both assets and lets CSS pick one via
50
+ * `--bs-logo-asset-light-display`/`--bs-logo-asset-dark-display` (defined in
51
+ * `src/global/base.css`, flipped by the same `[data-theme="dark"]` attribute every other
52
+ * `--bs-*` token already reacts to) -- so the logo just follows the ambient theme with no wiring
53
+ * needed, the same way a consuming app's own dark mode already re-themes every other part of
54
+ * this library via ordinary CSS custom property inheritance. Set `"light"`/`"dark"` explicitly
55
+ * to pin one regardless of the ambient theme -- e.g. a dark sidebar that isn't otherwise
56
+ * dark-themed.
57
+ *
58
+ * Has no effect on `variant="mark"`: Figma's component set only has one real designed instance
59
+ * of the icon-only mark (`Device="Tab and mobile"`, `Background="Default"`) -- there's no
60
+ * separate dark version of it, so the mark renders identically regardless of this prop.
61
+ */
62
+ background = 'auto';
63
+ /** `variant="custom"` only: the image URL to render (e.g. a URL your app already fetched from a
64
+ * logo API). Ignored for `full`/`mark`. */
65
+ src = null;
66
+ /**
67
+ * `variant="custom"` only: accessible alt text for the image -- a product logo is meaningful
68
+ * content (whose brand is this?), not decorative, so set this to something real (e.g. the
69
+ * product/company name). Falls back to `alt=""` (marking the image decorative to assistive
70
+ * tech) when unset, rather than omitting the `alt` attribute entirely -- an `<img>` with no
71
+ * `alt` attribute at all is a harder accessibility failure than one explicitly marked
72
+ * decorative, but an empty fallback is still worse than a real name, so don't rely on it.
73
+ * Ignored for `full`/`mark` (those already carry their own fixed `aria-label="BrandSync"`).
74
+ */
75
+ alt = null;
76
+ render() {
77
+ if (this.variant === 'custom') {
78
+ return h("img", { part: "logo", class: "bs-logo bs-logo--custom", src: this.src ?? undefined, alt: this.alt ?? '' });
79
+ }
80
+ if (this.variant === 'mark') {
81
+ return h("div", { part: "logo", class: "bs-logo bs-logo--mark", role: "img", "aria-label": "BrandSync", innerHTML: BRANDSYNC_LOGO_MARK_SVG });
82
+ }
83
+ return (h("div", { part: "logo", class: `bs-logo bs-logo--full bs-logo--bg-${this.background}`, role: "img", "aria-label": "BrandSync" }, h("div", { class: "bs-logo__asset bs-logo__asset--light", innerHTML: BRANDSYNC_LOGO_FULL_LIGHT_SVG }), h("div", { class: "bs-logo__asset bs-logo__asset--dark", innerHTML: BRANDSYNC_LOGO_FULL_DARK_SVG })));
84
+ }
85
+ static get is() { return "bs-logo"; }
86
+ static get encapsulation() { return "shadow"; }
87
+ static get originalStyleUrls() {
88
+ return {
89
+ "$": ["bs-logo.css"]
90
+ };
91
+ }
92
+ static get styleUrls() {
93
+ return {
94
+ "$": ["bs-logo.css"]
95
+ };
96
+ }
97
+ static get properties() {
98
+ return {
99
+ "variant": {
100
+ "type": "string",
101
+ "mutable": false,
102
+ "complexType": {
103
+ "original": "BsLogoVariant",
104
+ "resolved": "\"custom\" | \"full\" | \"mark\"",
105
+ "references": {
106
+ "BsLogoVariant": {
107
+ "location": "local",
108
+ "path": "/Users/vivka/brandsync-web-components/src/components/bs-logo/bs-logo.tsx",
109
+ "id": "src/components/bs-logo/bs-logo.tsx::BsLogoVariant"
110
+ }
111
+ }
112
+ },
113
+ "required": false,
114
+ "optional": false,
115
+ "docs": {
116
+ "tags": [],
117
+ "text": "How much of the logo to render. `full` is the icon + \"EG BrandSync\" wordmark (190.977x44\nnatural size); `mark` is just the icon (44x44 natural size), no wordmark; `custom` renders a\nconsumer-supplied image via `src`/`alt` instead of a built-in BrandSync asset -- see the class\ndoc above."
118
+ },
119
+ "getter": false,
120
+ "setter": false,
121
+ "reflect": false,
122
+ "attribute": "variant",
123
+ "defaultValue": "'full'"
124
+ },
125
+ "background": {
126
+ "type": "string",
127
+ "mutable": false,
128
+ "complexType": {
129
+ "original": "BsLogoBackground",
130
+ "resolved": "\"auto\" | \"dark\" | \"light\"",
131
+ "references": {
132
+ "BsLogoBackground": {
133
+ "location": "local",
134
+ "path": "/Users/vivka/brandsync-web-components/src/components/bs-logo/bs-logo.tsx",
135
+ "id": "src/components/bs-logo/bs-logo.tsx::BsLogoBackground"
136
+ }
137
+ }
138
+ },
139
+ "required": false,
140
+ "optional": false,
141
+ "docs": {
142
+ "tags": [],
143
+ "text": "Which pre-built asset to use for `variant=\"full\"` -- Figma ships a genuinely separate,\ndifferently-drawn dark-background asset (every wordmark path filled solid white, and the\nicon's outer shape a single solid-white path instead of the light version's two-path\nwhite-fill-plus-border-ring), not a CSS currentColor swap of identical paths.\n\n`\"auto\"` (default) renders both assets and lets CSS pick one via\n`--bs-logo-asset-light-display`/`--bs-logo-asset-dark-display` (defined in\n`src/global/base.css`, flipped by the same `[data-theme=\"dark\"]` attribute every other\n`--bs-*` token already reacts to) -- so the logo just follows the ambient theme with no wiring\nneeded, the same way a consuming app's own dark mode already re-themes every other part of\nthis library via ordinary CSS custom property inheritance. Set `\"light\"`/`\"dark\"` explicitly\nto pin one regardless of the ambient theme -- e.g. a dark sidebar that isn't otherwise\ndark-themed.\n\nHas no effect on `variant=\"mark\"`: Figma's component set only has one real designed instance\nof the icon-only mark (`Device=\"Tab and mobile\"`, `Background=\"Default\"`) -- there's no\nseparate dark version of it, so the mark renders identically regardless of this prop."
144
+ },
145
+ "getter": false,
146
+ "setter": false,
147
+ "reflect": false,
148
+ "attribute": "background",
149
+ "defaultValue": "'auto'"
150
+ },
151
+ "src": {
152
+ "type": "string",
153
+ "mutable": false,
154
+ "complexType": {
155
+ "original": "string | null",
156
+ "resolved": "string",
157
+ "references": {}
158
+ },
159
+ "required": false,
160
+ "optional": false,
161
+ "docs": {
162
+ "tags": [],
163
+ "text": "`variant=\"custom\"` only: the image URL to render (e.g. a URL your app already fetched from a\nlogo API). Ignored for `full`/`mark`."
164
+ },
165
+ "getter": false,
166
+ "setter": false,
167
+ "reflect": false,
168
+ "attribute": "src",
169
+ "defaultValue": "null"
170
+ },
171
+ "alt": {
172
+ "type": "string",
173
+ "mutable": false,
174
+ "complexType": {
175
+ "original": "string | null",
176
+ "resolved": "string",
177
+ "references": {}
178
+ },
179
+ "required": false,
180
+ "optional": false,
181
+ "docs": {
182
+ "tags": [],
183
+ "text": "`variant=\"custom\"` only: accessible alt text for the image -- a product logo is meaningful\ncontent (whose brand is this?), not decorative, so set this to something real (e.g. the\nproduct/company name). Falls back to `alt=\"\"` (marking the image decorative to assistive\ntech) when unset, rather than omitting the `alt` attribute entirely -- an `<img>` with no\n`alt` attribute at all is a harder accessibility failure than one explicitly marked\ndecorative, but an empty fallback is still worse than a real name, so don't rely on it.\nIgnored for `full`/`mark` (those already carry their own fixed `aria-label=\"BrandSync\"`)."
184
+ },
185
+ "getter": false,
186
+ "setter": false,
187
+ "reflect": false,
188
+ "attribute": "alt",
189
+ "defaultValue": "null"
190
+ }
191
+ };
192
+ }
193
+ }
@@ -0,0 +1,69 @@
1
+ import { html } from "lit";
2
+ import { componentDescription, propDescription } from "../../stories-utils";
3
+ const variants = ['full', 'mark', 'custom'];
4
+ const backgrounds = ['auto', 'light', 'dark'];
5
+ const meta = {
6
+ title: 'Components/bs-logo',
7
+ parameters: { docs: { description: { component: componentDescription('bs-logo') } } },
8
+ render: args => html `<bs-logo variant=${args.variant} background=${args.background} src=${args.src} alt=${args.alt}></bs-logo>`,
9
+ argTypes: {
10
+ variant: { control: 'select', options: variants, description: propDescription('bs-logo', 'variant') },
11
+ background: { control: 'select', options: backgrounds, description: propDescription('bs-logo', 'background') },
12
+ src: { control: 'text', description: propDescription('bs-logo', 'src') },
13
+ alt: { control: 'text', description: propDescription('bs-logo', 'alt') },
14
+ },
15
+ args: {
16
+ variant: 'full',
17
+ background: 'auto',
18
+ src: '',
19
+ alt: '',
20
+ },
21
+ };
22
+ export default meta;
23
+ export const Full = {
24
+ name: 'Full (light)',
25
+ };
26
+ // `data-theme="dark"` is set on a wrapper scoped to just this story, NOT via a globals override on
27
+ // the toolbar's Theme switch -- that switch's decorator (see .storybook/preview.ts) sets the
28
+ // attribute on the shared document root, which breaks down on this component's Docs page (every
29
+ // story renders together in one document there, so one story forcing a document-wide theme while
30
+ // its siblings render under the *other* theme thrashes). A local wrapper gets the identical CSS
31
+ // custom property cascade (tokens.css's dark block matches any `[data-theme="dark"]` element, not
32
+ // specifically <html>) without touching shared state. background is left at its "auto" default
33
+ // (via args below) so this demonstrates the logo following the ambient theme on its own, the same
34
+ // way every other --bs-* token already does (see the CSS bridge in src/global/base.css).
35
+ export const FullAutoDark = {
36
+ name: 'Full (auto, dark theme)',
37
+ render: args => html `
38
+ <div data-theme="dark" style="background: var(--bs-surface-base); padding: 24px; display: inline-flex;">
39
+ <bs-logo variant=${args.variant} background=${args.background}></bs-logo>
40
+ </div>
41
+ `,
42
+ };
43
+ // Pins the dark asset explicitly via background="dark", regardless of the page's own theme --
44
+ // for a consumer that places this on a dark surface without setting [data-theme="dark"] itself.
45
+ // Rendered on a manually dark canvas (not the global theme switch) to prove the override doesn't
46
+ // depend on that switch at all.
47
+ export const FullDark = {
48
+ name: 'Full (dark, explicit)',
49
+ args: { background: 'dark' },
50
+ render: args => html `
51
+ <div style="background: var(--bs-surface-inverse); padding: 24px; display: inline-flex;">
52
+ <bs-logo variant=${args.variant} background=${args.background}></bs-logo>
53
+ </div>
54
+ `,
55
+ };
56
+ export const Mark = {
57
+ name: 'Mark',
58
+ args: { variant: 'mark' },
59
+ };
60
+ // A consumer-supplied logo (e.g. fetched at runtime from a service like brand.dev) instead of the
61
+ // built-in BrandSync assets -- this component only renders the image, it never fetches it itself.
62
+ export const Custom = {
63
+ name: 'Custom (consumer-supplied image)',
64
+ args: {
65
+ variant: 'custom',
66
+ src: 'https://placehold.co/160x44/0062c1/white?text=Acme+Co',
67
+ alt: 'Acme Co',
68
+ },
69
+ };