@mcp-b/react-components 0.41.0 → 0.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/dist/{ThinkChatActivity-DyGHj01E.d.ts → ThinkChatActivity-CsDql-ER.d.ts} +3 -0
  2. package/dist/{WorkspaceFileView-D0yFwoDr.js → WorkspaceFileView-DwdXiKku.js} +15 -20
  3. package/dist/components/agents-sdk/AgentActivity.js +3 -2
  4. package/dist/components/agents-sdk/AgentChat.js +1 -0
  5. package/dist/components/agents-sdk/BrowserRunPanel.js +2 -1
  6. package/dist/components/agents-sdk/ManagerOffice.d.ts +39 -27
  7. package/dist/components/agents-sdk/ManagerOffice.js +80 -44
  8. package/dist/components/agents-sdk/McpPluginCatalog.js +4 -2
  9. package/dist/components/agents-sdk/ModelSelector.js +1 -1
  10. package/dist/components/agents-sdk/SubagentRunSelector.js +1 -1
  11. package/dist/components/agents-sdk/ThinkChat.d.ts +1 -1
  12. package/dist/components/agents-sdk/ThinkChat.js +1 -1
  13. package/dist/components/agents-sdk/ThinkChatActivity.d.ts +1 -1
  14. package/dist/components/agents-sdk/ThinkChatActivity.js +19 -5
  15. package/dist/components/agents-sdk/ThinkChatToolPanels.js +6 -2
  16. package/dist/components/agents-sdk/ThinkExecutionDetail.js +3 -1
  17. package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +1 -0
  18. package/dist/components/agents-sdk/ThinkFullApp.d.ts +40 -88
  19. package/dist/components/agents-sdk/ThinkFullApp.js +75 -124
  20. package/dist/components/agents-sdk/ThinkFullAppViewSwitch.d.ts +1 -1
  21. package/dist/components/agents-sdk/ThinkFullAppViewSwitch.js +1 -1
  22. package/dist/components/agents-sdk/ThinkRoutineDetail.js +1 -1
  23. package/dist/components/agents-sdk/ThinkRoutineLibrary.d.ts +7 -6
  24. package/dist/components/agents-sdk/ThinkRoutineLibrary.js +57 -65
  25. package/dist/components/agents-sdk/ThinkThreadPicker.js +2 -1
  26. package/dist/components/agents-sdk/WorkspaceExplorer.js +2 -1
  27. package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
  28. package/dist/components/ai-sdk/MessageScroller.js +2 -1
  29. package/dist/components/ai-sdk/MessageScrollerVirtual.js +1 -0
  30. package/dist/components/ai-sdk/PromptInput.js +20 -14
  31. package/dist/components/extension/ChatGptSignInScreen.js +1 -0
  32. package/dist/components/foundations/ToggleGroup.d.ts +79 -1
  33. package/dist/components/foundations/ToggleGroup.js +1 -1
  34. package/dist/components/foundations/Toolbar.d.ts +151 -1
  35. package/dist/components/general-purpose/AppFrame.js +1 -0
  36. package/dist/components/general-purpose/AppTopBar.d.ts +96 -1
  37. package/dist/components/general-purpose/PricingBillingToggle.js +1 -1
  38. package/dist/components/general-purpose/PricingUsageCalculator.js +1 -1
  39. package/dist/components/general-purpose/ResizableSidePanel.d.ts +8 -0
  40. package/dist/components/general-purpose/ResizableSidePanel.js +3 -2
  41. package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +59 -49
  42. package/dist/components/general-purpose/ResponsiveSidebarShell.js +74 -74
  43. package/dist/components/general-purpose/WebPreview.d.ts +3 -0
  44. package/dist/components/general-purpose/WebPreview.js +2 -2
  45. package/dist/components/nanites/AgentToolDetail.js +4 -3
  46. package/dist/styles/accordion.css +1 -0
  47. package/dist/styles/action-guide.css +8 -7
  48. package/dist/styles/activity-header.css +13 -39
  49. package/dist/styles/activity.css +40 -55
  50. package/dist/styles/agent-attention.css +14 -14
  51. package/dist/styles/agent-chat.css +62 -45
  52. package/dist/styles/agent-connection.css +10 -4
  53. package/dist/styles/agent-tool-detail.css +4 -4
  54. package/dist/styles/alert-dialog.css +4 -4
  55. package/dist/styles/app-frame.css +1 -3
  56. package/dist/styles/app-top-bar.css +5 -9
  57. package/dist/styles/approval.css +1 -0
  58. package/dist/styles/artifact.css +6 -6
  59. package/dist/styles/attachment-preview.css +5 -4
  60. package/dist/styles/browser-replay.css +6 -6
  61. package/dist/styles/browser-run-panel.css +1 -0
  62. package/dist/styles/button.css +15 -6
  63. package/dist/styles/card.css +5 -5
  64. package/dist/styles/chatgpt-sign-in-screen.css +1 -1
  65. package/dist/styles/code-block.css +14 -13
  66. package/dist/styles/codex-model-selector.css +2 -0
  67. package/dist/styles/collapsible.css +1 -0
  68. package/dist/styles/commit.css +6 -6
  69. package/dist/styles/context.css +9 -9
  70. package/dist/styles/conversation-tab-picker.css +1 -1
  71. package/dist/styles/conversation.css +6 -8
  72. package/dist/styles/dialog.css +4 -4
  73. package/dist/styles/empty-state.css +3 -3
  74. package/dist/styles/environment-variables.css +9 -9
  75. package/dist/styles/field.css +2 -1
  76. package/dist/styles/fieldset.css +2 -2
  77. package/dist/styles/index.css +3 -3
  78. package/dist/styles/manager-office.css +23 -29
  79. package/dist/styles/mcp-plugin-catalog.css +11 -10
  80. package/dist/styles/mcp-server-picker.css +3 -3
  81. package/dist/styles/message-scroller.css +9 -11
  82. package/dist/styles/message.css +43 -20
  83. package/dist/styles/navigation-menu.css +1 -0
  84. package/dist/styles/plan.css +13 -12
  85. package/dist/styles/pricing-page.css +26 -23
  86. package/dist/styles/prompt-input.css +18 -5
  87. package/dist/styles/queue.css +1 -0
  88. package/dist/styles/reasoning.css +1 -9
  89. package/dist/styles/recipes.css +28 -1
  90. package/dist/styles/responsive-sidebar-shell.css +44 -16
  91. package/dist/styles/separator.css +5 -5
  92. package/dist/styles/sources.css +4 -4
  93. package/dist/styles/stepper.css +1 -0
  94. package/dist/styles/streamdown.css +31 -21
  95. package/dist/styles/tabs.css +1 -0
  96. package/dist/styles/task.css +5 -17
  97. package/dist/styles/terminal.css +10 -10
  98. package/dist/styles/test-results.css +6 -6
  99. package/dist/styles/think-execution-status.css +2 -2
  100. package/dist/styles/think-execution-workbench.css +12 -15
  101. package/dist/styles/think-full-app.css +26 -64
  102. package/dist/styles/think-routine-library.css +26 -55
  103. package/dist/styles/think-thread-picker.css +9 -9
  104. package/dist/styles/utilities.css +33 -0
  105. package/dist/styles/web-preview.css +20 -19
  106. package/dist/styles/workspace-explorer.css +18 -21
  107. package/dist/styles/workspace-mount-manager.css +2 -2
  108. package/dist/utils/favicon.d.ts +6 -1
  109. package/dist/utils/favicon.js +18 -1
  110. package/package.json +2 -2
  111. package/dist/AppTopBar-ZdgmB_Lu.d.ts +0 -97
  112. package/dist/ToggleGroup-BrQZOQn_.d.ts +0 -80
  113. package/dist/Toolbar-CBOseBQr.d.ts +0 -152
  114. package/dist/{ThinkChat-BES_3Mb-.js → ThinkChat-DkA4Wr71.js} +1 -1
