@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
@@ -4,11 +4,8 @@
4
4
  paints. */
5
5
  .responsive-sidebar-shell {
6
6
  container: responsive-sidebar-shell / inline-size;
7
- block-size: 100%;
8
- min-inline-size: 0;
9
- min-block-size: 0;
10
7
  display: grid;
11
- grid-template-rows: minmax(0, 1fr);
8
+ grid-template-rows: var(--sigvelo-layout-track-fill);
12
9
  background: var(--sigvelo-color-surface);
13
10
  }
14
11
 
@@ -21,8 +18,10 @@
21
18
  min-inline-size: 0;
22
19
  min-block-size: 0;
23
20
  display: grid;
24
- grid-template-columns: var(--resizable-side-panel-size, 16rem) minmax(0, 1fr);
25
- grid-template-rows: minmax(0, 1fr);
21
+ grid-template-columns:
22
+ var(--responsive-sidebar-shell-sidebar-size, var(--sigvelo-layout-sidebar))
23
+ var(--sigvelo-layout-track-fill);
24
+ grid-template-rows: var(--sigvelo-layout-track-fill);
26
25
  overflow: hidden;
27
26
  color: var(--sigvelo-color-text);
28
27
  font-family: inherit;
@@ -55,13 +54,42 @@
55
54
  display: grid;
56
55
  /* The bar's own row, so it never overlaps the content it labels. Auto, not a
57
56
  reserved height: a shell with no bar keeps the whole column for content. */
58
- grid-template-rows: auto minmax(0, 1fr);
57
+ grid-template-rows: auto var(--sigvelo-layout-track-fill);
59
58
  }
60
59
 
61
60
  .responsive-sidebar-shell__peek {
62
61
  display: none;
63
62
  }
64
63
 
64
+ /* Floats over the main column so an error never reflows the content it
65
+ annotates; the column stays the positioning context. */
66
+ .responsive-sidebar-shell__main {
67
+ position: relative;
68
+ }
69
+
70
+ .responsive-sidebar-shell__error {
71
+ position: absolute;
72
+ z-index: 2;
73
+ inset-block-start: var(--sigvelo-layout-gutter);
74
+ inset-inline: 50% auto;
75
+ max-inline-size: min(32rem, calc(100% - var(--sigvelo-layout-gutter) * 2));
76
+ padding: var(--sigvelo-layout-cluster) var(--sigvelo-layout-gutter);
77
+ border: var(--sigvelo-border-style) var(--sigvelo-border-width)
78
+ var(--sigvelo-color-danger-border-subtle);
79
+ border-radius: var(--sigvelo-radius-sm);
80
+ translate: -50% 0;
81
+ display: flex;
82
+ align-items: center;
83
+ gap: var(--sigvelo-spacing-2);
84
+ color: var(--sigvelo-color-danger-text);
85
+ background: var(--sigvelo-color-danger-bg-subtle);
86
+ font-size: var(--sigvelo-text-compact);
87
+ }
88
+
89
+ .responsive-sidebar-shell__error > svg {
90
+ flex: 0 0 auto;
91
+ }
92
+
65
93
  /* Wide widths show the plain title and the icon toggle; the compact trigger
66
94
  only exists below the drawer breakpoint, where the title itself becomes the
67
95
  control that opens the sidebar. */
@@ -86,7 +114,7 @@
86
114
  }
87
115
 
88
116
  .responsive-sidebar-shell[data-sidebar-open="false"] > .responsive-sidebar-shell__frame {
89
- grid-template-columns: minmax(0, 1fr);
117
+ grid-template-columns: var(--sigvelo-layout-track-fill);
90
118
  }
91
119
 
92
120
  .responsive-sidebar-shell[data-sidebar-open="false"]
@@ -106,9 +134,14 @@
106
134
  grid-column: 1;
107
135
  }
108
136
 
