@mcp-b/react-components 0.41.0 → 0.43.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 (125) hide show
  1. package/dist/{AgentChat-DVr2giwD.d.ts → AgentChat-Bibfj7u1.d.ts} +1 -1
  2. package/dist/{AgentChatStartScreen-CO49yepa.d.ts → AgentChatStartScreen-Bkv7Avni.d.ts} +6 -0
  3. package/dist/McpPluginCatalog-mbGw8FTu.d.ts +92 -0
  4. package/dist/ResponsiveSidebarShell-DOXd5T-d.d.ts +111 -0
  5. package/dist/SetupChecklist-H1JRCIIe.js +77 -0
  6. package/dist/{ThinkChatActivity-DyGHj01E.d.ts → ThinkChatActivity-CgvmTXXB.d.ts} +4 -1
  7. package/dist/Workspace-F3raHdYV.d.ts +140 -0
  8. package/dist/{WorkspaceFileView-D0yFwoDr.js → WorkspaceFileView-DWMKxX_u.js} +15 -21
  9. package/dist/components/agents-sdk/AgentActivity.js +3 -2
  10. package/dist/components/agents-sdk/AgentChat.d.ts +1 -1
  11. package/dist/components/agents-sdk/AgentChat.js +1 -0
  12. package/dist/components/agents-sdk/BrowserRunPanel.js +2 -1
  13. package/dist/components/agents-sdk/ManagerOffice.d.ts +39 -27
  14. package/dist/components/agents-sdk/ManagerOffice.js +80 -44
  15. package/dist/components/agents-sdk/McpPluginCatalog.d.ts +1 -91
  16. package/dist/components/agents-sdk/McpPluginCatalog.js +3 -1
  17. package/dist/components/agents-sdk/ModelSelector.js +1 -1
  18. package/dist/components/agents-sdk/ThinkChat.d.ts +2 -2
  19. package/dist/components/agents-sdk/ThinkChatActivity.d.ts +1 -1
  20. package/dist/components/agents-sdk/ThinkChatActivity.js +18 -4
  21. package/dist/components/agents-sdk/ThinkChatToolPanels.js +6 -2
  22. package/dist/components/agents-sdk/ThinkExecutionDetail.js +2 -0
  23. package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +1 -0
  24. package/dist/components/agents-sdk/ThinkFullApp.d.ts +56 -90
  25. package/dist/components/agents-sdk/ThinkFullApp.js +74 -122
  26. package/dist/components/agents-sdk/ThinkFullAppViewSwitch.d.ts +1 -1
  27. package/dist/components/agents-sdk/ThinkRoutineLibrary.d.ts +8 -6
  28. package/dist/components/agents-sdk/ThinkRoutineLibrary.js +71 -93
  29. package/dist/components/agents-sdk/ThinkSidepanel.d.ts +173 -0
  30. package/dist/components/agents-sdk/ThinkSidepanel.js +656 -0
  31. package/dist/components/agents-sdk/ThinkThreadPicker.d.ts +4 -5
  32. package/dist/components/agents-sdk/ThinkThreadPicker.js +6 -5
  33. package/dist/components/agents-sdk/Workspace.d.ts +1 -139
  34. package/dist/components/agents-sdk/WorkspaceBrowser.d.ts +1 -1
  35. package/dist/components/agents-sdk/WorkspaceExplorer.d.ts +1 -1
  36. package/dist/components/agents-sdk/WorkspaceExplorer.js +4 -3
  37. package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
  38. package/dist/components/ai-sdk/AgentChatStartScreen.d.ts +1 -1
  39. package/dist/components/ai-sdk/AgentChatStartScreen.js +5 -2
  40. package/dist/components/ai-sdk/MessageScroller.js +2 -1
  41. package/dist/components/ai-sdk/MessageScrollerVirtual.js +1 -0
  42. package/dist/components/ai-sdk/PromptInput.js +20 -14
  43. package/dist/components/extension/ChatGptSignInScreen.js +1 -0
  44. package/dist/components/foundations/ToggleGroup.d.ts +79 -1
  45. package/dist/components/foundations/Toolbar.d.ts +151 -1
  46. package/dist/components/general-purpose/AppFrame.js +1 -0
  47. package/dist/components/general-purpose/AppTopBar.d.ts +96 -1
  48. package/dist/components/general-purpose/ResizableSidePanel.d.ts +8 -0
  49. package/dist/components/general-purpose/ResizableSidePanel.js +3 -2
  50. package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +2 -95
  51. package/dist/components/general-purpose/ResponsiveSidebarShell.js +74 -74
  52. package/dist/components/general-purpose/SetupChecklist.js +1 -76
  53. package/dist/components/general-purpose/ThemeModeControl.js +1 -1
  54. package/dist/components/general-purpose/WebPreview.d.ts +3 -0
  55. package/dist/components/general-purpose/WebPreview.js +2 -2
  56. package/dist/components/nanites/AgentToolDetail.js +1 -0
  57. package/dist/styles/accordion.css +1 -0
  58. package/dist/styles/action-guide.css +8 -7
  59. package/dist/styles/activity-header.css +13 -39
  60. package/dist/styles/activity.css +40 -55
  61. package/dist/styles/agent-attention.css +14 -14
  62. package/dist/styles/agent-chat.css +80 -58
  63. package/dist/styles/agent-connection.css +10 -4
  64. package/dist/styles/agent-tool-detail.css +4 -4
  65. package/dist/styles/alert-dialog.css +4 -4
  66. package/dist/styles/app-frame.css +1 -3
  67. package/dist/styles/app-top-bar.css +5 -9
  68. package/dist/styles/approval.css +1 -0
  69. package/dist/styles/artifact.css +6 -6
  70. package/dist/styles/attachment-preview.css +5 -4
  71. package/dist/styles/browser-replay.css +6 -6
  72. package/dist/styles/browser-run-panel.css +1 -0
  73. package/dist/styles/button.css +15 -6
  74. package/dist/styles/card.css +5 -5
  75. package/dist/styles/chatgpt-sign-in-screen.css +1 -1
  76. package/dist/styles/code-block.css +14 -13
  77. package/dist/styles/codex-model-selector.css +2 -0
  78. package/dist/styles/collapsible.css +1 -0
  79. package/dist/styles/commit.css +6 -6
  80. package/dist/styles/context.css +9 -9
  81. package/dist/styles/conversation-tab-picker.css +1 -1
  82. package/dist/styles/conversation.css +6 -8
  83. package/dist/styles/dialog.css +4 -4
  84. package/dist/styles/empty-state.css +3 -3
  85. package/dist/styles/environment-variables.css +9 -9
  86. package/dist/styles/field.css +2 -1
  87. package/dist/styles/fieldset.css +2 -2
  88. package/dist/styles/index.css +4 -3
  89. package/dist/styles/manager-office.css +23 -29
  90. package/dist/styles/mcp-plugin-catalog.css +11 -10
  91. package/dist/styles/mcp-server-picker.css +3 -3
  92. package/dist/styles/message-scroller.css +9 -11
  93. package/dist/styles/message.css +43 -20
  94. package/dist/styles/navigation-menu.css +1 -0
  95. package/dist/styles/plan.css +13 -12
  96. package/dist/styles/pricing-page.css +26 -23
  97. package/dist/styles/prompt-input.css +18 -5
  98. package/dist/styles/queue.css +1 -0
  99. package/dist/styles/reasoning.css +1 -9
  100. package/dist/styles/recipes.css +28 -1
  101. package/dist/styles/responsive-sidebar-shell.css +55 -24
  102. package/dist/styles/separator.css +5 -5
  103. package/dist/styles/sources.css +4 -4
  104. package/dist/styles/stepper.css +1 -0
  105. package/dist/styles/streamdown.css +31 -21
  106. package/dist/styles/tabs.css +1 -0
  107. package/dist/styles/task.css +5 -17
  108. package/dist/styles/terminal.css +10 -10
  109. package/dist/styles/test-results.css +6 -6
  110. package/dist/styles/think-execution-status.css +2 -2
  111. package/dist/styles/think-execution-workbench.css +12 -15
  112. package/dist/styles/think-full-app.css +26 -64
  113. package/dist/styles/think-routine-library.css +26 -55
  114. package/dist/styles/think-sidepanel.css +74 -0
  115. package/dist/styles/think-thread-picker.css +9 -9
  116. package/dist/styles/utilities.css +33 -0
  117. package/dist/styles/web-preview.css +20 -19
  118. package/dist/styles/workspace-explorer.css +18 -21
  119. package/dist/styles/workspace-mount-manager.css +2 -2
  120. package/dist/utils/favicon.d.ts +6 -1
  121. package/dist/utils/favicon.js +18 -1
  122. package/package.json +2 -2
  123. package/dist/AppTopBar-ZdgmB_Lu.d.ts +0 -97
  124. package/dist/ToggleGroup-BrQZOQn_.d.ts +0 -80
  125. package/dist/Toolbar-CBOseBQr.d.ts +0 -152
