@oxy.so/bloom 4.5.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 (614) 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/menubar.mdx +6 -2
  8. package/docs/popover.mdx +4 -2
  9. package/docs/segmented-control.mdx +12 -0
  10. package/docs/select.mdx +19 -0
  11. package/docs/tabs.mdx +12 -0
  12. package/lib/commonjs/agent-chat/index.web.js.map +1 -1
  13. package/lib/commonjs/ai-chat/index.web.js.map +1 -1
  14. package/lib/commonjs/alert-dialog/index.web.js +10 -1
  15. package/lib/commonjs/alert-dialog/index.web.js.map +1 -1
  16. package/lib/commonjs/avatar-group/index.web.js.map +1 -1
  17. package/lib/commonjs/bottom-sheet/index.web.js.map +1 -1
  18. package/lib/commonjs/code/index.js +13 -0
  19. package/lib/commonjs/code/index.js.map +1 -1
  20. package/lib/commonjs/command/index.web.js +5 -0
  21. package/lib/commonjs/command/index.web.js.map +1 -1
  22. package/lib/commonjs/composer-loader/ComposerLoader.web.js +9 -0
  23. package/lib/commonjs/composer-loader/ComposerLoader.web.js.map +1 -1
  24. package/lib/commonjs/composer-loader/index.web.js.map +1 -1
  25. package/lib/commonjs/composer-panel/index.web.js.map +1 -1
  26. package/lib/commonjs/connection-dots/index.web.js.map +1 -1
  27. package/lib/commonjs/connection-status/index.web.js.map +1 -1
  28. package/lib/commonjs/content-panel/index.web.js.map +1 -1
  29. package/lib/commonjs/context-menu/ContextMenu.web.js +22 -4
  30. package/lib/commonjs/context-menu/ContextMenu.web.js.map +1 -1
  31. package/lib/commonjs/context-menu/context.js.map +1 -1
  32. package/lib/commonjs/context-menu/index.web.js.map +1 -1
  33. package/lib/commonjs/dialog/Dialog.web.js +14 -0
  34. package/lib/commonjs/dialog/Dialog.web.js.map +1 -1
  35. package/lib/commonjs/dialog/index.web.js.map +1 -1
  36. package/lib/commonjs/dropdown-menu/DropdownMenu.web.js +22 -2
  37. package/lib/commonjs/dropdown-menu/DropdownMenu.web.js.map +1 -1
  38. package/lib/commonjs/dropdown-menu/index.web.js.map +1 -1
  39. package/lib/commonjs/floating/FloatingPanel.js +42 -33
  40. package/lib/commonjs/floating/FloatingPanel.js.map +1 -1
  41. package/lib/commonjs/floating/escape-stack.js +90 -0
  42. package/lib/commonjs/floating/escape-stack.js.map +1 -0
  43. package/lib/commonjs/floating/menu-keyboard.js +238 -0
  44. package/lib/commonjs/floating/menu-keyboard.js.map +1 -0
  45. package/lib/commonjs/floating/menu-sub-flyout.js +28 -16
  46. package/lib/commonjs/floating/menu-sub-flyout.js.map +1 -1
  47. package/lib/commonjs/fonts/index.web.js.map +1 -1
  48. package/lib/commonjs/frosted-icon-button/FrostedIconButton.web.js +10 -0
  49. package/lib/commonjs/frosted-icon-button/FrostedIconButton.web.js.map +1 -1
  50. package/lib/commonjs/frosted-icon-button/index.web.js.map +1 -1
  51. package/lib/commonjs/hooks/roving-focus.js +192 -0
  52. package/lib/commonjs/hooks/roving-focus.js.map +1 -0
  53. package/lib/commonjs/hover-card/index.web.js.map +1 -1
  54. package/lib/commonjs/icons/remix/RiBookReadLine.js +12 -0
  55. package/lib/commonjs/icons/remix/RiBookReadLine.js.map +1 -0
  56. package/lib/commonjs/icons/remix/RiBugLine.js +12 -0
  57. package/lib/commonjs/icons/remix/RiBugLine.js.map +1 -0
  58. package/lib/commonjs/icons/remix/RiChat1Line.js +12 -0
  59. package/lib/commonjs/icons/remix/RiChat1Line.js.map +1 -0
  60. package/lib/commonjs/icons/remix/RiCloudLine.js +12 -0
  61. package/lib/commonjs/icons/remix/RiCloudLine.js.map +1 -0
  62. package/lib/commonjs/icons/remix/RiCodeLine.js +12 -0
  63. package/lib/commonjs/icons/remix/RiCodeLine.js.map +1 -0
  64. package/lib/commonjs/icons/remix/RiCpuLine.js +12 -0
  65. package/lib/commonjs/icons/remix/RiCpuLine.js.map +1 -0
  66. package/lib/commonjs/icons/remix/RiFloodLine.js +12 -0
  67. package/lib/commonjs/icons/remix/RiFloodLine.js.map +1 -0
  68. package/lib/commonjs/icons/remix/RiLockUnlockLine.js +12 -0
  69. package/lib/commonjs/icons/remix/RiLockUnlockLine.js.map +1 -0
  70. package/lib/commonjs/icons/remix/RiMoneyDollarCircleLine.js +12 -0
  71. package/lib/commonjs/icons/remix/RiMoneyDollarCircleLine.js.map +1 -0
  72. package/lib/commonjs/icons/remix/RiPlayCircleLine.js +12 -0
  73. package/lib/commonjs/icons/remix/RiPlayCircleLine.js.map +1 -0
  74. package/lib/commonjs/icons/remix/RiRocket2Line.js +12 -0
  75. package/lib/commonjs/icons/remix/RiRocket2Line.js.map +1 -0
  76. package/lib/commonjs/icons/remix/RiServerLine.js +12 -0
  77. package/lib/commonjs/icons/remix/RiServerLine.js.map +1 -0
  78. package/lib/commonjs/icons/remix/RiShareBoxLine.js +12 -0
  79. package/lib/commonjs/icons/remix/RiShareBoxLine.js.map +1 -0
  80. package/lib/commonjs/icons/remix/RiTv2Line.js +12 -0
  81. package/lib/commonjs/icons/remix/RiTv2Line.js.map +1 -0
  82. package/lib/commonjs/icons/remix/index.js +98 -0
  83. package/lib/commonjs/icons/remix/index.js.map +1 -1
  84. package/lib/commonjs/list/index.web.js.map +1 -1
  85. package/lib/commonjs/loading/Loading.js +21 -157
  86. package/lib/commonjs/loading/Loading.js.map +1 -1
  87. package/lib/commonjs/loading/Loading.web.js +23 -157
  88. package/lib/commonjs/loading/Loading.web.js.map +1 -1
  89. package/lib/commonjs/loading/LoadingBase.js +202 -0
  90. package/lib/commonjs/loading/LoadingBase.js.map +1 -0
  91. package/lib/commonjs/loading/index.web.js.map +1 -1
  92. package/lib/commonjs/media-flight/index.web.js.map +1 -1
  93. package/lib/commonjs/menubar/Menubar.js +31 -123
  94. package/lib/commonjs/menubar/Menubar.js.map +1 -1
  95. package/lib/commonjs/menubar/Menubar.web.js +33 -114
  96. package/lib/commonjs/menubar/Menubar.web.js.map +1 -1
  97. package/lib/commonjs/menubar/MenubarBase.js +154 -0
  98. package/lib/commonjs/menubar/MenubarBase.js.map +1 -0
  99. package/lib/commonjs/menubar/index.web.js.map +1 -1
  100. package/lib/commonjs/popover/index.web.js.map +1 -1
  101. package/lib/commonjs/popover/parts.js +69 -11
  102. package/lib/commonjs/popover/parts.js.map +1 -1
  103. package/lib/commonjs/popover/surface.js +39 -13
  104. package/lib/commonjs/popover/surface.js.map +1 -1
  105. package/lib/commonjs/portal/index.web.js.map +1 -1
  106. package/lib/commonjs/progressive-blur/index.web.js.map +1 -1
  107. package/lib/commonjs/scroll/index.web.js.map +1 -1
  108. package/lib/commonjs/segmented-control/SegmentedControl.js +36 -1
  109. package/lib/commonjs/segmented-control/SegmentedControl.js.map +1 -1
  110. package/lib/commonjs/select/Select.js +6 -81
  111. package/lib/commonjs/select/Select.js.map +1 -1
  112. package/lib/commonjs/select/Select.web.js +147 -85
  113. package/lib/commonjs/select/Select.web.js.map +1 -1
  114. package/lib/commonjs/select/index.js +4 -4
  115. package/lib/commonjs/select/index.js.map +1 -1
  116. package/lib/commonjs/select/index.web.js +4 -4
  117. package/lib/commonjs/select/index.web.js.map +1 -1
  118. package/lib/commonjs/select/shared.js +110 -5
  119. package/lib/commonjs/select/shared.js.map +1 -1
  120. package/lib/commonjs/sidebar/SidebarTeamMenu.js +1 -1
  121. package/lib/commonjs/sidebar/SidebarTeamMenu.js.map +1 -1
  122. package/lib/commonjs/sidebar/SidebarUserMenu.js +1 -1
  123. package/lib/commonjs/sidebar/SidebarUserMenu.js.map +1 -1
  124. package/lib/commonjs/sidebar/parts.js +9 -9
  125. package/lib/commonjs/sidebar/parts.js.map +1 -1
  126. package/lib/commonjs/surfaces/SurfaceHost.js +6 -0
  127. package/lib/commonjs/surfaces/SurfaceHost.js.map +1 -1
  128. package/lib/commonjs/surfaces/index.web.js +14 -4
  129. package/lib/commonjs/surfaces/index.web.js.map +1 -1
  130. package/lib/commonjs/tab-bar/index.web.js +13 -10
  131. package/lib/commonjs/tab-bar/index.web.js.map +1 -1
  132. package/lib/commonjs/tabs/Tabs.js +49 -2
  133. package/lib/commonjs/tabs/Tabs.js.map +1 -1
  134. package/lib/commonjs/theme/color-scope/index.web.js.map +1 -1
  135. package/lib/commonjs/theme/seed-scope/index.web.js.map +1 -1
  136. package/lib/commonjs/tooltip/index.web.js.map +1 -1
  137. package/lib/module/agent-chat/index.web.js +5 -3
  138. package/lib/module/agent-chat/index.web.js.map +1 -1
  139. package/lib/module/ai-chat/index.web.js +5 -2
  140. package/lib/module/ai-chat/index.web.js.map +1 -1
  141. package/lib/module/alert-dialog/index.web.js +10 -1
  142. package/lib/module/alert-dialog/index.web.js.map +1 -1
  143. package/lib/module/avatar-group/index.web.js +5 -0
  144. package/lib/module/avatar-group/index.web.js.map +1 -1
  145. package/lib/module/bottom-sheet/index.web.js +5 -0
  146. package/lib/module/bottom-sheet/index.web.js.map +1 -1
  147. package/lib/module/code/index.js +1 -0
  148. package/lib/module/code/index.js.map +1 -1
  149. package/lib/module/command/index.web.js +5 -0
  150. package/lib/module/command/index.web.js.map +1 -1
  151. package/lib/module/composer-loader/ComposerLoader.web.js +8 -0
  152. package/lib/module/composer-loader/ComposerLoader.web.js.map +1 -1
  153. package/lib/module/composer-loader/index.web.js +5 -2
  154. package/lib/module/composer-loader/index.web.js.map +1 -1
  155. package/lib/module/composer-panel/index.web.js +5 -3
  156. package/lib/module/composer-panel/index.web.js.map +1 -1
  157. package/lib/module/connection-dots/index.web.js +5 -0
  158. package/lib/module/connection-dots/index.web.js.map +1 -1
  159. package/lib/module/connection-status/index.web.js +5 -0
  160. package/lib/module/connection-status/index.web.js.map +1 -1
  161. package/lib/module/content-panel/index.web.js +5 -0
  162. package/lib/module/content-panel/index.web.js.map +1 -1
  163. package/lib/module/context-menu/ContextMenu.web.js +22 -4
  164. package/lib/module/context-menu/ContextMenu.web.js.map +1 -1
  165. package/lib/module/context-menu/context.js.map +1 -1
  166. package/lib/module/context-menu/index.web.js +5 -0
  167. package/lib/module/context-menu/index.web.js.map +1 -1
  168. package/lib/module/dialog/Dialog.web.js +13 -0
  169. package/lib/module/dialog/Dialog.web.js.map +1 -1
  170. package/lib/module/dialog/index.web.js +7 -11
  171. package/lib/module/dialog/index.web.js.map +1 -1
  172. package/lib/module/dropdown-menu/DropdownMenu.web.js +23 -3
  173. package/lib/module/dropdown-menu/DropdownMenu.web.js.map +1 -1
  174. package/lib/module/dropdown-menu/index.web.js +5 -0
  175. package/lib/module/dropdown-menu/index.web.js.map +1 -1
  176. package/lib/module/floating/FloatingPanel.js +42 -33
  177. package/lib/module/floating/FloatingPanel.js.map +1 -1
  178. package/lib/module/floating/escape-stack.js +85 -0
  179. package/lib/module/floating/escape-stack.js.map +1 -0
  180. package/lib/module/floating/menu-keyboard.js +227 -0
  181. package/lib/module/floating/menu-keyboard.js.map +1 -0
  182. package/lib/module/floating/menu-sub-flyout.js +28 -16
  183. package/lib/module/floating/menu-sub-flyout.js.map +1 -1
  184. package/lib/module/fonts/index.web.js +5 -20
  185. package/lib/module/fonts/index.web.js.map +1 -1
  186. package/lib/module/frosted-icon-button/FrostedIconButton.web.js +9 -0
  187. package/lib/module/frosted-icon-button/FrostedIconButton.web.js.map +1 -1
  188. package/lib/module/frosted-icon-button/index.web.js +5 -7
  189. package/lib/module/frosted-icon-button/index.web.js.map +1 -1
  190. package/lib/module/hooks/roving-focus.js +181 -0
  191. package/lib/module/hooks/roving-focus.js.map +1 -0
  192. package/lib/module/hover-card/index.web.js +5 -0
  193. package/lib/module/hover-card/index.web.js.map +1 -1
  194. package/lib/module/icons/remix/RiBookReadLine.js +9 -0
  195. package/lib/module/icons/remix/RiBookReadLine.js.map +1 -0
  196. package/lib/module/icons/remix/RiBugLine.js +9 -0
  197. package/lib/module/icons/remix/RiBugLine.js.map +1 -0
  198. package/lib/module/icons/remix/RiChat1Line.js +9 -0
  199. package/lib/module/icons/remix/RiChat1Line.js.map +1 -0
  200. package/lib/module/icons/remix/RiCloudLine.js +9 -0
  201. package/lib/module/icons/remix/RiCloudLine.js.map +1 -0
  202. package/lib/module/icons/remix/RiCodeLine.js +9 -0
  203. package/lib/module/icons/remix/RiCodeLine.js.map +1 -0
  204. package/lib/module/icons/remix/RiCpuLine.js +9 -0
  205. package/lib/module/icons/remix/RiCpuLine.js.map +1 -0
  206. package/lib/module/icons/remix/RiFloodLine.js +9 -0
  207. package/lib/module/icons/remix/RiFloodLine.js.map +1 -0
  208. package/lib/module/icons/remix/RiLockUnlockLine.js +9 -0
  209. package/lib/module/icons/remix/RiLockUnlockLine.js.map +1 -0
  210. package/lib/module/icons/remix/RiMoneyDollarCircleLine.js +9 -0
  211. package/lib/module/icons/remix/RiMoneyDollarCircleLine.js.map +1 -0
  212. package/lib/module/icons/remix/RiPlayCircleLine.js +9 -0
  213. package/lib/module/icons/remix/RiPlayCircleLine.js.map +1 -0
  214. package/lib/module/icons/remix/RiRocket2Line.js +9 -0
  215. package/lib/module/icons/remix/RiRocket2Line.js.map +1 -0
  216. package/lib/module/icons/remix/RiServerLine.js +9 -0
  217. package/lib/module/icons/remix/RiServerLine.js.map +1 -0
  218. package/lib/module/icons/remix/RiShareBoxLine.js +9 -0
  219. package/lib/module/icons/remix/RiShareBoxLine.js.map +1 -0
  220. package/lib/module/icons/remix/RiTv2Line.js +9 -0
  221. package/lib/module/icons/remix/RiTv2Line.js.map +1 -0
  222. package/lib/module/icons/remix/index.js +14 -0
  223. package/lib/module/icons/remix/index.js.map +1 -1
  224. package/lib/module/list/index.web.js +5 -0
  225. package/lib/module/list/index.web.js.map +1 -1
  226. package/lib/module/loading/Loading.js +17 -155
  227. package/lib/module/loading/Loading.js.map +1 -1
  228. package/lib/module/loading/Loading.web.js +19 -155
  229. package/lib/module/loading/Loading.web.js.map +1 -1
  230. package/lib/module/loading/LoadingBase.js +194 -0
  231. package/lib/module/loading/LoadingBase.js.map +1 -0
  232. package/lib/module/loading/index.web.js +5 -13
  233. package/lib/module/loading/index.web.js.map +1 -1
  234. package/lib/module/media-flight/index.web.js +5 -9
  235. package/lib/module/media-flight/index.web.js.map +1 -1
  236. package/lib/module/menubar/Menubar.js +15 -122
  237. package/lib/module/menubar/Menubar.js.map +1 -1
  238. package/lib/module/menubar/Menubar.web.js +18 -114
  239. package/lib/module/menubar/Menubar.web.js.map +1 -1
  240. package/lib/module/menubar/MenubarBase.js +146 -0
  241. package/lib/module/menubar/MenubarBase.js.map +1 -0
  242. package/lib/module/menubar/index.web.js +5 -0
  243. package/lib/module/menubar/index.web.js.map +1 -1
  244. package/lib/module/motion/index.web.js +5 -5
  245. package/lib/module/motion/index.web.js.map +1 -1
  246. package/lib/module/popover/index.web.js +5 -0
  247. package/lib/module/popover/index.web.js.map +1 -1
  248. package/lib/module/popover/parts.js +70 -12
  249. package/lib/module/popover/parts.js.map +1 -1
  250. package/lib/module/popover/surface.js +39 -13
  251. package/lib/module/popover/surface.js.map +1 -1
  252. package/lib/module/portal/index.web.js +6 -1
  253. package/lib/module/portal/index.web.js.map +1 -1
  254. package/lib/module/progressive-blur/index.web.js +5 -0
  255. package/lib/module/progressive-blur/index.web.js.map +1 -1
  256. package/lib/module/scroll/index.web.js +5 -0
  257. package/lib/module/scroll/index.web.js.map +1 -1
  258. package/lib/module/segmented-control/SegmentedControl.js +36 -1
  259. package/lib/module/segmented-control/SegmentedControl.js.map +1 -1
  260. package/lib/module/select/Select.js +5 -77
  261. package/lib/module/select/Select.js.map +1 -1
  262. package/lib/module/select/Select.web.js +147 -82
  263. package/lib/module/select/Select.web.js.map +1 -1
  264. package/lib/module/select/index.js +2 -2
  265. package/lib/module/select/index.js.map +1 -1
  266. package/lib/module/select/index.web.js +7 -2
  267. package/lib/module/select/index.web.js.map +1 -1
  268. package/lib/module/select/shared.js +106 -6
  269. package/lib/module/select/shared.js.map +1 -1
  270. package/lib/module/sidebar/SidebarTeamMenu.js +2 -2
  271. package/lib/module/sidebar/SidebarTeamMenu.js.map +1 -1
  272. package/lib/module/sidebar/SidebarUserMenu.js +2 -2
  273. package/lib/module/sidebar/SidebarUserMenu.js.map +1 -1
  274. package/lib/module/sidebar/parts.js +8 -8
  275. package/lib/module/sidebar/parts.js.map +1 -1
  276. package/lib/module/surfaces/SurfaceHost.js +6 -0
  277. package/lib/module/surfaces/SurfaceHost.js.map +1 -1
  278. package/lib/module/surfaces/index.web.js +14 -4
  279. package/lib/module/surfaces/index.web.js.map +1 -1
  280. package/lib/module/tab-bar/index.web.js +13 -10
  281. package/lib/module/tab-bar/index.web.js.map +1 -1
  282. package/lib/module/tabs/Tabs.js +49 -2
  283. package/lib/module/tabs/Tabs.js.map +1 -1
  284. package/lib/module/theme/color-scope/index.web.js +5 -0
  285. package/lib/module/theme/color-scope/index.web.js.map +1 -1
  286. package/lib/module/theme/seed-scope/index.web.js +5 -0
  287. package/lib/module/theme/seed-scope/index.web.js.map +1 -1
  288. package/lib/module/tooltip/index.web.js +5 -0
  289. package/lib/module/tooltip/index.web.js.map +1 -1
  290. package/lib/typescript/commonjs/agent-chat/index.web.d.ts.map +1 -1
  291. package/lib/typescript/commonjs/ai-chat/index.web.d.ts.map +1 -1
  292. package/lib/typescript/commonjs/alert-dialog/index.web.d.ts +5 -1
  293. package/lib/typescript/commonjs/alert-dialog/index.web.d.ts.map +1 -1
  294. package/lib/typescript/commonjs/avatar-group/index.web.d.ts.map +1 -1
  295. package/lib/typescript/commonjs/bottom-sheet/index.web.d.ts.map +1 -1
  296. package/lib/typescript/commonjs/code/index.d.ts +2 -0
  297. package/lib/typescript/commonjs/code/index.d.ts.map +1 -1
  298. package/lib/typescript/commonjs/command/index.web.d.ts.map +1 -1
  299. package/lib/typescript/commonjs/composer-loader/ComposerLoader.web.d.ts +8 -0
  300. package/lib/typescript/commonjs/composer-loader/ComposerLoader.web.d.ts.map +1 -1
  301. package/lib/typescript/commonjs/composer-loader/index.web.d.ts.map +1 -1
  302. package/lib/typescript/commonjs/composer-panel/index.web.d.ts.map +1 -1
  303. package/lib/typescript/commonjs/connection-dots/index.web.d.ts.map +1 -1
  304. package/lib/typescript/commonjs/connection-status/index.web.d.ts.map +1 -1
  305. package/lib/typescript/commonjs/content-panel/index.web.d.ts.map +1 -1
  306. package/lib/typescript/commonjs/context-menu/ContextMenu.web.d.ts.map +1 -1
  307. package/lib/typescript/commonjs/context-menu/context.d.ts +3 -0
  308. package/lib/typescript/commonjs/context-menu/context.d.ts.map +1 -1
  309. package/lib/typescript/commonjs/context-menu/index.web.d.ts.map +1 -1
  310. package/lib/typescript/commonjs/dialog/Dialog.web.d.ts.map +1 -1
  311. package/lib/typescript/commonjs/dialog/index.web.d.ts +2 -1
  312. package/lib/typescript/commonjs/dialog/index.web.d.ts.map +1 -1
  313. package/lib/typescript/commonjs/dropdown-menu/DropdownMenu.web.d.ts.map +1 -1
  314. package/lib/typescript/commonjs/dropdown-menu/index.web.d.ts.map +1 -1
  315. package/lib/typescript/commonjs/floating/FloatingPanel.d.ts +1 -1
  316. package/lib/typescript/commonjs/floating/FloatingPanel.d.ts.map +1 -1
  317. package/lib/typescript/commonjs/floating/escape-stack.d.ts +55 -0
  318. package/lib/typescript/commonjs/floating/escape-stack.d.ts.map +1 -0
  319. package/lib/typescript/commonjs/floating/menu-keyboard.d.ts +57 -0
  320. package/lib/typescript/commonjs/floating/menu-keyboard.d.ts.map +1 -0
  321. package/lib/typescript/commonjs/floating/menu-sub-flyout.d.ts.map +1 -1
  322. package/lib/typescript/commonjs/floating/types.d.ts +11 -0
  323. package/lib/typescript/commonjs/floating/types.d.ts.map +1 -1
  324. package/lib/typescript/commonjs/fonts/index.web.d.ts.map +1 -1
  325. package/lib/typescript/commonjs/frosted-icon-button/FrostedIconButton.web.d.ts.map +1 -1
  326. package/lib/typescript/commonjs/frosted-icon-button/index.web.d.ts.map +1 -1
  327. package/lib/typescript/commonjs/hooks/roving-focus.d.ts +66 -0
  328. package/lib/typescript/commonjs/hooks/roving-focus.d.ts.map +1 -0
  329. package/lib/typescript/commonjs/hover-card/index.web.d.ts.map +1 -1
  330. package/lib/typescript/commonjs/icons/remix/RiBookReadLine.d.ts +8 -0
  331. package/lib/typescript/commonjs/icons/remix/RiBookReadLine.d.ts.map +1 -0
  332. package/lib/typescript/commonjs/icons/remix/RiBugLine.d.ts +8 -0
  333. package/lib/typescript/commonjs/icons/remix/RiBugLine.d.ts.map +1 -0
  334. package/lib/typescript/commonjs/icons/remix/RiChat1Line.d.ts +8 -0
  335. package/lib/typescript/commonjs/icons/remix/RiChat1Line.d.ts.map +1 -0
  336. package/lib/typescript/commonjs/icons/remix/RiCloudLine.d.ts +8 -0
  337. package/lib/typescript/commonjs/icons/remix/RiCloudLine.d.ts.map +1 -0
  338. package/lib/typescript/commonjs/icons/remix/RiCodeLine.d.ts +8 -0
  339. package/lib/typescript/commonjs/icons/remix/RiCodeLine.d.ts.map +1 -0
  340. package/lib/typescript/commonjs/icons/remix/RiCpuLine.d.ts +8 -0
  341. package/lib/typescript/commonjs/icons/remix/RiCpuLine.d.ts.map +1 -0
  342. package/lib/typescript/commonjs/icons/remix/RiFloodLine.d.ts +8 -0
  343. package/lib/typescript/commonjs/icons/remix/RiFloodLine.d.ts.map +1 -0
  344. package/lib/typescript/commonjs/icons/remix/RiLockUnlockLine.d.ts +8 -0
  345. package/lib/typescript/commonjs/icons/remix/RiLockUnlockLine.d.ts.map +1 -0
  346. package/lib/typescript/commonjs/icons/remix/RiMoneyDollarCircleLine.d.ts +8 -0
  347. package/lib/typescript/commonjs/icons/remix/RiMoneyDollarCircleLine.d.ts.map +1 -0
  348. package/lib/typescript/commonjs/icons/remix/RiPlayCircleLine.d.ts +8 -0
  349. package/lib/typescript/commonjs/icons/remix/RiPlayCircleLine.d.ts.map +1 -0
  350. package/lib/typescript/commonjs/icons/remix/RiRocket2Line.d.ts +8 -0
  351. package/lib/typescript/commonjs/icons/remix/RiRocket2Line.d.ts.map +1 -0
  352. package/lib/typescript/commonjs/icons/remix/RiServerLine.d.ts +8 -0
  353. package/lib/typescript/commonjs/icons/remix/RiServerLine.d.ts.map +1 -0
  354. package/lib/typescript/commonjs/icons/remix/RiShareBoxLine.d.ts +8 -0
  355. package/lib/typescript/commonjs/icons/remix/RiShareBoxLine.d.ts.map +1 -0
  356. package/lib/typescript/commonjs/icons/remix/RiTv2Line.d.ts +8 -0
  357. package/lib/typescript/commonjs/icons/remix/RiTv2Line.d.ts.map +1 -0
  358. package/lib/typescript/commonjs/icons/remix/index.d.ts +14 -0
  359. package/lib/typescript/commonjs/icons/remix/index.d.ts.map +1 -1
  360. package/lib/typescript/commonjs/list/index.web.d.ts.map +1 -1
  361. package/lib/typescript/commonjs/loading/Loading.d.ts +8 -2
  362. package/lib/typescript/commonjs/loading/Loading.d.ts.map +1 -1
  363. package/lib/typescript/commonjs/loading/Loading.web.d.ts +10 -2
  364. package/lib/typescript/commonjs/loading/Loading.web.d.ts.map +1 -1
  365. package/lib/typescript/commonjs/loading/LoadingBase.d.ts +64 -0
  366. package/lib/typescript/commonjs/loading/LoadingBase.d.ts.map +1 -0
  367. package/lib/typescript/commonjs/loading/index.web.d.ts.map +1 -1
  368. package/lib/typescript/commonjs/media-flight/index.web.d.ts +0 -9
  369. package/lib/typescript/commonjs/media-flight/index.web.d.ts.map +1 -1
  370. package/lib/typescript/commonjs/menubar/Menubar.d.ts +14 -9
  371. package/lib/typescript/commonjs/menubar/Menubar.d.ts.map +1 -1
  372. package/lib/typescript/commonjs/menubar/Menubar.web.d.ts +8 -6
  373. package/lib/typescript/commonjs/menubar/Menubar.web.d.ts.map +1 -1
  374. package/lib/typescript/commonjs/menubar/MenubarBase.d.ts +5 -0
  375. package/lib/typescript/commonjs/menubar/MenubarBase.d.ts.map +1 -0
  376. package/lib/typescript/commonjs/menubar/index.web.d.ts.map +1 -1
  377. package/lib/typescript/commonjs/motion/index.web.d.ts +0 -5
  378. package/lib/typescript/commonjs/motion/index.web.d.ts.map +1 -1
  379. package/lib/typescript/commonjs/popover/index.web.d.ts.map +1 -1
  380. package/lib/typescript/commonjs/popover/parts.d.ts.map +1 -1
  381. package/lib/typescript/commonjs/popover/surface.d.ts +15 -5
  382. package/lib/typescript/commonjs/popover/surface.d.ts.map +1 -1
  383. package/lib/typescript/commonjs/portal/index.web.d.ts +1 -1
  384. package/lib/typescript/commonjs/portal/index.web.d.ts.map +1 -1
  385. package/lib/typescript/commonjs/progressive-blur/index.web.d.ts.map +1 -1
  386. package/lib/typescript/commonjs/scroll/index.web.d.ts.map +1 -1
  387. package/lib/typescript/commonjs/segmented-control/SegmentedControl.d.ts.map +1 -1
  388. package/lib/typescript/commonjs/select/Select.d.ts +2 -4
  389. package/lib/typescript/commonjs/select/Select.d.ts.map +1 -1
  390. package/lib/typescript/commonjs/select/Select.web.d.ts +2 -4
  391. package/lib/typescript/commonjs/select/Select.web.d.ts.map +1 -1
  392. package/lib/typescript/commonjs/select/index.d.ts +2 -2
  393. package/lib/typescript/commonjs/select/index.d.ts.map +1 -1
  394. package/lib/typescript/commonjs/select/index.web.d.ts +2 -2
  395. package/lib/typescript/commonjs/select/index.web.d.ts.map +1 -1
  396. package/lib/typescript/commonjs/select/shared.d.ts +52 -5
  397. package/lib/typescript/commonjs/select/shared.d.ts.map +1 -1
  398. package/lib/typescript/commonjs/select/types.d.ts +6 -0
  399. package/lib/typescript/commonjs/select/types.d.ts.map +1 -1
  400. package/lib/typescript/commonjs/sidebar/parts.d.ts +8 -2
  401. package/lib/typescript/commonjs/sidebar/parts.d.ts.map +1 -1
  402. package/lib/typescript/commonjs/surfaces/SurfaceHost.d.ts.map +1 -1
  403. package/lib/typescript/commonjs/surfaces/index.web.d.ts +9 -4
  404. package/lib/typescript/commonjs/surfaces/index.web.d.ts.map +1 -1
  405. package/lib/typescript/commonjs/tab-bar/index.web.d.ts.map +1 -1
  406. package/lib/typescript/commonjs/tabs/Tabs.d.ts.map +1 -1
  407. package/lib/typescript/commonjs/tabs/types.d.ts +6 -0
  408. package/lib/typescript/commonjs/tabs/types.d.ts.map +1 -1
  409. package/lib/typescript/commonjs/theme/color-scope/index.web.d.ts.map +1 -1
  410. package/lib/typescript/commonjs/theme/seed-scope/index.web.d.ts.map +1 -1
  411. package/lib/typescript/commonjs/tooltip/index.web.d.ts.map +1 -1
  412. package/lib/typescript/module/agent-chat/index.web.d.ts.map +1 -1
  413. package/lib/typescript/module/ai-chat/index.web.d.ts.map +1 -1
  414. package/lib/typescript/module/alert-dialog/index.web.d.ts +5 -1
  415. package/lib/typescript/module/alert-dialog/index.web.d.ts.map +1 -1
  416. package/lib/typescript/module/avatar-group/index.web.d.ts.map +1 -1
  417. package/lib/typescript/module/bottom-sheet/index.web.d.ts.map +1 -1
  418. package/lib/typescript/module/code/index.d.ts +2 -0
  419. package/lib/typescript/module/code/index.d.ts.map +1 -1
  420. package/lib/typescript/module/command/index.web.d.ts.map +1 -1
  421. package/lib/typescript/module/composer-loader/ComposerLoader.web.d.ts +8 -0
  422. package/lib/typescript/module/composer-loader/ComposerLoader.web.d.ts.map +1 -1
  423. package/lib/typescript/module/composer-loader/index.web.d.ts.map +1 -1
  424. package/lib/typescript/module/composer-panel/index.web.d.ts.map +1 -1
  425. package/lib/typescript/module/connection-dots/index.web.d.ts.map +1 -1
  426. package/lib/typescript/module/connection-status/index.web.d.ts.map +1 -1
  427. package/lib/typescript/module/content-panel/index.web.d.ts.map +1 -1
  428. package/lib/typescript/module/context-menu/ContextMenu.web.d.ts.map +1 -1
  429. package/lib/typescript/module/context-menu/context.d.ts +3 -0
  430. package/lib/typescript/module/context-menu/context.d.ts.map +1 -1
  431. package/lib/typescript/module/context-menu/index.web.d.ts.map +1 -1
  432. package/lib/typescript/module/dialog/Dialog.web.d.ts.map +1 -1
  433. package/lib/typescript/module/dialog/index.web.d.ts +2 -1
  434. package/lib/typescript/module/dialog/index.web.d.ts.map +1 -1
  435. package/lib/typescript/module/dropdown-menu/DropdownMenu.web.d.ts.map +1 -1
  436. package/lib/typescript/module/dropdown-menu/index.web.d.ts.map +1 -1
  437. package/lib/typescript/module/floating/FloatingPanel.d.ts +1 -1
  438. package/lib/typescript/module/floating/FloatingPanel.d.ts.map +1 -1
  439. package/lib/typescript/module/floating/escape-stack.d.ts +55 -0
  440. package/lib/typescript/module/floating/escape-stack.d.ts.map +1 -0
  441. package/lib/typescript/module/floating/menu-keyboard.d.ts +57 -0
  442. package/lib/typescript/module/floating/menu-keyboard.d.ts.map +1 -0
  443. package/lib/typescript/module/floating/menu-sub-flyout.d.ts.map +1 -1
  444. package/lib/typescript/module/floating/types.d.ts +11 -0
  445. package/lib/typescript/module/floating/types.d.ts.map +1 -1
  446. package/lib/typescript/module/fonts/index.web.d.ts.map +1 -1
  447. package/lib/typescript/module/frosted-icon-button/FrostedIconButton.web.d.ts.map +1 -1
  448. package/lib/typescript/module/frosted-icon-button/index.web.d.ts.map +1 -1
  449. package/lib/typescript/module/hooks/roving-focus.d.ts +66 -0
  450. package/lib/typescript/module/hooks/roving-focus.d.ts.map +1 -0
  451. package/lib/typescript/module/hover-card/index.web.d.ts.map +1 -1
  452. package/lib/typescript/module/icons/remix/RiBookReadLine.d.ts +8 -0
  453. package/lib/typescript/module/icons/remix/RiBookReadLine.d.ts.map +1 -0
  454. package/lib/typescript/module/icons/remix/RiBugLine.d.ts +8 -0
  455. package/lib/typescript/module/icons/remix/RiBugLine.d.ts.map +1 -0
  456. package/lib/typescript/module/icons/remix/RiChat1Line.d.ts +8 -0
  457. package/lib/typescript/module/icons/remix/RiChat1Line.d.ts.map +1 -0
  458. package/lib/typescript/module/icons/remix/RiCloudLine.d.ts +8 -0
  459. package/lib/typescript/module/icons/remix/RiCloudLine.d.ts.map +1 -0
  460. package/lib/typescript/module/icons/remix/RiCodeLine.d.ts +8 -0
  461. package/lib/typescript/module/icons/remix/RiCodeLine.d.ts.map +1 -0
  462. package/lib/typescript/module/icons/remix/RiCpuLine.d.ts +8 -0
  463. package/lib/typescript/module/icons/remix/RiCpuLine.d.ts.map +1 -0
  464. package/lib/typescript/module/icons/remix/RiFloodLine.d.ts +8 -0
  465. package/lib/typescript/module/icons/remix/RiFloodLine.d.ts.map +1 -0
  466. package/lib/typescript/module/icons/remix/RiLockUnlockLine.d.ts +8 -0
  467. package/lib/typescript/module/icons/remix/RiLockUnlockLine.d.ts.map +1 -0
  468. package/lib/typescript/module/icons/remix/RiMoneyDollarCircleLine.d.ts +8 -0
  469. package/lib/typescript/module/icons/remix/RiMoneyDollarCircleLine.d.ts.map +1 -0
  470. package/lib/typescript/module/icons/remix/RiPlayCircleLine.d.ts +8 -0
  471. package/lib/typescript/module/icons/remix/RiPlayCircleLine.d.ts.map +1 -0
  472. package/lib/typescript/module/icons/remix/RiRocket2Line.d.ts +8 -0
  473. package/lib/typescript/module/icons/remix/RiRocket2Line.d.ts.map +1 -0
  474. package/lib/typescript/module/icons/remix/RiServerLine.d.ts +8 -0
  475. package/lib/typescript/module/icons/remix/RiServerLine.d.ts.map +1 -0
  476. package/lib/typescript/module/icons/remix/RiShareBoxLine.d.ts +8 -0
  477. package/lib/typescript/module/icons/remix/RiShareBoxLine.d.ts.map +1 -0
  478. package/lib/typescript/module/icons/remix/RiTv2Line.d.ts +8 -0
  479. package/lib/typescript/module/icons/remix/RiTv2Line.d.ts.map +1 -0
  480. package/lib/typescript/module/icons/remix/index.d.ts +14 -0
  481. package/lib/typescript/module/icons/remix/index.d.ts.map +1 -1
  482. package/lib/typescript/module/list/index.web.d.ts.map +1 -1
  483. package/lib/typescript/module/loading/Loading.d.ts +8 -2
  484. package/lib/typescript/module/loading/Loading.d.ts.map +1 -1
  485. package/lib/typescript/module/loading/Loading.web.d.ts +10 -2
  486. package/lib/typescript/module/loading/Loading.web.d.ts.map +1 -1
  487. package/lib/typescript/module/loading/LoadingBase.d.ts +64 -0
  488. package/lib/typescript/module/loading/LoadingBase.d.ts.map +1 -0
  489. package/lib/typescript/module/loading/index.web.d.ts.map +1 -1
  490. package/lib/typescript/module/media-flight/index.web.d.ts +0 -9
  491. package/lib/typescript/module/media-flight/index.web.d.ts.map +1 -1
  492. package/lib/typescript/module/menubar/Menubar.d.ts +14 -9
  493. package/lib/typescript/module/menubar/Menubar.d.ts.map +1 -1
  494. package/lib/typescript/module/menubar/Menubar.web.d.ts +8 -6
  495. package/lib/typescript/module/menubar/Menubar.web.d.ts.map +1 -1
  496. package/lib/typescript/module/menubar/MenubarBase.d.ts +5 -0
  497. package/lib/typescript/module/menubar/MenubarBase.d.ts.map +1 -0
  498. package/lib/typescript/module/menubar/index.web.d.ts.map +1 -1
  499. package/lib/typescript/module/motion/index.web.d.ts +0 -5
  500. package/lib/typescript/module/motion/index.web.d.ts.map +1 -1
  501. package/lib/typescript/module/popover/index.web.d.ts.map +1 -1
  502. package/lib/typescript/module/popover/parts.d.ts.map +1 -1
  503. package/lib/typescript/module/popover/surface.d.ts +15 -5
  504. package/lib/typescript/module/popover/surface.d.ts.map +1 -1
  505. package/lib/typescript/module/portal/index.web.d.ts +1 -1
  506. package/lib/typescript/module/portal/index.web.d.ts.map +1 -1
  507. package/lib/typescript/module/progressive-blur/index.web.d.ts.map +1 -1
  508. package/lib/typescript/module/scroll/index.web.d.ts.map +1 -1
  509. package/lib/typescript/module/segmented-control/SegmentedControl.d.ts.map +1 -1
  510. package/lib/typescript/module/select/Select.d.ts +2 -4
  511. package/lib/typescript/module/select/Select.d.ts.map +1 -1
  512. package/lib/typescript/module/select/Select.web.d.ts +2 -4
  513. package/lib/typescript/module/select/Select.web.d.ts.map +1 -1
  514. package/lib/typescript/module/select/index.d.ts +2 -2
  515. package/lib/typescript/module/select/index.d.ts.map +1 -1
  516. package/lib/typescript/module/select/index.web.d.ts +2 -2
  517. package/lib/typescript/module/select/index.web.d.ts.map +1 -1
  518. package/lib/typescript/module/select/shared.d.ts +52 -5
  519. package/lib/typescript/module/select/shared.d.ts.map +1 -1
  520. package/lib/typescript/module/select/types.d.ts +6 -0
  521. package/lib/typescript/module/select/types.d.ts.map +1 -1
  522. package/lib/typescript/module/sidebar/parts.d.ts +8 -2
  523. package/lib/typescript/module/sidebar/parts.d.ts.map +1 -1
  524. package/lib/typescript/module/surfaces/SurfaceHost.d.ts.map +1 -1
  525. package/lib/typescript/module/surfaces/index.web.d.ts +9 -4
  526. package/lib/typescript/module/surfaces/index.web.d.ts.map +1 -1
  527. package/lib/typescript/module/tab-bar/index.web.d.ts.map +1 -1
  528. package/lib/typescript/module/tabs/Tabs.d.ts.map +1 -1
  529. package/lib/typescript/module/tabs/types.d.ts +6 -0
  530. package/lib/typescript/module/tabs/types.d.ts.map +1 -1
  531. package/lib/typescript/module/theme/color-scope/index.web.d.ts.map +1 -1
  532. package/lib/typescript/module/theme/seed-scope/index.web.d.ts.map +1 -1
  533. package/lib/typescript/module/tooltip/index.web.d.ts.map +1 -1
  534. package/package.json +1 -1
  535. package/src/agent-chat/index.web.ts +5 -3
  536. package/src/ai-chat/index.web.ts +5 -2
  537. package/src/alert-dialog/index.web.ts +10 -1
  538. package/src/avatar-group/index.web.ts +5 -0
  539. package/src/bottom-sheet/index.web.ts +5 -0
  540. package/src/code/index.ts +2 -0
  541. package/src/command/index.web.ts +5 -0
  542. package/src/composer-loader/ComposerLoader.web.tsx +8 -0
  543. package/src/composer-loader/index.web.ts +5 -2
  544. package/src/composer-panel/index.web.ts +5 -3
  545. package/src/connection-dots/index.web.ts +5 -0
  546. package/src/connection-status/index.web.ts +5 -0
  547. package/src/content-panel/index.web.ts +5 -0
  548. package/src/context-menu/ContextMenu.web.tsx +26 -3
  549. package/src/context-menu/context.ts +3 -0
  550. package/src/context-menu/index.web.ts +5 -0
  551. package/src/dialog/Dialog.web.tsx +13 -0
  552. package/src/dialog/index.web.ts +7 -11
  553. package/src/dropdown-menu/DropdownMenu.web.tsx +25 -2
  554. package/src/dropdown-menu/index.web.ts +5 -0
  555. package/src/floating/FloatingPanel.tsx +37 -38
  556. package/src/floating/escape-stack.ts +92 -0
  557. package/src/floating/menu-keyboard.ts +242 -0
  558. package/src/floating/menu-sub-flyout.tsx +22 -17
  559. package/src/floating/types.ts +11 -0
  560. package/src/fonts/index.web.ts +5 -20
  561. package/src/frosted-icon-button/FrostedIconButton.web.tsx +9 -0
  562. package/src/frosted-icon-button/index.web.ts +5 -7
  563. package/src/hooks/roving-focus.ts +204 -0
  564. package/src/hover-card/index.web.ts +5 -0
  565. package/src/icons/remix/RiBookReadLine.tsx +6 -0
  566. package/src/icons/remix/RiBugLine.tsx +6 -0
  567. package/src/icons/remix/RiChat1Line.tsx +6 -0
  568. package/src/icons/remix/RiCloudLine.tsx +6 -0
  569. package/src/icons/remix/RiCodeLine.tsx +6 -0
  570. package/src/icons/remix/RiCpuLine.tsx +6 -0
  571. package/src/icons/remix/RiFloodLine.tsx +6 -0
  572. package/src/icons/remix/RiLockUnlockLine.tsx +6 -0
  573. package/src/icons/remix/RiMoneyDollarCircleLine.tsx +6 -0
  574. package/src/icons/remix/RiPlayCircleLine.tsx +6 -0
  575. package/src/icons/remix/RiRocket2Line.tsx +6 -0
  576. package/src/icons/remix/RiServerLine.tsx +6 -0
  577. package/src/icons/remix/RiShareBoxLine.tsx +6 -0
  578. package/src/icons/remix/RiTv2Line.tsx +6 -0
  579. package/src/icons/remix/index.ts +14 -0
  580. package/src/list/index.web.ts +5 -0
  581. package/src/loading/Loading.tsx +15 -135
  582. package/src/loading/Loading.web.tsx +16 -134
  583. package/src/loading/LoadingBase.tsx +170 -0
  584. package/src/loading/index.web.ts +5 -13
  585. package/src/media-flight/index.web.ts +5 -9
  586. package/src/menubar/Menubar.tsx +16 -147
  587. package/src/menubar/Menubar.web.tsx +15 -138
  588. package/src/menubar/MenubarBase.tsx +170 -0
  589. package/src/menubar/index.web.ts +5 -0
  590. package/src/motion/index.web.ts +5 -5
  591. package/src/popover/index.web.ts +5 -0
  592. package/src/popover/parts.tsx +76 -12
  593. package/src/popover/surface.ts +68 -15
  594. package/src/portal/index.web.ts +6 -1
  595. package/src/progressive-blur/index.web.ts +5 -0
  596. package/src/scroll/index.web.ts +5 -0
  597. package/src/segmented-control/SegmentedControl.tsx +45 -1
  598. package/src/select/Select.tsx +4 -67
  599. package/src/select/Select.web.tsx +133 -69
  600. package/src/select/index.ts +3 -3
  601. package/src/select/index.web.ts +8 -3
  602. package/src/select/shared.tsx +107 -5
  603. package/src/select/types.ts +6 -0
  604. package/src/sidebar/SidebarTeamMenu.tsx +2 -2
  605. package/src/sidebar/SidebarUserMenu.tsx +2 -2
  606. package/src/sidebar/parts.tsx +8 -9
  607. package/src/surfaces/SurfaceHost.tsx +6 -0
  608. package/src/surfaces/index.web.ts +14 -4
  609. package/src/tab-bar/index.web.ts +13 -10
  610. package/src/tabs/Tabs.tsx +65 -1
  611. package/src/tabs/types.ts +6 -0
  612. package/src/theme/color-scope/index.web.ts +5 -0
  613. package/src/theme/seed-scope/index.web.ts +5 -0
  614. package/src/tooltip/index.web.ts +5 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/index.web.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,MAAM;;;CAA+C,CAAC;AACnE,eAAO,MAAM,YAAY;;;CAAkC,CAAC;AAE5D,OAAO,EACL,eAAe,EACf,YAAY,EACZ,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/tab-bar/index.web.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,MAAM;;;CAA+C,CAAC;AACnE,eAAO,MAAM,YAAY;;;CAAkC,CAAC;AAE5D,OAAO,EACL,eAAe,EACf,YAAY,EACZ,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../../src/tabs/Tabs.tsx"],"names":[],"mappings":"AACA,OAAO,KAUN,MAAM,OAAO,CAAC;AAoBf,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAQ5C,OAAO,KAAK,EACV,gBAAgB,EAEhB,SAAS,EACT,gBAAgB,EAChB,WAAW,EACZ,MAAM,SAAS,CAAC;AAuGjB,MAAM,WAAW,SAAS;IACxB,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB,EAAE,MAAM,CAAC;IAChC,uBAAuB,EAAE,MAAM,CAAC;IAChC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,SAA0B,GAAG,SAAS,CAyBjH;AAwFD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC1C;;;;;;;;;OASG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;CACzC;AAooBD,eAAO,MAAM,IAAI,iFAAyB,CAAC;AAG3C,eAAO,MAAM,WAAW,8CAAqB,CAAC;AAG9C,eAAO,MAAM,WAAW,8CAA0B,CAAC"}
