@brandsync/wc 1.17.0 → 1.19.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 (691) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/REFERENCE.md +316 -8
  3. package/custom-elements.json +9323 -6758
  4. package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
  5. package/dist/brandsync-wc/p-02314404.entry.js +1 -0
  6. package/dist/brandsync-wc/{p-0bbaef51.entry.js → p-028d3244.entry.js} +1 -1
  7. package/dist/brandsync-wc/{p-8c4dfccb.entry.js → p-03ad83a3.entry.js} +1 -1
  8. package/dist/brandsync-wc/{p-f82a9f0d.entry.js → p-0819add7.entry.js} +1 -1
  9. package/dist/brandsync-wc/{p-67f125e8.entry.js → p-08649f52.entry.js} +1 -1
  10. package/dist/brandsync-wc/p-0dff9822.entry.js +1 -0
  11. package/dist/brandsync-wc/{p-9d12b1fb.entry.js → p-10b8937f.entry.js} +1 -1
  12. package/dist/brandsync-wc/{p-aec2dfeb.entry.js → p-129a4de7.entry.js} +1 -1
  13. package/dist/brandsync-wc/p-1580c56c.entry.js +1 -0
  14. package/dist/brandsync-wc/p-15c6f0f3.entry.js +1 -0
  15. package/dist/brandsync-wc/{p-9d740928.entry.js → p-171fa239.entry.js} +1 -1
  16. package/dist/brandsync-wc/p-197ac73f.entry.js +1 -0
  17. package/dist/brandsync-wc/p-1e33bc10.entry.js +1 -0
  18. package/dist/brandsync-wc/{p-b5710db6.entry.js → p-21e5d4d6.entry.js} +1 -1
  19. package/dist/brandsync-wc/{p-90ba3032.entry.js → p-2389f473.entry.js} +1 -1
  20. package/dist/brandsync-wc/p-25914efc.entry.js +1 -0
  21. package/dist/brandsync-wc/{p-4f4c0c68.entry.js → p-26e0ab15.entry.js} +1 -1
  22. package/dist/brandsync-wc/{p-6ea02b98.entry.js → p-270b2cb0.entry.js} +1 -1
  23. package/dist/brandsync-wc/{p-54d91ac9.entry.js → p-27663faf.entry.js} +1 -1
  24. package/dist/brandsync-wc/p-28c38959.entry.js +1 -0
  25. package/dist/brandsync-wc/{p-70c650b2.entry.js → p-2a8b2ac9.entry.js} +1 -1
  26. package/dist/brandsync-wc/{p-84d6d6eb.entry.js → p-2a967b45.entry.js} +1 -1
  27. package/dist/brandsync-wc/p-2b3d0bd4.entry.js +1 -0
  28. package/dist/brandsync-wc/p-30736034.entry.js +1 -0
  29. package/dist/brandsync-wc/{p-9396c67e.entry.js → p-30ff0659.entry.js} +1 -1
  30. package/dist/brandsync-wc/{p-a7fa839a.entry.js → p-313ec145.entry.js} +1 -1
  31. package/dist/brandsync-wc/{p-3c6ec5d0.entry.js → p-3627e0c6.entry.js} +1 -1
  32. package/dist/brandsync-wc/{p-e8ae626d.entry.js → p-38a2210a.entry.js} +1 -1
  33. package/dist/brandsync-wc/{p-3bad5e1b.entry.js → p-391504ab.entry.js} +1 -1
  34. package/dist/brandsync-wc/{p-47b7fe76.entry.js → p-3b212a8a.entry.js} +1 -1
  35. package/dist/brandsync-wc/p-3c6980b9.entry.js +1 -0
  36. package/dist/brandsync-wc/{p-d5a6098d.entry.js → p-42fcf134.entry.js} +1 -1
  37. package/dist/brandsync-wc/p-4928c4ad.entry.js +1 -0
  38. package/dist/brandsync-wc/{p-844205d9.entry.js → p-4c51da66.entry.js} +1 -1
  39. package/dist/brandsync-wc/{p-f3eca1ce.entry.js → p-4d1ee16e.entry.js} +1 -1
  40. package/dist/brandsync-wc/{p-5b933ff4.entry.js → p-4dfd4715.entry.js} +1 -1
  41. package/dist/brandsync-wc/p-4ffcf41a.entry.js +1 -0
  42. package/dist/brandsync-wc/{p-11d80e17.entry.js → p-527fd08d.entry.js} +1 -1
  43. package/dist/brandsync-wc/{p-43d5f708.entry.js → p-5371b31c.entry.js} +1 -1
  44. package/dist/brandsync-wc/p-568de1b0.entry.js +1 -0
  45. package/dist/brandsync-wc/{p-dcbeb143.entry.js → p-590deea0.entry.js} +1 -1
  46. package/dist/brandsync-wc/{p-2bd30709.entry.js → p-64e19200.entry.js} +1 -1
  47. package/dist/brandsync-wc/p-6afacd47.entry.js +1 -0
  48. package/dist/brandsync-wc/p-6f32a08e.entry.js +1 -0
  49. package/dist/brandsync-wc/{p-5c61eb06.entry.js → p-70a5897b.entry.js} +1 -1
  50. package/dist/brandsync-wc/{p-8134f97c.entry.js → p-7160a72e.entry.js} +1 -1
  51. package/dist/brandsync-wc/p-776b677f.entry.js +1 -0
  52. package/dist/brandsync-wc/{p-b142d8c9.entry.js → p-78c94cfe.entry.js} +1 -1
  53. package/dist/brandsync-wc/p-7bff3aa5.entry.js +1 -0
  54. package/dist/brandsync-wc/{p-fdc168ec.entry.js → p-7c741b8d.entry.js} +1 -1
  55. package/dist/brandsync-wc/p-86f04e9e.entry.js +1 -0
  56. package/dist/brandsync-wc/{p-4eaa9ed4.entry.js → p-8a18864a.entry.js} +1 -1
  57. package/dist/brandsync-wc/{p-35f76ea7.entry.js → p-8a606b38.entry.js} +1 -1
  58. package/dist/brandsync-wc/p-8ac86d16.entry.js +1 -0
  59. package/dist/brandsync-wc/p-8b21f623.entry.js +1 -0
  60. package/dist/brandsync-wc/{p-1bd99669.entry.js → p-8d1ad4b0.entry.js} +1 -1
  61. package/dist/brandsync-wc/{p-07673a48.entry.js → p-8e107d7a.entry.js} +1 -1
  62. package/dist/brandsync-wc/{p-d9184940.entry.js → p-90d8d45f.entry.js} +1 -1
  63. package/dist/brandsync-wc/p-9751a12d.entry.js +1 -0
  64. package/dist/brandsync-wc/{p-857987f9.entry.js → p-9868ee72.entry.js} +1 -1
  65. package/dist/brandsync-wc/{p-f98dfa85.entry.js → p-9ba500f1.entry.js} +1 -1
  66. package/dist/brandsync-wc/p-9fa7bd83.entry.js +1 -0
  67. package/dist/brandsync-wc/p-BSt9HeTa.js +1 -0
  68. package/dist/brandsync-wc/{p-c835afb7.entry.js → p-a2bfbf02.entry.js} +1 -1
  69. package/dist/brandsync-wc/{p-ffccc1ee.entry.js → p-a50c5e68.entry.js} +1 -1
  70. package/dist/brandsync-wc/{p-3bdeeb9d.entry.js → p-a688a7ca.entry.js} +1 -1
  71. package/dist/brandsync-wc/{p-f43a7f16.entry.js → p-a92c0f06.entry.js} +1 -1
  72. package/dist/brandsync-wc/p-ab301e9d.entry.js +1 -0
  73. package/dist/brandsync-wc/{p-065c7e7c.entry.js → p-ab99b8c3.entry.js} +1 -1
  74. package/dist/brandsync-wc/{p-3cb79512.entry.js → p-c01e231e.entry.js} +1 -1
  75. package/dist/brandsync-wc/p-d15e48eb.entry.js +1 -0
  76. package/dist/brandsync-wc/p-d484e976.entry.js +1 -0
  77. package/dist/brandsync-wc/{p-d25adab2.entry.js → p-d80eecf4.entry.js} +1 -1
  78. package/dist/brandsync-wc/p-dc2ea372.entry.js +1 -0
  79. package/dist/brandsync-wc/p-de0dfd1c.entry.js +1 -0
  80. package/dist/brandsync-wc/p-e1d30e31.entry.js +1 -0
  81. package/dist/brandsync-wc/{p-a7fb0b59.entry.js → p-e5235e76.entry.js} +1 -1
  82. package/dist/brandsync-wc/{p-00be9a64.entry.js → p-e776d145.entry.js} +1 -1
  83. package/dist/brandsync-wc/{p-ffc07eb5.entry.js → p-e7c80f48.entry.js} +1 -1
  84. package/dist/brandsync-wc/{p-e0a9f2d1.entry.js → p-eb680cff.entry.js} +1 -1
  85. package/dist/brandsync-wc/p-ebcd105d.entry.js +1 -0
  86. package/dist/brandsync-wc/p-f10b19a8.entry.js +1 -0
  87. package/dist/brandsync-wc/{p-5057e4fe.entry.js → p-f3b60029.entry.js} +1 -1
  88. package/dist/brandsync-wc/p-f4628861.entry.js +1 -0
  89. package/dist/brandsync-wc/{p-b02bf1ca.entry.js → p-f4796801.entry.js} +1 -1
  90. package/dist/brandsync-wc/p-f5e6fdf8.entry.js +1 -0
  91. package/dist/brandsync-wc/p-f93127e1.entry.js +1 -0
  92. package/dist/brandsync-wc/{p-57ff14ca.entry.js → p-f96f45ae.entry.js} +1 -1
  93. package/dist/brandsync-wc/{p-debc83cc.entry.js → p-feb46fa6.entry.js} +1 -1
  94. package/dist/cjs/brandsync-wc.cjs.js +1 -1
  95. package/dist/cjs/bs-accordion-group.cjs.entry.js +1 -1
  96. package/dist/cjs/bs-accordion.cjs.entry.js +60 -3
  97. package/dist/cjs/bs-ai-disclaimer.cjs.entry.js +1 -1
  98. package/dist/cjs/bs-ai-greeting.cjs.entry.js +1 -1
  99. package/dist/cjs/bs-ai-thinking.cjs.entry.js +1 -1
  100. package/dist/cjs/bs-app-recent-item_3.cjs.entry.js +133 -0
  101. package/dist/cjs/bs-app-shell.cjs.entry.js +1 -1
  102. package/dist/cjs/bs-app-switcher.cjs.entry.js +208 -0
  103. package/dist/cjs/bs-attachment-list.cjs.entry.js +1 -1
  104. package/dist/cjs/bs-attachment.cjs.entry.js +1 -1
  105. package/dist/cjs/bs-avatar.cjs.entry.js +1 -1
  106. package/dist/cjs/bs-badge.cjs.entry.js +1 -1
  107. package/dist/cjs/bs-breadcrumb-overflow.cjs.entry.js +1 -1
  108. package/dist/cjs/bs-breadcrumb.cjs.entry.js +1 -1
  109. package/dist/cjs/bs-breadcrumbs.cjs.entry.js +1 -1
  110. package/dist/cjs/bs-button-skeleton.cjs.entry.js +1 -1
  111. package/dist/cjs/bs-button_2.cjs.entry.js +198 -0
  112. package/dist/cjs/bs-card.cjs.entry.js +1 -1
  113. package/dist/cjs/bs-carousel.cjs.entry.js +70 -5
  114. package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +1 -1
  115. package/dist/cjs/bs-chatbot-header.cjs.entry.js +1 -1
  116. package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +2 -2
  117. package/dist/cjs/bs-chatbot-sources-drawer.cjs.entry.js +1 -1
  118. package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +2 -2
  119. package/dist/cjs/bs-checkbox-skeleton.cjs.entry.js +1 -1
  120. package/dist/cjs/bs-checkbox.cjs.entry.js +2 -2
  121. package/dist/cjs/bs-chip-filter.cjs.entry.js +2 -2
  122. package/dist/cjs/bs-chip-informative.cjs.entry.js +1 -1
  123. package/dist/cjs/bs-chip-input.cjs.entry.js +2 -2
  124. package/dist/cjs/bs-citation-preview.cjs.entry.js +1 -1
  125. package/dist/cjs/bs-command-palette.cjs.entry.js +1 -1
  126. package/dist/cjs/bs-compact-menu-block_2.cjs.entry.js +46 -0
  127. package/dist/cjs/bs-company-switcher.cjs.entry.js +211 -0
  128. package/dist/cjs/bs-composer-status-banner.cjs.entry.js +1 -1
  129. package/dist/cjs/bs-composer.cjs.entry.js +1 -1
  130. package/dist/cjs/bs-container.cjs.entry.js +1 -1
  131. package/dist/cjs/bs-data-table.cjs.entry.js +2 -2
  132. package/dist/cjs/bs-datepicker.cjs.entry.js +1 -1
  133. package/dist/cjs/bs-dialog.cjs.entry.js +54 -3
  134. package/dist/cjs/bs-divider.cjs.entry.js +1 -1
  135. package/dist/cjs/bs-empty-state.cjs.entry.js +1 -1
  136. package/dist/cjs/bs-error-page.cjs.entry.js +1 -1
  137. package/dist/cjs/bs-file-upload-item.cjs.entry.js +1 -1
  138. package/dist/cjs/bs-file-upload.cjs.entry.js +1 -1
  139. package/dist/cjs/bs-global-search.cjs.entry.js +2 -2
  140. package/dist/cjs/bs-grid.cjs.entry.js +2 -2
  141. package/dist/cjs/bs-icon-button.cjs.entry.js +9 -2
  142. package/dist/cjs/bs-icon-tile.cjs.entry.js +10 -2
  143. package/dist/cjs/bs-inline-tab.cjs.entry.js +2 -2
  144. package/dist/cjs/bs-input_3.cjs.entry.js +5 -5
  145. package/dist/cjs/bs-key-caps.cjs.entry.js +1 -1
  146. package/dist/cjs/bs-key.cjs.entry.js +1 -1
  147. package/dist/cjs/bs-keyboard-shortcuts.cjs.entry.js +2 -2
  148. package/dist/cjs/bs-list-item_2.cjs.entry.js +261 -0
  149. package/dist/cjs/bs-list.cjs.entry.js +1 -1
  150. package/dist/cjs/bs-mega-menu.cjs.entry.js +120 -0
  151. package/dist/cjs/bs-message-list.cjs.entry.js +1 -1
  152. package/dist/cjs/bs-message.cjs.entry.js +1 -1
  153. package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +1 -1
  154. package/dist/cjs/bs-navigation-drawer.cjs.entry.js +2 -2
  155. package/dist/cjs/bs-navigation-header.cjs.entry.js +5 -2
  156. package/dist/cjs/bs-page-header.cjs.entry.js +66 -0
  157. package/dist/cjs/bs-pagination.cjs.entry.js +2 -2
  158. package/dist/cjs/bs-presence.cjs.entry.js +88 -0
  159. package/dist/cjs/bs-progress-linear.cjs.entry.js +2 -2
  160. package/dist/cjs/bs-progress.cjs.entry.js +2 -2
  161. package/dist/cjs/bs-qr-code.cjs.entry.js +1 -1
  162. package/dist/cjs/bs-radio.cjs.entry.js +4 -4
  163. package/dist/cjs/bs-search-item.cjs.entry.js +2 -2
  164. package/dist/cjs/bs-session-timeout.cjs.entry.js +1 -1
  165. package/dist/cjs/bs-shortcut-row.cjs.entry.js +1 -1
  166. package/dist/cjs/bs-side-panel.cjs.entry.js +52 -3
  167. package/dist/cjs/bs-slider.cjs.entry.js +1 -1
  168. package/dist/cjs/bs-snackbar.cjs.entry.js +1 -1
  169. package/dist/cjs/bs-source-link.cjs.entry.js +4 -3
  170. package/dist/cjs/bs-spinner.cjs.entry.js +1 -1
  171. package/dist/cjs/bs-split-pane.cjs.entry.js +1 -1
  172. package/dist/cjs/bs-stack.cjs.entry.js +1 -1
  173. package/dist/cjs/bs-stepper-step.cjs.entry.js +1 -1
  174. package/dist/cjs/bs-stepper.cjs.entry.js +1 -1
  175. package/dist/cjs/bs-switch.cjs.entry.js +4 -11
  176. package/dist/cjs/bs-tab_3.cjs.entry.js +3 -3
  177. package/dist/cjs/bs-timepicker.cjs.entry.js +2 -2
  178. package/dist/cjs/bs-toast.cjs.entry.js +1 -1
  179. package/dist/cjs/bs-tooltip-trigger.cjs.entry.js +61 -3
  180. package/dist/cjs/bs-tooltip.cjs.entry.js +1 -1
  181. package/dist/cjs/bs-tree-item.cjs.entry.js +3 -3
  182. package/dist/cjs/bs-tree.cjs.entry.js +1 -1
  183. package/dist/cjs/loader.cjs.js +1 -1
  184. package/dist/cjs/motion-DOlI71lc.js +43 -0
  185. package/dist/collection/collection-manifest.json +10 -0
  186. package/dist/collection/components/bs-accordion/bs-accordion.cmp.test.js +21 -6
  187. package/dist/collection/components/bs-accordion/bs-accordion.css +15 -0
  188. package/dist/collection/components/bs-accordion/bs-accordion.js +71 -2
  189. package/dist/collection/components/bs-accordion-group/bs-accordion-group.js +1 -1
  190. package/dist/collection/components/bs-ai-disclaimer/bs-ai-disclaimer.js +1 -1
  191. package/dist/collection/components/bs-ai-greeting/bs-ai-greeting.js +1 -1
  192. package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.js +1 -1
  193. package/dist/collection/components/bs-app-recent-item/bs-app-recent-item.cmp.test.js +52 -0
  194. package/dist/collection/components/bs-app-recent-item/bs-app-recent-item.css +111 -0
  195. package/dist/collection/components/bs-app-recent-item/bs-app-recent-item.js +184 -0
  196. package/dist/collection/components/bs-app-recent-item/bs-app-recent-item.stories.js +28 -0
  197. package/dist/collection/components/bs-app-shell/bs-app-shell.js +1 -1
  198. package/dist/collection/components/bs-app-switcher/bs-app-switcher.cmp.test.js +179 -0
  199. package/dist/collection/components/bs-app-switcher/bs-app-switcher.css +173 -0
  200. package/dist/collection/components/bs-app-switcher/bs-app-switcher.js +902 -0
  201. package/dist/collection/components/bs-app-switcher/bs-app-switcher.stories.js +91 -0
  202. package/dist/collection/components/bs-app-tile/bs-app-tile.cmp.test.js +58 -0
  203. package/dist/collection/components/bs-app-tile/bs-app-tile.css +104 -0
  204. package/dist/collection/components/bs-app-tile/bs-app-tile.js +190 -0
  205. package/dist/collection/components/bs-app-tile/bs-app-tile.stories.js +43 -0
  206. package/dist/collection/components/bs-attachment/bs-attachment.js +1 -1
  207. package/dist/collection/components/bs-attachment-list/bs-attachment-list.js +1 -1
  208. package/dist/collection/components/bs-avatar/bs-avatar.css +3 -3
  209. package/dist/collection/components/bs-badge/bs-badge.js +1 -1
  210. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.js +1 -1
  211. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.js +1 -1
  212. package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.js +1 -1
  213. package/dist/collection/components/bs-button/bs-button/bs-button.cmp.test.js +12 -0
  214. package/dist/collection/components/bs-button/bs-button/bs-button.css +2 -0
  215. package/dist/collection/components/bs-button/bs-button/bs-button.js +4 -1
  216. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.cmp.test.js +13 -0
  217. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.css +2 -0
  218. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.js +28 -1
  219. package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +1 -1
  220. package/dist/collection/components/bs-card/bs-card.js +1 -1
  221. package/dist/collection/components/bs-carousel/bs-carousel.cmp.test.js +39 -1
  222. package/dist/collection/components/bs-carousel/bs-carousel.css +9 -0
  223. package/dist/collection/components/bs-carousel/bs-carousel.js +75 -4
  224. package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.js +1 -1
  225. package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.js +1 -1
  226. package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.css +2 -0
  227. package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.js +2 -1
  228. package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.js +1 -1
  229. package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.css +2 -0
  230. package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js +2 -1
  231. package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.js +1 -1
  232. package/dist/collection/components/bs-checkbox/bs-checkbox.css +7 -0
  233. package/dist/collection/components/bs-checkbox/bs-checkbox.js +2 -1
  234. package/dist/collection/components/bs-chip/bs-chip-filter/bs-chip-filter.css +2 -0
  235. package/dist/collection/components/bs-chip/bs-chip-filter/bs-chip-filter.js +2 -1
  236. package/dist/collection/components/bs-chip/bs-chip-informative/bs-chip-informative.js +1 -1
  237. package/dist/collection/components/bs-chip/bs-chip-input/bs-chip-input.css +7 -0
  238. package/dist/collection/components/bs-chip/bs-chip-input/bs-chip-input.js +2 -1
  239. package/dist/collection/components/bs-citation-preview/bs-citation-preview.js +1 -1
  240. package/dist/collection/components/bs-command-palette/bs-command-palette.js +1 -1
  241. package/dist/collection/components/bs-compact-menu-block/bs-compact-menu-block.cmp.test.js +32 -0
  242. package/dist/collection/components/bs-compact-menu-block/bs-compact-menu-block.css +43 -0
  243. package/dist/collection/components/bs-compact-menu-block/bs-compact-menu-block.js +67 -0
  244. package/dist/collection/components/bs-compact-menu-block/bs-compact-menu-block.stories.js +25 -0
  245. package/dist/collection/components/bs-company-switcher/bs-company-switcher.cmp.test.js +171 -0
  246. package/dist/collection/components/bs-company-switcher/bs-company-switcher.css +196 -0
  247. package/dist/collection/components/bs-company-switcher/bs-company-switcher.js +720 -0
  248. package/dist/collection/components/bs-company-switcher/bs-company-switcher.stories.js +78 -0
  249. package/dist/collection/components/bs-composer/bs-composer.js +1 -1
  250. package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.js +1 -1
  251. package/dist/collection/components/bs-container/bs-container.js +1 -1
  252. package/dist/collection/components/bs-data-table/bs-data-table.js +2 -2
  253. package/dist/collection/components/bs-datepicker/bs-datepicker.js +1 -1
  254. package/dist/collection/components/bs-dialog/bs-dialog.cmp.test.js +32 -0
  255. package/dist/collection/components/bs-dialog/bs-dialog.css +16 -0
  256. package/dist/collection/components/bs-dialog/bs-dialog.js +61 -3
  257. package/dist/collection/components/bs-divider/bs-divider.js +1 -1
  258. package/dist/collection/components/bs-empty-state/bs-empty-state.js +1 -1
  259. package/dist/collection/components/bs-error-page/bs-error-page.js +1 -1
  260. package/dist/collection/components/bs-file-upload/bs-file-upload.js +1 -1
  261. package/dist/collection/components/bs-file-upload-item/bs-file-upload-item.js +1 -1
  262. package/dist/collection/components/bs-global-search/bs-global-search.js +2 -2
  263. package/dist/collection/components/bs-grid/bs-grid.js +2 -2
  264. package/dist/collection/components/bs-icon-tile/bs-icon-tile.js +11 -2
  265. package/dist/collection/components/bs-input/bs-input.js +2 -2
  266. package/dist/collection/components/bs-key/bs-key.js +1 -1
  267. package/dist/collection/components/bs-key-caps/bs-key-caps.js +1 -1
  268. package/dist/collection/components/bs-keyboard-shortcuts/bs-keyboard-shortcuts.js +2 -2
  269. package/dist/collection/components/bs-list/bs-list.js +1 -1
  270. package/dist/collection/components/bs-list-item/bs-list-item.css +2 -0
  271. package/dist/collection/components/bs-list-item/bs-list-item.js +2 -1
  272. package/dist/collection/components/bs-mega-menu/bs-mega-menu.cmp.test.js +204 -0
  273. package/dist/collection/components/bs-mega-menu/bs-mega-menu.css +143 -0
  274. package/dist/collection/components/bs-mega-menu/bs-mega-menu.js +443 -0
  275. package/dist/collection/components/bs-mega-menu/bs-mega-menu.stories.js +188 -0
  276. package/dist/collection/components/bs-menu/bs-menu.js +1 -1
  277. package/dist/collection/components/bs-menu-block/bs-menu-block.cmp.test.js +44 -0
  278. package/dist/collection/components/bs-menu-block/bs-menu-block.css +106 -0
  279. package/dist/collection/components/bs-menu-block/bs-menu-block.js +147 -0
  280. package/dist/collection/components/bs-menu-block/bs-menu-block.stories.js +36 -0
  281. package/dist/collection/components/bs-menu-item/bs-menu-item.css +2 -0
  282. package/dist/collection/components/bs-menu-item/bs-menu-item.js +2 -1
  283. package/dist/collection/components/bs-message/bs-message.js +1 -1
  284. package/dist/collection/components/bs-message-list/bs-message-list.js +1 -1
  285. package/dist/collection/components/bs-page-header/bs-page-header.cmp.test.js +206 -0
  286. package/dist/collection/components/bs-page-header/bs-page-header.css +252 -0
  287. package/dist/collection/components/bs-page-header/bs-page-header.js +351 -0
  288. package/dist/collection/components/bs-page-header/bs-page-header.stories.js +177 -0
  289. package/dist/collection/components/bs-pagination/bs-pagination.css +2 -0
  290. package/dist/collection/components/bs-pagination/bs-pagination.js +2 -1
  291. package/dist/collection/components/bs-popover/bs-popover.cmp.test.js +20 -0
  292. package/dist/collection/components/bs-popover/bs-popover.css +3 -0
  293. package/dist/collection/components/bs-popover/bs-popover.js +59 -2
  294. package/dist/collection/components/bs-presence/bs-presence.cmp.test.js +64 -0
  295. package/dist/collection/components/bs-presence/bs-presence.css +80 -0
  296. package/dist/collection/components/bs-presence/bs-presence.js +233 -0
  297. package/dist/collection/components/bs-presence/bs-presence.stories.js +101 -0
  298. package/dist/collection/components/bs-progress/bs-progress.js +2 -2
  299. package/dist/collection/components/bs-progress-linear/bs-progress-linear.js +2 -2
  300. package/dist/collection/components/bs-qr-code/bs-qr-code.js +1 -1
  301. package/dist/collection/components/bs-radio/bs-radio.css +6 -0
  302. package/dist/collection/components/bs-radio/bs-radio.js +4 -3
  303. package/dist/collection/components/bs-ripple/bs-ripple.cmp.test.js +45 -0
  304. package/dist/collection/components/bs-ripple/bs-ripple.css +32 -0
  305. package/dist/collection/components/bs-ripple/bs-ripple.js +188 -0
  306. package/dist/collection/components/bs-ripple/bs-ripple.stories.js +33 -0
  307. package/dist/collection/components/bs-search-item/bs-search-item.css +2 -0
  308. package/dist/collection/components/bs-search-item/bs-search-item.js +2 -1
  309. package/dist/collection/components/bs-session-timeout/bs-session-timeout.js +1 -1
  310. package/dist/collection/components/bs-shortcut-row/bs-shortcut-row.js +1 -1
  311. package/dist/collection/components/bs-side-panel/bs-side-panel.cmp.test.js +19 -0
  312. package/dist/collection/components/bs-side-panel/bs-side-panel.css +8 -0
  313. package/dist/collection/components/bs-side-panel/bs-side-panel.js +58 -2
  314. package/dist/collection/components/bs-skeleton/bs-skeleton.js +1 -1
  315. package/dist/collection/components/bs-slider/bs-slider.js +1 -1
  316. package/dist/collection/components/bs-snackbar/bs-snackbar.js +1 -1
  317. package/dist/collection/components/bs-source-link/bs-source-link.css +2 -0
  318. package/dist/collection/components/bs-source-link/bs-source-link.js +4 -2
  319. package/dist/collection/components/bs-spinner/bs-spinner.js +1 -1
  320. package/dist/collection/components/bs-split-pane/bs-split-pane.js +1 -1
  321. package/dist/collection/components/bs-stack/bs-stack.js +1 -1
  322. package/dist/collection/components/bs-stepper/bs-stepper/bs-stepper.js +1 -1
  323. package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.js +1 -1
  324. package/dist/collection/components/bs-switch/bs-switch.css +9 -0
  325. package/dist/collection/components/bs-switch/bs-switch.js +4 -10
  326. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.css +2 -0
  327. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.js +2 -1
  328. package/dist/collection/components/bs-tab/bs-tab/bs-tab.js +2 -1
  329. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.js +1 -1
  330. package/dist/collection/components/bs-timepicker/bs-timepicker.js +2 -2
  331. package/dist/collection/components/bs-toast/bs-toast.js +1 -1
  332. package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
  333. package/dist/collection/components/bs-tooltip-trigger/bs-tooltip-trigger.cmp.test.js +53 -2
  334. package/dist/collection/components/bs-tooltip-trigger/bs-tooltip-trigger.css +3 -0
  335. package/dist/collection/components/bs-tooltip-trigger/bs-tooltip-trigger.js +70 -3
  336. package/dist/collection/components/bs-tree/bs-tree.js +1 -1
  337. package/dist/collection/components/bs-tree-item/bs-tree-item.css +2 -0
  338. package/dist/collection/components/bs-tree-item/bs-tree-item.js +3 -2
  339. package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.js +1 -1
  340. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +2 -2
  341. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.js +1 -1
  342. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.cmp.test.js +79 -0
  343. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.css +46 -0
  344. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.js +10 -1
  345. package/dist/collection/utils/motion.js +37 -0
  346. package/dist/components/bs-accordion-group.js +1 -1
  347. package/dist/components/bs-accordion.js +1 -1
  348. package/dist/components/bs-ai-disclaimer.js +1 -1
  349. package/dist/components/bs-ai-greeting.js +1 -1
  350. package/dist/components/bs-ai-thinking.js +1 -1
  351. package/dist/components/bs-app-recent-item.d.ts +11 -0
  352. package/dist/components/bs-app-recent-item.js +1 -0
  353. package/dist/components/bs-app-shell.js +1 -1
  354. package/dist/components/bs-app-switcher.d.ts +11 -0
  355. package/dist/components/bs-app-switcher.js +1 -0
  356. package/dist/components/bs-app-tile.d.ts +11 -0
  357. package/dist/components/bs-app-tile.js +1 -0
  358. package/dist/components/bs-attachment-list.js +1 -1
  359. package/dist/components/bs-attachment.js +1 -1
  360. package/dist/components/bs-avatar.js +1 -1
  361. package/dist/components/bs-badge.js +1 -1
  362. package/dist/components/bs-breadcrumb-overflow.js +1 -1
  363. package/dist/components/bs-breadcrumb.js +1 -1
  364. package/dist/components/bs-breadcrumbs.js +1 -1
  365. package/dist/components/bs-button-skeleton.js +1 -1
  366. package/dist/components/bs-button.js +1 -1
  367. package/dist/components/bs-card.js +1 -1
  368. package/dist/components/bs-carousel.js +1 -1
  369. package/dist/components/bs-chatbot-feedback.js +1 -1
  370. package/dist/components/bs-chatbot-header.js +1 -1
  371. package/dist/components/bs-chatbot-response-action.js +1 -1
  372. package/dist/components/bs-chatbot-sources-drawer.js +1 -1
  373. package/dist/components/bs-chatbot-suggestion-button.js +1 -1
  374. package/dist/components/bs-checkbox-skeleton.js +1 -1
  375. package/dist/components/bs-checkbox.js +1 -1
  376. package/dist/components/bs-chip-filter.js +1 -1
  377. package/dist/components/bs-chip-informative.js +1 -1
  378. package/dist/components/bs-chip-input.js +1 -1
  379. package/dist/components/bs-citation-preview.js +1 -1
  380. package/dist/components/bs-command-palette.js +1 -1
  381. package/dist/components/bs-compact-menu-block.d.ts +11 -0
  382. package/dist/components/bs-compact-menu-block.js +1 -0
  383. package/dist/components/bs-company-switcher.d.ts +11 -0
  384. package/dist/components/bs-company-switcher.js +1 -0
  385. package/dist/components/bs-composer-status-banner.js +1 -1
  386. package/dist/components/bs-composer.js +1 -1
  387. package/dist/components/bs-container.js +1 -1
  388. package/dist/components/bs-cookie-consent.js +1 -1
  389. package/dist/components/bs-data-table.js +1 -1
  390. package/dist/components/bs-datepicker.js +1 -1
  391. package/dist/components/bs-dialog.js +1 -1
  392. package/dist/components/bs-divider.js +1 -1
  393. package/dist/components/bs-empty-state.js +1 -1
  394. package/dist/components/bs-error-page.js +1 -1
  395. package/dist/components/bs-file-upload-item.js +1 -1
  396. package/dist/components/bs-file-upload.js +1 -1
  397. package/dist/components/bs-global-search.js +1 -1
  398. package/dist/components/bs-grid.js +1 -1
  399. package/dist/components/bs-icon-button.js +1 -1
  400. package/dist/components/bs-icon-tile.js +1 -1
  401. package/dist/components/bs-inline-tab.js +1 -1
  402. package/dist/components/bs-input.js +1 -1
  403. package/dist/components/bs-key-caps.js +1 -1
  404. package/dist/components/bs-key.js +1 -1
  405. package/dist/components/bs-keyboard-shortcuts.js +1 -1
  406. package/dist/components/bs-list-item.js +1 -1
  407. package/dist/components/bs-list.js +1 -1
  408. package/dist/components/bs-mega-menu.d.ts +11 -0
  409. package/dist/components/bs-mega-menu.js +1 -0
  410. package/dist/components/bs-menu-block.d.ts +11 -0
  411. package/dist/components/bs-menu-block.js +1 -0
  412. package/dist/components/bs-menu-item.js +1 -1
  413. package/dist/components/bs-menu.js +1 -1
  414. package/dist/components/bs-message-list.js +1 -1
  415. package/dist/components/bs-message.js +1 -1
  416. package/dist/components/bs-navigation-drawer-item.js +1 -1
  417. package/dist/components/bs-navigation-drawer.js +1 -1
  418. package/dist/components/bs-navigation-header.js +1 -1
  419. package/dist/components/bs-onboarding-checklist.js +1 -1
  420. package/dist/components/bs-page-header.d.ts +11 -0
  421. package/dist/components/bs-page-header.js +1 -0
  422. package/dist/components/bs-pagination.js +1 -1
  423. package/dist/components/bs-popover.js +1 -1
  424. package/dist/components/bs-presence.d.ts +11 -0
  425. package/dist/components/bs-presence.js +1 -0
  426. package/dist/components/bs-product-tour.js +1 -1
  427. package/dist/components/bs-progress-linear.js +1 -1
  428. package/dist/components/bs-progress.js +1 -1
  429. package/dist/components/bs-qr-code.js +1 -1
  430. package/dist/components/bs-radio.js +1 -1
  431. package/dist/components/bs-ripple.d.ts +11 -0
  432. package/dist/components/bs-ripple.js +1 -0
  433. package/dist/components/bs-search-item.js +1 -1
  434. package/dist/components/bs-session-timeout.js +1 -1
  435. package/dist/components/bs-shortcut-row.js +1 -1
  436. package/dist/components/bs-side-panel.js +1 -1
  437. package/dist/components/bs-skeleton.js +1 -1
  438. package/dist/components/bs-slider.js +1 -1
  439. package/dist/components/bs-snackbar.js +1 -1
  440. package/dist/components/bs-source-link.js +1 -1
  441. package/dist/components/bs-spinner.js +1 -1
  442. package/dist/components/bs-split-pane.js +1 -1
  443. package/dist/components/bs-stack.js +1 -1
  444. package/dist/components/bs-stepper-step.js +1 -1
  445. package/dist/components/bs-stepper.js +1 -1
  446. package/dist/components/bs-switch.js +1 -1
  447. package/dist/components/bs-tab.js +1 -1
  448. package/dist/components/bs-tabs.js +1 -1
  449. package/dist/components/bs-timepicker.js +1 -1
  450. package/dist/components/bs-toast.js +1 -1
  451. package/dist/components/bs-tooltip-trigger.js +1 -1
  452. package/dist/components/bs-tooltip.js +1 -1
  453. package/dist/components/bs-tree-item.js +1 -1
  454. package/dist/components/bs-tree.js +1 -1
  455. package/dist/components/bs-whats-new-entry.js +1 -1
  456. package/dist/components/bs-whats-new.js +1 -1
  457. package/dist/components/p--Tyv3LIl.js +1 -0
  458. package/dist/components/p-4yShCgRb.js +1 -0
  459. package/dist/components/p-6Rr9bjVN.js +1 -0
  460. package/dist/components/{p-CervX0wH.js → p-BHzj13sd.js} +1 -1
  461. package/dist/components/p-BIxcCDgl.js +1 -0
  462. package/dist/components/p-BQ4rSQDm.js +1 -0
  463. package/dist/components/p-BSt9HeTa.js +1 -0
  464. package/dist/components/p-BWRkbt0f.js +1 -0
  465. package/dist/components/p-BfCah-Ij.js +1 -0
  466. package/dist/components/p-BpkPo4ay.js +1 -0
  467. package/dist/components/{p-Bp3DIxjT.js → p-CFR3Q0io.js} +1 -1
  468. package/dist/components/p-CHZE_FrW.js +1 -0
  469. package/dist/components/{p-CYzBTzzf.js → p-CVQycAap.js} +1 -1
  470. package/dist/components/{p-DtYTs9Kh.js → p-Cr8cHmpM.js} +1 -1
  471. package/dist/components/p-CvSewXZF.js +1 -0
  472. package/dist/components/{p-Dt4JNhHT.js → p-D3PuUD8Z.js} +1 -1
  473. package/dist/components/p-D5eN9Lfa.js +1 -0
  474. package/dist/components/{p-BDnZvjlq.js → p-DDgzEg1C.js} +1 -1
  475. package/dist/components/p-DF2FcJPs.js +1 -0
  476. package/dist/components/{p-DcjgRtSQ.js → p-DLnZG_G9.js} +1 -1
  477. package/dist/components/{p-CH5atin4.js → p-DXbcyEgd.js} +1 -1
  478. package/dist/components/{p-CRtvJlh8.js → p-DXwatzvM.js} +1 -1
  479. package/dist/components/p-DcD5eV_Z.js +1 -0
  480. package/dist/components/p-Dj393s3S.js +1 -0
  481. package/dist/components/p-DsBToIYE.js +1 -0
  482. package/dist/components/p-DtkTnaOp.js +1 -0
  483. package/dist/components/{p-DvNED6Lb.js → p-EGNLb4cQ.js} +1 -1
  484. package/dist/components/{p-CRM1wIX9.js → p-Jik5UkAe.js} +1 -1
  485. package/dist/components/p-XZXdZpt4.js +1 -0
  486. package/dist/components/{p-BcYNrEOB.js → p-Y5FyLR8G.js} +1 -1
  487. package/dist/components/{p-DG9eT5yi.js → p-ZfE38vXZ.js} +1 -1
  488. package/dist/components/p-lPTgyF9v.js +1 -0
  489. package/dist/components/p-syO0ipbw.js +1 -0
  490. package/dist/components/p-up01gvHY.js +1 -0
  491. package/dist/esm/brandsync-wc.js +1 -1
  492. package/dist/esm/bs-accordion-group.entry.js +1 -1
  493. package/dist/esm/bs-accordion.entry.js +61 -4
  494. package/dist/esm/bs-ai-disclaimer.entry.js +1 -1
  495. package/dist/esm/bs-ai-greeting.entry.js +1 -1
  496. package/dist/esm/bs-ai-thinking.entry.js +1 -1
  497. package/dist/esm/bs-app-recent-item_3.entry.js +129 -0
  498. package/dist/esm/bs-app-shell.entry.js +1 -1
  499. package/dist/esm/bs-app-switcher.entry.js +206 -0
  500. package/dist/esm/bs-attachment-list.entry.js +1 -1
  501. package/dist/esm/bs-attachment.entry.js +1 -1
  502. package/dist/esm/bs-avatar.entry.js +1 -1
  503. package/dist/esm/bs-badge.entry.js +1 -1
  504. package/dist/esm/bs-breadcrumb-overflow.entry.js +1 -1
  505. package/dist/esm/bs-breadcrumb.entry.js +1 -1
  506. package/dist/esm/bs-breadcrumbs.entry.js +1 -1
  507. package/dist/esm/bs-button-skeleton.entry.js +1 -1
  508. package/dist/esm/bs-button_2.entry.js +195 -0
  509. package/dist/esm/bs-card.entry.js +1 -1
  510. package/dist/esm/bs-carousel.entry.js +70 -5
  511. package/dist/esm/bs-chatbot-feedback.entry.js +1 -1
  512. package/dist/esm/bs-chatbot-header.entry.js +1 -1
  513. package/dist/esm/bs-chatbot-response-action.entry.js +2 -2
  514. package/dist/esm/bs-chatbot-sources-drawer.entry.js +1 -1
  515. package/dist/esm/bs-chatbot-suggestion-button.entry.js +2 -2
  516. package/dist/esm/bs-checkbox-skeleton.entry.js +1 -1
  517. package/dist/esm/bs-checkbox.entry.js +2 -2
  518. package/dist/esm/bs-chip-filter.entry.js +2 -2
  519. package/dist/esm/bs-chip-informative.entry.js +1 -1
  520. package/dist/esm/bs-chip-input.entry.js +2 -2
  521. package/dist/esm/bs-citation-preview.entry.js +1 -1
  522. package/dist/esm/bs-command-palette.entry.js +1 -1
  523. package/dist/esm/bs-compact-menu-block_2.entry.js +43 -0
  524. package/dist/esm/bs-company-switcher.entry.js +209 -0
  525. package/dist/esm/bs-composer-status-banner.entry.js +1 -1
  526. package/dist/esm/bs-composer.entry.js +1 -1
  527. package/dist/esm/bs-container.entry.js +1 -1
  528. package/dist/esm/bs-data-table.entry.js +2 -2
  529. package/dist/esm/bs-datepicker.entry.js +1 -1
  530. package/dist/esm/bs-dialog.entry.js +55 -4
  531. package/dist/esm/bs-divider.entry.js +1 -1
  532. package/dist/esm/bs-empty-state.entry.js +1 -1
  533. package/dist/esm/bs-error-page.entry.js +1 -1
  534. package/dist/esm/bs-file-upload-item.entry.js +1 -1
  535. package/dist/esm/bs-file-upload.entry.js +1 -1
  536. package/dist/esm/bs-global-search.entry.js +2 -2
  537. package/dist/esm/bs-grid.entry.js +2 -2
  538. package/dist/esm/bs-icon-button.entry.js +9 -2
  539. package/dist/esm/bs-icon-tile.entry.js +11 -3
  540. package/dist/esm/bs-inline-tab.entry.js +2 -2
  541. package/dist/esm/bs-input_3.entry.js +5 -5
  542. package/dist/esm/bs-key-caps.entry.js +1 -1
  543. package/dist/esm/bs-key.entry.js +1 -1
  544. package/dist/esm/bs-keyboard-shortcuts.entry.js +2 -2
  545. package/dist/esm/bs-list-item_2.entry.js +258 -0
  546. package/dist/esm/bs-list.entry.js +1 -1
  547. package/dist/esm/bs-mega-menu.entry.js +118 -0
  548. package/dist/esm/bs-message-list.entry.js +1 -1
  549. package/dist/esm/bs-message.entry.js +1 -1
  550. package/dist/esm/bs-navigation-drawer-item.entry.js +1 -1
  551. package/dist/esm/bs-navigation-drawer.entry.js +2 -2
  552. package/dist/esm/bs-navigation-header.entry.js +5 -2
  553. package/dist/esm/bs-page-header.entry.js +64 -0
  554. package/dist/esm/bs-pagination.entry.js +2 -2
  555. package/dist/esm/bs-presence.entry.js +86 -0
  556. package/dist/esm/bs-progress-linear.entry.js +2 -2
  557. package/dist/esm/bs-progress.entry.js +2 -2
  558. package/dist/esm/bs-qr-code.entry.js +1 -1
  559. package/dist/esm/bs-radio.entry.js +4 -4
  560. package/dist/esm/bs-search-item.entry.js +2 -2
  561. package/dist/esm/bs-session-timeout.entry.js +1 -1
  562. package/dist/esm/bs-shortcut-row.entry.js +1 -1
  563. package/dist/esm/bs-side-panel.entry.js +52 -3
  564. package/dist/esm/bs-slider.entry.js +1 -1
  565. package/dist/esm/bs-snackbar.entry.js +1 -1
  566. package/dist/esm/bs-source-link.entry.js +4 -3
  567. package/dist/esm/bs-spinner.entry.js +1 -1
  568. package/dist/esm/bs-split-pane.entry.js +1 -1
  569. package/dist/esm/bs-stack.entry.js +1 -1
  570. package/dist/esm/bs-stepper-step.entry.js +1 -1
  571. package/dist/esm/bs-stepper.entry.js +1 -1
  572. package/dist/esm/bs-switch.entry.js +4 -11
  573. package/dist/esm/bs-tab_3.entry.js +3 -3
  574. package/dist/esm/bs-timepicker.entry.js +2 -2
  575. package/dist/esm/bs-toast.entry.js +1 -1
  576. package/dist/esm/bs-tooltip-trigger.entry.js +62 -4
  577. package/dist/esm/bs-tooltip.entry.js +1 -1
  578. package/dist/esm/bs-tree-item.entry.js +3 -3
  579. package/dist/esm/bs-tree.entry.js +1 -1
  580. package/dist/esm/loader.js +1 -1
  581. package/dist/esm/motion-BSt9HeTa.js +39 -0
  582. package/dist/types/components/bs-accordion/bs-accordion.d.ts +22 -0
  583. package/dist/types/components/bs-app-recent-item/bs-app-recent-item.cmp.test.d.ts +1 -0
  584. package/dist/types/components/bs-app-recent-item/bs-app-recent-item.d.ts +51 -0
  585. package/dist/types/components/bs-app-recent-item/bs-app-recent-item.stories.d.ts +15 -0
  586. package/dist/types/components/bs-app-switcher/bs-app-switcher.cmp.test.d.ts +1 -0
  587. package/dist/types/components/bs-app-switcher/bs-app-switcher.d.ts +159 -0
  588. package/dist/types/components/bs-app-switcher/bs-app-switcher.stories.d.ts +34 -0
  589. package/dist/types/components/bs-app-tile/bs-app-tile.cmp.test.d.ts +1 -0
  590. package/dist/types/components/bs-app-tile/bs-app-tile.d.ts +51 -0
  591. package/dist/types/components/bs-app-tile/bs-app-tile.stories.d.ts +18 -0
  592. package/dist/types/components/bs-button/bs-button/bs-button.d.ts +3 -0
  593. package/dist/types/components/bs-button/bs-icon-button/bs-icon-button.d.ts +8 -0
  594. package/dist/types/components/bs-carousel/bs-carousel.d.ts +21 -1
  595. package/dist/types/components/bs-chatbot-response-action/bs-chatbot-response-action.d.ts +1 -0
  596. package/dist/types/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.d.ts +1 -0
  597. package/dist/types/components/bs-checkbox/bs-checkbox.d.ts +1 -0
  598. package/dist/types/components/bs-chip/bs-chip-filter/bs-chip-filter.d.ts +1 -0
  599. package/dist/types/components/bs-chip/bs-chip-input/bs-chip-input.d.ts +1 -0
  600. package/dist/types/components/bs-compact-menu-block/bs-compact-menu-block.cmp.test.d.ts +1 -0
  601. package/dist/types/components/bs-compact-menu-block/bs-compact-menu-block.d.ts +28 -0
  602. package/dist/types/components/bs-compact-menu-block/bs-compact-menu-block.stories.d.ts +10 -0
  603. package/dist/types/components/bs-company-switcher/bs-company-switcher.cmp.test.d.ts +1 -0
  604. package/dist/types/components/bs-company-switcher/bs-company-switcher.d.ts +130 -0
  605. package/dist/types/components/bs-company-switcher/bs-company-switcher.stories.d.ts +25 -0
  606. package/dist/types/components/bs-dialog/bs-dialog.d.ts +14 -0
  607. package/dist/types/components/bs-icon-tile/bs-icon-tile.d.ts +5 -0
  608. package/dist/types/components/bs-list-item/bs-list-item.d.ts +1 -0
  609. package/dist/types/components/bs-mega-menu/bs-mega-menu.cmp.test.d.ts +1 -0
  610. package/dist/types/components/bs-mega-menu/bs-mega-menu.d.ts +134 -0
  611. package/dist/types/components/bs-mega-menu/bs-mega-menu.stories.d.ts +55 -0
  612. package/dist/types/components/bs-menu-block/bs-menu-block.cmp.test.d.ts +1 -0
  613. package/dist/types/components/bs-menu-block/bs-menu-block.d.ts +47 -0
  614. package/dist/types/components/bs-menu-block/bs-menu-block.stories.d.ts +15 -0
  615. package/dist/types/components/bs-menu-item/bs-menu-item.d.ts +1 -0
  616. package/dist/types/components/bs-page-header/bs-page-header.cmp.test.d.ts +1 -0
  617. package/dist/types/components/bs-page-header/bs-page-header.d.ts +100 -0
  618. package/dist/types/components/bs-page-header/bs-page-header.stories.d.ts +41 -0
  619. package/dist/types/components/bs-pagination/bs-pagination.d.ts +1 -0
  620. package/dist/types/components/bs-popover/bs-popover.d.ts +15 -0
  621. package/dist/types/components/bs-presence/bs-presence.cmp.test.d.ts +1 -0
  622. package/dist/types/components/bs-presence/bs-presence.d.ts +50 -0
  623. package/dist/types/components/bs-presence/bs-presence.stories.d.ts +15 -0
  624. package/dist/types/components/bs-radio/bs-radio.d.ts +1 -0
  625. package/dist/types/components/bs-ripple/bs-ripple.cmp.test.d.ts +1 -0
  626. package/dist/types/components/bs-ripple/bs-ripple.d.ts +52 -0
  627. package/dist/types/components/bs-ripple/bs-ripple.stories.d.ts +11 -0
  628. package/dist/types/components/bs-search-item/bs-search-item.d.ts +1 -0
  629. package/dist/types/components/bs-side-panel/bs-side-panel.d.ts +13 -0
  630. package/dist/types/components/bs-source-link/bs-source-link.d.ts +1 -0
  631. package/dist/types/components/bs-switch/bs-switch.d.ts +1 -0
  632. package/dist/types/components/bs-tab/bs-inline-tab/bs-inline-tab.d.ts +1 -0
  633. package/dist/types/components/bs-tab/bs-tab/bs-tab.d.ts +1 -0
  634. package/dist/types/components/bs-tooltip-trigger/bs-tooltip-trigger.d.ts +18 -0
  635. package/dist/types/components/bs-tree-item/bs-tree-item.d.ts +1 -0
  636. package/dist/types/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.d.ts +7 -1
  637. package/dist/types/components.d.ts +2422 -0
  638. package/dist/types/svg-inline.d.ts +5 -0
  639. package/dist/types/utils/motion.d.ts +21 -0
  640. package/package.json +2 -1
  641. package/reference.d.ts +53 -23
  642. package/reference.json +1210 -98
  643. package/dist/brandsync-wc/p-044ac86c.entry.js +0 -1
  644. package/dist/brandsync-wc/p-046a53de.entry.js +0 -1
  645. package/dist/brandsync-wc/p-08e96f13.entry.js +0 -1
  646. package/dist/brandsync-wc/p-225148be.entry.js +0 -1
  647. package/dist/brandsync-wc/p-23b56775.entry.js +0 -1
  648. package/dist/brandsync-wc/p-32297416.entry.js +0 -1
  649. package/dist/brandsync-wc/p-361aef36.entry.js +0 -1
  650. package/dist/brandsync-wc/p-3789c7a5.entry.js +0 -1
  651. package/dist/brandsync-wc/p-3d2c62a6.entry.js +0 -1
  652. package/dist/brandsync-wc/p-3d7b0708.entry.js +0 -1
  653. package/dist/brandsync-wc/p-4b460eda.entry.js +0 -1
  654. package/dist/brandsync-wc/p-5eb5795f.entry.js +0 -1
  655. package/dist/brandsync-wc/p-61deb48c.entry.js +0 -1
  656. package/dist/brandsync-wc/p-79fc849c.entry.js +0 -1
  657. package/dist/brandsync-wc/p-7ed071fb.entry.js +0 -1
  658. package/dist/brandsync-wc/p-8048d033.entry.js +0 -1
  659. package/dist/brandsync-wc/p-8c9938a5.entry.js +0 -1
  660. package/dist/brandsync-wc/p-a5659499.entry.js +0 -1
  661. package/dist/brandsync-wc/p-ab14a07d.entry.js +0 -1
  662. package/dist/brandsync-wc/p-b4511ad3.entry.js +0 -1
  663. package/dist/brandsync-wc/p-baa39c08.entry.js +0 -1
  664. package/dist/brandsync-wc/p-be7aac52.entry.js +0 -1
  665. package/dist/brandsync-wc/p-c05ee501.entry.js +0 -1
  666. package/dist/brandsync-wc/p-d2a15599.entry.js +0 -1
  667. package/dist/brandsync-wc/p-d7956c51.entry.js +0 -1
  668. package/dist/brandsync-wc/p-dfad8c0a.entry.js +0 -1
  669. package/dist/brandsync-wc/p-e123b391.entry.js +0 -1
  670. package/dist/brandsync-wc/p-e8e22238.entry.js +0 -1
  671. package/dist/brandsync-wc/p-eb0dc5bf.entry.js +0 -1
  672. package/dist/cjs/bs-button.cjs.entry.js +0 -107
  673. package/dist/cjs/bs-list-item.cjs.entry.js +0 -66
  674. package/dist/cjs/bs-popover.cjs.entry.js +0 -153
  675. package/dist/cjs/bs-skeleton.cjs.entry.js +0 -51
  676. package/dist/components/p-B32Kl4IB.js +0 -1
  677. package/dist/components/p-BUpnOUIM.js +0 -1
  678. package/dist/components/p-BcbaiZLh.js +0 -1
  679. package/dist/components/p-ChcaPfNL.js +0 -1
  680. package/dist/components/p-Cpe2k7ZC.js +0 -1
  681. package/dist/components/p-D7AXo5NT.js +0 -1
  682. package/dist/components/p-D8bvv9QQ.js +0 -1
  683. package/dist/components/p-DMLfXpva.js +0 -1
  684. package/dist/components/p-DYDk73TF.js +0 -1
  685. package/dist/components/p-DYuzgzxI.js +0 -1
  686. package/dist/components/p-TAY9S9yG.js +0 -1
  687. package/dist/components/p-w-DkdA4O.js +0 -1
  688. package/dist/esm/bs-button.entry.js +0 -105
  689. package/dist/esm/bs-list-item.entry.js +0 -64
  690. package/dist/esm/bs-popover.entry.js +0 -151
  691. 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";
