@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
@@ -71,6 +71,7 @@ import { SurfaceLevelProvider } from "../styles/surface-levels.js";
71
71
  import { WEB_POSITION_FIXED } from "../styles/web-view-style.js";
72
72
  import { DEFAULT_ALIGN_OFFSET, DEFAULT_SIDE_OFFSET, LISTBOX_PANEL_CLASS, MENU_MOTION_BLUR, MENU_MOTION_DURATION, MENU_MOTION_EASING, MENU_MOTION_SCALE_FROM, MENU_PANEL_CLASS, VIEWPORT_GUTTER } from "./constants.js";
73
73
  import { useMenuPalette } from "./menu-palette.js";
74
+ import { pushFloatingEscape } from "./escape-stack.js";
74
75
  import { cx } from "./shared.js";
75
76
  import { useFrameThrottle } from "./use-frame-throttle.js";
76
77
 
@@ -87,35 +88,39 @@ const AnimatedPanel = Animated.createAnimatedComponent(StyledView);
87
88
  const MENU_EASING = Easing.bezier(...MENU_MOTION_EASING);
88
89
 
89
90
  /**
90
- * The per-surface chrome and motion. All three share the one popover motion;
91
- * `menu` and `listbox` use the menu recipe (`menu-styles.ts`) with colours from
92
- * `menu-palette.ts`, while `popover` leaves the whole panel to its caller's
93
- * resolved `style` (`popover/surface.ts`).
91
+ * The ONE motion every anchored surface runs: 150ms `ease-out`, fade +
92
+ * `scale-95` + 2px blur, no slide, scaling from the corner nearest the
93
+ * trigger, and the same shape reversed on the way out. It was written out
94
+ * three times, once per surface, with only the chrome differing — three
95
+ * spellings of one decision, any of which could be edited alone.
96
+ */
97
+ const MENU_MOTION = {
98
+ duration: MENU_MOTION_DURATION,
99
+ easing: MENU_EASING,
100
+ scaleFrom: MENU_MOTION_SCALE_FROM,
101
+ slide: 0,
102
+ blur: MENU_MOTION_BLUR
103
+ };
104
+
105
+ /**
106
+ * The per-surface chrome. `menu` and `listbox` use the menu recipe
107
+ * (`constants.ts`'s `MENU_PANEL_CLASS` / `LISTBOX_PANEL_CLASS`) with colours
108
+ * from `menu-palette.ts`; `popover` carries NO chrome of its own here, because
109
+ * `popover/surface.ts` resolves the whole panel inline and hands it over as
110
+ * `style` so a caller's `className` can still override any one piece of it.
94
111
  */
95
112
  const SURFACE = {
96
113
  popover: {
97
- className: '',
98
- duration: MENU_MOTION_DURATION,
99
- easing: MENU_EASING,
100
- scaleFrom: MENU_MOTION_SCALE_FROM,
101
- slide: 0,
102
- blur: MENU_MOTION_BLUR
114
+ ...MENU_MOTION,
115
+ className: ''
103
116
  },
104
117
  menu: {
105
- className: MENU_PANEL_CLASS,
106
- duration: MENU_MOTION_DURATION,
107
- easing: MENU_EASING,
108
- scaleFrom: MENU_MOTION_SCALE_FROM,
109
- slide: 0,
110
- blur: MENU_MOTION_BLUR
118
+ ...MENU_MOTION,
119
+ className: MENU_PANEL_CLASS
111
120
  },
112
121
  listbox: {
113
- className: LISTBOX_PANEL_CLASS,
114
- duration: MENU_MOTION_DURATION,
115
- easing: MENU_EASING,
116
- scaleFrom: MENU_MOTION_SCALE_FROM,
117
- slide: 0,
118
- blur: MENU_MOTION_BLUR
122
+ ...MENU_MOTION,
123
+ className: LISTBOX_PANEL_CLASS
119
124
  }
120
125
  };
121
126
 
@@ -177,7 +182,8 @@ export function FloatingPanel({
177
182
  style,
178
183
  testID,
179
184
  children,
180
- surface = 'popover'
185
+ surface = 'popover',
186
+ panelRef
181
187
  }) {
182
188
  const chrome = SURFACE[surface];
183
189
  const isMenuSurface = surface !== 'popover';
@@ -198,8 +204,11 @@ export function FloatingPanel({
198
204
  const [lastOpen, setLastOpen] = useState(open);
199
205
  const reducedMotion = useReducedMotion();
200
206
  const progress = useSharedValue(0);
207
+ const panelRefRef = useRef(panelRef);
208
+ panelRefRef.current = panelRef;
201
209
  const attach = useCallback(node => {
202
210
  setPanelNode(node);
211
+ panelRefRef.current?.(node);
203
212
  }, []);
204
213
  const store = useCallback(next => {
205
214
  if (samePlacement(published.current, next)) return;
@@ -387,18 +396,18 @@ export function FloatingPanel({
387
396
  filter: progress.value >= 1 ? 'none' : `blur(${blurFrom * (1 - progress.value)}px)`
388
397
  } : null)
389
398
  }), [progress, slideX, slideY, scaleFrom, blurFrom]);
399
+
400
+ // Escape dismisses the INNERMOST open surface and nothing under it — a Select
401
+ // inside a Dialog closes its list, not the dialog (`escape-stack.ts`). The
402
+ // entry is taken once per open and calls the CURRENT `onDismiss` through a
403
+ // ref: re-pushing it whenever the callback's identity changed would move a
404
+ // re-rendered parent menu above its own open submenu.
405
+ const onDismissRef = useRef(onDismiss);
406
+ onDismissRef.current = onDismiss;
390
407
  useEffect(() => {
391
408
  if (phase !== 'open' || !dismissible || typeof document === 'undefined') return;
392
- const onKeyDown = event => {
393
- if (event.key !== 'Escape') return;
394
- // Stop the key reaching a Dialog underneath: the innermost open surface is
395
- // the one Escape dismisses.
396
- event.stopPropagation();
397
- onDismiss();
398
- };
399
- document.addEventListener('keydown', onKeyDown);
400
- return () => document.removeEventListener('keydown', onKeyDown);
401
- }, [phase, dismissible, onDismiss]);
409
+ return pushFloatingEscape(() => onDismissRef.current());
410
+ }, [phase, dismissible]);
402
411
 
