@mcp-b/react-components 0.40.0 → 0.41.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 (196) hide show
  1. package/dist/{AgentChat-CVO7xyLC.d.ts → AgentChat-DVr2giwD.d.ts} +1 -1
  2. package/dist/{AgentToolRunsContext-BCVqCtJ1.d.ts → AgentToolRunsContext-daY67hFM.d.ts} +12 -0
  3. package/dist/AppTopBar-ZdgmB_Lu.d.ts +97 -0
  4. package/dist/{CodeBlock-CWk1FVtm.js → CodeBlock-BjELA-_s.js} +1 -1
  5. package/dist/{FileTree-xqHYBw4g.js → FileTree-DMYRdT6R.js} +1 -1
  6. package/dist/McpConnectorForm-MRm1r59e.d.ts +39 -0
  7. package/dist/{Message-DBsHHhcM.d.ts → Message-D_vCVEGB.d.ts} +20 -1
  8. package/dist/{ThinkChatActivity-D6-_5Phw.d.ts → ThinkChatActivity-DyGHj01E.d.ts} +1 -1
  9. package/dist/{ThinkExecutionRun-lYYgyeE1.d.ts → ThinkExecutionRun-k8bpyXqt.d.ts} +3 -3
  10. package/dist/{ToggleGroup-_pQMyHGM.d.ts → ToggleGroup-BrQZOQn_.d.ts} +1 -1
  11. package/dist/Toolbar-CBOseBQr.d.ts +152 -0
  12. package/dist/{WorkspaceFileView-Lab3om3F.js → WorkspaceFileView-D0yFwoDr.js} +2 -2
  13. package/dist/{WorkspaceMessageResponse-Cy28WGSz.d.ts → WorkspaceMessageResponse-D66ty4FO.d.ts} +1 -1
  14. package/dist/components/agents-sdk/AgentActivity.js +1 -1
  15. package/dist/components/agents-sdk/AgentChat.d.ts +1 -1
  16. package/dist/components/agents-sdk/AgentChat.js +41 -18
  17. package/dist/components/agents-sdk/AgentToolRunsContext.d.ts +1 -1
  18. package/dist/components/agents-sdk/AgentToolRunsContext.js +12 -0
  19. package/dist/components/agents-sdk/BrowserLiveScreen.d.ts +135 -0
  20. package/dist/components/agents-sdk/BrowserLiveScreen.js +637 -0
  21. package/dist/components/agents-sdk/BrowserLiveView.d.ts +2 -2
  22. package/dist/components/agents-sdk/BrowserLiveView.js +6 -9
  23. package/dist/components/agents-sdk/BrowserReplay.js +1 -1
  24. package/dist/components/agents-sdk/BrowserRunPanel.d.ts +1 -1
  25. package/dist/components/agents-sdk/BrowserRunPanel.js +6 -12
  26. package/dist/components/agents-sdk/ManagerOffice.d.ts +156 -0
  27. package/dist/components/agents-sdk/ManagerOffice.js +662 -0
  28. package/dist/components/agents-sdk/McpConnectionRequest.js +3 -3
  29. package/dist/components/agents-sdk/McpConnectorForm.d.ts +1 -38
  30. package/dist/components/agents-sdk/McpPluginCatalog.d.ts +8 -2
  31. package/dist/components/agents-sdk/McpPluginCatalog.js +80 -62
  32. package/dist/components/agents-sdk/McpServerPicker.d.ts +1 -1
  33. package/dist/components/agents-sdk/McpServerPicker.js +2 -2
  34. package/dist/components/agents-sdk/ModelSelector.js +2 -2
  35. package/dist/components/agents-sdk/PromptInputCommands.js +1 -1
  36. package/dist/components/agents-sdk/SubagentRunDetails.d.ts +1 -9
  37. package/dist/components/agents-sdk/SubagentRunDetails.js +1 -9
  38. package/dist/components/agents-sdk/SubagentRunIndicator.js +1 -1
  39. package/dist/components/agents-sdk/SubagentRunSelector.d.ts +4 -2
  40. package/dist/components/agents-sdk/SubagentRunSelector.js +7 -6
  41. package/dist/components/agents-sdk/ThinkChat.d.ts +4 -4
  42. package/dist/components/agents-sdk/ThinkChat.js +1 -1
  43. package/dist/components/agents-sdk/ThinkChatActivity.d.ts +1 -1
  44. package/dist/components/agents-sdk/ThinkChatActivity.js +1 -1
  45. package/dist/components/agents-sdk/ThinkChatToolPanels.js +1 -1
  46. package/dist/components/agents-sdk/ThinkExecutionDetail.d.ts +1 -1
  47. package/dist/components/agents-sdk/ThinkExecutionDetail.js +43 -43
  48. package/dist/components/agents-sdk/ThinkExecutionRun.d.ts +2 -2
  49. package/dist/components/agents-sdk/ThinkExecutionRun.js +5 -6
  50. package/dist/components/agents-sdk/ThinkExecutionStatus.d.ts +1 -1
  51. package/dist/components/agents-sdk/ThinkExecutionStatus.js +8 -12
  52. package/dist/components/agents-sdk/ThinkExecutionWorkbench.d.ts +8 -1
  53. package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +42 -37
  54. package/dist/components/agents-sdk/ThinkFullApp.d.ts +18 -6
  55. package/dist/components/agents-sdk/ThinkFullApp.js +113 -145
  56. package/dist/components/agents-sdk/ThinkFullAppViewSwitch.d.ts +1 -1
  57. package/dist/components/agents-sdk/ThinkFullAppViewSwitch.js +1 -1
  58. package/dist/components/agents-sdk/ThinkRoutine.d.ts +1 -1
  59. package/dist/components/agents-sdk/ThinkRoutineBrowser.js +1 -1
  60. package/dist/components/agents-sdk/ThinkRoutineDetail.js +5 -16
  61. package/dist/components/agents-sdk/ThinkRoutineForm.js +1 -1
  62. package/dist/components/agents-sdk/ThinkRoutineLibrary.js +69 -89
  63. package/dist/components/agents-sdk/ThinkRoutineRuns.d.ts +1 -1
  64. package/dist/components/agents-sdk/ThinkRoutineRuns.js +3 -10
  65. package/dist/components/agents-sdk/ThinkThreadPicker.js +2 -2
  66. package/dist/components/agents-sdk/WorkspaceBrowser.js +1 -1
  67. package/dist/components/agents-sdk/WorkspaceExplorer.js +1 -1
  68. package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
  69. package/dist/components/agents-sdk/WorkspaceHeader.js +2 -1
  70. package/dist/components/agents-sdk/WorkspaceMessageResponse.d.ts +1 -1
  71. package/dist/components/agents-sdk/WorkspaceMountManager.js +11 -11
  72. package/dist/components/ai-sdk/Activity.js +1 -1
  73. package/dist/components/ai-sdk/AgentAttention.d.ts +1 -1
  74. package/dist/components/ai-sdk/AgentChatStartScreen.js +1 -1
  75. package/dist/components/ai-sdk/Approval.js +1 -1
  76. package/dist/components/ai-sdk/Artifact.js +1 -1
  77. package/dist/components/ai-sdk/ChainOfThought.d.ts +1 -1
  78. package/dist/components/ai-sdk/ChainOfThought.js +1 -1
  79. package/dist/components/ai-sdk/Checkpoint.js +1 -1
  80. package/dist/components/ai-sdk/CodeBlock.js +1 -1
  81. package/dist/components/ai-sdk/Conversation.js +1 -1
  82. package/dist/components/ai-sdk/Goal.js +1 -1
  83. package/dist/components/ai-sdk/MediaPreviewCard.js +1 -1
  84. package/dist/components/ai-sdk/Message.d.ts +2 -2
  85. package/dist/components/ai-sdk/Message.js +25 -3
  86. package/dist/components/ai-sdk/MessageScroller.js +1 -1
  87. package/dist/components/ai-sdk/MessageScrollerVirtual.js +1 -1
  88. package/dist/components/ai-sdk/Plan.js +1 -1
  89. package/dist/components/ai-sdk/PromptInput.js +1 -1
  90. package/dist/components/ai-sdk/Queue.d.ts +4 -4
  91. package/dist/components/ai-sdk/Queue.js +6 -15
  92. package/dist/components/ai-sdk/Reasoning.js +1 -1
  93. package/dist/components/ai-sdk/Sources.js +1 -1
  94. package/dist/components/ai-sdk/Task.d.ts +2 -2
  95. package/dist/components/ai-sdk/Task.js +2 -2
  96. package/dist/components/extension/ChatGptSignInScreen.js +1 -1
  97. package/dist/components/extension/CodexModelSelector.js +1 -1
  98. package/dist/components/extension/ConversationTabPicker.js +1 -1
  99. package/dist/components/foundations/Avatar.d.ts +1 -10
  100. package/dist/components/foundations/Avatar.js +1 -10
  101. package/dist/components/foundations/Checkbox.js +1 -1
  102. package/dist/components/foundations/CheckboxGroup.js +1 -0
  103. package/dist/components/foundations/ContextMenu.js +1 -1
  104. package/dist/components/foundations/LinkButton.d.ts +12 -10
  105. package/dist/components/foundations/LinkButton.js +15 -11
  106. package/dist/components/foundations/Menubar.js +1 -1
  107. package/dist/components/foundations/SearchField.js +1 -1
  108. package/dist/components/foundations/Select.js +1 -1
  109. package/dist/components/foundations/Stepper.js +1 -1
  110. package/dist/components/foundations/Toast.js +1 -1
  111. package/dist/components/foundations/ToggleGroup.d.ts +1 -1
  112. package/dist/components/foundations/ToggleGroup.js +1 -1
  113. package/dist/components/foundations/Toolbar.d.ts +1 -151
  114. package/dist/components/foundations/icons.d.ts +2 -2
  115. package/dist/components/foundations/icons.js +2 -2
  116. package/dist/components/general-purpose/AppTopBar.d.ts +1 -90
  117. package/dist/components/general-purpose/AppTopBar.js +2 -1
  118. package/dist/components/general-purpose/Commit.d.ts +2 -2
  119. package/dist/components/general-purpose/Commit.js +5 -13
  120. package/dist/components/general-purpose/EnvironmentVariables.d.ts +2 -2
  121. package/dist/components/general-purpose/EnvironmentVariables.js +4 -7
  122. package/dist/components/general-purpose/FileTree.js +1 -1
  123. package/dist/components/general-purpose/PricingBillingToggle.js +5 -10
  124. package/dist/components/general-purpose/PricingPlanCard.js +15 -14
  125. package/dist/components/general-purpose/PricingUsageCalculator.js +1 -1
  126. package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +95 -2
  127. package/dist/components/general-purpose/ResponsiveSidebarShell.js +90 -34
  128. package/dist/components/general-purpose/SetupChecklist.js +1 -1
  129. package/dist/components/general-purpose/Terminal.d.ts +1 -1
  130. package/dist/components/general-purpose/Terminal.js +4 -12
  131. package/dist/components/general-purpose/TestResults.d.ts +1 -1
  132. package/dist/components/general-purpose/TestResults.js +8 -21
  133. package/dist/components/general-purpose/ThemeModeControl.js +1 -1
  134. package/dist/components/general-purpose/WebPreview.d.ts +1 -1
  135. package/dist/components/general-purpose/WebPreview.js +4 -12
  136. package/dist/components/nanites/AgentConnection.js +2 -2
  137. package/dist/components/nanites/AgentToolDetail.d.ts +1 -1
  138. package/dist/components/nanites/AgentToolDetail.js +7 -7
  139. package/dist/components/nanites/NaniteScene.js +11 -11
  140. package/dist/{copy-button-Bc7jsYv_.js → copy-button-lys9N_aI.js} +1 -1
  141. package/dist/{icons-DwgNir1Q.d.ts → icons-0corjfxR.d.ts} +1 -16
  142. package/dist/{icons-MmIXciMO.js → icons-CVFSeTJn.js} +2 -5
  143. package/dist/styles/agent-attention.css +5 -5
  144. package/dist/styles/agent-chat.css +47 -12
  145. package/dist/styles/agent-tool-detail.css +2 -12
  146. package/dist/styles/app-icon.css +12 -18
  147. package/dist/styles/app-top-bar.css +32 -6
  148. package/dist/styles/avatar.css +6 -22
  149. package/dist/styles/base.css +2 -8
  150. package/dist/styles/browser-live-screen.css +38 -0
  151. package/dist/styles/browser-live-view.css +12 -4
  152. package/dist/styles/browser-run-panel.css +20 -18
  153. package/dist/styles/chatgpt-sign-in-screen.css +5 -5
  154. package/dist/styles/commit.css +24 -1
  155. package/dist/styles/environment-variables.css +3 -0
  156. package/dist/styles/index.css +5 -4
  157. package/dist/styles/manager-office.css +486 -0
  158. package/dist/styles/mcp-plugin-catalog.css +39 -35
  159. package/dist/styles/mcp-server-picker.css +1 -1
  160. package/dist/styles/message.css +41 -18
  161. package/dist/styles/nanite-scene.css +9 -9
  162. package/dist/styles/pricing-page.css +12 -8
  163. package/dist/styles/prompt-input.css +8 -13
  164. package/dist/styles/recipes.css +1 -57
  165. package/dist/styles/responsive-sidebar-shell.css +70 -20
  166. package/dist/styles/subagent-run.css +20 -3
  167. package/dist/styles/terminal.css +19 -0
  168. package/dist/styles/test-results.css +10 -1
  169. package/dist/styles/think-execution-status.css +8 -24
  170. package/dist/styles/think-execution-workbench.css +98 -105
  171. package/dist/styles/think-full-app.css +81 -193
  172. package/dist/styles/think-routine-library.css +0 -40
  173. package/dist/styles/think-thread-picker.css +8 -3
  174. package/dist/styles/transition-surface.css +7 -8
  175. package/dist/styles/utilities.css +42 -0
  176. package/dist/styles/web-preview.css +28 -5
  177. package/dist/styles/workspace-explorer.css +4 -23
  178. package/dist/styles/workspace-mount-manager.css +22 -0
  179. package/package.json +37 -35
  180. package/dist/ResponsiveSidebarShell-DWjULskY.d.ts +0 -68
  181. package/dist/components/agents-sdk/AgentActivityPreview.d.ts +0 -46
  182. package/dist/components/agents-sdk/AgentActivityPreview.js +0 -93
  183. package/dist/components/agents-sdk/ThinkThreadShell.d.ts +0 -38
  184. package/dist/components/agents-sdk/ThinkThreadShell.js +0 -27
  185. package/dist/components/foundations/Badge.d.ts +0 -62
  186. package/dist/components/foundations/Badge.js +0 -55
  187. package/dist/components/foundations/StatusPill.d.ts +0 -43
  188. package/dist/components/foundations/StatusPill.js +0 -35
  189. package/dist/components/general-purpose/Shell.d.ts +0 -149
  190. package/dist/components/general-purpose/Shell.js +0 -116
  191. package/dist/styles/agent-activity-preview-overlay.css +0 -169
  192. package/dist/styles/agent-activity-preview.css +0 -209
  193. package/dist/styles/badge.css +0 -120
  194. package/dist/styles/shell.css +0 -122
  195. package/dist/styles/status-pill.css +0 -39
  196. package/dist/{ThinkChat-DkA4Wr71.js → ThinkChat-BES_3Mb-.js} +1 -1