137
+ /* 56rem matches --sigvelo-layout-break-compact. Container queries cannot read var(). */
109
138
  @container responsive-sidebar-shell (inline-size <= 56rem) {
110
139
  .responsive-sidebar-shell__frame {
111
- grid-template-columns: minmax(0, 1fr);
140
+ --responsive-sidebar-compact-bar-size: calc(
141
+ var(--app-top-bar-block-size, var(--sigvelo-layout-chrome)) + env(safe-area-inset-top, 0px)
142
+ );
143
+
144
+ grid-template-columns: var(--sigvelo-layout-track-fill);
112
145
  }
113
146
 
114
147
  .responsive-sidebar-shell__sidebar,
@@ -121,12 +154,16 @@
121
154
  position: relative;
122
155
  z-index: calc(var(--sigvelo-z-chrome) + 3);
123
156
  inset-inline-start: 50%;
124
- inline-size: min(calc(100cqi - var(--sigvelo-spacing-3)), 34rem);
157
+ inline-size: min(calc(100cqi - var(--sigvelo-layout-gutter)), 34rem);
125
158
  max-inline-size: none;
126
159
  block-size: auto;
127
- max-block-size: min(32rem, calc(100% - var(--sigvelo-spacing-3)));
160
+ max-block-size: min(
161
+ 32rem,
162
+ calc(100% - var(--responsive-sidebar-compact-bar-size) - var(--sigvelo-layout-gutter))
163
+ );
128
164
  align-self: start;
129
- margin-block-start: var(--sigvelo-spacing-1);
165
+ /* Sit under the title trigger. Covering it ate the click that closes it. */
166
+ margin-block-start: calc(var(--responsive-sidebar-compact-bar-size) + var(--sigvelo-spacing-1));
130
167
  overflow: hidden;
131
168
  border-radius: var(--sigvelo-radius-lg);
132
169
  background-color: var(--sigvelo-color-surface-raised);
@@ -149,11 +186,10 @@
149
186
 
150
187
  /* The title stands in for both its own text and the icon toggle: one
151
188
  labelled control that opens the drawer, instead of an anonymous icon
152
- beside a dead title. Shallow owner classes keep this independent of the
153
- app bar's incidental DOM anatomy. */
154
- .responsive-sidebar-shell__toggle--replaced-by-title,
155
- .responsive-sidebar-shell__toggle--replaced-by-compact-leading,
156
- .responsive-sidebar-shell__title-text--replaced-by-trigger {
189
+ beside a dead title. The bar names its compact takeover once
190
+ (`data-compact-leading`) instead of tagging each hidden control. */
191
+ [data-compact-leading] .responsive-sidebar-shell__toggle,
192
+ [data-compact-leading="trigger"] .responsive-sidebar-shell__title-text {
157
193
  display: none;
158
194
  }
159
195
 
@@ -204,17 +240,12 @@
204
240
  transition-timing-function: var(--sigvelo-motion-ease-exit);
205
241
  }
206
242
 
207
- .responsive-sidebar-shell[data-sidebar-open="true"]
208
- > .responsive-sidebar-shell__frame
209
- > .responsive-sidebar-shell__main {
210
- pointer-events: none;
211
- }
212
-
213
243
  .responsive-sidebar-shell[data-sidebar-open="true"]
214
244
  > .responsive-sidebar-shell__frame
215
245
  > .responsive-sidebar-shell__peek {
216
246
  position: absolute;
217
- inset-block: 0;
247
+ inset-block-start: var(--responsive-sidebar-compact-bar-size);
248
+ inset-block-end: 0;
218
249
  inset-inline: 0;
219
250
  z-index: calc(var(--sigvelo-z-chrome) + 2);
220
251
  display: block;
@@ -4,12 +4,12 @@
4
4
  }
5
5
 
6
6
  .separator--horizontal {
7
- width: 100%;
8
- height: 1px;
7
+ inline-size: 100%;
8
+ block-size: 1px;
9
9
  }
10
10
 
11
11
  .separator--vertical {
12
- width: 1px;
13
- height: 100%;
14
- min-height: 1rem;
12
+ inline-size: 1px;
13
+ block-size: 100%;
14
+ min-block-size: 1rem;
15
15
  }
@@ -30,7 +30,7 @@
30
30
  align-items: flex-start;
31
31
  gap: var(--sigvelo-spacing-1-5);
32
32
  padding-block: var(--sigvelo-spacing-1-5);
33
- padding-inline: var(--sigvelo-spacing-2);
33
+ padding-inline: 0;
34
34
  color: var(--sigvelo-color-text);
35
35
  background-color: var(--sigvelo-color-surface);
36
36
  border: var(--sigvelo-border-style) var(--sigvelo-border-width)
@@ -67,13 +67,13 @@
67
67
  }