@@ -5,18 +5,15 @@
5
5
  flex-direction: column;
6
6
  inline-size: 100%;
7
7
  min-inline-size: 0;
8
- /* Hard cap, Codex-style, on the WHOLE unit — collapsed line and expanded
9
- log alike — so toggling never reflows the conversation width. Plain rem,
10
- not min(100%, …): percentages are ignored in intrinsic-size contributions,
11
- so the min() let wide nowrap rows inflate content-sized ancestors. */
12
- max-inline-size: 36rem;
8
+ max-inline-size: 100%;
13
9
  /* Live tool labels and panels must never contribute a wider intrinsic size
14
10
  when Activity is inserted into a narrow chat transcript. */
15
11
  contain: inline-size;
16
- /* Whitespace separates the work log from message prose around it */
17
12
  margin-block: var(--sigvelo-spacing-2);
18
13
  font-family: inherit;
19
- color: var(--sigvelo-color-text);
14
+ /* Codex `conversation-body`: same ink as the turn, at 60%. Size matches
15
+ chat (`text-size-chat`); opacity is what marks the row as status. */
16
+ color: color-mix(in oklab, var(--sigvelo-color-text) 60%, transparent);
20
17
  }
21
18
 
22
19
  .activity__trigger {
@@ -26,19 +23,15 @@
26
23
  align-items: center;
27
24
  gap: var(--sigvelo-spacing-1-5);
28
25
  padding-block: var(--sigvelo-spacing-1-5);
29
- /* The fill bleeds past the text edge via the negative margin, so the label
30
- stays flush with the rows below instead of indenting on hover */
31
- padding-inline: var(--sigvelo-spacing-2);
32
- margin-inline: calc(var(--sigvelo-spacing-2) * -1);
26
+ padding-inline: 0;
33
27
  background-color: transparent;
34
28
  border: none;
35
29
  border-radius: var(--sigvelo-radius-sm);
36
- /* A step dimmer than message prose (Codex-style) so the line reads as
37
- status, not content */
38
- color: color-mix(in oklab, var(--sigvelo-color-text-muted), transparent 20%);
30
+ color: inherit;
39
31
  font-family: inherit;
40
- font-size: var(--sigvelo-text-compact);
41
- font-weight: var(--sigvelo-font-weight-semibold);
32
+ font-size: var(--sigvelo-text-prose);
33
+ font-weight: var(--sigvelo-font-weight-normal);
34
+ line-height: var(--sigvelo-text-prose-leading);
42
35
  text-align: start;
43
36
  cursor: pointer;
44
37
  transition:
@@ -69,9 +62,6 @@
69
62
  }