@@ -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,19 +93,24 @@
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
+ align-content: start;
97
+ grid-template-rows: var(--sigvelo-layout-track-fill) auto var(--sigvelo-layout-track-fill);
98
+ inline-size: min(
99
+ 100%,
100
+ var(--agent-chat-content-max-inline-size, var(--sigvelo-measure-wide-block))
101
+ );
102
102
  min-block-size: 100%;
103
103
  margin-inline: auto;
104
104
  padding-block: max(var(--agent-chat-start-screen-padding-block), env(safe-area-inset-top, 0px))
105
105
  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));
106
+ padding-inline: max(var(--sigvelo-layout-gutter), env(safe-area-inset-left, 0px))
107
+ max(var(--sigvelo-layout-gutter), env(safe-area-inset-right, 0px));
108
108
  }
109
109
 
110
110
  .agent-chat-start-screen__primary {
111
111
  grid-row: 2;
112
112
  display: grid;
113
+ align-content: start;
113
114
  gap: var(--sigvelo-spacing-6);
114
115
  min-inline-size: 0;
115
116
  }
@@ -117,7 +118,7 @@
117
118
  .agent-chat-start-screen__heading {
118
119
  margin: 0;
119
120
  color: var(--sigvelo-color-text);
120
- font-size: var(--sigvelo-text-2xl);
121
+ font-size: var(--sigvelo-text-lg);
121
122
  font-weight: var(--sigvelo-font-weight-normal);
122
123
  letter-spacing: var(--sigvelo-tracking-normal);
123
124
  line-height: var(--sigvelo-text-lg-leading);
@@ -127,10 +128,16 @@
127
128
 
128
129
  .agent-chat-start-screen__composer {
129
130
  display: grid;
131
+ align-content: start;
130
132
  min-inline-size: 0;
131
133
  }
132
134
 
133
135
  .agent-chat-start-screen__composer > .agent-chat__composer {
136
+ /* Grid item z-index, not isolation: the tray is a sibling and must paint
137
+ behind the card. isolation: isolate on .agent-chat__composer trapped the
138
+ inner z-index and left the tray as a second pill. */
139
+ isolation: auto;
140
+ z-index: 1;
134
141
  position: static;
135
142
  padding: 0;
136
143
  background: none;
@@ -149,9 +156,15 @@
149
156
  }
150
157
 
151
158
  /* The first-turn utility tray owns its buttons' treatment so every host gets
152
- the same quiet look without per-app classes. Space-between seats one action
153
- per slot — left, middle, right. */
159
+ the same quiet look without per-app classes. Hug the actions — a short
160
+ viewport (Storybook addons, a short side panel) used to stretch this into
161
+ a vacant slab. Space-between only when there are three slots to fill. */
154
162
  .agent-chat-start-screen__composer-tray {
163
+ align-self: start;
164
+ justify-content: start;
165
+ }
166
+
167
+ .agent-chat-start-screen__composer-tray:has(> :nth-child(3):last-child) {
155
168
  justify-content: space-between;
156
169
  }
157
170
 
@@ -190,7 +203,8 @@
190
203
  white-space: nowrap;
191
204
  }
