@oxy.so/bloom 4.4.0 → 4.6.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 (704) hide show
  1. package/README.md +1 -1
  2. package/docs/adoption-matrix.mdx +12 -12
  3. package/docs/code.mdx +12 -0
  4. package/docs/context-menu.mdx +2 -0
  5. package/docs/dropdown-menu.mdx +21 -0
  6. package/docs/icons.mdx +2 -2
  7. package/docs/layout.mdx +36 -0
  8. package/docs/menubar.mdx +6 -2
  9. package/docs/page-header.mdx +16 -0
  10. package/docs/popover.mdx +4 -2
  11. package/docs/segmented-control.mdx +12 -0
  12. package/docs/select.mdx +19 -0
  13. package/docs/sidebar.mdx +6 -0
  14. package/docs/tabs.mdx +12 -0
  15. package/lib/commonjs/agent-chat/index.web.js.map +1 -1
  16. package/lib/commonjs/ai-chat/index.web.js.map +1 -1
  17. package/lib/commonjs/alert-dialog/index.web.js +10 -1
  18. package/lib/commonjs/alert-dialog/index.web.js.map +1 -1
  19. package/lib/commonjs/avatar-group/index.web.js.map +1 -1
  20. package/lib/commonjs/bottom-sheet/index.web.js.map +1 -1
  21. package/lib/commonjs/code/index.js +13 -0
  22. package/lib/commonjs/code/index.js.map +1 -1
  23. package/lib/commonjs/command/index.web.js +5 -0
  24. package/lib/commonjs/command/index.web.js.map +1 -1
  25. package/lib/commonjs/composer-loader/ComposerLoader.web.js +9 -0
  26. package/lib/commonjs/composer-loader/ComposerLoader.web.js.map +1 -1
  27. package/lib/commonjs/composer-loader/index.web.js.map +1 -1
  28. package/lib/commonjs/composer-panel/index.web.js.map +1 -1
  29. package/lib/commonjs/connection-dots/index.web.js.map +1 -1
  30. package/lib/commonjs/connection-status/index.web.js.map +1 -1
  31. package/lib/commonjs/content-panel/index.web.js.map +1 -1
  32. package/lib/commonjs/context-menu/ContextMenu.web.js +22 -4
  33. package/lib/commonjs/context-menu/ContextMenu.web.js.map +1 -1
  34. package/lib/commonjs/context-menu/context.js.map +1 -1
  35. package/lib/commonjs/context-menu/index.web.js.map +1 -1
  36. package/lib/commonjs/dialog/Dialog.web.js +14 -0
  37. package/lib/commonjs/dialog/Dialog.web.js.map +1 -1
  38. package/lib/commonjs/dialog/index.web.js.map +1 -1
  39. package/lib/commonjs/dropdown-menu/DropdownMenu.web.js +22 -2
  40. package/lib/commonjs/dropdown-menu/DropdownMenu.web.js.map +1 -1
  41. package/lib/commonjs/dropdown-menu/index.web.js.map +1 -1
  42. package/lib/commonjs/floating/FloatingPanel.js +42 -33
  43. package/lib/commonjs/floating/FloatingPanel.js.map +1 -1
  44. package/lib/commonjs/floating/escape-stack.js +90 -0
  45. package/lib/commonjs/floating/escape-stack.js.map +1 -0
  46. package/lib/commonjs/floating/menu-keyboard.js +238 -0
  47. package/lib/commonjs/floating/menu-keyboard.js.map +1 -0
  48. package/lib/commonjs/floating/menu-sub-flyout.js +28 -16
  49. package/lib/commonjs/floating/menu-sub-flyout.js.map +1 -1
  50. package/lib/commonjs/fonts/index.web.js.map +1 -1
  51. package/lib/commonjs/frosted-icon-button/FrostedIconButton.web.js +10 -0
  52. package/lib/commonjs/frosted-icon-button/FrostedIconButton.web.js.map +1 -1
  53. package/lib/commonjs/frosted-icon-button/index.web.js.map +1 -1
  54. package/lib/commonjs/hooks/roving-focus.js +192 -0
  55. package/lib/commonjs/hooks/roving-focus.js.map +1 -0
  56. package/lib/commonjs/hover-card/index.web.js.map +1 -1
  57. package/lib/commonjs/icons/remix/RiBookReadLine.js +12 -0
  58. package/lib/commonjs/icons/remix/RiBookReadLine.js.map +1 -0
  59. package/lib/commonjs/icons/remix/RiBugLine.js +12 -0
  60. package/lib/commonjs/icons/remix/RiBugLine.js.map +1 -0
  61. package/lib/commonjs/icons/remix/RiChat1Line.js +12 -0
  62. package/lib/commonjs/icons/remix/RiChat1Line.js.map +1 -0
  63. package/lib/commonjs/icons/remix/RiCloudLine.js +12 -0
  64. package/lib/commonjs/icons/remix/RiCloudLine.js.map +1 -0
  65. package/lib/commonjs/icons/remix/RiCodeLine.js +12 -0
  66. package/lib/commonjs/icons/remix/RiCodeLine.js.map +1 -0
  67. package/lib/commonjs/icons/remix/RiCpuLine.js +12 -0
  68. package/lib/commonjs/icons/remix/RiCpuLine.js.map +1 -0
  69. package/lib/commonjs/icons/remix/RiFloodLine.js +12 -0
  70. package/lib/commonjs/icons/remix/RiFloodLine.js.map +1 -0
  71. package/lib/commonjs/icons/remix/RiLockUnlockLine.js +12 -0
  72. package/lib/commonjs/icons/remix/RiLockUnlockLine.js.map +1 -0
  73. package/lib/commonjs/icons/remix/RiMoneyDollarCircleLine.js +12 -0
  74. package/lib/commonjs/icons/remix/RiMoneyDollarCircleLine.js.map +1 -0
  75. package/lib/commonjs/icons/remix/RiPlayCircleLine.js +12 -0
  76. package/lib/commonjs/icons/remix/RiPlayCircleLine.js.map +1 -0
  77. package/lib/commonjs/icons/remix/RiRocket2Line.js +12 -0
  78. package/lib/commonjs/icons/remix/RiRocket2Line.js.map +1 -0
  79. package/lib/commonjs/icons/remix/RiServerLine.js +12 -0
  80. package/lib/commonjs/icons/remix/RiServerLine.js.map +1 -0
  81. package/lib/commonjs/icons/remix/RiShareBoxLine.js +12 -0
  82. package/lib/commonjs/icons/remix/RiShareBoxLine.js.map +1 -0
  83. package/lib/commonjs/icons/remix/RiTv2Line.js +12 -0
  84. package/lib/commonjs/icons/remix/RiTv2Line.js.map +1 -0
  85. package/lib/commonjs/icons/remix/index.js +98 -0
  86. package/lib/commonjs/icons/remix/index.js.map +1 -1
  87. package/lib/commonjs/index.js +21 -0
  88. package/lib/commonjs/index.js.map +1 -1
  89. package/lib/commonjs/index.web.js +21 -0
  90. package/lib/commonjs/index.web.js.map +1 -1
  91. package/lib/commonjs/layout/StickySection.js +106 -0
  92. package/lib/commonjs/layout/StickySection.js.map +1 -0
  93. package/lib/commonjs/layout/header-dock.js +61 -0
  94. package/lib/commonjs/layout/header-dock.js.map +1 -0
  95. package/lib/commonjs/layout/index.js +20 -0
  96. package/lib/commonjs/layout/index.js.map +1 -1
  97. package/lib/commonjs/list/index.web.js.map +1 -1
  98. package/lib/commonjs/loading/Loading.js +21 -157
  99. package/lib/commonjs/loading/Loading.js.map +1 -1
  100. package/lib/commonjs/loading/Loading.web.js +23 -157
  101. package/lib/commonjs/loading/Loading.web.js.map +1 -1
  102. package/lib/commonjs/loading/LoadingBase.js +202 -0
  103. package/lib/commonjs/loading/LoadingBase.js.map +1 -0
  104. package/lib/commonjs/loading/index.web.js.map +1 -1
  105. package/lib/commonjs/media-flight/index.web.js.map +1 -1
  106. package/lib/commonjs/menubar/Menubar.js +31 -123
  107. package/lib/commonjs/menubar/Menubar.js.map +1 -1
  108. package/lib/commonjs/menubar/Menubar.web.js +33 -114
  109. package/lib/commonjs/menubar/Menubar.web.js.map +1 -1
  110. package/lib/commonjs/menubar/MenubarBase.js +154 -0
  111. package/lib/commonjs/menubar/MenubarBase.js.map +1 -0
  112. package/lib/commonjs/menubar/index.web.js.map +1 -1
  113. package/lib/commonjs/page-header/PageHeader.js +38 -14
  114. package/lib/commonjs/page-header/PageHeader.js.map +1 -1
  115. package/lib/commonjs/popover/index.web.js.map +1 -1
  116. package/lib/commonjs/popover/parts.js +69 -11
  117. package/lib/commonjs/popover/parts.js.map +1 -1
  118. package/lib/commonjs/popover/surface.js +39 -13
  119. package/lib/commonjs/popover/surface.js.map +1 -1
  120. package/lib/commonjs/portal/index.web.js.map +1 -1
  121. package/lib/commonjs/progressive-blur/index.web.js.map +1 -1
  122. package/lib/commonjs/scroll/index.web.js.map +1 -1
  123. package/lib/commonjs/segmented-control/SegmentedControl.js +36 -1
  124. package/lib/commonjs/segmented-control/SegmentedControl.js.map +1 -1
  125. package/lib/commonjs/select/Select.js +6 -81
  126. package/lib/commonjs/select/Select.js.map +1 -1
  127. package/lib/commonjs/select/Select.web.js +147 -85
  128. package/lib/commonjs/select/Select.web.js.map +1 -1
  129. package/lib/commonjs/select/index.js +4 -4
  130. package/lib/commonjs/select/index.js.map +1 -1
  131. package/lib/commonjs/select/index.web.js +4 -4
  132. package/lib/commonjs/select/index.web.js.map +1 -1
  133. package/lib/commonjs/select/shared.js +110 -5
  134. package/lib/commonjs/select/shared.js.map +1 -1
  135. package/lib/commonjs/sidebar/Sidebar.js +121 -108
  136. package/lib/commonjs/sidebar/Sidebar.js.map +1 -1
  137. package/lib/commonjs/sidebar/SidebarRail.js +70 -48
  138. package/lib/commonjs/sidebar/SidebarRail.js.map +1 -1
  139. package/lib/commonjs/sidebar/SidebarTeamMenu.js +1 -1
  140. package/lib/commonjs/sidebar/SidebarTeamMenu.js.map +1 -1
  141. package/lib/commonjs/sidebar/SidebarUserMenu.js +1 -1
  142. package/lib/commonjs/sidebar/SidebarUserMenu.js.map +1 -1
  143. package/lib/commonjs/sidebar/parts.js +9 -9
  144. package/lib/commonjs/sidebar/parts.js.map +1 -1
  145. package/lib/commonjs/styles/web-view-style.js +6 -0
  146. package/lib/commonjs/styles/web-view-style.js.map +1 -1
  147. package/lib/commonjs/surfaces/SurfaceHost.js +6 -0
  148. package/lib/commonjs/surfaces/SurfaceHost.js.map +1 -1
  149. package/lib/commonjs/surfaces/index.web.js +14 -4
  150. package/lib/commonjs/surfaces/index.web.js.map +1 -1
  151. package/lib/commonjs/tab-bar/index.web.js +13 -10
  152. package/lib/commonjs/tab-bar/index.web.js.map +1 -1
  153. package/lib/commonjs/tabs/Tabs.js +49 -2
  154. package/lib/commonjs/tabs/Tabs.js.map +1 -1
  155. package/lib/commonjs/theme/color-scope/index.web.js.map +1 -1
  156. package/lib/commonjs/theme/seed-scope/index.web.js.map +1 -1
  157. package/lib/commonjs/tooltip/index.web.js.map +1 -1
  158. package/lib/module/agent-chat/index.web.js +5 -3
  159. package/lib/module/agent-chat/index.web.js.map +1 -1
  160. package/lib/module/ai-chat/index.web.js +5 -2
  161. package/lib/module/ai-chat/index.web.js.map +1 -1
  162. package/lib/module/alert-dialog/index.web.js +10 -1
  163. package/lib/module/alert-dialog/index.web.js.map +1 -1
  164. package/lib/module/avatar-group/index.web.js +5 -0
  165. package/lib/module/avatar-group/index.web.js.map +1 -1
  166. package/lib/module/bottom-sheet/index.web.js +5 -0
  167. package/lib/module/bottom-sheet/index.web.js.map +1 -1
  168. package/lib/module/code/index.js +1 -0
  169. package/lib/module/code/index.js.map +1 -1
  170. package/lib/module/command/index.web.js +5 -0
  171. package/lib/module/command/index.web.js.map +1 -1
  172. package/lib/module/composer-loader/ComposerLoader.web.js +8 -0
  173. package/lib/module/composer-loader/ComposerLoader.web.js.map +1 -1
  174. package/lib/module/composer-loader/index.web.js +5 -2
  175. package/lib/module/composer-loader/index.web.js.map +1 -1
  176. package/lib/module/composer-panel/index.web.js +5 -3
  177. package/lib/module/composer-panel/index.web.js.map +1 -1
  178. package/lib/module/connection-dots/index.web.js +5 -0
  179. package/lib/module/connection-dots/index.web.js.map +1 -1
  180. package/lib/module/connection-status/index.web.js +5 -0
  181. package/lib/module/connection-status/index.web.js.map +1 -1
  182. package/lib/module/content-panel/index.web.js +5 -0
  183. package/lib/module/content-panel/index.web.js.map +1 -1
  184. package/lib/module/context-menu/ContextMenu.web.js +22 -4
  185. package/lib/module/context-menu/ContextMenu.web.js.map +1 -1
  186. package/lib/module/context-menu/context.js.map +1 -1
  187. package/lib/module/context-menu/index.web.js +5 -0
  188. package/lib/module/context-menu/index.web.js.map +1 -1
  189. package/lib/module/dialog/Dialog.web.js +13 -0
  190. package/lib/module/dialog/Dialog.web.js.map +1 -1
  191. package/lib/module/dialog/index.web.js +7 -11
  192. package/lib/module/dialog/index.web.js.map +1 -1
  193. package/lib/module/dropdown-menu/DropdownMenu.web.js +23 -3
  194. package/lib/module/dropdown-menu/DropdownMenu.web.js.map +1 -1
  195. package/lib/module/dropdown-menu/index.web.js +5 -0
  196. package/lib/module/dropdown-menu/index.web.js.map +1 -1
  197. package/lib/module/floating/FloatingPanel.js +42 -33
  198. package/lib/module/floating/FloatingPanel.js.map +1 -1
  199. package/lib/module/floating/escape-stack.js +85 -0
  200. package/lib/module/floating/escape-stack.js.map +1 -0
  201. package/lib/module/floating/menu-keyboard.js +227 -0
  202. package/lib/module/floating/menu-keyboard.js.map +1 -0
  203. package/lib/module/floating/menu-sub-flyout.js +28 -16
  204. package/lib/module/floating/menu-sub-flyout.js.map +1 -1
  205. package/lib/module/fonts/index.web.js +5 -20
  206. package/lib/module/fonts/index.web.js.map +1 -1
  207. package/lib/module/frosted-icon-button/FrostedIconButton.web.js +9 -0
  208. package/lib/module/frosted-icon-button/FrostedIconButton.web.js.map +1 -1
  209. package/lib/module/frosted-icon-button/index.web.js +5 -7
  210. package/lib/module/frosted-icon-button/index.web.js.map +1 -1
  211. package/lib/module/hooks/roving-focus.js +181 -0
  212. package/lib/module/hooks/roving-focus.js.map +1 -0
  213. package/lib/module/hover-card/index.web.js +5 -0
  214. package/lib/module/hover-card/index.web.js.map +1 -1
  215. package/lib/module/icons/remix/RiBookReadLine.js +9 -0
  216. package/lib/module/icons/remix/RiBookReadLine.js.map +1 -0
  217. package/lib/module/icons/remix/RiBugLine.js +9 -0
  218. package/lib/module/icons/remix/RiBugLine.js.map +1 -0
  219. package/lib/module/icons/remix/RiChat1Line.js +9 -0
  220. package/lib/module/icons/remix/RiChat1Line.js.map +1 -0
  221. package/lib/module/icons/remix/RiCloudLine.js +9 -0
  222. package/lib/module/icons/remix/RiCloudLine.js.map +1 -0
  223. package/lib/module/icons/remix/RiCodeLine.js +9 -0
  224. package/lib/module/icons/remix/RiCodeLine.js.map +1 -0
  225. package/lib/module/icons/remix/RiCpuLine.js +9 -0
  226. package/lib/module/icons/remix/RiCpuLine.js.map +1 -0
  227. package/lib/module/icons/remix/RiFloodLine.js +9 -0
  228. package/lib/module/icons/remix/RiFloodLine.js.map +1 -0
  229. package/lib/module/icons/remix/RiLockUnlockLine.js +9 -0
  230. package/lib/module/icons/remix/RiLockUnlockLine.js.map +1 -0
  231. package/lib/module/icons/remix/RiMoneyDollarCircleLine.js +9 -0
  232. package/lib/module/icons/remix/RiMoneyDollarCircleLine.js.map +1 -0
  233. package/lib/module/icons/remix/RiPlayCircleLine.js +9 -0
  234. package/lib/module/icons/remix/RiPlayCircleLine.js.map +1 -0
  235. package/lib/module/icons/remix/RiRocket2Line.js +9 -0
  236. package/lib/module/icons/remix/RiRocket2Line.js.map +1 -0
  237. package/lib/module/icons/remix/RiServerLine.js +9 -0
  238. package/lib/module/icons/remix/RiServerLine.js.map +1 -0
  239. package/lib/module/icons/remix/RiShareBoxLine.js +9 -0
  240. package/lib/module/icons/remix/RiShareBoxLine.js.map +1 -0
  241. package/lib/module/icons/remix/RiTv2Line.js +9 -0
  242. package/lib/module/icons/remix/RiTv2Line.js.map +1 -0
  243. package/lib/module/icons/remix/index.js +14 -0
  244. package/lib/module/icons/remix/index.js.map +1 -1
  245. package/lib/module/index.js +1 -1
  246. package/lib/module/index.js.map +1 -1
  247. package/lib/module/index.web.js +1 -1
  248. package/lib/module/index.web.js.map +1 -1
  249. package/lib/module/layout/StickySection.js +101 -0
  250. package/lib/module/layout/StickySection.js.map +1 -0
  251. package/lib/module/layout/header-dock.js +54 -0
  252. package/lib/module/layout/header-dock.js.map +1 -0
  253. package/lib/module/layout/index.js +2 -0
  254. package/lib/module/layout/index.js.map +1 -1
  255. package/lib/module/list/index.web.js +5 -0
  256. package/lib/module/list/index.web.js.map +1 -1
  257. package/lib/module/loading/Loading.js +17 -155
  258. package/lib/module/loading/Loading.js.map +1 -1
  259. package/lib/module/loading/Loading.web.js +19 -155
  260. package/lib/module/loading/Loading.web.js.map +1 -1
  261. package/lib/module/loading/LoadingBase.js +194 -0
  262. package/lib/module/loading/LoadingBase.js.map +1 -0
  263. package/lib/module/loading/index.web.js +5 -13
  264. package/lib/module/loading/index.web.js.map +1 -1
  265. package/lib/module/media-flight/index.web.js +5 -9
  266. package/lib/module/media-flight/index.web.js.map +1 -1
  267. package/lib/module/menubar/Menubar.js +15 -122
  268. package/lib/module/menubar/Menubar.js.map +1 -1
  269. package/lib/module/menubar/Menubar.web.js +18 -114
  270. package/lib/module/menubar/Menubar.web.js.map +1 -1
  271. package/lib/module/menubar/MenubarBase.js +146 -0
  272. package/lib/module/menubar/MenubarBase.js.map +1 -0
  273. package/lib/module/menubar/index.web.js +5 -0
  274. package/lib/module/menubar/index.web.js.map +1 -1
  275. package/lib/module/motion/index.web.js +5 -5
  276. package/lib/module/motion/index.web.js.map +1 -1
  277. package/lib/module/page-header/PageHeader.js +38 -14
  278. package/lib/module/page-header/PageHeader.js.map +1 -1
  279. package/lib/module/popover/index.web.js +5 -0
  280. package/lib/module/popover/index.web.js.map +1 -1
  281. package/lib/module/popover/parts.js +70 -12
  282. package/lib/module/popover/parts.js.map +1 -1
  283. package/lib/module/popover/surface.js +39 -13
  284. package/lib/module/popover/surface.js.map +1 -1
  285. package/lib/module/portal/index.web.js +6 -1
  286. package/lib/module/portal/index.web.js.map +1 -1
  287. package/lib/module/progressive-blur/index.web.js +5 -0
  288. package/lib/module/progressive-blur/index.web.js.map +1 -1
  289. package/lib/module/scroll/index.web.js +5 -0
  290. package/lib/module/scroll/index.web.js.map +1 -1
  291. package/lib/module/segmented-control/SegmentedControl.js +36 -1
  292. package/lib/module/segmented-control/SegmentedControl.js.map +1 -1
  293. package/lib/module/select/Select.js +5 -77
  294. package/lib/module/select/Select.js.map +1 -1
  295. package/lib/module/select/Select.web.js +147 -82
  296. package/lib/module/select/Select.web.js.map +1 -1
  297. package/lib/module/select/index.js +2 -2
  298. package/lib/module/select/index.js.map +1 -1
  299. package/lib/module/select/index.web.js +7 -2
  300. package/lib/module/select/index.web.js.map +1 -1
  301. package/lib/module/select/shared.js +106 -6
  302. package/lib/module/select/shared.js.map +1 -1
  303. package/lib/module/sidebar/Sidebar.js +121 -108
  304. package/lib/module/sidebar/Sidebar.js.map +1 -1
  305. package/lib/module/sidebar/SidebarRail.js +70 -48
  306. package/lib/module/sidebar/SidebarRail.js.map +1 -1
  307. package/lib/module/sidebar/SidebarTeamMenu.js +2 -2
  308. package/lib/module/sidebar/SidebarTeamMenu.js.map +1 -1
  309. package/lib/module/sidebar/SidebarUserMenu.js +2 -2
  310. package/lib/module/sidebar/SidebarUserMenu.js.map +1 -1
  311. package/lib/module/sidebar/parts.js +8 -8
  312. package/lib/module/sidebar/parts.js.map +1 -1
  313. package/lib/module/styles/web-view-style.js +5 -0
  314. package/lib/module/styles/web-view-style.js.map +1 -1
  315. package/lib/module/surfaces/SurfaceHost.js +6 -0
  316. package/lib/module/surfaces/SurfaceHost.js.map +1 -1
  317. package/lib/module/surfaces/index.web.js +14 -4
  318. package/lib/module/surfaces/index.web.js.map +1 -1
  319. package/lib/module/tab-bar/index.web.js +13 -10
  320. package/lib/module/tab-bar/index.web.js.map +1 -1
  321. package/lib/module/tabs/Tabs.js +49 -2
  322. package/lib/module/tabs/Tabs.js.map +1 -1
  323. package/lib/module/theme/color-scope/index.web.js +5 -0
  324. package/lib/module/theme/color-scope/index.web.js.map +1 -1
  325. package/lib/module/theme/seed-scope/index.web.js +5 -0
  326. package/lib/module/theme/seed-scope/index.web.js.map +1 -1
  327. package/lib/module/tooltip/index.web.js +5 -0
  328. package/lib/module/tooltip/index.web.js.map +1 -1
  329. package/lib/typescript/commonjs/agent-chat/index.web.d.ts.map +1 -1
  330. package/lib/typescript/commonjs/ai-chat/index.web.d.ts.map +1 -1
  331. package/lib/typescript/commonjs/alert-dialog/index.web.d.ts +5 -1
  332. package/lib/typescript/commonjs/alert-dialog/index.web.d.ts.map +1 -1
  333. package/lib/typescript/commonjs/avatar-group/index.web.d.ts.map +1 -1
  334. package/lib/typescript/commonjs/bottom-sheet/index.web.d.ts.map +1 -1
  335. package/lib/typescript/commonjs/code/index.d.ts +2 -0
  336. package/lib/typescript/commonjs/code/index.d.ts.map +1 -1
  337. package/lib/typescript/commonjs/command/index.web.d.ts.map +1 -1
  338. package/lib/typescript/commonjs/composer-loader/ComposerLoader.web.d.ts +8 -0
  339. package/lib/typescript/commonjs/composer-loader/ComposerLoader.web.d.ts.map +1 -1
  340. package/lib/typescript/commonjs/composer-loader/index.web.d.ts.map +1 -1
  341. package/lib/typescript/commonjs/composer-panel/index.web.d.ts.map +1 -1
  342. package/lib/typescript/commonjs/connection-dots/index.web.d.ts.map +1 -1
  343. package/lib/typescript/commonjs/connection-status/index.web.d.ts.map +1 -1
  344. package/lib/typescript/commonjs/content-panel/index.web.d.ts.map +1 -1
  345. package/lib/typescript/commonjs/context-menu/ContextMenu.web.d.ts.map +1 -1
  346. package/lib/typescript/commonjs/context-menu/context.d.ts +3 -0
  347. package/lib/typescript/commonjs/context-menu/context.d.ts.map +1 -1
  348. package/lib/typescript/commonjs/context-menu/index.web.d.ts.map +1 -1
  349. package/lib/typescript/commonjs/dialog/Dialog.web.d.ts.map +1 -1
  350. package/lib/typescript/commonjs/dialog/index.web.d.ts +2 -1
  351. package/lib/typescript/commonjs/dialog/index.web.d.ts.map +1 -1
  352. package/lib/typescript/commonjs/dropdown-menu/DropdownMenu.web.d.ts.map +1 -1
  353. package/lib/typescript/commonjs/dropdown-menu/index.web.d.ts.map +1 -1
  354. package/lib/typescript/commonjs/floating/FloatingPanel.d.ts +1 -1
  355. package/lib/typescript/commonjs/floating/FloatingPanel.d.ts.map +1 -1
  356. package/lib/typescript/commonjs/floating/escape-stack.d.ts +55 -0
  357. package/lib/typescript/commonjs/floating/escape-stack.d.ts.map +1 -0
  358. package/lib/typescript/commonjs/floating/menu-keyboard.d.ts +57 -0
  359. package/lib/typescript/commonjs/floating/menu-keyboard.d.ts.map +1 -0
  360. package/lib/typescript/commonjs/floating/menu-sub-flyout.d.ts.map +1 -1
  361. package/lib/typescript/commonjs/floating/types.d.ts +11 -0
  362. package/lib/typescript/commonjs/floating/types.d.ts.map +1 -1
  363. package/lib/typescript/commonjs/fonts/index.web.d.ts.map +1 -1
  364. package/lib/typescript/commonjs/frosted-icon-button/FrostedIconButton.web.d.ts.map +1 -1
  365. package/lib/typescript/commonjs/frosted-icon-button/index.web.d.ts.map +1 -1
  366. package/lib/typescript/commonjs/hooks/roving-focus.d.ts +66 -0
  367. package/lib/typescript/commonjs/hooks/roving-focus.d.ts.map +1 -0
  368. package/lib/typescript/commonjs/hover-card/index.web.d.ts.map +1 -1
  369. package/lib/typescript/commonjs/icons/remix/RiBookReadLine.d.ts +8 -0
  370. package/lib/typescript/commonjs/icons/remix/RiBookReadLine.d.ts.map +1 -0
  371. package/lib/typescript/commonjs/icons/remix/RiBugLine.d.ts +8 -0
  372. package/lib/typescript/commonjs/icons/remix/RiBugLine.d.ts.map +1 -0
  373. package/lib/typescript/commonjs/icons/remix/RiChat1Line.d.ts +8 -0
  374. package/lib/typescript/commonjs/icons/remix/RiChat1Line.d.ts.map +1 -0
  375. package/lib/typescript/commonjs/icons/remix/RiCloudLine.d.ts +8 -0
  376. package/lib/typescript/commonjs/icons/remix/RiCloudLine.d.ts.map +1 -0
  377. package/lib/typescript/commonjs/icons/remix/RiCodeLine.d.ts +8 -0
  378. package/lib/typescript/commonjs/icons/remix/RiCodeLine.d.ts.map +1 -0
  379. package/lib/typescript/commonjs/icons/remix/RiCpuLine.d.ts +8 -0
  380. package/lib/typescript/commonjs/icons/remix/RiCpuLine.d.ts.map +1 -0
  381. package/lib/typescript/commonjs/icons/remix/RiFloodLine.d.ts +8 -0
  382. package/lib/typescript/commonjs/icons/remix/RiFloodLine.d.ts.map +1 -0
  383. package/lib/typescript/commonjs/icons/remix/RiLockUnlockLine.d.ts +8 -0
  384. package/lib/typescript/commonjs/icons/remix/RiLockUnlockLine.d.ts.map +1 -0
  385. package/lib/typescript/commonjs/icons/remix/RiMoneyDollarCircleLine.d.ts +8 -0
  386. package/lib/typescript/commonjs/icons/remix/RiMoneyDollarCircleLine.d.ts.map +1 -0
  387. package/lib/typescript/commonjs/icons/remix/RiPlayCircleLine.d.ts +8 -0
  388. package/lib/typescript/commonjs/icons/remix/RiPlayCircleLine.d.ts.map +1 -0
  389. package/lib/typescript/commonjs/icons/remix/RiRocket2Line.d.ts +8 -0
  390. package/lib/typescript/commonjs/icons/remix/RiRocket2Line.d.ts.map +1 -0
  391. package/lib/typescript/commonjs/icons/remix/RiServerLine.d.ts +8 -0
  392. package/lib/typescript/commonjs/icons/remix/RiServerLine.d.ts.map +1 -0
  393. package/lib/typescript/commonjs/icons/remix/RiShareBoxLine.d.ts +8 -0
  394. package/lib/typescript/commonjs/icons/remix/RiShareBoxLine.d.ts.map +1 -0
  395. package/lib/typescript/commonjs/icons/remix/RiTv2Line.d.ts +8 -0
  396. package/lib/typescript/commonjs/icons/remix/RiTv2Line.d.ts.map +1 -0
  397. package/lib/typescript/commonjs/icons/remix/index.d.ts +14 -0
  398. package/lib/typescript/commonjs/icons/remix/index.d.ts.map +1 -1
  399. package/lib/typescript/commonjs/index.d.ts +2 -1
  400. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  401. package/lib/typescript/commonjs/index.web.d.ts +2 -1
  402. package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
  403. package/lib/typescript/commonjs/layout/StickySection.d.ts +8 -0
  404. package/lib/typescript/commonjs/layout/StickySection.d.ts.map +1 -0
  405. package/lib/typescript/commonjs/layout/header-dock.d.ts +21 -0
  406. package/lib/typescript/commonjs/layout/header-dock.d.ts.map +1 -0
  407. package/lib/typescript/commonjs/layout/index.d.ts +3 -0
  408. package/lib/typescript/commonjs/layout/index.d.ts.map +1 -1
  409. package/lib/typescript/commonjs/list/index.web.d.ts.map +1 -1
  410. package/lib/typescript/commonjs/loading/Loading.d.ts +8 -2
  411. package/lib/typescript/commonjs/loading/Loading.d.ts.map +1 -1
  412. package/lib/typescript/commonjs/loading/Loading.web.d.ts +10 -2
  413. package/lib/typescript/commonjs/loading/Loading.web.d.ts.map +1 -1
  414. package/lib/typescript/commonjs/loading/LoadingBase.d.ts +64 -0
  415. package/lib/typescript/commonjs/loading/LoadingBase.d.ts.map +1 -0
  416. package/lib/typescript/commonjs/loading/index.web.d.ts.map +1 -1
  417. package/lib/typescript/commonjs/media-flight/index.web.d.ts +0 -9
  418. package/lib/typescript/commonjs/media-flight/index.web.d.ts.map +1 -1
  419. package/lib/typescript/commonjs/menubar/Menubar.d.ts +14 -9
  420. package/lib/typescript/commonjs/menubar/Menubar.d.ts.map +1 -1
  421. package/lib/typescript/commonjs/menubar/Menubar.web.d.ts +8 -6
  422. package/lib/typescript/commonjs/menubar/Menubar.web.d.ts.map +1 -1
  423. package/lib/typescript/commonjs/menubar/MenubarBase.d.ts +5 -0
  424. package/lib/typescript/commonjs/menubar/MenubarBase.d.ts.map +1 -0
  425. package/lib/typescript/commonjs/menubar/index.web.d.ts.map +1 -1
  426. package/lib/typescript/commonjs/motion/index.web.d.ts +0 -5
  427. package/lib/typescript/commonjs/motion/index.web.d.ts.map +1 -1
  428. package/lib/typescript/commonjs/page-header/PageHeader.d.ts.map +1 -1
  429. package/lib/typescript/commonjs/page-header/types.d.ts +10 -6
  430. package/lib/typescript/commonjs/page-header/types.d.ts.map +1 -1
  431. package/lib/typescript/commonjs/popover/index.web.d.ts.map +1 -1
  432. package/lib/typescript/commonjs/popover/parts.d.ts.map +1 -1
  433. package/lib/typescript/commonjs/popover/surface.d.ts +15 -5
  434. package/lib/typescript/commonjs/popover/surface.d.ts.map +1 -1
  435. package/lib/typescript/commonjs/portal/index.web.d.ts +1 -1
  436. package/lib/typescript/commonjs/portal/index.web.d.ts.map +1 -1
  437. package/lib/typescript/commonjs/progressive-blur/index.web.d.ts.map +1 -1
  438. package/lib/typescript/commonjs/scroll/index.web.d.ts.map +1 -1
  439. package/lib/typescript/commonjs/segmented-control/SegmentedControl.d.ts.map +1 -1
  440. package/lib/typescript/commonjs/select/Select.d.ts +2 -4
  441. package/lib/typescript/commonjs/select/Select.d.ts.map +1 -1
  442. package/lib/typescript/commonjs/select/Select.web.d.ts +2 -4
  443. package/lib/typescript/commonjs/select/Select.web.d.ts.map +1 -1
  444. package/lib/typescript/commonjs/select/index.d.ts +2 -2
  445. package/lib/typescript/commonjs/select/index.d.ts.map +1 -1
  446. package/lib/typescript/commonjs/select/index.web.d.ts +2 -2
  447. package/lib/typescript/commonjs/select/index.web.d.ts.map +1 -1
  448. package/lib/typescript/commonjs/select/shared.d.ts +52 -5
  449. package/lib/typescript/commonjs/select/shared.d.ts.map +1 -1
  450. package/lib/typescript/commonjs/select/types.d.ts +6 -0
  451. package/lib/typescript/commonjs/select/types.d.ts.map +1 -1
  452. package/lib/typescript/commonjs/sidebar/Sidebar.d.ts.map +1 -1
  453. package/lib/typescript/commonjs/sidebar/SidebarRail.d.ts +1 -1
  454. package/lib/typescript/commonjs/sidebar/SidebarRail.d.ts.map +1 -1
  455. package/lib/typescript/commonjs/sidebar/parts.d.ts +8 -2
  456. package/lib/typescript/commonjs/sidebar/parts.d.ts.map +1 -1
  457. package/lib/typescript/commonjs/sidebar/types.d.ts +2 -0
  458. package/lib/typescript/commonjs/sidebar/types.d.ts.map +1 -1
  459. package/lib/typescript/commonjs/styles/web-view-style.d.ts +2 -0
  460. package/lib/typescript/commonjs/styles/web-view-style.d.ts.map +1 -1
  461. package/lib/typescript/commonjs/surfaces/SurfaceHost.d.ts.map +1 -1
  462. package/lib/typescript/commonjs/surfaces/index.web.d.ts +9 -4
  463. package/lib/typescript/commonjs/surfaces/index.web.d.ts.map +1 -1
  464. package/lib/typescript/commonjs/tab-bar/index.web.d.ts.map +1 -1
  465. package/lib/typescript/commonjs/tabs/Tabs.d.ts.map +1 -1
  466. package/lib/typescript/commonjs/tabs/types.d.ts +6 -0
  467. package/lib/typescript/commonjs/tabs/types.d.ts.map +1 -1
  468. package/lib/typescript/commonjs/theme/color-scope/index.web.d.ts.map +1 -1
  469. package/lib/typescript/commonjs/theme/seed-scope/index.web.d.ts.map +1 -1
  470. package/lib/typescript/commonjs/tooltip/index.web.d.ts.map +1 -1
  471. package/lib/typescript/module/agent-chat/index.web.d.ts.map +1 -1
  472. package/lib/typescript/module/ai-chat/index.web.d.ts.map +1 -1
  473. package/lib/typescript/module/alert-dialog/index.web.d.ts +5 -1
  474. package/lib/typescript/module/alert-dialog/index.web.d.ts.map +1 -1
  475. package/lib/typescript/module/avatar-group/index.web.d.ts.map +1 -1
  476. package/lib/typescript/module/bottom-sheet/index.web.d.ts.map +1 -1
  477. package/lib/typescript/module/code/index.d.ts +2 -0
  478. package/lib/typescript/module/code/index.d.ts.map +1 -1
  479. package/lib/typescript/module/command/index.web.d.ts.map +1 -1
  480. package/lib/typescript/module/composer-loader/ComposerLoader.web.d.ts +8 -0
  481. package/lib/typescript/module/composer-loader/ComposerLoader.web.d.ts.map +1 -1
  482. package/lib/typescript/module/composer-loader/index.web.d.ts.map +1 -1
  483. package/lib/typescript/module/composer-panel/index.web.d.ts.map +1 -1
  484. package/lib/typescript/module/connection-dots/index.web.d.ts.map +1 -1
  485. package/lib/typescript/module/connection-status/index.web.d.ts.map +1 -1
  486. package/lib/typescript/module/content-panel/index.web.d.ts.map +1 -1
  487. package/lib/typescript/module/context-menu/ContextMenu.web.d.ts.map +1 -1
  488. package/lib/typescript/module/context-menu/context.d.ts +3 -0
  489. package/lib/typescript/module/context-menu/context.d.ts.map +1 -1
  490. package/lib/typescript/module/context-menu/index.web.d.ts.map +1 -1
  491. package/lib/typescript/module/dialog/Dialog.web.d.ts.map +1 -1
  492. package/lib/typescript/module/dialog/index.web.d.ts +2 -1
  493. package/lib/typescript/module/dialog/index.web.d.ts.map +1 -1
  494. package/lib/typescript/module/dropdown-menu/DropdownMenu.web.d.ts.map +1 -1
  495. package/lib/typescript/module/dropdown-menu/index.web.d.ts.map +1 -1
  496. package/lib/typescript/module/floating/FloatingPanel.d.ts +1 -1
  497. package/lib/typescript/module/floating/FloatingPanel.d.ts.map +1 -1
  498. package/lib/typescript/module/floating/escape-stack.d.ts +55 -0
  499. package/lib/typescript/module/floating/escape-stack.d.ts.map +1 -0
  500. package/lib/typescript/module/floating/menu-keyboard.d.ts +57 -0
  501. package/lib/typescript/module/floating/menu-keyboard.d.ts.map +1 -0
  502. package/lib/typescript/module/floating/menu-sub-flyout.d.ts.map +1 -1
  503. package/lib/typescript/module/floating/types.d.ts +11 -0
  504. package/lib/typescript/module/floating/types.d.ts.map +1 -1
  505. package/lib/typescript/module/fonts/index.web.d.ts.map +1 -1
  506. package/lib/typescript/module/frosted-icon-button/FrostedIconButton.web.d.ts.map +1 -1
  507. package/lib/typescript/module/frosted-icon-button/index.web.d.ts.map +1 -1
  508. package/lib/typescript/module/hooks/roving-focus.d.ts +66 -0
  509. package/lib/typescript/module/hooks/roving-focus.d.ts.map +1 -0
  510. package/lib/typescript/module/hover-card/index.web.d.ts.map +1 -1
  511. package/lib/typescript/module/icons/remix/RiBookReadLine.d.ts +8 -0
  512. package/lib/typescript/module/icons/remix/RiBookReadLine.d.ts.map +1 -0
  513. package/lib/typescript/module/icons/remix/RiBugLine.d.ts +8 -0
  514. package/lib/typescript/module/icons/remix/RiBugLine.d.ts.map +1 -0
  515. package/lib/typescript/module/icons/remix/RiChat1Line.d.ts +8 -0
  516. package/lib/typescript/module/icons/remix/RiChat1Line.d.ts.map +1 -0
  517. package/lib/typescript/module/icons/remix/RiCloudLine.d.ts +8 -0
  518. package/lib/typescript/module/icons/remix/RiCloudLine.d.ts.map +1 -0
  519. package/lib/typescript/module/icons/remix/RiCodeLine.d.ts +8 -0
  520. package/lib/typescript/module/icons/remix/RiCodeLine.d.ts.map +1 -0
  521. package/lib/typescript/module/icons/remix/RiCpuLine.d.ts +8 -0
  522. package/lib/typescript/module/icons/remix/RiCpuLine.d.ts.map +1 -0
  523. package/lib/typescript/module/icons/remix/RiFloodLine.d.ts +8 -0
  524. package/lib/typescript/module/icons/remix/RiFloodLine.d.ts.map +1 -0
  525. package/lib/typescript/module/icons/remix/RiLockUnlockLine.d.ts +8 -0
  526. package/lib/typescript/module/icons/remix/RiLockUnlockLine.d.ts.map +1 -0
  527. package/lib/typescript/module/icons/remix/RiMoneyDollarCircleLine.d.ts +8 -0
  528. package/lib/typescript/module/icons/remix/RiMoneyDollarCircleLine.d.ts.map +1 -0
  529. package/lib/typescript/module/icons/remix/RiPlayCircleLine.d.ts +8 -0
  530. package/lib/typescript/module/icons/remix/RiPlayCircleLine.d.ts.map +1 -0
  531. package/lib/typescript/module/icons/remix/RiRocket2Line.d.ts +8 -0
  532. package/lib/typescript/module/icons/remix/RiRocket2Line.d.ts.map +1 -0
  533. package/lib/typescript/module/icons/remix/RiServerLine.d.ts +8 -0
  534. package/lib/typescript/module/icons/remix/RiServerLine.d.ts.map +1 -0
  535. package/lib/typescript/module/icons/remix/RiShareBoxLine.d.ts +8 -0
  536. package/lib/typescript/module/icons/remix/RiShareBoxLine.d.ts.map +1 -0
  537. package/lib/typescript/module/icons/remix/RiTv2Line.d.ts +8 -0
  538. package/lib/typescript/module/icons/remix/RiTv2Line.d.ts.map +1 -0
  539. package/lib/typescript/module/icons/remix/index.d.ts +14 -0
  540. package/lib/typescript/module/icons/remix/index.d.ts.map +1 -1
  541. package/lib/typescript/module/index.d.ts +2 -1
  542. package/lib/typescript/module/index.d.ts.map +1 -1
  543. package/lib/typescript/module/index.web.d.ts +2 -1
  544. package/lib/typescript/module/index.web.d.ts.map +1 -1
  545. package/lib/typescript/module/layout/StickySection.d.ts +8 -0
  546. package/lib/typescript/module/layout/StickySection.d.ts.map +1 -0
  547. package/lib/typescript/module/layout/header-dock.d.ts +21 -0
  548. package/lib/typescript/module/layout/header-dock.d.ts.map +1 -0
  549. package/lib/typescript/module/layout/index.d.ts +3 -0
  550. package/lib/typescript/module/layout/index.d.ts.map +1 -1
  551. package/lib/typescript/module/list/index.web.d.ts.map +1 -1
  552. package/lib/typescript/module/loading/Loading.d.ts +8 -2
  553. package/lib/typescript/module/loading/Loading.d.ts.map +1 -1
  554. package/lib/typescript/module/loading/Loading.web.d.ts +10 -2
  555. package/lib/typescript/module/loading/Loading.web.d.ts.map +1 -1
  556. package/lib/typescript/module/loading/LoadingBase.d.ts +64 -0
  557. package/lib/typescript/module/loading/LoadingBase.d.ts.map +1 -0
  558. package/lib/typescript/module/loading/index.web.d.ts.map +1 -1
  559. package/lib/typescript/module/media-flight/index.web.d.ts +0 -9
  560. package/lib/typescript/module/media-flight/index.web.d.ts.map +1 -1
  561. package/lib/typescript/module/menubar/Menubar.d.ts +14 -9
  562. package/lib/typescript/module/menubar/Menubar.d.ts.map +1 -1
  563. package/lib/typescript/module/menubar/Menubar.web.d.ts +8 -6
  564. package/lib/typescript/module/menubar/Menubar.web.d.ts.map +1 -1
  565. package/lib/typescript/module/menubar/MenubarBase.d.ts +5 -0
  566. package/lib/typescript/module/menubar/MenubarBase.d.ts.map +1 -0
  567. package/lib/typescript/module/menubar/index.web.d.ts.map +1 -1
  568. package/lib/typescript/module/motion/index.web.d.ts +0 -5
  569. package/lib/typescript/module/motion/index.web.d.ts.map +1 -1
  570. package/lib/typescript/module/page-header/PageHeader.d.ts.map +1 -1
  571. package/lib/typescript/module/page-header/types.d.ts +10 -6
  572. package/lib/typescript/module/page-header/types.d.ts.map +1 -1
  573. package/lib/typescript/module/popover/index.web.d.ts.map +1 -1
  574. package/lib/typescript/module/popover/parts.d.ts.map +1 -1
  575. package/lib/typescript/module/popover/surface.d.ts +15 -5
  576. package/lib/typescript/module/popover/surface.d.ts.map +1 -1
  577. package/lib/typescript/module/portal/index.web.d.ts +1 -1
  578. package/lib/typescript/module/portal/index.web.d.ts.map +1 -1
  579. package/lib/typescript/module/progressive-blur/index.web.d.ts.map +1 -1
  580. package/lib/typescript/module/scroll/index.web.d.ts.map +1 -1
  581. package/lib/typescript/module/segmented-control/SegmentedControl.d.ts.map +1 -1
  582. package/lib/typescript/module/select/Select.d.ts +2 -4
  583. package/lib/typescript/module/select/Select.d.ts.map +1 -1
  584. package/lib/typescript/module/select/Select.web.d.ts +2 -4
  585. package/lib/typescript/module/select/Select.web.d.ts.map +1 -1
  586. package/lib/typescript/module/select/index.d.ts +2 -2
  587. package/lib/typescript/module/select/index.d.ts.map +1 -1
  588. package/lib/typescript/module/select/index.web.d.ts +2 -2
  589. package/lib/typescript/module/select/index.web.d.ts.map +1 -1
  590. package/lib/typescript/module/select/shared.d.ts +52 -5
  591. package/lib/typescript/module/select/shared.d.ts.map +1 -1
  592. package/lib/typescript/module/select/types.d.ts +6 -0
  593. package/lib/typescript/module/select/types.d.ts.map +1 -1
  594. package/lib/typescript/module/sidebar/Sidebar.d.ts.map +1 -1
  595. package/lib/typescript/module/sidebar/SidebarRail.d.ts +1 -1
  596. package/lib/typescript/module/sidebar/SidebarRail.d.ts.map +1 -1
  597. package/lib/typescript/module/sidebar/parts.d.ts +8 -2
  598. package/lib/typescript/module/sidebar/parts.d.ts.map +1 -1
  599. package/lib/typescript/module/sidebar/types.d.ts +2 -0
  600. package/lib/typescript/module/sidebar/types.d.ts.map +1 -1
  601. package/lib/typescript/module/styles/web-view-style.d.ts +2 -0
  602. package/lib/typescript/module/styles/web-view-style.d.ts.map +1 -1
  603. package/lib/typescript/module/surfaces/SurfaceHost.d.ts.map +1 -1
  604. package/lib/typescript/module/surfaces/index.web.d.ts +9 -4
  605. package/lib/typescript/module/surfaces/index.web.d.ts.map +1 -1
  606. package/lib/typescript/module/tab-bar/index.web.d.ts.map +1 -1
  607. package/lib/typescript/module/tabs/Tabs.d.ts.map +1 -1
  608. package/lib/typescript/module/tabs/types.d.ts +6 -0
  609. package/lib/typescript/module/tabs/types.d.ts.map +1 -1
  610. package/lib/typescript/module/theme/color-scope/index.web.d.ts.map +1 -1
  611. package/lib/typescript/module/theme/seed-scope/index.web.d.ts.map +1 -1
  612. package/lib/typescript/module/tooltip/index.web.d.ts.map +1 -1
  613. package/package.json +1 -1
  614. package/src/agent-chat/index.web.ts +5 -3
  615. package/src/ai-chat/index.web.ts +5 -2
  616. package/src/alert-dialog/index.web.ts +10 -1
  617. package/src/avatar-group/index.web.ts +5 -0
  618. package/src/bottom-sheet/index.web.ts +5 -0
  619. package/src/code/index.ts +2 -0
  620. package/src/command/index.web.ts +5 -0
  621. package/src/composer-loader/ComposerLoader.web.tsx +8 -0
  622. package/src/composer-loader/index.web.ts +5 -2
  623. package/src/composer-panel/index.web.ts +5 -3
  624. package/src/connection-dots/index.web.ts +5 -0
  625. package/src/connection-status/index.web.ts +5 -0
  626. package/src/content-panel/index.web.ts +5 -0
  627. package/src/context-menu/ContextMenu.web.tsx +26 -3
  628. package/src/context-menu/context.ts +3 -0
  629. package/src/context-menu/index.web.ts +5 -0
  630. package/src/dialog/Dialog.web.tsx +13 -0
  631. package/src/dialog/index.web.ts +7 -11
  632. package/src/dropdown-menu/DropdownMenu.web.tsx +25 -2
  633. package/src/dropdown-menu/index.web.ts +5 -0
  634. package/src/floating/FloatingPanel.tsx +37 -38
  635. package/src/floating/escape-stack.ts +92 -0
  636. package/src/floating/menu-keyboard.ts +242 -0
  637. package/src/floating/menu-sub-flyout.tsx +22 -17
  638. package/src/floating/types.ts +11 -0
  639. package/src/fonts/index.web.ts +5 -20
  640. package/src/frosted-icon-button/FrostedIconButton.web.tsx +9 -0
  641. package/src/frosted-icon-button/index.web.ts +5 -7
  642. package/src/hooks/roving-focus.ts +204 -0
  643. package/src/hover-card/index.web.ts +5 -0
  644. package/src/icons/remix/RiBookReadLine.tsx +6 -0
  645. package/src/icons/remix/RiBugLine.tsx +6 -0
  646. package/src/icons/remix/RiChat1Line.tsx +6 -0
  647. package/src/icons/remix/RiCloudLine.tsx +6 -0
  648. package/src/icons/remix/RiCodeLine.tsx +6 -0
  649. package/src/icons/remix/RiCpuLine.tsx +6 -0
  650. package/src/icons/remix/RiFloodLine.tsx +6 -0
  651. package/src/icons/remix/RiLockUnlockLine.tsx +6 -0
  652. package/src/icons/remix/RiMoneyDollarCircleLine.tsx +6 -0
  653. package/src/icons/remix/RiPlayCircleLine.tsx +6 -0
  654. package/src/icons/remix/RiRocket2Line.tsx +6 -0
  655. package/src/icons/remix/RiServerLine.tsx +6 -0
  656. package/src/icons/remix/RiShareBoxLine.tsx +6 -0
  657. package/src/icons/remix/RiTv2Line.tsx +6 -0
  658. package/src/icons/remix/index.ts +14 -0
  659. package/src/index.ts +4 -0
  660. package/src/index.web.ts +4 -0
  661. package/src/layout/StickySection.tsx +75 -0
  662. package/src/layout/header-dock.tsx +42 -0
  663. package/src/layout/index.ts +4 -0
  664. package/src/list/index.web.ts +5 -0
  665. package/src/loading/Loading.tsx +15 -135
  666. package/src/loading/Loading.web.tsx +16 -134
  667. package/src/loading/LoadingBase.tsx +170 -0
  668. package/src/loading/index.web.ts +5 -13
  669. package/src/media-flight/index.web.ts +5 -9
  670. package/src/menubar/Menubar.tsx +16 -147
  671. package/src/menubar/Menubar.web.tsx +15 -138
  672. package/src/menubar/MenubarBase.tsx +170 -0
  673. package/src/menubar/index.web.ts +5 -0
  674. package/src/motion/index.web.ts +5 -5
  675. package/src/page-header/PageHeader.tsx +26 -12
  676. package/src/page-header/types.ts +10 -6
  677. package/src/popover/index.web.ts +5 -0
  678. package/src/popover/parts.tsx +76 -12
  679. package/src/popover/surface.ts +68 -15
  680. package/src/portal/index.web.ts +6 -1
  681. package/src/progressive-blur/index.web.ts +5 -0
  682. package/src/scroll/index.web.ts +5 -0
  683. package/src/segmented-control/SegmentedControl.tsx +45 -1
  684. package/src/select/Select.tsx +4 -67
  685. package/src/select/Select.web.tsx +133 -69
  686. package/src/select/index.ts +3 -3
  687. package/src/select/index.web.ts +8 -3
  688. package/src/select/shared.tsx +107 -5
  689. package/src/select/types.ts +6 -0
  690. package/src/sidebar/Sidebar.tsx +3 -0
  691. package/src/sidebar/SidebarRail.tsx +6 -1
  692. package/src/sidebar/SidebarTeamMenu.tsx +2 -2
  693. package/src/sidebar/SidebarUserMenu.tsx +2 -2
  694. package/src/sidebar/parts.tsx +8 -9
  695. package/src/sidebar/types.ts +2 -0
  696. package/src/styles/web-view-style.ts +5 -0
  697. package/src/surfaces/SurfaceHost.tsx +6 -0
  698. package/src/surfaces/index.web.ts +14 -4
  699. package/src/tab-bar/index.web.ts +13 -10
  700. package/src/tabs/Tabs.tsx +65 -1
  701. package/src/tabs/types.ts +6 -0
  702. package/src/theme/color-scope/index.web.ts +5 -0
  703. package/src/theme/seed-scope/index.web.ts +5 -0
  704. package/src/tooltip/index.web.ts +5 -0
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Everything `Loading` does that is the SAME on both platforms.
3
+ *
4
+ * The family forks for one reason: the `top` variant's motion. Native drives
5
+ * it with react-native-reanimated, whose worklets Babel plugin has no web
6
+ * equivalent — a static import of it breaks every web bundler, Vite, webpack
7
+ * and Metro-web alike — so web drives the same motion with CSS transitions.
8
+ * That is the whole of the difference. The `spinner` and `inline` variants,
9
+ * the size table, the variant dispatch and the stylesheet were byte-identical
10
+ * copies in both forks.
11
+ *
12
+ * So the two platform pieces are INJECTED rather than imported: `SpinnerIcon`
13
+ * (itself forked) and `TopLoading`. `bindLoading` is called once at module
14
+ * scope by each fork, never per render, so the component identities are
15
+ * stable — the same discipline as `bindAgentChat` and `bindAiChat`.
16
+ *
17
+ * NEUTRAL by construction: nothing this module reaches is platform-forked, so
18
+ * it resolves the same way in Metro, Vite, webpack, SSR and jest. (jest
19
+ * resolves no platform extensions at all, so logic that moved into a
20
+ * `.native.*` file would lose its coverage in silence.)
21
+ */
22
+ import { normalizeBloomSize } from '../appearance/legacy';
23
+ import { resolveBloomColors } from '../appearance/colors';
24
+ import { useBloomAppearance } from '../appearance';
25
+ import React, { memo } from 'react';
26
+ import { View, Text, StyleSheet } from 'react-native';
27
+
28
+ import { useTheme } from '../theme/use-theme';
29
+ import type {
30
+ LoadingProps,
31
+ SpinnerLoadingProps,
32
+ TopLoadingProps,
33
+ InlineLoadingProps,
34
+ } from './types';
35
+
36
+ /** Spinner diameter and label size per `size` token. Read by all three variants. */
37
+ export const SIZE_CONFIG = {
38
+ xs: { spinner: 16, text: 12 },
39
+ sm: { spinner: 20, text: 13 },
40
+ md: { spinner: 24, text: 15 },
41
+ lg: { spinner: 44, text: 16 },
42
+ } as const;
43
+
44
+ /** The two platform pieces a fork supplies. */
45
+ export interface LoadingPlatform {
46
+ /** Forked: react-native-svg on native, a DOM `<svg>` on web. */
47
+ SpinnerIcon: React.ComponentType<{ size?: number; color?: string; className?: string }>;
48
+ /** Forked: the `top` variant, the only one whose motion differs. */
49
+ TopLoading: React.FC<TopLoadingProps>;
50
+ }
51
+
52
+ export function bindLoading({ SpinnerIcon, TopLoading }: LoadingPlatform) {
53
+ const SpinnerLoading: React.FC<SpinnerLoadingProps> = ({
54
+ size: sizeProp,
55
+ color,
56
+ tone: toneProp,
57
+ className,
58
+ text,
59
+ textStyle,
60
+ style,
61
+ showText = true,
62
+ iconSize,
63
+ spinnerIcon,
64
+ testID,
65
+ }) => {
66
+ const theme = useTheme();
67
+ const {size, tone} = useBloomAppearance({size: normalizeBloomSize(sizeProp), tone: toneProp}, {size: 'md', tone: 'accent'});
68
+ const sizeConfig = SIZE_CONFIG[size];
69
+ const effectiveIconSize = iconSize ?? sizeConfig.spinner;
70
+ const spinnerColor = className ? 'currentColor' : (color ?? resolveBloomColors(theme.colors, tone, 'solid').background);
71
+ const textColor = color ?? theme.colors.textSecondary;
72
+
73
+ return (
74
+ <View style={[styles.container, style]} testID={testID}>
75
+ {spinnerIcon ?? <SpinnerIcon size={effectiveIconSize} color={spinnerColor} className={className} />}
76
+ {showText && text && (
77
+ <Text
78
+ style={[
79
+ styles.text,
80
+ { color: textColor, fontSize: sizeConfig.text, marginTop: 8 },
81
+ textStyle,
82
+ ]}
83
+ >
84
+ {text}
85
+ </Text>
86
+ )}
87
+ </View>
88
+ );
89
+ };
90
+
91
+ const InlineLoading: React.FC<InlineLoadingProps> = ({
92
+ size: sizeProp,
93
+ color,
94
+ tone: toneProp,
95
+ text,
96
+ style,
97
+ textStyle,
98
+ spinnerIcon,
99
+ testID,
100
+ }) => {
101
+ const theme = useTheme();
102
+ const {size, tone} = useBloomAppearance({size: normalizeBloomSize(sizeProp), tone: toneProp}, {size: 'md', tone: 'accent'});
103
+ const sizeConfig = SIZE_CONFIG[size];
104
+ const spinnerColor = color ?? resolveBloomColors(theme.colors, tone, 'solid').background;
105
+ const textColor = theme.colors.textSecondary;
106
+
107
+ return (
108
+ <View style={[styles.inlineContainer, style]} testID={testID}>
109
+ {spinnerIcon ?? <SpinnerIcon size={sizeConfig.spinner} color={spinnerColor} />}
110
+ {text && (
111
+ <Text
112
+ style={[
113
+ { color: textColor, fontSize: sizeConfig.text, marginLeft: 8 },
114
+ textStyle,
115
+ ]}
116
+ >
117
+ {text}
118
+ </Text>
119
+ )}
120
+ </View>
121
+ );
122
+ };
123
+
124
+ const LoadingComponent: React.FC<LoadingProps> = (props) => {
125
+ const variant = props.variant ?? 'spinner';
126
+
127
+ switch (variant) {
128
+ case 'top':
129
+ return <TopLoading {...(props as TopLoadingProps)} />;
130
+ case 'inline':
131
+ return <InlineLoading {...(props as InlineLoadingProps)} />;
132
+ case 'spinner':
133
+ default:
134
+ return <SpinnerLoading {...(props as SpinnerLoadingProps)} />;
135
+ }
136
+ };
137
+
138
+ const Loading = memo(LoadingComponent);
139
+ Loading.displayName = 'Loading';
140
+ return { Loading };
141
+ }
142
+
143
+ export const styles = StyleSheet.create({
144
+ container: {
145
+ alignItems: 'center',
146
+ justifyContent: 'center',
147
+ padding: 16,
148
+ },
149
+ text: {
150
+ textAlign: 'center',
151
+ },
152
+ topContainer: {
153
+ width: '100%',
154
+ position: 'relative',
155
+ overflow: 'hidden',
156
+ },
157
+ topLoadingView: {
158
+ width: '100%',
159
+ alignItems: 'center',
160
+ justifyContent: 'center',
161
+ position: 'absolute',
162
+ top: 0,
163
+ left: 0,
164
+ },
165
+ inlineContainer: {
166
+ flexDirection: 'row',
167
+ alignItems: 'center',
168
+ justifyContent: 'center',
169
+ },
170
+ });
@@ -1,16 +1,8 @@
1
- // Web variant of the `./loading` barrel.
2
- //
3
- // The default barrel (`./index.ts`) re-exports from `./Loading` and
4
- // `./SpinnerIcon`, which statically import `react-native-reanimated` and
5
- // `react-native-svg`. Reanimated has no web build — its worklets Babel plugin
6
- // is native-only and importing it statically breaks every web bundler (Vite,
7
- // webpack, Metro-web). The web forks (`./Loading.web`, `./SpinnerIcon.web`)
8
- // render the same components with CSS keyframes/transitions and no native deps.
9
- //
10
- // Web bundlers select this file via the `"browser"` export condition in
11
- // `package.json`'s `exports['./loading']`; native bundlers fall through to the
12
- // React Native build above. Types are platform-agnostic, so they come straight
13
- // from `./types`.
1
+ // AUTO-GENERATED by scripts/generate-platform-exports.mjs — DO NOT EDIT.
2
+ // Source of truth: src/loading/index.ts.
3
+ // Re-run `bun run generate:exports` (or any `bun run build`) after
4
+ // changing that barrel or the set of web-forked subpaths.
5
+
14
6
  export { Loading } from './Loading.web';
