@opengeni/react 0.57.0 → 1.0.2-canary.37191796234001

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 (629) hide show
  1. package/README.md +654 -22
  2. package/dist/accounts.d.ts +64 -0
  3. package/dist/accounts.js +822 -0
  4. package/dist/accounts.js.map +1 -0
  5. package/dist/approvals.d.ts +2 -1
  6. package/dist/artifacts-document.js +3 -2
  7. package/dist/artifacts-presentation.js +3 -2
  8. package/dist/artifacts-spreadsheet.js +2 -2
  9. package/dist/artifacts.d.ts +4 -1
  10. package/dist/artifacts.js +518 -42
  11. package/dist/artifacts.js.map +1 -1
  12. package/dist/browser-viewer-GTR5XQ7X.js +16 -0
  13. package/dist/capability-catalog-row.d.ts +20 -0
  14. package/dist/capability-logo-fallback.d.ts +3 -0
  15. package/dist/chat-interactive-block-UGBTNB3L.js +11 -0
  16. package/dist/chat-interactive-block-UGBTNB3L.js.map +1 -0
  17. package/dist/{chunk-5UQPNLIO.js → chunk-23J2ZNXT.js} +4117 -3896
  18. package/dist/chunk-23J2ZNXT.js.map +1 -0
  19. package/dist/chunk-447JLCBU.js +209 -0
  20. package/dist/chunk-447JLCBU.js.map +1 -0
  21. package/dist/chunk-4RVYOY4O.js +379 -0
  22. package/dist/chunk-4RVYOY4O.js.map +1 -0
  23. package/dist/chunk-5CVXZA3Y.js +292 -0
  24. package/dist/chunk-5CVXZA3Y.js.map +1 -0
  25. package/dist/chunk-5J4FOW6Q.js +108 -0
  26. package/dist/chunk-5J4FOW6Q.js.map +1 -0
  27. package/dist/chunk-A2PI6UMY.js +41 -0
  28. package/dist/chunk-A2PI6UMY.js.map +1 -0
  29. package/dist/{chunk-7WCLAEFV.js → chunk-A4UJB2MM.js} +37 -27
  30. package/dist/chunk-A4UJB2MM.js.map +1 -0
  31. package/dist/chunk-B3V6TG77.js +41 -0
  32. package/dist/chunk-B3V6TG77.js.map +1 -0
  33. package/dist/chunk-BRM6FVZA.js +302 -0
  34. package/dist/chunk-BRM6FVZA.js.map +1 -0
  35. package/dist/chunk-C5X5AJXK.js +182 -0
  36. package/dist/chunk-C5X5AJXK.js.map +1 -0
  37. package/dist/chunk-CR7U7HAR.js +453 -0
  38. package/dist/chunk-CR7U7HAR.js.map +1 -0
  39. package/dist/{chunk-R3AZOAB5.js → chunk-DYWBUX5Q.js} +29 -123
  40. package/dist/chunk-DYWBUX5Q.js.map +1 -0
  41. package/dist/chunk-E3G7SAYZ.js +3124 -0
  42. package/dist/chunk-E3G7SAYZ.js.map +1 -0
  43. package/dist/chunk-ELCE5SXV.js +359 -0
  44. package/dist/chunk-ELCE5SXV.js.map +1 -0
  45. package/dist/chunk-ERGYJIBB.js +21 -0
  46. package/dist/chunk-ERGYJIBB.js.map +1 -0
  47. package/dist/chunk-FFA2OVOV.js +319 -0
  48. package/dist/chunk-FFA2OVOV.js.map +1 -0
  49. package/dist/chunk-FZCP527Y.js +116 -0
  50. package/dist/chunk-FZCP527Y.js.map +1 -0
  51. package/dist/chunk-GIMRELBW.js +14 -0
  52. package/dist/chunk-GIMRELBW.js.map +1 -0
  53. package/dist/{chunk-6KLX2RH5.js → chunk-H2NJQORO.js} +1069 -79
  54. package/dist/chunk-H2NJQORO.js.map +1 -0
  55. package/dist/chunk-I7IWRQLN.js +1608 -0
  56. package/dist/chunk-I7IWRQLN.js.map +1 -0
  57. package/dist/{chunk-HA46CYQK.js → chunk-IQUCRAT7.js} +792 -537
  58. package/dist/chunk-IQUCRAT7.js.map +1 -0
  59. package/dist/chunk-IWIDV7SB.js +1 -0
  60. package/dist/chunk-IWIDV7SB.js.map +1 -0
  61. package/dist/chunk-J2QWVSQY.js +312 -0
  62. package/dist/chunk-J2QWVSQY.js.map +1 -0
  63. package/dist/chunk-JFNEV4LU.js +2733 -0
  64. package/dist/chunk-JFNEV4LU.js.map +1 -0
  65. package/dist/chunk-JT4JW7BC.js +54 -0
  66. package/dist/chunk-JT4JW7BC.js.map +1 -0
  67. package/dist/chunk-K3HQAKQX.js +24 -0
  68. package/dist/chunk-K3HQAKQX.js.map +1 -0
  69. package/dist/{chunk-C5ZPSSS5.js → chunk-NEXLLTP4.js} +2 -1
  70. package/dist/{chunk-C5ZPSSS5.js.map → chunk-NEXLLTP4.js.map} +1 -1
  71. package/dist/chunk-NZUI76EM.js +371 -0
  72. package/dist/chunk-NZUI76EM.js.map +1 -0
  73. package/dist/{chunk-PEI6RANI.js → chunk-PNY3JKBJ.js} +309 -74
  74. package/dist/chunk-PNY3JKBJ.js.map +1 -0
  75. package/dist/{chunk-IGC6A2ZI.js → chunk-Q5QBEZIQ.js} +777 -246
  76. package/dist/chunk-Q5QBEZIQ.js.map +1 -0
  77. package/dist/chunk-RHREZ7BO.js +11 -0
  78. package/dist/chunk-RHREZ7BO.js.map +1 -0
  79. package/dist/chunk-SCOTPE2I.js +589 -0
  80. package/dist/chunk-SCOTPE2I.js.map +1 -0
  81. package/dist/{chunk-B6WPZSTT.js → chunk-SJZDKVW2.js} +1331 -1163
  82. package/dist/chunk-SJZDKVW2.js.map +1 -0
  83. package/dist/chunk-TMJRG4YC.js +12803 -0
  84. package/dist/chunk-TMJRG4YC.js.map +1 -0
  85. package/dist/chunk-TMYGL6X5.js +742 -0
  86. package/dist/chunk-TMYGL6X5.js.map +1 -0
  87. package/dist/chunk-UGLEYEMP.js +33 -0
  88. package/dist/chunk-UGLEYEMP.js.map +1 -0
  89. package/dist/chunk-UK4TINKT.js +27 -0
  90. package/dist/chunk-UK4TINKT.js.map +1 -0
  91. package/dist/chunk-UTRTG6LH.js +220 -0
  92. package/dist/chunk-UTRTG6LH.js.map +1 -0
  93. package/dist/chunk-WEHMPOXK.js +39 -0
  94. package/dist/chunk-WEHMPOXK.js.map +1 -0
  95. package/dist/chunk-WRHIZYZF.js +988 -0
  96. package/dist/chunk-WRHIZYZF.js.map +1 -0
  97. package/dist/{chunk-HUIKIDM5.js → chunk-WUISZ3WU.js} +223 -115
  98. package/dist/chunk-WUISZ3WU.js.map +1 -0
  99. package/dist/chunk-XCHWDJ22.js +107 -0
  100. package/dist/chunk-XCHWDJ22.js.map +1 -0
  101. package/dist/chunk-XOAMRDDK.js +481 -0
  102. package/dist/chunk-XOAMRDDK.js.map +1 -0
  103. package/dist/chunk-XUW2UWQM.js +299 -0
  104. package/dist/chunk-XUW2UWQM.js.map +1 -0
  105. package/dist/{chunk-KCGXPP5V.js → chunk-Y2PRMYLC.js} +11 -6
  106. package/dist/chunk-Y2PRMYLC.js.map +1 -0
  107. package/dist/chunk-YBXQDQFX.js +1772 -0
  108. package/dist/chunk-YBXQDQFX.js.map +1 -0
  109. package/dist/{chunk-KZ73RL76.js → chunk-YQEAA6LT.js} +7 -3
  110. package/dist/chunk-YQEAA6LT.js.map +1 -0
  111. package/dist/chunk-YV4L3ILF.js +9 -0
  112. package/dist/chunk-YV4L3ILF.js.map +1 -0
  113. package/dist/{chunk-LLOLUHVG.js → chunk-YWFG7ZX7.js} +1358 -2746
  114. package/dist/chunk-YWFG7ZX7.js.map +1 -0
  115. package/dist/chunk-ZYRGEKWS.js +216 -0
  116. package/dist/chunk-ZYRGEKWS.js.map +1 -0
  117. package/dist/client.d.ts +7 -4
  118. package/dist/clipboard.js +1 -0
  119. package/dist/commands/types.d.ts +2 -0
  120. package/dist/components/anthropic-mark.d.ts +3 -0
  121. package/dist/components/approval-surface.d.ts +15 -0
  122. package/dist/components/artifacts/artifact-chrome.d.ts +120 -0
  123. package/dist/components/artifacts/artifact-sandbox.d.ts +27 -0
  124. package/dist/components/artifacts/artifact-surface.d.ts +3 -1
  125. package/dist/components/artifacts/chat-interactive-block.d.ts +29 -0
  126. package/dist/components/artifacts/deferred-chat-media.d.ts +15 -0
  127. package/dist/components/artifacts/document-editor.d.ts +4 -2
  128. package/dist/components/artifacts/editable-artifact-ui.d.ts +2 -1
  129. package/dist/components/artifacts/editable-artifact-view.d.ts +46 -0
  130. package/dist/components/artifacts/editable-document.d.ts +1 -1
  131. package/dist/components/artifacts/editable-presentation.d.ts +2 -2
  132. package/dist/components/artifacts/editable-spreadsheet.d.ts +2 -1
  133. package/dist/components/artifacts/index.d.ts +8 -1
  134. package/dist/components/artifacts/inline-html-document.d.ts +2 -0
  135. package/dist/components/artifacts/latest-task-runner.d.ts +15 -0
  136. package/dist/components/artifacts/presentation-editor.d.ts +6 -2
  137. package/dist/components/artifacts/published-html-artifact-frame.d.ts +48 -3
  138. package/dist/components/artifacts/session-artifact-viewer.d.ts +39 -0
  139. package/dist/components/artifacts/site-view.d.ts +23 -0
  140. package/dist/components/artifacts/spreadsheet-general-display.d.ts +24 -0
  141. package/dist/components/artifacts/visualization-assets.gen.d.ts +2 -0
  142. package/dist/components/browser-select-control.d.ts +16 -0
  143. package/dist/components/browser-viewer.d.ts +10 -1
  144. package/dist/components/chat-composer.d.ts +21 -3
  145. package/dist/components/child-session-link.d.ts +5 -0
  146. package/dist/components/claude-mark.d.ts +3 -0
  147. package/dist/components/code-editor.d.ts +1 -4
  148. package/dist/components/composer.d.ts +45 -4
  149. package/dist/components/computer-viewer.d.ts +4 -1
  150. package/dist/components/copy-button.d.ts +3 -1
  151. package/dist/components/desktop-viewer.d.ts +1 -1
  152. package/dist/components/enrollment-consent.d.ts +6 -3
  153. package/dist/components/file-browser.d.ts +10 -1
  154. package/dist/components/fleet-tile.d.ts +2 -2
  155. package/dist/components/grok-mark.d.ts +26 -0
  156. package/dist/components/human-input-form.d.ts +21 -2
  157. package/dist/components/human-input-surface.d.ts +6 -3
  158. package/dist/components/machine-card.d.ts +4 -1
  159. package/dist/components/machines/machine-detail.d.ts +4 -1
  160. package/dist/components/machines/machine-operation-policy.d.ts +11 -0
  161. package/dist/components/machines-dashboard.d.ts +3 -1
  162. package/dist/components/markdown-table-layout.d.ts +12 -0
  163. package/dist/components/markdown.d.ts +47 -3
  164. package/dist/components/message-timeline.d.ts +72 -9
  165. package/dist/components/model-mark.d.ts +29 -0
  166. package/dist/components/model-policy-picker-menu.d.ts +9 -0
  167. package/dist/components/model-policy-picker.d.ts +62 -13
  168. package/dist/components/open-geni-chat.d.ts +55 -0
  169. package/dist/components/open-geni-links.d.ts +68 -0
  170. package/dist/components/openrouter-mark.d.ts +6 -0
  171. package/dist/components/pierre-file.d.ts +1 -1
  172. package/dist/components/preview-loading.d.ts +2 -0
  173. package/dist/components/queue-item-content.d.ts +9 -0
  174. package/dist/components/sandbox-files.d.ts +13 -2
  175. package/dist/components/sandbox-workspace.d.ts +43 -3
  176. package/dist/components/session-capability-frame.d.ts +35 -0
  177. package/dist/components/session-chrome.d.ts +66 -8
  178. package/dist/components/session-commands-panel.d.ts +6 -0
  179. package/dist/components/session-commands.d.ts +6 -0
  180. package/dist/components/session-connection-request.d.ts +8 -0
  181. package/dist/components/session-conversation.d.ts +86 -0
  182. package/dist/components/session-list.d.ts +36 -0
  183. package/dist/components/session-mcp-capability-card.d.ts +41 -0
  184. package/dist/components/timeline-anchor.d.ts +24 -0
  185. package/dist/components/timeline-annotation-chrome.d.ts +25 -0
  186. package/dist/components/timeline-annotation-layout.d.ts +42 -0
  187. package/dist/components/timeline-annotation-markers.d.ts +8 -0
  188. package/dist/components/timeline-annotation-reveal-context.d.ts +4 -0
  189. package/dist/components/timeline-annotation-shared.d.ts +31 -0
  190. package/dist/components/timeline-annotations-dialog.d.ts +3 -2
  191. package/dist/components/timeline-annotations.d.ts +13 -3
  192. package/dist/components/timeline-reading-progress.d.ts +11 -0
  193. package/dist/components/timeline-search.d.ts +34 -0
  194. package/dist/components/timeline-settlement.d.ts +16 -0
  195. package/dist/components/tip-follow.d.ts +16 -0
  196. package/dist/components/usage-limit-notice.d.ts +49 -0
  197. package/dist/components/usage-member-list.d.ts +91 -0
  198. package/dist/components/usage-meter.d.ts +73 -0
  199. package/dist/components/use-viewer-menu-dismiss.d.ts +2 -0
  200. package/dist/components/user-message-body.d.ts +10 -1
  201. package/dist/components/workspace-dock.d.ts +6 -2
  202. package/dist/composer.d.ts +5 -4
  203. package/dist/composer.js +15 -9
  204. package/dist/computer-viewer-ENHVAZ2Q.js +19 -0
  205. package/dist/computer-viewer-ENHVAZ2Q.js.map +1 -0
  206. package/dist/connect-account-identity.d.ts +8 -0
  207. package/dist/connect-accounts.d.ts +15 -0
  208. package/dist/connect-chooser.d.ts +18 -0
  209. package/dist/connect-panel.d.ts +18 -0
  210. package/dist/connect-setup.d.ts +16 -0
  211. package/dist/connect.d.ts +21 -0
  212. package/dist/connect.js +2129 -0
  213. package/dist/connect.js.map +1 -0
  214. package/dist/connection-catalog.d.ts +38 -0
  215. package/dist/connection-discovery.d.ts +12 -0
  216. package/dist/connection-installed.d.ts +17 -0
  217. package/dist/connection-logo.d.ts +9 -0
  218. package/dist/connection-service-logo.d.ts +8 -0
  219. package/dist/connection-service-presentation.d.ts +13 -0
  220. package/dist/connection-skeleton.d.ts +5 -0
  221. package/dist/connection-type-picker.d.ts +6 -0
  222. package/dist/conversation-timeline.d.ts +5 -0
  223. package/dist/desktop.d.ts +7 -0
  224. package/dist/desktop.js +26 -0
  225. package/dist/desktop.js.map +1 -0
  226. package/dist/device-authorization.d.ts +23 -0
  227. package/dist/diffs.d.ts +8 -0
  228. package/dist/diffs.js +14 -0
  229. package/dist/diffs.js.map +1 -0
  230. package/dist/discovery-cache.d.ts +5 -0
  231. package/dist/editor.d.ts +7 -0
  232. package/dist/editor.js +21 -0
  233. package/dist/editor.js.map +1 -0
  234. package/dist/embedded-session-client.d.ts +23 -0
  235. package/dist/file-node-visibility.d.ts +15 -0
  236. package/dist/{fleet-decision-row-GGCAT4E4.js → fleet-decision-row-YZ3ZKWMM.js} +2 -1
  237. package/dist/fleet-decision-row-YZ3ZKWMM.js.map +1 -0
  238. package/dist/hooks/channel-cache.d.ts +23 -0
  239. package/dist/hooks/latest-question.d.ts +25 -0
  240. package/dist/hooks/shared-machines-list.d.ts +14 -0
  241. package/dist/hooks/use-attached-browsers.d.ts +2 -1
  242. package/dist/hooks/use-browser-frame-stream.d.ts +1 -1
  243. package/dist/hooks/use-browser-session.d.ts +12 -1
  244. package/dist/hooks/use-channels.d.ts +1 -0
  245. package/dist/hooks/use-codex-accounts.d.ts +25 -7
  246. package/dist/hooks/use-composer.d.ts +45 -9
  247. package/dist/hooks/use-computer-frame-stream.d.ts +1 -1
  248. package/dist/hooks/use-computer-input-posture.d.ts +13 -0
  249. package/dist/hooks/use-computer-session.d.ts +2 -0
  250. package/dist/hooks/use-connect.d.ts +22 -0
  251. package/dist/hooks/use-desktop-stream.d.ts +1 -1
  252. package/dist/hooks/use-file-attachments.d.ts +21 -2
  253. package/dist/hooks/use-machine-chip.d.ts +3 -3
  254. package/dist/hooks/use-machines.d.ts +19 -1
  255. package/dist/hooks/use-sandbox-files.d.ts +5 -1
  256. package/dist/hooks/use-session-background-commands.d.ts +14 -0
  257. package/dist/hooks/use-session-events.d.ts +30 -8
  258. package/dist/hooks/use-session-lineage.d.ts +4 -0
  259. package/dist/hooks/use-session-mcp-approval-policy.d.ts +2 -2
  260. package/dist/hooks/use-session.d.ts +6 -0
  261. package/dist/hooks/use-turn-queue.d.ts +12 -0
  262. package/dist/hooks/use-usage.d.ts +40 -0
  263. package/dist/hooks/use-workspace-edit.d.ts +4 -0
  264. package/dist/hooks/use-workspace-sessions.d.ts +27 -5
  265. package/dist/human-input.d.ts +3 -1
  266. package/dist/identity-link-accounts.d.ts +11 -0
  267. package/dist/identity-link-consent.d.ts +18 -0
  268. package/dist/index.d.ts +60 -17
  269. package/dist/index.js +2237 -6200
  270. package/dist/index.js.map +1 -1
  271. package/dist/interaction.d.ts +1 -1
  272. package/dist/interaction.js +35 -184
  273. package/dist/interaction.js.map +1 -1
  274. package/dist/latest-question-755OW5DS.js +117 -0
  275. package/dist/latest-question-755OW5DS.js.map +1 -0
  276. package/dist/lib/error-message.d.ts +7 -0
  277. package/dist/lib/format.d.ts +36 -2
  278. package/dist/lib/host-theme.d.ts +70 -0
  279. package/dist/lib/interaction-errors.d.ts +6 -0
  280. package/dist/lib/menu-styles.d.ts +22 -0
  281. package/dist/lib/pierre-diffs-loader.d.ts +20 -0
  282. package/dist/lib/workbench-peers.d.ts +36 -0
  283. package/dist/lib/xterm-theme.d.ts +7 -5
  284. package/dist/machines.d.ts +4 -2
  285. package/dist/machines.js +14 -4
  286. package/dist/markdown-table-layout-QXSLK4BY.js +106 -0
  287. package/dist/markdown-table-layout-QXSLK4BY.js.map +1 -0
  288. package/dist/mcp-connection-status.d.ts +14 -0
  289. package/dist/model-policy-picker-menu-PWRI7R2X.js +14 -0
  290. package/dist/model-policy-picker-menu-PWRI7R2X.js.map +1 -0
  291. package/dist/model-policy.d.ts +19 -3
  292. package/dist/model-policy.js +9 -1
  293. package/dist/older-history.d.ts +30 -0
  294. package/dist/platform-activity-row-627BFZ46.js +182 -0
  295. package/dist/platform-activity-row-627BFZ46.js.map +1 -0
  296. package/dist/plugin-details.d.ts +14 -0
  297. package/dist/plugin-discovery.d.ts +25 -0
  298. package/dist/provider.d.ts +13 -1
  299. package/dist/{queue-surface-implementation-2KVJTYXH.js → queue-surface-implementation-ZHFI5JBP.js} +131 -44
  300. package/dist/queue-surface-implementation-ZHFI5JBP.js.map +1 -0
  301. package/dist/realtime/realtime-control.d.ts +10 -3
  302. package/dist/realtime.js +229 -83
  303. package/dist/realtime.js.map +1 -1
  304. package/dist/sandbox-files-BBC47SLD.js +20 -0
  305. package/dist/sandbox-files-BBC47SLD.js.map +1 -0
  306. package/dist/session-auth-recommendation.d.ts +5 -0
  307. package/dist/session-capability-policy.d.ts +12 -0
  308. package/dist/session-ui.d.ts +30 -2
  309. package/dist/session-ui.js +85 -7
  310. package/dist/session-ui.js.map +1 -1
  311. package/dist/session.d.ts +8 -2
  312. package/dist/session.js +30 -19
  313. package/dist/sites-ui.d.ts +34 -0
  314. package/dist/sites.d.ts +3 -0
  315. package/dist/sites.js +11 -0
  316. package/dist/sites.js.map +1 -0
  317. package/dist/skill-discovery.d.ts +47 -0
  318. package/dist/terminal.d.ts +8 -0
  319. package/dist/terminal.js +31 -0
  320. package/dist/terminal.js.map +1 -0
  321. package/dist/timeline/activity-rail.d.ts +11 -2
  322. package/dist/timeline/allowance-exhausted-row.d.ts +24 -0
  323. package/dist/timeline/compaction-copy.d.ts +10 -0
  324. package/dist/timeline/entrance.d.ts +13 -1
  325. package/dist/timeline/genie-loading.d.ts +34 -0
  326. package/dist/timeline/index.d.ts +6 -2
  327. package/dist/timeline/knowledge-receipt.d.ts +17 -0
  328. package/dist/timeline/platform-activity-row.d.ts +14 -0
  329. package/dist/timeline/presented-image.d.ts +6 -0
  330. package/dist/timeline/projection.d.ts +31 -2
  331. package/dist/timeline/registry.d.ts +2 -0
  332. package/dist/timeline/retained-image.d.ts +18 -0
  333. package/dist/timeline/rolling-activity.d.ts +11 -0
  334. package/dist/timeline/screenshot-lightbox.d.ts +16 -1
  335. package/dist/timeline/shared.d.ts +8 -3
  336. package/dist/timeline/startup-preference.d.ts +3 -0
  337. package/dist/timeline/startup-timings.d.ts +4 -0
  338. package/dist/timeline/tool-display-name.d.ts +2 -1
  339. package/dist/timeline/turn-summary.d.ts +32 -3
  340. package/dist/timeline/types.d.ts +141 -7
  341. package/dist/timeline-annotation-markers-GNDHTGBD.js +165 -0
  342. package/dist/timeline-annotation-markers-GNDHTGBD.js.map +1 -0
  343. package/dist/timeline-annotation-selection-DMLMM2TX.js +241 -0
  344. package/dist/timeline-annotation-selection-DMLMM2TX.js.map +1 -0
  345. package/dist/timeline-annotations-dialog-ELRDBHTS.js +273 -0
  346. package/dist/timeline-annotations-dialog-ELRDBHTS.js.map +1 -0
  347. package/dist/types/machines.d.ts +2 -2
  348. package/dist/usage/allowance-copy.d.ts +25 -0
  349. package/dist/usage/summary.d.ts +35 -0
  350. package/dist/usage.d.ts +13 -0
  351. package/dist/usage.js +1074 -0
  352. package/dist/usage.js.map +1 -0
  353. package/package.json +44 -4
  354. package/src/accounts.tsx +1072 -0
  355. package/src/approvals.ts +8 -1
  356. package/src/artifacts.ts +42 -0
  357. package/src/assets/README.md +8 -0
  358. package/src/assets/gmail.ico +0 -0
  359. package/src/assets/outlook.ico +0 -0
  360. package/src/capability-catalog-row.tsx +94 -0
  361. package/src/capability-logo-fallback.ts +22 -0
  362. package/src/client.ts +22 -13
  363. package/src/commands/registry.ts +18 -15
  364. package/src/commands/types.ts +2 -0
  365. package/src/components/anthropic-mark.tsx +10 -0
  366. package/src/components/approval-surface.tsx +171 -37
  367. package/src/components/artifacts/artifact-chrome.tsx +413 -0
  368. package/src/components/artifacts/artifact-sandbox.tsx +185 -0
  369. package/src/components/artifacts/artifact-surface.tsx +39 -19
  370. package/src/components/artifacts/chat-interactive-block.tsx +260 -0
  371. package/src/components/artifacts/deferred-chat-media.tsx +67 -0
  372. package/src/components/artifacts/document-editor.tsx +141 -16
  373. package/src/components/artifacts/editable-artifact-ui.tsx +4 -2
  374. package/src/components/artifacts/editable-artifact-view.tsx +187 -0
  375. package/src/components/artifacts/editable-artifact-workbench.tsx +5 -2
  376. package/src/components/artifacts/editable-document.tsx +37 -36
  377. package/src/components/artifacts/editable-presentation.tsx +36 -18
  378. package/src/components/artifacts/editable-spreadsheet.tsx +5 -2
  379. package/src/components/artifacts/index.ts +44 -0
  380. package/src/components/artifacts/inline-html-document.ts +24 -0
  381. package/src/components/artifacts/latest-task-runner.ts +49 -0
  382. package/src/components/artifacts/presentation-editor.tsx +323 -67
  383. package/src/components/artifacts/published-html-artifact-frame.tsx +338 -5
  384. package/src/components/artifacts/session-artifact-viewer.tsx +376 -0
  385. package/src/components/artifacts/site-view.tsx +116 -0
  386. package/src/components/artifacts/spreadsheet-canvas.ts +5 -10
  387. package/src/components/artifacts/spreadsheet-general-display.ts +43 -0
  388. package/src/components/artifacts/spreadsheet-grid.tsx +12 -13
  389. package/src/components/artifacts/visualization-assets/base.css +1015 -0
  390. package/src/components/artifacts/visualization-assets/helpers.html +349 -0
  391. package/src/components/artifacts/visualization-assets.gen.ts +3 -0
  392. package/src/components/browser-select-control.tsx +312 -0
  393. package/src/components/browser-viewer.tsx +1054 -314
  394. package/src/components/chat-composer.tsx +131 -85
  395. package/src/components/child-session-link.tsx +27 -0
  396. package/src/components/claude-mark.tsx +10 -0
  397. package/src/components/code-editor.tsx +13 -16
  398. package/src/components/composer-transcription-control.tsx +7 -5
  399. package/src/components/composer.tsx +376 -49
  400. package/src/components/computer-viewer.tsx +1041 -329
  401. package/src/components/copy-button.tsx +13 -5
  402. package/src/components/desktop-viewer.tsx +1 -1
  403. package/src/components/enrollment-consent.tsx +65 -7
  404. package/src/components/enrollment-device-flow.tsx +1 -1
  405. package/src/components/file-browser.tsx +158 -34
  406. package/src/components/fleet-tile.tsx +8 -16
  407. package/src/components/generated-video-player.tsx +4 -2
  408. package/src/components/grok-mark.tsx +33 -0
  409. package/src/components/human-input-form.tsx +455 -114
  410. package/src/components/human-input-surface.tsx +18 -7
  411. package/src/components/interaction-intervention-banner.tsx +2 -2
  412. package/src/components/machine-card.tsx +119 -4
  413. package/src/components/machine-dock-bar.tsx +1 -1
  414. package/src/components/machine-input-display.ts +23 -2
  415. package/src/components/machines/machine-detail.tsx +52 -2
  416. package/src/components/machines/machine-operation-policy.tsx +179 -0
  417. package/src/components/machines-dashboard.tsx +8 -17
  418. package/src/components/markdown-table-layout.ts +132 -0
  419. package/src/components/markdown.tsx +473 -44
  420. package/src/components/message-timeline.tsx +2498 -663
  421. package/src/components/model-mark.tsx +90 -0
  422. package/src/components/model-picker.tsx +15 -4
  423. package/src/components/model-policy-picker-menu.tsx +424 -0
  424. package/src/components/model-policy-picker.tsx +337 -381
  425. package/src/components/open-geni-chat.tsx +319 -0
  426. package/src/components/open-geni-links.tsx +179 -0
  427. package/src/components/openrouter-mark.tsx +13 -0
  428. package/src/components/pierre-diff.tsx +41 -16
  429. package/src/components/pierre-file.tsx +36 -11
  430. package/src/components/preview-loading.tsx +154 -0
  431. package/src/components/queue-item-content.ts +14 -0
  432. package/src/components/queue-surface-implementation.tsx +132 -42
  433. package/src/components/queue-surface-state.tsx +3 -1
  434. package/src/components/sandbox-files.tsx +267 -35
  435. package/src/components/sandbox-terminal.tsx +48 -11
  436. package/src/components/sandbox-workspace.tsx +337 -135
  437. package/src/components/session-capability-frame.tsx +192 -0
  438. package/src/components/session-chrome.tsx +1027 -328
  439. package/src/components/session-commands-panel.tsx +126 -0
  440. package/src/components/session-commands.tsx +18 -0
  441. package/src/components/session-connection-request.tsx +97 -0
  442. package/src/components/session-conversation.tsx +512 -0
  443. package/src/components/session-list.tsx +250 -0
  444. package/src/components/session-mcp-capability-card.tsx +680 -0
  445. package/src/components/session-status.tsx +1 -1
  446. package/src/components/timeline-anchor.tsx +119 -0
  447. package/src/components/timeline-annotation-chrome.tsx +196 -0
  448. package/src/components/timeline-annotation-layout.ts +268 -0
  449. package/src/components/timeline-annotation-markers.tsx +185 -0
  450. package/src/components/timeline-annotation-reveal-context.ts +9 -0
  451. package/src/components/timeline-annotation-selection.tsx +106 -54
  452. package/src/components/timeline-annotation-shared.ts +245 -0
  453. package/src/components/timeline-annotations-dialog.tsx +185 -128
  454. package/src/components/timeline-annotations.tsx +189 -45
  455. package/src/components/timeline-reading-progress.ts +80 -0
  456. package/src/components/timeline-search.tsx +168 -0
  457. package/src/components/timeline-settlement.ts +60 -0
  458. package/src/components/tip-follow.ts +70 -7
  459. package/src/components/tooltip.tsx +38 -5
  460. package/src/components/usage-limit-notice.tsx +179 -0
  461. package/src/components/usage-member-list.tsx +792 -0
  462. package/src/components/usage-meter.tsx +382 -0
  463. package/src/components/use-viewer-menu-dismiss.ts +33 -0
  464. package/src/components/user-message-body.tsx +194 -49
  465. package/src/components/workspace-dock.tsx +141 -175
  466. package/src/composer.ts +6 -1
  467. package/src/connect-account-identity.tsx +34 -0
  468. package/src/connect-accounts.tsx +233 -0
  469. package/src/connect-chooser.tsx +336 -0
  470. package/src/connect-panel.tsx +99 -0
  471. package/src/connect-setup.tsx +307 -0
  472. package/src/connect.ts +60 -0
  473. package/src/connection-assets.d.ts +4 -0
  474. package/src/connection-catalog.tsx +162 -0
  475. package/src/connection-discovery.tsx +235 -0
  476. package/src/connection-installed.tsx +51 -0
  477. package/src/connection-logo.tsx +37 -0
  478. package/src/connection-service-logo.tsx +55 -0
  479. package/src/connection-service-presentation.ts +46 -0
  480. package/src/connection-skeleton.tsx +16 -0
  481. package/src/connection-type-picker.tsx +36 -0
  482. package/src/conversation-timeline.ts +92 -0
  483. package/src/desktop.ts +24 -0
  484. package/src/device-authorization.tsx +98 -0
  485. package/src/diffs.ts +16 -0
  486. package/src/discovery-cache.ts +42 -0
  487. package/src/editor.ts +13 -0
  488. package/src/embedded-session-client.ts +104 -0
  489. package/src/file-node-visibility.ts +66 -0
  490. package/src/hooks/channel-cache.ts +104 -0
  491. package/src/hooks/internal.ts +3 -2
  492. package/src/hooks/latest-question.ts +164 -0
  493. package/src/hooks/shared-machines-list.ts +239 -0
  494. package/src/hooks/use-attached-browsers.ts +5 -1
  495. package/src/hooks/use-available-models.ts +20 -14
  496. package/src/hooks/use-browser-frame-stream.ts +25 -3
  497. package/src/hooks/use-browser-session.ts +271 -71
  498. package/src/hooks/use-browser-sessions.ts +7 -1
  499. package/src/hooks/use-channels.ts +32 -10
  500. package/src/hooks/use-codex-accounts.ts +78 -21
  501. package/src/hooks/use-composer.ts +1034 -320
  502. package/src/hooks/use-computer-frame-stream.ts +39 -16
  503. package/src/hooks/use-computer-input-posture.ts +94 -0
  504. package/src/hooks/use-computer-session.ts +110 -32
  505. package/src/hooks/use-computer-sessions.ts +8 -1
  506. package/src/hooks/use-connect.ts +23 -0
  507. package/src/hooks/use-desktop-stream.ts +19 -28
  508. package/src/hooks/use-file-attachments.ts +118 -10
  509. package/src/hooks/use-goal.ts +36 -9
  510. package/src/hooks/use-human-input.ts +31 -4
  511. package/src/hooks/use-last-started-turn-policy.ts +15 -13
  512. package/src/hooks/use-machine-chip.ts +23 -6
  513. package/src/hooks/use-machines.ts +104 -6
  514. package/src/hooks/use-sandbox-files.ts +253 -150
  515. package/src/hooks/use-sandbox-git.ts +58 -29
  516. package/src/hooks/use-session-background-commands.ts +67 -0
  517. package/src/hooks/use-session-capabilities.ts +21 -2
  518. package/src/hooks/use-session-events.ts +759 -433
  519. package/src/hooks/use-session-lineage.ts +28 -6
  520. package/src/hooks/use-session-mcp-approval-policy.ts +13 -5
  521. package/src/hooks/use-session.ts +75 -16
  522. package/src/hooks/use-slash-commands.ts +6 -11
  523. package/src/hooks/use-turn-queue.ts +113 -13
  524. package/src/hooks/use-usage.ts +100 -0
  525. package/src/hooks/use-voice-input.ts +12 -1
  526. package/src/hooks/use-workspace-capture.ts +3 -2
  527. package/src/hooks/use-workspace-edit.ts +23 -5
  528. package/src/hooks/use-workspace-sessions.ts +99 -11
  529. package/src/human-input.ts +12 -1
  530. package/src/identity-link-accounts.tsx +148 -0
  531. package/src/identity-link-consent.tsx +192 -0
  532. package/src/index.ts +157 -12
  533. package/src/interaction.ts +1 -0
  534. package/src/lib/error-message.ts +37 -0
  535. package/src/lib/format.ts +150 -14
  536. package/src/lib/host-theme.ts +511 -0
  537. package/src/lib/interaction-errors.ts +33 -0
  538. package/src/lib/menu-styles.ts +44 -0
  539. package/src/lib/pierre-diffs-loader.ts +53 -0
  540. package/src/lib/workbench-peers.ts +62 -0
  541. package/src/lib/xterm-theme.ts +23 -21
  542. package/src/machines.ts +9 -1
  543. package/src/mcp-connection-status.ts +35 -0
  544. package/src/model-policy.ts +223 -69
  545. package/src/older-history.ts +87 -0
  546. package/src/plugin-details.tsx +185 -0
  547. package/src/plugin-discovery.tsx +196 -0
  548. package/src/provider.tsx +55 -14
  549. package/src/realtime/dropdown-menu.tsx +19 -12
  550. package/src/realtime/realtime-control.tsx +274 -60
  551. package/src/session-auth-recommendation.ts +48 -0
  552. package/src/session-capability-policy.ts +83 -0
  553. package/src/session-context.ts +1 -0
  554. package/src/session-ui.ts +66 -2
  555. package/src/session.ts +18 -1
  556. package/src/sites-ui.tsx +402 -0
  557. package/src/sites.ts +3 -0
  558. package/src/skill-discovery.tsx +208 -0
  559. package/src/terminal.ts +26 -0
  560. package/src/timeline/activity-rail.tsx +171 -80
  561. package/src/timeline/allowance-exhausted-row.tsx +86 -0
  562. package/src/timeline/compaction-copy.ts +42 -0
  563. package/src/timeline/entrance.tsx +28 -3
  564. package/src/timeline/fleet-decision-projection.ts +2 -1
  565. package/src/timeline/fleet-decision-row.tsx +1 -0
  566. package/src/timeline/genie-loading.tsx +136 -0
  567. package/src/timeline/index.ts +11 -0
  568. package/src/timeline/knowledge-receipt.tsx +100 -0
  569. package/src/timeline/parsers.ts +2 -2
  570. package/src/timeline/platform-activity-row.tsx +216 -0
  571. package/src/timeline/presented-image.ts +49 -0
  572. package/src/timeline/projection.ts +1600 -84
  573. package/src/timeline/registry.ts +15 -3
  574. package/src/timeline/retained-image.ts +97 -0
  575. package/src/timeline/rolling-activity.tsx +92 -0
  576. package/src/timeline/screenshot-lightbox.tsx +115 -17
  577. package/src/timeline/shared.tsx +47 -15
  578. package/src/timeline/startup-preference.ts +33 -0
  579. package/src/timeline/startup-timings.tsx +145 -0
  580. package/src/timeline/tool-display-name.ts +8 -6
  581. package/src/timeline/tool-renderers.tsx +497 -128
  582. package/src/timeline/turn-summary.tsx +208 -44
  583. package/src/timeline/types.ts +186 -7
  584. package/src/types/machines.ts +10 -0
  585. package/src/usage/allowance-copy.ts +64 -0
  586. package/src/usage/summary.ts +93 -0
  587. package/src/usage.ts +50 -0
  588. package/styles/compiled.css +2098 -757
  589. package/styles/connect.css +284 -0
  590. package/styles/connect.d.ts +1 -0
  591. package/styles/effective-tokens.css +1 -0
  592. package/styles/index.css +201 -9
  593. package/styles/responsive.css +27 -1
  594. package/styles/session-capability.css +44 -0
  595. package/styles/tokens.css +135 -65
  596. package/dist/chunk-5UQPNLIO.js.map +0 -1
  597. package/dist/chunk-6KLX2RH5.js.map +0 -1
  598. package/dist/chunk-7WCLAEFV.js.map +0 -1
  599. package/dist/chunk-B6WPZSTT.js.map +0 -1
  600. package/dist/chunk-FK6VG4LL.js +0 -90
  601. package/dist/chunk-FK6VG4LL.js.map +0 -1
  602. package/dist/chunk-HA46CYQK.js.map +0 -1
  603. package/dist/chunk-HUIKIDM5.js.map +0 -1
  604. package/dist/chunk-IGC6A2ZI.js.map +0 -1
  605. package/dist/chunk-KCGXPP5V.js.map +0 -1
  606. package/dist/chunk-KZ73RL76.js.map +0 -1
  607. package/dist/chunk-LAKLF4PA.js +0 -141
  608. package/dist/chunk-LAKLF4PA.js.map +0 -1
  609. package/dist/chunk-LLOLUHVG.js.map +0 -1
  610. package/dist/chunk-MKPIAGVL.js +0 -465
  611. package/dist/chunk-MKPIAGVL.js.map +0 -1
  612. package/dist/chunk-PEI6RANI.js.map +0 -1
  613. package/dist/chunk-R3AZOAB5.js.map +0 -1
  614. package/dist/chunk-WSK7G5LE.js +0 -170
  615. package/dist/chunk-WSK7G5LE.js.map +0 -1
  616. package/dist/chunk-XBZWOM2K.js +0 -218
  617. package/dist/chunk-XBZWOM2K.js.map +0 -1
  618. package/dist/chunk-Y7OEDUJ5.js +0 -8810
  619. package/dist/chunk-Y7OEDUJ5.js.map +0 -1
  620. package/dist/fleet-decision-row-GGCAT4E4.js.map +0 -1
  621. package/dist/hooks/use-packs.d.ts +0 -32
  622. package/dist/interactive-workbench-viewers-TOHBXJEE.js +0 -15
  623. package/dist/queue-surface-implementation-2KVJTYXH.js.map +0 -1
  624. package/dist/timeline-annotation-selection-3L7LHGG2.js +0 -187
  625. package/dist/timeline-annotation-selection-3L7LHGG2.js.map +0 -1
  626. package/dist/timeline-annotations-dialog-U7EVLR75.js +0 -196
  627. package/dist/timeline-annotations-dialog-U7EVLR75.js.map +0 -1
  628. package/src/hooks/use-packs.ts +0 -157
  629. /package/dist/{interactive-workbench-viewers-TOHBXJEE.js.map → browser-viewer-GTR5XQ7X.js.map} +0 -0
