@opengeni/react 0.46.1 → 0.52.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 (341) hide show
  1. package/README.md +158 -14
  2. package/dist/artifacts-document.d.ts +3 -0
  3. package/dist/artifacts-document.js +17 -0
  4. package/dist/artifacts-document.js.map +1 -0
  5. package/dist/artifacts-presentation.d.ts +3 -0
  6. package/dist/artifacts-presentation.js +17 -0
  7. package/dist/artifacts-presentation.js.map +1 -0
  8. package/dist/artifacts-spreadsheet.d.ts +3 -0
  9. package/dist/artifacts-spreadsheet.js +17 -0
  10. package/dist/artifacts-spreadsheet.js.map +1 -0
  11. package/dist/artifacts.d.ts +2 -0
  12. package/dist/artifacts.js +170 -0
  13. package/dist/artifacts.js.map +1 -0
  14. package/dist/chunk-6BBWWOOU.js +82 -0
  15. package/dist/chunk-6BBWWOOU.js.map +1 -0
  16. package/dist/{chunk-HFO4ERGQ.js → chunk-724BW4TW.js} +586 -35
  17. package/dist/chunk-724BW4TW.js.map +1 -0
  18. package/dist/chunk-7I2KB3OK.js +3895 -0
  19. package/dist/chunk-7I2KB3OK.js.map +1 -0
  20. package/dist/chunk-7WCLAEFV.js +2828 -0
  21. package/dist/chunk-7WCLAEFV.js.map +1 -0
  22. package/dist/{chunk-U3CSCMWA.js → chunk-FK6VG4LL.js} +9 -13
  23. package/dist/chunk-FK6VG4LL.js.map +1 -0
  24. package/dist/{chunk-SRFUT2ZU.js → chunk-FWS3KC3Z.js} +120 -64
  25. package/dist/chunk-FWS3KC3Z.js.map +1 -0
  26. package/dist/{chunk-EKZH6IDG.js → chunk-HDBG7XGO.js} +62 -1
  27. package/dist/chunk-HDBG7XGO.js.map +1 -0
  28. package/dist/chunk-HUIKIDM5.js +2148 -0
  29. package/dist/chunk-HUIKIDM5.js.map +1 -0
  30. package/dist/{chunk-LGVMUIRV.js → chunk-JAGDUCZQ.js} +1053 -390
  31. package/dist/chunk-JAGDUCZQ.js.map +1 -0
  32. package/dist/{chunk-LWR4MXSS.js → chunk-JR3QFY6B.js} +420 -35
  33. package/dist/chunk-JR3QFY6B.js.map +1 -0
  34. package/dist/chunk-JVYQRRC4.js +53 -0
  35. package/dist/chunk-JVYQRRC4.js.map +1 -0
  36. package/dist/chunk-KCGXPP5V.js +157 -0
  37. package/dist/chunk-KCGXPP5V.js.map +1 -0
  38. package/dist/{chunk-EB67J347.js → chunk-KZ73RL76.js} +111 -31
  39. package/dist/chunk-KZ73RL76.js.map +1 -0
  40. package/dist/chunk-PEI6RANI.js +3234 -0
  41. package/dist/chunk-PEI6RANI.js.map +1 -0
  42. package/dist/{chunk-3PB7MIT6.js → chunk-ROIRTM37.js} +220 -72
  43. package/dist/chunk-ROIRTM37.js.map +1 -0
  44. package/dist/chunk-VZTQ73XT.js +86 -0
  45. package/dist/chunk-VZTQ73XT.js.map +1 -0
  46. package/dist/{chunk-VCBFUSUZ.js → chunk-WSK7G5LE.js} +72 -4
  47. package/dist/chunk-WSK7G5LE.js.map +1 -0
  48. package/dist/{chunk-FGZUCXZF.js → chunk-WYA65Y3F.js} +16 -16
  49. package/dist/chunk-WYA65Y3F.js.map +1 -0
  50. package/dist/{chunk-6EDV6YFE.js → chunk-X4S56Y2H.js} +147 -35
  51. package/dist/chunk-X4S56Y2H.js.map +1 -0
  52. package/dist/client.d.ts +7 -1
  53. package/dist/clipboard.d.ts +1 -0
  54. package/dist/clipboard.js +7 -0
  55. package/dist/clipboard.js.map +1 -0
  56. package/dist/commands/index.d.ts +3 -3
  57. package/dist/commands/registry.d.ts +1 -1
  58. package/dist/commands/types.d.ts +1 -1
  59. package/dist/components/approval-surface.d.ts +2 -2
  60. package/dist/components/artifacts/artifact-surface.d.ts +18 -0
  61. package/dist/components/artifacts/document-editor.d.ts +172 -0
  62. package/dist/components/artifacts/editable-artifact-ui.d.ts +13 -0
  63. package/dist/components/artifacts/editable-artifact-workbench.d.ts +49 -0
  64. package/dist/components/artifacts/editable-document.d.ts +24 -0
  65. package/dist/components/artifacts/editable-presentation.d.ts +24 -0
  66. package/dist/components/artifacts/editable-spreadsheet.d.ts +32 -0
  67. package/dist/components/artifacts/index.d.ts +8 -0
  68. package/dist/components/artifacts/presentation-editor.d.ts +297 -0
  69. package/dist/components/artifacts/spreadsheet-canvas.d.ts +120 -0
  70. package/dist/components/artifacts/spreadsheet-grid.d.ts +113 -0
  71. package/dist/components/browser-viewer.d.ts +29 -0
  72. package/dist/components/chat-composer.d.ts +13 -8
  73. package/dist/components/code-editor.d.ts +25 -3
  74. package/dist/components/command-palette.d.ts +2 -2
  75. package/dist/components/composer-transcription-control.d.ts +4 -2
  76. package/dist/components/composer.d.ts +29 -15
  77. package/dist/components/computer-viewer.d.ts +23 -0
  78. package/dist/components/copy-button.d.ts +2 -2
  79. package/dist/components/desktop-viewer.d.ts +25 -21
  80. package/dist/components/diff-view.d.ts +1 -1
  81. package/dist/components/enrollment-consent.d.ts +1 -1
  82. package/dist/components/enrollment-device-flow.d.ts +1 -1
  83. package/dist/components/file-browser.d.ts +2 -2
  84. package/dist/components/fleet-tile.d.ts +1 -1
  85. package/dist/components/generated-video-player.d.ts +10 -0
  86. package/dist/components/human-input-form.d.ts +1 -1
  87. package/dist/components/human-input-surface.d.ts +2 -2
  88. package/dist/components/interactive-workbench-viewers.d.ts +2 -0
  89. package/dist/components/machine-card.d.ts +2 -2
  90. package/dist/components/machine-dock-bar.d.ts +3 -3
  91. package/dist/components/machine-health-pill.d.ts +2 -2
  92. package/dist/components/machine-input-display.d.ts +1 -1
  93. package/dist/components/machine-metrics.d.ts +2 -2
  94. package/dist/components/machine-status-pill.d.ts +4 -4
  95. package/dist/components/machines/health.d.ts +1 -1
  96. package/dist/components/machines/machine-detail.d.ts +5 -3
  97. package/dist/components/machines/metric-history-chart.d.ts +1 -1
  98. package/dist/components/machines/metric-sparkline.d.ts +2 -2
  99. package/dist/components/machines/series.d.ts +2 -2
  100. package/dist/components/machines-dashboard.d.ts +5 -5
  101. package/dist/components/markdown.d.ts +1 -1
  102. package/dist/components/message-timeline.d.ts +22 -5
  103. package/dist/components/model-picker.d.ts +2 -2
  104. package/dist/components/model-policy-picker.d.ts +7 -7
  105. package/dist/components/pierre-diff.d.ts +1 -1
  106. package/dist/components/pierre-file.d.ts +1 -1
  107. package/dist/components/queue-draft-policy.d.ts +1 -1
  108. package/dist/components/queue-surface-implementation.d.ts +3 -3
  109. package/dist/components/queue-surface-state.d.ts +4 -4
  110. package/dist/components/queue-surface.d.ts +5 -5
  111. package/dist/components/sandbox-files.d.ts +5 -5
  112. package/dist/components/sandbox-terminal.d.ts +50 -4
  113. package/dist/components/sandbox-workspace.d.ts +30 -10
  114. package/dist/components/session-chrome.d.ts +4 -4
  115. package/dist/components/session-status.d.ts +2 -2
  116. package/dist/components/timeline-annotation-selection.d.ts +9 -0
  117. package/dist/components/timeline-annotations-dialog.d.ts +16 -0
  118. package/dist/components/timeline-annotations.d.ts +13 -0
  119. package/dist/components/tooltip.d.ts +4 -4
  120. package/dist/components/user-message-body.d.ts +2 -2
  121. package/dist/components/workbench-changes.d.ts +2 -2
  122. package/dist/components/workspace-dock.d.ts +3 -1
  123. package/dist/composer.d.ts +11 -11
  124. package/dist/composer.js +7 -7
  125. package/dist/hooks/internal.d.ts +7 -1
  126. package/dist/hooks/use-attached-browsers.d.ts +21 -0
  127. package/dist/hooks/use-available-models.d.ts +2 -2
  128. package/dist/hooks/use-billing-usage.d.ts +1 -1
  129. package/dist/hooks/use-browser-frame-stream.d.ts +28 -0
  130. package/dist/hooks/use-browser-identities.d.ts +26 -0
  131. package/dist/hooks/use-browser-session.d.ts +28 -0
  132. package/dist/hooks/use-browser-sessions.d.ts +32 -0
  133. package/dist/hooks/use-codex-accounts.d.ts +3 -3
  134. package/dist/hooks/use-composer.d.ts +36 -9
  135. package/dist/hooks/use-computer-frame-stream.d.ts +24 -0
  136. package/dist/hooks/use-computer-session.d.ts +28 -0
  137. package/dist/hooks/use-computer-sessions.d.ts +28 -0
  138. package/dist/hooks/use-desktop-stream.d.ts +1 -1
  139. package/dist/hooks/use-environments.d.ts +11 -5
  140. package/dist/hooks/use-file-attachments.d.ts +1 -1
  141. package/dist/hooks/use-goal.d.ts +2 -2
  142. package/dist/hooks/use-human-input.d.ts +2 -2
  143. package/dist/hooks/use-last-started-turn-policy.d.ts +2 -2
  144. package/dist/hooks/use-machine-chip.d.ts +2 -2
  145. package/dist/hooks/use-machines.d.ts +10 -3
  146. package/dist/hooks/use-packs.d.ts +7 -2
  147. package/dist/hooks/use-rigs.d.ts +1 -1
  148. package/dist/hooks/use-sandbox-files.d.ts +25 -4
  149. package/dist/hooks/use-sandbox-git.d.ts +13 -5
  150. package/dist/hooks/use-sandbox-terminal.d.ts +1 -1
  151. package/dist/hooks/use-scheduled-tasks.d.ts +1 -1
  152. package/dist/hooks/use-session-capabilities.d.ts +5 -4
  153. package/dist/hooks/use-session-control.d.ts +1 -1
  154. package/dist/hooks/use-session-events.d.ts +2 -2
  155. package/dist/hooks/use-session-lineage.d.ts +1 -1
  156. package/dist/hooks/use-session-mcp-approval-policy.d.ts +2 -2
  157. package/dist/hooks/use-session.d.ts +2 -2
  158. package/dist/hooks/use-slash-commands.d.ts +1 -1
  159. package/dist/hooks/use-terminal-stream.d.ts +8 -2
  160. package/dist/hooks/use-transcription.d.ts +2 -2
  161. package/dist/hooks/use-turn-queue.d.ts +2 -2
  162. package/dist/hooks/use-video-artifact-playback.d.ts +9 -0
  163. package/dist/hooks/use-voice-input.d.ts +6 -4
  164. package/dist/hooks/use-workspace-capture.d.ts +1 -1
  165. package/dist/hooks/use-workspace-edit.d.ts +1 -1
  166. package/dist/hooks/use-workspace-sessions.d.ts +1 -1
  167. package/dist/hooks/use-workspaces.d.ts +1 -1
  168. package/dist/index.d.ts +158 -154
  169. package/dist/index.js +1718 -908
  170. package/dist/index.js.map +1 -1
  171. package/dist/interaction.d.ts +23 -0
  172. package/dist/interaction.js +36 -0
  173. package/dist/interaction.js.map +1 -0
  174. package/dist/interactive-workbench-viewers-KHNOHWQE.js +13 -0
  175. package/dist/interactive-workbench-viewers-KHNOHWQE.js.map +1 -0
  176. package/dist/lib/composer-responsive-context.d.ts +9 -0
  177. package/dist/lib/relay-wire.d.ts +4 -0
  178. package/dist/lib/sandbox-liveness.d.ts +9 -0
  179. package/dist/lib/terminal-capability.d.ts +5 -0
  180. package/dist/lib/use-portal-token-style.d.ts +14 -3
  181. package/dist/lib/xterm-theme.d.ts +1 -1
  182. package/dist/machines.d.ts +30 -30
  183. package/dist/machines.js +3 -3
  184. package/dist/provider.d.ts +4 -4
  185. package/dist/{queue-surface-implementation-J4XJFKRW.js → queue-surface-implementation-2KVJTYXH.js} +117 -64
  186. package/dist/queue-surface-implementation-2KVJTYXH.js.map +1 -0
  187. package/dist/realtime/dropdown-menu.d.ts +8 -8
  188. package/dist/realtime/realtime-control.d.ts +15 -6
  189. package/dist/realtime.d.ts +4 -4
  190. package/dist/realtime.js +30 -33
  191. package/dist/realtime.js.map +1 -1
  192. package/dist/session-context.d.ts +19 -1
  193. package/dist/session-ui.d.ts +14 -14
  194. package/dist/session-ui.js +6 -5
  195. package/dist/session.d.ts +28 -28
  196. package/dist/session.js +5 -5
  197. package/dist/timeline/activity-rail.d.ts +6 -3
  198. package/dist/timeline/disclosure-context.d.ts +1 -1
  199. package/dist/timeline/fleet-decision-projection.d.ts +1 -1
  200. package/dist/timeline/fleet-decision-row.d.ts +3 -3
  201. package/dist/timeline/index.d.ts +19 -19
  202. package/dist/timeline/parsers.d.ts +6 -3
  203. package/dist/timeline/projection.d.ts +3 -3
  204. package/dist/timeline/registry.d.ts +10 -1
  205. package/dist/timeline/screenshot-lightbox.d.ts +2 -2
  206. package/dist/timeline/shared.d.ts +21 -10
  207. package/dist/timeline/tool-diff.d.ts +2 -2
  208. package/dist/timeline/tool-renderers.d.ts +1 -1
  209. package/dist/timeline/turn-summary.d.ts +3 -3
  210. package/dist/timeline/types.d.ts +42 -2
  211. package/dist/timeline-annotation-selection-3L7LHGG2.js +187 -0
  212. package/dist/timeline-annotation-selection-3L7LHGG2.js.map +1 -0
  213. package/dist/timeline-annotations-dialog-U7EVLR75.js +196 -0
  214. package/dist/timeline-annotations-dialog-U7EVLR75.js.map +1 -0
  215. package/dist/voice-recording-store.d.ts +8 -2
  216. package/package.json +52 -7
  217. package/src/artifacts-document.ts +31 -0
  218. package/src/artifacts-presentation.ts +36 -0
  219. package/src/artifacts-spreadsheet.ts +21 -0
  220. package/src/artifacts.ts +86 -0
  221. package/src/client.ts +90 -1
  222. package/src/clipboard.ts +2 -0
  223. package/src/components/artifacts/artifact-surface.tsx +93 -0
  224. package/src/components/artifacts/document-editor.tsx +2255 -0
  225. package/src/components/artifacts/editable-artifact-ui.tsx +89 -0
  226. package/src/components/artifacts/editable-artifact-workbench.tsx +203 -0
  227. package/src/components/artifacts/editable-document.tsx +657 -0
  228. package/src/components/artifacts/editable-presentation.tsx +1020 -0
  229. package/src/components/artifacts/editable-spreadsheet.tsx +733 -0
  230. package/src/components/artifacts/index.ts +99 -0
  231. package/src/components/artifacts/presentation-editor.tsx +3148 -0
  232. package/src/components/artifacts/spreadsheet-canvas.ts +799 -0
  233. package/src/components/artifacts/spreadsheet-grid.tsx +2129 -0
  234. package/src/components/browser-viewer.tsx +1592 -0
  235. package/src/components/chat-composer.tsx +25 -2
  236. package/src/components/code-editor.tsx +90 -31
  237. package/src/components/command-palette.tsx +1 -1
  238. package/src/components/composer-transcription-control.tsx +51 -22
  239. package/src/components/composer.tsx +49 -23
  240. package/src/components/computer-viewer.tsx +1139 -0
  241. package/src/components/copy-button.tsx +1 -1
  242. package/src/components/desktop-viewer.tsx +103 -75
  243. package/src/components/file-browser.tsx +39 -17
  244. package/src/components/generated-video-player.tsx +89 -0
  245. package/src/components/human-input-form.tsx +2 -2
  246. package/src/components/interactive-workbench-viewers.ts +2 -0
  247. package/src/components/machine-card.tsx +1 -1
  248. package/src/components/machine-input-display.ts +3 -0
  249. package/src/components/machines/machine-detail.tsx +39 -15
  250. package/src/components/machines-dashboard.tsx +7 -6
  251. package/src/components/message-timeline.tsx +327 -37
  252. package/src/components/model-picker.tsx +2 -2
  253. package/src/components/model-policy-picker.tsx +16 -15
  254. package/src/components/queue-surface-implementation.tsx +135 -75
  255. package/src/components/queue-surface-state.tsx +2 -2
  256. package/src/components/sandbox-files.tsx +142 -62
  257. package/src/components/sandbox-terminal.tsx +119 -35
  258. package/src/components/sandbox-workspace.tsx +394 -228
  259. package/src/components/session-chrome.tsx +67 -27
  260. package/src/components/timeline-annotation-selection.tsx +221 -0
  261. package/src/components/timeline-annotations-dialog.tsx +213 -0
  262. package/src/components/timeline-annotations.tsx +84 -0
  263. package/src/components/tooltip.tsx +13 -16
  264. package/src/components/user-message-body.tsx +1 -1
  265. package/src/components/workbench-changes.tsx +192 -35
  266. package/src/components/workspace-dock.tsx +13 -5
  267. package/src/composer.ts +3 -0
  268. package/src/hooks/internal.ts +132 -38
  269. package/src/hooks/use-attached-browsers.ts +152 -0
  270. package/src/hooks/use-browser-frame-stream.ts +316 -0
  271. package/src/hooks/use-browser-identities.ts +225 -0
  272. package/src/hooks/use-browser-session.ts +476 -0
  273. package/src/hooks/use-browser-sessions.ts +281 -0
  274. package/src/hooks/use-codex-accounts.ts +4 -4
  275. package/src/hooks/use-composer.ts +769 -24
  276. package/src/hooks/use-computer-frame-stream.ts +311 -0
  277. package/src/hooks/use-computer-session.ts +442 -0
  278. package/src/hooks/use-computer-sessions.ts +245 -0
  279. package/src/hooks/use-environments.ts +24 -5
  280. package/src/hooks/use-file-attachments.ts +70 -32
  281. package/src/hooks/use-goal.ts +17 -5
  282. package/src/hooks/use-machine-chip.ts +5 -3
  283. package/src/hooks/use-machines.ts +79 -3
  284. package/src/hooks/use-packs.ts +51 -0
  285. package/src/hooks/use-sandbox-files.ts +382 -88
  286. package/src/hooks/use-sandbox-git.ts +208 -46
  287. package/src/hooks/use-sandbox-terminal.ts +3 -2
  288. package/src/hooks/use-session-capabilities.ts +94 -70
  289. package/src/hooks/use-session-events.ts +18 -4
  290. package/src/hooks/use-terminal-stream.ts +102 -23
  291. package/src/hooks/use-transcription.ts +4 -14
  292. package/src/hooks/use-turn-queue.ts +17 -5
  293. package/src/hooks/use-video-artifact-playback.ts +28 -0
  294. package/src/hooks/use-voice-input.ts +163 -19
  295. package/src/hooks/use-windowed-sections.ts +9 -7
  296. package/src/hooks/use-workspace-edit.ts +2 -1
  297. package/src/index.ts +21 -6
  298. package/src/interaction.ts +71 -0
  299. package/src/lib/composer-responsive-context.ts +15 -0
  300. package/src/lib/relay-wire.ts +4 -0
  301. package/src/lib/sandbox-liveness.ts +11 -0
  302. package/src/lib/terminal-capability.ts +10 -0
  303. package/src/lib/use-portal-token-style.ts +60 -15
  304. package/src/provider.tsx +52 -7
  305. package/src/realtime/dropdown-menu.tsx +15 -19
  306. package/src/realtime/realtime-control.tsx +16 -5
  307. package/src/session-context.ts +90 -0
  308. package/src/timeline/activity-rail.tsx +31 -6
  309. package/src/timeline/index.ts +4 -1
  310. package/src/timeline/parsers.ts +46 -20
  311. package/src/timeline/projection.ts +233 -13
  312. package/src/timeline/registry.ts +19 -0
  313. package/src/timeline/screenshot-lightbox.tsx +30 -9
  314. package/src/timeline/shared.tsx +59 -11
  315. package/src/timeline/tool-renderers.tsx +421 -24
  316. package/src/timeline/turn-summary.tsx +2 -2
  317. package/src/timeline/types.ts +58 -2
  318. package/src/voice-recording-store.ts +15 -0
  319. package/styles/compiled.css +5298 -0
  320. package/styles/compiled.d.ts +2 -0
  321. package/styles/effective-tokens.css +27 -0
  322. package/styles/index.css +18 -0
  323. package/styles/responsive.css +208 -0
  324. package/styles/responsive.d.ts +2 -0
  325. package/styles/tokens.css +50 -17
  326. package/dist/chunk-3PB7MIT6.js.map +0 -1
  327. package/dist/chunk-6EDV6YFE.js.map +0 -1
  328. package/dist/chunk-EB67J347.js.map +0 -1
  329. package/dist/chunk-EKZH6IDG.js.map +0 -1
  330. package/dist/chunk-FGZUCXZF.js.map +0 -1
  331. package/dist/chunk-HFO4ERGQ.js.map +0 -1
  332. package/dist/chunk-JB5725BI.js +0 -48
  333. package/dist/chunk-JB5725BI.js.map +0 -1
  334. package/dist/chunk-LGVMUIRV.js.map +0 -1
  335. package/dist/chunk-LWR4MXSS.js.map +0 -1
  336. package/dist/chunk-SRFUT2ZU.js.map +0 -1
  337. package/dist/chunk-U3CSCMWA.js.map +0 -1
  338. package/dist/chunk-VCBFUSUZ.js.map +0 -1
  339. package/dist/fleet-decision-projection-SLNZMS42.js +0 -241
  340. package/dist/fleet-decision-projection-SLNZMS42.js.map +0 -1
  341. package/dist/queue-surface-implementation-J4XJFKRW.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ declare const stylesheet: string;
