@brandsync/wc 1.16.0 → 1.18.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 (625) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/REFERENCE.md +476 -0
  3. package/custom-elements.json +10039 -5497
  4. package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
  5. package/dist/brandsync-wc/{p-f271e1d2.entry.js → p-0082db6a.entry.js} +1 -1
  6. package/dist/brandsync-wc/p-07e0b444.entry.js +1 -0
  7. package/dist/brandsync-wc/{p-b67a0c8f.entry.js → p-08e0e704.entry.js} +1 -1
  8. package/dist/brandsync-wc/{p-d165a742.entry.js → p-0a6f22fe.entry.js} +1 -1
  9. package/dist/brandsync-wc/{p-8390a155.entry.js → p-14b4f4c4.entry.js} +1 -1
  10. package/dist/brandsync-wc/p-15f06226.entry.js +1 -0
  11. package/dist/brandsync-wc/{p-a5659499.entry.js → p-186e3b78.entry.js} +1 -1
  12. package/dist/brandsync-wc/{p-c85fe37b.entry.js → p-1a47774e.entry.js} +1 -1
  13. package/dist/brandsync-wc/p-1a62e5b7.entry.js +1 -0
  14. package/dist/brandsync-wc/p-1aa0f9a3.entry.js +1 -0
  15. package/dist/brandsync-wc/{p-e9b6b30f.entry.js → p-1d8c2ec1.entry.js} +1 -1
  16. package/dist/brandsync-wc/p-246036cd.entry.js +1 -0
  17. package/dist/brandsync-wc/{p-45986ad4.entry.js → p-31ca98c3.entry.js} +1 -1
  18. package/dist/brandsync-wc/p-344695a8.entry.js +1 -0
  19. package/dist/brandsync-wc/{p-c25553bc.entry.js → p-345b5ef3.entry.js} +1 -1
  20. package/dist/brandsync-wc/{p-dcacee29.entry.js → p-34851d6d.entry.js} +1 -1
  21. package/dist/brandsync-wc/{p-6cb21302.entry.js → p-348fef11.entry.js} +1 -1
  22. package/dist/brandsync-wc/p-3e6f430a.entry.js +1 -0
  23. package/dist/brandsync-wc/p-43f8afda.entry.js +1 -0
  24. package/dist/brandsync-wc/{p-361aef36.entry.js → p-47929dca.entry.js} +1 -1
  25. package/dist/brandsync-wc/{p-cc4c8c1d.entry.js → p-47ce984f.entry.js} +1 -1
  26. package/dist/brandsync-wc/{p-d5a6098d.entry.js → p-4d4997af.entry.js} +1 -1
  27. package/dist/brandsync-wc/p-4ff649f1.entry.js +1 -0
  28. package/dist/brandsync-wc/p-50c116eb.entry.js +1 -0
  29. package/dist/brandsync-wc/{p-f3eca1ce.entry.js → p-50f60ed6.entry.js} +1 -1
  30. package/dist/brandsync-wc/p-52d61070.entry.js +1 -0
  31. package/dist/brandsync-wc/{p-2e285364.entry.js → p-55d336da.entry.js} +1 -1
  32. package/dist/brandsync-wc/{p-38fe9d07.entry.js → p-55d97d1d.entry.js} +1 -1
  33. package/dist/brandsync-wc/{p-9beeb30c.entry.js → p-56a45582.entry.js} +1 -1
  34. package/dist/brandsync-wc/{p-e9afb553.entry.js → p-58179e15.entry.js} +1 -1
  35. package/dist/brandsync-wc/{p-1ca8b01e.entry.js → p-5868793d.entry.js} +1 -1
  36. package/dist/brandsync-wc/{p-38ac9aad.entry.js → p-5ac75555.entry.js} +1 -1
  37. package/dist/brandsync-wc/{p-7b3518b8.entry.js → p-5cd1abc7.entry.js} +1 -1
  38. package/dist/brandsync-wc/{p-dfad8c0a.entry.js → p-5e36d46f.entry.js} +1 -1
  39. package/dist/brandsync-wc/{p-54f9529f.entry.js → p-64f8eb7e.entry.js} +1 -1
  40. package/dist/brandsync-wc/p-6b019a88.entry.js +1 -0
  41. package/dist/brandsync-wc/{p-f0be9125.entry.js → p-6c987bc9.entry.js} +1 -1
  42. package/dist/brandsync-wc/{p-5ed1f45e.entry.js → p-757cd066.entry.js} +1 -1
  43. package/dist/brandsync-wc/{p-47b7fe76.entry.js → p-78114ea3.entry.js} +1 -1
  44. package/dist/brandsync-wc/p-7c29678d.entry.js +1 -0
  45. package/dist/brandsync-wc/{p-9d12b1fb.entry.js → p-7cfb1be6.entry.js} +1 -1
  46. package/dist/brandsync-wc/{p-4ed00786.entry.js → p-841a80b4.entry.js} +1 -1
  47. package/dist/brandsync-wc/{p-a56bc608.entry.js → p-87a10ee1.entry.js} +1 -1
  48. package/dist/brandsync-wc/{p-c05ee501.entry.js → p-8962abe0.entry.js} +1 -1
  49. package/dist/brandsync-wc/p-8e46a262.entry.js +1 -0
  50. package/dist/brandsync-wc/p-8f82ea7e.entry.js +1 -0
  51. package/dist/brandsync-wc/p-95c7f350.entry.js +1 -0
  52. package/dist/brandsync-wc/{p-3488c4fc.entry.js → p-9787bc0f.entry.js} +1 -1
  53. package/dist/brandsync-wc/{p-0159f0da.entry.js → p-998b95d3.entry.js} +1 -1
  54. package/dist/brandsync-wc/p-9bd739e5.entry.js +1 -0
  55. package/dist/brandsync-wc/p-a424a709.entry.js +1 -0
  56. package/dist/brandsync-wc/{p-b6081bba.entry.js → p-a51355d9.entry.js} +1 -1
  57. package/dist/brandsync-wc/{p-4ca40386.entry.js → p-a8c2855c.entry.js} +1 -1
  58. package/dist/brandsync-wc/{p-b663ee67.entry.js → p-a9d0a730.entry.js} +1 -1
  59. package/dist/brandsync-wc/{p-15f4c343.entry.js → p-ae207fd5.entry.js} +1 -1
  60. package/dist/brandsync-wc/{p-8048d033.entry.js → p-b1edc9b7.entry.js} +1 -1
  61. package/dist/brandsync-wc/{p-949a4270.entry.js → p-b759ae72.entry.js} +1 -1
  62. package/dist/brandsync-wc/{p-7dc59e0b.entry.js → p-b7bbc52f.entry.js} +1 -1
  63. package/dist/brandsync-wc/{p-912629c6.entry.js → p-bd901b06.entry.js} +1 -1
  64. package/dist/brandsync-wc/p-be7272ce.entry.js +1 -0
  65. package/dist/brandsync-wc/{p-401b3d3d.entry.js → p-bfff7cbb.entry.js} +1 -1
  66. package/dist/brandsync-wc/{p-298158da.entry.js → p-c020ffdf.entry.js} +1 -1
  67. package/dist/brandsync-wc/{p-abfa43f5.entry.js → p-c02ed03d.entry.js} +1 -1
  68. package/dist/brandsync-wc/{p-baa3d37a.entry.js → p-cb002195.entry.js} +1 -1
  69. package/dist/brandsync-wc/{p-ffc07eb5.entry.js → p-d3fe8cea.entry.js} +1 -1
  70. package/dist/brandsync-wc/{p-42b79d95.entry.js → p-d42a26c1.entry.js} +1 -1
  71. package/dist/brandsync-wc/{p-e72dd05e.entry.js → p-d985e569.entry.js} +1 -1
  72. package/dist/brandsync-wc/{p-cf287ff1.entry.js → p-e2491db8.entry.js} +1 -1
  73. package/dist/brandsync-wc/{p-36fe783a.entry.js → p-e32a6df1.entry.js} +1 -1
  74. package/dist/brandsync-wc/{p-65fa1b21.entry.js → p-e3e15670.entry.js} +1 -1
  75. package/dist/brandsync-wc/{p-67629178.entry.js → p-e4e9c961.entry.js} +1 -1
  76. package/dist/brandsync-wc/{p-521d0fc2.entry.js → p-e99c0937.entry.js} +1 -1
  77. package/dist/brandsync-wc/{p-89ea6366.entry.js → p-e9adfa44.entry.js} +1 -1
  78. package/dist/brandsync-wc/{p-76748795.entry.js → p-eb3bacb9.entry.js} +1 -1
  79. package/dist/brandsync-wc/p-ee00d3a5.entry.js +1 -0
  80. package/dist/brandsync-wc/{p-ed71eb02.entry.js → p-ee63423c.entry.js} +1 -1
  81. package/dist/brandsync-wc/p-f4628861.entry.js +1 -0
  82. package/dist/brandsync-wc/{p-d81c4f58.entry.js → p-f47b8673.entry.js} +1 -1
  83. package/dist/brandsync-wc/{p-b9c9bcba.entry.js → p-f6caa623.entry.js} +1 -1
  84. package/dist/brandsync-wc/p-f86b58bf.entry.js +1 -0
  85. package/dist/brandsync-wc/{p-00be9a64.entry.js → p-fa91106e.entry.js} +1 -1
  86. package/dist/brandsync-wc/{p-538d5b58.entry.js → p-fb84002e.entry.js} +1 -1
  87. package/dist/brandsync-wc/{p-a12691d8.entry.js → p-fbc219c6.entry.js} +1 -1
  88. package/dist/brandsync-wc/{p-f3cc961b.entry.js → p-fd78ff22.entry.js} +1 -1
  89. package/dist/cjs/brandsync-wc.cjs.js +1 -1
  90. package/dist/cjs/bs-accordion-group.cjs.entry.js +1 -1
  91. package/dist/cjs/bs-ai-disclaimer.cjs.entry.js +1 -1
  92. package/dist/cjs/bs-ai-greeting.cjs.entry.js +1 -1
  93. package/dist/cjs/bs-ai-thinking.cjs.entry.js +1 -1
  94. package/dist/cjs/bs-app-recent-item_3.cjs.entry.js +133 -0
  95. package/dist/cjs/bs-app-shell.cjs.entry.js +1 -1
  96. package/dist/cjs/bs-app-switcher.cjs.entry.js +208 -0
  97. package/dist/cjs/bs-attachment-list.cjs.entry.js +1 -1
  98. package/dist/cjs/bs-attachment.cjs.entry.js +1 -1
  99. package/dist/cjs/bs-avatar.cjs.entry.js +1 -1
  100. package/dist/cjs/bs-badge.cjs.entry.js +1 -1
  101. package/dist/cjs/bs-breadcrumb-overflow.cjs.entry.js +1 -1
  102. package/dist/cjs/bs-breadcrumb.cjs.entry.js +1 -1
  103. package/dist/cjs/bs-breadcrumbs.cjs.entry.js +1 -1
  104. package/dist/cjs/bs-button-skeleton.cjs.entry.js +1 -1
  105. package/dist/cjs/bs-button.cjs.entry.js +1 -1
  106. package/dist/cjs/bs-card.cjs.entry.js +1 -1
  107. package/dist/cjs/bs-carousel.cjs.entry.js +1 -1
  108. package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +1 -1
  109. package/dist/cjs/bs-chatbot-header.cjs.entry.js +1 -1
  110. package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +1 -1
  111. package/dist/cjs/bs-chatbot-sources-drawer.cjs.entry.js +1 -1
  112. package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +1 -1
  113. package/dist/cjs/bs-checkbox-skeleton.cjs.entry.js +1 -1
  114. package/dist/cjs/bs-checkbox.cjs.entry.js +1 -1
  115. package/dist/cjs/bs-chip-filter.cjs.entry.js +1 -1
  116. package/dist/cjs/bs-chip-informative.cjs.entry.js +1 -1
  117. package/dist/cjs/bs-chip-input.cjs.entry.js +1 -1
  118. package/dist/cjs/bs-citation-preview.cjs.entry.js +1 -1
  119. package/dist/cjs/bs-command-palette.cjs.entry.js +374 -0
  120. package/dist/cjs/bs-compact-menu-block_2.cjs.entry.js +46 -0
  121. package/dist/cjs/bs-company-switcher.cjs.entry.js +211 -0
  122. package/dist/cjs/bs-composer-status-banner.cjs.entry.js +1 -1
  123. package/dist/cjs/bs-composer.cjs.entry.js +1 -1
  124. package/dist/cjs/bs-container.cjs.entry.js +1 -1
  125. package/dist/cjs/bs-data-table.cjs.entry.js +2 -2
  126. package/dist/cjs/bs-datepicker.cjs.entry.js +1 -1
  127. package/dist/cjs/bs-divider.cjs.entry.js +1 -1
  128. package/dist/cjs/bs-empty-state.cjs.entry.js +47 -0
  129. package/dist/cjs/bs-error-page.cjs.entry.js +1 -1
  130. package/dist/cjs/bs-file-upload-item.cjs.entry.js +1 -1
  131. package/dist/cjs/bs-file-upload.cjs.entry.js +1 -1
  132. package/dist/cjs/bs-global-search.cjs.entry.js +326 -0
  133. package/dist/cjs/bs-grid.cjs.entry.js +2 -2
  134. package/dist/cjs/bs-icon-button.cjs.entry.js +8 -1
  135. package/dist/cjs/bs-icon-tile.cjs.entry.js +10 -2
  136. package/dist/cjs/bs-inline-tab.cjs.entry.js +1 -1
  137. package/dist/cjs/bs-input_3.cjs.entry.js +4 -4
  138. package/dist/cjs/bs-key-caps.cjs.entry.js +39 -0
  139. package/dist/cjs/bs-key.cjs.entry.js +28 -0
  140. package/dist/cjs/bs-keyboard-shortcuts.cjs.entry.js +112 -0
  141. package/dist/cjs/bs-list-item_2.cjs.entry.js +215 -0
  142. package/dist/cjs/bs-list.cjs.entry.js +1 -1
  143. package/dist/cjs/bs-mega-menu.cjs.entry.js +70 -0
  144. package/dist/cjs/bs-message-list.cjs.entry.js +1 -1
  145. package/dist/cjs/bs-message.cjs.entry.js +1 -1
  146. package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +1 -1
  147. package/dist/cjs/bs-navigation-drawer.cjs.entry.js +2 -2
  148. package/dist/cjs/bs-navigation-header.cjs.entry.js +5 -2
  149. package/dist/cjs/bs-page-header.cjs.entry.js +66 -0
  150. package/dist/cjs/bs-pagination.cjs.entry.js +1 -1
  151. package/dist/cjs/bs-progress-linear.cjs.entry.js +2 -2
  152. package/dist/cjs/bs-progress.cjs.entry.js +2 -2
  153. package/dist/cjs/bs-qr-code.cjs.entry.js +1 -1
  154. package/dist/cjs/bs-radio.cjs.entry.js +1 -1
  155. package/dist/cjs/bs-search-item.cjs.entry.js +47 -0
  156. package/dist/cjs/bs-session-timeout.cjs.entry.js +1 -1
  157. package/dist/cjs/bs-shortcut-row.cjs.entry.js +27 -0
  158. package/dist/cjs/bs-slider.cjs.entry.js +1 -1
  159. package/dist/cjs/bs-snackbar.cjs.entry.js +1 -1
  160. package/dist/cjs/bs-source-link.cjs.entry.js +2 -2
  161. package/dist/cjs/bs-spinner.cjs.entry.js +1 -1
  162. package/dist/cjs/bs-split-pane.cjs.entry.js +1 -1
  163. package/dist/cjs/bs-stack.cjs.entry.js +1 -1
  164. package/dist/cjs/bs-stepper-step.cjs.entry.js +1 -1
  165. package/dist/cjs/bs-stepper.cjs.entry.js +1 -1
  166. package/dist/cjs/bs-switch.cjs.entry.js +1 -1
  167. package/dist/cjs/bs-tab_3.cjs.entry.js +3 -3
  168. package/dist/cjs/bs-timepicker.cjs.entry.js +2 -2
  169. package/dist/cjs/bs-toast.cjs.entry.js +1 -1
  170. package/dist/cjs/bs-tooltip-trigger.cjs.entry.js +1 -1
  171. package/dist/cjs/bs-tooltip.cjs.entry.js +1 -1
  172. package/dist/cjs/bs-tree-item.cjs.entry.js +2 -2
  173. package/dist/cjs/bs-tree.cjs.entry.js +1 -1
  174. package/dist/cjs/loader.cjs.js +1 -1
  175. package/dist/collection/collection-manifest.json +17 -1
  176. package/dist/collection/components/bs-accordion-group/bs-accordion-group.js +1 -1
  177. package/dist/collection/components/bs-ai-disclaimer/bs-ai-disclaimer.js +1 -1
  178. package/dist/collection/components/bs-ai-greeting/bs-ai-greeting.js +1 -1
  179. package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.js +1 -1
  180. package/dist/collection/components/bs-app-recent-item/bs-app-recent-item.cmp.test.js +52 -0
  181. package/dist/collection/components/bs-app-recent-item/bs-app-recent-item.css +111 -0
  182. package/dist/collection/components/bs-app-recent-item/bs-app-recent-item.js +184 -0
  183. package/dist/collection/components/bs-app-recent-item/bs-app-recent-item.stories.js +28 -0
  184. package/dist/collection/components/bs-app-shell/bs-app-shell.js +1 -1
  185. package/dist/collection/components/bs-app-switcher/bs-app-switcher.cmp.test.js +179 -0
  186. package/dist/collection/components/bs-app-switcher/bs-app-switcher.css +173 -0
  187. package/dist/collection/components/bs-app-switcher/bs-app-switcher.js +902 -0
  188. package/dist/collection/components/bs-app-switcher/bs-app-switcher.stories.js +91 -0
  189. package/dist/collection/components/bs-app-tile/bs-app-tile.cmp.test.js +58 -0
  190. package/dist/collection/components/bs-app-tile/bs-app-tile.css +104 -0
  191. package/dist/collection/components/bs-app-tile/bs-app-tile.js +190 -0
  192. package/dist/collection/components/bs-app-tile/bs-app-tile.stories.js +43 -0
  193. package/dist/collection/components/bs-attachment/bs-attachment.js +1 -1
  194. package/dist/collection/components/bs-attachment-list/bs-attachment-list.js +1 -1
  195. package/dist/collection/components/bs-avatar/bs-avatar.css +3 -3
  196. package/dist/collection/components/bs-badge/bs-badge.js +1 -1
  197. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.js +1 -1
  198. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.js +1 -1
  199. package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.js +1 -1
  200. package/dist/collection/components/bs-button/bs-button/bs-button.js +1 -1
  201. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.cmp.test.js +13 -0
  202. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.js +27 -1
  203. package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +1 -1
  204. package/dist/collection/components/bs-card/bs-card.js +1 -1
  205. package/dist/collection/components/bs-carousel/bs-carousel.js +1 -1
  206. package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.js +1 -1
  207. package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.js +1 -1
  208. package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.js +1 -1
  209. package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.js +1 -1
  210. package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js +1 -1
  211. package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.js +1 -1
  212. package/dist/collection/components/bs-checkbox/bs-checkbox.js +1 -1
  213. package/dist/collection/components/bs-chip/bs-chip-filter/bs-chip-filter.js +1 -1
  214. package/dist/collection/components/bs-chip/bs-chip-informative/bs-chip-informative.js +1 -1
  215. package/dist/collection/components/bs-chip/bs-chip-input/bs-chip-input.js +1 -1
  216. package/dist/collection/components/bs-citation-preview/bs-citation-preview.js +1 -1
  217. package/dist/collection/components/bs-command-palette/bs-command-palette.cmp.test.js +207 -0
  218. package/dist/collection/components/bs-command-palette/bs-command-palette.css +214 -0
  219. package/dist/collection/components/bs-command-palette/bs-command-palette.js +1114 -0
  220. package/dist/collection/components/bs-command-palette/bs-command-palette.stories.js +194 -0
  221. package/dist/collection/components/bs-compact-menu-block/bs-compact-menu-block.cmp.test.js +32 -0
  222. package/dist/collection/components/bs-compact-menu-block/bs-compact-menu-block.css +43 -0
  223. package/dist/collection/components/bs-compact-menu-block/bs-compact-menu-block.js +67 -0
  224. package/dist/collection/components/bs-compact-menu-block/bs-compact-menu-block.stories.js +25 -0
  225. package/dist/collection/components/bs-company-switcher/bs-company-switcher.cmp.test.js +171 -0
  226. package/dist/collection/components/bs-company-switcher/bs-company-switcher.css +196 -0
  227. package/dist/collection/components/bs-company-switcher/bs-company-switcher.js +720 -0
  228. package/dist/collection/components/bs-company-switcher/bs-company-switcher.stories.js +78 -0
  229. package/dist/collection/components/bs-composer/bs-composer.js +1 -1
  230. package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.js +1 -1
  231. package/dist/collection/components/bs-container/bs-container.js +1 -1
  232. package/dist/collection/components/bs-data-table/bs-data-table.js +2 -2
  233. package/dist/collection/components/bs-datepicker/bs-datepicker.js +1 -1
  234. package/dist/collection/components/bs-divider/bs-divider.js +1 -1
  235. package/dist/collection/components/bs-empty-state/bs-empty-state.cmp.test.js +102 -0
  236. package/dist/collection/components/bs-empty-state/bs-empty-state.css +45 -0
  237. package/dist/collection/components/bs-empty-state/bs-empty-state.js +175 -0
  238. package/dist/collection/components/bs-empty-state/bs-empty-state.stories.js +52 -0
  239. package/dist/collection/components/bs-error-page/bs-error-page.js +1 -1
  240. package/dist/collection/components/bs-file-upload/bs-file-upload.js +1 -1
  241. package/dist/collection/components/bs-file-upload-item/bs-file-upload-item.js +1 -1
  242. package/dist/collection/components/bs-global-search/bs-global-search.cmp.test.js +491 -0
  243. package/dist/collection/components/bs-global-search/bs-global-search.css +115 -0
  244. package/dist/collection/components/bs-global-search/bs-global-search.js +1024 -0
  245. package/dist/collection/components/bs-global-search/bs-global-search.stories.js +146 -0
  246. package/dist/collection/components/bs-grid/bs-grid.js +2 -2
  247. package/dist/collection/components/bs-icon-tile/bs-icon-tile.js +11 -2
  248. package/dist/collection/components/bs-input/bs-input.js +2 -2
  249. package/dist/collection/components/bs-key/bs-key.cmp.test.js +59 -0
  250. package/dist/collection/components/bs-key/bs-key.css +58 -0
  251. package/dist/collection/components/bs-key/bs-key.js +84 -0
  252. package/dist/collection/components/bs-key/bs-key.stories.js +19 -0
  253. package/dist/collection/components/bs-key-caps/bs-key-caps.cmp.test.js +60 -0
  254. package/dist/collection/components/bs-key-caps/bs-key-caps.css +28 -0
  255. package/dist/collection/components/bs-key-caps/bs-key-caps.js +120 -0
  256. package/dist/collection/components/bs-key-caps/bs-key-caps.stories.js +29 -0
  257. package/dist/collection/components/bs-keyboard-shortcuts/bs-keyboard-shortcuts.cmp.test.js +194 -0
  258. package/dist/collection/components/bs-keyboard-shortcuts/bs-keyboard-shortcuts.css +138 -0
  259. package/dist/collection/components/bs-keyboard-shortcuts/bs-keyboard-shortcuts.js +485 -0
  260. package/dist/collection/components/bs-keyboard-shortcuts/bs-keyboard-shortcuts.stories.js +111 -0
  261. package/dist/collection/components/bs-list/bs-list.js +1 -1
  262. package/dist/collection/components/bs-list-item/bs-list-item.js +1 -1
  263. package/dist/collection/components/bs-mega-menu/bs-mega-menu.cmp.test.js +131 -0
  264. package/dist/collection/components/bs-mega-menu/bs-mega-menu.css +139 -0
  265. package/dist/collection/components/bs-mega-menu/bs-mega-menu.js +358 -0
  266. package/dist/collection/components/bs-mega-menu/bs-mega-menu.stories.js +188 -0
  267. package/dist/collection/components/bs-menu/bs-menu.js +1 -1
  268. package/dist/collection/components/bs-menu-block/bs-menu-block.cmp.test.js +44 -0
  269. package/dist/collection/components/bs-menu-block/bs-menu-block.css +106 -0
  270. package/dist/collection/components/bs-menu-block/bs-menu-block.js +147 -0
  271. package/dist/collection/components/bs-menu-block/bs-menu-block.stories.js +36 -0
  272. package/dist/collection/components/bs-menu-item/bs-menu-item.js +1 -1
  273. package/dist/collection/components/bs-message/bs-message.js +1 -1
  274. package/dist/collection/components/bs-message-list/bs-message-list.js +1 -1
  275. package/dist/collection/components/bs-page-header/bs-page-header.cmp.test.js +206 -0
  276. package/dist/collection/components/bs-page-header/bs-page-header.css +252 -0
  277. package/dist/collection/components/bs-page-header/bs-page-header.js +351 -0
  278. package/dist/collection/components/bs-page-header/bs-page-header.stories.js +177 -0
  279. package/dist/collection/components/bs-pagination/bs-pagination.js +1 -1
  280. package/dist/collection/components/bs-popover/bs-popover.js +1 -1
  281. package/dist/collection/components/bs-progress/bs-progress.js +2 -2
  282. package/dist/collection/components/bs-progress-linear/bs-progress-linear.js +2 -2
  283. package/dist/collection/components/bs-qr-code/bs-qr-code.js +1 -1
  284. package/dist/collection/components/bs-radio/bs-radio.js +1 -1
  285. package/dist/collection/components/bs-search-item/bs-search-item.cmp.test.js +147 -0
  286. package/dist/collection/components/bs-search-item/bs-search-item.css +112 -0
  287. package/dist/collection/components/bs-search-item/bs-search-item.js +222 -0
  288. package/dist/collection/components/bs-search-item/bs-search-item.stories.js +31 -0
  289. package/dist/collection/components/bs-session-timeout/bs-session-timeout.js +1 -1
  290. package/dist/collection/components/bs-shortcut-row/bs-shortcut-row.cmp.test.js +60 -0
  291. package/dist/collection/components/bs-shortcut-row/bs-shortcut-row.css +42 -0
  292. package/dist/collection/components/bs-shortcut-row/bs-shortcut-row.js +154 -0
  293. package/dist/collection/components/bs-shortcut-row/bs-shortcut-row.stories.js +24 -0
  294. package/dist/collection/components/bs-skeleton/bs-skeleton.js +1 -1
  295. package/dist/collection/components/bs-slider/bs-slider.js +1 -1
  296. package/dist/collection/components/bs-snackbar/bs-snackbar.js +1 -1
  297. package/dist/collection/components/bs-source-link/bs-source-link.js +2 -2
  298. package/dist/collection/components/bs-spinner/bs-spinner.js +1 -1
  299. package/dist/collection/components/bs-split-pane/bs-split-pane.js +1 -1
  300. package/dist/collection/components/bs-stack/bs-stack.js +1 -1
  301. package/dist/collection/components/bs-stepper/bs-stepper/bs-stepper.js +1 -1
  302. package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.js +1 -1
  303. package/dist/collection/components/bs-switch/bs-switch.js +1 -1
  304. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.js +1 -1
  305. package/dist/collection/components/bs-tab/bs-tab/bs-tab.js +1 -1
  306. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.js +1 -1
  307. package/dist/collection/components/bs-timepicker/bs-timepicker.js +2 -2
  308. package/dist/collection/components/bs-toast/bs-toast.js +1 -1
  309. package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
  310. package/dist/collection/components/bs-tooltip-trigger/bs-tooltip-trigger.js +1 -1
  311. package/dist/collection/components/bs-tree/bs-tree.js +1 -1
  312. package/dist/collection/components/bs-tree-item/bs-tree-item.js +2 -2
  313. package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.js +1 -1
  314. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +2 -2
  315. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.js +1 -1
  316. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.cmp.test.js +79 -0
  317. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.css +46 -0
  318. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.js +10 -1
  319. package/dist/components/bs-accordion-group.js +1 -1
  320. package/dist/components/bs-ai-disclaimer.js +1 -1
  321. package/dist/components/bs-ai-greeting.js +1 -1
  322. package/dist/components/bs-ai-thinking.js +1 -1
  323. package/dist/components/bs-app-recent-item.d.ts +11 -0
  324. package/dist/components/bs-app-recent-item.js +1 -0
  325. package/dist/components/bs-app-shell.js +1 -1
  326. package/dist/components/bs-app-switcher.d.ts +11 -0
  327. package/dist/components/bs-app-switcher.js +1 -0
  328. package/dist/components/bs-app-tile.d.ts +11 -0
  329. package/dist/components/bs-app-tile.js +1 -0
  330. package/dist/components/bs-attachment-list.js +1 -1
  331. package/dist/components/bs-attachment.js +1 -1
  332. package/dist/components/bs-avatar.js +1 -1
  333. package/dist/components/bs-badge.js +1 -1
  334. package/dist/components/bs-breadcrumb-overflow.js +1 -1
  335. package/dist/components/bs-breadcrumb.js +1 -1
  336. package/dist/components/bs-breadcrumbs.js +1 -1
  337. package/dist/components/bs-button-skeleton.js +1 -1
  338. package/dist/components/bs-button.js +1 -1
  339. package/dist/components/bs-card.js +1 -1
  340. package/dist/components/bs-carousel.js +1 -1
  341. package/dist/components/bs-chatbot-feedback.js +1 -1
  342. package/dist/components/bs-chatbot-header.js +1 -1
  343. package/dist/components/bs-chatbot-response-action.js +1 -1
  344. package/dist/components/bs-chatbot-sources-drawer.js +1 -1
  345. package/dist/components/bs-chatbot-suggestion-button.js +1 -1
  346. package/dist/components/bs-checkbox-skeleton.js +1 -1
  347. package/dist/components/bs-checkbox.js +1 -1
  348. package/dist/components/bs-chip-filter.js +1 -1
  349. package/dist/components/bs-chip-informative.js +1 -1
  350. package/dist/components/bs-chip-input.js +1 -1
  351. package/dist/components/bs-citation-preview.js +1 -1
  352. package/dist/components/bs-command-palette.d.ts +11 -0
  353. package/dist/components/bs-command-palette.js +1 -0
  354. package/dist/components/bs-compact-menu-block.d.ts +11 -0
  355. package/dist/components/bs-compact-menu-block.js +1 -0
  356. package/dist/components/bs-company-switcher.d.ts +11 -0
  357. package/dist/components/bs-company-switcher.js +1 -0
  358. package/dist/components/bs-composer-status-banner.js +1 -1
  359. package/dist/components/bs-composer.js +1 -1
  360. package/dist/components/bs-container.js +1 -1
  361. package/dist/components/bs-cookie-consent.js +1 -1
  362. package/dist/components/bs-data-table.js +1 -1
  363. package/dist/components/bs-datepicker.js +1 -1
  364. package/dist/components/bs-dialog.js +1 -1
  365. package/dist/components/bs-divider.js +1 -1
  366. package/dist/components/bs-empty-state.d.ts +11 -0
  367. package/dist/components/bs-empty-state.js +1 -0
  368. package/dist/components/bs-error-page.js +1 -1
  369. package/dist/components/bs-file-upload-item.js +1 -1
  370. package/dist/components/bs-file-upload.js +1 -1
  371. package/dist/components/bs-global-search.d.ts +11 -0
  372. package/dist/components/bs-global-search.js +1 -0
  373. package/dist/components/bs-grid.js +1 -1
  374. package/dist/components/bs-icon-button.js +1 -1
  375. package/dist/components/bs-icon-tile.js +1 -1
  376. package/dist/components/bs-inline-tab.js +1 -1
  377. package/dist/components/bs-input.js +1 -1
  378. package/dist/components/bs-key-caps.d.ts +11 -0
  379. package/dist/components/bs-key-caps.js +1 -0
  380. package/dist/components/bs-key.d.ts +11 -0
  381. package/dist/components/bs-key.js +1 -0
  382. package/dist/components/bs-keyboard-shortcuts.d.ts +11 -0
  383. package/dist/components/bs-keyboard-shortcuts.js +1 -0
  384. package/dist/components/bs-list-item.js +1 -1
  385. package/dist/components/bs-list.js +1 -1
  386. package/dist/components/bs-mega-menu.d.ts +11 -0
  387. package/dist/components/bs-mega-menu.js +1 -0
  388. package/dist/components/bs-menu-block.d.ts +11 -0
  389. package/dist/components/bs-menu-block.js +1 -0
  390. package/dist/components/bs-menu-item.js +1 -1
  391. package/dist/components/bs-menu.js +1 -1
  392. package/dist/components/bs-message-list.js +1 -1
  393. package/dist/components/bs-message.js +1 -1
  394. package/dist/components/bs-navigation-drawer-item.js +1 -1
  395. package/dist/components/bs-navigation-drawer.js +1 -1
  396. package/dist/components/bs-navigation-header.js +1 -1
  397. package/dist/components/bs-onboarding-checklist.js +1 -1
  398. package/dist/components/bs-page-header.d.ts +11 -0
  399. package/dist/components/bs-page-header.js +1 -0
  400. package/dist/components/bs-pagination.js +1 -1
  401. package/dist/components/bs-popover.js +1 -1
  402. package/dist/components/bs-product-tour.js +1 -1
  403. package/dist/components/bs-progress-linear.js +1 -1
  404. package/dist/components/bs-progress.js +1 -1
  405. package/dist/components/bs-qr-code.js +1 -1
  406. package/dist/components/bs-radio.js +1 -1
  407. package/dist/components/bs-search-item.d.ts +11 -0
  408. package/dist/components/bs-search-item.js +1 -0
  409. package/dist/components/bs-session-timeout.js +1 -1
  410. package/dist/components/bs-shortcut-row.d.ts +11 -0
  411. package/dist/components/bs-shortcut-row.js +1 -0
  412. package/dist/components/bs-side-panel.js +1 -1
  413. package/dist/components/bs-skeleton.js +1 -1
  414. package/dist/components/bs-slider.js +1 -1
  415. package/dist/components/bs-snackbar.js +1 -1
  416. package/dist/components/bs-source-link.js +1 -1
  417. package/dist/components/bs-spinner.js +1 -1
  418. package/dist/components/bs-split-pane.js +1 -1
  419. package/dist/components/bs-stack.js +1 -1
  420. package/dist/components/bs-stepper-step.js +1 -1
  421. package/dist/components/bs-stepper.js +1 -1
  422. package/dist/components/bs-switch.js +1 -1
  423. package/dist/components/bs-tab.js +1 -1
  424. package/dist/components/bs-tabs.js +1 -1
  425. package/dist/components/bs-timepicker.js +1 -1
  426. package/dist/components/bs-toast.js +1 -1
  427. package/dist/components/bs-tooltip-trigger.js +1 -1
  428. package/dist/components/bs-tooltip.js +1 -1
  429. package/dist/components/bs-tree-item.js +1 -1
  430. package/dist/components/bs-tree.js +1 -1
  431. package/dist/components/bs-whats-new-entry.js +1 -1
  432. package/dist/components/bs-whats-new.js +1 -1
  433. package/dist/components/p-B6KgEbdM.js +1 -0
  434. package/dist/components/{p-CQjSDdH7.js → p-B8kw9EOx.js} +1 -1
  435. package/dist/components/p-BLPNwyiT.js +1 -0
  436. package/dist/components/{p-J9cxcDhY.js → p-BP1l6Q3Z.js} +1 -1
  437. package/dist/components/p-BS7ySxJZ.js +1 -0
  438. package/dist/components/{p-DYuzgzxI.js → p-BmdSbmFg.js} +1 -1
  439. package/dist/components/{p-CRtvJlh8.js → p-C1owRphU.js} +1 -1
  440. package/dist/components/{p-BsbtyRJV.js → p-C2rRVRIu.js} +1 -1
  441. package/dist/components/p-C3erqJFy.js +1 -0
  442. package/dist/components/p-Cd7p-48Q.js +1 -0
  443. package/dist/components/{p-CK7fiES5.js → p-CmlzHRkn.js} +1 -1
  444. package/dist/components/p-Co36mHEU.js +1 -0
  445. package/dist/components/p-D4_8H0vn.js +1 -0
  446. package/dist/components/{p-D0KM1R2i.js → p-D9dDFyPB.js} +1 -1
  447. package/dist/components/{p-DvNED6Lb.js → p-DBvhi__l.js} +1 -1
  448. package/dist/components/{p-kDJsWjTN.js → p-DFd4pP4i.js} +1 -1
  449. package/dist/components/{p-BdkE4auv.js → p-DVjuZdjF.js} +1 -1
  450. package/dist/components/{p-Bb1-2M8K.js → p-DW0Dw2LS.js} +1 -1
  451. package/dist/components/p-DcdFuKG9.js +1 -0
  452. package/dist/components/p-Deq0LzGO.js +1 -0
  453. package/dist/components/{p-BaJEv6rL.js → p-DgY5pxXd.js} +1 -1
  454. package/dist/components/{p-ByLUtXxO.js → p-DhhXayh6.js} +1 -1
  455. package/dist/components/p-DiORQQg3.js +1 -0
  456. package/dist/components/p-Dl0FedE5.js +1 -0
  457. package/dist/components/p-DsBToIYE.js +1 -0
  458. package/dist/components/{p-DFKc3lLA.js → p-DtbeCgXo.js} +1 -1
  459. package/dist/components/{p-C7RZ6qZC.js → p-DzvXbBvk.js} +1 -1
  460. package/dist/components/p-I1_Q3HQu.js +1 -0
  461. package/dist/components/{p-C93ymWm7.js → p-TXAiCnSZ.js} +1 -1
  462. package/dist/components/p-c-g3-oVu.js +1 -0
  463. package/dist/components/p-erdtytMq.js +1 -0
  464. package/dist/components/{p-B128GX8H.js → p-qXdgl7VG.js} +1 -1
  465. package/dist/esm/brandsync-wc.js +1 -1
  466. package/dist/esm/bs-accordion-group.entry.js +1 -1
  467. package/dist/esm/bs-ai-disclaimer.entry.js +1 -1
  468. package/dist/esm/bs-ai-greeting.entry.js +1 -1
  469. package/dist/esm/bs-ai-thinking.entry.js +1 -1
  470. package/dist/esm/bs-app-recent-item_3.entry.js +129 -0
  471. package/dist/esm/bs-app-shell.entry.js +1 -1
  472. package/dist/esm/bs-app-switcher.entry.js +206 -0
  473. package/dist/esm/bs-attachment-list.entry.js +1 -1
  474. package/dist/esm/bs-attachment.entry.js +1 -1
  475. package/dist/esm/bs-avatar.entry.js +1 -1
  476. package/dist/esm/bs-badge.entry.js +1 -1
  477. package/dist/esm/bs-breadcrumb-overflow.entry.js +1 -1
  478. package/dist/esm/bs-breadcrumb.entry.js +1 -1
  479. package/dist/esm/bs-breadcrumbs.entry.js +1 -1
  480. package/dist/esm/bs-button-skeleton.entry.js +1 -1
  481. package/dist/esm/bs-button.entry.js +1 -1
  482. package/dist/esm/bs-card.entry.js +1 -1
  483. package/dist/esm/bs-carousel.entry.js +1 -1
  484. package/dist/esm/bs-chatbot-feedback.entry.js +1 -1
  485. package/dist/esm/bs-chatbot-header.entry.js +1 -1
  486. package/dist/esm/bs-chatbot-response-action.entry.js +1 -1
  487. package/dist/esm/bs-chatbot-sources-drawer.entry.js +1 -1
  488. package/dist/esm/bs-chatbot-suggestion-button.entry.js +1 -1
  489. package/dist/esm/bs-checkbox-skeleton.entry.js +1 -1
  490. package/dist/esm/bs-checkbox.entry.js +1 -1
  491. package/dist/esm/bs-chip-filter.entry.js +1 -1
  492. package/dist/esm/bs-chip-informative.entry.js +1 -1
  493. package/dist/esm/bs-chip-input.entry.js +1 -1
  494. package/dist/esm/bs-citation-preview.entry.js +1 -1
  495. package/dist/esm/bs-command-palette.entry.js +372 -0
  496. package/dist/esm/bs-compact-menu-block_2.entry.js +43 -0
  497. package/dist/esm/bs-company-switcher.entry.js +209 -0
  498. package/dist/esm/bs-composer-status-banner.entry.js +1 -1
  499. package/dist/esm/bs-composer.entry.js +1 -1
  500. package/dist/esm/bs-container.entry.js +1 -1
  501. package/dist/esm/bs-data-table.entry.js +2 -2
  502. package/dist/esm/bs-datepicker.entry.js +1 -1
  503. package/dist/esm/bs-divider.entry.js +1 -1
  504. package/dist/esm/bs-empty-state.entry.js +45 -0
  505. package/dist/esm/bs-error-page.entry.js +1 -1
  506. package/dist/esm/bs-file-upload-item.entry.js +1 -1
  507. package/dist/esm/bs-file-upload.entry.js +1 -1
  508. package/dist/esm/bs-global-search.entry.js +324 -0
  509. package/dist/esm/bs-grid.entry.js +2 -2
  510. package/dist/esm/bs-icon-button.entry.js +8 -1
  511. package/dist/esm/bs-icon-tile.entry.js +11 -3
  512. package/dist/esm/bs-inline-tab.entry.js +1 -1
  513. package/dist/esm/bs-input_3.entry.js +4 -4
  514. package/dist/esm/bs-key-caps.entry.js +37 -0
  515. package/dist/esm/bs-key.entry.js +26 -0
  516. package/dist/esm/bs-keyboard-shortcuts.entry.js +110 -0
  517. package/dist/esm/bs-list-item_2.entry.js +212 -0
  518. package/dist/esm/bs-list.entry.js +1 -1
  519. package/dist/esm/bs-mega-menu.entry.js +68 -0
  520. package/dist/esm/bs-message-list.entry.js +1 -1
  521. package/dist/esm/bs-message.entry.js +1 -1
  522. package/dist/esm/bs-navigation-drawer-item.entry.js +1 -1
  523. package/dist/esm/bs-navigation-drawer.entry.js +2 -2
  524. package/dist/esm/bs-navigation-header.entry.js +5 -2
  525. package/dist/esm/bs-page-header.entry.js +64 -0
  526. package/dist/esm/bs-pagination.entry.js +1 -1
  527. package/dist/esm/bs-progress-linear.entry.js +2 -2
  528. package/dist/esm/bs-progress.entry.js +2 -2
  529. package/dist/esm/bs-qr-code.entry.js +1 -1
  530. package/dist/esm/bs-radio.entry.js +1 -1
  531. package/dist/esm/bs-search-item.entry.js +45 -0
  532. package/dist/esm/bs-session-timeout.entry.js +1 -1
  533. package/dist/esm/bs-shortcut-row.entry.js +25 -0
  534. package/dist/esm/bs-slider.entry.js +1 -1
  535. package/dist/esm/bs-snackbar.entry.js +1 -1
  536. package/dist/esm/bs-source-link.entry.js +2 -2
  537. package/dist/esm/bs-spinner.entry.js +1 -1
  538. package/dist/esm/bs-split-pane.entry.js +1 -1
  539. package/dist/esm/bs-stack.entry.js +1 -1
  540. package/dist/esm/bs-stepper-step.entry.js +1 -1
  541. package/dist/esm/bs-stepper.entry.js +1 -1
  542. package/dist/esm/bs-switch.entry.js +1 -1
  543. package/dist/esm/bs-tab_3.entry.js +3 -3
  544. package/dist/esm/bs-timepicker.entry.js +2 -2
  545. package/dist/esm/bs-toast.entry.js +1 -1
  546. package/dist/esm/bs-tooltip-trigger.entry.js +1 -1
  547. package/dist/esm/bs-tooltip.entry.js +1 -1
  548. package/dist/esm/bs-tree-item.entry.js +2 -2
  549. package/dist/esm/bs-tree.entry.js +1 -1
  550. package/dist/esm/loader.js +1 -1
  551. package/dist/types/components/bs-app-recent-item/bs-app-recent-item.cmp.test.d.ts +1 -0
  552. package/dist/types/components/bs-app-recent-item/bs-app-recent-item.d.ts +51 -0
  553. package/dist/types/components/bs-app-recent-item/bs-app-recent-item.stories.d.ts +15 -0
  554. package/dist/types/components/bs-app-switcher/bs-app-switcher.cmp.test.d.ts +1 -0
  555. package/dist/types/components/bs-app-switcher/bs-app-switcher.d.ts +159 -0
  556. package/dist/types/components/bs-app-switcher/bs-app-switcher.stories.d.ts +34 -0
  557. package/dist/types/components/bs-app-tile/bs-app-tile.cmp.test.d.ts +1 -0
  558. package/dist/types/components/bs-app-tile/bs-app-tile.d.ts +51 -0
  559. package/dist/types/components/bs-app-tile/bs-app-tile.stories.d.ts +18 -0
  560. package/dist/types/components/bs-button/bs-icon-button/bs-icon-button.d.ts +7 -0
  561. package/dist/types/components/bs-command-palette/bs-command-palette.cmp.test.d.ts +1 -0
  562. package/dist/types/components/bs-command-palette/bs-command-palette.d.ts +172 -0
  563. package/dist/types/components/bs-command-palette/bs-command-palette.stories.d.ts +56 -0
  564. package/dist/types/components/bs-compact-menu-block/bs-compact-menu-block.cmp.test.d.ts +1 -0
  565. package/dist/types/components/bs-compact-menu-block/bs-compact-menu-block.d.ts +28 -0
  566. package/dist/types/components/bs-compact-menu-block/bs-compact-menu-block.stories.d.ts +10 -0
  567. package/dist/types/components/bs-company-switcher/bs-company-switcher.cmp.test.d.ts +1 -0
  568. package/dist/types/components/bs-company-switcher/bs-company-switcher.d.ts +130 -0
  569. package/dist/types/components/bs-company-switcher/bs-company-switcher.stories.d.ts +25 -0
  570. package/dist/types/components/bs-empty-state/bs-empty-state.cmp.test.d.ts +1 -0
  571. package/dist/types/components/bs-empty-state/bs-empty-state.d.ts +50 -0
  572. package/dist/types/components/bs-empty-state/bs-empty-state.stories.d.ts +13 -0
  573. package/dist/types/components/bs-global-search/bs-global-search.cmp.test.d.ts +1 -0
  574. package/dist/types/components/bs-global-search/bs-global-search.d.ts +166 -0
  575. package/dist/types/components/bs-global-search/bs-global-search.stories.d.ts +61 -0
  576. package/dist/types/components/bs-icon-tile/bs-icon-tile.d.ts +5 -0
  577. package/dist/types/components/bs-key/bs-key.cmp.test.d.ts +1 -0
  578. package/dist/types/components/bs-key/bs-key.d.ts +36 -0
  579. package/dist/types/components/bs-key/bs-key.stories.d.ts +11 -0
  580. package/dist/types/components/bs-key-caps/bs-key-caps.cmp.test.d.ts +1 -0
  581. package/dist/types/components/bs-key-caps/bs-key-caps.d.ts +31 -0
  582. package/dist/types/components/bs-key-caps/bs-key-caps.stories.d.ts +15 -0
  583. package/dist/types/components/bs-keyboard-shortcuts/bs-keyboard-shortcuts.cmp.test.d.ts +1 -0
  584. package/dist/types/components/bs-keyboard-shortcuts/bs-keyboard-shortcuts.d.ts +95 -0
  585. package/dist/types/components/bs-keyboard-shortcuts/bs-keyboard-shortcuts.stories.d.ts +43 -0
  586. package/dist/types/components/bs-mega-menu/bs-mega-menu.cmp.test.d.ts +1 -0
  587. package/dist/types/components/bs-mega-menu/bs-mega-menu.d.ts +110 -0
  588. package/dist/types/components/bs-mega-menu/bs-mega-menu.stories.d.ts +55 -0
  589. package/dist/types/components/bs-menu-block/bs-menu-block.cmp.test.d.ts +1 -0
  590. package/dist/types/components/bs-menu-block/bs-menu-block.d.ts +47 -0
  591. package/dist/types/components/bs-menu-block/bs-menu-block.stories.d.ts +15 -0
  592. package/dist/types/components/bs-page-header/bs-page-header.cmp.test.d.ts +1 -0
  593. package/dist/types/components/bs-page-header/bs-page-header.d.ts +100 -0
  594. package/dist/types/components/bs-page-header/bs-page-header.stories.d.ts +41 -0
  595. package/dist/types/components/bs-search-item/bs-search-item.cmp.test.d.ts +1 -0
  596. package/dist/types/components/bs-search-item/bs-search-item.d.ts +61 -0
  597. package/dist/types/components/bs-search-item/bs-search-item.stories.d.ts +13 -0
  598. package/dist/types/components/bs-shortcut-row/bs-shortcut-row.cmp.test.d.ts +1 -0
  599. package/dist/types/components/bs-shortcut-row/bs-shortcut-row.d.ts +38 -0
  600. package/dist/types/components/bs-shortcut-row/bs-shortcut-row.stories.d.ts +13 -0
  601. package/dist/types/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.d.ts +7 -1
  602. package/dist/types/components.d.ts +3920 -71
  603. package/dist/types/svg-inline.d.ts +5 -0
  604. package/package.json +2 -1
  605. package/reference.d.ts +50 -2
  606. package/reference.json +1701 -31
  607. package/dist/brandsync-wc/p-0228a584.entry.js +0 -1
  608. package/dist/brandsync-wc/p-0f97fe35.entry.js +0 -1
  609. package/dist/brandsync-wc/p-23379d7c.entry.js +0 -1
  610. package/dist/brandsync-wc/p-34b0c048.entry.js +0 -1
  611. package/dist/brandsync-wc/p-3789c7a5.entry.js +0 -1
  612. package/dist/brandsync-wc/p-5a45ef51.entry.js +0 -1
  613. package/dist/brandsync-wc/p-769c5b4a.entry.js +0 -1
  614. package/dist/brandsync-wc/p-86774165.entry.js +0 -1
  615. package/dist/brandsync-wc/p-e5f50e93.entry.js +0 -1
  616. package/dist/brandsync-wc/p-f4d1d56e.entry.js +0 -1
  617. package/dist/cjs/bs-list-item.cjs.entry.js +0 -66
  618. package/dist/cjs/bs-popover.cjs.entry.js +0 -153
  619. package/dist/cjs/bs-skeleton.cjs.entry.js +0 -51
  620. package/dist/components/p-B80vOwH6.js +0 -1
  621. package/dist/components/p-ChcaPfNL.js +0 -1
  622. package/dist/components/p-GTDI4Ibw.js +0 -1
  623. package/dist/esm/bs-list-item.entry.js +0 -64
  624. package/dist/esm/bs-popover.entry.js +0 -151
  625. package/dist/esm/bs-skeleton.entry.js +0 -49
@@ -6,6 +6,8 @@
6
6
  */
7
7
  import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
8
8
  import { BsAccordionSize } from "./components/bs-accordion/bs-accordion";
9
+ import { BsApp, BsAppRecent, BsAppSwitcherStatus } from "./components/bs-app-switcher/bs-app-switcher";
10
+ import { BsAppTileSize } from "./components/bs-app-tile/bs-app-tile";
9
11
  import { BsAttachmentType } from "./components/bs-attachment/bs-attachment";
10
12
  import { BsAvatarSize, BsAvatarType } from "./components/bs-avatar/bs-avatar";
11
13
  import { BsBadgeVariant } from "./components/bs-badge/bs-badge";
@@ -21,6 +23,8 @@ import { BsCheckboxSize as BsCheckboxSize1 } from "./components/bs-checkbox/bs-c
21
23
  import { BsChipFilterSize } from "./components/bs-chip/bs-chip-filter/bs-chip-filter";
22
24
  import { BsChipInformativeColor, BsChipInformativeSize } from "./components/bs-chip/bs-chip-informative/bs-chip-informative";
23
25
  import { BsChipInputSize } from "./components/bs-chip/bs-chip-input/bs-chip-input";
26
+ import { BsCommandPaletteInputDetail, BsCommandPaletteSelectDetail, BsCommandPaletteStatus } from "./components/bs-command-palette/bs-command-palette";
27
+ import { BsCompany } from "./components/bs-company-switcher/bs-company-switcher";
24
28
  import { BsComposerState, BsComposerVariant } from "./components/bs-composer/bs-composer";
25
29
  import { BsComposerStatusBannerType } from "./components/bs-composer-status-banner/bs-composer-status-banner";
26
30
  import { BsContainerSize } from "./components/bs-container/bs-container";
@@ -29,13 +33,17 @@ import { BsDataTableColumn, BsDataTableRow } from "./components/bs-data-table/bs
29
33
  import { BsDatepickerChange } from "./components/bs-datepicker/bs-datepicker";
30
34
  import { BsDialogSize } from "./components/bs-dialog/bs-dialog";
31
35
  import { BsDividerInset, BsDividerOrientation, BsDividerVariant } from "./components/bs-divider/bs-divider";
36
+ import { BsIconTileIntent } from "./components/bs-icon-tile/bs-icon-tile";
32
37
  import { BsErrorPageType } from "./components/bs-error-page/bs-error-page";
33
38
  import { BsFileUploadDirection } from "./components/bs-file-upload/bs-file-upload";
34
39
  import { BsFileUploadItemState } from "./components/bs-file-upload-item/bs-file-upload-item";
40
+ import { BsGlobalSearchSelectDetail, BsGlobalSearchStatus } from "./components/bs-global-search/bs-global-search";
35
41
  import { BsGridAlign } from "./components/bs-grid/bs-grid";
36
42
  import { BsIconButtonSize, BsIconButtonVariant } from "./components/bs-button/bs-icon-button/bs-icon-button";
37
- import { BsIconTileIntent, BsIconTileSize } from "./components/bs-icon-tile/bs-icon-tile";
43
+ import { BsIconTileIntent as BsIconTileIntent1, BsIconTileSize } from "./components/bs-icon-tile/bs-icon-tile";
44
+ import { BsShortcutGroup } from "./components/bs-keyboard-shortcuts/bs-keyboard-shortcuts";
38
45
  import { BsLogoBackground, BsLogoVariant } from "./components/bs-logo/bs-logo";
46
+ import { BsMegaMenuColumn, BsMegaMenuFeatured, BsMegaMenuItem, BsMegaMenuType } from "./components/bs-mega-menu/bs-mega-menu";
39
47
  import { BsMessageRole, BsMessageStatus } from "./components/bs-message/bs-message";
40
48
  import { BsNavigationHeaderAlignment } from "./components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header";
41
49
  import { BsOnboardingChecklistType, BsOnboardingLauncherLayout, BsOnboardingStep } from "./components/bs-onboarding-checklist/bs-onboarding-checklist";
@@ -64,6 +72,8 @@ import { BsWhatsNewFilter, BsWhatsNewItem, BsWhatsNewType } from "./components/b
64
72
  import { BsWhatsNewEntryTagColor } from "./components/bs-whats-new-entry/bs-whats-new-entry";
65
73
  import { BsWhatsNewEntryTagColor as BsWhatsNewEntryTagColor1 } from "./components/bs-whats-new-entry/bs-whats-new-entry";
66
74
  export { BsAccordionSize } from "./components/bs-accordion/bs-accordion";
75
+ export { BsApp, BsAppRecent, BsAppSwitcherStatus } from "./components/bs-app-switcher/bs-app-switcher";
76
+ export { BsAppTileSize } from "./components/bs-app-tile/bs-app-tile";
67
77
  export { BsAttachmentType } from "./components/bs-attachment/bs-attachment";
68
78
  export { BsAvatarSize, BsAvatarType } from "./components/bs-avatar/bs-avatar";
69
79
  export { BsBadgeVariant } from "./components/bs-badge/bs-badge";
@@ -79,6 +89,8 @@ export { BsCheckboxSize as BsCheckboxSize1 } from "./components/bs-checkbox/bs-c
79
89
  export { BsChipFilterSize } from "./components/bs-chip/bs-chip-filter/bs-chip-filter";
80
90
  export { BsChipInformativeColor, BsChipInformativeSize } from "./components/bs-chip/bs-chip-informative/bs-chip-informative";
81
91
  export { BsChipInputSize } from "./components/bs-chip/bs-chip-input/bs-chip-input";
92
+ export { BsCommandPaletteInputDetail, BsCommandPaletteSelectDetail, BsCommandPaletteStatus } from "./components/bs-command-palette/bs-command-palette";
93
+ export { BsCompany } from "./components/bs-company-switcher/bs-company-switcher";
82
94
  export { BsComposerState, BsComposerVariant } from "./components/bs-composer/bs-composer";
83
95
  export { BsComposerStatusBannerType } from "./components/bs-composer-status-banner/bs-composer-status-banner";
84
96
  export { BsContainerSize } from "./components/bs-container/bs-container";
@@ -87,13 +99,17 @@ export { BsDataTableColumn, BsDataTableRow } from "./components/bs-data-table/bs
87
99
  export { BsDatepickerChange } from "./components/bs-datepicker/bs-datepicker";
88
100
  export { BsDialogSize } from "./components/bs-dialog/bs-dialog";
89
101
  export { BsDividerInset, BsDividerOrientation, BsDividerVariant } from "./components/bs-divider/bs-divider";
102
+ export { BsIconTileIntent } from "./components/bs-icon-tile/bs-icon-tile";
90
103
  export { BsErrorPageType } from "./components/bs-error-page/bs-error-page";
91
104
  export { BsFileUploadDirection } from "./components/bs-file-upload/bs-file-upload";
92
105
  export { BsFileUploadItemState } from "./components/bs-file-upload-item/bs-file-upload-item";
106
+ export { BsGlobalSearchSelectDetail, BsGlobalSearchStatus } from "./components/bs-global-search/bs-global-search";
93
107
  export { BsGridAlign } from "./components/bs-grid/bs-grid";
94
108
  export { BsIconButtonSize, BsIconButtonVariant } from "./components/bs-button/bs-icon-button/bs-icon-button";
95
- export { BsIconTileIntent, BsIconTileSize } from "./components/bs-icon-tile/bs-icon-tile";
109
+ export { BsIconTileIntent as BsIconTileIntent1, BsIconTileSize } from "./components/bs-icon-tile/bs-icon-tile";
110
+ export { BsShortcutGroup } from "./components/bs-keyboard-shortcuts/bs-keyboard-shortcuts";
96
111
  export { BsLogoBackground, BsLogoVariant } from "./components/bs-logo/bs-logo";
112
+ export { BsMegaMenuColumn, BsMegaMenuFeatured, BsMegaMenuItem, BsMegaMenuType } from "./components/bs-mega-menu/bs-mega-menu";
97
113
  export { BsMessageRole, BsMessageStatus } from "./components/bs-message/bs-message";
98
114
  export { BsNavigationHeaderAlignment } from "./components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header";
99
115
  export { BsOnboardingChecklistType, BsOnboardingLauncherLayout, BsOnboardingStep } from "./components/bs-onboarding-checklist/bs-onboarding-checklist";
@@ -261,6 +277,57 @@ export namespace Components {
261
277
  */
262
278
  "label": string;
263
279
  }
280
+ /**
281
+ * A full-width row for one app: a small icon tile, the app name and a description line (for example
282
+ * "Opened 10 min ago · Nordlys Handel AS"). Matches the Figma "Recent item" component (Default, Current,
283
+ * Hover, Pressed and Focus).
284
+ * The row is always a native button and only emits events; it never navigates. `current` marks the app you are in
285
+ * (`aria-current="true"`); `disabled` dims it, sets `aria-disabled` and removes it from the tab order.
286
+ * Built from `bs-icon-tile`. The icon is either a URL of a monochrome SVG in `icon` (painted with the theme's
287
+ * icon colour through a CSS mask) or any element in the default slot.
288
+ * ## When to use
289
+ * - A recently opened app, or a search result with a description, inside `bs-app-switcher`.
290
+ * ## When not to use
291
+ * - An app in a launcher grid -- use `bs-app-tile`.
292
+ * - A generic list row -- use `bs-list-item`.
293
+ * @prop --bs-app-recent-item-padding-x - Aliased to `--bs-spacing-100`.
294
+ * @prop --bs-app-recent-item-padding-y - Aliased to `--bs-spacing-100`.
295
+ * @prop --bs-app-recent-item-gap - Gap between icon and text. Aliased to `--bs-spacing-150`.
296
+ * @prop --bs-app-recent-item-radius - Aliased to `--bs-border-radius-100`.
297
+ * @prop --bs-app-recent-item-bg - Resting background. `transparent`.
298
+ * @prop --bs-app-recent-item-bg-hover - Aliased to `--bs-surface-hover`.
299
+ * @prop --bs-app-recent-item-bg-pressed - Aliased to `--bs-surface-pressed`.
300
+ * @prop --bs-app-recent-item-bg-current - Aliased to `--bs-surface-selected`.
301
+ * @prop --bs-app-recent-item-icon-bg - Icon square background. Aliased to `--bs-color-neutral-container`; `--bs-surface-base` while hovered, pressed or current.
302
+ * @prop --bs-app-recent-item-color - Name colour. Aliased to `--bs-text-default`.
303
+ * @prop --bs-app-recent-item-color-muted - Description colour. Aliased to `--bs-text-secondary`.
304
+ * @prop --bs-app-recent-item-color-disabled - Name, description and icon colour when disabled. Aliased to `--bs-text-on-disabled`.
305
+ * @prop --bs-app-recent-item-focus-ring - Focus ring colour. Aliased to `--bs-border-neutral-focus`.
306
+ */
307
+ interface BsAppRecentItem {
308
+ /**
309
+ * The app you are in right now: selected background and `aria-current="true"`.
310
+ * @default false
311
+ */
312
+ "current": boolean;
313
+ /**
314
+ * Second line under the name.
315
+ */
316
+ "description"?: string;
317
+ /**
318
+ * Dims the row, sets `aria-disabled` and takes it out of the tab order.
319
+ * @default false
320
+ */
321
+ "disabled": boolean;
322
+ /**
323
+ * URL of a monochrome SVG painted with the icon colour. The default slot overrides it.
324
+ */
325
+ "icon"?: string;
326
+ /**
327
+ * The app name, and the accessible name of the row together with the description.
328
+ */
329
+ "name": string;
330
+ }
264
331
  /**
265
332
  * The page frame: a header across the top, and below it a navigation | main | aside row, laid out
266
333
  * with CSS grid. The main column scrolls independently of the header and the side columns.
@@ -289,6 +356,217 @@ export namespace Components {
289
356
  */
290
357
  "fullHeight": boolean;
291
358
  }
359
+ /**
360
+ * The panel of an app launcher ("EG apps"): a header with a "Manage" action, a search field, your apps as a
361
+ * grid (or Recent plus All apps), search results, and a footer link to browse all products. It also has
362
+ * no-results, loading, error and empty states. Matches the Figma "App switcher" (states Default, With recent,
363
+ * Searching, No results, Loading, Error and Empty).
364
+ * This is the panel only. To open it from a button, wrap it in `bs-popover`.
365
+ * Built from `bs-card` (panel surface), `bs-input` (search), `bs-app-tile` and `bs-app-recent-item` (apps),
366
+ * `bs-empty-state` (no results, error, empty), `bs-skeleton` (loading), `bs-button` (Clear search, Try
367
+ * again, Request access) and `bs-divider`. "Manage" and "Browse all" are native links (or buttons when
368
+ * there is no URL): `bs-button` has no link mode and the library has no link component.
369
+ * ## When to use
370
+ * - Letting a user jump between the products they have access to, from an app header.
371
+ * ## When not to use
372
+ * - Navigation inside one app -- use `bs-menu` or the app shell navigation.
373
+ * - Switching company -- use `bs-company-switcher`.
374
+ * `apps` and `recent` are arrays and must be set as JS properties. Each app's `icon` is the URL of a
375
+ * monochrome SVG. You own the data: listen to `bsAppSelect` (cancelable: `preventDefault()` cancels the
376
+ * originating click), and drive `status` and `query` yourself. An empty `apps` list while `status` is
377
+ * `ready` shows the empty state.
378
+ * @prop --bs-app-switcher-width - Panel width. Defaults to `360px` (Figma); capped at the viewport.
379
+ * @prop --bs-app-switcher-radius - Panel corner radius. Aliased to `--bs-border-radius-150`.
380
+ * @prop --bs-app-switcher-bg - Panel background. Aliased to `--bs-surface-base`.
381
+ * @prop --bs-app-switcher-border-color - Panel border. Aliased to `--bs-border-default`.
382
+ * @prop --bs-app-switcher-shadow - Panel shadow (elevation level 4). Aliased to the `--bs-shadow-*` position and blur tokens and `--bs-elevation-higher`.
383
+ * @prop --bs-app-switcher-padding - Side padding of the content. Aliased to `--bs-spacing-150`.
384
+ * @prop --bs-app-switcher-text-color - Heading and links in the header. Aliased to `--bs-text-default`.
385
+ * @prop --bs-app-switcher-header-color - Group headers. Aliased to `--bs-text-secondary`.
386
+ * @prop --bs-app-switcher-link-color - Browse link. Aliased to `--bs-text-action`.
387
+ * @prop --bs-app-switcher-focus-ring - Link focus ring. Aliased to `--bs-border-neutral-focus`.
388
+ */
389
+ interface BsAppSwitcher {
390
+ /**
391
+ * Header of the all apps group.
392
+ * @default 'All apps'
393
+ */
394
+ "allAppsLabel": string;
395
+ /**
396
+ * The apps the user can open. JS property only (an array cannot be an attribute).
397
+ * @default []
398
+ */
399
+ "apps": BsApp[];
400
+ /**
401
+ * URL of the Browse all link. Without it it is a button that only fires `bsBrowseAll`.
402
+ */
403
+ "browseHref"?: string;
404
+ /**
405
+ * Text of the footer link.
406
+ * @default 'Browse all EG products'
407
+ */
408
+ "browseLabel": string;
409
+ /**
410
+ * Text of the Clear search button.
411
+ * @default 'Clear search'
412
+ */
413
+ "clearLabel": string;
414
+ /**
415
+ * `id` of the app you are in: selected background and `aria-current`.
416
+ */
417
+ "currentId"?: string;
418
+ /**
419
+ * Empty description.
420
+ * @default 'Ask your administrator for access, or browse all EG products to see what’s available.'
421
+ */
422
+ "emptyDescription": string;
423
+ /**
424
+ * Empty heading (no apps assigned).
425
+ * @default 'No apps assigned yet'
426
+ */
427
+ "emptyHeading": string;
428
+ /**
429
+ * Error description.
430
+ * @default 'Check your connection and try again. Your work in the current app is not affected.'
431
+ */
432
+ "errorDescription": string;
433
+ /**
434
+ * Error heading.
435
+ * @default 'Couldn’t load your apps'
436
+ */
437
+ "errorHeading": string;
438
+ /**
439
+ * Panel heading.
440
+ * @default 'EG apps'
441
+ */
442
+ "heading": string;
443
+ /**
444
+ * Announced while loading.
445
+ * @default 'Loading apps…'
446
+ */
447
+ "loadingLabel": string;
448
+ /**
449
+ * URL of the Manage link. Without it Manage is a button that only fires `bsManage`.
450
+ */
451
+ "manageHref"?: string;
452
+ /**
453
+ * Text of the Manage link.
454
+ * @default 'Manage'
455
+ */
456
+ "manageLabel": string;
457
+ /**
458
+ * No-results description.
459
+ * @default 'Check the spelling, or browse all EG products to find more apps.'
460
+ */
461
+ "noResultsDescription": string;
462
+ /**
463
+ * No-results heading. `{query}` is replaced by the query.
464
+ * @default 'No apps match “{query}”'
465
+ */
466
+ "noResultsHeading": string;
467
+ /**
468
+ * The search text. Mutable: typing, Escape and "Clear search" update it.
469
+ * @default ''
470
+ */
471
+ "query": string;
472
+ /**
473
+ * Recently opened apps, most recent first. When there are any, the panel shows Recent and All apps. JS property only.
474
+ * @default []
475
+ */
476
+ "recent": BsAppRecent[];
477
+ /**
478
+ * Header of the recent group.
479
+ * @default 'Recent'
480
+ */
481
+ "recentLabel": string;
482
+ /**
483
+ * Text of the Request access button.
484
+ * @default 'Request access'
485
+ */
486
+ "requestAccessLabel": string;
487
+ /**
488
+ * Search header with one result ("1 result").
489
+ * @default 'result'
490
+ */
491
+ "resultLabel": string;
492
+ /**
493
+ * Search header with several results ("2 results").
494
+ * @default 'results'
495
+ */
496
+ "resultsLabel": string;
497
+ /**
498
+ * Text of the Try again button.
499
+ * @default 'Try again'
500
+ */
501
+ "retryLabel": string;
502
+ /**
503
+ * Placeholder (and accessible name) of the search field.
504
+ * @default 'Find an app'
505
+ */
506
+ "searchPlaceholder": string;
507
+ /**
508
+ * `loading` shows skeleton tiles, `error` the failure state.
509
+ * @default 'ready'
510
+ */
511
+ "status": BsAppSwitcherStatus;
512
+ /**
513
+ * Header of the default group when there are no recent apps.
514
+ * @default 'Your apps'
515
+ */
516
+ "yourAppsLabel": string;
517
+ }
518
+ /**
519
+ * One app in an app launcher: an icon tile above a short label. Matches the Figma "App tile" component
520
+ * (Size Grid and Compact, each Default, Hover, Pressed, Focus, Current and Disabled).
521
+ * The tile is always a native button and only emits events; it never navigates. Hover, pressed and focus come from the
522
+ * native element; `current` marks the app you are in (`aria-current="true"`); `disabled` dims it, sets
523
+ * `aria-disabled` and removes it from the tab order.
524
+ * Built from `bs-icon-tile`. The icon is either a URL of a monochrome SVG in `icon` (painted with the
525
+ * theme's icon colour through a CSS mask, so it follows light and dark mode), or any element in the default
526
+ * slot (an `<svg>` drawn with `currentColor`).
527
+ * ## When to use
528
+ * - An app in a launcher grid, usually inside `bs-app-switcher`.
529
+ * ## When not to use
530
+ * - A row with a description or "recently opened" line -- use `bs-app-recent-item`.
531
+ * - A command in a menu -- use `bs-menu-item`.
532
+ * @prop --bs-app-tile-icon-size - Size of the icon square. `44px` in `grid` (Figma) and `--bs-sizing-400` in `compact`.
533
+ * @prop --bs-app-tile-padding - Padding inside the tile. Aliased to `--bs-spacing-150` (`grid`) or `--bs-spacing-100` (`compact`).
534
+ * @prop --bs-app-tile-gap - Gap between icon and label. Aliased to `--bs-spacing-150` (`grid`) or `--bs-spacing-50` (`compact`).
535
+ * @prop --bs-app-tile-radius - Corner radius. Aliased to `--bs-border-radius-100`.
536
+ * @prop --bs-app-tile-bg - Resting background. `transparent`.
537
+ * @prop --bs-app-tile-bg-hover - Aliased to `--bs-surface-hover`.
538
+ * @prop --bs-app-tile-bg-pressed - Aliased to `--bs-surface-pressed`.
539
+ * @prop --bs-app-tile-bg-current - Aliased to `--bs-surface-selected`.
540
+ * @prop --bs-app-tile-icon-bg - Icon square background. Aliased to `--bs-color-neutral-container`; `--bs-surface-base` while hovered, pressed or current.
541
+ * @prop --bs-app-tile-color - Label colour. Aliased to `--bs-text-default`.
542
+ * @prop --bs-app-tile-color-disabled - Label and icon colour when disabled. Aliased to `--bs-text-on-disabled`.
543
+ * @prop --bs-app-tile-focus-ring - Focus ring colour. Aliased to `--bs-border-neutral-focus`.
544
+ */
545
+ interface BsAppTile {
546
+ /**
547
+ * The app you are in right now: selected background and `aria-current="true"`.
548
+ * @default false
549
+ */
550
+ "current": boolean;
551
+ /**
552
+ * Dims the tile, sets `aria-disabled` and takes it out of the tab order.
553
+ * @default false
554
+ */
555
+ "disabled": boolean;
556
+ /**
557
+ * URL of a monochrome SVG painted with the icon colour. The default slot overrides it.
558
+ */
559
+ "icon"?: string;
560
+ /**
561
+ * The app name, shown under the icon and used as the accessible name.
562
+ */
563
+ "name": string;
564
+ /**
565
+ * `grid` is the 3-column launcher tile; `compact` the smaller 4-column one.
566
+ * @default 'grid'
567
+ */
568
+ "size": BsAppTileSize;
569
+ }
292
570
  /**
293
571
  * A single file attachment preview for `bs-composer` -- an image thumbnail, or a filename card
294
572
  * with a colored file-type badge (PDF/Document), with an optional upload-in-progress spinner and
@@ -1307,6 +1585,321 @@ export namespace Components {
1307
1585
  */
1308
1586
  "sourceName"?: string;
1309
1587
  }
1588
+ /**
1589
+ * A Ctrl+K command palette: a modal with a search field, grouped commands, navigation and records, a
1590
+ * no-results view and a keyboard-hint footer. The data, the filtering, the command registry and the
1591
+ * recent-items storage are all yours: you slot `bs-search-item`s into the sections and set `status`.
1592
+ * Built from a native `<dialog>` (opened with `showModal()`, so focus is trapped, the page behind is inert
1593
+ * and the backdrop is the scrim), `bs-input` (type="search"), `bs-search-item`, `bs-key` (footer hints and
1594
+ * the Esc cap), `bs-chip-informative` (the scope chip) and `bs-spinner` (loading). Slot a `bs-key-caps` with
1595
+ * `slot="trailing"` inside an item to show a command's shortcut.
1596
+ * ## When to use
1597
+ * - An app-wide "do anything" entry point opened with a hotkey: run commands, navigate, open records.
1598
+ * ## When not to use
1599
+ * - A plain search box with a dropdown -- use `bs-global-search`.
1600
+ * - A small list of actions on one control -- use `bs-menu`.
1601
+ * A `>` as the first character of the field switches to commands-only mode (`commandsOnly`, reflected as
1602
+ * `commands-only`). The component filters nothing: listen to `bsInput`, swap the slotted items, set `status`.
1603
+ * Nested (sub-command) palettes are a consumer pattern: swap the slotted commands and set `scopeLabel`.
1604
+ * @prop --bs-command-palette-width - Panel width. Defaults to `640px` (Figma); capped to the viewport.
1605
+ * @prop --bs-command-palette-top - Distance from the top of the viewport. Defaults to `12vh`.
1606
+ * @prop --bs-command-palette-max-height - Max height of the results area. Defaults to `60vh`.
1607
+ * @prop --bs-command-palette-radius - Aliased to `--bs-border-radius-150`.
1608
+ * @prop --bs-command-palette-bg - Panel background. Aliased to `--bs-surface-base`.
1609
+ * @prop --bs-command-palette-shadow - Figma elevation level 4: `0 8px 16px` in `--bs-elevation-higher` (stronger in dark mode).
1610
+ * @prop --bs-command-palette-overlay - Scrim colour. Aliased to `--bs-surface-overlay`.
1611
+ * @prop --bs-command-palette-footer-bg - Aliased to `--bs-surface-container`.
1612
+ * @prop --bs-command-palette-divider-color - Aliased to `--bs-border-default`.
1613
+ * @prop --bs-command-palette-header-border-color - Aliased to `--bs-border-neutral-container`.
1614
+ * @prop --bs-command-palette-header-color - Aliased to `--bs-text-muted`.
1615
+ * @prop --bs-command-palette-hint-color - Aliased to `--bs-text-secondary`.
1616
+ * @prop --bs-command-palette-z-index - Aliased to `--bs-z-index-modal`.
1617
+ */
1618
+ interface BsCommandPalette {
1619
+ /**
1620
+ * @default 'All results'
1621
+ */
1622
+ "allResultsLabel": string;
1623
+ /**
1624
+ * Closes the palette and restores focus.
1625
+ */
1626
+ "close": () => Promise<void>;
1627
+ /**
1628
+ * @default 'Close'
1629
+ */
1630
+ "closeLabel": string;
1631
+ /**
1632
+ * @default 'Commands'
1633
+ */
1634
+ "commandsLabel": string;
1635
+ /**
1636
+ * Derived from `value` (it starts with `>`). Read-only; set `value` instead.
1637
+ * @default false
1638
+ */
1639
+ "commandsOnly": boolean;
1640
+ /**
1641
+ * @default 'Commands only'
1642
+ */
1643
+ "commandsOnlyLabel": string;
1644
+ /**
1645
+ * A suggested correction; the "Did you mean" line shows while it is set.
1646
+ */
1647
+ "didYouMean"?: string;
1648
+ /**
1649
+ * @default 'Did you mean'
1650
+ */
1651
+ "didYouMeanLabel": string;
1652
+ /**
1653
+ * @default 'Check the spelling, or search records instead.'
1654
+ */
1655
+ "emptyDescription": string;
1656
+ /**
1657
+ * No-results view copy. Include the query in `emptyHeading` yourself.
1658
+ * @default 'No commands or records'
1659
+ */
1660
+ "emptyHeading": string;
1661
+ /**
1662
+ * Global shortcut that toggles the palette, e.g. `mod+k` (`mod` is Cmd on Mac, Ctrl elsewhere). Empty = off.
1663
+ * @default ''
1664
+ */
1665
+ "hotkey": string;
1666
+ /**
1667
+ * Keep the palette open after an item is chosen.
1668
+ * @default false
1669
+ */
1670
+ "keepOpenOnSelect": boolean;
1671
+ /**
1672
+ * Accessible name of the dialog.
1673
+ * @default 'Command palette'
1674
+ */
1675
+ "label": string;
1676
+ /**
1677
+ * Accessible name of the results listbox.
1678
+ * @default 'Results'
1679
+ */
1680
+ "listLabel": string;
1681
+ /**
1682
+ * Text of the loading row.
1683
+ * @default 'Loading…'
1684
+ */
1685
+ "loadingLabel": string;
1686
+ /**
1687
+ * Footer hint texts.
1688
+ * @default 'Navigate'
1689
+ */
1690
+ "navigateLabel": string;
1691
+ /**
1692
+ * @default 'Navigation'
1693
+ */
1694
+ "navigationLabel": string;
1695
+ /**
1696
+ * Whether the palette is open.
1697
+ * @default false
1698
+ */
1699
+ "open": boolean;
1700
+ /**
1701
+ * @default 'Open'
1702
+ */
1703
+ "openLabel": string;
1704
+ /**
1705
+ * Placeholder of the field.
1706
+ * @default 'Type a command or search…'
1707
+ */
1708
+ "placeholder": string;
1709
+ /**
1710
+ * Section headers.
1711
+ * @default 'Recent'
1712
+ */
1713
+ "recentLabel": string;
1714
+ /**
1715
+ * @default 'Records'
1716
+ */
1717
+ "recordsLabel": string;
1718
+ /**
1719
+ * Nested scope: shows this text as a chip before the field. Backspace on an empty field emits `bsScopeExit`.
1720
+ */
1721
+ "scopeLabel"?: string;
1722
+ /**
1723
+ * Opens the palette.
1724
+ */
1725
+ "show": () => Promise<void>;
1726
+ /**
1727
+ * Shows the footer of keyboard hints.
1728
+ * @default true
1729
+ */
1730
+ "showFooter": boolean;
1731
+ /**
1732
+ * Which view to show. You choose it; nothing is inferred from `value`. `default` and `results` render the same; they differ for screen readers only.
1733
+ * @default 'default'
1734
+ */
1735
+ "status": BsCommandPaletteStatus;
1736
+ /**
1737
+ * @default 'Suggested'
1738
+ */
1739
+ "suggestedLabel": string;
1740
+ /**
1741
+ * @default 'Try instead'
1742
+ */
1743
+ "tryInsteadLabel": string;
1744
+ /**
1745
+ * The field value. Two-way. A leading `>` means commands-only mode.
1746
+ * @default ''
1747
+ */
1748
+ "value": string;
1749
+ }
1750
+ /**
1751
+ * A plain text entry in a mega menu: one line, no icon. Matches the Figma "Compact menu block" component
1752
+ * (Default, Hover, Pressed and Focused).
1753
+ * The block is always a native button and only emits events; it never navigates. Hover, pressed and focus come from the
1754
+ * native element.
1755
+ * ## When to use
1756
+ * - A dense list of destinations in a mega menu, usually inside `bs-mega-menu` with `type="compact"`.
1757
+ * ## When not to use
1758
+ * - A destination that needs an icon or a description -- use `bs-menu-block`.
1759
+ * - A command in a dropdown list -- use `bs-menu-item`.
1760
+ * @prop --bs-compact-menu-block-padding - Padding inside the block. Aliased to `--bs-spacing-100`.
1761
+ * @prop --bs-compact-menu-block-radius - Corner radius. Aliased to `--bs-border-radius-100`.
1762
+ * @prop --bs-compact-menu-block-bg - Resting background. `transparent`.
1763
+ * @prop --bs-compact-menu-block-bg-hover - Aliased to `--bs-surface-hover`.
1764
+ * @prop --bs-compact-menu-block-bg-pressed - Aliased to `--bs-surface-pressed`.
1765
+ * @prop --bs-compact-menu-block-color - Text colour. Aliased to `--bs-text-default`.
1766
+ * @prop --bs-compact-menu-block-focus-ring - Focus ring colour. Aliased to `--bs-border-info`.
1767
+ */
1768
+ interface BsCompactMenuBlock {
1769
+ /**
1770
+ * The text, and the accessible name.
1771
+ */
1772
+ "name": string;
1773
+ }
1774
+ /**
1775
+ * A company (tenant) switcher: a trigger showing the current company, and a panel to find and switch to
1776
+ * another one. The panel has a search field, the current / recent / all groups, a filtered "matches" view,
1777
+ * a no-results state and a footer with "Manage Companies" and "Add companies" actions.
1778
+ * Built from `bs-popover` (open/close, Escape, outside click, flipping), `bs-card` (panel surface),
1779
+ * `bs-input` (search), `bs-list-item` (rows), `bs-avatar` (initials), `bs-spinner` (switching),
1780
+ * `bs-empty-state` (no results), `bs-divider` and `bs-button` (footer). The trigger is a native `<button>`:
1781
+ * no `bs-*` component is a composite "avatar + two lines + chevron" button.
1782
+ * ## When to use
1783
+ * - An app header or side navigation where a user belongs to several companies and works in one at a time.
1784
+ * ## When not to use
1785
+ * - Picking a value in a form -- use `bs-input type="dropdown"`.
1786
+ * - Switching between a handful of fixed views -- use `bs-tab`.
1787
+ * `companies` is an array and must be set as a JS property. You own the data and the switch itself: listen to
1788
+ * `bsCompanySwitch`, do the work, then update `currentId`. To show the switching state set `switchingId`
1789
+ * (from the `bsCompanySwitch` handler, or later) and the panel stays open until you clear it and set `open`
1790
+ * to `false`. If `switchingId` is not set by the time the handler returns, the panel closes immediately.
1791
+ * @prop --bs-company-switcher-width - Trigger width. Defaults to `260px` (Figma); capped at 100%.
1792
+ * @prop --bs-company-switcher-panel-width - Panel width. Defaults to `360px` (Figma); capped at the viewport.
1793
+ * @prop --bs-company-switcher-radius - Trigger and panel corner radius. Aliased to `--bs-border-radius-100`.
1794
+ * @prop --bs-company-switcher-trigger-bg - Trigger resting background. `transparent`.
1795
+ * @prop --bs-company-switcher-trigger-bg-hover - Aliased to `--bs-surface-hover`.
1796
+ * @prop --bs-company-switcher-trigger-bg-pressed - Aliased to `--bs-surface-pressed`.
1797
+ * @prop --bs-company-switcher-trigger-bg-open - Aliased to `--bs-surface-selected`.
1798
+ * @prop --bs-company-switcher-focus-ring - Trigger focus outline. Aliased to `--bs-border-neutral-focus`.
1799
+ * @prop --bs-company-switcher-panel-bg - Panel background. Aliased to `--bs-surface-base`.
1800
+ * @prop --bs-company-switcher-panel-border-color - Panel border. Aliased to `--bs-border-default`.
1801
+ * @prop --bs-company-switcher-shadow - Panel shadow. Aliased to `--bs-shadow-md`.
1802
+ * @prop --bs-company-switcher-max-height - Maximum height of the scrolling list. Defaults to `320px`.
1803
+ * @prop --bs-company-switcher-text-color - Names. Aliased to `--bs-text-default`.
1804
+ * @prop --bs-company-switcher-muted-color - Org. numbers. Aliased to `--bs-text-secondary`.
1805
+ * @prop --bs-company-switcher-header-color - Group headers. Aliased to `--bs-text-muted`.
1806
+ * @prop --bs-company-switcher-z-index - Panel stacking. Aliased to `--bs-z-index-popover`.
1807
+ */
1808
+ interface BsCompanySwitcher {
1809
+ /**
1810
+ * Text of the "Add companies" footer button.
1811
+ * @default 'Add companies'
1812
+ */
1813
+ "addLabel": string;
1814
+ /**
1815
+ * Header of the all companies group (the count is appended).
1816
+ * @default 'All companies'
1817
+ */
1818
+ "allLabel": string;
1819
+ /**
1820
+ * The companies the user can switch between. JS property only (an array cannot be an attribute).
1821
+ * @default []
1822
+ */
1823
+ "companies": BsCompany[];
1824
+ /**
1825
+ * `id` of the current company.
1826
+ */
1827
+ "currentId"?: string;
1828
+ /**
1829
+ * Header of the current company group.
1830
+ * @default 'Current'
1831
+ */
1832
+ "currentLabel": string;
1833
+ /**
1834
+ * No-results description.
1835
+ * @default 'Check the spelling, or search by org. number.'
1836
+ */
1837
+ "emptyDescription": string;
1838
+ /**
1839
+ * No-results heading. `{query}` is replaced by the query.
1840
+ * @default 'No companies match “{query}”'
1841
+ */
1842
+ "emptyHeading": string;
1843
+ /**
1844
+ * Accessible name of the company listbox.
1845
+ * @default 'Companies'
1846
+ */
1847
+ "listLabel": string;
1848
+ /**
1849
+ * Text of the "Manage Companies" footer button.
1850
+ * @default 'Manage Companies'
1851
+ */
1852
+ "manageLabel": string;
1853
+ /**
1854
+ * Header of the search view when there is one match ("1 match").
1855
+ * @default 'match'
1856
+ */
1857
+ "matchLabel": string;
1858
+ /**
1859
+ * Header of the search view when there are several matches ("3 matches").
1860
+ * @default 'matches'
1861
+ */
1862
+ "matchesLabel": string;
1863
+ /**
1864
+ * Whether the panel is open.
1865
+ * @default false
1866
+ */
1867
+ "open": boolean;
1868
+ /**
1869
+ * Prefix of the org. number, e.g. "Org. no.".
1870
+ * @default 'Org. no.'
1871
+ */
1872
+ "orgNumberLabel": string;
1873
+ /**
1874
+ * Text of the trigger when there is no current company.
1875
+ * @default 'Select a company'
1876
+ */
1877
+ "placeholderLabel": string;
1878
+ /**
1879
+ * `id`s of recently used companies, most recent first. The current company is not repeated in the Recent group.
1880
+ * @default []
1881
+ */
1882
+ "recentIds": string[];
1883
+ /**
1884
+ * Header of the recent companies group.
1885
+ * @default 'Recent'
1886
+ */
1887
+ "recentLabel": string;
1888
+ /**
1889
+ * Placeholder (and accessible name) of the search field.
1890
+ * @default 'Find a company or org. number'
1891
+ */
1892
+ "searchPlaceholder": string;
1893
+ /**
1894
+ * `id` of the company being switched to. Shows the switching state: a spinner in the trigger and on that row.
1895
+ */
1896
+ "switchingId"?: string;
1897
+ /**
1898
+ * Trigger subtitle while switching.
1899
+ * @default 'Switching…'
1900
+ */
1901
+ "switchingLabel": string;
1902
+ }
1310
1903
  /**
1311
1904
  * A chat composer input for Genie AI-style conversational interfaces: a text field
1312
1905
  * plus an attach button, a mic/voice-recording toggle, and a single primary action button whose
@@ -1850,6 +2443,43 @@ export namespace Components {
1850
2443
  */
1851
2444
  "variant": BsDividerVariant;
1852
2445
  }
2446
+ /**
2447
+ * A centered "nothing to show" block: an icon tile, a heading, a description and an optional action.
2448
+ * Used for empty lists, "no results" and error states inside a panel, card or page section.
2449
+ * Built from `bs-icon-tile` (and, in your `action` slot, usually a `bs-button`).
2450
+ * The component has no role. Live regions belong on a wrapper you control (e.g. `role="status"` on the
2451
+ * element that stays in the DOM while this block appears and disappears).
2452
+ * ## When to use
2453
+ * - A list, table or search result that has nothing to show, or failed to load.
2454
+ * ## When not to use
2455
+ * - A full-page error with a status code -- use `bs-error-page`.
2456
+ * - A transient message -- use `bs-toast` or `bs-snackbar`.
2457
+ * @prop --bs-empty-state-padding-y - Vertical padding. Aliased to `--bs-spacing-700` (56px).
2458
+ * @prop --bs-empty-state-padding-x - Horizontal padding. Aliased to `--bs-spacing-300` (24px).
2459
+ * @prop --bs-empty-state-gap - Gap between tile, heading, description and action. Aliased to `--bs-spacing-150`.
2460
+ * @prop --bs-empty-state-heading-color - Aliased to `--bs-text-default`.
2461
+ * @prop --bs-empty-state-description-color - Aliased to `--bs-text-secondary`.
2462
+ */
2463
+ interface BsEmptyState {
2464
+ /**
2465
+ * The description text. The default slot overrides it.
2466
+ */
2467
+ "description"?: string;
2468
+ /**
2469
+ * The heading text.
2470
+ */
2471
+ "heading"?: string;
2472
+ /**
2473
+ * Heading level, 2 to 6 (renders `h2`..`h6`). Pick the one that fits the page outline.
2474
+ * @default 3
2475
+ */
2476
+ "headingLevel": 2 | 3 | 4 | 5 | 6;
2477
+ /**
2478
+ * Colour and default glyph of the icon tile. Use `error` for failures.
2479
+ * @default 'default'
2480
+ */
2481
+ "intent": BsIconTileIntent;
2482
+ }
1853
2483
  /**
1854
2484
  * A full-block page for when the user can't get to what they asked for: page not found (404), a server
1855
2485
  * error (500), no access (403), planned maintenance, or no internet connection. Matches the Figma
@@ -2006,8 +2636,163 @@ export namespace Components {
2006
2636
  "thumbnailSrc"?: string;
2007
2637
  }
2008
2638
  /**
2009
- * A CSS grid layout wrapper. Children are placed in equal-width columns with a token-based gap.
2010
- * `columns` takes either a number (`"3"` becomes `repeat(3, minmax(0, 1fr))`) or any raw
2639
+ * A global search combobox: a search field with a dropdown panel of suggestions, results, an empty state
2640
+ * or an error state, plus a keyboard-hint footer. The data, the filtering and the recent-search storage
2641
+ * are all yours: you slot `bs-search-item`s into the sections and tell the component which `status` to show.
2642
+ * Built from `bs-input` (type="search"), `bs-search-item`, `bs-empty-state` (and so `bs-icon-tile`),
2643
+ * `bs-button` and `bs-key` (the footer keycaps).
2644
+ * ## When to use
2645
+ * - An app-wide "find anything" field with recent searches, jump-to shortcuts and grouped results.
2646
+ * ## When not to use
2647
+ * - Filtering the list or table that is already on screen -- use `bs-input type="search"`.
2648
+ * - A list of commands or actions -- use `bs-menu`.
2649
+ * - The complete result set -- link to a full search results page ("See all results").
2650
+ * Put `bs-search-item` children in the light DOM with `slot="recent"`, `slot="jump-to"`,
2651
+ * `slot="top-matches"` or `slot="search-in"`. A section (and its header) is only rendered when its slot has
2652
+ * content. Up/Down arrows move a highlight through the visible items; focus never leaves the field.
2653
+ * Known limit: the items are in your light DOM and the combobox in this shadow root, so
2654
+ * `aria-activedescendant` (an id reference) does not resolve across that boundary in every browser; the
2655
+ * highlighted option also gets `aria-selected="true"`.
2656
+ * @prop --bs-global-search-width - Field and panel width. Defaults to `480px` (Figma); capped at 100%.
2657
+ * @prop --bs-global-search-panel-radius - Aliased to `--bs-border-radius-100`.
2658
+ * @prop --bs-global-search-panel-padding - Aliased to `--bs-spacing-100`.
2659
+ * @prop --bs-global-search-gap - Gap between sections, and between the field and the panel. Aliased to `--bs-spacing-100`.
2660
+ * @prop --bs-global-search-panel-bg - Panel background. Aliased to `--bs-surface-base`.
2661
+ * @prop --bs-global-search-shadow - Panel shadow: Figma elevation level 3 (`0 4px 8px` in `--bs-elevation-high`, 10% black in light mode and 30% in dark mode).
2662
+ * @prop --bs-global-search-z-index - Panel stacking. Aliased to `--bs-z-index-dropdown`.
2663
+ * @prop --bs-global-search-divider-color - Footer divider. Aliased to `--bs-border-default`.
2664
+ * @prop --bs-global-search-header-border-color - Section header underline. Aliased to `--bs-border-neutral-container`.
2665
+ * @prop --bs-global-search-header-color - Section header text. Aliased to `--bs-text-muted`.
2666
+ * @prop --bs-global-search-hint-color - Footer hint text. Aliased to `--bs-text-secondary`.
2667
+ */
2668
+ interface BsGlobalSearch {
2669
+ /**
2670
+ * Text of the footer button that clears recent searches.
2671
+ * @default 'Clear recent'
2672
+ */
2673
+ "clearRecentLabel": string;
2674
+ /**
2675
+ * Text of the empty state's action.
2676
+ * @default 'Clear search'
2677
+ */
2678
+ "clearSearchLabel": string;
2679
+ /**
2680
+ * Footer hint text after the Esc key.
2681
+ * @default 'Close'
2682
+ */
2683
+ "closeLabel": string;
2684
+ /**
2685
+ * Disables the field; the panel cannot open.
2686
+ * @default false
2687
+ */
2688
+ "disabled": boolean;
2689
+ /**
2690
+ * Description of the built-in empty state.
2691
+ * @default 'Try a different search.'
2692
+ */
2693
+ "emptyDescription": string;
2694
+ /**
2695
+ * Heading of the built-in empty state.
2696
+ * @default 'No results'
2697
+ */
2698
+ "emptyHeading": string;
2699
+ /**
2700
+ * Description of the built-in error state.
2701
+ * @default 'We couldn’t reach the server. Your query is kept — try again in a moment.'
2702
+ */
2703
+ "errorDescription": string;
2704
+ /**
2705
+ * Heading of the built-in error state.
2706
+ * @default 'Search isn’t available right now'
2707
+ */
2708
+ "errorHeading": string;
2709
+ /**
2710
+ * Footer hint text after the Enter key (results view).
2711
+ * @default 'Full results'
2712
+ */
2713
+ "fullResultsLabel": string;
2714
+ /**
2715
+ * Header of the `jump-to` section.
2716
+ * @default 'Jump to'
2717
+ */
2718
+ "jumpToLabel": string;
2719
+ /**
2720
+ * Accessible name of the search field. Falls back to the placeholder. `bs-input` has no aria-label prop, so this names the combobox wrapper.
2721
+ */
2722
+ "label"?: string;
2723
+ /**
2724
+ * Accessible name of the suggestions listbox.
2725
+ * @default 'Search suggestions'
2726
+ */
2727
+ "listLabel": string;
2728
+ /**
2729
+ * Footer hint text after the arrow keys.
2730
+ * @default 'Navigate'
2731
+ */
2732
+ "navigateLabel": string;
2733
+ /**
2734
+ * Whether the dropdown panel is open. Opens on focus, click and typing; closes on Escape, outside click and selection.
2735
+ * @default false
2736
+ */
2737
+ "open": boolean;
2738
+ /**
2739
+ * Placeholder of the field (also its accessible name unless `label` is set).
2740
+ * @default 'Search customers, orders, products…'
2741
+ */
2742
+ "placeholder": string;
2743
+ /**
2744
+ * Header of the `recent` section.
2745
+ * @default 'Recent searches'
2746
+ */
2747
+ "recentLabel": string;
2748
+ /**
2749
+ * Text of the error state's action.
2750
+ * @default 'Try again'
2751
+ */
2752
+ "retryLabel": string;
2753
+ /**
2754
+ * Header of the `search-in` section.
2755
+ * @default 'Search in'
2756
+ */
2757
+ "searchInLabel": string;
2758
+ /**
2759
+ * Footer hint text after the Enter key (default view).
2760
+ * @default 'Search'
2761
+ */
2762
+ "searchLabel": string;
2763
+ /**
2764
+ * Text of the footer button of the results view, when `totalResults` is not set.
2765
+ * @default 'See all results'
2766
+ */
2767
+ "seeAllLabel": string;
2768
+ /**
2769
+ * Shows the footer (hints and the Clear recent / See all button) for the `default` and `results` views.
2770
+ * @default true
2771
+ */
2772
+ "showFooter": boolean;
2773
+ /**
2774
+ * Which view the panel shows. You choose it; nothing is inferred from `value`.
2775
+ * @default 'default'
2776
+ */
2777
+ "status": BsGlobalSearchStatus;
2778
+ /**
2779
+ * Header of the `top-matches` section.
2780
+ * @default 'Top matches'
2781
+ */
2782
+ "topMatchesLabel": string;
2783
+ /**
2784
+ * Total number of results (status `results`): shown as "See all {n} results" and announced to screen readers.
2785
+ */
2786
+ "totalResults"?: number;
2787
+ /**
2788
+ * The query. Two-way with the field.
2789
+ * @default ''
2790
+ */
2791
+ "value": string;
2792
+ }
2793
+ /**
2794
+ * A CSS grid layout wrapper. Children are placed in equal-width columns with a token-based gap.
2795
+ * `columns` takes either a number (`"3"` becomes `repeat(3, minmax(0, 1fr))`) or any raw
2011
2796
  * `grid-template-columns` value (`"200px 1fr"`). `minColumnWidth` is the responsive mechanism: it
2012
2797
  * switches to `repeat(auto-fit, minmax(min(100%, X), 1fr))`, so the column count adapts to the
2013
2798
  * container width and `columns` is ignored. There are deliberately no per-breakpoint props in v1.
@@ -2081,6 +2866,10 @@ export namespace Components {
2081
2866
  * @default false
2082
2867
  */
2083
2868
  "disabled": boolean;
2869
+ /**
2870
+ * Makes this a toggle button: sets `aria-pressed` on the inner `<button>` to `true`/`false`. Leave it unset (the default) for a plain action button, which then has no `aria-pressed` at all. The component does not toggle itself; the owner flips this on click. Put the toggle's state in the icon (e.g. a filled star), not in the label, which should stay the same.
2871
+ */
2872
+ "pressed"?: boolean;
2084
2873
  /**
2085
2874
  * Sizing scale. `xs` (16px, an 8px icon) is a distinct, much smaller tier meant for compact chip/tag "remove" controls, not just a smaller toolbar button -- verified against a separate Figma redline (EG BrandSync UI Kit v1.5, node 20731:18427) from the one `sm`/`md`/`lg` were built against.
2086
2875
  * @default 'md'
@@ -2116,7 +2905,7 @@ export namespace Components {
2116
2905
  * Colour and default glyph. `brand` uses the brand colours; `information` the info palette.
2117
2906
  * @default 'default'
2118
2907
  */
2119
- "intent": BsIconTileIntent;
2908
+ "intent": BsIconTileIntent1;
2120
2909
  /**
2121
2910
  * Accessible name. When set, the tile is exposed as an image with this name; when empty it is decorative and hidden from assistive tech.
2122
2911
  */
@@ -2309,6 +3098,151 @@ export namespace Components {
2309
3098
  */
2310
3099
  "value": string;
2311
3100
  }
3101
+ /**
3102
+ * One key of a keyboard shortcut, e.g. `Ctrl`, `K` or `Esc` -- rendered as a `<kbd>` keycap.
3103
+ * Shows a text label, or an icon (e.g. a return arrow) via the `icon` slot.
3104
+ * ## When to use
3105
+ * - Showing a keyboard shortcut hint next to a control or inside a search field.
3106
+ * - Alone for a single key, or as the children of `bs-key-caps` for a multi-key shortcut.
3107
+ * ## When not to use
3108
+ * - As a button or any clickable control -- a key is a static hint, not interactive.
3109
+ * @prop --bs-key-bg - Cap background. Aliased to `--bs-surface-base`.
3110
+ * @prop --bs-key-border-color - Cap border colour. Aliased to `--bs-border-default`.
3111
+ * @prop --bs-key-radius - Cap corner radius. Aliased to `--bs-border-radius-50`.
3112
+ * @prop --bs-key-padding-x - Horizontal padding. Aliased to `--bs-spacing-75`.
3113
+ * @prop --bs-key-padding-y - Vertical padding. Aliased to `--bs-spacing-50`.
3114
+ * @prop --bs-key-min-width - Smallest cap width, so single characters keep a keycap shape. Defaults to `25px` (Figma).
3115
+ * @prop --bs-key-color - Label colour. Aliased to `--bs-text-secondary`.
3116
+ * @prop --bs-key-font-size - Label size. Aliased to `--bs-font-size-xs` (12px).
3117
+ * @prop --bs-key-icon-size - Icon size. Defaults to `16px` (Figma).
3118
+ */
3119
+ interface BsKey {
3120
+ /**
3121
+ * The key's text, e.g. `Ctrl`. The default slot overrides it.
3122
+ */
3123
+ "label"?: string;
3124
+ }
3125
+ /**
3126
+ * A keyboard shortcut of one to four keys joined by "+", e.g. `Ctrl + K`. Give it a `keys` string
3127
+ * (`"Ctrl+Shift+K"`) or array (`['Ctrl', '+']` for a literal plus key), or slot your own `bs-key`
3128
+ * elements -- for example when a key is an icon.
3129
+ * ## When to use
3130
+ * - A shortcut hint beside a menu item, button or inside a search field.
3131
+ * ## When not to use
3132
+ * - Instructions that need prose ("press Enter to submit") -- write a sentence and use a single `bs-key` inline.
3133
+ * - Anything interactive -- keys are static hints.
3134
+ * @prop --bs-key-caps-gap - Gap between keys and separators. Aliased to `--bs-spacing-100`.
3135
+ * @prop --bs-key-caps-separator-color - Colour of the "+" separators. Aliased to `--bs-text-muted`.
3136
+ * @prop --bs-key-caps-disabled-opacity - Opacity of the whole shortcut while `disabled`. Defaults to `0.38` (Figma).
3137
+ */
3138
+ interface BsKeyCaps {
3139
+ /**
3140
+ * Dims the whole shortcut and marks it `aria-disabled`.
3141
+ * @default false
3142
+ */
3143
+ "disabled": boolean;
3144
+ /**
3145
+ * The keys as text. A string is split on `+` (`"Ctrl+K"`); use an array to include a literal plus key. Ignored when `bs-key` elements are slotted instead. Figma defines one to four keys.
3146
+ */
3147
+ "keys"?: string | string[];
3148
+ /**
3149
+ * Accessible name of the shortcut, e.g. "Control plus K". Defaults to the keys joined with " plus ".
3150
+ */
3151
+ "label"?: string;
3152
+ }
3153
+ /**
3154
+ * A searchable reference panel of keyboard shortcuts: heading and close button, a search field, an
3155
+ * optional single-key on/off switch, shortcut groups in two columns and a footer hint. It is a
3156
+ * surface, not a modal -- place it inside `bs-dialog` or a popover.
3157
+ * Built from `bs-card`, `bs-icon-button`, `bs-input`, `bs-switch`, `bs-shortcut-row` (and so
3158
+ * `bs-key-caps` / `bs-key`).
3159
+ * ## When to use
3160
+ * - A "press ? to see shortcuts" help overlay for an app with many shortcuts.
3161
+ * ## When not to use
3162
+ * - A long-form help page or documentation -- link to it instead.
3163
+ * - A list of commands the user can run from it -- use `bs-menu`.
3164
+ * @prop --bs-keyboard-shortcuts-width - Panel width and min-width. Defaults to `720px` (Figma).
3165
+ * @prop --bs-keyboard-shortcuts-bg - Panel background. Aliased to `--bs-surface-base`.
3166
+ * @prop --bs-keyboard-shortcuts-radius - Aliased to `--bs-border-radius-150`.
3167
+ * @prop --bs-keyboard-shortcuts-padding - Aliased to `--bs-spacing-200`.
3168
+ * @prop --bs-keyboard-shortcuts-gap - Gap between sections. Aliased to `--bs-spacing-200`.
3169
+ * @prop --bs-keyboard-shortcuts-shadow - Figma elevation level 4 (`0 8px 8px` in `--bs-elevation-higher`, 12% black in light mode and 25% in dark mode).
3170
+ * @prop --bs-keyboard-shortcuts-column-gap - Gap between the two columns. Aliased to `--bs-spacing-600`.
3171
+ * @prop --bs-keyboard-shortcuts-color - Main text colour. Aliased to `--bs-text-default`.
3172
+ * @prop --bs-keyboard-shortcuts-color-secondary - Titles, captions, footer. Aliased to `--bs-text-secondary`.
3173
+ */
3174
+ interface BsKeyboardShortcuts {
3175
+ /**
3176
+ * Accessible name of the close button.
3177
+ * @default 'Close'
3178
+ */
3179
+ "closeLabel": string;
3180
+ /**
3181
+ * The key shown in the footer hint.
3182
+ * @default '?'
3183
+ */
3184
+ "footerKey": string;
3185
+ /**
3186
+ * Text before the footer key.
3187
+ * @default 'Press'
3188
+ */
3189
+ "footerPrefix": string;
3190
+ /**
3191
+ * Footer text after the key.
3192
+ * @default 'anywhere to open this list. On Mac: Cmd instead of Ctrl.'
3193
+ */
3194
+ "footerText": string;
3195
+ /**
3196
+ * Property only: the shortcut groups.
3197
+ * @default []
3198
+ */
3199
+ "groups": BsShortcutGroup[];
3200
+ /**
3201
+ * Heading text. The `heading` slot overrides it.
3202
+ * @default 'Keyboard shortcuts'
3203
+ */
3204
+ "heading": string;
3205
+ /**
3206
+ * Line shown when the query matches nothing.
3207
+ * @default 'No shortcuts match'
3208
+ */
3209
+ "noResultsText": string;
3210
+ /**
3211
+ * Current search text. Filters by action or keys text, case-insensitively.
3212
+ * @default ''
3213
+ */
3214
+ "query": string;
3215
+ /**
3216
+ * Search field placeholder (also its accessible name: `bs-input` has no aria-label prop).
3217
+ * @default 'Search for an action'
3218
+ */
3219
+ "searchPlaceholder": string;
3220
+ /**
3221
+ * Shows the footer hint.
3222
+ * @default true
3223
+ */
3224
+ "showFooterHint": boolean;
3225
+ /**
3226
+ * Shows the single-key switch row.
3227
+ * @default true
3228
+ */
3229
+ "showSingleKeySwitch": boolean;
3230
+ /**
3231
+ * Switch caption.
3232
+ * @default 'Turn off if they clash with a screen reader or other tools.'
3233
+ */
3234
+ "singleKeyDescription": string;
3235
+ /**
3236
+ * Whether single-key shortcuts are on. When off they are shown dimmed.
3237
+ * @default true
3238
+ */
3239
+ "singleKeyEnabled": boolean;
3240
+ /**
3241
+ * Switch title.
3242
+ * @default 'Single-key shortcuts'
3243
+ */
3244
+ "singleKeyLabel": string;
3245
+ }
2312
3246
  /**
2313
3247
  * A vertical list of `bs-list-item` rows, optionally single-select.
2314
3248
  * ## When to use
@@ -2474,6 +3408,85 @@ export namespace Components {
2474
3408
  */
2475
3409
  "variant": BsLogoVariant;
2476
3410
  }
3411
+ /**
3412
+ * The dropdown panel under a navigation header tab: columns of links grouped under headings, an optional
3413
+ * featured area on the right, and a footer with recently used items and a shortcut hint. Matches the Figma
3414
+ * "Mega menu" (types Columns, Column with featured, Compact and Compact with featured).
3415
+ * This is the panel only. Put it in `bs-navigation-header`'s `menu` slot, which anchors it under the bar at the
3416
+ * header's full width, and toggle the host's `hidden` attribute from the tab that
3417
+ * opens it; the panel does not open or close itself. Escape inside the panel fires `bsClose` so you can close it.
3418
+ * Built from `bs-card` (panel surface), `bs-menu-block` or `bs-compact-menu-block` (the links), `bs-divider` and
3419
+ * `bs-key-caps` (the shortcut). The column layout, headings, featured text and footer row are plain layout
3420
+ * markup: no component covers them.
3421
+ * ## Responsive
3422
+ * The panel reacts to its own width (a container query), not the viewport's. Below 600px it becomes one column (heading
3423
+ * above its links, featured area below), titles and descriptions wrap, links are at least 44px tall, the footer stacks
3424
+ * and the default shortcut hint is hidden (`display: none`; a keyboard hint means nothing on a touch screen). A custom
3425
+ * `footer-end` slot is not hidden.
3426
+ * ## When to use
3427
+ * - A header tab that leads to many destinations that need grouping (Sell, Finance, Inventory).
3428
+ * ## When not to use
3429
+ * - A short list of commands -- use `bs-menu` in a `bs-popover`.
3430
+ * - Switching app or company -- use `bs-app-switcher` or `bs-company-switcher`.
3431
+ * `columns`, `featured` and `recent` are arrays or objects and must be set as JS properties. Each item's `icon` is
3432
+ * the URL of a monochrome SVG. You own the data: listen to `bsMenuSelect` (cancelable: `preventDefault()` cancels the
3433
+ * originating click).
3434
+ * @prop --bs-mega-menu-width - Panel width. Defaults to `1100px` (Figma); capped at the viewport.
3435
+ * @prop --bs-mega-menu-radius - Panel corner radius. Aliased to `--bs-border-radius-150`.
3436
+ * @prop --bs-mega-menu-bg - Panel background. Aliased to `--bs-surface-base`.
3437
+ * @prop --bs-mega-menu-border-color - Panel border. Aliased to `--bs-border-default`.
3438
+ * @prop --bs-mega-menu-shadow - Panel shadow (elevation level 3). Aliased to the `--bs-shadow-*` position and blur tokens and `--bs-elevation-high`.
3439
+ * @prop --bs-mega-menu-padding - Padding around the columns. Aliased to `--bs-spacing-300` and `--bs-spacing-350`.
3440
+ * @prop --bs-mega-menu-gap - Gap between columns. Aliased to `--bs-spacing-300`.
3441
+ * @prop --bs-mega-menu-heading-color - Column headings. Aliased to `--bs-text-muted`.
3442
+ * @prop --bs-mega-menu-text-color - Featured title. Aliased to `--bs-text-default`.
3443
+ * @prop --bs-mega-menu-muted-color - Featured description and footer text. Aliased to `--bs-text-secondary`.
3444
+ */
3445
+ interface BsMegaMenu {
3446
+ /**
3447
+ * The groups of links. JS property only (an array cannot be an attribute).
3448
+ * @default []
3449
+ */
3450
+ "columns": BsMegaMenuColumn[];
3451
+ /**
3452
+ * The featured area on the right. JS property only. The `featured` slot overrides it.
3453
+ */
3454
+ "featured"?: BsMegaMenuFeatured;
3455
+ /**
3456
+ * Accessible name of the panel.
3457
+ * @default 'Menu'
3458
+ */
3459
+ "label": string;
3460
+ /**
3461
+ * Recently used destinations, already translated, shown in the footer. JS property only.
3462
+ * @default []
3463
+ */
3464
+ "recent": string[];
3465
+ /**
3466
+ * Text before the recently used items.
3467
+ * @default 'Recently used:'
3468
+ */
3469
+ "recentLabel": string;
3470
+ /**
3471
+ * The shortcut keys, joined by "+".
3472
+ * @default 'Ctrl+K'
3473
+ */
3474
+ "shortcutKeys": string;
3475
+ /**
3476
+ * Accessible name of the shortcut keys. Defaults to the keys joined with " plus ".
3477
+ */
3478
+ "shortcutKeysLabel"?: string;
3479
+ /**
3480
+ * Text before the shortcut keys.
3481
+ * @default 'Can’t find it? Press'
3482
+ */
3483
+ "shortcutLabel": string;
3484
+ /**
3485
+ * `columns` shows menu blocks with icon and description; `compact` plain text links.
3486
+ * @default 'columns'
3487
+ */
3488
+ "type": BsMegaMenuType;
3489
+ }
2477
3490
  /**
2478
3491
  * A generic dropdown/popup menu container: a rounded, elevated list of items (typically
2479
3492
  * `bs-menu-item` elements).
@@ -2491,6 +3504,49 @@ export namespace Components {
2491
3504
  */
2492
3505
  interface BsMenu {
2493
3506
  }
3507
+ /**
3508
+ * A rich entry in a mega menu: an icon tile, a title with an optional "New" chip, and a one-line description.
3509
+ * Matches the Figma "Menu block" component (Default, Hover, Pressed and Focused).
3510
+ * The block is always a native button and only emits events; it never navigates. Hover, pressed and focus come from the
3511
+ * native element. Its accessible name is its text: the title, the badge and the description, read once.
3512
+ * Built from `bs-icon-tile` (the icon) and `bs-chip-informative` (the badge). The icon is either a URL of a
3513
+ * monochrome SVG in `icon` (painted with the theme's icon colour through a CSS mask, so it follows light and
3514
+ * dark mode), or any element in the default slot (an `<svg>` drawn with `currentColor`).
3515
+ * ## When to use
3516
+ * - A destination in a mega menu that needs an icon and a sentence of explanation, usually inside `bs-mega-menu`.
3517
+ * ## When not to use
3518
+ * - A plain text destination -- use `bs-compact-menu-block`.
3519
+ * - A command in a dropdown list -- use `bs-menu-item`.
3520
+ * @prop --bs-menu-block-padding - Padding inside the block. Aliased to `--bs-spacing-150`.
3521
+ * @prop --bs-menu-block-gap - Gap between icon and text. Aliased to `--bs-spacing-150`.
3522
+ * @prop --bs-menu-block-radius - Corner radius. Aliased to `--bs-border-radius-100`.
3523
+ * @prop --bs-menu-block-bg - Resting background. `transparent`.
3524
+ * @prop --bs-menu-block-bg-hover - Aliased to `--bs-surface-hover`.
3525
+ * @prop --bs-menu-block-bg-pressed - Aliased to `--bs-surface-pressed`.
3526
+ * @prop --bs-menu-block-icon-bg - Icon square background. Aliased to `--bs-color-neutral-container`; `--bs-surface-base` while hovered or pressed.
3527
+ * @prop --bs-menu-block-color - Title colour. Aliased to `--bs-text-default`.
3528
+ * @prop --bs-menu-block-color-muted - Description colour. Aliased to `--bs-text-secondary`.
3529
+ * @prop --bs-menu-block-focus-ring - Focus ring colour. Aliased to `--bs-border-info`.
3530
+ * @prop --bs-menu-block-white-space - `white-space` of the title and description. `nowrap` (single line, ellipsis); set `normal` to let them wrap.
3531
+ */
3532
+ interface BsMenuBlock {
3533
+ /**
3534
+ * Short text for a chip beside the title, e.g. "New".
3535
+ */
3536
+ "badge"?: string;
3537
+ /**
3538
+ * One line under the title; part of the accessible name.
3539
+ */
3540
+ "description"?: string;
3541
+ /**
3542
+ * URL of a monochrome SVG painted with the icon colour. The default slot overrides it.
3543
+ */
3544
+ "icon"?: string;
3545
+ /**
3546
+ * The title, and the start of the accessible name.
3547
+ */
3548
+ "name": string;
3549
+ }
2494
3550
  /**
2495
3551
  * A single selectable row inside a `bs-menu`: an optional icon plus a text label, rendered as a
2496
3552
  * real `<button>` for correct keyboard/click semantics.
@@ -2894,6 +3950,91 @@ export namespace Components {
2894
3950
  */
2895
3951
  "type": BsOnboardingChecklistType;
2896
3952
  }
3953
+ /**
3954
+ * The header at the top of a page's content area: breadcrumb trail, the page title (a real heading) with an
3955
+ * optional back button, status and favourite toggle, a meta line, page-level actions on the right and an
3956
+ * optional row of tabs. Matches the Figma "Page header" (types List page, Record, Record with tabs and Sticky
3957
+ * compact).
3958
+ * Built from `bs-breadcrumbs`/`bs-breadcrumb` (slotted by you), `bs-icon-button` (the built-in back and favourite
3959
+ * buttons), `bs-chip-informative` (the status you slot), `bs-button` and `bs-icon-button` (the actions you slot),
3960
+ * `bs-tabs`/`bs-tab` (the tab row you slot) and `bs-divider` (under the tabs). The title block, meta line and
3961
+ * actions area are plain layout markup, because no component covers them. The back arrow and the star are
3962
+ * inline SVG (Phosphor "arrow-left", "star" and "star-fill") until the library has an icon component.
3963
+ * ## Compact (sticky)
3964
+ * `compact` is the condensed state a record header takes once the page scrolls: one row (back, title, status,
3965
+ * meta inline, actions), a level 2 shadow, no breadcrumb and no tabs, and `position: sticky`. Set it yourself
3966
+ * from a scroll observer. Because the header covers the top of the scroll area, give the scroll container
3967
+ * `scroll-padding-top` equal to its height (80px by default) so focused or anchored content is not hidden under it.
3968
+ * ## Responsive
3969
+ * The header reacts to its own width (a container query), not the viewport's. Below 640px the actions wrap
3970
+ * below the title block, slotted buttons grow to 44px tall, the title and meta wrap, and the tab row scrolls
3971
+ * sideways inside itself. The page never gets wider.
3972
+ * ## When to use
3973
+ * - The top of a list page or a single record (an invoice, a customer) inside the app shell's content area.
3974
+ * ## When not to use
3975
+ * - The app-wide bar with logo, search and user: use `bs-navigation-header`.
3976
+ * - The heading of a card, dialog or panel: use that component's own `heading`.
3977
+ * ## Accessibility notes
3978
+ * The root is a plain `div`, not a `<header>`: a `<header>` that is not inside `<main>`/`<article>`/`<section>`
3979
+ * is a second banner landmark. The title is a real heading (`<h1>` by default, `headingLevel` 1 to 6); the
3980
+ * status is next to it, not inside it. If you want a landmark, wrap `bs-page-header` yourself.
3981
+ * @prop --bs-page-header-bg - Background. Aliased to `--bs-surface-base`.
3982
+ * @prop --bs-page-header-padding-x - Left and right padding. Aliased to `--bs-spacing-200`.
3983
+ * @prop --bs-page-header-padding-y - Top and bottom padding. Aliased to `--bs-spacing-300`.
3984
+ * @prop --bs-page-header-gap - Gap between the breadcrumb, title block and tabs, and between the title block and the actions. Aliased to `--bs-spacing-150`.
3985
+ * @prop --bs-page-header-title-gap - Gap between the heading, status and favourite button. Aliased to `--bs-spacing-150`.
3986
+ * @prop --bs-page-header-actions-gap - Gap between the actions. Aliased to `--bs-spacing-100`.
3987
+ * @prop --bs-page-header-text-color - Heading. Aliased to `--bs-text-default`.
3988
+ * @prop --bs-page-header-meta-color - Meta line. Aliased to `--bs-text-secondary`.
3989
+ * @prop --bs-page-header-shadow - Shadow of the compact header (elevation level 2). Aliased to the `--bs-shadow-*` position and blur tokens and `--bs-elevation-medium`.
3990
+ * @prop --bs-page-header-sticky-offset - The `top` of the compact header. Defaults to `0px`; set it to the height of a sticky bar above (e.g. the navigation header).
3991
+ * @prop --bs-page-header-z-index - Stacking order of the compact header. Aliased to `--bs-z-index-sticky`.
3992
+ */
3993
+ interface BsPageHeader {
3994
+ /**
3995
+ * Shows a back button before the title. It emits `bsBack`; you navigate.
3996
+ * @default false
3997
+ */
3998
+ "back": boolean;
3999
+ /**
4000
+ * Accessible name of the back button.
4001
+ * @default 'Back'
4002
+ */
4003
+ "backLabel": string;
4004
+ /**
4005
+ * The condensed, sticky state: one row, a level 2 shadow, no breadcrumb and no tabs. Reflected.
4006
+ * @default false
4007
+ */
4008
+ "compact": boolean;
4009
+ /**
4010
+ * Shows the favourite (star) toggle after the title.
4011
+ * @default false
4012
+ */
4013
+ "favoritable": boolean;
4014
+ /**
4015
+ * Whether the record is a favourite. Mutable: it follows the user's toggle unless `bsFavoriteChange` is cancelled.
4016
+ * @default false
4017
+ */
4018
+ "favorite": boolean;
4019
+ /**
4020
+ * Accessible name of the favourite toggle. It stays the same in both states; `aria-pressed` carries the state.
4021
+ * @default 'Favourite'
4022
+ */
4023
+ "favoriteLabel": string;
4024
+ /**
4025
+ * The page title, rendered as the heading.
4026
+ */
4027
+ "heading": string;
4028
+ /**
4029
+ * HTML heading level for the title, 1 to 6. Use 1 unless the page already has its own `h1`.
4030
+ * @default 1
4031
+ */
4032
+ "headingLevel": number;
4033
+ /**
4034
+ * The line under the title, plain text, e.g. "214 invoices · 38 open". The `meta` slot overrides it.
4035
+ */
4036
+ "meta"?: string;
4037
+ }
2897
4038
  /**
2898
4039
  * A numbered page control -- previous/next chevrons, page-number buttons, and `...` overflow for
2899
4040
  * large page counts. Matches the Figma "Pagination" component's "Default" type (the classic
@@ -3297,6 +4438,55 @@ export namespace Components {
3297
4438
  */
3298
4439
  "value": string;
3299
4440
  }
4441
+ /**
4442
+ * One result or suggestion row of a search dropdown: a leading icon, a primary line, an optional
4443
+ * description line and trailing text. Static, not focusable -- focus stays in the search field and the
4444
+ * parent (`bs-global-search`) marks the highlighted row with `active`.
4445
+ * Standalone it has no role. `bs-global-search` sets `selectionRole="option"` (and an `id`) on its rows,
4446
+ * the same pattern as `bs-list-item` and `bs-shortcut-row`.
4447
+ * ## When to use
4448
+ * - A suggestion, recent search or result inside `bs-global-search`.
4449
+ * ## When not to use
4450
+ * - A row in a generic list -- use `bs-list-item`.
4451
+ * - A command in a popup menu -- use `bs-menu-item`.
4452
+ * @prop --bs-search-item-min-height - Aliased to `--bs-spacing-600` (48px).
4453
+ * @prop --bs-search-item-padding-y - Aliased to `--bs-spacing-100`.
4454
+ * @prop --bs-search-item-padding-x - Aliased to `--bs-spacing-150`.
4455
+ * @prop --bs-search-item-gap - Aliased to `--bs-spacing-100`.
4456
+ * @prop --bs-search-item-radius - Aliased to `--bs-border-radius-100`.
4457
+ * @prop --bs-search-item-bg - Resting background. `transparent`.
4458
+ * @prop --bs-search-item-bg-active - Active (highlighted) and hover background. Aliased to `--bs-surface-hover`.
4459
+ * @prop --bs-search-item-bg-pressed - Aliased to `--bs-surface-pressed`.
4460
+ * @prop --bs-search-item-color - Primary text. Aliased to `--bs-text-default`.
4461
+ * @prop --bs-search-item-color-muted - Description and trailing text. Aliased to `--bs-text-muted`.
4462
+ * @prop --bs-search-item-color-disabled - Aliased to `--bs-text-on-disabled`.
4463
+ * @prop --bs-search-item-icon-color - Aliased to `--bs-icon-default`.
4464
+ */
4465
+ interface BsSearchItem {
4466
+ /**
4467
+ * Highlighted row (keyboard or hover). Set by the parent.
4468
+ * @default false
4469
+ */
4470
+ "active": boolean;
4471
+ /**
4472
+ * Dims the row and ignores clicks.
4473
+ * @default false
4474
+ */
4475
+ "disabled": boolean;
4476
+ /**
4477
+ * Set by the parent (`"option"`). Standalone rows have no role.
4478
+ * @default null
4479
+ */
4480
+ "selectionRole": 'option' | null;
4481
+ /**
4482
+ * Trailing text shorthand. The `trailing` slot overrides it.
4483
+ */
4484
+ "trailing"?: string;
4485
+ /**
4486
+ * Identifies the item; emitted by `bsItemSelect`.
4487
+ */
4488
+ "value"?: string;
4489
+ }
3300
4490
  /**
3301
4491
  * The three moments around an expiring session, as one card. Matches the Figma "Session timeout"
3302
4492
  * component's three types:
@@ -3421,6 +4611,46 @@ export namespace Components {
3421
4611
  */
3422
4612
  "type": BsSessionTimeoutType;
3423
4613
  }
4614
+ /**
4615
+ * One row of a shortcut list: an action label on the left and its keyboard shortcut on the right.
4616
+ * Static information, not interactive. Standalone it has no role; `bs-keyboard-shortcuts` sets
4617
+ * `selectionRole="listitem"` on its rows (same pattern as `bs-list-item`).
4618
+ * Built from `bs-key-caps` (and so `bs-key`).
4619
+ * ## When to use
4620
+ * - A line in a keyboard-shortcut reference, usually inside `bs-keyboard-shortcuts`.
4621
+ * ## When not to use
4622
+ * - A clickable command or menu entry -- use `bs-menu-item` (which has its own shortcut slot).
4623
+ * @prop --bs-shortcut-row-height - Row height. Defaults to `36px` (Figma).
4624
+ * @prop --bs-shortcut-row-padding-x - Horizontal padding. Aliased to `--bs-spacing-100`.
4625
+ * @prop --bs-shortcut-row-gap - Gap between label and keys. Aliased to `--bs-spacing-100`.
4626
+ * @prop --bs-shortcut-row-radius - Corner radius. Aliased to `--bs-border-radius-75`.
4627
+ * @prop --bs-shortcut-row-color - Label colour. Aliased to `--bs-text-default`.
4628
+ * @prop --bs-shortcut-row-color-disabled - Label colour while `disabled`. Aliased to `--bs-text-on-disabled`.
4629
+ */
4630
+ interface BsShortcutRow {
4631
+ /**
4632
+ * The action, e.g. "Save". The default slot overrides it.
4633
+ */
4634
+ "action"?: string;
4635
+ /**
4636
+ * Dims the label and the keys.
4637
+ * @default false
4638
+ */
4639
+ "disabled": boolean;
4640
+ /**
4641
+ * The keys, e.g. `"Ctrl+S"`, or an array (`['Ctrl', '+']`) for a literal plus key. See `bs-key-caps`.
4642
+ */
4643
+ "keys"?: string | string[];
4644
+ /**
4645
+ * Accessible name of the key caps, e.g. "Control plus S". Defaults to the keys joined with "plus".
4646
+ */
4647
+ "label"?: string;
4648
+ /**
4649
+ * Set by the parent list (`"listitem"`). Standalone rows have no role.
4650
+ * @default null
4651
+ */
4652
+ "selectionRole": 'listitem' | null;
4653
+ }
3424
4654
  /**
3425
4655
  * A generic slide-in panel (drawer) anchored to the start or end edge, for history, filters, FAQ
3426
4656
  * and similar secondary content. Closes via its close button or Escape and emits `bsClose`.
@@ -4486,6 +5716,10 @@ export interface BsAccordionCustomEvent<T> extends CustomEvent<T> {
4486
5716
  detail: T;
4487
5717
  target: HTMLBsAccordionElement;
4488
5718
  }
5719
+ export interface BsAppSwitcherCustomEvent<T> extends CustomEvent<T> {
5720
+ detail: T;
5721
+ target: HTMLBsAppSwitcherElement;
5722
+ }
4489
5723
  export interface BsAttachmentCustomEvent<T> extends CustomEvent<T> {
4490
5724
  detail: T;
4491
5725
  target: HTMLBsAttachmentElement;
@@ -4538,6 +5772,14 @@ export interface BsCitationPreviewCustomEvent<T> extends CustomEvent<T> {
4538
5772
  detail: T;
4539
5773
  target: HTMLBsCitationPreviewElement;
4540
5774
  }
5775
+ export interface BsCommandPaletteCustomEvent<T> extends CustomEvent<T> {
5776
+ detail: T;
5777
+ target: HTMLBsCommandPaletteElement;
5778
+ }
5779
+ export interface BsCompanySwitcherCustomEvent<T> extends CustomEvent<T> {
5780
+ detail: T;
5781
+ target: HTMLBsCompanySwitcherElement;
5782
+ }
4541
5783
  export interface BsComposerCustomEvent<T> extends CustomEvent<T> {
4542
5784
  detail: T;
4543
5785
  target: HTMLBsComposerElement;
@@ -4574,6 +5816,10 @@ export interface BsFileUploadItemCustomEvent<T> extends CustomEvent<T> {
4574
5816
  detail: T;
4575
5817
  target: HTMLBsFileUploadItemElement;
4576
5818
  }
5819
+ export interface BsGlobalSearchCustomEvent<T> extends CustomEvent<T> {
5820
+ detail: T;
5821
+ target: HTMLBsGlobalSearchElement;
5822
+ }
4577
5823
  export interface BsInlineTabCustomEvent<T> extends CustomEvent<T> {
4578
5824
  detail: T;
4579
5825
  target: HTMLBsInlineTabElement;
@@ -4582,6 +5828,10 @@ export interface BsInputCustomEvent<T> extends CustomEvent<T> {
4582
5828
  detail: T;
4583
5829
  target: HTMLBsInputElement;
4584
5830
  }
5831
+ export interface BsKeyboardShortcutsCustomEvent<T> extends CustomEvent<T> {
5832
+ detail: T;
5833
+ target: HTMLBsKeyboardShortcutsElement;
5834
+ }
4585
5835
  export interface BsListCustomEvent<T> extends CustomEvent<T> {
4586
5836
  detail: T;
4587
5837
  target: HTMLBsListElement;
@@ -4590,6 +5840,10 @@ export interface BsListItemCustomEvent<T> extends CustomEvent<T> {
4590
5840
  detail: T;
4591
5841
  target: HTMLBsListItemElement;
4592
5842
  }
5843
+ export interface BsMegaMenuCustomEvent<T> extends CustomEvent<T> {
5844
+ detail: T;
5845
+ target: HTMLBsMegaMenuElement;
5846
+ }
4593
5847
  export interface BsMenuItemCustomEvent<T> extends CustomEvent<T> {
4594
5848
  detail: T;
4595
5849
  target: HTMLBsMenuItemElement;
@@ -4610,6 +5864,10 @@ export interface BsOnboardingChecklistCustomEvent<T> extends CustomEvent<T> {
4610
5864
  detail: T;
4611
5865
  target: HTMLBsOnboardingChecklistElement;
4612
5866
  }
5867
+ export interface BsPageHeaderCustomEvent<T> extends CustomEvent<T> {
5868
+ detail: T;
5869
+ target: HTMLBsPageHeaderElement;
5870
+ }
4613
5871
  export interface BsPaginationCustomEvent<T> extends CustomEvent<T> {
4614
5872
  detail: T;
4615
5873
  target: HTMLBsPaginationElement;
@@ -4630,6 +5888,10 @@ export interface BsRadioCustomEvent<T> extends CustomEvent<T> {
4630
5888
  detail: T;
4631
5889
  target: HTMLBsRadioElement;
4632
5890
  }
5891
+ export interface BsSearchItemCustomEvent<T> extends CustomEvent<T> {
5892
+ detail: T;
5893
+ target: HTMLBsSearchItemElement;
5894
+ }
4633
5895
  export interface BsSessionTimeoutCustomEvent<T> extends CustomEvent<T> {
4634
5896
  detail: T;
4635
5897
  target: HTMLBsSessionTimeoutElement;
@@ -4817,6 +6079,39 @@ declare global {
4817
6079
  prototype: HTMLBsAiThinkingElement;
4818
6080
  new (): HTMLBsAiThinkingElement;
4819
6081
  };
6082
+ /**
6083
+ * A full-width row for one app: a small icon tile, the app name and a description line (for example
6084
+ * "Opened 10 min ago · Nordlys Handel AS"). Matches the Figma "Recent item" component (Default, Current,
6085
+ * Hover, Pressed and Focus).
6086
+ * The row is always a native button and only emits events; it never navigates. `current` marks the app you are in
6087
+ * (`aria-current="true"`); `disabled` dims it, sets `aria-disabled` and removes it from the tab order.
6088
+ * Built from `bs-icon-tile`. The icon is either a URL of a monochrome SVG in `icon` (painted with the theme's
6089
+ * icon colour through a CSS mask) or any element in the default slot.
6090
+ * ## When to use
6091
+ * - A recently opened app, or a search result with a description, inside `bs-app-switcher`.
6092
+ * ## When not to use
6093
+ * - An app in a launcher grid -- use `bs-app-tile`.
6094
+ * - A generic list row -- use `bs-list-item`.
6095
+ * @prop --bs-app-recent-item-padding-x - Aliased to `--bs-spacing-100`.
6096
+ * @prop --bs-app-recent-item-padding-y - Aliased to `--bs-spacing-100`.
6097
+ * @prop --bs-app-recent-item-gap - Gap between icon and text. Aliased to `--bs-spacing-150`.
6098
+ * @prop --bs-app-recent-item-radius - Aliased to `--bs-border-radius-100`.
6099
+ * @prop --bs-app-recent-item-bg - Resting background. `transparent`.
6100
+ * @prop --bs-app-recent-item-bg-hover - Aliased to `--bs-surface-hover`.
6101
+ * @prop --bs-app-recent-item-bg-pressed - Aliased to `--bs-surface-pressed`.
6102
+ * @prop --bs-app-recent-item-bg-current - Aliased to `--bs-surface-selected`.
6103
+ * @prop --bs-app-recent-item-icon-bg - Icon square background. Aliased to `--bs-color-neutral-container`; `--bs-surface-base` while hovered, pressed or current.
6104
+ * @prop --bs-app-recent-item-color - Name colour. Aliased to `--bs-text-default`.
6105
+ * @prop --bs-app-recent-item-color-muted - Description colour. Aliased to `--bs-text-secondary`.
6106
+ * @prop --bs-app-recent-item-color-disabled - Name, description and icon colour when disabled. Aliased to `--bs-text-on-disabled`.
6107
+ * @prop --bs-app-recent-item-focus-ring - Focus ring colour. Aliased to `--bs-border-neutral-focus`.
6108
+ */
6109
+ interface HTMLBsAppRecentItemElement extends Components.BsAppRecentItem, HTMLStencilElement {
6110
+ }
6111
+ var HTMLBsAppRecentItemElement: {
6112
+ prototype: HTMLBsAppRecentItemElement;
6113
+ new (): HTMLBsAppRecentItemElement;
6114
+ };
4820
6115
  /**
4821
6116
  * The page frame: a header across the top, and below it a navigation | main | aside row, laid out
4822
6117
  * with CSS grid. The main column scrolls independently of the header and the side columns.
@@ -4844,6 +6139,92 @@ declare global {
4844
6139
  prototype: HTMLBsAppShellElement;
4845
6140
  new (): HTMLBsAppShellElement;
4846
6141
  };
6142
+ interface HTMLBsAppSwitcherElementEventMap {
6143
+ "bsAppSelect": BsApp;
6144
+ "bsManage": void;
6145
+ "bsBrowseAll": void;
6146
+ "bsClearSearch": void;
6147
+ "bsRetry": void;
6148
+ "bsRequestAccess": void;
6149
+ "bsQueryChange": string;
6150
+ }
6151
+ /**
6152
+ * The panel of an app launcher ("EG apps"): a header with a "Manage" action, a search field, your apps as a
6153
+ * grid (or Recent plus All apps), search results, and a footer link to browse all products. It also has
6154
+ * no-results, loading, error and empty states. Matches the Figma "App switcher" (states Default, With recent,
6155
+ * Searching, No results, Loading, Error and Empty).
6156
+ * This is the panel only. To open it from a button, wrap it in `bs-popover`.
6157
+ * Built from `bs-card` (panel surface), `bs-input` (search), `bs-app-tile` and `bs-app-recent-item` (apps),
6158
+ * `bs-empty-state` (no results, error, empty), `bs-skeleton` (loading), `bs-button` (Clear search, Try
6159
+ * again, Request access) and `bs-divider`. "Manage" and "Browse all" are native links (or buttons when
6160
+ * there is no URL): `bs-button` has no link mode and the library has no link component.
6161
+ * ## When to use
6162
+ * - Letting a user jump between the products they have access to, from an app header.
6163
+ * ## When not to use
6164
+ * - Navigation inside one app -- use `bs-menu` or the app shell navigation.
6165
+ * - Switching company -- use `bs-company-switcher`.
6166
+ * `apps` and `recent` are arrays and must be set as JS properties. Each app's `icon` is the URL of a
6167
+ * monochrome SVG. You own the data: listen to `bsAppSelect` (cancelable: `preventDefault()` cancels the
6168
+ * originating click), and drive `status` and `query` yourself. An empty `apps` list while `status` is
6169
+ * `ready` shows the empty state.
6170
+ * @prop --bs-app-switcher-width - Panel width. Defaults to `360px` (Figma); capped at the viewport.
6171
+ * @prop --bs-app-switcher-radius - Panel corner radius. Aliased to `--bs-border-radius-150`.
6172
+ * @prop --bs-app-switcher-bg - Panel background. Aliased to `--bs-surface-base`.
6173
+ * @prop --bs-app-switcher-border-color - Panel border. Aliased to `--bs-border-default`.
6174
+ * @prop --bs-app-switcher-shadow - Panel shadow (elevation level 4). Aliased to the `--bs-shadow-*` position and blur tokens and `--bs-elevation-higher`.
6175
+ * @prop --bs-app-switcher-padding - Side padding of the content. Aliased to `--bs-spacing-150`.
6176
+ * @prop --bs-app-switcher-text-color - Heading and links in the header. Aliased to `--bs-text-default`.
6177
+ * @prop --bs-app-switcher-header-color - Group headers. Aliased to `--bs-text-secondary`.
6178
+ * @prop --bs-app-switcher-link-color - Browse link. Aliased to `--bs-text-action`.
6179
+ * @prop --bs-app-switcher-focus-ring - Link focus ring. Aliased to `--bs-border-neutral-focus`.
6180
+ */
6181
+ interface HTMLBsAppSwitcherElement extends Components.BsAppSwitcher, HTMLStencilElement {
6182
+ addEventListener<K extends keyof HTMLBsAppSwitcherElementEventMap>(type: K, listener: (this: HTMLBsAppSwitcherElement, ev: BsAppSwitcherCustomEvent<HTMLBsAppSwitcherElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
6183
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
6184
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
6185
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
6186
+ removeEventListener<K extends keyof HTMLBsAppSwitcherElementEventMap>(type: K, listener: (this: HTMLBsAppSwitcherElement, ev: BsAppSwitcherCustomEvent<HTMLBsAppSwitcherElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
6187
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
6188
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
6189
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
6190
+ }
6191
+ var HTMLBsAppSwitcherElement: {
6192
+ prototype: HTMLBsAppSwitcherElement;
6193
+ new (): HTMLBsAppSwitcherElement;
6194
+ };
6195
+ /**
6196
+ * One app in an app launcher: an icon tile above a short label. Matches the Figma "App tile" component
6197
+ * (Size Grid and Compact, each Default, Hover, Pressed, Focus, Current and Disabled).
6198
+ * The tile is always a native button and only emits events; it never navigates. Hover, pressed and focus come from the
6199
+ * native element; `current` marks the app you are in (`aria-current="true"`); `disabled` dims it, sets
6200
+ * `aria-disabled` and removes it from the tab order.
6201
+ * Built from `bs-icon-tile`. The icon is either a URL of a monochrome SVG in `icon` (painted with the
6202
+ * theme's icon colour through a CSS mask, so it follows light and dark mode), or any element in the default
6203
+ * slot (an `<svg>` drawn with `currentColor`).
6204
+ * ## When to use
6205
+ * - An app in a launcher grid, usually inside `bs-app-switcher`.
6206
+ * ## When not to use
6207
+ * - A row with a description or "recently opened" line -- use `bs-app-recent-item`.
6208
+ * - A command in a menu -- use `bs-menu-item`.
6209
+ * @prop --bs-app-tile-icon-size - Size of the icon square. `44px` in `grid` (Figma) and `--bs-sizing-400` in `compact`.
6210
+ * @prop --bs-app-tile-padding - Padding inside the tile. Aliased to `--bs-spacing-150` (`grid`) or `--bs-spacing-100` (`compact`).
6211
+ * @prop --bs-app-tile-gap - Gap between icon and label. Aliased to `--bs-spacing-150` (`grid`) or `--bs-spacing-50` (`compact`).
6212
+ * @prop --bs-app-tile-radius - Corner radius. Aliased to `--bs-border-radius-100`.
6213
+ * @prop --bs-app-tile-bg - Resting background. `transparent`.
6214
+ * @prop --bs-app-tile-bg-hover - Aliased to `--bs-surface-hover`.
6215
+ * @prop --bs-app-tile-bg-pressed - Aliased to `--bs-surface-pressed`.
6216
+ * @prop --bs-app-tile-bg-current - Aliased to `--bs-surface-selected`.
6217
+ * @prop --bs-app-tile-icon-bg - Icon square background. Aliased to `--bs-color-neutral-container`; `--bs-surface-base` while hovered, pressed or current.
6218
+ * @prop --bs-app-tile-color - Label colour. Aliased to `--bs-text-default`.
6219
+ * @prop --bs-app-tile-color-disabled - Label and icon colour when disabled. Aliased to `--bs-text-on-disabled`.
6220
+ * @prop --bs-app-tile-focus-ring - Focus ring colour. Aliased to `--bs-border-neutral-focus`.
6221
+ */
6222
+ interface HTMLBsAppTileElement extends Components.BsAppTile, HTMLStencilElement {
6223
+ }
6224
+ var HTMLBsAppTileElement: {
6225
+ prototype: HTMLBsAppTileElement;
6226
+ new (): HTMLBsAppTileElement;
6227
+ };
4847
6228
  interface HTMLBsAttachmentElementEventMap {
4848
6229
  "bsRemove": void;
4849
6230
  }
@@ -5568,6 +6949,135 @@ declare global {
5568
6949
  prototype: HTMLBsCitationPreviewElement;
5569
6950
  new (): HTMLBsCitationPreviewElement;
5570
6951
  };
6952
+ interface HTMLBsCommandPaletteElementEventMap {
6953
+ "bsInput": BsCommandPaletteInputDetail;
6954
+ "bsSelect": BsCommandPaletteSelectDetail;
6955
+ "bsSuggestion": string;
6956
+ "bsOpenChange": boolean;
6957
+ "bsScopeExit": void;
6958
+ }
6959
+ /**
6960
+ * A Ctrl+K command palette: a modal with a search field, grouped commands, navigation and records, a
6961
+ * no-results view and a keyboard-hint footer. The data, the filtering, the command registry and the
6962
+ * recent-items storage are all yours: you slot `bs-search-item`s into the sections and set `status`.
6963
+ * Built from a native `<dialog>` (opened with `showModal()`, so focus is trapped, the page behind is inert
6964
+ * and the backdrop is the scrim), `bs-input` (type="search"), `bs-search-item`, `bs-key` (footer hints and
6965
+ * the Esc cap), `bs-chip-informative` (the scope chip) and `bs-spinner` (loading). Slot a `bs-key-caps` with
6966
+ * `slot="trailing"` inside an item to show a command's shortcut.
6967
+ * ## When to use
6968
+ * - An app-wide "do anything" entry point opened with a hotkey: run commands, navigate, open records.
6969
+ * ## When not to use
6970
+ * - A plain search box with a dropdown -- use `bs-global-search`.
6971
+ * - A small list of actions on one control -- use `bs-menu`.
6972
+ * A `>` as the first character of the field switches to commands-only mode (`commandsOnly`, reflected as
6973
+ * `commands-only`). The component filters nothing: listen to `bsInput`, swap the slotted items, set `status`.
6974
+ * Nested (sub-command) palettes are a consumer pattern: swap the slotted commands and set `scopeLabel`.
6975
+ * @prop --bs-command-palette-width - Panel width. Defaults to `640px` (Figma); capped to the viewport.
6976
+ * @prop --bs-command-palette-top - Distance from the top of the viewport. Defaults to `12vh`.
6977
+ * @prop --bs-command-palette-max-height - Max height of the results area. Defaults to `60vh`.
6978
+ * @prop --bs-command-palette-radius - Aliased to `--bs-border-radius-150`.
6979
+ * @prop --bs-command-palette-bg - Panel background. Aliased to `--bs-surface-base`.
6980
+ * @prop --bs-command-palette-shadow - Figma elevation level 4: `0 8px 16px` in `--bs-elevation-higher` (stronger in dark mode).
6981
+ * @prop --bs-command-palette-overlay - Scrim colour. Aliased to `--bs-surface-overlay`.
6982
+ * @prop --bs-command-palette-footer-bg - Aliased to `--bs-surface-container`.
6983
+ * @prop --bs-command-palette-divider-color - Aliased to `--bs-border-default`.
6984
+ * @prop --bs-command-palette-header-border-color - Aliased to `--bs-border-neutral-container`.
6985
+ * @prop --bs-command-palette-header-color - Aliased to `--bs-text-muted`.
6986
+ * @prop --bs-command-palette-hint-color - Aliased to `--bs-text-secondary`.
6987
+ * @prop --bs-command-palette-z-index - Aliased to `--bs-z-index-modal`.
6988
+ */
6989
+ interface HTMLBsCommandPaletteElement extends Components.BsCommandPalette, HTMLStencilElement {
6990
+ addEventListener<K extends keyof HTMLBsCommandPaletteElementEventMap>(type: K, listener: (this: HTMLBsCommandPaletteElement, ev: BsCommandPaletteCustomEvent<HTMLBsCommandPaletteElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
6991
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
6992
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
6993
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
6994
+ removeEventListener<K extends keyof HTMLBsCommandPaletteElementEventMap>(type: K, listener: (this: HTMLBsCommandPaletteElement, ev: BsCommandPaletteCustomEvent<HTMLBsCommandPaletteElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
6995
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
6996
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
6997
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
6998
+ }
6999
+ var HTMLBsCommandPaletteElement: {
7000
+ prototype: HTMLBsCommandPaletteElement;
7001
+ new (): HTMLBsCommandPaletteElement;
7002
+ };
7003
+ /**
7004
+ * A plain text entry in a mega menu: one line, no icon. Matches the Figma "Compact menu block" component
7005
+ * (Default, Hover, Pressed and Focused).
7006
+ * The block is always a native button and only emits events; it never navigates. Hover, pressed and focus come from the
7007
+ * native element.
7008
+ * ## When to use
7009
+ * - A dense list of destinations in a mega menu, usually inside `bs-mega-menu` with `type="compact"`.
7010
+ * ## When not to use
7011
+ * - A destination that needs an icon or a description -- use `bs-menu-block`.
7012
+ * - A command in a dropdown list -- use `bs-menu-item`.
7013
+ * @prop --bs-compact-menu-block-padding - Padding inside the block. Aliased to `--bs-spacing-100`.
7014
+ * @prop --bs-compact-menu-block-radius - Corner radius. Aliased to `--bs-border-radius-100`.
7015
+ * @prop --bs-compact-menu-block-bg - Resting background. `transparent`.
7016
+ * @prop --bs-compact-menu-block-bg-hover - Aliased to `--bs-surface-hover`.
7017
+ * @prop --bs-compact-menu-block-bg-pressed - Aliased to `--bs-surface-pressed`.
7018
+ * @prop --bs-compact-menu-block-color - Text colour. Aliased to `--bs-text-default`.
7019
+ * @prop --bs-compact-menu-block-focus-ring - Focus ring colour. Aliased to `--bs-border-info`.
7020
+ */
7021
+ interface HTMLBsCompactMenuBlockElement extends Components.BsCompactMenuBlock, HTMLStencilElement {
7022
+ }
7023
+ var HTMLBsCompactMenuBlockElement: {
7024
+ prototype: HTMLBsCompactMenuBlockElement;
7025
+ new (): HTMLBsCompactMenuBlockElement;
7026
+ };
7027
+ interface HTMLBsCompanySwitcherElementEventMap {
7028
+ "bsCompanySwitch": BsCompany;
7029
+ "bsManageCompanies": void;
7030
+ "bsAddCompanies": void;
7031
+ "bsOpenChange": boolean;
7032
+ }
7033
+ /**
7034
+ * A company (tenant) switcher: a trigger showing the current company, and a panel to find and switch to
7035
+ * another one. The panel has a search field, the current / recent / all groups, a filtered "matches" view,
7036
+ * a no-results state and a footer with "Manage Companies" and "Add companies" actions.
7037
+ * Built from `bs-popover` (open/close, Escape, outside click, flipping), `bs-card` (panel surface),
7038
+ * `bs-input` (search), `bs-list-item` (rows), `bs-avatar` (initials), `bs-spinner` (switching),
7039
+ * `bs-empty-state` (no results), `bs-divider` and `bs-button` (footer). The trigger is a native `<button>`:
7040
+ * no `bs-*` component is a composite "avatar + two lines + chevron" button.
7041
+ * ## When to use
7042
+ * - An app header or side navigation where a user belongs to several companies and works in one at a time.
7043
+ * ## When not to use
7044
+ * - Picking a value in a form -- use `bs-input type="dropdown"`.
7045
+ * - Switching between a handful of fixed views -- use `bs-tab`.
7046
+ * `companies` is an array and must be set as a JS property. You own the data and the switch itself: listen to
7047
+ * `bsCompanySwitch`, do the work, then update `currentId`. To show the switching state set `switchingId`
7048
+ * (from the `bsCompanySwitch` handler, or later) and the panel stays open until you clear it and set `open`
7049
+ * to `false`. If `switchingId` is not set by the time the handler returns, the panel closes immediately.
7050
+ * @prop --bs-company-switcher-width - Trigger width. Defaults to `260px` (Figma); capped at 100%.
7051
+ * @prop --bs-company-switcher-panel-width - Panel width. Defaults to `360px` (Figma); capped at the viewport.
7052
+ * @prop --bs-company-switcher-radius - Trigger and panel corner radius. Aliased to `--bs-border-radius-100`.
7053
+ * @prop --bs-company-switcher-trigger-bg - Trigger resting background. `transparent`.
7054
+ * @prop --bs-company-switcher-trigger-bg-hover - Aliased to `--bs-surface-hover`.
7055
+ * @prop --bs-company-switcher-trigger-bg-pressed - Aliased to `--bs-surface-pressed`.
7056
+ * @prop --bs-company-switcher-trigger-bg-open - Aliased to `--bs-surface-selected`.
7057
+ * @prop --bs-company-switcher-focus-ring - Trigger focus outline. Aliased to `--bs-border-neutral-focus`.
7058
+ * @prop --bs-company-switcher-panel-bg - Panel background. Aliased to `--bs-surface-base`.
7059
+ * @prop --bs-company-switcher-panel-border-color - Panel border. Aliased to `--bs-border-default`.
7060
+ * @prop --bs-company-switcher-shadow - Panel shadow. Aliased to `--bs-shadow-md`.
7061
+ * @prop --bs-company-switcher-max-height - Maximum height of the scrolling list. Defaults to `320px`.
7062
+ * @prop --bs-company-switcher-text-color - Names. Aliased to `--bs-text-default`.
7063
+ * @prop --bs-company-switcher-muted-color - Org. numbers. Aliased to `--bs-text-secondary`.
7064
+ * @prop --bs-company-switcher-header-color - Group headers. Aliased to `--bs-text-muted`.
7065
+ * @prop --bs-company-switcher-z-index - Panel stacking. Aliased to `--bs-z-index-popover`.
7066
+ */
7067
+ interface HTMLBsCompanySwitcherElement extends Components.BsCompanySwitcher, HTMLStencilElement {
7068
+ addEventListener<K extends keyof HTMLBsCompanySwitcherElementEventMap>(type: K, listener: (this: HTMLBsCompanySwitcherElement, ev: BsCompanySwitcherCustomEvent<HTMLBsCompanySwitcherElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
7069
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
7070
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
7071
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
7072
+ removeEventListener<K extends keyof HTMLBsCompanySwitcherElementEventMap>(type: K, listener: (this: HTMLBsCompanySwitcherElement, ev: BsCompanySwitcherCustomEvent<HTMLBsCompanySwitcherElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
7073
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
7074
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
7075
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
7076
+ }
7077
+ var HTMLBsCompanySwitcherElement: {
7078
+ prototype: HTMLBsCompanySwitcherElement;
7079
+ new (): HTMLBsCompanySwitcherElement;
7080
+ };
5571
7081
  interface HTMLBsComposerElementEventMap {
5572
7082
  "bsInput": string;
5573
7083
  "bsSubmit": void;
@@ -5883,6 +7393,29 @@ declare global {
5883
7393
  prototype: HTMLBsDividerElement;
5884
7394
  new (): HTMLBsDividerElement;
5885
7395
  };
7396
+ /**
7397
+ * A centered "nothing to show" block: an icon tile, a heading, a description and an optional action.
7398
+ * Used for empty lists, "no results" and error states inside a panel, card or page section.
7399
+ * Built from `bs-icon-tile` (and, in your `action` slot, usually a `bs-button`).
7400
+ * The component has no role. Live regions belong on a wrapper you control (e.g. `role="status"` on the
7401
+ * element that stays in the DOM while this block appears and disappears).
7402
+ * ## When to use
7403
+ * - A list, table or search result that has nothing to show, or failed to load.
7404
+ * ## When not to use
7405
+ * - A full-page error with a status code -- use `bs-error-page`.
7406
+ * - A transient message -- use `bs-toast` or `bs-snackbar`.
7407
+ * @prop --bs-empty-state-padding-y - Vertical padding. Aliased to `--bs-spacing-700` (56px).
7408
+ * @prop --bs-empty-state-padding-x - Horizontal padding. Aliased to `--bs-spacing-300` (24px).
7409
+ * @prop --bs-empty-state-gap - Gap between tile, heading, description and action. Aliased to `--bs-spacing-150`.
7410
+ * @prop --bs-empty-state-heading-color - Aliased to `--bs-text-default`.
7411
+ * @prop --bs-empty-state-description-color - Aliased to `--bs-text-secondary`.
7412
+ */
7413
+ interface HTMLBsEmptyStateElement extends Components.BsEmptyState, HTMLStencilElement {
7414
+ }
7415
+ var HTMLBsEmptyStateElement: {
7416
+ prototype: HTMLBsEmptyStateElement;
7417
+ new (): HTMLBsEmptyStateElement;
7418
+ };
5886
7419
  interface HTMLBsErrorPageElementEventMap {
5887
7420
  "bsPrimary": void;
5888
7421
  "bsSecondary": void;
@@ -5973,6 +7506,60 @@ declare global {
5973
7506
  prototype: HTMLBsFileUploadItemElement;
5974
7507
  new (): HTMLBsFileUploadItemElement;
5975
7508
  };
7509
+ interface HTMLBsGlobalSearchElementEventMap {
7510
+ "bsInput": string;
7511
+ "bsSearch": string;
7512
+ "bsSelect": BsGlobalSearchSelectDetail;
7513
+ "bsOpenChange": boolean;
7514
+ "bsClearRecent": void;
7515
+ "bsClearSearch": void;
7516
+ "bsSeeAll": void;
7517
+ "bsRetry": void;
7518
+ }
7519
+ /**
7520
+ * A global search combobox: a search field with a dropdown panel of suggestions, results, an empty state
7521
+ * or an error state, plus a keyboard-hint footer. The data, the filtering and the recent-search storage
7522
+ * are all yours: you slot `bs-search-item`s into the sections and tell the component which `status` to show.
7523
+ * Built from `bs-input` (type="search"), `bs-search-item`, `bs-empty-state` (and so `bs-icon-tile`),
7524
+ * `bs-button` and `bs-key` (the footer keycaps).
7525
+ * ## When to use
7526
+ * - An app-wide "find anything" field with recent searches, jump-to shortcuts and grouped results.
7527
+ * ## When not to use
7528
+ * - Filtering the list or table that is already on screen -- use `bs-input type="search"`.
7529
+ * - A list of commands or actions -- use `bs-menu`.
7530
+ * - The complete result set -- link to a full search results page ("See all results").
7531
+ * Put `bs-search-item` children in the light DOM with `slot="recent"`, `slot="jump-to"`,
7532
+ * `slot="top-matches"` or `slot="search-in"`. A section (and its header) is only rendered when its slot has
7533
+ * content. Up/Down arrows move a highlight through the visible items; focus never leaves the field.
7534
+ * Known limit: the items are in your light DOM and the combobox in this shadow root, so
7535
+ * `aria-activedescendant` (an id reference) does not resolve across that boundary in every browser; the
7536
+ * highlighted option also gets `aria-selected="true"`.
7537
+ * @prop --bs-global-search-width - Field and panel width. Defaults to `480px` (Figma); capped at 100%.
7538
+ * @prop --bs-global-search-panel-radius - Aliased to `--bs-border-radius-100`.
7539
+ * @prop --bs-global-search-panel-padding - Aliased to `--bs-spacing-100`.
7540
+ * @prop --bs-global-search-gap - Gap between sections, and between the field and the panel. Aliased to `--bs-spacing-100`.
7541
+ * @prop --bs-global-search-panel-bg - Panel background. Aliased to `--bs-surface-base`.
7542
+ * @prop --bs-global-search-shadow - Panel shadow: Figma elevation level 3 (`0 4px 8px` in `--bs-elevation-high`, 10% black in light mode and 30% in dark mode).
7543
+ * @prop --bs-global-search-z-index - Panel stacking. Aliased to `--bs-z-index-dropdown`.
7544
+ * @prop --bs-global-search-divider-color - Footer divider. Aliased to `--bs-border-default`.
7545
+ * @prop --bs-global-search-header-border-color - Section header underline. Aliased to `--bs-border-neutral-container`.
7546
+ * @prop --bs-global-search-header-color - Section header text. Aliased to `--bs-text-muted`.
7547
+ * @prop --bs-global-search-hint-color - Footer hint text. Aliased to `--bs-text-secondary`.
7548
+ */
7549
+ interface HTMLBsGlobalSearchElement extends Components.BsGlobalSearch, HTMLStencilElement {
7550
+ addEventListener<K extends keyof HTMLBsGlobalSearchElementEventMap>(type: K, listener: (this: HTMLBsGlobalSearchElement, ev: BsGlobalSearchCustomEvent<HTMLBsGlobalSearchElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
7551
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
7552
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
7553
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
7554
+ removeEventListener<K extends keyof HTMLBsGlobalSearchElementEventMap>(type: K, listener: (this: HTMLBsGlobalSearchElement, ev: BsGlobalSearchCustomEvent<HTMLBsGlobalSearchElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
7555
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
7556
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
7557
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
7558
+ }
7559
+ var HTMLBsGlobalSearchElement: {
7560
+ prototype: HTMLBsGlobalSearchElement;
7561
+ new (): HTMLBsGlobalSearchElement;
7562
+ };
5976
7563
  /**
5977
7564
  * A CSS grid layout wrapper. Children are placed in equal-width columns with a token-based gap.
5978
7565
  * `columns` takes either a number (`"3"` becomes `repeat(3, minmax(0, 1fr))`) or any raw
@@ -6120,6 +7707,89 @@ declare global {
6120
7707
  prototype: HTMLBsInputElement;
6121
7708
  new (): HTMLBsInputElement;
6122
7709
  };
7710
+ /**
7711
+ * One key of a keyboard shortcut, e.g. `Ctrl`, `K` or `Esc` -- rendered as a `<kbd>` keycap.
7712
+ * Shows a text label, or an icon (e.g. a return arrow) via the `icon` slot.
7713
+ * ## When to use
7714
+ * - Showing a keyboard shortcut hint next to a control or inside a search field.
7715
+ * - Alone for a single key, or as the children of `bs-key-caps` for a multi-key shortcut.
7716
+ * ## When not to use
7717
+ * - As a button or any clickable control -- a key is a static hint, not interactive.
7718
+ * @prop --bs-key-bg - Cap background. Aliased to `--bs-surface-base`.
7719
+ * @prop --bs-key-border-color - Cap border colour. Aliased to `--bs-border-default`.
7720
+ * @prop --bs-key-radius - Cap corner radius. Aliased to `--bs-border-radius-50`.
7721
+ * @prop --bs-key-padding-x - Horizontal padding. Aliased to `--bs-spacing-75`.
7722
+ * @prop --bs-key-padding-y - Vertical padding. Aliased to `--bs-spacing-50`.
7723
+ * @prop --bs-key-min-width - Smallest cap width, so single characters keep a keycap shape. Defaults to `25px` (Figma).
7724
+ * @prop --bs-key-color - Label colour. Aliased to `--bs-text-secondary`.
7725
+ * @prop --bs-key-font-size - Label size. Aliased to `--bs-font-size-xs` (12px).
7726
+ * @prop --bs-key-icon-size - Icon size. Defaults to `16px` (Figma).
7727
+ */
7728
+ interface HTMLBsKeyElement extends Components.BsKey, HTMLStencilElement {
7729
+ }
7730
+ var HTMLBsKeyElement: {
7731
+ prototype: HTMLBsKeyElement;
7732
+ new (): HTMLBsKeyElement;
7733
+ };
7734
+ /**
7735
+ * A keyboard shortcut of one to four keys joined by "+", e.g. `Ctrl + K`. Give it a `keys` string
7736
+ * (`"Ctrl+Shift+K"`) or array (`['Ctrl', '+']` for a literal plus key), or slot your own `bs-key`
7737
+ * elements -- for example when a key is an icon.
7738
+ * ## When to use
7739
+ * - A shortcut hint beside a menu item, button or inside a search field.
7740
+ * ## When not to use
7741
+ * - Instructions that need prose ("press Enter to submit") -- write a sentence and use a single `bs-key` inline.
7742
+ * - Anything interactive -- keys are static hints.
7743
+ * @prop --bs-key-caps-gap - Gap between keys and separators. Aliased to `--bs-spacing-100`.
7744
+ * @prop --bs-key-caps-separator-color - Colour of the "+" separators. Aliased to `--bs-text-muted`.
7745
+ * @prop --bs-key-caps-disabled-opacity - Opacity of the whole shortcut while `disabled`. Defaults to `0.38` (Figma).
7746
+ */
7747
+ interface HTMLBsKeyCapsElement extends Components.BsKeyCaps, HTMLStencilElement {
7748
+ }
7749
+ var HTMLBsKeyCapsElement: {
7750
+ prototype: HTMLBsKeyCapsElement;
7751
+ new (): HTMLBsKeyCapsElement;
7752
+ };
7753
+ interface HTMLBsKeyboardShortcutsElementEventMap {
7754
+ "bsClose": void;
7755
+ "bsQueryChange": string;
7756
+ "bsSingleKeyChange": boolean;
7757
+ }
7758
+ /**
7759
+ * A searchable reference panel of keyboard shortcuts: heading and close button, a search field, an
7760
+ * optional single-key on/off switch, shortcut groups in two columns and a footer hint. It is a
7761
+ * surface, not a modal -- place it inside `bs-dialog` or a popover.
7762
+ * Built from `bs-card`, `bs-icon-button`, `bs-input`, `bs-switch`, `bs-shortcut-row` (and so
7763
+ * `bs-key-caps` / `bs-key`).
7764
+ * ## When to use
7765
+ * - A "press ? to see shortcuts" help overlay for an app with many shortcuts.
7766
+ * ## When not to use
7767
+ * - A long-form help page or documentation -- link to it instead.
7768
+ * - A list of commands the user can run from it -- use `bs-menu`.
7769
+ * @prop --bs-keyboard-shortcuts-width - Panel width and min-width. Defaults to `720px` (Figma).
7770
+ * @prop --bs-keyboard-shortcuts-bg - Panel background. Aliased to `--bs-surface-base`.
7771
+ * @prop --bs-keyboard-shortcuts-radius - Aliased to `--bs-border-radius-150`.
7772
+ * @prop --bs-keyboard-shortcuts-padding - Aliased to `--bs-spacing-200`.
7773
+ * @prop --bs-keyboard-shortcuts-gap - Gap between sections. Aliased to `--bs-spacing-200`.
7774
+ * @prop --bs-keyboard-shortcuts-shadow - Figma elevation level 4 (`0 8px 8px` in `--bs-elevation-higher`, 12% black in light mode and 25% in dark mode).
7775
+ * @prop --bs-keyboard-shortcuts-column-gap - Gap between the two columns. Aliased to `--bs-spacing-600`.
7776
+ * @prop --bs-keyboard-shortcuts-color - Main text colour. Aliased to `--bs-text-default`.
7777
+ * @prop --bs-keyboard-shortcuts-color-secondary - Titles, captions, footer. Aliased to `--bs-text-secondary`.
7778
+ */
7779
+ interface HTMLBsKeyboardShortcutsElement extends Components.BsKeyboardShortcuts, HTMLStencilElement {
7780
+ addEventListener<K extends keyof HTMLBsKeyboardShortcutsElementEventMap>(type: K, listener: (this: HTMLBsKeyboardShortcutsElement, ev: BsKeyboardShortcutsCustomEvent<HTMLBsKeyboardShortcutsElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
7781
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
7782
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
7783
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
7784
+ removeEventListener<K extends keyof HTMLBsKeyboardShortcutsElementEventMap>(type: K, listener: (this: HTMLBsKeyboardShortcutsElement, ev: BsKeyboardShortcutsCustomEvent<HTMLBsKeyboardShortcutsElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
7785
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
7786
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
7787
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
7788
+ }
7789
+ var HTMLBsKeyboardShortcutsElement: {
7790
+ prototype: HTMLBsKeyboardShortcutsElement;
7791
+ new (): HTMLBsKeyboardShortcutsElement;
7792
+ };
6123
7793
  interface HTMLBsListElementEventMap {
6124
7794
  "bsChange": string | null;
6125
7795
  }
@@ -6234,6 +7904,58 @@ declare global {
6234
7904
  prototype: HTMLBsLogoElement;
6235
7905
  new (): HTMLBsLogoElement;
6236
7906
  };
7907
+ interface HTMLBsMegaMenuElementEventMap {
7908
+ "bsMenuSelect": BsMegaMenuItem;
7909
+ "bsClose": void;
7910
+ }
7911
+ /**
7912
+ * The dropdown panel under a navigation header tab: columns of links grouped under headings, an optional
7913
+ * featured area on the right, and a footer with recently used items and a shortcut hint. Matches the Figma
7914
+ * "Mega menu" (types Columns, Column with featured, Compact and Compact with featured).
7915
+ * This is the panel only. Put it in `bs-navigation-header`'s `menu` slot, which anchors it under the bar at the
7916
+ * header's full width, and toggle the host's `hidden` attribute from the tab that
7917
+ * opens it; the panel does not open or close itself. Escape inside the panel fires `bsClose` so you can close it.
7918
+ * Built from `bs-card` (panel surface), `bs-menu-block` or `bs-compact-menu-block` (the links), `bs-divider` and
7919
+ * `bs-key-caps` (the shortcut). The column layout, headings, featured text and footer row are plain layout
7920
+ * markup: no component covers them.
7921
+ * ## Responsive
7922
+ * The panel reacts to its own width (a container query), not the viewport's. Below 600px it becomes one column (heading
7923
+ * above its links, featured area below), titles and descriptions wrap, links are at least 44px tall, the footer stacks
7924
+ * and the default shortcut hint is hidden (`display: none`; a keyboard hint means nothing on a touch screen). A custom
7925
+ * `footer-end` slot is not hidden.
7926
+ * ## When to use
7927
+ * - A header tab that leads to many destinations that need grouping (Sell, Finance, Inventory).
7928
+ * ## When not to use
7929
+ * - A short list of commands -- use `bs-menu` in a `bs-popover`.
7930
+ * - Switching app or company -- use `bs-app-switcher` or `bs-company-switcher`.
7931
+ * `columns`, `featured` and `recent` are arrays or objects and must be set as JS properties. Each item's `icon` is
7932
+ * the URL of a monochrome SVG. You own the data: listen to `bsMenuSelect` (cancelable: `preventDefault()` cancels the
7933
+ * originating click).
7934
+ * @prop --bs-mega-menu-width - Panel width. Defaults to `1100px` (Figma); capped at the viewport.
7935
+ * @prop --bs-mega-menu-radius - Panel corner radius. Aliased to `--bs-border-radius-150`.
7936
+ * @prop --bs-mega-menu-bg - Panel background. Aliased to `--bs-surface-base`.
7937
+ * @prop --bs-mega-menu-border-color - Panel border. Aliased to `--bs-border-default`.
7938
+ * @prop --bs-mega-menu-shadow - Panel shadow (elevation level 3). Aliased to the `--bs-shadow-*` position and blur tokens and `--bs-elevation-high`.
7939
+ * @prop --bs-mega-menu-padding - Padding around the columns. Aliased to `--bs-spacing-300` and `--bs-spacing-350`.
7940
+ * @prop --bs-mega-menu-gap - Gap between columns. Aliased to `--bs-spacing-300`.
7941
+ * @prop --bs-mega-menu-heading-color - Column headings. Aliased to `--bs-text-muted`.
7942
+ * @prop --bs-mega-menu-text-color - Featured title. Aliased to `--bs-text-default`.
7943
+ * @prop --bs-mega-menu-muted-color - Featured description and footer text. Aliased to `--bs-text-secondary`.
7944
+ */
7945
+ interface HTMLBsMegaMenuElement extends Components.BsMegaMenu, HTMLStencilElement {
7946
+ addEventListener<K extends keyof HTMLBsMegaMenuElementEventMap>(type: K, listener: (this: HTMLBsMegaMenuElement, ev: BsMegaMenuCustomEvent<HTMLBsMegaMenuElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
7947
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
7948
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
7949
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
7950
+ removeEventListener<K extends keyof HTMLBsMegaMenuElementEventMap>(type: K, listener: (this: HTMLBsMegaMenuElement, ev: BsMegaMenuCustomEvent<HTMLBsMegaMenuElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
7951
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
7952
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
7953
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
7954
+ }
7955
+ var HTMLBsMegaMenuElement: {
7956
+ prototype: HTMLBsMegaMenuElement;
7957
+ new (): HTMLBsMegaMenuElement;
7958
+ };
6237
7959
  /**
6238
7960
  * A generic dropdown/popup menu container: a rounded, elevated list of items (typically
6239
7961
  * `bs-menu-item` elements).
@@ -6255,6 +7977,37 @@ declare global {
6255
7977
  prototype: HTMLBsMenuElement;
6256
7978
  new (): HTMLBsMenuElement;
6257
7979
  };
7980
+ /**
7981
+ * A rich entry in a mega menu: an icon tile, a title with an optional "New" chip, and a one-line description.
7982
+ * Matches the Figma "Menu block" component (Default, Hover, Pressed and Focused).
7983
+ * The block is always a native button and only emits events; it never navigates. Hover, pressed and focus come from the
7984
+ * native element. Its accessible name is its text: the title, the badge and the description, read once.
7985
+ * Built from `bs-icon-tile` (the icon) and `bs-chip-informative` (the badge). The icon is either a URL of a
7986
+ * monochrome SVG in `icon` (painted with the theme's icon colour through a CSS mask, so it follows light and
7987
+ * dark mode), or any element in the default slot (an `<svg>` drawn with `currentColor`).
7988
+ * ## When to use
7989
+ * - A destination in a mega menu that needs an icon and a sentence of explanation, usually inside `bs-mega-menu`.
7990
+ * ## When not to use
7991
+ * - A plain text destination -- use `bs-compact-menu-block`.
7992
+ * - A command in a dropdown list -- use `bs-menu-item`.
7993
+ * @prop --bs-menu-block-padding - Padding inside the block. Aliased to `--bs-spacing-150`.
7994
+ * @prop --bs-menu-block-gap - Gap between icon and text. Aliased to `--bs-spacing-150`.
7995
+ * @prop --bs-menu-block-radius - Corner radius. Aliased to `--bs-border-radius-100`.
7996
+ * @prop --bs-menu-block-bg - Resting background. `transparent`.
7997
+ * @prop --bs-menu-block-bg-hover - Aliased to `--bs-surface-hover`.
7998
+ * @prop --bs-menu-block-bg-pressed - Aliased to `--bs-surface-pressed`.
7999
+ * @prop --bs-menu-block-icon-bg - Icon square background. Aliased to `--bs-color-neutral-container`; `--bs-surface-base` while hovered or pressed.
8000
+ * @prop --bs-menu-block-color - Title colour. Aliased to `--bs-text-default`.
8001
+ * @prop --bs-menu-block-color-muted - Description colour. Aliased to `--bs-text-secondary`.
8002
+ * @prop --bs-menu-block-focus-ring - Focus ring colour. Aliased to `--bs-border-info`.
8003
+ * @prop --bs-menu-block-white-space - `white-space` of the title and description. `nowrap` (single line, ellipsis); set `normal` to let them wrap.
8004
+ */
8005
+ interface HTMLBsMenuBlockElement extends Components.BsMenuBlock, HTMLStencilElement {
8006
+ }
8007
+ var HTMLBsMenuBlockElement: {
8008
+ prototype: HTMLBsMenuBlockElement;
8009
+ new (): HTMLBsMenuBlockElement;
8010
+ };
6258
8011
  interface HTMLBsMenuItemElementEventMap {
6259
8012
  "bsSelect": void;
6260
8013
  }
@@ -6530,6 +8283,64 @@ declare global {
6530
8283
  prototype: HTMLBsOnboardingChecklistElement;
6531
8284
  new (): HTMLBsOnboardingChecklistElement;
6532
8285
  };
8286
+ interface HTMLBsPageHeaderElementEventMap {
8287
+ "bsBack": void;
8288
+ "bsFavoriteChange": { favorite: boolean };
8289
+ }
8290
+ /**
8291
+ * The header at the top of a page's content area: breadcrumb trail, the page title (a real heading) with an
8292
+ * optional back button, status and favourite toggle, a meta line, page-level actions on the right and an
8293
+ * optional row of tabs. Matches the Figma "Page header" (types List page, Record, Record with tabs and Sticky
8294
+ * compact).
8295
+ * Built from `bs-breadcrumbs`/`bs-breadcrumb` (slotted by you), `bs-icon-button` (the built-in back and favourite
8296
+ * buttons), `bs-chip-informative` (the status you slot), `bs-button` and `bs-icon-button` (the actions you slot),
8297
+ * `bs-tabs`/`bs-tab` (the tab row you slot) and `bs-divider` (under the tabs). The title block, meta line and
8298
+ * actions area are plain layout markup, because no component covers them. The back arrow and the star are
8299
+ * inline SVG (Phosphor "arrow-left", "star" and "star-fill") until the library has an icon component.
8300
+ * ## Compact (sticky)
8301
+ * `compact` is the condensed state a record header takes once the page scrolls: one row (back, title, status,
8302
+ * meta inline, actions), a level 2 shadow, no breadcrumb and no tabs, and `position: sticky`. Set it yourself
8303
+ * from a scroll observer. Because the header covers the top of the scroll area, give the scroll container
8304
+ * `scroll-padding-top` equal to its height (80px by default) so focused or anchored content is not hidden under it.
8305
+ * ## Responsive
8306
+ * The header reacts to its own width (a container query), not the viewport's. Below 640px the actions wrap
8307
+ * below the title block, slotted buttons grow to 44px tall, the title and meta wrap, and the tab row scrolls
8308
+ * sideways inside itself. The page never gets wider.
8309
+ * ## When to use
8310
+ * - The top of a list page or a single record (an invoice, a customer) inside the app shell's content area.
8311
+ * ## When not to use
8312
+ * - The app-wide bar with logo, search and user: use `bs-navigation-header`.
8313
+ * - The heading of a card, dialog or panel: use that component's own `heading`.
8314
+ * ## Accessibility notes
8315
+ * The root is a plain `div`, not a `<header>`: a `<header>` that is not inside `<main>`/`<article>`/`<section>`
8316
+ * is a second banner landmark. The title is a real heading (`<h1>` by default, `headingLevel` 1 to 6); the
8317
+ * status is next to it, not inside it. If you want a landmark, wrap `bs-page-header` yourself.
8318
+ * @prop --bs-page-header-bg - Background. Aliased to `--bs-surface-base`.
8319
+ * @prop --bs-page-header-padding-x - Left and right padding. Aliased to `--bs-spacing-200`.
8320
+ * @prop --bs-page-header-padding-y - Top and bottom padding. Aliased to `--bs-spacing-300`.
8321
+ * @prop --bs-page-header-gap - Gap between the breadcrumb, title block and tabs, and between the title block and the actions. Aliased to `--bs-spacing-150`.
8322
+ * @prop --bs-page-header-title-gap - Gap between the heading, status and favourite button. Aliased to `--bs-spacing-150`.
8323
+ * @prop --bs-page-header-actions-gap - Gap between the actions. Aliased to `--bs-spacing-100`.
8324
+ * @prop --bs-page-header-text-color - Heading. Aliased to `--bs-text-default`.
8325
+ * @prop --bs-page-header-meta-color - Meta line. Aliased to `--bs-text-secondary`.
8326
+ * @prop --bs-page-header-shadow - Shadow of the compact header (elevation level 2). Aliased to the `--bs-shadow-*` position and blur tokens and `--bs-elevation-medium`.
8327
+ * @prop --bs-page-header-sticky-offset - The `top` of the compact header. Defaults to `0px`; set it to the height of a sticky bar above (e.g. the navigation header).
8328
+ * @prop --bs-page-header-z-index - Stacking order of the compact header. Aliased to `--bs-z-index-sticky`.
8329
+ */
8330
+ interface HTMLBsPageHeaderElement extends Components.BsPageHeader, HTMLStencilElement {
8331
+ addEventListener<K extends keyof HTMLBsPageHeaderElementEventMap>(type: K, listener: (this: HTMLBsPageHeaderElement, ev: BsPageHeaderCustomEvent<HTMLBsPageHeaderElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
8332
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
8333
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
8334
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
8335
+ removeEventListener<K extends keyof HTMLBsPageHeaderElementEventMap>(type: K, listener: (this: HTMLBsPageHeaderElement, ev: BsPageHeaderCustomEvent<HTMLBsPageHeaderElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
8336
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
8337
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
8338
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
8339
+ }
8340
+ var HTMLBsPageHeaderElement: {
8341
+ prototype: HTMLBsPageHeaderElement;
8342
+ new (): HTMLBsPageHeaderElement;
8343
+ };
6533
8344
  interface HTMLBsPaginationElementEventMap {
6534
8345
  "bsPageChange": number;
6535
8346
  }
@@ -6739,6 +8550,47 @@ declare global {
6739
8550
  prototype: HTMLBsRadioElement;
6740
8551
  new (): HTMLBsRadioElement;
6741
8552
  };
8553
+ interface HTMLBsSearchItemElementEventMap {
8554
+ "bsItemSelect": string | undefined;
8555
+ }
8556
+ /**
8557
+ * One result or suggestion row of a search dropdown: a leading icon, a primary line, an optional
8558
+ * description line and trailing text. Static, not focusable -- focus stays in the search field and the
8559
+ * parent (`bs-global-search`) marks the highlighted row with `active`.
8560
+ * Standalone it has no role. `bs-global-search` sets `selectionRole="option"` (and an `id`) on its rows,
8561
+ * the same pattern as `bs-list-item` and `bs-shortcut-row`.
8562
+ * ## When to use
8563
+ * - A suggestion, recent search or result inside `bs-global-search`.
8564
+ * ## When not to use
8565
+ * - A row in a generic list -- use `bs-list-item`.
8566
+ * - A command in a popup menu -- use `bs-menu-item`.
8567
+ * @prop --bs-search-item-min-height - Aliased to `--bs-spacing-600` (48px).
8568
+ * @prop --bs-search-item-padding-y - Aliased to `--bs-spacing-100`.
8569
+ * @prop --bs-search-item-padding-x - Aliased to `--bs-spacing-150`.
8570
+ * @prop --bs-search-item-gap - Aliased to `--bs-spacing-100`.
8571
+ * @prop --bs-search-item-radius - Aliased to `--bs-border-radius-100`.
8572
+ * @prop --bs-search-item-bg - Resting background. `transparent`.
8573
+ * @prop --bs-search-item-bg-active - Active (highlighted) and hover background. Aliased to `--bs-surface-hover`.
8574
+ * @prop --bs-search-item-bg-pressed - Aliased to `--bs-surface-pressed`.
8575
+ * @prop --bs-search-item-color - Primary text. Aliased to `--bs-text-default`.
8576
+ * @prop --bs-search-item-color-muted - Description and trailing text. Aliased to `--bs-text-muted`.
8577
+ * @prop --bs-search-item-color-disabled - Aliased to `--bs-text-on-disabled`.
8578
+ * @prop --bs-search-item-icon-color - Aliased to `--bs-icon-default`.
8579
+ */
8580
+ interface HTMLBsSearchItemElement extends Components.BsSearchItem, HTMLStencilElement {
8581
+ addEventListener<K extends keyof HTMLBsSearchItemElementEventMap>(type: K, listener: (this: HTMLBsSearchItemElement, ev: BsSearchItemCustomEvent<HTMLBsSearchItemElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
8582
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
8583
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
8584
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
8585
+ removeEventListener<K extends keyof HTMLBsSearchItemElementEventMap>(type: K, listener: (this: HTMLBsSearchItemElement, ev: BsSearchItemCustomEvent<HTMLBsSearchItemElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
8586
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
8587
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
8588
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
8589
+ }
8590
+ var HTMLBsSearchItemElement: {
8591
+ prototype: HTMLBsSearchItemElement;
8592
+ new (): HTMLBsSearchItemElement;
8593
+ };
6742
8594
  interface HTMLBsSessionTimeoutElementEventMap {
6743
8595
  "bsPrimary": { password?: string } | void;
6744
8596
  "bsSecondary": void;
@@ -6786,6 +8638,28 @@ declare global {
6786
8638
  prototype: HTMLBsSessionTimeoutElement;
6787
8639
  new (): HTMLBsSessionTimeoutElement;
6788
8640
  };
8641
+ /**
8642
+ * One row of a shortcut list: an action label on the left and its keyboard shortcut on the right.
8643
+ * Static information, not interactive. Standalone it has no role; `bs-keyboard-shortcuts` sets
8644
+ * `selectionRole="listitem"` on its rows (same pattern as `bs-list-item`).
8645
+ * Built from `bs-key-caps` (and so `bs-key`).
8646
+ * ## When to use
8647
+ * - A line in a keyboard-shortcut reference, usually inside `bs-keyboard-shortcuts`.
8648
+ * ## When not to use
8649
+ * - A clickable command or menu entry -- use `bs-menu-item` (which has its own shortcut slot).
8650
+ * @prop --bs-shortcut-row-height - Row height. Defaults to `36px` (Figma).
8651
+ * @prop --bs-shortcut-row-padding-x - Horizontal padding. Aliased to `--bs-spacing-100`.
8652
+ * @prop --bs-shortcut-row-gap - Gap between label and keys. Aliased to `--bs-spacing-100`.
8653
+ * @prop --bs-shortcut-row-radius - Corner radius. Aliased to `--bs-border-radius-75`.
8654
+ * @prop --bs-shortcut-row-color - Label colour. Aliased to `--bs-text-default`.
8655
+ * @prop --bs-shortcut-row-color-disabled - Label colour while `disabled`. Aliased to `--bs-text-on-disabled`.
8656
+ */
8657
+ interface HTMLBsShortcutRowElement extends Components.BsShortcutRow, HTMLStencilElement {
8658
+ }
8659
+ var HTMLBsShortcutRowElement: {
8660
+ prototype: HTMLBsShortcutRowElement;
8661
+ new (): HTMLBsShortcutRowElement;
8662
+ };
6789
8663
  interface HTMLBsSidePanelElementEventMap {
6790
8664
  "bsClose": void;
6791
8665
  }
@@ -7435,7 +9309,10 @@ declare global {
7435
9309
  "bs-ai-disclaimer": HTMLBsAiDisclaimerElement;
7436
9310
  "bs-ai-greeting": HTMLBsAiGreetingElement;
7437
9311
  "bs-ai-thinking": HTMLBsAiThinkingElement;
9312
+ "bs-app-recent-item": HTMLBsAppRecentItemElement;
7438
9313
  "bs-app-shell": HTMLBsAppShellElement;
9314
+ "bs-app-switcher": HTMLBsAppSwitcherElement;
9315
+ "bs-app-tile": HTMLBsAppTileElement;
7439
9316
  "bs-attachment": HTMLBsAttachmentElement;
7440
9317
  "bs-attachment-list": HTMLBsAttachmentListElement;
7441
9318
  "bs-avatar": HTMLBsAvatarElement;
@@ -7458,6 +9335,9 @@ declare global {
7458
9335
  "bs-chip-informative": HTMLBsChipInformativeElement;
7459
9336
  "bs-chip-input": HTMLBsChipInputElement;
7460
9337
  "bs-citation-preview": HTMLBsCitationPreviewElement;
9338
+ "bs-command-palette": HTMLBsCommandPaletteElement;
9339
+ "bs-compact-menu-block": HTMLBsCompactMenuBlockElement;
9340
+ "bs-company-switcher": HTMLBsCompanySwitcherElement;
7461
9341
  "bs-composer": HTMLBsComposerElement;
7462
9342
  "bs-composer-status-banner": HTMLBsComposerStatusBannerElement;
7463
9343
  "bs-container": HTMLBsContainerElement;
@@ -7466,18 +9346,25 @@ declare global {
7466
9346
  "bs-datepicker": HTMLBsDatepickerElement;
7467
9347
  "bs-dialog": HTMLBsDialogElement;
7468
9348
  "bs-divider": HTMLBsDividerElement;
9349
+ "bs-empty-state": HTMLBsEmptyStateElement;
7469
9350
  "bs-error-page": HTMLBsErrorPageElement;
7470
9351
  "bs-file-upload": HTMLBsFileUploadElement;
7471
9352
  "bs-file-upload-item": HTMLBsFileUploadItemElement;
9353
+ "bs-global-search": HTMLBsGlobalSearchElement;
7472
9354
  "bs-grid": HTMLBsGridElement;
7473
9355
  "bs-icon-button": HTMLBsIconButtonElement;
7474
9356
  "bs-icon-tile": HTMLBsIconTileElement;
7475
9357
  "bs-inline-tab": HTMLBsInlineTabElement;
7476
9358
  "bs-input": HTMLBsInputElement;
9359
+ "bs-key": HTMLBsKeyElement;
9360
+ "bs-key-caps": HTMLBsKeyCapsElement;
9361
+ "bs-keyboard-shortcuts": HTMLBsKeyboardShortcutsElement;
7477
9362
  "bs-list": HTMLBsListElement;
7478
9363
  "bs-list-item": HTMLBsListItemElement;
7479
9364
  "bs-logo": HTMLBsLogoElement;
9365
+ "bs-mega-menu": HTMLBsMegaMenuElement;
7480
9366
  "bs-menu": HTMLBsMenuElement;
9367
+ "bs-menu-block": HTMLBsMenuBlockElement;
7481
9368
  "bs-menu-item": HTMLBsMenuItemElement;
7482
9369
  "bs-message": HTMLBsMessageElement;
7483
9370
  "bs-message-list": HTMLBsMessageListElement;
@@ -7485,6 +9372,7 @@ declare global {
7485
9372
  "bs-navigation-drawer-item": HTMLBsNavigationDrawerItemElement;
7486
9373
  "bs-navigation-header": HTMLBsNavigationHeaderElement;
7487
9374
  "bs-onboarding-checklist": HTMLBsOnboardingChecklistElement;
9375
+ "bs-page-header": HTMLBsPageHeaderElement;
7488
9376
  "bs-pagination": HTMLBsPaginationElement;
7489
9377
  "bs-popover": HTMLBsPopoverElement;
7490
9378
  "bs-product-tour": HTMLBsProductTourElement;
@@ -7492,7 +9380,9 @@ declare global {
7492
9380
  "bs-progress-linear": HTMLBsProgressLinearElement;
7493
9381
  "bs-qr-code": HTMLBsQrCodeElement;
7494
9382
  "bs-radio": HTMLBsRadioElement;
9383
+ "bs-search-item": HTMLBsSearchItemElement;
7495
9384
  "bs-session-timeout": HTMLBsSessionTimeoutElement;
9385
+ "bs-shortcut-row": HTMLBsShortcutRowElement;
7496
9386
  "bs-side-panel": HTMLBsSidePanelElement;
7497
9387
  "bs-skeleton": HTMLBsSkeletonElement;
7498
9388
  "bs-slider": HTMLBsSliderElement;
@@ -7517,6 +9407,8 @@ declare global {
7517
9407
  }
7518
9408
  }
7519
9409
  declare namespace LocalJSX {
9410
+ type OneOf<K extends string, PropT, AttrT = PropT> = { [P in K]: PropT } & { [P in `attr:${K}`]?: never } | { [P in `attr:${K}`]: AttrT } & { [P in K]?: never };
9411
+
7520
9412
  /**
7521
9413
  * A single collapsible section -- a clickable header (optional leading icon, label, trailing
7522
9414
  * caret) that reveals or hides a body content area.
@@ -7660,6 +9552,57 @@ declare namespace LocalJSX {
7660
9552
  */
7661
9553
  "label"?: string;
7662
9554
  }
9555
+ /**
9556
+ * A full-width row for one app: a small icon tile, the app name and a description line (for example
9557
+ * "Opened 10 min ago · Nordlys Handel AS"). Matches the Figma "Recent item" component (Default, Current,
9558
+ * Hover, Pressed and Focus).
9559
+ * The row is always a native button and only emits events; it never navigates. `current` marks the app you are in
9560
+ * (`aria-current="true"`); `disabled` dims it, sets `aria-disabled` and removes it from the tab order.
9561
+ * Built from `bs-icon-tile`. The icon is either a URL of a monochrome SVG in `icon` (painted with the theme's
9562
+ * icon colour through a CSS mask) or any element in the default slot.
9563
+ * ## When to use
9564
+ * - A recently opened app, or a search result with a description, inside `bs-app-switcher`.
9565
+ * ## When not to use
9566
+ * - An app in a launcher grid -- use `bs-app-tile`.
9567
+ * - A generic list row -- use `bs-list-item`.
9568
+ * @prop --bs-app-recent-item-padding-x - Aliased to `--bs-spacing-100`.
9569
+ * @prop --bs-app-recent-item-padding-y - Aliased to `--bs-spacing-100`.
9570
+ * @prop --bs-app-recent-item-gap - Gap between icon and text. Aliased to `--bs-spacing-150`.
9571
+ * @prop --bs-app-recent-item-radius - Aliased to `--bs-border-radius-100`.
9572
+ * @prop --bs-app-recent-item-bg - Resting background. `transparent`.
9573
+ * @prop --bs-app-recent-item-bg-hover - Aliased to `--bs-surface-hover`.
9574
+ * @prop --bs-app-recent-item-bg-pressed - Aliased to `--bs-surface-pressed`.
9575
+ * @prop --bs-app-recent-item-bg-current - Aliased to `--bs-surface-selected`.
9576
+ * @prop --bs-app-recent-item-icon-bg - Icon square background. Aliased to `--bs-color-neutral-container`; `--bs-surface-base` while hovered, pressed or current.
9577
+ * @prop --bs-app-recent-item-color - Name colour. Aliased to `--bs-text-default`.
9578
+ * @prop --bs-app-recent-item-color-muted - Description colour. Aliased to `--bs-text-secondary`.
9579
+ * @prop --bs-app-recent-item-color-disabled - Name, description and icon colour when disabled. Aliased to `--bs-text-on-disabled`.
9580
+ * @prop --bs-app-recent-item-focus-ring - Focus ring colour. Aliased to `--bs-border-neutral-focus`.
9581
+ */
9582
+ interface BsAppRecentItem {
9583
+ /**
9584
+ * The app you are in right now: selected background and `aria-current="true"`.
9585
+ * @default false
9586
+ */
9587
+ "current"?: boolean;
9588
+ /**
9589
+ * Second line under the name.
9590
+ */
9591
+ "description"?: string;
9592
+ /**
9593
+ * Dims the row, sets `aria-disabled` and takes it out of the tab order.
9594
+ * @default false
9595
+ */
9596
+ "disabled"?: boolean;
9597
+ /**
9598
+ * URL of a monochrome SVG painted with the icon colour. The default slot overrides it.
9599
+ */
9600
+ "icon"?: string;
9601
+ /**
9602
+ * The app name, and the accessible name of the row together with the description.
9603
+ */
9604
+ "name": string;
9605
+ }
7663
9606
  /**
7664
9607
  * The page frame: a header across the top, and below it a navigation | main | aside row, laid out
7665
9608
  * with CSS grid. The main column scrolls independently of the header and the side columns.
@@ -7689,89 +9632,328 @@ declare namespace LocalJSX {
7689
9632
  "fullHeight"?: boolean;
7690
9633
  }
7691
9634
  /**
7692
- * A single file attachment preview for `bs-composer` -- an image thumbnail, or a filename card
7693
- * with a colored file-type badge (PDF/Document), with an optional upload-in-progress spinner and
7694
- * a hover/focus-revealed remove button (a `bs-icon-button` with `size="xs"` `variant="neutral"` --
7695
- * the same 16x16px compact tier `bs-icon-button` documents as meant for exactly this kind of
7696
- * chip/tag "remove" control).
9635
+ * The panel of an app launcher ("EG apps"): a header with a "Manage" action, a search field, your apps as a
9636
+ * grid (or Recent plus All apps), search results, and a footer link to browse all products. It also has
9637
+ * no-results, loading, error and empty states. Matches the Figma "App switcher" (states Default, With recent,
9638
+ * Searching, No results, Loading, Error and Empty).
9639
+ * This is the panel only. To open it from a button, wrap it in `bs-popover`.
9640
+ * Built from `bs-card` (panel surface), `bs-input` (search), `bs-app-tile` and `bs-app-recent-item` (apps),
9641
+ * `bs-empty-state` (no results, error, empty), `bs-skeleton` (loading), `bs-button` (Clear search, Try
9642
+ * again, Request access) and `bs-divider`. "Manage" and "Browse all" are native links (or buttons when
9643
+ * there is no URL): `bs-button` has no link mode and the library has no link component.
7697
9644
  * ## When to use
7698
- * - Rendered by the consuming app for each file a user has attached to a Genie AI chat message,
7699
- * typically alongside or inside `bs-composer`.
9645
+ * - Letting a user jump between the products they have access to, from an app header.
7700
9646
  * ## When not to use
7701
- * - A generic file-upload control -- this is a preview-only presentational component. The
7702
- * consuming app owns the actual file picker/upload logic and drives `loading` from that state.
7703
- * @prop --bs-attachment-size - Width/height of the image thumbnail and of the card. Defaults to 112px.
7704
- * @prop --bs-attachment-radius - Corner radius of the thumbnail/card. Aliased to
7705
- * `--bs-border-radius-100`.
7706
- * @prop --bs-attachment-border-color - Border color of the card / loading image wrap. Aliased to
7707
- * `--bs-border-default`.
7708
- * @prop --bs-attachment-card-bg - Card background. Aliased to `--bs-surface-base`.
7709
- * @prop --bs-attachment-filename-color - Filename text color. Aliased to `--bs-text-default`.
7710
- * @prop --bs-attachment-badge-bg-pdf - PDF badge background. Aliased to `--bs-badge-bg-error`.
7711
- * @prop --bs-attachment-badge-bg-document - Document badge background. Aliased to
7712
- * `--bs-badge-bg-info`.
9647
+ * - Navigation inside one app -- use `bs-menu` or the app shell navigation.
9648
+ * - Switching company -- use `bs-company-switcher`.
9649
+ * `apps` and `recent` are arrays and must be set as JS properties. Each app's `icon` is the URL of a
9650
+ * monochrome SVG. You own the data: listen to `bsAppSelect` (cancelable: `preventDefault()` cancels the
9651
+ * originating click), and drive `status` and `query` yourself. An empty `apps` list while `status` is
9652
+ * `ready` shows the empty state.
9653
+ * @prop --bs-app-switcher-width - Panel width. Defaults to `360px` (Figma); capped at the viewport.
9654
+ * @prop --bs-app-switcher-radius - Panel corner radius. Aliased to `--bs-border-radius-150`.
9655
+ * @prop --bs-app-switcher-bg - Panel background. Aliased to `--bs-surface-base`.
9656
+ * @prop --bs-app-switcher-border-color - Panel border. Aliased to `--bs-border-default`.
9657
+ * @prop --bs-app-switcher-shadow - Panel shadow (elevation level 4). Aliased to the `--bs-shadow-*` position and blur tokens and `--bs-elevation-higher`.
9658
+ * @prop --bs-app-switcher-padding - Side padding of the content. Aliased to `--bs-spacing-150`.
9659
+ * @prop --bs-app-switcher-text-color - Heading and links in the header. Aliased to `--bs-text-default`.
9660
+ * @prop --bs-app-switcher-header-color - Group headers. Aliased to `--bs-text-secondary`.
9661
+ * @prop --bs-app-switcher-link-color - Browse link. Aliased to `--bs-text-action`.
9662
+ * @prop --bs-app-switcher-focus-ring - Link focus ring. Aliased to `--bs-border-neutral-focus`.
7713
9663
  */
7714
- interface BsAttachment {
9664
+ interface BsAppSwitcher {
7715
9665
  /**
7716
- * The filename shown on the card. Only used when `type` is "pdf" or "document".
7717
- * @default 'Attachment'
9666
+ * Header of the all apps group.
9667
+ * @default 'All apps'
7718
9668
  */
7719
- "fileName"?: string;
9669
+ "allAppsLabel"?: string;
7720
9670
  /**
7721
- * Accessible alt text for the image thumbnail. Only used when `type` is "image".
7722
- * @default ''
9671
+ * The apps the user can open. JS property only (an array cannot be an attribute).
9672
+ * @default []
7723
9673
  */
7724
- "imageAlt"?: string;
9674
+ "apps"?: BsApp[];
7725
9675
  /**
7726
- * The thumbnail image URL. Only used when `type` is "image".
9676
+ * URL of the Browse all link. Without it it is a button that only fires `bsBrowseAll`.
7727
9677
  */
7728
- "imageSrc"?: string;
9678
+ "browseHref"?: string;
7729
9679
  /**
7730
- * Shows an upload-in-progress spinner (blurred + overlaid for images, in the badge for files).
7731
- * @default false
9680
+ * Text of the footer link.
9681
+ * @default 'Browse all EG products'
7732
9682
  */
7733
- "loading"?: boolean;
9683
+ "browseLabel"?: string;
7734
9684
  /**
7735
- * Fires when the remove button is clicked.
9685
+ * Text of the Clear search button.
9686
+ * @default 'Clear search'
7736
9687
  */
7737
- "onBsRemove"?: (event: BsAttachmentCustomEvent<void>) => void;
9688
+ "clearLabel"?: string;
7738
9689
  /**
7739
- * Whether the hover/focus-revealed remove button is rendered at all.
7740
- * @default true
9690
+ * `id` of the app you are in: selected background and `aria-current`.
7741
9691
  */
7742
- "removable"?: boolean;
9692
+ "currentId"?: string;
7743
9693
  /**
7744
- * Prefix of the remove button's accessible name ("Remove attachment: {fileName}").
7745
- * @default 'Remove attachment'
9694
+ * Empty description.
9695
+ * @default 'Ask your administrator for access, or browse all EG products to see what’s available.'
7746
9696
  */
7747
- "removeLabel"?: string;
9697
+ "emptyDescription"?: string;
7748
9698
  /**
7749
- * Which kind of attachment preview to render.
7750
- * @default 'image'
9699
+ * Empty heading (no apps assigned).
9700
+ * @default 'No apps assigned yet'
7751
9701
  */
7752
- "type"?: BsAttachmentType;
9702
+ "emptyHeading"?: string;
7753
9703
  /**
7754
- * Accessible name of the upload spinner while `loading`.
7755
- * @default 'Uploading'
9704
+ * Error description.
9705
+ * @default 'Check your connection and try again. Your work in the current app is not affected.'
7756
9706
  */
7757
- "uploadingLabel"?: string;
7758
- }
7759
- /**
7760
- * A horizontally-scrolling row wrapper for one or more `bs-attachment` previews, for slotting into
7761
- * `bs-composer`'s `attachments` slot when a Genie AI chat message has file attachments.
7762
- * ## When to use
7763
- * - Wrapping any number of `bs-attachment` elements the user has attached to a message, so they
7764
- * lay out in a single row and scroll horizontally instead of wrapping/overflowing once there
7765
- * are more than fit the available width.
7766
- * ## When not to use
7767
- * - A single attachment on its own — just render `bs-attachment` directly, this wrapper's
7768
- * scroll/fade affordance only matters once there's more content than fits.
7769
- * @prop --bs-attachment-list-gap - Gap between attachments. Matches the 10px Figma spec (not tied
7770
- * to the `--bs-spacing-*` scale, which only has 8px/12px neighbors).
7771
- * @prop --bs-attachment-list-padding - Padding around the row. Aliased to `--bs-spacing-150`.
7772
- * @prop --bs-attachment-list-fade-color - Color the right-edge fade blends into. Aliased to
7773
- * `--bs-static-white`.
7774
- * @prop --bs-attachment-list-fade-width - Width of the right-edge fade overlay. Aliased to
9707
+ "errorDescription"?: string;
9708
+ /**
9709
+ * Error heading.
9710
+ * @default 'Couldn’t load your apps'
9711
+ */
9712
+ "errorHeading"?: string;
9713
+ /**
9714
+ * Panel heading.
9715
+ * @default 'EG apps'
9716
+ */
9717
+ "heading"?: string;
9718
+ /**
9719
+ * Announced while loading.
9720
+ * @default 'Loading apps…'
9721
+ */
9722
+ "loadingLabel"?: string;
9723
+ /**
9724
+ * URL of the Manage link. Without it Manage is a button that only fires `bsManage`.
9725
+ */
9726
+ "manageHref"?: string;
9727
+ /**
9728
+ * Text of the Manage link.
9729
+ * @default 'Manage'
9730
+ */
9731
+ "manageLabel"?: string;
9732
+ /**
9733
+ * No-results description.
9734
+ * @default 'Check the spelling, or browse all EG products to find more apps.'
9735
+ */
9736
+ "noResultsDescription"?: string;
9737
+ /**
9738
+ * No-results heading. `{query}` is replaced by the query.
9739
+ * @default 'No apps match “{query}”'
9740
+ */
9741
+ "noResultsHeading"?: string;
9742
+ /**
9743
+ * Fires when an app is chosen (click or Enter), with the app. Cancelable: `preventDefault()` cancels the originating click.
9744
+ */
9745
+ "onBsAppSelect"?: (event: BsAppSwitcherCustomEvent<BsApp>) => void;
9746
+ /**
9747
+ * Fires when Browse all is pressed.
9748
+ */
9749
+ "onBsBrowseAll"?: (event: BsAppSwitcherCustomEvent<void>) => void;
9750
+ /**
9751
+ * Fires when the search is cleared with the Clear search button or Escape.
9752
+ */
9753
+ "onBsClearSearch"?: (event: BsAppSwitcherCustomEvent<void>) => void;
9754
+ /**
9755
+ * Fires when Manage is pressed.
9756
+ */
9757
+ "onBsManage"?: (event: BsAppSwitcherCustomEvent<void>) => void;
9758
+ /**
9759
+ * Fires when the search text changes through user interaction, with the new text.
9760
+ */
9761
+ "onBsQueryChange"?: (event: BsAppSwitcherCustomEvent<string>) => void;
9762
+ /**
9763
+ * Fires when Request access is pressed.
9764
+ */
9765
+ "onBsRequestAccess"?: (event: BsAppSwitcherCustomEvent<void>) => void;
9766
+ /**
9767
+ * Fires when Try again is pressed.
9768
+ */
9769
+ "onBsRetry"?: (event: BsAppSwitcherCustomEvent<void>) => void;
9770
+ /**
9771
+ * The search text. Mutable: typing, Escape and "Clear search" update it.
9772
+ * @default ''
9773
+ */
9774
+ "query"?: string;
9775
+ /**
9776
+ * Recently opened apps, most recent first. When there are any, the panel shows Recent and All apps. JS property only.
9777
+ * @default []
9778
+ */
9779
+ "recent"?: BsAppRecent[];
9780
+ /**
9781
+ * Header of the recent group.
9782
+ * @default 'Recent'
9783
+ */
9784
+ "recentLabel"?: string;
9785
+ /**
9786
+ * Text of the Request access button.
9787
+ * @default 'Request access'
9788
+ */
9789
+ "requestAccessLabel"?: string;
9790
+ /**
9791
+ * Search header with one result ("1 result").
9792
+ * @default 'result'
9793
+ */
9794
+ "resultLabel"?: string;
9795
+ /**
9796
+ * Search header with several results ("2 results").
9797
+ * @default 'results'
9798
+ */
9799
+ "resultsLabel"?: string;
9800
+ /**
9801
+ * Text of the Try again button.
9802
+ * @default 'Try again'
9803
+ */
9804
+ "retryLabel"?: string;
9805
+ /**
9806
+ * Placeholder (and accessible name) of the search field.
9807
+ * @default 'Find an app'
9808
+ */
9809
+ "searchPlaceholder"?: string;
9810
+ /**
9811
+ * `loading` shows skeleton tiles, `error` the failure state.
9812
+ * @default 'ready'
9813
+ */
9814
+ "status"?: BsAppSwitcherStatus;
9815
+ /**
9816
+ * Header of the default group when there are no recent apps.
9817
+ * @default 'Your apps'
9818
+ */
9819
+ "yourAppsLabel"?: string;
9820
+ }
9821
+ /**
9822
+ * One app in an app launcher: an icon tile above a short label. Matches the Figma "App tile" component
9823
+ * (Size Grid and Compact, each Default, Hover, Pressed, Focus, Current and Disabled).
9824
+ * The tile is always a native button and only emits events; it never navigates. Hover, pressed and focus come from the
9825
+ * native element; `current` marks the app you are in (`aria-current="true"`); `disabled` dims it, sets
9826
+ * `aria-disabled` and removes it from the tab order.
9827
+ * Built from `bs-icon-tile`. The icon is either a URL of a monochrome SVG in `icon` (painted with the
9828
+ * theme's icon colour through a CSS mask, so it follows light and dark mode), or any element in the default
9829
+ * slot (an `<svg>` drawn with `currentColor`).
9830
+ * ## When to use
9831
+ * - An app in a launcher grid, usually inside `bs-app-switcher`.
9832
+ * ## When not to use
9833
+ * - A row with a description or "recently opened" line -- use `bs-app-recent-item`.
9834
+ * - A command in a menu -- use `bs-menu-item`.
9835
+ * @prop --bs-app-tile-icon-size - Size of the icon square. `44px` in `grid` (Figma) and `--bs-sizing-400` in `compact`.
9836
+ * @prop --bs-app-tile-padding - Padding inside the tile. Aliased to `--bs-spacing-150` (`grid`) or `--bs-spacing-100` (`compact`).
9837
+ * @prop --bs-app-tile-gap - Gap between icon and label. Aliased to `--bs-spacing-150` (`grid`) or `--bs-spacing-50` (`compact`).
9838
+ * @prop --bs-app-tile-radius - Corner radius. Aliased to `--bs-border-radius-100`.
9839
+ * @prop --bs-app-tile-bg - Resting background. `transparent`.
9840
+ * @prop --bs-app-tile-bg-hover - Aliased to `--bs-surface-hover`.
9841
+ * @prop --bs-app-tile-bg-pressed - Aliased to `--bs-surface-pressed`.
9842
+ * @prop --bs-app-tile-bg-current - Aliased to `--bs-surface-selected`.
9843
+ * @prop --bs-app-tile-icon-bg - Icon square background. Aliased to `--bs-color-neutral-container`; `--bs-surface-base` while hovered, pressed or current.
9844
+ * @prop --bs-app-tile-color - Label colour. Aliased to `--bs-text-default`.
9845
+ * @prop --bs-app-tile-color-disabled - Label and icon colour when disabled. Aliased to `--bs-text-on-disabled`.
9846
+ * @prop --bs-app-tile-focus-ring - Focus ring colour. Aliased to `--bs-border-neutral-focus`.
9847
+ */
9848
+ interface BsAppTile {
9849
+ /**
9850
+ * The app you are in right now: selected background and `aria-current="true"`.
9851
+ * @default false
9852
+ */
9853
+ "current"?: boolean;
9854
+ /**
9855
+ * Dims the tile, sets `aria-disabled` and takes it out of the tab order.
9856
+ * @default false
9857
+ */
9858
+ "disabled"?: boolean;
9859
+ /**
9860
+ * URL of a monochrome SVG painted with the icon colour. The default slot overrides it.
9861
+ */
9862
+ "icon"?: string;
9863
+ /**
9864
+ * The app name, shown under the icon and used as the accessible name.
9865
+ */
9866
+ "name": string;
9867
+ /**
9868
+ * `grid` is the 3-column launcher tile; `compact` the smaller 4-column one.
9869
+ * @default 'grid'
9870
+ */
9871
+ "size"?: BsAppTileSize;
9872
+ }
9873
+ /**
9874
+ * A single file attachment preview for `bs-composer` -- an image thumbnail, or a filename card
9875
+ * with a colored file-type badge (PDF/Document), with an optional upload-in-progress spinner and
9876
+ * a hover/focus-revealed remove button (a `bs-icon-button` with `size="xs"` `variant="neutral"` --
9877
+ * the same 16x16px compact tier `bs-icon-button` documents as meant for exactly this kind of
9878
+ * chip/tag "remove" control).
9879
+ * ## When to use
9880
+ * - Rendered by the consuming app for each file a user has attached to a Genie AI chat message,
9881
+ * typically alongside or inside `bs-composer`.
9882
+ * ## When not to use
9883
+ * - A generic file-upload control -- this is a preview-only presentational component. The
9884
+ * consuming app owns the actual file picker/upload logic and drives `loading` from that state.
9885
+ * @prop --bs-attachment-size - Width/height of the image thumbnail and of the card. Defaults to 112px.
9886
+ * @prop --bs-attachment-radius - Corner radius of the thumbnail/card. Aliased to
9887
+ * `--bs-border-radius-100`.
9888
+ * @prop --bs-attachment-border-color - Border color of the card / loading image wrap. Aliased to
9889
+ * `--bs-border-default`.
9890
+ * @prop --bs-attachment-card-bg - Card background. Aliased to `--bs-surface-base`.
9891
+ * @prop --bs-attachment-filename-color - Filename text color. Aliased to `--bs-text-default`.
9892
+ * @prop --bs-attachment-badge-bg-pdf - PDF badge background. Aliased to `--bs-badge-bg-error`.
9893
+ * @prop --bs-attachment-badge-bg-document - Document badge background. Aliased to
9894
+ * `--bs-badge-bg-info`.
9895
+ */
9896
+ interface BsAttachment {
9897
+ /**
9898
+ * The filename shown on the card. Only used when `type` is "pdf" or "document".
9899
+ * @default 'Attachment'
9900
+ */
9901
+ "fileName"?: string;
9902
+ /**
9903
+ * Accessible alt text for the image thumbnail. Only used when `type` is "image".
9904
+ * @default ''
9905
+ */
9906
+ "imageAlt"?: string;
9907
+ /**
9908
+ * The thumbnail image URL. Only used when `type` is "image".
9909
+ */
9910
+ "imageSrc"?: string;
9911
+ /**
9912
+ * Shows an upload-in-progress spinner (blurred + overlaid for images, in the badge for files).
9913
+ * @default false
9914
+ */
9915
+ "loading"?: boolean;
9916
+ /**
9917
+ * Fires when the remove button is clicked.
9918
+ */
9919
+ "onBsRemove"?: (event: BsAttachmentCustomEvent<void>) => void;
9920
+ /**
9921
+ * Whether the hover/focus-revealed remove button is rendered at all.
9922
+ * @default true
9923
+ */
9924
+ "removable"?: boolean;
9925
+ /**
9926
+ * Prefix of the remove button's accessible name ("Remove attachment: {fileName}").
9927
+ * @default 'Remove attachment'
9928
+ */
9929
+ "removeLabel"?: string;
9930
+ /**
9931
+ * Which kind of attachment preview to render.
9932
+ * @default 'image'
9933
+ */
9934
+ "type"?: BsAttachmentType;
9935
+ /**
9936
+ * Accessible name of the upload spinner while `loading`.
9937
+ * @default 'Uploading'
9938
+ */
9939
+ "uploadingLabel"?: string;
9940
+ }
9941
+ /**
9942
+ * A horizontally-scrolling row wrapper for one or more `bs-attachment` previews, for slotting into
9943
+ * `bs-composer`'s `attachments` slot when a Genie AI chat message has file attachments.
9944
+ * ## When to use
9945
+ * - Wrapping any number of `bs-attachment` elements the user has attached to a message, so they
9946
+ * lay out in a single row and scroll horizontally instead of wrapping/overflowing once there
9947
+ * are more than fit the available width.
9948
+ * ## When not to use
9949
+ * - A single attachment on its own — just render `bs-attachment` directly, this wrapper's
9950
+ * scroll/fade affordance only matters once there's more content than fits.
9951
+ * @prop --bs-attachment-list-gap - Gap between attachments. Matches the 10px Figma spec (not tied
9952
+ * to the `--bs-spacing-*` scale, which only has 8px/12px neighbors).
9953
+ * @prop --bs-attachment-list-padding - Padding around the row. Aliased to `--bs-spacing-150`.
9954
+ * @prop --bs-attachment-list-fade-color - Color the right-edge fade blends into. Aliased to
9955
+ * `--bs-static-white`.
9956
+ * @prop --bs-attachment-list-fade-width - Width of the right-edge fade overlay. Aliased to
7775
9957
  * `--bs-spacing-800`.
7776
9958
  * @prop --bs-attachment-list-scrollbar-thumb - Color of the scrollbar thumb that appears on
7777
9959
  * hover/focus once the row is scrollable. Aliased to `--bs-neutral-300`.
@@ -8826,6 +11008,349 @@ declare namespace LocalJSX {
8826
11008
  */
8827
11009
  "sourceName"?: string;
8828
11010
  }
11011
+ /**
11012
+ * A Ctrl+K command palette: a modal with a search field, grouped commands, navigation and records, a
11013
+ * no-results view and a keyboard-hint footer. The data, the filtering, the command registry and the
11014
+ * recent-items storage are all yours: you slot `bs-search-item`s into the sections and set `status`.
11015
+ * Built from a native `<dialog>` (opened with `showModal()`, so focus is trapped, the page behind is inert
11016
+ * and the backdrop is the scrim), `bs-input` (type="search"), `bs-search-item`, `bs-key` (footer hints and
11017
+ * the Esc cap), `bs-chip-informative` (the scope chip) and `bs-spinner` (loading). Slot a `bs-key-caps` with
11018
+ * `slot="trailing"` inside an item to show a command's shortcut.
11019
+ * ## When to use
11020
+ * - An app-wide "do anything" entry point opened with a hotkey: run commands, navigate, open records.
11021
+ * ## When not to use
11022
+ * - A plain search box with a dropdown -- use `bs-global-search`.
11023
+ * - A small list of actions on one control -- use `bs-menu`.
11024
+ * A `>` as the first character of the field switches to commands-only mode (`commandsOnly`, reflected as
11025
+ * `commands-only`). The component filters nothing: listen to `bsInput`, swap the slotted items, set `status`.
11026
+ * Nested (sub-command) palettes are a consumer pattern: swap the slotted commands and set `scopeLabel`.
11027
+ * @prop --bs-command-palette-width - Panel width. Defaults to `640px` (Figma); capped to the viewport.
11028
+ * @prop --bs-command-palette-top - Distance from the top of the viewport. Defaults to `12vh`.
11029
+ * @prop --bs-command-palette-max-height - Max height of the results area. Defaults to `60vh`.
11030
+ * @prop --bs-command-palette-radius - Aliased to `--bs-border-radius-150`.
11031
+ * @prop --bs-command-palette-bg - Panel background. Aliased to `--bs-surface-base`.
11032
+ * @prop --bs-command-palette-shadow - Figma elevation level 4: `0 8px 16px` in `--bs-elevation-higher` (stronger in dark mode).
11033
+ * @prop --bs-command-palette-overlay - Scrim colour. Aliased to `--bs-surface-overlay`.
11034
+ * @prop --bs-command-palette-footer-bg - Aliased to `--bs-surface-container`.
11035
+ * @prop --bs-command-palette-divider-color - Aliased to `--bs-border-default`.
11036
+ * @prop --bs-command-palette-header-border-color - Aliased to `--bs-border-neutral-container`.
11037
+ * @prop --bs-command-palette-header-color - Aliased to `--bs-text-muted`.
11038
+ * @prop --bs-command-palette-hint-color - Aliased to `--bs-text-secondary`.
11039
+ * @prop --bs-command-palette-z-index - Aliased to `--bs-z-index-modal`.
11040
+ */
11041
+ interface BsCommandPalette {
11042
+ /**
11043
+ * @default 'All results'
11044
+ */
11045
+ "allResultsLabel"?: string;
11046
+ /**
11047
+ * @default 'Close'
11048
+ */
11049
+ "closeLabel"?: string;
11050
+ /**
11051
+ * @default 'Commands'
11052
+ */
11053
+ "commandsLabel"?: string;
11054
+ /**
11055
+ * Derived from `value` (it starts with `>`). Read-only; set `value` instead.
11056
+ * @default false
11057
+ */
11058
+ "commandsOnly"?: boolean;
11059
+ /**
11060
+ * @default 'Commands only'
11061
+ */
11062
+ "commandsOnlyLabel"?: string;
11063
+ /**
11064
+ * A suggested correction; the "Did you mean" line shows while it is set.
11065
+ */
11066
+ "didYouMean"?: string;
11067
+ /**
11068
+ * @default 'Did you mean'
11069
+ */
11070
+ "didYouMeanLabel"?: string;
11071
+ /**
11072
+ * @default 'Check the spelling, or search records instead.'
11073
+ */
11074
+ "emptyDescription"?: string;
11075
+ /**
11076
+ * No-results view copy. Include the query in `emptyHeading` yourself.
11077
+ * @default 'No commands or records'
11078
+ */
11079
+ "emptyHeading"?: string;
11080
+ /**
11081
+ * Global shortcut that toggles the palette, e.g. `mod+k` (`mod` is Cmd on Mac, Ctrl elsewhere). Empty = off.
11082
+ * @default ''
11083
+ */
11084
+ "hotkey"?: string;
11085
+ /**
11086
+ * Keep the palette open after an item is chosen.
11087
+ * @default false
11088
+ */
11089
+ "keepOpenOnSelect"?: boolean;
11090
+ /**
11091
+ * Accessible name of the dialog.
11092
+ * @default 'Command palette'
11093
+ */
11094
+ "label"?: string;
11095
+ /**
11096
+ * Accessible name of the results listbox.
11097
+ * @default 'Results'
11098
+ */
11099
+ "listLabel"?: string;
11100
+ /**
11101
+ * Text of the loading row.
11102
+ * @default 'Loading…'
11103
+ */
11104
+ "loadingLabel"?: string;
11105
+ /**
11106
+ * Footer hint texts.
11107
+ * @default 'Navigate'
11108
+ */
11109
+ "navigateLabel"?: string;
11110
+ /**
11111
+ * @default 'Navigation'
11112
+ */
11113
+ "navigationLabel"?: string;
11114
+ /**
11115
+ * Fires on every keystroke with `{ value, query, commandsOnly }`.
11116
+ */
11117
+ "onBsInput"?: (event: BsCommandPaletteCustomEvent<BsCommandPaletteInputDetail>) => void;
11118
+ /**
11119
+ * Fires when the palette opens or closes through user interaction (hotkey, Esc, scrim, selection).
11120
+ */
11121
+ "onBsOpenChange"?: (event: BsCommandPaletteCustomEvent<boolean>) => void;
11122
+ /**
11123
+ * Fires on Backspace in an empty field while `scopeLabel` is set.
11124
+ */
11125
+ "onBsScopeExit"?: (event: BsCommandPaletteCustomEvent<void>) => void;
11126
+ /**
11127
+ * Fires when an item is chosen (click or Enter) with `{ value, section, commandsOnly }`.
11128
+ */
11129
+ "onBsSelect"?: (event: BsCommandPaletteCustomEvent<BsCommandPaletteSelectDetail>) => void;
11130
+ /**
11131
+ * Fires when the "Did you mean" suggestion is pressed, with its text.
11132
+ */
11133
+ "onBsSuggestion"?: (event: BsCommandPaletteCustomEvent<string>) => void;
11134
+ /**
11135
+ * Whether the palette is open.
11136
+ * @default false
11137
+ */
11138
+ "open"?: boolean;
11139
+ /**
11140
+ * @default 'Open'
11141
+ */
11142
+ "openLabel"?: string;
11143
+ /**
11144
+ * Placeholder of the field.
11145
+ * @default 'Type a command or search…'
11146
+ */
11147
+ "placeholder"?: string;
11148
+ /**
11149
+ * Section headers.
11150
+ * @default 'Recent'
11151
+ */
11152
+ "recentLabel"?: string;
11153
+ /**
11154
+ * @default 'Records'
11155
+ */
11156
+ "recordsLabel"?: string;
11157
+ /**
11158
+ * Nested scope: shows this text as a chip before the field. Backspace on an empty field emits `bsScopeExit`.
11159
+ */
11160
+ "scopeLabel"?: string;
11161
+ /**
11162
+ * Shows the footer of keyboard hints.
11163
+ * @default true
11164
+ */
11165
+ "showFooter"?: boolean;
11166
+ /**
11167
+ * Which view to show. You choose it; nothing is inferred from `value`. `default` and `results` render the same; they differ for screen readers only.
11168
+ * @default 'default'
11169
+ */
11170
+ "status"?: BsCommandPaletteStatus;
11171
+ /**
11172
+ * @default 'Suggested'
11173
+ */
11174
+ "suggestedLabel"?: string;
11175
+ /**
11176
+ * @default 'Try instead'
11177
+ */
11178
+ "tryInsteadLabel"?: string;
11179
+ /**
11180
+ * The field value. Two-way. A leading `>` means commands-only mode.
11181
+ * @default ''
11182
+ */
11183
+ "value"?: string;
11184
+ }
11185
+ /**
11186
+ * A plain text entry in a mega menu: one line, no icon. Matches the Figma "Compact menu block" component
11187
+ * (Default, Hover, Pressed and Focused).
11188
+ * The block is always a native button and only emits events; it never navigates. Hover, pressed and focus come from the
11189
+ * native element.
11190
+ * ## When to use
11191
+ * - A dense list of destinations in a mega menu, usually inside `bs-mega-menu` with `type="compact"`.
11192
+ * ## When not to use
11193
+ * - A destination that needs an icon or a description -- use `bs-menu-block`.
11194
+ * - A command in a dropdown list -- use `bs-menu-item`.
11195
+ * @prop --bs-compact-menu-block-padding - Padding inside the block. Aliased to `--bs-spacing-100`.
11196
+ * @prop --bs-compact-menu-block-radius - Corner radius. Aliased to `--bs-border-radius-100`.
11197
+ * @prop --bs-compact-menu-block-bg - Resting background. `transparent`.
11198
+ * @prop --bs-compact-menu-block-bg-hover - Aliased to `--bs-surface-hover`.
11199
+ * @prop --bs-compact-menu-block-bg-pressed - Aliased to `--bs-surface-pressed`.
11200
+ * @prop --bs-compact-menu-block-color - Text colour. Aliased to `--bs-text-default`.
11201
+ * @prop --bs-compact-menu-block-focus-ring - Focus ring colour. Aliased to `--bs-border-info`.
11202
+ */
11203
+ interface BsCompactMenuBlock {
11204
+ /**
11205
+ * The text, and the accessible name.
11206
+ */
11207
+ "name": string;
11208
+ }
11209
+ /**
11210
+ * A company (tenant) switcher: a trigger showing the current company, and a panel to find and switch to
11211
+ * another one. The panel has a search field, the current / recent / all groups, a filtered "matches" view,
11212
+ * a no-results state and a footer with "Manage Companies" and "Add companies" actions.
11213
+ * Built from `bs-popover` (open/close, Escape, outside click, flipping), `bs-card` (panel surface),
11214
+ * `bs-input` (search), `bs-list-item` (rows), `bs-avatar` (initials), `bs-spinner` (switching),
11215
+ * `bs-empty-state` (no results), `bs-divider` and `bs-button` (footer). The trigger is a native `<button>`:
11216
+ * no `bs-*` component is a composite "avatar + two lines + chevron" button.
11217
+ * ## When to use
11218
+ * - An app header or side navigation where a user belongs to several companies and works in one at a time.
11219
+ * ## When not to use
11220
+ * - Picking a value in a form -- use `bs-input type="dropdown"`.
11221
+ * - Switching between a handful of fixed views -- use `bs-tab`.
11222
+ * `companies` is an array and must be set as a JS property. You own the data and the switch itself: listen to
11223
+ * `bsCompanySwitch`, do the work, then update `currentId`. To show the switching state set `switchingId`
11224
+ * (from the `bsCompanySwitch` handler, or later) and the panel stays open until you clear it and set `open`
11225
+ * to `false`. If `switchingId` is not set by the time the handler returns, the panel closes immediately.
11226
+ * @prop --bs-company-switcher-width - Trigger width. Defaults to `260px` (Figma); capped at 100%.
11227
+ * @prop --bs-company-switcher-panel-width - Panel width. Defaults to `360px` (Figma); capped at the viewport.
11228
+ * @prop --bs-company-switcher-radius - Trigger and panel corner radius. Aliased to `--bs-border-radius-100`.
11229
+ * @prop --bs-company-switcher-trigger-bg - Trigger resting background. `transparent`.
11230
+ * @prop --bs-company-switcher-trigger-bg-hover - Aliased to `--bs-surface-hover`.
11231
+ * @prop --bs-company-switcher-trigger-bg-pressed - Aliased to `--bs-surface-pressed`.
11232
+ * @prop --bs-company-switcher-trigger-bg-open - Aliased to `--bs-surface-selected`.
11233
+ * @prop --bs-company-switcher-focus-ring - Trigger focus outline. Aliased to `--bs-border-neutral-focus`.
11234
+ * @prop --bs-company-switcher-panel-bg - Panel background. Aliased to `--bs-surface-base`.
11235
+ * @prop --bs-company-switcher-panel-border-color - Panel border. Aliased to `--bs-border-default`.
11236
+ * @prop --bs-company-switcher-shadow - Panel shadow. Aliased to `--bs-shadow-md`.
11237
+ * @prop --bs-company-switcher-max-height - Maximum height of the scrolling list. Defaults to `320px`.
11238
+ * @prop --bs-company-switcher-text-color - Names. Aliased to `--bs-text-default`.
11239
+ * @prop --bs-company-switcher-muted-color - Org. numbers. Aliased to `--bs-text-secondary`.
11240
+ * @prop --bs-company-switcher-header-color - Group headers. Aliased to `--bs-text-muted`.
11241
+ * @prop --bs-company-switcher-z-index - Panel stacking. Aliased to `--bs-z-index-popover`.
11242
+ */
11243
+ interface BsCompanySwitcher {
11244
+ /**
11245
+ * Text of the "Add companies" footer button.
11246
+ * @default 'Add companies'
11247
+ */
11248
+ "addLabel"?: string;
11249
+ /**
11250
+ * Header of the all companies group (the count is appended).
11251
+ * @default 'All companies'
11252
+ */
11253
+ "allLabel"?: string;
11254
+ /**
11255
+ * The companies the user can switch between. JS property only (an array cannot be an attribute).
11256
+ * @default []
11257
+ */
11258
+ "companies"?: BsCompany[];
11259
+ /**
11260
+ * `id` of the current company.
11261
+ */
11262
+ "currentId"?: string;
11263
+ /**
11264
+ * Header of the current company group.
11265
+ * @default 'Current'
11266
+ */
11267
+ "currentLabel"?: string;
11268
+ /**
11269
+ * No-results description.
11270
+ * @default 'Check the spelling, or search by org. number.'
11271
+ */
11272
+ "emptyDescription"?: string;
11273
+ /**
11274
+ * No-results heading. `{query}` is replaced by the query.
11275
+ * @default 'No companies match “{query}”'
11276
+ */
11277
+ "emptyHeading"?: string;
11278
+ /**
11279
+ * Accessible name of the company listbox.
11280
+ * @default 'Companies'
11281
+ */
11282
+ "listLabel"?: string;
11283
+ /**
11284
+ * Text of the "Manage Companies" footer button.
11285
+ * @default 'Manage Companies'
11286
+ */
11287
+ "manageLabel"?: string;
11288
+ /**
11289
+ * Header of the search view when there is one match ("1 match").
11290
+ * @default 'match'
11291
+ */
11292
+ "matchLabel"?: string;
11293
+ /**
11294
+ * Header of the search view when there are several matches ("3 matches").
11295
+ * @default 'matches'
11296
+ */
11297
+ "matchesLabel"?: string;
11298
+ /**
11299
+ * Fires when "Add companies" is pressed.
11300
+ */
11301
+ "onBsAddCompanies"?: (event: BsCompanySwitcherCustomEvent<void>) => void;
11302
+ /**
11303
+ * Fires when a company other than the current one is chosen (click or Enter), with the company.
11304
+ */
11305
+ "onBsCompanySwitch"?: (event: BsCompanySwitcherCustomEvent<BsCompany>) => void;
11306
+ /**
11307
+ * Fires when "Manage Companies" is pressed.
11308
+ */
11309
+ "onBsManageCompanies"?: (event: BsCompanySwitcherCustomEvent<void>) => void;
11310
+ /**
11311
+ * Fires when the panel opens or closes through user interaction, with the new state.
11312
+ */
11313
+ "onBsOpenChange"?: (event: BsCompanySwitcherCustomEvent<boolean>) => void;
11314
+ /**
11315
+ * Whether the panel is open.
11316
+ * @default false
11317
+ */
11318
+ "open"?: boolean;
11319
+ /**
11320
+ * Prefix of the org. number, e.g. "Org. no.".
11321
+ * @default 'Org. no.'
11322
+ */
11323
+ "orgNumberLabel"?: string;
11324
+ /**
11325
+ * Text of the trigger when there is no current company.
11326
+ * @default 'Select a company'
11327
+ */
11328
+ "placeholderLabel"?: string;
11329
+ /**
11330
+ * `id`s of recently used companies, most recent first. The current company is not repeated in the Recent group.
11331
+ * @default []
11332
+ */
11333
+ "recentIds"?: string[];
11334
+ /**
11335
+ * Header of the recent companies group.
11336
+ * @default 'Recent'
11337
+ */
11338
+ "recentLabel"?: string;
11339
+ /**
11340
+ * Placeholder (and accessible name) of the search field.
11341
+ * @default 'Find a company or org. number'
11342
+ */
11343
+ "searchPlaceholder"?: string;
11344
+ /**
11345
+ * `id` of the company being switched to. Shows the switching state: a spinner in the trigger and on that row.
11346
+ */
11347
+ "switchingId"?: string;
11348
+ /**
11349
+ * Trigger subtitle while switching.
11350
+ * @default 'Switching…'
11351
+ */
11352
+ "switchingLabel"?: string;
11353
+ }
8829
11354
  /**
8830
11355
  * A chat composer input for Genie AI-style conversational interfaces: a text field
8831
11356
  * plus an attach button, a mic/voice-recording toggle, and a single primary action button whose
@@ -9440,6 +11965,43 @@ declare namespace LocalJSX {
9440
11965
  */
9441
11966
  "variant"?: BsDividerVariant;
9442
11967
  }
11968
+ /**
11969
+ * A centered "nothing to show" block: an icon tile, a heading, a description and an optional action.
11970
+ * Used for empty lists, "no results" and error states inside a panel, card or page section.
11971
+ * Built from `bs-icon-tile` (and, in your `action` slot, usually a `bs-button`).
11972
+ * The component has no role. Live regions belong on a wrapper you control (e.g. `role="status"` on the
11973
+ * element that stays in the DOM while this block appears and disappears).
11974
+ * ## When to use
11975
+ * - A list, table or search result that has nothing to show, or failed to load.
11976
+ * ## When not to use
11977
+ * - A full-page error with a status code -- use `bs-error-page`.
11978
+ * - A transient message -- use `bs-toast` or `bs-snackbar`.
11979
+ * @prop --bs-empty-state-padding-y - Vertical padding. Aliased to `--bs-spacing-700` (56px).
11980
+ * @prop --bs-empty-state-padding-x - Horizontal padding. Aliased to `--bs-spacing-300` (24px).
11981
+ * @prop --bs-empty-state-gap - Gap between tile, heading, description and action. Aliased to `--bs-spacing-150`.
11982
+ * @prop --bs-empty-state-heading-color - Aliased to `--bs-text-default`.
11983
+ * @prop --bs-empty-state-description-color - Aliased to `--bs-text-secondary`.
11984
+ */
11985
+ interface BsEmptyState {
11986
+ /**
11987
+ * The description text. The default slot overrides it.
11988
+ */
11989
+ "description"?: string;
11990
+ /**
11991
+ * The heading text.
11992
+ */
11993
+ "heading"?: string;
11994
+ /**
11995
+ * Heading level, 2 to 6 (renders `h2`..`h6`). Pick the one that fits the page outline.
11996
+ * @default 3
11997
+ */
11998
+ "headingLevel"?: 2 | 3 | 4 | 5 | 6;
11999
+ /**
12000
+ * Colour and default glyph of the icon tile. Use `error` for failures.
12001
+ * @default 'default'
12002
+ */
12003
+ "intent"?: BsIconTileIntent;
12004
+ }
9443
12005
  /**
9444
12006
  * A full-block page for when the user can't get to what they asked for: page not found (404), a server
9445
12007
  * error (500), no access (403), planned maintenance, or no internet connection. Matches the Figma
@@ -9619,6 +12181,193 @@ declare namespace LocalJSX {
9619
12181
  */
9620
12182
  "thumbnailSrc"?: string;
9621
12183
  }
12184
+ /**
12185
+ * A global search combobox: a search field with a dropdown panel of suggestions, results, an empty state
12186
+ * or an error state, plus a keyboard-hint footer. The data, the filtering and the recent-search storage
12187
+ * are all yours: you slot `bs-search-item`s into the sections and tell the component which `status` to show.
12188
+ * Built from `bs-input` (type="search"), `bs-search-item`, `bs-empty-state` (and so `bs-icon-tile`),
12189
+ * `bs-button` and `bs-key` (the footer keycaps).
12190
+ * ## When to use
12191
+ * - An app-wide "find anything" field with recent searches, jump-to shortcuts and grouped results.
12192
+ * ## When not to use
12193
+ * - Filtering the list or table that is already on screen -- use `bs-input type="search"`.
12194
+ * - A list of commands or actions -- use `bs-menu`.
12195
+ * - The complete result set -- link to a full search results page ("See all results").
12196
+ * Put `bs-search-item` children in the light DOM with `slot="recent"`, `slot="jump-to"`,
12197
+ * `slot="top-matches"` or `slot="search-in"`. A section (and its header) is only rendered when its slot has
12198
+ * content. Up/Down arrows move a highlight through the visible items; focus never leaves the field.
12199
+ * Known limit: the items are in your light DOM and the combobox in this shadow root, so
12200
+ * `aria-activedescendant` (an id reference) does not resolve across that boundary in every browser; the
12201
+ * highlighted option also gets `aria-selected="true"`.
12202
+ * @prop --bs-global-search-width - Field and panel width. Defaults to `480px` (Figma); capped at 100%.
12203
+ * @prop --bs-global-search-panel-radius - Aliased to `--bs-border-radius-100`.
12204
+ * @prop --bs-global-search-panel-padding - Aliased to `--bs-spacing-100`.
12205
+ * @prop --bs-global-search-gap - Gap between sections, and between the field and the panel. Aliased to `--bs-spacing-100`.
12206
+ * @prop --bs-global-search-panel-bg - Panel background. Aliased to `--bs-surface-base`.
12207
+ * @prop --bs-global-search-shadow - Panel shadow: Figma elevation level 3 (`0 4px 8px` in `--bs-elevation-high`, 10% black in light mode and 30% in dark mode).
12208
+ * @prop --bs-global-search-z-index - Panel stacking. Aliased to `--bs-z-index-dropdown`.
12209
+ * @prop --bs-global-search-divider-color - Footer divider. Aliased to `--bs-border-default`.
12210
+ * @prop --bs-global-search-header-border-color - Section header underline. Aliased to `--bs-border-neutral-container`.
12211
+ * @prop --bs-global-search-header-color - Section header text. Aliased to `--bs-text-muted`.
12212
+ * @prop --bs-global-search-hint-color - Footer hint text. Aliased to `--bs-text-secondary`.
12213
+ */
12214
+ interface BsGlobalSearch {
12215
+ /**
12216
+ * Text of the footer button that clears recent searches.
12217
+ * @default 'Clear recent'
12218
+ */
12219
+ "clearRecentLabel"?: string;
12220
+ /**
12221
+ * Text of the empty state's action.
12222
+ * @default 'Clear search'
12223
+ */
12224
+ "clearSearchLabel"?: string;
12225
+ /**
12226
+ * Footer hint text after the Esc key.
12227
+ * @default 'Close'
12228
+ */
12229
+ "closeLabel"?: string;
12230
+ /**
12231
+ * Disables the field; the panel cannot open.
12232
+ * @default false
12233
+ */
12234
+ "disabled"?: boolean;
12235
+ /**
12236
+ * Description of the built-in empty state.
12237
+ * @default 'Try a different search.'
12238
+ */
12239
+ "emptyDescription"?: string;
12240
+ /**
12241
+ * Heading of the built-in empty state.
12242
+ * @default 'No results'
12243
+ */
12244
+ "emptyHeading"?: string;
12245
+ /**
12246
+ * Description of the built-in error state.
12247
+ * @default 'We couldn’t reach the server. Your query is kept — try again in a moment.'
12248
+ */
12249
+ "errorDescription"?: string;
12250
+ /**
12251
+ * Heading of the built-in error state.
12252
+ * @default 'Search isn’t available right now'
12253
+ */
12254
+ "errorHeading"?: string;
12255
+ /**
12256
+ * Footer hint text after the Enter key (results view).
12257
+ * @default 'Full results'
12258
+ */
12259
+ "fullResultsLabel"?: string;
12260
+ /**
12261
+ * Header of the `jump-to` section.
12262
+ * @default 'Jump to'
12263
+ */
12264
+ "jumpToLabel"?: string;
12265
+ /**
12266
+ * Accessible name of the search field. Falls back to the placeholder. `bs-input` has no aria-label prop, so this names the combobox wrapper.
12267
+ */
12268
+ "label"?: string;
12269
+ /**
12270
+ * Accessible name of the suggestions listbox.
12271
+ * @default 'Search suggestions'
12272
+ */
12273
+ "listLabel"?: string;
12274
+ /**
12275
+ * Footer hint text after the arrow keys.
12276
+ * @default 'Navigate'
12277
+ */
12278
+ "navigateLabel"?: string;
12279
+ /**
12280
+ * Fires when "Clear recent" is pressed.
12281
+ */
12282
+ "onBsClearRecent"?: (event: BsGlobalSearchCustomEvent<void>) => void;
12283
+ /**
12284
+ * Fires when the empty state's "Clear search" is pressed; the value is also cleared.
12285
+ */
12286
+ "onBsClearSearch"?: (event: BsGlobalSearchCustomEvent<void>) => void;
12287
+ /**
12288
+ * Fires on every keystroke with the query. The component filters nothing itself.
12289
+ */
12290
+ "onBsInput"?: (event: BsGlobalSearchCustomEvent<string>) => void;
12291
+ /**
12292
+ * Fires when the panel opens or closes through user interaction, with the new state.
12293
+ */
12294
+ "onBsOpenChange"?: (event: BsGlobalSearchCustomEvent<boolean>) => void;
12295
+ /**
12296
+ * Fires when the error state's "Try again" is pressed.
12297
+ */
12298
+ "onBsRetry"?: (event: BsGlobalSearchCustomEvent<void>) => void;
12299
+ /**
12300
+ * Fires on Enter with no highlighted item, with the query.
12301
+ */
12302
+ "onBsSearch"?: (event: BsGlobalSearchCustomEvent<string>) => void;
12303
+ /**
12304
+ * Fires when "See all results" is pressed.
12305
+ */
12306
+ "onBsSeeAll"?: (event: BsGlobalSearchCustomEvent<void>) => void;
12307
+ /**
12308
+ * Fires when an item is chosen (click or Enter), with its `value` and section (slot name).
12309
+ */
12310
+ "onBsSelect"?: (event: BsGlobalSearchCustomEvent<BsGlobalSearchSelectDetail>) => void;
12311
+ /**
12312
+ * Whether the dropdown panel is open. Opens on focus, click and typing; closes on Escape, outside click and selection.
12313
+ * @default false
12314
+ */
12315
+ "open"?: boolean;
12316
+ /**
12317
+ * Placeholder of the field (also its accessible name unless `label` is set).
12318
+ * @default 'Search customers, orders, products…'
12319
+ */
12320
+ "placeholder"?: string;
12321
+ /**
12322
+ * Header of the `recent` section.
12323
+ * @default 'Recent searches'
12324
+ */
12325
+ "recentLabel"?: string;
12326
+ /**
12327
+ * Text of the error state's action.
12328
+ * @default 'Try again'
12329
+ */
12330
+ "retryLabel"?: string;
12331
+ /**
12332
+ * Header of the `search-in` section.
12333
+ * @default 'Search in'
12334
+ */
12335
+ "searchInLabel"?: string;
12336
+ /**
12337
+ * Footer hint text after the Enter key (default view).
12338
+ * @default 'Search'
12339
+ */
12340
+ "searchLabel"?: string;
12341
+ /**
12342
+ * Text of the footer button of the results view, when `totalResults` is not set.
12343
+ * @default 'See all results'
12344
+ */
12345
+ "seeAllLabel"?: string;
12346
+ /**
12347
+ * Shows the footer (hints and the Clear recent / See all button) for the `default` and `results` views.
12348
+ * @default true
12349
+ */
12350
+ "showFooter"?: boolean;
12351
+ /**
12352
+ * Which view the panel shows. You choose it; nothing is inferred from `value`.
12353
+ * @default 'default'
12354
+ */
12355
+ "status"?: BsGlobalSearchStatus;
12356
+ /**
12357
+ * Header of the `top-matches` section.
12358
+ * @default 'Top matches'
12359
+ */
12360
+ "topMatchesLabel"?: string;
12361
+ /**
12362
+ * Total number of results (status `results`): shown as "See all {n} results" and announced to screen readers.
12363
+ */
12364
+ "totalResults"?: number;
12365
+ /**
12366
+ * The query. Two-way with the field.
12367
+ * @default ''
12368
+ */
12369
+ "value"?: string;
12370
+ }
9622
12371
  /**
9623
12372
  * A CSS grid layout wrapper. Children are placed in equal-width columns with a token-based gap.
9624
12373
  * `columns` takes either a number (`"3"` becomes `repeat(3, minmax(0, 1fr))`) or any raw
@@ -9703,6 +12452,10 @@ declare namespace LocalJSX {
9703
12452
  * The name of the element, used when submitting an HTML form.
9704
12453
  */
9705
12454
  "name"?: string;
12455
+ /**
12456
+ * Makes this a toggle button: sets `aria-pressed` on the inner `<button>` to `true`/`false`. Leave it unset (the default) for a plain action button, which then has no `aria-pressed` at all. The component does not toggle itself; the owner flips this on click. Put the toggle's state in the icon (e.g. a filled star), not in the label, which should stay the same.
12457
+ */
12458
+ "pressed"?: boolean;
9706
12459
  /**
9707
12460
  * Sizing scale. `xs` (16px, an 8px icon) is a distinct, much smaller tier meant for compact chip/tag "remove" controls, not just a smaller toolbar button -- verified against a separate Figma redline (EG BrandSync UI Kit v1.5, node 20731:18427) from the one `sm`/`md`/`lg` were built against.
9708
12461
  * @default 'md'
@@ -9738,7 +12491,7 @@ declare namespace LocalJSX {
9738
12491
  * Colour and default glyph. `brand` uses the brand colours; `information` the info palette.
9739
12492
  * @default 'default'
9740
12493
  */
9741
- "intent"?: BsIconTileIntent;
12494
+ "intent"?: BsIconTileIntent1;
9742
12495
  /**
9743
12496
  * Accessible name. When set, the tile is exposed as an image with this name; when empty it is decorative and hidden from assistive tech.
9744
12497
  */
@@ -9956,10 +12709,167 @@ declare namespace LocalJSX {
9956
12709
  | 'country'
9957
12710
  | 'pin';
9958
12711
  /**
9959
- * Current value. Native `input`/`change` events don't cross the Shadow DOM boundary, so this component re-dispatches them as `bsInput`/`bsChange` custom events instead. Mutable so the `number` type's stepper buttons can update it directly.
9960
- * @default ''
12712
+ * Current value. Native `input`/`change` events don't cross the Shadow DOM boundary, so this component re-dispatches them as `bsInput`/`bsChange` custom events instead. Mutable so the `number` type's stepper buttons can update it directly.
12713
+ * @default ''
12714
+ */
12715
+ "value"?: string;
12716
+ }
12717
+ /**
12718
+ * One key of a keyboard shortcut, e.g. `Ctrl`, `K` or `Esc` -- rendered as a `<kbd>` keycap.
12719
+ * Shows a text label, or an icon (e.g. a return arrow) via the `icon` slot.
12720
+ * ## When to use
12721
+ * - Showing a keyboard shortcut hint next to a control or inside a search field.
12722
+ * - Alone for a single key, or as the children of `bs-key-caps` for a multi-key shortcut.
12723
+ * ## When not to use
12724
+ * - As a button or any clickable control -- a key is a static hint, not interactive.
12725
+ * @prop --bs-key-bg - Cap background. Aliased to `--bs-surface-base`.
12726
+ * @prop --bs-key-border-color - Cap border colour. Aliased to `--bs-border-default`.
12727
+ * @prop --bs-key-radius - Cap corner radius. Aliased to `--bs-border-radius-50`.
12728
+ * @prop --bs-key-padding-x - Horizontal padding. Aliased to `--bs-spacing-75`.
12729
+ * @prop --bs-key-padding-y - Vertical padding. Aliased to `--bs-spacing-50`.
12730
+ * @prop --bs-key-min-width - Smallest cap width, so single characters keep a keycap shape. Defaults to `25px` (Figma).
12731
+ * @prop --bs-key-color - Label colour. Aliased to `--bs-text-secondary`.
12732
+ * @prop --bs-key-font-size - Label size. Aliased to `--bs-font-size-xs` (12px).
12733
+ * @prop --bs-key-icon-size - Icon size. Defaults to `16px` (Figma).
12734
+ */
12735
+ interface BsKey {
12736
+ /**
12737
+ * The key's text, e.g. `Ctrl`. The default slot overrides it.
12738
+ */
12739
+ "label"?: string;
12740
+ }
12741
+ /**
12742
+ * A keyboard shortcut of one to four keys joined by "+", e.g. `Ctrl + K`. Give it a `keys` string
12743
+ * (`"Ctrl+Shift+K"`) or array (`['Ctrl', '+']` for a literal plus key), or slot your own `bs-key`
12744
+ * elements -- for example when a key is an icon.
12745
+ * ## When to use
12746
+ * - A shortcut hint beside a menu item, button or inside a search field.
12747
+ * ## When not to use
12748
+ * - Instructions that need prose ("press Enter to submit") -- write a sentence and use a single `bs-key` inline.
12749
+ * - Anything interactive -- keys are static hints.
12750
+ * @prop --bs-key-caps-gap - Gap between keys and separators. Aliased to `--bs-spacing-100`.
12751
+ * @prop --bs-key-caps-separator-color - Colour of the "+" separators. Aliased to `--bs-text-muted`.
12752
+ * @prop --bs-key-caps-disabled-opacity - Opacity of the whole shortcut while `disabled`. Defaults to `0.38` (Figma).
12753
+ */
12754
+ interface BsKeyCaps {
12755
+ /**
12756
+ * Dims the whole shortcut and marks it `aria-disabled`.
12757
+ * @default false
12758
+ */
12759
+ "disabled"?: boolean;
12760
+ /**
12761
+ * The keys as text. A string is split on `+` (`"Ctrl+K"`); use an array to include a literal plus key. Ignored when `bs-key` elements are slotted instead. Figma defines one to four keys.
12762
+ */
12763
+ "keys"?: string | string[];
12764
+ /**
12765
+ * Accessible name of the shortcut, e.g. "Control plus K". Defaults to the keys joined with " plus ".
12766
+ */
12767
+ "label"?: string;
12768
+ }
12769
+ /**
12770
+ * A searchable reference panel of keyboard shortcuts: heading and close button, a search field, an
12771
+ * optional single-key on/off switch, shortcut groups in two columns and a footer hint. It is a
12772
+ * surface, not a modal -- place it inside `bs-dialog` or a popover.
12773
+ * Built from `bs-card`, `bs-icon-button`, `bs-input`, `bs-switch`, `bs-shortcut-row` (and so
12774
+ * `bs-key-caps` / `bs-key`).
12775
+ * ## When to use
12776
+ * - A "press ? to see shortcuts" help overlay for an app with many shortcuts.
12777
+ * ## When not to use
12778
+ * - A long-form help page or documentation -- link to it instead.
12779
+ * - A list of commands the user can run from it -- use `bs-menu`.
12780
+ * @prop --bs-keyboard-shortcuts-width - Panel width and min-width. Defaults to `720px` (Figma).
12781
+ * @prop --bs-keyboard-shortcuts-bg - Panel background. Aliased to `--bs-surface-base`.
12782
+ * @prop --bs-keyboard-shortcuts-radius - Aliased to `--bs-border-radius-150`.
12783
+ * @prop --bs-keyboard-shortcuts-padding - Aliased to `--bs-spacing-200`.
12784
+ * @prop --bs-keyboard-shortcuts-gap - Gap between sections. Aliased to `--bs-spacing-200`.
12785
+ * @prop --bs-keyboard-shortcuts-shadow - Figma elevation level 4 (`0 8px 8px` in `--bs-elevation-higher`, 12% black in light mode and 25% in dark mode).
12786
+ * @prop --bs-keyboard-shortcuts-column-gap - Gap between the two columns. Aliased to `--bs-spacing-600`.
12787
+ * @prop --bs-keyboard-shortcuts-color - Main text colour. Aliased to `--bs-text-default`.
12788
+ * @prop --bs-keyboard-shortcuts-color-secondary - Titles, captions, footer. Aliased to `--bs-text-secondary`.
12789
+ */
12790
+ interface BsKeyboardShortcuts {
12791
+ /**
12792
+ * Accessible name of the close button.
12793
+ * @default 'Close'
12794
+ */
12795
+ "closeLabel"?: string;
12796
+ /**
12797
+ * The key shown in the footer hint.
12798
+ * @default '?'
12799
+ */
12800
+ "footerKey"?: string;
12801
+ /**
12802
+ * Text before the footer key.
12803
+ * @default 'Press'
12804
+ */
12805
+ "footerPrefix"?: string;
12806
+ /**
12807
+ * Footer text after the key.
12808
+ * @default 'anywhere to open this list. On Mac: Cmd instead of Ctrl.'
12809
+ */
12810
+ "footerText"?: string;
12811
+ /**
12812
+ * Property only: the shortcut groups.
12813
+ * @default []
12814
+ */
12815
+ "groups"?: BsShortcutGroup[];
12816
+ /**
12817
+ * Heading text. The `heading` slot overrides it.
12818
+ * @default 'Keyboard shortcuts'
12819
+ */
12820
+ "heading"?: string;
12821
+ /**
12822
+ * Line shown when the query matches nothing.
12823
+ * @default 'No shortcuts match'
12824
+ */
12825
+ "noResultsText"?: string;
12826
+ /**
12827
+ * Emitted by the close button and by Escape.
12828
+ */
12829
+ "onBsClose"?: (event: BsKeyboardShortcutsCustomEvent<void>) => void;
12830
+ /**
12831
+ * Emitted when the search text changes, with the new text.
12832
+ */
12833
+ "onBsQueryChange"?: (event: BsKeyboardShortcutsCustomEvent<string>) => void;
12834
+ /**
12835
+ * Emitted when the single-key switch changes, with the new value.
12836
+ */
12837
+ "onBsSingleKeyChange"?: (event: BsKeyboardShortcutsCustomEvent<boolean>) => void;
12838
+ /**
12839
+ * Current search text. Filters by action or keys text, case-insensitively.
12840
+ * @default ''
12841
+ */
12842
+ "query"?: string;
12843
+ /**
12844
+ * Search field placeholder (also its accessible name: `bs-input` has no aria-label prop).
12845
+ * @default 'Search for an action'
12846
+ */
12847
+ "searchPlaceholder"?: string;
12848
+ /**
12849
+ * Shows the footer hint.
12850
+ * @default true
12851
+ */
12852
+ "showFooterHint"?: boolean;
12853
+ /**
12854
+ * Shows the single-key switch row.
12855
+ * @default true
9961
12856
  */
9962
- "value"?: string;
12857
+ "showSingleKeySwitch"?: boolean;
12858
+ /**
12859
+ * Switch caption.
12860
+ * @default 'Turn off if they clash with a screen reader or other tools.'
12861
+ */
12862
+ "singleKeyDescription"?: string;
12863
+ /**
12864
+ * Whether single-key shortcuts are on. When off they are shown dimmed.
12865
+ * @default true
12866
+ */
12867
+ "singleKeyEnabled"?: boolean;
12868
+ /**
12869
+ * Switch title.
12870
+ * @default 'Single-key shortcuts'
12871
+ */
12872
+ "singleKeyLabel"?: string;
9963
12873
  }
9964
12874
  /**
9965
12875
  * A vertical list of `bs-list-item` rows, optionally single-select.
@@ -10134,6 +13044,93 @@ declare namespace LocalJSX {
10134
13044
  */
10135
13045
  "variant"?: BsLogoVariant;
10136
13046
  }
13047
+ /**
13048
+ * The dropdown panel under a navigation header tab: columns of links grouped under headings, an optional
13049
+ * featured area on the right, and a footer with recently used items and a shortcut hint. Matches the Figma
13050
+ * "Mega menu" (types Columns, Column with featured, Compact and Compact with featured).
13051
+ * This is the panel only. Put it in `bs-navigation-header`'s `menu` slot, which anchors it under the bar at the
13052
+ * header's full width, and toggle the host's `hidden` attribute from the tab that
13053
+ * opens it; the panel does not open or close itself. Escape inside the panel fires `bsClose` so you can close it.
13054
+ * Built from `bs-card` (panel surface), `bs-menu-block` or `bs-compact-menu-block` (the links), `bs-divider` and
13055
+ * `bs-key-caps` (the shortcut). The column layout, headings, featured text and footer row are plain layout
13056
+ * markup: no component covers them.
13057
+ * ## Responsive
13058
+ * The panel reacts to its own width (a container query), not the viewport's. Below 600px it becomes one column (heading
13059
+ * above its links, featured area below), titles and descriptions wrap, links are at least 44px tall, the footer stacks
13060
+ * and the default shortcut hint is hidden (`display: none`; a keyboard hint means nothing on a touch screen). A custom
13061
+ * `footer-end` slot is not hidden.
13062
+ * ## When to use
13063
+ * - A header tab that leads to many destinations that need grouping (Sell, Finance, Inventory).
13064
+ * ## When not to use
13065
+ * - A short list of commands -- use `bs-menu` in a `bs-popover`.
13066
+ * - Switching app or company -- use `bs-app-switcher` or `bs-company-switcher`.
13067
+ * `columns`, `featured` and `recent` are arrays or objects and must be set as JS properties. Each item's `icon` is
13068
+ * the URL of a monochrome SVG. You own the data: listen to `bsMenuSelect` (cancelable: `preventDefault()` cancels the
13069
+ * originating click).
13070
+ * @prop --bs-mega-menu-width - Panel width. Defaults to `1100px` (Figma); capped at the viewport.
13071
+ * @prop --bs-mega-menu-radius - Panel corner radius. Aliased to `--bs-border-radius-150`.
13072
+ * @prop --bs-mega-menu-bg - Panel background. Aliased to `--bs-surface-base`.
13073
+ * @prop --bs-mega-menu-border-color - Panel border. Aliased to `--bs-border-default`.
13074
+ * @prop --bs-mega-menu-shadow - Panel shadow (elevation level 3). Aliased to the `--bs-shadow-*` position and blur tokens and `--bs-elevation-high`.
13075
+ * @prop --bs-mega-menu-padding - Padding around the columns. Aliased to `--bs-spacing-300` and `--bs-spacing-350`.
13076
+ * @prop --bs-mega-menu-gap - Gap between columns. Aliased to `--bs-spacing-300`.
13077
+ * @prop --bs-mega-menu-heading-color - Column headings. Aliased to `--bs-text-muted`.
13078
+ * @prop --bs-mega-menu-text-color - Featured title. Aliased to `--bs-text-default`.
13079
+ * @prop --bs-mega-menu-muted-color - Featured description and footer text. Aliased to `--bs-text-secondary`.
13080
+ */
13081
+ interface BsMegaMenu {
13082
+ /**
13083
+ * The groups of links. JS property only (an array cannot be an attribute).
13084
+ * @default []
13085
+ */
13086
+ "columns"?: BsMegaMenuColumn[];
13087
+ /**
13088
+ * The featured area on the right. JS property only. The `featured` slot overrides it.
13089
+ */
13090
+ "featured"?: BsMegaMenuFeatured;
13091
+ /**
13092
+ * Accessible name of the panel.
13093
+ * @default 'Menu'
13094
+ */
13095
+ "label"?: string;
13096
+ /**
13097
+ * Fires when Escape is pressed inside the panel, so you can close it.
13098
+ */
13099
+ "onBsClose"?: (event: BsMegaMenuCustomEvent<void>) => void;
13100
+ /**
13101
+ * Fires when a link is chosen (click or Enter), with the item. Cancelable: `preventDefault()` cancels the originating click.
13102
+ */
13103
+ "onBsMenuSelect"?: (event: BsMegaMenuCustomEvent<BsMegaMenuItem>) => void;
13104
+ /**
13105
+ * Recently used destinations, already translated, shown in the footer. JS property only.
13106
+ * @default []
13107
+ */
13108
+ "recent"?: string[];
13109
+ /**
13110
+ * Text before the recently used items.
13111
+ * @default 'Recently used:'
13112
+ */
13113
+ "recentLabel"?: string;
13114
+ /**
13115
+ * The shortcut keys, joined by "+".
13116
+ * @default 'Ctrl+K'
13117
+ */
13118
+ "shortcutKeys"?: string;
13119
+ /**
13120
+ * Accessible name of the shortcut keys. Defaults to the keys joined with " plus ".
13121
+ */
13122
+ "shortcutKeysLabel"?: string;
13123
+ /**
13124
+ * Text before the shortcut keys.
13125
+ * @default 'Can’t find it? Press'
13126
+ */
13127
+ "shortcutLabel"?: string;
13128
+ /**
13129
+ * `columns` shows menu blocks with icon and description; `compact` plain text links.
13130
+ * @default 'columns'
13131
+ */
13132
+ "type"?: BsMegaMenuType;
13133
+ }
10137
13134
  /**
10138
13135
  * A generic dropdown/popup menu container: a rounded, elevated list of items (typically
10139
13136
  * `bs-menu-item` elements).
@@ -10151,6 +13148,49 @@ declare namespace LocalJSX {
10151
13148
  */
10152
13149
  interface BsMenu {
10153
13150
  }
13151
+ /**
13152
+ * A rich entry in a mega menu: an icon tile, a title with an optional "New" chip, and a one-line description.
13153
+ * Matches the Figma "Menu block" component (Default, Hover, Pressed and Focused).
13154
+ * The block is always a native button and only emits events; it never navigates. Hover, pressed and focus come from the
13155
+ * native element. Its accessible name is its text: the title, the badge and the description, read once.
13156
+ * Built from `bs-icon-tile` (the icon) and `bs-chip-informative` (the badge). The icon is either a URL of a
13157
+ * monochrome SVG in `icon` (painted with the theme's icon colour through a CSS mask, so it follows light and
13158
+ * dark mode), or any element in the default slot (an `<svg>` drawn with `currentColor`).
13159
+ * ## When to use
13160
+ * - A destination in a mega menu that needs an icon and a sentence of explanation, usually inside `bs-mega-menu`.
13161
+ * ## When not to use
13162
+ * - A plain text destination -- use `bs-compact-menu-block`.
13163
+ * - A command in a dropdown list -- use `bs-menu-item`.
13164
+ * @prop --bs-menu-block-padding - Padding inside the block. Aliased to `--bs-spacing-150`.
13165
+ * @prop --bs-menu-block-gap - Gap between icon and text. Aliased to `--bs-spacing-150`.
13166
+ * @prop --bs-menu-block-radius - Corner radius. Aliased to `--bs-border-radius-100`.
13167
+ * @prop --bs-menu-block-bg - Resting background. `transparent`.
13168
+ * @prop --bs-menu-block-bg-hover - Aliased to `--bs-surface-hover`.
13169
+ * @prop --bs-menu-block-bg-pressed - Aliased to `--bs-surface-pressed`.
13170
+ * @prop --bs-menu-block-icon-bg - Icon square background. Aliased to `--bs-color-neutral-container`; `--bs-surface-base` while hovered or pressed.
13171
+ * @prop --bs-menu-block-color - Title colour. Aliased to `--bs-text-default`.
13172
+ * @prop --bs-menu-block-color-muted - Description colour. Aliased to `--bs-text-secondary`.
13173
+ * @prop --bs-menu-block-focus-ring - Focus ring colour. Aliased to `--bs-border-info`.
13174
+ * @prop --bs-menu-block-white-space - `white-space` of the title and description. `nowrap` (single line, ellipsis); set `normal` to let them wrap.
13175
+ */
13176
+ interface BsMenuBlock {
13177
+ /**
13178
+ * Short text for a chip beside the title, e.g. "New".
13179
+ */
13180
+ "badge"?: string;
13181
+ /**
13182
+ * One line under the title; part of the accessible name.
13183
+ */
13184
+ "description"?: string;
13185
+ /**
13186
+ * URL of a monochrome SVG painted with the icon colour. The default slot overrides it.
13187
+ */
13188
+ "icon"?: string;
13189
+ /**
13190
+ * The title, and the start of the accessible name.
13191
+ */
13192
+ "name": string;
13193
+ }
10154
13194
  /**
10155
13195
  * A single selectable row inside a `bs-menu`: an optional icon plus a text label, rendered as a
10156
13196
  * real `<button>` for correct keyboard/click semantics.
@@ -10602,6 +13642,99 @@ declare namespace LocalJSX {
10602
13642
  */
10603
13643
  "type"?: BsOnboardingChecklistType;
10604
13644
  }
13645
+ /**
13646
+ * The header at the top of a page's content area: breadcrumb trail, the page title (a real heading) with an
13647
+ * optional back button, status and favourite toggle, a meta line, page-level actions on the right and an
13648
+ * optional row of tabs. Matches the Figma "Page header" (types List page, Record, Record with tabs and Sticky
13649
+ * compact).
13650
+ * Built from `bs-breadcrumbs`/`bs-breadcrumb` (slotted by you), `bs-icon-button` (the built-in back and favourite
13651
+ * buttons), `bs-chip-informative` (the status you slot), `bs-button` and `bs-icon-button` (the actions you slot),
13652
+ * `bs-tabs`/`bs-tab` (the tab row you slot) and `bs-divider` (under the tabs). The title block, meta line and
13653
+ * actions area are plain layout markup, because no component covers them. The back arrow and the star are
13654
+ * inline SVG (Phosphor "arrow-left", "star" and "star-fill") until the library has an icon component.
13655
+ * ## Compact (sticky)
13656
+ * `compact` is the condensed state a record header takes once the page scrolls: one row (back, title, status,
13657
+ * meta inline, actions), a level 2 shadow, no breadcrumb and no tabs, and `position: sticky`. Set it yourself
13658
+ * from a scroll observer. Because the header covers the top of the scroll area, give the scroll container
13659
+ * `scroll-padding-top` equal to its height (80px by default) so focused or anchored content is not hidden under it.
13660
+ * ## Responsive
13661
+ * The header reacts to its own width (a container query), not the viewport's. Below 640px the actions wrap
13662
+ * below the title block, slotted buttons grow to 44px tall, the title and meta wrap, and the tab row scrolls
13663
+ * sideways inside itself. The page never gets wider.
13664
+ * ## When to use
13665
+ * - The top of a list page or a single record (an invoice, a customer) inside the app shell's content area.
13666
+ * ## When not to use
13667
+ * - The app-wide bar with logo, search and user: use `bs-navigation-header`.
13668
+ * - The heading of a card, dialog or panel: use that component's own `heading`.
13669
+ * ## Accessibility notes
13670
+ * The root is a plain `div`, not a `<header>`: a `<header>` that is not inside `<main>`/`<article>`/`<section>`
13671
+ * is a second banner landmark. The title is a real heading (`<h1>` by default, `headingLevel` 1 to 6); the
13672
+ * status is next to it, not inside it. If you want a landmark, wrap `bs-page-header` yourself.
13673
+ * @prop --bs-page-header-bg - Background. Aliased to `--bs-surface-base`.
13674
+ * @prop --bs-page-header-padding-x - Left and right padding. Aliased to `--bs-spacing-200`.
13675
+ * @prop --bs-page-header-padding-y - Top and bottom padding. Aliased to `--bs-spacing-300`.
13676
+ * @prop --bs-page-header-gap - Gap between the breadcrumb, title block and tabs, and between the title block and the actions. Aliased to `--bs-spacing-150`.
13677
+ * @prop --bs-page-header-title-gap - Gap between the heading, status and favourite button. Aliased to `--bs-spacing-150`.
13678
+ * @prop --bs-page-header-actions-gap - Gap between the actions. Aliased to `--bs-spacing-100`.
13679
+ * @prop --bs-page-header-text-color - Heading. Aliased to `--bs-text-default`.
13680
+ * @prop --bs-page-header-meta-color - Meta line. Aliased to `--bs-text-secondary`.
13681
+ * @prop --bs-page-header-shadow - Shadow of the compact header (elevation level 2). Aliased to the `--bs-shadow-*` position and blur tokens and `--bs-elevation-medium`.
13682
+ * @prop --bs-page-header-sticky-offset - The `top` of the compact header. Defaults to `0px`; set it to the height of a sticky bar above (e.g. the navigation header).
13683
+ * @prop --bs-page-header-z-index - Stacking order of the compact header. Aliased to `--bs-z-index-sticky`.
13684
+ */
13685
+ interface BsPageHeader {
13686
+ /**
13687
+ * Shows a back button before the title. It emits `bsBack`; you navigate.
13688
+ * @default false
13689
+ */
13690
+ "back"?: boolean;
13691
+ /**
13692
+ * Accessible name of the back button.
13693
+ * @default 'Back'
13694
+ */
13695
+ "backLabel"?: string;
13696
+ /**
13697
+ * The condensed, sticky state: one row, a level 2 shadow, no breadcrumb and no tabs. Reflected.
13698
+ * @default false
13699
+ */
13700
+ "compact"?: boolean;
13701
+ /**
13702
+ * Shows the favourite (star) toggle after the title.
13703
+ * @default false
13704
+ */
13705
+ "favoritable"?: boolean;
13706
+ /**
13707
+ * Whether the record is a favourite. Mutable: it follows the user's toggle unless `bsFavoriteChange` is cancelled.
13708
+ * @default false
13709
+ */
13710
+ "favorite"?: boolean;
13711
+ /**
13712
+ * Accessible name of the favourite toggle. It stays the same in both states; `aria-pressed` carries the state.
13713
+ * @default 'Favourite'
13714
+ */
13715
+ "favoriteLabel"?: string;
13716
+ /**
13717
+ * The page title, rendered as the heading.
13718
+ */
13719
+ "heading"?: string;
13720
+ /**
13721
+ * HTML heading level for the title, 1 to 6. Use 1 unless the page already has its own `h1`.
13722
+ * @default 1
13723
+ */
13724
+ "headingLevel"?: number;
13725
+ /**
13726
+ * The line under the title, plain text, e.g. "214 invoices · 38 open". The `meta` slot overrides it.
13727
+ */
13728
+ "meta"?: string;
13729
+ /**
13730
+ * Fires when the back button is clicked. Not cancelable: the component has no default action to cancel.
13731
+ */
13732
+ "onBsBack"?: (event: BsPageHeaderCustomEvent<void>) => void;
13733
+ /**
13734
+ * Fires when the user toggles the favourite button, with the new value. Cancelable: `preventDefault()` keeps the old value.
13735
+ */
13736
+ "onBsFavoriteChange"?: (event: BsPageHeaderCustomEvent<{ favorite: boolean }>) => void;
13737
+ }
10605
13738
  /**
10606
13739
  * A numbered page control -- previous/next chevrons, page-number buttons, and `...` overflow for
10607
13740
  * large page counts. Matches the Figma "Pagination" component's "Default" type (the classic
@@ -11053,6 +14186,59 @@ declare namespace LocalJSX {
11053
14186
  */
11054
14187
  "value"?: string;
11055
14188
  }
14189
+ /**
14190
+ * One result or suggestion row of a search dropdown: a leading icon, a primary line, an optional
14191
+ * description line and trailing text. Static, not focusable -- focus stays in the search field and the
14192
+ * parent (`bs-global-search`) marks the highlighted row with `active`.
14193
+ * Standalone it has no role. `bs-global-search` sets `selectionRole="option"` (and an `id`) on its rows,
14194
+ * the same pattern as `bs-list-item` and `bs-shortcut-row`.
14195
+ * ## When to use
14196
+ * - A suggestion, recent search or result inside `bs-global-search`.
14197
+ * ## When not to use
14198
+ * - A row in a generic list -- use `bs-list-item`.
14199
+ * - A command in a popup menu -- use `bs-menu-item`.
14200
+ * @prop --bs-search-item-min-height - Aliased to `--bs-spacing-600` (48px).
14201
+ * @prop --bs-search-item-padding-y - Aliased to `--bs-spacing-100`.
14202
+ * @prop --bs-search-item-padding-x - Aliased to `--bs-spacing-150`.
14203
+ * @prop --bs-search-item-gap - Aliased to `--bs-spacing-100`.
14204
+ * @prop --bs-search-item-radius - Aliased to `--bs-border-radius-100`.
14205
+ * @prop --bs-search-item-bg - Resting background. `transparent`.
14206
+ * @prop --bs-search-item-bg-active - Active (highlighted) and hover background. Aliased to `--bs-surface-hover`.
14207
+ * @prop --bs-search-item-bg-pressed - Aliased to `--bs-surface-pressed`.
14208
+ * @prop --bs-search-item-color - Primary text. Aliased to `--bs-text-default`.
14209
+ * @prop --bs-search-item-color-muted - Description and trailing text. Aliased to `--bs-text-muted`.
14210
+ * @prop --bs-search-item-color-disabled - Aliased to `--bs-text-on-disabled`.
14211
+ * @prop --bs-search-item-icon-color - Aliased to `--bs-icon-default`.
14212
+ */
14213
+ interface BsSearchItem {
14214
+ /**
14215
+ * Highlighted row (keyboard or hover). Set by the parent.
14216
+ * @default false
14217
+ */
14218
+ "active"?: boolean;
14219
+ /**
14220
+ * Dims the row and ignores clicks.
14221
+ * @default false
14222
+ */
14223
+ "disabled"?: boolean;
14224
+ /**
14225
+ * Fires with `value` when the row is clicked, or when the parent selects it with Enter.
14226
+ */
14227
+ "onBsItemSelect"?: (event: BsSearchItemCustomEvent<string | undefined>) => void;
14228
+ /**
14229
+ * Set by the parent (`"option"`). Standalone rows have no role.
14230
+ * @default null
14231
+ */
14232
+ "selectionRole"?: 'option' | null;
14233
+ /**
14234
+ * Trailing text shorthand. The `trailing` slot overrides it.
14235
+ */
14236
+ "trailing"?: string;
14237
+ /**
14238
+ * Identifies the item; emitted by `bsItemSelect`.
14239
+ */
14240
+ "value"?: string;
14241
+ }
11056
14242
  /**
11057
14243
  * The three moments around an expiring session, as one card. Matches the Figma "Session timeout"
11058
14244
  * component's three types:
@@ -11197,6 +14383,46 @@ declare namespace LocalJSX {
11197
14383
  */
11198
14384
  "type"?: BsSessionTimeoutType;
11199
14385
  }
14386
+ /**
14387
+ * One row of a shortcut list: an action label on the left and its keyboard shortcut on the right.
14388
+ * Static information, not interactive. Standalone it has no role; `bs-keyboard-shortcuts` sets
14389
+ * `selectionRole="listitem"` on its rows (same pattern as `bs-list-item`).
14390
+ * Built from `bs-key-caps` (and so `bs-key`).
14391
+ * ## When to use
14392
+ * - A line in a keyboard-shortcut reference, usually inside `bs-keyboard-shortcuts`.
14393
+ * ## When not to use
14394
+ * - A clickable command or menu entry -- use `bs-menu-item` (which has its own shortcut slot).
14395
+ * @prop --bs-shortcut-row-height - Row height. Defaults to `36px` (Figma).
14396
+ * @prop --bs-shortcut-row-padding-x - Horizontal padding. Aliased to `--bs-spacing-100`.
14397
+ * @prop --bs-shortcut-row-gap - Gap between label and keys. Aliased to `--bs-spacing-100`.
14398
+ * @prop --bs-shortcut-row-radius - Corner radius. Aliased to `--bs-border-radius-75`.
14399
+ * @prop --bs-shortcut-row-color - Label colour. Aliased to `--bs-text-default`.
14400
+ * @prop --bs-shortcut-row-color-disabled - Label colour while `disabled`. Aliased to `--bs-text-on-disabled`.
14401
+ */
14402
+ interface BsShortcutRow {
14403
+ /**
14404
+ * The action, e.g. "Save". The default slot overrides it.
14405
+ */
14406
+ "action"?: string;
14407
+ /**
14408
+ * Dims the label and the keys.
14409
+ * @default false
14410
+ */
14411
+ "disabled"?: boolean;
14412
+ /**
14413
+ * The keys, e.g. `"Ctrl+S"`, or an array (`['Ctrl', '+']`) for a literal plus key. See `bs-key-caps`.
14414
+ */
14415
+ "keys"?: string | string[];
14416
+ /**
14417
+ * Accessible name of the key caps, e.g. "Control plus S". Defaults to the keys joined with "plus".
14418
+ */
14419
+ "label"?: string;
14420
+ /**
14421
+ * Set by the parent list (`"listitem"`). Standalone rows have no role.
14422
+ * @default null
14423
+ */
14424
+ "selectionRole"?: 'listitem' | null;
14425
+ }
11200
14426
  /**
11201
14427
  * A generic slide-in panel (drawer) anchored to the start or end edge, for history, filters, FAQ
11202
14428
  * and similar secondary content. Closes via its close button or Escape and emits `bsClose`.
@@ -12375,9 +15601,49 @@ declare namespace LocalJSX {
12375
15601
  interface BsAiThinkingAttributes {
12376
15602
  "label": string;
12377
15603
  }
15604
+ interface BsAppRecentItemAttributes {
15605
+ "name": string;
15606
+ "description": string;
15607
+ "icon": string;
15608
+ "current": boolean;
15609
+ "disabled": boolean;
15610
+ }
12378
15611
  interface BsAppShellAttributes {
12379
15612
  "fullHeight": boolean;
12380
15613
  }
15614
+ interface BsAppSwitcherAttributes {
15615
+ "currentId": string;
15616
+ "query": string;
15617
+ "status": BsAppSwitcherStatus;
15618
+ "manageHref": string;
15619
+ "browseHref": string;
15620
+ "heading": string;
15621
+ "manageLabel": string;
15622
+ "searchPlaceholder": string;
15623
+ "yourAppsLabel": string;
15624
+ "recentLabel": string;
15625
+ "allAppsLabel": string;
15626
+ "resultsLabel": string;
15627
+ "resultLabel": string;
15628
+ "browseLabel": string;
15629
+ "noResultsHeading": string;
15630
+ "noResultsDescription": string;
15631
+ "clearLabel": string;
15632
+ "errorHeading": string;
15633
+ "errorDescription": string;
15634
+ "retryLabel": string;
15635
+ "emptyHeading": string;
15636
+ "emptyDescription": string;
15637
+ "requestAccessLabel": string;
15638
+ "loadingLabel": string;
15639
+ }
15640
+ interface BsAppTileAttributes {
15641
+ "name": string;
15642
+ "size": BsAppTileSize;
15643
+ "icon": string;
15644
+ "current": boolean;
15645
+ "disabled": boolean;
15646
+ }
12381
15647
  interface BsAttachmentAttributes {
12382
15648
  "uploadingLabel": string;
12383
15649
  "removeLabel": string;
@@ -12532,6 +15798,57 @@ declare namespace LocalJSX {
12532
15798
  "page": string;
12533
15799
  "href": string;
12534
15800
  }
15801
+ interface BsCommandPaletteAttributes {
15802
+ "value": string;
15803
+ "open": boolean;
15804
+ "commandsOnly": boolean;
15805
+ "status": BsCommandPaletteStatus;
15806
+ "label": string;
15807
+ "placeholder": string;
15808
+ "keepOpenOnSelect": boolean;
15809
+ "showFooter": boolean;
15810
+ "hotkey": string;
15811
+ "scopeLabel": string;
15812
+ "recentLabel": string;
15813
+ "suggestedLabel": string;
15814
+ "commandsLabel": string;
15815
+ "navigationLabel": string;
15816
+ "recordsLabel": string;
15817
+ "tryInsteadLabel": string;
15818
+ "navigateLabel": string;
15819
+ "openLabel": string;
15820
+ "closeLabel": string;
15821
+ "commandsOnlyLabel": string;
15822
+ "allResultsLabel": string;
15823
+ "emptyHeading": string;
15824
+ "emptyDescription": string;
15825
+ "didYouMean": string;
15826
+ "didYouMeanLabel": string;
15827
+ "loadingLabel": string;
15828
+ "listLabel": string;
15829
+ }
15830
+ interface BsCompactMenuBlockAttributes {
15831
+ "name": string;
15832
+ }
15833
+ interface BsCompanySwitcherAttributes {
15834
+ "currentId": string;
15835
+ "switchingId": string;
15836
+ "open": boolean;
15837
+ "placeholderLabel": string;
15838
+ "searchPlaceholder": string;
15839
+ "listLabel": string;
15840
+ "currentLabel": string;
15841
+ "recentLabel": string;
15842
+ "allLabel": string;
15843
+ "matchesLabel": string;
15844
+ "matchLabel": string;
15845
+ "orgNumberLabel": string;
15846
+ "switchingLabel": string;
15847
+ "emptyHeading": string;
15848
+ "emptyDescription": string;
15849
+ "manageLabel": string;
15850
+ "addLabel": string;
15851
+ }
12535
15852
  interface BsComposerAttributes {
12536
15853
  "variant": BsComposerVariant;
12537
15854
  "placeholder": string;
@@ -12615,6 +15932,12 @@ declare namespace LocalJSX {
12615
15932
  "inset": BsDividerInset;
12616
15933
  "decorative": boolean;
12617
15934
  }
15935
+ interface BsEmptyStateAttributes {
15936
+ "heading": string;
15937
+ "description": string;
15938
+ "intent": BsIconTileIntent;
15939
+ "headingLevel": 2 | 3 | 4 | 5 | 6;
15940
+ }
12618
15941
  interface BsErrorPageAttributes {
12619
15942
  "type": BsErrorPageType;
12620
15943
  "code": string;
@@ -12646,6 +15969,33 @@ declare namespace LocalJSX {
12646
15969
  "cancelLabel": string;
12647
15970
  "removeLabel": string;
12648
15971
  }
15972
+ interface BsGlobalSearchAttributes {
15973
+ "value": string;
15974
+ "placeholder": string;
15975
+ "label": string;
15976
+ "disabled": boolean;
15977
+ "open": boolean;
15978
+ "status": BsGlobalSearchStatus;
15979
+ "totalResults": number;
15980
+ "showFooter": boolean;
15981
+ "listLabel": string;
15982
+ "recentLabel": string;
15983
+ "jumpToLabel": string;
15984
+ "topMatchesLabel": string;
15985
+ "searchInLabel": string;
15986
+ "navigateLabel": string;
15987
+ "searchLabel": string;
15988
+ "closeLabel": string;
15989
+ "fullResultsLabel": string;
15990
+ "clearRecentLabel": string;
15991
+ "seeAllLabel": string;
15992
+ "emptyHeading": string;
15993
+ "emptyDescription": string;
15994
+ "clearSearchLabel": string;
15995
+ "errorHeading": string;
15996
+ "errorDescription": string;
15997
+ "retryLabel": string;
15998
+ }
12649
15999
  interface BsGridAttributes {
12650
16000
  "columns": string;
12651
16001
  "gap": string;
@@ -12660,6 +16010,7 @@ declare namespace LocalJSX {
12660
16010
  "disabled": boolean;
12661
16011
  "type": 'button' | 'submit' | 'reset';
12662
16012
  "ariaLabel": string | null;
16013
+ "pressed": boolean;
12663
16014
  }
12664
16015
  interface BsIconTileAttributes {
12665
16016
  "size": BsIconTileSize;
@@ -12708,6 +16059,29 @@ declare namespace LocalJSX {
12708
16059
  "length": number;
12709
16060
  "open": boolean;
12710
16061
  }
16062
+ interface BsKeyAttributes {
16063
+ "label": string;
16064
+ }
16065
+ interface BsKeyCapsAttributes {
16066
+ "keys": string | string[];
16067
+ "disabled": boolean;
16068
+ "label": string;
16069
+ }
16070
+ interface BsKeyboardShortcutsAttributes {
16071
+ "heading": string;
16072
+ "closeLabel": string;
16073
+ "searchPlaceholder": string;
16074
+ "query": string;
16075
+ "showSingleKeySwitch": boolean;
16076
+ "singleKeyEnabled": boolean;
16077
+ "singleKeyLabel": string;
16078
+ "singleKeyDescription": string;
16079
+ "showFooterHint": boolean;
16080
+ "footerKey": string;
16081
+ "footerText": string;
16082
+ "footerPrefix": string;
16083
+ "noResultsText": string;
16084
+ }
12711
16085
  interface BsListAttributes {
12712
16086
  "selectable": boolean;
12713
16087
  "value": string | null;
@@ -12731,6 +16105,20 @@ declare namespace LocalJSX {
12731
16105
  "src": string | null;
12732
16106
  "alt": string | null;
12733
16107
  }
16108
+ interface BsMegaMenuAttributes {
16109
+ "type": BsMegaMenuType;
16110
+ "label": string;
16111
+ "recentLabel": string;
16112
+ "shortcutLabel": string;
16113
+ "shortcutKeys": string;
16114
+ "shortcutKeysLabel": string;
16115
+ }
16116
+ interface BsMenuBlockAttributes {
16117
+ "name": string;
16118
+ "description": string;
16119
+ "icon": string;
16120
+ "badge": string;
16121
+ }
12734
16122
  interface BsMenuItemAttributes {
12735
16123
  "disabled": boolean;
12736
16124
  }
@@ -12788,6 +16176,17 @@ declare namespace LocalJSX {
12788
16176
  "statusDoneLabel": string;
12789
16177
  "statusTodoLabel": string;
12790
16178
  }
16179
+ interface BsPageHeaderAttributes {
16180
+ "heading": string;
16181
+ "headingLevel": number;
16182
+ "meta": string;
16183
+ "compact": boolean;
16184
+ "back": boolean;
16185
+ "backLabel": string;
16186
+ "favoritable": boolean;
16187
+ "favorite": boolean;
16188
+ "favoriteLabel": string;
16189
+ }
12791
16190
  interface BsPaginationAttributes {
12792
16191
  "totalPages": number;
12793
16192
  "currentPage": number;
@@ -12860,6 +16259,13 @@ declare namespace LocalJSX {
12860
16259
  "checked": boolean;
12861
16260
  "disabled": boolean;
12862
16261
  }
16262
+ interface BsSearchItemAttributes {
16263
+ "value": string;
16264
+ "active": boolean;
16265
+ "disabled": boolean;
16266
+ "trailing": string;
16267
+ "selectionRole": 'option' | null;
16268
+ }
12863
16269
  interface BsSessionTimeoutAttributes {
12864
16270
  "type": BsSessionTimeoutType;
12865
16271
  "heading": string;
@@ -12882,6 +16288,13 @@ declare namespace LocalJSX {
12882
16288
  "dividerLabel": string;
12883
16289
  "cancelLabel": string;
12884
16290
  }
16291
+ interface BsShortcutRowAttributes {
16292
+ "action": string;
16293
+ "keys": string | string[];
16294
+ "label": string;
16295
+ "disabled": boolean;
16296
+ "selectionRole": 'listitem' | null;
16297
+ }
12885
16298
  interface BsSidePanelAttributes {
12886
16299
  "open": boolean;
12887
16300
  "heading": string;
@@ -13064,7 +16477,10 @@ declare namespace LocalJSX {
13064
16477
  "bs-ai-disclaimer": BsAiDisclaimer;
13065
16478
  "bs-ai-greeting": Omit<BsAiGreeting, keyof BsAiGreetingAttributes> & { [K in keyof BsAiGreeting & keyof BsAiGreetingAttributes]?: BsAiGreeting[K] } & { [K in keyof BsAiGreeting & keyof BsAiGreetingAttributes as `attr:${K}`]?: BsAiGreetingAttributes[K] } & { [K in keyof BsAiGreeting & keyof BsAiGreetingAttributes as `prop:${K}`]?: BsAiGreeting[K] };
13066
16479
  "bs-ai-thinking": Omit<BsAiThinking, keyof BsAiThinkingAttributes> & { [K in keyof BsAiThinking & keyof BsAiThinkingAttributes]?: BsAiThinking[K] } & { [K in keyof BsAiThinking & keyof BsAiThinkingAttributes as `attr:${K}`]?: BsAiThinkingAttributes[K] } & { [K in keyof BsAiThinking & keyof BsAiThinkingAttributes as `prop:${K}`]?: BsAiThinking[K] };
16480
+ "bs-app-recent-item": Omit<BsAppRecentItem, keyof BsAppRecentItemAttributes> & { [K in keyof BsAppRecentItem & keyof BsAppRecentItemAttributes]?: BsAppRecentItem[K] } & { [K in keyof BsAppRecentItem & keyof BsAppRecentItemAttributes as `attr:${K}`]?: BsAppRecentItemAttributes[K] } & { [K in keyof BsAppRecentItem & keyof BsAppRecentItemAttributes as `prop:${K}`]?: BsAppRecentItem[K] } & OneOf<"name", BsAppRecentItem["name"], BsAppRecentItemAttributes["name"]>;
13067
16481
  "bs-app-shell": Omit<BsAppShell, keyof BsAppShellAttributes> & { [K in keyof BsAppShell & keyof BsAppShellAttributes]?: BsAppShell[K] } & { [K in keyof BsAppShell & keyof BsAppShellAttributes as `attr:${K}`]?: BsAppShellAttributes[K] } & { [K in keyof BsAppShell & keyof BsAppShellAttributes as `prop:${K}`]?: BsAppShell[K] };
16482
+ "bs-app-switcher": Omit<BsAppSwitcher, keyof BsAppSwitcherAttributes> & { [K in keyof BsAppSwitcher & keyof BsAppSwitcherAttributes]?: BsAppSwitcher[K] } & { [K in keyof BsAppSwitcher & keyof BsAppSwitcherAttributes as `attr:${K}`]?: BsAppSwitcherAttributes[K] } & { [K in keyof BsAppSwitcher & keyof BsAppSwitcherAttributes as `prop:${K}`]?: BsAppSwitcher[K] };
16483
+ "bs-app-tile": Omit<BsAppTile, keyof BsAppTileAttributes> & { [K in keyof BsAppTile & keyof BsAppTileAttributes]?: BsAppTile[K] } & { [K in keyof BsAppTile & keyof BsAppTileAttributes as `attr:${K}`]?: BsAppTileAttributes[K] } & { [K in keyof BsAppTile & keyof BsAppTileAttributes as `prop:${K}`]?: BsAppTile[K] } & OneOf<"name", BsAppTile["name"], BsAppTileAttributes["name"]>;
13068
16484
  "bs-attachment": Omit<BsAttachment, keyof BsAttachmentAttributes> & { [K in keyof BsAttachment & keyof BsAttachmentAttributes]?: BsAttachment[K] } & { [K in keyof BsAttachment & keyof BsAttachmentAttributes as `attr:${K}`]?: BsAttachmentAttributes[K] } & { [K in keyof BsAttachment & keyof BsAttachmentAttributes as `prop:${K}`]?: BsAttachment[K] };
13069
16485
  "bs-attachment-list": Omit<BsAttachmentList, keyof BsAttachmentListAttributes> & { [K in keyof BsAttachmentList & keyof BsAttachmentListAttributes]?: BsAttachmentList[K] } & { [K in keyof BsAttachmentList & keyof BsAttachmentListAttributes as `attr:${K}`]?: BsAttachmentListAttributes[K] } & { [K in keyof BsAttachmentList & keyof BsAttachmentListAttributes as `prop:${K}`]?: BsAttachmentList[K] };
13070
16486
  "bs-avatar": Omit<BsAvatar, keyof BsAvatarAttributes> & { [K in keyof BsAvatar & keyof BsAvatarAttributes]?: BsAvatar[K] } & { [K in keyof BsAvatar & keyof BsAvatarAttributes as `attr:${K}`]?: BsAvatarAttributes[K] } & { [K in keyof BsAvatar & keyof BsAvatarAttributes as `prop:${K}`]?: BsAvatar[K] };
@@ -13087,6 +16503,9 @@ declare namespace LocalJSX {
13087
16503
  "bs-chip-informative": Omit<BsChipInformative, keyof BsChipInformativeAttributes> & { [K in keyof BsChipInformative & keyof BsChipInformativeAttributes]?: BsChipInformative[K] } & { [K in keyof BsChipInformative & keyof BsChipInformativeAttributes as `attr:${K}`]?: BsChipInformativeAttributes[K] } & { [K in keyof BsChipInformative & keyof BsChipInformativeAttributes as `prop:${K}`]?: BsChipInformative[K] };
13088
16504
  "bs-chip-input": Omit<BsChipInput, keyof BsChipInputAttributes> & { [K in keyof BsChipInput & keyof BsChipInputAttributes]?: BsChipInput[K] } & { [K in keyof BsChipInput & keyof BsChipInputAttributes as `attr:${K}`]?: BsChipInputAttributes[K] } & { [K in keyof BsChipInput & keyof BsChipInputAttributes as `prop:${K}`]?: BsChipInput[K] };
13089
16505
  "bs-citation-preview": Omit<BsCitationPreview, keyof BsCitationPreviewAttributes> & { [K in keyof BsCitationPreview & keyof BsCitationPreviewAttributes]?: BsCitationPreview[K] } & { [K in keyof BsCitationPreview & keyof BsCitationPreviewAttributes as `attr:${K}`]?: BsCitationPreviewAttributes[K] } & { [K in keyof BsCitationPreview & keyof BsCitationPreviewAttributes as `prop:${K}`]?: BsCitationPreview[K] };
16506
+ "bs-command-palette": Omit<BsCommandPalette, keyof BsCommandPaletteAttributes> & { [K in keyof BsCommandPalette & keyof BsCommandPaletteAttributes]?: BsCommandPalette[K] } & { [K in keyof BsCommandPalette & keyof BsCommandPaletteAttributes as `attr:${K}`]?: BsCommandPaletteAttributes[K] } & { [K in keyof BsCommandPalette & keyof BsCommandPaletteAttributes as `prop:${K}`]?: BsCommandPalette[K] };
16507
+ "bs-compact-menu-block": Omit<BsCompactMenuBlock, keyof BsCompactMenuBlockAttributes> & { [K in keyof BsCompactMenuBlock & keyof BsCompactMenuBlockAttributes]?: BsCompactMenuBlock[K] } & { [K in keyof BsCompactMenuBlock & keyof BsCompactMenuBlockAttributes as `attr:${K}`]?: BsCompactMenuBlockAttributes[K] } & { [K in keyof BsCompactMenuBlock & keyof BsCompactMenuBlockAttributes as `prop:${K}`]?: BsCompactMenuBlock[K] } & OneOf<"name", BsCompactMenuBlock["name"], BsCompactMenuBlockAttributes["name"]>;
16508
+ "bs-company-switcher": Omit<BsCompanySwitcher, keyof BsCompanySwitcherAttributes> & { [K in keyof BsCompanySwitcher & keyof BsCompanySwitcherAttributes]?: BsCompanySwitcher[K] } & { [K in keyof BsCompanySwitcher & keyof BsCompanySwitcherAttributes as `attr:${K}`]?: BsCompanySwitcherAttributes[K] } & { [K in keyof BsCompanySwitcher & keyof BsCompanySwitcherAttributes as `prop:${K}`]?: BsCompanySwitcher[K] };
13090
16509
  "bs-composer": Omit<BsComposer, keyof BsComposerAttributes> & { [K in keyof BsComposer & keyof BsComposerAttributes]?: BsComposer[K] } & { [K in keyof BsComposer & keyof BsComposerAttributes as `attr:${K}`]?: BsComposerAttributes[K] } & { [K in keyof BsComposer & keyof BsComposerAttributes as `prop:${K}`]?: BsComposer[K] };
13091
16510
  "bs-composer-status-banner": Omit<BsComposerStatusBanner, keyof BsComposerStatusBannerAttributes> & { [K in keyof BsComposerStatusBanner & keyof BsComposerStatusBannerAttributes]?: BsComposerStatusBanner[K] } & { [K in keyof BsComposerStatusBanner & keyof BsComposerStatusBannerAttributes as `attr:${K}`]?: BsComposerStatusBannerAttributes[K] } & { [K in keyof BsComposerStatusBanner & keyof BsComposerStatusBannerAttributes as `prop:${K}`]?: BsComposerStatusBanner[K] };
13092
16511
  "bs-container": Omit<BsContainer, keyof BsContainerAttributes> & { [K in keyof BsContainer & keyof BsContainerAttributes]?: BsContainer[K] } & { [K in keyof BsContainer & keyof BsContainerAttributes as `attr:${K}`]?: BsContainerAttributes[K] } & { [K in keyof BsContainer & keyof BsContainerAttributes as `prop:${K}`]?: BsContainer[K] };
@@ -13095,18 +16514,25 @@ declare namespace LocalJSX {
13095
16514
  "bs-datepicker": Omit<BsDatepicker, keyof BsDatepickerAttributes> & { [K in keyof BsDatepicker & keyof BsDatepickerAttributes]?: BsDatepicker[K] } & { [K in keyof BsDatepicker & keyof BsDatepickerAttributes as `attr:${K}`]?: BsDatepickerAttributes[K] } & { [K in keyof BsDatepicker & keyof BsDatepickerAttributes as `prop:${K}`]?: BsDatepicker[K] };
13096
16515
  "bs-dialog": Omit<BsDialog, keyof BsDialogAttributes> & { [K in keyof BsDialog & keyof BsDialogAttributes]?: BsDialog[K] } & { [K in keyof BsDialog & keyof BsDialogAttributes as `attr:${K}`]?: BsDialogAttributes[K] } & { [K in keyof BsDialog & keyof BsDialogAttributes as `prop:${K}`]?: BsDialog[K] };
13097
16516
  "bs-divider": Omit<BsDivider, keyof BsDividerAttributes> & { [K in keyof BsDivider & keyof BsDividerAttributes]?: BsDivider[K] } & { [K in keyof BsDivider & keyof BsDividerAttributes as `attr:${K}`]?: BsDividerAttributes[K] } & { [K in keyof BsDivider & keyof BsDividerAttributes as `prop:${K}`]?: BsDivider[K] };
16517
+ "bs-empty-state": Omit<BsEmptyState, keyof BsEmptyStateAttributes> & { [K in keyof BsEmptyState & keyof BsEmptyStateAttributes]?: BsEmptyState[K] } & { [K in keyof BsEmptyState & keyof BsEmptyStateAttributes as `attr:${K}`]?: BsEmptyStateAttributes[K] } & { [K in keyof BsEmptyState & keyof BsEmptyStateAttributes as `prop:${K}`]?: BsEmptyState[K] };
13098
16518
  "bs-error-page": Omit<BsErrorPage, keyof BsErrorPageAttributes> & { [K in keyof BsErrorPage & keyof BsErrorPageAttributes]?: BsErrorPage[K] } & { [K in keyof BsErrorPage & keyof BsErrorPageAttributes as `attr:${K}`]?: BsErrorPageAttributes[K] } & { [K in keyof BsErrorPage & keyof BsErrorPageAttributes as `prop:${K}`]?: BsErrorPage[K] };
13099
16519
  "bs-file-upload": Omit<BsFileUpload, keyof BsFileUploadAttributes> & { [K in keyof BsFileUpload & keyof BsFileUploadAttributes]?: BsFileUpload[K] } & { [K in keyof BsFileUpload & keyof BsFileUploadAttributes as `attr:${K}`]?: BsFileUploadAttributes[K] } & { [K in keyof BsFileUpload & keyof BsFileUploadAttributes as `prop:${K}`]?: BsFileUpload[K] };
13100
16520
  "bs-file-upload-item": Omit<BsFileUploadItem, keyof BsFileUploadItemAttributes> & { [K in keyof BsFileUploadItem & keyof BsFileUploadItemAttributes]?: BsFileUploadItem[K] } & { [K in keyof BsFileUploadItem & keyof BsFileUploadItemAttributes as `attr:${K}`]?: BsFileUploadItemAttributes[K] } & { [K in keyof BsFileUploadItem & keyof BsFileUploadItemAttributes as `prop:${K}`]?: BsFileUploadItem[K] };
16521
+ "bs-global-search": Omit<BsGlobalSearch, keyof BsGlobalSearchAttributes> & { [K in keyof BsGlobalSearch & keyof BsGlobalSearchAttributes]?: BsGlobalSearch[K] } & { [K in keyof BsGlobalSearch & keyof BsGlobalSearchAttributes as `attr:${K}`]?: BsGlobalSearchAttributes[K] } & { [K in keyof BsGlobalSearch & keyof BsGlobalSearchAttributes as `prop:${K}`]?: BsGlobalSearch[K] };
13101
16522
  "bs-grid": Omit<BsGrid, keyof BsGridAttributes> & { [K in keyof BsGrid & keyof BsGridAttributes]?: BsGrid[K] } & { [K in keyof BsGrid & keyof BsGridAttributes as `attr:${K}`]?: BsGridAttributes[K] } & { [K in keyof BsGrid & keyof BsGridAttributes as `prop:${K}`]?: BsGrid[K] };
13102
16523
  "bs-icon-button": Omit<BsIconButton, keyof BsIconButtonAttributes> & { [K in keyof BsIconButton & keyof BsIconButtonAttributes]?: BsIconButton[K] } & { [K in keyof BsIconButton & keyof BsIconButtonAttributes as `attr:${K}`]?: BsIconButtonAttributes[K] } & { [K in keyof BsIconButton & keyof BsIconButtonAttributes as `prop:${K}`]?: BsIconButton[K] };
13103
16524
  "bs-icon-tile": Omit<BsIconTile, keyof BsIconTileAttributes> & { [K in keyof BsIconTile & keyof BsIconTileAttributes]?: BsIconTile[K] } & { [K in keyof BsIconTile & keyof BsIconTileAttributes as `attr:${K}`]?: BsIconTileAttributes[K] } & { [K in keyof BsIconTile & keyof BsIconTileAttributes as `prop:${K}`]?: BsIconTile[K] };
13104
16525
  "bs-inline-tab": Omit<BsInlineTab, keyof BsInlineTabAttributes> & { [K in keyof BsInlineTab & keyof BsInlineTabAttributes]?: BsInlineTab[K] } & { [K in keyof BsInlineTab & keyof BsInlineTabAttributes as `attr:${K}`]?: BsInlineTabAttributes[K] } & { [K in keyof BsInlineTab & keyof BsInlineTabAttributes as `prop:${K}`]?: BsInlineTab[K] };
13105
16526
  "bs-input": Omit<BsInput, keyof BsInputAttributes> & { [K in keyof BsInput & keyof BsInputAttributes]?: BsInput[K] } & { [K in keyof BsInput & keyof BsInputAttributes as `attr:${K}`]?: BsInputAttributes[K] } & { [K in keyof BsInput & keyof BsInputAttributes as `prop:${K}`]?: BsInput[K] };
16527
+ "bs-key": Omit<BsKey, keyof BsKeyAttributes> & { [K in keyof BsKey & keyof BsKeyAttributes]?: BsKey[K] } & { [K in keyof BsKey & keyof BsKeyAttributes as `attr:${K}`]?: BsKeyAttributes[K] } & { [K in keyof BsKey & keyof BsKeyAttributes as `prop:${K}`]?: BsKey[K] };
16528
+ "bs-key-caps": Omit<BsKeyCaps, keyof BsKeyCapsAttributes> & { [K in keyof BsKeyCaps & keyof BsKeyCapsAttributes]?: BsKeyCaps[K] } & { [K in keyof BsKeyCaps & keyof BsKeyCapsAttributes as `attr:${K}`]?: BsKeyCapsAttributes[K] } & { [K in keyof BsKeyCaps & keyof BsKeyCapsAttributes as `prop:${K}`]?: BsKeyCaps[K] };
16529
+ "bs-keyboard-shortcuts": Omit<BsKeyboardShortcuts, keyof BsKeyboardShortcutsAttributes> & { [K in keyof BsKeyboardShortcuts & keyof BsKeyboardShortcutsAttributes]?: BsKeyboardShortcuts[K] } & { [K in keyof BsKeyboardShortcuts & keyof BsKeyboardShortcutsAttributes as `attr:${K}`]?: BsKeyboardShortcutsAttributes[K] } & { [K in keyof BsKeyboardShortcuts & keyof BsKeyboardShortcutsAttributes as `prop:${K}`]?: BsKeyboardShortcuts[K] };
13106
16530
  "bs-list": Omit<BsList, keyof BsListAttributes> & { [K in keyof BsList & keyof BsListAttributes]?: BsList[K] } & { [K in keyof BsList & keyof BsListAttributes as `attr:${K}`]?: BsListAttributes[K] } & { [K in keyof BsList & keyof BsListAttributes as `prop:${K}`]?: BsList[K] };
13107
16531
  "bs-list-item": Omit<BsListItem, keyof BsListItemAttributes> & { [K in keyof BsListItem & keyof BsListItemAttributes]?: BsListItem[K] } & { [K in keyof BsListItem & keyof BsListItemAttributes as `attr:${K}`]?: BsListItemAttributes[K] } & { [K in keyof BsListItem & keyof BsListItemAttributes as `prop:${K}`]?: BsListItem[K] };
13108
16532
  "bs-logo": Omit<BsLogo, keyof BsLogoAttributes> & { [K in keyof BsLogo & keyof BsLogoAttributes]?: BsLogo[K] } & { [K in keyof BsLogo & keyof BsLogoAttributes as `attr:${K}`]?: BsLogoAttributes[K] } & { [K in keyof BsLogo & keyof BsLogoAttributes as `prop:${K}`]?: BsLogo[K] };
16533
+ "bs-mega-menu": Omit<BsMegaMenu, keyof BsMegaMenuAttributes> & { [K in keyof BsMegaMenu & keyof BsMegaMenuAttributes]?: BsMegaMenu[K] } & { [K in keyof BsMegaMenu & keyof BsMegaMenuAttributes as `attr:${K}`]?: BsMegaMenuAttributes[K] } & { [K in keyof BsMegaMenu & keyof BsMegaMenuAttributes as `prop:${K}`]?: BsMegaMenu[K] };
13109
16534
  "bs-menu": BsMenu;
16535
+ "bs-menu-block": Omit<BsMenuBlock, keyof BsMenuBlockAttributes> & { [K in keyof BsMenuBlock & keyof BsMenuBlockAttributes]?: BsMenuBlock[K] } & { [K in keyof BsMenuBlock & keyof BsMenuBlockAttributes as `attr:${K}`]?: BsMenuBlockAttributes[K] } & { [K in keyof BsMenuBlock & keyof BsMenuBlockAttributes as `prop:${K}`]?: BsMenuBlock[K] } & OneOf<"name", BsMenuBlock["name"], BsMenuBlockAttributes["name"]>;
13110
16536
  "bs-menu-item": Omit<BsMenuItem, keyof BsMenuItemAttributes> & { [K in keyof BsMenuItem & keyof BsMenuItemAttributes]?: BsMenuItem[K] } & { [K in keyof BsMenuItem & keyof BsMenuItemAttributes as `attr:${K}`]?: BsMenuItemAttributes[K] } & { [K in keyof BsMenuItem & keyof BsMenuItemAttributes as `prop:${K}`]?: BsMenuItem[K] };
13111
16537
  "bs-message": Omit<BsMessage, keyof BsMessageAttributes> & { [K in keyof BsMessage & keyof BsMessageAttributes]?: BsMessage[K] } & { [K in keyof BsMessage & keyof BsMessageAttributes as `attr:${K}`]?: BsMessageAttributes[K] } & { [K in keyof BsMessage & keyof BsMessageAttributes as `prop:${K}`]?: BsMessage[K] };
13112
16538
  "bs-message-list": Omit<BsMessageList, keyof BsMessageListAttributes> & { [K in keyof BsMessageList & keyof BsMessageListAttributes]?: BsMessageList[K] } & { [K in keyof BsMessageList & keyof BsMessageListAttributes as `attr:${K}`]?: BsMessageListAttributes[K] } & { [K in keyof BsMessageList & keyof BsMessageListAttributes as `prop:${K}`]?: BsMessageList[K] };
@@ -13114,6 +16540,7 @@ declare namespace LocalJSX {
13114
16540
  "bs-navigation-drawer-item": Omit<BsNavigationDrawerItem, keyof BsNavigationDrawerItemAttributes> & { [K in keyof BsNavigationDrawerItem & keyof BsNavigationDrawerItemAttributes]?: BsNavigationDrawerItem[K] } & { [K in keyof BsNavigationDrawerItem & keyof BsNavigationDrawerItemAttributes as `attr:${K}`]?: BsNavigationDrawerItemAttributes[K] } & { [K in keyof BsNavigationDrawerItem & keyof BsNavigationDrawerItemAttributes as `prop:${K}`]?: BsNavigationDrawerItem[K] };
13115
16541
  "bs-navigation-header": Omit<BsNavigationHeader, keyof BsNavigationHeaderAttributes> & { [K in keyof BsNavigationHeader & keyof BsNavigationHeaderAttributes]?: BsNavigationHeader[K] } & { [K in keyof BsNavigationHeader & keyof BsNavigationHeaderAttributes as `attr:${K}`]?: BsNavigationHeaderAttributes[K] } & { [K in keyof BsNavigationHeader & keyof BsNavigationHeaderAttributes as `prop:${K}`]?: BsNavigationHeader[K] };
13116
16542
  "bs-onboarding-checklist": Omit<BsOnboardingChecklist, keyof BsOnboardingChecklistAttributes> & { [K in keyof BsOnboardingChecklist & keyof BsOnboardingChecklistAttributes]?: BsOnboardingChecklist[K] } & { [K in keyof BsOnboardingChecklist & keyof BsOnboardingChecklistAttributes as `attr:${K}`]?: BsOnboardingChecklistAttributes[K] } & { [K in keyof BsOnboardingChecklist & keyof BsOnboardingChecklistAttributes as `prop:${K}`]?: BsOnboardingChecklist[K] };
16543
+ "bs-page-header": Omit<BsPageHeader, keyof BsPageHeaderAttributes> & { [K in keyof BsPageHeader & keyof BsPageHeaderAttributes]?: BsPageHeader[K] } & { [K in keyof BsPageHeader & keyof BsPageHeaderAttributes as `attr:${K}`]?: BsPageHeaderAttributes[K] } & { [K in keyof BsPageHeader & keyof BsPageHeaderAttributes as `prop:${K}`]?: BsPageHeader[K] };
13117
16544
  "bs-pagination": Omit<BsPagination, keyof BsPaginationAttributes> & { [K in keyof BsPagination & keyof BsPaginationAttributes]?: BsPagination[K] } & { [K in keyof BsPagination & keyof BsPaginationAttributes as `attr:${K}`]?: BsPaginationAttributes[K] } & { [K in keyof BsPagination & keyof BsPaginationAttributes as `prop:${K}`]?: BsPagination[K] };
13118
16545
  "bs-popover": Omit<BsPopover, keyof BsPopoverAttributes> & { [K in keyof BsPopover & keyof BsPopoverAttributes]?: BsPopover[K] } & { [K in keyof BsPopover & keyof BsPopoverAttributes as `attr:${K}`]?: BsPopoverAttributes[K] } & { [K in keyof BsPopover & keyof BsPopoverAttributes as `prop:${K}`]?: BsPopover[K] };
13119
16546
  "bs-product-tour": Omit<BsProductTour, keyof BsProductTourAttributes> & { [K in keyof BsProductTour & keyof BsProductTourAttributes]?: BsProductTour[K] } & { [K in keyof BsProductTour & keyof BsProductTourAttributes as `attr:${K}`]?: BsProductTourAttributes[K] } & { [K in keyof BsProductTour & keyof BsProductTourAttributes as `prop:${K}`]?: BsProductTour[K] };
@@ -13121,7 +16548,9 @@ declare namespace LocalJSX {
13121
16548
  "bs-progress-linear": Omit<BsProgressLinear, keyof BsProgressLinearAttributes> & { [K in keyof BsProgressLinear & keyof BsProgressLinearAttributes]?: BsProgressLinear[K] } & { [K in keyof BsProgressLinear & keyof BsProgressLinearAttributes as `attr:${K}`]?: BsProgressLinearAttributes[K] } & { [K in keyof BsProgressLinear & keyof BsProgressLinearAttributes as `prop:${K}`]?: BsProgressLinear[K] };
13122
16549
  "bs-qr-code": Omit<BsQrCode, keyof BsQrCodeAttributes> & { [K in keyof BsQrCode & keyof BsQrCodeAttributes]?: BsQrCode[K] } & { [K in keyof BsQrCode & keyof BsQrCodeAttributes as `attr:${K}`]?: BsQrCodeAttributes[K] } & { [K in keyof BsQrCode & keyof BsQrCodeAttributes as `prop:${K}`]?: BsQrCode[K] };
13123
16550
  "bs-radio": Omit<BsRadio, keyof BsRadioAttributes> & { [K in keyof BsRadio & keyof BsRadioAttributes]?: BsRadio[K] } & { [K in keyof BsRadio & keyof BsRadioAttributes as `attr:${K}`]?: BsRadioAttributes[K] } & { [K in keyof BsRadio & keyof BsRadioAttributes as `prop:${K}`]?: BsRadio[K] };
16551
+ "bs-search-item": Omit<BsSearchItem, keyof BsSearchItemAttributes> & { [K in keyof BsSearchItem & keyof BsSearchItemAttributes]?: BsSearchItem[K] } & { [K in keyof BsSearchItem & keyof BsSearchItemAttributes as `attr:${K}`]?: BsSearchItemAttributes[K] } & { [K in keyof BsSearchItem & keyof BsSearchItemAttributes as `prop:${K}`]?: BsSearchItem[K] };
13124
16552
  "bs-session-timeout": Omit<BsSessionTimeout, keyof BsSessionTimeoutAttributes> & { [K in keyof BsSessionTimeout & keyof BsSessionTimeoutAttributes]?: BsSessionTimeout[K] } & { [K in keyof BsSessionTimeout & keyof BsSessionTimeoutAttributes as `attr:${K}`]?: BsSessionTimeoutAttributes[K] } & { [K in keyof BsSessionTimeout & keyof BsSessionTimeoutAttributes as `prop:${K}`]?: BsSessionTimeout[K] };
16553
+ "bs-shortcut-row": Omit<BsShortcutRow, keyof BsShortcutRowAttributes> & { [K in keyof BsShortcutRow & keyof BsShortcutRowAttributes]?: BsShortcutRow[K] } & { [K in keyof BsShortcutRow & keyof BsShortcutRowAttributes as `attr:${K}`]?: BsShortcutRowAttributes[K] } & { [K in keyof BsShortcutRow & keyof BsShortcutRowAttributes as `prop:${K}`]?: BsShortcutRow[K] };
13125
16554
  "bs-side-panel": Omit<BsSidePanel, keyof BsSidePanelAttributes> & { [K in keyof BsSidePanel & keyof BsSidePanelAttributes]?: BsSidePanel[K] } & { [K in keyof BsSidePanel & keyof BsSidePanelAttributes as `attr:${K}`]?: BsSidePanelAttributes[K] } & { [K in keyof BsSidePanel & keyof BsSidePanelAttributes as `prop:${K}`]?: BsSidePanel[K] };
13126
16555
  "bs-skeleton": Omit<BsSkeleton, keyof BsSkeletonAttributes> & { [K in keyof BsSkeleton & keyof BsSkeletonAttributes]?: BsSkeleton[K] } & { [K in keyof BsSkeleton & keyof BsSkeletonAttributes as `attr:${K}`]?: BsSkeletonAttributes[K] } & { [K in keyof BsSkeleton & keyof BsSkeletonAttributes as `prop:${K}`]?: BsSkeleton[K] };
13127
16556
  "bs-slider": Omit<BsSlider, keyof BsSliderAttributes> & { [K in keyof BsSlider & keyof BsSliderAttributes]?: BsSlider[K] } & { [K in keyof BsSlider & keyof BsSliderAttributes as `attr:${K}`]?: BsSliderAttributes[K] } & { [K in keyof BsSlider & keyof BsSliderAttributes as `prop:${K}`]?: BsSlider[K] };
@@ -13239,6 +16668,34 @@ declare module "@stencil/core" {
13239
16668
  * `--bs-duration-slower` is 500ms), so this is aliased directly to the literal value.
13240
16669
  */
13241
16670
  "bs-ai-thinking": LocalJSX.IntrinsicElements["bs-ai-thinking"] & JSXBase.HTMLAttributes<HTMLBsAiThinkingElement>;
16671
+ /**
16672
+ * A full-width row for one app: a small icon tile, the app name and a description line (for example
16673
+ * "Opened 10 min ago · Nordlys Handel AS"). Matches the Figma "Recent item" component (Default, Current,
16674
+ * Hover, Pressed and Focus).
16675
+ * The row is always a native button and only emits events; it never navigates. `current` marks the app you are in
16676
+ * (`aria-current="true"`); `disabled` dims it, sets `aria-disabled` and removes it from the tab order.
16677
+ * Built from `bs-icon-tile`. The icon is either a URL of a monochrome SVG in `icon` (painted with the theme's
16678
+ * icon colour through a CSS mask) or any element in the default slot.
16679
+ * ## When to use
16680
+ * - A recently opened app, or a search result with a description, inside `bs-app-switcher`.
16681
+ * ## When not to use
16682
+ * - An app in a launcher grid -- use `bs-app-tile`.
16683
+ * - A generic list row -- use `bs-list-item`.
16684
+ * @prop --bs-app-recent-item-padding-x - Aliased to `--bs-spacing-100`.
16685
+ * @prop --bs-app-recent-item-padding-y - Aliased to `--bs-spacing-100`.
16686
+ * @prop --bs-app-recent-item-gap - Gap between icon and text. Aliased to `--bs-spacing-150`.
16687
+ * @prop --bs-app-recent-item-radius - Aliased to `--bs-border-radius-100`.
16688
+ * @prop --bs-app-recent-item-bg - Resting background. `transparent`.
16689
+ * @prop --bs-app-recent-item-bg-hover - Aliased to `--bs-surface-hover`.
16690
+ * @prop --bs-app-recent-item-bg-pressed - Aliased to `--bs-surface-pressed`.
16691
+ * @prop --bs-app-recent-item-bg-current - Aliased to `--bs-surface-selected`.
16692
+ * @prop --bs-app-recent-item-icon-bg - Icon square background. Aliased to `--bs-color-neutral-container`; `--bs-surface-base` while hovered, pressed or current.
16693
+ * @prop --bs-app-recent-item-color - Name colour. Aliased to `--bs-text-default`.
16694
+ * @prop --bs-app-recent-item-color-muted - Description colour. Aliased to `--bs-text-secondary`.
16695
+ * @prop --bs-app-recent-item-color-disabled - Name, description and icon colour when disabled. Aliased to `--bs-text-on-disabled`.
16696
+ * @prop --bs-app-recent-item-focus-ring - Focus ring colour. Aliased to `--bs-border-neutral-focus`.
16697
+ */
16698
+ "bs-app-recent-item": LocalJSX.IntrinsicElements["bs-app-recent-item"] & JSXBase.HTMLAttributes<HTMLBsAppRecentItemElement>;
13242
16699
  /**
13243
16700
  * The page frame: a header across the top, and below it a navigation | main | aside row, laid out
13244
16701
  * with CSS grid. The main column scrolls independently of the header and the side columns.
@@ -13261,6 +16718,65 @@ declare module "@stencil/core" {
13261
16718
  * @prop --bs-app-shell-aside-width - Width of the aside column. Defaults to `auto` (zero when empty).
13262
16719
  */
13263
16720
  "bs-app-shell": LocalJSX.IntrinsicElements["bs-app-shell"] & JSXBase.HTMLAttributes<HTMLBsAppShellElement>;
16721
+ /**
16722
+ * The panel of an app launcher ("EG apps"): a header with a "Manage" action, a search field, your apps as a
16723
+ * grid (or Recent plus All apps), search results, and a footer link to browse all products. It also has
16724
+ * no-results, loading, error and empty states. Matches the Figma "App switcher" (states Default, With recent,
16725
+ * Searching, No results, Loading, Error and Empty).
16726
+ * This is the panel only. To open it from a button, wrap it in `bs-popover`.
16727
+ * Built from `bs-card` (panel surface), `bs-input` (search), `bs-app-tile` and `bs-app-recent-item` (apps),
16728
+ * `bs-empty-state` (no results, error, empty), `bs-skeleton` (loading), `bs-button` (Clear search, Try
16729
+ * again, Request access) and `bs-divider`. "Manage" and "Browse all" are native links (or buttons when
16730
+ * there is no URL): `bs-button` has no link mode and the library has no link component.
16731
+ * ## When to use
16732
+ * - Letting a user jump between the products they have access to, from an app header.
16733
+ * ## When not to use
16734
+ * - Navigation inside one app -- use `bs-menu` or the app shell navigation.
16735
+ * - Switching company -- use `bs-company-switcher`.
16736
+ * `apps` and `recent` are arrays and must be set as JS properties. Each app's `icon` is the URL of a
16737
+ * monochrome SVG. You own the data: listen to `bsAppSelect` (cancelable: `preventDefault()` cancels the
16738
+ * originating click), and drive `status` and `query` yourself. An empty `apps` list while `status` is
16739
+ * `ready` shows the empty state.
16740
+ * @prop --bs-app-switcher-width - Panel width. Defaults to `360px` (Figma); capped at the viewport.
16741
+ * @prop --bs-app-switcher-radius - Panel corner radius. Aliased to `--bs-border-radius-150`.
16742
+ * @prop --bs-app-switcher-bg - Panel background. Aliased to `--bs-surface-base`.
16743
+ * @prop --bs-app-switcher-border-color - Panel border. Aliased to `--bs-border-default`.
16744
+ * @prop --bs-app-switcher-shadow - Panel shadow (elevation level 4). Aliased to the `--bs-shadow-*` position and blur tokens and `--bs-elevation-higher`.
16745
+ * @prop --bs-app-switcher-padding - Side padding of the content. Aliased to `--bs-spacing-150`.
16746
+ * @prop --bs-app-switcher-text-color - Heading and links in the header. Aliased to `--bs-text-default`.
16747
+ * @prop --bs-app-switcher-header-color - Group headers. Aliased to `--bs-text-secondary`.
16748
+ * @prop --bs-app-switcher-link-color - Browse link. Aliased to `--bs-text-action`.
16749
+ * @prop --bs-app-switcher-focus-ring - Link focus ring. Aliased to `--bs-border-neutral-focus`.
16750
+ */
16751
+ "bs-app-switcher": LocalJSX.IntrinsicElements["bs-app-switcher"] & JSXBase.HTMLAttributes<HTMLBsAppSwitcherElement>;
16752
+ /**
16753
+ * One app in an app launcher: an icon tile above a short label. Matches the Figma "App tile" component
16754
+ * (Size Grid and Compact, each Default, Hover, Pressed, Focus, Current and Disabled).
16755
+ * The tile is always a native button and only emits events; it never navigates. Hover, pressed and focus come from the
16756
+ * native element; `current` marks the app you are in (`aria-current="true"`); `disabled` dims it, sets
16757
+ * `aria-disabled` and removes it from the tab order.
16758
+ * Built from `bs-icon-tile`. The icon is either a URL of a monochrome SVG in `icon` (painted with the
16759
+ * theme's icon colour through a CSS mask, so it follows light and dark mode), or any element in the default
16760
+ * slot (an `<svg>` drawn with `currentColor`).
16761
+ * ## When to use
16762
+ * - An app in a launcher grid, usually inside `bs-app-switcher`.
16763
+ * ## When not to use
16764
+ * - A row with a description or "recently opened" line -- use `bs-app-recent-item`.
16765
+ * - A command in a menu -- use `bs-menu-item`.
16766
+ * @prop --bs-app-tile-icon-size - Size of the icon square. `44px` in `grid` (Figma) and `--bs-sizing-400` in `compact`.
16767
+ * @prop --bs-app-tile-padding - Padding inside the tile. Aliased to `--bs-spacing-150` (`grid`) or `--bs-spacing-100` (`compact`).
16768
+ * @prop --bs-app-tile-gap - Gap between icon and label. Aliased to `--bs-spacing-150` (`grid`) or `--bs-spacing-50` (`compact`).
16769
+ * @prop --bs-app-tile-radius - Corner radius. Aliased to `--bs-border-radius-100`.
16770
+ * @prop --bs-app-tile-bg - Resting background. `transparent`.
16771
+ * @prop --bs-app-tile-bg-hover - Aliased to `--bs-surface-hover`.
16772
+ * @prop --bs-app-tile-bg-pressed - Aliased to `--bs-surface-pressed`.
16773
+ * @prop --bs-app-tile-bg-current - Aliased to `--bs-surface-selected`.
16774
+ * @prop --bs-app-tile-icon-bg - Icon square background. Aliased to `--bs-color-neutral-container`; `--bs-surface-base` while hovered, pressed or current.
16775
+ * @prop --bs-app-tile-color - Label colour. Aliased to `--bs-text-default`.
16776
+ * @prop --bs-app-tile-color-disabled - Label and icon colour when disabled. Aliased to `--bs-text-on-disabled`.
16777
+ * @prop --bs-app-tile-focus-ring - Focus ring colour. Aliased to `--bs-border-neutral-focus`.
16778
+ */
16779
+ "bs-app-tile": LocalJSX.IntrinsicElements["bs-app-tile"] & JSXBase.HTMLAttributes<HTMLBsAppTileElement>;
13264
16780
  /**
13265
16781
  * A single file attachment preview for `bs-composer` -- an image thumbnail, or a filename card
13266
16782
  * with a colored file-type badge (PDF/Document), with an optional upload-in-progress spinner and
@@ -13718,6 +17234,91 @@ declare module "@stencil/core" {
13718
17234
  * @prop --bs-citation-preview-page-color - Page label color. Aliased to `--bs-text-secondary`.
13719
17235
  */
13720
17236
  "bs-citation-preview": LocalJSX.IntrinsicElements["bs-citation-preview"] & JSXBase.HTMLAttributes<HTMLBsCitationPreviewElement>;
17237
+ /**
17238
+ * A Ctrl+K command palette: a modal with a search field, grouped commands, navigation and records, a
17239
+ * no-results view and a keyboard-hint footer. The data, the filtering, the command registry and the
17240
+ * recent-items storage are all yours: you slot `bs-search-item`s into the sections and set `status`.
17241
+ * Built from a native `<dialog>` (opened with `showModal()`, so focus is trapped, the page behind is inert
17242
+ * and the backdrop is the scrim), `bs-input` (type="search"), `bs-search-item`, `bs-key` (footer hints and
17243
+ * the Esc cap), `bs-chip-informative` (the scope chip) and `bs-spinner` (loading). Slot a `bs-key-caps` with
17244
+ * `slot="trailing"` inside an item to show a command's shortcut.
17245
+ * ## When to use
17246
+ * - An app-wide "do anything" entry point opened with a hotkey: run commands, navigate, open records.
17247
+ * ## When not to use
17248
+ * - A plain search box with a dropdown -- use `bs-global-search`.
17249
+ * - A small list of actions on one control -- use `bs-menu`.
17250
+ * A `>` as the first character of the field switches to commands-only mode (`commandsOnly`, reflected as
17251
+ * `commands-only`). The component filters nothing: listen to `bsInput`, swap the slotted items, set `status`.
17252
+ * Nested (sub-command) palettes are a consumer pattern: swap the slotted commands and set `scopeLabel`.
17253
+ * @prop --bs-command-palette-width - Panel width. Defaults to `640px` (Figma); capped to the viewport.
17254
+ * @prop --bs-command-palette-top - Distance from the top of the viewport. Defaults to `12vh`.
17255
+ * @prop --bs-command-palette-max-height - Max height of the results area. Defaults to `60vh`.
17256
+ * @prop --bs-command-palette-radius - Aliased to `--bs-border-radius-150`.
17257
+ * @prop --bs-command-palette-bg - Panel background. Aliased to `--bs-surface-base`.
17258
+ * @prop --bs-command-palette-shadow - Figma elevation level 4: `0 8px 16px` in `--bs-elevation-higher` (stronger in dark mode).
17259
+ * @prop --bs-command-palette-overlay - Scrim colour. Aliased to `--bs-surface-overlay`.
17260
+ * @prop --bs-command-palette-footer-bg - Aliased to `--bs-surface-container`.
17261
+ * @prop --bs-command-palette-divider-color - Aliased to `--bs-border-default`.
17262
+ * @prop --bs-command-palette-header-border-color - Aliased to `--bs-border-neutral-container`.
17263
+ * @prop --bs-command-palette-header-color - Aliased to `--bs-text-muted`.
17264
+ * @prop --bs-command-palette-hint-color - Aliased to `--bs-text-secondary`.
17265
+ * @prop --bs-command-palette-z-index - Aliased to `--bs-z-index-modal`.
17266
+ */
17267
+ "bs-command-palette": LocalJSX.IntrinsicElements["bs-command-palette"] & JSXBase.HTMLAttributes<HTMLBsCommandPaletteElement>;
17268
+ /**
17269
+ * A plain text entry in a mega menu: one line, no icon. Matches the Figma "Compact menu block" component
17270
+ * (Default, Hover, Pressed and Focused).
17271
+ * The block is always a native button and only emits events; it never navigates. Hover, pressed and focus come from the
17272
+ * native element.
17273
+ * ## When to use
17274
+ * - A dense list of destinations in a mega menu, usually inside `bs-mega-menu` with `type="compact"`.
17275
+ * ## When not to use
17276
+ * - A destination that needs an icon or a description -- use `bs-menu-block`.
17277
+ * - A command in a dropdown list -- use `bs-menu-item`.
17278
+ * @prop --bs-compact-menu-block-padding - Padding inside the block. Aliased to `--bs-spacing-100`.
17279
+ * @prop --bs-compact-menu-block-radius - Corner radius. Aliased to `--bs-border-radius-100`.
17280
+ * @prop --bs-compact-menu-block-bg - Resting background. `transparent`.
17281
+ * @prop --bs-compact-menu-block-bg-hover - Aliased to `--bs-surface-hover`.
17282
+ * @prop --bs-compact-menu-block-bg-pressed - Aliased to `--bs-surface-pressed`.
17283
+ * @prop --bs-compact-menu-block-color - Text colour. Aliased to `--bs-text-default`.
17284
+ * @prop --bs-compact-menu-block-focus-ring - Focus ring colour. Aliased to `--bs-border-info`.
17285
+ */
17286
+ "bs-compact-menu-block": LocalJSX.IntrinsicElements["bs-compact-menu-block"] & JSXBase.HTMLAttributes<HTMLBsCompactMenuBlockElement>;
17287
+ /**
17288
+ * A company (tenant) switcher: a trigger showing the current company, and a panel to find and switch to
17289
+ * another one. The panel has a search field, the current / recent / all groups, a filtered "matches" view,
17290
+ * a no-results state and a footer with "Manage Companies" and "Add companies" actions.
17291
+ * Built from `bs-popover` (open/close, Escape, outside click, flipping), `bs-card` (panel surface),
17292
+ * `bs-input` (search), `bs-list-item` (rows), `bs-avatar` (initials), `bs-spinner` (switching),
17293
+ * `bs-empty-state` (no results), `bs-divider` and `bs-button` (footer). The trigger is a native `<button>`:
17294
+ * no `bs-*` component is a composite "avatar + two lines + chevron" button.
17295
+ * ## When to use
17296
+ * - An app header or side navigation where a user belongs to several companies and works in one at a time.
17297
+ * ## When not to use
17298
+ * - Picking a value in a form -- use `bs-input type="dropdown"`.
17299
+ * - Switching between a handful of fixed views -- use `bs-tab`.
17300
+ * `companies` is an array and must be set as a JS property. You own the data and the switch itself: listen to
17301
+ * `bsCompanySwitch`, do the work, then update `currentId`. To show the switching state set `switchingId`
17302
+ * (from the `bsCompanySwitch` handler, or later) and the panel stays open until you clear it and set `open`
17303
+ * to `false`. If `switchingId` is not set by the time the handler returns, the panel closes immediately.
17304
+ * @prop --bs-company-switcher-width - Trigger width. Defaults to `260px` (Figma); capped at 100%.
17305
+ * @prop --bs-company-switcher-panel-width - Panel width. Defaults to `360px` (Figma); capped at the viewport.
17306
+ * @prop --bs-company-switcher-radius - Trigger and panel corner radius. Aliased to `--bs-border-radius-100`.
17307
+ * @prop --bs-company-switcher-trigger-bg - Trigger resting background. `transparent`.
17308
+ * @prop --bs-company-switcher-trigger-bg-hover - Aliased to `--bs-surface-hover`.
17309
+ * @prop --bs-company-switcher-trigger-bg-pressed - Aliased to `--bs-surface-pressed`.
17310
+ * @prop --bs-company-switcher-trigger-bg-open - Aliased to `--bs-surface-selected`.
17311
+ * @prop --bs-company-switcher-focus-ring - Trigger focus outline. Aliased to `--bs-border-neutral-focus`.
17312
+ * @prop --bs-company-switcher-panel-bg - Panel background. Aliased to `--bs-surface-base`.
17313
+ * @prop --bs-company-switcher-panel-border-color - Panel border. Aliased to `--bs-border-default`.
17314
+ * @prop --bs-company-switcher-shadow - Panel shadow. Aliased to `--bs-shadow-md`.
17315
+ * @prop --bs-company-switcher-max-height - Maximum height of the scrolling list. Defaults to `320px`.
17316
+ * @prop --bs-company-switcher-text-color - Names. Aliased to `--bs-text-default`.
17317
+ * @prop --bs-company-switcher-muted-color - Org. numbers. Aliased to `--bs-text-secondary`.
17318
+ * @prop --bs-company-switcher-header-color - Group headers. Aliased to `--bs-text-muted`.
17319
+ * @prop --bs-company-switcher-z-index - Panel stacking. Aliased to `--bs-z-index-popover`.
17320
+ */
17321
+ "bs-company-switcher": LocalJSX.IntrinsicElements["bs-company-switcher"] & JSXBase.HTMLAttributes<HTMLBsCompanySwitcherElement>;
13721
17322
  /**
13722
17323
  * A chat composer input for Genie AI-style conversational interfaces: a text field
13723
17324
  * plus an attach button, a mic/voice-recording toggle, and a single primary action button whose
@@ -13914,6 +17515,24 @@ declare module "@stencil/core" {
13914
17515
  * @prop --bs-divider-inset - Indent applied by `inset`. Aliased to `--bs-spacing-300`.
13915
17516
  */
13916
17517
  "bs-divider": LocalJSX.IntrinsicElements["bs-divider"] & JSXBase.HTMLAttributes<HTMLBsDividerElement>;
17518
+ /**
17519
+ * A centered "nothing to show" block: an icon tile, a heading, a description and an optional action.
17520
+ * Used for empty lists, "no results" and error states inside a panel, card or page section.
17521
+ * Built from `bs-icon-tile` (and, in your `action` slot, usually a `bs-button`).
17522
+ * The component has no role. Live regions belong on a wrapper you control (e.g. `role="status"` on the
17523
+ * element that stays in the DOM while this block appears and disappears).
17524
+ * ## When to use
17525
+ * - A list, table or search result that has nothing to show, or failed to load.
17526
+ * ## When not to use
17527
+ * - A full-page error with a status code -- use `bs-error-page`.
17528
+ * - A transient message -- use `bs-toast` or `bs-snackbar`.
17529
+ * @prop --bs-empty-state-padding-y - Vertical padding. Aliased to `--bs-spacing-700` (56px).
17530
+ * @prop --bs-empty-state-padding-x - Horizontal padding. Aliased to `--bs-spacing-300` (24px).
17531
+ * @prop --bs-empty-state-gap - Gap between tile, heading, description and action. Aliased to `--bs-spacing-150`.
17532
+ * @prop --bs-empty-state-heading-color - Aliased to `--bs-text-default`.
17533
+ * @prop --bs-empty-state-description-color - Aliased to `--bs-text-secondary`.
17534
+ */
17535
+ "bs-empty-state": LocalJSX.IntrinsicElements["bs-empty-state"] & JSXBase.HTMLAttributes<HTMLBsEmptyStateElement>;
13917
17536
  /**
13918
17537
  * A full-block page for when the user can't get to what they asked for: page not found (404), a server
13919
17538
  * error (500), no access (403), planned maintenance, or no internet connection. Matches the Figma
@@ -13953,6 +17572,37 @@ declare module "@stencil/core" {
13953
17572
  * - Attaching files to a chat message -- use `bs-attachment`.
13954
17573
  */
13955
17574
  "bs-file-upload-item": LocalJSX.IntrinsicElements["bs-file-upload-item"] & JSXBase.HTMLAttributes<HTMLBsFileUploadItemElement>;
17575
+ /**
17576
+ * A global search combobox: a search field with a dropdown panel of suggestions, results, an empty state
17577
+ * or an error state, plus a keyboard-hint footer. The data, the filtering and the recent-search storage
17578
+ * are all yours: you slot `bs-search-item`s into the sections and tell the component which `status` to show.
17579
+ * Built from `bs-input` (type="search"), `bs-search-item`, `bs-empty-state` (and so `bs-icon-tile`),
17580
+ * `bs-button` and `bs-key` (the footer keycaps).
17581
+ * ## When to use
17582
+ * - An app-wide "find anything" field with recent searches, jump-to shortcuts and grouped results.
17583
+ * ## When not to use
17584
+ * - Filtering the list or table that is already on screen -- use `bs-input type="search"`.
17585
+ * - A list of commands or actions -- use `bs-menu`.
17586
+ * - The complete result set -- link to a full search results page ("See all results").
17587
+ * Put `bs-search-item` children in the light DOM with `slot="recent"`, `slot="jump-to"`,
17588
+ * `slot="top-matches"` or `slot="search-in"`. A section (and its header) is only rendered when its slot has
17589
+ * content. Up/Down arrows move a highlight through the visible items; focus never leaves the field.
17590
+ * Known limit: the items are in your light DOM and the combobox in this shadow root, so
17591
+ * `aria-activedescendant` (an id reference) does not resolve across that boundary in every browser; the
17592
+ * highlighted option also gets `aria-selected="true"`.
17593
+ * @prop --bs-global-search-width - Field and panel width. Defaults to `480px` (Figma); capped at 100%.
17594
+ * @prop --bs-global-search-panel-radius - Aliased to `--bs-border-radius-100`.
17595
+ * @prop --bs-global-search-panel-padding - Aliased to `--bs-spacing-100`.
17596
+ * @prop --bs-global-search-gap - Gap between sections, and between the field and the panel. Aliased to `--bs-spacing-100`.
17597
+ * @prop --bs-global-search-panel-bg - Panel background. Aliased to `--bs-surface-base`.
17598
+ * @prop --bs-global-search-shadow - Panel shadow: Figma elevation level 3 (`0 4px 8px` in `--bs-elevation-high`, 10% black in light mode and 30% in dark mode).
17599
+ * @prop --bs-global-search-z-index - Panel stacking. Aliased to `--bs-z-index-dropdown`.
17600
+ * @prop --bs-global-search-divider-color - Footer divider. Aliased to `--bs-border-default`.
17601
+ * @prop --bs-global-search-header-border-color - Section header underline. Aliased to `--bs-border-neutral-container`.
17602
+ * @prop --bs-global-search-header-color - Section header text. Aliased to `--bs-text-muted`.
17603
+ * @prop --bs-global-search-hint-color - Footer hint text. Aliased to `--bs-text-secondary`.
17604
+ */
17605
+ "bs-global-search": LocalJSX.IntrinsicElements["bs-global-search"] & JSXBase.HTMLAttributes<HTMLBsGlobalSearchElement>;
13956
17606
  /**
13957
17607
  * A CSS grid layout wrapper. Children are placed in equal-width columns with a token-based gap.
13958
17608
  * `columns` takes either a number (`"3"` becomes `repeat(3, minmax(0, 1fr))`) or any raw
@@ -14047,6 +17697,61 @@ declare module "@stencil/core" {
14047
17697
  * options list at all (freeform chip entry).
14048
17698
  */
14049
17699
  "bs-input": LocalJSX.IntrinsicElements["bs-input"] & JSXBase.HTMLAttributes<HTMLBsInputElement>;
17700
+ /**
17701
+ * One key of a keyboard shortcut, e.g. `Ctrl`, `K` or `Esc` -- rendered as a `<kbd>` keycap.
17702
+ * Shows a text label, or an icon (e.g. a return arrow) via the `icon` slot.
17703
+ * ## When to use
17704
+ * - Showing a keyboard shortcut hint next to a control or inside a search field.
17705
+ * - Alone for a single key, or as the children of `bs-key-caps` for a multi-key shortcut.
17706
+ * ## When not to use
17707
+ * - As a button or any clickable control -- a key is a static hint, not interactive.
17708
+ * @prop --bs-key-bg - Cap background. Aliased to `--bs-surface-base`.
17709
+ * @prop --bs-key-border-color - Cap border colour. Aliased to `--bs-border-default`.
17710
+ * @prop --bs-key-radius - Cap corner radius. Aliased to `--bs-border-radius-50`.
17711
+ * @prop --bs-key-padding-x - Horizontal padding. Aliased to `--bs-spacing-75`.
17712
+ * @prop --bs-key-padding-y - Vertical padding. Aliased to `--bs-spacing-50`.
17713
+ * @prop --bs-key-min-width - Smallest cap width, so single characters keep a keycap shape. Defaults to `25px` (Figma).
17714
+ * @prop --bs-key-color - Label colour. Aliased to `--bs-text-secondary`.
17715
+ * @prop --bs-key-font-size - Label size. Aliased to `--bs-font-size-xs` (12px).
17716
+ * @prop --bs-key-icon-size - Icon size. Defaults to `16px` (Figma).
17717
+ */
17718
+ "bs-key": LocalJSX.IntrinsicElements["bs-key"] & JSXBase.HTMLAttributes<HTMLBsKeyElement>;
17719
+ /**
17720
+ * A keyboard shortcut of one to four keys joined by "+", e.g. `Ctrl + K`. Give it a `keys` string
17721
+ * (`"Ctrl+Shift+K"`) or array (`['Ctrl', '+']` for a literal plus key), or slot your own `bs-key`
17722
+ * elements -- for example when a key is an icon.
17723
+ * ## When to use
17724
+ * - A shortcut hint beside a menu item, button or inside a search field.
17725
+ * ## When not to use
17726
+ * - Instructions that need prose ("press Enter to submit") -- write a sentence and use a single `bs-key` inline.
17727
+ * - Anything interactive -- keys are static hints.
17728
+ * @prop --bs-key-caps-gap - Gap between keys and separators. Aliased to `--bs-spacing-100`.
17729
+ * @prop --bs-key-caps-separator-color - Colour of the "+" separators. Aliased to `--bs-text-muted`.
17730
+ * @prop --bs-key-caps-disabled-opacity - Opacity of the whole shortcut while `disabled`. Defaults to `0.38` (Figma).
17731
+ */
17732
+ "bs-key-caps": LocalJSX.IntrinsicElements["bs-key-caps"] & JSXBase.HTMLAttributes<HTMLBsKeyCapsElement>;
17733
+ /**
17734
+ * A searchable reference panel of keyboard shortcuts: heading and close button, a search field, an
17735
+ * optional single-key on/off switch, shortcut groups in two columns and a footer hint. It is a
17736
+ * surface, not a modal -- place it inside `bs-dialog` or a popover.
17737
+ * Built from `bs-card`, `bs-icon-button`, `bs-input`, `bs-switch`, `bs-shortcut-row` (and so
17738
+ * `bs-key-caps` / `bs-key`).
17739
+ * ## When to use
17740
+ * - A "press ? to see shortcuts" help overlay for an app with many shortcuts.
17741
+ * ## When not to use
17742
+ * - A long-form help page or documentation -- link to it instead.
17743
+ * - A list of commands the user can run from it -- use `bs-menu`.
17744
+ * @prop --bs-keyboard-shortcuts-width - Panel width and min-width. Defaults to `720px` (Figma).
17745
+ * @prop --bs-keyboard-shortcuts-bg - Panel background. Aliased to `--bs-surface-base`.
17746
+ * @prop --bs-keyboard-shortcuts-radius - Aliased to `--bs-border-radius-150`.
17747
+ * @prop --bs-keyboard-shortcuts-padding - Aliased to `--bs-spacing-200`.
17748
+ * @prop --bs-keyboard-shortcuts-gap - Gap between sections. Aliased to `--bs-spacing-200`.
17749
+ * @prop --bs-keyboard-shortcuts-shadow - Figma elevation level 4 (`0 8px 8px` in `--bs-elevation-higher`, 12% black in light mode and 25% in dark mode).
17750
+ * @prop --bs-keyboard-shortcuts-column-gap - Gap between the two columns. Aliased to `--bs-spacing-600`.
17751
+ * @prop --bs-keyboard-shortcuts-color - Main text colour. Aliased to `--bs-text-default`.
17752
+ * @prop --bs-keyboard-shortcuts-color-secondary - Titles, captions, footer. Aliased to `--bs-text-secondary`.
17753
+ */
17754
+ "bs-keyboard-shortcuts": LocalJSX.IntrinsicElements["bs-keyboard-shortcuts"] & JSXBase.HTMLAttributes<HTMLBsKeyboardShortcutsElement>;
14050
17755
  /**
14051
17756
  * A vertical list of `bs-list-item` rows, optionally single-select.
14052
17757
  * ## When to use
@@ -14124,6 +17829,41 @@ declare module "@stencil/core" {
14124
17829
  * is already designed for whatever surface it's placed on.
14125
17830
  */
14126
17831
  "bs-logo": LocalJSX.IntrinsicElements["bs-logo"] & JSXBase.HTMLAttributes<HTMLBsLogoElement>;
17832
+ /**
17833
+ * The dropdown panel under a navigation header tab: columns of links grouped under headings, an optional
17834
+ * featured area on the right, and a footer with recently used items and a shortcut hint. Matches the Figma
17835
+ * "Mega menu" (types Columns, Column with featured, Compact and Compact with featured).
17836
+ * This is the panel only. Put it in `bs-navigation-header`'s `menu` slot, which anchors it under the bar at the
17837
+ * header's full width, and toggle the host's `hidden` attribute from the tab that
17838
+ * opens it; the panel does not open or close itself. Escape inside the panel fires `bsClose` so you can close it.
17839
+ * Built from `bs-card` (panel surface), `bs-menu-block` or `bs-compact-menu-block` (the links), `bs-divider` and
17840
+ * `bs-key-caps` (the shortcut). The column layout, headings, featured text and footer row are plain layout
17841
+ * markup: no component covers them.
17842
+ * ## Responsive
17843
+ * The panel reacts to its own width (a container query), not the viewport's. Below 600px it becomes one column (heading
17844
+ * above its links, featured area below), titles and descriptions wrap, links are at least 44px tall, the footer stacks
17845
+ * and the default shortcut hint is hidden (`display: none`; a keyboard hint means nothing on a touch screen). A custom
17846
+ * `footer-end` slot is not hidden.
17847
+ * ## When to use
17848
+ * - A header tab that leads to many destinations that need grouping (Sell, Finance, Inventory).
17849
+ * ## When not to use
17850
+ * - A short list of commands -- use `bs-menu` in a `bs-popover`.
17851
+ * - Switching app or company -- use `bs-app-switcher` or `bs-company-switcher`.
17852
+ * `columns`, `featured` and `recent` are arrays or objects and must be set as JS properties. Each item's `icon` is
17853
+ * the URL of a monochrome SVG. You own the data: listen to `bsMenuSelect` (cancelable: `preventDefault()` cancels the
17854
+ * originating click).
17855
+ * @prop --bs-mega-menu-width - Panel width. Defaults to `1100px` (Figma); capped at the viewport.
17856
+ * @prop --bs-mega-menu-radius - Panel corner radius. Aliased to `--bs-border-radius-150`.
17857
+ * @prop --bs-mega-menu-bg - Panel background. Aliased to `--bs-surface-base`.
17858
+ * @prop --bs-mega-menu-border-color - Panel border. Aliased to `--bs-border-default`.
17859
+ * @prop --bs-mega-menu-shadow - Panel shadow (elevation level 3). Aliased to the `--bs-shadow-*` position and blur tokens and `--bs-elevation-high`.
17860
+ * @prop --bs-mega-menu-padding - Padding around the columns. Aliased to `--bs-spacing-300` and `--bs-spacing-350`.
17861
+ * @prop --bs-mega-menu-gap - Gap between columns. Aliased to `--bs-spacing-300`.
17862
+ * @prop --bs-mega-menu-heading-color - Column headings. Aliased to `--bs-text-muted`.
17863
+ * @prop --bs-mega-menu-text-color - Featured title. Aliased to `--bs-text-default`.
17864
+ * @prop --bs-mega-menu-muted-color - Featured description and footer text. Aliased to `--bs-text-secondary`.
17865
+ */
17866
+ "bs-mega-menu": LocalJSX.IntrinsicElements["bs-mega-menu"] & JSXBase.HTMLAttributes<HTMLBsMegaMenuElement>;
14127
17867
  /**
14128
17868
  * A generic dropdown/popup menu container: a rounded, elevated list of items (typically
14129
17869
  * `bs-menu-item` elements).
@@ -14140,6 +17880,32 @@ declare module "@stencil/core" {
14140
17880
  * @prop --bs-menu-shadow - Elevation shadow of the menu box. Aliased to `--bs-shadow-sm`.
14141
17881
  */
14142
17882
  "bs-menu": LocalJSX.IntrinsicElements["bs-menu"] & JSXBase.HTMLAttributes<HTMLBsMenuElement>;
17883
+ /**
17884
+ * A rich entry in a mega menu: an icon tile, a title with an optional "New" chip, and a one-line description.
17885
+ * Matches the Figma "Menu block" component (Default, Hover, Pressed and Focused).
17886
+ * The block is always a native button and only emits events; it never navigates. Hover, pressed and focus come from the
17887
+ * native element. Its accessible name is its text: the title, the badge and the description, read once.
17888
+ * Built from `bs-icon-tile` (the icon) and `bs-chip-informative` (the badge). The icon is either a URL of a
17889
+ * monochrome SVG in `icon` (painted with the theme's icon colour through a CSS mask, so it follows light and
17890
+ * dark mode), or any element in the default slot (an `<svg>` drawn with `currentColor`).
17891
+ * ## When to use
17892
+ * - A destination in a mega menu that needs an icon and a sentence of explanation, usually inside `bs-mega-menu`.
17893
+ * ## When not to use
17894
+ * - A plain text destination -- use `bs-compact-menu-block`.
17895
+ * - A command in a dropdown list -- use `bs-menu-item`.
17896
+ * @prop --bs-menu-block-padding - Padding inside the block. Aliased to `--bs-spacing-150`.
17897
+ * @prop --bs-menu-block-gap - Gap between icon and text. Aliased to `--bs-spacing-150`.
17898
+ * @prop --bs-menu-block-radius - Corner radius. Aliased to `--bs-border-radius-100`.
17899
+ * @prop --bs-menu-block-bg - Resting background. `transparent`.
17900
+ * @prop --bs-menu-block-bg-hover - Aliased to `--bs-surface-hover`.
17901
+ * @prop --bs-menu-block-bg-pressed - Aliased to `--bs-surface-pressed`.
17902
+ * @prop --bs-menu-block-icon-bg - Icon square background. Aliased to `--bs-color-neutral-container`; `--bs-surface-base` while hovered or pressed.
17903
+ * @prop --bs-menu-block-color - Title colour. Aliased to `--bs-text-default`.
17904
+ * @prop --bs-menu-block-color-muted - Description colour. Aliased to `--bs-text-secondary`.
17905
+ * @prop --bs-menu-block-focus-ring - Focus ring colour. Aliased to `--bs-border-info`.
17906
+ * @prop --bs-menu-block-white-space - `white-space` of the title and description. `nowrap` (single line, ellipsis); set `normal` to let them wrap.
17907
+ */
17908
+ "bs-menu-block": LocalJSX.IntrinsicElements["bs-menu-block"] & JSXBase.HTMLAttributes<HTMLBsMenuBlockElement>;
14143
17909
  /**
14144
17910
  * A single selectable row inside a `bs-menu`: an optional icon plus a text label, rendered as a
14145
17911
  * real `<button>` for correct keyboard/click semantics.
@@ -14317,6 +18083,47 @@ declare module "@stencil/core" {
14317
18083
  * hidden "Done" / "Not done". The progress bar is named with the progress text.
14318
18084
  */
14319
18085
  "bs-onboarding-checklist": LocalJSX.IntrinsicElements["bs-onboarding-checklist"] & JSXBase.HTMLAttributes<HTMLBsOnboardingChecklistElement>;
18086
+ /**
18087
+ * The header at the top of a page's content area: breadcrumb trail, the page title (a real heading) with an
18088
+ * optional back button, status and favourite toggle, a meta line, page-level actions on the right and an
18089
+ * optional row of tabs. Matches the Figma "Page header" (types List page, Record, Record with tabs and Sticky
18090
+ * compact).
18091
+ * Built from `bs-breadcrumbs`/`bs-breadcrumb` (slotted by you), `bs-icon-button` (the built-in back and favourite
18092
+ * buttons), `bs-chip-informative` (the status you slot), `bs-button` and `bs-icon-button` (the actions you slot),
18093
+ * `bs-tabs`/`bs-tab` (the tab row you slot) and `bs-divider` (under the tabs). The title block, meta line and
18094
+ * actions area are plain layout markup, because no component covers them. The back arrow and the star are
18095
+ * inline SVG (Phosphor "arrow-left", "star" and "star-fill") until the library has an icon component.
18096
+ * ## Compact (sticky)
18097
+ * `compact` is the condensed state a record header takes once the page scrolls: one row (back, title, status,
18098
+ * meta inline, actions), a level 2 shadow, no breadcrumb and no tabs, and `position: sticky`. Set it yourself
18099
+ * from a scroll observer. Because the header covers the top of the scroll area, give the scroll container
18100
+ * `scroll-padding-top` equal to its height (80px by default) so focused or anchored content is not hidden under it.
18101
+ * ## Responsive
18102
+ * The header reacts to its own width (a container query), not the viewport's. Below 640px the actions wrap
18103
+ * below the title block, slotted buttons grow to 44px tall, the title and meta wrap, and the tab row scrolls
18104
+ * sideways inside itself. The page never gets wider.
18105
+ * ## When to use
18106
+ * - The top of a list page or a single record (an invoice, a customer) inside the app shell's content area.
18107
+ * ## When not to use
18108
+ * - The app-wide bar with logo, search and user: use `bs-navigation-header`.
18109
+ * - The heading of a card, dialog or panel: use that component's own `heading`.
18110
+ * ## Accessibility notes
18111
+ * The root is a plain `div`, not a `<header>`: a `<header>` that is not inside `<main>`/`<article>`/`<section>`
18112
+ * is a second banner landmark. The title is a real heading (`<h1>` by default, `headingLevel` 1 to 6); the
18113
+ * status is next to it, not inside it. If you want a landmark, wrap `bs-page-header` yourself.
18114
+ * @prop --bs-page-header-bg - Background. Aliased to `--bs-surface-base`.
18115
+ * @prop --bs-page-header-padding-x - Left and right padding. Aliased to `--bs-spacing-200`.
18116
+ * @prop --bs-page-header-padding-y - Top and bottom padding. Aliased to `--bs-spacing-300`.
18117
+ * @prop --bs-page-header-gap - Gap between the breadcrumb, title block and tabs, and between the title block and the actions. Aliased to `--bs-spacing-150`.
18118
+ * @prop --bs-page-header-title-gap - Gap between the heading, status and favourite button. Aliased to `--bs-spacing-150`.
18119
+ * @prop --bs-page-header-actions-gap - Gap between the actions. Aliased to `--bs-spacing-100`.
18120
+ * @prop --bs-page-header-text-color - Heading. Aliased to `--bs-text-default`.
18121
+ * @prop --bs-page-header-meta-color - Meta line. Aliased to `--bs-text-secondary`.
18122
+ * @prop --bs-page-header-shadow - Shadow of the compact header (elevation level 2). Aliased to the `--bs-shadow-*` position and blur tokens and `--bs-elevation-medium`.
18123
+ * @prop --bs-page-header-sticky-offset - The `top` of the compact header. Defaults to `0px`; set it to the height of a sticky bar above (e.g. the navigation header).
18124
+ * @prop --bs-page-header-z-index - Stacking order of the compact header. Aliased to `--bs-z-index-sticky`.
18125
+ */
18126
+ "bs-page-header": LocalJSX.IntrinsicElements["bs-page-header"] & JSXBase.HTMLAttributes<HTMLBsPageHeaderElement>;
14320
18127
  /**
14321
18128
  * A numbered page control -- previous/next chevrons, page-number buttons, and `...` overflow for
14322
18129
  * large page counts. Matches the Figma "Pagination" component's "Default" type (the classic
@@ -14430,6 +18237,31 @@ declare module "@stencil/core" {
14430
18237
  * - An on/off setting that takes effect immediately (no explicit form submission) -- use `bs-switch`.
14431
18238
  */
14432
18239
  "bs-radio": LocalJSX.IntrinsicElements["bs-radio"] & JSXBase.HTMLAttributes<HTMLBsRadioElement>;
18240
+ /**
18241
+ * One result or suggestion row of a search dropdown: a leading icon, a primary line, an optional
18242
+ * description line and trailing text. Static, not focusable -- focus stays in the search field and the
18243
+ * parent (`bs-global-search`) marks the highlighted row with `active`.
18244
+ * Standalone it has no role. `bs-global-search` sets `selectionRole="option"` (and an `id`) on its rows,
18245
+ * the same pattern as `bs-list-item` and `bs-shortcut-row`.
18246
+ * ## When to use
18247
+ * - A suggestion, recent search or result inside `bs-global-search`.
18248
+ * ## When not to use
18249
+ * - A row in a generic list -- use `bs-list-item`.
18250
+ * - A command in a popup menu -- use `bs-menu-item`.
18251
+ * @prop --bs-search-item-min-height - Aliased to `--bs-spacing-600` (48px).
18252
+ * @prop --bs-search-item-padding-y - Aliased to `--bs-spacing-100`.
18253
+ * @prop --bs-search-item-padding-x - Aliased to `--bs-spacing-150`.
18254
+ * @prop --bs-search-item-gap - Aliased to `--bs-spacing-100`.
18255
+ * @prop --bs-search-item-radius - Aliased to `--bs-border-radius-100`.
18256
+ * @prop --bs-search-item-bg - Resting background. `transparent`.
18257
+ * @prop --bs-search-item-bg-active - Active (highlighted) and hover background. Aliased to `--bs-surface-hover`.
18258
+ * @prop --bs-search-item-bg-pressed - Aliased to `--bs-surface-pressed`.
18259
+ * @prop --bs-search-item-color - Primary text. Aliased to `--bs-text-default`.
18260
+ * @prop --bs-search-item-color-muted - Description and trailing text. Aliased to `--bs-text-muted`.
18261
+ * @prop --bs-search-item-color-disabled - Aliased to `--bs-text-on-disabled`.
18262
+ * @prop --bs-search-item-icon-color - Aliased to `--bs-icon-default`.
18263
+ */
18264
+ "bs-search-item": LocalJSX.IntrinsicElements["bs-search-item"] & JSXBase.HTMLAttributes<HTMLBsSearchItemElement>;
14433
18265
  /**
14434
18266
  * The three moments around an expiring session, as one card. Matches the Figma "Session timeout"
14435
18267
  * component's three types:
@@ -14457,6 +18289,23 @@ declare module "@stencil/core" {
14457
18289
  * (`bs-dialog`) if the warning must trap focus.
14458
18290
  */
14459
18291
  "bs-session-timeout": LocalJSX.IntrinsicElements["bs-session-timeout"] & JSXBase.HTMLAttributes<HTMLBsSessionTimeoutElement>;
18292
+ /**
18293
+ * One row of a shortcut list: an action label on the left and its keyboard shortcut on the right.
18294
+ * Static information, not interactive. Standalone it has no role; `bs-keyboard-shortcuts` sets
18295
+ * `selectionRole="listitem"` on its rows (same pattern as `bs-list-item`).
18296
+ * Built from `bs-key-caps` (and so `bs-key`).
18297
+ * ## When to use
18298
+ * - A line in a keyboard-shortcut reference, usually inside `bs-keyboard-shortcuts`.
18299
+ * ## When not to use
18300
+ * - A clickable command or menu entry -- use `bs-menu-item` (which has its own shortcut slot).
18301
+ * @prop --bs-shortcut-row-height - Row height. Defaults to `36px` (Figma).
18302
+ * @prop --bs-shortcut-row-padding-x - Horizontal padding. Aliased to `--bs-spacing-100`.
18303
+ * @prop --bs-shortcut-row-gap - Gap between label and keys. Aliased to `--bs-spacing-100`.
18304
+ * @prop --bs-shortcut-row-radius - Corner radius. Aliased to `--bs-border-radius-75`.
18305
+ * @prop --bs-shortcut-row-color - Label colour. Aliased to `--bs-text-default`.
18306
+ * @prop --bs-shortcut-row-color-disabled - Label colour while `disabled`. Aliased to `--bs-text-on-disabled`.
18307
+ */
18308
+ "bs-shortcut-row": LocalJSX.IntrinsicElements["bs-shortcut-row"] & JSXBase.HTMLAttributes<HTMLBsShortcutRowElement>;
14460
18309
  /**
14461
18310
  * A generic slide-in panel (drawer) anchored to the start or end edge, for history, filters, FAQ
14462
18311
  * and similar secondary content. Closes via its close button or Escape and emits `bsClose`.