@opengeni/react 0.48.0 → 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 (284) hide show
  1. package/README.md +90 -2
  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-FWXGSNXT.js → chunk-724BW4TW.js} +585 -34
  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-I4MPFDRP.js → chunk-FWS3KC3Z.js} +3 -3
  23. package/dist/{chunk-EKZH6IDG.js → chunk-HDBG7XGO.js} +62 -1
  24. package/dist/chunk-HDBG7XGO.js.map +1 -0
  25. package/dist/chunk-HUIKIDM5.js +2148 -0
  26. package/dist/chunk-HUIKIDM5.js.map +1 -0
  27. package/dist/{chunk-XCNTXWBB.js → chunk-JAGDUCZQ.js} +854 -340
  28. package/dist/chunk-JAGDUCZQ.js.map +1 -0
  29. package/dist/{chunk-LHLYWG5R.js → chunk-JR3QFY6B.js} +413 -37
  30. package/dist/chunk-JR3QFY6B.js.map +1 -0
  31. package/dist/chunk-JVYQRRC4.js +53 -0
  32. package/dist/chunk-JVYQRRC4.js.map +1 -0
  33. package/dist/chunk-KCGXPP5V.js +157 -0
  34. package/dist/chunk-KCGXPP5V.js.map +1 -0
  35. package/dist/chunk-PEI6RANI.js +3234 -0
  36. package/dist/chunk-PEI6RANI.js.map +1 -0
  37. package/dist/{chunk-NJ7M2B6Z.js → chunk-ROIRTM37.js} +18 -10
  38. package/dist/{chunk-NJ7M2B6Z.js.map → chunk-ROIRTM37.js.map} +1 -1
  39. package/dist/{chunk-O4VXOBGF.js → chunk-WSK7G5LE.js} +70 -2
  40. package/dist/chunk-WSK7G5LE.js.map +1 -0
  41. package/dist/{chunk-OL6QVXGF.js → chunk-X4S56Y2H.js} +27 -7
  42. package/dist/{chunk-OL6QVXGF.js.map → chunk-X4S56Y2H.js.map} +1 -1
  43. package/dist/client.d.ts +7 -1
  44. package/dist/clipboard.d.ts +1 -0
  45. package/dist/clipboard.js +7 -0
  46. package/dist/clipboard.js.map +1 -0
  47. package/dist/commands/index.d.ts +3 -3
  48. package/dist/commands/registry.d.ts +1 -1
  49. package/dist/commands/types.d.ts +1 -1
  50. package/dist/components/approval-surface.d.ts +2 -2
  51. package/dist/components/artifacts/artifact-surface.d.ts +18 -0
  52. package/dist/components/artifacts/document-editor.d.ts +172 -0
  53. package/dist/components/artifacts/editable-artifact-ui.d.ts +13 -0
  54. package/dist/components/artifacts/editable-artifact-workbench.d.ts +49 -0
  55. package/dist/components/artifacts/editable-document.d.ts +24 -0
  56. package/dist/components/artifacts/editable-presentation.d.ts +24 -0
  57. package/dist/components/artifacts/editable-spreadsheet.d.ts +32 -0
  58. package/dist/components/artifacts/index.d.ts +8 -0
  59. package/dist/components/artifacts/presentation-editor.d.ts +297 -0
  60. package/dist/components/artifacts/spreadsheet-canvas.d.ts +120 -0
  61. package/dist/components/artifacts/spreadsheet-grid.d.ts +113 -0
  62. package/dist/components/browser-viewer.d.ts +29 -0
  63. package/dist/components/chat-composer.d.ts +8 -8
  64. package/dist/components/code-editor.d.ts +25 -3
  65. package/dist/components/command-palette.d.ts +2 -2
  66. package/dist/components/composer-transcription-control.d.ts +2 -2
  67. package/dist/components/composer.d.ts +17 -17
  68. package/dist/components/computer-viewer.d.ts +23 -0
  69. package/dist/components/copy-button.d.ts +2 -2
  70. package/dist/components/desktop-viewer.d.ts +25 -21
  71. package/dist/components/diff-view.d.ts +1 -1
  72. package/dist/components/enrollment-consent.d.ts +1 -1
  73. package/dist/components/enrollment-device-flow.d.ts +1 -1
  74. package/dist/components/file-browser.d.ts +2 -2
  75. package/dist/components/fleet-tile.d.ts +1 -1
  76. package/dist/components/generated-video-player.d.ts +10 -0
  77. package/dist/components/human-input-form.d.ts +1 -1
  78. package/dist/components/human-input-surface.d.ts +2 -2
  79. package/dist/components/interactive-workbench-viewers.d.ts +2 -0
  80. package/dist/components/machine-card.d.ts +2 -2
  81. package/dist/components/machine-dock-bar.d.ts +3 -3
  82. package/dist/components/machine-health-pill.d.ts +2 -2
  83. package/dist/components/machine-input-display.d.ts +1 -1
  84. package/dist/components/machine-metrics.d.ts +2 -2
  85. package/dist/components/machine-status-pill.d.ts +4 -4
  86. package/dist/components/machines/health.d.ts +1 -1
  87. package/dist/components/machines/machine-detail.d.ts +3 -3
  88. package/dist/components/machines/metric-history-chart.d.ts +1 -1
  89. package/dist/components/machines/metric-sparkline.d.ts +2 -2
  90. package/dist/components/machines/series.d.ts +2 -2
  91. package/dist/components/machines-dashboard.d.ts +2 -2
  92. package/dist/components/markdown.d.ts +1 -1
  93. package/dist/components/message-timeline.d.ts +12 -5
  94. package/dist/components/model-picker.d.ts +2 -2
  95. package/dist/components/model-policy-picker.d.ts +7 -7
  96. package/dist/components/pierre-diff.d.ts +1 -1
  97. package/dist/components/pierre-file.d.ts +1 -1
  98. package/dist/components/queue-draft-policy.d.ts +1 -1
  99. package/dist/components/queue-surface-implementation.d.ts +3 -3
  100. package/dist/components/queue-surface-state.d.ts +4 -4
  101. package/dist/components/queue-surface.d.ts +5 -5
  102. package/dist/components/sandbox-files.d.ts +3 -3
  103. package/dist/components/sandbox-terminal.d.ts +21 -4
  104. package/dist/components/sandbox-workspace.d.ts +25 -9
  105. package/dist/components/session-chrome.d.ts +4 -4
  106. package/dist/components/session-status.d.ts +2 -2
  107. package/dist/components/timeline-annotation-selection.d.ts +9 -0
  108. package/dist/components/timeline-annotations-dialog.d.ts +16 -0
  109. package/dist/components/timeline-annotations.d.ts +13 -0
  110. package/dist/components/tooltip.d.ts +4 -4
  111. package/dist/components/user-message-body.d.ts +2 -2
  112. package/dist/components/workbench-changes.d.ts +2 -2
  113. package/dist/components/workspace-dock.d.ts +1 -1
  114. package/dist/composer.d.ts +11 -11
  115. package/dist/composer.js +5 -5
  116. package/dist/hooks/internal.d.ts +1 -1
  117. package/dist/hooks/use-attached-browsers.d.ts +21 -0
  118. package/dist/hooks/use-available-models.d.ts +2 -2
  119. package/dist/hooks/use-billing-usage.d.ts +1 -1
  120. package/dist/hooks/use-browser-frame-stream.d.ts +28 -0
  121. package/dist/hooks/use-browser-identities.d.ts +26 -0
  122. package/dist/hooks/use-browser-session.d.ts +28 -0
  123. package/dist/hooks/use-browser-sessions.d.ts +32 -0
  124. package/dist/hooks/use-codex-accounts.d.ts +2 -2
  125. package/dist/hooks/use-composer.d.ts +36 -9
  126. package/dist/hooks/use-computer-frame-stream.d.ts +24 -0
  127. package/dist/hooks/use-computer-session.d.ts +28 -0
  128. package/dist/hooks/use-computer-sessions.d.ts +28 -0
  129. package/dist/hooks/use-desktop-stream.d.ts +1 -1
  130. package/dist/hooks/use-environments.d.ts +1 -1
  131. package/dist/hooks/use-file-attachments.d.ts +1 -1
  132. package/dist/hooks/use-goal.d.ts +2 -2
  133. package/dist/hooks/use-human-input.d.ts +2 -2
  134. package/dist/hooks/use-last-started-turn-policy.d.ts +2 -2
  135. package/dist/hooks/use-machine-chip.d.ts +2 -2
  136. package/dist/hooks/use-machines.d.ts +4 -4
  137. package/dist/hooks/use-packs.d.ts +7 -2
  138. package/dist/hooks/use-rigs.d.ts +1 -1
  139. package/dist/hooks/use-sandbox-files.d.ts +6 -4
  140. package/dist/hooks/use-sandbox-git.d.ts +6 -5
  141. package/dist/hooks/use-sandbox-terminal.d.ts +1 -1
  142. package/dist/hooks/use-scheduled-tasks.d.ts +1 -1
  143. package/dist/hooks/use-session-capabilities.d.ts +5 -4
  144. package/dist/hooks/use-session-control.d.ts +1 -1
  145. package/dist/hooks/use-session-events.d.ts +2 -2
  146. package/dist/hooks/use-session-lineage.d.ts +1 -1
  147. package/dist/hooks/use-session-mcp-approval-policy.d.ts +2 -2
  148. package/dist/hooks/use-session.d.ts +2 -2
  149. package/dist/hooks/use-slash-commands.d.ts +1 -1
  150. package/dist/hooks/use-terminal-stream.d.ts +8 -2
  151. package/dist/hooks/use-turn-queue.d.ts +2 -2
  152. package/dist/hooks/use-video-artifact-playback.d.ts +9 -0
  153. package/dist/hooks/use-voice-input.d.ts +1 -1
  154. package/dist/hooks/use-workspace-capture.d.ts +1 -1
  155. package/dist/hooks/use-workspace-edit.d.ts +1 -1
  156. package/dist/hooks/use-workspace-sessions.d.ts +1 -1
  157. package/dist/hooks/use-workspaces.d.ts +1 -1
  158. package/dist/index.d.ts +158 -155
  159. package/dist/index.js +906 -462
  160. package/dist/index.js.map +1 -1
  161. package/dist/interaction.d.ts +23 -0
  162. package/dist/interaction.js +36 -0
  163. package/dist/interaction.js.map +1 -0
  164. package/dist/interactive-workbench-viewers-KHNOHWQE.js +13 -0
  165. package/dist/interactive-workbench-viewers-KHNOHWQE.js.map +1 -0
  166. package/dist/lib/relay-wire.d.ts +4 -0
  167. package/dist/lib/sandbox-liveness.d.ts +9 -0
  168. package/dist/lib/terminal-capability.d.ts +5 -0
  169. package/dist/lib/xterm-theme.d.ts +1 -1
  170. package/dist/machines.d.ts +30 -30
  171. package/dist/machines.js +3 -3
  172. package/dist/provider.d.ts +4 -4
  173. package/dist/{queue-surface-implementation-U5JFG7HT.js → queue-surface-implementation-2KVJTYXH.js} +100 -48
  174. package/dist/queue-surface-implementation-2KVJTYXH.js.map +1 -0
  175. package/dist/realtime/dropdown-menu.d.ts +8 -8
  176. package/dist/realtime/realtime-control.d.ts +6 -6
  177. package/dist/realtime.d.ts +4 -4
  178. package/dist/realtime.js +3 -3
  179. package/dist/session-context.d.ts +19 -1
  180. package/dist/session-ui.d.ts +14 -14
  181. package/dist/session-ui.js +5 -4
  182. package/dist/session.d.ts +28 -28
  183. package/dist/session.js +5 -5
  184. package/dist/timeline/activity-rail.d.ts +5 -3
  185. package/dist/timeline/disclosure-context.d.ts +1 -1
  186. package/dist/timeline/fleet-decision-projection.d.ts +1 -1
  187. package/dist/timeline/fleet-decision-row.d.ts +3 -3
  188. package/dist/timeline/index.d.ts +19 -19
  189. package/dist/timeline/parsers.d.ts +4 -1
  190. package/dist/timeline/projection.d.ts +3 -3
  191. package/dist/timeline/registry.d.ts +8 -2
  192. package/dist/timeline/screenshot-lightbox.d.ts +2 -2
  193. package/dist/timeline/shared.d.ts +21 -10
  194. package/dist/timeline/tool-diff.d.ts +2 -2
  195. package/dist/timeline/tool-renderers.d.ts +1 -1
  196. package/dist/timeline/turn-summary.d.ts +3 -3
  197. package/dist/timeline/types.d.ts +39 -3
  198. package/dist/timeline-annotation-selection-3L7LHGG2.js +187 -0
  199. package/dist/timeline-annotation-selection-3L7LHGG2.js.map +1 -0
  200. package/dist/timeline-annotations-dialog-U7EVLR75.js +196 -0
  201. package/dist/timeline-annotations-dialog-U7EVLR75.js.map +1 -0
  202. package/package.json +36 -7
  203. package/src/artifacts-document.ts +31 -0
  204. package/src/artifacts-presentation.ts +36 -0
  205. package/src/artifacts-spreadsheet.ts +21 -0
  206. package/src/artifacts.ts +86 -0
  207. package/src/client.ts +87 -1
  208. package/src/clipboard.ts +2 -0
  209. package/src/components/artifacts/artifact-surface.tsx +93 -0
  210. package/src/components/artifacts/document-editor.tsx +2255 -0
  211. package/src/components/artifacts/editable-artifact-ui.tsx +89 -0
  212. package/src/components/artifacts/editable-artifact-workbench.tsx +203 -0
  213. package/src/components/artifacts/editable-document.tsx +657 -0
  214. package/src/components/artifacts/editable-presentation.tsx +1020 -0
  215. package/src/components/artifacts/editable-spreadsheet.tsx +733 -0
  216. package/src/components/artifacts/index.ts +99 -0
  217. package/src/components/artifacts/presentation-editor.tsx +3148 -0
  218. package/src/components/artifacts/spreadsheet-canvas.ts +799 -0
  219. package/src/components/artifacts/spreadsheet-grid.tsx +2129 -0
  220. package/src/components/browser-viewer.tsx +1592 -0
  221. package/src/components/chat-composer.tsx +13 -0
  222. package/src/components/code-editor.tsx +89 -30
  223. package/src/components/composer-transcription-control.tsx +10 -6
  224. package/src/components/computer-viewer.tsx +1139 -0
  225. package/src/components/desktop-viewer.tsx +101 -73
  226. package/src/components/generated-video-player.tsx +89 -0
  227. package/src/components/interactive-workbench-viewers.ts +2 -0
  228. package/src/components/machine-input-display.ts +3 -0
  229. package/src/components/message-timeline.tsx +289 -32
  230. package/src/components/queue-surface-implementation.tsx +116 -60
  231. package/src/components/sandbox-files.tsx +2 -2
  232. package/src/components/sandbox-terminal.tsx +106 -41
  233. package/src/components/sandbox-workspace.tsx +215 -87
  234. package/src/components/session-chrome.tsx +53 -13
  235. package/src/components/timeline-annotation-selection.tsx +221 -0
  236. package/src/components/timeline-annotations-dialog.tsx +213 -0
  237. package/src/components/timeline-annotations.tsx +84 -0
  238. package/src/components/workbench-changes.tsx +188 -31
  239. package/src/hooks/use-attached-browsers.ts +152 -0
  240. package/src/hooks/use-browser-frame-stream.ts +316 -0
  241. package/src/hooks/use-browser-identities.ts +225 -0
  242. package/src/hooks/use-browser-session.ts +476 -0
  243. package/src/hooks/use-browser-sessions.ts +281 -0
  244. package/src/hooks/use-composer.ts +769 -24
  245. package/src/hooks/use-computer-frame-stream.ts +311 -0
  246. package/src/hooks/use-computer-session.ts +442 -0
  247. package/src/hooks/use-computer-sessions.ts +245 -0
  248. package/src/hooks/use-machine-chip.ts +5 -3
  249. package/src/hooks/use-machines.ts +33 -3
  250. package/src/hooks/use-packs.ts +51 -0
  251. package/src/hooks/use-sandbox-files.ts +98 -55
  252. package/src/hooks/use-sandbox-git.ts +93 -38
  253. package/src/hooks/use-sandbox-terminal.ts +3 -2
  254. package/src/hooks/use-session-capabilities.ts +59 -46
  255. package/src/hooks/use-terminal-stream.ts +102 -23
  256. package/src/hooks/use-video-artifact-playback.ts +28 -0
  257. package/src/hooks/use-workspace-edit.ts +2 -1
  258. package/src/index.ts +10 -0
  259. package/src/interaction.ts +71 -0
  260. package/src/lib/relay-wire.ts +4 -0
  261. package/src/lib/sandbox-liveness.ts +11 -0
  262. package/src/lib/terminal-capability.ts +10 -0
  263. package/src/session-context.ts +90 -0
  264. package/src/timeline/activity-rail.tsx +19 -3
  265. package/src/timeline/index.ts +3 -0
  266. package/src/timeline/parsers.ts +14 -1
  267. package/src/timeline/projection.ts +211 -14
  268. package/src/timeline/registry.ts +13 -1
  269. package/src/timeline/screenshot-lightbox.tsx +19 -9
  270. package/src/timeline/shared.tsx +56 -8
  271. package/src/timeline/tool-renderers.tsx +303 -50
  272. package/src/timeline/types.ts +55 -3
  273. package/styles/compiled.css +248 -15
  274. package/styles/index.css +15 -0
  275. package/styles/responsive.css +13 -1
  276. package/dist/chunk-EKZH6IDG.js.map +0 -1
  277. package/dist/chunk-FWXGSNXT.js.map +0 -1
  278. package/dist/chunk-LHLYWG5R.js.map +0 -1
  279. package/dist/chunk-O4VXOBGF.js.map +0 -1
  280. package/dist/chunk-XCNTXWBB.js.map +0 -1
  281. package/dist/fleet-decision-projection-SLNZMS42.js +0 -241
  282. package/dist/fleet-decision-projection-SLNZMS42.js.map +0 -1
  283. package/dist/queue-surface-implementation-U5JFG7HT.js.map +0 -1
  284. /package/dist/{chunk-I4MPFDRP.js.map → chunk-FWS3KC3Z.js.map} +0 -0