2
+ export default stylesheet;
@@ -0,0 +1,27 @@
1
+ /* Generated by scripts/build-compiled-css.ts; do not edit directly. */
2
+ .og-root,
3
+ [data-og-density="compact"],
4
+ .og-density-compact,
5
+ [data-og-theme="light"],
6
+ .og-light {
7
+ --_og-duration-fast: var(--og-duration-fast);
8
+ --_og-duration-base: var(--og-duration-base);
9
+ --_og-duration-slow: var(--og-duration-slow);
10
+ --_og-duration-disclose: var(--og-duration-disclose);
11
+ --_og-duration-disclose-settle: var(--og-duration-disclose-settle);
12
+ --_og-duration-stream: var(--og-duration-stream);
13
+ --_og-duration-markdown-crystallize: var(--og-duration-markdown-crystallize);
14
+ --_og-color-accent-soft: var(--og-color-accent-soft);
15
+ --_og-color-diff-add-bg: var(--og-color-diff-add-bg);
16
+ --_og-color-diff-del-bg: var(--og-color-diff-del-bg);
17
+ --_og-shadow-glow: var(--og-shadow-glow);
18
+ --_og-session-chrome-surface: var(--og-session-chrome-surface);
19
+ --_og-session-chrome-surface-open: var(--og-session-chrome-surface-open);
20
+ --_og-session-chrome-border: var(--og-session-chrome-border);
21
+ --_og-session-chrome-border-open: var(--og-session-chrome-border-open);
22
+ --_og-session-chrome-highlight: var(--og-session-chrome-highlight);
23
+ --_og-session-chrome-highlight-ring: var(--og-session-chrome-highlight-ring);
24
+ --_og-session-chrome-radius: var(--og-session-chrome-radius);
25
+ --_og-session-chrome-ease: var(--og-session-chrome-ease);
26
+ --_og-session-chrome-row-hover: var(--og-session-chrome-row-hover);
27
+ }
package/styles/index.css CHANGED
@@ -15,6 +15,7 @@
15
15
  -------------------------------------------------------------------------- */