403
412
  // The NON-modal outside press. Deliberately `pointerdown` in the CAPTURE
404
413
  // phase and never `preventDefault`: the surface has to be gone before the
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useLayoutEffect","useMemo","useRef","useState","StyleSheet","Animated","Easing","useAnimatedStyle","useReducedMotion","useSharedValue","withTiming","Backdrop","OverlayRoot","resolveDropdownPlacement","Portal","StyledView","SurfaceLevelProvider","WEB_POSITION_FIXED","DEFAULT_ALIGN_OFFSET","DEFAULT_SIDE_OFFSET","LISTBOX_PANEL_CLASS","MENU_MOTION_BLUR","MENU_MOTION_DURATION","MENU_MOTION_EASING","MENU_MOTION_SCALE_FROM","MENU_PANEL_CLASS","VIEWPORT_GUTTER","useMenuPalette","cx","useFrameThrottle","jsx","_jsx","jsxs","_jsxs","AnimatedPanel","createAnimatedComponent","MENU_EASING","bezier","SURFACE","popover","className","duration","easing","scaleFrom","slide","blur","menu","listbox","resolvedSide","requested","placement","anchorStart","horizontal","left","top","samePlacement","a","b","transformOriginFor","side","align","cross","y","x","FloatingPanel","open","anchor","sideOffset","alignOffset","dismissible","modal","onDismiss","label","role","minWidth","maxWidth","style","testID","children","surface","chrome","isMenuSurface","palette","panelNode","setPanelNode","setPlacement","published","phase","setPhase","lastOpen","setLastOpen","reducedMotion","progress","attach","node","store","next","current","timer","setTimeout","clearTimeout","resolve","element","measure","getBoundingClientRect","window","box","call","layoutWidth","offsetWidth","width","layoutHeight","offsetHeight","height","Math","max","alignsVertically","shiftY","shiftX","bottom","right","size","viewport","innerWidth","innerHeight","offset","gutter","schedule","addEventListener","removeEventListener","landed","resolved","origin","held","setHeld","geometry","slideX","slideY","value","blurFrom","motionStyle","opacity","transform","translateX","translateY","scale","filter","document","onKeyDown","event","key","stopPropagation","onPointerDown","target","contains","clientX","clientY","styles","backdrop","onPress","blurIntensity","dimOpacity","accessibilityLabel","ref","panel","backgroundColor","borderColor","border","boxShadow","shadow","transformOrigin","pointerEvents","level","create","position"],"sourceRoot":"../../../src","sources":["floating/FloatingPanel.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useEffect","useLayoutEffect","useMemo","useRef","useState","StyleSheet","Animated","Easing","useAnimatedStyle","useReducedMotion","useSharedValue","withTiming","Backdrop","OverlayRoot","resolveDropdownPlacement","Portal","StyledView","SurfaceLevelProvider","WEB_POSITION_FIXED","DEFAULT_ALIGN_OFFSET","DEFAULT_SIDE_OFFSET","LISTBOX_PANEL_CLASS","MENU_MOTION_BLUR","MENU_MOTION_DURATION","MENU_MOTION_EASING","MENU_MOTION_SCALE_FROM","MENU_PANEL_CLASS","VIEWPORT_GUTTER","useMenuPalette","pushFloatingEscape","cx","useFrameThrottle","jsx","_jsx","jsxs","_jsxs","AnimatedPanel","createAnimatedComponent","MENU_EASING","bezier","MENU_MOTION","duration","easing","scaleFrom","slide","blur","SURFACE","popover","className","menu","listbox","resolvedSide","requested","placement","anchorStart","horizontal","left","top","samePlacement","a","b","transformOriginFor","side","align","cross","y","x","FloatingPanel","open","anchor","sideOffset","alignOffset","dismissible","modal","onDismiss","label","role","minWidth","maxWidth","style","testID","children","surface","panelRef","chrome","isMenuSurface","palette","panelNode","setPanelNode","setPlacement","published","phase","setPhase","lastOpen","setLastOpen","reducedMotion","progress","panelRefRef","current","attach","node","store","next","timer","setTimeout","clearTimeout","resolve","element","measure","getBoundingClientRect","window","box","call","layoutWidth","offsetWidth","width","layoutHeight","offsetHeight","height","Math","max","alignsVertically","shiftY","shiftX","bottom","right","size","viewport","innerWidth","innerHeight","offset","gutter","schedule","addEventListener","removeEventListener","landed","resolved","origin","held","setHeld","geometry","slideX","slideY","value","blurFrom","motionStyle","opacity","transform","translateX","translateY","scale","filter","onDismissRef","document","onPointerDown","event","target","contains","clientX","clientY","styles","backdrop","onPress","blurIntensity","dimOpacity","accessibilityLabel","ref","panel","backgroundColor","borderColor","border","boxShadow","shadow","transformOrigin","pointerEvents","level","create","position"],"sourceRoot":"../../../src","sources":["floating/FloatingPanel.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Escape for the anchored surfaces — WEB. One listener for every open
5
+ * `FloatingPanel`, dismissing only the INNERMOST (most recently opened) one and
6
+ * keeping the key from every enclosing surface.
7
+ *
8
+ * THE DEFECT IT REPLACES. Each panel added its own bubble-phase `keydown`
9
+ * listener on `document` and called `stopPropagation()`. A `Dialog` listens on
10
+ * `document` too, and `stopPropagation` does not stop a SIBLING listener on the
11
+ * same node: listeners on one node run in registration order, and the dialog —
12
+ * open first — registered first. So Escape on a `Select` inside a `Dialog`
13
+ * closed the DIALOG, and the list with it. Two panels open at once (a select
14
+ * inside a popover) had the same shape: the outer one registered first and
15
+ * closed first.
16
+ *
17
+ * THE MECHANISM.
18
+ *
19
+ * - The listener sits on `document.documentElement` in the BUBBLE phase. That
20
+ * is one node BELOW `document`, so it runs before any `document` listener —
21
+ * the Dialog's included — and its `stopPropagation()` keeps the key from
22
+ * ever reaching them. It is also ABOVE React's roots (the app root and every
23
+ * portal container sit inside `<body>`), so a control inside a panel still
24
+ * sees Escape first and can keep it — the composer's model-picker search
25
+ * clears its query on Escape and stops the key, exactly as it did when the
26
+ * panel listened on `document`.
27
+ * - Entries form a stack: the panel opened LAST is dismissed, whatever order
28
+ * the listeners happen to be in.
29
+ * - `hasOpenFloatingSurface()` lets the surface host's window-capture Escape
30
+ * router (`surfaces/SurfaceHost.tsx`) stand aside while a panel is open. It
31
+ * runs before anything here, so without the check it would dismiss the
32
+ * stacked dialog UNDER the open list.
33
+ *
34
+ * `globalThis`-anchored for the same reason as `overlay/stack.ts`: the families
35
+ * that open panels are imported through different subpaths, and a bundler can
36
+ * resolve two physical copies of this module.
37
+ */
38
+
39
+ function registry() {
40
+ globalThis.__oxy_so_bloom_floating_escape__ ??= {
41
+ stack: [],
42
+ listener: null
43
+ };
44
+ return globalThis.__oxy_so_bloom_floating_escape__;
45
+ }
46
+ function onKeyDown(event) {
47
+ if (event.key !== 'Escape') return;
48
+ const stack = registry().stack;
49
+ const top = stack[stack.length - 1];
50
+ if (!top) return;
51
+ event.stopPropagation();
52
+ top.dismiss();
53
+ }
54
+
55
+ /**
56
+ * Put an open surface on top of the Escape stack. Returns the release, which
57
+ * removes exactly this entry wherever it now sits — a parent can close before
58
+ * its submenu's effect cleanup runs.
59
+ */
60
+ export function pushFloatingEscape(dismiss) {
61
+ const reg = registry();
62
+ const entry = {
63
+ dismiss
64
+ };
65
+ reg.stack.push(entry);
66
+ if (!reg.listener && typeof document !== 'undefined') {
67
+ reg.listener = onKeyDown;
68
+ document.documentElement.addEventListener('keydown', onKeyDown);
69
+ }
70
+ return () => {
71
+ const current = registry();
72
+ const index = current.stack.indexOf(entry);
73
+ if (index >= 0) current.stack.splice(index, 1);
74
+ if (current.stack.length === 0 && current.listener && typeof document !== 'undefined') {
75
+ document.documentElement.removeEventListener('keydown', current.listener);
76
+ current.listener = null;
77
+ }
78
+ };
79
+ }
80
+
81
+ /** Whether an anchored surface is open and will take the next Escape. */
82
+ export function hasOpenFloatingSurface() {
83
+ return registry().stack.length > 0;
84
+ }
85
+ //# sourceMappingURL=escape-stack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["registry","globalThis","__oxy_so_bloom_floating_escape__","stack","listener","onKeyDown","event","key","top","length","stopPropagation","dismiss","pushFloatingEscape","reg","entry","push","document","documentElement","addEventListener","current","index","indexOf","splice","removeEventListener","hasOpenFloatingSurface"],"sourceRoot":"../../../src","sources":["floating/escape-stack.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAgBA,SAASA,QAAQA,CAAA,EAAmB;EAClCC,UAAU,CAACC,gCAAgC,KAAK;IAAEC,KAAK,EAAE,EAAE;IAAEC,QAAQ,EAAE;EAAK,CAAC;EAC7E,OAAOH,UAAU,CAACC,gCAAgC;AACpD;AAEA,SAASG,SAASA,CAACC,KAAoB,EAAQ;EAC7C,IAAIA,KAAK,CAACC,GAAG,KAAK,QAAQ,EAAE;EAC5B,MAAMJ,KAAK,GAAGH,QAAQ,CAAC,CAAC,CAACG,KAAK;EAC9B,MAAMK,GAAG,GAAGL,KAAK,CAACA,KAAK,CAACM,MAAM,GAAG,CAAC,CAAC;EACnC,IAAI,CAACD,GAAG,EAAE;EACVF,KAAK,CAACI,eAAe,CAAC,CAAC;EACvBF,GAAG,CAACG,OAAO,CAAC,CAAC;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAACD,OAAmB,EAAc;EAClE,MAAME,GAAG,GAAGb,QAAQ,CAAC,CAAC;EACtB,MAAMc,KAAkB,GAAG;IAAEH;EAAQ,CAAC;EACtCE,GAAG,CAACV,KAAK,CAACY,IAAI,CAACD,KAAK,CAAC;EACrB,IAAI,CAACD,GAAG,CAACT,QAAQ,IAAI,OAAOY,QAAQ,KAAK,WAAW,EAAE;IACpDH,GAAG,CAACT,QAAQ,GAAGC,SAAS;IACxBW,QAAQ,CAACC,eAAe,CAACC,gBAAgB,CAAC,SAAS,EAAEb,SAAS,CAAC;EACjE;EACA,OAAO,MAAM;IACX,MAAMc,OAAO,GAAGnB,QAAQ,CAAC,CAAC;IAC1B,MAAMoB,KAAK,GAAGD,OAAO,CAAChB,KAAK,CAACkB,OAAO,CAACP,KAAK,CAAC;IAC1C,IAAIM,KAAK,IAAI,CAAC,EAAED,OAAO,CAAChB,KAAK,CAACmB,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;IAC9C,IAAID,OAAO,CAAChB,KAAK,CAACM,MAAM,KAAK,CAAC,IAAIU,OAAO,CAACf,QAAQ,IAAI,OAAOY,QAAQ,KAAK,WAAW,EAAE;MACrFA,QAAQ,CAACC,eAAe,CAACM,mBAAmB,CAAC,SAAS,EAAEJ,OAAO,CAACf,QAAQ,CAAC;MACzEe,OAAO,CAACf,QAAQ,GAAG,IAAI;IACzB;EACF,CAAC;AACH;;AAEA;AACA,OAAO,SAASoB,sBAAsBA,CAAA,EAAY;EAChD,OAAOxB,QAAQ,CAAC,CAAC,CAACG,KAAK,CAACM,MAAM,GAAG,CAAC;AACpC","ignoreList":[]}
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * The keyboard half of the ARIA menu-button pattern for the anchored menus —
5
+ * `DropdownMenu`, `ContextMenu`, `Menubar` and their flyout sub-menus — on WEB.
6
+ *
7
+ * What shipped: the trigger opened the menu on Enter/Space (it is a real
8
+ * `<button>`) and focus STAYED on it. The rows are portaled to the end of
9
+ * `<body>`, so the arrow keys had nothing to move, Tab walked on through the
10
+ * page BEHIND the open menu, and a keyboard user could open a menu and choose
11
+ * nothing. The markup was right throughout (`role="menu"`, `menuitem`,
12
+ * `aria-checked`), which is why nothing flagged it.
13
+ *
14
+ * The contract now:
15
+ *
16
+ * - Opening from the keyboard moves focus INTO the menu: Enter, Space and
17
+ * ArrowDown land on the first enabled row, ArrowUp on the last. A pointer
18
+ * open leaves focus where the pointer put it; an arrow on the trigger of an
19
+ * already-open menu then moves it in.
20
+ * - In the menu: ArrowDown/ArrowUp move between enabled rows and WRAP;
21
+ * Home/End jump to the ends; Enter and Space activate the row — a checkbox
22
+ * row toggles, a radio row selects, and a row's `keepOpen` still decides
23
+ * whether the menu closes. react-native-web presses a `menuitem`, `checkbox`
24
+ * or `radio` on Enter only (`PressResponder.isValidKeyPress` limits Space to
25
+ * `role="button"`), so Space is supplied here.
26
+ * - Tab closes the menu and returns focus to the trigger — a menu is not in
27
+ * the page's tab sequence. Escape closes the innermost surface
28
+ * (`escape-stack.ts`) and focus returns the same way.
29
+ * - The sub-menu keys stay `menu-sub-flyout.tsx`'s: → on a sub trigger opens
30
+ * the flyout and focuses its first row, ← inside it closes it and refocuses
31
+ * the trigger row.
32
+ *
33
+ * DOM listeners rather than props, like the sub-menu's: a row is
34
+ * `shared.tsx`'s `MenuRowShell`, the trigger may be the caller's own element
35
+ * under `asChild`, and the order of rows is whatever the caller rendered —
36
+ * the DOM already holds all of it. Every entry point is inert without a DOM
37
+ * node, so native (the menu is a bottom sheet there) is untouched.
38
+ */
39
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
40
+ import { isSpaceKey, rovingItems, rovingMove, rovingTarget } from "../hooks/roving-focus.js";
41
+ import { MENU_MOTION_DURATION } from "./constants.js";
42
+
43
+ /** Every role a menu ROW can carry — the rows a pointer or a key can land on. */
44
+ export const MENU_ROW_SELECTOR = '[role="menuitem"], [role="menuitemcheckbox"], [role="menuitemradio"], [role="checkbox"], [role="radio"]';
45
+
46
+ /** A panel, so a nested panel's rows are never counted as this one's. */
47
+ const MENU_PANEL_SELECTOR = '[role="menu"]';
48
+
49
+ /**
50
+ * Where focus should land the next time the menu's panel is ready — set by a
51
+ * key on the trigger, consumed by the panel. Owned by the family ROOT, which is
52
+ * the one component both the trigger and the content can reach.
53
+ */
54
+
55
+ export function useMenuFocusIntent() {
56
+ const edge = useRef(null);
57
+ const [tick, setTick] = useState(0);
58
+ const request = useCallback(next => {
59
+ edge.current = next;
60
+ setTick(count => count + 1);
61
+ }, []);
62
+ return useMemo(() => ({
63
+ edge,
64
+ tick,
65
+ request
66
+ }), [tick, request]);
67
+ }
68
+
69
+ /** A react-native-web host ref, read as the DOM element it is on web. */
70
+ export function hostElement(node) {
71
+ if (!node || typeof node !== 'object') return null;
72
+ const scrollable = node.getScrollableNode?.();
73
+ const element = scrollable ?? node;
74
+ return typeof element.querySelector === 'function' && typeof element.addEventListener === 'function' ? element : null;
75
+ }
76
+
77
+ /** The trigger's own focusable control inside its anchor wrapper. */
78
+ export function triggerControl(anchor) {
79
+ const wrapper = hostElement(anchor);
80
+ return wrapper?.querySelector('[aria-haspopup]') ?? wrapper?.querySelector('[tabindex]') ?? null;
81
+ }
82
+
83
+ /**
84
+ * Hand focus back to the trigger when a surface closes with focus inside it.
85
+ *
86
+ * `isInside` says whether an element belongs to the surface. Checked AT the
87
+ * close, when the panel is still mounted for its exit animation, so a row that
88
+ * was just activated still counts. Focus that has already gone somewhere real
89
+ * — a dialog the row opened, a field the pointer clicked — is left alone. The
90
+ * one deferred case is focus left on a node the exit is about to UNMOUNT (the
91
+ * outside-press backdrop): once the exit has run and focus has fallen to
92
+ * `<body>`, it goes back to the trigger too.
93
+ */
94
+ export function useReturnFocusOnClose(anchorRef, open, isInside) {
95
+ const wasOpen = useRef(open);
96
+ const isInsideRef = useRef(isInside);
97
+ isInsideRef.current = isInside;
98
+ useEffect(() => {
99
+ const closed = wasOpen.current && !open;
100
+ wasOpen.current = open;
101
+ if (!closed || typeof document === 'undefined') return undefined;
102
+ const active = document.activeElement;
103
+ if (!active || active === document.body || isInsideRef.current(active)) {
104
+ triggerControl(anchorRef.current)?.focus({
105
+ preventScroll: true
106
+ });
107
+ return undefined;
108
+ }
109
+ const timer = setTimeout(() => {
110
+ if (document.activeElement === document.body && !active.isConnected) {
111
+ triggerControl(anchorRef.current)?.focus({
112
+ preventScroll: true
113
+ });
114
+ }
115
+ }, MENU_MOTION_DURATION + 50);
116
+ return () => clearTimeout(timer);
117
+ }, [open, anchorRef]);
118
+ }
119
+
120
+ /** Whether an element is one of the menu surfaces — any panel, any depth. */
121
+ export function isInMenuSurface(element) {
122
+ return element.closest(MENU_PANEL_SELECTOR) !== null;
123
+ }
124
+
125
+ /**
126
+ * The menu trigger's keys, on its anchor wrapper: Enter/Space mark a closed
127
+ * menu's open as a keyboard one (the press itself is the button's own);
128
+ * ArrowDown/ArrowUp open it — or, open already, move focus in — landing on the
129
+ * first/last row. Plus the focus return on close.
130
+ */
131
+ export function useMenuTriggerKeys(anchorRef, {
132
+ open,
133
+ setOpen,
134
+ disabled,
135
+ intent
136
+ }) {
137
+ const edge = intent?.edge;
138
+ const request = intent?.request;
139
+ useEffect(() => {
140
+ const wrapper = hostElement(anchorRef.current);
141
+ if (!wrapper || disabled || !edge || !request) return undefined;
142
+ const onKeyDown = event => {
143
+ if (event.defaultPrevented) return;
144
+ if (event.key === 'Enter' || isSpaceKey(event.key)) {
145
+ if (!open) edge.current = 'first';
146
+ return;
147
+ }
148
+ if (event.key !== 'ArrowDown' && event.key !== 'ArrowUp') return;
149
+ event.preventDefault();
150
+ if (!open) setOpen(true);
151
+ request(event.key === 'ArrowDown' ? 'first' : 'last');
152
+ };
153
+ wrapper.addEventListener('keydown', onKeyDown);
154
+ return () => wrapper.removeEventListener('keydown', onKeyDown);
155
+ }, [anchorRef, disabled, open, setOpen, edge, request]);
156
+
157
+ // A pointer open must not inherit a stale keyboard intent from a key that
158
+ // did not open anything (a disabled row, a prevented press).
159
+ useEffect(() => {
160
+ if (!open && edge) edge.current = null;
161
+ }, [open, edge]);
162
+ useReturnFocusOnClose(anchorRef, open, isInMenuSurface);
163
+ }
164
+
165
+ /** The enabled rows that belong to `panel`, in document order. */
166
+ function menuRows(panel) {
167
+ // The owner is the nearest `role="menu"` — the panel itself, or (for a sub
168
+ // panel, whose rows sit in an inner scroller) the panel around it.
169
+ const owner = panel.closest(MENU_PANEL_SELECTOR) ?? panel;
170
+ return rovingItems(owner, MENU_ROW_SELECTOR, {
171
+ owner: MENU_PANEL_SELECTOR
172
+ });
173
+ }
174
+
175
+ /**
176
+ * The keys inside an open menu panel: arrows (wrapping), Home/End, Space, Tab.
177
+ * `intent`, when given, lands focus on the first/last row as the panel opens
178
+ * from the keyboard (a sub-panel focuses its own first row and passes none).
179
+ */
180
+ export function useMenuPanelKeys(panel, {
181
+ open,
182
+ onTab,
183
+ intent
184
+ }) {
185
+ const onTabRef = useRef(onTab);
186
+ onTabRef.current = onTab;
187
+ const edge = intent?.edge;
188
+ const tick = intent?.tick;
189
+ useEffect(() => {
190
+ if (!open || !panel || !edge?.current) return;
191
+ const rows = menuRows(panel);
192
+ const target = edge.current === 'last' ? rows[rows.length - 1] : rows[0];
193
+ edge.current = null;
194
+ target?.focus({
195
+ preventScroll: true
196
+ });
197
+ }, [open, panel, edge, tick]);
198
+ useEffect(() => {
199
+ if (!panel || !open) return undefined;
200
+ const onKeyDown = event => {
201
+ if (event.defaultPrevented) return;
202
+ const active = typeof document !== 'undefined' ? document.activeElement : null;
203
+ const current = active?.closest?.(MENU_ROW_SELECTOR) ?? null;
204
+ if (event.key === 'Tab') {
205
+ event.preventDefault();
206
+ onTabRef.current();
207
+ return;
208
+ }
209
+ if (isSpaceKey(event.key)) {
210
+ if (!current || current.getAttribute('aria-disabled') === 'true') return;
211
+ event.preventDefault();
212
+ current.click();
213
+ return;
214
+ }
215
+ const move = rovingMove(event.key, {
216
+ orientation: 'vertical',
217
+ homeEnd: true
218
+ });
219
+ if (move === null) return;
220
+ event.preventDefault();
221
+ rovingTarget(menuRows(panel), current, move, true)?.focus();
222
+ };
223
+ panel.addEventListener('keydown', onKeyDown);
224
+ return () => panel.removeEventListener('keydown', onKeyDown);
225
+ }, [panel, open]);
226
+ }
227
+ //# sourceMappingURL=menu-keyboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","isSpaceKey","rovingItems","rovingMove","rovingTarget","MENU_MOTION_DURATION","MENU_ROW_SELECTOR","MENU_PANEL_SELECTOR","useMenuFocusIntent","edge","tick","setTick","request","next","current","count","hostElement","node","scrollable","getScrollableNode","element","querySelector","addEventListener","triggerControl","anchor","wrapper","useReturnFocusOnClose","anchorRef","open","isInside","wasOpen","isInsideRef","closed","document","undefined","active","activeElement","body","focus","preventScroll","timer","setTimeout","isConnected","clearTimeout","isInMenuSurface","closest","useMenuTriggerKeys","setOpen","disabled","intent","onKeyDown","event","defaultPrevented","key","preventDefault","removeEventListener","menuRows","panel","owner","useMenuPanelKeys","onTab","onTabRef","rows","target","length","getAttribute","click","move","orientation","homeEnd"],"sourceRoot":"../../../src","sources":["floating/menu-keyboard.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAEzE,SAASC,UAAU,EAAEC,WAAW,EAAEC,UAAU,EAAEC,YAAY,QAAQ,0BAAuB;AACzF,SAASC,oBAAoB,QAAQ,gBAAa;;AAElD;AACA,OAAO,MAAMC,iBAAiB,GAC5B,yGAAyG;;AAE3G;AACA,MAAMC,mBAAmB,GAAG,eAAe;;AAI3C;AACA;AACA;AACA;AACA;;AASA,OAAO,SAASC,kBAAkBA,CAAA,EAAoB;EACpD,MAAMC,IAAI,GAAGV,MAAM,CAAuB,IAAI,CAAC;EAC/C,MAAM,CAACW,IAAI,EAAEC,OAAO,CAAC,GAAGX,QAAQ,CAAC,CAAC,CAAC;EACnC,MAAMY,OAAO,GAAGhB,WAAW,CAAEiB,IAAmB,IAAK;IACnDJ,IAAI,CAACK,OAAO,GAAGD,IAAI;IACnBF,OAAO,CAAEI,KAAK,IAAKA,KAAK,GAAG,CAAC,CAAC;EAC/B,CAAC,EAAE,EAAE,CAAC;EACN,OAAOjB,OAAO,CAAC,OAAO;IAAEW,IAAI;IAAEC,IAAI;IAAEE;EAAQ,CAAC,CAAC,EAAE,CAACF,IAAI,EAAEE,OAAO,CAAC,CAAC;AAClE;;AAEA;AACA,OAAO,SAASI,WAAWA,CAACC,IAAa,EAAsB;EAC7D,IAAI,CAACA,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE,OAAO,IAAI;EAClD,MAAMC,UAAU,GAAID,IAAI,CAA2CE,iBAAiB,GAAG,CAAC;EACxF,MAAMC,OAAO,GAAIF,UAAU,IAAID,IAA6B;EAC5D,OAAO,OAAOG,OAAO,CAACC,aAAa,KAAK,UAAU,IAChD,OAAOD,OAAO,CAACE,gBAAgB,KAAK,UAAU,GAC3CF,OAAO,GACR,IAAI;AACV;;AAEA;AACA,OAAO,SAASG,cAAcA,CAACC,MAAe,EAAsB;EAClE,MAAMC,OAAO,GAAGT,WAAW,CAACQ,MAAM,CAAC;EACnC,OACEC,OAAO,EAAEJ,aAAa,CAAc,iBAAiB,CAAC,IACtDI,OAAO,EAAEJ,aAAa,CAAc,YAAY,CAAC,IACjD,IAAI;AAER;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASK,qBAAqBA,CACnCC,SAAmC,EACnCC,IAAa,EACbC,QAAuC,EACjC;EACN,MAAMC,OAAO,GAAG/B,MAAM,CAAC6B,IAAI,CAAC;EAC5B,MAAMG,WAAW,GAAGhC,MAAM,CAAC8B,QAAQ,CAAC;EACpCE,WAAW,CAACjB,OAAO,GAAGe,QAAQ;EAC9BhC,SAAS,CAAC,MAAM;IACd,MAAMmC,MAAM,GAAGF,OAAO,CAAChB,OAAO,IAAI,CAACc,IAAI;IACvCE,OAAO,CAAChB,OAAO,GAAGc,IAAI;IACtB,IAAI,CAACI,MAAM,IAAI,OAAOC,QAAQ,KAAK,WAAW,EAAE,OAAOC,SAAS;IAChE,MAAMC,MAAM,GAAGF,QAAQ,CAACG,aAAa;IACrC,IAAI,CAACD,MAAM,IAAIA,MAAM,KAAKF,QAAQ,CAACI,IAAI,IAAIN,WAAW,CAACjB,OAAO,CAACqB,MAAM,CAAC,EAAE;MACtEZ,cAAc,CAACI,SAAS,CAACb,OAAO,CAAC,EAAEwB,KAAK,CAAC;QAAEC,aAAa,EAAE;MAAK,CAAC,CAAC;MACjE,OAAOL,SAAS;IAClB;IACA,MAAMM,KAAK,GAAGC,UAAU,CAAC,MAAM;MAC7B,IAAIR,QAAQ,CAACG,aAAa,KAAKH,QAAQ,CAACI,IAAI,IAAI,CAACF,MAAM,CAACO,WAAW,EAAE;QACnEnB,cAAc,CAACI,SAAS,CAACb,OAAO,CAAC,EAAEwB,KAAK,CAAC;UAAEC,aAAa,EAAE;QAAK,CAAC,CAAC;MACnE;IACF,CAAC,EAAElC,oBAAoB,GAAG,EAAE,CAAC;IAC7B,OAAO,MAAMsC,YAAY,CAACH,KAAK,CAAC;EAClC,CAAC,EAAE,CAACZ,IAAI,EAAED,SAAS,CAAC,CAAC;AACvB;;AAEA;AACA,OAAO,SAASiB,eAAeA,CAACxB,OAAgB,EAAW;EACzD,OAAOA,OAAO,CAACyB,OAAO,CAACtC,mBAAmB,CAAC,KAAK,IAAI;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASuC,kBAAkBA,CAChCnB,SAAmC,EACnC;EACEC,IAAI;EACJmB,OAAO;EACPC,QAAQ;EACRC;AAMF,CAAC,EACK;EACN,MAAMxC,IAAI,GAAGwC,MAAM,EAAExC,IAAI;EACzB,MAAMG,OAAO,GAAGqC,MAAM,EAAErC,OAAO;EAC/Bf,SAAS,CAAC,MAAM;IACd,MAAM4B,OAAO,GAAGT,WAAW,CAACW,SAAS,CAACb,OAAO,CAAC;IAC9C,IAAI,CAACW,OAAO,IAAIuB,QAAQ,IAAI,CAACvC,IAAI,IAAI,CAACG,OAAO,EAAE,OAAOsB,SAAS;IAC/D,MAAMgB,SAAS,GAAIC,KAAoB,IAAK;MAC1C,IAAIA,KAAK,CAACC,gBAAgB,EAAE;MAC5B,IAAID,KAAK,CAACE,GAAG,KAAK,OAAO,IAAIpD,UAAU,CAACkD,KAAK,CAACE,GAAG,CAAC,EAAE;QAClD,IAAI,CAACzB,IAAI,EAAEnB,IAAI,CAACK,OAAO,GAAG,OAAO;QACjC;MACF;MACA,IAAIqC,KAAK,CAACE,GAAG,KAAK,WAAW,IAAIF,KAAK,CAACE,GAAG,KAAK,SAAS,EAAE;MAC1DF,KAAK,CAACG,cAAc,CAAC,CAAC;MACtB,IAAI,CAAC1B,IAAI,EAAEmB,OAAO,CAAC,IAAI,CAAC;MACxBnC,OAAO,CAACuC,KAAK,CAACE,GAAG,KAAK,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;IACvD,CAAC;IACD5B,OAAO,CAACH,gBAAgB,CAAC,SAAS,EAAE4B,SAAS,CAAC;IAC9C,OAAO,MAAMzB,OAAO,CAAC8B,mBAAmB,CAAC,SAAS,EAAEL,SAAS,CAAC;EAChE,CAAC,EAAE,CAACvB,SAAS,EAAEqB,QAAQ,EAAEpB,IAAI,EAAEmB,OAAO,EAAEtC,IAAI,EAAEG,OAAO,CAAC,CAAC;;EAEvD;EACA;EACAf,SAAS,CAAC,MAAM;IACd,IAAI,CAAC+B,IAAI,IAAInB,IAAI,EAAEA,IAAI,CAACK,OAAO,GAAG,IAAI;EACxC,CAAC,EAAE,CAACc,IAAI,EAAEnB,IAAI,CAAC,CAAC;EAEhBiB,qBAAqB,CAACC,SAAS,EAAEC,IAAI,EAAEgB,eAAe,CAAC;AACzD;;AAEA;AACA,SAASY,QAAQA,CAACC,KAAc,EAAiB;EAC/C;EACA;EACA,MAAMC,KAAK,GAAGD,KAAK,CAACZ,OAAO,CAACtC,mBAAmB,CAAC,IAAIkD,KAAK;EACzD,OAAOvD,WAAW,CAACwD,KAAK,EAAEpD,iBAAiB,EAAE;IAAEoD,KAAK,EAAEnD;EAAoB,CAAC,CAAC;AAC9E;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASoD,gBAAgBA,CAC9BF,KAAyB,EACzB;EAAE7B,IAAI;EAAEgC,KAAK;EAAEX;AAAuE,CAAC,EACjF;EACN,MAAMY,QAAQ,GAAG9D,MAAM,CAAC6D,KAAK,CAAC;EAC9BC,QAAQ,CAAC/C,OAAO,GAAG8C,KAAK;EAExB,MAAMnD,IAAI,GAAGwC,MAAM,EAAExC,IAAI;EACzB,MAAMC,IAAI,GAAGuC,MAAM,EAAEvC,IAAI;EACzBb,SAAS,CAAC,MAAM;IACd,IAAI,CAAC+B,IAAI,IAAI,CAAC6B,KAAK,IAAI,CAAChD,IAAI,EAAEK,OAAO,EAAE;IACvC,MAAMgD,IAAI,GAAGN,QAAQ,CAACC,KAAK,CAAC;IAC5B,MAAMM,MAAM,GAAGtD,IAAI,CAACK,OAAO,KAAK,MAAM,GAAGgD,IAAI,CAACA,IAAI,CAACE,MAAM,GAAG,CAAC,CAAC,GAAGF,IAAI,CAAC,CAAC,CAAC;IACxErD,IAAI,CAACK,OAAO,GAAG,IAAI;IACnBiD,MAAM,EAAEzB,KAAK,CAAC;MAAEC,aAAa,EAAE;IAAK,CAAC,CAAC;EACxC,CAAC,EAAE,CAACX,IAAI,EAAE6B,KAAK,EAAEhD,IAAI,EAAEC,IAAI,CAAC,CAAC;EAE7Bb,SAAS,CAAC,MAAM;IACd,IAAI,CAAC4D,KAAK,IAAI,CAAC7B,IAAI,EAAE,OAAOM,SAAS;IACrC,MAAMgB,SAAS,GAAIC,KAAoB,IAAK;MAC1C,IAAIA,KAAK,CAACC,gBAAgB,EAAE;MAC5B,MAAMjB,MAAM,GACV,OAAOF,QAAQ,KAAK,WAAW,GAAIA,QAAQ,CAACG,aAAa,GAA0B,IAAI;MACzF,MAAMtB,OAAO,GAAGqB,MAAM,EAAEU,OAAO,GAAGvC,iBAAiB,CAAC,IAAI,IAAI;MAC5D,IAAI6C,KAAK,CAACE,GAAG,KAAK,KAAK,EAAE;QACvBF,KAAK,CAACG,cAAc,CAAC,CAAC;QACtBO,QAAQ,CAAC/C,OAAO,CAAC,CAAC;QAClB;MACF;MACA,IAAIb,UAAU,CAACkD,KAAK,CAACE,GAAG,CAAC,EAAE;QACzB,IAAI,CAACvC,OAAO,IAAIA,OAAO,CAACmD,YAAY,CAAC,eAAe,CAAC,KAAK,MAAM,EAAE;QAClEd,KAAK,CAACG,cAAc,CAAC,CAAC;QACrBxC,OAAO,CAAiBoD,KAAK,CAAC,CAAC;QAChC;MACF;MACA,MAAMC,IAAI,GAAGhE,UAAU,CAACgD,KAAK,CAACE,GAAG,EAAE;QAAEe,WAAW,EAAE,UAAU;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAC9E,IAAIF,IAAI,KAAK,IAAI,EAAE;MACnBhB,KAAK,CAACG,cAAc,CAAC,CAAC;MACtBlD,YAAY,CAACoD,QAAQ,CAACC,KAAK,CAAC,EAAE3C,OAAO,EAAEqD,IAAI,EAAE,IAAI,CAAC,EAAE7B,KAAK,CAAC,CAAC;IAC7D,CAAC;IACDmB,KAAK,CAACnC,gBAAgB,CAAC,SAAS,EAAE4B,SAAS,CAAC;IAC5C,OAAO,MAAMO,KAAK,CAACF,mBAAmB,CAAC,SAAS,EAAEL,SAAS,CAAC;EAC9D,CAAC,EAAE,CAACO,KAAK,EAAE7B,IAAI,CAAC,CAAC;AACnB","ignoreList":[]}
@@ -40,7 +40,10 @@ import { RiArrowRightSLine as ChevronRightIcon } from "../icons/remix/RiArrowRig
40
40
  import { StyledView } from "../styles/styled-primitives.js";