@@ -472,6 +472,7 @@
472
472
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
473
473
  --blur-sm: 8px;
474
474
  --blur-md: 12px;
475
+ --aspect-video: 16 / 9;
475
476
  --default-transition-duration: 150ms;
476
477
  --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
477
478
  --color-og-surface-1: var(--og-color-surface-1);
@@ -555,9 +556,18 @@
555
556
  :where(.og-root).top-1\/2,:where(.og-root) .top-1\/2 {
556
557
  top: calc(1 / 2 * 100%);
557
558
  }
559
+ :where(.og-root).top-2,:where(.og-root) .top-2 {
560
+ top: calc(var(--spacing) * 2);
561
+ }
558
562
  :where(.og-root).top-3,:where(.og-root) .top-3 {
559
563
  top: calc(var(--spacing) * 3);
560
564
  }
565
+ :where(.og-root).top-8,:where(.og-root) .top-8 {
566
+ top: calc(var(--spacing) * 8);
567
+ }
568
+ :where(.og-root).top-10,:where(.og-root) .top-10 {
569
+ top: calc(var(--spacing) * 10);
570
+ }
561
571
  :where(.og-root).-right-3,:where(.og-root) .-right-3 {
562
572
  right: calc(var(--spacing) * -3);
563
573
  }
@@ -573,6 +583,9 @@
573
583
  :where(.og-root).bottom-0,:where(.og-root) .bottom-0 {
574
584
  bottom: calc(var(--spacing) * 0);
575
585
  }