16
16
 
17
17
  @import "./tokens.css";
18
+ @import "./effective-tokens.css";
18
19
 
19
20
  @theme inline {
20
21
  --font-og-sans: var(--og-font-sans);
@@ -145,6 +146,8 @@
145
146
  --animate-og-blink: og-blink 1s steps(2, start) infinite;
146
147
  --animate-og-shimmer: og-shimmer 2.2s linear infinite;
147
148
  --animate-og-spin: og-spin 0.9s linear infinite;
149
+ --animate-spin: og-spin 1s linear infinite;
150
+ --animate-pulse: og-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
148
151
  --animate-og-waveform: og-waveform 1.15s var(--og-ease-in-out) infinite;
149
152
  /* Manual disclose — snappy. Auto settle-collapse is the slow path below. */
150
153
  --animate-og-expand: og-expand var(--og-duration-disclose) var(--og-ease-in-out);
@@ -472,6 +475,21 @@
472
475
  }
473
476
  }
474
477
 
478
+ /* A phone footer cannot fit capture chrome beside model, realtime, Pause, and
479
+ Send controls. While voice input owns the microphone, reserve the row for its
480
+ Cancel/Stop actions so unrelated Pause chrome cannot masquerade as Stop. */
481
+ @media (max-width: 39.999rem) {
482
+ .og-composer-footer:has([data-transcription-capturing])
483
+ .og-composer-controls
484
+ > :not([data-transcription-capturing]) {
485
+ display: none;
486
+ }
487
+
488
+ .og-composer-footer:has([data-transcription-capturing]) .og-composer-actions {
489
+ display: none;
490
+ }
491
+ }
492
+
475
493
  @media (forced-colors: active) {
476
494
  /* Forced-colors can replace a painted background with Canvas while custom
477
495
  properties retain their authored dark/light values. That combination is
@@ -0,0 +1,208 @@
1
+ /* Composer responsiveness is viewport-based unless the public Root opts into
2
+ its own inline-size container. The semantic hooks below intentionally keep
3
+ information density separate from pointer target sizing. */
4
+ .og-composer[data-og-responsive-basis="container"] {
5
+ container: og-composer / inline-size;
6
+ --_og-c-input-x: 1rem;
7
+ --_og-c-input-size: var(--og-font-size-composer-wide);
8
+ --_og-c-input-leading: var(--og-line-height-composer-wide);
9
+ --_og-c-gap: 0.375rem;
10
+ --_og-c-footer-x: 0.625rem;
11
+ --_og-c-footer-b: 0.625rem;
12
+ --_og-c-controls-wrap: wrap;
13
+ --_og-c-hint-display: inline;
14
+ --_og-c-model-max: 16rem;
15
+ --_og-c-model-x: 0.625rem;
16
+ --_og-c-native-max: 180px;
17
+ --_og-c-recovered-max: 11rem;
18
+ --_og-c-error-max: 10rem;
19
+ --og-model-policy-label-full-display: inline;
20
+ --og-model-policy-label-short-display: none;
21
+ --og-model-policy-effort-display: inline;
22
+ }
23
+
24
+ [data-og-responsive-basis="container"] .og-composer-input {
25
+ padding-inline: var(--_og-c-input-x);
26
+ font-size: var(--_og-c-input-size);
27
+ line-height: var(--_og-c-input-leading);
28
+ }
29
+
30
+ [data-og-responsive-basis="container"] .og-composer-footer {
31
+ gap: var(--_og-c-gap);
32
+ padding-inline: var(--_og-c-footer-x);
33
+ padding-bottom: var(--_og-c-footer-b);
34
+ }
35
+
36
+ [data-og-responsive-basis="container"] .og-composer-footer[data-og-stack-actions] {
37
+ flex-wrap: wrap;
38
+ }
39
+
40
+ [data-og-responsive-basis="container"] .og-composer-controls {
41
+ flex-wrap: var(--_og-c-controls-wrap);
42
+ }
43
+
44
+ [data-og-responsive-basis="container"]
45
+ :is(.og-composer-controls, .og-composer-actions) {
46
+ gap: var(--_og-c-gap);
47
+ }
48
+
49
+ [data-og-responsive-basis="container"]
50
+ :is(.og-composer-hint, .og-command-description) {
51
+ display: var(--_og-c-hint-display);
52
+ }
53
+
54
+ [data-og-responsive-basis="container"] .og-model-policy-trigger {
55
+ height: var(--og-model-picker-trigger-height);
56
+ max-width: var(--_og-c-model-max);
57
+ padding-inline: var(--_og-c-model-x);
58
+ }
59
+
60
+ [data-og-responsive-basis="container"] .og-model-policy-label-full {
61
+ display: var(--og-model-policy-label-full-display);
62
+ }
63
+
64
+ [data-og-responsive-basis="container"] .og-model-policy-label-short {
65
+ display: var(--og-model-policy-label-short-display);
66
+ }
67
+
68
+ [data-og-responsive-basis="container"] .og-model-policy-effort {
69
+ display: var(--og-model-policy-effort-display);
70
+ }
71
+
72
+ [data-og-responsive-basis="container"] .og-model-picker-native {
73
+ max-width: var(--_og-c-native-max);
74
+ }
75
+
76
+ [data-og-responsive-basis="container"] .og-transcription-recovered-label {
77
+ max-width: var(--_og-c-recovered-max);
78
+ }
79
+
80
+ [data-og-responsive-basis="container"] .og-transcription-error-label {
81
+ max-width: var(--_og-c-error-max);
82
+ }
83
+
84
+ [data-og-responsive-basis="container"]
85
+ :is(.og-realtime-primary, .og-realtime-model-trigger) {
86
+ height: 2rem;
87
+ }
88
+
89
+ [data-og-responsive-basis="container"] .og-realtime-primary {
90
+ width: 2rem;
91
+ }
92
+
93
+ [data-og-responsive-basis="container"] .og-realtime-model-trigger {
94
+ display: inline-flex;
95
+ width: 1.5rem;
96
+ }
97
+
98
+ [data-og-responsive-basis="container"]
99
+ .og-realtime-control[data-model-menu="split-desktop"]
100
+ .og-realtime-primary {
101
+ border-top-right-radius: 0;
102
+ border-bottom-right-radius: 0;
103
+ }
104
+
105
+ @container og-composer (max-width: 47.999rem) {
106
+ [data-og-responsive-basis="container"] :where(*) {
107
+ --_og-c-input-x: 0.875rem;
108
+ --_og-c-input-size: var(--og-font-size-composer);
109
+ --_og-c-input-leading: var(--og-line-height-composer);
110
+ }
111
+ }
112
+
113
+ @container og-composer (max-width: 39.999rem) {
114
+ [data-og-responsive-basis="container"] :where(*) {
115
+ --_og-c-gap: 0.25rem;
116
+ --_og-c-footer-x: 0.5rem;
117
+ --_og-c-footer-b: 0.5rem;
118
+ --_og-c-controls-wrap: nowrap;
119
+ --_og-c-hint-display: none;
120
+ --_og-c-model-max: 7.5rem;
121
+ --_og-c-model-x: 0.5rem;
122
+ --_og-c-native-max: 7.5rem;
123
+ --_og-c-recovered-max: 7rem;
124
+ --_og-c-error-max: 6rem;
125
+ --og-model-policy-label-full-display: none;
126
+ --og-model-policy-label-short-display: inline;
127
+ --og-model-policy-effort-display: none;
128
+ }
129
+
130
+ [data-og-responsive-basis="container"] .og-composer-footer {
131
+ flex-wrap: nowrap;
132
+ align-items: center;
133
+ }
134
+
135
+ [data-og-responsive-basis="container"] .og-composer-actions {
136
+ flex-wrap: nowrap;
137
+ }
138
+
139
+ [data-og-responsive-basis="container"]
140
+ .og-realtime-control[data-model-menu="split-desktop"]
141
+ .og-realtime-primary {
142
+ border-radius: var(--og-radius-md);
143
+ }
144
+
145
+ [data-og-responsive-basis="container"]
146
+ .og-realtime-control[data-model-menu="split-desktop"]
147
+ .og-realtime-model-trigger {
148
+ display: none;
149
+ }
150
+
151
+ [data-og-responsive-basis="container"]
152
+ .og-composer-footer:has([data-transcription-capturing])
153
+ .og-composer-controls
154
+ > :not([data-transcription-capturing]) {
155
+ display: none;
156
+ }
157
+
158
+ [data-og-responsive-basis="container"]
159
+ .og-composer-footer:has([data-transcription-capturing])
160
+ .og-composer-actions {
161
+ display: none;
162
+ }
163
+ }
164
+
165
+ @container og-composer (max-width: 24.999rem) {
166
+ .og-composer[data-og-responsive-basis="container"] .og-composer-resume-label-long {
167
+ display: none;
168
+ }
169
+
170
+ .og-composer[data-og-responsive-basis="container"] .og-composer-resume-label-short {
171
+ display: inline;
172
+ }
173
+ }
174
+
175
+ @media (pointer: coarse) {
176
+ [data-og-responsive-basis="container"] .og-model-policy-trigger,
177
+ [data-og-responsive-basis="container"] .og-realtime-primary,
178
+ [data-og-responsive-basis="container"] .og-realtime-model-trigger {
179
+ height: 2.75rem;
180
+ }
181
+
182
+ [data-og-responsive-basis="container"] .og-realtime-primary,
183
+ [data-og-responsive-basis="container"] .og-realtime-model-trigger {
184
+ width: 2.75rem;
185
+ }
186
+ }
187
+
188
+ /* Portalled menus retain theme/density tokens from their trigger and, in
189
+ container mode, the live composer width supplied by ResizeObserver. */
190
+ .og-model-policy-menu {
191
+ box-sizing: border-box;
192
+ width: min(
193
+ var(--og-model-picker-menu-width),
194
+ calc(var(--og-portal-source-inline-size, 100vw) - 1rem),
195
+ var(--radix-dropdown-menu-content-available-width, 100vw)
196
+ );
197
+ max-width: calc(100vw - 1rem);
198
+ }
199
+
200
+ .og-realtime-menu {
201
+ box-sizing: border-box;
202
+ width: min(
203
+ var(--og-realtime-menu-width),
204
+ calc(var(--og-portal-source-inline-size, 100vw) - 1rem),
205
+ var(--radix-dropdown-menu-content-available-width, 100vw)
206
+ );
207
+ max-width: calc(100vw - 1rem);
208
+ }
@@ -0,0 +1,2 @@
1
+ declare const stylesheet: string;
2
+ export default stylesheet;
package/styles/tokens.css CHANGED
@@ -50,6 +50,7 @@
50
50
  --og-model-picker-row-padding-x: 0.625rem;
51
51
  --og-model-picker-row-padding-y: 0.5rem;
52
52
  --og-model-picker-effort-height: 2rem;
53
+ --og-realtime-menu-width: 18rem;
53
54
 
54
55
  /* Radius ----------------------------------------------------------------- */
55
56
  --og-radius-xs: 4px;
@@ -96,7 +97,9 @@
96
97
  token. Keep the blue dark enough to preserve WCAG AA contrast. */
97
98
  --og-color-accent-deep: oklch(0.54 0.18 255);
98
99
  --og-color-accent-fg: oklch(0.985 0.005 260);
99
- --og-color-accent-soft: color-mix(in oklch, var(--og-color-accent) 16%, transparent);
100
+ /* Legacy color-mix fallbacks stay in the base rule; supported values are
101
+ grouped below so processors do not repeat this selector for every token. */
102
+ --og-color-accent-soft: var(--og-color-accent);
100
103
 
101
104
  /* Status — muted so they inform without alarming --------------------------- */
102
105
  --og-color-status-queued: oklch(0.62 0.03 260);
@@ -106,8 +109,8 @@
106
109
  --og-color-status-failed: oklch(0.7 0.16 22);
107
110
  --og-color-status-cancelled: oklch(0.6 0.035 260);
108
111
  --og-color-danger: oklch(0.66 0.18 22);
109
- --og-color-diff-add-bg: color-mix(in oklch, var(--og-color-status-idle) 14%, transparent);
110
- --og-color-diff-del-bg: color-mix(in oklch, var(--og-color-status-failed) 14%, transparent);
112
+ --og-color-diff-add-bg: var(--og-color-status-idle);
113
+ --og-color-diff-del-bg: var(--og-color-status-failed);
111
114
 
112
115
  /* Elevation ----------------------------------------------------------------
113
116
  Dark surfaces barely cast shadows; elevation reads mostly from the
@@ -120,17 +123,17 @@
120
123
  brand edge via `focus-within:border-og-accent/60`; the old `0 0 0 1px`
121
124
  ring sat flush against that border and read as a doubled hairline, so the
122
125
  glow is now purely the diffuse outer halo. */
123
- --og-shadow-glow: 0 0 24px color-mix(in oklch, var(--og-color-accent) 18%, transparent);
126
+ --og-shadow-glow: 0 0 24px var(--og-color-accent);
124
127
 
125
128
  /* Session chrome — override on `.og-session-chrome` (or an ancestor) to rebrand.
126
129
  Defaults stay quiet: soft surface, short motion, no gold shout. */
127
- --og-session-chrome-surface: color-mix(in oklch, var(--og-color-surface-2) 82%, transparent);
128
- --og-session-chrome-surface-open: color-mix(in oklch, var(--og-color-surface-2) 92%, transparent);
129
- --og-session-chrome-border: color-mix(in oklch, var(--og-color-border) 85%, transparent);
130
+ --og-session-chrome-surface: var(--og-color-surface-2);
131
+ --og-session-chrome-surface-open: var(--og-color-surface-2);
132
+ --og-session-chrome-border: var(--og-color-border);
130
133
  --og-session-chrome-border-open: var(--og-color-border);
131
134
  /* Selected chip: solid lift vs open dock surface (not a faint wash). */
132
135
  --og-session-chrome-highlight: var(--og-color-surface-3);
133
- --og-session-chrome-highlight-ring: color-mix(in oklch, var(--og-color-fg) 16%, transparent);
136
+ --og-session-chrome-highlight-ring: var(--og-color-fg);
134
137
  --og-session-chrome-shadow: 0 6px 22px -14px oklch(0 0 0 / 0.42);
135
138
  --og-session-chrome-shadow-open: 0 10px 28px -16px oklch(0 0 0 / 0.5);
136
139
  --og-session-chrome-radius: var(--og-radius-lg);
@@ -145,11 +148,25 @@
145
148
  --og-session-chrome-duration: 220ms;
146
149
  --og-session-chrome-crossfade-duration: 180ms;
147
150
  --og-session-chrome-ease: var(--og-ease-out);
148
- --og-session-chrome-row-hover: color-mix(in oklch, var(--og-color-surface-3) 55%, transparent);
151
+ --og-session-chrome-row-hover: var(--og-color-surface-3);
149
152
 
150
153
  color-scheme: dark;
151
154
  }