1
+ {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../../src/tabs/Tabs.tsx"],"names":[],"mappings":"AACA,OAAO,KAUN,MAAM,OAAO,CAAC;AAoBf,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAS5C,OAAO,KAAK,EACV,gBAAgB,EAEhB,SAAS,EACT,gBAAgB,EAChB,WAAW,EACZ,MAAM,SAAS,CAAC;AAuGjB,MAAM,WAAW,SAAS;IACxB,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB,EAAE,MAAM,CAAC;IAChC,uBAAuB,EAAE,MAAM,CAAC;IAChC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,SAA0B,GAAG,SAAS,CAyBjH;AAqGD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC1C;;;;;;;;;OASG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;CACzC;AAsrBD,eAAO,MAAM,IAAI,iFAAyB,CAAC;AAG3C,eAAO,MAAM,WAAW,8CAAqB,CAAC;AAG9C,eAAO,MAAM,WAAW,8CAA0B,CAAC"}
@@ -58,6 +58,12 @@ export interface TabsProps {
58
58
  * set of tabs (e.g. 2–3). Defaults to `false`.
59
59
  */
60
60
  fullWidth?: boolean;
61
+ /**
62
+ * The strip's accessible name — the `tablist`'s `aria-label` on web ("Account
63
+ * sections"). The tab labels name the TABS, not the set of them. Ignored on
64
+ * native, where naming the container would fold its tabs into one element.
65
+ */
66
+ label?: string;
61
67
  /** The tab items. Must be TabsTrigger components. */
62
68
  children: React.ReactNode;
63
69
  style?: StyleProp<ViewStyle>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/tabs/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE1D;;;GAGG;AACH,+FAA+F;AAC/F,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAEnD,MAAM,WAAW,SAAS;IACxB;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC;;;;;;;;;;;;;;;;;OAiBG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sCAAsC;IACtC,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qDAAqD;IACrD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;;OAIG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iFAAiF;IACjF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/tabs/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE1D;;;GAGG;AACH,+FAA+F;AAC/F,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAEnD,MAAM,WAAW,SAAS;IACxB;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC;;;;;;;;;;;;;;;;;OAiBG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sCAAsC;IACtC,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;;OAIG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iFAAiF;IACjF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../../src/theme/color-scope/index.web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACvE,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../../src/theme/color-scope/index.web.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACvE,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../../src/theme/seed-scope/index.web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../../src/theme/seed-scope/index.web.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/tooltip/index.web.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,EACd,iBAAiB,GAClB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/tooltip/index.web.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,EACd,iBAAiB,GAClB,MAAM,eAAe,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxy.so/bloom",
3
- "version": "4.5.0",
3
+ "version": "4.6.0",
4
4
  "packageManager": "bun@1.3.14",
5
5
  "description": "Bloom UI — Oxy ecosystem component library for React Native + Expo + Web",
6
6
  "main": "lib/commonjs/index.js",
@@ -1,6 +1,8 @@
1
- // Web variant of the `./agent-chat` barrel: binds the web ComposerLoader and
2
- // DropdownMenu (`AgentChat.web`), reachable by a bundler resolving
3
- // `package.json#exports` only through this file.
1
+ // AUTO-GENERATED by scripts/generate-platform-exports.mjs — DO NOT EDIT.
2
+ // Source of truth: src/agent-chat/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
+
4
6
  export {
5
7
  AgentChat,
6
8
  AgentChatActions,
@@ -1,5 +1,8 @@
1
- // Web variant of the `./ai-chat` barrel: binds the web Tooltip (`AiChat.web`),
2
- // reachable by a bundler resolving `package.json#exports` only through this file.
1
+ // AUTO-GENERATED by scripts/generate-platform-exports.mjs — DO NOT EDIT.
2
+ // Source of truth: src/ai-chat/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
+
3
6
  export {
4
7
  AiChatAssistantMessage,
5
8
  AiChatFeedbackRow,
@@ -1,7 +1,16 @@
1
+ // AUTO-GENERATED by scripts/generate-platform-exports.mjs — DO NOT EDIT.
2
+ // Source of truth: src/alert-dialog/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
+
1
6
  import { Dialog } from '../dialog/index.web';
2
7
  import { createAlertDialog } from './AlertDialog';
3
8
 
4
- /** Web variant of the `./alert-dialog` barrel — see `./index.ts`. */
9
+ /**
10
+ * The declarative, CONTROLLED confirm dialog. The imperative counterpart is
11
+ * `confirm()` from `@oxy.so/bloom/surfaces`, which presents onto the shared
12
+ * surface stack — this family owns no queue and no host of its own.
13
+ */
5
14
  export const AlertDialog = createAlertDialog(Dialog);
6
15
 
7
16
  export type { AlertDialogProps, AlertDialogActionStyle } from './types';
@@ -1,2 +1,7 @@
1
+ // AUTO-GENERATED by scripts/generate-platform-exports.mjs — DO NOT EDIT.
2
+ // Source of truth: src/avatar-group/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
+
1
6
  export { AvatarGroup } from './AvatarGroup.web';
2
7
  export type { AvatarGroupProps, AvatarGroupItem } from './types';
@@ -1,3 +1,8 @@
1
+ // AUTO-GENERATED by scripts/generate-platform-exports.mjs — DO NOT EDIT.
2
+ // Source of truth: src/bottom-sheet/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
+
1
6
  export {
2
7
  BottomSheet,
3
8
  } from './BottomSheet.web';
package/src/code/index.ts CHANGED
@@ -3,6 +3,8 @@ export { CodeBlock } from './CodeBlock';
3
3
  export { CodeLines } from './CodeLines';
4
4
  export { tokenizeCode, isHighlightedLanguage } from './highlight';
5
5
  export { Pre } from './Pre';
6
+ export { tokenColor, useCodePalette } from './shared';
7
+ export type { CodePalette } from './shared';
6
8
  export type {
7
9
  CodeBlockLabels,
8
10
  CodeBlockProps,
@@ -1,3 +1,8 @@
1
+ // AUTO-GENERATED by scripts/generate-platform-exports.mjs — DO NOT EDIT.
2
+ // Source of truth: src/command/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
+
1
6
  import { Dialog } from '../dialog/index.web';
2
7
  import { createCommand } from './Command';
3
8
 
@@ -1,3 +1,11 @@
1
+ /**
2
+ * `ComposerLoader` — WEB: the light band laps on CSS keyframes over a DOM
3
+ * `<svg>`, where the native fork drives a react-native-svg frame clock.
4
+ *
5
+ * The lap geometry both forks draw is shared (`./shared`); what differs is only
6
+ * what advances it. Keeping the geometry in one module is what stops the two
7
+ * bands from drifting apart while still looking like one component.
8
+ */
1
9
  import React, { memo, useCallback, useEffect, useId, useMemo, useState } from 'react';
2
10
  import { StyleSheet, View, type LayoutChangeEvent } from 'react-native';
3
11
 
@@ -1,5 +1,8 @@
1
- // Web variant of the `./composer-loader` barrel: the light band laps on CSS
2
- // keyframes over a DOM `<svg>` instead of a react-native-svg frame clock.
1
+ // AUTO-GENERATED by scripts/generate-platform-exports.mjs — DO NOT EDIT.
2
+ // Source of truth: src/composer-loader/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
+
3
6
  export { ComposerLoader } from './ComposerLoader.web';
4
7
  export { resolveComposerLoaderColors, DEFAULT_COMPOSER_LOADER_COLORS } from './shared';
5
8
  export type { ComposerLoaderColors, ComposerLoaderProps } from './types';
@@ -1,6 +1,8 @@
1
- // Web variant of the `./composer-panel` barrel: binds the web panel
2
- // (`ComposerPopover.web` → `floating/FloatingPanel`), which a bundler resolving
3
- // `package.json#exports` reaches only through this file.
1
+ // AUTO-GENERATED by scripts/generate-platform-exports.mjs — DO NOT EDIT.
2
+ // Source of truth: src/composer-panel/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
+
4
6
  export { ComposerPanel } from './ComposerPanel.web';
5
7
  export { ComposerAttachments } from './ComposerAttachments.web';
6
8
  export { ModelPicker } from './ModelPicker.web';
@@ -1,2 +1,7 @@
1
+ // AUTO-GENERATED by scripts/generate-platform-exports.mjs — DO NOT EDIT.
2
+ // Source of truth: src/connection-dots/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
+
1
6
  export { ConnectionDots } from './ConnectionDots.web';
2
7
  export type { ConnectionDotsProps } from './types';
@@ -1,3 +1,8 @@
1
+ // AUTO-GENERATED by scripts/generate-platform-exports.mjs — DO NOT EDIT.
2
+ // Source of truth: src/connection-status/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
+
1
6
  export type { ConnectionStatusToastsProps } from './shared';
2
7
  // The hatch a consumer needs off Metro, where the optional `require` does not
3
8
  // deliver the peer even when it is installed. See `netinfo.ts`.
@@ -1,3 +1,8 @@
1
+ // AUTO-GENERATED by scripts/generate-platform-exports.mjs — DO NOT EDIT.
2
+ // Source of truth: src/content-panel/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
+
1
6
  export {
2
7
  GUTTER_MASK_SPREAD,
3
8
  PANEL_TOP_INSET,
@@ -12,6 +12,13 @@ import type { View } from 'react-native';
12
12
  import { MENU_MIN_WIDTH_CLASS, MENU_TRIGGER_POPUP } from '../floating/constants';
13
13
  import { MenuSurfaceProvider, type MenuSurfaceContextValue } from '../floating/context';
14
14
  import { FloatingPanel } from '../floating/FloatingPanel';
15
+ import {
16
+ hostElement,
17
+ isInMenuSurface,
18
+ useMenuFocusIntent,
19
+ useMenuPanelKeys,
20
+ useReturnFocusOnClose,
21
+ } from '../floating/menu-keyboard';
15
22
  import { createMenuRows } from '../floating/menu-rows';
16
23
  import { createFlyoutMenuSub } from '../floating/menu-sub-flyout';
17
24
  import { cx } from '../floating/shared';
@@ -26,6 +33,7 @@ import type {
26
33
 
27
34
  export function ContextMenu({ children, onOpenChange }: ContextMenuProps) {
28
35
  const [anchor, setAnchor] = useState<FloatingAnchor | null>(null);
36
+ const focusIntent = useMenuFocusIntent();
29
37
 
30
38
  const value = useMemo(
31
39
  () => ({
@@ -41,8 +49,9 @@ export function ContextMenu({ children, onOpenChange }: ContextMenuProps) {
41
49
  onOpenChange?.(false);
42
50
  },
43
51
  anchor,
52
+ focusIntent,
44
53
  }),
45
- [anchor, onOpenChange],
54
+ [anchor, onOpenChange, focusIntent],
46
55
  );
47
56
 
48
57
  return <ContextMenuProvider value={value}>{children}</ContextMenuProvider>;
@@ -59,7 +68,9 @@ export function ContextMenuTrigger({
59
68
  }: ContextMenuTriggerProps) {
60
69
  const menu = useContextMenu();
61
70
  const wrapperRef = useRef<View | null>(null);
62
- const { openAt } = menu;
71
+ const { openAt, focusIntent } = menu;
72
+ // Focus returns here when the menu closes with it inside (`menu-keyboard.ts`).
73
+ useReturnFocusOnClose(wrapperRef, menu.open, isInMenuSurface);
63
74
 
64
75
  // A DOM subscription, not derived state: `contextmenu` has no React Native
65
76
  // prop and react-native-web filters unknown props off a `View`, so the only
@@ -73,6 +84,11 @@ export function ContextMenuTrigger({
73
84
 
74
85
  const onContextMenu = (event: MouseEvent) => {
75
86
  event.preventDefault();
87
+ // A context menu takes focus on its first row however it opened — the
88
+ // right-click is the only way in, and without focus in the panel its
89
+ // arrows and Escape have nothing to act on. A pointer open paints no
90
+ // ring: the rows highlight on `:focus-visible` only.
91
+ if (focusIntent) focusIntent.edge.current = 'first';
76
92
  openAt({
77
93
  top: event.clientY,
78
94
  bottom: event.clientY,
@@ -82,7 +98,7 @@ export function ContextMenuTrigger({
82
98
  };
83
99
  element.addEventListener('contextmenu', onContextMenu);
84
100
  return () => element.removeEventListener('contextmenu', onContextMenu);
85
- }, [openAt, disabled]);
101
+ }, [openAt, disabled, focusIntent]);
86
102
 
87
103
  return (
88
104
  <TriggerSlot
@@ -129,9 +145,16 @@ export function ContextMenuContent({
129
145
  [menu.close],
130
146
  );
131
147
  const onDismiss = useCallback(() => menu.close(), [menu]);
148
+ const [panel, setPanel] = useState<View | null>(null);
149
+ useMenuPanelKeys(hostElement(panel), {
150
+ open: menu.open,
151
+ onTab: onDismiss,
152
+ intent: menu.focusIntent,
153
+ });
132
154
 
133
155
  return (
134
156
  <FloatingPanel
157
+ panelRef={setPanel}
135
158
  open={menu.open}
136
159
  anchor={menu.anchor}
137
160
  role="menu"
@@ -9,6 +9,7 @@
9
9
  */
10
10
  import { createContext, useContext } from 'react';
11
11
 
12
+ import type { MenuFocusIntent } from '../floating/menu-keyboard';
12
13
  import type { FloatingAnchor } from '../floating/types';
13
14
 
14
15
  export interface ContextMenuContextValue {
@@ -21,6 +22,8 @@ export interface ContextMenuContextValue {
21
22
  close: () => void;
22
23
  /** Where the surface anchors. `null` on native and while closed. */
23
24
  anchor: FloatingAnchor | null;
25
+ /** Web only: the row focus lands on when the menu opens (`menu-keyboard.ts`). */
26
+ focusIntent?: MenuFocusIntent;
24
27
  }
25
28
 
26
29
  const ContextMenuContext = createContext<ContextMenuContextValue | null>(null);
@@ -1,3 +1,8 @@
1
+ // AUTO-GENERATED by scripts/generate-platform-exports.mjs — DO NOT EDIT.
2
+ // Source of truth: src/context-menu/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
+
1
6
  export {
2
7
  ContextMenu,
3
8
  ContextMenuTrigger,
@@ -1,3 +1,16 @@
1
+ /**
2
+ * `Dialog` — WEB: a pure-DOM modal overlay rendered into Bloom's `Portal`.
3
+ *
4
+ * The native fork (`Dialog.tsx`) presents through Bloom's `BottomSheet`, which
5
+ * is built on react-native-gesture-handler + reanimated and has no web
6
+ * behaviour worth emulating. So this is not a port of that file; it is the
7
+ * other half of one contract, and the props are what the two agree on.
8
+ *
9
+ * This fork is also the family's only publisher of `BLOOM_DIALOG_CSS` — the
10
+ * stylesheet a web consumer adopts. Native has no counterpart, which is why
11
+ * the generated web barrel carries one line its native sibling cannot
12
+ * (`WEB_BARREL_EXTRAS` in `scripts/generate-platform-exports.mjs`).
13
+ */
1
14
  import React, {
2
15
  createContext,
3
16
  useCallback,
@@ -1,14 +1,9 @@
1
- // Web variant of the `./dialog` barrel.
2
- //
3
- // The default barrel (`./index.ts`) re-exports from `./Dialog`, which uses
4
- // bloom's `BottomSheet` (a native-only primitive built on
5
- // react-native-gesture-handler + reanimated). The web fork (`./Dialog.web`)
6
- // is a pure-DOM modal overlay that renders into the bloom Portal.
7
- //
8
- // Web bundlers select this file via the `"browser"` export condition in
9
- // `package.json`'s `exports['./dialog']`; native bundlers fall through to
10
- // the React Native build above.
11
- export { Dialog, BLOOM_DIALOG_CSS } from './Dialog.web';
1
+ // AUTO-GENERATED by scripts/generate-platform-exports.mjs — DO NOT EDIT.
2
+ // Source of truth: src/dialog/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
+
6
+ export { Dialog } from './Dialog.web';
12
7
  export { useDialogContext, useDialogControl } from './context';
13
8
  export { useDialogHeader } from './DialogHeader';
14
9
  export { useDialogFrame } from './DialogMorph';
@@ -24,3 +19,4 @@ export type {
24
19
  DialogProps,
25
20
  ResponsiveDialogPlacement,
26
21
  } from './types';
22
+ export { BLOOM_DIALOG_CSS } from './Dialog.web';
@@ -6,12 +6,18 @@
6
6
  * `floating/menu-rows` set the native file publishes; what changes between the
7
7
  * two is stated once, as `presentation`.
8
8
  */
9
- import React, { useCallback, useMemo, useRef } from 'react';
9
+ import React, { useCallback, useMemo, useRef, useState } from 'react';
10
10
  import type { View } from 'react-native';
11
11
 
12
12
  import { MENU_MIN_WIDTH_CLASS, MENU_TRIGGER_POPUP } from '../floating/constants';
13
13
  import { MenuSurfaceProvider, type MenuSurfaceContextValue } from '../floating/context';
14
14
  import { FloatingPanel } from '../floating/FloatingPanel';
15
+ import {
16
+ hostElement,
17
+ useMenuFocusIntent,
18
+ useMenuPanelKeys,
19
+ useMenuTriggerKeys,
20
+ } from '../floating/menu-keyboard';
15
21
  import { createMenuRows } from '../floating/menu-rows';
16
22
  import { createFlyoutMenuSub } from '../floating/menu-sub-flyout';
17
23
  import { cx } from '../floating/shared';
@@ -37,7 +43,11 @@ export function DropdownMenu({
37
43
  onChange: onOpenChange,
38
44
  });
39
45
  const anchorRef = useRef<View | null>(null);
40
- const value = useMemo(() => ({ open: isOpen, setOpen, anchorRef }), [isOpen, setOpen]);
46
+ const focusIntent = useMenuFocusIntent();
47
+ const value = useMemo(
48
+ () => ({ open: isOpen, setOpen, anchorRef, focusIntent }),
49
+ [isOpen, setOpen, focusIntent],
50
+ );
41
51
 
42
52
  return <DropdownMenuProvider value={value}>{children}</DropdownMenuProvider>;
43
53
  }
@@ -52,6 +62,14 @@ export function DropdownMenuTrigger({
52
62
  testID,
53
63
  }: DropdownMenuTriggerProps) {
54
64
  const menu = useDropdownMenu();
65
+ // Web: Enter/Space/ArrowDown open into the first row, ArrowUp into the last,
66
+ // and focus comes back here when the menu closes (`floating/menu-keyboard.ts`).
67
+ useMenuTriggerKeys(menu.anchorRef, {
68
+ open: menu.open,
69
+ setOpen: menu.setOpen,
70
+ disabled,
71
+ intent: menu.focusIntent,
72
+ });
55
73
 
56
74
  return (
57
75
  <TriggerSlot
@@ -97,9 +115,14 @@ export function DropdownMenuContent({
97
115
  () => ({ close, presentation: 'dropdown' }),
98
116
  [close],
99
117
  );
118
+ // Arrows, Home/End, Space and Tab inside the open menu, and the keyboard
119
+ // open's landing row (`floating/menu-keyboard.ts`).
120
+ const [panel, setPanel] = useState<View | null>(null);
121
+ useMenuPanelKeys(hostElement(panel), { open: menu.open, onTab: close, intent: menu.focusIntent });
100
122
 
101
123
  return (
102
124
  <FloatingPanel
125
+ panelRef={setPanel}
103
126
  open={menu.open}
104
127
  anchor={anchor}
105
128
  role="menu"
@@ -1,3 +1,8 @@
1
+ // AUTO-GENERATED by scripts/generate-platform-exports.mjs — DO NOT EDIT.
2
+ // Source of truth: src/dropdown-menu/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
+
1
6
  export {
2
7
  DropdownMenu,
3
8
  DropdownMenuTrigger,
@@ -89,6 +89,7 @@ import {
89
89
  VIEWPORT_GUTTER,
90
90
  } from './constants';
91
91
  import { useMenuPalette } from './menu-palette';
92
+ import { pushFloatingEscape } from './escape-stack';
92
93
  import { cx } from './shared';
93
94
  import type { FloatingPanelProps, FloatingSide } from './types';
94
95
  import { useFrameThrottle } from './use-frame-throttle';
@@ -105,36 +106,31 @@ const AnimatedPanel = Animated.createAnimatedComponent(StyledView);
105
106
  const MENU_EASING = Easing.bezier(...MENU_MOTION_EASING);
106
107
 
107
108
  /**
108
- * The per-surface chrome and motion. All three share the one popover motion;
109
- * `menu` and `listbox` use the menu recipe (`menu-styles.ts`) with colours from
110
- * `menu-palette.ts`, while `popover` leaves the whole panel to its caller's
111
- * resolved `style` (`popover/surface.ts`).
109
+ * The ONE motion every anchored surface runs: 150ms `ease-out`, fade +
110
+ * `scale-95` + 2px blur, no slide, scaling from the corner nearest the
111
+ * trigger, and the same shape reversed on the way out. It was written out
112
+ * three times, once per surface, with only the chrome differing — three
113
+ * spellings of one decision, any of which could be edited alone.
114
+ */
115
+ const MENU_MOTION = {
116
+ duration: MENU_MOTION_DURATION,
117
+ easing: MENU_EASING,
118
+ scaleFrom: MENU_MOTION_SCALE_FROM,
119
+ slide: 0,
120
+ blur: MENU_MOTION_BLUR,
121
+ } as const;
122
+
123
+ /**
124
+ * The per-surface chrome. `menu` and `listbox` use the menu recipe
125
+ * (`constants.ts`'s `MENU_PANEL_CLASS` / `LISTBOX_PANEL_CLASS`) with colours
126
+ * from `menu-palette.ts`; `popover` carries NO chrome of its own here, because
127
+ * `popover/surface.ts` resolves the whole panel inline and hands it over as
128
+ * `style` so a caller's `className` can still override any one piece of it.
112
129
  */
113
130
  const SURFACE = {
114
- popover: {
115
- className: '',
116
- duration: MENU_MOTION_DURATION,
117
- easing: MENU_EASING,
118
- scaleFrom: MENU_MOTION_SCALE_FROM,
119
- slide: 0,
120
- blur: MENU_MOTION_BLUR,
121
- },
122
- menu: {
123
- className: MENU_PANEL_CLASS,
124
- duration: MENU_MOTION_DURATION,
125
- easing: MENU_EASING,
126
- scaleFrom: MENU_MOTION_SCALE_FROM,
127
- slide: 0,
128
- blur: MENU_MOTION_BLUR,
129
- },
130
- listbox: {
131
- className: LISTBOX_PANEL_CLASS,
132
- duration: MENU_MOTION_DURATION,
133
- easing: MENU_EASING,
134
- scaleFrom: MENU_MOTION_SCALE_FROM,
135
- slide: 0,
136
- blur: MENU_MOTION_BLUR,
137
- },
131
+ popover: { ...MENU_MOTION, className: '' },
132
+ menu: { ...MENU_MOTION, className: MENU_PANEL_CLASS },
133
+ listbox: { ...MENU_MOTION, className: LISTBOX_PANEL_CLASS },
138
134
  } as const;
139
135
 
140
136
  /**
@@ -203,6 +199,7 @@ export function FloatingPanel({
203
199
  testID,
204
200
  children,
205
201
  surface = 'popover',
202
+ panelRef,
206
203
  }: FloatingPanelProps) {
207
204
  const chrome = SURFACE[surface];
208
205
  const isMenuSurface = surface !== 'popover';
@@ -224,8 +221,11 @@ export function FloatingPanel({
224
221
  const reducedMotion = useReducedMotion();
225
222
  const progress = useSharedValue(0);
226
223
 
224
+ const panelRefRef = useRef(panelRef);
225
+ panelRefRef.current = panelRef;
227
226
  const attach = useCallback((node: View | null) => {
228
227
  setPanelNode(node);
228
+ panelRefRef.current?.(node);
229
229
  }, []);
230
230
 
231
231
  const store = useCallback((next: DropdownPlacement | null) => {
@@ -438,18 +438,17 @@ export function FloatingPanel({
438
438
  [progress, slideX, slideY, scaleFrom, blurFrom],
439
439
  );
440
440
 
441
+ // Escape dismisses the INNERMOST open surface and nothing under it — a Select
442
+ // inside a Dialog closes its list, not the dialog (`escape-stack.ts`). The
443
+ // entry is taken once per open and calls the CURRENT `onDismiss` through a
444
+ // ref: re-pushing it whenever the callback's identity changed would move a
445
+ // re-rendered parent menu above its own open submenu.
446
+ const onDismissRef = useRef(onDismiss);
447
+ onDismissRef.current = onDismiss;
441
448
  useEffect(() => {
442
449
  if (phase !== 'open' || !dismissible || typeof document === 'undefined') return;
443
- const onKeyDown = (event: KeyboardEvent) => {
444
- if (event.key !== 'Escape') return;
445
- // Stop the key reaching a Dialog underneath: the innermost open surface is
446
- // the one Escape dismisses.
447
- event.stopPropagation();
448
- onDismiss();
449
- };
450
- document.addEventListener('keydown', onKeyDown);
451
- return () => document.removeEventListener('keydown', onKeyDown);
452
- }, [phase, dismissible, onDismiss]);
450
+ return pushFloatingEscape(() => onDismissRef.current());
451
+ }, [phase, dismissible]);
453
452
 
454
453
  // The NON-modal outside press. Deliberately `pointerdown` in the CAPTURE
455
454
  // phase and never `preventDefault`: the surface has to be gone before the