15
7
  export { SpinnerIcon } from './SpinnerIcon.web';
16
8
  export type {
@@ -1,12 +1,8 @@
1
- /**
2
- * The web barrel, which exists to NAME the `.web` siblings.
3
- *
4
- * Export conditions do not apply to relative specifiers, so a bundler that is
5
- * not Metro reaches `MediaFlightLayer.web.tsx` and `MediaFlightHost.web.tsx`
6
- * only because this file spells them out. Those two are the whole web fork of
7
- * this family: the layer that paints each shared media node once, and the host
8
- * that claims it. Everything else below is the same module on both platforms.
9
- */
1
+ // AUTO-GENERATED by scripts/generate-platform-exports.mjs — DO NOT EDIT.
2
+ // Source of truth: src/media-flight/index.ts.
3
+ // Re-run `bun run generate:exports` (or any `bun run build`) after
4
+ // changing that barrel or the set of web-forked subpaths.
5
+
10
6
  export { MediaFlightLayer } from './MediaFlightLayer.web';
11
7
  export { MediaFlightHost } from './MediaFlightHost.web';
12
8
  export { MediaSurface, MediaPoster, EmptyMediaSurface } from './MediaSurface';
@@ -1,160 +1,29 @@
1
1
  /**
2
- * `Menubar` — NATIVE. A row of triggers, each opening the same bottom sheet
3
- * `DropdownMenu` and `ContextMenu` present.
2
+ * `Menubar` — NATIVE: each menu opens the same bottom sheet `DropdownMenu` and
3
+ * `ContextMenu` present, because a phone has no room to hang a panel beside a
4
+ * control and every Bloom overlay resolving to one sheet is what makes the
5
+ * native surfaces feel like one system.
4
6
  *
5
- * The one genuinely new family in this port: Bloom had no menu bar. Its rows are
6
- * `floating/menu-rows`, published here under shadcn's `Menubar*` names, so a
7
- * ported call site keeps every part it wrote.
7
+ * The bar, the per-menu state and the trigger are identical on both platforms
8
+ * and live in `MenubarBase`. What forks is this file: the surface a menu opens
9
+ * into, and which sub-menu the rows get — INLINE on native, because a flyout
10
+ * needs a pointer.
11
+ *
12
+ * Bloom had no menu bar before this family; its rows are `floating/menu-rows`,
13
+ * published here under the `Menubar*` names so a call site keeps every part it
14
+ * wrote.
8
15
  */
9
- import React, { useMemo, useRef } from 'react';
10
- import type { View as RNView } from 'react-native';
16
+ import React, { useMemo } from 'react';
11
17
 
12
18
  import { SheetShell } from '../dialog/SheetShell';
13
- import {
14
- MENUBAR_CLASS,
15
- MENUBAR_TRIGGER_CLASS,
16
- MENUBAR_TRIGGER_OPEN_CLASS,
17
- MENUBAR_TRIGGER_TEXT_CLASS,
18
- MENU_TRIGGER_POPUP,
19
- } from '../floating/constants';
20
19
  import { MenuSurfaceProvider, type MenuSurfaceContextValue } from '../floating/context';
21
20
  import { createMenuRows } from '../floating/menu-rows';
22
21
  import { createInlineMenuSub } from '../floating/menu-sub-inline';
23
- import { cx } from '../floating/shared';
24
- import { TriggerSlot } from '../floating/TriggerSlot';
25
22
  import { useSheetOpenBridge } from '../floating/use-sheet-open-bridge';
26
- import { useControllableState } from '../hooks/use-controllable-state';
27
- import { StyledText, StyledView } from '../styles/styled-primitives';
28
- import { useMenuPalette } from '../floating/menu-palette';
29
- import { menuType } from '../floating/menu-type';
30
- import {
31
- MenubarMenuProvider,
32
- MenubarProvider,
33
- useMenubar,
34
- useMenubarMenu,
35
- } from './context';
36
- import type {
37
- MenubarContentProps,
38
- MenubarMenuProps,
39
- MenubarProps,
40
- MenubarTriggerProps,
41
- } from './types';
42
-
43
- export function Menubar({
44
- children,
45
- value,
46
- defaultValue,
47
- onValueChange,
48
- label = 'Menu bar',
49
- className,
50
- style,
51
- testID,
52
- }: MenubarProps) {
53
- const [openValue, setValue] = useControllableState<string | undefined>({
54
- value,
55
- defaultValue,
56
- onChange: onValueChange,
57
- });
58
- const context = useMemo(() => ({ value: openValue, setValue }), [openValue, setValue]);
59
- const palette = useMenuPalette();
60
- const barPaint = {
61
- backgroundColor: palette.trigger.background,
62
- borderColor: palette.trigger.border,
63
- boxShadow: palette.trigger.shadow,
64
- };
65
-
66
- return (
67
- <MenubarProvider value={context}>
68
- {/* `shadow-s` — the bar is a raised control, not an overlay, so it takes
69
- the lighter of Bloom's two elevation roles. */}
70
- <StyledView
71
- role="menubar"
72
- aria-label={label}
73
- testID={testID}
74
- className={cx(MENUBAR_CLASS, className)}
75
- // `shadow-s` reaches WEB through the class; NATIVE takes the same role as
76
- // an inline style, because `design-tokens/shadows` is platform-forked and
77
- // its own contract is that a multi-layer `box-shadow` is not something to
78
- // rely on NativeWind translating to RN elevation. On web the two agree, so
79
- // whichever wins paints the same thing.
80
- style={[barPaint, style]}>
81
- {children}
82
- </StyledView>
83
- </MenubarProvider>
84
- );
85
- }
86
-
87
- export function MenubarMenu({ children, value }: MenubarMenuProps) {
88
- const bar = useMenubar();
89
- const anchorRef = useRef<RNView | null>(null);
90
- const { setValue } = bar;
91
-
92
- const context = useMemo(
93
- () => ({
94
- open: bar.value === value,
95
- setOpen: (next: boolean) => setValue(next ? value : undefined),
96
- anchorRef,
97
- }),
98
- [bar.value, value, setValue],
99
- );
23
+ import { useMenubarMenu } from './context';
24
+ import type { MenubarContentProps } from './types';
100
25
 
101
- return <MenubarMenuProvider value={context}>{children}</MenubarMenuProvider>;
102
- }
103
-
104
- export function MenubarTrigger({
105
- children,
106
- asChild,
107
- disabled,
108
- label,
109
- className,
110
- style,
111
- testID,
112
- }: MenubarTriggerProps) {
113
- const menu = useMenubarMenu();
114
- const palette = useMenuPalette();
115
-
116
- // `flex items-center rounded-md px-2 py-1.5`, plus `bg-accent` while its menu
117
- // is open and `text-sm font-medium` for the label — the same chrome the web
118
- // fork draws, so the bar reads identically on both platforms.
119
- const trigger = (
120
- <StyledView
121
- className={cx(
122
- MENUBAR_TRIGGER_CLASS,
123
- menu.open && MENUBAR_TRIGGER_OPEN_CLASS,
124
- className,
125
- )}
126
- style={{ backgroundColor: menu.open ? palette.rowHighlight : 'transparent' }}>
127
- {typeof children === 'string' ? (
128
- <StyledText
129
- className={MENUBAR_TRIGGER_TEXT_CLASS}
130
- // `text-body-medium text-text-primary`, in Inter.
131
- style={[menuType('body-medium'), { color: palette.text }]}>
132
- {children}
133
- </StyledText>
134
- ) : (
135
- children
136
- )}
137
- </StyledView>
138
- );
139
-
140
- return (
141
- <TriggerSlot
142
- asChild={asChild}
143
- anchorRef={menu.anchorRef}
144
- style={style}
145
- testID={testID}
146
- handle={{
147
- onPress: () => menu.setOpen(!menu.open),
148
- disabled,
149
- accessibilityLabel: label,
150
- accessibilityRole: 'button',
151
- 'aria-haspopup': MENU_TRIGGER_POPUP,
152
- 'aria-expanded': menu.open,
153
- }}>
154
- {asChild ? children : trigger}
155
- </TriggerSlot>
156
- );
157
- }
26
+ export { Menubar, MenubarMenu, MenubarTrigger } from './MenubarBase';
158
27
 
159
28
  export function MenubarContent({ children, label = 'Menu', style }: MenubarContentProps) {
160
29
  const menu = useMenubarMenu();
@@ -1,160 +1,34 @@
1
1
  /**
2
- * `Menubar` — WEB. The bar is the same row of triggers; each menu is an anchored
3
- * panel from `floating/FloatingPanel` rather than a sheet.
2
+ * `Menubar` — WEB: each menu is an anchored panel from `floating/FloatingPanel`
3
+ * rather than a sheet.
4
+ *
5
+ * The bar, the per-menu state and the trigger are identical on both platforms
6
+ * and live in `MenubarBase`. What forks is this file: the surface a menu opens
7
+ * into, and which sub-menu the rows get — a FLYOUT here, which needs a pointer.
4
8
  *
5
9
  * `align="start"` and the trigger's own width as `minWidth` are what make a
6
10
  * menubar menu hang under its trigger the way a desktop menu bar does, rather
7
11
  * than centring like a popover.
8
12
  */
9
- import React, { useCallback, useMemo, useRef } from 'react';
10
- import type { View as RNView } from 'react-native';
13
+ import React, { useCallback, useMemo, useState } from 'react';
14
+ import type { View } from 'react-native';
11
15
 
12
16
  import {
13
17
  MENUBAR_ALIGN_OFFSET,
14
- MENUBAR_CLASS,
15
18
  MENUBAR_MENU_MIN_WIDTH_CLASS,
16
19
  MENUBAR_SIDE_OFFSET,
17
- MENUBAR_TRIGGER_CLASS,
18
- MENUBAR_TRIGGER_OPEN_CLASS,
19
- MENUBAR_TRIGGER_TEXT_CLASS,
20
- MENU_TRIGGER_POPUP,
21
20
  } from '../floating/constants';
22
21
  import { MenuSurfaceProvider, type MenuSurfaceContextValue } from '../floating/context';
23
22
  import { FloatingPanel } from '../floating/FloatingPanel';
23
+ import { hostElement, useMenuPanelKeys } from '../floating/menu-keyboard';
24
24
  import { createMenuRows } from '../floating/menu-rows';
25
25
  import { createFlyoutMenuSub } from '../floating/menu-sub-flyout';
26
26
  import { cx } from '../floating/shared';
27
- import { TriggerSlot } from '../floating/TriggerSlot';
28
27
  import { useAnchorRect } from '../floating/use-anchor-rect';
29
- import { useControllableState } from '../hooks/use-controllable-state';
30
- import { StyledText, StyledView } from '../styles/styled-primitives';
31
- import { useMenuPalette } from '../floating/menu-palette';
32
- import { menuType } from '../floating/menu-type';
33
- import {
34
- MenubarMenuProvider,
35
- MenubarProvider,
36
- useMenubar,
37
- useMenubarMenu,
38
- } from './context';
39
- import type {
40
- MenubarContentProps,
41
- MenubarMenuProps,
42
- MenubarProps,
43
- MenubarTriggerProps,
44
- } from './types';
45
-
46
- export function Menubar({
47
- children,
48
- value,
49
- defaultValue,
50
- onValueChange,
51
- label = 'Menu bar',
52
- className,
53
- style,
54
- testID,
55
- }: MenubarProps) {
56
- const [openValue, setValue] = useControllableState<string | undefined>({
57
- value,
58
- defaultValue,
59
- onChange: onValueChange,
60
- });
61
- const context = useMemo(() => ({ value: openValue, setValue }), [openValue, setValue]);
62
- const palette = useMenuPalette();
63
- const barPaint = {
64
- backgroundColor: palette.trigger.background,
65
- borderColor: palette.trigger.border,
66
- boxShadow: palette.trigger.shadow,
67
- };
68
-
69
- return (
70
- <MenubarProvider value={context}>
71
- {/* `shadow-s` — the bar is a raised control, not an overlay, so it takes
72
- the lighter of Bloom's two elevation roles. */}
73
- <StyledView
74
- role="menubar"
75
- aria-label={label}
76
- testID={testID}
77
- className={cx(MENUBAR_CLASS, className)}
78
- style={[barPaint, style]}>
79
- {children}
80
- </StyledView>
81
- </MenubarProvider>
82
- );
83
- }
84
-
85
- export function MenubarMenu({ children, value }: MenubarMenuProps) {
86
- const bar = useMenubar();
87
- const anchorRef = useRef<RNView | null>(null);
88
- const { setValue } = bar;
89
-
90
- const context = useMemo(
91
- () => ({
92
- open: bar.value === value,
93
- setOpen: (next: boolean) => setValue(next ? value : undefined),
94
- anchorRef,
95
- }),
96
- [bar.value, value, setValue],
97
- );
28
+ import { useMenubarMenu } from './context';
29
+ import type { MenubarContentProps } from './types';
98
30
 
99
- return <MenubarMenuProvider value={context}>{children}</MenubarMenuProvider>;
100
- }
101
-
102
- export function MenubarTrigger({
103
- children,
104
- asChild,
105
- disabled,
106
- label,
107
- className,
108
- style,
109
- testID,
110
- }: MenubarTriggerProps) {
111
- const menu = useMenubarMenu();
112
- const palette = useMenuPalette();
113
-
114
- // `flex items-center rounded-md px-2 py-1.5`, plus `bg-accent` while its menu
115
- // is open, and `text-sm font-medium` for the label. A menubar trigger is a
116
- // BUTTON with chrome of its own, not a bare hit box — leaving it unstyled is
117
- // why a Bloom menubar read as loose text against a pill-per-menu bar.
118
- // `asChild` still hands the whole thing to the caller.
119
- const trigger = (
120
- <StyledView
121
- className={cx(
122
- MENUBAR_TRIGGER_CLASS,
123
- menu.open && MENUBAR_TRIGGER_OPEN_CLASS,
124
- className,
125
- )}
126
- style={{ backgroundColor: menu.open ? palette.rowHighlight : 'transparent' }}>
127
- {typeof children === 'string' ? (
128
- <StyledText
129
- className={MENUBAR_TRIGGER_TEXT_CLASS}
130
- // `text-body-medium text-text-primary`, in Inter.
131
- style={[menuType('body-medium'), { color: palette.text }]}>
132
- {children}
133
- </StyledText>
134
- ) : (
135
- children
136
- )}
137
- </StyledView>
138
- );
139
-
140
- return (
141
- <TriggerSlot
142
- asChild={asChild}
143
- anchorRef={menu.anchorRef}
144
- style={style}
145
- testID={testID}
146
- handle={{
147
- onPress: () => menu.setOpen(!menu.open),
148
- disabled,
149
- accessibilityLabel: label,
150
- accessibilityRole: 'button',
151
- 'aria-haspopup': MENU_TRIGGER_POPUP,
152
- 'aria-expanded': menu.open,
153
- }}>
154
- {asChild ? children : trigger}
155
- </TriggerSlot>
156
- );
157
- }
31
+ export { Menubar, MenubarMenu, MenubarTrigger } from './MenubarBase';
158
32
 
159
33
  export function MenubarContent({
160
34
  children,
@@ -180,9 +54,12 @@ export function MenubarContent({
180
54
  () => ({ close, presentation: 'dropdown' }),
181
55
  [close],
182
56
  );
57
+ const [panel, setPanel] = useState<View | null>(null);
58
+ useMenuPanelKeys(hostElement(panel), { open: menu.open, onTab: close, intent: menu.focusIntent });
183
59
 
184
60
  return (
185
61
  <FloatingPanel
62
+ panelRef={setPanel}
186
63
  open={menu.open}
187
64
  anchor={anchor}
188
65
  role="menu"