192
205
 
193
- .agent-chat-start-screen__starters {
206
+ .agent-chat-start-screen__starters,
207
+ .agent-chat-start-screen__lead {
194
208
  grid-row: 3;
195
209
  align-self: start;
196
210
  min-inline-size: 0;
@@ -208,7 +222,7 @@
208
222
 
209
223
  .agent-chat-starter {
210
224
  display: grid;
211
- grid-template-columns: minmax(0, 1fr) auto;
225
+ grid-template-columns: var(--sigvelo-layout-track-fill) auto;
212
226
  align-items: center;
213
227
  border-radius: var(--sigvelo-radius-xl);
214
228
  transition: background-color var(--sigvelo-motion-duration-interaction)
@@ -227,14 +241,14 @@
227
241
  inline-size: 100%;
228
242
  min-block-size: var(--sigvelo-control-height-xl);
229
243
  min-inline-size: 0;
230
- gap: var(--sigvelo-spacing-3);
231
- padding-block: var(--sigvelo-spacing-2);
232
- padding-inline: var(--sigvelo-spacing-3);
244
+ gap: var(--sigvelo-layout-gutter);
245
+ padding-block: var(--sigvelo-layout-cluster);
246
+ padding-inline: var(--sigvelo-layout-gutter);
233
247
  background: transparent;
234
248
  color: var(--sigvelo-color-text-muted);
235
- font-size: var(--sigvelo-text-base);
249
+ font-size: var(--sigvelo-text-prose);
236
250
  font-weight: var(--sigvelo-font-weight-normal);
237
- line-height: var(--sigvelo-leading-relaxed);
251
+ line-height: var(--sigvelo-text-prose-leading);
238
252
  text-align: start;
239
253
  white-space: normal;
240
254
  transition: color var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change);
@@ -328,7 +342,8 @@
328
342
  * need to.
329
343
  */
330
344
  .agent-chat-start-screen__heading,
331
- .agent-chat-start-screen__starters {
345
+ .agent-chat-start-screen__starters,
346
+ .agent-chat-start-screen__lead {
332
347
  transition:
333
348
  opacity var(--sigvelo-motion-duration-disclosure) var(--sigvelo-ease-snappy),
334
349
  translate var(--sigvelo-motion-duration-disclosure) var(--sigvelo-ease-snappy),
@@ -344,7 +359,9 @@
344
359
  /* Starters are buttons, so fading them is not enough — invisible controls that
345
360
  still take a click or a Tab stop are worse than visible ones. */
346
361
  .agent-chat-start-screen__content:has(textarea:not(:placeholder-shown))
347
- .agent-chat-start-screen__starters {
362
+ .agent-chat-start-screen__starters,
363
+ .agent-chat-start-screen__content:has(textarea:not(:placeholder-shown))
364
+ .agent-chat-start-screen__lead {
348
365
  visibility: hidden;
349
366
  opacity: 0;
350
367
  }
@@ -358,8 +375,13 @@
358
375
  inset-inline: 0;
359
376
  inset-block-end: 0;
360
377
  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));
378
+ /* Same column as the transcript (Codex px-toolbar). The pill's own
379
+ padding lives on .prompt-input. */
380
+ padding-inline: max(
381
+ var(--agent-chat-column-inset, var(--sigvelo-spacing-4)),
382
+ env(safe-area-inset-left, 0px)
383
+ )
384
+ max(var(--agent-chat-column-inset, var(--sigvelo-spacing-4)), env(safe-area-inset-right, 0px));
363
385
  }
364
386
 
365
387
  /* Solid behind the composer itself, dissolving upward so passing transcript
@@ -382,7 +404,10 @@
382
404
 
383
405
  .agent-chat__composer > .prompt-input {
384
406
  z-index: 1;
385
- inline-size: min(100%, var(--agent-chat-content-max-inline-size, 64rem));
407
+ inline-size: min(
408
+ 100%,
409
+ var(--agent-chat-content-max-inline-size, var(--sigvelo-measure-wide-block))
410
+ );
386
411
  margin-inline: auto;
387
412
  padding-block: var(--sigvelo-spacing-3);
388
413
  }
@@ -393,7 +418,7 @@
393
418
  align-items: center;
394
419
  gap: var(--sigvelo-spacing-1-5);
395
420
  margin-block-end: var(--sigvelo-spacing-2);
396
- font-size: var(--sigvelo-text-xs);
421
+ font-size: var(--sigvelo-text-meta);
397
422
  color: var(--sigvelo-color-text-muted);
398
423
  }
399
424
 
@@ -407,7 +432,8 @@
407
432
  flex-direction: column;
408
433
  align-items: stretch;
409
434
  inline-size: calc(
410
- min(100%, var(--agent-chat-content-max-inline-size, 64rem)) - var(--sigvelo-spacing-10)
435
+ min(100%, var(--agent-chat-content-max-inline-size, var(--sigvelo-measure-wide-block))) -
436
+ var(--sigvelo-spacing-10)
411
437
  );
412
438
  margin-inline: auto;
413
439
  }
@@ -431,8 +457,8 @@
431
457
  padding-block: 0;
432
458
  padding-inline: var(--sigvelo-spacing-2-5);
433
459
  color: var(--sigvelo-color-text);
434
- font-size: var(--sigvelo-text-compact);
435
- line-height: var(--sigvelo-leading-snug);
460
+ font-size: var(--sigvelo-text-prose);
461
+ line-height: var(--sigvelo-text-prose-leading);
436
462
  }
437
463
 
438
464
  .agent-chat__queued-indicator {
@@ -496,13 +522,14 @@
496
522
  border-radius: var(--sigvelo-radius-lg);
497
523
  }
498
524
 
525
+ /* Wrap floor so retry actions stay on their own line. Not --sigvelo-layout-sidebar. */
499
526
  .agent-chat__turn-error-message {
500
527
  min-inline-size: min(100%, 16rem);
501
528
  flex: 1;
502
529
  margin: 0;
503
530
  overflow-wrap: anywhere;
504
- font-size: var(--sigvelo-text-sm);
505
- line-height: var(--sigvelo-leading-normal);
531
+ font-size: var(--sigvelo-text-prose);
532
+ line-height: var(--sigvelo-text-prose-leading);
506
533
  }
507
534
 
508
535
  .agent-chat__turn-error-actions {
@@ -537,7 +564,8 @@
537
564
  alignment off width top-aligned the start screen in a pane with hundreds of
538
565
  spare pixels under it. Only the height query below drops the centring, and
539
566
  only where there is genuinely no room for it. */
540
- @container agent-chat (width <= 36rem) {
567
+ /* Local wrap. Not --sigvelo-layout-break-compact. */
568
+ @container agent-chat (inline-size <= 36rem) {
541
569
  .agent-chat__transcript-content {
542
570
  /* A notch pushes the first row down only as far as it must: the desktop
543
571
  inset already clears shallow insets, so only deeper ones add height. */
@@ -546,21 +574,22 @@
546
574
  calc(var(--sigvelo-spacing-5) + env(safe-area-inset-top, 0px))
547
575
  );
548
576
 
577
+ --agent-chat-used-column-inset: var(--agent-chat-column-inset, var(--sigvelo-spacing-2));
549
578
  inline-size: min(
550
- 100% - 2 * var(--sigvelo-spacing-3),
551
- var(--agent-chat-content-max-inline-size, 64rem)
579
+ calc(100% - 2 * var(--agent-chat-used-column-inset)),
580
+ var(--agent-chat-content-max-inline-size, var(--sigvelo-measure-wide-block))
552
581
  );
553
- padding-inline: var(--sigvelo-spacing-3);
554
- }
555
-
556
- .agent-chat .message[data-from="assistant"] .message__content {
557
- inline-size: 100%;
582
+ /* Codex Chrome extension: [--padding-toolbar:calc(var(--spacing)*2)] = 8px. */
583
+ padding-inline: var(--agent-chat-used-column-inset);
558
584
  }
559
585
 
560
586
  .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));
587
+ padding-block-end: max(var(--sigvelo-layout-stack), env(safe-area-inset-bottom, 0px));
588
+ padding-inline: max(
589
+ var(--agent-chat-column-inset, var(--sigvelo-spacing-2)),
590
+ env(safe-area-inset-left, 0px)
591
+ )
592
+ max(var(--agent-chat-column-inset, var(--sigvelo-spacing-2)), env(safe-area-inset-right, 0px));
564
593
  }
565
594
 
566
595
  .agent-chat-start-screen__content {
@@ -568,7 +597,7 @@
568
597
  }
569
598
 
570
599
  .agent-chat-start-screen__heading {
571
- font-size: var(--sigvelo-text-2xl);
600
+ font-size: var(--sigvelo-text-lg);
572
601
  }
573
602
 
574
603
  .agent-chat-starter__label {
@@ -578,14 +607,6 @@
578
607
  }
579
608
  }
