@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
@@ -0,0 +1,188 @@
1
+ import { h } from "@stencil/core";
2
+ /**
3
+ * The top-level navigation bar for a page: the BrandSync logo plus two consumer-provided slots
4
+ * for menu/action content (e.g. `bs-button`/`bs-icon-button` elements).
5
+ *
6
+ * ## When to use
7
+ * - The persistent top bar of an application, above the page content.
8
+ *
9
+ * ## When not to use
10
+ * - The header of a Genie AI chat panel -- use `bs-chatbot-header` instead, which is purpose-built
11
+ * for that narrower layout and its own fixed action buttons.
12
+ *
13
+ * `alignment` controls both whether the logo renders and how the two slots are laid out:
14
+ * - `default` (default): logo on the left, `left` slot content immediately after it, `right` slot
15
+ * content pushed to the far right.
16
+ * - `center`: logo and `right` slot both grow equally (`flex: 1`), which centers the `left` slot
17
+ * content in the middle of the bar.
18
+ * - `with-navigation-drawer`: no logo at all (this variant assumes a nav-drawer toggle is the
19
+ * leftmost thing on the page instead) -- `left` slot content starts at the bar's own left edge,
20
+ * `right` slot content pushed to the far right.
21
+ *
22
+ * @slot left - Menu/action content immediately after the logo (or, in `with-navigation-drawer`
23
+ * mode, at the bar's left edge). Typically one or more `bs-button`/`bs-icon-button` elements.
24
+ * @slot right - Menu/action content pushed to the bar's far right.
25
+ * @part logo - The BrandSync brand mark, rendered via a nested `bs-logo` element (`part="logo"` is
26
+ * set directly on that element -- the same pattern `bs-attachment` uses for its own nested
27
+ * `bs-icon-button`'s `remove` part -- so `bs-navigation-header::part(logo)` still targets it
28
+ * directly, no forwarding needed). Not rendered in `with-navigation-drawer` mode.
29
+ * @part left - The wrapper around the `left` slot.
30
+ * @part right - The wrapper around the `right` slot.
31
+ * @part skip-link - The "Skip to main content" link (only rendered when `skipToContentHref` is set).
32
+ */
33
+ // Note: this component's CSS Custom Properties are documented via @prop comments in
34
+ // bs-navigation-header.css, not here.
35
+ export class BsNavigationHeader {
36
+ /** Controls whether the logo renders and how the `left`/`right` slots are laid out -- see the
37
+ * class doc above for the three variants' exact behavior. */
38
+ alignment = 'default';
39
+ /** Accessible label for the header landmark, useful when a page has more than one `<header>`
40
+ * (e.g. this one plus a page-specific sub-header) and screen reader users need to tell them
41
+ * apart in the landmarks list. */
42
+ ariaLabel = null;
43
+ /**
44
+ * Fragment/URL to jump to when the "Skip to main content" link is activated (e.g.
45
+ * `#main-content`, matching an id on your page's main landmark). Unset by default -- the link
46
+ * is opt-in rather than pointing at a guessed default id, since a skip link to a target that
47
+ * doesn't exist on the consumer's page is worse than no skip link at all (it silently does
48
+ * nothing when activated). Set this to the same id your page's `<main>` (or equivalent) already
49
+ * has to enable it.
50
+ */
51
+ skipToContentHref = null;
52
+ /** Link text for the skip-to-content link. Only rendered when `skipToContentHref` is set. */
53
+ skipToContentLabel = 'Skip to main content';
54
+ /** Forwarded straight to the internal `bs-logo`'s own `background` prop. Defaults to `"auto"`,
55
+ * which follows the ambient `[data-theme="dark"]` state automatically (see `bs-logo`'s own
56
+ * docs) -- so if this bar ends up on a dark surface via the normal theming mechanism, the logo
57
+ * switches to its dedicated dark-background asset with no wiring needed. Set `"light"`/`"dark"`
58
+ * explicitly only if you've overridden `--bs-navigation-header-bg` to something dark yourself
59
+ * *without* setting `[data-theme="dark"]`, and need to pin the logo regardless of theme. */
60
+ logoBackground = 'auto';
61
+ render() {
62
+ const showLogo = this.alignment !== 'with-navigation-drawer';
63
+ const rootClasses = `bs-navigation-header bs-navigation-header--${this.alignment}`;
64
+ return (h("header", { key: '7edb19100328942a082a3f35b0b6202effacd9df', class: rootClasses, "aria-label": this.ariaLabel ?? undefined }, this.skipToContentHref && (h("a", { key: 'db181c2823ae10bad5769c4578f8d560769330b8', part: "skip-link", class: "bs-navigation-header__skip-link", href: this.skipToContentHref }, this.skipToContentLabel)), showLogo && (h("bs-logo", { key: '618b592c7d37bfb9f1882e98153277bc833d15ea', part: "logo", class: "bs-navigation-header__logo", variant: "full", background: this.logoBackground })), h("div", { key: '2f2d14ec0b410d6ad6ef9cbcf6aebe1336d25f89', part: "left", class: "bs-navigation-header__left" }, h("slot", { key: 'cad41138dd5411480eaccebef01f5d8ddc20ef6c', name: "left" })), h("div", { key: '59d65743ae936910e889d9d74b25896d5e4b61dd', part: "right", class: "bs-navigation-header__right" }, h("slot", { key: '21b7aeff58441efdd504b0bbabc3fa96e99906e5', name: "right" }))));
65
+ }
66
+ static get is() { return "bs-navigation-header"; }
67
+ static get encapsulation() { return "shadow"; }
68
+ static get originalStyleUrls() {
69
+ return {
70
+ "$": ["bs-navigation-header.css"]
71
+ };
72
+ }
73
+ static get styleUrls() {
74
+ return {
75
+ "$": ["bs-navigation-header.css"]
76
+ };
77
+ }
78
+ static get properties() {
79
+ return {
80
+ "alignment": {
81
+ "type": "string",
82
+ "mutable": false,
83
+ "complexType": {
84
+ "original": "BsNavigationHeaderAlignment",
85
+ "resolved": "\"center\" | \"default\" | \"with-navigation-drawer\"",
86
+ "references": {
87
+ "BsNavigationHeaderAlignment": {
88
+ "location": "local",
89
+ "path": "/Users/vivka/brandsync-web-components/src/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.tsx",
90
+ "id": "src/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.tsx::BsNavigationHeaderAlignment"
91
+ }
92
+ }
93
+ },
94
+ "required": false,
95
+ "optional": false,
96
+ "docs": {
97
+ "tags": [],
98
+ "text": "Controls whether the logo renders and how the `left`/`right` slots are laid out -- see the\nclass doc above for the three variants' exact behavior."
99
+ },
100
+ "getter": false,
101
+ "setter": false,
102
+ "reflect": false,
103
+ "attribute": "alignment",
104
+ "defaultValue": "'default'"
105
+ },
106
+ "ariaLabel": {
107
+ "type": "string",
108
+ "mutable": false,
109
+ "complexType": {
110
+ "original": "string | null",
111
+ "resolved": "string",
112
+ "references": {}
113
+ },
114
+ "required": false,
115
+ "optional": false,
116
+ "docs": {
117
+ "tags": [],
118
+ "text": "Accessible label for the header landmark, useful when a page has more than one `<header>`\n(e.g. this one plus a page-specific sub-header) and screen reader users need to tell them\napart in the landmarks list."
119
+ },
120
+ "getter": false,
121
+ "setter": false,
122
+ "reflect": false,
123
+ "attribute": "aria-label",
124
+ "defaultValue": "null"
125
+ },
126
+ "skipToContentHref": {
127
+ "type": "string",
128
+ "mutable": false,
129
+ "complexType": {
130
+ "original": "string | null",
131
+ "resolved": "string",
132
+ "references": {}
133
+ },
134
+ "required": false,
135
+ "optional": false,
136
+ "docs": {
137
+ "tags": [],
138
+ "text": "Fragment/URL to jump to when the \"Skip to main content\" link is activated (e.g.\n`#main-content`, matching an id on your page's main landmark). Unset by default -- the link\nis opt-in rather than pointing at a guessed default id, since a skip link to a target that\ndoesn't exist on the consumer's page is worse than no skip link at all (it silently does\nnothing when activated). Set this to the same id your page's `<main>` (or equivalent) already\nhas to enable it."
139
+ },
140
+ "getter": false,
141
+ "setter": false,
142
+ "reflect": false,
143
+ "attribute": "skip-to-content-href",
144
+ "defaultValue": "null"
145
+ },
146
+ "skipToContentLabel": {
147
+ "type": "string",
148
+ "mutable": false,
149
+ "complexType": {
150
+ "original": "string",
151
+ "resolved": "string",
152
+ "references": {}
153
+ },
154
+ "required": false,
155
+ "optional": false,
156
+ "docs": {
157
+ "tags": [],
158
+ "text": "Link text for the skip-to-content link. Only rendered when `skipToContentHref` is set."
159
+ },
160
+ "getter": false,
161
+ "setter": false,
162
+ "reflect": false,
163
+ "attribute": "skip-to-content-label",
164
+ "defaultValue": "'Skip to main content'"
165
+ },
166
+ "logoBackground": {
167
+ "type": "string",
168
+ "mutable": false,
169
+ "complexType": {
170
+ "original": "'auto' | 'light' | 'dark'",
171
+ "resolved": "\"auto\" | \"dark\" | \"light\"",
172
+ "references": {}
173
+ },
174
+ "required": false,
175
+ "optional": false,
176
+ "docs": {
177
+ "tags": [],
178
+ "text": "Forwarded straight to the internal `bs-logo`'s own `background` prop. Defaults to `\"auto\"`,\nwhich follows the ambient `[data-theme=\"dark\"]` state automatically (see `bs-logo`'s own\ndocs) -- so if this bar ends up on a dark surface via the normal theming mechanism, the logo\nswitches to its dedicated dark-background asset with no wiring needed. Set `\"light\"`/`\"dark\"`\nexplicitly only if you've overridden `--bs-navigation-header-bg` to something dark yourself\n*without* setting `[data-theme=\"dark\"]`, and need to pin the logo regardless of theme."
179
+ },
180
+ "getter": false,
181
+ "setter": false,
182
+ "reflect": false,
183
+ "attribute": "logo-background",
184
+ "defaultValue": "'auto'"
185
+ }
186
+ };
187
+ }
188
+ }
@@ -0,0 +1,446 @@
1
+ import { html } from "lit";
2
+ import { ifDefined } from "lit/directives/if-defined.js";
3
+ import { componentDescription, propDescription } from "../../../../stories-utils";
4
+ const alignments = ['default', 'center', 'with-navigation-drawer'];
5
+ const leftContentTypes = ['buttons', 'tabs'];
6
+ const searchIcon = html `
7
+ <svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
8
+ <circle cx="7" cy="7" r="5" stroke="currentColor" stroke-width="1.5" />
9
+ <path d="M11 11L14.5 14.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
10
+ </svg>
11
+ `;
12
+ const bellIcon = html `
13
+ <svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
14
+ <path
15
+ d="M3 12.5H13L11.5 10.5V6.5C11.5 4.29086 9.98528 2.5 8 2.5C6.01472 2.5 4.5 4.29086 4.5 6.5V10.5L3 12.5Z"
16
+ stroke="currentColor"
17
+ stroke-width="1.5"
18
+ stroke-linejoin="round"
19
+ />
20
+ <path d="M6.5 13.5C6.5 14.3284 7.17157 15 8 15C8.82843 15 9.5 14.3284 9.5 13.5" stroke="currentColor" stroke-width="1.5" />
21
+ </svg>
22
+ `;
23
+ const switcherIcon = html `
24
+ <svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
25
+ <rect x="2" y="2" width="4.5" height="4.5" rx="1" stroke="currentColor" stroke-width="1.5" />
26
+ <rect x="9.5" y="2" width="4.5" height="4.5" rx="1" stroke="currentColor" stroke-width="1.5" />
27
+ <rect x="2" y="9.5" width="4.5" height="4.5" rx="1" stroke="currentColor" stroke-width="1.5" />
28
+ <rect x="9.5" y="9.5" width="4.5" height="4.5" rx="1" stroke="currentColor" stroke-width="1.5" />
29
+ </svg>
30
+ `;
31
+ // appShell()'s own item icons -- same slot="icon"/viewBox="0 0 24 24"/stroke-width="1.5" convention
32
+ // as bs-navigation-drawer.stories.ts's own bookIcon/gridIcon/accessibilityIcon (not reused directly
33
+ // -- that's a different file/module, and these are semantically matched to "Dashboard"/"Reports"/
34
+ // "Settings" specifically rather than the Foundation/Components docs-nav labels those were drawn
35
+ // for).
36
+ const dashboardIcon = html `
37
+ <svg slot="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
38
+ <rect x="3.5" y="3.5" width="8" height="8" rx="1" stroke="currentColor" stroke-width="1.5" />
39
+ <rect x="13.5" y="3.5" width="7" height="4" rx="1" stroke="currentColor" stroke-width="1.5" />
40
+ <rect x="13.5" y="9.5" width="7" height="8.5" rx="1" stroke="currentColor" stroke-width="1.5" />
41
+ <rect x="3.5" y="13.5" width="8" height="4.5" rx="1" stroke="currentColor" stroke-width="1.5" />
42
+ </svg>
43
+ `;
44
+ const reportsIcon = html `
45
+ <svg slot="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
46
+ <path d="M4 20V10M4 20H20M10 20V6M16 20V13" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
47
+ </svg>
48
+ `;
49
+ const settingsIcon = html `
50
+ <svg slot="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
51
+ <circle cx="12" cy="12" r="3" stroke="currentColor" stroke-width="1.5" />
52
+ <path
53
+ d="M12 2.5V5M12 19V21.5M4.22 4.22L5.94 5.94M18.06 18.06L19.78 19.78M2.5 12H5M19 12H21.5M4.22 19.78L5.94 18.06M18.06 5.94L19.78 4.22"
54
+ stroke="currentColor"
55
+ stroke-width="1.5"
56
+ stroke-linecap="round"
57
+ />
58
+ </svg>
59
+ `;
60
+ const LEFT_SLOT_BUTTONS = html `
61
+ <bs-button variant="subtle" size="sm">Products</bs-button>
62
+ <bs-button variant="subtle" size="sm">Solutions</bs-button>
63
+ <bs-button variant="subtle" size="sm">Pricing</bs-button>
64
+ `;
65
+ const LEFT_SLOT_TABS = html `
66
+ <bs-tabs type="bs-tab">
67
+ <bs-tab selected>Products</bs-tab>
68
+ <bs-tab>Solutions</bs-tab>
69
+ <bs-tab>Pricing</bs-tab>
70
+ </bs-tabs>
71
+ `;
72
+ // This is a Storybook-only demo toggle, not a real prop on bs-navigation-header itself -- the
73
+ // component's `left`/`right` slots already accept arbitrary content (buttons, tabs, links,
74
+ // anything), so baking a specific content choice into the actual component's API would narrow it
75
+ // unnecessarily. This just switches what the story slots in.
76
+ const leftSlotContent = (type) => (type === 'tabs' ? LEFT_SLOT_TABS : LEFT_SLOT_BUTTONS);
77
+ // Icon-only buttons (no visible text label) get a hover/focus tooltip repeating their
78
+ // aria-label, same convention as bs-chatbot-header's own action buttons -- bs-tooltip is purely
79
+ // presentational (see its own class doc), so the show/hide-on-hover/focus-within CSS below is this
80
+ // story's responsibility, not something bs-navigation-header or bs-tooltip provide automatically.
81
+ const RIGHT_SLOT = html `
82
+ <style>
83
+ .story-nav-header-tooltip-wrapper {
84
+ position: relative;
85
+ display: inline-flex;
86
+ }
87
+ .story-nav-header-tooltip {
88
+ position: absolute;
89
+ top: 100%;
90
+ left: 50%;
91
+ transform: translateX(-50%);
92
+ margin-top: var(--bs-spacing-100);
93
+ opacity: 0;
94
+ visibility: hidden;
95
+ transition: opacity var(--bs-duration-fast) var(--bs-easing-standard);
96
+ transition-delay: 0s;
97
+ white-space: nowrap;
98
+ z-index: 1;
99
+ }
100
+ .story-nav-header-tooltip-wrapper:hover .story-nav-header-tooltip,
101
+ .story-nav-header-tooltip-wrapper:focus-within .story-nav-header-tooltip {
102
+ opacity: 1;
103
+ visibility: visible;
104
+ transition-delay: var(--bs-duration-slow);
105
+ }
106
+ /* bs-badge's default shape is a pill sized for label text (32px tall, 16px side padding) --
107
+ too large for a compact unread-count overlay. Restyled via its own ::part(container) (the
108
+ sanctioned external-customization surface for shadow-DOM parts, per CONVENTIONS.md), not a
109
+ new component or a fork of bs-badge -- same component, same "error" color variant, just a
110
+ tighter shape for this corner-badge placement, matching the "Numeric" badge shape shown in
111
+ the Brandsync design system's own Badge spec.
112
+ Absolutely positioned relative to the shared tooltip wrapper above so it doesn't shift icon
113
+ layout. bs-icon-button size="sm" is a 40px hit area around a 16px icon glyph (12px of
114
+ padding on each side), so top/right are offset from the WRAPPER's own corner, not the
115
+ button's -- centering the badge on the visible bell glyph's corner (12px inset, minus half
116
+ the badge's own 16px) instead of the button's much larger outer edge, which left it looking
117
+ like a disconnected, oversized blob floating in the button's padding. */
118
+ .story-nav-header-badge {
119
+ /* bs-badge's "error" variant reads --bs-badge-bg-error-container/--bs-badge-text-error --
120
+ the subtle/light error style. A notification count needs the solid, high-contrast look
121
+ instead, and the vendored tokens already define exactly that pairing
122
+ (--bs-badge-bg-error, --text-inverse) -- this just points the two custom properties
123
+ bs-badge.css actually reads at those solid values instead, for this one instance. */
124
+ --bs-badge-bg-error-container: var(--bs-badge-bg-error);
125
+ --bs-badge-text-error: var(--bs-text-inverse);
126
+ }
127
+ .story-nav-header-badge::part(container) {
128
+ position: absolute;
129
+ top: 4px;
130
+ right: 4px;
131
+ height: var(--bs-font-size-md);
132
+ min-width: var(--bs-font-size-md);
133
+ padding: 0 3px;
134
+ font-size: var(--bs-font-size-2xs);
135
+ line-height: var(--bs-font-size-md);
136
+ border: 2px solid var(--bs-surface-base);
137
+ box-sizing: border-box;
138
+ }
139
+ </style>
140
+ <span class="story-nav-header-tooltip-wrapper">
141
+ <bs-icon-button size="sm" variant="subtle" aria-label="Search">${searchIcon}</bs-icon-button>
142
+ <bs-tooltip class="story-nav-header-tooltip" placement="top" aria-hidden="true">Search</bs-tooltip>
143
+ </span>
144
+ <span class="story-nav-header-tooltip-wrapper">
145
+ <bs-icon-button size="sm" variant="subtle" aria-label="Notifications, 4 unread">${bellIcon}</bs-icon-button>
146
+ <bs-badge class="story-nav-header-badge" variant="error" aria-hidden="true">4</bs-badge>
147
+ <bs-tooltip class="story-nav-header-tooltip" placement="top" aria-hidden="true">Notifications</bs-tooltip>
148
+ </span>
149
+ <bs-button variant="primary" size="sm">Sign in</bs-button>
150
+ `;
151
+ // "Switcher" here means a workspace/account switcher panel that slides in from the right edge of
152
+ // the viewport when its trigger icon is clicked -- not a real bs-* component (no generic
153
+ // slide-in-from-right panel exists in this library yet; bs-dialog is a centered dialog, not this),
154
+ // so this is plain story-only markup: a fixed-position aside toggled via a direct classList
155
+ // change on click, not lit's own reactive re-render (a Storybook `render` function re-runs on
156
+ // args changes, not on arbitrary DOM events, so state that needs to survive a click has to live in
157
+ // the DOM itself here, the same way the tooltip hover states above are pure CSS rather than JS
158
+ // state).
159
+ const SWITCHER_PANEL = html `
160
+ <style>
161
+ .story-switcher-backdrop {
162
+ position: fixed;
163
+ inset: 0;
164
+ background: rgb(0 0 0 / 32%);
165
+ opacity: 0;
166
+ visibility: hidden;
167
+ transition:
168
+ opacity var(--bs-duration-default) var(--bs-easing-standard),
169
+ visibility var(--bs-duration-default) var(--bs-easing-standard);
170
+ z-index: 10;
171
+ }
172
+ .story-switcher-panel {
173
+ position: fixed;
174
+ top: 0;
175
+ right: 0;
176
+ bottom: 0;
177
+ width: 320px;
178
+ max-width: 100%;
179
+ background: var(--bs-surface-base);
180
+ box-shadow: var(--bs-shadow-lg, 0 8px 24px rgb(0 0 0 / 20%));
181
+ transform: translateX(100%);
182
+ transition: transform var(--bs-duration-default) var(--bs-easing-standard);
183
+ z-index: 11;
184
+ display: flex;
185
+ flex-direction: column;
186
+ padding: var(--bs-spacing-300);
187
+ gap: var(--bs-spacing-200);
188
+ box-sizing: border-box;
189
+ }
190
+ .story-switcher-backdrop.story-switcher--open {
191
+ opacity: 1;
192
+ visibility: visible;
193
+ }
194
+ .story-switcher-panel.story-switcher--open {
195
+ transform: translateX(0);
196
+ }
197
+ .story-switcher-heading {
198
+ display: flex;
199
+ align-items: center;
200
+ justify-content: space-between;
201
+ font-family: var(--bs-typography-font-family-heading);
202
+ font-weight: var(--bs-font-weight-bold);
203
+ font-size: var(--bs-font-size-md);
204
+ color: var(--bs-text-default);
205
+ }
206
+ .story-switcher-list {
207
+ display: flex;
208
+ flex-direction: column;
209
+ gap: var(--bs-spacing-100);
210
+ }
211
+ </style>
212
+ <div class="story-switcher-backdrop" @click=${(e) => toggleSwitcher(e, false)}></div>
213
+ <aside class="story-switcher-panel" aria-label="Switch workspace">
214
+ <div class="story-switcher-heading">
215
+ Switch workspace
216
+ <bs-icon-button size="sm" variant="subtle" aria-label="Close" @click=${(e) => toggleSwitcher(e, false)}>
217
+ <svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
218
+ <path d="M3 3L13 13M13 3L3 13" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
219
+ </svg>
220
+ </bs-icon-button>
221
+ </div>
222
+ <div class="story-switcher-list">
223
+ <bs-button variant="subtle">Acme Corp</bs-button>
224
+ <bs-button variant="subtle">Acme Corp -- Staging</bs-button>
225
+ <bs-button variant="subtle">Personal Workspace</bs-button>
226
+ </div>
227
+ </aside>
228
+ `;
229
+ // Shared by both the backdrop and every open/close trigger -- walks up to the common app-shell
230
+ // wrapper so this works regardless of which story renders it in, then toggles both halves in
231
+ // lockstep (only the panel needs the open class for its slide-in transform, but the backdrop
232
+ // needs its own visibility toggle too since a transparent-but-still-fixed backdrop would
233
+ // otherwise keep eating clicks).
234
+ function toggleSwitcher(e, open) {
235
+ const root = e.currentTarget.closest('.story-nav-header-shell, body') ?? document.body;
236
+ root.querySelector('.story-switcher-backdrop')?.classList.toggle('story-switcher--open', open);
237
+ root.querySelector('.story-switcher-panel')?.classList.toggle('story-switcher--open', open);
238
+ }
239
+ const RIGHT_SLOT_WITH_SWITCHER = html `
240
+ ${RIGHT_SLOT}
241
+ <span class="story-nav-header-tooltip-wrapper">
242
+ <bs-icon-button size="sm" variant="subtle" aria-label="Switch workspace" @click=${(e) => toggleSwitcher(e, true)}>
243
+ ${switcherIcon}
244
+ </bs-icon-button>
245
+ <bs-tooltip class="story-nav-header-tooltip" placement="top" aria-hidden="true">Switch workspace</bs-tooltip>
246
+ </span>
247
+ ${SWITCHER_PANEL}
248
+ `;
249
+ // Shared by the "with Side Nav" stories below -- a real app-shell layout, not just the header in
250
+ // isolation: this header spans the FULL viewport width across the top (a plain flex column), with
251
+ // a row below it holding the full-height bs-navigation-drawer on the left and the content area
252
+ // filling the rest. The drawer is left at its default `collapsible=true` here (no attribute set at
253
+ // all) so its own collapse toggle renders and actually works in these demos, same as any other
254
+ // real page using both components together.
255
+ //
256
+ // `?collapsed=` -- lit's boolean directive, NOT plain `collapsed=` interpolation. This ONLY sets
257
+ // the drawer's *initial* collapsed state; once mounted, the drawer's own mutable `collapsed` prop
258
+ // takes over (clicking its toggle flips it directly, per that component's own docs), independent
259
+ // of this story's args. bs-navigation-drawer.css's collapsed styling is a plain CSS
260
+ // attribute-presence selector (`:host([collapsed])`), which matches on the attribute merely
261
+ // EXISTING, regardless of its value -- plain interpolation stringifies `false` to the literal
262
+ // attribute `collapsed="false"`, which is still *present*, so the drawer rendered as its 96px
263
+ // collapsed rail even when passed `false` (no visible title/search/items), until this was caught.
264
+ // The boolean directive is the only one of the two forms that actually omits the attribute for a
265
+ // falsy value.
266
+ //
267
+ // `drawerShowLogo` defaults `true` and maps to `show-logo`, which -- unlike `collapsed` above -- is
268
+ // a plain JS conditional in bs-navigation-drawer.tsx's render(), not a CSS presence selector, so
269
+ // plain interpolation (not the `?attr=` boolean directive) is the correct form here instead.
270
+ function appShell(headerContent, drawerCollapsed = false, drawerShowLogo = true) {
271
+ return html `
272
+ <div class="story-nav-header-shell" style="height: 100vh; display: flex; flex-direction: column;">
273
+ ${headerContent}
274
+ <div style="flex: 1; min-height: 0; display: flex;">
275
+ <bs-navigation-drawer heading="Main Menu" ?collapsed=${drawerCollapsed} show-logo=${drawerShowLogo}>
276
+ <bs-input slot="search" type="search" placeholder="Search"></bs-input>
277
+ <bs-navigation-drawer-item selected>${dashboardIcon} Dashboard</bs-navigation-drawer-item>
278
+ <bs-navigation-drawer-item>${reportsIcon} Reports</bs-navigation-drawer-item>
279
+ <bs-navigation-drawer-item>${settingsIcon} Settings</bs-navigation-drawer-item>
280
+ </bs-navigation-drawer>
281
+ <main style="flex: 1; min-width: 0; overflow: auto; padding: var(--bs-spacing-400); font-family: sans-serif; color: var(--bs-text-muted);">
282
+ Page content
283
+ </main>
284
+ </div>
285
+ </div>
286
+ `;
287
+ }
288
+ const meta = {
289
+ title: 'UI Shell/bs-navigation-header',
290
+ parameters: { docs: { description: { component: componentDescription('bs-navigation-header') } }, layout: 'fullscreen' },
291
+ render: args => html `
292
+ <bs-navigation-header
293
+ alignment=${args.alignment}
294
+ skip-to-content-href=${ifDefined(args.skipToContentHref || undefined)}
295
+ logo-background=${args.logoBackground}
296
+ >
297
+ <div slot="left" style="display: contents;">${leftSlotContent(args.leftContentType)}</div>
298
+ <div slot="right" style="display: contents;">${RIGHT_SLOT}</div>
299
+ </bs-navigation-header>
300
+ `,
301
+ argTypes: {
302
+ alignment: { control: 'select', options: alignments, description: propDescription('bs-navigation-header', 'alignment') },
303
+ skipToContentHref: { control: 'text', description: propDescription('bs-navigation-header', 'skipToContentHref') },
304
+ leftContentType: {
305
+ control: 'select',
306
+ options: leftContentTypes,
307
+ description: 'Storybook-only demo toggle: what to render in the `left` slot (not a real prop on bs-navigation-header -- the slot accepts anything).',
308
+ },
309
+ logoBackground: { control: 'select', options: ['auto', 'light', 'dark'], description: propDescription('bs-navigation-header', 'logoBackground') },
310
+ },
311
+ args: {
312
+ alignment: 'default',
313
+ skipToContentHref: '',
314
+ leftContentType: 'buttons',
315
+ logoBackground: 'auto',
316
+ },
317
+ };
318
+ export default meta;
319
+ // Story naming follows the "Header Base [with X [and Y]]" convention: the bare bar first, then
320
+ // each slot added on its own, then combined, then the alignment/content variants layered on top
321
+ // of the fully-populated ("Navigation and Actions") bar.
322
+ export const HeaderBase = {
323
+ name: 'Header Base',
324
+ render: args => html `<bs-navigation-header alignment=${args.alignment}></bs-navigation-header>`,
325
+ };
326
+ export const HeaderBaseWithNavigation = {
327
+ name: 'Header Base with Navigation',
328
+ render: args => html `
329
+ <bs-navigation-header alignment=${args.alignment}>
330
+ <div slot="left" style="display: contents;">${leftSlotContent(args.leftContentType)}</div>
331
+ </bs-navigation-header>
332
+ `,
333
+ };
334
+ export const HeaderBaseWithActions = {
335
+ name: 'Header Base with Actions',
336
+ render: args => html `
337
+ <bs-navigation-header alignment=${args.alignment}>
338
+ <div slot="right" style="display: contents;">${RIGHT_SLOT}</div>
339
+ </bs-navigation-header>
340
+ `,
341
+ };
342
+ export const HeaderBaseWithNavigationAndActions = {
343
+ name: 'Header Base with Navigation and Actions',
344
+ };
345
+ export const HeaderBaseWithNavigationAndActionsCentered = {
346
+ name: 'Header Base with Navigation and Actions, Centered',
347
+ args: { alignment: 'center' },
348
+ };
349
+ export const HeaderBaseWithNavigationAndActionsNoLogo = {
350
+ name: 'Header Base with Navigation and Actions (No Logo)',
351
+ args: { alignment: 'with-navigation-drawer' },
352
+ };
353
+ export const HeaderBaseWithNavigationAndActionsTabs = {
354
+ name: 'Header Base with Navigation and Actions, Tabs',
355
+ args: { leftContentType: 'tabs' },
356
+ };
357
+ export const HeaderBaseDark = {
358
+ name: 'Header Base with Navigation and Actions (Dark)',
359
+ // `data-theme="dark"` is set on a wrapper scoped to just this story, NOT via a globals override
360
+ // on the toolbar's Theme switch -- that switch's decorator (see .storybook/preview.ts) sets the
361
+ // attribute on the shared document root, which is fine in isolation but breaks down on this
362
+ // component's Docs page: every story renders together in one document there, so one story
363
+ // forcing a document-wide theme while its siblings render alongside it under the *other* theme
364
+ // causes exactly the kind of thrash/hang a shared mutable global produces. A local wrapper gets
365
+ // the identical CSS custom property cascade (tokens.css's dark block matches any
366
+ // `[data-theme="dark"]` element, not specifically <html>) without touching shared state.
367
+ // logoBackground is left at its "auto" default here deliberately -- this story demonstrates that
368
+ // no manual prop is needed for the logo to follow the theme; see logoBackground's own docs for
369
+ // the explicit-override case.
370
+ render: args => html `
371
+ <div data-theme="dark" style="background: var(--bs-surface-base);">
372
+ <bs-navigation-header alignment=${args.alignment} logo-background=${args.logoBackground}>
373
+ <div slot="left" style="display: contents;">${leftSlotContent(args.leftContentType)}</div>
374
+ <div slot="right" style="display: contents;">${RIGHT_SLOT}</div>
375
+ </bs-navigation-header>
376
+ </div>
377
+ `,
378
+ };
379
+ export const HeaderBaseWithSkipLink = {
380
+ name: 'Header Base with Skip Link',
381
+ // Press Tab from the top of this story to focus the (normally offscreen) skip link and see it
382
+ // come into view, then Enter/Space to jump straight to the #main-content landmark below,
383
+ // bypassing the left/right slot content in between.
384
+ args: { skipToContentHref: '#main-content' },
385
+ render: args => html `
386
+ <div>
387
+ <bs-navigation-header alignment=${args.alignment} skip-to-content-href=${ifDefined(args.skipToContentHref || undefined)}>
388
+ <div slot="left" style="display: contents;">${leftSlotContent(args.leftContentType)}</div>
389
+ <div slot="right" style="display: contents;">${RIGHT_SLOT}</div>
390
+ </bs-navigation-header>
391
+ <main id="main-content" tabindex="-1" style="padding: 24px; font-family: sans-serif;">
392
+ <h1 style="margin: 0;">Main content</h1>
393
+ <p>This is the landmark the skip link jumps to.</p>
394
+ </main>
395
+ </div>
396
+ `,
397
+ };
398
+ export const HeaderBaseWithActionsAndSwitcher = {
399
+ name: 'Header Base with Actions and Switcher',
400
+ // Click the grid icon (the rightmost action, next to Notifications) to open the "switcher"
401
+ // panel -- a workspace/account switcher that slides in from the right edge of the viewport. See
402
+ // RIGHT_SLOT_WITH_SWITCHER's own comment for why this is plain story markup rather than a new
403
+ // library component.
404
+ render: args => html `
405
+ <bs-navigation-header alignment=${args.alignment}>
406
+ <div slot="left" style="display: contents;">${leftSlotContent(args.leftContentType)}</div>
407
+ <div slot="right" style="display: contents;">${RIGHT_SLOT_WITH_SWITCHER}</div>
408
+ </bs-navigation-header>
409
+ `,
410
+ };
411
+ export const HeaderBaseWithSideNav = {
412
+ name: 'Header Base with Side Nav',
413
+ // The real app-shell composition: this header (alignment="with-navigation-drawer", so it
414
+ // doesn't render its own logo -- the drawer's logo already covers that) alongside a full,
415
+ // expanded bs-navigation-drawer. Bare header otherwise (no left/right slot content) to isolate
416
+ // just the layout; see "Header Base with Navigation, Actions and Side Nav" below for the fully
417
+ // populated version.
418
+ args: { alignment: 'with-navigation-drawer' },
419
+ render: args => appShell(html `<bs-navigation-header alignment=${args.alignment}></bs-navigation-header>`),
420
+ };
421
+ export const HeaderBaseWithNavigationActionsAndSideNav = {
422
+ name: 'Header Base with Navigation, Actions and Side Nav',
423
+ // Same app-shell composition as "Header Base with Side Nav", but with the header's own
424
+ // left/right slots populated too -- the fully-assembled real-world shape of this layout.
425
+ args: { alignment: 'with-navigation-drawer' },
426
+ render: args => appShell(html `
427
+ <bs-navigation-header alignment=${args.alignment}>
428
+ <div slot="left" style="display: contents;">${leftSlotContent(args.leftContentType)}</div>
429
+ <div slot="right" style="display: contents;">${RIGHT_SLOT}</div>
430
+ </bs-navigation-header>
431
+ `),
432
+ };
433
+ export const HeaderBaseWithSideNavHeaderLogo = {
434
+ name: 'Header Base with Side Nav (Header Owns Logo)',
435
+ // The inverse pairing from the two stories above: this header keeps its OWN logo
436
+ // (alignment="default", not "with-navigation-drawer") and the drawer's is turned off instead
437
+ // (bs-navigation-drawer's showLogo={false}) -- so the brand mark still only ever appears once,
438
+ // just on the other side of the pairing. Useful when the header, not the drawer, is the piece
439
+ // that should carry brand identity in a given app's shell.
440
+ args: { alignment: 'default' },
441
+ render: args => appShell(html `
442
+ <bs-navigation-header alignment=${args.alignment}>
443
+ <div slot="right" style="display: contents;">${RIGHT_SLOT}</div>
444
+ </bs-navigation-header>
445
+ `, false, false),
446
+ };
@@ -1 +1 @@
1
- import{t as i,p as e,H as s,h as a}from"./p-D1cYtKyN.js";const t=e(class extends s{constructor(i){super(),!1!==i&&this.__registerHost(),this.__attachShadow()}render(){return a("div",{key:"ea1210d75f9f55f4ce31f0ecd434e28a0c3a6ae5",class:"bs-ai-disclaimer"},a("p",{key:"a4379d06096623a33254466c83d7a8342a1a61f6",part:"text",class:"bs-ai-disclaimer__text"},a("slot",{key:"4ceb6be62b06ddeae050ce84c92d511218791219"})))}static get style(){return":host{display:block;--bs-ai-disclaimer-padding-x:var(--bs-spacing-200);--bs-ai-disclaimer-text-color:var(--bs-text-secondary);--bs-ai-disclaimer-font-size:var(--bs-font-size-sm);--bs-ai-disclaimer-line-height:var(--bs-line-height-body-sm)}.bs-ai-disclaimer{box-sizing:border-box;display:flex;align-items:center;justify-content:center;padding:0 var(--bs-ai-disclaimer-padding-x);font-family:inherit}.bs-ai-disclaimer__text{margin:0;flex:1 0 0;min-width:0;color:var(--bs-ai-disclaimer-text-color);font-size:var(--bs-ai-disclaimer-font-size);line-height:calc(var(--bs-ai-disclaimer-line-height) * 1px);text-align:center;word-break:break-word}"}},[257,"bs-ai-disclaimer"]);function r(){"undefined"!=typeof customElements&&["bs-ai-disclaimer"].forEach((e=>{"bs-ai-disclaimer"===e&&(customElements.get(i(e))||customElements.define(i(e),t))}))}r();const c=t,d=r;export{c as BsAiDisclaimer,d as defineCustomElement}
1
+ import{t as i,p as e,H as s,h as a}from"./p-BJZYe7M4.js";const t=e(class extends s{constructor(i){super(),!1!==i&&this.__registerHost(),this.__attachShadow()}render(){return a("div",{key:"4ef6ca1bd71846f361322763d4a8a9b629da9c33",class:"bs-ai-disclaimer"},a("p",{key:"62ae8fe04dfcba8c357a4bc2e540a86c02faa961",part:"text",class:"bs-ai-disclaimer__text"},a("slot",{key:"229c78f58ac3a9868492e82434ff894a20f29613"})))}static get style(){return":host{display:block;--bs-ai-disclaimer-padding-x:var(--bs-spacing-200);--bs-ai-disclaimer-text-color:var(--bs-text-secondary);--bs-ai-disclaimer-font-size:var(--bs-font-size-sm);--bs-ai-disclaimer-line-height:var(--bs-line-height-body-sm)}.bs-ai-disclaimer{box-sizing:border-box;display:flex;align-items:center;justify-content:center;padding:0 var(--bs-ai-disclaimer-padding-x);font-family:inherit}.bs-ai-disclaimer__text{margin:0;flex:1 0 0;min-width:0;color:var(--bs-ai-disclaimer-text-color);font-size:var(--bs-ai-disclaimer-font-size);line-height:calc(var(--bs-ai-disclaimer-line-height) * 1px);text-align:center;word-break:break-word}"}},[257,"bs-ai-disclaimer"]);function r(){"undefined"!=typeof customElements&&["bs-ai-disclaimer"].forEach((e=>{"bs-ai-disclaimer"===e&&(customElements.get(i(e))||customElements.define(i(e),t))}))}r();const c=t,l=r;export{c as BsAiDisclaimer,l as defineCustomElement}