@brandsync/wc 1.15.0 → 1.17.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 (479) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/REFERENCE.md +313 -0
  3. package/custom-elements.json +4760 -1555
  4. package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
  5. package/dist/brandsync-wc/p-044ac86c.entry.js +1 -0
  6. package/dist/brandsync-wc/p-065c7e7c.entry.js +1 -0
  7. package/dist/brandsync-wc/p-07673a48.entry.js +1 -0
  8. package/dist/brandsync-wc/{p-54f9529f.entry.js → p-08e96f13.entry.js} +1 -1
  9. package/dist/brandsync-wc/{p-f3cc961b.entry.js → p-0bbaef51.entry.js} +1 -1
  10. package/dist/brandsync-wc/p-11d80e17.entry.js +1 -0
  11. package/dist/brandsync-wc/{p-c85fe37b.entry.js → p-1bd99669.entry.js} +1 -1
  12. package/dist/brandsync-wc/{p-f4d1d56e.entry.js → p-225148be.entry.js} +1 -1
  13. package/dist/brandsync-wc/{p-6df48031.entry.js → p-2bd30709.entry.js} +1 -1
  14. package/dist/brandsync-wc/{p-e294f698.entry.js → p-32297416.entry.js} +1 -1
  15. package/dist/brandsync-wc/{p-d165a742.entry.js → p-35f76ea7.entry.js} +1 -1
  16. package/dist/brandsync-wc/{p-4ca40386.entry.js → p-3bad5e1b.entry.js} +1 -1
  17. package/dist/brandsync-wc/{p-ed71eb02.entry.js → p-3bdeeb9d.entry.js} +1 -1
  18. package/dist/brandsync-wc/{p-1bf8fbbb.entry.js → p-3c6ec5d0.entry.js} +1 -1
  19. package/dist/brandsync-wc/{p-abfa43f5.entry.js → p-3cb79512.entry.js} +1 -1
  20. package/dist/brandsync-wc/p-3d2c62a6.entry.js +1 -0
  21. package/dist/brandsync-wc/{p-23379d7c.entry.js → p-3d7b0708.entry.js} +1 -1
  22. package/dist/brandsync-wc/{p-2e285364.entry.js → p-43d5f708.entry.js} +1 -1
  23. package/dist/brandsync-wc/{p-d81c4f58.entry.js → p-4b460eda.entry.js} +1 -1
  24. package/dist/brandsync-wc/{p-b6081bba.entry.js → p-4eaa9ed4.entry.js} +1 -1
  25. package/dist/brandsync-wc/{p-c25553bc.entry.js → p-4f4c0c68.entry.js} +1 -1
  26. package/dist/brandsync-wc/{p-a56bc608.entry.js → p-5057e4fe.entry.js} +1 -1
  27. package/dist/brandsync-wc/p-54d91ac9.entry.js +1 -0
  28. package/dist/brandsync-wc/{p-65fa1b21.entry.js → p-57ff14ca.entry.js} +1 -1
  29. package/dist/brandsync-wc/{p-538d5b58.entry.js → p-5b933ff4.entry.js} +1 -1
  30. package/dist/brandsync-wc/{p-b67a0c8f.entry.js → p-5c61eb06.entry.js} +1 -1
  31. package/dist/brandsync-wc/{p-86774165.entry.js → p-5eb5795f.entry.js} +1 -1
  32. package/dist/brandsync-wc/{p-b663ee67.entry.js → p-61deb48c.entry.js} +1 -1
  33. package/dist/brandsync-wc/{p-ac9472ec.entry.js → p-67f125e8.entry.js} +1 -1
  34. package/dist/brandsync-wc/{p-3488c4fc.entry.js → p-6ea02b98.entry.js} +1 -1
  35. package/dist/brandsync-wc/p-70c650b2.entry.js +1 -0
  36. package/dist/brandsync-wc/p-79fc849c.entry.js +1 -0
  37. package/dist/brandsync-wc/{p-5a45ef51.entry.js → p-7ed071fb.entry.js} +1 -1
  38. package/dist/brandsync-wc/{p-3c21d0bf.entry.js → p-8134f97c.entry.js} +1 -1
  39. package/dist/brandsync-wc/{p-4ed00786.entry.js → p-844205d9.entry.js} +1 -1
  40. package/dist/brandsync-wc/p-84d6d6eb.entry.js +1 -0
  41. package/dist/brandsync-wc/{p-401b3d3d.entry.js → p-857987f9.entry.js} +1 -1
  42. package/dist/brandsync-wc/{p-b9c9bcba.entry.js → p-8c4dfccb.entry.js} +1 -1
  43. package/dist/brandsync-wc/{p-38ac9aad.entry.js → p-90ba3032.entry.js} +1 -1
  44. package/dist/brandsync-wc/{p-1ca8b01e.entry.js → p-9396c67e.entry.js} +1 -1
  45. package/dist/brandsync-wc/{p-e9b6b30f.entry.js → p-9d740928.entry.js} +1 -1
  46. package/dist/brandsync-wc/{p-baa3d37a.entry.js → p-a7fa839a.entry.js} +1 -1
  47. package/dist/brandsync-wc/{p-f271e1d2.entry.js → p-a7fb0b59.entry.js} +1 -1
  48. package/dist/brandsync-wc/{p-89ea6366.entry.js → p-ab14a07d.entry.js} +1 -1
  49. package/dist/brandsync-wc/{p-912629c6.entry.js → p-aec2dfeb.entry.js} +1 -1
  50. package/dist/brandsync-wc/{p-8390a155.entry.js → p-b02bf1ca.entry.js} +1 -1
  51. package/dist/brandsync-wc/{p-9beeb30c.entry.js → p-b142d8c9.entry.js} +1 -1
  52. package/dist/brandsync-wc/{p-7a072e64.entry.js → p-b4511ad3.entry.js} +1 -1
  53. package/dist/brandsync-wc/{p-5ed1f45e.entry.js → p-b5710db6.entry.js} +1 -1
  54. package/dist/brandsync-wc/{p-34b0c048.entry.js → p-baa39c08.entry.js} +1 -1
  55. package/dist/brandsync-wc/{p-87d44938.entry.js → p-be7aac52.entry.js} +1 -1
  56. package/dist/brandsync-wc/p-c835afb7.entry.js +1 -0
  57. package/dist/brandsync-wc/{p-45986ad4.entry.js → p-d25adab2.entry.js} +1 -1
  58. package/dist/brandsync-wc/p-d2a15599.entry.js +1 -0
  59. package/dist/brandsync-wc/{p-b9c0b481.entry.js → p-d7956c51.entry.js} +1 -1
  60. package/dist/brandsync-wc/p-d9184940.entry.js +1 -0
  61. package/dist/brandsync-wc/{p-0f97fe35.entry.js → p-dcbeb143.entry.js} +1 -1
  62. package/dist/brandsync-wc/{p-cf287ff1.entry.js → p-debc83cc.entry.js} +1 -1
  63. package/dist/brandsync-wc/{p-dcacee29.entry.js → p-e0a9f2d1.entry.js} +1 -1
  64. package/dist/brandsync-wc/p-e123b391.entry.js +1 -0
  65. package/dist/brandsync-wc/p-e8ae626d.entry.js +1 -0
  66. package/dist/brandsync-wc/p-e8e22238.entry.js +1 -0
  67. package/dist/brandsync-wc/{p-6cb21302.entry.js → p-eb0dc5bf.entry.js} +1 -1
  68. package/dist/brandsync-wc/{p-1b4c0971.entry.js → p-f43a7f16.entry.js} +1 -1
  69. package/dist/brandsync-wc/{p-7b3518b8.entry.js → p-f82a9f0d.entry.js} +1 -1
  70. package/dist/brandsync-wc/{p-f0be9125.entry.js → p-f98dfa85.entry.js} +1 -1
  71. package/dist/brandsync-wc/{p-36fe783a.entry.js → p-fdc168ec.entry.js} +1 -1
  72. package/dist/brandsync-wc/{p-bc97ece8.entry.js → p-ffccc1ee.entry.js} +1 -1
  73. package/dist/cjs/brandsync-wc.cjs.js +1 -1
  74. package/dist/cjs/bs-accordion-group.cjs.entry.js +1 -1
  75. package/dist/cjs/bs-ai-disclaimer.cjs.entry.js +1 -1
  76. package/dist/cjs/bs-ai-greeting.cjs.entry.js +1 -1
  77. package/dist/cjs/bs-ai-thinking.cjs.entry.js +1 -1
  78. package/dist/cjs/bs-app-shell.cjs.entry.js +1 -1
  79. package/dist/cjs/bs-attachment-list.cjs.entry.js +1 -1
  80. package/dist/cjs/bs-breadcrumbs.cjs.entry.js +1 -1
  81. package/dist/cjs/bs-button-skeleton.cjs.entry.js +1 -1
  82. package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +1 -1
  83. package/dist/cjs/bs-chatbot-header.cjs.entry.js +1 -1
  84. package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +1 -1
  85. package/dist/cjs/bs-chatbot-sources-drawer.cjs.entry.js +1 -1
  86. package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +1 -1
  87. package/dist/cjs/bs-checkbox-skeleton.cjs.entry.js +1 -1
  88. package/dist/cjs/bs-citation-preview.cjs.entry.js +1 -1
  89. package/dist/cjs/bs-command-palette.cjs.entry.js +374 -0
  90. package/dist/cjs/bs-composer-status-banner.cjs.entry.js +1 -1
  91. package/dist/cjs/bs-composer.cjs.entry.js +1 -1
  92. package/dist/cjs/bs-container.cjs.entry.js +1 -1
  93. package/dist/cjs/bs-data-table.cjs.entry.js +2 -2
  94. package/dist/cjs/bs-datepicker.cjs.entry.js +1 -1
  95. package/dist/cjs/bs-divider.cjs.entry.js +1 -1
  96. package/dist/cjs/bs-empty-state.cjs.entry.js +47 -0
  97. package/dist/cjs/bs-error-page.cjs.entry.js +1 -1
  98. package/dist/cjs/bs-file-upload-item.cjs.entry.js +1 -1
  99. package/dist/cjs/bs-file-upload.cjs.entry.js +1 -1
  100. package/dist/cjs/bs-global-search.cjs.entry.js +326 -0
  101. package/dist/cjs/bs-grid.cjs.entry.js +2 -2
  102. package/dist/cjs/bs-icon-button.cjs.entry.js +1 -1
  103. package/dist/cjs/bs-icon-tile.cjs.entry.js +2 -2
  104. package/dist/cjs/bs-inline-tab.cjs.entry.js +1 -1
  105. package/dist/cjs/bs-input_3.cjs.entry.js +4 -4
  106. package/dist/cjs/bs-key-caps.cjs.entry.js +39 -0
  107. package/dist/cjs/bs-key.cjs.entry.js +28 -0
  108. package/dist/cjs/bs-keyboard-shortcuts.cjs.entry.js +112 -0
  109. package/dist/cjs/bs-list-item.cjs.entry.js +66 -0
  110. package/dist/cjs/bs-list.cjs.entry.js +103 -0
  111. package/dist/cjs/bs-message-list.cjs.entry.js +1 -1
  112. package/dist/cjs/bs-message.cjs.entry.js +1 -1
  113. package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +1 -1
  114. package/dist/cjs/bs-navigation-drawer.cjs.entry.js +2 -2
  115. package/dist/cjs/bs-navigation-header.cjs.entry.js +1 -1
  116. package/dist/cjs/bs-pagination.cjs.entry.js +1 -1
  117. package/dist/cjs/bs-popover.cjs.entry.js +1 -1
  118. package/dist/cjs/bs-progress-linear.cjs.entry.js +2 -2
  119. package/dist/cjs/bs-progress.cjs.entry.js +2 -2
  120. package/dist/cjs/bs-qr-code.cjs.entry.js +1 -1
  121. package/dist/cjs/bs-radio.cjs.entry.js +1 -1
  122. package/dist/cjs/bs-search-item.cjs.entry.js +47 -0
  123. package/dist/cjs/bs-session-timeout.cjs.entry.js +1 -1
  124. package/dist/cjs/bs-shortcut-row.cjs.entry.js +27 -0
  125. package/dist/cjs/bs-skeleton.cjs.entry.js +1 -1
  126. package/dist/cjs/bs-slider.cjs.entry.js +1 -1
  127. package/dist/cjs/bs-snackbar.cjs.entry.js +1 -1
  128. package/dist/cjs/bs-source-link.cjs.entry.js +2 -2
  129. package/dist/cjs/bs-spinner.cjs.entry.js +1 -1
  130. package/dist/cjs/bs-split-pane.cjs.entry.js +1 -1
  131. package/dist/cjs/bs-stack.cjs.entry.js +1 -1
  132. package/dist/cjs/bs-stepper-step.cjs.entry.js +1 -1
  133. package/dist/cjs/bs-stepper.cjs.entry.js +1 -1
  134. package/dist/cjs/bs-switch.cjs.entry.js +1 -1
  135. package/dist/cjs/bs-tab_3.cjs.entry.js +3 -3
  136. package/dist/cjs/bs-timepicker.cjs.entry.js +2 -2
  137. package/dist/cjs/bs-toast.cjs.entry.js +1 -1
  138. package/dist/cjs/bs-tooltip-trigger.cjs.entry.js +1 -1
  139. package/dist/cjs/bs-tooltip.cjs.entry.js +1 -1
  140. package/dist/cjs/bs-tree-item.cjs.entry.js +94 -0
  141. package/dist/cjs/bs-tree.cjs.entry.js +197 -0
  142. package/dist/cjs/loader.cjs.js +1 -1
  143. package/dist/collection/collection-manifest.json +13 -1
  144. package/dist/collection/components/bs-accordion-group/bs-accordion-group.js +1 -1
  145. package/dist/collection/components/bs-ai-disclaimer/bs-ai-disclaimer.js +1 -1
  146. package/dist/collection/components/bs-ai-greeting/bs-ai-greeting.js +1 -1
  147. package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.js +1 -1
  148. package/dist/collection/components/bs-app-shell/bs-app-shell.js +1 -1
  149. package/dist/collection/components/bs-attachment-list/bs-attachment-list.js +1 -1
  150. package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.js +1 -1
  151. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.js +1 -1
  152. package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +1 -1
  153. package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.js +1 -1
  154. package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.js +1 -1
  155. package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.js +1 -1
  156. package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.js +1 -1
  157. package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js +1 -1
  158. package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.js +1 -1
  159. package/dist/collection/components/bs-citation-preview/bs-citation-preview.js +1 -1
  160. package/dist/collection/components/bs-command-palette/bs-command-palette.cmp.test.js +207 -0
  161. package/dist/collection/components/bs-command-palette/bs-command-palette.css +214 -0
  162. package/dist/collection/components/bs-command-palette/bs-command-palette.js +1114 -0
  163. package/dist/collection/components/bs-command-palette/bs-command-palette.stories.js +194 -0
  164. package/dist/collection/components/bs-composer/bs-composer.js +1 -1
  165. package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.js +1 -1
  166. package/dist/collection/components/bs-container/bs-container.js +1 -1
  167. package/dist/collection/components/bs-data-table/bs-data-table.js +2 -2
  168. package/dist/collection/components/bs-datepicker/bs-datepicker.js +1 -1
  169. package/dist/collection/components/bs-divider/bs-divider.js +1 -1
  170. package/dist/collection/components/bs-empty-state/bs-empty-state.cmp.test.js +102 -0
  171. package/dist/collection/components/bs-empty-state/bs-empty-state.css +45 -0
  172. package/dist/collection/components/bs-empty-state/bs-empty-state.js +175 -0
  173. package/dist/collection/components/bs-empty-state/bs-empty-state.stories.js +52 -0
  174. package/dist/collection/components/bs-error-page/bs-error-page.js +1 -1
  175. package/dist/collection/components/bs-file-upload/bs-file-upload.js +1 -1
  176. package/dist/collection/components/bs-file-upload-item/bs-file-upload-item.js +1 -1
  177. package/dist/collection/components/bs-global-search/bs-global-search.cmp.test.js +491 -0
  178. package/dist/collection/components/bs-global-search/bs-global-search.css +115 -0
  179. package/dist/collection/components/bs-global-search/bs-global-search.js +1024 -0
  180. package/dist/collection/components/bs-global-search/bs-global-search.stories.js +146 -0
  181. package/dist/collection/components/bs-grid/bs-grid.js +2 -2
  182. package/dist/collection/components/bs-icon-tile/bs-icon-tile.js +2 -2
  183. package/dist/collection/components/bs-input/bs-input.js +2 -2
  184. package/dist/collection/components/bs-key/bs-key.cmp.test.js +59 -0
  185. package/dist/collection/components/bs-key/bs-key.css +58 -0
  186. package/dist/collection/components/bs-key/bs-key.js +84 -0
  187. package/dist/collection/components/bs-key/bs-key.stories.js +19 -0
  188. package/dist/collection/components/bs-key-caps/bs-key-caps.cmp.test.js +60 -0
  189. package/dist/collection/components/bs-key-caps/bs-key-caps.css +28 -0
  190. package/dist/collection/components/bs-key-caps/bs-key-caps.js +120 -0
  191. package/dist/collection/components/bs-key-caps/bs-key-caps.stories.js +29 -0
  192. package/dist/collection/components/bs-keyboard-shortcuts/bs-keyboard-shortcuts.cmp.test.js +194 -0
  193. package/dist/collection/components/bs-keyboard-shortcuts/bs-keyboard-shortcuts.css +138 -0
  194. package/dist/collection/components/bs-keyboard-shortcuts/bs-keyboard-shortcuts.js +485 -0
  195. package/dist/collection/components/bs-keyboard-shortcuts/bs-keyboard-shortcuts.stories.js +111 -0
  196. package/dist/collection/components/bs-list/bs-list.cmp.test.js +99 -0
  197. package/dist/collection/components/bs-list/bs-list.css +15 -0
  198. package/dist/collection/components/bs-list/bs-list.js +241 -0
  199. package/dist/collection/components/bs-list/bs-list.stories.js +43 -0
  200. package/dist/collection/components/bs-list-item/bs-list-item.cmp.test.js +137 -0
  201. package/dist/collection/components/bs-list-item/bs-list-item.css +139 -0
  202. package/dist/collection/components/bs-list-item/bs-list-item.js +343 -0
  203. package/dist/collection/components/bs-list-item/bs-list-item.stories.js +86 -0
  204. package/dist/collection/components/bs-menu/bs-menu.js +1 -1
  205. package/dist/collection/components/bs-menu-item/bs-menu-item.cmp.test.js +6 -0
  206. package/dist/collection/components/bs-menu-item/bs-menu-item.js +1 -1
  207. package/dist/collection/components/bs-message/bs-message.js +1 -1
  208. package/dist/collection/components/bs-message-list/bs-message-list.js +1 -1
  209. package/dist/collection/components/bs-pagination/bs-pagination.js +1 -1
  210. package/dist/collection/components/bs-popover/bs-popover.js +1 -1
  211. package/dist/collection/components/bs-progress/bs-progress.js +2 -2
  212. package/dist/collection/components/bs-progress-linear/bs-progress-linear.js +2 -2
  213. package/dist/collection/components/bs-qr-code/bs-qr-code.js +1 -1
  214. package/dist/collection/components/bs-radio/bs-radio.js +1 -1
  215. package/dist/collection/components/bs-search-item/bs-search-item.cmp.test.js +147 -0
  216. package/dist/collection/components/bs-search-item/bs-search-item.css +112 -0
  217. package/dist/collection/components/bs-search-item/bs-search-item.js +222 -0
  218. package/dist/collection/components/bs-search-item/bs-search-item.stories.js +31 -0
  219. package/dist/collection/components/bs-session-timeout/bs-session-timeout.js +1 -1
  220. package/dist/collection/components/bs-shortcut-row/bs-shortcut-row.cmp.test.js +60 -0
  221. package/dist/collection/components/bs-shortcut-row/bs-shortcut-row.css +42 -0
  222. package/dist/collection/components/bs-shortcut-row/bs-shortcut-row.js +154 -0
  223. package/dist/collection/components/bs-shortcut-row/bs-shortcut-row.stories.js +24 -0
  224. package/dist/collection/components/bs-skeleton/bs-skeleton.js +1 -1
  225. package/dist/collection/components/bs-slider/bs-slider.js +1 -1
  226. package/dist/collection/components/bs-snackbar/bs-snackbar.js +1 -1
  227. package/dist/collection/components/bs-source-link/bs-source-link.js +2 -2
  228. package/dist/collection/components/bs-spinner/bs-spinner.js +1 -1
  229. package/dist/collection/components/bs-split-pane/bs-split-pane.js +1 -1
  230. package/dist/collection/components/bs-stack/bs-stack.js +1 -1
  231. package/dist/collection/components/bs-stepper/bs-stepper/bs-stepper.js +1 -1
  232. package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.js +1 -1
  233. package/dist/collection/components/bs-switch/bs-switch.js +1 -1
  234. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.js +1 -1
  235. package/dist/collection/components/bs-tab/bs-tab/bs-tab.js +1 -1
  236. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.js +1 -1
  237. package/dist/collection/components/bs-timepicker/bs-timepicker.js +2 -2
  238. package/dist/collection/components/bs-toast/bs-toast.js +1 -1
  239. package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
  240. package/dist/collection/components/bs-tooltip-trigger/bs-tooltip-trigger.js +1 -1
  241. package/dist/collection/components/bs-tree/bs-tree.cmp.test.js +166 -0
  242. package/dist/collection/components/bs-tree/bs-tree.css +8 -0
  243. package/dist/collection/components/bs-tree/bs-tree.js +354 -0
  244. package/dist/collection/components/bs-tree/bs-tree.stories.js +34 -0
  245. package/dist/collection/components/bs-tree-item/bs-tree-item.cmp.test.js +187 -0
  246. package/dist/collection/components/bs-tree-item/bs-tree-item.css +161 -0
  247. package/dist/collection/components/bs-tree-item/bs-tree-item.js +305 -0
  248. package/dist/collection/components/bs-tree-item/bs-tree-item.stories.js +54 -0
  249. package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.js +1 -1
  250. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +2 -2
  251. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.js +1 -1
  252. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.js +1 -1
  253. package/dist/components/bs-accordion-group.js +1 -1
  254. package/dist/components/bs-ai-disclaimer.js +1 -1
  255. package/dist/components/bs-ai-greeting.js +1 -1
  256. package/dist/components/bs-ai-thinking.js +1 -1
  257. package/dist/components/bs-app-shell.js +1 -1
  258. package/dist/components/bs-attachment-list.js +1 -1
  259. package/dist/components/bs-attachment.js +1 -1
  260. package/dist/components/bs-breadcrumb-overflow.js +1 -1
  261. package/dist/components/bs-breadcrumbs.js +1 -1
  262. package/dist/components/bs-button-skeleton.js +1 -1
  263. package/dist/components/bs-carousel.js +1 -1
  264. package/dist/components/bs-chatbot-feedback.js +1 -1
  265. package/dist/components/bs-chatbot-header.js +1 -1
  266. package/dist/components/bs-chatbot-response-action.js +1 -1
  267. package/dist/components/bs-chatbot-sources-drawer.js +1 -1
  268. package/dist/components/bs-chatbot-suggestion-button.js +1 -1
  269. package/dist/components/bs-checkbox-skeleton.js +1 -1
  270. package/dist/components/bs-citation-preview.js +1 -1
  271. package/dist/components/bs-command-palette.d.ts +11 -0
  272. package/dist/components/bs-command-palette.js +1 -0
  273. package/dist/components/bs-composer-status-banner.js +1 -1
  274. package/dist/components/bs-composer.js +1 -1
  275. package/dist/components/bs-container.js +1 -1
  276. package/dist/components/bs-cookie-consent.js +1 -1
  277. package/dist/components/bs-data-table.js +1 -1
  278. package/dist/components/bs-datepicker.js +1 -1
  279. package/dist/components/bs-dialog.js +1 -1
  280. package/dist/components/bs-divider.js +1 -1
  281. package/dist/components/bs-empty-state.d.ts +11 -0
  282. package/dist/components/bs-empty-state.js +1 -0
  283. package/dist/components/bs-error-page.js +1 -1
  284. package/dist/components/bs-file-upload-item.js +1 -1
  285. package/dist/components/bs-file-upload.js +1 -1
  286. package/dist/components/bs-global-search.d.ts +11 -0
  287. package/dist/components/bs-global-search.js +1 -0
  288. package/dist/components/bs-grid.js +1 -1
  289. package/dist/components/bs-icon-button.js +1 -1
  290. package/dist/components/bs-icon-tile.js +1 -1
  291. package/dist/components/bs-inline-tab.js +1 -1
  292. package/dist/components/bs-input.js +1 -1
  293. package/dist/components/bs-key-caps.d.ts +11 -0
  294. package/dist/components/bs-key-caps.js +1 -0
  295. package/dist/components/bs-key.d.ts +11 -0
  296. package/dist/components/bs-key.js +1 -0
  297. package/dist/components/bs-keyboard-shortcuts.d.ts +11 -0
  298. package/dist/components/bs-keyboard-shortcuts.js +1 -0
  299. package/dist/components/bs-list-item.d.ts +11 -0
  300. package/dist/components/bs-list-item.js +1 -0
  301. package/dist/components/bs-list.d.ts +11 -0
  302. package/dist/components/bs-list.js +1 -0
  303. package/dist/components/bs-menu-item.js +1 -1
  304. package/dist/components/bs-menu.js +1 -1
  305. package/dist/components/bs-message-list.js +1 -1
  306. package/dist/components/bs-message.js +1 -1
  307. package/dist/components/bs-navigation-drawer-item.js +1 -1
  308. package/dist/components/bs-navigation-drawer.js +1 -1
  309. package/dist/components/bs-navigation-header.js +1 -1
  310. package/dist/components/bs-onboarding-checklist.js +1 -1
  311. package/dist/components/bs-pagination.js +1 -1
  312. package/dist/components/bs-popover.js +1 -1
  313. package/dist/components/bs-product-tour.js +1 -1
  314. package/dist/components/bs-progress-linear.js +1 -1
  315. package/dist/components/bs-progress.js +1 -1
  316. package/dist/components/bs-qr-code.js +1 -1
  317. package/dist/components/bs-radio.js +1 -1
  318. package/dist/components/bs-search-item.d.ts +11 -0
  319. package/dist/components/bs-search-item.js +1 -0
  320. package/dist/components/bs-session-timeout.js +1 -1
  321. package/dist/components/bs-shortcut-row.d.ts +11 -0
  322. package/dist/components/bs-shortcut-row.js +1 -0
  323. package/dist/components/bs-side-panel.js +1 -1
  324. package/dist/components/bs-skeleton.js +1 -1
  325. package/dist/components/bs-slider.js +1 -1
  326. package/dist/components/bs-snackbar.js +1 -1
  327. package/dist/components/bs-source-link.js +1 -1
  328. package/dist/components/bs-spinner.js +1 -1
  329. package/dist/components/bs-split-pane.js +1 -1
  330. package/dist/components/bs-stack.js +1 -1
  331. package/dist/components/bs-stepper-step.js +1 -1
  332. package/dist/components/bs-stepper.js +1 -1
  333. package/dist/components/bs-switch.js +1 -1
  334. package/dist/components/bs-tab.js +1 -1
  335. package/dist/components/bs-tabs.js +1 -1
  336. package/dist/components/bs-timepicker.js +1 -1
  337. package/dist/components/bs-toast.js +1 -1
  338. package/dist/components/bs-tooltip-trigger.js +1 -1
  339. package/dist/components/bs-tooltip.js +1 -1
  340. package/dist/components/bs-tree-item.d.ts +11 -0
  341. package/dist/components/bs-tree-item.js +1 -0
  342. package/dist/components/bs-tree.d.ts +11 -0
  343. package/dist/components/bs-tree.js +1 -0
  344. package/dist/components/bs-whats-new-entry.js +1 -1
  345. package/dist/components/bs-whats-new.js +1 -1
  346. package/dist/components/{p-GTDI4Ibw.js → p-B32Kl4IB.js} +1 -1
  347. package/dist/components/{p-B128GX8H.js → p-BDnZvjlq.js} +1 -1
  348. package/dist/components/{p-Bqe4waKJ.js → p-BUpnOUIM.js} +1 -1
  349. package/dist/components/p-BcYNrEOB.js +1 -0
  350. package/dist/components/{p-B80vOwH6.js → p-BcbaiZLh.js} +1 -1
  351. package/dist/components/p-Bp3DIxjT.js +1 -0
  352. package/dist/components/p-CH5atin4.js +1 -0
  353. package/dist/components/{p-kDJsWjTN.js → p-CRM1wIX9.js} +1 -1
  354. package/dist/components/{p-Mf1jorXP.js → p-CYzBTzzf.js} +1 -1
  355. package/dist/components/p-CervX0wH.js +1 -0
  356. package/dist/components/{p-ElcsxZSh.js → p-Cpe2k7ZC.js} +1 -1
  357. package/dist/components/{p-BvYkZcOU.js → p-D7AXo5NT.js} +1 -1
  358. package/dist/components/{p-B3l4WpgS.js → p-D8bvv9QQ.js} +1 -1
  359. package/dist/components/{p-ByKcHsj0.js → p-DG9eT5yi.js} +1 -1
  360. package/dist/components/{p-D0KM1R2i.js → p-DMLfXpva.js} +1 -1
  361. package/dist/components/{p-CQjSDdH7.js → p-DYDk73TF.js} +1 -1
  362. package/dist/components/{p-C7RZ6qZC.js → p-DcjgRtSQ.js} +1 -1
  363. package/dist/components/p-Dt4JNhHT.js +1 -0
  364. package/dist/components/{p-CK7fiES5.js → p-DtYTs9Kh.js} +1 -1
  365. package/dist/components/{p-BsbtyRJV.js → p-TAY9S9yG.js} +1 -1
  366. package/dist/components/{p-ByLUtXxO.js → p-w-DkdA4O.js} +1 -1
  367. package/dist/esm/brandsync-wc.js +1 -1
  368. package/dist/esm/bs-accordion-group.entry.js +1 -1
  369. package/dist/esm/bs-ai-disclaimer.entry.js +1 -1
  370. package/dist/esm/bs-ai-greeting.entry.js +1 -1
  371. package/dist/esm/bs-ai-thinking.entry.js +1 -1
  372. package/dist/esm/bs-app-shell.entry.js +1 -1
  373. package/dist/esm/bs-attachment-list.entry.js +1 -1
  374. package/dist/esm/bs-breadcrumbs.entry.js +1 -1
  375. package/dist/esm/bs-button-skeleton.entry.js +1 -1
  376. package/dist/esm/bs-chatbot-feedback.entry.js +1 -1
  377. package/dist/esm/bs-chatbot-header.entry.js +1 -1
  378. package/dist/esm/bs-chatbot-response-action.entry.js +1 -1
  379. package/dist/esm/bs-chatbot-sources-drawer.entry.js +1 -1
  380. package/dist/esm/bs-chatbot-suggestion-button.entry.js +1 -1
  381. package/dist/esm/bs-checkbox-skeleton.entry.js +1 -1
  382. package/dist/esm/bs-citation-preview.entry.js +1 -1
  383. package/dist/esm/bs-command-palette.entry.js +372 -0
  384. package/dist/esm/bs-composer-status-banner.entry.js +1 -1
  385. package/dist/esm/bs-composer.entry.js +1 -1
  386. package/dist/esm/bs-container.entry.js +1 -1
  387. package/dist/esm/bs-data-table.entry.js +2 -2
  388. package/dist/esm/bs-datepicker.entry.js +1 -1
  389. package/dist/esm/bs-divider.entry.js +1 -1
  390. package/dist/esm/bs-empty-state.entry.js +45 -0
  391. package/dist/esm/bs-error-page.entry.js +1 -1
  392. package/dist/esm/bs-file-upload-item.entry.js +1 -1
  393. package/dist/esm/bs-file-upload.entry.js +1 -1
  394. package/dist/esm/bs-global-search.entry.js +324 -0
  395. package/dist/esm/bs-grid.entry.js +2 -2
  396. package/dist/esm/bs-icon-button.entry.js +1 -1
  397. package/dist/esm/bs-icon-tile.entry.js +2 -2
  398. package/dist/esm/bs-inline-tab.entry.js +1 -1
  399. package/dist/esm/bs-input_3.entry.js +4 -4
  400. package/dist/esm/bs-key-caps.entry.js +37 -0
  401. package/dist/esm/bs-key.entry.js +26 -0
  402. package/dist/esm/bs-keyboard-shortcuts.entry.js +110 -0
  403. package/dist/esm/bs-list-item.entry.js +64 -0
  404. package/dist/esm/bs-list.entry.js +101 -0
  405. package/dist/esm/bs-message-list.entry.js +1 -1
  406. package/dist/esm/bs-message.entry.js +1 -1
  407. package/dist/esm/bs-navigation-drawer-item.entry.js +1 -1
  408. package/dist/esm/bs-navigation-drawer.entry.js +2 -2
  409. package/dist/esm/bs-navigation-header.entry.js +1 -1
  410. package/dist/esm/bs-pagination.entry.js +1 -1
  411. package/dist/esm/bs-popover.entry.js +1 -1
  412. package/dist/esm/bs-progress-linear.entry.js +2 -2
  413. package/dist/esm/bs-progress.entry.js +2 -2
  414. package/dist/esm/bs-qr-code.entry.js +1 -1
  415. package/dist/esm/bs-radio.entry.js +1 -1
  416. package/dist/esm/bs-search-item.entry.js +45 -0
  417. package/dist/esm/bs-session-timeout.entry.js +1 -1
  418. package/dist/esm/bs-shortcut-row.entry.js +25 -0
  419. package/dist/esm/bs-skeleton.entry.js +1 -1
  420. package/dist/esm/bs-slider.entry.js +1 -1
  421. package/dist/esm/bs-snackbar.entry.js +1 -1
  422. package/dist/esm/bs-source-link.entry.js +2 -2
  423. package/dist/esm/bs-spinner.entry.js +1 -1
  424. package/dist/esm/bs-split-pane.entry.js +1 -1
  425. package/dist/esm/bs-stack.entry.js +1 -1
  426. package/dist/esm/bs-stepper-step.entry.js +1 -1
  427. package/dist/esm/bs-stepper.entry.js +1 -1
  428. package/dist/esm/bs-switch.entry.js +1 -1
  429. package/dist/esm/bs-tab_3.entry.js +3 -3
  430. package/dist/esm/bs-timepicker.entry.js +2 -2
  431. package/dist/esm/bs-toast.entry.js +1 -1
  432. package/dist/esm/bs-tooltip-trigger.entry.js +1 -1
  433. package/dist/esm/bs-tooltip.entry.js +1 -1
  434. package/dist/esm/bs-tree-item.entry.js +92 -0
  435. package/dist/esm/bs-tree.entry.js +195 -0
  436. package/dist/esm/loader.js +1 -1
  437. package/dist/types/components/bs-command-palette/bs-command-palette.cmp.test.d.ts +1 -0
  438. package/dist/types/components/bs-command-palette/bs-command-palette.d.ts +172 -0
  439. package/dist/types/components/bs-command-palette/bs-command-palette.stories.d.ts +56 -0
  440. package/dist/types/components/bs-empty-state/bs-empty-state.cmp.test.d.ts +1 -0
  441. package/dist/types/components/bs-empty-state/bs-empty-state.d.ts +50 -0
  442. package/dist/types/components/bs-empty-state/bs-empty-state.stories.d.ts +13 -0
  443. package/dist/types/components/bs-global-search/bs-global-search.cmp.test.d.ts +1 -0
  444. package/dist/types/components/bs-global-search/bs-global-search.d.ts +166 -0
  445. package/dist/types/components/bs-global-search/bs-global-search.stories.d.ts +61 -0
  446. package/dist/types/components/bs-key/bs-key.cmp.test.d.ts +1 -0
  447. package/dist/types/components/bs-key/bs-key.d.ts +36 -0
  448. package/dist/types/components/bs-key/bs-key.stories.d.ts +11 -0
  449. package/dist/types/components/bs-key-caps/bs-key-caps.cmp.test.d.ts +1 -0
  450. package/dist/types/components/bs-key-caps/bs-key-caps.d.ts +31 -0
  451. package/dist/types/components/bs-key-caps/bs-key-caps.stories.d.ts +15 -0
  452. package/dist/types/components/bs-keyboard-shortcuts/bs-keyboard-shortcuts.cmp.test.d.ts +1 -0
  453. package/dist/types/components/bs-keyboard-shortcuts/bs-keyboard-shortcuts.d.ts +95 -0
  454. package/dist/types/components/bs-keyboard-shortcuts/bs-keyboard-shortcuts.stories.d.ts +43 -0
  455. package/dist/types/components/bs-list/bs-list.cmp.test.d.ts +1 -0
  456. package/dist/types/components/bs-list/bs-list.d.ts +42 -0
  457. package/dist/types/components/bs-list/bs-list.stories.d.ts +13 -0
  458. package/dist/types/components/bs-list-item/bs-list-item.cmp.test.d.ts +1 -0
  459. package/dist/types/components/bs-list-item/bs-list-item.d.ts +85 -0
  460. package/dist/types/components/bs-list-item/bs-list-item.stories.d.ts +22 -0
  461. package/dist/types/components/bs-search-item/bs-search-item.cmp.test.d.ts +1 -0
  462. package/dist/types/components/bs-search-item/bs-search-item.d.ts +61 -0
  463. package/dist/types/components/bs-search-item/bs-search-item.stories.d.ts +13 -0
  464. package/dist/types/components/bs-shortcut-row/bs-shortcut-row.cmp.test.d.ts +1 -0
  465. package/dist/types/components/bs-shortcut-row/bs-shortcut-row.d.ts +38 -0
  466. package/dist/types/components/bs-shortcut-row/bs-shortcut-row.stories.d.ts +13 -0
  467. package/dist/types/components/bs-tree/bs-tree.cmp.test.d.ts +1 -0
  468. package/dist/types/components/bs-tree/bs-tree.d.ts +53 -0
  469. package/dist/types/components/bs-tree/bs-tree.stories.d.ts +11 -0
  470. package/dist/types/components/bs-tree-item/bs-tree-item.cmp.test.d.ts +1 -0
  471. package/dist/types/components/bs-tree-item/bs-tree-item.d.ts +60 -0
  472. package/dist/types/components/bs-tree-item/bs-tree-item.stories.d.ts +19 -0
  473. package/dist/types/components.d.ts +2700 -199
  474. package/package.json +1 -1
  475. package/reference.d.ts +36 -0
  476. package/reference.json +1076 -47
  477. package/dist/brandsync-wc/p-769c5b4a.entry.js +0 -1
  478. package/dist/brandsync-wc/p-e5f50e93.entry.js +0 -1
  479. package/dist/brandsync-wc/p-e72dd05e.entry.js +0 -1