580
609
 
581
- /* Side-panel widths: tray labels yield to the icons; each action keeps its
582
- accessible name. */
583
- @container agent-chat (width <= 30rem) {
584
- .agent-chat-start-screen__composer-tray > .button > span:not(.app-icon-stack) {
585
- display: none;
586
- }
587
- }
588
-
589
610
  @media (max-height: 40rem) {
590
611
  .agent-chat-start-screen__content {
591
612
  --agent-chat-start-screen-padding-block: var(--sigvelo-spacing-5);
@@ -597,7 +618,8 @@
597
618
  grid-row: 1;
598
619
  }
599
620
 
600
- .agent-chat-start-screen__starters {
621
+ .agent-chat-start-screen__starters,
622
+ .agent-chat-start-screen__lead {
601
623
  grid-row: 2;
602
624
  }
603
625
  }
@@ -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);
@@ -8,20 +8,16 @@
8
8
  once; the bar adds the safe-area inset itself, so the hook stays a plain
9
9
  content height. */
10
10
  min-block-size: calc(
11
- var(
12
- --app-top-bar-block-size,
13
- calc(var(--sigvelo-density-compact-control-height) + var(--sigvelo-spacing-2))
14
- ) +
15
- env(safe-area-inset-top, 0px)
11
+ var(--app-top-bar-block-size, var(--sigvelo-layout-chrome)) + env(safe-area-inset-top, 0px)
16
12
  );