@@ -1,14 +1,27 @@
1
+ /* Elevation-led like the composer: the edge is the hairline ring inside
2
+ --sigvelo-elevation-floating, not a border. Forced colors restores a real
3
+ border at the end of this file. */
1
4
  .subagent-run__selector {
2
5
  max-inline-size: 14rem;
3
6
  justify-content: flex-start;
4
7
  border-radius: var(--sigvelo-radius-full);
8
+ background-color: var(--sigvelo-color-surface-raised);
9
+ box-shadow: var(--sigvelo-elevation-floating);
5
10
  text-align: start;
6
11
  }
7
12
 
13
+ /* The ghost hover would swap the raised surface for a near-transparent tint;
14
+ keep the surface and tint over it instead. */
15
+ .subagent-run__selector:hover:not([data-disabled]) {
16
+ background-color: color-mix(
17
+ in oklab,
18
+ var(--sigvelo-color-surface-raised),
19
+ var(--sigvelo-color-text) 4%
20
+ );
21
+ }
22
+
8
23
  .subagent-run__selector[aria-current="page"] {
9
- border-color: var(--sigvelo-color-neutral-border-muted);
10
24
  background-color: var(--sigvelo-color-neutral-bg-subtle);
11
- box-shadow: inset 0 0 0 var(--sigvelo-border-width) var(--sigvelo-color-neutral-border-subtle);
12
25
  }