586
+ :where(.og-root).bottom-2,:where(.og-root) .bottom-2 {
587
+ bottom: calc(var(--spacing) * 2);
588
+ }
576
589
  :where(.og-root).bottom-4,:where(.og-root) .bottom-4 {
577
590
  bottom: calc(var(--spacing) * 4);
578
591
  }
@@ -588,6 +601,12 @@
588
601
  :where(.og-root).left-1\/2,:where(.og-root) .left-1\/2 {
589
602
  left: calc(1 / 2 * 100%);
590
603
  }
604
+ :where(.og-root).left-2,:where(.og-root) .left-2 {
605
+ left: calc(var(--spacing) * 2);
606
+ }
607
+ :where(.og-root).z-0,:where(.og-root) .z-0 {
608
+ z-index: 0;
609
+ }
591
610
  :where(.og-root).z-10,:where(.og-root) .z-10 {
592
611
  z-index: 10;
593
612
  }
@@ -606,6 +625,12 @@
606
625
  :where(.og-root).z-\[1\],:where(.og-root) .z-\[1\] {
607
626
  z-index: 1;
608
627
  }
628
+ :where(.og-root).z-\[75\],:where(.og-root) .z-\[75\] {
629
+ z-index: 75;
630
+ }
631
+ :where(.og-root).z-\[80\],:where(.og-root) .z-\[80\] {
632
+ z-index: 80;
633
+ }
609
634
  :where(.og-root).z-\[100\],:where(.og-root) .z-\[100\] {
610
635
  z-index: 100;
611
636
  }
@@ -654,6 +679,9 @@
654
679
  :where(.og-root).m-0,:where(.og-root) .m-0 {
655
680
  margin: calc(var(--spacing) * 0);
656
681
  }
682
+ :where(.og-root).m-auto,:where(.og-root) .m-auto {
683
+ margin: auto;
684
+ }
657
685
  :where(.og-root).-mx-1,:where(.og-root) .-mx-1 {
658
686
  margin-inline: calc(var(--spacing) * -1);
659
687
  }
@@ -768,6 +796,9 @@
768
796
  :where(.og-root).ml-px,:where(.og-root) .ml-px {
769
797
  margin-left: 1px;
770
798
  }