70
63
 
71
64
  .activity__content {
72
- /* The panel clips (overflow: hidden), so it must own the gutter the row
73
- hover fills bleed into — the list padding puts the text back in line */
74
- margin-inline: calc(var(--sigvelo-spacing-2) * -1);
75
65
  /* Standard easing, not emphasized: the expo-out curve front-loads ~60% of
76
66
  the motion into the first frames, which makes collapsing read as content
77
67
  snapping upward instead of folding. */
@@ -84,7 +74,7 @@
84
74
  /* Unbounded on purpose: the expanded log flows in the conversation scroll;
85
75
  only subsection panels (group text, shell output, code) are height-capped. */
86
76
  padding-block: var(--sigvelo-spacing-0-5) var(--sigvelo-spacing-2);
87
- padding-inline: var(--sigvelo-spacing-2);
77
+ padding-inline: 0;
88
78
  }
89
79
 
90
80
  /* Reveal row for step logs capped at the trailing window. */
@@ -97,9 +87,10 @@
97
87
  display: flex;
98
88
  align-items: baseline;
99
89
  gap: var(--sigvelo-spacing-1-5);
100
- font-size: var(--sigvelo-text-compact);
101
- color: var(--sigvelo-color-text);
102
- line-height: var(--sigvelo-leading-relaxed);
90
+ font-size: var(--sigvelo-text-prose);
91
+ font-weight: var(--sigvelo-font-weight-normal);
92
+ color: inherit;
93
+ line-height: var(--sigvelo-text-prose-leading);
103
94
  }
104
95
 
105
96
  /* Second collapse level: the trigger reads as a plain item row; the panel is
@@ -113,20 +104,17 @@
113
104
  display: flex;
114
105
  align-items: baseline;
115
106
  gap: var(--sigvelo-spacing-1-5);
116
- /* Negative margins cancel the padding, so the hover fill gets breathing
117
- room while the row text stays aligned with its plain siblings */
118
107
  padding-block: var(--sigvelo-spacing-0-5);
119
- padding-inline: var(--sigvelo-spacing-2);
108
+ padding-inline: 0;
120
109
  margin-block: -var(--sigvelo-spacing-0-5);
121
- margin-inline: calc(var(--sigvelo-spacing-2) * -1);
122
110
  background: none;
123
111
  border: none;
124
112
  border-radius: var(--sigvelo-radius-sm);
125
113
  font-family: inherit;
126
- font-size: var(--sigvelo-text-compact);
127
- font-weight: inherit;
128
- color: var(--sigvelo-color-text);
129
- line-height: var(--sigvelo-leading-relaxed);
114
+ font-size: var(--sigvelo-text-prose);
115
+ font-weight: var(--sigvelo-font-weight-normal);
116
+ color: inherit;
117
+ line-height: var(--sigvelo-text-prose-leading);
130
118
  text-align: start;
131
119
  cursor: pointer;
132
120
  transition: background-color var(--sigvelo-motion-duration-interaction)
@@ -171,8 +159,9 @@
171
159
  /* Prose panels (thought traces): quiet text, bounded like everything else */
172
160
  .activity__group-text {
173
161
  margin: 0;
174
- font-size: var(--sigvelo-text-compact);
175
- line-height: var(--sigvelo-leading-relaxed);
162
+ font-size: var(--sigvelo-text-prose);
163
+ font-weight: var(--sigvelo-font-weight-normal);
164
+ line-height: var(--sigvelo-text-prose-leading);
176
165
  color: var(--sigvelo-color-text-muted);
177
166
  white-space: pre-wrap;
178
167
  overflow-wrap: anywhere;
@@ -192,23 +181,24 @@
192
181
  display: flex;
193
182
  flex-direction: column;
194
183
  gap: var(--sigvelo-spacing-1);
195
- padding-block: var(--sigvelo-spacing-2);
196
- padding-inline: var(--sigvelo-spacing-3);
184
+ padding-block: var(--sigvelo-spacing-1);
185
+ /* Tighter than Codex exec `px-2` — the card already sits in the column. */
186
+ padding-inline: var(--sigvelo-spacing-1);
197
187
  background-color: var(--sigvelo-color-neutral-bg-subtle);
198
188
  border-radius: var(--sigvelo-radius-md);
199
189
  }
200
190
 
201
191
  .activity__shell-label {
202
- font-size: var(--sigvelo-text-2xs);
203
- font-weight: var(--sigvelo-font-weight-semibold);
192
+ font-size: var(--sigvelo-text-meta);
193
+ font-weight: var(--sigvelo-font-weight-normal);
204
194
  color: var(--sigvelo-color-text-muted);
205
195
  }
206
196
 