13
26
 
14
27
  .subagent-run__list {
@@ -71,7 +84,7 @@
71
84
  }
72
85
 
73
86
  .subagent-run__indicator:is([data-status="aborted"], [data-status="interrupted"]) {
74
- color: var(--sigvelo-color-warning-text);
87
+ color: var(--sigvelo-color-text-muted);
75
88
  }
76
89
 
77
90
  .subagent-run__progress {
@@ -127,6 +140,10 @@
127
140
  }
128
141
 
129
142
  @media (forced-colors: active) {
143
+ .subagent-run__selector {
144
+ border: var(--sigvelo-border-style) var(--sigvelo-border-width) CanvasText;
145
+ }
146
+
130
147
  .subagent-run__milestone::before {
131
148
  border-color: CanvasText;
132
149
  }
@@ -29,6 +29,25 @@
29
29
  color: var(--sigvelo-color-neutral-300);
30
30
  }
31
31
 
32
+ .terminal__status {
33
+ font-family: var(--sigvelo-font-mono);
34
+ font-size: var(--sigvelo-text-2xs);
35
+ font-weight: var(--sigvelo-font-weight-semibold);
36
+ color: var(--sigvelo-color-neutral-300);
37
+ }
38
+
39
+ .terminal__status[data-status="running"] {
40
+ color: var(--sigvelo-color-primary-300);
41
+ }
42
+
43
+ .terminal__status[data-status="success"] {
44
+ color: var(--sigvelo-color-success-300);
45
+ }
46
+
47
+ .terminal__status[data-status="error"] {
48
+ color: var(--sigvelo-color-danger-300);
49
+ }
50
+
32
51
  .terminal__actions {
33
52
  display: inline-flex;
34
53
  align-items: center;
@@ -15,6 +15,16 @@
15
15
  flex-wrap: wrap;
16
16
  }