68
68
 
69
69
  .sources__link-title {
70
- font-size: var(--sigvelo-text-compact);
70
+ font-size: var(--sigvelo-text-prose);
71
71
  font-weight: var(--sigvelo-font-weight-semibold);
72
72
  color: var(--sigvelo-color-text);
73
73
  }
74
74
 
75
75
  .sources__link-description {
76
- font-size: var(--sigvelo-text-xs);
76
+ font-size: var(--sigvelo-text-meta);
77
77
  color: var(--sigvelo-color-text-muted);
78
78
  line-height: var(--sigvelo-leading-snug);
79
79
  overflow: hidden;
@@ -84,7 +84,7 @@
84
84
  }
85
85
 
86
86
  .sources__link-host {
87
- font-size: var(--sigvelo-text-2xs);
87
+ font-size: var(--sigvelo-text-meta);
88
88
  color: var(--sigvelo-color-text-muted);
89
89
  font-variant-numeric: tabular-nums;
90
90
  }
@@ -189,6 +189,7 @@
189
189
  }
190
190
 
191
191
  .stepper__content[data-spacing="compact"] {
192
+ /* Explicit density variant, not --sigvelo-layout-stack. */
192
193
  gap: var(--sigvelo-spacing-4);
193
194
  }
194
195
 