152
155
 
156
+ @supports (color: color-mix(in lab, red, red)) {
157
+ :root {
158
+ --og-color-accent-soft: color-mix(in oklch, var(--og-color-accent) 16%, transparent);
159
+ --og-color-diff-add-bg: color-mix(in oklch, var(--og-color-status-idle) 14%, transparent);
160
+ --og-color-diff-del-bg: color-mix(in oklch, var(--og-color-status-failed) 14%, transparent);
161
+ --og-shadow-glow: 0 0 24px color-mix(in oklch, var(--og-color-accent) 18%, transparent);
162
+ --og-session-chrome-surface: color-mix(in oklch, var(--og-color-surface-2) 82%, transparent);
163
+ --og-session-chrome-surface-open: color-mix(in oklch, var(--og-color-surface-2) 92%, transparent);
164
+ --og-session-chrome-border: color-mix(in oklch, var(--og-color-border) 85%, transparent);
165
+ --og-session-chrome-highlight-ring: color-mix(in oklch, var(--og-color-fg) 16%, transparent);
166
+ --og-session-chrome-row-hover: color-mix(in oklch, var(--og-color-surface-3) 55%, transparent);
167
+ }
168
+ }
169
+
153
170
  /* One supported dense preset for embedded product panels. It changes only
154
171
  typography and model-picker density; colors, radii, and brand tokens remain
155
172
  independently customizable. Apply either form to an SDK ancestor. */