@@ -22,6 +24,7 @@ import { BsChipFilterSize } from "./components/bs-chip/bs-chip-filter/bs-chip-fi
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";
24
26
  import { BsCommandPaletteInputDetail, BsCommandPaletteSelectDetail, BsCommandPaletteStatus } from "./components/bs-command-palette/bs-command-palette";
27
+ import { BsCompany } from "./components/bs-company-switcher/bs-company-switcher";
25
28
  import { BsComposerState, BsComposerVariant } from "./components/bs-composer/bs-composer";
26
29
  import { BsComposerStatusBannerType } from "./components/bs-composer-status-banner/bs-composer-status-banner";
27
30
  import { BsContainerSize } from "./components/bs-container/bs-container";
@@ -40,10 +43,12 @@ import { BsIconButtonSize, BsIconButtonVariant } from "./components/bs-button/bs
40
43
  import { BsIconTileIntent as BsIconTileIntent1, BsIconTileSize } from "./components/bs-icon-tile/bs-icon-tile";
41
44
  import { BsShortcutGroup } from "./components/bs-keyboard-shortcuts/bs-keyboard-shortcuts";
42
45
  import { BsLogoBackground, BsLogoVariant } from "./components/bs-logo/bs-logo";
46
+ import { BsMegaMenuColumn, BsMegaMenuFeatured, BsMegaMenuItem, BsMegaMenuType } from "./components/bs-mega-menu/bs-mega-menu";
43
47
  import { BsMessageRole, BsMessageStatus } from "./components/bs-message/bs-message";
44
48
  import { BsNavigationHeaderAlignment } from "./components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header";
45
49
  import { BsOnboardingChecklistType, BsOnboardingLauncherLayout, BsOnboardingStep } from "./components/bs-onboarding-checklist/bs-onboarding-checklist";
46
50
  import { BsPopoverPlacement } from "./components/bs-popover/bs-popover";
51
+ import { BsPresenceDuration, BsPresenceEasing, BsPresencePreset } from "./components/bs-presence/bs-presence";
47
52
  import { BsProductTourDirection, BsProductTourType } from "./components/bs-product-tour/bs-product-tour";
48
53
  import { BsProgressSize, BsProgressStrokeWidth, BsProgressType } from "./components/bs-progress/bs-progress";
49
54
  import { BsProgressLinearSize, BsProgressLinearType } from "./components/bs-progress-linear/bs-progress-linear";
@@ -68,6 +73,8 @@ import { BsWhatsNewFilter, BsWhatsNewItem, BsWhatsNewType } from "./components/b
68
73
  import { BsWhatsNewEntryTagColor } from "./components/bs-whats-new-entry/bs-whats-new-entry";
69
74
  import { BsWhatsNewEntryTagColor as BsWhatsNewEntryTagColor1 } from "./components/bs-whats-new-entry/bs-whats-new-entry";
70
75
  export { BsAccordionSize } from "./components/bs-accordion/bs-accordion";
76
+ export { BsApp, BsAppRecent, BsAppSwitcherStatus } from "./components/bs-app-switcher/bs-app-switcher";
77
+ export { BsAppTileSize } from "./components/bs-app-tile/bs-app-tile";
71
78
  export { BsAttachmentType } from "./components/bs-attachment/bs-attachment";
72
79
  export { BsAvatarSize, BsAvatarType } from "./components/bs-avatar/bs-avatar";
73
80
  export { BsBadgeVariant } from "./components/bs-badge/bs-badge";
@@ -84,6 +91,7 @@ export { BsChipFilterSize } from "./components/bs-chip/bs-chip-filter/bs-chip-fi
84
91
  export { BsChipInformativeColor, BsChipInformativeSize } from "./components/bs-chip/bs-chip-informative/bs-chip-informative";
85
92
  export { BsChipInputSize } from "./components/bs-chip/bs-chip-input/bs-chip-input";
86
93
  export { BsCommandPaletteInputDetail, BsCommandPaletteSelectDetail, BsCommandPaletteStatus } from "./components/bs-command-palette/bs-command-palette";
94
+ export { BsCompany } from "./components/bs-company-switcher/bs-company-switcher";
87
95
  export { BsComposerState, BsComposerVariant } from "./components/bs-composer/bs-composer";
88
96
  export { BsComposerStatusBannerType } from "./components/bs-composer-status-banner/bs-composer-status-banner";
89
97
  export { BsContainerSize } from "./components/bs-container/bs-container";
@@ -102,10 +110,12 @@ export { BsIconButtonSize, BsIconButtonVariant } from "./components/bs-button/bs
102
110
  export { BsIconTileIntent as BsIconTileIntent1, BsIconTileSize } from "./components/bs-icon-tile/bs-icon-tile";
103
111
  export { BsShortcutGroup } from "./components/bs-keyboard-shortcuts/bs-keyboard-shortcuts";
104
112
  export { BsLogoBackground, BsLogoVariant } from "./components/bs-logo/bs-logo";
113
+ export { BsMegaMenuColumn, BsMegaMenuFeatured, BsMegaMenuItem, BsMegaMenuType } from "./components/bs-mega-menu/bs-mega-menu";
105
114
  export { BsMessageRole, BsMessageStatus } from "./components/bs-message/bs-message";
106
115
  export { BsNavigationHeaderAlignment } from "./components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header";
107
116
  export { BsOnboardingChecklistType, BsOnboardingLauncherLayout, BsOnboardingStep } from "./components/bs-onboarding-checklist/bs-onboarding-checklist";
108
117
  export { BsPopoverPlacement } from "./components/bs-popover/bs-popover";
118
+ export { BsPresenceDuration, BsPresenceEasing, BsPresencePreset } from "./components/bs-presence/bs-presence";
109
119
  export { BsProductTourDirection, BsProductTourType } from "./components/bs-product-tour/bs-product-tour";
110
120
  export { BsProgressSize, BsProgressStrokeWidth, BsProgressType } from "./components/bs-progress/bs-progress";
111
121
  export { BsProgressLinearSize, BsProgressLinearType } from "./components/bs-progress-linear/bs-progress-linear";
@@ -137,6 +147,10 @@ export namespace Components {
137
147
  * (optionally managing which one(s) are expanded, e.g. "only one open at a time") themselves --
138
148
  * there's no accordion-group wrapper here, matching Figma's component which only specs the single
139
149
  * section, not a group behavior.
150
+ * @prop --bs-accordion-duration - Length of the expand/collapse motion. Aliased to `--bs-duration-default`.
151
+ * @prop --bs-accordion-easing - Curve of the expand/collapse motion. Aliased to `--bs-easing-standard`.
152
+ * Expanding and collapsing animate the body's height and rotate the caret. Under
153
+ * `prefers-reduced-motion: reduce` the duration token is `0ms`, so the body snaps.
140
154
  */
141
155
  interface BsAccordion {
142
156
  /**
@@ -269,6 +283,57 @@ export namespace Components {
269
283
  */
270
284
  "label": string;
271
285
  }
286
+ /**
287
+ * A full-width row for one app: a small icon tile, the app name and a description line (for example
288
+ * "Opened 10 min ago · Nordlys Handel AS"). Matches the Figma "Recent item" component (Default, Current,
289
+ * Hover, Pressed and Focus).
290
+ * The row is always a native button and only emits events; it never navigates. `current` marks the app you are in
291
+ * (`aria-current="true"`); `disabled` dims it, sets `aria-disabled` and removes it from the tab order.
292
+ * Built from `bs-icon-tile`. The icon is either a URL of a monochrome SVG in `icon` (painted with the theme's
293
+ * icon colour through a CSS mask) or any element in the default slot.
294
+ * ## When to use
295
+ * - A recently opened app, or a search result with a description, inside `bs-app-switcher`.
296
+ * ## When not to use
297
+ * - An app in a launcher grid -- use `bs-app-tile`.
298
+ * - A generic list row -- use `bs-list-item`.
299
+ * @prop --bs-app-recent-item-padding-x - Aliased to `--bs-spacing-100`.
300
+ * @prop --bs-app-recent-item-padding-y - Aliased to `--bs-spacing-100`.
301
+ * @prop --bs-app-recent-item-gap - Gap between icon and text. Aliased to `--bs-spacing-150`.
302
+ * @prop --bs-app-recent-item-radius - Aliased to `--bs-border-radius-100`.
303
+ * @prop --bs-app-recent-item-bg - Resting background. `transparent`.
304
+ * @prop --bs-app-recent-item-bg-hover - Aliased to `--bs-surface-hover`.
305
+ * @prop --bs-app-recent-item-bg-pressed - Aliased to `--bs-surface-pressed`.
306
+ * @prop --bs-app-recent-item-bg-current - Aliased to `--bs-surface-selected`.
307
+ * @prop --bs-app-recent-item-icon-bg - Icon square background. Aliased to `--bs-color-neutral-container`; `--bs-surface-base` while hovered, pressed or current.
308
+ * @prop --bs-app-recent-item-color - Name colour. Aliased to `--bs-text-default`.
309
+ * @prop --bs-app-recent-item-color-muted - Description colour. Aliased to `--bs-text-secondary`.
310
+ * @prop --bs-app-recent-item-color-disabled - Name, description and icon colour when disabled. Aliased to `--bs-text-on-disabled`.
311
+ * @prop --bs-app-recent-item-focus-ring - Focus ring colour. Aliased to `--bs-border-neutral-focus`.
312
+ */
313
+ interface BsAppRecentItem {
314
+ /**
315
+ * The app you are in right now: selected background and `aria-current="true"`.
316
+ * @default false
317
+ */
318
+ "current": boolean;
319
+ /**
320
+ * Second line under the name.
321
+ */
322
+ "description"?: string;
323
+ /**
324
+ * Dims the row, sets `aria-disabled` and takes it out of the tab order.
325
+ * @default false
326
+ */
327
+ "disabled": boolean;
328
+ /**
329
+ * URL of a monochrome SVG painted with the icon colour. The default slot overrides it.
330
+ */
331
+ "icon"?: string;
332
+ /**
333
+ * The app name, and the accessible name of the row together with the description.
334
+ */
335
+ "name": string;
336
+ }
272
337
  /**
273
338
  * The page frame: a header across the top, and below it a navigation | main | aside row, laid out
274
339
  * with CSS grid. The main column scrolls independently of the header and the side columns.
@@ -297,6 +362,217 @@ export namespace Components {
297
362
  */
298
363
  "fullHeight": boolean;
299
364
  }