@@ -54,7 +54,8 @@ button[data-streamdown="link"] {
54
54
 
55
55
  /* ---- Block typography ---- */
56
56
 
57
- /* Chat-scale headings: markdown headings inside a message shouldn't shout. */
57
+ /* One heading ladder for every markdown surface (chat and workspace). Body
58
+ text stays --sigvelo-text-prose; only headings step up. */
58
59
  [data-streamdown="heading-1"],
59
60
  [data-streamdown="heading-2"],
60
61
  [data-streamdown="heading-3"],
@@ -62,17 +63,26 @@ button[data-streamdown="link"] {
62
63
  [data-streamdown="heading-5"],
63
64
  [data-streamdown="heading-6"] {
64
65
  margin-block: var(--sigvelo-spacing-3) var(--sigvelo-spacing-1-5);
65
- font-size: var(--sigvelo-text-base);
66
+ font-size: var(--sigvelo-text-prose);
66
67
  font-weight: var(--sigvelo-font-weight-semibold);
68
+ line-height: var(--sigvelo-text-prose-leading);
69
+ }
70
+
71
+ [data-streamdown="heading-3"] {
72
+ font-size: var(--sigvelo-text-base);
67
73
  line-height: var(--sigvelo-text-base-leading);
68
74
  }
69
75
 
70
- [data-streamdown="heading-1"],
71
76
  [data-streamdown="heading-2"] {
72
77
  font-size: var(--sigvelo-text-lg);
73
78
  line-height: var(--sigvelo-text-lg-leading);
74
79
  }
75
80
 
81
+ [data-streamdown="heading-1"] {
82
+ font-size: var(--sigvelo-text-xl);
83
+ line-height: var(--sigvelo-text-xl-leading);
84
+ }
85
+
76
86
  [data-streamdown="blockquote"] {
77
87
  margin-block: var(--sigvelo-spacing-2);
78
88
  padding-inline-start: var(--sigvelo-spacing-3);
@@ -111,7 +121,7 @@ button[data-streamdown="link"] {
111
121
 
112
122
  .message__response img {
113
123
  display: inline-block;
114
- max-width: 100%;
124
+ max-inline-size: 100%;
115
125
  margin-block: var(--sigvelo-spacing-2);
116
126
  border-radius: var(--sigvelo-radius-md);
117
127
  }
@@ -166,7 +176,7 @@ button[data-streamdown="link"] {
166
176
  display: flex;
167
177
  flex-direction: column;
168
178
  gap: var(--sigvelo-spacing-1);
169
- width: 100%;
179
+ inline-size: 100%;
170
180
  margin-block: var(--sigvelo-spacing-2);
171
181
  padding: var(--sigvelo-spacing-1-5);
172
182
  border-radius: var(--sigvelo-radius-lg);
@@ -176,10 +186,10 @@ button[data-streamdown="link"] {
176
186
  [data-streamdown="code-block-header"] {
177
187
  display: flex;
178
188
  align-items: center;
179
- min-height: 1.5rem;
189
+ min-block-size: 1.5rem;
180
190
  padding-inline: var(--sigvelo-spacing-2);
181
191
  font-family: var(--sigvelo-font-mono);
182
- font-size: var(--sigvelo-text-xs);
192
+ font-size: var(--sigvelo-text-meta);
183
193
  text-transform: lowercase;
184
194
  color: var(--sigvelo-color-text-muted);
185
195
  }
@@ -189,12 +199,12 @@ button[data-streamdown="link"] {
189
199
  :is([data-streamdown="code-block"], [data-streamdown="mermaid-block"])
190
200
  > div:has(> [data-streamdown$="-block-actions"]) {
191
201
  position: sticky;
192
- top: 0.25rem;
202
+ inset-block-start: 0.25rem;
193
203
  z-index: 1;
194
204
  display: flex;
195
205
  align-items: center;
196
206
  justify-content: flex-end;
197
- height: 1.5rem;
207
+ block-size: 1.5rem;
198
208
  margin-block-start: -1.75rem;
199
209
  pointer-events: none;
200
210
  }
@@ -222,8 +232,8 @@ button[data-streamdown="link"] {
222
232
  padding-inline: var(--sigvelo-spacing-2);
223
233
  background-color: transparent;
224
234
  font-family: var(--sigvelo-font-mono);
225
- font-size: var(--sigvelo-text-compact);
226
- line-height: var(--sigvelo-leading-normal);
235
+ font-size: var(--sigvelo-text-code);
236
+ line-height: var(--sigvelo-text-code-leading);
227
237
  overflow: visible;
228
238
  }
229
239
 
@@ -234,7 +244,7 @@ button[data-streamdown="link"] {
234
244
  }
235
245
 
236
246
  [data-streamdown="mermaid"] {
237
- width: 100%;
247
+ inline-size: 100%;
238
248
  }
239
249
 
240
250
  /* ---- Tables ---- */
@@ -263,9 +273,9 @@ button[data-streamdown="link"] {
263
273
  }
264
274
 
265
275
  [data-streamdown="table"] {
266
- width: 100%;
276
+ inline-size: 100%;
267
277
  border-collapse: collapse;
268
- font-size: var(--sigvelo-text-sm);
278
+ font-size: var(--sigvelo-text-prose);
269
279
  }
270
280
 
271
281
  [data-streamdown="table-header-cell"],
@@ -296,7 +306,7 @@ button[data-streamdown="link"] {
296
306
  [data-streamdown="table-fullscreen"] > div {
297
307
  display: flex;
298
308
  flex-direction: column;
299
- height: 100%;
309
+ block-size: 100%;
300
310
  }
301
311
 
302
312
  [data-streamdown="table-fullscreen"] > div > div:first-child {
@@ -316,7 +326,7 @@ button[data-streamdown="link"] {
316
326
 
317
327
  [data-streamdown="table-fullscreen"] thead {
318
328
  position: sticky;
319
- top: 0;
329
+ inset-block-start: 0;
320
330
  z-index: 1;
321
331
  background-color: var(--sigvelo-color-surface);
322
332
  }
@@ -342,12 +352,12 @@ button[data-streamdown="link"] {
342
352
  )
343
353
  .absolute {
344
354
  position: absolute;
345
- top: 100%;
346
- right: 0;
355
+ inset-block-start: 100%;
356
+ inset-inline-end: 0;
347
357
  z-index: var(--sigvelo-z-chrome);
348
358
  display: flex;
349
359
  flex-direction: column;
350
- min-width: 7.5rem;
360
+ min-inline-size: 7.5rem;
351
361
  margin-block-start: var(--sigvelo-spacing-1);
352
362
  overflow: hidden;
353
363
  /* Draws its edge from the overlay ring at the same radius as every other
@@ -365,11 +375,11 @@ button[data-streamdown="link"] {
365
375
  .absolute
366
376
  > button {
367
377
  justify-content: flex-start;
368
- width: 100%;
378
+ inline-size: 100%;
369
379
  padding-block: var(--sigvelo-spacing-1-5);
370
380
  padding-inline: var(--sigvelo-spacing-3);
371
381
  border-radius: 0;
372
- font-size: var(--sigvelo-text-sm);
382
+ font-size: var(--sigvelo-text-prose);
373
383
  color: var(--sigvelo-color-text);
374
384
  }
375
385
 
@@ -181,6 +181,7 @@
181
181
  }
182
182
 
183
183
  .tabs--bordered .tabs__panel {
184
+ /* Primitive panel inset, not --sigvelo-layout-stack. */
184
185
  padding: var(--sigvelo-spacing-4);
185
186
  }
186
187
 
@@ -5,7 +5,7 @@
5
5
  inline-size: 100%;
6
6
  min-block-size: var(--sigvelo-control-height-xs);
7
7
  padding-block: var(--sigvelo-spacing-0-5);
8
- padding-inline: var(--sigvelo-spacing-2);
8
+ padding-inline: 0;
9
9
  /* Ploy-style: hairline outline on the canvas, plain content inside */
10
10
  background-color: transparent;
11
11
  border: var(--sigvelo-border-style) var(--sigvelo-border-width)
@@ -13,7 +13,7 @@
13
13
  border-radius: var(--sigvelo-radius-md);
14
14
  color: var(--sigvelo-color-text-muted);
15
15
  font-family: inherit;
16
- font-size: var(--sigvelo-text-compact);
16
+ font-size: var(--sigvelo-text-prose);
17
17
  font-weight: var(--sigvelo-font-weight-semibold);
18
18
  text-align: start;
19
19
  cursor: pointer;
@@ -55,7 +55,7 @@
55
55
  gap: var(--sigvelo-spacing-1-5);
56
56
  margin: 0;
57
57
  padding-block: var(--sigvelo-spacing-2);
58
- padding-inline: var(--sigvelo-spacing-3);
58
+ padding-inline: 0;
59
59
  list-style: none;
60
60
  /* Bounded so expanding never blows out the conversation scroll position */
61
61
  max-block-size: 20rem;
@@ -69,23 +69,11 @@
69
69
  }
70
70
 
71
71
  .task__item {
72
- position: relative;
73
- font-size: var(--sigvelo-text-compact);
72
+ font-size: var(--sigvelo-text-prose);
74
73
  color: var(--sigvelo-color-text);
75
74
  line-height: var(--sigvelo-leading-relaxed);
76
75
  }
77
76
 
78
- .task__item::before {
79
- content: "";
80
- position: absolute;
81
- inset-inline-start: calc(-1 * var(--sigvelo-spacing-2));
82
- inset-block-start: var(--sigvelo-spacing-2-5);
83
- inline-size: var(--sigvelo-spacing-1);
84
- block-size: var(--sigvelo-spacing-1);
85
- border-radius: var(--sigvelo-radius-full);
86
- background-color: var(--sigvelo-color-neutral-border-muted);
87
- }
88
-
89
77
  @media (any-pointer: coarse) {
90
78
  .task__trigger {
91
79
  min-block-size: var(--sigvelo-control-height-xl);
@@ -102,7 +90,7 @@
102
90
  background-color: var(--sigvelo-color-neutral-bg-subtle);
103
91
  border-radius: var(--sigvelo-radius-sm);
104
92
  font-family: var(--sigvelo-font-mono);
105
- font-size: var(--sigvelo-text-xs);
93
+ font-size: var(--sigvelo-text-meta);
106
94
  color: var(--sigvelo-color-text);
107
95
  vertical-align: baseline;
108
96
  }
@@ -1,7 +1,7 @@
1
1
  .terminal {
2
2
  display: flex;
3
3
  flex-direction: column;
4
- width: 100%;
4
+ inline-size: 100%;
5
5
  font-family: inherit;
6
6
  background-color: var(--sigvelo-color-neutral-950, var(--sigvelo-color-neutral-900));
7
7
  color: var(--sigvelo-color-neutral-100);
@@ -12,9 +12,9 @@
12
12
  .terminal__header {
13
13
  display: flex;
14
14
  align-items: center;
15
- gap: var(--sigvelo-spacing-2);
16
- padding-block: var(--sigvelo-spacing-2);
17
- padding-inline: var(--sigvelo-spacing-3);
15
+ gap: var(--sigvelo-layout-cluster);
16
+ padding-block: var(--sigvelo-layout-cluster);
17
+ padding-inline: var(--sigvelo-layout-gutter);
18
18
  background-color: color-mix(in oklab, var(--sigvelo-color-neutral-950) 80%, white 20%);
19
19
  border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
20
20
  color-mix(in oklab, var(--sigvelo-color-neutral-700) 40%, transparent);
@@ -62,13 +62,13 @@
62
62
 
63
63
  .terminal__content {
64
64
  flex: 1;
65
- max-height: 24rem;
66
- min-height: 8rem;
65
+ max-block-size: 24rem;
66
+ min-block-size: 8rem;
67
67
  }
68
68
 
69
69
  .terminal__content-viewport {
70
- width: 100%;
71
- height: 100%;
70
+ inline-size: 100%;
71
+ block-size: 100%;
72
72
  padding-block: var(--sigvelo-spacing-2-5);
73
73
  padding-inline: var(--sigvelo-spacing-3-5);
74
74
  overflow: auto;
@@ -86,8 +86,8 @@
86
86
 
87
87
  .terminal__cursor {
88
88
  display: inline-block;
89
- width: 0.5rem;
90
- height: 1em;
89
+ inline-size: 0.5rem;
90
+ block-size: 1em;
91
91
  vertical-align: text-bottom;
92
92
  background-color: var(--sigvelo-color-neutral-100);
93
93
  margin-inline-start: var(--sigvelo-spacing-0-5);
@@ -1,9 +1,9 @@
1
1
  .test-results__header {
2
2
  display: flex;
3
3
  flex-direction: column;
4
- gap: var(--sigvelo-spacing-2);
5
- padding-block: var(--sigvelo-spacing-2);
6
- padding-inline: var(--sigvelo-spacing-3);
4
+ gap: var(--sigvelo-layout-cluster);
5
+ padding-block: var(--sigvelo-layout-cluster);
6
+ padding-inline: var(--sigvelo-layout-gutter);
7
7
  border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
8
8
  var(--sigvelo-color-neutral-border-subtle);
9
9
  }
@@ -163,7 +163,7 @@
163
163
  align-items: center;
164
164
  gap: var(--sigvelo-spacing-1-5);
165
165
  padding-block: var(--sigvelo-spacing-1-5);
166
- padding-inline: var(--sigvelo-spacing-4);
166
+ padding-inline: var(--sigvelo-layout-gutter);
167
167
  font-size: var(--sigvelo-text-compact);
168
168
  border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
169
169
  var(--sigvelo-color-neutral-border-subtle);
@@ -230,8 +230,8 @@
230
230
 
231
231
  .test-results__error-text {
232
232
  margin: 0;
233
- padding-block: var(--sigvelo-spacing-2);
234
- padding-inline: var(--sigvelo-spacing-3);
233
+ padding-block: var(--sigvelo-layout-cluster);
234
+ padding-inline: var(--sigvelo-layout-gutter);
235
235
  font-family: var(--sigvelo-font-mono);
236
236
  font-size: var(--sigvelo-text-2xs);
237
237
  line-height: var(--sigvelo-leading-normal);
@@ -37,9 +37,9 @@
37
37
  min-inline-size: 0;
38
38
  inline-size: 100%;
39
39
  display: grid;
40
- grid-template-columns: auto minmax(0, 1fr);
40
+ grid-template-columns: auto var(--sigvelo-layout-track-fill);
41
41
  align-items: center;
42
- gap: var(--sigvelo-spacing-2);
42
+ gap: var(--sigvelo-layout-cluster);
43
43
  text-align: start;
44
44
  }
45
45
 
@@ -32,10 +32,10 @@
32
32
  .think-execution-workbench__error {
33
33
  position: absolute;
34
34
  z-index: 2;
35
- inset-block-start: var(--sigvelo-spacing-3);
35
+ inset-block-start: var(--sigvelo-layout-gutter);
36
36
  inset-inline: 50% auto;
37
- max-inline-size: min(32rem, calc(100% - 2rem));
38
- padding: var(--sigvelo-spacing-2) var(--sigvelo-spacing-3);
37
+ max-inline-size: min(32rem, calc(100% - var(--sigvelo-layout-gutter) * 2));
38
+ padding: var(--sigvelo-layout-cluster) var(--sigvelo-layout-gutter);
39
39
  border: var(--sigvelo-border-style) var(--sigvelo-border-width)
40
40
  var(--sigvelo-color-danger-border-subtle);
41
41
  border-radius: var(--sigvelo-radius-sm);
@@ -52,7 +52,7 @@
52
52
  min-block-size: 0;
53
53
  display: grid;
54
54
  flex: 1;
55
- grid-template-rows: minmax(0, 1fr);
55
+ grid-template-rows: var(--sigvelo-layout-track-fill);
56
56
  overflow: hidden;
57
57
  }
58
58
 
@@ -68,7 +68,7 @@
68
68
  .think-execution-workbench__list-header,
69
69
  .think-execution-workbench__list,
70
70
  .think-execution-workbench__empty {
71
- inline-size: min(100%, 50rem);
71
+ inline-size: min(100%, var(--sigvelo-layout-content));
72
72
  margin-inline: auto;
73
73
  }
74
74
 
@@ -76,9 +76,9 @@
76
76
  display: flex;
77
77
  align-items: center;
78
78
  justify-content: space-between;
79
- gap: var(--sigvelo-spacing-2);
79
+ gap: var(--sigvelo-layout-cluster);
80
80
  min-block-size: var(--sigvelo-control-height-lg);
81
- padding-inline: var(--sigvelo-spacing-3);
81
+ padding-inline: var(--sigvelo-layout-gutter);
82
82
  }
83
83
 
84
84
  .think-execution-workbench__list-header h3 {
@@ -90,7 +90,7 @@
90
90
 
91
91
  /* Same hairline-bounded band the routine library gives its empty run section. */
92
92
  .think-execution-workbench__empty {
93
- --sigvelo-recipe-empty-state-padding-block: var(--sigvelo-spacing-4);
93
+ --sigvelo-recipe-empty-state-padding-block: var(--sigvelo-layout-stack);
94
94
 
95
95
  border-block: var(--sigvelo-border-style) var(--sigvelo-border-width)
96
96
  var(--sigvelo-color-neutral-border-subtle);
@@ -107,7 +107,7 @@
107
107
 
108
108
  .think-execution-workbench__list > li {
109
109
  display: grid;
110
- grid-template-columns: minmax(0, 1fr) auto;
110
+ grid-template-columns: var(--sigvelo-layout-track-fill) auto;
111
111
  align-items: center;
112
112
  min-inline-size: 0;
113
113
  border-radius: var(--sigvelo-radius-md);
@@ -134,12 +134,9 @@
134
134
  .think-execution-detail {
135
135
  display: grid;
136
136
  align-content: start;
137
- gap: var(--sigvelo-spacing-4);
138
- /* The routine library's single-column measure and page padding. */
139
- inline-size: min(100%, 46rem);
140
- min-inline-size: 0;
141
- margin-inline: auto;
142
- padding: clamp(var(--sigvelo-spacing-4), 3vw, var(--sigvelo-spacing-8));
137
+ gap: var(--sigvelo-layout-stack);
138
+ /* `page` owns the measure and gutter; keep the roomier first-read block pad. */
139
+ --sigvelo-recipe-layout-stack: clamp(var(--sigvelo-layout-stack), 3vw, var(--sigvelo-spacing-8));
143
140
  }
144
141
 
145
142
  /* Only the container concerns — the block inside is `EmptyState`, and this