@oxy.so/bloom 4.5.0 → 4.6.1

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 (621) 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/persistence.js +12 -1
  136. package/lib/commonjs/theme/persistence.js.map +1 -1
  137. package/lib/commonjs/theme/seed-scope/index.web.js.map +1 -1
  138. package/lib/commonjs/tooltip/index.web.js.map +1 -1
  139. package/lib/module/agent-chat/index.web.js +5 -3
  140. package/lib/module/agent-chat/index.web.js.map +1 -1
  141. package/lib/module/ai-chat/index.web.js +5 -2
  142. package/lib/module/ai-chat/index.web.js.map +1 -1
  143. package/lib/module/alert-dialog/index.web.js +10 -1
  144. package/lib/module/alert-dialog/index.web.js.map +1 -1
  145. package/lib/module/avatar-group/index.web.js +5 -0
  146. package/lib/module/avatar-group/index.web.js.map +1 -1
  147. package/lib/module/bottom-sheet/index.web.js +5 -0
  148. package/lib/module/bottom-sheet/index.web.js.map +1 -1
  149. package/lib/module/code/index.js +1 -0
  150. package/lib/module/code/index.js.map +1 -1
  151. package/lib/module/command/index.web.js +5 -0
  152. package/lib/module/command/index.web.js.map +1 -1
  153. package/lib/module/composer-loader/ComposerLoader.web.js +8 -0
  154. package/lib/module/composer-loader/ComposerLoader.web.js.map +1 -1
  155. package/lib/module/composer-loader/index.web.js +5 -2
  156. package/lib/module/composer-loader/index.web.js.map +1 -1
  157. package/lib/module/composer-panel/index.web.js +5 -3
  158. package/lib/module/composer-panel/index.web.js.map +1 -1
  159. package/lib/module/connection-dots/index.web.js +5 -0
  160. package/lib/module/connection-dots/index.web.js.map +1 -1
  161. package/lib/module/connection-status/index.web.js +5 -0
  162. package/lib/module/connection-status/index.web.js.map +1 -1
  163. package/lib/module/content-panel/index.web.js +5 -0
  164. package/lib/module/content-panel/index.web.js.map +1 -1
  165. package/lib/module/context-menu/ContextMenu.web.js +22 -4
  166. package/lib/module/context-menu/ContextMenu.web.js.map +1 -1
  167. package/lib/module/context-menu/context.js.map +1 -1
  168. package/lib/module/context-menu/index.web.js +5 -0
  169. package/lib/module/context-menu/index.web.js.map +1 -1
  170. package/lib/module/dialog/Dialog.web.js +13 -0
  171. package/lib/module/dialog/Dialog.web.js.map +1 -1
  172. package/lib/module/dialog/index.web.js +7 -11
  173. package/lib/module/dialog/index.web.js.map +1 -1
  174. package/lib/module/dropdown-menu/DropdownMenu.web.js +23 -3
  175. package/lib/module/dropdown-menu/DropdownMenu.web.js.map +1 -1
  176. package/lib/module/dropdown-menu/index.web.js +5 -0
  177. package/lib/module/dropdown-menu/index.web.js.map +1 -1
  178. package/lib/module/floating/FloatingPanel.js +42 -33
  179. package/lib/module/floating/FloatingPanel.js.map +1 -1
  180. package/lib/module/floating/escape-stack.js +85 -0
  181. package/lib/module/floating/escape-stack.js.map +1 -0
  182. package/lib/module/floating/menu-keyboard.js +227 -0
  183. package/lib/module/floating/menu-keyboard.js.map +1 -0
  184. package/lib/module/floating/menu-sub-flyout.js +28 -16
  185. package/lib/module/floating/menu-sub-flyout.js.map +1 -1
  186. package/lib/module/fonts/index.web.js +5 -20
  187. package/lib/module/fonts/index.web.js.map +1 -1
  188. package/lib/module/frosted-icon-button/FrostedIconButton.web.js +9 -0
  189. package/lib/module/frosted-icon-button/FrostedIconButton.web.js.map +1 -1
  190. package/lib/module/frosted-icon-button/index.web.js +5 -7
  191. package/lib/module/frosted-icon-button/index.web.js.map +1 -1
  192. package/lib/module/hooks/roving-focus.js +181 -0
  193. package/lib/module/hooks/roving-focus.js.map +1 -0
  194. package/lib/module/hover-card/index.web.js +5 -0
  195. package/lib/module/hover-card/index.web.js.map +1 -1
  196. package/lib/module/icons/remix/RiBookReadLine.js +9 -0
  197. package/lib/module/icons/remix/RiBookReadLine.js.map +1 -0
  198. package/lib/module/icons/remix/RiBugLine.js +9 -0
  199. package/lib/module/icons/remix/RiBugLine.js.map +1 -0
  200. package/lib/module/icons/remix/RiChat1Line.js +9 -0
  201. package/lib/module/icons/remix/RiChat1Line.js.map +1 -0
  202. package/lib/module/icons/remix/RiCloudLine.js +9 -0
  203. package/lib/module/icons/remix/RiCloudLine.js.map +1 -0
  204. package/lib/module/icons/remix/RiCodeLine.js +9 -0
  205. package/lib/module/icons/remix/RiCodeLine.js.map +1 -0
  206. package/lib/module/icons/remix/RiCpuLine.js +9 -0
  207. package/lib/module/icons/remix/RiCpuLine.js.map +1 -0
  208. package/lib/module/icons/remix/RiFloodLine.js +9 -0
  209. package/lib/module/icons/remix/RiFloodLine.js.map +1 -0
  210. package/lib/module/icons/remix/RiLockUnlockLine.js +9 -0
  211. package/lib/module/icons/remix/RiLockUnlockLine.js.map +1 -0
  212. package/lib/module/icons/remix/RiMoneyDollarCircleLine.js +9 -0
  213. package/lib/module/icons/remix/RiMoneyDollarCircleLine.js.map +1 -0
  214. package/lib/module/icons/remix/RiPlayCircleLine.js +9 -0
  215. package/lib/module/icons/remix/RiPlayCircleLine.js.map +1 -0
  216. package/lib/module/icons/remix/RiRocket2Line.js +9 -0
  217. package/lib/module/icons/remix/RiRocket2Line.js.map +1 -0
  218. package/lib/module/icons/remix/RiServerLine.js +9 -0
  219. package/lib/module/icons/remix/RiServerLine.js.map +1 -0
  220. package/lib/module/icons/remix/RiShareBoxLine.js +9 -0
  221. package/lib/module/icons/remix/RiShareBoxLine.js.map +1 -0
  222. package/lib/module/icons/remix/RiTv2Line.js +9 -0
  223. package/lib/module/icons/remix/RiTv2Line.js.map +1 -0
  224. package/lib/module/icons/remix/index.js +14 -0
  225. package/lib/module/icons/remix/index.js.map +1 -1
  226. package/lib/module/list/index.web.js +5 -0
  227. package/lib/module/list/index.web.js.map +1 -1
  228. package/lib/module/loading/Loading.js +17 -155
  229. package/lib/module/loading/Loading.js.map +1 -1
  230. package/lib/module/loading/Loading.web.js +19 -155
  231. package/lib/module/loading/Loading.web.js.map +1 -1
  232. package/lib/module/loading/LoadingBase.js +194 -0
  233. package/lib/module/loading/LoadingBase.js.map +1 -0
  234. package/lib/module/loading/index.web.js +5 -13
  235. package/lib/module/loading/index.web.js.map +1 -1
  236. package/lib/module/media-flight/index.web.js +5 -9
  237. package/lib/module/media-flight/index.web.js.map +1 -1
  238. package/lib/module/menubar/Menubar.js +15 -122
  239. package/lib/module/menubar/Menubar.js.map +1 -1
  240. package/lib/module/menubar/Menubar.web.js +18 -114
  241. package/lib/module/menubar/Menubar.web.js.map +1 -1
  242. package/lib/module/menubar/MenubarBase.js +146 -0
  243. package/lib/module/menubar/MenubarBase.js.map +1 -0
  244. package/lib/module/menubar/index.web.js +5 -0
  245. package/lib/module/menubar/index.web.js.map +1 -1
  246. package/lib/module/motion/index.web.js +5 -5
  247. package/lib/module/motion/index.web.js.map +1 -1
  248. package/lib/module/popover/index.web.js +5 -0
  249. package/lib/module/popover/index.web.js.map +1 -1
  250. package/lib/module/popover/parts.js +70 -12
  251. package/lib/module/popover/parts.js.map +1 -1
  252. package/lib/module/popover/surface.js +39 -13
  253. package/lib/module/popover/surface.js.map +1 -1
  254. package/lib/module/portal/index.web.js +6 -1
  255. package/lib/module/portal/index.web.js.map +1 -1
  256. package/lib/module/progressive-blur/index.web.js +5 -0
  257. package/lib/module/progressive-blur/index.web.js.map +1 -1
  258. package/lib/module/scroll/index.web.js +5 -0
  259. package/lib/module/scroll/index.web.js.map +1 -1
  260. package/lib/module/segmented-control/SegmentedControl.js +36 -1
  261. package/lib/module/segmented-control/SegmentedControl.js.map +1 -1
  262. package/lib/module/select/Select.js +5 -77
  263. package/lib/module/select/Select.js.map +1 -1
  264. package/lib/module/select/Select.web.js +147 -82
  265. package/lib/module/select/Select.web.js.map +1 -1
  266. package/lib/module/select/index.js +2 -2
  267. package/lib/module/select/index.js.map +1 -1
  268. package/lib/module/select/index.web.js +7 -2
  269. package/lib/module/select/index.web.js.map +1 -1
  270. package/lib/module/select/shared.js +106 -6
  271. package/lib/module/select/shared.js.map +1 -1
  272. package/lib/module/sidebar/SidebarTeamMenu.js +2 -2
  273. package/lib/module/sidebar/SidebarTeamMenu.js.map +1 -1
  274. package/lib/module/sidebar/SidebarUserMenu.js +2 -2
  275. package/lib/module/sidebar/SidebarUserMenu.js.map +1 -1
  276. package/lib/module/sidebar/parts.js +8 -8
  277. package/lib/module/sidebar/parts.js.map +1 -1
  278. package/lib/module/surfaces/SurfaceHost.js +6 -0
  279. package/lib/module/surfaces/SurfaceHost.js.map +1 -1
  280. package/lib/module/surfaces/index.web.js +14 -4
  281. package/lib/module/surfaces/index.web.js.map +1 -1
  282. package/lib/module/tab-bar/index.web.js +13 -10
  283. package/lib/module/tab-bar/index.web.js.map +1 -1
  284. package/lib/module/tabs/Tabs.js +49 -2
  285. package/lib/module/tabs/Tabs.js.map +1 -1
  286. package/lib/module/theme/color-scope/index.web.js +5 -0
  287. package/lib/module/theme/color-scope/index.web.js.map +1 -1
  288. package/lib/module/theme/persistence.js +12 -1
  289. package/lib/module/theme/persistence.js.map +1 -1
  290. package/lib/module/theme/seed-scope/index.web.js +5 -0
  291. package/lib/module/theme/seed-scope/index.web.js.map +1 -1
  292. package/lib/module/tooltip/index.web.js +5 -0
  293. package/lib/module/tooltip/index.web.js.map +1 -1
  294. package/lib/typescript/commonjs/agent-chat/index.web.d.ts.map +1 -1
  295. package/lib/typescript/commonjs/ai-chat/index.web.d.ts.map +1 -1
  296. package/lib/typescript/commonjs/alert-dialog/index.web.d.ts +5 -1
  297. package/lib/typescript/commonjs/alert-dialog/index.web.d.ts.map +1 -1
  298. package/lib/typescript/commonjs/avatar-group/index.web.d.ts.map +1 -1
  299. package/lib/typescript/commonjs/bottom-sheet/index.web.d.ts.map +1 -1
  300. package/lib/typescript/commonjs/code/index.d.ts +2 -0
  301. package/lib/typescript/commonjs/code/index.d.ts.map +1 -1
  302. package/lib/typescript/commonjs/command/index.web.d.ts.map +1 -1
  303. package/lib/typescript/commonjs/composer-loader/ComposerLoader.web.d.ts +8 -0
  304. package/lib/typescript/commonjs/composer-loader/ComposerLoader.web.d.ts.map +1 -1
  305. package/lib/typescript/commonjs/composer-loader/index.web.d.ts.map +1 -1
  306. package/lib/typescript/commonjs/composer-panel/index.web.d.ts.map +1 -1
  307. package/lib/typescript/commonjs/connection-dots/index.web.d.ts.map +1 -1
  308. package/lib/typescript/commonjs/connection-status/index.web.d.ts.map +1 -1
  309. package/lib/typescript/commonjs/content-panel/index.web.d.ts.map +1 -1
  310. package/lib/typescript/commonjs/context-menu/ContextMenu.web.d.ts.map +1 -1
  311. package/lib/typescript/commonjs/context-menu/context.d.ts +3 -0
  312. package/lib/typescript/commonjs/context-menu/context.d.ts.map +1 -1
  313. package/lib/typescript/commonjs/context-menu/index.web.d.ts.map +1 -1
  314. package/lib/typescript/commonjs/dialog/Dialog.web.d.ts.map +1 -1
  315. package/lib/typescript/commonjs/dialog/index.web.d.ts +2 -1
  316. package/lib/typescript/commonjs/dialog/index.web.d.ts.map +1 -1
  317. package/lib/typescript/commonjs/dropdown-menu/DropdownMenu.web.d.ts.map +1 -1
  318. package/lib/typescript/commonjs/dropdown-menu/index.web.d.ts.map +1 -1
  319. package/lib/typescript/commonjs/floating/FloatingPanel.d.ts +1 -1
  320. package/lib/typescript/commonjs/floating/FloatingPanel.d.ts.map +1 -1
  321. package/lib/typescript/commonjs/floating/escape-stack.d.ts +55 -0
  322. package/lib/typescript/commonjs/floating/escape-stack.d.ts.map +1 -0
  323. package/lib/typescript/commonjs/floating/menu-keyboard.d.ts +57 -0
  324. package/lib/typescript/commonjs/floating/menu-keyboard.d.ts.map +1 -0
  325. package/lib/typescript/commonjs/floating/menu-sub-flyout.d.ts.map +1 -1
  326. package/lib/typescript/commonjs/floating/types.d.ts +11 -0
  327. package/lib/typescript/commonjs/floating/types.d.ts.map +1 -1
  328. package/lib/typescript/commonjs/fonts/index.web.d.ts.map +1 -1
  329. package/lib/typescript/commonjs/frosted-icon-button/FrostedIconButton.web.d.ts.map +1 -1
  330. package/lib/typescript/commonjs/frosted-icon-button/index.web.d.ts.map +1 -1
  331. package/lib/typescript/commonjs/hooks/roving-focus.d.ts +66 -0
  332. package/lib/typescript/commonjs/hooks/roving-focus.d.ts.map +1 -0
  333. package/lib/typescript/commonjs/hover-card/index.web.d.ts.map +1 -1
  334. package/lib/typescript/commonjs/icons/remix/RiBookReadLine.d.ts +8 -0
  335. package/lib/typescript/commonjs/icons/remix/RiBookReadLine.d.ts.map +1 -0
  336. package/lib/typescript/commonjs/icons/remix/RiBugLine.d.ts +8 -0
  337. package/lib/typescript/commonjs/icons/remix/RiBugLine.d.ts.map +1 -0
  338. package/lib/typescript/commonjs/icons/remix/RiChat1Line.d.ts +8 -0
  339. package/lib/typescript/commonjs/icons/remix/RiChat1Line.d.ts.map +1 -0
  340. package/lib/typescript/commonjs/icons/remix/RiCloudLine.d.ts +8 -0
  341. package/lib/typescript/commonjs/icons/remix/RiCloudLine.d.ts.map +1 -0
  342. package/lib/typescript/commonjs/icons/remix/RiCodeLine.d.ts +8 -0
  343. package/lib/typescript/commonjs/icons/remix/RiCodeLine.d.ts.map +1 -0
  344. package/lib/typescript/commonjs/icons/remix/RiCpuLine.d.ts +8 -0
  345. package/lib/typescript/commonjs/icons/remix/RiCpuLine.d.ts.map +1 -0
  346. package/lib/typescript/commonjs/icons/remix/RiFloodLine.d.ts +8 -0
  347. package/lib/typescript/commonjs/icons/remix/RiFloodLine.d.ts.map +1 -0
  348. package/lib/typescript/commonjs/icons/remix/RiLockUnlockLine.d.ts +8 -0
  349. package/lib/typescript/commonjs/icons/remix/RiLockUnlockLine.d.ts.map +1 -0
  350. package/lib/typescript/commonjs/icons/remix/RiMoneyDollarCircleLine.d.ts +8 -0
  351. package/lib/typescript/commonjs/icons/remix/RiMoneyDollarCircleLine.d.ts.map +1 -0
  352. package/lib/typescript/commonjs/icons/remix/RiPlayCircleLine.d.ts +8 -0
  353. package/lib/typescript/commonjs/icons/remix/RiPlayCircleLine.d.ts.map +1 -0
  354. package/lib/typescript/commonjs/icons/remix/RiRocket2Line.d.ts +8 -0
  355. package/lib/typescript/commonjs/icons/remix/RiRocket2Line.d.ts.map +1 -0
  356. package/lib/typescript/commonjs/icons/remix/RiServerLine.d.ts +8 -0
  357. package/lib/typescript/commonjs/icons/remix/RiServerLine.d.ts.map +1 -0
  358. package/lib/typescript/commonjs/icons/remix/RiShareBoxLine.d.ts +8 -0
  359. package/lib/typescript/commonjs/icons/remix/RiShareBoxLine.d.ts.map +1 -0
  360. package/lib/typescript/commonjs/icons/remix/RiTv2Line.d.ts +8 -0
  361. package/lib/typescript/commonjs/icons/remix/RiTv2Line.d.ts.map +1 -0
  362. package/lib/typescript/commonjs/icons/remix/index.d.ts +14 -0
  363. package/lib/typescript/commonjs/icons/remix/index.d.ts.map +1 -1
  364. package/lib/typescript/commonjs/list/index.web.d.ts.map +1 -1
  365. package/lib/typescript/commonjs/loading/Loading.d.ts +8 -2
  366. package/lib/typescript/commonjs/loading/Loading.d.ts.map +1 -1
  367. package/lib/typescript/commonjs/loading/Loading.web.d.ts +10 -2
  368. package/lib/typescript/commonjs/loading/Loading.web.d.ts.map +1 -1
  369. package/lib/typescript/commonjs/loading/LoadingBase.d.ts +64 -0
  370. package/lib/typescript/commonjs/loading/LoadingBase.d.ts.map +1 -0
  371. package/lib/typescript/commonjs/loading/index.web.d.ts.map +1 -1
  372. package/lib/typescript/commonjs/media-flight/index.web.d.ts +0 -9
  373. package/lib/typescript/commonjs/media-flight/index.web.d.ts.map +1 -1
  374. package/lib/typescript/commonjs/menubar/Menubar.d.ts +14 -9
  375. package/lib/typescript/commonjs/menubar/Menubar.d.ts.map +1 -1
  376. package/lib/typescript/commonjs/menubar/Menubar.web.d.ts +8 -6
  377. package/lib/typescript/commonjs/menubar/Menubar.web.d.ts.map +1 -1
  378. package/lib/typescript/commonjs/menubar/MenubarBase.d.ts +5 -0
  379. package/lib/typescript/commonjs/menubar/MenubarBase.d.ts.map +1 -0
  380. package/lib/typescript/commonjs/menubar/index.web.d.ts.map +1 -1
  381. package/lib/typescript/commonjs/motion/index.web.d.ts +0 -5
  382. package/lib/typescript/commonjs/motion/index.web.d.ts.map +1 -1
  383. package/lib/typescript/commonjs/popover/index.web.d.ts.map +1 -1
  384. package/lib/typescript/commonjs/popover/parts.d.ts.map +1 -1
  385. package/lib/typescript/commonjs/popover/surface.d.ts +15 -5
  386. package/lib/typescript/commonjs/popover/surface.d.ts.map +1 -1
  387. package/lib/typescript/commonjs/portal/index.web.d.ts +1 -1
  388. package/lib/typescript/commonjs/portal/index.web.d.ts.map +1 -1
  389. package/lib/typescript/commonjs/progressive-blur/index.web.d.ts.map +1 -1
  390. package/lib/typescript/commonjs/scroll/index.web.d.ts.map +1 -1
  391. package/lib/typescript/commonjs/segmented-control/SegmentedControl.d.ts.map +1 -1
  392. package/lib/typescript/commonjs/select/Select.d.ts +2 -4
  393. package/lib/typescript/commonjs/select/Select.d.ts.map +1 -1
  394. package/lib/typescript/commonjs/select/Select.web.d.ts +2 -4
  395. package/lib/typescript/commonjs/select/Select.web.d.ts.map +1 -1
  396. package/lib/typescript/commonjs/select/index.d.ts +2 -2
  397. package/lib/typescript/commonjs/select/index.d.ts.map +1 -1
  398. package/lib/typescript/commonjs/select/index.web.d.ts +2 -2
  399. package/lib/typescript/commonjs/select/index.web.d.ts.map +1 -1
  400. package/lib/typescript/commonjs/select/shared.d.ts +52 -5
  401. package/lib/typescript/commonjs/select/shared.d.ts.map +1 -1
  402. package/lib/typescript/commonjs/select/types.d.ts +6 -0
  403. package/lib/typescript/commonjs/select/types.d.ts.map +1 -1
  404. package/lib/typescript/commonjs/sidebar/parts.d.ts +8 -2
  405. package/lib/typescript/commonjs/sidebar/parts.d.ts.map +1 -1
  406. package/lib/typescript/commonjs/surfaces/SurfaceHost.d.ts.map +1 -1
  407. package/lib/typescript/commonjs/surfaces/index.web.d.ts +9 -4
  408. package/lib/typescript/commonjs/surfaces/index.web.d.ts.map +1 -1
  409. package/lib/typescript/commonjs/tab-bar/index.web.d.ts.map +1 -1
  410. package/lib/typescript/commonjs/tabs/Tabs.d.ts.map +1 -1
  411. package/lib/typescript/commonjs/tabs/types.d.ts +6 -0
  412. package/lib/typescript/commonjs/tabs/types.d.ts.map +1 -1
  413. package/lib/typescript/commonjs/theme/color-scope/index.web.d.ts.map +1 -1
  414. package/lib/typescript/commonjs/theme/persistence.d.ts.map +1 -1
  415. package/lib/typescript/commonjs/theme/seed-scope/index.web.d.ts.map +1 -1
  416. package/lib/typescript/commonjs/tooltip/index.web.d.ts.map +1 -1
  417. package/lib/typescript/module/agent-chat/index.web.d.ts.map +1 -1
  418. package/lib/typescript/module/ai-chat/index.web.d.ts.map +1 -1
  419. package/lib/typescript/module/alert-dialog/index.web.d.ts +5 -1
  420. package/lib/typescript/module/alert-dialog/index.web.d.ts.map +1 -1
  421. package/lib/typescript/module/avatar-group/index.web.d.ts.map +1 -1
  422. package/lib/typescript/module/bottom-sheet/index.web.d.ts.map +1 -1
  423. package/lib/typescript/module/code/index.d.ts +2 -0
  424. package/lib/typescript/module/code/index.d.ts.map +1 -1
  425. package/lib/typescript/module/command/index.web.d.ts.map +1 -1
  426. package/lib/typescript/module/composer-loader/ComposerLoader.web.d.ts +8 -0
  427. package/lib/typescript/module/composer-loader/ComposerLoader.web.d.ts.map +1 -1
  428. package/lib/typescript/module/composer-loader/index.web.d.ts.map +1 -1
  429. package/lib/typescript/module/composer-panel/index.web.d.ts.map +1 -1
  430. package/lib/typescript/module/connection-dots/index.web.d.ts.map +1 -1
  431. package/lib/typescript/module/connection-status/index.web.d.ts.map +1 -1
  432. package/lib/typescript/module/content-panel/index.web.d.ts.map +1 -1
  433. package/lib/typescript/module/context-menu/ContextMenu.web.d.ts.map +1 -1
  434. package/lib/typescript/module/context-menu/context.d.ts +3 -0
  435. package/lib/typescript/module/context-menu/context.d.ts.map +1 -1
  436. package/lib/typescript/module/context-menu/index.web.d.ts.map +1 -1
  437. package/lib/typescript/module/dialog/Dialog.web.d.ts.map +1 -1
  438. package/lib/typescript/module/dialog/index.web.d.ts +2 -1
  439. package/lib/typescript/module/dialog/index.web.d.ts.map +1 -1
  440. package/lib/typescript/module/dropdown-menu/DropdownMenu.web.d.ts.map +1 -1
  441. package/lib/typescript/module/dropdown-menu/index.web.d.ts.map +1 -1
  442. package/lib/typescript/module/floating/FloatingPanel.d.ts +1 -1
  443. package/lib/typescript/module/floating/FloatingPanel.d.ts.map +1 -1
  444. package/lib/typescript/module/floating/escape-stack.d.ts +55 -0
  445. package/lib/typescript/module/floating/escape-stack.d.ts.map +1 -0
  446. package/lib/typescript/module/floating/menu-keyboard.d.ts +57 -0
  447. package/lib/typescript/module/floating/menu-keyboard.d.ts.map +1 -0
  448. package/lib/typescript/module/floating/menu-sub-flyout.d.ts.map +1 -1
  449. package/lib/typescript/module/floating/types.d.ts +11 -0
  450. package/lib/typescript/module/floating/types.d.ts.map +1 -1
  451. package/lib/typescript/module/fonts/index.web.d.ts.map +1 -1
  452. package/lib/typescript/module/frosted-icon-button/FrostedIconButton.web.d.ts.map +1 -1
  453. package/lib/typescript/module/frosted-icon-button/index.web.d.ts.map +1 -1
  454. package/lib/typescript/module/hooks/roving-focus.d.ts +66 -0
  455. package/lib/typescript/module/hooks/roving-focus.d.ts.map +1 -0
  456. package/lib/typescript/module/hover-card/index.web.d.ts.map +1 -1
  457. package/lib/typescript/module/icons/remix/RiBookReadLine.d.ts +8 -0
  458. package/lib/typescript/module/icons/remix/RiBookReadLine.d.ts.map +1 -0
  459. package/lib/typescript/module/icons/remix/RiBugLine.d.ts +8 -0
  460. package/lib/typescript/module/icons/remix/RiBugLine.d.ts.map +1 -0
  461. package/lib/typescript/module/icons/remix/RiChat1Line.d.ts +8 -0
  462. package/lib/typescript/module/icons/remix/RiChat1Line.d.ts.map +1 -0
  463. package/lib/typescript/module/icons/remix/RiCloudLine.d.ts +8 -0
  464. package/lib/typescript/module/icons/remix/RiCloudLine.d.ts.map +1 -0
  465. package/lib/typescript/module/icons/remix/RiCodeLine.d.ts +8 -0
  466. package/lib/typescript/module/icons/remix/RiCodeLine.d.ts.map +1 -0
  467. package/lib/typescript/module/icons/remix/RiCpuLine.d.ts +8 -0
  468. package/lib/typescript/module/icons/remix/RiCpuLine.d.ts.map +1 -0
  469. package/lib/typescript/module/icons/remix/RiFloodLine.d.ts +8 -0
  470. package/lib/typescript/module/icons/remix/RiFloodLine.d.ts.map +1 -0
  471. package/lib/typescript/module/icons/remix/RiLockUnlockLine.d.ts +8 -0
  472. package/lib/typescript/module/icons/remix/RiLockUnlockLine.d.ts.map +1 -0
  473. package/lib/typescript/module/icons/remix/RiMoneyDollarCircleLine.d.ts +8 -0
  474. package/lib/typescript/module/icons/remix/RiMoneyDollarCircleLine.d.ts.map +1 -0
  475. package/lib/typescript/module/icons/remix/RiPlayCircleLine.d.ts +8 -0
  476. package/lib/typescript/module/icons/remix/RiPlayCircleLine.d.ts.map +1 -0
  477. package/lib/typescript/module/icons/remix/RiRocket2Line.d.ts +8 -0
  478. package/lib/typescript/module/icons/remix/RiRocket2Line.d.ts.map +1 -0
  479. package/lib/typescript/module/icons/remix/RiServerLine.d.ts +8 -0
  480. package/lib/typescript/module/icons/remix/RiServerLine.d.ts.map +1 -0
  481. package/lib/typescript/module/icons/remix/RiShareBoxLine.d.ts +8 -0
  482. package/lib/typescript/module/icons/remix/RiShareBoxLine.d.ts.map +1 -0
  483. package/lib/typescript/module/icons/remix/RiTv2Line.d.ts +8 -0
  484. package/lib/typescript/module/icons/remix/RiTv2Line.d.ts.map +1 -0
  485. package/lib/typescript/module/icons/remix/index.d.ts +14 -0
  486. package/lib/typescript/module/icons/remix/index.d.ts.map +1 -1
  487. package/lib/typescript/module/list/index.web.d.ts.map +1 -1
  488. package/lib/typescript/module/loading/Loading.d.ts +8 -2
  489. package/lib/typescript/module/loading/Loading.d.ts.map +1 -1
  490. package/lib/typescript/module/loading/Loading.web.d.ts +10 -2
  491. package/lib/typescript/module/loading/Loading.web.d.ts.map +1 -1
  492. package/lib/typescript/module/loading/LoadingBase.d.ts +64 -0
  493. package/lib/typescript/module/loading/LoadingBase.d.ts.map +1 -0
  494. package/lib/typescript/module/loading/index.web.d.ts.map +1 -1
  495. package/lib/typescript/module/media-flight/index.web.d.ts +0 -9
  496. package/lib/typescript/module/media-flight/index.web.d.ts.map +1 -1
  497. package/lib/typescript/module/menubar/Menubar.d.ts +14 -9
  498. package/lib/typescript/module/menubar/Menubar.d.ts.map +1 -1
  499. package/lib/typescript/module/menubar/Menubar.web.d.ts +8 -6
  500. package/lib/typescript/module/menubar/Menubar.web.d.ts.map +1 -1
  501. package/lib/typescript/module/menubar/MenubarBase.d.ts +5 -0
  502. package/lib/typescript/module/menubar/MenubarBase.d.ts.map +1 -0
  503. package/lib/typescript/module/menubar/index.web.d.ts.map +1 -1
  504. package/lib/typescript/module/motion/index.web.d.ts +0 -5
  505. package/lib/typescript/module/motion/index.web.d.ts.map +1 -1
  506. package/lib/typescript/module/popover/index.web.d.ts.map +1 -1
  507. package/lib/typescript/module/popover/parts.d.ts.map +1 -1
  508. package/lib/typescript/module/popover/surface.d.ts +15 -5
  509. package/lib/typescript/module/popover/surface.d.ts.map +1 -1
  510. package/lib/typescript/module/portal/index.web.d.ts +1 -1
  511. package/lib/typescript/module/portal/index.web.d.ts.map +1 -1
  512. package/lib/typescript/module/progressive-blur/index.web.d.ts.map +1 -1
  513. package/lib/typescript/module/scroll/index.web.d.ts.map +1 -1
  514. package/lib/typescript/module/segmented-control/SegmentedControl.d.ts.map +1 -1
  515. package/lib/typescript/module/select/Select.d.ts +2 -4
  516. package/lib/typescript/module/select/Select.d.ts.map +1 -1
  517. package/lib/typescript/module/select/Select.web.d.ts +2 -4
  518. package/lib/typescript/module/select/Select.web.d.ts.map +1 -1
  519. package/lib/typescript/module/select/index.d.ts +2 -2
  520. package/lib/typescript/module/select/index.d.ts.map +1 -1
  521. package/lib/typescript/module/select/index.web.d.ts +2 -2
  522. package/lib/typescript/module/select/index.web.d.ts.map +1 -1
  523. package/lib/typescript/module/select/shared.d.ts +52 -5
  524. package/lib/typescript/module/select/shared.d.ts.map +1 -1
  525. package/lib/typescript/module/select/types.d.ts +6 -0
  526. package/lib/typescript/module/select/types.d.ts.map +1 -1
  527. package/lib/typescript/module/sidebar/parts.d.ts +8 -2
  528. package/lib/typescript/module/sidebar/parts.d.ts.map +1 -1
  529. package/lib/typescript/module/surfaces/SurfaceHost.d.ts.map +1 -1
  530. package/lib/typescript/module/surfaces/index.web.d.ts +9 -4
  531. package/lib/typescript/module/surfaces/index.web.d.ts.map +1 -1
  532. package/lib/typescript/module/tab-bar/index.web.d.ts.map +1 -1
  533. package/lib/typescript/module/tabs/Tabs.d.ts.map +1 -1
  534. package/lib/typescript/module/tabs/types.d.ts +6 -0
  535. package/lib/typescript/module/tabs/types.d.ts.map +1 -1
  536. package/lib/typescript/module/theme/color-scope/index.web.d.ts.map +1 -1
  537. package/lib/typescript/module/theme/persistence.d.ts.map +1 -1
  538. package/lib/typescript/module/theme/seed-scope/index.web.d.ts.map +1 -1
  539. package/lib/typescript/module/tooltip/index.web.d.ts.map +1 -1
  540. package/package.json +1 -1
  541. package/src/agent-chat/index.web.ts +5 -3
  542. package/src/ai-chat/index.web.ts +5 -2
  543. package/src/alert-dialog/index.web.ts +10 -1
  544. package/src/avatar-group/index.web.ts +5 -0
  545. package/src/bottom-sheet/index.web.ts +5 -0
  546. package/src/code/index.ts +2 -0
  547. package/src/command/index.web.ts +5 -0
  548. package/src/composer-loader/ComposerLoader.web.tsx +8 -0
  549. package/src/composer-loader/index.web.ts +5 -2
  550. package/src/composer-panel/index.web.ts +5 -3
  551. package/src/connection-dots/index.web.ts +5 -0
  552. package/src/connection-status/index.web.ts +5 -0
  553. package/src/content-panel/index.web.ts +5 -0
  554. package/src/context-menu/ContextMenu.web.tsx +26 -3
  555. package/src/context-menu/context.ts +3 -0
  556. package/src/context-menu/index.web.ts +5 -0
  557. package/src/dialog/Dialog.web.tsx +13 -0
  558. package/src/dialog/index.web.ts +7 -11
  559. package/src/dropdown-menu/DropdownMenu.web.tsx +25 -2
  560. package/src/dropdown-menu/index.web.ts +5 -0
  561. package/src/floating/FloatingPanel.tsx +37 -38
  562. package/src/floating/escape-stack.ts +92 -0
  563. package/src/floating/menu-keyboard.ts +242 -0
  564. package/src/floating/menu-sub-flyout.tsx +22 -17
  565. package/src/floating/types.ts +11 -0
  566. package/src/fonts/index.web.ts +5 -20
  567. package/src/frosted-icon-button/FrostedIconButton.web.tsx +9 -0
  568. package/src/frosted-icon-button/index.web.ts +5 -7
  569. package/src/hooks/roving-focus.ts +204 -0
  570. package/src/hover-card/index.web.ts +5 -0
  571. package/src/icons/remix/RiBookReadLine.tsx +6 -0
  572. package/src/icons/remix/RiBugLine.tsx +6 -0
  573. package/src/icons/remix/RiChat1Line.tsx +6 -0
  574. package/src/icons/remix/RiCloudLine.tsx +6 -0
  575. package/src/icons/remix/RiCodeLine.tsx +6 -0
  576. package/src/icons/remix/RiCpuLine.tsx +6 -0
  577. package/src/icons/remix/RiFloodLine.tsx +6 -0
  578. package/src/icons/remix/RiLockUnlockLine.tsx +6 -0
  579. package/src/icons/remix/RiMoneyDollarCircleLine.tsx +6 -0
  580. package/src/icons/remix/RiPlayCircleLine.tsx +6 -0
  581. package/src/icons/remix/RiRocket2Line.tsx +6 -0
  582. package/src/icons/remix/RiServerLine.tsx +6 -0
  583. package/src/icons/remix/RiShareBoxLine.tsx +6 -0
  584. package/src/icons/remix/RiTv2Line.tsx +6 -0
  585. package/src/icons/remix/index.ts +14 -0
  586. package/src/list/index.web.ts +5 -0
  587. package/src/loading/Loading.tsx +15 -135
  588. package/src/loading/Loading.web.tsx +16 -134
  589. package/src/loading/LoadingBase.tsx +170 -0
  590. package/src/loading/index.web.ts +5 -13
  591. package/src/media-flight/index.web.ts +5 -9
  592. package/src/menubar/Menubar.tsx +16 -147
  593. package/src/menubar/Menubar.web.tsx +15 -138
  594. package/src/menubar/MenubarBase.tsx +170 -0
  595. package/src/menubar/index.web.ts +5 -0
  596. package/src/motion/index.web.ts +5 -5
  597. package/src/popover/index.web.ts +5 -0
  598. package/src/popover/parts.tsx +76 -12
  599. package/src/popover/surface.ts +68 -15
  600. package/src/portal/index.web.ts +6 -1
  601. package/src/progressive-blur/index.web.ts +5 -0
  602. package/src/scroll/index.web.ts +5 -0
  603. package/src/segmented-control/SegmentedControl.tsx +45 -1
  604. package/src/select/Select.tsx +4 -67
  605. package/src/select/Select.web.tsx +133 -69
  606. package/src/select/index.ts +3 -3
  607. package/src/select/index.web.ts +8 -3
  608. package/src/select/shared.tsx +107 -5
  609. package/src/select/types.ts +6 -0
  610. package/src/sidebar/SidebarTeamMenu.tsx +2 -2
  611. package/src/sidebar/SidebarUserMenu.tsx +2 -2
  612. package/src/sidebar/parts.tsx +8 -9
  613. package/src/surfaces/SurfaceHost.tsx +6 -0
  614. package/src/surfaces/index.web.ts +14 -4
  615. package/src/tab-bar/index.web.ts +13 -10
  616. package/src/tabs/Tabs.tsx +65 -1
  617. package/src/tabs/types.ts +6 -0
  618. package/src/theme/color-scope/index.web.ts +5 -0
  619. package/src/theme/persistence.ts +11 -1
  620. package/src/theme/seed-scope/index.web.ts +5 -0
  621. package/src/tooltip/index.web.ts +5 -0