17
13
  display: grid;
18
- grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
14
+ grid-template-columns: var(--sigvelo-layout-track-fill) auto var(--sigvelo-layout-track-fill);
19
15
  align-items: center;
20
16
  gap: var(--sigvelo-density-compact-control-gap);
21
17
  padding-block: calc(var(--sigvelo-spacing-1) + env(safe-area-inset-top, 0px))
22
18
  var(--sigvelo-spacing-1);
23
- padding-inline: calc(var(--sigvelo-spacing-2) + env(safe-area-inset-left, 0px))
24
- calc(var(--sigvelo-spacing-2) + env(safe-area-inset-right, 0px));
19
+ padding-inline: calc(var(--sigvelo-layout-gutter) + env(safe-area-inset-left, 0px))
20
+ calc(var(--sigvelo-layout-gutter) + env(safe-area-inset-right, 0px));
25
21
  border: 0;
26
22
  border-radius: 0;
27
23
  /* No surface of its own: the bar occupies a layout row, so whatever plane
@@ -64,7 +60,7 @@
64
60
  way — one hairline and a breath of shadow, still no fill. */
65
61
  .app-top-bar[data-title-align="start"] {
66
62
  position: relative;
67
- grid-template-columns: auto auto minmax(0, 1fr);
63
+ grid-template-columns: auto auto var(--sigvelo-layout-track-fill);
68
64
  border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
69
65
  var(--sigvelo-color-neutral-border-subtle);
70
66
  box-shadow: var(--sigvelo-elevation-bar);
@@ -11,6 +11,7 @@
11
11
  .approval__header {
12
12
  display: flex;
13
13
  align-items: baseline;
14
+ /* Widget density, not --sigvelo-layout-cluster. */
14
15
  gap: var(--sigvelo-spacing-2);
15
16
  line-height: var(--sigvelo-leading-snug);
16
17
  }
@@ -15,9 +15,9 @@
15
15
  display: flex;
16
16
  align-items: flex-start;
17
17
  justify-content: space-between;
18
- gap: var(--sigvelo-spacing-3);
19
- padding-block: var(--sigvelo-spacing-3);
20
- padding-inline: var(--sigvelo-spacing-4);
18
+ gap: var(--sigvelo-layout-gutter);
19
+ padding-block: var(--sigvelo-layout-cluster);
20
+ padding-inline: var(--sigvelo-layout-gutter);
21
21
  background-color: var(--sigvelo-color-surface);
22
22
  }