@@ -1,3 +1,6 @@
1
+ import {
2
+ useLatestTaskRunner
3
+ } from "./chunk-WEHMPOXK.js";
1
4
  import {
2
5
  ArtifactSurface,
3
6
  EditableArtifactMessage,
@@ -6,7 +9,7 @@ import {
6
9
  editableArtifactProjectionKey,
7
10
  editableArtifactStatusLabel,
8
11
  useEditableArtifactView
9
- } from "./chunk-KCGXPP5V.js";
12
+ } from "./chunk-Y2PRMYLC.js";
10
13
  import {
11
14
  cn
12
15
  } from "./chunk-22KP6LR5.js";
@@ -583,83 +586,104 @@ function DocumentEditorCore({
583
586
  {
584
587
  type: "button",
585
588
  onClick: addFirstParagraph,
586
- className: "mt-3 rounded-og-md border border-og-border bg-og-surface-1 px-3 py-1.5 text-og-sm text-og-fg hover:bg-og-surface-2 focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-og-accent",
589
+ className: "mt-3 rounded-og-md border border-og-primary-border bg-og-primary px-3 py-1.5 text-og-sm text-og-primary-fg hover:bg-og-primary-hover focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-og-accent",
587
590
  children: "Start writing"
588
591
  }
589
592
  ) : null
590
- ] }) }) : /* @__PURE__ */ jsx("div", { className: "relative min-w-full", style: { height: axis.total }, children: mountedIndexes.map((pageIndex) => {
591
- const page = pages[pageIndex];
592
- const top = axis.offsets[pageIndex];
593
- return /* @__PURE__ */ jsx(
594
- "article",
595
- {
596
- "aria-label": `${layout === "paginated" ? "Page" : "Section"} ${pageIndex + 1} of ${pages.length}`,
597
- "aria-posinset": pageIndex + 1,
598
- "aria-setsize": pages.length,
599
- "data-og-document-page": pageIndex + 1,
600
- "data-og-page-width-pt": page.page.widthPt,
601
- "data-og-page-height-pt": page.page.heightPt,
602
- className: cn(
603
- "absolute overflow-hidden",
604
- layout === "paginated" ? "left-1/2 -translate-x-1/2 border shadow-og-sm" : "left-0 right-0 border-b border-og-border bg-og-surface-1 text-og-fg"
605
- ),
606
- style: {
607
- top,
608
- color: layout === "paginated" ? "#171717" : void 0,
609
- backgroundColor: layout === "paginated" ? "#fff" : void 0,
610
- borderColor: layout === "paginated" ? "#0000001a" : void 0,
611
- width: layout === "paginated" ? page.page.widthPt * POINT_TO_CSS_PIXEL * page.renderScale : void 0,
612
- height: page.height
613
- },
614
- children: /* @__PURE__ */ jsx(
615
- MeasuredPageBody,
593
+ ] }) }) : /* @__PURE__ */ jsx(
594
+ "div",
595
+ {
596
+ className: "relative min-w-full",
597
+ style: {
598
+ height: axis.total,
599
+ minWidth: layout === "paginated" ? pages.reduce(
600
+ (width, page) => Math.max(
601
+ width,
602
+ page.page.widthPt * POINT_TO_CSS_PIXEL * page.renderScale + 32
603
+ ),
604
+ 0
605
+ ) : void 0
606
+ },
607
+ children: mountedIndexes.map((pageIndex) => {
608
+ const page = pages[pageIndex];
609
+ const top = axis.offsets[pageIndex];
610
+ const pageWidth = page.page.widthPt * POINT_TO_CSS_PIXEL * page.renderScale;
611
+ return /* @__PURE__ */ jsx(
612
+ "article",
616
613
  {
617
- pageKey: page.key,
618
- measureToken: documentRevision,
619
- onHeight: recordPageHeight,
614
+ "aria-label": `${layout === "paginated" ? "Page" : "Section"} ${pageIndex + 1} of ${pages.length}`,
615
+ "aria-posinset": pageIndex + 1,
616
+ "aria-setsize": pages.length,
617
+ "data-og-document-page": pageIndex + 1,
618
+ "data-og-page-width-pt": page.page.widthPt,
619
+ "data-og-page-height-pt": page.page.heightPt,
620
620
  className: cn(
621
- layout === "paginated" ? "absolute left-0 top-0 overflow-hidden" : "mx-auto"
621
+ "absolute overflow-hidden",
622
+ layout === "paginated" ? "border shadow-og-sm" : "left-0 right-0 border-b border-og-border bg-og-surface-1 text-og-fg"
622
623
  ),
623
624
  style: {
624
- ...pageContentStyle(page.page, layout),
625
- maxWidth: layout === "continuous" ? "68rem" : void 0,
626
- ...layout === "paginated" ? {
627
- width: page.page.widthPt * POINT_TO_CSS_PIXEL,
628
- minHeight: page.naturalHeight,
629
- transform: `scale(${page.renderScale})`,
630
- transformOrigin: "top left"
631
- } : {}
625
+ top,
626
+ // Center against the visible viewport, not the shared width
627
+ // reserved for the widest section in this document.
628
+ left: layout === "paginated" ? Math.max(16, (measuredViewport.width - pageWidth) / 2) : void 0,
629
+ color: layout === "paginated" ? "#171717" : void 0,
630
+ backgroundColor: layout === "paginated" ? "#fff" : void 0,
631
+ borderColor: layout === "paginated" ? "#0000001a" : void 0,
632
+ width: layout === "paginated" ? pageWidth : void 0,
633
+ height: page.height,
634
+ containerType: layout === "continuous" ? "inline-size" : void 0
632
635
  },
633
- children: page.blocks.map(({ block, listOrdinal }) => /* @__PURE__ */ jsx(
634
- DocumentBlockView,
636
+ children: /* @__PURE__ */ jsx(
637
+ MeasuredPageBody,
635
638
  {
636
- block,
637
- viewBlockId: blockIdForView(block.id),
638
- comments: annotations.comments.get(block.id) ?? EMPTY_COMMENTS,
639
- changes: annotations.changes.get(block.id) ?? EMPTY_CHANGES,
640
- projectionRevision: localRevision,
641
- listOrdinal,
642
- readOnly,
643
- selected: selectedBlockId === block.id,
644
- openThreadId,
645
- registerEditor: (node) => {
646
- if (node) editorNodes.current.set(block.id, node);
647
- else editorNodes.current.delete(block.id);
639
+ pageKey: page.key,
640
+ measureToken: documentRevision,
641
+ onHeight: recordPageHeight,
642
+ className: cn(
643
+ layout === "paginated" ? "absolute left-0 top-0 overflow-hidden" : "mx-auto"
644
+ ),
645
+ style: {
646
+ ...pageContentStyle(page.page, layout),
647
+ maxWidth: layout === "continuous" ? "68rem" : void 0,
648
+ ...layout === "paginated" ? {
649
+ width: page.page.widthPt * POINT_TO_CSS_PIXEL,
650
+ minHeight: page.naturalHeight,
651
+ transform: `scale(${page.renderScale})`,
652
+ transformOrigin: "top left"
653
+ } : {}
648
654
  },
649
- onThreadToggle: (threadId) => setOpenThreadId((current) => current === threadId ? null : threadId),
650
- onInput: (paragraph, text) => commitText(paragraph, text),
651
- onBlur: () => setLocalRevision(document2.revision),
652
- onSelection: (paragraph) => readDomSelection(paragraph.id),
653
- onKeyDown: handleEditorKeyDown
654
- },
655
- block.id
656
- ))
657
- }
658
- )
659
- },
660
- page.key
661
- );
662
- }) })
655
+ children: page.blocks.map(({ block, listOrdinal }) => /* @__PURE__ */ jsx(
656
+ DocumentBlockView,
657
+ {
658
+ block,
659
+ viewBlockId: blockIdForView(block.id),
660
+ comments: annotations.comments.get(block.id) ?? EMPTY_COMMENTS,
661
+ changes: annotations.changes.get(block.id) ?? EMPTY_CHANGES,
662
+ projectionRevision: localRevision,
663
+ listOrdinal,
664
+ readOnly,
665
+ selected: selectedBlockId === block.id,
666
+ openThreadId,
667
+ registerEditor: (node) => {
668
+ if (node) editorNodes.current.set(block.id, node);
669
+ else editorNodes.current.delete(block.id);
670
+ },
671
+ onThreadToggle: (threadId) => setOpenThreadId((current) => current === threadId ? null : threadId),
672
+ onInput: (paragraph, text) => commitText(paragraph, text),
673
+ onBlur: () => setLocalRevision(document2.revision),
674
+ onSelection: (paragraph) => readDomSelection(paragraph.id),
675
+ onKeyDown: handleEditorKeyDown
676
+ },
677
+ block.id
678
+ ))
679
+ }
680
+ )
681
+ },
682
+ page.key
683
+ );
684
+ })
685
+ }
686
+ )
663
687
  ]