799
+ :where(.og-root).box-border,:where(.og-root) .box-border {
800
+ box-sizing: border-box;
801
+ }
771
802
  :where(.og-root).line-clamp-1,:where(.og-root) .line-clamp-1 {
772
803
  overflow: hidden;
773
804
  display: -webkit-box;
@@ -813,6 +844,9 @@
813
844
  :where(.og-root).table,:where(.og-root) .table {
814
845
  display: table;
815
846
  }
847
+ :where(.og-root).aspect-video,:where(.og-root) .aspect-video {
848
+ aspect-ratio: var(--aspect-video);
849
+ }
816
850
  :where(.og-root).size-1,:where(.og-root) .size-1 {
817
851
  width: calc(var(--spacing) * 1);
818
852
  height: calc(var(--spacing) * 1);
@@ -841,6 +875,10 @@
841
875
  width: calc(var(--spacing) * 4);
842
876
  height: calc(var(--spacing) * 4);
843
877
  }
878
+ :where(.og-root).size-4\.5,:where(.og-root) .size-4\.5 {
879
+ width: calc(var(--spacing) * 4.5);
880
+ height: calc(var(--spacing) * 4.5);
881
+ }
844
882
  :where(.og-root).size-5,:where(.og-root) .size-5 {
845
883
  width: calc(var(--spacing) * 5);
846
884
  height: calc(var(--spacing) * 5);
@@ -877,6 +915,10 @@
877
915
  width: 100%;
878
916
  height: 100%;
879
917
  }
918
+ :where(.og-root).size-px,:where(.og-root) .size-px {
919
+ width: 1px;
920
+ height: 1px;
921
+ }
880
922
  :where(.og-root).h-1,:where(.og-root) .h-1 {
881
923
  height: calc(var(--spacing) * 1);
882
924
  }
@@ -886,6 +928,9 @@
886
928
  :where(.og-root).h-4,:where(.og-root) .h-4 {
887
929
  height: calc(var(--spacing) * 4);
888
930
  }
931
+ :where(.og-root).h-5,:where(.og-root) .h-5 {
932
+ height: calc(var(--spacing) * 5);
933
+ }
889
934
  :where(.og-root).h-6,:where(.og-root) .h-6 {
890
935
  height: calc(var(--spacing) * 6);
891
936
  }
@@ -937,6 +982,9 @@
937
982
  :where(.og-root).max-h-20,:where(.og-root) .max-h-20 {
938
983
  max-height: calc(var(--spacing) * 20);
939
984
  }
985
+ :where(.og-root).max-h-28,:where(.og-root) .max-h-28 {
986
+ max-height: calc(var(--spacing) * 28);
987
+ }
940
988
  :where(.og-root).max-h-48,:where(.og-root) .max-h-48 {
941
989
  max-height: calc(var(--spacing) * 48);
942
990
  }
@@ -952,6 +1000,9 @@
952
1000
  :where(.og-root).max-h-80,:where(.og-root) .max-h-80 {
953
1001
  max-height: calc(var(--spacing) * 80);
954
1002
  }
1003
+ :where(.og-root).max-h-\[32rem\],:where(.og-root) .max-h-\[32rem\] {
1004
+ max-height: 32rem;
1005
+ }
955
1006
  :where(.og-root).max-h-\[82vh\],:where(.og-root) .max-h-\[82vh\] {
956
1007
  max-height: 82vh;
957
1008
  }
@@ -970,6 +1021,9 @@
970
1021
  :where(.og-root).max-h-\[min\(30rem\,60dvh\)\],:where(.og-root) .max-h-\[min\(30rem\,60dvh\)\] {
971
1022
  max-height: min(30rem, 60dvh);
972
1023
  }
1024
+ :where(.og-root).max-h-\[min\(32rem\,70vh\)\],:where(.og-root) .max-h-\[min\(32rem\,70vh\)\] {
1025
+ max-height: min(32rem, 70vh);
1026
+ }
973
1027
  :where(.og-root).max-h-full,:where(.og-root) .max-h-full {
974
1028
  max-height: 100%;
975
1029
  }
@@ -985,12 +1039,21 @@
985
1039
  :where(.og-root).min-h-9,:where(.og-root) .min-h-9 {
986
1040
  min-height: calc(var(--spacing) * 9);
987
1041
  }
1042
+ :where(.og-root).min-h-10,:where(.og-root) .min-h-10 {
1043
+ min-height: calc(var(--spacing) * 10);
1044
+ }
988
1045
  :where(.og-root).min-h-11,:where(.og-root) .min-h-11 {
989
1046
  min-height: calc(var(--spacing) * 11);
990
1047
  }
991
1048
  :where(.og-root).min-h-14,:where(.og-root) .min-h-14 {
992
1049
  min-height: calc(var(--spacing) * 14);
993
1050
  }
1051
+ :where(.og-root).min-h-56,:where(.og-root) .min-h-56 {
1052
+ min-height: calc(var(--spacing) * 56);
1053
+ }
1054
+ :where(.og-root).min-h-72,:where(.og-root) .min-h-72 {
1055
+ min-height: calc(var(--spacing) * 72);
1056
+ }
994
1057
  :where(.og-root).min-h-\[var\(--og-session-chrome-chip-min-height\)\],:where(.og-root) .min-h-\[var\(--og-session-chrome-chip-min-height\)\] {
995
1058
  min-height: var(--og-session-chrome-chip-min-height);
996
1059
  }
@@ -1012,9 +1075,15 @@
1012
1075
  :where(.og-root).w-3,:where(.og-root) .w-3 {
1013
1076
  width: calc(var(--spacing) * 3);
1014
1077
  }
1078
+ :where(.og-root).w-5,:where(.og-root) .w-5 {
1079
+ width: calc(var(--spacing) * 5);
1080
+ }
1015
1081
  :where(.og-root).w-6,:where(.og-root) .w-6 {
1016
1082
  width: calc(var(--spacing) * 6);
1017
1083
  }
1084
+ :where(.og-root).w-7,:where(.og-root) .w-7 {
1085
+ width: calc(var(--spacing) * 7);
1086
+ }
1018
1087
  :where(.og-root).w-11,:where(.og-root) .w-11 {
1019
1088
  width: calc(var(--spacing) * 11);
1020
1089
  }
@@ -1024,6 +1093,9 @@
1024
1093
  :where(.og-root).w-48,:where(.og-root) .w-48 {
1025
1094
  width: calc(var(--spacing) * 48);
1026
1095
  }
1096
+ :where(.og-root).w-64,:where(.og-root) .w-64 {
1097
+ width: calc(var(--spacing) * 64);
1098
+ }
1027
1099
  :where(.og-root).w-72,:where(.og-root) .w-72 {
1028
1100
  width: calc(var(--spacing) * 72);
1029
1101
  }
@@ -1042,6 +1114,9 @@
1042
1114
  :where(.og-root).w-\[clamp\(12rem\,28\%\,15rem\)\],:where(.og-root) .w-\[clamp\(12rem\,28\%\,15rem\)\] {
1043
1115
  width: clamp(12rem, 28%, 15rem);
1044
1116
  }
1117
+ :where(.og-root).w-\[min\(25rem\,calc\(100vw-1\.5rem\)\)\],:where(.og-root) .w-\[min\(25rem\,calc\(100vw-1\.5rem\)\)\] {
1118
+ width: min(25rem, calc(100vw - 1.5rem));
1119
+ }
1045
1120
  :where(.og-root).w-\[min\(36rem\,calc\(100vw-2rem\)\)\],:where(.og-root) .w-\[min\(36rem\,calc\(100vw-2rem\)\)\] {
1046
1121
  width: min(36rem, calc(100vw - 2rem));
1047
1122
  }
@@ -1075,6 +1150,15 @@
1075
1150
  :where(.og-root).max-w-44,:where(.og-root) .max-w-44 {
1076
1151
  max-width: calc(var(--spacing) * 44);
1077
1152
  }
1153
+ :where(.og-root).max-w-48,:where(.og-root) .max-w-48 {
1154
+ max-width: calc(var(--spacing) * 48);
1155
+ }
1156
+ :where(.og-root).max-w-52,:where(.og-root) .max-w-52 {
1157
+ max-width: calc(var(--spacing) * 52);
1158
+ }
1159
+ :where(.og-root).max-w-56,:where(.og-root) .max-w-56 {
1160
+ max-width: calc(var(--spacing) * 56);
1161
+ }
1078
1162
  :where(.og-root).max-w-64,:where(.og-root) .max-w-64 {
1079
1163
  max-width: calc(var(--spacing) * 64);
1080
1164
  }
@@ -1123,6 +1207,15 @@
1123
1207
  :where(.og-root).min-w-0,:where(.og-root) .min-w-0 {
1124
1208
  min-width: calc(var(--spacing) * 0);
1125
1209
  }
1210
+ :where(.og-root).min-w-11,:where(.og-root) .min-w-11 {
1211
+ min-width: calc(var(--spacing) * 11);
1212
+ }
1213
+ :where(.og-root).min-w-16,:where(.og-root) .min-w-16 {
1214
+ min-width: calc(var(--spacing) * 16);
1215
+ }
1216
+ :where(.og-root).min-w-24,:where(.og-root) .min-w-24 {
1217
+ min-width: calc(var(--spacing) * 24);
1218
+ }
1126
1219
  :where(.og-root).min-w-\[8rem\],:where(.og-root) .min-w-\[8rem\] {
1127
1220
  min-width: 8rem;
1128
1221
  }
@@ -1132,6 +1225,9 @@
1132
1225
  :where(.og-root).min-w-\[160px\],:where(.og-root) .min-w-\[160px\] {
1133
1226
  min-width: 160px;
1134
1227
  }
1228
+ :where(.og-root).min-w-full,:where(.og-root) .min-w-full {
1229
+ min-width: 100%;
1230
+ }
1135
1231
  :where(.og-root).flex-1,:where(.og-root) .flex-1 {
1136
1232
  flex: 1;
1137
1233
  }
@@ -1226,12 +1322,18 @@
1226
1322
  :where(.og-root).cursor-not-allowed,:where(.og-root) .cursor-not-allowed {
1227
1323
  cursor: not-allowed;
1228
1324
  }
1325
+ :where(.og-root).cursor-nwse-resize,:where(.og-root) .cursor-nwse-resize {
1326
+ cursor: nwse-resize;
1327
+ }
1229
1328
  :where(.og-root).cursor-pointer,:where(.og-root) .cursor-pointer {
1230
1329
  cursor: pointer;
1231
1330
  }
1232
1331
  :where(.og-root).cursor-row-resize,:where(.og-root) .cursor-row-resize {
1233
1332
  cursor: row-resize;
1234
1333
  }
1334
+ :where(.og-root).cursor-text,:where(.og-root) .cursor-text {
1335
+ cursor: text;
1336
+ }
1235
1337
  :where(.og-root).touch-none,:where(.og-root) .touch-none {
1236
1338
  touch-action: none;
1237
1339
  }
@@ -1340,6 +1442,13 @@
1340
1442
  :where(.og-root).gap-px,:where(.og-root) .gap-px {
1341
1443
  gap: 1px;
1342
1444
  }
1445
+ :where(.og-root).space-y-0\.5,:where(.og-root) .space-y-0\.5 {
1446
+ :where(& > :not(:last-child)) {
1447
+ --tw-space-y-reverse: 0;
1448
+ margin-block-start: calc(calc(var(--spacing) * 0.5) * var(--tw-space-y-reverse));
1449
+ margin-block-end: calc(calc(var(--spacing) * 0.5) * calc(1 - var(--tw-space-y-reverse)));
1450
+ }
1451
+ }
1343
1452
  :where(.og-root).space-y-1,:where(.og-root) .space-y-1 {
1344
1453
  :where(& > :not(:last-child)) {
1345
1454
  --tw-space-y-reverse: 0;
@@ -1361,6 +1470,13 @@
1361
1470
  margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));
1362
1471
  }