@@ -0,0 +1,161 @@
1
+ /**
2
+ * @prop --bs-tree-item-height: Row height (48px). Aliased to --bs-spacing-600.
3
+ * @prop --bs-tree-item-indent: Extra indent per nesting level. Set directly in px (no 40px spacing token), matching Figma.
4
+ * @prop --bs-tree-item-radius: Pill corner radius. Aliased to --bs-border-radius-100.
5
+ * @prop --bs-tree-item-padding-x: Pill horizontal padding. Aliased to --bs-spacing-50.
6
+ * @prop --bs-tree-item-caret-gap: Gap between the caret and the icon/label group. Aliased to --bs-spacing-150.
7
+ * @prop --bs-tree-item-content-gap: Gap between the icon and the label. Aliased to --bs-spacing-100.
8
+ * @prop --bs-tree-item-font-size: Label font size. Aliased to --bs-font-size-md.
9
+ * @prop --bs-tree-item-line-height: Label line height (unitless px number). Aliased to --bs-line-height-body-md.
10
+ * @prop --bs-tree-item-text: Label colour. Aliased to --bs-text-default.
11
+ * @prop --bs-tree-item-icon: Icon and caret colour. Aliased to --bs-icon-default.
12
+ * @prop --bs-tree-item-bg-selected: Pill background, selected. Aliased to --bs-surface-selected.
13
+ * @prop --bs-tree-item-bg-hover: Pill background, hovered. Aliased to --bs-surface-hover.
14
+ * @prop --bs-tree-item-bg-pressed: Pill background, pressed. Aliased to --bs-surface-pressed.
15
+ * @prop --bs-tree-item-bg-focus: Pill background, keyboard-focused. Aliased to --bs-surface-focus.
16
+ * @prop --bs-tree-item-bg-selected-hover: Pill background, selected and hovered. Aliased to --bs-surface-selected-hover.
17
+ * @prop --bs-tree-item-bg-selected-pressed: Pill background, selected and pressed. Aliased to --bs-surface-selected-pressed.
18
+ * @prop --bs-tree-item-bg-selected-focus: Pill background, selected and keyboard-focused. Aliased to --bs-surface-selected-focus.
19
+ * @prop --bs-tree-item-focus-ring: Focus ring colour. Aliased to --bs-border-primary-hover.
20
+ * @prop --bs-tree-item-text-disabled: Label colour, disabled. Aliased to --bs-text-on-disabled.
21
+ * @prop --bs-tree-item-icon-disabled: Icon and caret colour, disabled. Aliased to --bs-icon-disabled.
22
+ */
23
+ :host {
24
+ display: block;
25
+ outline: none;
26
+
27
+ --bs-tree-item-height: var(--bs-spacing-600);
28
+ --bs-tree-item-indent: 40px;
29
+ --bs-tree-item-radius: var(--bs-border-radius-100);
30
+ --bs-tree-item-padding-x: var(--bs-spacing-50);
31
+ --bs-tree-item-caret-gap: var(--bs-spacing-150);
32
+ --bs-tree-item-content-gap: var(--bs-spacing-100);
33
+ --bs-tree-item-font-size: var(--bs-font-size-md);
34
+ --bs-tree-item-line-height: var(--bs-line-height-body-md);
35
+ --bs-tree-item-text: var(--bs-text-default);
36
+ --bs-tree-item-icon: var(--bs-icon-default);
37
+ --bs-tree-item-bg-selected: var(--bs-surface-selected);
38
+ --bs-tree-item-bg-hover: var(--bs-surface-hover);
39
+ --bs-tree-item-bg-pressed: var(--bs-surface-pressed);
40
+ --bs-tree-item-bg-focus: var(--bs-surface-focus);
41
+ --bs-tree-item-bg-selected-hover: var(--bs-surface-selected-hover);
42
+ --bs-tree-item-bg-selected-pressed: var(--bs-surface-selected-pressed);
43
+ --bs-tree-item-bg-selected-focus: var(--bs-surface-selected-focus);
44
+ --bs-tree-item-focus-ring: var(--bs-border-primary-hover);
45
+ --bs-tree-item-text-disabled: var(--bs-text-on-disabled);
46
+ --bs-tree-item-icon-disabled: var(--bs-icon-disabled);
47
+
48
+ /* Text colour on the host so slotted label/icon content inherits it (light and dark). */
49
+ color: var(--bs-tree-item-text);
50
+ font-family: inherit;
51
+ }
52
+
53
+ :host([disabled]) {
54
+ color: var(--bs-tree-item-text-disabled);
55
+ }
56
+
57
+ .bs-tree-item__row {
58
+ box-sizing: border-box;
59
+ width: 100%;
60
+ height: var(--bs-tree-item-height);
61
+ display: flex;
62
+ padding-inline-start: calc((var(--bs-tree-item-level, 1) - 1) * var(--bs-tree-item-indent));
63
+ }
64
+
65
+ .bs-tree-item__container {
66
+ box-sizing: border-box;
67
+ flex: 1;
68
+ min-width: 0;
69
+ height: 100%;
70
+ display: flex;
71
+ align-items: center;
72
+ gap: var(--bs-tree-item-caret-gap);
73
+ padding-inline: var(--bs-tree-item-padding-x);
74
+ border-radius: var(--bs-tree-item-radius);
75
+ background: transparent;
76
+ cursor: pointer;
77
+ }
78
+
79
+ .bs-tree-item__container--selected {
80
+ background: var(--bs-tree-item-bg-selected);
81
+ }
82
+
83
+ .bs-tree-item__container:not(.bs-tree-item__container--disabled):hover {
84
+ background: var(--bs-tree-item-bg-hover);
85
+ }
86
+ .bs-tree-item__container--selected:not(.bs-tree-item__container--disabled):hover {
87
+ background: var(--bs-tree-item-bg-selected-hover);
88
+ }
89
+ .bs-tree-item__container:not(.bs-tree-item__container--disabled):active {
90
+ background: var(--bs-tree-item-bg-pressed);
91
+ }
92
+ .bs-tree-item__container--selected:not(.bs-tree-item__container--disabled):active {
93
+ background: var(--bs-tree-item-bg-selected-pressed);
94
+ }
95
+
96
+ /* Keyboard focus lives on the host; the ring is an outline on the pill (offset 0 = drawn just
97
+ outside it, following the pill's radius), so nothing clips it. */
98
+ :host(:focus-visible) .bs-tree-item__container {
99
+ background: var(--bs-tree-item-bg-focus);
100
+ outline: 2px solid var(--bs-tree-item-focus-ring);
101
+ outline-offset: 0;
102
+ }
103
+ :host(:focus-visible) .bs-tree-item__container--selected {
104
+ background: var(--bs-tree-item-bg-selected-focus);
105
+ }
106
+
107
+ .bs-tree-item__container--disabled {
108
+ cursor: default;
109
+ }
110
+
111
+ .bs-tree-item__caret {
112
+ display: flex;
113
+ flex: none;
114
+ width: 24px;
115
+ height: 24px;
116
+ color: var(--bs-tree-item-icon);
117
+ transition: transform 150ms ease;
118
+ }
119
+ .bs-tree-item__caret--open {
120
+ transform: rotate(90deg);
121
+ }
122
+ .bs-tree-item__caret svg,
123
+ .bs-tree-item__icon svg {
124
+ width: 24px;
125
+ height: 24px;
126
+ }
127
+
128
+ .bs-tree-item__content {
129
+ display: flex;
130
+ align-items: center;
131
+ gap: var(--bs-tree-item-content-gap);
132
+ min-width: 0;
133
+ }
134
+
135
+ .bs-tree-item__icon {
136
+ display: flex;
137
+ flex: none;
138
+ width: 24px;
139
+ height: 24px;
140
+ color: var(--bs-tree-item-icon);
141
+ }
142
+
143
+ .bs-tree-item__label {
144
+ min-width: 0;
145
+ font-size: var(--bs-tree-item-font-size);
146
+ line-height: calc(var(--bs-tree-item-line-height) * 1px);
147
+ font-weight: var(--bs-font-weight-regular);
148
+ color: inherit;
149
+ word-break: break-word;
150
+ }
151
+
152
+ .bs-tree-item__container--disabled .bs-tree-item__caret,
153
+ .bs-tree-item__container--disabled .bs-tree-item__icon {
154
+ color: var(--bs-tree-item-icon-disabled);
155
+ }
156
+
157
+ @media (prefers-reduced-motion: reduce) {
158
+ .bs-tree-item__caret {
159
+ transition: none;
160
+ }
161
+ }
@@ -0,0 +1,305 @@
1
+ import { Host, h } from "@stencil/core";
2
+ /**
3
+ * A single row of a `bs-tree`. An item that contains child `bs-tree-item` elements is a parent
4
+ * (it gets an expand/collapse caret and a folder icon); an item without children is a leaf (no
5
+ * caret, file icon).
6
+ *
7
+ * The host carries `role="treeitem"` and the `aria-*` state; the owning `bs-tree` manages the
8
+ * roving `tabindex`, selection and keyboard navigation. Nesting depth is computed automatically
9
+ * from the number of ancestor `bs-tree-item` elements and exposed as `aria-level` -- it is not a
10
+ * prop. Clicking the row selects it; clicking the caret (or pressing Right/Left in a tree) toggles
11
+ * expansion -- the two are deliberately separate.
12
+ *
13
+ * Built from: inline SVG icons only (no existing `bs-*` component covers a tree row).
14
+ *
15
+ * @slot - Default slot: child `bs-tree-item` elements (the subtree). Only rendered, inside a
16
+ * `role="group"` wrapper, while the item is expanded; collapsed children are not accessible.
17
+ * @slot label - Overrides the `label` text.
18
+ * @slot icon - Overrides the default folder / file icon. Only used when `showIcon` is `true`.
19
+ * @part container - The highlighted row pill (carries the hover / selected / focus states).
20
+ * @part caret - The expand/collapse caret (parents only).
21
+ * @part icon - The icon wrapper.
22
+ * @part label - The label wrapper.
23
+ * @part group - The `role="group"` wrapper around the child items (while expanded).
24
+ */
25
+ export class BsTreeItem {
26
+ el;
27
+ /** The row's text. Use the `label` slot for rich content. */
28
+ label = '';
29
+ /** Whether the child items are shown. Only meaningful for parents. Mutable: the caret, the
30
+ * keyboard and the owning tree toggle it. Reflected. */
31
+ expanded = false;
32
+ /** Marks the row as selected. Owned by the tree (single selection, synced with its `value`).
33
+ * Reflected. */
34
+ selected = false;
35
+ /** Disables the row: not focusable, ignores clicks, dimmed. Reflected. */
36
+ disabled = false;
37
+ /** Shows the leading icon (default folder / file, or the `icon` slot). */
38
+ showIcon = true;
39
+ /** Identifier used in events and for the tree's `value`. Falls back to `label` when empty. */
40
+ value = '';
41
+ /** Emitted when the user toggles expansion (caret click or keyboard), with the new `expanded`
42
+ * value. Not emitted when `expanded` is set from code. */
43
+ bsToggle;
44
+ /** Emitted (bubbling, composed) when the user activates the row, with the item's value. The
45
+ * owning `bs-tree` listens and updates the selection. */
46
+ bsSelect;
47
+ level = 1;
48
+ hasChildren = false;
49
+ observer;
50
+ connectedCallback() {
51
+ this.computeLevel();
52
+ this.computeHasChildren();
53
+ this.observer = new MutationObserver(() => this.computeHasChildren());
54
+ this.observer.observe(this.el, { childList: true });
55
+ }
56
+ disconnectedCallback() {
57
+ this.observer?.disconnect();
58
+ }
59
+ computeLevel() {
60
+ let level = 1;
61
+ let p = this.el.parentElement;
62
+ while (p) {
63
+ if (p.tagName === 'BS-TREE-ITEM')
64
+ level++;
65
+ p = p.parentElement;
66
+ }
67
+ this.level = level;
68
+ }
69
+ computeHasChildren() {
70
+ this.hasChildren = Array.from(this.el.children).some(c => c.tagName === 'BS-TREE-ITEM');
71
+ }
72
+ /** Sets `expanded` as a user action: updates the prop and emits `bsToggle`. No-op for leaves,
73
+ * disabled items, or when the value would not change. */
74
+ async setExpanded(next) {
75
+ if (this.disabled || !this.hasChildren || this.expanded === next)
76
+ return;
77
+ this.expanded = next;
78
+ this.bsToggle.emit(next);
79
+ }
80
+ onCaretClick = (e) => {
81
+ e.stopPropagation();
82
+ if (this.disabled)
83
+ return;
84
+ this.setExpanded(!this.expanded);
85
+ };
86
+ onRowClick = () => {
87
+ if (this.disabled)
88
+ return;
89
+ this.bsSelect.emit(this.value || this.label);
90
+ };
91
+ render() {
92
+ const isParent = this.hasChildren;
93
+ const managed = !!this.el.closest('bs-tree');
94
+ const showChildren = isParent && this.expanded;
95
+ return (h(Host, { key: 'ec3feab142de28ddd1e474d1bbb0b338b4350a8c', role: "treeitem", "aria-level": String(this.level), "aria-expanded": isParent ? String(this.expanded) : null, "aria-selected": String(this.selected), "aria-disabled": this.disabled ? 'true' : null, ...(managed || this.disabled ? {} : { tabindex: '0' }) }, h("div", { key: '711521ffa3cd3f46a90ef102d0e552992bcbb495', class: "bs-tree-item__row", style: { '--bs-tree-item-level': String(this.level) } }, h("div", { key: 'd72150c1b891962f1a5228d4e4ee85822bb20b3e', part: "container", class: {
96
+ 'bs-tree-item__container': true,
97
+ 'bs-tree-item__container--selected': this.selected,
98
+ 'bs-tree-item__container--disabled': this.disabled,
99
+ }, onClick: this.onRowClick }, isParent && (h("span", { key: 'f788c92178c2f8ddb4aae5472f0625073b043811', part: "caret", class: { 'bs-tree-item__caret': true, 'bs-tree-item__caret--open': this.expanded }, "aria-hidden": "true", onClick: this.onCaretClick }, h(CaretRightIcon, { key: '18d5ef1a4dd6aa4d1095c9239952171bdbe917c9' }))), h("span", { key: '7f78d1c1fd7e6ac20bb0780c454b47ac09ee9fcb', class: "bs-tree-item__content" }, this.showIcon && (h("span", { key: '98f4d7812c832edb394ac26ba707d12761a45b7e', part: "icon", class: "bs-tree-item__icon", "aria-hidden": "true" }, h("slot", { key: '5a9d10638edf2b1c269c3df5d08f82f5fe2795f6', name: "icon" }, isParent ? h(FolderIcon, null) : h(FileIcon, null)))), h("span", { key: '5e7e2ffbbb9a81b25b6eadf08d4db3e55cbbd919', part: "label", class: "bs-tree-item__label" }, h("slot", { key: 'bd5f92d093ebcc75b0d7f683f0e234e5757c06d0', name: "label" }, this.label))))), showChildren && (h("div", { key: '605a2bfdf479903c96750bd11d2e99044b38bc5c', part: "group", class: "bs-tree-item__group", role: "group" }, h("slot", { key: 'ee652e9cc80780f30eec5f18a9d5a7e27e9f2395' })))));
100
+ }
101
+ static get is() { return "bs-tree-item"; }
102
+ static get encapsulation() { return "shadow"; }
103
+ static get originalStyleUrls() {
104
+ return {
105
+ "$": ["bs-tree-item.css"]
106
+ };
107
+ }
108
+ static get styleUrls() {
109
+ return {
110
+ "$": ["bs-tree-item.css"]
111
+ };
112
+ }
113
+ static get properties() {
114
+ return {
115
+ "label": {
116
+ "type": "string",
117
+ "mutable": false,
118
+ "complexType": {
119
+ "original": "string",
120
+ "resolved": "string",
121
+ "references": {}
122
+ },
123
+ "required": false,
124
+ "optional": false,
125
+ "docs": {
126
+ "tags": [],
127
+ "text": "The row's text. Use the `label` slot for rich content."
128
+ },
129
+ "getter": false,
130
+ "setter": false,
131
+ "reflect": false,
132
+ "attribute": "label",
133
+ "defaultValue": "''"
134
+ },
135
+ "expanded": {
136
+ "type": "boolean",
137
+ "mutable": true,
138
+ "complexType": {
139
+ "original": "boolean",
140
+ "resolved": "boolean",
141
+ "references": {}
142
+ },
143
+ "required": false,
144
+ "optional": false,
145
+ "docs": {
146
+ "tags": [],
147
+ "text": "Whether the child items are shown. Only meaningful for parents. Mutable: the caret, the\nkeyboard and the owning tree toggle it. Reflected."
148
+ },
149
+ "getter": false,
150
+ "setter": false,
151
+ "reflect": true,
152
+ "attribute": "expanded",
153
+ "defaultValue": "false"
154
+ },
155
+ "selected": {
156
+ "type": "boolean",
157
+ "mutable": false,
158
+ "complexType": {
159
+ "original": "boolean",
160
+ "resolved": "boolean",
161
+ "references": {}
162
+ },
163
+ "required": false,
164
+ "optional": false,
165
+ "docs": {
166
+ "tags": [],
167
+ "text": "Marks the row as selected. Owned by the tree (single selection, synced with its `value`).\nReflected."
168
+ },
169
+ "getter": false,
170
+ "setter": false,
171
+ "reflect": true,
172
+ "attribute": "selected",
173
+ "defaultValue": "false"
174
+ },
175
+ "disabled": {
176
+ "type": "boolean",
177
+ "mutable": false,
178
+ "complexType": {
179
+ "original": "boolean",
180
+ "resolved": "boolean",
181
+ "references": {}
182
+ },
183
+ "required": false,
184
+ "optional": false,
185
+ "docs": {
186
+ "tags": [],
187
+ "text": "Disables the row: not focusable, ignores clicks, dimmed. Reflected."
188
+ },
189
+ "getter": false,
190
+ "setter": false,
191
+ "reflect": true,
192
+ "attribute": "disabled",
193
+ "defaultValue": "false"
194
+ },
195
+ "showIcon": {
196
+ "type": "boolean",
197
+ "mutable": false,
198
+ "complexType": {
199
+ "original": "boolean",
200
+ "resolved": "boolean",
201
+ "references": {}
202
+ },
203
+ "required": false,
204
+ "optional": false,
205
+ "docs": {
206
+ "tags": [],
207
+ "text": "Shows the leading icon (default folder / file, or the `icon` slot)."
208
+ },
209
+ "getter": false,
210
+ "setter": false,
211
+ "reflect": false,
212
+ "attribute": "show-icon",
213
+ "defaultValue": "true"
214
+ },
215
+ "value": {
216
+ "type": "string",
217
+ "mutable": false,
218
+ "complexType": {
219
+ "original": "string",
220
+ "resolved": "string",
221
+ "references": {}
222
+ },
223
+ "required": false,
224
+ "optional": false,
225
+ "docs": {
226
+ "tags": [],
227
+ "text": "Identifier used in events and for the tree's `value`. Falls back to `label` when empty."
228
+ },
229
+ "getter": false,
230
+ "setter": false,
231
+ "reflect": false,
232
+ "attribute": "value",
233
+ "defaultValue": "''"
234
+ }
235
+ };
236
+ }
237
+ static get states() {
238
+ return {
239
+ "level": {},
240
+ "hasChildren": {}
241
+ };
242
+ }
243
+ static get events() {
244
+ return [{
245
+ "method": "bsToggle",
246
+ "name": "bsToggle",
247
+ "bubbles": true,
248
+ "cancelable": true,
249
+ "composed": true,
250
+ "docs": {
251
+ "tags": [],
252
+ "text": "Emitted when the user toggles expansion (caret click or keyboard), with the new `expanded`\nvalue. Not emitted when `expanded` is set from code."
253
+ },
254
+ "complexType": {
255
+ "original": "boolean",
256
+ "resolved": "boolean",
257
+ "references": {}
258
+ }
259
+ }, {
260
+ "method": "bsSelect",
261
+ "name": "bsSelect",
262
+ "bubbles": true,
263
+ "cancelable": true,
264
+ "composed": true,
265
+ "docs": {
266
+ "tags": [],
267
+ "text": "Emitted (bubbling, composed) when the user activates the row, with the item's value. The\nowning `bs-tree` listens and updates the selection."
268
+ },
269
+ "complexType": {
270
+ "original": "string",
271
+ "resolved": "string",
272
+ "references": {}
273
+ }
274
+ }];
275
+ }
276
+ static get methods() {
277
+ return {
278
+ "setExpanded": {
279
+ "complexType": {
280
+ "signature": "(next: boolean) => Promise<void>",
281
+ "parameters": [{
282
+ "name": "next",
283
+ "type": "boolean",
284
+ "docs": ""
285
+ }],
286
+ "references": {
287
+ "Promise": {
288
+ "location": "global",
289
+ "id": "global::Promise"
290
+ }
291
+ },
292
+ "return": "Promise<void>"
293
+ },
294
+ "docs": {
295
+ "text": "Sets `expanded` as a user action: updates the prop and emits `bsToggle`. No-op for leaves,\ndisabled items, or when the value would not change.",
296
+ "tags": []
297
+ }
298
+ }
299
+ };
300
+ }
301
+ static get elementRef() { return "el"; }
302
+ }
303
+ const CaretRightIcon = () => (h("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" }, h("path", { d: "M9.75 6L15.75 12L9.75 18", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" })));
304
+ const FolderIcon = () => (h("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" }, h("path", { d: "M3.75 6.75C3.75 5.92 4.42 5.25 5.25 5.25H9.4C9.8 5.25 10.18 5.41 10.46 5.69L11.54 6.77C11.82 7.05 12.2 7.21 12.6 7.21H18.75C19.58 7.21 20.25 7.88 20.25 8.71V17.25C20.25 18.08 19.58 18.75 18.75 18.75H5.25C4.42 18.75 3.75 18.08 3.75 17.25V6.75Z", stroke: "currentColor", "stroke-width": "1.5", "stroke-linejoin": "round" })));
305
+ const FileIcon = () => (h("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" }, h("path", { d: "M13.5 3.75H7.5C6.67 3.75 6 4.42 6 5.25V18.75C6 19.58 6.67 20.25 7.5 20.25H16.5C17.33 20.25 18 19.58 18 18.75V8.25L13.5 3.75Z", stroke: "currentColor", "stroke-width": "1.5", "stroke-linejoin": "round" }), h("path", { d: "M13.5 3.75V8.25H18", stroke: "currentColor", "stroke-width": "1.5", "stroke-linejoin": "round" }), h("path", { d: "M9 12.75H15M9 15.75H15", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round" })));
@@ -0,0 +1,54 @@
1
+ import { html } from "lit";
2
+ import { componentDescription } from "../../stories-utils";
3
+ const meta = {
4
+ title: 'Components/bs-tree-item',
5
+ parameters: { docs: { description: { component: componentDescription('bs-tree-item') } } },
6
+ render: args => html `
7
+ <div style="width: 360px">
8
+ <bs-tree-item label=${args.label} ?expanded=${args.expanded} ?selected=${args.selected} ?disabled=${args.disabled} .showIcon=${args.showIcon}>
9
+ <bs-tree-item label="Child item"></bs-tree-item>
10
+ </bs-tree-item>
11
+ </div>
12
+ `,
13
+ argTypes: {
14
+ label: { control: 'text' },
15
+ expanded: { control: 'boolean' },
16
+ selected: { control: 'boolean' },
17
+ disabled: { control: 'boolean' },
18
+ showIcon: { control: 'boolean' },
19
+ },
20
+ args: { label: 'Parent item', expanded: false, selected: false, disabled: false, showIcon: true },
21
+ };
22
+ export default meta;
23
+ export const Default = {};
24
+ export const Open = { args: { expanded: true } };
25
+ export const Selected = { args: { selected: true } };
26
+ export const Disabled = { args: { disabled: true } };
27
+ export const WithoutIcon = { args: { showIcon: false } };
28
+ export const Child = {
29
+ render: () => html `
30
+ <div style="width: 360px"><bs-tree-item label="Leaf item"></bs-tree-item></div>
31
+ `,
32
+ };
33
+ export const Levels = {
34
+ render: () => html `
35
+ <div style="width: 360px">
36
+ <bs-tree-item label="Level 1" expanded>
37
+ <bs-tree-item label="Level 2" expanded>
38
+ <bs-tree-item label="Level 3"></bs-tree-item>
39
+ </bs-tree-item>
40
+ </bs-tree-item>
41
+ </div>
42
+ `,
43
+ };
44
+ export const CustomIcon = {
45
+ render: () => html `
46
+ <div style="width: 360px">
47
+ <bs-tree-item label="Starred">
48
+ <svg slot="icon" viewBox="0 0 24 24" fill="none" aria-hidden="true">
49
+ <path d="M12 3.75L14.6 9.1L20.5 9.9L16.2 14L17.3 19.9L12 17.1L6.7 19.9L7.8 14L3.5 9.9L9.4 9.1L12 3.75Z" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round" />
50
+ </svg>
51
+ </bs-tree-item>
52
+ </div>
53
+ `,
54
+ };
@@ -50,7 +50,7 @@ export class BsWhatsNewEntry {
50
50
  hasImage = false;
51
51
  render() {
52
52
  const level = Math.min(6, Math.max(1, Math.trunc(Number(this.headingLevel)) || 3));
53
- return (h("div", { key: '392e53167e223e1a34802bf0106d0a92e3fbce47', class: "bs-whats-new-entry" }, (this.tag || this.date || this.unread) && (h("div", { key: 'a069414465afa8d5894967c4b91c029c6ca94714', part: "meta", class: "bs-whats-new-entry__meta" }, this.tag && (h("bs-chip-informative", { key: 'ba1c8320df4641ad9ba2e781a475ba81ab2e793e', part: "tag", size: "sm", color: this.tagColor }, this.tag)), this.date && (h("span", { key: '90fff95b14393041ef0d2a95f9d2f1e1e4fc4824', part: "date", class: "bs-whats-new-entry__date" }, this.date)), this.unread && (h("span", { key: '72a3ed86e67fdfbe754b94431e313b4978887bc0', part: "unread", class: "bs-whats-new-entry__unread" }, h("span", { key: '70f8e4492c9b09f39ffb78d3d2d6d0baf8cae27c', class: "bs-whats-new-entry__sr-only" }, this.unreadLabel))))), h("div", { key: '2930545aee739edac5d93ae7abc87984becbc6d6', part: "image", class: { 'bs-whats-new-entry__image': true, 'bs-whats-new-entry__image--visible': this.hasImage } }, h("slot", { key: 'a1ca6d788ee50e16668c50621c631b7be10128ea', name: "image", onSlotchange: (ev) => (this.hasImage = ev.target.assignedNodes().length > 0) })), h("div", { key: 'bc1cc0c9ad0d4272aa0e612822200d47a9108406', class: "bs-whats-new-entry__content" }, this.heading && h(`h${level}`, { part: 'heading', class: { 'bs-whats-new-entry__heading': true } }, this.heading), this.description && (h("p", { key: '7e0a2520c2c3bd7c753e4f3a64d7f61230bf1c7e', part: "description", class: "bs-whats-new-entry__description" }, this.description)), this.actionLabel && (h("bs-button", { key: '8344b34f92c0bcd1da4e491823f8d1f2cef82ad2', part: "action", class: "bs-whats-new-entry__action", variant: "subtle", size: "sm", onClick: () => this.bsAction.emit() }, this.actionLabel, h("svg", { key: '8941060aacc137bee4a7a9f15a9a32023dfc5390', slot: "end-icon", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, h("path", { key: '0833d06eca31e2a199ff5cd4def1a408d74c4030', d: "M5 12H19" }), h("path", { key: 'e079ace356dc320dfde3f48d7336d2507303d1bf', d: "M13 6L19 12L13 18" }))))), this.divider && h("div", { key: '369d9767229d3fb57cb1a68d0bcefb03da4a953e', part: "divider", class: "bs-whats-new-entry__divider" })));
53
+ return (h("div", { key: 'ba59c32f90076f9faba57d1d1424c31af93ad240', class: "bs-whats-new-entry" }, (this.tag || this.date || this.unread) && (h("div", { key: '9a6440e38742503ec18082d4dbefab9869595865', part: "meta", class: "bs-whats-new-entry__meta" }, this.tag && (h("bs-chip-informative", { key: 'bf497ffc620943d72c51439c39301cdf96a03720', part: "tag", size: "sm", color: this.tagColor }, this.tag)), this.date && (h("span", { key: '8e854f17bcb076e301d2cb0a16427be230a994b6', part: "date", class: "bs-whats-new-entry__date" }, this.date)), this.unread && (h("span", { key: '2569be36e5869d3c29dc7a233930f99e82776f35', part: "unread", class: "bs-whats-new-entry__unread" }, h("span", { key: 'f833cdf102d376ecc296fb636ce24493dc0715ba', class: "bs-whats-new-entry__sr-only" }, this.unreadLabel))))), h("div", { key: '17773eb42eb20a1dc729c7026b8b80735092ad2a', part: "image", class: { 'bs-whats-new-entry__image': true, 'bs-whats-new-entry__image--visible': this.hasImage } }, h("slot", { key: 'b217d2bfa06a46f53416cbdef847edb2475e54b2', name: "image", onSlotchange: (ev) => (this.hasImage = ev.target.assignedNodes().length > 0) })), h("div", { key: '8c7a4695302ac3b66c9f4365242c690ada0859a9', class: "bs-whats-new-entry__content" }, this.heading && h(`h${level}`, { part: 'heading', class: { 'bs-whats-new-entry__heading': true } }, this.heading), this.description && (h("p", { key: '098bab050181c7cbce9353e86b31d8d5fc71bc37', part: "description", class: "bs-whats-new-entry__description" }, this.description)), this.actionLabel && (h("bs-button", { key: 'a455f4ce7519409bead2de900d20a4e8c0cff87f', part: "action", class: "bs-whats-new-entry__action", variant: "subtle", size: "sm", onClick: () => this.bsAction.emit() }, this.actionLabel, h("svg", { key: 'af8d18c4893ac8048c1646d9d44cdd0ad7bcc3cc', slot: "end-icon", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, h("path", { key: 'aa1c74a5a7786032205569c58ffd5f46eae3efa6', d: "M5 12H19" }), h("path", { key: '38c809d94d7b789cbc2eb7b65408c878c82d1c43', d: "M13 6L19 12L13 18" }))))), this.divider && h("div", { key: 'dd61984417895380ec5b80b3b03b329bcae068ec', part: "divider", class: "bs-whats-new-entry__divider" })));
54
54
  }
55
55
  static get is() { return "bs-whats-new-entry"; }
56
56
  static get encapsulation() { return "shadow"; }
@@ -234,11 +234,11 @@ export class BsNavigationDrawer {
234
234
  };
235
235
  render() {
236
236
  const classes = ['bs-navigation-drawer', this.mobile ? 'bs-navigation-drawer--overlay' : '', this.overlayOpen ? 'bs-navigation-drawer--open' : ''].filter(Boolean).join(' ');
237
- return (h(Host, { key: 'e1c81adc6e4f1f0bb55d1b041ad7d38cf8f5abe9', "data-overlay": this.mobile ? '' : undefined }, this.mobile && h("div", { key: '109355f0d5456ac840dad94a3524626c1c589707', part: "backdrop", class: "bs-navigation-drawer__backdrop", onClick: this.requestClose }), h("nav", { key: '4f88360e7b8e01b2e994a0ec2f7bc7f952268e7d', ref: el => (this.navRef = el), class: classes, "aria-label": this.heading,
237
+ return (h(Host, { key: 'a99687c2e283dd7214da7c679895b4107866575d', "data-overlay": this.mobile ? '' : undefined }, this.mobile && h("div", { key: '481a1aa4bb2de83774618492feab43ff8d3489eb', part: "backdrop", class: "bs-navigation-drawer__backdrop", onClick: this.requestClose }), h("nav", { key: '789650b9923a97a1c1d3d75e7d51d2fa4e20c880', ref: el => (this.navRef = el), class: classes, "aria-label": this.heading,
238
238
  // Stays a plain <nav> landmark in every state: ARIA does not allow role="dialog" on <nav>
239
239
  // (axe: aria-allowed-role). Modality is behavioral -- focus is held inside, the page behind is
240
240
  // scrimmed, Escape closes -- rather than announced through aria-modal.
241
- tabIndex: this.mobile ? -1 : undefined }, this.showLogo && (h("div", { key: '92fa952e0f790312893ca7898032e5e03f6a3b40', part: "logo", class: "bs-navigation-drawer__logo bs-navigation-drawer__logo--full" }, h("bs-logo", { key: '998db3f0da7ff0127f9fff36cf33d8a0978193d4', variant: "full", background: this.logoBackground }))), this.showLogo && (h("div", { key: '02372bdeefe1aa3c392b98e9965e228b607d6b2a', part: "logo", class: "bs-navigation-drawer__logo bs-navigation-drawer__logo--mark" }, h("bs-logo", { key: 'cbe17acf68175e147b5f82fe59fe352519055eb4', variant: "mark", background: this.logoBackground }))), h("div", { key: '01d088e11a2d4d98e95a732f61b0eef7eb1710c3', class: "bs-navigation-drawer__title-row" }, h("span", { key: '44d0379c380e4b53188d84fc498495e442d2bd11', part: "title", class: "bs-navigation-drawer__title" }, this.heading), this.collapsible && (h("button", { key: '591cecfab387cd135ec8973f1578aff0ece7a2a8', type: "button", part: "collapse", class: "bs-navigation-drawer__collapse", "aria-label": this.collapsed ? this.expandLabel : this.collapseLabel, "aria-pressed": this.collapsed ? 'true' : 'false', onClick: this.onCollapseClick }, h(CaretLeftIcon, { key: 'e10812b18b0133022e0424771243bbcca4454367' })))), h("div", { key: '52083c066c5797cc966f028504b3076265a88e79', part: "search", class: "bs-navigation-drawer__search" }, h("slot", { key: '9bb6a36ffb750d2a981dfddb94a39dd008e5c5bf', name: "search" })), h("button", { key: '53df19a611aa6c0049a079af9b126b244eff1e1e', type: "button", part: "search-trigger", class: "bs-navigation-drawer__search-trigger", "aria-label": this.searchLabel, onClick: this.onSearchTriggerClick }, h(SearchIcon, { key: '034ce5318ab191d4adf5fa37b91d63468e55f6cd' })), h("div", { key: 'c292064e09cc60d04b51e38596f4afbe209a2c11', part: "items", class: "bs-navigation-drawer__items" }, h("slot", { key: 'f5d8ad27a9aab5f5d9ea83c8c99f52bc2ff5c9d5' })))));
241
+ tabIndex: this.mobile ? -1 : undefined }, this.showLogo && (h("div", { key: '04ca8b13c5f7b81db8a12037e6d4d8b1fea705a0', part: "logo", class: "bs-navigation-drawer__logo bs-navigation-drawer__logo--full" }, h("bs-logo", { key: 'e611e23d4f13523917b84cb88af726ad33e02be7', variant: "full", background: this.logoBackground }))), this.showLogo && (h("div", { key: 'f377511b1a52cbeef534d081ec916c3c90dc91e7', part: "logo", class: "bs-navigation-drawer__logo bs-navigation-drawer__logo--mark" }, h("bs-logo", { key: '7aa4cc0e092f5e5fb8a00f28731e7518fdd5bca3', variant: "mark", background: this.logoBackground }))), h("div", { key: '72ca104a6ce1613addbf5a416942bfcee2f59352', class: "bs-navigation-drawer__title-row" }, h("span", { key: '2f0ff9abb324762dd38775482de3d6d2e953e452', part: "title", class: "bs-navigation-drawer__title" }, this.heading), this.collapsible && (h("button", { key: '0e6956a9f29a8a481a51527b3db5da790940b59c', type: "button", part: "collapse", class: "bs-navigation-drawer__collapse", "aria-label": this.collapsed ? this.expandLabel : this.collapseLabel, "aria-pressed": this.collapsed ? 'true' : 'false', onClick: this.onCollapseClick }, h(CaretLeftIcon, { key: 'bfbcc299cb91987f531e0188d0b2bf068bc36d62' })))), h("div", { key: '2b719ad1dc761ff6bd9f182151f9bb8c0cb9228f', part: "search", class: "bs-navigation-drawer__search" }, h("slot", { key: '8c02fd031b1ce2bd38f709e640900489a7dde3c9', name: "search" })), h("button", { key: '070ec9a6e1892f1f903cbfa555e927db371e1166', type: "button", part: "search-trigger", class: "bs-navigation-drawer__search-trigger", "aria-label": this.searchLabel, onClick: this.onSearchTriggerClick }, h(SearchIcon, { key: 'a933a7d7615ad5d8be9cc11a98f835d1bc220f1e' })), h("div", { key: '5ab908c14933442dda5c11d159276d98a721edef', part: "items", class: "bs-navigation-drawer__items" }, h("slot", { key: 'ffa0d44d5d18821ae4199aa38cfbb563806fea54' })))));
242
242
  }
243
243
  static get is() { return "bs-navigation-drawer"; }
244
244
  static get encapsulation() { return "shadow"; }
@@ -131,7 +131,7 @@ export class BsNavigationDrawerItem {
131
131
  // incorrectly also toggle this parent row on every child click. Both are wrapped in a
132
132
  // `display: contents` container so render() still returns a single root node (this codebase's
133
133
  // convention, e.g. bs-input.tsx) without that wrapper affecting layout at all.
134
- return (h("div", { key: '595e07689792695de104ae819850cf9fe6179221', class: "bs-navigation-drawer-item__root" }, h("button", { key: 'a8d5ecf7545c167b43e43fc85623d4288bba640c', type: "button", part: "item", class: rowClasses, "aria-expanded": this.expandable ? String(this.expanded) : undefined, "aria-label": this.ariaLabel ?? undefined, onClick: this.onClick }, !this.nested && (h("span", { key: '0b24f46d98af43c8d3fca48fac4236a238ebc8f7', part: "icon", class: `bs-navigation-drawer-item__icon ${this.hasIcon ? 'bs-navigation-drawer-item__icon--has-content' : ''}` }, h("slot", { key: 'a02e510672ff00c251630d7500cabd73fcf4b719', name: "icon", onSlotchange: this.onIconSlotchange }))), h("span", { key: 'ce24ac37510ed8b0ee7e2d56fc9113855c3e0b98', part: "label", class: "bs-navigation-drawer-item__label" }, h("slot", { key: '28769ab29310980c79fde5d9b21b16365ac33b6b' })), this.expandable && (h("span", { key: 'aaf1c341a5d1b067162434a7d3d1544e02a23307', part: "chevron", class: `bs-navigation-drawer-item__chevron ${this.expanded ? 'bs-navigation-drawer-item__chevron--expanded' : ''}` }, h(ChevronDownIcon, { key: 'b15b40ce16d85fd9f5050b4815a87f0b3b1dbab3' })))), this.expandable && (h("span", { key: '51c9f7d63673e3a6ee1b8045ea88610af3b29ad5', part: "children", class: "bs-navigation-drawer-item__children" }, h("slot", { key: '7adc4d5d2f3fc79941881ddc96654c5ef357dc40', name: "children" })))));
134
+ return (h("div", { key: 'f10fc5a19900625f99f9bd982825c50cf2197c0a', class: "bs-navigation-drawer-item__root" }, h("button", { key: 'fbc480d7b4b1737ae36b1a573a42c87bf6c23111', type: "button", part: "item", class: rowClasses, "aria-expanded": this.expandable ? String(this.expanded) : undefined, "aria-label": this.ariaLabel ?? undefined, onClick: this.onClick }, !this.nested && (h("span", { key: '23f08e194c7fb599cfea429d7f46129668f7cad4', part: "icon", class: `bs-navigation-drawer-item__icon ${this.hasIcon ? 'bs-navigation-drawer-item__icon--has-content' : ''}` }, h("slot", { key: 'c4e2e9147212a9220208bb51e9dd8ddcb16b75d0', name: "icon", onSlotchange: this.onIconSlotchange }))), h("span", { key: '230567543ee35b7578f942b87226cf7acc9175fc', part: "label", class: "bs-navigation-drawer-item__label" }, h("slot", { key: '5d7aebda3ca725a2b64585bf9ad89ec88cd71a65' })), this.expandable && (h("span", { key: '1e10ca3a3c3d3237f25cc7a46b65b9f980564899', part: "chevron", class: `bs-navigation-drawer-item__chevron ${this.expanded ? 'bs-navigation-drawer-item__chevron--expanded' : ''}` }, h(ChevronDownIcon, { key: '0885df5c87838808f51ae1adbcf10d9515961922' })))), this.expandable && (h("span", { key: '85527320ae9041c8a1ef1163a037a28ac1f92649', part: "children", class: "bs-navigation-drawer-item__children" }, h("slot", { key: '9a9dfe8dba053b15e8ec2fc47c1fcf04c5bb31be', name: "children" })))));
135
135
  }
136
136
  static get is() { return "bs-navigation-drawer-item"; }
137
137
  static get encapsulation() { return "shadow"; }
@@ -61,7 +61,7 @@ export class BsNavigationHeader {
61
61
  render() {
62
62
  const showLogo = this.alignment !== 'with-navigation-drawer';
63
63
  const rootClasses = `bs-navigation-header bs-navigation-header--${this.alignment}`;
64
- return (h("header", { key: '15068c106978e045dba19165016adefaee9c639a', class: rootClasses, "aria-label": this.ariaLabel ?? undefined }, this.skipToContentHref && (h("a", { key: '7040b0d89e0c10c62ca520cf75d5b7bdc7d2e09b', part: "skip-link", class: "bs-navigation-header__skip-link", href: this.skipToContentHref }, this.skipToContentLabel)), showLogo && (h("bs-logo", { key: '77c9baa735505031c3e5c2f8d784d21113a1a78e', part: "logo", class: "bs-navigation-header__logo", variant: "full", background: this.logoBackground })), h("div", { key: '1f2b44b9a8fc50c0736333bedcf91113e57bde00', part: "left", class: "bs-navigation-header__left" }, h("slot", { key: '40388c6c6d118ea1632a8aabfc5eb40504fafe42', name: "left" })), h("div", { key: '72567bab7f76ac21957a7efc57152faf27223344', part: "right", class: "bs-navigation-header__right" }, h("slot", { key: 'c83f0b591abf7093a566571b4811011e12d1fccb', name: "right" }))));
64
+ return (h("header", { key: '436574d1cec6b41df78e0f438c1602095efd8140', class: rootClasses, "aria-label": this.ariaLabel ?? undefined }, this.skipToContentHref && (h("a", { key: 'b20aa86d5553d653bc08226421eedf4974481da8', part: "skip-link", class: "bs-navigation-header__skip-link", href: this.skipToContentHref }, this.skipToContentLabel)), showLogo && (h("bs-logo", { key: 'bb3cde1494bc4c193b6837febd1d4d62f64011fd', part: "logo", class: "bs-navigation-header__logo", variant: "full", background: this.logoBackground })), h("div", { key: 'ccda34eb85ac7db255cb749eee33da30b9111c41', part: "left", class: "bs-navigation-header__left" }, h("slot", { key: 'beeee26d778fe026cd113c4f08ca7424193f9af8', name: "left" })), h("div", { key: '9844b46cff0b4cfa1e74182debbc7e8e9dd44b25', part: "right", class: "bs-navigation-header__right" }, h("slot", { key: '3315ff9dbeef31d45f4d089ff17f9594a9acb8f7', name: "right" }))));
65
65
  }
66
66
  static get is() { return "bs-navigation-header"; }
67
67
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- import{t as o,p as s,H as c,h as r}from"./p-B2gx7SZk.js";const t=s(class extends c{constructor(o){super(),!1!==o&&this.__registerHost(),this.__attachShadow()}get el(){return this}multiple=!1;onToggle(o){const s=o.target;if(!s||"bs-accordion"!==s.tagName.toLowerCase())return;const c=o.detail;s.expanded=c,c&&!this.multiple&&Array.from(this.el.querySelectorAll("bs-accordion")).forEach((o=>{o!==s&&(o.expanded=!1)}))}render(){return r("div",{key:"eb67a09471201b25ce3a886f519b1fcf343e0dc4",part:"group",class:"bs-accordion-group"},r("slot",{key:"112be064a98f959b8cf8071ccd3913472857dda5"}))}static get style(){return":host{display:block;--bs-accordion-group-gap:0}.bs-accordion-group{display:flex;flex-direction:column;gap:var(--bs-accordion-group-gap)}"}},[769,"bs-accordion-group",{multiple:[4]},[[0,"bsToggle","onToggle"]]]);function e(){"undefined"!=typeof customElements&&["bs-accordion-group"].forEach((s=>{"bs-accordion-group"===s&&(customElements.get(o(s))||customElements.define(o(s),t))}))}e();const n=t,a=e;export{n as BsAccordionGroup,a as defineCustomElement}
1
+ import{t as o,p as s,H as r,h as t}from"./p-B2gx7SZk.js";const e=s(class extends r{constructor(o){super(),!1!==o&&this.__registerHost(),this.__attachShadow()}get el(){return this}multiple=!1;onToggle(o){const s=o.target;if(!s||"bs-accordion"!==s.tagName.toLowerCase())return;const r=o.detail;s.expanded=r,r&&!this.multiple&&Array.from(this.el.querySelectorAll("bs-accordion")).forEach((o=>{o!==s&&(o.expanded=!1)}))}render(){return t("div",{key:"3769ed85a4f16a684c02f00813fa53d340993763",part:"group",class:"bs-accordion-group"},t("slot",{key:"7744f70f87f9e36d949d374f8891028fb1ee08b2"}))}static get style(){return":host{display:block;--bs-accordion-group-gap:0}.bs-accordion-group{display:flex;flex-direction:column;gap:var(--bs-accordion-group-gap)}"}},[769,"bs-accordion-group",{multiple:[4]},[[0,"bsToggle","onToggle"]]]);function c(){"undefined"!=typeof customElements&&["bs-accordion-group"].forEach((s=>{"bs-accordion-group"===s&&(customElements.get(o(s))||customElements.define(o(s),e))}))}c();const n=e,i=c;export{n as BsAccordionGroup,i as defineCustomElement}
@@ -1 +1 @@
1
- import{t as e,p as i,H as s,h as a}from"./p-B2gx7SZk.js";const t=i(class extends s{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow()}render(){return a("div",{key:"f5661854e2d9dce7b68e2851455d734d4e715cc4",class:"bs-ai-disclaimer"},a("p",{key:"9d7a2dfa132ec66ff1157ecdb1d6899f1c587c9e",part:"text",class:"bs-ai-disclaimer__text"},a("slot",{key:"204ae3cd2422e9a68be5d1eb5cf7598bbd9e1269"})))}static get style(){return":host{display:block;--bs-ai-disclaimer-padding-x:var(--bs-spacing-200);--bs-ai-disclaimer-text-color:var(--bs-text-secondary);--bs-ai-disclaimer-font-size:var(--bs-font-size-sm);--bs-ai-disclaimer-line-height:var(--bs-line-height-body-sm)}.bs-ai-disclaimer{box-sizing:border-box;display:flex;align-items:center;justify-content:center;padding:0 var(--bs-ai-disclaimer-padding-x);font-family:inherit}.bs-ai-disclaimer__text{margin:0;flex:1 0 0;min-width:0;color:var(--bs-ai-disclaimer-text-color);font-size:var(--bs-ai-disclaimer-font-size);line-height:calc(var(--bs-ai-disclaimer-line-height) * 1px);text-align:center;word-break:break-word}"}},[257,"bs-ai-disclaimer"]);function r(){"undefined"!=typeof customElements&&["bs-ai-disclaimer"].forEach((i=>{"bs-ai-disclaimer"===i&&(customElements.get(e(i))||customElements.define(e(i),t))}))}r();const c=t,d=r;export{c as BsAiDisclaimer,d as defineCustomElement}
1
+ import{t as i,p as e,H as s,h as a}from"./p-B2gx7SZk.js";const t=e(class extends s{constructor(i){super(),!1!==i&&this.__registerHost(),this.__attachShadow()}render(){return a("div",{key:"3c30f834cdeb8f1d88cc1e09ca7b37448cd78c68",class:"bs-ai-disclaimer"},a("p",{key:"013748c40473c12d408d0c6a8abf8dfa04e6e2a8",part:"text",class:"bs-ai-disclaimer__text"},a("slot",{key:"9ac815b71c84206ba5a5387dc502565c8773d742"})))}static get style(){return":host{display:block;--bs-ai-disclaimer-padding-x:var(--bs-spacing-200);--bs-ai-disclaimer-text-color:var(--bs-text-secondary);--bs-ai-disclaimer-font-size:var(--bs-font-size-sm);--bs-ai-disclaimer-line-height:var(--bs-line-height-body-sm)}.bs-ai-disclaimer{box-sizing:border-box;display:flex;align-items:center;justify-content:center;padding:0 var(--bs-ai-disclaimer-padding-x);font-family:inherit}.bs-ai-disclaimer__text{margin:0;flex:1 0 0;min-width:0;color:var(--bs-ai-disclaimer-text-color);font-size:var(--bs-ai-disclaimer-font-size);line-height:calc(var(--bs-ai-disclaimer-line-height) * 1px);text-align:center;word-break:break-word}"}},[257,"bs-ai-disclaimer"]);function c(){"undefined"!=typeof customElements&&["bs-ai-disclaimer"].forEach((e=>{"bs-ai-disclaimer"===e&&(customElements.get(i(e))||customElements.define(i(e),t))}))}c();const r=t,d=c;export{r as BsAiDisclaimer,d as defineCustomElement}
@@ -1 +1 @@
1
- import{t as e,p as i,H as t,h as a}from"./p-B2gx7SZk.js";const n=i(class extends t{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow()}assistantName="Genie";productName;render(){const e=this.productName?`How can I help you with ${this.productName} today?`:"How can I help you today?";return a("div",{key:"3c5e07830440c3fdbfd780cd8fa433ed90128ed3",class:"bs-ai-greeting"},a("div",{key:"b71c78a3dd74ebf53bda99571ccfe8b823c50962",part:"heading",class:"bs-ai-greeting__heading"},a("p",{key:"2396a7161a8f40e8a479b9813d474861910697ac",class:"bs-ai-greeting__heading-line"},"Hi. I'm ",this.assistantName,","),a("p",{key:"2ef3257274af87f293fa423c4c8cdc56f7927e0b",class:"bs-ai-greeting__heading-line"},"your AI assistant.")),a("p",{key:"b95f7508e344e33c2eba714e37606148dbdaefc0",part:"subtext",class:"bs-ai-greeting__subtext"},e))}static get style(){return":host{display:block;--bs-ai-greeting-gap:var(--bs-spacing-200);--bs-ai-greeting-max-width:490px;--bs-ai-greeting-heading-color:var(--bs-text-default);--bs-ai-greeting-heading-font-size:var(--bs-font-size-4xl);--bs-ai-greeting-heading-line-height:var(--bs-line-height-body-lg);--bs-ai-greeting-heading-weight:var(--bs-font-weight-bold);--bs-ai-greeting-heading-gap:var(--bs-spacing-200);--bs-ai-greeting-subtext-color:var(--bs-text-secondary);--bs-ai-greeting-subtext-font-size:var(--bs-font-size-xl);--bs-ai-greeting-subtext-line-height:var(--bs-line-height-body-lg)}.bs-ai-greeting{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--bs-ai-greeting-gap);max-width:var(--bs-ai-greeting-max-width);margin:0 auto;text-align:center;font-family:inherit}.bs-ai-greeting__heading{display:flex;flex-direction:column;gap:var(--bs-ai-greeting-heading-gap);color:var(--bs-ai-greeting-heading-color);font-size:var(--bs-ai-greeting-heading-font-size);font-weight:var(--bs-ai-greeting-heading-weight);line-height:calc(var(--bs-ai-greeting-heading-line-height) * 1px)}.bs-ai-greeting__heading-line{margin:0}.bs-ai-greeting__subtext{margin:0;color:var(--bs-ai-greeting-subtext-color);font-size:var(--bs-ai-greeting-subtext-font-size);font-weight:var(--bs-font-weight-regular);line-height:calc(var(--bs-ai-greeting-subtext-line-height) * 1px)}"}},[513,"bs-ai-greeting",{assistantName:[1,"assistant-name"],productName:[1,"product-name"]}]);function s(){"undefined"!=typeof customElements&&["bs-ai-greeting"].forEach((i=>{"bs-ai-greeting"===i&&(customElements.get(e(i))||customElements.define(e(i),n))}))}s();const g=n,r=s;export{g as BsAiGreeting,r as defineCustomElement}
1
+ import{t as e,p as i,H as t,h as a}from"./p-B2gx7SZk.js";const n=i(class extends t{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow()}assistantName="Genie";productName;render(){const e=this.productName?`How can I help you with ${this.productName} today?`:"How can I help you today?";return a("div",{key:"20b39c35e9f4d552fa3e30dbfa86ba53bff48c89",class:"bs-ai-greeting"},a("div",{key:"bb6d790ccb6595fc646c2a5cc6dedd358cfb75d0",part:"heading",class:"bs-ai-greeting__heading"},a("p",{key:"86eba00635450b5eb13311cbe354059ef4b572b8",class:"bs-ai-greeting__heading-line"},"Hi. I'm ",this.assistantName,","),a("p",{key:"4e66b440952f29946465ca899d2dfcea08c0f170",class:"bs-ai-greeting__heading-line"},"your AI assistant.")),a("p",{key:"01eea96ec6e8d5f8196ac493b60cbc1423a1afaf",part:"subtext",class:"bs-ai-greeting__subtext"},e))}static get style(){return":host{display:block;--bs-ai-greeting-gap:var(--bs-spacing-200);--bs-ai-greeting-max-width:490px;--bs-ai-greeting-heading-color:var(--bs-text-default);--bs-ai-greeting-heading-font-size:var(--bs-font-size-4xl);--bs-ai-greeting-heading-line-height:var(--bs-line-height-body-lg);--bs-ai-greeting-heading-weight:var(--bs-font-weight-bold);--bs-ai-greeting-heading-gap:var(--bs-spacing-200);--bs-ai-greeting-subtext-color:var(--bs-text-secondary);--bs-ai-greeting-subtext-font-size:var(--bs-font-size-xl);--bs-ai-greeting-subtext-line-height:var(--bs-line-height-body-lg)}.bs-ai-greeting{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--bs-ai-greeting-gap);max-width:var(--bs-ai-greeting-max-width);margin:0 auto;text-align:center;font-family:inherit}.bs-ai-greeting__heading{display:flex;flex-direction:column;gap:var(--bs-ai-greeting-heading-gap);color:var(--bs-ai-greeting-heading-color);font-size:var(--bs-ai-greeting-heading-font-size);font-weight:var(--bs-ai-greeting-heading-weight);line-height:calc(var(--bs-ai-greeting-heading-line-height) * 1px)}.bs-ai-greeting__heading-line{margin:0}.bs-ai-greeting__subtext{margin:0;color:var(--bs-ai-greeting-subtext-color);font-size:var(--bs-ai-greeting-subtext-font-size);font-weight:var(--bs-font-weight-regular);line-height:calc(var(--bs-ai-greeting-subtext-line-height) * 1px)}"}},[513,"bs-ai-greeting",{assistantName:[1,"assistant-name"],productName:[1,"product-name"]}]);function s(){"undefined"!=typeof customElements&&["bs-ai-greeting"].forEach((i=>{"bs-ai-greeting"===i&&(customElements.get(e(i))||customElements.define(e(i),n))}))}s();const g=n,r=s;export{g as BsAiGreeting,r as defineCustomElement}