17
17
 
18
+ .test-results__outcome {
19
+ color: var(--sigvelo-color-success-text);
20
+ font-size: var(--sigvelo-text-xs);
21
+ font-weight: var(--sigvelo-font-weight-semibold);
22
+ }
23
+
24
+ .test-results__outcome[data-status="failed"] {
25
+ color: var(--sigvelo-color-danger-text);
26
+ }
27
+
18
28
  .test-results__stats {
19
29
  display: inline-flex;
20
30
  align-items: center;
@@ -169,7 +179,6 @@
169
179
  justify-content: center;
170
180
  inline-size: var(--sigvelo-control-icon-size-md);
171
181
  block-size: var(--sigvelo-control-icon-size-md);
172
- border-radius: var(--sigvelo-radius-full);
173
182
  flex-shrink: 0;
174
183
  transition: color var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change);
175
184
  }
@@ -21,9 +21,8 @@
21
21
  color: var(--sigvelo-color-danger-text);
22
22
  }
23
23
 
24
- .think-execution-status[data-tone="warning"] {
25
- color: var(--sigvelo-color-warning-text);
26
- }
24
+ /* The paused tone keeps the base muted colour: stopped is not a state that
25
+ earns an accent — only success, failure, and running do. */
27
26
 
28
27
  .think-execution-status[data-tone="primary"] {
29
28
  color: var(--sigvelo-color-primary-text);
@@ -47,14 +46,7 @@
47
46
  .think-execution-run-summary__copy {
48
47
  min-inline-size: 0;
49
48
  display: grid;
50
- row-gap: var(--sigvelo-spacing-1);
51
- }
52
-
53
- .think-execution-run-summary__heading {
54
- min-inline-size: 0;
55
- display: flex;
56
- align-items: baseline;
57
- gap: var(--sigvelo-spacing-2);
49
+ row-gap: var(--sigvelo-spacing-0-5);
58
50
  }
59
51
 
60
52
  .think-execution-run-summary__title {
@@ -63,19 +55,11 @@
63
55
  font-weight: var(--sigvelo-font-weight-semibold);
64
56
  }
65
57
 
66
- .think-execution-run-summary__copy code {
58
+ /* Kind · status · time on one muted line — the glyph carries the colour, the
59
+ words carry the meaning, and identifiers stay off the roster entirely. */
60
+ .think-execution-run-summary__meta {
67
61
  min-inline-size: 0;
68
- overflow: hidden;
69
- color: var(--sigvelo-color-text-muted);
70
- overflow-wrap: anywhere;
71
- font-family: var(--sigvelo-font-mono);
72
- font-size: var(--sigvelo-text-xs);
73
- text-overflow: ellipsis;
74
- white-space: nowrap;
75
- }
76
-
77
- .think-execution-run-summary__progress {
78
- color: var(--sigvelo-color-text-muted);
62
+ /* The routine roster's secondary-line colour: muted, nudged toward text. */
63
+ color: color-mix(in oklab, var(--sigvelo-color-text-muted), var(--sigvelo-color-text) 12%);
79
64
  font-size: var(--sigvelo-text-xs);
80
- line-height: var(--sigvelo-leading-tight);
81
65
  }
@@ -1,16 +1,20 @@
1
+ /*
2
+ * One quiet canvas and one pane, like the workspace slot it lives in: the run
3
+ * list is a gap-separated roster (routine-library anatomy), and a selected
4
+ * run replaces it with a mini-page — eyebrow, title, hairline fact rows —
5
+ * the way opening a file replaces the workspace browser.
6
+ */
1
7
  .think-execution-workbench {
8
+ position: relative;
2
9
  min-inline-size: 0;
3
10
  min-block-size: 0;
4
11
  display: flex;
5
12
  flex: 1;
6
13
  flex-direction: column;
14
+ block-size: 100%;
7
15
  overflow: hidden;
8
16
  container-type: inline-size;
9
- background: color-mix(
10
- in oklab,
11
- var(--sigvelo-color-canvas),
12
- var(--sigvelo-color-primary-bg-subtle) 18%
13
- );
17
+ /* No paint: the workbench card (or whatever plane hosts it) shows through. */
14
18
  color: var(--sigvelo-color-text);
15
19
  }
16
20
 
@@ -23,24 +27,32 @@
23
27
  font: inherit;
24
28
  }
25
29
 
30
+ /* The routine library's floating error notice overlays rather than
31
+ reflows, so a failed action never shoves the roster around. */
26
32
  .think-execution-workbench__error {
27
- margin: var(--sigvelo-spacing-3) var(--sigvelo-spacing-3) 0;
28
- min-block-size: var(--sigvelo-control-height-xs);
29
- padding-block: var(--sigvelo-spacing-1);
30
- padding-inline: var(--sigvelo-spacing-2-5);
33
+ position: absolute;
34
+ z-index: 2;
35
+ inset-block-start: var(--sigvelo-spacing-3);
36
+ inset-inline: 50% auto;
37
+ max-inline-size: min(32rem, calc(100% - 2rem));
38
+ padding: var(--sigvelo-spacing-2) var(--sigvelo-spacing-3);
31
39
  border: var(--sigvelo-border-style) var(--sigvelo-border-width)
32
40
  var(--sigvelo-color-danger-border-subtle);
33
41
  border-radius: var(--sigvelo-radius-sm);
34
- background: var(--sigvelo-color-danger-bg-subtle);
42
+ translate: -50% 0;
43
+ display: flex;
44
+ align-items: center;
45
+ gap: var(--sigvelo-spacing-2);
35
46
  color: var(--sigvelo-color-danger-text);
36
- font-size: var(--sigvelo-text-xs);
47
+ background: var(--sigvelo-color-danger-bg-subtle);
48
+ font-size: var(--sigvelo-text-compact);
37
49
  }
38
50
 
39
51
  .think-execution-workbench__content {
40
52
  min-block-size: 0;
41
53
  display: grid;
42
54
  flex: 1;
43
- grid-template-rows: minmax(12rem, 0.75fr) minmax(0, 1fr);
55
+ grid-template-rows: minmax(0, 1fr);
44
56
  overflow: hidden;
45
57
  }
46
58
 
@@ -51,25 +63,13 @@
51
63
  overflow: auto;
52
64
  }