365
+ /**
366
+ * The panel of an app launcher ("EG apps"): a header with a "Manage" action, a search field, your apps as a
367
+ * grid (or Recent plus All apps), search results, and a footer link to browse all products. It also has
368
+ * no-results, loading, error and empty states. Matches the Figma "App switcher" (states Default, With recent,
369
+ * Searching, No results, Loading, Error and Empty).
370
+ * This is the panel only. To open it from a button, wrap it in `bs-popover`.
371
+ * Built from `bs-card` (panel surface), `bs-input` (search), `bs-app-tile` and `bs-app-recent-item` (apps),
372
+ * `bs-empty-state` (no results, error, empty), `bs-skeleton` (loading), `bs-button` (Clear search, Try
373
+ * again, Request access) and `bs-divider`. "Manage" and "Browse all" are native links (or buttons when
374
+ * there is no URL): `bs-button` has no link mode and the library has no link component.
375
+ * ## When to use
376
+ * - Letting a user jump between the products they have access to, from an app header.
377
+ * ## When not to use
378
+ * - Navigation inside one app -- use `bs-menu` or the app shell navigation.
379
+ * - Switching company -- use `bs-company-switcher`.
380
+ * `apps` and `recent` are arrays and must be set as JS properties. Each app's `icon` is the URL of a
381
+ * monochrome SVG. You own the data: listen to `bsAppSelect` (cancelable: `preventDefault()` cancels the
382
+ * originating click), and drive `status` and `query` yourself. An empty `apps` list while `status` is
383
+ * `ready` shows the empty state.
384
+ * @prop --bs-app-switcher-width - Panel width. Defaults to `360px` (Figma); capped at the viewport.
385
+ * @prop --bs-app-switcher-radius - Panel corner radius. Aliased to `--bs-border-radius-150`.
386
+ * @prop --bs-app-switcher-bg - Panel background. Aliased to `--bs-surface-base`.
387
+ * @prop --bs-app-switcher-border-color - Panel border. Aliased to `--bs-border-default`.
388
+ * @prop --bs-app-switcher-shadow - Panel shadow (elevation level 4). Aliased to the `--bs-shadow-*` position and blur tokens and `--bs-elevation-higher`.
389
+ * @prop --bs-app-switcher-padding - Side padding of the content. Aliased to `--bs-spacing-150`.
390
+ * @prop --bs-app-switcher-text-color - Heading and links in the header. Aliased to `--bs-text-default`.
391
+ * @prop --bs-app-switcher-header-color - Group headers. Aliased to `--bs-text-secondary`.
392
+ * @prop --bs-app-switcher-link-color - Browse link. Aliased to `--bs-text-action`.
393
+ * @prop --bs-app-switcher-focus-ring - Link focus ring. Aliased to `--bs-border-neutral-focus`.
394
+ */
395
+ interface BsAppSwitcher {
396
+ /**
397
+ * Header of the all apps group.
398
+ * @default 'All apps'
399
+ */
400
+ "allAppsLabel": string;
401
+ /**
402
+ * The apps the user can open. JS property only (an array cannot be an attribute).
403
+ * @default []
404
+ */
405
+ "apps": BsApp[];
406
+ /**
407
+ * URL of the Browse all link. Without it it is a button that only fires `bsBrowseAll`.
408
+ */
409
+ "browseHref"?: string;
410
+ /**
411
+ * Text of the footer link.
412
+ * @default 'Browse all EG products'
413
+ */
414
+ "browseLabel": string;
415
+ /**
416
+ * Text of the Clear search button.
417
+ * @default 'Clear search'
418
+ */
419
+ "clearLabel": string;
420
+ /**
421
+ * `id` of the app you are in: selected background and `aria-current`.
422
+ */
423
+ "currentId"?: string;
424
+ /**
425
+ * Empty description.
426
+ * @default 'Ask your administrator for access, or browse all EG products to see what’s available.'
427
+ */
428
+ "emptyDescription": string;
429
+ /**
430
+ * Empty heading (no apps assigned).
431
+ * @default 'No apps assigned yet'
432
+ */
433
+ "emptyHeading": string;
434
+ /**
435
+ * Error description.
436
+ * @default 'Check your connection and try again. Your work in the current app is not affected.'
437
+ */
438
+ "errorDescription": string;
439
+ /**
440
+ * Error heading.
441
+ * @default 'Couldn’t load your apps'
442
+ */
443
+ "errorHeading": string;
444
+ /**
445
+ * Panel heading.
446
+ * @default 'EG apps'
447
+ */
448
+ "heading": string;
449
+ /**
450
+ * Announced while loading.
451
+ * @default 'Loading apps…'
452
+ */
453
+ "loadingLabel": string;
454
+ /**
455
+ * URL of the Manage link. Without it Manage is a button that only fires `bsManage`.
456
+ */
457
+ "manageHref"?: string;
458
+ /**
459
+ * Text of the Manage link.
460
+ * @default 'Manage'
461
+ */
462
+ "manageLabel": string;
463
+ /**
464
+ * No-results description.
465
+ * @default 'Check the spelling, or browse all EG products to find more apps.'
466
+ */
467
+ "noResultsDescription": string;
468
+ /**
469
+ * No-results heading. `{query}` is replaced by the query.
470
+ * @default 'No apps match “{query}”'
471
+ */
472
+ "noResultsHeading": string;
473
+ /**
474
+ * The search text. Mutable: typing, Escape and "Clear search" update it.
475
+ * @default ''
476
+ */
477
+ "query": string;
478
+ /**
479
+ * Recently opened apps, most recent first. When there are any, the panel shows Recent and All apps. JS property only.
480
+ * @default []
481
+ */
482
+ "recent": BsAppRecent[];
483
+ /**
484
+ * Header of the recent group.
485
+ * @default 'Recent'
486
+ */
487
+ "recentLabel": string;
488
+ /**
489
+ * Text of the Request access button.
490
+ * @default 'Request access'
491
+ */
492
+ "requestAccessLabel": string;
493
+ /**
494
+ * Search header with one result ("1 result").
495
+ * @default 'result'
496
+ */
497
+ "resultLabel": string;
498
+ /**
499
+ * Search header with several results ("2 results").
500
+ * @default 'results'
501
+ */
502
+ "resultsLabel": string;
503
+ /**
504
+ * Text of the Try again button.
505
+ * @default 'Try again'
506
+ */
507
+ "retryLabel": string;
508
+ /**
509
+ * Placeholder (and accessible name) of the search field.
510
+ * @default 'Find an app'
511
+ */
512
+ "searchPlaceholder": string;
513
+ /**
514
+ * `loading` shows skeleton tiles, `error` the failure state.
515
+ * @default 'ready'
516
+ */
517
+ "status": BsAppSwitcherStatus;
518
+ /**
519
+ * Header of the default group when there are no recent apps.
520
+ * @default 'Your apps'
521
+ */
522
+ "yourAppsLabel": string;
523
+ }
524
+ /**
525
+ * One app in an app launcher: an icon tile above a short label. Matches the Figma "App tile" component
526
+ * (Size Grid and Compact, each Default, Hover, Pressed, Focus, Current and Disabled).
527
+ * The tile is always a native button and only emits events; it never navigates. Hover, pressed and focus come from the
528
+ * native element; `current` marks the app you are in (`aria-current="true"`); `disabled` dims it, sets
529
+ * `aria-disabled` and removes it from the tab order.
530
+ * Built from `bs-icon-tile`. The icon is either a URL of a monochrome SVG in `icon` (painted with the
531
+ * theme's icon colour through a CSS mask, so it follows light and dark mode), or any element in the default
532
+ * slot (an `<svg>` drawn with `currentColor`).
533
+ * ## When to use
534
+ * - An app in a launcher grid, usually inside `bs-app-switcher`.
535
+ * ## When not to use
536
+ * - A row with a description or "recently opened" line -- use `bs-app-recent-item`.
537
+ * - A command in a menu -- use `bs-menu-item`.
538
+ * @prop --bs-app-tile-icon-size - Size of the icon square. `44px` in `grid` (Figma) and `--bs-sizing-400` in `compact`.
539
+ * @prop --bs-app-tile-padding - Padding inside the tile. Aliased to `--bs-spacing-150` (`grid`) or `--bs-spacing-100` (`compact`).
540
+ * @prop --bs-app-tile-gap - Gap between icon and label. Aliased to `--bs-spacing-150` (`grid`) or `--bs-spacing-50` (`compact`).
541
+ * @prop --bs-app-tile-radius - Corner radius. Aliased to `--bs-border-radius-100`.
542
+ * @prop --bs-app-tile-bg - Resting background. `transparent`.
543
+ * @prop --bs-app-tile-bg-hover - Aliased to `--bs-surface-hover`.
544
+ * @prop --bs-app-tile-bg-pressed - Aliased to `--bs-surface-pressed`.
545
+ * @prop --bs-app-tile-bg-current - Aliased to `--bs-surface-selected`.
546
+ * @prop --bs-app-tile-icon-bg - Icon square background. Aliased to `--bs-color-neutral-container`; `--bs-surface-base` while hovered, pressed or current.
547
+ * @prop --bs-app-tile-color - Label colour. Aliased to `--bs-text-default`.
548
+ * @prop --bs-app-tile-color-disabled - Label and icon colour when disabled. Aliased to `--bs-text-on-disabled`.
549
+ * @prop --bs-app-tile-focus-ring - Focus ring colour. Aliased to `--bs-border-neutral-focus`.
550
+ */
551
+ interface BsAppTile {
552
+ /**
553
+ * The app you are in right now: selected background and `aria-current="true"`.
554
+ * @default false
555
+ */
556
+ "current": boolean;
557
+ /**
558
+ * Dims the tile, sets `aria-disabled` and takes it out of the tab order.
559
+ * @default false
560
+ */
561
+ "disabled": boolean;
562
+ /**
563
+ * URL of a monochrome SVG painted with the icon colour. The default slot overrides it.
564
+ */
565
+ "icon"?: string;
566
+ /**
567
+ * The app name, shown under the icon and used as the accessible name.
568
+ */
569
+ "name": string;
570
+ /**
571
+ * `grid` is the 3-column launcher tile; `compact` the smaller 4-column one.
572
+ * @default 'grid'
573
+ */
574
+ "size": BsAppTileSize;
575
+ }
300
576
  /**
301
577
  * A single file attachment preview for `bs-composer` -- an image thumbnail, or a filename card
302
578
  * with a colored file-type badge (PDF/Document), with an optional upload-in-progress spinner and
@@ -671,6 +947,11 @@ export namespace Components {
671
947
  * manages two things on those slide elements: the `hidden` attribute (off-page slides are hidden,
672
948
  * so they leave the tab order and the accessibility tree) and, only when not already set,
673
949
  * `role="group"`, `aria-roledescription="slide"` and an `aria-label` of "n of N".
950
+ * Changing page plays a short motion: the visible slides fade and slide out in the direction of travel,
951
+ * then the next page's slides fade and slide in (reversed for previous, and mirrored in RTL). The dots
952
+ * also grow and fade between pages. Motion length and distance follow `--bs-carousel-duration`,
953
+ * `--bs-carousel-easing` and `--bs-carousel-slide-distance`. Under `prefers-reduced-motion: reduce`
954
+ * the duration token is `0ms`, so pages switch instantly.
674
955
  * Composes `bs-pagination` (`tracker="numbers"`), `bs-icon-button` (previous/next for
675
956
  * `tracker="dots"`) and `bs-button` (Pause/Play) rather than re-implementing them.
676
957
  * ## When to use
@@ -1477,6 +1758,159 @@ export namespace Components {
1477
1758
  */
1478
1759
  "value": string;
1479
1760
  }
1761
+ /**
1762
+ * A plain text entry in a mega menu: one line, no icon. Matches the Figma "Compact menu block" component
1763
+ * (Default, Hover, Pressed and Focused).
1764
+ * The block is always a native button and only emits events; it never navigates. Hover, pressed and focus come from the
1765
+ * native element.
1766
+ * ## When to use
1767
+ * - A dense list of destinations in a mega menu, usually inside `bs-mega-menu` with `type="compact"`.
1768
+ * ## When not to use
1769
+ * - A destination that needs an icon or a description -- use `bs-menu-block`.
1770
+ * - A command in a dropdown list -- use `bs-menu-item`.
1771
+ * @prop --bs-compact-menu-block-padding - Padding inside the block. Aliased to `--bs-spacing-100`.
1772
+ * @prop --bs-compact-menu-block-radius - Corner radius. Aliased to `--bs-border-radius-100`.
1773
+ * @prop --bs-compact-menu-block-bg - Resting background. `transparent`.
1774
+ * @prop --bs-compact-menu-block-bg-hover - Aliased to `--bs-surface-hover`.
1775
+ * @prop --bs-compact-menu-block-bg-pressed - Aliased to `--bs-surface-pressed`.
1776
+ * @prop --bs-compact-menu-block-color - Text colour. Aliased to `--bs-text-default`.
1777
+ * @prop --bs-compact-menu-block-focus-ring - Focus ring colour. Aliased to `--bs-border-info`.
1778
+ */
1779
+ interface BsCompactMenuBlock {
1780
+ /**
1781
+ * The text, and the accessible name.
1782
+ */
1783
+ "name": string;
1784
+ }
1785
+ /**
1786
+ * A company (tenant) switcher: a trigger showing the current company, and a panel to find and switch to
1787
+ * another one. The panel has a search field, the current / recent / all groups, a filtered "matches" view,
1788
+ * a no-results state and a footer with "Manage Companies" and "Add companies" actions.
1789
+ * Built from `bs-popover` (open/close, Escape, outside click, flipping), `bs-card` (panel surface),
1790
+ * `bs-input` (search), `bs-list-item` (rows), `bs-avatar` (initials), `bs-spinner` (switching),
1791
+ * `bs-empty-state` (no results), `bs-divider` and `bs-button` (footer). The trigger is a native `<button>`:
1792
+ * no `bs-*` component is a composite "avatar + two lines + chevron" button.
1793
+ * ## When to use
1794
+ * - An app header or side navigation where a user belongs to several companies and works in one at a time.
1795
+ * ## When not to use
1796
+ * - Picking a value in a form -- use `bs-input type="dropdown"`.
1797
+ * - Switching between a handful of fixed views -- use `bs-tab`.
1798
+ * `companies` is an array and must be set as a JS property. You own the data and the switch itself: listen to
1799
+ * `bsCompanySwitch`, do the work, then update `currentId`. To show the switching state set `switchingId`
1800
+ * (from the `bsCompanySwitch` handler, or later) and the panel stays open until you clear it and set `open`
1801
+ * to `false`. If `switchingId` is not set by the time the handler returns, the panel closes immediately.
1802
+ * @prop --bs-company-switcher-width - Trigger width. Defaults to `260px` (Figma); capped at 100%.
1803
+ * @prop --bs-company-switcher-panel-width - Panel width. Defaults to `360px` (Figma); capped at the viewport.
1804
+ * @prop --bs-company-switcher-radius - Trigger and panel corner radius. Aliased to `--bs-border-radius-100`.
1805
+ * @prop --bs-company-switcher-trigger-bg - Trigger resting background. `transparent`.
1806
+ * @prop --bs-company-switcher-trigger-bg-hover - Aliased to `--bs-surface-hover`.
1807
+ * @prop --bs-company-switcher-trigger-bg-pressed - Aliased to `--bs-surface-pressed`.
1808
+ * @prop --bs-company-switcher-trigger-bg-open - Aliased to `--bs-surface-selected`.
1809
+ * @prop --bs-company-switcher-focus-ring - Trigger focus outline. Aliased to `--bs-border-neutral-focus`.
1810
+ * @prop --bs-company-switcher-panel-bg - Panel background. Aliased to `--bs-surface-base`.
1811
+ * @prop --bs-company-switcher-panel-border-color - Panel border. Aliased to `--bs-border-default`.
1812
+ * @prop --bs-company-switcher-shadow - Panel shadow. Aliased to `--bs-shadow-md`.
1813
+ * @prop --bs-company-switcher-max-height - Maximum height of the scrolling list. Defaults to `320px`.
1814
+ * @prop --bs-company-switcher-text-color - Names. Aliased to `--bs-text-default`.
1815
+ * @prop --bs-company-switcher-muted-color - Org. numbers. Aliased to `--bs-text-secondary`.
1816
+ * @prop --bs-company-switcher-header-color - Group headers. Aliased to `--bs-text-muted`.
1817
+ * @prop --bs-company-switcher-z-index - Panel stacking. Aliased to `--bs-z-index-popover`.
1818
+ */
1819
+ interface BsCompanySwitcher {
1820
+ /**
1821
+ * Text of the "Add companies" footer button.
1822
+ * @default 'Add companies'
1823
+ */
1824
+ "addLabel": string;
1825
+ /**
1826
+ * Header of the all companies group (the count is appended).
1827
+ * @default 'All companies'
1828
+ */
1829
+ "allLabel": string;
1830
+ /**
1831
+ * The companies the user can switch between. JS property only (an array cannot be an attribute).
1832
+ * @default []
1833
+ */
1834
+ "companies": BsCompany[];
1835
+ /**
1836
+ * `id` of the current company.
1837
+ */
1838
+ "currentId"?: string;
1839
+ /**
1840
+ * Header of the current company group.
1841
+ * @default 'Current'
1842
+ */
1843
+ "currentLabel": string;
1844
+ /**
1845
+ * No-results description.
1846
+ * @default 'Check the spelling, or search by org. number.'
1847
+ */
1848
+ "emptyDescription": string;
1849
+ /**
1850
+ * No-results heading. `{query}` is replaced by the query.
1851
+ * @default 'No companies match “{query}”'
1852
+ */
1853
+ "emptyHeading": string;
1854
+ /**
1855
+ * Accessible name of the company listbox.
1856
+ * @default 'Companies'
1857
+ */
1858
+ "listLabel": string;
1859
+ /**
1860
+ * Text of the "Manage Companies" footer button.
1861
+ * @default 'Manage Companies'
1862
+ */
1863
+ "manageLabel": string;
1864
+ /**
1865
+ * Header of the search view when there is one match ("1 match").
1866
+ * @default 'match'
1867
+ */
1868
+ "matchLabel": string;
1869
+ /**
1870
+ * Header of the search view when there are several matches ("3 matches").
1871
+ * @default 'matches'
1872
+ */
1873
+ "matchesLabel": string;
1874
+ /**
1875
+ * Whether the panel is open.
1876
+ * @default false
1877
+ */
1878
+ "open": boolean;
1879
+ /**
1880
+ * Prefix of the org. number, e.g. "Org. no.".
1881
+ * @default 'Org. no.'
1882
+ */
1883
+ "orgNumberLabel": string;
1884
+ /**
1885
+ * Text of the trigger when there is no current company.
1886
+ * @default 'Select a company'
1887
+ */
1888
+ "placeholderLabel": string;
1889
+ /**
1890
+ * `id`s of recently used companies, most recent first. The current company is not repeated in the Recent group.
1891
+ * @default []
1892
+ */
1893
+ "recentIds": string[];
1894
+ /**
1895
+ * Header of the recent companies group.
1896
+ * @default 'Recent'
1897
+ */
1898
+ "recentLabel": string;
1899
+ /**
1900
+ * Placeholder (and accessible name) of the search field.
1901
+ * @default 'Find a company or org. number'
1902
+ */
1903
+ "searchPlaceholder": string;
1904
+ /**
1905
+ * `id` of the company being switched to. Shows the switching state: a spinner in the trigger and on that row.
1906
+ */
1907
+ "switchingId"?: string;
1908
+ /**
1909
+ * Trigger subtitle while switching.
1910
+ * @default 'Switching…'
1911
+ */
1912
+ "switchingLabel": string;
1913
+ }
1480
1914
  /**
1481
1915
  * A chat composer input for Genie AI-style conversational interfaces: a text field
1482
1916
  * plus an attach button, a mic/voice-recording toggle, and a single primary action button whose
@@ -2443,6 +2877,10 @@ export namespace Components {
2443
2877
  * @default false
2444
2878
  */
2445
2879
  "disabled": boolean;
2880
+ /**
2881
+ * 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.
2882
+ */
2883
+ "pressed"?: boolean;
2446
2884
  /**
2447
2885
  * 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.
2448
2886
  * @default 'md'
@@ -2981,6 +3419,97 @@ export namespace Components {
2981
3419
  */
2982
3420
  "variant": BsLogoVariant;
2983
3421
  }
3422
+ /**
3423
+ * The dropdown panel under a navigation header tab: columns of links grouped under headings, an optional
3424
+ * featured area on the right, and a footer with recently used items and a shortcut hint. Matches the Figma
3425
+ * "Mega menu" (types Columns, Column with featured, Compact and Compact with featured).
3426
+ * This is the panel only. Put it in `bs-navigation-header`'s `menu` slot, which anchors it under the bar at the
3427
+ * header's full width, and show it from the tab that opens it; the panel does not open or close itself. Escape
3428
+ * inside the panel fires `bsClose` so you can close it.
3429
+ * There are two ways to show and hide it. Toggle the host's `hidden` attribute and it appears and disappears at once
3430
+ * (the original contract, unchanged). Or set `open` and it fades and drops in from under the bar, then fades back out
3431
+ * and is removed once the exit finishes. Leave `open` unset to keep using `hidden` only. `hidden` always wins: with it
3432
+ * set the panel is not shown whatever `open` says.
3433
+ * Built from `bs-card` (panel surface), `bs-menu-block` or `bs-compact-menu-block` (the links), `bs-divider` and
3434
+ * `bs-key-caps` (the shortcut). The column layout, headings, featured text and footer row are plain layout
3435
+ * markup: no component covers them.
3436
+ * ## Responsive
3437
+ * The panel reacts to its own width (a container query), not the viewport's. Below 600px it becomes one column (heading
3438
+ * above its links, featured area below), titles and descriptions wrap, links are at least 44px tall, the footer stacks
3439
+ * and the default shortcut hint is hidden (`display: none`; a keyboard hint means nothing on a touch screen). A custom
3440
+ * `footer-end` slot is not hidden.
3441
+ * ## When to use
3442
+ * - A header tab that leads to many destinations that need grouping (Sell, Finance, Inventory).
3443
+ * ## When not to use
3444
+ * - A short list of commands -- use `bs-menu` in a `bs-popover`.
3445
+ * - Switching app or company -- use `bs-app-switcher` or `bs-company-switcher`.
3446
+ * `columns`, `featured` and `recent` are arrays or objects and must be set as JS properties. Each item's `icon` is
3447
+ * the URL of a monochrome SVG. You own the data: listen to `bsMenuSelect` (cancelable: `preventDefault()` cancels the
3448
+ * originating click).
3449
+ * @prop --bs-mega-menu-width - Panel width. Defaults to `1100px` (Figma); capped at the viewport.
3450
+ * @prop --bs-mega-menu-radius - Panel corner radius. Aliased to `--bs-border-radius-150`.
3451
+ * @prop --bs-mega-menu-bg - Panel background. Aliased to `--bs-surface-base`.
3452
+ * @prop --bs-mega-menu-border-color - Panel border. Aliased to `--bs-border-default`.
3453
+ * @prop --bs-mega-menu-shadow - Panel shadow (elevation level 3). Aliased to the `--bs-shadow-*` position and blur tokens and `--bs-elevation-high`.
3454
+ * @prop --bs-mega-menu-padding - Padding around the columns. Aliased to `--bs-spacing-300` and `--bs-spacing-350`.
3455
+ * @prop --bs-mega-menu-gap - Gap between columns. Aliased to `--bs-spacing-300`.
3456
+ * @prop --bs-mega-menu-heading-color - Column headings. Aliased to `--bs-text-muted`.
3457
+ * @prop --bs-mega-menu-text-color - Featured title. Aliased to `--bs-text-default`.
3458
+ * @prop --bs-mega-menu-muted-color - Featured description and footer text. Aliased to `--bs-text-secondary`.
3459
+ * @prop --bs-mega-menu-duration - Length of the open/close motion (`open` only). Aliased to `--bs-duration-default`.
3460
+ * @prop --bs-mega-menu-easing - Curve of the open/close motion. Aliased to `--bs-easing-standard`.
3461
+ * @prop --bs-mega-menu-distance - How far the panel drops while it fades. Aliased to `--bs-spacing-100`.
3462
+ * Under `prefers-reduced-motion: reduce` (or a duration of `0ms`) setting `open` shows and hides the panel instantly.
3463
+ */
3464
+ interface BsMegaMenu {
3465
+ /**
3466
+ * The groups of links. JS property only (an array cannot be an attribute).
3467
+ * @default []
3468
+ */
3469
+ "columns": BsMegaMenuColumn[];
3470
+ /**
3471
+ * The featured area on the right. JS property only. The `featured` slot overrides it.
3472
+ */
3473
+ "featured"?: BsMegaMenuFeatured;
3474
+ /**
3475
+ * Accessible name of the panel.
3476
+ * @default 'Menu'
3477
+ */
3478
+ "label": string;
3479
+ /**
3480
+ * Shows the panel with an enter/exit motion. Unset (the default) leaves visibility to the host's `hidden` attribute, which shows and hides instantly. `true` shows the panel; `false` fades it out and then removes it. The panel stays in the DOM and is `inert` while it fades out.
3481
+ */
3482
+ "open"?: boolean;
3483
+ /**
3484
+ * Recently used destinations, already translated, shown in the footer. JS property only.
3485
+ * @default []
3486
+ */
3487
+ "recent": string[];
3488
+ /**
3489
+ * Text before the recently used items.
3490
+ * @default 'Recently used:'
3491
+ */
3492
+ "recentLabel": string;
3493
+ /**
3494
+ * The shortcut keys, joined by "+".
3495
+ * @default 'Ctrl+K'
3496
+ */
3497
+ "shortcutKeys": string;
3498
+ /**
3499
+ * Accessible name of the shortcut keys. Defaults to the keys joined with " plus ".
3500
+ */
3501
+ "shortcutKeysLabel"?: string;
3502
+ /**
3503
+ * Text before the shortcut keys.
3504
+ * @default 'Can’t find it? Press'
3505
+ */
3506
+ "shortcutLabel": string;
3507
+ /**
3508
+ * `columns` shows menu blocks with icon and description; `compact` plain text links.
3509
+ * @default 'columns'
3510
+ */
3511
+ "type": BsMegaMenuType;
3512
+ }
2984
3513
  /**
2985
3514
  * A generic dropdown/popup menu container: a rounded, elevated list of items (typically
2986
3515
  * `bs-menu-item` elements).
@@ -2998,6 +3527,49 @@ export namespace Components {
2998
3527
  */
2999
3528
  interface BsMenu {
3000
3529
  }
3530
+ /**
3531
+ * A rich entry in a mega menu: an icon tile, a title with an optional "New" chip, and a one-line description.
3532
+ * Matches the Figma "Menu block" component (Default, Hover, Pressed and Focused).
3533
+ * The block is always a native button and only emits events; it never navigates. Hover, pressed and focus come from the
3534
+ * native element. Its accessible name is its text: the title, the badge and the description, read once.
3535
+ * Built from `bs-icon-tile` (the icon) and `bs-chip-informative` (the badge). The icon is either a URL of a
3536
+ * monochrome SVG in `icon` (painted with the theme's icon colour through a CSS mask, so it follows light and
3537
+ * dark mode), or any element in the default slot (an `<svg>` drawn with `currentColor`).
3538
+ * ## When to use
3539
+ * - A destination in a mega menu that needs an icon and a sentence of explanation, usually inside `bs-mega-menu`.
3540
+ * ## When not to use
3541
+ * - A plain text destination -- use `bs-compact-menu-block`.
3542
+ * - A command in a dropdown list -- use `bs-menu-item`.
3543
+ * @prop --bs-menu-block-padding - Padding inside the block. Aliased to `--bs-spacing-150`.
3544
+ * @prop --bs-menu-block-gap - Gap between icon and text. Aliased to `--bs-spacing-150`.
3545
+ * @prop --bs-menu-block-radius - Corner radius. Aliased to `--bs-border-radius-100`.
3546
+ * @prop --bs-menu-block-bg - Resting background. `transparent`.
3547
+ * @prop --bs-menu-block-bg-hover - Aliased to `--bs-surface-hover`.
3548
+ * @prop --bs-menu-block-bg-pressed - Aliased to `--bs-surface-pressed`.
3549
+ * @prop --bs-menu-block-icon-bg - Icon square background. Aliased to `--bs-color-neutral-container`; `--bs-surface-base` while hovered or pressed.
3550
+ * @prop --bs-menu-block-color - Title colour. Aliased to `--bs-text-default`.
3551
+ * @prop --bs-menu-block-color-muted - Description colour. Aliased to `--bs-text-secondary`.
3552
+ * @prop --bs-menu-block-focus-ring - Focus ring colour. Aliased to `--bs-border-info`.
3553
+ * @prop --bs-menu-block-white-space - `white-space` of the title and description. `nowrap` (single line, ellipsis); set `normal` to let them wrap.
3554
+ */
3555
+ interface BsMenuBlock {
3556
+ /**
3557
+ * Short text for a chip beside the title, e.g. "New".
3558
+ */
3559
+ "badge"?: string;
3560
+ /**
3561
+ * One line under the title; part of the accessible name.
3562
+ */
3563
+ "description"?: string;
3564
+ /**
3565
+ * URL of a monochrome SVG painted with the icon colour. The default slot overrides it.
3566
+ */
3567
+ "icon"?: string;
3568
+ /**
3569
+ * The title, and the start of the accessible name.
3570
+ */
3571
+ "name": string;
3572
+ }
3001
3573
  /**
3002
3574
  * A single selectable row inside a `bs-menu`: an optional icon plus a text label, rendered as a
3003
3575
  * real `<button>` for correct keyboard/click semantics.
@@ -3401,6 +3973,91 @@ export namespace Components {
3401
3973
  */
3402
3974
  "type": BsOnboardingChecklistType;
3403
3975
  }