23
23
 
@@ -54,8 +54,8 @@
54
54
  }
55
55
 
56
56
  .artifact__content {
57
- padding-block: var(--sigvelo-spacing-4);
58
- padding-inline: var(--sigvelo-spacing-4);
57
+ padding-block: var(--sigvelo-layout-stack);
58
+ padding-inline: var(--sigvelo-layout-gutter);
59
59
  font-size: var(--sigvelo-text-sm);
60
60
  line-height: var(--sigvelo-leading-normal);
61
61
  overflow-wrap: anywhere;
@@ -104,7 +104,7 @@
104
104
  justify-content: center;
105
105
  flex-wrap: wrap;
106
106
  gap: var(--sigvelo-spacing-2);
107
- padding: var(--sigvelo-spacing-4);
107
+ padding: var(--sigvelo-layout-stack);
108
108
  color: var(--sigvelo-color-text-muted);
109
109
  text-align: center;
110
110
  }
@@ -2,14 +2,15 @@
2
2
  Scoped as .dialog__popup.attachment-preview so it beats the base dialog
3
3
  sizing regardless of import order. */
4
4
  .dialog__popup.attachment-preview {
5
- width: fit-content;
6
- max-width: min(90vw, 56rem);
5
+ inline-size: fit-content;
6
+ /* Lightbox measure. Not --sigvelo-layout-break-compact. */
7
+ max-inline-size: min(90dvi, 56rem);
7
8
  }
