@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,172 @@
1
+ import { render, h, describe, it, expect } from "@stencil/vitest";
2
+ describe('bs-navigation-drawer-item', () => {
3
+ it('renders a real button with part="item"', async () => {
4
+ const { root } = await render(h("bs-navigation-drawer-item", null, "Introduction"));
5
+ const button = root.shadowRoot.querySelector('[part="item"]');
6
+ expect(button).not.toBeNull();
7
+ expect(button.tagName).toBe('BUTTON');
8
+ expect(button).toEqualAttribute('type', 'button');
9
+ });
10
+ describe('click behavior: expandable vs. non-expandable', () => {
11
+ it('emits bsSelect (not bsToggle) when expandable is false', async () => {
12
+ const { root, spyOnEvent } = await render(h("bs-navigation-drawer-item", null, "Introduction"));
13
+ const selectSpy = spyOnEvent('bsSelect');
14
+ const toggleSpy = spyOnEvent('bsToggle');
15
+ root.shadowRoot.querySelector('[part="item"]').click();
16
+ expect(selectSpy).toHaveReceivedEventTimes(1);
17
+ expect(toggleSpy).toHaveReceivedEventTimes(0);
18
+ });
19
+ it('emits bsToggle (not bsSelect) when expandable is true', async () => {
20
+ const { root, spyOnEvent } = await render(h("bs-navigation-drawer-item", { expandable: true }, "Components"));
21
+ const selectSpy = spyOnEvent('bsSelect');
22
+ const toggleSpy = spyOnEvent('bsToggle');
23
+ root.shadowRoot.querySelector('[part="item"]').click();
24
+ expect(toggleSpy).toHaveReceivedEventTimes(1);
25
+ expect(selectSpy).toHaveReceivedEventTimes(0);
26
+ });
27
+ it('emits bsToggle with the new expanded value', async () => {
28
+ const { root, spyOnEvent } = await render(h("bs-navigation-drawer-item", { expandable: true }, "Components"));
29
+ const toggleSpy = spyOnEvent('bsToggle');
30
+ root.shadowRoot.querySelector('[part="item"]').click();
31
+ expect(toggleSpy).toHaveReceivedEventDetail(true);
32
+ });
33
+ it('does not self-toggle selected when non-expandable is clicked', async () => {
34
+ const { root, waitForChanges } = await render(h("bs-navigation-drawer-item", null, "Introduction"));
35
+ root.shadowRoot.querySelector('[part="item"]').click();
36
+ await waitForChanges();
37
+ expect(root.selected).toBe(false);
38
+ });
39
+ });
40
+ describe('expanded (self-toggling)', () => {
41
+ it('defaults to false', async () => {
42
+ const { root } = await render(h("bs-navigation-drawer-item", { expandable: true }, "Components"));
43
+ expect(root.hasAttribute('expanded')).toBe(false);
44
+ });
45
+ it('self-toggles to true on click and reflects the attribute', async () => {
46
+ const { root, waitForChanges } = await render(h("bs-navigation-drawer-item", { expandable: true }, "Components"));
47
+ root.shadowRoot.querySelector('[part="item"]').click();
48
+ await waitForChanges();
49
+ expect(root.expanded).toBe(true);
50
+ expect(root).toHaveAttribute('expanded');
51
+ });
52
+ it('self-toggles back to false on a second click', async () => {
53
+ const { root, waitForChanges } = await render(h("bs-navigation-drawer-item", { expandable: true, expanded: true }, "Components"));
54
+ root.shadowRoot.querySelector('[part="item"]').click();
55
+ await waitForChanges();
56
+ expect(root.expanded).toBe(false);
57
+ expect(root).not.toHaveAttribute('expanded');
58
+ });
59
+ it('sets aria-expanded on the button when expandable', async () => {
60
+ const { root, waitForChanges } = await render(h("bs-navigation-drawer-item", { expandable: true }, "Components"));
61
+ const button = root.shadowRoot.querySelector('[part="item"]');
62
+ expect(button).toEqualAttribute('aria-expanded', 'false');
63
+ button.click();
64
+ await waitForChanges();
65
+ expect(button).toEqualAttribute('aria-expanded', 'true');
66
+ });
67
+ it('does not set aria-expanded when not expandable', async () => {
68
+ const { root } = await render(h("bs-navigation-drawer-item", null, "Introduction"));
69
+ const button = root.shadowRoot.querySelector('[part="item"]');
70
+ expect(button).not.toHaveAttribute('aria-expanded');
71
+ });
72
+ });
73
+ describe('selected', () => {
74
+ it('applies selected styling and reflects the attribute', async () => {
75
+ const { root } = await render(h("bs-navigation-drawer-item", { selected: true }, "Introduction"));
76
+ expect(root).toHaveAttribute('selected');
77
+ const button = root.shadowRoot.querySelector('[part="item"]');
78
+ expect(button).toHaveClass('bs-navigation-drawer-item--selected');
79
+ });
80
+ it('does not apply the selected class when expandable, even if selected is set', async () => {
81
+ const { root } = await render(h("bs-navigation-drawer-item", { selected: true, expandable: true }, "Components"));
82
+ const button = root.shadowRoot.querySelector('[part="item"]');
83
+ expect(button).not.toHaveClass('bs-navigation-drawer-item--selected');
84
+ });
85
+ });
86
+ describe('nested rows', () => {
87
+ it('applies the nested class', async () => {
88
+ const { root } = await render(h("bs-navigation-drawer-item", { nested: true }, "Button"));
89
+ const button = root.shadowRoot.querySelector('[part="item"]');
90
+ expect(button).toHaveClass('bs-navigation-drawer-item--nested');
91
+ });
92
+ it('does not render an icon slot wrapper at all for nested rows, even if icon content is provided', async () => {
93
+ const { root } = await render(h("bs-navigation-drawer-item", { nested: true }, h("span", { slot: "icon" }, "ICON"), "Button"));
94
+ expect(root.shadowRoot.querySelector('[part="icon"]')).toBeNull();
95
+ });
96
+ it('renders an icon slot wrapper for top-level (non-nested) rows', async () => {
97
+ const { root } = await render(h("bs-navigation-drawer-item", null, "Introduction"));
98
+ expect(root.shadowRoot.querySelector('[part="icon"]')).not.toBeNull();
99
+ });
100
+ });
101
+ describe('icon slot: only reserves space when populated', () => {
102
+ it('does not reserve icon space by default', async () => {
103
+ const { root } = await render(h("bs-navigation-drawer-item", null, "Introduction"));
104
+ const icon = root.shadowRoot.querySelector('[part="icon"]');
105
+ expect(icon).not.toHaveClass('bs-navigation-drawer-item__icon--has-content');
106
+ expect(getComputedStyle(icon).display).toBe('none');
107
+ });
108
+ it('reserves icon space when the icon slot is populated', async () => {
109
+ const { root } = await render(h("bs-navigation-drawer-item", null, h("span", { slot: "icon" }, "ICON"), "Introduction"));
110
+ const icon = root.shadowRoot.querySelector('[part="icon"]');
111
+ expect(icon).toHaveClass('bs-navigation-drawer-item__icon--has-content');
112
+ });
113
+ });
114
+ describe('children slot (expandable only)', () => {
115
+ it('does not render a children slot wrapper when not expandable', async () => {
116
+ const { root } = await render(h("bs-navigation-drawer-item", null, "Introduction"));
117
+ expect(root.shadowRoot.querySelector('[part="children"]')).toBeNull();
118
+ });
119
+ it('renders a children slot wrapper when expandable', async () => {
120
+ const { root } = await render(h("bs-navigation-drawer-item", { expandable: true }, "Components"));
121
+ expect(root.shadowRoot.querySelector('[part="children"]')).not.toBeNull();
122
+ });
123
+ it('hides the children slot wrapper when not expanded', async () => {
124
+ const { root } = await render(h("bs-navigation-drawer-item", { expandable: true }, "Components", h("bs-navigation-drawer-item", { slot: "children", nested: true }, "Button")));
125
+ const children = root.shadowRoot.querySelector('[part="children"]');
126
+ expect(getComputedStyle(children).display).toBe('none');
127
+ });
128
+ it('shows the children slot wrapper when expanded', async () => {
129
+ const { root } = await render(h("bs-navigation-drawer-item", { expandable: true, expanded: true }, "Components", h("bs-navigation-drawer-item", { slot: "children", nested: true }, "Button")));
130
+ const children = root.shadowRoot.querySelector('[part="children"]');
131
+ expect(getComputedStyle(children).display).not.toBe('none');
132
+ });
133
+ });
134
+ describe('collapsed', () => {
135
+ it('keeps the label visible (restyled as a caption), not hidden', async () => {
136
+ const { root } = await render(h("bs-navigation-drawer-item", { collapsed: true }, "Introduction"));
137
+ const label = root.shadowRoot.querySelector('[part="label"]');
138
+ expect(getComputedStyle(label).display).not.toBe('none');
139
+ // .textContent on the shadow-DOM label wrapper doesn't reflect slotted content (a DOM quirk:
140
+ // textContent walks the light tree, not the flattened/slotted one) -- check the host's own
141
+ // text instead, which is what's actually visible on screen via the slot.
142
+ expect(root.textContent.trim()).toBe('Introduction');
143
+ });
144
+ it('forces the chevron hidden even when expandable and expanded', async () => {
145
+ const { root } = await render(h("bs-navigation-drawer-item", { collapsed: true, expandable: true, expanded: true }, "Components"));
146
+ const chevron = root.shadowRoot.querySelector('[part="chevron"]');
147
+ expect(getComputedStyle(chevron).display).toBe('none');
148
+ });
149
+ it('forces the children slot wrapper hidden even when expanded', async () => {
150
+ const { root } = await render(h("bs-navigation-drawer-item", { collapsed: true, expandable: true, expanded: true }, "Components", h("bs-navigation-drawer-item", { slot: "children", nested: true }, "Button")));
151
+ const children = root.shadowRoot.querySelector('[part="children"]');
152
+ expect(getComputedStyle(children).display).toBe('none');
153
+ });
154
+ it('moves the selected tint onto the icon chip instead of the whole row', async () => {
155
+ const { root } = await render(h("bs-navigation-drawer-item", { collapsed: true, selected: true }, h("span", { slot: "icon" }, "ICON"), "Introduction"));
156
+ const button = root.shadowRoot.querySelector('[part="item"]');
157
+ const icon = root.shadowRoot.querySelector('[part="icon"]');
158
+ expect(getComputedStyle(button).backgroundColor).toBe('rgba(0, 0, 0, 0)');
159
+ expect(getComputedStyle(icon).backgroundColor).not.toBe('rgba(0, 0, 0, 0)');
160
+ });
161
+ });
162
+ describe('ariaLabel', () => {
163
+ it('sets aria-label on the row when provided', async () => {
164
+ const { root } = await render(h("bs-navigation-drawer-item", { ariaLabel: "Introduction page" }, "Introduction"));
165
+ expect(root.shadowRoot.querySelector('[part="item"]')).toEqualAttribute('aria-label', 'Introduction page');
166
+ });
167
+ it('omits aria-label when not provided, falling back to the visible text as the accessible name', async () => {
168
+ const { root } = await render(h("bs-navigation-drawer-item", null, "Introduction"));
169
+ expect(root.shadowRoot.querySelector('[part="item"]').hasAttribute('aria-label')).toBe(false);
170
+ });
171
+ });
172
+ });
@@ -0,0 +1,325 @@
1
+ /**
2
+ * @prop --bs-navigation-drawer-item-gap: Gap between the icon, label, and chevron within the row.
3
+ * Aliased to --bs-spacing-100.
4
+ * @prop --bs-navigation-drawer-item-radius: Corner radius of the row. Aliased to
5
+ * --bs-border-radius-100.
6
+ * @prop --bs-navigation-drawer-item-padding-y: Top/bottom padding of the row. Aliased to
7
+ * --bs-spacing-150.
8
+ * @prop --bs-navigation-drawer-item-padding-x: Left/right padding of a top-level (non-`nested`)
9
+ * row. Aliased to --bs-spacing-100 -- note this is the HORIZONTAL padding while
10
+ * --bs-navigation-drawer-item-padding-y (above) is VERTICAL, the reverse of this value's own
11
+ * relative size (12px vertical / 8px horizontal), per the Figma spec.
12
+ * @prop --bs-navigation-drawer-item-padding-left-nested: Left padding of a `nested` row. Aliased
13
+ * to --bs-spacing-600 (48px) -- deep indent under an expanded parent, replacing
14
+ * --bs-navigation-drawer-item-padding-x on the left side only (right padding stays the same).
15
+ * @prop --bs-navigation-drawer-item-font-weight: Label font weight. Aliased to
16
+ * --bs-font-weight-medium.
17
+ * @prop --bs-navigation-drawer-item-font-size: Label font size. Aliased to --bs-font-size-md.
18
+ * @prop --bs-navigation-drawer-item-line-height: Label line height. Aliased to
19
+ * --bs-line-height-body-md.
20
+ * @prop --bs-navigation-drawer-item-color: Resting (unselected) text/icon color. Aliased to
21
+ * --bs-text-muted.
22
+ * @prop --bs-navigation-drawer-item-color-selected: `selected` text/icon color. Aliased to
23
+ * --bs-text-default.
24
+ * @prop --bs-navigation-drawer-item-bg-selected: `selected` row background, resting. Aliased to
25
+ * --bs-surface-selected.
26
+ * @prop --bs-navigation-drawer-item-bg-hover: Unselected row background on hover. Aliased to
27
+ * --bs-surface-hover, per Figma node 13472:7172 (the full Enabled/Hovered/Focused/Pressed/
28
+ * Disabled state matrix for this component).
29
+ * @prop --bs-navigation-drawer-item-bg-pressed: Unselected row background while pressed
30
+ * (`:active`). Aliased to --bs-surface-pressed, per the same Figma node.
31
+ * @prop --bs-navigation-drawer-item-bg-focus: Unselected row background while focused
32
+ * (`:focus-visible`) -- shown together with, not instead of, the focus ring below. Aliased to
33
+ * --bs-surface-focus, per the same Figma node (identical value to --bs-surface-hover there).
34
+ * @prop --bs-navigation-drawer-item-bg-selected-hover: `selected` row background on hover.
35
+ * Aliased to --bs-surface-selected-hover, per the same Figma node.
36
+ * @prop --bs-navigation-drawer-item-bg-selected-pressed: `selected` row background while pressed.
37
+ * Aliased to --bs-surface-selected-pressed, per the same Figma node.
38
+ * @prop --bs-navigation-drawer-item-bg-selected-focus: `selected` row background while focused.
39
+ * Aliased to --bs-surface-selected-focus, per the same Figma node.
40
+ * @prop --bs-navigation-drawer-item-color-hover: Unselected row text/icon color on hover, focus,
41
+ * or pressed (all three share this color in Figma, distinct from the muted resting color).
42
+ * Aliased to --bs-text-secondary. `selected` rows keep --bs-navigation-drawer-item-color-selected
43
+ * across all of these states instead -- Figma never changes a selected row's text color.
44
+ * @prop --bs-navigation-drawer-item-focus-ring-color: Focus ring color. Aliased to
45
+ * --bs-border-neutral-focus.
46
+ * @prop --bs-navigation-drawer-item-children-gap: Gap between nested child rows. Aliased to
47
+ * --bs-spacing-100.
48
+ * @prop --bs-navigation-drawer-item-collapsed-gap: Gap between the icon and caption when
49
+ * `collapsed`. Aliased to --bs-spacing-100.
50
+ * @prop --bs-navigation-drawer-item-collapsed-padding: Padding of a `collapsed` row. Aliased to
51
+ * --bs-spacing-100 (8px, all sides -- Figma node 8028:135374's "Container").
52
+ * @prop --bs-navigation-drawer-item-collapsed-icon-padding-x: Left/right padding of the small
53
+ * rounded chip behind a `collapsed` row's icon (the `selected` tint applies to just this chip,
54
+ * not the full column). Aliased to --bs-spacing-300 -- widened from the original
55
+ * Figma-node-8028:135374 value (--bs-spacing-100) at the user's request after seeing the chip
56
+ * rendered too narrow relative to the rail's own width. Not a Figma re-measurement -- a
57
+ * deliberate deviation, same as bs-logo's icon-to-wordmark gap earlier this session.
58
+ * @prop --bs-navigation-drawer-item-collapsed-icon-padding-y: Top/bottom padding of that chip.
59
+ * Aliased to --bs-spacing-50.
60
+ * @prop --bs-navigation-drawer-item-collapsed-font-size: Caption font size when `collapsed`.
61
+ * Aliased to --bs-fontsize-caption-sm (12px).
62
+ * @prop --bs-navigation-drawer-item-collapsed-line-height: Caption line height when `collapsed`.
63
+ * Aliased to --bs-line-height-caption-sm.
64
+ */
65
+ :host {
66
+ display: block;
67
+
68
+ --bs-navigation-drawer-item-gap: var(--bs-spacing-100);
69
+ --bs-navigation-drawer-item-radius: var(--bs-border-radius-100);
70
+ --bs-navigation-drawer-item-padding-y: var(--bs-spacing-150);
71
+ --bs-navigation-drawer-item-padding-x: var(--bs-spacing-100);
72
+ --bs-navigation-drawer-item-padding-left-nested: var(--bs-spacing-600);
73
+
74
+ --bs-navigation-drawer-item-font-weight: var(--bs-font-weight-medium);
75
+ --bs-navigation-drawer-item-font-size: var(--bs-font-size-md);
76
+ --bs-navigation-drawer-item-line-height: var(--bs-line-height-body-md);
77
+
78
+ --bs-navigation-drawer-item-color: var(--bs-text-muted);
79
+ --bs-navigation-drawer-item-color-selected: var(--bs-text-default);
80
+ --bs-navigation-drawer-item-color-hover: var(--bs-text-secondary);
81
+ --bs-navigation-drawer-item-bg-selected: var(--bs-surface-selected);
82
+ --bs-navigation-drawer-item-bg-hover: var(--bs-surface-hover);
83
+ --bs-navigation-drawer-item-bg-pressed: var(--bs-surface-pressed);
84
+ --bs-navigation-drawer-item-bg-focus: var(--bs-surface-focus);
85
+ --bs-navigation-drawer-item-bg-selected-hover: var(--bs-surface-selected-hover);
86
+ --bs-navigation-drawer-item-bg-selected-pressed: var(--bs-surface-selected-pressed);
87
+ --bs-navigation-drawer-item-bg-selected-focus: var(--bs-surface-selected-focus);
88
+ --bs-navigation-drawer-item-focus-ring-color: var(--bs-border-neutral-focus);
89
+
90
+ --bs-navigation-drawer-item-children-gap: var(--bs-spacing-100);
91
+
92
+ --bs-navigation-drawer-item-collapsed-gap: var(--bs-spacing-100);
93
+ --bs-navigation-drawer-item-collapsed-padding: var(--bs-spacing-100);
94
+ --bs-navigation-drawer-item-collapsed-icon-padding-x: var(--bs-spacing-300);
95
+ --bs-navigation-drawer-item-collapsed-icon-padding-y: var(--bs-spacing-50);
96
+ --bs-navigation-drawer-item-collapsed-font-size: var(--bs-fontsize-caption-sm);
97
+ --bs-navigation-drawer-item-collapsed-line-height: var(--bs-line-height-caption-sm);
98
+ }
99
+
100
+ .bs-navigation-drawer-item__root {
101
+ display: contents;
102
+ }
103
+
104
+ .bs-navigation-drawer-item {
105
+ box-sizing: border-box;
106
+ width: 100%;
107
+ display: flex;
108
+ align-items: center;
109
+ gap: var(--bs-navigation-drawer-item-gap);
110
+ border: none;
111
+ border-radius: var(--bs-navigation-drawer-item-radius);
112
+ padding: var(--bs-navigation-drawer-item-padding-y) var(--bs-navigation-drawer-item-padding-x);
113
+ background: transparent;
114
+ color: var(--bs-navigation-drawer-item-color);
115
+ font-family: inherit;
116
+ font-weight: var(--bs-navigation-drawer-item-font-weight);
117
+ font-size: var(--bs-navigation-drawer-item-font-size);
118
+ line-height: calc(var(--bs-navigation-drawer-item-line-height) * 1px);
119
+ text-align: left;
120
+ cursor: pointer;
121
+ transition:
122
+ color var(--bs-duration-fast) var(--bs-easing-standard),
123
+ background-color var(--bs-duration-fast) var(--bs-easing-standard);
124
+ }
125
+
126
+ /* Interaction states (hover/focus/pressed), expanded (non-collapsed) rows -- per Figma node
127
+ 13472:7172's full Enabled/Hovered/Focused/Pressed/Disabled matrix. Each pair below is scoped to
128
+ :host(:not([collapsed])) explicitly (collapsed rows get their own icon-chip-only versions
129
+ further down) and to :not(.bs-navigation-drawer-item--selected) for the unselected variant --
130
+ without that guard, :hover/:focus-visible/:active (each a pseudo-class, so same specificity
131
+ contribution as a class) would win over the plain .bs-navigation-drawer-item--selected class
132
+ rule below and incorrectly replace the selected tint. Unselected rows also darken their text
133
+ color on all three of these states (Figma: --bs-text-secondary, distinct from the muted resting
134
+ color) -- selected rows never change text color across any state, only their background shade. */
135
+ :host(:not([collapsed])) .bs-navigation-drawer-item:hover:not(.bs-navigation-drawer-item--selected) {
136
+ background: var(--bs-navigation-drawer-item-bg-hover);
137
+ color: var(--bs-navigation-drawer-item-color-hover);
138
+ }
139
+
140
+ :host(:not([collapsed])) .bs-navigation-drawer-item:active:not(.bs-navigation-drawer-item--selected) {
141
+ background: var(--bs-navigation-drawer-item-bg-pressed);
142
+ color: var(--bs-navigation-drawer-item-color-hover);
143
+ }
144
+
145
+ :host(:not([collapsed])) .bs-navigation-drawer-item:focus-visible:not(.bs-navigation-drawer-item--selected) {
146
+ background: var(--bs-navigation-drawer-item-bg-focus);
147
+ color: var(--bs-navigation-drawer-item-color-hover);
148
+ }
149
+
150
+ :host(:not([collapsed])) .bs-navigation-drawer-item--selected:hover {
151
+ background: var(--bs-navigation-drawer-item-bg-selected-hover);
152
+ }
153
+
154
+ :host(:not([collapsed])) .bs-navigation-drawer-item--selected:active {
155
+ background: var(--bs-navigation-drawer-item-bg-selected-pressed);
156
+ }
157
+
158
+ :host(:not([collapsed])) .bs-navigation-drawer-item--selected:focus-visible {
159
+ background: var(--bs-navigation-drawer-item-bg-selected-focus);
160
+ }
161
+
162
+ .bs-navigation-drawer-item:focus-visible {
163
+ outline: 2px solid var(--bs-navigation-drawer-item-focus-ring-color);
164
+ outline-offset: -2px;
165
+ }
166
+
167
+ /* nested: same vertical padding, deeper left indent, right padding unchanged -- and no icon slot
168
+ at all (see the render()'s `!this.nested` guard), so there's no icon gap to worry about here. */
169
+ .bs-navigation-drawer-item--nested {
170
+ padding-left: var(--bs-navigation-drawer-item-padding-left-nested);
171
+ }
172
+
173
+ .bs-navigation-drawer-item--selected {
174
+ background: var(--bs-navigation-drawer-item-bg-selected);
175
+ color: var(--bs-navigation-drawer-item-color-selected);
176
+ }
177
+
178
+ .bs-navigation-drawer-item--selected .bs-navigation-drawer-item__icon--has-content {
179
+ color: var(--bs-navigation-drawer-item-color-selected);
180
+ }
181
+
182
+ /* collapsed: icon-above-caption column instead of icon-beside-label row, per Figma node
183
+ 8028:135374 ("Type=Collapsed"). `selected`'s background moves from the whole row onto just the
184
+ icon chip below (see .bs-navigation-drawer-item__icon's :host([collapsed]) rule) -- matching
185
+ the design file, where the tint never spans the caption underneath it. */
186
+ :host([collapsed]) .bs-navigation-drawer-item {
187
+ flex-direction: column;
188
+ justify-content: center;
189
+ gap: var(--bs-navigation-drawer-item-collapsed-gap);
190
+ padding: var(--bs-navigation-drawer-item-collapsed-padding);
191
+ background: transparent;
192
+ }
193
+
194
+ .bs-navigation-drawer-item__icon {
195
+ display: none;
196
+ width: 24px;
197
+ height: 24px;
198
+ flex-shrink: 0;
199
+ color: inherit;
200
+ }
201
+
202
+ .bs-navigation-drawer-item__icon--has-content {
203
+ display: inline-flex;
204
+ align-items: center;
205
+ justify-content: center;
206
+ }
207
+
208
+ .bs-navigation-drawer-item__icon ::slotted(svg) {
209
+ width: 24px;
210
+ height: 24px;
211
+ }
212
+
213
+ /* collapsed: the icon sits in its own small rounded chip (Figma's "State layer") so a `selected`
214
+ tint applies to just this chip, not the whole column -- see the plain (non-collapsed)
215
+ .bs-navigation-drawer-item--selected rule above for the row-wide version instead. */
216
+ :host([collapsed]) .bs-navigation-drawer-item__icon--has-content {
217
+ padding: var(--bs-navigation-drawer-item-collapsed-icon-padding-y) var(--bs-navigation-drawer-item-collapsed-icon-padding-x);
218
+ border-radius: var(--bs-navigation-drawer-item-radius);
219
+ }
220
+
221
+ :host([collapsed][selected]) .bs-navigation-drawer-item__icon--has-content {
222
+ background: var(--bs-navigation-drawer-item-bg-selected);
223
+ }
224
+
225
+ /* collapsed: hover/pressed/focus tint just the icon chip too, same reasoning as `selected` above
226
+ -- and the same :not([selected]) guard, so interacting with a selected collapsed row swaps
227
+ between the *-selected-* backgrounds below instead of these plain ones. */
228
+ :host([collapsed]:not([selected])) .bs-navigation-drawer-item:hover .bs-navigation-drawer-item__icon--has-content {
229
+ background: var(--bs-navigation-drawer-item-bg-hover);
230
+ }
231
+
232
+ :host([collapsed]:not([selected])) .bs-navigation-drawer-item:active .bs-navigation-drawer-item__icon--has-content {
233
+ background: var(--bs-navigation-drawer-item-bg-pressed);
234
+ }
235
+
236
+ :host([collapsed]:not([selected])) .bs-navigation-drawer-item:focus-visible .bs-navigation-drawer-item__icon--has-content {
237
+ background: var(--bs-navigation-drawer-item-bg-focus);
238
+ }
239
+
240
+ :host([collapsed][selected]) .bs-navigation-drawer-item:hover .bs-navigation-drawer-item__icon--has-content {
241
+ background: var(--bs-navigation-drawer-item-bg-selected-hover);
242
+ }
243
+
244
+ :host([collapsed][selected]) .bs-navigation-drawer-item:active .bs-navigation-drawer-item__icon--has-content {
245
+ background: var(--bs-navigation-drawer-item-bg-selected-pressed);
246
+ }
247
+
248
+ :host([collapsed][selected]) .bs-navigation-drawer-item:focus-visible .bs-navigation-drawer-item__icon--has-content {
249
+ background: var(--bs-navigation-drawer-item-bg-selected-focus);
250
+ }
251
+
252
+ /* collapsed unselected caption + icon: same secondary-color darkening on hover/pressed/focus as
253
+ the expanded label (both __label and __icon--has-content need this set explicitly here, since
254
+ neither the row's own `color` nor a `color: inherit` chain changes for collapsed rows the way it
255
+ does for expanded ones -- expanded rows change `color` directly on the row itself instead).
256
+ Selected captions/icons stay --bs-navigation-drawer-item-color-selected always, matching Figma. */
257
+ :host([collapsed]:not([selected])) .bs-navigation-drawer-item:hover .bs-navigation-drawer-item__label,
258
+ :host([collapsed]:not([selected])) .bs-navigation-drawer-item:active .bs-navigation-drawer-item__label,
259
+ :host([collapsed]:not([selected])) .bs-navigation-drawer-item:focus-visible .bs-navigation-drawer-item__label,
260
+ :host([collapsed]:not([selected])) .bs-navigation-drawer-item:hover .bs-navigation-drawer-item__icon--has-content,
261
+ :host([collapsed]:not([selected])) .bs-navigation-drawer-item:active .bs-navigation-drawer-item__icon--has-content,
262
+ :host([collapsed]:not([selected])) .bs-navigation-drawer-item:focus-visible .bs-navigation-drawer-item__icon--has-content {
263
+ color: var(--bs-navigation-drawer-item-color-hover);
264
+ }
265
+
266
+ .bs-navigation-drawer-item__label {
267
+ flex: 1;
268
+ min-width: 0;
269
+ text-align: left;
270
+ overflow: hidden;
271
+ text-overflow: ellipsis;
272
+ white-space: nowrap;
273
+ }
274
+
275
+ /* collapsed: small centered caption below the icon instead of the flex-1 label beside it. */
276
+ :host([collapsed]) .bs-navigation-drawer-item__label {
277
+ flex: none;
278
+ width: 100%;
279
+ text-align: center;
280
+ font-size: var(--bs-navigation-drawer-item-collapsed-font-size);
281
+ line-height: calc(var(--bs-navigation-drawer-item-collapsed-line-height) * 1px);
282
+ }
283
+
284
+ .bs-navigation-drawer-item__chevron {
285
+ flex-shrink: 0;
286
+ display: inline-flex;
287
+ align-items: center;
288
+ justify-content: center;
289
+ width: 16px;
290
+ height: 16px;
291
+ color: inherit;
292
+ transition: transform var(--bs-duration-fast) var(--bs-easing-standard);
293
+ }
294
+
295
+ .bs-navigation-drawer-item__chevron svg {
296
+ width: 16px;
297
+ height: 16px;
298
+ }
299
+
300
+ /* Rotating on `expanded` is a conventional accordion idiom this component adds on its own --
301
+ Figma's static mock reuses the identical chevron asset for both states without visually
302
+ rotating it, so this isn't pixel-confirmed against the design file, just a reasonable default. */
303
+ .bs-navigation-drawer-item__chevron--expanded {
304
+ transform: rotate(180deg);
305
+ }
306
+
307
+ /* The `children` slot wrapper is a sibling of the row button (see the render() comment in
308
+ bs-navigation-drawer-item.tsx for why), shown/hidden purely via the `expanded` attribute
309
+ (reflected) -- no JS visibility toggling needed. */
310
+ .bs-navigation-drawer-item__children {
311
+ display: flex;
312
+ flex-direction: column;
313
+ gap: var(--bs-navigation-drawer-item-children-gap);
314
+ }
315
+
316
+ :host(:not([expanded])) .bs-navigation-drawer-item__children {
317
+ display: none;
318
+ }
319
+
320
+ /* collapsed rows never show a chevron or nested children, regardless of `expanded` -- Figma's
321
+ collapsed rail (node 8028:135374) has no disclosure affordance at all. */
322
+ :host([collapsed]) .bs-navigation-drawer-item__chevron,
323
+ :host([collapsed]) .bs-navigation-drawer-item__children {
324
+ display: none;
325
+ }