@@ -2,18 +2,20 @@
2
2
  * The parts of `Select` that are the SAME on both platforms, plus the contexts
3
3
  * the two forks publish.
4
4
  *
5
- * `SelectGroup`, `SelectLabel` and the two scroll buttons live here rather than
6
- * being written twice because nothing in them is platform-specific: a group is a
7
- * `role="group"` box, a label is a line of muted text, and the scroll buttons ask
5
+ * `SelectGroup`, `SelectLabel`, the two scroll buttons, the option's own text,
6
+ * its selection mark and the rule between groups live here rather than being
7
+ * written twice, because nothing in them is platform-specific: a group is a
8
+ * `role="group"` box, a label is a line of muted text, the scroll buttons ask
8
9
  * one context whether there is anything to scroll — a question native answers
9
- * "no" by never publishing the context at all.
10
+ * "no" by never publishing the context at all — and the last three read only
11
+ * the palette and the per-ITEM context, which both forks provide.
10
12
  *
11
13
  * The barrels export them from here directly, so each part still has exactly one
12
14
  * owner and neither fork re-exports the other's work.
13
15
  */
14
16
  import React from 'react';
15
17
  import Svg from 'react-native-svg';
16
- import type { SelectGroupProps, SelectItemContextValue, SelectLabelProps, SelectScrollButtonProps, SelectSize } from './types';
18
+ import type { SelectGroupProps, SelectItemContextValue, SelectItemIndicatorProps, SelectItemTextProps, SelectLabelProps, SelectScrollButtonProps, SelectSize } from './types';
17
19
  /**
18
20
  * What a trigger tells the `SelectValue` and `SelectIcon` inside it: whether it
19
21
  * is disabled (`disabled:text-text-tertiary`) and whether its list is
@@ -74,4 +76,49 @@ export declare function SelectScrollDownButton({ className, style, }: Omit<Selec
74
76
  export declare namespace SelectScrollDownButton {
75
77
  var displayName: string;
76
78
  }
79
+ /** The type ramp an option's label takes, per list size. */
80
+ export declare const VALUE_TYPE: {
81
+ readonly md: "body-medium";
82
+ readonly sm: "body-2-medium";
83
+ };
84
+ /**
85
+ * An option's label. The selected option is marked by the check and the row
86
+ * highlight, so its text stays at the same weight as every other row's.
87
+ *
88
+ * The colour is inline ONLY without a caller `className`: an inline colour
89
+ * outranks a class on native, so a `text-*` utility would be silently dead.
90
+ */
91
+ export declare function SelectItemText({ children, className, style }: SelectItemTextProps): import("react/jsx-runtime").JSX.Element;
92
+ export declare namespace SelectItemText {
93
+ var displayName: string;
94
+ }
95
+ /**
96
+ * The selection mark: `absolute right-2 flex size-3.5 items-center
97
+ * justify-center` holding a `size-4` check.
98
+ *
99
+ * A select's tick sits on the RIGHT — the opposite side from a menu's — which
100
+ * is what leaves the option's own text starting flush at `pl-2` like every
101
+ * other line in the panel. Bloom once drew a `RadioIndicator` in a left gutter
102
+ * in the row's FLOW, so a select and a dropdown menu disagreed about both the
103
+ * mark and the edge it belongs on, and native and web disagreed with each
104
+ * other on top of that.
105
+ */
106
+ export declare function SelectItemIndicator({ icon: IconComponent }: SelectItemIndicatorProps): import("react/jsx-runtime").JSX.Element | null;
107
+ export declare namespace SelectItemIndicator {
108
+ var displayName: string;
109
+ }
110
+ /**
111
+ * The rule between groups: `-mx-2 my-1.5 h-px bg-border-button-default`,
112
+ * bleeding back through the listbox's `p-2`. A FILLED 1px box, not a bottom
113
+ * border on a stretched one.
114
+ */
115
+ export declare function SelectSeparator(): import("react/jsx-runtime").JSX.Element;
116
+ export declare namespace SelectSeparator {
117
+ var displayName: string;
118
+ }
119
+ /**
120
+ * The label a `SelectValue` shows for an item when the caller gave no
121
+ * `extractLabel`. Pure, and identical on both platforms.
122
+ */
123
+ export declare function defaultExtractLabel(item: unknown): React.ReactNode;
77
124
  //# sourceMappingURL=shared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/select/shared.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,GAAa,MAAM,kBAAkB,CAAC;AAa7C,OAAO,KAAK,EACV,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,uBAAuB,EACvB,UAAU,EACX,MAAM,SAAS,CAAC;AAMjB;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,eAAO,MAAM,yBAAyB,mCAIpC,CAAC;AAUH;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,OAAO,EACP,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CAeA;AAMD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,KAAK,GACN,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;CACnD,2CAWA;AAMD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAK/D;AAMD,eAAO,MAAM,WAAW,uCAGtB,CAAC;AAGH,wBAAgB,oBAAoB,IAAI,sBAAsB,CAE7D;AAMD,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,0DAA0D;IAC1D,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC;CAC9C;AAKD,eAAO,MAAM,oBAAoB,iDAA+B,CAAC;AAMjE,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,gBAAgB,2CAO3E;yBAPe,WAAW;;;AAU3B,sCAAsC;AACtC,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,gBAAgB,2CAqB3E;yBArBe,WAAW;;;AAkE3B,wBAAgB,oBAAoB,CAAC,EACnC,SAAS,EACT,KAAK,GACN,EAAE,IAAI,CAAC,uBAAuB,EAAE,WAAW,CAAC,2CAE5C;yBALe,oBAAoB;;;AAQpC,wBAAgB,sBAAsB,CAAC,EACrC,SAAS,EACT,KAAK,GACN,EAAE,IAAI,CAAC,uBAAuB,EAAE,WAAW,CAAC,2CAE5C;yBALe,sBAAsB"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/select/shared.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,GAAa,MAAM,kBAAkB,CAAC;AAoB7C,OAAO,KAAK,EACV,gBAAgB,EAChB,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,UAAU,EACX,MAAM,SAAS,CAAC;AAMjB;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,eAAO,MAAM,yBAAyB,mCAIpC,CAAC;AAUH;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,OAAO,EACP,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CAeA;AAMD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,KAAK,GACN,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;CACnD,2CAWA;AAMD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAK/D;AAMD,eAAO,MAAM,WAAW,uCAItB,CAAC;AAGH,wBAAgB,oBAAoB,IAAI,sBAAsB,CAE7D;AAMD,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,0DAA0D;IAC1D,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC;CAC9C;AAKD,eAAO,MAAM,oBAAoB,iDAA+B,CAAC;AAMjE,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,gBAAgB,2CAO3E;yBAPe,WAAW;;;AAU3B,sCAAsC;AACtC,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,gBAAgB,2CAqB3E;yBArBe,WAAW;;;AAkE3B,wBAAgB,oBAAoB,CAAC,EACnC,SAAS,EACT,KAAK,GACN,EAAE,IAAI,CAAC,uBAAuB,EAAE,WAAW,CAAC,2CAE5C;yBALe,oBAAoB;;;AAQpC,wBAAgB,sBAAsB,CAAC,EACrC,SAAS,EACT,KAAK,GACN,EAAE,IAAI,CAAC,uBAAuB,EAAE,WAAW,CAAC,2CAE5C;yBALe,sBAAsB;;;AAYtC,4DAA4D;AAC5D,eAAO,MAAM,UAAU;;;CAAsD,CAAC;AAE9E;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,mBAAmB,2CAoBjF;yBApBe,cAAc;;;AAuB9B;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,aAAyB,EAAE,EAAE,wBAAwB,kDAehG;yBAfe,mBAAmB;;;AAkBnC;;;;GAIG;AACH,wBAAgB,eAAe,4CAK9B;yBALe,eAAe;;;AAQ/B;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC,SAAS,CAKlE"}