@@ -178,6 +195,7 @@
178
195
  --og-model-picker-row-padding-x: 0.5rem;
179
196
  --og-model-picker-row-padding-y: 0.375rem;
180
197
  --og-model-picker-effort-height: 1.75rem;
198
+ --og-realtime-menu-width: 15rem;
181
199
  }
182
200
 
183
201
  /* Light theme — explicit opt-in, themable per subtree ----------------------- */
@@ -197,7 +215,8 @@
197
215
  --og-color-accent-strong: oklch(0.48 0.19 255);
198
216
  --og-color-accent-deep: oklch(0.44 0.19 255);
199
217
  --og-color-accent-fg: oklch(0.985 0.005 260);
200
- --og-color-accent-soft: color-mix(in oklch, var(--og-color-accent) 11%, transparent);
218
+ /* Match the dark-token fallback strategy without duplicating support rules. */
219
+ --og-color-accent-soft: var(--og-color-accent);
201
220
 
202
221
  --og-color-status-queued: oklch(0.55 0.03 260);
203
222
  /* Status letters are ordinary 11 px text, including over selected rows. */
@@ -209,23 +228,37 @@
209
228
  --og-color-status-failed: oklch(0.5 0.19 22);
210
229
  --og-color-status-cancelled: oklch(0.55 0.025 260);