8
9
 
9
10
  .attachment-preview__image {
10
11
  display: block;
11
- max-width: 100%;
12
- max-height: 70vh;
12
+ max-inline-size: 100%;
13
+ max-block-size: 70dvb;
13
14
  border-radius: var(--sigvelo-radius-md);
14
15
  }
15
16
 
@@ -4,7 +4,7 @@
4
4
  .browser-replay {
5
5
  display: flex;
6
6
  flex-direction: column;
7
- width: 100%;
7
+ inline-size: 100%;
8
8
  font-family: inherit;
9
9
  color: var(--sigvelo-color-text);
10
10
  background-color: var(--sigvelo-color-surface);
@@ -16,7 +16,7 @@
16
16
 
17
17
  .browser-replay__stage-wrap {
18
18
  position: relative;
19
- width: 100%;
19
+ inline-size: 100%;
20
20
  aspect-ratio: 16 / 10;
21
21
  background-color: var(--sigvelo-color-neutral-bg-subtle);
22
22
  overflow: hidden;
@@ -44,9 +44,9 @@
44
44
  .browser-replay__controls {
45
45
  display: flex;
46
46
  align-items: center;
47
- gap: var(--sigvelo-spacing-2-5);
48
- padding-block: var(--sigvelo-spacing-2);
49
- padding-inline: var(--sigvelo-spacing-3);
47
+ gap: var(--sigvelo-layout-cluster);
48
+ padding-block: var(--sigvelo-layout-cluster);
49
+ padding-inline: var(--sigvelo-layout-gutter);
50
50
  border-block-start: var(--sigvelo-border-style) var(--sigvelo-border-width)
51
51
  var(--sigvelo-color-neutral-border-subtle);
52
52
  background-color: var(--sigvelo-color-surface);
@@ -60,7 +60,7 @@
60
60
 
61
61
  .browser-replay__scrubber {
62
62
  flex: 1;
63
- min-width: 0;
63
+ min-inline-size: 0;
64
64
  }
65
65
 
66
66
  .browser-replay__time {
@@ -85,6 +85,7 @@
85
85
  /* The panel owns the space allotted to whichever direct surface it hosts. */
86
86
  .browser-run-panel__body > * {
87
87
  flex: 1;
88
+ /* Hosted preview floor. Not --sigvelo-layout-sidebar. */
88
89
  min-block-size: 16rem;
89
90
  }
90
91
 
@@ -38,10 +38,7 @@
38
38
  flex: none;
39
39
  }
40
40
 
41
- /* ponytail: one brightness rule covers press feedback for every variant;
42
- upgrade to per-variant color-mix rules if filter side effects ever bite */
43
41
  .button:active:not([data-disabled]) {
44
- filter: brightness(0.94);
45
42
  translate: 0 var(--sigvelo-motion-distance-xs);
46
43
  }
47
44
 
@@ -65,7 +62,11 @@
65
62
  }
66
63
 
67
64
  .button--normal.button--primary:hover:not([data-disabled]) {
68
- background-color: color-mix(in oklab, var(--sigvelo-color-primary-bg), black 5%);
65
+ background-color: var(--sigvelo-color-primary-bg-hover);
66
+ }
67
+
68
+ .button--normal.button--primary:active:not([data-disabled]) {
69
+ background-color: var(--sigvelo-color-primary-bg-press);
69
70
  }
70
71
 
71
72
  .button--normal.button--neutral {
@@ -74,7 +75,11 @@
74
75
  }
75
76
 
76
77
  .button--normal.button--neutral:hover:not([data-disabled]) {
77
- background-color: color-mix(in oklab, var(--sigvelo-color-neutral-bg-subtle), black 5%);
78
+ background-color: var(--sigvelo-color-neutral-bg-hover);
79
+ }
80
+
81
+ .button--normal.button--neutral:active:not([data-disabled]) {
82
+ background-color: var(--sigvelo-color-neutral-bg-press);
78
83
  }
79
84
 
80
85
  .button--normal.button--destructive {
@@ -83,7 +88,11 @@
83
88
  }
84
89
 
85
90
  .button--normal.button--destructive:hover:not([data-disabled]) {
86
- background-color: color-mix(in oklab, var(--sigvelo-color-danger-bg), black 5%);
91
+ background-color: var(--sigvelo-color-danger-bg-hover);
92
+ }
93
+
94
+ .button--normal.button--destructive:active:not([data-disabled]) {
95
+ background-color: var(--sigvelo-color-danger-bg-press);
87
96
  }
88
97
 
89
98
  /* Outline appearance */
@@ -3,14 +3,14 @@
3
3
  color: var(--sigvelo-color-text);
4
4
  /* Shadow-led elevation: the hairline ring in the stack is the perimeter. */
5
5
  border-radius: var(--sigvelo-radius-lg);
6
- padding: var(--sigvelo-spacing-4);
6
+ padding: var(--sigvelo-layout-stack);
7
7
  box-shadow: var(--sigvelo-elevation-raised);
8
8
  transition: box-shadow var(--sigvelo-motion-duration-interaction)
9
9
  var(--sigvelo-motion-ease-change);
10
10
  }
11
11
 
12
12
  .card[data-size="sm"] {
13
- padding: var(--sigvelo-spacing-3);
13
+ padding: var(--sigvelo-layout-gutter);
14
14
  border-radius: var(--sigvelo-radius-md);
15
15
  }
16
16
 
@@ -39,13 +39,13 @@
39
39
  .card__header {
40
40
  display: grid;
41
41
  grid-template-rows: auto auto;
42
- grid-template-columns: minmax(0, 1fr);
42
+ grid-template-columns: var(--sigvelo-layout-track-fill);
43
43
  align-items: start;
44
- margin-block-end: var(--sigvelo-spacing-3);
44
+ margin-block-end: var(--sigvelo-layout-gutter);
45
45
  }
46
46
 
47
47
  .card__header:has(.card__action) {
48
- grid-template-columns: minmax(0, 1fr) auto;
48
+ grid-template-columns: var(--sigvelo-layout-track-fill) auto;
49
49
  }
50
50
 
51
51
  .card__action {
@@ -67,7 +67,7 @@
67
67
  z-index: 1;
68
68
  display: flex;
69
69
  justify-content: center;
70
- margin-block-start: var(--sigvelo-spacing-4);
70
+ margin-block-start: var(--sigvelo-layout-stack);
71
71
  }
72
72
 
73
73
  .chatgpt-sign-in__error {