@@ -156,5 +156,11 @@ export type SelectItemContextValue = {
156
156
  selected: boolean;
157
157
  /** Read by `SelectItemText`, which paints `text-disabled`. */
158
158
  disabled: boolean;
159
+ /**
160
+ * The list's size token, so `SelectItemText` can pick its type ramp without
161
+ * reading the forked `SelectContext` — which is what kept it, and the check
162
+ * and the rule beside it, written out twice.
163
+ */
164
+ size: SelectSize;
159
165
  };
160
166
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/select/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/select/types.ts"],"names":[],"mappings":"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"}
@@ -48,8 +48,14 @@ export declare function ChevronUpDownSmall({ color, size }: {
48
48
  color: string;
49
49
  size?: number;
50
50
  }): import("react/jsx-runtime").JSX.Element;
51
- /** The width both sidebar menus give their popover: `w-[265px]`. */
52
- export declare function menuPanelStyle(_palette?: SidebarPalette): ViewStyle;
51
+ /**
52
+ * The width both sidebar menus give their popover: `w-[265px]` — the only
53
+ * thing these menus say differently from the popover panel itself. Radius,
54
+ * border, surface, `p-2.5` and `shadow-dropdown` are `Popover`'s own defaults
55
+ * (`popover/surface.ts`), which is why this stopped being a function of the
56
+ * palette: it took one and ignored it, and both call sites kept passing one.
57
+ */
58
+ export declare const SIDEBAR_MENU_PANEL: ViewStyle;
53
59
  /** Full-bleed menu divider: `-mx-2.5 h-px bg-border-button-default`. */