211
230
  --og-color-danger: oklch(0.55 0.2 22);
212
- --og-color-diff-add-bg: color-mix(in oklch, var(--og-color-status-idle) 12%, transparent);
213
- --og-color-diff-del-bg: color-mix(in oklch, var(--og-color-status-failed) 12%, transparent);
231
+ --og-color-diff-add-bg: var(--og-color-status-idle);
232
+ --og-color-diff-del-bg: var(--og-color-status-failed);
214
233
 
215
234
  --og-shadow-sm: 0 1px 2px oklch(0.2 0.02 260 / 0.07);
216
235
  --og-shadow-md: 0 2px 8px oklch(0.2 0.02 260 / 0.09), 0 1px 2px oklch(0.2 0.02 260 / 0.06);
217
236
  --og-shadow-lg: 0 8px 28px oklch(0.2 0.02 260 / 0.13), 0 2px 8px oklch(0.2 0.02 260 / 0.07);
218
- --og-shadow-glow: 0 0 20px color-mix(in oklch, var(--og-color-accent) 14%, transparent);
237
+ --og-shadow-glow: 0 0 20px var(--og-color-accent);
219
238
 
220
- --og-session-chrome-surface: color-mix(in oklch, var(--og-color-surface-2) 88%, transparent);
239
+ --og-session-chrome-surface: var(--og-color-surface-2);
221
240
  --og-session-chrome-surface-open: var(--og-color-surface-2);
