@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,281 @@
1
+ import { h } from "@stencil/core";
2
+ /**
3
+ * A left-side persistent navigation sidebar: the BrandSync logo, a "Main Menu" title with a
4
+ * collapse toggle, a reserved slot for a search field, and a scrollable list of nav items.
5
+ *
6
+ * ## When to use
7
+ * - The primary in-app navigation, shown alongside `bs-navigation-header` (typically that
8
+ * header's `with-navigation-drawer` alignment, which omits its own logo since this component
9
+ * already renders one -- or the reverse pairing, this drawer's own `showLogo={false}` alongside
10
+ * a header that keeps its logo instead, see that prop's own docs).
11
+ *
12
+ * ## When not to use
13
+ * - The top navigation bar itself -- use `bs-navigation-header` instead.
14
+ *
15
+ * This component renders a real `<nav>` landmark (no explicit `role` needed -- `<nav>` already
16
+ * carries the implicit `navigation` role), labeled via `aria-label={heading}` so the landmark
17
+ * still has a name even when collapsed (see below).
18
+ *
19
+ * `collapsed` narrows the drawer to a 96px icon-only rail, per Figma node 8028:135374
20
+ * ("Type=Collapsed"): the title text disappears, the logo swaps from the full "EG BrandSync"
21
+ * wordmark (`bs-logo variant="full"`) to the real icon-only mark (`bs-logo variant="mark"` -- a
22
+ * second, properly-designed asset, not a CSS crop of the full one) via CSS visibility toggling on
23
+ * both, the same `:host([collapsed])` attribute-selector pattern already used for the
24
+ * `search`/`search-trigger` swap below, the `search` slot is replaced by a compact built-in
25
+ * search-trigger button (this component can't meaningfully shrink arbitrary slotted search-field
26
+ * content down to icon size itself, so it emits `bsSearchClick` instead -- e.g. to open a full
27
+ * search overlay), and every top-level
28
+ * `bs-navigation-drawer-item`'s layout switches from icon-beside-label to icon-above-caption.
29
+ * That last part is real prop propagation, not a CSS trick: this component keeps each direct-child
30
+ * item's own `collapsed` prop in sync with its own (see `syncItemsCollapsed` below), the same
31
+ * direct-children-prop-sync approach `bs-tabs` already uses for coordinating `selected` across its
32
+ * `bs-tab` children. Clicking the toggle self-toggles `collapsed` (simple local UI state, not
33
+ * something needing cross-component coordination -- closer to `bs-switch`'s self-toggling
34
+ * `checked` than `bs-tab`'s non-self-toggling `selected`) and emits `bsCollapse` with the new
35
+ * value. The toggle's own caret icon does NOT rotate when collapsed -- Figma's collapsed mock
36
+ * reuses the identical left-pointing "CaretLeft" asset unchanged, confirmed by directly inspecting
37
+ * that state, so this deliberately does not add the same "flip on toggle" idiom the drawer item's
38
+ * own disclosure chevron does (that one really is an unconfirmed addition; this one was checked).
39
+ *
40
+ * @slot search - Reserved for a search field, e.g. a `bs-input type="search"`. This component
41
+ * does not build one itself. Hidden while `collapsed` (see above).
42
+ * @slot - Default slot: the scrollable list of nav items, typically one or more
43
+ * `bs-navigation-drawer-item` elements.
44
+ * @part logo - The wrapper around the BrandSync brand mark. Two of these exist in the shadow DOM
45
+ * at once while `showLogo` is `true` (one wrapping a `bs-logo variant="full"`, one wrapping a
46
+ * `bs-logo variant="mark"`), both carrying this same part name (the same "multiple elements, one
47
+ * shared part name" approach `bs-attachment`'s `star` part uses) -- only one is visible at a
48
+ * time, toggled by plain CSS on `collapsed` (see above), so `::part(logo)` always reaches
49
+ * whichever is showing. Neither renders at all while `showLogo` is `false`.
50
+ * @part title - The "Main Menu" heading text wrapper.
51
+ * @part collapse - The collapse toggle button.
52
+ * @part search - The wrapper around the `search` slot.
53
+ * @part search-trigger - The compact search button shown instead of the `search` slot while `collapsed`.
54
+ * @part items - The wrapper around the default (items) slot.
55
+ */
56
+ // Note: this component's CSS Custom Properties are documented via @prop comments in
57
+ // bs-navigation-drawer.css, not here -- see bs-navigation-header.css's identical note.
58
+ export class BsNavigationDrawer {
59
+ el;
60
+ /** Heading text shown next to the collapse toggle, and used as the `<nav>` landmark's
61
+ * `aria-label` (so the landmark keeps a name even when `collapsed` hides the visible text). */
62
+ heading = 'Main Menu';
63
+ /** Whether this drawer can be collapsed at all. `false` renders no collapse toggle/chevron --
64
+ * a "fixed" side nav (Carbon's terminology: a `Fixed Side Nav` never collapses, as opposed to a
65
+ * rail-capable one) that's always fully expanded. `collapsed` is ignored while this is `false`. */
66
+ collapsible = true;
67
+ /** Narrows the drawer to a 96px icon-only rail (Figma node 8028:135374). Mutable and reflected
68
+ * -- clicking the collapse toggle toggles this directly (self-toggling, see the class doc above
69
+ * for why), and this component keeps every direct-child `bs-navigation-drawer-item`'s own
70
+ * `collapsed` prop synced to match (see `syncItemsCollapsed`). */
71
+ collapsed = false;
72
+ /** Fires with the new `collapsed` value when the collapse toggle button is clicked. */
73
+ bsCollapse;
74
+ /** Fires when the compact search-trigger button (shown instead of the `search` slot while
75
+ * `collapsed`) is clicked -- e.g. to open a full search overlay. This component has no
76
+ * visibility into what the `search` slot actually contains, so it can't drive a real search
77
+ * itself once shrunk to icon size. */
78
+ bsSearchClick;
79
+ /** Forwarded straight to both internal `bs-logo` elements' own `background` prop. Defaults to
80
+ * `"auto"`, which follows the ambient `[data-theme="dark"]` state automatically (see `bs-logo`'s
81
+ * own docs) -- so if this drawer ends up on a dark surface via the normal theming mechanism, the
82
+ * logo switches to its dedicated dark-background asset with no wiring needed. Set
83
+ * `"light"`/`"dark"` explicitly only if you've overridden `--bs-navigation-drawer-bg` to
84
+ * something dark yourself *without* setting `[data-theme="dark"]`, and need to pin the logo
85
+ * regardless of theme. Has no visible effect on the `variant="mark"` logo shown while
86
+ * `collapsed` (see `bs-logo`'s own docs -- there's only one real designed mark asset, it's
87
+ * background-agnostic). */
88
+ logoBackground = 'auto';
89
+ /** Whether to render the BrandSync logo at all. Defaults to `true`. This drawer is normally the
90
+ * one that owns the logo when paired with a `bs-navigation-header` (that header's own
91
+ * `with-navigation-drawer` alignment omits its logo for exactly this reason) -- but the reverse
92
+ * pairing works too: a header that keeps its own logo (`alignment="default"`) paired with this
93
+ * drawer set to `showLogo={false}`, so the brand mark only ever appears once. */
94
+ showLogo = true;
95
+ onCollapsedChange(collapsed) {
96
+ this.syncItemsCollapsed(collapsed);
97
+ }
98
+ componentDidLoad() {
99
+ this.syncItemsCollapsed(this.collapsed);
100
+ }
101
+ /** Keeps every direct-child `bs-navigation-drawer-item`'s `collapsed` prop in sync with this
102
+ * component's own -- same direct-children-prop-sync approach `bs-tabs` uses for `selected`
103
+ * across its `bs-tab` children. Only direct children (top-level items): Figma's collapsed rail
104
+ * never shows nested/expanded children in the first place (see bs-navigation-drawer-item.css's
105
+ * `:host([collapsed])` rule forcing those hidden), so there's nothing to sync on them. */
106
+ syncItemsCollapsed(collapsed) {
107
+ const items = this.el.querySelectorAll(':scope > bs-navigation-drawer-item');
108
+ items.forEach(item => {
109
+ item.collapsed = collapsed;
110
+ });
111
+ }
112
+ onCollapseClick = () => {
113
+ this.collapsed = !this.collapsed;
114
+ this.bsCollapse.emit(this.collapsed);
115
+ };
116
+ onSearchTriggerClick = () => {
117
+ this.bsSearchClick.emit();
118
+ };
119
+ render() {
120
+ return (h("nav", { key: '0b6979dbab9e8b0bfcd1a4bdceead7b87c8d2b88', class: "bs-navigation-drawer", "aria-label": this.heading }, this.showLogo && (h("div", { key: 'f7b4b0238118d95f48a60da815738673db41da9f', part: "logo", class: "bs-navigation-drawer__logo bs-navigation-drawer__logo--full" }, h("bs-logo", { key: '9d40a85424f2931b251eb1e90991f3fa6b6eaccf', variant: "full", background: this.logoBackground }))), this.showLogo && (h("div", { key: '77250a1f5f66e7fcd981bfd6494ee38722a7406f', part: "logo", class: "bs-navigation-drawer__logo bs-navigation-drawer__logo--mark" }, h("bs-logo", { key: '0365624f3796b1c44af10488e8a3cab93e296169', variant: "mark", background: this.logoBackground }))), h("div", { key: '4c5b0de2a90df7f6462fac6d6b79abb62829293e', class: "bs-navigation-drawer__title-row" }, h("span", { key: 'f9507d3c31687abcaa99340ca4e413f8d47559bc', part: "title", class: "bs-navigation-drawer__title" }, this.heading), this.collapsible && (h("button", { key: 'f07c9f1f04d0b3e745273d8f61b3c1af02a5bc08', type: "button", part: "collapse", class: "bs-navigation-drawer__collapse", "aria-label": this.collapsed ? 'Expand' : 'Collapse', "aria-pressed": this.collapsed ? 'true' : 'false', onClick: this.onCollapseClick }, h(CaretLeftIcon, { key: '9731cf6bd727b753c99b5969059997a6800ec3a4' })))), h("div", { key: '7b1cc15eb095988451c32e4ba429fa5f36a5bbb8', part: "search", class: "bs-navigation-drawer__search" }, h("slot", { key: '1cf0fa19d789ea44ef29a9a3fbc7852ea012045e', name: "search" })), h("button", { key: '9a7c7bf69a7ef92144e60641279fbaca47395d4f', type: "button", part: "search-trigger", class: "bs-navigation-drawer__search-trigger", "aria-label": "Search", onClick: this.onSearchTriggerClick }, h(SearchIcon, { key: '6c55207e0b45a07c2be7aa350c07bbab4018696b' })), h("div", { key: 'e22497a133d16a622ef68ff5de4796eaa96a25fb', part: "items", class: "bs-navigation-drawer__items" }, h("slot", { key: '465d9447ef355558ffd0d79306abd9a9204517a1' }))));
121
+ }
122
+ static get is() { return "bs-navigation-drawer"; }
123
+ static get encapsulation() { return "shadow"; }
124
+ static get originalStyleUrls() {
125
+ return {
126
+ "$": ["bs-navigation-drawer.css"]
127
+ };
128
+ }
129
+ static get styleUrls() {
130
+ return {
131
+ "$": ["bs-navigation-drawer.css"]
132
+ };
133
+ }
134
+ static get properties() {
135
+ return {
136
+ "heading": {
137
+ "type": "string",
138
+ "mutable": false,
139
+ "complexType": {
140
+ "original": "string",
141
+ "resolved": "string",
142
+ "references": {}
143
+ },
144
+ "required": false,
145
+ "optional": false,
146
+ "docs": {
147
+ "tags": [],
148
+ "text": "Heading text shown next to the collapse toggle, and used as the `<nav>` landmark's\n`aria-label` (so the landmark keeps a name even when `collapsed` hides the visible text)."
149
+ },
150
+ "getter": false,
151
+ "setter": false,
152
+ "reflect": false,
153
+ "attribute": "heading",
154
+ "defaultValue": "'Main Menu'"
155
+ },
156
+ "collapsible": {
157
+ "type": "boolean",
158
+ "mutable": false,
159
+ "complexType": {
160
+ "original": "boolean",
161
+ "resolved": "boolean",
162
+ "references": {}
163
+ },
164
+ "required": false,
165
+ "optional": false,
166
+ "docs": {
167
+ "tags": [],
168
+ "text": "Whether this drawer can be collapsed at all. `false` renders no collapse toggle/chevron --\na \"fixed\" side nav (Carbon's terminology: a `Fixed Side Nav` never collapses, as opposed to a\nrail-capable one) that's always fully expanded. `collapsed` is ignored while this is `false`."
169
+ },
170
+ "getter": false,
171
+ "setter": false,
172
+ "reflect": false,
173
+ "attribute": "collapsible",
174
+ "defaultValue": "true"
175
+ },
176
+ "collapsed": {
177
+ "type": "boolean",
178
+ "mutable": true,
179
+ "complexType": {
180
+ "original": "boolean",
181
+ "resolved": "boolean",
182
+ "references": {}
183
+ },
184
+ "required": false,
185
+ "optional": false,
186
+ "docs": {
187
+ "tags": [],
188
+ "text": "Narrows the drawer to a 96px icon-only rail (Figma node 8028:135374). Mutable and reflected\n-- clicking the collapse toggle toggles this directly (self-toggling, see the class doc above\nfor why), and this component keeps every direct-child `bs-navigation-drawer-item`'s own\n`collapsed` prop synced to match (see `syncItemsCollapsed`)."
189
+ },
190
+ "getter": false,
191
+ "setter": false,
192
+ "reflect": true,
193
+ "attribute": "collapsed",
194
+ "defaultValue": "false"
195
+ },
196
+ "logoBackground": {
197
+ "type": "string",
198
+ "mutable": false,
199
+ "complexType": {
200
+ "original": "'auto' | 'light' | 'dark'",
201
+ "resolved": "\"auto\" | \"dark\" | \"light\"",
202
+ "references": {}
203
+ },
204
+ "required": false,
205
+ "optional": false,
206
+ "docs": {
207
+ "tags": [],
208
+ "text": "Forwarded straight to both internal `bs-logo` elements' own `background` prop. Defaults to\n`\"auto\"`, which follows the ambient `[data-theme=\"dark\"]` state automatically (see `bs-logo`'s\nown docs) -- so if this drawer ends up on a dark surface via the normal theming mechanism, the\nlogo switches to its dedicated dark-background asset with no wiring needed. Set\n`\"light\"`/`\"dark\"` explicitly only if you've overridden `--bs-navigation-drawer-bg` to\nsomething dark yourself *without* setting `[data-theme=\"dark\"]`, and need to pin the logo\nregardless of theme. Has no visible effect on the `variant=\"mark\"` logo shown while\n`collapsed` (see `bs-logo`'s own docs -- there's only one real designed mark asset, it's\nbackground-agnostic)."
209
+ },
210
+ "getter": false,
211
+ "setter": false,
212
+ "reflect": false,
213
+ "attribute": "logo-background",
214
+ "defaultValue": "'auto'"
215
+ },
216
+ "showLogo": {
217
+ "type": "boolean",
218
+ "mutable": false,
219
+ "complexType": {
220
+ "original": "boolean",
221
+ "resolved": "boolean",
222
+ "references": {}
223
+ },
224
+ "required": false,
225
+ "optional": false,
226
+ "docs": {
227
+ "tags": [],
228
+ "text": "Whether to render the BrandSync logo at all. Defaults to `true`. This drawer is normally the\none that owns the logo when paired with a `bs-navigation-header` (that header's own\n`with-navigation-drawer` alignment omits its logo for exactly this reason) -- but the reverse\npairing works too: a header that keeps its own logo (`alignment=\"default\"`) paired with this\ndrawer set to `showLogo={false}`, so the brand mark only ever appears once."
229
+ },
230
+ "getter": false,
231
+ "setter": false,
232
+ "reflect": false,
233
+ "attribute": "show-logo",
234
+ "defaultValue": "true"
235
+ }
236
+ };
237
+ }
238
+ static get events() {
239
+ return [{
240
+ "method": "bsCollapse",
241
+ "name": "bsCollapse",
242
+ "bubbles": true,
243
+ "cancelable": true,
244
+ "composed": true,
245
+ "docs": {
246
+ "tags": [],
247
+ "text": "Fires with the new `collapsed` value when the collapse toggle button is clicked."
248
+ },
249
+ "complexType": {
250
+ "original": "boolean",
251
+ "resolved": "boolean",
252
+ "references": {}
253
+ }
254
+ }, {
255
+ "method": "bsSearchClick",
256
+ "name": "bsSearchClick",
257
+ "bubbles": true,
258
+ "cancelable": true,
259
+ "composed": true,
260
+ "docs": {
261
+ "tags": [],
262
+ "text": "Fires when the compact search-trigger button (shown instead of the `search` slot while\n`collapsed`) is clicked -- e.g. to open a full search overlay. This component has no\nvisibility into what the `search` slot actually contains, so it can't drive a real search\nitself once shrunk to icon size."
263
+ },
264
+ "complexType": {
265
+ "original": "void",
266
+ "resolved": "void",
267
+ "references": {}
268
+ }
269
+ }];
270
+ }
271
+ static get elementRef() { return "el"; }
272
+ static get watchers() {
273
+ return [{
274
+ "propName": "collapsed",
275
+ "methodName": "onCollapsedChange"
276
+ }];
277
+ }
278
+ }
279
+ // Same inline-icon-helper-function pattern as bs-chatbot-header.tsx's NewChatIcon/ExpandIcon/etc.
280
+ const CaretLeftIcon = () => (h("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" }, h("path", { d: "M15 18L9 12L15 6", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })));
281
+ const SearchIcon = () => (h("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" }, h("circle", { cx: "11", cy: "11", r: "7", stroke: "currentColor", "stroke-width": "2" }), h("path", { d: "M16.5 16.5L21 21", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" })));
@@ -0,0 +1,274 @@
1
+ import { html } from "lit";
2
+ import { componentDescription, propDescription } from "../../../../stories-utils";
3
+ const bookIcon = html `
4
+ <svg slot="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
5
+ <path
6
+ d="M4 4.5C4 3.67157 4.67157 3 5.5 3H18.5C19.3284 3 20 3.67157 20 4.5V19.5C20 20.3284 19.3284 21 18.5 21H5.5C4.67157 21 4 20.3284 4 19.5V4.5Z"
7
+ stroke="currentColor"
8
+ stroke-width="1.5"
9
+ />
10
+ <path d="M8 3V21" stroke="currentColor" stroke-width="1.5" />
11
+ </svg>
12
+ `;
13
+ const gridIcon = html `
14
+ <svg slot="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
15
+ <rect x="3.5" y="3.5" width="7" height="7" rx="1" stroke="currentColor" stroke-width="1.5" />
16
+ <rect x="13.5" y="3.5" width="7" height="7" rx="1" stroke="currentColor" stroke-width="1.5" />
17
+ <rect x="3.5" y="13.5" width="7" height="7" rx="1" stroke="currentColor" stroke-width="1.5" />
18
+ <rect x="13.5" y="13.5" width="7" height="7" rx="1" stroke="currentColor" stroke-width="1.5" />
19
+ </svg>
20
+ `;
21
+ const accessibilityIcon = html `
22
+ <svg slot="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
23
+ <circle cx="12" cy="12" r="9" stroke="currentColor" stroke-width="1.5" />
24
+ <circle cx="12" cy="8" r="1.25" fill="currentColor" />
25
+ <path d="M6.5 10.5H17.5M12 10.5V17M9.5 17L11 13M14.5 17L13 13" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
26
+ </svg>
27
+ `;
28
+ // The items list, shared across stories -- one plain leaf item (selected), one plain leaf item
29
+ // (unselected), and one expandable group header with nested children, matching the task spec's
30
+ // requirement of demonstrating all three states assembled together.
31
+ // ariaLabel is optional (the visible caption stays visible even when collapsed), set here anyway
32
+ // just to demonstrate the prop exists.
33
+ const ITEMS = html `
34
+ <bs-navigation-drawer-item selected ariaLabel="Introduction">${accessibilityIcon} Introduction</bs-navigation-drawer-item>
35
+ <bs-navigation-drawer-item ariaLabel="Accessibility">${bookIcon} Accessibility</bs-navigation-drawer-item>
36
+ <bs-navigation-drawer-item expandable expanded ariaLabel="Foundation">
37
+ ${gridIcon} Foundation
38
+ <bs-navigation-drawer-item slot="children" nested>Colors</bs-navigation-drawer-item>
39
+ <bs-navigation-drawer-item slot="children" nested>Typography</bs-navigation-drawer-item>
40
+ <bs-navigation-drawer-item slot="children" nested>Spacing</bs-navigation-drawer-item>
41
+ </bs-navigation-drawer-item>
42
+ <bs-navigation-drawer-item expandable ariaLabel="Components">
43
+ ${gridIcon} Components
44
+ <bs-navigation-drawer-item slot="children" nested>Button</bs-navigation-drawer-item>
45
+ <bs-navigation-drawer-item slot="children" nested>Checkbox</bs-navigation-drawer-item>
46
+ <bs-navigation-drawer-item slot="children" nested>Switch</bs-navigation-drawer-item>
47
+ </bs-navigation-drawer-item>
48
+ `;
49
+ // Same items, without any icon slot content -- bs-navigation-drawer-item's icon wrapper only
50
+ // reserves space when populated, so these render as plain text rows (Figma's own "nested" rows
51
+ // already never have icons; this additionally omits them from the top-level rows too, for the
52
+ // icon-less "Fixed Side Nav" stories below).
53
+ const ITEMS_NO_ICONS = html `
54
+ <bs-navigation-drawer-item selected>Introduction</bs-navigation-drawer-item>
55
+ <bs-navigation-drawer-item>Accessibility</bs-navigation-drawer-item>
56
+ <bs-navigation-drawer-item expandable expanded>
57
+ Foundation
58
+ <bs-navigation-drawer-item slot="children" nested>Colors</bs-navigation-drawer-item>
59
+ <bs-navigation-drawer-item slot="children" nested>Typography</bs-navigation-drawer-item>
60
+ <bs-navigation-drawer-item slot="children" nested>Spacing</bs-navigation-drawer-item>
61
+ </bs-navigation-drawer-item>
62
+ <bs-navigation-drawer-item expandable>
63
+ Components
64
+ <bs-navigation-drawer-item slot="children" nested>Button</bs-navigation-drawer-item>
65
+ <bs-navigation-drawer-item slot="children" nested>Checkbox</bs-navigation-drawer-item>
66
+ <bs-navigation-drawer-item slot="children" nested>Switch</bs-navigation-drawer-item>
67
+ </bs-navigation-drawer-item>
68
+ `;
69
+ // A plain divider between item groups (e.g. Carbon's cds-side-nav-divider: a 1px rule with 8px
70
+ // vertical / 16px horizontal margin) -- not a Figma-specified element in this design system, so
71
+ // it's kept as story-only markup rather than a new formal bs-* component.
72
+ const DIVIDER = html `<hr style="width: 100%; border: none; border-top: 1px solid var(--bs-border-default); margin: var(--bs-spacing-100) 0;" />`;
73
+ const ITEMS_WITH_DIVIDER = html `
74
+ <bs-navigation-drawer-item selected>Introduction</bs-navigation-drawer-item>
75
+ <bs-navigation-drawer-item>Accessibility</bs-navigation-drawer-item>
76
+ ${DIVIDER}
77
+ <bs-navigation-drawer-item expandable expanded>
78
+ Foundation
79
+ <bs-navigation-drawer-item slot="children" nested>Colors</bs-navigation-drawer-item>
80
+ <bs-navigation-drawer-item slot="children" nested>Typography</bs-navigation-drawer-item>
81
+ <bs-navigation-drawer-item slot="children" nested>Spacing</bs-navigation-drawer-item>
82
+ </bs-navigation-drawer-item>
83
+ <bs-navigation-drawer-item expandable>
84
+ Components
85
+ <bs-navigation-drawer-item slot="children" nested>Button</bs-navigation-drawer-item>
86
+ <bs-navigation-drawer-item slot="children" nested>Checkbox</bs-navigation-drawer-item>
87
+ <bs-navigation-drawer-item slot="children" nested>Switch</bs-navigation-drawer-item>
88
+ </bs-navigation-drawer-item>
89
+ `;
90
+ // A longer, deeper item list than the other demo lists above -- more top-level groups, more
91
+ // nested children per group, and every group expanded at once -- for demonstrating this
92
+ // component's own scroll behavior (a fixed-height drawer with a naturally-taller-than-viewport
93
+ // item list) rather than a distinct "large" item size/prop, which bs-navigation-drawer-item
94
+ // doesn't have.
95
+ const LARGE_ITEMS = html `
96
+ <bs-navigation-drawer-item selected ariaLabel="Introduction">${accessibilityIcon} Introduction</bs-navigation-drawer-item>
97
+ <bs-navigation-drawer-item ariaLabel="Accessibility">${bookIcon} Accessibility</bs-navigation-drawer-item>
98
+ <bs-navigation-drawer-item expandable expanded ariaLabel="Foundation">
99
+ ${gridIcon} Foundation
100
+ <bs-navigation-drawer-item slot="children" nested>Colors</bs-navigation-drawer-item>
101
+ <bs-navigation-drawer-item slot="children" nested>Typography</bs-navigation-drawer-item>
102
+ <bs-navigation-drawer-item slot="children" nested>Spacing</bs-navigation-drawer-item>
103
+ <bs-navigation-drawer-item slot="children" nested>Elevation</bs-navigation-drawer-item>
104
+ <bs-navigation-drawer-item slot="children" nested>Iconography</bs-navigation-drawer-item>
105
+ </bs-navigation-drawer-item>
106
+ <bs-navigation-drawer-item expandable expanded ariaLabel="Components">
107
+ ${gridIcon} Components
108
+ <bs-navigation-drawer-item slot="children" nested>Button</bs-navigation-drawer-item>
109
+ <bs-navigation-drawer-item slot="children" nested>Checkbox</bs-navigation-drawer-item>
110
+ <bs-navigation-drawer-item slot="children" nested>Switch</bs-navigation-drawer-item>
111
+ <bs-navigation-drawer-item slot="children" nested>Radio</bs-navigation-drawer-item>
112
+ <bs-navigation-drawer-item slot="children" nested>Slider</bs-navigation-drawer-item>
113
+ <bs-navigation-drawer-item slot="children" nested>Modal</bs-navigation-drawer-item>
114
+ <bs-navigation-drawer-item slot="children" nested>Tooltip</bs-navigation-drawer-item>
115
+ </bs-navigation-drawer-item>
116
+ <bs-navigation-drawer-item expandable expanded ariaLabel="Patterns">
117
+ ${gridIcon} Patterns
118
+ <bs-navigation-drawer-item slot="children" nested>Dashboard</bs-navigation-drawer-item>
119
+ <bs-navigation-drawer-item slot="children" nested>Filter Table</bs-navigation-drawer-item>
120
+ <bs-navigation-drawer-item slot="children" nested>Empty State</bs-navigation-drawer-item>
121
+ </bs-navigation-drawer-item>
122
+ <bs-navigation-drawer-item ariaLabel="Settings">${bookIcon} Settings</bs-navigation-drawer-item>
123
+ `;
124
+ const meta = {
125
+ title: 'UI Shell/bs-navigation-drawer/bs-navigation-drawer',
126
+ parameters: { docs: { description: { component: componentDescription('bs-navigation-drawer') } }, layout: 'fullscreen' },
127
+ // "Fixed Side Nav" (Carbon's own naming) means never collapsible, so args.collapsible defaults
128
+ // to false below for this default render every "Fixed Side Nav*" story shares. The dedicated
129
+ // Collapsed story further down opts back in explicitly.
130
+ //
131
+ // Plain attribute binding (collapsible=${args.collapsible}), NOT lit's ?collapsible= boolean
132
+ // directive -- collapsible defaults to true on the component, and ?attr= booleans OMIT the
133
+ // attribute for a falsy value. Stencil can't tell "never set" apart from "explicitly false" for
134
+ // a prop that defaults true, so it would silently keep its own default (true) -- the exact same
135
+ // bug found and fixed in bs-slider's showLabel earlier this session.
136
+ render: args => html `
137
+ <div style="height: 100vh; display: flex;">
138
+ <bs-navigation-drawer
139
+ heading=${args.heading}
140
+ collapsible=${args.collapsible}
141
+ logo-background=${args.logoBackground}
142
+ show-logo=${args.showLogo}
143
+ >
144
+ <bs-input slot="search" type="search" placeholder="Search"></bs-input>
145
+ ${ITEMS_NO_ICONS}
146
+ </bs-navigation-drawer>
147
+ </div>
148
+ `,
149
+ argTypes: {
150
+ heading: { control: 'text', description: propDescription('bs-navigation-drawer', 'heading') },
151
+ collapsible: { control: 'boolean', description: propDescription('bs-navigation-drawer', 'collapsible') },
152
+ logoBackground: { control: 'select', options: ['auto', 'light', 'dark'], description: propDescription('bs-navigation-drawer', 'logoBackground') },
153
+ showLogo: { control: 'boolean', description: propDescription('bs-navigation-drawer', 'showLogo') },
154
+ },
155
+ args: {
156
+ heading: 'Main Menu',
157
+ collapsible: false,
158
+ logoBackground: 'auto',
159
+ showLogo: true,
160
+ },
161
+ };
162
+ export default meta;
163
+ // Story naming follows the same "[Base] [with X]" convention as bs-navigation-header's stories,
164
+ // matching Carbon's own side-nav story names (Fixed Side Nav / with Divider / with Icons) as a
165
+ // naming convention reference -- not a design/token match, just the naming pattern.
166
+ export const FixedSideNav = {
167
+ name: 'Fixed Side Nav',
168
+ };
169
+ export const FixedSideNavWithDivider = {
170
+ name: 'Fixed Side Nav with Divider',
171
+ render: args => html `
172
+ <div style="height: 100vh; display: flex;">
173
+ <bs-navigation-drawer heading=${args.heading} collapsible=${args.collapsible}>
174
+ <bs-input slot="search" type="search" placeholder="Search"></bs-input>
175
+ ${ITEMS_WITH_DIVIDER}
176
+ </bs-navigation-drawer>
177
+ </div>
178
+ `,
179
+ };
180
+ export const FixedSideNavWithIcons = {
181
+ name: 'Fixed Side Nav with Icons',
182
+ render: args => html `
183
+ <div style="height: 100vh; display: flex;">
184
+ <bs-navigation-drawer heading=${args.heading} collapsible=${args.collapsible}>
185
+ <bs-input slot="search" type="search" placeholder="Search"></bs-input>
186
+ ${ITEMS}
187
+ </bs-navigation-drawer>
188
+ </div>
189
+ `,
190
+ };
191
+ export const Collapsed = {
192
+ name: 'Side Nav Rail',
193
+ // Click the collapse toggle (the caret button next to the heading) to see it expand back --
194
+ // `collapsed` is mutable/self-toggling, so this works with no extra story wiring.
195
+ render: args => html `
196
+ <div style="height: 100vh; display: flex;">
197
+ <bs-navigation-drawer heading=${args.heading} collapsed>
198
+ <bs-input slot="search" type="search" placeholder="Search"></bs-input>
199
+ ${ITEMS}
200
+ </bs-navigation-drawer>
201
+ </div>
202
+ `,
203
+ };
204
+ export const CollapsedWithHeader = {
205
+ name: 'Side Nav Rail with Header',
206
+ // The rail (collapsed) drawer composed alongside bs-navigation-header, forming the same
207
+ // app-shell layout as bs-navigation-header's own "with Side Nav" stories, but with the drawer
208
+ // starting in its collapsed/icon-only rail state instead of fully expanded.
209
+ render: args => html `
210
+ <div style="height: 100vh; display: flex; flex-direction: column;">
211
+ <bs-navigation-header alignment="with-navigation-drawer"></bs-navigation-header>
212
+ <div style="flex: 1; min-height: 0; display: flex;">
213
+ <bs-navigation-drawer heading=${args.heading} collapsed>
214
+ <bs-input slot="search" type="search" placeholder="Search"></bs-input>
215
+ ${ITEMS}
216
+ </bs-navigation-drawer>
217
+ <main style="flex: 1; min-width: 0; overflow: auto; padding: var(--bs-spacing-400); font-family: sans-serif; color: var(--bs-text-muted);">
218
+ Page content
219
+ </main>
220
+ </div>
221
+ </div>
222
+ `,
223
+ };
224
+ export const Dark = {
225
+ name: 'Fixed Side Nav (Dark)',
226
+ // `data-theme="dark"` is set on a wrapper scoped to just this story, NOT via a globals override
227
+ // on the toolbar's Theme switch -- that switch's decorator (see .storybook/preview.ts) sets the
228
+ // attribute on the shared document root, which is fine in isolation but breaks down on this
229
+ // component's Docs page: every story renders together in one document there, so one story
230
+ // forcing a document-wide theme while its siblings render alongside it under the *other* theme
231
+ // causes exactly the kind of thrash/hang a shared mutable global produces. A local wrapper gets
232
+ // the identical CSS custom property cascade (tokens.css's dark block matches any
233
+ // `[data-theme="dark"]` element, not specifically <html>) without touching shared state.
234
+ // logoBackground is left at its "auto" default here deliberately -- this story demonstrates that
235
+ // no manual prop is needed for the logo to follow the theme; see logoBackground's own docs for
236
+ // the explicit-override case.
237
+ render: args => html `
238
+ <div data-theme="dark" style="height: 100vh; display: flex; background: var(--bs-surface-base);">
239
+ <bs-navigation-drawer heading=${args.heading} collapsible=${args.collapsible} logo-background=${args.logoBackground}>
240
+ <bs-input slot="search" type="search" placeholder="Search"></bs-input>
241
+ ${ITEMS_NO_ICONS}
242
+ </bs-navigation-drawer>
243
+ </div>
244
+ `,
245
+ };
246
+ export const WithoutSearch = {
247
+ name: 'Without a search slot',
248
+ render: args => html `
249
+ <div style="height: 100vh; display: flex;">
250
+ <bs-navigation-drawer heading=${args.heading}>${ITEMS}</bs-navigation-drawer>
251
+ </div>
252
+ `,
253
+ };
254
+ export const EmptyItems = {
255
+ name: 'Empty items list',
256
+ render: args => html `
257
+ <div style="height: 100vh; display: flex;">
258
+ <bs-navigation-drawer heading=${args.heading}>
259
+ <bs-input slot="search" type="search" placeholder="Search"></bs-input>
260
+ </bs-navigation-drawer>
261
+ </div>
262
+ `,
263
+ };
264
+ export const LargeItemList = {
265
+ name: 'Side Nav with Large Side Nav Items',
266
+ render: args => html `
267
+ <div style="height: 100vh; display: flex;">
268
+ <bs-navigation-drawer heading=${args.heading} collapsible=${args.collapsible}>
269
+ <bs-input slot="search" type="search" placeholder="Search"></bs-input>
270
+ ${LARGE_ITEMS}
271
+ </bs-navigation-drawer>
272
+ </div>
273
+ `,
274
+ };