207
197
  .activity__shell-output {
208
198
  margin: 0;
209
199
  font-family: var(--sigvelo-font-mono);
210
- font-size: var(--sigvelo-text-xs);
211
- line-height: var(--sigvelo-leading-relaxed);
200
+ font-size: var(--sigvelo-text-code);
201
+ line-height: var(--sigvelo-text-code-leading);
212
202
  color: var(--sigvelo-color-text);
213
203
  white-space: pre-wrap;
214
204
  overflow-wrap: anywhere;
@@ -216,7 +206,7 @@
216
206
 
217
207
  .activity__shell-status {
218
208
  align-self: flex-end;
219
- font-size: var(--sigvelo-text-2xs);
209
+ font-size: var(--sigvelo-text-meta);
220
210
  color: var(--sigvelo-color-success-text-on-subtle);
221
211
  }
222
212
 
@@ -232,8 +222,8 @@
232
222
  }
233
223
 
234
224
  .activity__call-audit-label {
235
- font-size: var(--sigvelo-text-2xs);
236
- font-weight: var(--sigvelo-font-weight-semibold);
225
+ font-size: var(--sigvelo-text-meta);
226
+ font-weight: var(--sigvelo-font-weight-normal);
237
227
  color: var(--sigvelo-color-text-muted);
238
228
  }
239
229
 
@@ -243,13 +233,14 @@
243
233
  flex-direction: column;
244
234
  gap: var(--sigvelo-spacing-1);
245
235
  margin: 0;
246
- padding-inline-start: var(--sigvelo-spacing-4);
247
- font-size: var(--sigvelo-text-xs);
236
+ padding-inline-start: 0;
237
+ list-style: none;
238
+ font-size: var(--sigvelo-text-code);
248
239
  }
249
240
 
250
241
  .activity__call-audit-item {
251
242
  min-inline-size: 0;
252
- padding-inline-start: var(--sigvelo-spacing-0-5);
243
+ padding-inline-start: 0;
253
244
  color: var(--sigvelo-color-text);
254
245
  overflow-wrap: anywhere;
255
246
  }