54
60
  export declare function MenuDivider({ palette, spacing }: {
55
61
  palette: SidebarPalette;
@@ -1 +1 @@
1
- {"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../../../../src/sidebar/parts.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwD,MAAM,OAAO,CAAC;AAC7E,OAAO,EAAsD,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAClH,OAAiB,EAA0E,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAO7I,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,eAAO,MAAM,MAAM,SAAwB,CAAC;AAE5C,4CAA4C;AAC5C,eAAO,MAAM,QAAQ,MAAM,CAAC;AAO5B,eAAO,MAAM,gBAAgB,4CAA2B,CAAC;AAEzD,4FAA4F;AAC5F,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED,mFAAmF;AACnF,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAYlF;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,QAAQ,EACR,KAAK,GACN,EAAE;IACD,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,2CA2BA;AA6BD,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC;AAED,wBAAgB,OAAO,CAAC,IAAI,GAAE,MAAM,GAAG,QAAQ,GAAG,OAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE3F;AAQD,mFAAmF;AACnF,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,2CAe9F;AASD,8CAA8C;AAC9C,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,IAAI,EACJ,OAAO,EACP,UAAU,GACX,EAAE;IACD,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,2CAgCA;AAED,iCAAiC;AACjC,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,2CAWtF;AAED,oCAAoC;AACpC,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,2CAmBxF;AAED,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,CAKnE;AAID,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,2CAa7F"}
1
+ {"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../../../../src/sidebar/parts.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwD,MAAM,OAAO,CAAC;AAC7E,OAAO,EAAsD,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAClH,OAAiB,EAA0E,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAO7I,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,eAAO,MAAM,MAAM,SAAwB,CAAC;AAE5C,4CAA4C;AAC5C,eAAO,MAAM,QAAQ,MAAM,CAAC;AAO5B,eAAO,MAAM,gBAAgB,4CAA2B,CAAC;AAEzD,4FAA4F;AAC5F,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED,mFAAmF;AACnF,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAYlF;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,QAAQ,EACR,KAAK,GACN,EAAE;IACD,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,2CA2BA;AA6BD,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC;AAED,wBAAgB,OAAO,CAAC,IAAI,GAAE,MAAM,GAAG,QAAQ,GAAG,OAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE3F;AAQD,mFAAmF;AACnF,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,2CAe9F;AASD,8CAA8C;AAC9C,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,IAAI,EACJ,OAAO,EACP,UAAU,GACX,EAAE;IACD,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,2CAgCA;AAED,iCAAiC;AACjC,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,2CAWtF;AAED,oCAAoC;AACpC,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,2CAmBxF;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAA0B,CAAC;AAE5D,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,2CAa7F"}
@@ -1 +1 @@
1
- {"version":3,"file":"SurfaceHost.d.ts","sourceRoot":"","sources":["../../../../src/surfaces/SurfaceHost.tsx"],"names":[],"mappings":"AAAA,OAAO,KAKN,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAYnD,KAAK,eAAe,GAAG,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;AAsCxD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe;;;;;;uBAiGhB;YAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE;;;EAcrE"}
1
+ {"version":3,"file":"SurfaceHost.d.ts","sourceRoot":"","sources":["../../../../src/surfaces/SurfaceHost.tsx"],"names":[],"mappings":"AAAA,OAAO,KAKN,MAAM,OAAO,CAAC;AAKf,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAYnD,KAAK,eAAe,GAAG,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;AAsCxD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe;;;;;;uBAiGhB;YAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE;;;EAcrE"}
@@ -1,8 +1,13 @@
1
1
  /**
2
- * Web variant of the surface stack barrel. Identical surface area to the native
3
- * `./index.ts` — it just binds the web-fork `Dialog` (`Dialog.web.tsx`, a
4
- * pure-DOM overlay) instead of the native `BottomSheet`-backed one. The store,
5
- * imperative API, hook, and types are shared, platform-agnostic modules.
2
+ * The shared, content-agnostic SURFACE STACK.
3
+ *
4
+ * `<SurfaceProvider>`/`<SurfaceHost>` render the coordinated stack; the
5
+ * imperative `surfaces` API (+ its named functions) present into it from
6
+ * anywhere; `useSurface()` gives a presented surface its own controls.
7
+ *
8
+ * `SurfaceHost`/`SurfaceProvider` are bound to the NATIVE `Dialog` here; the web
9
+ * fork (`./index.web`) binds the web `Dialog`. The store, imperative API, hook,
10
+ * and types are platform-agnostic and shared by both.
6
11
  */
7
12
  declare const SurfaceHost: {
8
13
  (): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/surfaces/index.web.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,QAAA,MAAQ,WAAW;;;GAAE,eAAe;;;;;CAA8B,CAAC;AAEnE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;AACxC,OAAO,EACL,QAAQ,EACR,OAAO,EACP,OAAO,EACP,WAAW,EACX,aAAa,EACb,UAAU,EACV,KAAK,EACL,OAAO,EACP,MAAM,GACP,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EACV,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,eAAe,EACf,aAAa,EACb,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/surfaces/index.web.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;GAUG;AACH,QAAA,MAAQ,WAAW;;;GAAE,eAAe;;;;;CAA8B,CAAC;AAEnE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;AACxC,OAAO,EACL,QAAQ,EACR,OAAO,EACP,OAAO,EACP,WAAW,EACX,aAAa,EACb,UAAU,EACV,KAAK,EACL,OAAO,EACP,MAAM,GACP,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EACV,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,eAAe,EACf,aAAa,EACb,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,SAAS,CAAC"}
@@ -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":"persistence.d.ts","sourceRoot":"","sources":["../../../../src/theme/persistence.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAKzC;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,UAAU,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B;AA4BD,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAKrB;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,iBAAiB,GAAG,SAAS,GACrC,cAAc,CAYhB;AAED,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,iBAAiB,GAAG,SAAS,GACrC,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CASrC;AAED,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,iBAAiB,GAAG,SAAS,EACtC,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,IAAI,CAAC,CAYf;AAED,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,iBAAiB,GAAG,SAAS,GACrC,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,iBAAiB,GAAG,SA8B9C,CAAC"}
1
+ {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../../src/theme/persistence.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAKzC;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,UAAU,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B;AA4BD,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAKrB;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,iBAAiB,GAAG,SAAS,GACrC,cAAc,CAYhB;AAED,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,iBAAiB,GAAG,SAAS,GACrC,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CASrC;AAED,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,iBAAiB,GAAG,SAAS,EACtC,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,IAAI,CAAC,CAYf;AAED,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,iBAAiB,GAAG,SAAS,GACrC,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,iBAAiB,GAAG,SAwC9C,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.1",
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"