664
688
  }
665
689
  )
@@ -670,6 +694,7 @@ function DocumentEditorCore({
670
694
  function DocumentArtifactSurface({
671
695
  document: document2,
672
696
  title,
697
+ showHeader,
673
698
  subtitle,
674
699
  busy,
675
700
  className,
@@ -681,6 +706,7 @@ function DocumentArtifactSurface({
681
706
  {
682
707
  modality: "document",
683
708
  title,
709
+ showHeader,
684
710
  subtitle,
685
711
  busy,
686
712
  className,
@@ -699,6 +725,7 @@ function DocumentArtifactSurface({
699
725
  function DocumentProjectionArtifactSurface({
700
726
  projection,
701
727
  title,
728
+ showHeader,
702
729
  subtitle,
703
730
  busy,
704
731
  className,
@@ -710,6 +737,7 @@ function DocumentProjectionArtifactSurface({
710
737
  {
711
738
  modality: "document",
712
739
  title,
740
+ showHeader,
713
741
  subtitle,
714
742
  busy,
715
743
  className,
@@ -874,9 +902,10 @@ var ParagraphLeaf = memo(
874
902
  onKeyDown
875
903
  }) {
876
904
  const composing = useRef(false);
905
+ const suppressNextEnter = useRef(false);
877
906
  const Tag = headingTag(paragraph.style.headingLevel);
878
907
  const label = paragraph.style.list?.kind === "number" ? `Numbered list item ${listOrdinal ?? 1}` : paragraph.style.list?.kind === "bullet" ? "Bullet list item" : paragraph.style.headingLevel ? `Heading ${paragraph.style.headingLevel}` : "Paragraph";
879
- return /* @__PURE__ */ jsx(
908
+ return /* @__PURE__ */ jsxs(
880
909
  Tag,
881
910
  {
882
911
  ref: registerEditor,
@@ -898,6 +927,12 @@ var ParagraphLeaf = memo(
898
927
  },
899
928
  onCompositionEnd: (event) => {
900
929
  composing.current = false;
930
+ suppressNextEnter.current = true;
931
+ queueMicrotask(() => {
932
+ suppressNextEnter.current = false;
933
+ });
934
+ syncTrailingBreak(event.currentTarget);
935
+ stabilizeCaretAfterTrailingNewline(event.currentTarget);
901
936
  onInput(paragraph, event.currentTarget.textContent ?? "");
902
937
  onSelection(paragraph);
903
938
  },
@@ -919,15 +954,18 @@ var ParagraphLeaf = memo(
919
954
  onKeyDown: (event) => {
920
955
  onKeyDown(event, paragraph);
921
956
  if (event.defaultPrevented || readOnly) return;
922
- if (event.key === "Enter" && !event.metaKey && !event.ctrlKey && !event.altKey) {
923
- event.preventDefault();
924
- insertPlainText(event.currentTarget, "\n");
925
- onInput(paragraph, event.currentTarget.textContent ?? "");
926
- onSelection(paragraph);
927
- }
957
+ if (event.key !== "Enter" || event.metaKey || event.ctrlKey || event.altKey) return;
958
+ if (isDocumentImeComposing(event, composing.current)) return;
959
+ event.preventDefault();
960
+ if (suppressNextEnter.current) return;
961
+ insertPlainText(event.currentTarget, "\n");
962
+ onInput(paragraph, event.currentTarget.textContent ?? "");
963
+ onSelection(paragraph);
928
964
  },
929
965
  onInput: (event) => {
930
966
  if (!composing.current && !event.nativeEvent.isComposing) {
967
+ syncTrailingBreak(event.currentTarget);
968
+ stabilizeCaretAfterTrailingNewline(event.currentTarget);
931
969
  onInput(paragraph, event.currentTarget.textContent ?? "");
932
970
  }
933
971
  },
@@ -937,16 +975,19 @@ var ParagraphLeaf = memo(
937
975
  !readOnly && "cursor-text focus-visible:ring-2 focus-visible:ring-og-accent"
938
976
  ),
939
977
  style: paragraphStyle,
940
- children: segments.map((segment, index) => /* @__PURE__ */ jsx(
941
- "span",
942
- {
943
- "data-og-commented": segment.commented || void 0,
944
- "data-og-change": segment.changeKind,
945
- style: segment.style,
946
- children: segment.text
947
- },
948
- `${segment.start}:${index}`
949
- ))
978
+ children: [
979
+ segments.map((segment, index) => /* @__PURE__ */ jsx(
980
+ "span",
981
+ {
982
+ "data-og-commented": segment.commented || void 0,
983
+ "data-og-change": segment.changeKind,
984
+ style: segment.style,
985
+ children: segment.text
986
+ },
987
+ `${segment.start}:${index}`
988
+ )),
989
+ segments.at(-1)?.text.endsWith("\n") ? /* @__PURE__ */ jsx("br", { "data-og-trailing-break": "", "aria-hidden": "true" }) : null
990
+ ]
950
991
  }
951
992
  );
952
993
  },
@@ -961,12 +1002,13 @@ function DocumentTableView({
961
1002
  viewBlockId
962
1003
  }) {
963
1004
  const columnWidths = table.style.columnWidthsPt;
1005
+ const headerColor = tableHeaderTextColor(table.style.headerFill);
964
1006
  return /* @__PURE__ */ jsx(
965
1007
  "div",
966
1008
  {
967
1009
  "data-og-document-block": viewBlockId,
968
1010
  "data-og-block-kind": "table",
969
- className: "overflow-x-auto py-2",
1011
+ className: "w-full max-w-full overflow-x-auto py-2",
970
1012
  children: /* @__PURE__ */ jsxs(
971
1013
  "table",
972
1014
  {
@@ -995,6 +1037,8 @@ function DocumentTableView({
995
1037
  style: {
996
1038
  borderColor: table.style.borderColor ?? "#d1d5db",
997
1039
  background: header ? table.style.headerFill ?? "#f3f4f6" : void 0,
1040
+ // An explicitly colored run still owns its authored text style.
1041
+ color: header ? headerColor : void 0,
998
1042
  padding: `${table.style.cellPaddingPt ?? 6}pt`
999
1043
  },
1000
1044
  children: cell.map((run, index) => (
@@ -1013,6 +1057,32 @@ function DocumentTableView({
1013
1057
  }
1014
1058
  );
1015
1059
  }
1060
+ function tableHeaderTextColor(fill) {
1061
+ if (!fill) return "#171717";
1062
+ const hex = /^#([\da-f]{3}|[\da-f]{6}|[\da-f]{8})$/i.exec(fill)?.[1];
1063
+ if (!hex) return void 0;
1064
+ const channels = hex.length === 3 ? [...hex].map((digit) => Number.parseInt(digit + digit, 16)) : [0, 2, 4].map((index) => Number.parseInt(hex.slice(index, index + 2), 16));
1065
+ const alpha = hex.length === 8 ? Number.parseInt(hex.slice(6), 16) / 255 : 1;
1066
+ const luminanceOn = (backdrop) => {
1067
+ const linear = channels.map((channel) => {
1068
+ const normalized = (channel * alpha + backdrop * (1 - alpha)) / 255;
1069
+ return normalized <= 0.04045 ? normalized / 12.92 : ((normalized + 0.055) / 1.055) ** 2.4;
1070
+ });
1071
+ return linear[0] * 0.2126 + linear[1] * 0.7152 + linear[2] * 0.0722;
1072
+ };
1073
+ const backdrops = alpha < 1 ? [luminanceOn(0), luminanceOn(255)] : [luminanceOn(255)];
1074
+ const darkTextLuminance = ((23 / 255 + 0.055) / 1.055) ** 2.4;
1075
+ const whiteContrast = Math.min(...backdrops.map((value) => 1.05 / (value + 0.05)));
1076
+ const darkContrast = Math.min(
1077
+ ...backdrops.map(
1078
+ (value) => (Math.max(value, darkTextLuminance) + 0.05) / (Math.min(value, darkTextLuminance) + 0.05)
1079
+ )
1080
+ );
1081
+ if (Math.max(whiteContrast, darkContrast) < 4.5) {
1082
+ return alpha < 1 ? void 0 : "#000";
1083
+ }
1084
+ return whiteContrast > darkContrast ? "#fff" : "#171717";
1085
+ }
1016
1086
  function ToolbarButton({
1017
1087
  label,
1018
1088
  shortcut,
@@ -1160,12 +1230,12 @@ function visiblePageIndexes(axis, count, scrollTop, viewportHeight, overscan, re
1160
1230
  function responsiveDocumentPageScale(page, viewportWidth) {
1161
1231
  if (viewportWidth <= 0) return 1;
1162
1232
  const naturalWidth = page.widthPt * POINT_TO_CSS_PIXEL;
1163
- return Math.min(1, Math.max(0.1, (viewportWidth - 32) / naturalWidth));
1233
+ return Math.min(1, Math.max(0.75, (viewportWidth - 32) / naturalWidth));
1164
1234
  }
1165
1235
  function pageContentStyle(page, layout) {
1166
1236
  if (layout === "continuous") {
1167
1237
  return {
1168
- padding: "24px clamp(24px, 8vw, 96px)"
1238
+ padding: "24px clamp(12px, 4cqw, 72px)"
1169
1239
  };
1170
1240
  }
1171
1241
  return {
@@ -1257,6 +1327,38 @@ function selectionOffsets(root) {
1257
1327
  end: beforeEnd.toString().length
1258
1328
  };
1259
1329
  }
1330
+ var TRAILING_BREAK_ATTR = "data-og-trailing-break";
1331
+ function isDocumentImeComposing(event, composing) {
1332
+ const native = event.nativeEvent;
1333
+ return composing || native.isComposing === true || native.keyCode === 229;
1334
+ }
1335
+ function syncTrailingBreak(root) {
1336
+ const existing = root.querySelector(`br[${TRAILING_BREAK_ATTR}]`);
1337
+ const needsBreak = (root.textContent ?? "").endsWith("\n");
1338
+ if (needsBreak && !existing) {
1339
+ const br = globalThis.document.createElement("br");
1340
+ br.setAttribute(TRAILING_BREAK_ATTR, "");
1341
+ br.setAttribute("aria-hidden", "true");
1342
+ root.appendChild(br);
1343
+ } else if (!needsBreak && existing) {
1344
+ existing.remove();
1345
+ }
1346
+ }
1347
+ function stabilizeCaretAfterTrailingNewline(root) {
1348
+ const text = root.textContent ?? "";
1349
+ if (!text.endsWith("\n")) return;
1350
+ const selection = globalThis.getSelection?.();
1351
+ if (!selection || selection.rangeCount === 0 || !selection.isCollapsed) return;
1352
+ const offsets = selectionOffsets(root);
1353
+ if (!offsets || offsets.start !== text.length) return;
1354
+ const br = root.querySelector(`br[${TRAILING_BREAK_ATTR}]`);
1355
+ if (!br) return;
1356
+ const range = globalThis.document.createRange();
1357
+ range.setStartBefore(br);
1358
+ range.collapse(true);
1359
+ selection.removeAllRanges();
1360
+ selection.addRange(range);
1361
+ }
1260
1362
  function insertPlainText(root, text) {
1261
1363
  const selection = globalThis.getSelection?.();
1262
1364
  if (!selection || selection.rangeCount === 0) return;
@@ -1265,10 +1367,12 @@ function insertPlainText(root, text) {
1265
1367
  range.deleteContents();
1266
1368
  const node = globalThis.document.createTextNode(text);
1267
1369
  range.insertNode(node);
1370
+ syncTrailingBreak(root);
1268
1371
  range.setStartAfter(node);
1269
1372
  range.collapse(true);
1270
1373
  selection.removeAllRanges();
1271
1374
  selection.addRange(range);
1375
+ stabilizeCaretAfterTrailingNewline(root);
1272
1376
  }
1273
1377
  function restoreSelection(root, requestedStart, requestedEnd) {
1274
1378
  if (!root || !globalThis.getSelection) return;
@@ -1666,6 +1770,7 @@ var DOCUMENT_COMPOSITION_ATTEMPTS = 3;
1666
1770
  function EditableDocumentArtifactSurface({
1667
1771
  session,
1668
1772
  title,
1773
+ showHeader,
1669
1774
  subtitle,
1670
1775
  readOnly = false,
1671
1776
  onCommit,
@@ -1682,6 +1787,7 @@ function EditableDocumentArtifactSurface({
1682
1787
  error: null
1683
1788
  });
1684
1789
  const loadGeneration = useRef2(0);
1790
+ const scheduleLoad = useLatestTaskRunner(session);
1685
1791
  const commandStateRef = useRef2(null);
1686
1792
  if (commandStateRef.current?.session !== session) {
1687
1793
  commandStateRef.current = {
@@ -1699,36 +1805,36 @@ function EditableDocumentArtifactSurface({
1699
1805
  setState(
1700
1806
  (current) => current.session === session ? { ...current, loading: true, error: null } : { session, projection: null, loading: true, error: null }
1701
1807
  );
1702
- void composeDocumentEditorProjection(session).then(
1703
- (projection2) => {
1704
- if (cancelled || generation !== loadGeneration.current || commandStateRef.current !== commandState) {
1705
- return;
1706
- }
1707
- const nextParagraphText = paragraphTextById(projection2);
1708
- for (const [localId, canonicalId] of commandState.optimisticParagraphIds) {
1709
- if (nextParagraphText.has(canonicalId)) continue;
1710
- const optimisticText = commandState.paragraphText.get(canonicalId) ?? commandState.paragraphText.get(localId);
1711
- if (optimisticText !== void 0) nextParagraphText.set(canonicalId, optimisticText);
1712
- }
1713
- commandState.paragraphText = nextParagraphText;
1714
- setState({ session, projection: projection2, loading: false, error: null });
1715
- },
1716
- (cause) => {
1717
- if (cancelled || generation !== loadGeneration.current || commandStateRef.current !== commandState) {
1718
- return;
1808
+ const superseded = () => cancelled || generation !== loadGeneration.current || commandStateRef.current !== commandState;
1809
+ scheduleLoad(async () => {
1810
+ if (superseded()) return;
1811
+ await composeDocumentEditorProjection(session).then(
1812
+ (projection2) => {
1813
+ if (superseded()) return;
1814
+ const nextParagraphText = paragraphTextById(projection2);
1815
+ for (const [localId, canonicalId] of commandState.optimisticParagraphIds) {
1816
+ if (nextParagraphText.has(canonicalId)) continue;
1817
+ const optimisticText = commandState.paragraphText.get(canonicalId) ?? commandState.paragraphText.get(localId);
1818
+ if (optimisticText !== void 0) nextParagraphText.set(canonicalId, optimisticText);
1819
+ }
1820
+ commandState.paragraphText = nextParagraphText;
1821
+ setState({ session, projection: projection2, loading: false, error: null });
1822
+ },
1823
+ (cause) => {
1824
+ if (superseded()) return;
1825
+ setState({
1826
+ session,
1827
+ projection: null,
1828
+ loading: false,
1829
+ error: asEditableArtifactError(cause, "Could not open this document")
1830
+ });
1719
1831
  }
1720
- setState({
1721
- session,
1722
- projection: null,
1723
- loading: false,
1724
- error: asEditableArtifactError(cause, "Could not open this document")
1725
- });
1726
- }
1727
- );
1832
+ );
1833
+ });
1728
1834
  return () => {
1729
1835
  cancelled = true;
1730
1836
  };
1731
- }, [commandState, invalidator, retryEpoch, session]);
1837
+ }, [commandState, invalidator, retryEpoch, scheduleLoad, session]);
1732
1838
  const refresh = useCallback2(() => setRetryEpoch((value) => value + 1), []);
1733
1839
  const writable = !readOnly && view.writable;
1734
1840
  const applyCommit = useCallback2(
@@ -1833,6 +1939,7 @@ function EditableDocumentArtifactSurface({
1833
1939
  {
1834
1940
  ...surfaceProps,
1835
1941
  title,
1942
+ showHeader,
1836
1943
  subtitle: subtitle ?? `${projection.blocks.length} block${projection.blocks.length === 1 ? "" : "s"}${writable ? "" : " \xB7 Read only"}`,
1837
1944
  projection,
1838
1945
  commit: writable ? applyCommit : void 0,
@@ -1845,6 +1952,7 @@ function EditableDocumentArtifactSurface({
1845
1952
  {
1846
1953
  modality: "document",
1847
1954
  title,
1955
+ showHeader,
1848
1956
  subtitle: subtitle ?? status,
1849
1957
  busy: !accessRevoked && !state.error,
1850
1958
  className: surfaceProps.className,
@@ -2145,4 +2253,4 @@ export {
2145
2253
  DocumentProjectionArtifactSurface,
2146
2254
  EditableDocumentArtifactSurface
2147
2255
  };
2148
- //# sourceMappingURL=chunk-HUIKIDM5.js.map
2256
+ //# sourceMappingURL=chunk-WUISZ3WU.js.map