3976
+ /**
3977
+ * The header at the top of a page's content area: breadcrumb trail, the page title (a real heading) with an
3978
+ * optional back button, status and favourite toggle, a meta line, page-level actions on the right and an
3979
+ * optional row of tabs. Matches the Figma "Page header" (types List page, Record, Record with tabs and Sticky
3980
+ * compact).
3981
+ * Built from `bs-breadcrumbs`/`bs-breadcrumb` (slotted by you), `bs-icon-button` (the built-in back and favourite
3982
+ * buttons), `bs-chip-informative` (the status you slot), `bs-button` and `bs-icon-button` (the actions you slot),
3983
+ * `bs-tabs`/`bs-tab` (the tab row you slot) and `bs-divider` (under the tabs). The title block, meta line and
3984
+ * actions area are plain layout markup, because no component covers them. The back arrow and the star are
3985
+ * inline SVG (Phosphor "arrow-left", "star" and "star-fill") until the library has an icon component.
3986
+ * ## Compact (sticky)
3987
+ * `compact` is the condensed state a record header takes once the page scrolls: one row (back, title, status,
3988
+ * meta inline, actions), a level 2 shadow, no breadcrumb and no tabs, and `position: sticky`. Set it yourself
3989
+ * from a scroll observer. Because the header covers the top of the scroll area, give the scroll container
3990
+ * `scroll-padding-top` equal to its height (80px by default) so focused or anchored content is not hidden under it.
3991
+ * ## Responsive
3992
+ * The header reacts to its own width (a container query), not the viewport's. Below 640px the actions wrap
3993
+ * below the title block, slotted buttons grow to 44px tall, the title and meta wrap, and the tab row scrolls
3994
+ * sideways inside itself. The page never gets wider.
3995
+ * ## When to use
3996
+ * - The top of a list page or a single record (an invoice, a customer) inside the app shell's content area.
3997
+ * ## When not to use
3998
+ * - The app-wide bar with logo, search and user: use `bs-navigation-header`.
3999
+ * - The heading of a card, dialog or panel: use that component's own `heading`.
4000
+ * ## Accessibility notes
4001
+ * The root is a plain `div`, not a `<header>`: a `<header>` that is not inside `<main>`/`<article>`/`<section>`
4002
+ * is a second banner landmark. The title is a real heading (`<h1>` by default, `headingLevel` 1 to 6); the
4003
+ * status is next to it, not inside it. If you want a landmark, wrap `bs-page-header` yourself.
4004
+ * @prop --bs-page-header-bg - Background. Aliased to `--bs-surface-base`.
4005
+ * @prop --bs-page-header-padding-x - Left and right padding. Aliased to `--bs-spacing-200`.
4006
+ * @prop --bs-page-header-padding-y - Top and bottom padding. Aliased to `--bs-spacing-300`.
4007
+ * @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`.
4008
+ * @prop --bs-page-header-title-gap - Gap between the heading, status and favourite button. Aliased to `--bs-spacing-150`.
4009
+ * @prop --bs-page-header-actions-gap - Gap between the actions. Aliased to `--bs-spacing-100`.
4010
+ * @prop --bs-page-header-text-color - Heading. Aliased to `--bs-text-default`.
4011
+ * @prop --bs-page-header-meta-color - Meta line. Aliased to `--bs-text-secondary`.
4012
+ * @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`.
4013
+ * @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).
4014
+ * @prop --bs-page-header-z-index - Stacking order of the compact header. Aliased to `--bs-z-index-sticky`.
4015
+ */
4016
+ interface BsPageHeader {
4017
+ /**
4018
+ * Shows a back button before the title. It emits `bsBack`; you navigate.
4019
+ * @default false
4020
+ */
4021
+ "back": boolean;
4022
+ /**
4023
+ * Accessible name of the back button.
4024
+ * @default 'Back'
4025
+ */
4026
+ "backLabel": string;
4027
+ /**
4028
+ * The condensed, sticky state: one row, a level 2 shadow, no breadcrumb and no tabs. Reflected.
4029
+ * @default false
4030
+ */
4031
+ "compact": boolean;
4032
+ /**
4033
+ * Shows the favourite (star) toggle after the title.
4034
+ * @default false
4035
+ */
4036
+ "favoritable": boolean;
4037
+ /**
4038
+ * Whether the record is a favourite. Mutable: it follows the user's toggle unless `bsFavoriteChange` is cancelled.
4039
+ * @default false
4040
+ */
4041
+ "favorite": boolean;
4042
+ /**
4043
+ * Accessible name of the favourite toggle. It stays the same in both states; `aria-pressed` carries the state.
4044
+ * @default 'Favourite'
4045
+ */
4046
+ "favoriteLabel": string;
4047
+ /**
4048
+ * The page title, rendered as the heading.
4049
+ */
4050
+ "heading": string;
4051
+ /**
4052
+ * HTML heading level for the title, 1 to 6. Use 1 unless the page already has its own `h1`.
4053
+ * @default 1
4054
+ */
4055
+ "headingLevel": number;
4056
+ /**
4057
+ * The line under the title, plain text, e.g. "214 invoices · 38 open". The `meta` slot overrides it.
4058
+ */
4059
+ "meta"?: string;
4060
+ }
3404
4061
  /**
3405
4062
  * A numbered page control -- previous/next chevrons, page-number buttons, and `...` overflow for
3406
4063
  * large page counts. Matches the Figma "Pagination" component's "Default" type (the classic
@@ -3468,6 +4125,11 @@ export namespace Components {
3468
4125
  * @prop --bs-popover-offset - Gap between trigger and popup. Aliased to `--bs-spacing-100`.
3469
4126
  * @prop --bs-popover-min-width - Minimum popup width. Aliased to `--bs-scale-1600`.
3470
4127
  * @prop --bs-popover-z-index - Popup stacking order. Aliased to `--bs-z-index-popover`.
4128
+ * @prop --bs-popover-duration - Length of the open/close motion. Aliased to `--bs-duration-fast`.
4129
+ * @prop --bs-popover-easing - Curve of the open/close motion. Aliased to `--bs-easing-standard`.
4130
+ * @prop --bs-popover-distance - How far the popup nudges while it fades. Aliased to `--bs-spacing-50`.
4131
+ * The popup fades and nudges toward its trigger when it opens and closes. Length, curve and travel are
4132
+ * `--bs-popover-duration`, `--bs-popover-easing` and `--bs-popover-distance`; under `prefers-reduced-motion: reduce` it is instant.
3471
4133
  */
3472
4134
  interface BsPopover {
3473
4135
  /**
@@ -3481,6 +4143,45 @@ export namespace Components {
3481
4143
  */
3482
4144
  "placement": BsPopoverPlacement;
3483
4145
  }
4146
+ /**
4147
+ * Shows and hides slotted content with a short enter/exit transition.
4148
+ * The motion uses the shared duration and easing tokens (`--bs-duration-*`, `--bs-easing-*`).
4149
+ * Under `prefers-reduced-motion: reduce` those durations are already `0ms`, and this component
4150
+ * forces `--bs-presence-duration` to `--bs-duration-instant` as well, so the content snaps
4151
+ * instead of moving.
4152
+ * ## When to use
4153
+ * - Revealing a block that does not have its own enter/exit (a card, a form section, a panel).
4154
+ * - Comparing duration and easing tokens while designing a screen.
4155
+ * ## When not to use
4156
+ * - Loading placeholders (`bs-skeleton`), spinners (`bs-spinner`), or progress.
4157
+ * - Dialog, snackbar, toast, and command palette — those components own their motion.
4158
+ * @prop --bs-presence-duration - Transition length. Set from the `duration` prop to a `--bs-duration-*` token.
4159
+ * @prop --bs-presence-easing - Transition curve. Set from the `easing` prop to a `--bs-easing-*` token.
4160
+ * @prop --bs-presence-distance - Travel distance for `slide-up` and `slide-down`. Aliased to `--bs-spacing-400`.
4161
+ * @prop --bs-presence-scale - Closed scale for `scale`. No unitless scale token exists, so the default is `0.96`.
4162
+ */
4163
+ interface BsPresence {
4164
+ /**
4165
+ * When true, the slotted content is shown. Flipping this plays the exit or enter transition.
4166
+ * @default false
4167
+ */
4168
+ "active": boolean;
4169
+ /**
4170
+ * Length of the transition, mapped to a `--bs-duration-*` token.
4171
+ * @default 'default'
4172
+ */
4173
+ "duration": BsPresenceDuration;
4174
+ /**
4175
+ * Curve of the transition, mapped to a `--bs-easing-*` token.
4176
+ * @default 'standard'
4177
+ */
4178
+ "easing": BsPresenceEasing;
4179
+ /**
4180
+ * Which transition to play.
4181
+ * @default 'fade'
4182
+ */
4183
+ "preset": BsPresencePreset;
4184
+ }
3484
4185
  /**
3485
4186
  * One step of a product tour: a centred **welcome** or **success** card with an art tile, or a
3486
4187
  * **pointer** card -- a compact step with a close button, a "1 of 3" progress label and Back/Next
@@ -3804,6 +4505,42 @@ export namespace Components {
3804
4505
  */
3805
4506
  "value": string;
3806
4507
  }
4508
+ /**
4509
+ * A touch-ripple effect: on pointer press, a circle grows from the press point and fades out.
4510
+ * It is a building block for pressable components (`bs-button`, `bs-icon-button`, ...), not something
4511
+ * to place on a page by itself. Put it inside a positioned, pressable parent; it fills that parent,
4512
+ * follows its corner radius, and listens for `pointerdown` on it. Pointer-events pass through, so the
4513
+ * parent still receives every click.
4514
+ * The motion uses the shared duration and easing tokens. Under `prefers-reduced-motion: reduce` those
4515
+ * durations are `0ms`, and the ripple does not play at all.
4516
+ * ## When to use
4517
+ * - Inside a pressable `bs-*` component, to give press feedback.
4518
+ * ## When not to use
4519
+ * - As a hover or focus indicator. Those are colour changes on the parent.
4520
+ * - On non-interactive surfaces.
4521
+ * Set the custom properties on the `bs-ripple` element itself. Inside another component that means `::part(ripple)`,
4522
+ * e.g. `bs-button::part(ripple) { --bs-ripple-color: white; }`.
4523
+ * @prop --bs-ripple-color - Ripple colour. `currentColor` by default, so it follows the parent's text colour and works on every variant.
4524
+ * @prop --bs-ripple-opacity - Starting opacity of the ripple. No opacity token fits, so the default is `0.24`.
4525
+ * @prop --bs-ripple-duration - Length of the ripple. Aliased to `--bs-duration-slower`.
4526
+ * @prop --bs-ripple-easing - Curve of the ripple. Aliased to `--bs-easing-decelerate`.
4527
+ */
4528
+ interface BsRipple {
4529
+ /**
4530
+ * Always start the ripple from the centre instead of the press point. Use it for round or icon-only controls.
4531
+ * @default false
4532
+ */
4533
+ "centered": boolean;
4534
+ /**
4535
+ * Turns the ripple off. A disabled parent (`<button disabled>`) also stops it.
4536
+ * @default false
4537
+ */
4538
+ "disabled": boolean;
4539
+ /**
4540
+ * CSS selector of the element to listen on, found with `closest()` from the ripple (so it stays inside the same shadow tree). By default the ripple listens on its parent. Use it when the pressable element is bigger than the ripple's own parent, e.g. a switch whose ripple sits on the knob but whose whole `<label>` is the press target.
4541
+ */
4542
+ "triggerSelector"?: string;
4543
+ }
3807
4544
  /**
3808
4545
  * One result or suggestion row of a search dropdown: a leading icon, a primary line, an optional
3809
4546
  * description line and trailing text. Static, not focusable -- focus stays in the search field and the
@@ -4033,6 +4770,8 @@ export namespace Components {
4033
4770
  * @prop --bs-side-panel-overlay-bg - Backdrop color. Aliased to `--bs-surface-overlay`.
4034
4771
  * @prop --bs-side-panel-color - Text color. Aliased to `--bs-text-default`.
4035
4772
  * @prop --bs-side-panel-z-index - Stacking order. Aliased to `--bs-z-index-modal`.
4773
+ * @prop --bs-side-panel-duration - Length of the slide in/out. Aliased to `--bs-duration-slow`.
4774
+ * @prop --bs-side-panel-easing - Curve of the slide in/out. Aliased to `--bs-easing-standard`.
4036
4775
  */