1363
1472
  }
1473
+ :where(.og-root).space-y-3,:where(.og-root) .space-y-3 {
1474
+ :where(& > :not(:last-child)) {
1475
+ --tw-space-y-reverse: 0;
1476
+ margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));
1477
+ margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));
1478
+ }
1479
+ }
1364
1480
  :where(.og-root).space-y-4,:where(.og-root) .space-y-4 {
1365
1481
  :where(& > :not(:last-child)) {
1366
1482
  --tw-space-y-reverse: 0;
@@ -1462,6 +1578,9 @@
1462
1578
  :where(.og-root).rounded-md,:where(.og-root) .rounded-md {
1463
1579
  border-radius: var(--og-radius-md);
1464
1580
  }
1581
+ :where(.og-root).rounded-none,:where(.og-root) .rounded-none {
1582
+ border-radius: 0;
1583
+ }
1465
1584
  :where(.og-root).rounded-og-lg,:where(.og-root) .rounded-og-lg {
1466
1585
  border-radius: var(--og-radius-lg);
1467
1586
  }
@@ -1480,6 +1599,10 @@
1480
1599
  :where(.og-root).rounded-xl,:where(.og-root) .rounded-xl {
1481
1600
  border-radius: var(--og-radius-xl);
1482
1601
  }
1602
+ :where(.og-root).rounded-t-og-sm,:where(.og-root) .rounded-t-og-sm {
1603
+ border-top-left-radius: var(--og-radius-sm);
1604
+ border-top-right-radius: var(--og-radius-sm);
1605
+ }
1483
1606
  :where(.og-root).rounded-l-og-md,:where(.og-root) .rounded-l-og-md {
1484
1607
  border-top-left-radius: var(--og-radius-md);
1485
1608
  border-bottom-left-radius: var(--og-radius-md);
@@ -1503,6 +1626,10 @@
1503
1626
  border-style: var(--tw-border-style);
1504
1627
  border-width: 0px;
1505
1628
  }
1629
+ :where(.og-root).border-2,:where(.og-root) .border-2 {
1630
+ border-style: var(--tw-border-style);
1631
+ border-width: 2px;
1632
+ }
1506
1633
  :where(.og-root).border-t,:where(.og-root) .border-t {
1507
1634
  border-top-style: var(--tw-border-style);
1508
1635
  border-top-width: 1px;
@@ -1515,6 +1642,10 @@
1515
1642
  border-bottom-style: var(--tw-border-style);
1516
1643
  border-bottom-width: 1px;
1517
1644
  }
1645
+ :where(.og-root).border-b-0,:where(.og-root) .border-b-0 {
1646
+ border-bottom-style: var(--tw-border-style);
1647
+ border-bottom-width: 0px;
1648
+ }
1518
1649
  :where(.og-root).border-l,:where(.og-root) .border-l {
1519
1650
  border-left-style: var(--tw-border-style);
1520
1651
  border-left-width: 1px;
@@ -1741,6 +1872,9 @@
1741
1872
  border-color: color-mix(in oklab, var(--color-white) 15%, transparent);
1742
1873
  }
1743
1874
  }
1875
+ :where(.og-root).bg-black,:where(.og-root) .bg-black {
1876
+ background-color: var(--color-black);
1877
+ }
1744
1878
  :where(.og-root).bg-black\/5,:where(.og-root) .bg-black\/5 {
1745
1879
  background-color: color-mix(in srgb, #000 5%, transparent);
1746
1880
  @supports (color: color-mix(in lab, red, red)) {
@@ -1759,6 +1893,12 @@
1759
1893
  background-color: color-mix(in oklab, var(--color-black) 60%, transparent);
1760
1894
  }
1761
1895
  }
1896
+ :where(.og-root).bg-black\/65,:where(.og-root) .bg-black\/65 {
1897
+ background-color: color-mix(in srgb, #000 65%, transparent);
1898
+ @supports (color: color-mix(in lab, red, red)) {
1899
+ background-color: color-mix(in oklab, var(--color-black) 65%, transparent);
1900
+ }
1901
+ }
1762
1902
  :where(.og-root).bg-black\/90,:where(.og-root) .bg-black\/90 {
1763
1903
  background-color: color-mix(in srgb, #000 90%, transparent);
1764
1904
  @supports (color: color-mix(in lab, red, red)) {
@@ -1852,6 +1992,12 @@
1852
1992
  :where(.og-root).bg-og-status-failed,:where(.og-root) .bg-og-status-failed {
1853
1993
  background-color: var(--og-color-status-failed);
1854
1994
  }
1995
+ :where(.og-root).bg-og-status-failed\/5,:where(.og-root) .bg-og-status-failed\/5 {
1996
+ background-color: var(--og-color-status-failed);
1997
+ @supports (color: color-mix(in lab, red, red)) {
1998
+ background-color: color-mix(in oklab, var(--og-color-status-failed) 5%, transparent);
1999
+ }
2000
+ }
1855
2001
  :where(.og-root).bg-og-status-failed\/8,:where(.og-root) .bg-og-status-failed\/8 {
1856
2002
  background-color: var(--og-color-status-failed);
1857
2003
  @supports (color: color-mix(in lab, red, red)) {
@@ -1909,12 +2055,6 @@
1909
2055
  background-color: color-mix(in oklab, var(--og-color-status-running) 10%, transparent);
1910
2056
  }
1911
2057
  }
1912
- :where(.og-root).bg-og-status-running\/20,:where(.og-root) .bg-og-status-running\/20 {
1913
- background-color: var(--og-color-status-running);
1914
- @supports (color: color-mix(in lab, red, red)) {
1915
- background-color: color-mix(in oklab, var(--og-color-status-running) 20%, transparent);
1916
- }
1917
- }
1918
2058
  :where(.og-root).bg-og-status-waiting,:where(.og-root) .bg-og-status-waiting {
1919
2059
  background-color: var(--og-color-status-waiting);
1920
2060
  }
@@ -1978,6 +2118,12 @@
1978
2118
  background-color: color-mix(in oklab, var(--og-color-surface-2) 40%, transparent);
1979
2119
  }
1980
2120
  }
2121
+ :where(.og-root).bg-og-surface-2\/60,:where(.og-root) .bg-og-surface-2\/60 {
2122
+ background-color: var(--og-color-surface-2);
2123
+ @supports (color: color-mix(in lab, red, red)) {
2124
+ background-color: color-mix(in oklab, var(--og-color-surface-2) 60%, transparent);
2125
+ }
2126
+ }
1981
2127
  :where(.og-root).bg-og-surface-2\/70,:where(.og-root) .bg-og-surface-2\/70 {
1982
2128
  background-color: var(--og-color-surface-2);
1983
2129
  @supports (color: color-mix(in lab, red, red)) {
@@ -1993,6 +2139,12 @@
1993
2139
  background-color: color-mix(in oklab, var(--og-color-surface-3) 50%, transparent);
1994
2140
  }
1995
2141
  }
2142
+ :where(.og-root).bg-og-surface-3\/60,:where(.og-root) .bg-og-surface-3\/60 {
2143
+ background-color: var(--og-color-surface-3);
2144
+ @supports (color: color-mix(in lab, red, red)) {
2145
+ background-color: color-mix(in oklab, var(--og-color-surface-3) 60%, transparent);
2146
+ }
2147
+ }
1996
2148
  :where(.og-root).bg-og-surface-3\/70,:where(.og-root) .bg-og-surface-3\/70 {
1997
2149
  background-color: var(--og-color-surface-3);
1998
2150
  @supports (color: color-mix(in lab, red, red)) {
@@ -2056,6 +2208,9 @@
2056
2208
  :where(.og-root).bg-transparent,:where(.og-root) .bg-transparent {
2057
2209
  background-color: transparent;
2058
2210
  }
2211
+ :where(.og-root).bg-white,:where(.og-root) .bg-white {
2212
+ background-color: var(--color-white);
2213
+ }
2059
2214
  :where(.og-root).bg-gradient-to-t,:where(.og-root) .bg-gradient-to-t {
2060
2215
  --tw-gradient-position: to top in oklab;
2061
2216
  background-image: linear-gradient(var(--tw-gradient-stops));
@@ -2127,6 +2282,9 @@
2127
2282
  :where(.og-root).p-6,:where(.og-root) .p-6 {
2128
2283
  padding: calc(var(--spacing) * 6);
2129
2284
  }
2285
+ :where(.og-root).p-8,:where(.og-root) .p-8 {
2286
+ padding: calc(var(--spacing) * 8);
2287
+ }
2130
2288
  :where(.og-root).p-\[var\(--og-model-picker-menu-padding\)\],:where(.og-root) .p-\[var\(--og-model-picker-menu-padding\)\] {
2131
2289
  padding: var(--og-model-picker-menu-padding);
2132
2290
  }
@@ -2406,6 +2564,10 @@
2406
2564
  --tw-tracking: 0.08em;
2407
2565
  letter-spacing: 0.08em;
2408
2566
  }
2567
+ :where(.og-root).tracking-\[0\.12em\],:where(.og-root) .tracking-\[0\.12em\] {
2568
+ --tw-tracking: 0.12em;
2569
+ letter-spacing: 0.12em;
2570
+ }
2409
2571
  :where(.og-root).tracking-\[0\.25em\],:where(.og-root) .tracking-\[0\.25em\] {
2410
2572
  --tw-tracking: 0.25em;
2411
2573
  letter-spacing: 0.25em;
@@ -2543,6 +2705,12 @@
2543
2705
  color: color-mix(in oklab, var(--color-white) 70%, transparent);
2544
2706
  }
2545
2707
  }
2708
+ :where(.og-root).text-white\/80,:where(.og-root) .text-white\/80 {
2709
+ color: color-mix(in srgb, #fff 80%, transparent);
2710
+ @supports (color: color-mix(in lab, red, red)) {
2711
+ color: color-mix(in oklab, var(--color-white) 80%, transparent);
2712
+ }
2713
+ }
2546
2714
  :where(.og-root).capitalize,:where(.og-root) .capitalize {
2547
2715
  text-transform: capitalize;
2548
2716
  }
@@ -2569,6 +2737,9 @@
2569
2737
  :where(.og-root).underline,:where(.og-root) .underline {
2570
2738
  text-decoration-line: underline;
2571
2739
  }
2740
+ :where(.og-root).decoration-og-border,:where(.og-root) .decoration-og-border {
2741
+ text-decoration-color: var(--og-color-border);
2742
+ }
2572
2743
  :where(.og-root).decoration-og-border-strong,:where(.og-root) .decoration-og-border-strong {
2573
2744
  text-decoration-color: var(--og-color-border-strong);
2574
2745
  }
@@ -2624,6 +2795,10 @@
2624
2795
  --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
2625
2796
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2626
2797
  }
2798
+ :where(.og-root).shadow-none,:where(.og-root) .shadow-none {
2799
+ --tw-shadow: 0 0 #0000;
2800
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2801
+ }
2627
2802
  :where(.og-root).shadow-og-glow,:where(.og-root) .shadow-og-glow {
2628
2803
  --tw-shadow: var(--_og-shadow-glow);
2629
2804
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
@@ -3228,6 +3403,14 @@
3228
3403
  }
3229
3404
  }
3230
3405
  }
3406
+ :where(.og-root).focus-within\:border-og-accent\/60,:where(.og-root) .focus-within\:border-og-accent\/60 {
3407
+ &:focus-within {
3408
+ border-color: var(--og-color-accent);
3409
+ @supports (color: color-mix(in lab, red, red)) {
3410
+ border-color: color-mix(in oklab, var(--og-color-accent) 60%, transparent);
3411
+ }
3412
+ }
3413
+ }
3231
3414
  :where(.og-root).focus-within\:opacity-100,:where(.og-root) .focus-within\:opacity-100 {
3232
3415
  &:focus-within {
3233
3416
  opacity: 100%;
@@ -3623,12 +3806,28 @@
3623
3806
  color: var(--color-fg);
3624
3807
  }
3625
3808
  }
3809
+ :where(.og-root).focus\:opacity-100,:where(.og-root) .focus\:opacity-100 {
3810
+ &:focus {
3811
+ opacity: 100%;
3812
+ }
3813
+ }
3814
+ :where(.og-root).focus\:ring-1,:where(.og-root) .focus\:ring-1 {
3815
+ &:focus {
3816
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
3817
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
3818
+ }
3819
+ }
3626
3820
  :where(.og-root).focus\:ring-2,:where(.og-root) .focus\:ring-2 {
3627
3821
  &:focus {
3628
3822
  --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
3629
3823
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
3630
3824
  }
3631
3825
  }
3826
+ :where(.og-root).focus\:ring-og-accent,:where(.og-root) .focus\:ring-og-accent {
3827
+ &:focus {
3828
+ --tw-ring-color: var(--og-color-accent);
3829
+ }
3830
+ }
3632
3831
  :where(.og-root).focus\:ring-og-accent-soft,:where(.og-root) .focus\:ring-og-accent-soft {
3633
3832
  &:focus {
3634
3833
  --tw-ring-color: var(--_og-color-accent-soft);
@@ -3718,6 +3917,11 @@
3718
3917
  }
3719
3918
  }
3720
3919
  }
3920
+ :where(.og-root).focus-visible\:ring-og-status-waiting,:where(.og-root) .focus-visible\:ring-og-status-waiting {
3921
+ &:focus-visible {
3922
+ --tw-ring-color: var(--og-color-status-waiting);
3923
+ }
3924
+ }
3721
3925
  :where(.og-root).focus-visible\:ring-ring\/40,:where(.og-root) .focus-visible\:ring-ring\/40 {
3722
3926
  &:focus-visible {
3723
3927
  --tw-ring-color: var(--color-brand);
@@ -3797,6 +4001,16 @@
3797
4001
  color: var(--og-color-fg-subtle);
3798
4002
  }
3799
4003
  }
4004
+ :where(.og-root).disabled\:opacity-30,:where(.og-root) .disabled\:opacity-30 {
4005
+ &:disabled {
4006
+ opacity: 30%;
4007
+ }
4008
+ }
4009
+ :where(.og-root).disabled\:opacity-35,:where(.og-root) .disabled\:opacity-35 {
4010
+ &:disabled {
4011
+ opacity: 35%;
4012
+ }
4013
+ }
3800
4014
  :where(.og-root).disabled\:opacity-40,:where(.og-root) .disabled\:opacity-40 {
3801
4015
  &:disabled {
3802
4016
  opacity: 40%;
@@ -4305,6 +4519,11 @@
4305
4519
  padding-inline: calc(var(--spacing) * 3);
4306
4520
  }
4307
4521
  }
4522
+ :where(.og-root).sm\:px-4,:where(.og-root) .sm\:px-4 {
4523
+ @media (width >= 40rem) {
4524
+ padding-inline: calc(var(--spacing) * 4);
4525
+ }
4526
+ }
4308
4527
  :where(.og-root).sm\:px-6,:where(.og-root) .sm\:px-6 {
4309
4528
  @media (width >= 40rem) {
4310
4529
  padding-inline: calc(var(--spacing) * 6);
@@ -4591,15 +4810,15 @@
4591
4810
  }
4592
4811
  @supports (color: color-mix(in lab, red, red)) {
4593
4812
  :where(.og-root) {
4594
- --og-color-accent-soft: color-mix(in oklch, var(--og-color-accent) 16%, transparent);
4595
- --og-color-diff-add-bg: color-mix(in oklch, var(--og-color-status-idle) 14%, transparent);
4596
- --og-color-diff-del-bg: color-mix(in oklch, var(--og-color-status-failed) 14%, transparent);
4597
- --og-shadow-glow: 0 0 24px color-mix(in oklch, var(--og-color-accent) 18%, transparent);
4598
- --og-session-chrome-surface: color-mix(in oklch, var(--og-color-surface-2) 82%, transparent);
4599
- --og-session-chrome-surface-open: color-mix(in oklch, var(--og-color-surface-2) 92%, transparent);
4600
- --og-session-chrome-border: color-mix(in oklch, var(--og-color-border) 85%, transparent);
4601
- --og-session-chrome-highlight-ring: color-mix(in oklch, var(--og-color-fg) 16%, transparent);
4602
- --og-session-chrome-row-hover: color-mix(in oklch, var(--og-color-surface-3) 55%, transparent);
4813
+ --_og-color-accent-soft: var(--og-color-accent-soft, color-mix(in oklch, var(--og-color-accent) 16%, transparent));
4814
+ --_og-color-diff-add-bg: var(--og-color-diff-add-bg, color-mix(in oklch, var(--og-color-status-idle) 14%, transparent));
4815
+ --_og-color-diff-del-bg: var(--og-color-diff-del-bg, color-mix(in oklch, var(--og-color-status-failed) 14%, transparent));
4816
+ --_og-shadow-glow: var(--og-shadow-glow, 0 0 24px color-mix(in oklch, var(--og-color-accent) 18%, transparent));
4817
+ --_og-session-chrome-surface: var(--og-session-chrome-surface, color-mix(in oklch, var(--og-color-surface-2) 82%, transparent));
4818
+ --_og-session-chrome-surface-open: var(--og-session-chrome-surface-open, color-mix(in oklch, var(--og-color-surface-2) 92%, transparent));
4819
+ --_og-session-chrome-border: var(--og-session-chrome-border, color-mix(in oklch, var(--og-color-border) 85%, transparent));
4820
+ --_og-session-chrome-highlight-ring: var(--og-session-chrome-highlight-ring, color-mix(in oklch, var(--og-color-fg) 16%, transparent));
4821
+ --_og-session-chrome-row-hover: var(--og-session-chrome-row-hover, color-mix(in oklch, var(--og-color-surface-3) 55%, transparent));
4603
4822
  }
4604
4823
  }
4605
4824
  :where([data-og-density="compact"]):where(.og-root),:where([data-og-density="compact"]):has(:where(.og-root)),:where(.og-root) :where([data-og-density="compact"]),:where( .og-density-compact):where(.og-root),:where( .og-density-compact):has(:where(.og-root)),:where(.og-root) :where( .og-density-compact) {
@@ -4879,6 +5098,14 @@
4879
5098
  animation-delay: 0ms !important;
4880
5099
  }
4881
5100
  }
5101
+ @media (max-width: 39.999rem) {
5102
+ :where(.og-root).og-composer-footer:has([data-transcription-capturing]) .og-composer-controls > :not([data-transcription-capturing]),:where(.og-root) .og-composer-footer:has([data-transcription-capturing]) .og-composer-controls > :not([data-transcription-capturing]) {
5103
+ display: none;
5104
+ }
5105
+ :where(.og-root).og-composer-footer:has([data-transcription-capturing]) .og-composer-actions,:where(.og-root) .og-composer-footer:has([data-transcription-capturing]) .og-composer-actions {
5106
+ display: none;
5107
+ }
5108
+ }
4882
5109
  @media (forced-colors: active) {
4883
5110
  :where(.og-root) {
4884
5111
  --og-color-bg: Canvas;
@@ -5036,6 +5263,12 @@
5036
5263
  :where(.og-root)[data-og-responsive-basis="container"] .og-realtime-control[data-model-menu="split-desktop"] .og-realtime-model-trigger,:where(.og-root) [data-og-responsive-basis="container"] .og-realtime-control[data-model-menu="split-desktop"] .og-realtime-model-trigger {
5037
5264
  display: none;
5038
5265
  }
5266
+ :where(.og-root)[data-og-responsive-basis="container"] .og-composer-footer:has([data-transcription-capturing]) .og-composer-controls > :not([data-transcription-capturing]),:where(.og-root) [data-og-responsive-basis="container"] .og-composer-footer:has([data-transcription-capturing]) .og-composer-controls > :not([data-transcription-capturing]) {
5267
+ display: none;
5268
+ }
5269
+ :where(.og-root)[data-og-responsive-basis="container"] .og-composer-footer:has([data-transcription-capturing]) .og-composer-actions,:where(.og-root) [data-og-responsive-basis="container"] .og-composer-footer:has([data-transcription-capturing]) .og-composer-actions {
5270
+ display: none;
5271
+ }
5039
5272
  }
5040
5273
  @container og-composer (max-width: 24.999rem) {
5041
5274
  :where(.og-root).og-composer[data-og-responsive-basis="container"] .og-composer-resume-label-long,:where(.og-root) .og-composer[data-og-responsive-basis="container"] .og-composer-resume-label-long {
package/styles/index.css CHANGED
@@ -475,6 +475,21 @@
475
475
  }
476
476
  }
477
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
+
478
493
  @media (forced-colors: active) {
479
494
  /* Forced-colors can replace a painted background with Canvas while custom
480
495
  properties retain their authored dark/light values. That combination is
@@ -147,6 +147,19 @@
147
147
  .og-realtime-model-trigger {
148
148
  display: none;
149
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
+ }
150
163
  }
151
164
 
152
165
  @container og-composer (max-width: 24.999rem) {
@@ -193,4 +206,3 @@
193
206
  );
194
207
  max-width: calc(100vw - 1rem);
195
208
  }
196
-
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/session-context.ts"],"sourcesContent":["import type { StreamConnectionState, WorkspaceControlEvent } from \"@opengeni/sdk\";\nimport { createContext, useContext } from \"react\";\nimport type {\n EmbeddedFileAttachmentClientLike,\n EmbeddedGoalClientLike,\n EmbeddedHumanInputSessionClientLike,\n EmbeddedRealtimeSessionClientLike,\n EmbeddedSessionClientLike,\n EmbeddedSessionLineageClientLike,\n EmbeddedSessionMcpApprovalPolicyClientLike,\n EmbeddedSessionReadClientLike,\n SessionClientLike,\n} from \"./client\";\n\nexport type OpenGeniContextValue = {\n client: SessionClientLike;\n workspaceId: string;\n workspaceControlEvent: WorkspaceControlEvent | null;\n workspaceControlConnectionState: StreamConnectionState | \"idle\" | \"error\";\n registerSessionReconciler: (\n sessionId: string,\n key: string,\n reconcile: () => Promise<void>,\n ) => () => void;\n reconcileSession: (sessionId: string) => Promise<void>;\n};\n\nexport const OpenGeniContext = createContext<OpenGeniContextValue | null>(null);\n\nconst NOOP_REGISTER_RECONCILER: OpenGeniContextValue[\"registerSessionReconciler\"] = () => () =>\n undefined;\nconst NOOP_RECONCILE_SESSION: OpenGeniContextValue[\"reconcileSession\"] = async () => undefined;\n\nexport type ClientOverride = {\n client?: SessionClientLike | undefined;\n workspaceId?: string | undefined;\n};\n\nexport type EmbeddedSessionClientOverride = {\n client?: EmbeddedSessionClientLike | undefined;\n workspaceId?: string | undefined;\n};\n\nexport type EmbeddedHumanInputClientOverride = {\n client?: EmbeddedHumanInputSessionClientLike | undefined;\n workspaceId?: string | undefined;\n};\n\nexport type EmbeddedSessionMcpApprovalPolicyClientOverride = {\n client?: EmbeddedSessionMcpApprovalPolicyClientLike | undefined;\n workspaceId?: string | undefined;\n};\n\nexport type EmbeddedSessionReadClientOverride = {\n client?: EmbeddedSessionReadClientLike | undefined;\n workspaceId?: string | undefined;\n};\n\nexport type EmbeddedRealtimeSessionClientOverride = {\n client?: EmbeddedRealtimeSessionClientLike | undefined;\n workspaceId?: string | undefined;\n};\n\nexport type EmbeddedGoalClientOverride = {\n client?: EmbeddedGoalClientLike | undefined;\n workspaceId?: string | undefined;\n};\n\nexport type EmbeddedSessionLineageClientOverride = {\n client?: EmbeddedSessionLineageClientLike | undefined;\n workspaceId?: string | undefined;\n};\n\nexport type EmbeddedFileAttachmentClientOverride = {\n client?: EmbeddedFileAttachmentClientLike | undefined;\n workspaceId?: string | undefined;\n};\n\nexport type EmbeddedSessionContextValue = Omit<OpenGeniContextValue, \"client\"> & {\n client: EmbeddedSessionClientLike;\n};\n\ntype EmbeddedClientOverride<TClient> = {\n client?: TClient | undefined;\n workspaceId?: string | undefined;\n};\n\ntype EmbeddedClientContextValue<TClient> = Omit<OpenGeniContextValue, \"client\"> & {\n client: TClient;\n};\n\nfunction useEmbeddedClientRefinement<TClient extends object>(\n override: EmbeddedClientOverride<TClient>,\n requiredMethods: readonly string[],\n hookName: string,\n): EmbeddedClientContextValue<TClient> {\n const context = useContext(OpenGeniContext);\n const candidate = override.client ?? context?.client;\n const workspaceId = override.workspaceId ?? context?.workspaceId;\n if (!candidate || !workspaceId) {\n throw new Error(\n \"@opengeni/react: no OpenGeni client/workspace available. Wrap the tree in <OpenGeniProvider> or pass { client, workspaceId } to the hook.\",\n );\n }\n const methods = candidate as Record<string, unknown>;\n const missing = requiredMethods.filter((method) => typeof methods[method] !== \"function\");\n if (missing.length > 0) {\n throw new Error(\n `@opengeni/react: ${hookName} requires client method${missing.length === 1 ? \"\" : \"s\"} ${missing.join(\", \")}.`,\n );\n }\n return {\n client: candidate as TClient,\n workspaceId,\n workspaceControlEvent: context?.workspaceControlEvent ?? null,\n workspaceControlConnectionState: context?.workspaceControlConnectionState ?? \"idle\",\n registerSessionReconciler: context?.registerSessionReconciler ?? NOOP_REGISTER_RECONCILER,\n reconcileSession: context?.reconcileSession ?? NOOP_RECONCILE_SESSION,\n };\n}\n\nfunction eventClientMethods(override: object, directMethods: readonly string[]): readonly string[] {\n const hasSharedEventFeed =\n \"events\" in override && (override as { events?: unknown }).events !== undefined;\n return hasSharedEventFeed ? directMethods : [\"getSession\", \"streamEvents\", ...directMethods];\n}\n\n/** Resolve client + workspace from explicit overrides or the provider. */\nexport function useOpenGeni(override: ClientOverride = {}): OpenGeniContextValue {\n const context = useContext(OpenGeniContext);\n const client = override.client ?? context?.client;\n const workspaceId = override.workspaceId ?? context?.workspaceId;\n if (!client || !workspaceId) {\n throw new Error(\n \"@opengeni/react: no OpenGeni client/workspace available. Wrap the tree in <OpenGeniProvider> or pass { client, workspaceId } to the hook.\",\n );\n }\n return {\n client,\n workspaceId,\n workspaceControlEvent: context?.workspaceControlEvent ?? null,\n workspaceControlConnectionState: context?.workspaceControlConnectionState ?? \"idle\",\n registerSessionReconciler: context?.registerSessionReconciler ?? NOOP_REGISTER_RECONCILER,\n reconcileSession: context?.reconcileSession ?? NOOP_RECONCILE_SESSION,\n };\n}\n\n/**\n * Resolve the narrow client required by the session-only hooks. The full\n * provider client is structurally compatible, while an explicit host proxy\n * only needs to expose session/event/composer/queue/control operations.\n */\nexport function useEmbeddedSession(\n override: EmbeddedSessionClientOverride = {},\n): EmbeddedSessionContextValue {\n return useEmbeddedClientRefinement(\n override,\n [\n \"getSession\",\n \"listEvents\",\n \"streamEvents\",\n \"getComposerDraft\",\n \"saveComposerDraft\",\n \"sendMessage\",\n \"steerMessage\",\n \"getQueue\",\n \"moveQueueItem\",\n \"editQueueItem\",\n \"steerQueueItem\",\n \"deleteQueueItem\",\n \"pauseSession\",\n \"resumeSession\",\n \"sendApprovalDecision\",\n ],\n \"session hooks\",\n );\n}\n\n/** Resolve the exact client surface required by `useSession`. */\nexport function useEmbeddedSessionRead(\n override: EmbeddedSessionReadClientOverride = {},\n): EmbeddedClientContextValue<EmbeddedSessionReadClientLike> {\n return useEmbeddedClientRefinement(\n override,\n eventClientMethods(override, [\"getSession\", \"updateSession\"]),\n \"useSession\",\n );\n}\n\n/** Resolve the exact client surface required by `useGoal`. */\nexport function useEmbeddedGoal(\n override: EmbeddedGoalClientOverride = {},\n): EmbeddedClientContextValue<EmbeddedGoalClientLike> {\n return useEmbeddedClientRefinement(\n override,\n eventClientMethods(override, [\"getGoal\", \"updateGoal\", \"deleteGoal\"]),\n \"useGoal\",\n );\n}\n\n/** Resolve the exact client surface required by `useSessionLineage`. */\nexport function useEmbeddedSessionLineage(\n override: EmbeddedSessionLineageClientOverride = {},\n): EmbeddedClientContextValue<EmbeddedSessionLineageClientLike> {\n return useEmbeddedClientRefinement(\n override,\n eventClientMethods(override, [\"getSessionLineage\"]),\n \"useSessionLineage\",\n );\n}\n\n/** Resolve the exact client surface required by `useFileAttachments`. */\nexport function useEmbeddedFileAttachments(\n override: EmbeddedFileAttachmentClientOverride = {},\n): EmbeddedClientContextValue<EmbeddedFileAttachmentClientLike> {\n return useEmbeddedClientRefinement(override, [\"uploadFile\"], \"useFileAttachments\");\n}\n\n/**\n * Resolve the structured-input refinement without widening the baseline\n * session-only proxy contract.\n */\nexport function useEmbeddedHumanInputSession(override: EmbeddedHumanInputClientOverride = {}): Omit<\n EmbeddedSessionContextValue,\n \"client\"\n> & {\n client: EmbeddedHumanInputSessionClientLike;\n} {\n return useEmbeddedClientRefinement(\n override,\n eventClientMethods(override, [\"listHumanInputRequests\", \"submitHumanInputResponse\"]),\n \"useHumanInputRequests\",\n );\n}\n\n/** Resolve the approval-policy refinement without widening session-only hosts. */\nexport function useEmbeddedSessionMcpApprovalPolicy(\n override: EmbeddedSessionMcpApprovalPolicyClientOverride = {},\n): Omit<EmbeddedSessionContextValue, \"client\"> & {\n client: EmbeddedSessionMcpApprovalPolicyClientLike;\n} {\n return useEmbeddedClientRefinement(\n override,\n eventClientMethods(override, [\"getSession\", \"updateSessionMcpApprovalPolicy\"]),\n \"useSessionMcpApprovalPolicy\",\n );\n}\n\n/** Resolve the exact browser/API surface required by `@opengeni/react/realtime`. */\nexport function useEmbeddedRealtimeSession(\n override: EmbeddedRealtimeSessionClientOverride = {},\n): EmbeddedClientContextValue<EmbeddedRealtimeSessionClientLike> {\n // Preserve the existing lazy capability behavior: proxy/test clients may\n // implement only the methods reached by their selected model and lifecycle.\n // The exported structural type remains the complete embedding contract.\n return useEmbeddedClientRefinement(override, [], \"realtime hooks\");\n}\n\n/**\n * Resolve the client only — for hooks that are not workspace-scoped\n * (`useWorkspaces`, `useBillingUsage`).\n */\nexport function useOpenGeniClient(\n override: Pick<ClientOverride, \"client\"> = {},\n): SessionClientLike {\n const context = useContext(OpenGeniContext);\n const client = override.client ?? context?.client;\n if (!client) {\n throw new Error(\n \"@opengeni/react: no OpenGeni client available. Wrap the tree in <OpenGeniProvider> or pass { client } to the hook.\",\n );\n }\n return client;\n}\n"],"mappings":"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","names":[]}