41
41
  import { useMenuPalette } from "./menu-palette.js";
42
42
  import { MENU_SUB_PANEL_CLASS, MENU_SUB_SCROLL_CLASS, MENU_SUB_SIDE_OFFSET, ROW_ICON_SIZE } from "./constants.js";
43
+ import { useMenuSurface } from "./context.js";
44
+ import { pushFloatingEscape } from "./escape-stack.js";
43
45
  import { FloatingPanel } from "./FloatingPanel.js";
46
+ import { hostElement, MENU_ROW_SELECTOR, useMenuPanelKeys } from "./menu-keyboard.js";
44
47
  import { cx, MenuRowChevron, MenuRowShell, splitChildren, SUB_TRIGGER_CLASS } from "./shared.js";
45
48
  import { useFrameThrottle } from "./use-frame-throttle.js";
46
49
 
@@ -91,7 +94,7 @@ function isHoverPointer(event) {
91
94
  }
92
95
 
93
96
  /** Every role a menu ROW can carry — the rows a pointer can actually land on. */
94
- const MENU_ITEM_SELECTOR = '[role="menuitem"], [role="menuitemcheckbox"], [role="menuitemradio"], [role="checkbox"], [role="radio"]';
97
+ const MENU_ITEM_SELECTOR = MENU_ROW_SELECTOR;
95
98
 