@@ -302,7 +293,9 @@
302
293
  .activity__browser-screenshot {
303
294
  display: block;
304
295
  inline-size: 100%;
296
+ /* Screenshot well. Not --sigvelo-layout-sidebar. */
305
297
  max-block-size: 16rem;
298
+ aspect-ratio: 16 / 10;
306
299
  object-fit: contain;
307
300
  border-radius: var(--sigvelo-radius-md);
308
301
  background-color: var(--sigvelo-color-surface);
@@ -339,18 +332,14 @@
339
332
  .activity__item-detail {
340
333
  flex: 1 1 0;
341
334
  min-inline-size: 0;
342
- overflow: hidden;
343
335
  color: var(--sigvelo-color-text-muted);
344
- white-space: nowrap;
345
- mask-image: linear-gradient(to right, #000 calc(100% - 1rem), transparent 100%);
336
+ overflow-wrap: anywhere;
346
337
  }
347
338
 
348
339
  /* The action keeps its content width once a detail is beside it to shrink. */
349
340
  .activity__item:has(.activity__item-detail) .activity__item-text,
350
341
  .activity__group-trigger:has(.activity__item-detail) .activity__item-text {
351
342
  flex: 0 1 auto;
352
- overflow-wrap: normal;
353
- white-space: nowrap;
354
343
  }
355
344
 
356
345
  @media (hover: none) {
@@ -359,12 +348,8 @@
359
348
  }
360
349
  }
361
350
 
362
- /* Row labels always clamp to one line, Codex-style — the expanded panel
363
- carries the full `$ command`, the row stays a trimmed summary. */
364
351
  .activity__group-trigger .activity__item-text {
365
- white-space: nowrap;
366
- overflow: hidden;
367
- text-overflow: ellipsis;
352
+ overflow-wrap: anywhere;
368
353
  }
369
354
 
370
355
  @media (forced-colors: active) {
@@ -1,7 +1,7 @@
1
1
  .agent-attention {
2
2
  display: grid;
3
- width: min(22rem, 100%);
4
- min-width: 0;
3
+ inline-size: min(22rem, 100%);
4
+ min-inline-size: 0;
5
5
  gap: var(--sigvelo-spacing-1-5);
6
6
  padding: var(--sigvelo-spacing-1-5);
7
7
  border: var(--sigvelo-border-style) var(--sigvelo-border-width)
@@ -19,16 +19,16 @@
19
19
  .agent-attention__header,
20
20
  .agent-attention__trigger {
21
21
  display: grid;
22
- grid-template-columns: auto minmax(0, 1fr) auto;
22
+ grid-template-columns: auto var(--sigvelo-layout-track-fill) auto;
23
23
  align-items: center;
24
24
  gap: var(--sigvelo-spacing-1-5);
25
- min-width: 0;
25
+ min-inline-size: 0;
26
26
  }
27
27
 
28
28
  .agent-attention__trigger.button {
29
- width: 100%;
30
- height: auto;
31
- min-height: var(--sigvelo-control-height-sm);
29
+ inline-size: 100%;
30
+ block-size: auto;
31
+ min-block-size: var(--sigvelo-control-height-sm);
32
32
  justify-content: stretch;
33
33
  padding: var(--sigvelo-spacing-1-5);
34
34
  margin: calc(-1 * var(--sigvelo-spacing-1-5));
@@ -38,8 +38,8 @@
38
38
  .agent-attention__icon {
39
39
  display: grid;
40
40
  place-items: center;
41
- width: var(--sigvelo-control-height-xs);
42
- height: var(--sigvelo-control-height-xs);
41
+ inline-size: var(--sigvelo-control-height-xs);
42
+ block-size: var(--sigvelo-control-height-xs);
43
43
  border-radius: var(--sigvelo-radius-sm);
44
44
  color: var(--sigvelo-color-text-muted);
45
45
  background: var(--sigvelo-color-neutral-bg-subtle);
@@ -51,13 +51,13 @@
51
51
  }
52
52
 
53
53
  .agent-attention__icon > :is(svg, img) {
54
- width: 1rem;
55
- height: 1rem;
54
+ inline-size: 1rem;
55
+ block-size: 1rem;
56
56
  }
57
57
 
58
58
  .agent-attention__text {
59
59
  display: grid;
60
- min-width: 0;
60
+ min-inline-size: 0;
61
61
  line-height: var(--sigvelo-leading-snug);
62
62
  }
63
63
 
@@ -72,7 +72,7 @@
72
72
  }
73
73
 
74
74
  .agent-attention__body {
75
- min-width: 0;
75
+ min-inline-size: 0;
76
76
  overflow: hidden;
77
77
  border-radius: var(--sigvelo-radius-sm);
78
78
  }
@@ -86,7 +86,7 @@
86
86
 
87
87
  @media (any-pointer: coarse) {
88
88
  .agent-attention__trigger.button {
89
- min-height: var(--sigvelo-control-height-xl);
89
+ min-block-size: var(--sigvelo-control-height-xl);
90
90
  }
91
91
  }
92
92
 
@@ -5,10 +5,6 @@
5
5
  at each use site. */
6
6
  container: agent-chat / inline-size;
7
7
  position: relative;
8
- inline-size: 100%;
9
- block-size: 100%;
10
- min-inline-size: 0;
11
- min-block-size: 0;
12
8
  /* The colour the lane rests on. Hosts that seat the conversation on the
13
9
  underlay rather than a plane of its own inherit --agent-chat-surface down
14
10
  to here, so the composer's scrim dissolves into what is actually behind
@@ -36,24 +32,24 @@
36
32
 
37
33
  min-inline-size: 0;
38
34
  max-inline-size: 100%;
39
- /* The virtual wrapper is content-box (its JS-set height must exclude the
40
- block padding), so the inline gutters land OUTSIDE this size — subtract
41
- them from the full-width term or the padding box overflows the viewport
42
- and end-aligned user rows hang past the right edge. */
35
+ /* Codex thread column: `mx-auto w-full max-w-(--thread-content-max-width)
36
+ px-toolbar`. Subtract the inset from the measure so content-box padding
37
+ cannot overflow the scroller or eat the composer clearance. */
38
+ --agent-chat-used-column-inset: var(--agent-chat-column-inset, var(--sigvelo-spacing-4));
43
39
  inline-size: min(
44
- 100% - 2 * var(--sigvelo-spacing-4),
45
- var(--agent-chat-content-max-inline-size, 64rem)
40
+ calc(100% - 2 * var(--agent-chat-used-column-inset)),
41
+ var(--agent-chat-content-max-inline-size, var(--sigvelo-measure-wide-block))
46
42
  );
47
43
  margin-inline: auto;
48
44
  /* Clearance = composer + its scrim band, so a transcript resting at the
49
45
  bottom never sits inside the fade. */
50
46
  padding-block: var(--message-scroller-virtual-block-start)
51
47
  calc(var(--agent-chat-composer-size, 5rem) + var(--agent-chat-composer-scrim-fade, 2.5rem));
52
- padding-inline: var(--sigvelo-spacing-4);
48
+ padding-inline: var(--agent-chat-used-column-inset);
53
49
  }
54
50
 
55
51
  .agent-chat[data-composer-hidden] .agent-chat__transcript-content {
56
- padding-block-end: var(--sigvelo-spacing-4);
52
+ padding-block-end: var(--sigvelo-layout-gutter);
57
53
  }
58
54
 
59
55
  .agent-chat__scroll-button {
@@ -97,14 +93,17 @@
97
93
  );
98
94
 
99
95
  display: grid;
100
- grid-template-rows: minmax(0, 1fr) auto minmax(0, 1fr);
101
- inline-size: min(100%, var(--agent-chat-content-max-inline-size, 64rem));
96
+ grid-template-rows: var(--sigvelo-layout-track-fill) auto var(--sigvelo-layout-track-fill);
97
+ inline-size: min(
98
+ 100%,
99
+ var(--agent-chat-content-max-inline-size, var(--sigvelo-measure-wide-block))
100
+ );
102
101
  min-block-size: 100%;
103
102
  margin-inline: auto;
104
103
  padding-block: max(var(--agent-chat-start-screen-padding-block), env(safe-area-inset-top, 0px))
105
104
  max(var(--agent-chat-start-screen-padding-block), env(safe-area-inset-bottom, 0px));
106
- padding-inline: max(var(--sigvelo-spacing-4), env(safe-area-inset-left, 0px))
107
- max(var(--sigvelo-spacing-4), env(safe-area-inset-right, 0px));
105
+ padding-inline: max(var(--sigvelo-layout-gutter), env(safe-area-inset-left, 0px))
106
+ max(var(--sigvelo-layout-gutter), env(safe-area-inset-right, 0px));
108
107
  }
109
108
 
110
109
  .agent-chat-start-screen__primary {
@@ -117,7 +116,7 @@
117
116
  .agent-chat-start-screen__heading {
118
117
  margin: 0;
119
118
  color: var(--sigvelo-color-text);
120
- font-size: var(--sigvelo-text-2xl);
119
+ font-size: var(--sigvelo-text-lg);
121
120
  font-weight: var(--sigvelo-font-weight-normal);
122
121
  letter-spacing: var(--sigvelo-tracking-normal);
123
122
  line-height: var(--sigvelo-text-lg-leading);
@@ -131,6 +130,11 @@
131
130
  }
132
131
 
133
132
  .agent-chat-start-screen__composer > .agent-chat__composer {
133
+ /* Grid item z-index, not isolation: the tray is a sibling and must paint
134
+ behind the card. isolation: isolate on .agent-chat__composer trapped the
135
+ inner z-index and left the tray as a second pill. */
136
+ isolation: auto;
137
+ z-index: 1;
134
138
  position: static;
135
139
  padding: 0;
136
140
  background: none;
@@ -208,7 +212,7 @@
208
212
 
209
213
  .agent-chat-starter {
210
214
  display: grid;
211
- grid-template-columns: minmax(0, 1fr) auto;
215
+ grid-template-columns: var(--sigvelo-layout-track-fill) auto;
212
216
  align-items: center;
213
217
  border-radius: var(--sigvelo-radius-xl);
214
218
  transition: background-color var(--sigvelo-motion-duration-interaction)
@@ -227,14 +231,14 @@
227
231
  inline-size: 100%;
228
232
  min-block-size: var(--sigvelo-control-height-xl);
229
233
  min-inline-size: 0;
230
- gap: var(--sigvelo-spacing-3);
231
- padding-block: var(--sigvelo-spacing-2);
232
- padding-inline: var(--sigvelo-spacing-3);
234
+ gap: var(--sigvelo-layout-gutter);
235
+ padding-block: var(--sigvelo-layout-cluster);
236
+ padding-inline: var(--sigvelo-layout-gutter);
233
237
  background: transparent;
234
238
  color: var(--sigvelo-color-text-muted);
235
- font-size: var(--sigvelo-text-base);
239
+ font-size: var(--sigvelo-text-prose);
236
240
  font-weight: var(--sigvelo-font-weight-normal);
237
- line-height: var(--sigvelo-leading-relaxed);
241
+ line-height: var(--sigvelo-text-prose-leading);
238
242
  text-align: start;
239
243
  white-space: normal;
240
244
  transition: color var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change);
@@ -358,8 +362,13 @@
358
362
  inset-inline: 0;
359
363
  inset-block-end: 0;
360
364
  padding-block: 0 max(var(--sigvelo-spacing-6), env(safe-area-inset-bottom, 0px));
361
- padding-inline: max(var(--sigvelo-spacing-6), env(safe-area-inset-left, 0px))
362
- max(var(--sigvelo-spacing-6), env(safe-area-inset-right, 0px));
365
+ /* Same column as the transcript (Codex px-toolbar). The pill's own
366
+ padding lives on .prompt-input. */
367
+ padding-inline: max(
368
+ var(--agent-chat-column-inset, var(--sigvelo-spacing-4)),
369
+ env(safe-area-inset-left, 0px)
370
+ )
371
+ max(var(--agent-chat-column-inset, var(--sigvelo-spacing-4)), env(safe-area-inset-right, 0px));
363
372
  }
364
373
 
365
374
  /* Solid behind the composer itself, dissolving upward so passing transcript
@@ -382,7 +391,10 @@
382
391
 
383
392
  .agent-chat__composer > .prompt-input {
384
393
  z-index: 1;
385
- inline-size: min(100%, var(--agent-chat-content-max-inline-size, 64rem));
394
+ inline-size: min(
395
+ 100%,
396
+ var(--agent-chat-content-max-inline-size, var(--sigvelo-measure-wide-block))
397
+ );
386
398
  margin-inline: auto;
387
399
  padding-block: var(--sigvelo-spacing-3);
388
400
  }
@@ -393,7 +405,7 @@
393
405
  align-items: center;
394
406
  gap: var(--sigvelo-spacing-1-5);
395
407
  margin-block-end: var(--sigvelo-spacing-2);
396
- font-size: var(--sigvelo-text-xs);
408
+ font-size: var(--sigvelo-text-meta);
397
409
  color: var(--sigvelo-color-text-muted);
398
410
  }
399
411
 
@@ -407,7 +419,8 @@
407
419
  flex-direction: column;
408
420
  align-items: stretch;
409
421
  inline-size: calc(
410
- min(100%, var(--agent-chat-content-max-inline-size, 64rem)) - var(--sigvelo-spacing-10)
422
+ min(100%, var(--agent-chat-content-max-inline-size, var(--sigvelo-measure-wide-block))) -
423
+ var(--sigvelo-spacing-10)
411
424
  );
412
425
  margin-inline: auto;
413
426
  }
@@ -431,8 +444,8 @@
431
444
  padding-block: 0;
432
445
  padding-inline: var(--sigvelo-spacing-2-5);
433
446
  color: var(--sigvelo-color-text);
434
- font-size: var(--sigvelo-text-compact);
435
- line-height: var(--sigvelo-leading-snug);
447
+ font-size: var(--sigvelo-text-prose);
448
+ line-height: var(--sigvelo-text-prose-leading);
436
449
  }
437
450
 
438
451
  .agent-chat__queued-indicator {
@@ -496,13 +509,14 @@
496
509
  border-radius: var(--sigvelo-radius-lg);
497
510
  }
498
511
 
512
+ /* Wrap floor so retry actions stay on their own line. Not --sigvelo-layout-sidebar. */
499
513
  .agent-chat__turn-error-message {
500
514
  min-inline-size: min(100%, 16rem);
501
515
  flex: 1;
502
516
  margin: 0;
503
517
  overflow-wrap: anywhere;
504
- font-size: var(--sigvelo-text-sm);
505
- line-height: var(--sigvelo-leading-normal);
518
+ font-size: var(--sigvelo-text-prose);
519
+ line-height: var(--sigvelo-text-prose-leading);
506
520
  }
507
521
 
508
522
  .agent-chat__turn-error-actions {
@@ -537,7 +551,8 @@
537
551
  alignment off width top-aligned the start screen in a pane with hundreds of
538
552
  spare pixels under it. Only the height query below drops the centring, and
539
553
  only where there is genuinely no room for it. */
540
- @container agent-chat (width <= 36rem) {
554
+ /* Local wrap. Not --sigvelo-layout-break-compact. */
555
+ @container agent-chat (inline-size <= 36rem) {
541
556
  .agent-chat__transcript-content {
542
557
  /* A notch pushes the first row down only as far as it must: the desktop
543
558
  inset already clears shallow insets, so only deeper ones add height. */
@@ -546,21 +561,22 @@
546
561
  calc(var(--sigvelo-spacing-5) + env(safe-area-inset-top, 0px))
547
562
  );
548
563
 
564
+ --agent-chat-used-column-inset: var(--agent-chat-column-inset, var(--sigvelo-spacing-2));
549
565
  inline-size: min(
550
- 100% - 2 * var(--sigvelo-spacing-3),
551
- var(--agent-chat-content-max-inline-size, 64rem)
566
+ calc(100% - 2 * var(--agent-chat-used-column-inset)),
567
+ var(--agent-chat-content-max-inline-size, var(--sigvelo-measure-wide-block))
552
568
  );
553
- padding-inline: var(--sigvelo-spacing-3);
554
- }
555
-
556
- .agent-chat .message[data-from="assistant"] .message__content {
557
- inline-size: 100%;
569
+ /* Codex Chrome extension: [--padding-toolbar:calc(var(--spacing)*2)] = 8px. */
570
+ padding-inline: var(--agent-chat-used-column-inset);
558
571
  }
559
572
 
560
573
  .agent-chat__composer {
561
- padding-block-end: max(var(--sigvelo-spacing-4), env(safe-area-inset-bottom, 0px));
562
- padding-inline: max(var(--sigvelo-spacing-3), env(safe-area-inset-left, 0px))
563
- max(var(--sigvelo-spacing-3), env(safe-area-inset-right, 0px));
574
+ padding-block-end: max(var(--sigvelo-layout-stack), env(safe-area-inset-bottom, 0px));
575
+ padding-inline: max(
576
+ var(--agent-chat-column-inset, var(--sigvelo-spacing-2)),
577
+ env(safe-area-inset-left, 0px)
578
+ )
579
+ max(var(--agent-chat-column-inset, var(--sigvelo-spacing-2)), env(safe-area-inset-right, 0px));
564
580
  }
565
581
 
566
582
  .agent-chat-start-screen__content {
@@ -568,7 +584,7 @@
568
584
  }
569
585
 
570
586
  .agent-chat-start-screen__heading {
571
- font-size: var(--sigvelo-text-2xl);
587
+ font-size: var(--sigvelo-text-lg);
572
588
  }
573
589
 
574
590
  .agent-chat-starter__label {
@@ -580,7 +596,8 @@
580
596
 
581
597
  /* Side-panel widths: tray labels yield to the icons; each action keeps its
582
598
  accessible name. */
583
- @container agent-chat (width <= 30rem) {
599
+ /* Local wrap. Not --sigvelo-layout-break-compact. */
600
+ @container agent-chat (inline-size <= 30rem) {
584
601
  .agent-chat-start-screen__composer-tray > .button > span:not(.app-icon-stack) {
585
602
  display: none;
586
603
  }
@@ -1,4 +1,5 @@
1
1
  .agent-connect {
2
+ container: agent-connect / inline-size;
2
3
  display: grid;
3
4
  gap: var(--sigvelo-spacing-2);
4
5
  min-inline-size: 0;
@@ -7,6 +8,7 @@
7
8
 
8
9
  .agent-connect__header {
9
10
  display: flex;
11
+ /* Form header, not --sigvelo-layout-cluster. */
10
12
  gap: var(--sigvelo-spacing-2);
11
13
  align-items: flex-start;
12
14
  min-inline-size: 0;
@@ -51,7 +53,7 @@
51
53
 
52
54
  .agent-connect .agent-connect__targets {
53
55
  display: grid;
54
- grid-template-columns: repeat(4, minmax(0, 1fr));
56
+ grid-template-columns: repeat(4, var(--sigvelo-layout-track-fill));
55
57
  min-inline-size: 0;
56
58
  margin: 0;
57
59
  padding: var(--sigvelo-spacing-1);
@@ -129,14 +131,18 @@
129
131
  .agent-connect-popover {
130
132
  inline-size: min(36rem, calc(100dvi - 1.5rem));
131
133
  max-inline-size: min(36rem, calc(100dvi - 1.5rem));
132
- padding: var(--sigvelo-spacing-3);
134
+ padding: var(--sigvelo-layout-gutter);
133
135
  }
134
136
 
135
- @media (width <= 40rem) {
137
+ /* Local wrap. Not --sigvelo-layout-break-compact. */
138
+ @container agent-connect (inline-size <= 40rem) {
136
139
  .agent-connect__targets {
137
- grid-template-columns: repeat(2, minmax(0, 1fr));
140
+ grid-template-columns: repeat(2, var(--sigvelo-layout-track-fill));
138
141
  }
142
+ }
139
143
 
144
+ /* Popup vs viewport. Not a plane container query. */
145
+ @media (width <= 40rem) {
140
146
  .agent-connect-popover {
141
147
  inline-size: min(24rem, calc(100dvi - 1.5rem));
142
148
  }
@@ -1,6 +1,6 @@
1
1
  .agent-tool-detail {
2
2
  display: grid;
3
- grid-template-rows: auto auto minmax(0, 1fr);
3
+ grid-template-rows: auto auto var(--sigvelo-layout-track-fill);
4
4
  min-inline-size: 0;
5
5
  block-size: 100%;
6
6
  background-color: var(--sigvelo-color-surface);
@@ -15,10 +15,10 @@
15
15
  .agent-tool-detail__run-state {
16
16
  grid-row: 2;
17
17
  display: grid;
18
- gap: var(--sigvelo-spacing-2);
18
+ gap: var(--sigvelo-layout-cluster);
19
19
  min-inline-size: 0;
20
- padding-block: var(--sigvelo-spacing-2);
21
- padding-inline: var(--sigvelo-spacing-3);
20
+ padding-block: var(--sigvelo-layout-cluster);
21
+ padding-inline: var(--sigvelo-layout-gutter);
22
22
  border-block-end: var(--sigvelo-border-width) var(--sigvelo-border-style)
23
23
  var(--sigvelo-color-neutral-border-subtle);
24
24
  }
@@ -6,7 +6,7 @@
6
6
  }
7
7
 
8
8
  .alert-dialog__popup {
9
- --sigvelo-recipe-surface-padding: var(--sigvelo-spacing-4);
9
+ --sigvelo-recipe-surface-padding: var(--sigvelo-layout-stack);
10
10
 
11
11
  position: fixed;
12
12
  inset-block-start: 50%;
@@ -39,16 +39,16 @@
39
39
  font-size: var(--sigvelo-text-compact);
40
40
  line-height: var(--sigvelo-leading-normal);
41
41
  color: var(--sigvelo-color-text-muted);
42
- margin: 0 0 var(--sigvelo-spacing-4);
42
+ margin: 0 0 var(--sigvelo-layout-stack);
43
43
  text-wrap: pretty;
44
44
  }
45
45
 
46
46
  .alert-dialog__header {
47
47
  display: grid;
48
48
  gap: var(--sigvelo-spacing-1);
49
- margin-block-end: var(--sigvelo-spacing-3);
49
+ margin-block-end: var(--sigvelo-layout-gutter);
50
50
  }
51
51
 
52
52
  .alert-dialog__media {
53
- margin-block-end: var(--sigvelo-spacing-3);
53
+ margin-block-end: var(--sigvelo-layout-gutter);
54
54
  }
@@ -1,8 +1,6 @@
1
1
  .app-frame {
2
- block-size: 100%;
3
- min-block-size: 0;
4
2
  display: grid;
5
- grid-template-rows: auto minmax(0, 1fr);
3
+ grid-template-rows: auto var(--sigvelo-layout-track-fill);
6
4
  overflow: hidden;
7
5
  color: var(--sigvelo-color-text);
8
6
  background: var(--sigvelo-color-canvas);