222
- --og-session-chrome-border: color-mix(in oklch, var(--og-color-border) 90%, transparent);
241
+ --og-session-chrome-border: var(--og-color-border);
223
242
  --og-session-chrome-border-open: var(--og-color-border);
224
243
  --og-session-chrome-highlight: var(--og-color-surface-3);
225
- --og-session-chrome-highlight-ring: color-mix(in oklch, var(--og-color-fg) 12%, transparent);
244
+ --og-session-chrome-highlight-ring: var(--og-color-fg);
226
245
  --og-session-chrome-shadow: 0 4px 16px -10px oklch(0.2 0.02 260 / 0.14);
227
246
  --og-session-chrome-shadow-open: 0 8px 22px -12px oklch(0.2 0.02 260 / 0.18);
228
- --og-session-chrome-row-hover: color-mix(in oklch, var(--og-color-surface-3) 70%, transparent);
247
+ --og-session-chrome-row-hover: var(--og-color-surface-3);
229
248
 
230
249
  color-scheme: light;
231
250
  }
251
+
252
+ @supports (color: color-mix(in lab, red, red)) {
253
+ [data-og-theme="light"],
254
+ .og-light {
255
+ --og-color-accent-soft: color-mix(in oklch, var(--og-color-accent) 11%, transparent);
256
+ --og-color-diff-add-bg: color-mix(in oklch, var(--og-color-status-idle) 12%, transparent);
257
+ --og-color-diff-del-bg: color-mix(in oklch, var(--og-color-status-failed) 12%, transparent);
258
+ --og-shadow-glow: 0 0 20px color-mix(in oklch, var(--og-color-accent) 14%, transparent);
259
+ --og-session-chrome-surface: color-mix(in oklch, var(--og-color-surface-2) 88%, transparent);
260
+ --og-session-chrome-border: color-mix(in oklch, var(--og-color-border) 90%, transparent);
261
+ --og-session-chrome-highlight-ring: color-mix(in oklch, var(--og-color-fg) 12%, transparent);
262
+ --og-session-chrome-row-hover: color-mix(in oklch, var(--og-color-surface-3) 70%, transparent);
263
+ }
264
+ }