96
99
  /**
97
100
  * Did the pointer leave for another ROW, rather than for the gap this sub's
@@ -461,22 +464,31 @@ export function createFlyoutMenuSub(prefix) {
461
464
  };
462
465
  }, [node, sub]);
463
466
 
464
- // Escape, in the CAPTURE phase with `stopImmediatePropagation`. Every open
465
- // `FloatingPanel` has a bubble-phase `keydown` listener on `document`, and
466
- // `stopPropagation` does not stop a sibling listener on the same node — so
467
- // without this the sub and its parent menu would both close on one press.
468
- // Capture runs before bubble whatever the registration order, which is what
469
- // makes "innermost first" hold rather than "whichever mounted first".
467
+ // Escape closes this flyout and leaves the menu open. The flyout's panel is
468
+ // `dismissible={false}` (a press outside it is the parent's business), so it
469
+ // takes its own entry on the escape stack — pushed after the parent's, so it
470
+ // is the one Escape reaches first (`escape-stack.ts`). This used to be a
471
+ // document CAPTURE listener with `stopImmediatePropagation`, which also took
472
+ // Escape away from any field inside the flyout.
473
+ const {
474
+ open: subOpen,
475
+ closeAndRefocus
476
+ } = sub;
477
+ const closeRef = useRef(closeAndRefocus);
478
+ closeRef.current = closeAndRefocus;
470
479
  useEffect(() => {
471
- if (!sub.open || typeof document === 'undefined') return;
472
- const onKeyDown = event => {
473
- if (event.key !== 'Escape') return;
474
- event.stopImmediatePropagation();
475
- sub.closeAndRefocus();
476
- };
477
- document.addEventListener('keydown', onKeyDown, true);
478
- return () => document.removeEventListener('keydown', onKeyDown, true);
479
- }, [sub]);
480
+ if (!subOpen || typeof document === 'undefined') return undefined;
481
+ return pushFloatingEscape(() => closeRef.current());
482
+ }, [subOpen]);
483
+
484
+ // Arrows (wrapping), Home/End, Space and Tab among the flyout's own rows —
485
+ // the same keys as the menu it flew out of (`menu-keyboard.ts`). Tab closes
486
+ // the WHOLE menu, not just this flyout: the menu is not in the tab order.
487
+ const surface = useMenuSurface();
488
+ useMenuPanelKeys(hostElement(node), {
489
+ open: sub.open,
490
+ onTab: surface.close
491
+ });
480
492
 
481
493
  // Move focus onto the panel once it has been placed, so Right genuinely
482
494
  // ENTERS the submenu rather than only opening it.