53
65
 
54
- .think-execution-detail {
55
- display: grid;
56
- align-content: start;
57
- gap: var(--sigvelo-spacing-3);
58
- min-inline-size: 0;
59
- }
60
-
61
- /* Only the container concerns — the block inside is `EmptyState`, and this
62
- component is documented as reusable outside the workbench, so it does not
63
- reach for a workbench class to fill itself. */
64
- .think-execution-detail--empty {
65
- align-content: center;
66
- justify-items: center;
67
- min-block-size: 12rem;
68
- }
69
-
70
- .think-execution-workbench__run-list {
71
- border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
72
- var(--sigvelo-color-neutral-border-subtle);
66
+ /* Roster column cap (the Ploy number) so full-page routes don't stretch rows
67
+ across the whole viewport; narrow hosts are unaffected. */
68
+ .think-execution-workbench__list-header,
69
+ .think-execution-workbench__list,
70
+ .think-execution-workbench__empty {
71
+ inline-size: min(100%, 50rem);
72
+ margin-inline: auto;
73
73
  }
74
74
 
75
75
  .think-execution-workbench__list-header {
@@ -88,17 +88,21 @@
88
88
  line-height: var(--sigvelo-leading-tight);
89
89
  }
90
90
 
91
+ /* Same hairline-bounded band the routine library gives its empty run section. */
91
92
  .think-execution-workbench__empty {
92
- --sigvelo-recipe-empty-state-padding-block: var(--sigvelo-spacing-2-5);
93
+ --sigvelo-recipe-empty-state-padding-block: var(--sigvelo-spacing-4);
93
94
 
94
- margin: var(--sigvelo-spacing-3);
95
+ border-block: var(--sigvelo-border-style) var(--sigvelo-border-width)
96
+ var(--sigvelo-color-neutral-border-subtle);
95
97
  }
96
98
 
97
99
  .think-execution-workbench__list {
98
- margin: 0;
99
- padding: var(--sigvelo-spacing-1) var(--sigvelo-spacing-2) var(--sigvelo-spacing-2);
100
+ /* Block only — the roster-cap rule above owns margin-inline. */
101
+ margin-block: 0;
102
+ padding: 0 var(--sigvelo-spacing-2) var(--sigvelo-spacing-2);
100
103
  list-style: none;
101
104
  display: grid;
105
+ gap: var(--sigvelo-spacing-1);
102
106
  }
103
107
 
104
108
  .think-execution-workbench__list > li {
@@ -106,114 +110,103 @@
106
110
  grid-template-columns: minmax(0, 1fr) auto;
107
111
  align-items: center;
108
112
  min-inline-size: 0;
109
- border-radius: var(--sigvelo-radius-sm);
113
+ border-radius: var(--sigvelo-radius-md);
110
114
  transition: background-color var(--sigvelo-motion-duration-interaction)
111
115
  var(--sigvelo-motion-ease-change);
112
116
  }
113
117
 
114
- .think-execution-workbench__list > li:not(:last-child) {
115
- border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
116
- var(--sigvelo-color-neutral-border-subtle);
117
- }
118
-
119
- .think-execution-workbench__list > li[data-selected="true"] {
120
- background: color-mix(
121
- in oklab,
122
- var(--sigvelo-color-primary-bg-subtle),
123
- var(--sigvelo-color-surface) 70%
124
- );
125
- }
126
-
127
118
  .think-execution-workbench__run {
128
119
  min-inline-size: 0;
129
- min-block-size: calc(var(--sigvelo-control-height-xl) + var(--sigvelo-spacing-3));
120
+ min-block-size: var(--sigvelo-spacing-14);
130
121
  display: flex;
131
- padding-block: var(--sigvelo-spacing-1-5);
132
- padding-inline: var(--sigvelo-spacing-1);
122
+ padding: var(--sigvelo-spacing-2);
133
123
  border-radius: inherit;
134
124
  text-align: start;
135
125
  }
136
126
 
137
- .think-execution-workbench__detail-header code {
138
- min-inline-size: 0;
139
- overflow: hidden;
140
- color: var(--sigvelo-color-text-muted);
141
- overflow-wrap: anywhere;
142
- font-family: var(--sigvelo-font-mono);
143
- font-size: var(--sigvelo-text-xs);
144
- }
145
-
146
127
  .think-execution-workbench__run-actions {
147
128
  inline-size: var(--sigvelo-control-height-sm);
148
129
  min-block-size: var(--sigvelo-control-height-sm);
149
130
  margin-inline-end: var(--sigvelo-spacing-1);
150
131
  }
151
132
 
152
- .think-execution-workbench__detail {
133
+ /* The detail pane owns scrolling; the mini-page inside centres itself. */
134
+ .think-execution-detail {
153
135
  display: grid;
154
136
  align-content: start;
155
- gap: var(--sigvelo-spacing-3);
156
- padding: var(--sigvelo-spacing-3);
157
- background: var(--sigvelo-color-surface);
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));
158
143
  }