4037
4776
  interface BsSidePanel {
4038
4777
  /**
@@ -4786,6 +5525,11 @@ export namespace Components {
4786
5525
  * - Interactive content or long text (use `bs-popover`).
4787
5526
  * @prop --bs-tooltip-trigger-offset - Gap between trigger and tooltip. Aliased to `--bs-spacing-100`.
4788
5527
  * @prop --bs-tooltip-trigger-z-index - Stacking order. Aliased to `--bs-z-index-popover`.
5528
+ * @prop --bs-tooltip-trigger-duration - Length of the show/hide motion. Aliased to `--bs-duration-fast`.
5529
+ * @prop --bs-tooltip-trigger-easing - Curve of the show/hide motion. Aliased to `--bs-easing-standard`.
5530
+ * @prop --bs-tooltip-trigger-distance - How far the tooltip nudges while it fades. Aliased to `--bs-spacing-50`.
5531
+ * The tooltip fades in while drifting a few pixels away from the trigger into place, and fades back out toward it. Under
5532
+ * `prefers-reduced-motion: reduce` (or a duration of `0ms`) it appears and disappears instantly.
4789
5533
  */
4790
5534
  interface BsTooltipTrigger {
4791
5535
  /**
@@ -5082,6 +5826,10 @@ export interface BsAccordionCustomEvent<T> extends CustomEvent<T> {
5082
5826
  detail: T;
5083
5827
  target: HTMLBsAccordionElement;
5084
5828
  }
5829
+ export interface BsAppSwitcherCustomEvent<T> extends CustomEvent<T> {
5830
+ detail: T;
5831
+ target: HTMLBsAppSwitcherElement;
5832
+ }
5085
5833
  export interface BsAttachmentCustomEvent<T> extends CustomEvent<T> {
5086
5834
  detail: T;
5087
5835
  target: HTMLBsAttachmentElement;
@@ -5138,6 +5886,10 @@ export interface BsCommandPaletteCustomEvent<T> extends CustomEvent<T> {
5138
5886
  detail: T;
5139
5887
  target: HTMLBsCommandPaletteElement;
5140
5888
  }
5889
+ export interface BsCompanySwitcherCustomEvent<T> extends CustomEvent<T> {
5890
+ detail: T;
5891
+ target: HTMLBsCompanySwitcherElement;
5892
+ }
5141
5893
  export interface BsComposerCustomEvent<T> extends CustomEvent<T> {
5142
5894
  detail: T;
5143
5895
  target: HTMLBsComposerElement;
@@ -5198,6 +5950,10 @@ export interface BsListItemCustomEvent<T> extends CustomEvent<T> {
5198
5950
  detail: T;
5199
5951
  target: HTMLBsListItemElement;
5200
5952
  }
5953
+ export interface BsMegaMenuCustomEvent<T> extends CustomEvent<T> {
5954
+ detail: T;
5955
+ target: HTMLBsMegaMenuElement;
5956
+ }
5201
5957
  export interface BsMenuItemCustomEvent<T> extends CustomEvent<T> {
5202
5958
  detail: T;
5203
5959
  target: HTMLBsMenuItemElement;
@@ -5218,6 +5974,10 @@ export interface BsOnboardingChecklistCustomEvent<T> extends CustomEvent<T> {
5218
5974
  detail: T;
5219
5975
  target: HTMLBsOnboardingChecklistElement;
5220
5976
  }
5977
+ export interface BsPageHeaderCustomEvent<T> extends CustomEvent<T> {
5978
+ detail: T;
5979
+ target: HTMLBsPageHeaderElement;
5980
+ }
5221
5981
  export interface BsPaginationCustomEvent<T> extends CustomEvent<T> {
5222
5982
  detail: T;
5223
5983
  target: HTMLBsPaginationElement;
@@ -5226,6 +5986,10 @@ export interface BsPopoverCustomEvent<T> extends CustomEvent<T> {
5226
5986
  detail: T;
5227
5987
  target: HTMLBsPopoverElement;
5228
5988
  }
5989
+ export interface BsPresenceCustomEvent<T> extends CustomEvent<T> {
5990
+ detail: T;
5991
+ target: HTMLBsPresenceElement;
5992
+ }
5229
5993
  export interface BsProductTourCustomEvent<T> extends CustomEvent<T> {
5230
5994
  detail: T;
5231
5995
  target: HTMLBsProductTourElement;
@@ -5313,6 +6077,10 @@ declare global {
5313
6077
  * (optionally managing which one(s) are expanded, e.g. "only one open at a time") themselves --
5314
6078
  * there's no accordion-group wrapper here, matching Figma's component which only specs the single
5315
6079
  * section, not a group behavior.
6080
+ * @prop --bs-accordion-duration - Length of the expand/collapse motion. Aliased to `--bs-duration-default`.
6081
+ * @prop --bs-accordion-easing - Curve of the expand/collapse motion. Aliased to `--bs-easing-standard`.
6082
+ * Expanding and collapsing animate the body's height and rotate the caret. Under
6083
+ * `prefers-reduced-motion: reduce` the duration token is `0ms`, so the body snaps.
5316
6084
  */
5317
6085
  interface HTMLBsAccordionElement extends Components.BsAccordion, HTMLStencilElement {
5318
6086
  addEventListener<K extends keyof HTMLBsAccordionElementEventMap>(type: K, listener: (this: HTMLBsAccordionElement, ev: BsAccordionCustomEvent<HTMLBsAccordionElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
@@ -5429,6 +6197,39 @@ declare global {
5429
6197
  prototype: HTMLBsAiThinkingElement;
5430
6198
  new (): HTMLBsAiThinkingElement;
5431
6199
  };
6200
+ /**
6201
+ * A full-width row for one app: a small icon tile, the app name and a description line (for example
6202
+ * "Opened 10 min ago · Nordlys Handel AS"). Matches the Figma "Recent item" component (Default, Current,
6203
+ * Hover, Pressed and Focus).
6204
+ * The row is always a native button and only emits events; it never navigates. `current` marks the app you are in
6205
+ * (`aria-current="true"`); `disabled` dims it, sets `aria-disabled` and removes it from the tab order.
6206
+ * Built from `bs-icon-tile`. The icon is either a URL of a monochrome SVG in `icon` (painted with the theme's
6207
+ * icon colour through a CSS mask) or any element in the default slot.
6208
+ * ## When to use
6209
+ * - A recently opened app, or a search result with a description, inside `bs-app-switcher`.
6210
+ * ## When not to use
6211
+ * - An app in a launcher grid -- use `bs-app-tile`.
6212
+ * - A generic list row -- use `bs-list-item`.
6213
+ * @prop --bs-app-recent-item-padding-x - Aliased to `--bs-spacing-100`.
6214
+ * @prop --bs-app-recent-item-padding-y - Aliased to `--bs-spacing-100`.
6215
+ * @prop --bs-app-recent-item-gap - Gap between icon and text. Aliased to `--bs-spacing-150`.
6216
+ * @prop --bs-app-recent-item-radius - Aliased to `--bs-border-radius-100`.
6217
+ * @prop --bs-app-recent-item-bg - Resting background. `transparent`.
6218
+ * @prop --bs-app-recent-item-bg-hover - Aliased to `--bs-surface-hover`.
6219
+ * @prop --bs-app-recent-item-bg-pressed - Aliased to `--bs-surface-pressed`.
6220
+ * @prop --bs-app-recent-item-bg-current - Aliased to `--bs-surface-selected`.
6221
+ * @prop --bs-app-recent-item-icon-bg - Icon square background. Aliased to `--bs-color-neutral-container`; `--bs-surface-base` while hovered, pressed or current.
6222
+ * @prop --bs-app-recent-item-color - Name colour. Aliased to `--bs-text-default`.
6223
+ * @prop --bs-app-recent-item-color-muted - Description colour. Aliased to `--bs-text-secondary`.
6224
+ * @prop --bs-app-recent-item-color-disabled - Name, description and icon colour when disabled. Aliased to `--bs-text-on-disabled`.
6225
+ * @prop --bs-app-recent-item-focus-ring - Focus ring colour. Aliased to `--bs-border-neutral-focus`.
6226
+ */
6227
+ interface HTMLBsAppRecentItemElement extends Components.BsAppRecentItem, HTMLStencilElement {
6228
+ }
6229
+ var HTMLBsAppRecentItemElement: {
6230
+ prototype: HTMLBsAppRecentItemElement;
6231
+ new (): HTMLBsAppRecentItemElement;
6232
+ };
5432
6233
  /**
5433
6234
  * The page frame: a header across the top, and below it a navigation | main | aside row, laid out
5434
6235
  * with CSS grid. The main column scrolls independently of the header and the side columns.
@@ -5456,6 +6257,92 @@ declare global {
5456
6257
  prototype: HTMLBsAppShellElement;
5457
6258
  new (): HTMLBsAppShellElement;
5458
6259
  };
6260
+ interface HTMLBsAppSwitcherElementEventMap {
6261
+ "bsAppSelect": BsApp;
6262
+ "bsManage": void;
6263
+ "bsBrowseAll": void;
6264
+ "bsClearSearch": void;
6265
+ "bsRetry": void;
6266
+ "bsRequestAccess": void;
6267
+ "bsQueryChange": string;
6268
+ }
6269
+ /**
6270
+ * The panel of an app launcher ("EG apps"): a header with a "Manage" action, a search field, your apps as a
6271
+ * grid (or Recent plus All apps), search results, and a footer link to browse all products. It also has
6272
+ * no-results, loading, error and empty states. Matches the Figma "App switcher" (states Default, With recent,
6273
+ * Searching, No results, Loading, Error and Empty).
6274
+ * This is the panel only. To open it from a button, wrap it in `bs-popover`.
6275
+ * Built from `bs-card` (panel surface), `bs-input` (search), `bs-app-tile` and `bs-app-recent-item` (apps),
6276
+ * `bs-empty-state` (no results, error, empty), `bs-skeleton` (loading), `bs-button` (Clear search, Try
6277
+ * again, Request access) and `bs-divider`. "Manage" and "Browse all" are native links (or buttons when
6278
+ * there is no URL): `bs-button` has no link mode and the library has no link component.
6279
+ * ## When to use
6280
+ * - Letting a user jump between the products they have access to, from an app header.
6281
+ * ## When not to use
6282
+ * - Navigation inside one app -- use `bs-menu` or the app shell navigation.
6283
+ * - Switching company -- use `bs-company-switcher`.
6284
+ * `apps` and `recent` are arrays and must be set as JS properties. Each app's `icon` is the URL of a
6285
+ * monochrome SVG. You own the data: listen to `bsAppSelect` (cancelable: `preventDefault()` cancels the
6286
+ * originating click), and drive `status` and `query` yourself. An empty `apps` list while `status` is
6287
+ * `ready` shows the empty state.
6288
+ * @prop --bs-app-switcher-width - Panel width. Defaults to `360px` (Figma); capped at the viewport.
6289
+ * @prop --bs-app-switcher-radius - Panel corner radius. Aliased to `--bs-border-radius-150`.
6290
+ * @prop --bs-app-switcher-bg - Panel background. Aliased to `--bs-surface-base`.
6291
+ * @prop --bs-app-switcher-border-color - Panel border. Aliased to `--bs-border-default`.
6292
+ * @prop --bs-app-switcher-shadow - Panel shadow (elevation level 4). Aliased to the `--bs-shadow-*` position and blur tokens and `--bs-elevation-higher`.
6293
+ * @prop --bs-app-switcher-padding - Side padding of the content. Aliased to `--bs-spacing-150`.
6294
+ * @prop --bs-app-switcher-text-color - Heading and links in the header. Aliased to `--bs-text-default`.
6295
+ * @prop --bs-app-switcher-header-color - Group headers. Aliased to `--bs-text-secondary`.
6296
+ * @prop --bs-app-switcher-link-color - Browse link. Aliased to `--bs-text-action`.
6297
+ * @prop --bs-app-switcher-focus-ring - Link focus ring. Aliased to `--bs-border-neutral-focus`.
6298
+ */
6299
+ interface HTMLBsAppSwitcherElement extends Components.BsAppSwitcher, HTMLStencilElement {
6300
+ addEventListener<K extends keyof HTMLBsAppSwitcherElementEventMap>(type: K, listener: (this: HTMLBsAppSwitcherElement, ev: BsAppSwitcherCustomEvent<HTMLBsAppSwitcherElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
6301
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
6302
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
6303
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
6304
+ removeEventListener<K extends keyof HTMLBsAppSwitcherElementEventMap>(type: K, listener: (this: HTMLBsAppSwitcherElement, ev: BsAppSwitcherCustomEvent<HTMLBsAppSwitcherElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
6305
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
6306
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
6307
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
6308
+ }
6309
+ var HTMLBsAppSwitcherElement: {
6310
+ prototype: HTMLBsAppSwitcherElement;
6311
+ new (): HTMLBsAppSwitcherElement;
6312
+ };
6313
+ /**
6314
+ * One app in an app launcher: an icon tile above a short label. Matches the Figma "App tile" component
6315
+ * (Size Grid and Compact, each Default, Hover, Pressed, Focus, Current and Disabled).
6316
+ * The tile is always a native button and only emits events; it never navigates. Hover, pressed and focus come from the
6317
+ * native element; `current` marks the app you are in (`aria-current="true"`); `disabled` dims it, sets
6318
+ * `aria-disabled` and removes it from the tab order.
6319
+ * Built from `bs-icon-tile`. The icon is either a URL of a monochrome SVG in `icon` (painted with the
6320
+ * theme's icon colour through a CSS mask, so it follows light and dark mode), or any element in the default
6321
+ * slot (an `<svg>` drawn with `currentColor`).
6322
+ * ## When to use
6323
+ * - An app in a launcher grid, usually inside `bs-app-switcher`.
6324
+ * ## When not to use
6325
+ * - A row with a description or "recently opened" line -- use `bs-app-recent-item`.
6326
+ * - A command in a menu -- use `bs-menu-item`.
6327
+ * @prop --bs-app-tile-icon-size - Size of the icon square. `44px` in `grid` (Figma) and `--bs-sizing-400` in `compact`.
6328
+ * @prop --bs-app-tile-padding - Padding inside the tile. Aliased to `--bs-spacing-150` (`grid`) or `--bs-spacing-100` (`compact`).
6329
+ * @prop --bs-app-tile-gap - Gap between icon and label. Aliased to `--bs-spacing-150` (`grid`) or `--bs-spacing-50` (`compact`).
6330
+ * @prop --bs-app-tile-radius - Corner radius. Aliased to `--bs-border-radius-100`.
6331
+ * @prop --bs-app-tile-bg - Resting background. `transparent`.
6332
+ * @prop --bs-app-tile-bg-hover - Aliased to `--bs-surface-hover`.
6333
+ * @prop --bs-app-tile-bg-pressed - Aliased to `--bs-surface-pressed`.
6334
+ * @prop --bs-app-tile-bg-current - Aliased to `--bs-surface-selected`.
6335
+ * @prop --bs-app-tile-icon-bg - Icon square background. Aliased to `--bs-color-neutral-container`; `--bs-surface-base` while hovered, pressed or current.
6336
+ * @prop --bs-app-tile-color - Label colour. Aliased to `--bs-text-default`.
6337
+ * @prop --bs-app-tile-color-disabled - Label and icon colour when disabled. Aliased to `--bs-text-on-disabled`.
6338
+ * @prop --bs-app-tile-focus-ring - Focus ring colour. Aliased to `--bs-border-neutral-focus`.
6339
+ */
6340
+ interface HTMLBsAppTileElement extends Components.BsAppTile, HTMLStencilElement {
6341
+ }
6342
+ var HTMLBsAppTileElement: {
6343
+ prototype: HTMLBsAppTileElement;
6344
+ new (): HTMLBsAppTileElement;
6345
+ };
5459
6346
  interface HTMLBsAttachmentElementEventMap {
5460
6347
  "bsRemove": void;
5461
6348
  }
@@ -5744,6 +6631,11 @@ declare global {
5744
6631
  * manages two things on those slide elements: the `hidden` attribute (off-page slides are hidden,
5745
6632
  * so they leave the tab order and the accessibility tree) and, only when not already set,
5746
6633
  * `role="group"`, `aria-roledescription="slide"` and an `aria-label` of "n of N".
6634
+ * Changing page plays a short motion: the visible slides fade and slide out in the direction of travel,
6635
+ * then the next page's slides fade and slide in (reversed for previous, and mirrored in RTL). The dots
6636
+ * also grow and fade between pages. Motion length and distance follow `--bs-carousel-duration`,
6637
+ * `--bs-carousel-easing` and `--bs-carousel-slide-distance`. Under `prefers-reduced-motion: reduce`
6638
+ * the duration token is `0ms`, so pages switch instantly.
5747
6639
  * Composes `bs-pagination` (`tracker="numbers"`), `bs-icon-button` (previous/next for
5748
6640
  * `tracker="dots"`) and `bs-button` (Pause/Play) rather than re-implementing them.
5749
6641
  * ## When to use
@@ -6231,6 +7123,84 @@ declare global {
6231
7123
  prototype: HTMLBsCommandPaletteElement;
6232
7124
  new (): HTMLBsCommandPaletteElement;
6233
7125
  };
7126
+ /**
7127
+ * A plain text entry in a mega menu: one line, no icon. Matches the Figma "Compact menu block" component
7128
+ * (Default, Hover, Pressed and Focused).
7129
+ * The block is always a native button and only emits events; it never navigates. Hover, pressed and focus come from the
7130
+ * native element.
7131
+ * ## When to use
7132
+ * - A dense list of destinations in a mega menu, usually inside `bs-mega-menu` with `type="compact"`.
7133
+ * ## When not to use
7134
+ * - A destination that needs an icon or a description -- use `bs-menu-block`.
7135
+ * - A command in a dropdown list -- use `bs-menu-item`.
7136
+ * @prop --bs-compact-menu-block-padding - Padding inside the block. Aliased to `--bs-spacing-100`.
7137
+ * @prop --bs-compact-menu-block-radius - Corner radius. Aliased to `--bs-border-radius-100`.
7138
+ * @prop --bs-compact-menu-block-bg - Resting background. `transparent`.
7139
+ * @prop --bs-compact-menu-block-bg-hover - Aliased to `--bs-surface-hover`.
7140
+ * @prop --bs-compact-menu-block-bg-pressed - Aliased to `--bs-surface-pressed`.
7141
+ * @prop --bs-compact-menu-block-color - Text colour. Aliased to `--bs-text-default`.
7142
+ * @prop --bs-compact-menu-block-focus-ring - Focus ring colour. Aliased to `--bs-border-info`.
7143
+ */
7144
+ interface HTMLBsCompactMenuBlockElement extends Components.BsCompactMenuBlock, HTMLStencilElement {
7145
+ }
7146
+ var HTMLBsCompactMenuBlockElement: {
7147
+ prototype: HTMLBsCompactMenuBlockElement;
7148
+ new (): HTMLBsCompactMenuBlockElement;
7149
+ };
7150
+ interface HTMLBsCompanySwitcherElementEventMap {
7151
+ "bsCompanySwitch": BsCompany;
7152
+ "bsManageCompanies": void;
7153
+ "bsAddCompanies": void;
7154
+ "bsOpenChange": boolean;
7155
+ }
7156
+ /**
7157
+ * A company (tenant) switcher: a trigger showing the current company, and a panel to find and switch to
7158
+ * another one. The panel has a search field, the current / recent / all groups, a filtered "matches" view,
7159
+ * a no-results state and a footer with "Manage Companies" and "Add companies" actions.
7160
+ * Built from `bs-popover` (open/close, Escape, outside click, flipping), `bs-card` (panel surface),
7161
+ * `bs-input` (search), `bs-list-item` (rows), `bs-avatar` (initials), `bs-spinner` (switching),
7162
+ * `bs-empty-state` (no results), `bs-divider` and `bs-button` (footer). The trigger is a native `<button>`:
7163
+ * no `bs-*` component is a composite "avatar + two lines + chevron" button.
7164
+ * ## When to use
7165
+ * - An app header or side navigation where a user belongs to several companies and works in one at a time.
7166
+ * ## When not to use
7167
+ * - Picking a value in a form -- use `bs-input type="dropdown"`.
7168
+ * - Switching between a handful of fixed views -- use `bs-tab`.
7169
+ * `companies` is an array and must be set as a JS property. You own the data and the switch itself: listen to
7170
+ * `bsCompanySwitch`, do the work, then update `currentId`. To show the switching state set `switchingId`
7171
+ * (from the `bsCompanySwitch` handler, or later) and the panel stays open until you clear it and set `open`
7172
+ * to `false`. If `switchingId` is not set by the time the handler returns, the panel closes immediately.
7173
+ * @prop --bs-company-switcher-width - Trigger width. Defaults to `260px` (Figma); capped at 100%.
7174
+ * @prop --bs-company-switcher-panel-width - Panel width. Defaults to `360px` (Figma); capped at the viewport.
7175
+ * @prop --bs-company-switcher-radius - Trigger and panel corner radius. Aliased to `--bs-border-radius-100`.
7176
+ * @prop --bs-company-switcher-trigger-bg - Trigger resting background. `transparent`.
7177
+ * @prop --bs-company-switcher-trigger-bg-hover - Aliased to `--bs-surface-hover`.
7178
+ * @prop --bs-company-switcher-trigger-bg-pressed - Aliased to `--bs-surface-pressed`.
7179
+ * @prop --bs-company-switcher-trigger-bg-open - Aliased to `--bs-surface-selected`.
7180
+ * @prop --bs-company-switcher-focus-ring - Trigger focus outline. Aliased to `--bs-border-neutral-focus`.
7181
+ * @prop --bs-company-switcher-panel-bg - Panel background. Aliased to `--bs-surface-base`.
7182
+ * @prop --bs-company-switcher-panel-border-color - Panel border. Aliased to `--bs-border-default`.
7183
+ * @prop --bs-company-switcher-shadow - Panel shadow. Aliased to `--bs-shadow-md`.
7184
+ * @prop --bs-company-switcher-max-height - Maximum height of the scrolling list. Defaults to `320px`.
7185
+ * @prop --bs-company-switcher-text-color - Names. Aliased to `--bs-text-default`.
7186
+ * @prop --bs-company-switcher-muted-color - Org. numbers. Aliased to `--bs-text-secondary`.
7187
+ * @prop --bs-company-switcher-header-color - Group headers. Aliased to `--bs-text-muted`.
7188
+ * @prop --bs-company-switcher-z-index - Panel stacking. Aliased to `--bs-z-index-popover`.
7189
+ */
7190
+ interface HTMLBsCompanySwitcherElement extends Components.BsCompanySwitcher, HTMLStencilElement {
7191
+ addEventListener<K extends keyof HTMLBsCompanySwitcherElementEventMap>(type: K, listener: (this: HTMLBsCompanySwitcherElement, ev: BsCompanySwitcherCustomEvent<HTMLBsCompanySwitcherElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
7192
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
7193
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
7194
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
7195
+ removeEventListener<K extends keyof HTMLBsCompanySwitcherElementEventMap>(type: K, listener: (this: HTMLBsCompanySwitcherElement, ev: BsCompanySwitcherCustomEvent<HTMLBsCompanySwitcherElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
7196
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
7197
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
7198
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
7199
+ }
7200
+ var HTMLBsCompanySwitcherElement: {
7201
+ prototype: HTMLBsCompanySwitcherElement;
7202
+ new (): HTMLBsCompanySwitcherElement;
7203
+ };
6234
7204
  interface HTMLBsComposerElementEventMap {
6235
7205
  "bsInput": string;
6236
7206
  "bsSubmit": void;
@@ -7057,6 +8027,66 @@ declare global {
7057
8027
  prototype: HTMLBsLogoElement;
7058
8028
  new (): HTMLBsLogoElement;
7059
8029
  };
8030
+ interface HTMLBsMegaMenuElementEventMap {
8031
+ "bsMenuSelect": BsMegaMenuItem;
8032
+ "bsClose": void;
8033
+ }
8034
+ /**
8035
+ * The dropdown panel under a navigation header tab: columns of links grouped under headings, an optional
8036
+ * featured area on the right, and a footer with recently used items and a shortcut hint. Matches the Figma
8037
+ * "Mega menu" (types Columns, Column with featured, Compact and Compact with featured).
8038
+ * This is the panel only. Put it in `bs-navigation-header`'s `menu` slot, which anchors it under the bar at the
8039
+ * header's full width, and show it from the tab that opens it; the panel does not open or close itself. Escape
8040
+ * inside the panel fires `bsClose` so you can close it.
8041
+ * There are two ways to show and hide it. Toggle the host's `hidden` attribute and it appears and disappears at once
8042
+ * (the original contract, unchanged). Or set `open` and it fades and drops in from under the bar, then fades back out
8043
+ * and is removed once the exit finishes. Leave `open` unset to keep using `hidden` only. `hidden` always wins: with it
8044
+ * set the panel is not shown whatever `open` says.
8045
+ * Built from `bs-card` (panel surface), `bs-menu-block` or `bs-compact-menu-block` (the links), `bs-divider` and
8046
+ * `bs-key-caps` (the shortcut). The column layout, headings, featured text and footer row are plain layout
8047
+ * markup: no component covers them.
8048
+ * ## Responsive
8049
+ * The panel reacts to its own width (a container query), not the viewport's. Below 600px it becomes one column (heading
8050
+ * above its links, featured area below), titles and descriptions wrap, links are at least 44px tall, the footer stacks
8051
+ * and the default shortcut hint is hidden (`display: none`; a keyboard hint means nothing on a touch screen). A custom
8052
+ * `footer-end` slot is not hidden.
8053
+ * ## When to use
8054
+ * - A header tab that leads to many destinations that need grouping (Sell, Finance, Inventory).
8055
+ * ## When not to use
8056
+ * - A short list of commands -- use `bs-menu` in a `bs-popover`.
8057
+ * - Switching app or company -- use `bs-app-switcher` or `bs-company-switcher`.
8058
+ * `columns`, `featured` and `recent` are arrays or objects and must be set as JS properties. Each item's `icon` is
8059
+ * the URL of a monochrome SVG. You own the data: listen to `bsMenuSelect` (cancelable: `preventDefault()` cancels the
8060
+ * originating click).
8061
+ * @prop --bs-mega-menu-width - Panel width. Defaults to `1100px` (Figma); capped at the viewport.
8062
+ * @prop --bs-mega-menu-radius - Panel corner radius. Aliased to `--bs-border-radius-150`.
8063
+ * @prop --bs-mega-menu-bg - Panel background. Aliased to `--bs-surface-base`.
8064
+ * @prop --bs-mega-menu-border-color - Panel border. Aliased to `--bs-border-default`.
8065
+ * @prop --bs-mega-menu-shadow - Panel shadow (elevation level 3). Aliased to the `--bs-shadow-*` position and blur tokens and `--bs-elevation-high`.
8066
+ * @prop --bs-mega-menu-padding - Padding around the columns. Aliased to `--bs-spacing-300` and `--bs-spacing-350`.
8067
+ * @prop --bs-mega-menu-gap - Gap between columns. Aliased to `--bs-spacing-300`.
8068
+ * @prop --bs-mega-menu-heading-color - Column headings. Aliased to `--bs-text-muted`.
8069
+ * @prop --bs-mega-menu-text-color - Featured title. Aliased to `--bs-text-default`.
8070
+ * @prop --bs-mega-menu-muted-color - Featured description and footer text. Aliased to `--bs-text-secondary`.
8071
+ * @prop --bs-mega-menu-duration - Length of the open/close motion (`open` only). Aliased to `--bs-duration-default`.
8072
+ * @prop --bs-mega-menu-easing - Curve of the open/close motion. Aliased to `--bs-easing-standard`.
8073
+ * @prop --bs-mega-menu-distance - How far the panel drops while it fades. Aliased to `--bs-spacing-100`.
8074
+ * Under `prefers-reduced-motion: reduce` (or a duration of `0ms`) setting `open` shows and hides the panel instantly.
8075
+ */
8076
+ interface HTMLBsMegaMenuElement extends Components.BsMegaMenu, HTMLStencilElement {
8077
+ addEventListener<K extends keyof HTMLBsMegaMenuElementEventMap>(type: K, listener: (this: HTMLBsMegaMenuElement, ev: BsMegaMenuCustomEvent<HTMLBsMegaMenuElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
8078
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
8079
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
8080
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
8081
+ removeEventListener<K extends keyof HTMLBsMegaMenuElementEventMap>(type: K, listener: (this: HTMLBsMegaMenuElement, ev: BsMegaMenuCustomEvent<HTMLBsMegaMenuElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
8082
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
8083
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
8084
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
8085
+ }
8086
+ var HTMLBsMegaMenuElement: {
8087
+ prototype: HTMLBsMegaMenuElement;
8088
+ new (): HTMLBsMegaMenuElement;
8089
+ };
7060
8090
  /**
7061
8091
  * A generic dropdown/popup menu container: a rounded, elevated list of items (typically
7062
8092
  * `bs-menu-item` elements).
@@ -7078,6 +8108,37 @@ declare global {
7078
8108
  prototype: HTMLBsMenuElement;
7079
8109
  new (): HTMLBsMenuElement;
7080
8110
  };
8111
+ /**
8112
+ * A rich entry in a mega menu: an icon tile, a title with an optional "New" chip, and a one-line description.
8113
+ * Matches the Figma "Menu block" component (Default, Hover, Pressed and Focused).
8114
+ * The block is always a native button and only emits events; it never navigates. Hover, pressed and focus come from the
8115
+ * native element. Its accessible name is its text: the title, the badge and the description, read once.
8116
+ * Built from `bs-icon-tile` (the icon) and `bs-chip-informative` (the badge). The icon is either a URL of a
8117
+ * monochrome SVG in `icon` (painted with the theme's icon colour through a CSS mask, so it follows light and
8118
+ * dark mode), or any element in the default slot (an `<svg>` drawn with `currentColor`).
8119
+ * ## When to use
8120
+ * - A destination in a mega menu that needs an icon and a sentence of explanation, usually inside `bs-mega-menu`.
8121
+ * ## When not to use
8122
+ * - A plain text destination -- use `bs-compact-menu-block`.
8123
+ * - A command in a dropdown list -- use `bs-menu-item`.
8124
+ * @prop --bs-menu-block-padding - Padding inside the block. Aliased to `--bs-spacing-150`.
8125
+ * @prop --bs-menu-block-gap - Gap between icon and text. Aliased to `--bs-spacing-150`.
8126
+ * @prop --bs-menu-block-radius - Corner radius. Aliased to `--bs-border-radius-100`.
8127
+ * @prop --bs-menu-block-bg - Resting background. `transparent`.
8128
+ * @prop --bs-menu-block-bg-hover - Aliased to `--bs-surface-hover`.
8129
+ * @prop --bs-menu-block-bg-pressed - Aliased to `--bs-surface-pressed`.
8130
+ * @prop --bs-menu-block-icon-bg - Icon square background. Aliased to `--bs-color-neutral-container`; `--bs-surface-base` while hovered or pressed.
8131
+ * @prop --bs-menu-block-color - Title colour. Aliased to `--bs-text-default`.
8132
+ * @prop --bs-menu-block-color-muted - Description colour. Aliased to `--bs-text-secondary`.
8133
+ * @prop --bs-menu-block-focus-ring - Focus ring colour. Aliased to `--bs-border-info`.
8134
+ * @prop --bs-menu-block-white-space - `white-space` of the title and description. `nowrap` (single line, ellipsis); set `normal` to let them wrap.
8135
+ */
8136
+ interface HTMLBsMenuBlockElement extends Components.BsMenuBlock, HTMLStencilElement {
8137
+ }
8138
+ var HTMLBsMenuBlockElement: {
8139
+ prototype: HTMLBsMenuBlockElement;
8140
+ new (): HTMLBsMenuBlockElement;
8141
+ };
7081
8142
  interface HTMLBsMenuItemElementEventMap {
7082
8143
  "bsSelect": void;
7083
8144
  }
@@ -7353,6 +8414,64 @@ declare global {
7353
8414
  prototype: HTMLBsOnboardingChecklistElement;
7354
8415
  new (): HTMLBsOnboardingChecklistElement;
7355
8416
  };
8417
+ interface HTMLBsPageHeaderElementEventMap {
8418
+ "bsBack": void;
8419
+ "bsFavoriteChange": { favorite: boolean };
8420
+ }
8421
+ /**
8422
+ * The header at the top of a page's content area: breadcrumb trail, the page title (a real heading) with an
8423
+ * optional back button, status and favourite toggle, a meta line, page-level actions on the right and an
8424
+ * optional row of tabs. Matches the Figma "Page header" (types List page, Record, Record with tabs and Sticky
8425
+ * compact).
8426
+ * Built from `bs-breadcrumbs`/`bs-breadcrumb` (slotted by you), `bs-icon-button` (the built-in back and favourite
8427
+ * buttons), `bs-chip-informative` (the status you slot), `bs-button` and `bs-icon-button` (the actions you slot),
8428
+ * `bs-tabs`/`bs-tab` (the tab row you slot) and `bs-divider` (under the tabs). The title block, meta line and
8429
+ * actions area are plain layout markup, because no component covers them. The back arrow and the star are
8430
+ * inline SVG (Phosphor "arrow-left", "star" and "star-fill") until the library has an icon component.
8431
+ * ## Compact (sticky)
8432
+ * `compact` is the condensed state a record header takes once the page scrolls: one row (back, title, status,
8433
+ * meta inline, actions), a level 2 shadow, no breadcrumb and no tabs, and `position: sticky`. Set it yourself
8434
+ * from a scroll observer. Because the header covers the top of the scroll area, give the scroll container
8435
+ * `scroll-padding-top` equal to its height (80px by default) so focused or anchored content is not hidden under it.
8436
+ * ## Responsive
8437
+ * The header reacts to its own width (a container query), not the viewport's. Below 640px the actions wrap
8438
+ * below the title block, slotted buttons grow to 44px tall, the title and meta wrap, and the tab row scrolls
8439
+ * sideways inside itself. The page never gets wider.
8440
+ * ## When to use
8441
+ * - The top of a list page or a single record (an invoice, a customer) inside the app shell's content area.
8442
+ * ## When not to use
8443
+ * - The app-wide bar with logo, search and user: use `bs-navigation-header`.
8444
+ * - The heading of a card, dialog or panel: use that component's own `heading`.
8445
+ * ## Accessibility notes
8446
+ * The root is a plain `div`, not a `<header>`: a `<header>` that is not inside `<main>`/`<article>`/`<section>`
8447
+ * is a second banner landmark. The title is a real heading (`<h1>` by default, `headingLevel` 1 to 6); the
8448
+ * status is next to it, not inside it. If you want a landmark, wrap `bs-page-header` yourself.
8449
+ * @prop --bs-page-header-bg - Background. Aliased to `--bs-surface-base`.
8450
+ * @prop --bs-page-header-padding-x - Left and right padding. Aliased to `--bs-spacing-200`.
8451
+ * @prop --bs-page-header-padding-y - Top and bottom padding. Aliased to `--bs-spacing-300`.
8452
+ * @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`.
8453
+ * @prop --bs-page-header-title-gap - Gap between the heading, status and favourite button. Aliased to `--bs-spacing-150`.
8454
+ * @prop --bs-page-header-actions-gap - Gap between the actions. Aliased to `--bs-spacing-100`.
8455
+ * @prop --bs-page-header-text-color - Heading. Aliased to `--bs-text-default`.
8456
+ * @prop --bs-page-header-meta-color - Meta line. Aliased to `--bs-text-secondary`.
8457
+ * @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`.
8458
+ * @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).
8459
+ * @prop --bs-page-header-z-index - Stacking order of the compact header. Aliased to `--bs-z-index-sticky`.
8460
+ */
8461
+ interface HTMLBsPageHeaderElement extends Components.BsPageHeader, HTMLStencilElement {
8462
+ addEventListener<K extends keyof HTMLBsPageHeaderElementEventMap>(type: K, listener: (this: HTMLBsPageHeaderElement, ev: BsPageHeaderCustomEvent<HTMLBsPageHeaderElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
8463
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
8464
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
8465
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
8466
+ removeEventListener<K extends keyof HTMLBsPageHeaderElementEventMap>(type: K, listener: (this: HTMLBsPageHeaderElement, ev: BsPageHeaderCustomEvent<HTMLBsPageHeaderElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
8467
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
8468
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
8469
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
8470
+ }
8471
+ var HTMLBsPageHeaderElement: {
8472
+ prototype: HTMLBsPageHeaderElement;
8473
+ new (): HTMLBsPageHeaderElement;
8474
+ };
7356
8475
  interface HTMLBsPaginationElementEventMap {
7357
8476
  "bsPageChange": number;
7358
8477
  }
@@ -7403,6 +8522,11 @@ declare global {
7403
8522
  * @prop --bs-popover-offset - Gap between trigger and popup. Aliased to `--bs-spacing-100`.
7404
8523
  * @prop --bs-popover-min-width - Minimum popup width. Aliased to `--bs-scale-1600`.
7405
8524
  * @prop --bs-popover-z-index - Popup stacking order. Aliased to `--bs-z-index-popover`.
8525
+ * @prop --bs-popover-duration - Length of the open/close motion. Aliased to `--bs-duration-fast`.
8526
+ * @prop --bs-popover-easing - Curve of the open/close motion. Aliased to `--bs-easing-standard`.
8527
+ * @prop --bs-popover-distance - How far the popup nudges while it fades. Aliased to `--bs-spacing-50`.
8528
+ * The popup fades and nudges toward its trigger when it opens and closes. Length, curve and travel are
8529
+ * `--bs-popover-duration`, `--bs-popover-easing` and `--bs-popover-distance`; under `prefers-reduced-motion: reduce` it is instant.
7406
8530
  */
7407
8531
  interface HTMLBsPopoverElement extends Components.BsPopover, HTMLStencilElement {
7408
8532
  addEventListener<K extends keyof HTMLBsPopoverElementEventMap>(type: K, listener: (this: HTMLBsPopoverElement, ev: BsPopoverCustomEvent<HTMLBsPopoverElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
@@ -7418,6 +8542,40 @@ declare global {
7418
8542
  prototype: HTMLBsPopoverElement;
7419
8543
  new (): HTMLBsPopoverElement;
7420
8544
  };
8545
+ interface HTMLBsPresenceElementEventMap {
8546
+ "bsTransitionEnd": boolean;
8547
+ }
8548
+ /**
8549
+ * Shows and hides slotted content with a short enter/exit transition.
8550
+ * The motion uses the shared duration and easing tokens (`--bs-duration-*`, `--bs-easing-*`).
8551
+ * Under `prefers-reduced-motion: reduce` those durations are already `0ms`, and this component
8552
+ * forces `--bs-presence-duration` to `--bs-duration-instant` as well, so the content snaps
8553
+ * instead of moving.
8554
+ * ## When to use
8555
+ * - Revealing a block that does not have its own enter/exit (a card, a form section, a panel).
8556
+ * - Comparing duration and easing tokens while designing a screen.
8557
+ * ## When not to use
8558
+ * - Loading placeholders (`bs-skeleton`), spinners (`bs-spinner`), or progress.
8559
+ * - Dialog, snackbar, toast, and command palette — those components own their motion.
8560
+ * @prop --bs-presence-duration - Transition length. Set from the `duration` prop to a `--bs-duration-*` token.
8561
+ * @prop --bs-presence-easing - Transition curve. Set from the `easing` prop to a `--bs-easing-*` token.
8562
+ * @prop --bs-presence-distance - Travel distance for `slide-up` and `slide-down`. Aliased to `--bs-spacing-400`.
8563
+ * @prop --bs-presence-scale - Closed scale for `scale`. No unitless scale token exists, so the default is `0.96`.
8564
+ */
8565
+ interface HTMLBsPresenceElement extends Components.BsPresence, HTMLStencilElement {
8566
+ addEventListener<K extends keyof HTMLBsPresenceElementEventMap>(type: K, listener: (this: HTMLBsPresenceElement, ev: BsPresenceCustomEvent<HTMLBsPresenceElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
8567
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
8568
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
8569
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
8570
+ removeEventListener<K extends keyof HTMLBsPresenceElementEventMap>(type: K, listener: (this: HTMLBsPresenceElement, ev: BsPresenceCustomEvent<HTMLBsPresenceElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
8571
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
8572
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
8573
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
8574
+ }
8575
+ var HTMLBsPresenceElement: {
8576
+ prototype: HTMLBsPresenceElement;
8577
+ new (): HTMLBsPresenceElement;
8578
+ };
7421
8579
  interface HTMLBsProductTourElementEventMap {
7422
8580
  "bsPrimary": void;
7423
8581
  "bsSecondary": void;
@@ -7562,6 +8720,32 @@ declare global {
7562
8720
  prototype: HTMLBsRadioElement;
7563
8721
  new (): HTMLBsRadioElement;
7564
8722
  };
8723
+ /**
8724
+ * A touch-ripple effect: on pointer press, a circle grows from the press point and fades out.
8725
+ * It is a building block for pressable components (`bs-button`, `bs-icon-button`, ...), not something
8726
+ * to place on a page by itself. Put it inside a positioned, pressable parent; it fills that parent,
8727
+ * follows its corner radius, and listens for `pointerdown` on it. Pointer-events pass through, so the
8728
+ * parent still receives every click.
8729
+ * The motion uses the shared duration and easing tokens. Under `prefers-reduced-motion: reduce` those
8730
+ * durations are `0ms`, and the ripple does not play at all.
8731
+ * ## When to use
8732
+ * - Inside a pressable `bs-*` component, to give press feedback.
8733
+ * ## When not to use
8734
+ * - As a hover or focus indicator. Those are colour changes on the parent.
8735
+ * - On non-interactive surfaces.
8736
+ * Set the custom properties on the `bs-ripple` element itself. Inside another component that means `::part(ripple)`,
8737
+ * e.g. `bs-button::part(ripple) { --bs-ripple-color: white; }`.
8738
+ * @prop --bs-ripple-color - Ripple colour. `currentColor` by default, so it follows the parent's text colour and works on every variant.
8739
+ * @prop --bs-ripple-opacity - Starting opacity of the ripple. No opacity token fits, so the default is `0.24`.
8740
+ * @prop --bs-ripple-duration - Length of the ripple. Aliased to `--bs-duration-slower`.
8741
+ * @prop --bs-ripple-easing - Curve of the ripple. Aliased to `--bs-easing-decelerate`.
8742
+ */
8743
+ interface HTMLBsRippleElement extends Components.BsRipple, HTMLStencilElement {
8744
+ }
8745
+ var HTMLBsRippleElement: {
8746
+ prototype: HTMLBsRippleElement;
8747
+ new (): HTMLBsRippleElement;
8748
+ };
7565
8749
  interface HTMLBsSearchItemElementEventMap {
7566
8750
  "bsItemSelect": string | undefined;
7567
8751
  }
@@ -7691,6 +8875,8 @@ declare global {
7691
8875
  * @prop --bs-side-panel-overlay-bg - Backdrop color. Aliased to `--bs-surface-overlay`.
7692
8876
  * @prop --bs-side-panel-color - Text color. Aliased to `--bs-text-default`.
7693
8877
  * @prop --bs-side-panel-z-index - Stacking order. Aliased to `--bs-z-index-modal`.
8878
+ * @prop --bs-side-panel-duration - Length of the slide in/out. Aliased to `--bs-duration-slow`.
8879
+ * @prop --bs-side-panel-easing - Curve of the slide in/out. Aliased to `--bs-easing-standard`.
7694
8880
  */
7695
8881
  interface HTMLBsSidePanelElement extends Components.BsSidePanel, HTMLStencilElement {
7696
8882
  addEventListener<K extends keyof HTMLBsSidePanelElementEventMap>(type: K, listener: (this: HTMLBsSidePanelElement, ev: BsSidePanelCustomEvent<HTMLBsSidePanelElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
@@ -8184,6 +9370,11 @@ declare global {
8184
9370
  * - Interactive content or long text (use `bs-popover`).
8185
9371
  * @prop --bs-tooltip-trigger-offset - Gap between trigger and tooltip. Aliased to `--bs-spacing-100`.
8186
9372
  * @prop --bs-tooltip-trigger-z-index - Stacking order. Aliased to `--bs-z-index-popover`.
9373
+ * @prop --bs-tooltip-trigger-duration - Length of the show/hide motion. Aliased to `--bs-duration-fast`.
9374
+ * @prop --bs-tooltip-trigger-easing - Curve of the show/hide motion. Aliased to `--bs-easing-standard`.
9375
+ * @prop --bs-tooltip-trigger-distance - How far the tooltip nudges while it fades. Aliased to `--bs-spacing-50`.
9376
+ * The tooltip fades in while drifting a few pixels away from the trigger into place, and fades back out toward it. Under
9377
+ * `prefers-reduced-motion: reduce` (or a duration of `0ms`) it appears and disappears instantly.
8187
9378
  */
8188
9379
  interface HTMLBsTooltipTriggerElement extends Components.BsTooltipTrigger, HTMLStencilElement {
8189
9380
  }
@@ -8321,7 +9512,10 @@ declare global {
8321
9512
  "bs-ai-disclaimer": HTMLBsAiDisclaimerElement;
8322
9513
  "bs-ai-greeting": HTMLBsAiGreetingElement;
8323
9514
  "bs-ai-thinking": HTMLBsAiThinkingElement;
9515
+ "bs-app-recent-item": HTMLBsAppRecentItemElement;
8324
9516
  "bs-app-shell": HTMLBsAppShellElement;
9517
+ "bs-app-switcher": HTMLBsAppSwitcherElement;
9518
+ "bs-app-tile": HTMLBsAppTileElement;
8325
9519
  "bs-attachment": HTMLBsAttachmentElement;
8326
9520
  "bs-attachment-list": HTMLBsAttachmentListElement;
8327
9521
  "bs-avatar": HTMLBsAvatarElement;
@@ -8345,6 +9539,8 @@ declare global {
8345
9539
  "bs-chip-input": HTMLBsChipInputElement;
8346
9540
  "bs-citation-preview": HTMLBsCitationPreviewElement;
8347
9541
  "bs-command-palette": HTMLBsCommandPaletteElement;
9542
+ "bs-compact-menu-block": HTMLBsCompactMenuBlockElement;
9543
+ "bs-company-switcher": HTMLBsCompanySwitcherElement;
8348
9544
  "bs-composer": HTMLBsComposerElement;
8349
9545
  "bs-composer-status-banner": HTMLBsComposerStatusBannerElement;
8350
9546
  "bs-container": HTMLBsContainerElement;
@@ -8369,7 +9565,9 @@ declare global {
8369
9565
  "bs-list": HTMLBsListElement;
8370
9566
  "bs-list-item": HTMLBsListItemElement;
8371
9567
  "bs-logo": HTMLBsLogoElement;
9568
+ "bs-mega-menu": HTMLBsMegaMenuElement;
8372
9569
  "bs-menu": HTMLBsMenuElement;
9570
+ "bs-menu-block": HTMLBsMenuBlockElement;
8373
9571
  "bs-menu-item": HTMLBsMenuItemElement;
8374
9572
  "bs-message": HTMLBsMessageElement;
8375
9573
  "bs-message-list": HTMLBsMessageListElement;
@@ -8377,13 +9575,16 @@ declare global {
8377
9575
  "bs-navigation-drawer-item": HTMLBsNavigationDrawerItemElement;
8378
9576
  "bs-navigation-header": HTMLBsNavigationHeaderElement;
8379
9577
  "bs-onboarding-checklist": HTMLBsOnboardingChecklistElement;
9578
+ "bs-page-header": HTMLBsPageHeaderElement;
8380
9579
  "bs-pagination": HTMLBsPaginationElement;
8381
9580
  "bs-popover": HTMLBsPopoverElement;
9581
+ "bs-presence": HTMLBsPresenceElement;
8382
9582
  "bs-product-tour": HTMLBsProductTourElement;
8383
9583
  "bs-progress": HTMLBsProgressElement;
8384
9584
  "bs-progress-linear": HTMLBsProgressLinearElement;
8385
9585
  "bs-qr-code": HTMLBsQrCodeElement;
8386
9586
  "bs-radio": HTMLBsRadioElement;
9587
+ "bs-ripple": HTMLBsRippleElement;
8387
9588
  "bs-search-item": HTMLBsSearchItemElement;
8388
9589
  "bs-session-timeout": HTMLBsSessionTimeoutElement;
8389
9590
  "bs-shortcut-row": HTMLBsShortcutRowElement;
@@ -8411,6 +9612,8 @@ declare global {
8411
9612
  }
8412
9613
  }
8413
9614
  declare namespace LocalJSX {
9615
+ 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 };
9616
+
8414
9617
  /**
8415
9618
  * A single collapsible section -- a clickable header (optional leading icon, label, trailing
8416
9619
  * caret) that reveals or hides a body content area.
@@ -8418,6 +9621,10 @@ declare namespace LocalJSX {
8418
9621
  * (optionally managing which one(s) are expanded, e.g. "only one open at a time") themselves --
8419
9622
  * there's no accordion-group wrapper here, matching Figma's component which only specs the single
8420
9623
  * section, not a group behavior.
9624
+ * @prop --bs-accordion-duration - Length of the expand/collapse motion. Aliased to `--bs-duration-default`.
9625
+ * @prop --bs-accordion-easing - Curve of the expand/collapse motion. Aliased to `--bs-easing-standard`.
9626
+ * Expanding and collapsing animate the body's height and rotate the caret. Under
9627
+ * `prefers-reduced-motion: reduce` the duration token is `0ms`, so the body snaps.
8421
9628
  */
8422
9629
  interface BsAccordion {
8423
9630
  /**
@@ -8554,6 +9761,57 @@ declare namespace LocalJSX {
8554
9761
  */
8555
9762
  "label"?: string;
8556
9763
  }
9764
+ /**
9765
+ * A full-width row for one app: a small icon tile, the app name and a description line (for example
9766
+ * "Opened 10 min ago · Nordlys Handel AS"). Matches the Figma "Recent item" component (Default, Current,
9767
+ * Hover, Pressed and Focus).
9768
+ * The row is always a native button and only emits events; it never navigates. `current` marks the app you are in
9769
+ * (`aria-current="true"`); `disabled` dims it, sets `aria-disabled` and removes it from the tab order.
9770
+ * Built from `bs-icon-tile`. The icon is either a URL of a monochrome SVG in `icon` (painted with the theme's
9771
+ * icon colour through a CSS mask) or any element in the default slot.
9772
+ * ## When to use
9773
+ * - A recently opened app, or a search result with a description, inside `bs-app-switcher`.
9774
+ * ## When not to use
9775
+ * - An app in a launcher grid -- use `bs-app-tile`.
9776
+ * - A generic list row -- use `bs-list-item`.
9777
+ * @prop --bs-app-recent-item-padding-x - Aliased to `--bs-spacing-100`.
9778
+ * @prop --bs-app-recent-item-padding-y - Aliased to `--bs-spacing-100`.
9779
+ * @prop --bs-app-recent-item-gap - Gap between icon and text. Aliased to `--bs-spacing-150`.
9780
+ * @prop --bs-app-recent-item-radius - Aliased to `--bs-border-radius-100`.
9781
+ * @prop --bs-app-recent-item-bg - Resting background. `transparent`.
9782
+ * @prop --bs-app-recent-item-bg-hover - Aliased to `--bs-surface-hover`.
9783
+ * @prop --bs-app-recent-item-bg-pressed - Aliased to `--bs-surface-pressed`.
9784
+ * @prop --bs-app-recent-item-bg-current - Aliased to `--bs-surface-selected`.
9785
+ * @prop --bs-app-recent-item-icon-bg - Icon square background. Aliased to `--bs-color-neutral-container`; `--bs-surface-base` while hovered, pressed or current.
9786
+ * @prop --bs-app-recent-item-color - Name colour. Aliased to `--bs-text-default`.
9787
+ * @prop --bs-app-recent-item-color-muted - Description colour. Aliased to `--bs-text-secondary`.
9788
+ * @prop --bs-app-recent-item-color-disabled - Name, description and icon colour when disabled. Aliased to `--bs-text-on-disabled`.
9789
+ * @prop --bs-app-recent-item-focus-ring - Focus ring colour. Aliased to `--bs-border-neutral-focus`.
9790
+ */
9791
+ interface BsAppRecentItem {
9792
+ /**
9793
+ * The app you are in right now: selected background and `aria-current="true"`.
9794
+ * @default false
9795
+ */
9796
+ "current"?: boolean;
9797
+ /**
9798
+ * Second line under the name.
9799
+ */
9800
+ "description"?: string;
9801
+ /**
9802
+ * Dims the row, sets `aria-disabled` and takes it out of the tab order.
9803
+ * @default false
9804
+ */
9805
+ "disabled"?: boolean;
9806
+ /**
9807
+ * URL of a monochrome SVG painted with the icon colour. The default slot overrides it.
9808
+ */
9809
+ "icon"?: string;
9810
+ /**
9811
+ * The app name, and the accessible name of the row together with the description.
9812
+ */
9813
+ "name": string;
9814
+ }
8557
9815
  /**
8558
9816
  * The page frame: a header across the top, and below it a navigation | main | aside row, laid out
8559
9817
  * with CSS grid. The main column scrolls independently of the header and the side columns.
@@ -8582,6 +9840,245 @@ declare namespace LocalJSX {
8582
9840
  */
8583
9841
  "fullHeight"?: boolean;
8584
9842
  }
9843
+ /**
9844
+ * The panel of an app launcher ("EG apps"): a header with a "Manage" action, a search field, your apps as a
9845
+ * grid (or Recent plus All apps), search results, and a footer link to browse all products. It also has
9846
+ * no-results, loading, error and empty states. Matches the Figma "App switcher" (states Default, With recent,
9847
+ * Searching, No results, Loading, Error and Empty).
9848
+ * This is the panel only. To open it from a button, wrap it in `bs-popover`.
9849
+ * Built from `bs-card` (panel surface), `bs-input` (search), `bs-app-tile` and `bs-app-recent-item` (apps),
9850
+ * `bs-empty-state` (no results, error, empty), `bs-skeleton` (loading), `bs-button` (Clear search, Try
9851
+ * again, Request access) and `bs-divider`. "Manage" and "Browse all" are native links (or buttons when
9852
+ * there is no URL): `bs-button` has no link mode and the library has no link component.
9853
+ * ## When to use
9854
+ * - Letting a user jump between the products they have access to, from an app header.
9855
+ * ## When not to use
9856
+ * - Navigation inside one app -- use `bs-menu` or the app shell navigation.
9857
+ * - Switching company -- use `bs-company-switcher`.
9858
+ * `apps` and `recent` are arrays and must be set as JS properties. Each app's `icon` is the URL of a
9859
+ * monochrome SVG. You own the data: listen to `bsAppSelect` (cancelable: `preventDefault()` cancels the
9860
+ * originating click), and drive `status` and `query` yourself. An empty `apps` list while `status` is
9861
+ * `ready` shows the empty state.
9862
+ * @prop --bs-app-switcher-width - Panel width. Defaults to `360px` (Figma); capped at the viewport.
9863
+ * @prop --bs-app-switcher-radius - Panel corner radius. Aliased to `--bs-border-radius-150`.
9864
+ * @prop --bs-app-switcher-bg - Panel background. Aliased to `--bs-surface-base`.
9865
+ * @prop --bs-app-switcher-border-color - Panel border. Aliased to `--bs-border-default`.
9866
+ * @prop --bs-app-switcher-shadow - Panel shadow (elevation level 4). Aliased to the `--bs-shadow-*` position and blur tokens and `--bs-elevation-higher`.
9867
+ * @prop --bs-app-switcher-padding - Side padding of the content. Aliased to `--bs-spacing-150`.
9868
+ * @prop --bs-app-switcher-text-color - Heading and links in the header. Aliased to `--bs-text-default`.
9869
+ * @prop --bs-app-switcher-header-color - Group headers. Aliased to `--bs-text-secondary`.
9870
+ * @prop --bs-app-switcher-link-color - Browse link. Aliased to `--bs-text-action`.
9871
+ * @prop --bs-app-switcher-focus-ring - Link focus ring. Aliased to `--bs-border-neutral-focus`.
9872
+ */
9873
+ interface BsAppSwitcher {
9874
+ /**
9875
+ * Header of the all apps group.
9876
+ * @default 'All apps'
9877
+ */
9878
+ "allAppsLabel"?: string;
9879
+ /**
9880
+ * The apps the user can open. JS property only (an array cannot be an attribute).
9881
+ * @default []
9882
+ */
9883
+ "apps"?: BsApp[];
9884
+ /**
9885
+ * URL of the Browse all link. Without it it is a button that only fires `bsBrowseAll`.
9886
+ */
9887
+ "browseHref"?: string;
9888
+ /**
9889
+ * Text of the footer link.
9890
+ * @default 'Browse all EG products'
9891
+ */
9892
+ "browseLabel"?: string;
9893
+ /**
9894
+ * Text of the Clear search button.
9895
+ * @default 'Clear search'
9896
+ */
9897
+ "clearLabel"?: string;
9898
+ /**
9899
+ * `id` of the app you are in: selected background and `aria-current`.
9900
+ */
9901
+ "currentId"?: string;
9902
+ /**
9903
+ * Empty description.
9904
+ * @default 'Ask your administrator for access, or browse all EG products to see what’s available.'
9905
+ */
9906
+ "emptyDescription"?: string;
9907
+ /**
9908
+ * Empty heading (no apps assigned).
9909
+ * @default 'No apps assigned yet'
9910
+ */
9911
+ "emptyHeading"?: string;
9912
+ /**
9913
+ * Error description.
9914
+ * @default 'Check your connection and try again. Your work in the current app is not affected.'
9915
+ */
9916
+ "errorDescription"?: string;
9917
+ /**
9918
+ * Error heading.
9919
+ * @default 'Couldn’t load your apps'
9920
+ */
9921
+ "errorHeading"?: string;
9922
+ /**
9923
+ * Panel heading.
9924
+ * @default 'EG apps'
9925
+ */
9926
+ "heading"?: string;
9927
+ /**
9928
+ * Announced while loading.
9929
+ * @default 'Loading apps…'
9930
+ */
9931
+ "loadingLabel"?: string;
9932
+ /**
9933
+ * URL of the Manage link. Without it Manage is a button that only fires `bsManage`.
9934
+ */
9935
+ "manageHref"?: string;
9936
+ /**
9937
+ * Text of the Manage link.
9938
+ * @default 'Manage'
9939
+ */
9940
+ "manageLabel"?: string;
9941
+ /**
9942
+ * No-results description.
9943
+ * @default 'Check the spelling, or browse all EG products to find more apps.'
9944
+ */
9945
+ "noResultsDescription"?: string;
9946
+ /**
9947
+ * No-results heading. `{query}` is replaced by the query.
9948
+ * @default 'No apps match “{query}”'
9949
+ */
9950
+ "noResultsHeading"?: string;
9951
+ /**
9952
+ * Fires when an app is chosen (click or Enter), with the app. Cancelable: `preventDefault()` cancels the originating click.
9953
+ */
9954
+ "onBsAppSelect"?: (event: BsAppSwitcherCustomEvent<BsApp>) => void;
9955
+ /**
9956
+ * Fires when Browse all is pressed.
9957
+ */
9958
+ "onBsBrowseAll"?: (event: BsAppSwitcherCustomEvent<void>) => void;
9959
+ /**
9960
+ * Fires when the search is cleared with the Clear search button or Escape.
9961
+ */
9962
+ "onBsClearSearch"?: (event: BsAppSwitcherCustomEvent<void>) => void;
9963
+ /**
9964
+ * Fires when Manage is pressed.
9965
+ */
9966
+ "onBsManage"?: (event: BsAppSwitcherCustomEvent<void>) => void;
9967
+ /**
9968
+ * Fires when the search text changes through user interaction, with the new text.
9969
+ */
9970
+ "onBsQueryChange"?: (event: BsAppSwitcherCustomEvent<string>) => void;
9971
+ /**
9972
+ * Fires when Request access is pressed.
9973
+ */
9974
+ "onBsRequestAccess"?: (event: BsAppSwitcherCustomEvent<void>) => void;
9975
+ /**
9976
+ * Fires when Try again is pressed.
9977
+ */
9978
+ "onBsRetry"?: (event: BsAppSwitcherCustomEvent<void>) => void;
9979
+ /**
9980
+ * The search text. Mutable: typing, Escape and "Clear search" update it.
9981
+ * @default ''
9982
+ */
9983
+ "query"?: string;
9984
+ /**
9985
+ * Recently opened apps, most recent first. When there are any, the panel shows Recent and All apps. JS property only.
9986
+ * @default []
9987
+ */
9988
+ "recent"?: BsAppRecent[];
9989
+ /**
9990
+ * Header of the recent group.
9991
+ * @default 'Recent'
9992
+ */
9993
+ "recentLabel"?: string;
9994
+ /**
9995
+ * Text of the Request access button.
9996
+ * @default 'Request access'
9997
+ */
9998
+ "requestAccessLabel"?: string;
9999
+ /**
10000
+ * Search header with one result ("1 result").
10001
+ * @default 'result'
10002
+ */
10003
+ "resultLabel"?: string;
10004
+ /**
10005
+ * Search header with several results ("2 results").
10006
+ * @default 'results'
10007
+ */
10008
+ "resultsLabel"?: string;
10009
+ /**
10010
+ * Text of the Try again button.
10011
+ * @default 'Try again'
10012
+ */
10013
+ "retryLabel"?: string;
10014
+ /**
10015
+ * Placeholder (and accessible name) of the search field.
10016
+ * @default 'Find an app'
10017
+ */
10018
+ "searchPlaceholder"?: string;
10019
+ /**
10020
+ * `loading` shows skeleton tiles, `error` the failure state.
10021
+ * @default 'ready'
10022
+ */
10023
+ "status"?: BsAppSwitcherStatus;
10024
+ /**
10025
+ * Header of the default group when there are no recent apps.
10026
+ * @default 'Your apps'
10027
+ */
10028
+ "yourAppsLabel"?: string;
10029
+ }
10030
+ /**
10031
+ * One app in an app launcher: an icon tile above a short label. Matches the Figma "App tile" component
10032
+ * (Size Grid and Compact, each Default, Hover, Pressed, Focus, Current and Disabled).
10033
+ * The tile is always a native button and only emits events; it never navigates. Hover, pressed and focus come from the
10034
+ * native element; `current` marks the app you are in (`aria-current="true"`); `disabled` dims it, sets
10035
+ * `aria-disabled` and removes it from the tab order.
10036
+ * Built from `bs-icon-tile`. The icon is either a URL of a monochrome SVG in `icon` (painted with the
10037
+ * theme's icon colour through a CSS mask, so it follows light and dark mode), or any element in the default
10038
+ * slot (an `<svg>` drawn with `currentColor`).
10039
+ * ## When to use
10040
+ * - An app in a launcher grid, usually inside `bs-app-switcher`.
10041
+ * ## When not to use
10042
+ * - A row with a description or "recently opened" line -- use `bs-app-recent-item`.
10043
+ * - A command in a menu -- use `bs-menu-item`.
10044
+ * @prop --bs-app-tile-icon-size - Size of the icon square. `44px` in `grid` (Figma) and `--bs-sizing-400` in `compact`.
10045
+ * @prop --bs-app-tile-padding - Padding inside the tile. Aliased to `--bs-spacing-150` (`grid`) or `--bs-spacing-100` (`compact`).
10046
+ * @prop --bs-app-tile-gap - Gap between icon and label. Aliased to `--bs-spacing-150` (`grid`) or `--bs-spacing-50` (`compact`).
10047
+ * @prop --bs-app-tile-radius - Corner radius. Aliased to `--bs-border-radius-100`.
10048
+ * @prop --bs-app-tile-bg - Resting background. `transparent`.
10049
+ * @prop --bs-app-tile-bg-hover - Aliased to `--bs-surface-hover`.
10050
+ * @prop --bs-app-tile-bg-pressed - Aliased to `--bs-surface-pressed`.
10051
+ * @prop --bs-app-tile-bg-current - Aliased to `--bs-surface-selected`.
10052
+ * @prop --bs-app-tile-icon-bg - Icon square background. Aliased to `--bs-color-neutral-container`; `--bs-surface-base` while hovered, pressed or current.
10053
+ * @prop --bs-app-tile-color - Label colour. Aliased to `--bs-text-default`.
10054
+ * @prop --bs-app-tile-color-disabled - Label and icon colour when disabled. Aliased to `--bs-text-on-disabled`.
10055
+ * @prop --bs-app-tile-focus-ring - Focus ring colour. Aliased to `--bs-border-neutral-focus`.
10056
+ */
10057
+ interface BsAppTile {
10058
+ /**
10059
+ * The app you are in right now: selected background and `aria-current="true"`.
10060
+ * @default false
10061
+ */
10062
+ "current"?: boolean;
10063
+ /**
10064
+ * Dims the tile, sets `aria-disabled` and takes it out of the tab order.
10065
+ * @default false
10066
+ */
10067
+ "disabled"?: boolean;
10068
+ /**
10069
+ * URL of a monochrome SVG painted with the icon colour. The default slot overrides it.
10070
+ */
10071
+ "icon"?: string;
10072
+ /**
10073
+ * The app name, shown under the icon and used as the accessible name.
10074
+ */
10075
+ "name": string;
10076
+ /**
10077
+ * `grid` is the 3-column launcher tile; `compact` the smaller 4-column one.
10078
+ * @default 'grid'
10079
+ */
10080
+ "size"?: BsAppTileSize;
10081
+ }
8585
10082
  /**
8586
10083
  * A single file attachment preview for `bs-composer` -- an image thumbnail, or a filename card
8587
10084
  * with a colored file-type badge (PDF/Document), with an optional upload-in-progress spinner and
@@ -8976,6 +10473,11 @@ declare namespace LocalJSX {
8976
10473
  * manages two things on those slide elements: the `hidden` attribute (off-page slides are hidden,
8977
10474
  * so they leave the tab order and the accessibility tree) and, only when not already set,
8978
10475
  * `role="group"`, `aria-roledescription="slide"` and an `aria-label` of "n of N".
10476
+ * Changing page plays a short motion: the visible slides fade and slide out in the direction of travel,
10477
+ * then the next page's slides fade and slide in (reversed for previous, and mirrored in RTL). The dots
10478
+ * also grow and fade between pages. Motion length and distance follow `--bs-carousel-duration`,
10479
+ * `--bs-carousel-easing` and `--bs-carousel-slide-distance`. Under `prefers-reduced-motion: reduce`
10480
+ * the duration token is `0ms`, so pages switch instantly.
8979
10481
  * Composes `bs-pagination` (`tracker="numbers"`), `bs-icon-button` (previous/next for
8980
10482
  * `tracker="dots"`) and `bs-button` (Pause/Play) rather than re-implementing them.
8981
10483
  * ## When to use
@@ -9894,6 +11396,175 @@ declare namespace LocalJSX {
9894
11396
  */
9895
11397
  "value"?: string;
9896
11398
  }
11399
+ /**
11400
+ * A plain text entry in a mega menu: one line, no icon. Matches the Figma "Compact menu block" component
11401
+ * (Default, Hover, Pressed and Focused).
11402
+ * The block is always a native button and only emits events; it never navigates. Hover, pressed and focus come from the
11403
+ * native element.
11404
+ * ## When to use
11405
+ * - A dense list of destinations in a mega menu, usually inside `bs-mega-menu` with `type="compact"`.
11406
+ * ## When not to use
11407
+ * - A destination that needs an icon or a description -- use `bs-menu-block`.
11408
+ * - A command in a dropdown list -- use `bs-menu-item`.
11409
+ * @prop --bs-compact-menu-block-padding - Padding inside the block. Aliased to `--bs-spacing-100`.
11410
+ * @prop --bs-compact-menu-block-radius - Corner radius. Aliased to `--bs-border-radius-100`.
11411
+ * @prop --bs-compact-menu-block-bg - Resting background. `transparent`.
11412
+ * @prop --bs-compact-menu-block-bg-hover - Aliased to `--bs-surface-hover`.
11413
+ * @prop --bs-compact-menu-block-bg-pressed - Aliased to `--bs-surface-pressed`.
11414
+ * @prop --bs-compact-menu-block-color - Text colour. Aliased to `--bs-text-default`.
11415
+ * @prop --bs-compact-menu-block-focus-ring - Focus ring colour. Aliased to `--bs-border-info`.
11416
+ */
11417
+ interface BsCompactMenuBlock {
11418
+ /**
11419
+ * The text, and the accessible name.
11420
+ */
11421
+ "name": string;
11422
+ }
11423
+ /**
11424
+ * A company (tenant) switcher: a trigger showing the current company, and a panel to find and switch to
11425
+ * another one. The panel has a search field, the current / recent / all groups, a filtered "matches" view,
11426
+ * a no-results state and a footer with "Manage Companies" and "Add companies" actions.
11427
+ * Built from `bs-popover` (open/close, Escape, outside click, flipping), `bs-card` (panel surface),
11428
+ * `bs-input` (search), `bs-list-item` (rows), `bs-avatar` (initials), `bs-spinner` (switching),
11429
+ * `bs-empty-state` (no results), `bs-divider` and `bs-button` (footer). The trigger is a native `<button>`:
11430
+ * no `bs-*` component is a composite "avatar + two lines + chevron" button.
11431
+ * ## When to use
11432
+ * - An app header or side navigation where a user belongs to several companies and works in one at a time.
11433
+ * ## When not to use
11434
+ * - Picking a value in a form -- use `bs-input type="dropdown"`.
11435
+ * - Switching between a handful of fixed views -- use `bs-tab`.
11436
+ * `companies` is an array and must be set as a JS property. You own the data and the switch itself: listen to
11437
+ * `bsCompanySwitch`, do the work, then update `currentId`. To show the switching state set `switchingId`
11438
+ * (from the `bsCompanySwitch` handler, or later) and the panel stays open until you clear it and set `open`
11439
+ * to `false`. If `switchingId` is not set by the time the handler returns, the panel closes immediately.
11440
+ * @prop --bs-company-switcher-width - Trigger width. Defaults to `260px` (Figma); capped at 100%.
11441
+ * @prop --bs-company-switcher-panel-width - Panel width. Defaults to `360px` (Figma); capped at the viewport.
11442
+ * @prop --bs-company-switcher-radius - Trigger and panel corner radius. Aliased to `--bs-border-radius-100`.
11443
+ * @prop --bs-company-switcher-trigger-bg - Trigger resting background. `transparent`.
11444
+ * @prop --bs-company-switcher-trigger-bg-hover - Aliased to `--bs-surface-hover`.
11445
+ * @prop --bs-company-switcher-trigger-bg-pressed - Aliased to `--bs-surface-pressed`.
11446
+ * @prop --bs-company-switcher-trigger-bg-open - Aliased to `--bs-surface-selected`.
11447
+ * @prop --bs-company-switcher-focus-ring - Trigger focus outline. Aliased to `--bs-border-neutral-focus`.
11448
+ * @prop --bs-company-switcher-panel-bg - Panel background. Aliased to `--bs-surface-base`.
11449
+ * @prop --bs-company-switcher-panel-border-color - Panel border. Aliased to `--bs-border-default`.
11450
+ * @prop --bs-company-switcher-shadow - Panel shadow. Aliased to `--bs-shadow-md`.
11451
+ * @prop --bs-company-switcher-max-height - Maximum height of the scrolling list. Defaults to `320px`.
11452
+ * @prop --bs-company-switcher-text-color - Names. Aliased to `--bs-text-default`.
11453
+ * @prop --bs-company-switcher-muted-color - Org. numbers. Aliased to `--bs-text-secondary`.
11454
+ * @prop --bs-company-switcher-header-color - Group headers. Aliased to `--bs-text-muted`.
11455
+ * @prop --bs-company-switcher-z-index - Panel stacking. Aliased to `--bs-z-index-popover`.
11456
+ */
11457
+ interface BsCompanySwitcher {
11458
+ /**
11459
+ * Text of the "Add companies" footer button.
11460
+ * @default 'Add companies'
11461
+ */
11462
+ "addLabel"?: string;
11463
+ /**
11464
+ * Header of the all companies group (the count is appended).
11465
+ * @default 'All companies'
11466
+ */
11467
+ "allLabel"?: string;
11468
+ /**
11469
+ * The companies the user can switch between. JS property only (an array cannot be an attribute).
11470
+ * @default []
11471
+ */
11472
+ "companies"?: BsCompany[];
11473
+ /**
11474
+ * `id` of the current company.
11475
+ */
11476
+ "currentId"?: string;
11477
+ /**
11478
+ * Header of the current company group.
11479
+ * @default 'Current'
11480
+ */
11481
+ "currentLabel"?: string;
11482
+ /**
11483
+ * No-results description.
11484
+ * @default 'Check the spelling, or search by org. number.'
11485
+ */
11486
+ "emptyDescription"?: string;
11487
+ /**
11488
+ * No-results heading. `{query}` is replaced by the query.
11489
+ * @default 'No companies match “{query}”'
11490
+ */
11491
+ "emptyHeading"?: string;
11492
+ /**
11493
+ * Accessible name of the company listbox.
11494
+ * @default 'Companies'
11495
+ */
11496
+ "listLabel"?: string;
11497
+ /**
11498
+ * Text of the "Manage Companies" footer button.
11499
+ * @default 'Manage Companies'
11500
+ */
11501
+ "manageLabel"?: string;
11502
+ /**
11503
+ * Header of the search view when there is one match ("1 match").
11504
+ * @default 'match'
11505
+ */
11506
+ "matchLabel"?: string;
11507
+ /**
11508
+ * Header of the search view when there are several matches ("3 matches").
11509
+ * @default 'matches'
11510
+ */
11511
+ "matchesLabel"?: string;
11512
+ /**
11513
+ * Fires when "Add companies" is pressed.
11514
+ */
11515
+ "onBsAddCompanies"?: (event: BsCompanySwitcherCustomEvent<void>) => void;
11516
+ /**
11517
+ * Fires when a company other than the current one is chosen (click or Enter), with the company.
11518
+ */
11519
+ "onBsCompanySwitch"?: (event: BsCompanySwitcherCustomEvent<BsCompany>) => void;
11520
+ /**
11521
+ * Fires when "Manage Companies" is pressed.
11522
+ */
11523
+ "onBsManageCompanies"?: (event: BsCompanySwitcherCustomEvent<void>) => void;
11524
+ /**
11525
+ * Fires when the panel opens or closes through user interaction, with the new state.
11526
+ */
11527
+ "onBsOpenChange"?: (event: BsCompanySwitcherCustomEvent<boolean>) => void;
11528
+ /**
11529
+ * Whether the panel is open.
11530
+ * @default false
11531
+ */
11532
+ "open"?: boolean;
11533
+ /**
11534
+ * Prefix of the org. number, e.g. "Org. no.".
11535
+ * @default 'Org. no.'
11536
+ */
11537
+ "orgNumberLabel"?: string;
11538
+ /**
11539
+ * Text of the trigger when there is no current company.
11540
+ * @default 'Select a company'
11541
+ */
11542
+ "placeholderLabel"?: string;
11543
+ /**
11544
+ * `id`s of recently used companies, most recent first. The current company is not repeated in the Recent group.
11545
+ * @default []
11546
+ */
11547
+ "recentIds"?: string[];
11548
+ /**
11549
+ * Header of the recent companies group.
11550
+ * @default 'Recent'
11551
+ */
11552
+ "recentLabel"?: string;
11553
+ /**
11554
+ * Placeholder (and accessible name) of the search field.
11555
+ * @default 'Find a company or org. number'
11556
+ */
11557
+ "searchPlaceholder"?: string;
11558
+ /**
11559
+ * `id` of the company being switched to. Shows the switching state: a spinner in the trigger and on that row.
11560
+ */
11561
+ "switchingId"?: string;
11562
+ /**
11563
+ * Trigger subtitle while switching.
11564
+ * @default 'Switching…'
11565
+ */
11566
+ "switchingLabel"?: string;
11567
+ }
9897
11568
  /**
9898
11569
  * A chat composer input for Genie AI-style conversational interfaces: a text field
9899
11570
  * plus an attach button, a mic/voice-recording toggle, and a single primary action button whose
@@ -10995,6 +12666,10 @@ declare namespace LocalJSX {
10995
12666
  * The name of the element, used when submitting an HTML form.
10996
12667
  */
10997
12668
  "name"?: string;
12669
+ /**
12670
+ * 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.
12671
+ */
12672
+ "pressed"?: boolean;
10998
12673
  /**
10999
12674
  * 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.
11000
12675
  * @default 'md'
@@ -11583,6 +13258,105 @@ declare namespace LocalJSX {
11583
13258
  */
11584
13259
  "variant"?: BsLogoVariant;
11585
13260
  }
13261
+ /**
13262
+ * The dropdown panel under a navigation header tab: columns of links grouped under headings, an optional
13263
+ * featured area on the right, and a footer with recently used items and a shortcut hint. Matches the Figma
13264
+ * "Mega menu" (types Columns, Column with featured, Compact and Compact with featured).
13265
+ * This is the panel only. Put it in `bs-navigation-header`'s `menu` slot, which anchors it under the bar at the
13266
+ * header's full width, and show it from the tab that opens it; the panel does not open or close itself. Escape
13267
+ * inside the panel fires `bsClose` so you can close it.
13268
+ * There are two ways to show and hide it. Toggle the host's `hidden` attribute and it appears and disappears at once
13269
+ * (the original contract, unchanged). Or set `open` and it fades and drops in from under the bar, then fades back out
13270
+ * and is removed once the exit finishes. Leave `open` unset to keep using `hidden` only. `hidden` always wins: with it
13271
+ * set the panel is not shown whatever `open` says.
13272
+ * Built from `bs-card` (panel surface), `bs-menu-block` or `bs-compact-menu-block` (the links), `bs-divider` and
13273
+ * `bs-key-caps` (the shortcut). The column layout, headings, featured text and footer row are plain layout
13274
+ * markup: no component covers them.
13275
+ * ## Responsive
13276
+ * The panel reacts to its own width (a container query), not the viewport's. Below 600px it becomes one column (heading
13277
+ * above its links, featured area below), titles and descriptions wrap, links are at least 44px tall, the footer stacks
13278
+ * and the default shortcut hint is hidden (`display: none`; a keyboard hint means nothing on a touch screen). A custom
13279
+ * `footer-end` slot is not hidden.
13280
+ * ## When to use
13281
+ * - A header tab that leads to many destinations that need grouping (Sell, Finance, Inventory).
13282
+ * ## When not to use
13283
+ * - A short list of commands -- use `bs-menu` in a `bs-popover`.
13284
+ * - Switching app or company -- use `bs-app-switcher` or `bs-company-switcher`.
13285
+ * `columns`, `featured` and `recent` are arrays or objects and must be set as JS properties. Each item's `icon` is
13286
+ * the URL of a monochrome SVG. You own the data: listen to `bsMenuSelect` (cancelable: `preventDefault()` cancels the
13287
+ * originating click).
13288
+ * @prop --bs-mega-menu-width - Panel width. Defaults to `1100px` (Figma); capped at the viewport.
13289
+ * @prop --bs-mega-menu-radius - Panel corner radius. Aliased to `--bs-border-radius-150`.
13290
+ * @prop --bs-mega-menu-bg - Panel background. Aliased to `--bs-surface-base`.
13291
+ * @prop --bs-mega-menu-border-color - Panel border. Aliased to `--bs-border-default`.
13292
+ * @prop --bs-mega-menu-shadow - Panel shadow (elevation level 3). Aliased to the `--bs-shadow-*` position and blur tokens and `--bs-elevation-high`.
13293
+ * @prop --bs-mega-menu-padding - Padding around the columns. Aliased to `--bs-spacing-300` and `--bs-spacing-350`.
13294
+ * @prop --bs-mega-menu-gap - Gap between columns. Aliased to `--bs-spacing-300`.
13295
+ * @prop --bs-mega-menu-heading-color - Column headings. Aliased to `--bs-text-muted`.
13296
+ * @prop --bs-mega-menu-text-color - Featured title. Aliased to `--bs-text-default`.
13297
+ * @prop --bs-mega-menu-muted-color - Featured description and footer text. Aliased to `--bs-text-secondary`.
13298
+ * @prop --bs-mega-menu-duration - Length of the open/close motion (`open` only). Aliased to `--bs-duration-default`.
13299
+ * @prop --bs-mega-menu-easing - Curve of the open/close motion. Aliased to `--bs-easing-standard`.
13300
+ * @prop --bs-mega-menu-distance - How far the panel drops while it fades. Aliased to `--bs-spacing-100`.
13301
+ * Under `prefers-reduced-motion: reduce` (or a duration of `0ms`) setting `open` shows and hides the panel instantly.
13302
+ */
13303
+ interface BsMegaMenu {
13304
+ /**
13305
+ * The groups of links. JS property only (an array cannot be an attribute).
13306
+ * @default []
13307
+ */
13308
+ "columns"?: BsMegaMenuColumn[];
13309
+ /**
13310
+ * The featured area on the right. JS property only. The `featured` slot overrides it.
13311
+ */
13312
+ "featured"?: BsMegaMenuFeatured;
13313
+ /**
13314
+ * Accessible name of the panel.
13315
+ * @default 'Menu'
13316
+ */
13317
+ "label"?: string;
13318
+ /**
13319
+ * Fires when Escape is pressed inside the panel, so you can close it.
13320
+ */
13321
+ "onBsClose"?: (event: BsMegaMenuCustomEvent<void>) => void;
13322
+ /**
13323
+ * Fires when a link is chosen (click or Enter), with the item. Cancelable: `preventDefault()` cancels the originating click.
13324
+ */
13325
+ "onBsMenuSelect"?: (event: BsMegaMenuCustomEvent<BsMegaMenuItem>) => void;
13326
+ /**
13327
+ * Shows the panel with an enter/exit motion. Unset (the default) leaves visibility to the host's `hidden` attribute, which shows and hides instantly. `true` shows the panel; `false` fades it out and then removes it. The panel stays in the DOM and is `inert` while it fades out.
13328
+ */
13329
+ "open"?: boolean;
13330
+ /**
13331
+ * Recently used destinations, already translated, shown in the footer. JS property only.
13332
+ * @default []
13333
+ */
13334
+ "recent"?: string[];
13335
+ /**
13336
+ * Text before the recently used items.
13337
+ * @default 'Recently used:'
13338
+ */
13339
+ "recentLabel"?: string;
13340
+ /**
13341
+ * The shortcut keys, joined by "+".
13342
+ * @default 'Ctrl+K'
13343
+ */
13344
+ "shortcutKeys"?: string;
13345
+ /**
13346
+ * Accessible name of the shortcut keys. Defaults to the keys joined with " plus ".
13347
+ */
13348
+ "shortcutKeysLabel"?: string;
13349
+ /**
13350
+ * Text before the shortcut keys.
13351
+ * @default 'Can’t find it? Press'
13352
+ */
13353
+ "shortcutLabel"?: string;
13354
+ /**
13355
+ * `columns` shows menu blocks with icon and description; `compact` plain text links.
13356
+ * @default 'columns'
13357
+ */
13358
+ "type"?: BsMegaMenuType;
13359
+ }
11586
13360
  /**
11587
13361
  * A generic dropdown/popup menu container: a rounded, elevated list of items (typically
11588
13362
  * `bs-menu-item` elements).
@@ -11600,6 +13374,49 @@ declare namespace LocalJSX {
11600
13374
  */
11601
13375
  interface BsMenu {
11602
13376
  }
13377
+ /**
13378
+ * A rich entry in a mega menu: an icon tile, a title with an optional "New" chip, and a one-line description.
13379
+ * Matches the Figma "Menu block" component (Default, Hover, Pressed and Focused).
13380
+ * The block is always a native button and only emits events; it never navigates. Hover, pressed and focus come from the
13381
+ * native element. Its accessible name is its text: the title, the badge and the description, read once.
13382
+ * Built from `bs-icon-tile` (the icon) and `bs-chip-informative` (the badge). The icon is either a URL of a
13383
+ * monochrome SVG in `icon` (painted with the theme's icon colour through a CSS mask, so it follows light and
13384
+ * dark mode), or any element in the default slot (an `<svg>` drawn with `currentColor`).
13385
+ * ## When to use
13386
+ * - A destination in a mega menu that needs an icon and a sentence of explanation, usually inside `bs-mega-menu`.
13387
+ * ## When not to use
13388
+ * - A plain text destination -- use `bs-compact-menu-block`.
13389
+ * - A command in a dropdown list -- use `bs-menu-item`.
13390
+ * @prop --bs-menu-block-padding - Padding inside the block. Aliased to `--bs-spacing-150`.
13391
+ * @prop --bs-menu-block-gap - Gap between icon and text. Aliased to `--bs-spacing-150`.
13392
+ * @prop --bs-menu-block-radius - Corner radius. Aliased to `--bs-border-radius-100`.
13393
+ * @prop --bs-menu-block-bg - Resting background. `transparent`.
13394
+ * @prop --bs-menu-block-bg-hover - Aliased to `--bs-surface-hover`.
13395
+ * @prop --bs-menu-block-bg-pressed - Aliased to `--bs-surface-pressed`.
13396
+ * @prop --bs-menu-block-icon-bg - Icon square background. Aliased to `--bs-color-neutral-container`; `--bs-surface-base` while hovered or pressed.
13397
+ * @prop --bs-menu-block-color - Title colour. Aliased to `--bs-text-default`.
13398
+ * @prop --bs-menu-block-color-muted - Description colour. Aliased to `--bs-text-secondary`.
13399
+ * @prop --bs-menu-block-focus-ring - Focus ring colour. Aliased to `--bs-border-info`.
13400
+ * @prop --bs-menu-block-white-space - `white-space` of the title and description. `nowrap` (single line, ellipsis); set `normal` to let them wrap.
13401
+ */
13402
+ interface BsMenuBlock {
13403
+ /**
13404
+ * Short text for a chip beside the title, e.g. "New".
13405
+ */
13406
+ "badge"?: string;
13407
+ /**
13408
+ * One line under the title; part of the accessible name.
13409
+ */
13410
+ "description"?: string;
13411
+ /**
13412
+ * URL of a monochrome SVG painted with the icon colour. The default slot overrides it.
13413
+ */
13414
+ "icon"?: string;
13415
+ /**
13416
+ * The title, and the start of the accessible name.
13417
+ */
13418
+ "name": string;
13419
+ }
11603
13420
  /**
11604
13421
  * A single selectable row inside a `bs-menu`: an optional icon plus a text label, rendered as a
11605
13422
  * real `<button>` for correct keyboard/click semantics.
@@ -12051,6 +13868,99 @@ declare namespace LocalJSX {
12051
13868
  */
12052
13869
  "type"?: BsOnboardingChecklistType;
12053
13870
  }
13871
+ /**
13872
+ * The header at the top of a page's content area: breadcrumb trail, the page title (a real heading) with an
13873
+ * optional back button, status and favourite toggle, a meta line, page-level actions on the right and an
13874
+ * optional row of tabs. Matches the Figma "Page header" (types List page, Record, Record with tabs and Sticky
13875
+ * compact).
13876
+ * Built from `bs-breadcrumbs`/`bs-breadcrumb` (slotted by you), `bs-icon-button` (the built-in back and favourite
13877
+ * buttons), `bs-chip-informative` (the status you slot), `bs-button` and `bs-icon-button` (the actions you slot),
13878
+ * `bs-tabs`/`bs-tab` (the tab row you slot) and `bs-divider` (under the tabs). The title block, meta line and
13879
+ * actions area are plain layout markup, because no component covers them. The back arrow and the star are
13880
+ * inline SVG (Phosphor "arrow-left", "star" and "star-fill") until the library has an icon component.
13881
+ * ## Compact (sticky)
13882
+ * `compact` is the condensed state a record header takes once the page scrolls: one row (back, title, status,
13883
+ * meta inline, actions), a level 2 shadow, no breadcrumb and no tabs, and `position: sticky`. Set it yourself
13884
+ * from a scroll observer. Because the header covers the top of the scroll area, give the scroll container
13885
+ * `scroll-padding-top` equal to its height (80px by default) so focused or anchored content is not hidden under it.
13886
+ * ## Responsive
13887
+ * The header reacts to its own width (a container query), not the viewport's. Below 640px the actions wrap
13888
+ * below the title block, slotted buttons grow to 44px tall, the title and meta wrap, and the tab row scrolls
13889
+ * sideways inside itself. The page never gets wider.
13890
+ * ## When to use
13891
+ * - The top of a list page or a single record (an invoice, a customer) inside the app shell's content area.
13892
+ * ## When not to use
13893
+ * - The app-wide bar with logo, search and user: use `bs-navigation-header`.
13894
+ * - The heading of a card, dialog or panel: use that component's own `heading`.
13895
+ * ## Accessibility notes
13896
+ * The root is a plain `div`, not a `<header>`: a `<header>` that is not inside `<main>`/`<article>`/`<section>`
13897
+ * is a second banner landmark. The title is a real heading (`<h1>` by default, `headingLevel` 1 to 6); the
13898
+ * status is next to it, not inside it. If you want a landmark, wrap `bs-page-header` yourself.
13899
+ * @prop --bs-page-header-bg - Background. Aliased to `--bs-surface-base`.
13900
+ * @prop --bs-page-header-padding-x - Left and right padding. Aliased to `--bs-spacing-200`.
13901
+ * @prop --bs-page-header-padding-y - Top and bottom padding. Aliased to `--bs-spacing-300`.
13902
+ * @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`.
13903
+ * @prop --bs-page-header-title-gap - Gap between the heading, status and favourite button. Aliased to `--bs-spacing-150`.
13904
+ * @prop --bs-page-header-actions-gap - Gap between the actions. Aliased to `--bs-spacing-100`.
13905
+ * @prop --bs-page-header-text-color - Heading. Aliased to `--bs-text-default`.
13906
+ * @prop --bs-page-header-meta-color - Meta line. Aliased to `--bs-text-secondary`.
13907
+ * @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`.
13908
+ * @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).
13909
+ * @prop --bs-page-header-z-index - Stacking order of the compact header. Aliased to `--bs-z-index-sticky`.
13910
+ */
13911
+ interface BsPageHeader {
13912
+ /**
13913
+ * Shows a back button before the title. It emits `bsBack`; you navigate.
13914
+ * @default false
13915
+ */
13916
+ "back"?: boolean;
13917
+ /**
13918
+ * Accessible name of the back button.
13919
+ * @default 'Back'
13920
+ */
13921
+ "backLabel"?: string;
13922
+ /**
13923
+ * The condensed, sticky state: one row, a level 2 shadow, no breadcrumb and no tabs. Reflected.
13924
+ * @default false
13925
+ */
13926
+ "compact"?: boolean;
13927
+ /**
13928
+ * Shows the favourite (star) toggle after the title.
13929
+ * @default false
13930
+ */
13931
+ "favoritable"?: boolean;
13932
+ /**
13933
+ * Whether the record is a favourite. Mutable: it follows the user's toggle unless `bsFavoriteChange` is cancelled.
13934
+ * @default false
13935
+ */
13936
+ "favorite"?: boolean;
13937
+ /**
13938
+ * Accessible name of the favourite toggle. It stays the same in both states; `aria-pressed` carries the state.
13939
+ * @default 'Favourite'
13940
+ */
13941
+ "favoriteLabel"?: string;
13942
+ /**
13943
+ * The page title, rendered as the heading.
13944
+ */
13945
+ "heading"?: string;
13946
+ /**
13947
+ * HTML heading level for the title, 1 to 6. Use 1 unless the page already has its own `h1`.
13948
+ * @default 1
13949
+ */
13950
+ "headingLevel"?: number;
13951
+ /**
13952
+ * The line under the title, plain text, e.g. "214 invoices · 38 open". The `meta` slot overrides it.
13953
+ */
13954
+ "meta"?: string;
13955
+ /**
13956
+ * Fires when the back button is clicked. Not cancelable: the component has no default action to cancel.
13957
+ */
13958
+ "onBsBack"?: (event: BsPageHeaderCustomEvent<void>) => void;
13959
+ /**
13960
+ * Fires when the user toggles the favourite button, with the new value. Cancelable: `preventDefault()` keeps the old value.
13961
+ */
13962
+ "onBsFavoriteChange"?: (event: BsPageHeaderCustomEvent<{ favorite: boolean }>) => void;
13963
+ }
12054
13964
  /**
12055
13965
  * A numbered page control -- previous/next chevrons, page-number buttons, and `...` overflow for
12056
13966
  * large page counts. Matches the Figma "Pagination" component's "Default" type (the classic
@@ -12122,6 +14032,11 @@ declare namespace LocalJSX {
12122
14032
  * @prop --bs-popover-offset - Gap between trigger and popup. Aliased to `--bs-spacing-100`.
12123
14033
  * @prop --bs-popover-min-width - Minimum popup width. Aliased to `--bs-scale-1600`.
12124
14034
  * @prop --bs-popover-z-index - Popup stacking order. Aliased to `--bs-z-index-popover`.
14035
+ * @prop --bs-popover-duration - Length of the open/close motion. Aliased to `--bs-duration-fast`.
14036
+ * @prop --bs-popover-easing - Curve of the open/close motion. Aliased to `--bs-easing-standard`.
14037
+ * @prop --bs-popover-distance - How far the popup nudges while it fades. Aliased to `--bs-spacing-50`.
14038
+ * The popup fades and nudges toward its trigger when it opens and closes. Length, curve and travel are
14039
+ * `--bs-popover-duration`, `--bs-popover-easing` and `--bs-popover-distance`; under `prefers-reduced-motion: reduce` it is instant.
12125
14040
  */
12126
14041
  interface BsPopover {
12127
14042
  /**
@@ -12139,6 +14054,49 @@ declare namespace LocalJSX {
12139
14054
  */
12140
14055
  "placement"?: BsPopoverPlacement;
12141
14056
  }
14057
+ /**
14058
+ * Shows and hides slotted content with a short enter/exit transition.
14059
+ * The motion uses the shared duration and easing tokens (`--bs-duration-*`, `--bs-easing-*`).
14060
+ * Under `prefers-reduced-motion: reduce` those durations are already `0ms`, and this component
14061
+ * forces `--bs-presence-duration` to `--bs-duration-instant` as well, so the content snaps
14062
+ * instead of moving.
14063
+ * ## When to use
14064
+ * - Revealing a block that does not have its own enter/exit (a card, a form section, a panel).
14065
+ * - Comparing duration and easing tokens while designing a screen.
14066
+ * ## When not to use
14067
+ * - Loading placeholders (`bs-skeleton`), spinners (`bs-spinner`), or progress.
14068
+ * - Dialog, snackbar, toast, and command palette — those components own their motion.
14069
+ * @prop --bs-presence-duration - Transition length. Set from the `duration` prop to a `--bs-duration-*` token.
14070
+ * @prop --bs-presence-easing - Transition curve. Set from the `easing` prop to a `--bs-easing-*` token.
14071
+ * @prop --bs-presence-distance - Travel distance for `slide-up` and `slide-down`. Aliased to `--bs-spacing-400`.
14072
+ * @prop --bs-presence-scale - Closed scale for `scale`. No unitless scale token exists, so the default is `0.96`.
14073
+ */
14074
+ interface BsPresence {
14075
+ /**
14076
+ * When true, the slotted content is shown. Flipping this plays the exit or enter transition.
14077
+ * @default false
14078
+ */
14079
+ "active"?: boolean;
14080
+ /**
14081
+ * Length of the transition, mapped to a `--bs-duration-*` token.
14082
+ * @default 'default'
14083
+ */
14084
+ "duration"?: BsPresenceDuration;
14085
+ /**
14086
+ * Curve of the transition, mapped to a `--bs-easing-*` token.
14087
+ * @default 'standard'
14088
+ */
14089
+ "easing"?: BsPresenceEasing;
14090
+ /**
14091
+ * Fires once when the transition to the new `active` state finishes. Payload is that state.
14092
+ */
14093
+ "onBsTransitionEnd"?: (event: BsPresenceCustomEvent<boolean>) => void;
14094
+ /**
14095
+ * Which transition to play.
14096
+ * @default 'fade'
14097
+ */
14098
+ "preset"?: BsPresencePreset;
14099
+ }
12142
14100
  /**
12143
14101
  * One step of a product tour: a centred **welcome** or **success** card with an art tile, or a
12144
14102
  * **pointer** card -- a compact step with a close button, a "1 of 3" progress label and Back/Next
@@ -12502,6 +14460,42 @@ declare namespace LocalJSX {
12502
14460
  */
12503
14461
  "value"?: string;
12504
14462
  }
14463
+ /**
14464
+ * A touch-ripple effect: on pointer press, a circle grows from the press point and fades out.
14465
+ * It is a building block for pressable components (`bs-button`, `bs-icon-button`, ...), not something
14466
+ * to place on a page by itself. Put it inside a positioned, pressable parent; it fills that parent,
14467
+ * follows its corner radius, and listens for `pointerdown` on it. Pointer-events pass through, so the
14468
+ * parent still receives every click.
14469
+ * The motion uses the shared duration and easing tokens. Under `prefers-reduced-motion: reduce` those
14470
+ * durations are `0ms`, and the ripple does not play at all.
14471
+ * ## When to use
14472
+ * - Inside a pressable `bs-*` component, to give press feedback.
14473
+ * ## When not to use
14474
+ * - As a hover or focus indicator. Those are colour changes on the parent.
14475
+ * - On non-interactive surfaces.
14476
+ * Set the custom properties on the `bs-ripple` element itself. Inside another component that means `::part(ripple)`,
14477
+ * e.g. `bs-button::part(ripple) { --bs-ripple-color: white; }`.
14478
+ * @prop --bs-ripple-color - Ripple colour. `currentColor` by default, so it follows the parent's text colour and works on every variant.
14479
+ * @prop --bs-ripple-opacity - Starting opacity of the ripple. No opacity token fits, so the default is `0.24`.
14480
+ * @prop --bs-ripple-duration - Length of the ripple. Aliased to `--bs-duration-slower`.
14481
+ * @prop --bs-ripple-easing - Curve of the ripple. Aliased to `--bs-easing-decelerate`.
14482
+ */
14483
+ interface BsRipple {
14484
+ /**
14485
+ * Always start the ripple from the centre instead of the press point. Use it for round or icon-only controls.
14486
+ * @default false
14487
+ */
14488
+ "centered"?: boolean;
14489
+ /**
14490
+ * Turns the ripple off. A disabled parent (`<button disabled>`) also stops it.
14491
+ * @default false
14492
+ */
14493
+ "disabled"?: boolean;
14494
+ /**
14495
+ * CSS selector of the element to listen on, found with `closest()` from the ripple (so it stays inside the same shadow tree). By default the ripple listens on its parent. Use it when the pressable element is bigger than the ripple's own parent, e.g. a switch whose ripple sits on the knob but whose whole `<label>` is the press target.
14496
+ */
14497
+ "triggerSelector"?: string;
14498
+ }
12505
14499
  /**
12506
14500
  * One result or suggestion row of a search dropdown: a leading icon, a primary line, an optional
12507
14501
  * description line and trailing text. Static, not focusable -- focus stays in the search field and the
@@ -12755,6 +14749,8 @@ declare namespace LocalJSX {
12755
14749
  * @prop --bs-side-panel-overlay-bg - Backdrop color. Aliased to `--bs-surface-overlay`.
12756
14750
  * @prop --bs-side-panel-color - Text color. Aliased to `--bs-text-default`.
12757
14751
  * @prop --bs-side-panel-z-index - Stacking order. Aliased to `--bs-z-index-modal`.
14752
+ * @prop --bs-side-panel-duration - Length of the slide in/out. Aliased to `--bs-duration-slow`.
14753
+ * @prop --bs-side-panel-easing - Curve of the slide in/out. Aliased to `--bs-easing-standard`.
12758
14754
  */
12759
14755
  interface BsSidePanel {
12760
14756
  /**
@@ -13576,6 +15572,11 @@ declare namespace LocalJSX {
13576
15572
  * - Interactive content or long text (use `bs-popover`).
13577
15573
  * @prop --bs-tooltip-trigger-offset - Gap between trigger and tooltip. Aliased to `--bs-spacing-100`.
13578
15574
  * @prop --bs-tooltip-trigger-z-index - Stacking order. Aliased to `--bs-z-index-popover`.
15575
+ * @prop --bs-tooltip-trigger-duration - Length of the show/hide motion. Aliased to `--bs-duration-fast`.
15576
+ * @prop --bs-tooltip-trigger-easing - Curve of the show/hide motion. Aliased to `--bs-easing-standard`.
15577
+ * @prop --bs-tooltip-trigger-distance - How far the tooltip nudges while it fades. Aliased to `--bs-spacing-50`.
15578
+ * The tooltip fades in while drifting a few pixels away from the trigger into place, and fades back out toward it. Under
15579
+ * `prefers-reduced-motion: reduce` (or a duration of `0ms`) it appears and disappears instantly.
13579
15580
  */
13580
15581
  interface BsTooltipTrigger {
13581
15582
  /**
@@ -13917,9 +15918,49 @@ declare namespace LocalJSX {
13917
15918
  interface BsAiThinkingAttributes {
13918
15919
  "label": string;
13919
15920
  }
15921
+ interface BsAppRecentItemAttributes {
15922
+ "name": string;
15923
+ "description": string;
15924
+ "icon": string;
15925
+ "current": boolean;
15926
+ "disabled": boolean;
15927
+ }
13920
15928
  interface BsAppShellAttributes {
13921
15929
  "fullHeight": boolean;
13922
15930
  }
15931
+ interface BsAppSwitcherAttributes {
15932
+ "currentId": string;
15933
+ "query": string;
15934
+ "status": BsAppSwitcherStatus;
15935
+ "manageHref": string;
15936
+ "browseHref": string;
15937
+ "heading": string;
15938
+ "manageLabel": string;
15939
+ "searchPlaceholder": string;
15940
+ "yourAppsLabel": string;
15941
+ "recentLabel": string;
15942
+ "allAppsLabel": string;
15943
+ "resultsLabel": string;
15944
+ "resultLabel": string;
15945
+ "browseLabel": string;
15946
+ "noResultsHeading": string;
15947
+ "noResultsDescription": string;
15948
+ "clearLabel": string;
15949
+ "errorHeading": string;
15950
+ "errorDescription": string;
15951
+ "retryLabel": string;
15952
+ "emptyHeading": string;
15953
+ "emptyDescription": string;
15954
+ "requestAccessLabel": string;
15955
+ "loadingLabel": string;
15956
+ }
15957
+ interface BsAppTileAttributes {
15958
+ "name": string;
15959
+ "size": BsAppTileSize;
15960
+ "icon": string;
15961
+ "current": boolean;
15962
+ "disabled": boolean;
15963
+ }
13923
15964
  interface BsAttachmentAttributes {
13924
15965
  "uploadingLabel": string;
13925
15966
  "removeLabel": string;
@@ -14103,6 +16144,28 @@ declare namespace LocalJSX {
14103
16144
  "loadingLabel": string;
14104
16145
  "listLabel": string;
14105
16146
  }
16147
+ interface BsCompactMenuBlockAttributes {
16148
+ "name": string;
16149
+ }
16150
+ interface BsCompanySwitcherAttributes {
16151
+ "currentId": string;
16152
+ "switchingId": string;
16153
+ "open": boolean;
16154
+ "placeholderLabel": string;
16155
+ "searchPlaceholder": string;
16156
+ "listLabel": string;
16157
+ "currentLabel": string;
16158
+ "recentLabel": string;
16159
+ "allLabel": string;
16160
+ "matchesLabel": string;
16161
+ "matchLabel": string;
16162
+ "orgNumberLabel": string;
16163
+ "switchingLabel": string;
16164
+ "emptyHeading": string;
16165
+ "emptyDescription": string;
16166
+ "manageLabel": string;
16167
+ "addLabel": string;
16168
+ }
14106
16169
  interface BsComposerAttributes {
14107
16170
  "variant": BsComposerVariant;
14108
16171
  "placeholder": string;
@@ -14264,6 +16327,7 @@ declare namespace LocalJSX {
14264
16327
  "disabled": boolean;
14265
16328
  "type": 'button' | 'submit' | 'reset';
14266
16329
  "ariaLabel": string | null;
16330
+ "pressed": boolean;
14267
16331
  }
14268
16332
  interface BsIconTileAttributes {
14269
16333
  "size": BsIconTileSize;
@@ -14358,6 +16422,21 @@ declare namespace LocalJSX {
14358
16422
  "src": string | null;
14359
16423
  "alt": string | null;
14360
16424
  }
16425
+ interface BsMegaMenuAttributes {
16426
+ "type": BsMegaMenuType;
16427
+ "open": boolean;
16428
+ "label": string;
16429
+ "recentLabel": string;
16430
+ "shortcutLabel": string;
16431
+ "shortcutKeys": string;
16432
+ "shortcutKeysLabel": string;
16433
+ }
16434
+ interface BsMenuBlockAttributes {
16435
+ "name": string;
16436
+ "description": string;
16437
+ "icon": string;
16438
+ "badge": string;
16439
+ }
14361
16440
  interface BsMenuItemAttributes {
14362
16441
  "disabled": boolean;
14363
16442
  }
@@ -14415,6 +16494,17 @@ declare namespace LocalJSX {
14415
16494
  "statusDoneLabel": string;
14416
16495
  "statusTodoLabel": string;
14417
16496
  }
16497
+ interface BsPageHeaderAttributes {
16498
+ "heading": string;
16499
+ "headingLevel": number;
16500
+ "meta": string;
16501
+ "compact": boolean;
16502
+ "back": boolean;
16503
+ "backLabel": string;
16504
+ "favoritable": boolean;
16505
+ "favorite": boolean;
16506
+ "favoriteLabel": string;
16507
+ }
14418
16508
  interface BsPaginationAttributes {
14419
16509
  "totalPages": number;
14420
16510
  "currentPage": number;
@@ -14428,6 +16518,12 @@ declare namespace LocalJSX {
14428
16518
  "open": boolean;
14429
16519
  "placement": BsPopoverPlacement;
14430
16520
  }
16521
+ interface BsPresenceAttributes {
16522
+ "active": boolean;
16523
+ "preset": BsPresencePreset;
16524
+ "duration": BsPresenceDuration;
16525
+ "easing": BsPresenceEasing;
16526
+ }
14431
16527
  interface BsProductTourAttributes {
14432
16528
  "type": BsProductTourType;
14433
16529
  "direction": BsProductTourDirection;
@@ -14487,6 +16583,11 @@ declare namespace LocalJSX {
14487
16583
  "checked": boolean;
14488
16584
  "disabled": boolean;
14489
16585
  }
16586
+ interface BsRippleAttributes {
16587
+ "centered": boolean;
16588
+ "disabled": boolean;
16589
+ "triggerSelector": string;
16590
+ }
14490
16591
  interface BsSearchItemAttributes {
14491
16592
  "value": string;
14492
16593
  "active": boolean;
@@ -14705,7 +16806,10 @@ declare namespace LocalJSX {
14705
16806
  "bs-ai-disclaimer": BsAiDisclaimer;
14706
16807
  "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] };
14707
16808
  "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] };
16809
+ "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"]>;
14708
16810
  "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] };
16811
+ "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] };
16812
+ "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"]>;
14709
16813
  "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] };
14710
16814
  "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] };
14711
16815
  "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] };
@@ -14729,6 +16833,8 @@ declare namespace LocalJSX {
14729
16833
  "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] };
14730
16834
  "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] };
14731
16835
  "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] };
16836
+ "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"]>;
16837
+ "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] };
14732
16838
  "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] };
14733
16839
  "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] };
14734
16840
  "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] };
@@ -14753,7 +16859,9 @@ declare namespace LocalJSX {
14753
16859
  "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] };
14754
16860
  "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] };
14755
16861
  "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] };
16862
+ "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] };
14756
16863
  "bs-menu": BsMenu;
16864
+ "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"]>;
14757
16865
  "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] };
14758
16866
  "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] };
14759
16867
  "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] };
@@ -14761,13 +16869,16 @@ declare namespace LocalJSX {
14761
16869
  "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] };
14762
16870
  "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] };
14763
16871
  "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] };
16872
+ "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] };
14764
16873
  "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] };
14765
16874
  "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] };
16875
+ "bs-presence": Omit<BsPresence, keyof BsPresenceAttributes> & { [K in keyof BsPresence & keyof BsPresenceAttributes]?: BsPresence[K] } & { [K in keyof BsPresence & keyof BsPresenceAttributes as `attr:${K}`]?: BsPresenceAttributes[K] } & { [K in keyof BsPresence & keyof BsPresenceAttributes as `prop:${K}`]?: BsPresence[K] };
14766
16876
  "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] };
14767
16877
  "bs-progress": Omit<BsProgress, keyof BsProgressAttributes> & { [K in keyof BsProgress & keyof BsProgressAttributes]?: BsProgress[K] } & { [K in keyof BsProgress & keyof BsProgressAttributes as `attr:${K}`]?: BsProgressAttributes[K] } & { [K in keyof BsProgress & keyof BsProgressAttributes as `prop:${K}`]?: BsProgress[K] };
14768
16878
  "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] };
14769
16879
  "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] };
14770
16880
  "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] };
16881
+ "bs-ripple": Omit<BsRipple, keyof BsRippleAttributes> & { [K in keyof BsRipple & keyof BsRippleAttributes]?: BsRipple[K] } & { [K in keyof BsRipple & keyof BsRippleAttributes as `attr:${K}`]?: BsRippleAttributes[K] } & { [K in keyof BsRipple & keyof BsRippleAttributes as `prop:${K}`]?: BsRipple[K] };
14771
16882
  "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] };
14772
16883
  "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] };
14773
16884
  "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] };
@@ -14805,6 +16916,10 @@ declare module "@stencil/core" {
14805
16916
  * (optionally managing which one(s) are expanded, e.g. "only one open at a time") themselves --
14806
16917
  * there's no accordion-group wrapper here, matching Figma's component which only specs the single
14807
16918
  * section, not a group behavior.
16919
+ * @prop --bs-accordion-duration - Length of the expand/collapse motion. Aliased to `--bs-duration-default`.
16920
+ * @prop --bs-accordion-easing - Curve of the expand/collapse motion. Aliased to `--bs-easing-standard`.
16921
+ * Expanding and collapsing animate the body's height and rotate the caret. Under
16922
+ * `prefers-reduced-motion: reduce` the duration token is `0ms`, so the body snaps.
14808
16923
  */
14809
16924
  "bs-accordion": LocalJSX.IntrinsicElements["bs-accordion"] & JSXBase.HTMLAttributes<HTMLBsAccordionElement>;
14810
16925
  /**
@@ -14888,6 +17003,34 @@ declare module "@stencil/core" {
14888
17003
  * `--bs-duration-slower` is 500ms), so this is aliased directly to the literal value.
14889
17004
  */
14890
17005
  "bs-ai-thinking": LocalJSX.IntrinsicElements["bs-ai-thinking"] & JSXBase.HTMLAttributes<HTMLBsAiThinkingElement>;
17006
+ /**
17007
+ * A full-width row for one app: a small icon tile, the app name and a description line (for example
17008
+ * "Opened 10 min ago · Nordlys Handel AS"). Matches the Figma "Recent item" component (Default, Current,
17009
+ * Hover, Pressed and Focus).
17010
+ * The row is always a native button and only emits events; it never navigates. `current` marks the app you are in
17011
+ * (`aria-current="true"`); `disabled` dims it, sets `aria-disabled` and removes it from the tab order.
17012
+ * Built from `bs-icon-tile`. The icon is either a URL of a monochrome SVG in `icon` (painted with the theme's
17013
+ * icon colour through a CSS mask) or any element in the default slot.
17014
+ * ## When to use
17015
+ * - A recently opened app, or a search result with a description, inside `bs-app-switcher`.
17016
+ * ## When not to use
17017
+ * - An app in a launcher grid -- use `bs-app-tile`.
17018
+ * - A generic list row -- use `bs-list-item`.
17019
+ * @prop --bs-app-recent-item-padding-x - Aliased to `--bs-spacing-100`.
17020
+ * @prop --bs-app-recent-item-padding-y - Aliased to `--bs-spacing-100`.
17021
+ * @prop --bs-app-recent-item-gap - Gap between icon and text. Aliased to `--bs-spacing-150`.
17022
+ * @prop --bs-app-recent-item-radius - Aliased to `--bs-border-radius-100`.
17023
+ * @prop --bs-app-recent-item-bg - Resting background. `transparent`.
17024
+ * @prop --bs-app-recent-item-bg-hover - Aliased to `--bs-surface-hover`.
17025
+ * @prop --bs-app-recent-item-bg-pressed - Aliased to `--bs-surface-pressed`.
17026
+ * @prop --bs-app-recent-item-bg-current - Aliased to `--bs-surface-selected`.
17027
+ * @prop --bs-app-recent-item-icon-bg - Icon square background. Aliased to `--bs-color-neutral-container`; `--bs-surface-base` while hovered, pressed or current.
17028
+ * @prop --bs-app-recent-item-color - Name colour. Aliased to `--bs-text-default`.
17029
+ * @prop --bs-app-recent-item-color-muted - Description colour. Aliased to `--bs-text-secondary`.
17030
+ * @prop --bs-app-recent-item-color-disabled - Name, description and icon colour when disabled. Aliased to `--bs-text-on-disabled`.
17031
+ * @prop --bs-app-recent-item-focus-ring - Focus ring colour. Aliased to `--bs-border-neutral-focus`.
17032
+ */
17033
+ "bs-app-recent-item": LocalJSX.IntrinsicElements["bs-app-recent-item"] & JSXBase.HTMLAttributes<HTMLBsAppRecentItemElement>;
14891
17034
  /**
14892
17035
  * The page frame: a header across the top, and below it a navigation | main | aside row, laid out
14893
17036
  * with CSS grid. The main column scrolls independently of the header and the side columns.
@@ -14910,6 +17053,65 @@ declare module "@stencil/core" {
14910
17053
  * @prop --bs-app-shell-aside-width - Width of the aside column. Defaults to `auto` (zero when empty).
14911
17054
  */
14912
17055
  "bs-app-shell": LocalJSX.IntrinsicElements["bs-app-shell"] & JSXBase.HTMLAttributes<HTMLBsAppShellElement>;
17056
+ /**
17057
+ * The panel of an app launcher ("EG apps"): a header with a "Manage" action, a search field, your apps as a
17058
+ * grid (or Recent plus All apps), search results, and a footer link to browse all products. It also has
17059
+ * no-results, loading, error and empty states. Matches the Figma "App switcher" (states Default, With recent,
17060
+ * Searching, No results, Loading, Error and Empty).
17061
+ * This is the panel only. To open it from a button, wrap it in `bs-popover`.
17062
+ * Built from `bs-card` (panel surface), `bs-input` (search), `bs-app-tile` and `bs-app-recent-item` (apps),
17063
+ * `bs-empty-state` (no results, error, empty), `bs-skeleton` (loading), `bs-button` (Clear search, Try
17064
+ * again, Request access) and `bs-divider`. "Manage" and "Browse all" are native links (or buttons when
17065
+ * there is no URL): `bs-button` has no link mode and the library has no link component.
17066
+ * ## When to use
17067
+ * - Letting a user jump between the products they have access to, from an app header.
17068
+ * ## When not to use
17069
+ * - Navigation inside one app -- use `bs-menu` or the app shell navigation.
17070
+ * - Switching company -- use `bs-company-switcher`.
17071
+ * `apps` and `recent` are arrays and must be set as JS properties. Each app's `icon` is the URL of a
17072
+ * monochrome SVG. You own the data: listen to `bsAppSelect` (cancelable: `preventDefault()` cancels the
17073
+ * originating click), and drive `status` and `query` yourself. An empty `apps` list while `status` is
17074
+ * `ready` shows the empty state.
17075
+ * @prop --bs-app-switcher-width - Panel width. Defaults to `360px` (Figma); capped at the viewport.
17076
+ * @prop --bs-app-switcher-radius - Panel corner radius. Aliased to `--bs-border-radius-150`.
17077
+ * @prop --bs-app-switcher-bg - Panel background. Aliased to `--bs-surface-base`.
17078
+ * @prop --bs-app-switcher-border-color - Panel border. Aliased to `--bs-border-default`.
17079
+ * @prop --bs-app-switcher-shadow - Panel shadow (elevation level 4). Aliased to the `--bs-shadow-*` position and blur tokens and `--bs-elevation-higher`.
17080
+ * @prop --bs-app-switcher-padding - Side padding of the content. Aliased to `--bs-spacing-150`.
17081
+ * @prop --bs-app-switcher-text-color - Heading and links in the header. Aliased to `--bs-text-default`.
17082
+ * @prop --bs-app-switcher-header-color - Group headers. Aliased to `--bs-text-secondary`.
17083
+ * @prop --bs-app-switcher-link-color - Browse link. Aliased to `--bs-text-action`.
17084
+ * @prop --bs-app-switcher-focus-ring - Link focus ring. Aliased to `--bs-border-neutral-focus`.
17085
+ */
17086
+ "bs-app-switcher": LocalJSX.IntrinsicElements["bs-app-switcher"] & JSXBase.HTMLAttributes<HTMLBsAppSwitcherElement>;
17087
+ /**
17088
+ * One app in an app launcher: an icon tile above a short label. Matches the Figma "App tile" component
17089
+ * (Size Grid and Compact, each Default, Hover, Pressed, Focus, Current and Disabled).
17090
+ * The tile is always a native button and only emits events; it never navigates. Hover, pressed and focus come from the
17091
+ * native element; `current` marks the app you are in (`aria-current="true"`); `disabled` dims it, sets
17092
+ * `aria-disabled` and removes it from the tab order.
17093
+ * Built from `bs-icon-tile`. The icon is either a URL of a monochrome SVG in `icon` (painted with the
17094
+ * theme's icon colour through a CSS mask, so it follows light and dark mode), or any element in the default
17095
+ * slot (an `<svg>` drawn with `currentColor`).
17096
+ * ## When to use
17097
+ * - An app in a launcher grid, usually inside `bs-app-switcher`.
17098
+ * ## When not to use
17099
+ * - A row with a description or "recently opened" line -- use `bs-app-recent-item`.
17100
+ * - A command in a menu -- use `bs-menu-item`.
17101
+ * @prop --bs-app-tile-icon-size - Size of the icon square. `44px` in `grid` (Figma) and `--bs-sizing-400` in `compact`.
17102
+ * @prop --bs-app-tile-padding - Padding inside the tile. Aliased to `--bs-spacing-150` (`grid`) or `--bs-spacing-100` (`compact`).
17103
+ * @prop --bs-app-tile-gap - Gap between icon and label. Aliased to `--bs-spacing-150` (`grid`) or `--bs-spacing-50` (`compact`).
17104
+ * @prop --bs-app-tile-radius - Corner radius. Aliased to `--bs-border-radius-100`.
17105
+ * @prop --bs-app-tile-bg - Resting background. `transparent`.
17106
+ * @prop --bs-app-tile-bg-hover - Aliased to `--bs-surface-hover`.
17107
+ * @prop --bs-app-tile-bg-pressed - Aliased to `--bs-surface-pressed`.
17108
+ * @prop --bs-app-tile-bg-current - Aliased to `--bs-surface-selected`.
17109
+ * @prop --bs-app-tile-icon-bg - Icon square background. Aliased to `--bs-color-neutral-container`; `--bs-surface-base` while hovered, pressed or current.
17110
+ * @prop --bs-app-tile-color - Label colour. Aliased to `--bs-text-default`.
17111
+ * @prop --bs-app-tile-color-disabled - Label and icon colour when disabled. Aliased to `--bs-text-on-disabled`.
17112
+ * @prop --bs-app-tile-focus-ring - Focus ring colour. Aliased to `--bs-border-neutral-focus`.
17113
+ */
17114
+ "bs-app-tile": LocalJSX.IntrinsicElements["bs-app-tile"] & JSXBase.HTMLAttributes<HTMLBsAppTileElement>;
14913
17115
  /**
14914
17116
  * A single file attachment preview for `bs-composer` -- an image thumbnail, or a filename card
14915
17117
  * with a colored file-type badge (PDF/Document), with an optional upload-in-progress spinner and
@@ -15111,6 +17313,11 @@ declare module "@stencil/core" {
15111
17313
  * manages two things on those slide elements: the `hidden` attribute (off-page slides are hidden,
15112
17314
  * so they leave the tab order and the accessibility tree) and, only when not already set,
15113
17315
  * `role="group"`, `aria-roledescription="slide"` and an `aria-label` of "n of N".
17316
+ * Changing page plays a short motion: the visible slides fade and slide out in the direction of travel,
17317
+ * then the next page's slides fade and slide in (reversed for previous, and mirrored in RTL). The dots
17318
+ * also grow and fade between pages. Motion length and distance follow `--bs-carousel-duration`,
17319
+ * `--bs-carousel-easing` and `--bs-carousel-slide-distance`. Under `prefers-reduced-motion: reduce`
17320
+ * the duration token is `0ms`, so pages switch instantly.
15114
17321
  * Composes `bs-pagination` (`tracker="numbers"`), `bs-icon-button` (previous/next for
15115
17322
  * `tracker="dots"`) and `bs-button` (Pause/Play) rather than re-implementing them.
15116
17323
  * ## When to use
@@ -15398,6 +17605,60 @@ declare module "@stencil/core" {
15398
17605
  * @prop --bs-command-palette-z-index - Aliased to `--bs-z-index-modal`.
15399
17606
  */
15400
17607
  "bs-command-palette": LocalJSX.IntrinsicElements["bs-command-palette"] & JSXBase.HTMLAttributes<HTMLBsCommandPaletteElement>;
17608
+ /**
17609
+ * A plain text entry in a mega menu: one line, no icon. Matches the Figma "Compact menu block" component
17610
+ * (Default, Hover, Pressed and Focused).
17611
+ * The block is always a native button and only emits events; it never navigates. Hover, pressed and focus come from the
17612
+ * native element.
17613
+ * ## When to use
17614
+ * - A dense list of destinations in a mega menu, usually inside `bs-mega-menu` with `type="compact"`.
17615
+ * ## When not to use
17616
+ * - A destination that needs an icon or a description -- use `bs-menu-block`.
17617
+ * - A command in a dropdown list -- use `bs-menu-item`.
17618
+ * @prop --bs-compact-menu-block-padding - Padding inside the block. Aliased to `--bs-spacing-100`.
17619
+ * @prop --bs-compact-menu-block-radius - Corner radius. Aliased to `--bs-border-radius-100`.
17620
+ * @prop --bs-compact-menu-block-bg - Resting background. `transparent`.
17621
+ * @prop --bs-compact-menu-block-bg-hover - Aliased to `--bs-surface-hover`.
17622
+ * @prop --bs-compact-menu-block-bg-pressed - Aliased to `--bs-surface-pressed`.
17623
+ * @prop --bs-compact-menu-block-color - Text colour. Aliased to `--bs-text-default`.
17624
+ * @prop --bs-compact-menu-block-focus-ring - Focus ring colour. Aliased to `--bs-border-info`.
17625
+ */
17626
+ "bs-compact-menu-block": LocalJSX.IntrinsicElements["bs-compact-menu-block"] & JSXBase.HTMLAttributes<HTMLBsCompactMenuBlockElement>;
17627
+ /**
17628
+ * A company (tenant) switcher: a trigger showing the current company, and a panel to find and switch to
17629
+ * another one. The panel has a search field, the current / recent / all groups, a filtered "matches" view,
17630
+ * a no-results state and a footer with "Manage Companies" and "Add companies" actions.
17631
+ * Built from `bs-popover` (open/close, Escape, outside click, flipping), `bs-card` (panel surface),
17632
+ * `bs-input` (search), `bs-list-item` (rows), `bs-avatar` (initials), `bs-spinner` (switching),
17633
+ * `bs-empty-state` (no results), `bs-divider` and `bs-button` (footer). The trigger is a native `<button>`:
17634
+ * no `bs-*` component is a composite "avatar + two lines + chevron" button.
17635
+ * ## When to use
17636
+ * - An app header or side navigation where a user belongs to several companies and works in one at a time.
17637
+ * ## When not to use
17638
+ * - Picking a value in a form -- use `bs-input type="dropdown"`.
17639
+ * - Switching between a handful of fixed views -- use `bs-tab`.
17640
+ * `companies` is an array and must be set as a JS property. You own the data and the switch itself: listen to
17641
+ * `bsCompanySwitch`, do the work, then update `currentId`. To show the switching state set `switchingId`
17642
+ * (from the `bsCompanySwitch` handler, or later) and the panel stays open until you clear it and set `open`
17643
+ * to `false`. If `switchingId` is not set by the time the handler returns, the panel closes immediately.
17644
+ * @prop --bs-company-switcher-width - Trigger width. Defaults to `260px` (Figma); capped at 100%.
17645
+ * @prop --bs-company-switcher-panel-width - Panel width. Defaults to `360px` (Figma); capped at the viewport.
17646
+ * @prop --bs-company-switcher-radius - Trigger and panel corner radius. Aliased to `--bs-border-radius-100`.
17647
+ * @prop --bs-company-switcher-trigger-bg - Trigger resting background. `transparent`.
17648
+ * @prop --bs-company-switcher-trigger-bg-hover - Aliased to `--bs-surface-hover`.
17649
+ * @prop --bs-company-switcher-trigger-bg-pressed - Aliased to `--bs-surface-pressed`.
17650
+ * @prop --bs-company-switcher-trigger-bg-open - Aliased to `--bs-surface-selected`.
17651
+ * @prop --bs-company-switcher-focus-ring - Trigger focus outline. Aliased to `--bs-border-neutral-focus`.
17652
+ * @prop --bs-company-switcher-panel-bg - Panel background. Aliased to `--bs-surface-base`.
17653
+ * @prop --bs-company-switcher-panel-border-color - Panel border. Aliased to `--bs-border-default`.
17654
+ * @prop --bs-company-switcher-shadow - Panel shadow. Aliased to `--bs-shadow-md`.
17655
+ * @prop --bs-company-switcher-max-height - Maximum height of the scrolling list. Defaults to `320px`.
17656
+ * @prop --bs-company-switcher-text-color - Names. Aliased to `--bs-text-default`.
17657
+ * @prop --bs-company-switcher-muted-color - Org. numbers. Aliased to `--bs-text-secondary`.
17658
+ * @prop --bs-company-switcher-header-color - Group headers. Aliased to `--bs-text-muted`.
17659
+ * @prop --bs-company-switcher-z-index - Panel stacking. Aliased to `--bs-z-index-popover`.
17660
+ */
17661
+ "bs-company-switcher": LocalJSX.IntrinsicElements["bs-company-switcher"] & JSXBase.HTMLAttributes<HTMLBsCompanySwitcherElement>;
15401
17662
  /**
15402
17663
  * A chat composer input for Genie AI-style conversational interfaces: a text field
15403
17664
  * plus an attach button, a mic/voice-recording toggle, and a single primary action button whose
@@ -15908,6 +18169,49 @@ declare module "@stencil/core" {
15908
18169
  * is already designed for whatever surface it's placed on.
15909
18170
  */
15910
18171
  "bs-logo": LocalJSX.IntrinsicElements["bs-logo"] & JSXBase.HTMLAttributes<HTMLBsLogoElement>;
18172
+ /**
18173
+ * The dropdown panel under a navigation header tab: columns of links grouped under headings, an optional
18174
+ * featured area on the right, and a footer with recently used items and a shortcut hint. Matches the Figma
18175
+ * "Mega menu" (types Columns, Column with featured, Compact and Compact with featured).
18176
+ * This is the panel only. Put it in `bs-navigation-header`'s `menu` slot, which anchors it under the bar at the
18177
+ * header's full width, and show it from the tab that opens it; the panel does not open or close itself. Escape
18178
+ * inside the panel fires `bsClose` so you can close it.
18179
+ * There are two ways to show and hide it. Toggle the host's `hidden` attribute and it appears and disappears at once
18180
+ * (the original contract, unchanged). Or set `open` and it fades and drops in from under the bar, then fades back out
18181
+ * and is removed once the exit finishes. Leave `open` unset to keep using `hidden` only. `hidden` always wins: with it
18182
+ * set the panel is not shown whatever `open` says.
18183
+ * Built from `bs-card` (panel surface), `bs-menu-block` or `bs-compact-menu-block` (the links), `bs-divider` and
18184
+ * `bs-key-caps` (the shortcut). The column layout, headings, featured text and footer row are plain layout
18185
+ * markup: no component covers them.
18186
+ * ## Responsive
18187
+ * The panel reacts to its own width (a container query), not the viewport's. Below 600px it becomes one column (heading
18188
+ * above its links, featured area below), titles and descriptions wrap, links are at least 44px tall, the footer stacks
18189
+ * and the default shortcut hint is hidden (`display: none`; a keyboard hint means nothing on a touch screen). A custom
18190
+ * `footer-end` slot is not hidden.
18191
+ * ## When to use
18192
+ * - A header tab that leads to many destinations that need grouping (Sell, Finance, Inventory).
18193
+ * ## When not to use
18194
+ * - A short list of commands -- use `bs-menu` in a `bs-popover`.
18195
+ * - Switching app or company -- use `bs-app-switcher` or `bs-company-switcher`.
18196
+ * `columns`, `featured` and `recent` are arrays or objects and must be set as JS properties. Each item's `icon` is
18197
+ * the URL of a monochrome SVG. You own the data: listen to `bsMenuSelect` (cancelable: `preventDefault()` cancels the
18198
+ * originating click).
18199
+ * @prop --bs-mega-menu-width - Panel width. Defaults to `1100px` (Figma); capped at the viewport.
18200
+ * @prop --bs-mega-menu-radius - Panel corner radius. Aliased to `--bs-border-radius-150`.
18201
+ * @prop --bs-mega-menu-bg - Panel background. Aliased to `--bs-surface-base`.
18202
+ * @prop --bs-mega-menu-border-color - Panel border. Aliased to `--bs-border-default`.
18203
+ * @prop --bs-mega-menu-shadow - Panel shadow (elevation level 3). Aliased to the `--bs-shadow-*` position and blur tokens and `--bs-elevation-high`.
18204
+ * @prop --bs-mega-menu-padding - Padding around the columns. Aliased to `--bs-spacing-300` and `--bs-spacing-350`.
18205
+ * @prop --bs-mega-menu-gap - Gap between columns. Aliased to `--bs-spacing-300`.
18206
+ * @prop --bs-mega-menu-heading-color - Column headings. Aliased to `--bs-text-muted`.
18207
+ * @prop --bs-mega-menu-text-color - Featured title. Aliased to `--bs-text-default`.
18208
+ * @prop --bs-mega-menu-muted-color - Featured description and footer text. Aliased to `--bs-text-secondary`.
18209
+ * @prop --bs-mega-menu-duration - Length of the open/close motion (`open` only). Aliased to `--bs-duration-default`.
18210
+ * @prop --bs-mega-menu-easing - Curve of the open/close motion. Aliased to `--bs-easing-standard`.
18211
+ * @prop --bs-mega-menu-distance - How far the panel drops while it fades. Aliased to `--bs-spacing-100`.
18212
+ * Under `prefers-reduced-motion: reduce` (or a duration of `0ms`) setting `open` shows and hides the panel instantly.
18213
+ */
18214
+ "bs-mega-menu": LocalJSX.IntrinsicElements["bs-mega-menu"] & JSXBase.HTMLAttributes<HTMLBsMegaMenuElement>;
15911
18215
  /**
15912
18216
  * A generic dropdown/popup menu container: a rounded, elevated list of items (typically
15913
18217
  * `bs-menu-item` elements).
@@ -15924,6 +18228,32 @@ declare module "@stencil/core" {
15924
18228
  * @prop --bs-menu-shadow - Elevation shadow of the menu box. Aliased to `--bs-shadow-sm`.
15925
18229
  */
15926
18230
  "bs-menu": LocalJSX.IntrinsicElements["bs-menu"] & JSXBase.HTMLAttributes<HTMLBsMenuElement>;
18231
+ /**
18232
+ * A rich entry in a mega menu: an icon tile, a title with an optional "New" chip, and a one-line description.
18233
+ * Matches the Figma "Menu block" component (Default, Hover, Pressed and Focused).
18234
+ * The block is always a native button and only emits events; it never navigates. Hover, pressed and focus come from the
18235
+ * native element. Its accessible name is its text: the title, the badge and the description, read once.
18236
+ * Built from `bs-icon-tile` (the icon) and `bs-chip-informative` (the badge). The icon is either a URL of a
18237
+ * monochrome SVG in `icon` (painted with the theme's icon colour through a CSS mask, so it follows light and
18238
+ * dark mode), or any element in the default slot (an `<svg>` drawn with `currentColor`).
18239
+ * ## When to use
18240
+ * - A destination in a mega menu that needs an icon and a sentence of explanation, usually inside `bs-mega-menu`.
18241
+ * ## When not to use
18242
+ * - A plain text destination -- use `bs-compact-menu-block`.
18243
+ * - A command in a dropdown list -- use `bs-menu-item`.
18244
+ * @prop --bs-menu-block-padding - Padding inside the block. Aliased to `--bs-spacing-150`.
18245
+ * @prop --bs-menu-block-gap - Gap between icon and text. Aliased to `--bs-spacing-150`.
18246
+ * @prop --bs-menu-block-radius - Corner radius. Aliased to `--bs-border-radius-100`.
18247
+ * @prop --bs-menu-block-bg - Resting background. `transparent`.
18248
+ * @prop --bs-menu-block-bg-hover - Aliased to `--bs-surface-hover`.
18249
+ * @prop --bs-menu-block-bg-pressed - Aliased to `--bs-surface-pressed`.
18250
+ * @prop --bs-menu-block-icon-bg - Icon square background. Aliased to `--bs-color-neutral-container`; `--bs-surface-base` while hovered or pressed.
18251
+ * @prop --bs-menu-block-color - Title colour. Aliased to `--bs-text-default`.
18252
+ * @prop --bs-menu-block-color-muted - Description colour. Aliased to `--bs-text-secondary`.
18253
+ * @prop --bs-menu-block-focus-ring - Focus ring colour. Aliased to `--bs-border-info`.
18254
+ * @prop --bs-menu-block-white-space - `white-space` of the title and description. `nowrap` (single line, ellipsis); set `normal` to let them wrap.
18255
+ */
18256
+ "bs-menu-block": LocalJSX.IntrinsicElements["bs-menu-block"] & JSXBase.HTMLAttributes<HTMLBsMenuBlockElement>;
15927
18257
  /**
15928
18258
  * A single selectable row inside a `bs-menu`: an optional icon plus a text label, rendered as a
15929
18259
  * real `<button>` for correct keyboard/click semantics.
@@ -16101,6 +18431,47 @@ declare module "@stencil/core" {
16101
18431
  * hidden "Done" / "Not done". The progress bar is named with the progress text.
16102
18432
  */
16103
18433
  "bs-onboarding-checklist": LocalJSX.IntrinsicElements["bs-onboarding-checklist"] & JSXBase.HTMLAttributes<HTMLBsOnboardingChecklistElement>;
18434
+ /**
18435
+ * The header at the top of a page's content area: breadcrumb trail, the page title (a real heading) with an
18436
+ * optional back button, status and favourite toggle, a meta line, page-level actions on the right and an
18437
+ * optional row of tabs. Matches the Figma "Page header" (types List page, Record, Record with tabs and Sticky
18438
+ * compact).
18439
+ * Built from `bs-breadcrumbs`/`bs-breadcrumb` (slotted by you), `bs-icon-button` (the built-in back and favourite
18440
+ * buttons), `bs-chip-informative` (the status you slot), `bs-button` and `bs-icon-button` (the actions you slot),
18441
+ * `bs-tabs`/`bs-tab` (the tab row you slot) and `bs-divider` (under the tabs). The title block, meta line and
18442
+ * actions area are plain layout markup, because no component covers them. The back arrow and the star are
18443
+ * inline SVG (Phosphor "arrow-left", "star" and "star-fill") until the library has an icon component.
18444
+ * ## Compact (sticky)
18445
+ * `compact` is the condensed state a record header takes once the page scrolls: one row (back, title, status,
18446
+ * meta inline, actions), a level 2 shadow, no breadcrumb and no tabs, and `position: sticky`. Set it yourself
18447
+ * from a scroll observer. Because the header covers the top of the scroll area, give the scroll container
18448
+ * `scroll-padding-top` equal to its height (80px by default) so focused or anchored content is not hidden under it.
18449
+ * ## Responsive
18450
+ * The header reacts to its own width (a container query), not the viewport's. Below 640px the actions wrap
18451
+ * below the title block, slotted buttons grow to 44px tall, the title and meta wrap, and the tab row scrolls
18452
+ * sideways inside itself. The page never gets wider.
18453
+ * ## When to use
18454
+ * - The top of a list page or a single record (an invoice, a customer) inside the app shell's content area.
18455
+ * ## When not to use
18456
+ * - The app-wide bar with logo, search and user: use `bs-navigation-header`.
18457
+ * - The heading of a card, dialog or panel: use that component's own `heading`.
18458
+ * ## Accessibility notes
18459
+ * The root is a plain `div`, not a `<header>`: a `<header>` that is not inside `<main>`/`<article>`/`<section>`
18460
+ * is a second banner landmark. The title is a real heading (`<h1>` by default, `headingLevel` 1 to 6); the
18461
+ * status is next to it, not inside it. If you want a landmark, wrap `bs-page-header` yourself.
18462
+ * @prop --bs-page-header-bg - Background. Aliased to `--bs-surface-base`.
18463
+ * @prop --bs-page-header-padding-x - Left and right padding. Aliased to `--bs-spacing-200`.
18464
+ * @prop --bs-page-header-padding-y - Top and bottom padding. Aliased to `--bs-spacing-300`.
18465
+ * @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`.
18466
+ * @prop --bs-page-header-title-gap - Gap between the heading, status and favourite button. Aliased to `--bs-spacing-150`.
18467
+ * @prop --bs-page-header-actions-gap - Gap between the actions. Aliased to `--bs-spacing-100`.
18468
+ * @prop --bs-page-header-text-color - Heading. Aliased to `--bs-text-default`.
18469
+ * @prop --bs-page-header-meta-color - Meta line. Aliased to `--bs-text-secondary`.
18470
+ * @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`.
18471
+ * @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).
18472
+ * @prop --bs-page-header-z-index - Stacking order of the compact header. Aliased to `--bs-z-index-sticky`.
18473
+ */
18474
+ "bs-page-header": LocalJSX.IntrinsicElements["bs-page-header"] & JSXBase.HTMLAttributes<HTMLBsPageHeaderElement>;
16104
18475
  /**
16105
18476
  * A numbered page control -- previous/next chevrons, page-number buttons, and `...` overflow for
16106
18477
  * large page counts. Matches the Figma "Pagination" component's "Default" type (the classic
@@ -16132,8 +18503,31 @@ declare module "@stencil/core" {
16132
18503
  * @prop --bs-popover-offset - Gap between trigger and popup. Aliased to `--bs-spacing-100`.
16133
18504
  * @prop --bs-popover-min-width - Minimum popup width. Aliased to `--bs-scale-1600`.
16134
18505
  * @prop --bs-popover-z-index - Popup stacking order. Aliased to `--bs-z-index-popover`.
18506
+ * @prop --bs-popover-duration - Length of the open/close motion. Aliased to `--bs-duration-fast`.
18507
+ * @prop --bs-popover-easing - Curve of the open/close motion. Aliased to `--bs-easing-standard`.
18508
+ * @prop --bs-popover-distance - How far the popup nudges while it fades. Aliased to `--bs-spacing-50`.
18509
+ * The popup fades and nudges toward its trigger when it opens and closes. Length, curve and travel are
18510
+ * `--bs-popover-duration`, `--bs-popover-easing` and `--bs-popover-distance`; under `prefers-reduced-motion: reduce` it is instant.
16135
18511
  */
16136
18512
  "bs-popover": LocalJSX.IntrinsicElements["bs-popover"] & JSXBase.HTMLAttributes<HTMLBsPopoverElement>;
18513
+ /**
18514
+ * Shows and hides slotted content with a short enter/exit transition.
18515
+ * The motion uses the shared duration and easing tokens (`--bs-duration-*`, `--bs-easing-*`).
18516
+ * Under `prefers-reduced-motion: reduce` those durations are already `0ms`, and this component
18517
+ * forces `--bs-presence-duration` to `--bs-duration-instant` as well, so the content snaps
18518
+ * instead of moving.
18519
+ * ## When to use
18520
+ * - Revealing a block that does not have its own enter/exit (a card, a form section, a panel).
18521
+ * - Comparing duration and easing tokens while designing a screen.
18522
+ * ## When not to use
18523
+ * - Loading placeholders (`bs-skeleton`), spinners (`bs-spinner`), or progress.
18524
+ * - Dialog, snackbar, toast, and command palette — those components own their motion.
18525
+ * @prop --bs-presence-duration - Transition length. Set from the `duration` prop to a `--bs-duration-*` token.
18526
+ * @prop --bs-presence-easing - Transition curve. Set from the `easing` prop to a `--bs-easing-*` token.
18527
+ * @prop --bs-presence-distance - Travel distance for `slide-up` and `slide-down`. Aliased to `--bs-spacing-400`.
18528
+ * @prop --bs-presence-scale - Closed scale for `scale`. No unitless scale token exists, so the default is `0.96`.
18529
+ */
18530
+ "bs-presence": LocalJSX.IntrinsicElements["bs-presence"] & JSXBase.HTMLAttributes<HTMLBsPresenceElement>;
16137
18531
  /**
16138
18532
  * One step of a product tour: a centred **welcome** or **success** card with an art tile, or a
16139
18533
  * **pointer** card -- a compact step with a close button, a "1 of 3" progress label and Back/Next
@@ -16214,6 +18608,27 @@ declare module "@stencil/core" {
16214
18608
  * - An on/off setting that takes effect immediately (no explicit form submission) -- use `bs-switch`.
16215
18609
  */
16216
18610
  "bs-radio": LocalJSX.IntrinsicElements["bs-radio"] & JSXBase.HTMLAttributes<HTMLBsRadioElement>;
18611
+ /**
18612
+ * A touch-ripple effect: on pointer press, a circle grows from the press point and fades out.
18613
+ * It is a building block for pressable components (`bs-button`, `bs-icon-button`, ...), not something
18614
+ * to place on a page by itself. Put it inside a positioned, pressable parent; it fills that parent,
18615
+ * follows its corner radius, and listens for `pointerdown` on it. Pointer-events pass through, so the
18616
+ * parent still receives every click.
18617
+ * The motion uses the shared duration and easing tokens. Under `prefers-reduced-motion: reduce` those
18618
+ * durations are `0ms`, and the ripple does not play at all.
18619
+ * ## When to use
18620
+ * - Inside a pressable `bs-*` component, to give press feedback.
18621
+ * ## When not to use
18622
+ * - As a hover or focus indicator. Those are colour changes on the parent.
18623
+ * - On non-interactive surfaces.
18624
+ * Set the custom properties on the `bs-ripple` element itself. Inside another component that means `::part(ripple)`,
18625
+ * e.g. `bs-button::part(ripple) { --bs-ripple-color: white; }`.
18626
+ * @prop --bs-ripple-color - Ripple colour. `currentColor` by default, so it follows the parent's text colour and works on every variant.
18627
+ * @prop --bs-ripple-opacity - Starting opacity of the ripple. No opacity token fits, so the default is `0.24`.
18628
+ * @prop --bs-ripple-duration - Length of the ripple. Aliased to `--bs-duration-slower`.
18629
+ * @prop --bs-ripple-easing - Curve of the ripple. Aliased to `--bs-easing-decelerate`.
18630
+ */
18631
+ "bs-ripple": LocalJSX.IntrinsicElements["bs-ripple"] & JSXBase.HTMLAttributes<HTMLBsRippleElement>;
16217
18632
  /**
16218
18633
  * One result or suggestion row of a search dropdown: a leading icon, a primary line, an optional
16219
18634
  * description line and trailing text. Static, not focusable -- focus stays in the search field and the
@@ -16299,6 +18714,8 @@ declare module "@stencil/core" {
16299
18714
  * @prop --bs-side-panel-overlay-bg - Backdrop color. Aliased to `--bs-surface-overlay`.
16300
18715
  * @prop --bs-side-panel-color - Text color. Aliased to `--bs-text-default`.
16301
18716
  * @prop --bs-side-panel-z-index - Stacking order. Aliased to `--bs-z-index-modal`.
18717
+ * @prop --bs-side-panel-duration - Length of the slide in/out. Aliased to `--bs-duration-slow`.
18718
+ * @prop --bs-side-panel-easing - Curve of the slide in/out. Aliased to `--bs-easing-standard`.
16302
18719
  */
16303
18720
  "bs-side-panel": LocalJSX.IntrinsicElements["bs-side-panel"] & JSXBase.HTMLAttributes<HTMLBsSidePanelElement>;
16304
18721
  /**
@@ -16601,6 +19018,11 @@ declare module "@stencil/core" {
16601
19018
  * - Interactive content or long text (use `bs-popover`).
16602
19019
  * @prop --bs-tooltip-trigger-offset - Gap between trigger and tooltip. Aliased to `--bs-spacing-100`.
16603
19020
  * @prop --bs-tooltip-trigger-z-index - Stacking order. Aliased to `--bs-z-index-popover`.
19021
+ * @prop --bs-tooltip-trigger-duration - Length of the show/hide motion. Aliased to `--bs-duration-fast`.
19022
+ * @prop --bs-tooltip-trigger-easing - Curve of the show/hide motion. Aliased to `--bs-easing-standard`.
19023
+ * @prop --bs-tooltip-trigger-distance - How far the tooltip nudges while it fades. Aliased to `--bs-spacing-50`.
19024
+ * The tooltip fades in while drifting a few pixels away from the trigger into place, and fades back out toward it. Under
19025
+ * `prefers-reduced-motion: reduce` (or a duration of `0ms`) it appears and disappears instantly.
16604
19026
  */
16605
19027
  "bs-tooltip-trigger": LocalJSX.IntrinsicElements["bs-tooltip-trigger"] & JSXBase.HTMLAttributes<HTMLBsTooltipTriggerElement>;
16606
19028
  /**