159
144
 
160
- .think-execution-workbench__detail-header {
161
- display: flex;
162
- align-items: flex-start;
163
- justify-content: space-between;
164
- gap: var(--sigvelo-spacing-3);
165
- min-inline-size: 0;
145
+ /* Only the container concerns — the block inside is `EmptyState`, and this
146
+ component is documented as reusable outside the workbench, so it does not
147
+ reach for a workbench class to fill itself. */
148
+ .think-execution-detail--empty {
149
+ align-content: center;
150
+ justify-items: center;
151
+ min-block-size: 12rem;
152
+ block-size: 100%;
166
153
  }
167
154
 
168
- .think-execution-workbench__detail-header > div {
155
+ .think-execution-detail__header {
169
156
  min-inline-size: 0;
157
+ display: grid;
158
+ gap: var(--sigvelo-spacing-1);
170
159
  }
171
160
 
172
- .think-execution-workbench__detail-status {
173
- flex: 0 0 auto;
174
- display: flex;
175
- align-items: center;
176
- gap: var(--sigvelo-spacing-2);
161
+ .think-execution-detail__eyebrow {
162
+ margin: 0;
177
163
  color: var(--sigvelo-color-text-muted);
178
164
  font-size: var(--sigvelo-text-xs);
179
- text-align: end;
180
- }
181
-
182
- .think-execution-workbench__detail-status > div {
183
- display: grid;
184
- gap: var(--sigvelo-spacing-0-5);
165
+ font-weight: var(--sigvelo-font-weight-semibold);
166
+ letter-spacing: 0.06em;
167
+ text-transform: uppercase;
185
168
  }
186
169
 
187
- .think-execution-workbench__detail-status strong {
188
- color: var(--sigvelo-color-text);
189
- font-weight: var(--sigvelo-font-weight-semibold);
170
+ .think-execution-detail__heading {
171
+ display: flex;
172
+ align-items: center;
173
+ justify-content: space-between;
174
+ flex-wrap: wrap;
175
+ gap: var(--sigvelo-spacing-2) var(--sigvelo-spacing-3);
190
176
  }
191
177
 
192
- .think-execution-workbench__detail h3 {
178
+ .think-execution-detail__heading h3 {
179
+ min-inline-size: 0;
193
180
  margin: 0;
194
- font-size: var(--sigvelo-text-sm);
181
+ overflow-wrap: anywhere;
182
+ font-size: var(--sigvelo-text-lg);
195
183
  font-weight: var(--sigvelo-font-weight-semibold);
184
+ letter-spacing: -0.025em;
196
185
  line-height: var(--sigvelo-leading-tight);
197
186
  }
198
187
 
199
- @container (width >= 44rem) {
200
- .think-execution-workbench__content {
201
- grid-template-rows: minmax(0, 1fr);
202
- grid-template-columns: minmax(15rem, 0.85fr) minmax(21rem, 1.15fr);
203
- }
188
+ .think-execution-detail__header code {
189
+ min-inline-size: 0;
190
+ overflow: hidden;
191
+ color: var(--sigvelo-color-text-muted);
192
+ overflow-wrap: anywhere;
193
+ font-family: var(--sigvelo-font-mono);
194
+ font-size: var(--sigvelo-text-xs);
195
+ }
204
196
 
205
- .think-execution-workbench__run-list {
206
- border-block-end: 0;
207
- border-inline-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
208
- var(--sigvelo-color-neutral-border-subtle);
209
- }
197
+ .think-execution-detail__error {
198
+ margin: 0;
199
+ padding: var(--sigvelo-spacing-2) var(--sigvelo-spacing-2-5);
200
+ border: var(--sigvelo-border-style) var(--sigvelo-border-width)
201
+ var(--sigvelo-color-danger-border-subtle);
202
+ border-radius: var(--sigvelo-radius-sm);
203
+ background: var(--sigvelo-color-danger-bg-subtle);
204
+ color: var(--sigvelo-color-danger-text);
205
+ font-size: var(--sigvelo-text-compact);
206
+ line-height: var(--sigvelo-leading-relaxed);
207
+ overflow-wrap: anywhere;
210
208
  }
211
209
 
212
- @media (forced-colors: active) {
213
- .think-execution-workbench {
214
- border: var(--sigvelo-border-style) var(--sigvelo-border-width) canvastext;
215
- background: canvas;
216
- color: canvastext;
217
- box-shadow: none;
218
- }
210
+ .think-execution-detail__facts {
211
+ font-size: var(--sigvelo-text-compact);
219
212
  }