@mcp-b/react-components 0.10.0 → 0.12.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 (84) hide show
  1. package/dist/{AgentChat-B9LD_WF1.d.ts → AgentChat-CRmsKg9B.d.ts} +10 -6
  2. package/dist/{BrowserLiveView-ZktFZiMD.d.ts → BrowserLiveView-BV5qgFgI.d.ts} +11 -10
  3. package/dist/{BrowserReplay-6G-mnwcn.d.ts → BrowserReplay-xWvRjRAC.d.ts} +2 -1
  4. package/dist/{Menu-B5vDqZe_.d.ts → Menu-BLhnNnRK.d.ts} +3 -0
  5. package/dist/{ModelSelector-DXtpcRmT.js → ModelSelector-BB-xB-Es.js} +16 -13
  6. package/dist/{PromptInput-D6-G24p7.d.ts → PromptInput-IyM6ZETj.d.ts} +13 -45
  7. package/dist/ThinkChat-B3wYahor.js +190 -0
  8. package/dist/{ThinkChatActivity-B2UD95My.d.ts → ThinkChatActivity-F4KFPcJA.d.ts} +4 -4
  9. package/dist/ThinkChatContext-C3Eb1Xpi.d.ts +16 -0
  10. package/dist/{ThinkChatToolParts-DnUiZgCC.d.ts → ThinkChatToolParts-Cv4o7j6F.d.ts} +13 -5
  11. package/dist/components/AgentChat.d.ts +1 -1
  12. package/dist/components/AgentChat.js +57 -23
  13. package/dist/components/AgentConnection.d.ts +3 -14
  14. package/dist/components/AgentConnection.js +7 -111
  15. package/dist/components/Badge.js +1 -15
  16. package/dist/components/BrowserLiveView.d.ts +1 -1
  17. package/dist/components/BrowserLiveView.js +14 -10
  18. package/dist/components/BrowserReplay.d.ts +1 -1
  19. package/dist/components/BrowserRunPanel.d.ts +46 -0
  20. package/dist/components/BrowserRunPanel.js +159 -0
  21. package/dist/components/ChatGptSignInScreen.js +1 -1
  22. package/dist/components/CodexModelSelector.d.ts +63 -0
  23. package/dist/components/CodexModelSelector.js +148 -0
  24. package/dist/components/Commit.d.ts +2 -2
  25. package/dist/components/Commit.js +10 -22
  26. package/dist/components/Conversation.d.ts +2 -6
  27. package/dist/components/Conversation.js +2 -3
  28. package/dist/components/EnvironmentVariables.d.ts +2 -7
  29. package/dist/components/EnvironmentVariables.js +10 -33
  30. package/dist/components/Marker.js +1 -15
  31. package/dist/components/McpServerPicker.d.ts +31 -6
  32. package/dist/components/McpServerPicker.js +129 -67
  33. package/dist/components/Menu.d.ts +1 -1
  34. package/dist/components/Menu.js +2 -2
  35. package/dist/components/Message.d.ts +3 -2
  36. package/dist/components/Message.js +10 -3
  37. package/dist/components/ModelSelector.d.ts +11 -8
  38. package/dist/components/ModelSelector.js +1 -1
  39. package/dist/components/PromptInput.d.ts +2 -2
  40. package/dist/components/PromptInput.js +49 -98
  41. package/dist/components/Queue.d.ts +1 -12
  42. package/dist/components/Reasoning.js +2 -15
  43. package/dist/components/Stepper.js +1 -7
  44. package/dist/components/ThinkChat.d.ts +30 -30
  45. package/dist/components/ThinkChat.js +1 -152
  46. package/dist/components/ThinkChatActivity.d.ts +2 -2
  47. package/dist/components/ThinkChatActivity.js +3 -10
  48. package/dist/components/ThinkChatContext.d.ts +2 -2
  49. package/dist/components/ThinkChatContext.js +9 -2
  50. package/dist/components/ThinkChatToolPanels.d.ts +1 -1
  51. package/dist/components/ThinkChatToolPanels.js +19 -7
  52. package/dist/components/ThinkChatToolParts.d.ts +1 -1
  53. package/dist/components/ThinkExecutionWorkbench.d.ts +10 -7
  54. package/dist/components/ThinkExecutionWorkbench.js +382 -359
  55. package/dist/components/ThinkFullApp.d.ts +16 -13
  56. package/dist/components/ThinkFullApp.js +28 -18
  57. package/dist/components/ThinkThreadPicker.d.ts +1 -31
  58. package/dist/components/ThinkThreadPicker.js +32 -171
  59. package/dist/components/ThinkThreadShell.d.ts +35 -0
  60. package/dist/components/ThinkThreadShell.js +146 -0
  61. package/dist/components/WorkspaceExplorer.js +3 -1
  62. package/dist/merge-refs-DF_7w2x_.js +18 -0
  63. package/dist/styles/agent-chat.css +4 -1
  64. package/dist/styles/agent-connection.css +0 -166
  65. package/dist/styles/browser-run-panel.css +125 -0
  66. package/dist/styles/codex-model-selector.css +197 -0
  67. package/dist/styles/index.css +5 -0
  68. package/dist/styles/mcp-server-picker.css +62 -15
  69. package/dist/styles/message.css +1 -1
  70. package/dist/styles/model-selector.css +20 -8
  71. package/dist/styles/prompt-input.css +5 -0
  72. package/dist/styles/streamdown.css +2 -48
  73. package/dist/styles/think-execution-workbench.css +337 -0
  74. package/dist/styles/think-full-app.css +15 -390
  75. package/dist/styles/think-resize-handle.css +33 -0
  76. package/dist/styles/think-thread-picker.css +0 -238
  77. package/dist/styles/think-thread-shell.css +219 -0
  78. package/dist/styles/workspace-explorer.css +8 -2
  79. package/dist/summarize-tool-input-BUJsENSn.js +12 -0
  80. package/dist/utils/mcp-server-catalog.d.ts +2 -3
  81. package/package.json +2 -2
  82. package/dist/ThinkChatContext-BLAAb8J5.d.ts +0 -28
  83. package/dist/components/useStickToBottom.d.ts +0 -33
  84. package/dist/components/useStickToBottom.js +0 -107
@@ -1,4 +1,5 @@
1
1
  .agent-chat {
2
+ --agent-chat-content-max-inline-size: 64rem;
2
3
  position: relative;
3
4
  width: 100%;
4
5
  height: 100%;
@@ -17,6 +18,8 @@
17
18
  --agent-chat-composer-size is set from a ResizeObserver in AgentChat. */
18
19
  .agent-chat__transcript-content {
19
20
  gap: 0.875rem;
21
+ inline-size: min(100%, var(--agent-chat-content-max-inline-size));
22
+ margin-inline: auto;
20
23
  padding-block: 1rem calc(var(--agent-chat-composer-size, 5rem) + 0.5rem);
21
24
  padding-inline: 1rem;
22
25
  }
@@ -51,7 +54,7 @@
51
54
  }
52
55
 
53
56
  .agent-chat__composer > .prompt-input {
54
- max-inline-size: 64rem;
57
+ inline-size: min(100%, var(--agent-chat-content-max-inline-size));
55
58
  margin-inline: auto;
56
59
  }
57
60
 
@@ -141,180 +141,18 @@
141
141
  line-height: 1.5;
142
142
  }
143
143
 
144
- .agent-connect__mcp {
145
- display: grid;
146
- gap: 0.5rem;
147
- min-inline-size: 0;
148
- }
149
-
150
- .agent-connect__mcp-heading {
151
- margin: 0;
152
- color: var(--sigvelo-color-text-muted);
153
- font-size: 0.74rem;
154
- font-weight: var(--sigvelo-font-weight-semibold);
155
- line-height: 1.25;
156
- }
157
-
158
- .agent-connect__mcp-list {
159
- display: grid;
160
- grid-template-columns: repeat(2, minmax(0, 1fr));
161
- gap: 0.35rem;
162
- max-block-size: 24rem;
163
- margin: 0;
164
- padding: 0;
165
- overflow-y: auto;
166
- overscroll-behavior: contain;
167
- list-style: none;
168
- }
169
-
170
- .agent-connect__mcp-item {
171
- display: grid;
172
- grid-template-columns: 1.625rem minmax(0, 1fr);
173
- gap: 0.5rem;
174
- align-items: start;
175
- min-inline-size: 0;
176
- padding: 0.5rem;
177
- border: var(--sigvelo-border-style) var(--sigvelo-border-width)
178
- var(--sigvelo-color-neutral-border-subtle);
179
- border-radius: var(--sigvelo-radius-md);
180
- background: var(--sigvelo-color-surface);
181
- }
182
-
183
- .agent-connect__mcp-icon {
184
- display: grid;
185
- place-items: center;
186
- inline-size: 1.625rem;
187
- block-size: 1.625rem;
188
- border-radius: var(--sigvelo-radius-sm);
189
- background: var(--sigvelo-color-neutral-bg-subtle);
190
- color: var(--sigvelo-color-text-muted);
191
- font-size: 0.72rem;
192
- font-weight: var(--sigvelo-font-weight-bold);
193
- line-height: 1;
194
- }
195
-
196
- .agent-connect__mcp-icon img {
197
- display: block;
198
- max-inline-size: 1rem;
199
- max-block-size: 1rem;
200
- }
201
-
202
- .agent-connect__mcp-copy {
203
- display: grid;
204
- gap: 0.08rem;
205
- min-inline-size: 0;
206
- }
207
-
208
- .agent-connect__mcp-name {
209
- color: var(--sigvelo-color-text);
210
- font-size: 0.78rem;
211
- font-weight: var(--sigvelo-font-weight-semibold);
212
- line-height: 1.2;
213
- overflow-wrap: anywhere;
214
- text-decoration: none;
215
- }
216
-
217
- .agent-connect__mcp-name:hover {
218
- color: var(--sigvelo-color-primary-text);
219
- text-decoration: underline;
220
- text-underline-offset: 0.16em;
221
- }
222
-
223
- .agent-connect__mcp-name:focus-visible {
224
- outline: 2px solid var(--sigvelo-color-focus);
225
- outline-offset: 2px;
226
- }
227
-
228
- .agent-connect__mcp-description {
229
- color: var(--sigvelo-color-text-muted);
230
- font-size: 0.7rem;
231
- line-height: 1.25;
232
- overflow-wrap: anywhere;
233
- }
234
-
235
- .agent-connect__mcp-setup {
236
- display: grid;
237
- gap: 0.3rem;
238
- margin-block-start: 0.2rem;
239
- min-inline-size: 0;
240
- }
241
-
242
- .agent-connect__mcp-setup p {
243
- margin: 0;
244
- color: var(--sigvelo-color-text-muted);
245
- font-size: 0.68rem;
246
- line-height: 1.3;
247
- overflow-wrap: anywhere;
248
- }
249
-
250
- .agent-connect__mcp-setup-auth {
251
- display: flex;
252
- flex-wrap: wrap;
253
- gap: 0.25rem;
254
- }
255
-
256
- .agent-connect__mcp-setup-auth span:first-child {
257
- color: var(--sigvelo-color-text);
258
- font-weight: var(--sigvelo-font-weight-semibold);
259
- }
260
-
261
- .agent-connect__mcp-setup-links {
262
- display: flex;
263
- flex-wrap: wrap;
264
- gap: 0.25rem;
265
- margin: 0;
266
- padding: 0;
267
- list-style: none;
268
- }
269
-
270
- .agent-connect__mcp-setup-links a {
271
- display: inline-flex;
272
- align-items: center;
273
- min-block-size: 1.35rem;
274
- padding: 0 0.35rem;
275
- border: var(--sigvelo-border-style) var(--sigvelo-border-width)
276
- var(--sigvelo-color-neutral-border-subtle);
277
- border-radius: var(--sigvelo-radius-sm);
278
- color: var(--sigvelo-color-text-muted);
279
- font-size: 0.65rem;
280
- font-weight: var(--sigvelo-font-weight-semibold);
281
- line-height: 1.1;
282
- text-decoration: none;
283
- }
284
-
285
- .agent-connect__mcp-setup-links a:hover {
286
- border-color: var(--sigvelo-color-primary-border-muted);
287
- color: var(--sigvelo-color-primary-text);
288
- }
289
-
290
- .agent-connect__mcp-setup-links a:focus-visible {
291
- outline: 2px solid var(--sigvelo-color-focus);
292
- outline-offset: 2px;
293
- }
294
-
295
144
  .agent-connect__mcp-form {
296
145
  display: grid;
297
146
  gap: 0.75rem;
298
147
  min-inline-size: 0;
299
148
  }
300
149
 
301
- .agent-connect__mcp-form--row {
302
- grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
303
- align-items: end;
304
- padding: 0.75rem;
305
- background: var(--sigvelo-color-surface);
306
- }
307
-
308
150
  .agent-connect__mcp-form-actions {
309
151
  display: flex;
310
152
  flex-wrap: wrap;
311
153
  gap: 0.5rem;
312
154
  }
313
155
 
314
- .agent-connect__mcp-form--row .agent-connect__mcp-form-actions {
315
- align-self: end;
316
- }
317
-
318
156
  .agent-connect__mcp-form-status {
319
157
  align-self: end;
320
158
  min-inline-size: 0;
@@ -340,10 +178,6 @@
340
178
  grid-template-columns: repeat(2, minmax(0, 1fr));
341
179
  }
342
180
 
343
- .agent-connect__mcp-list {
344
- grid-template-columns: 1fr;
345
- }
346
-
347
181
  .agent-connect-popover {
348
182
  inline-size: min(24rem, calc(100dvi - 1.5rem));
349
183
  }
@@ -0,0 +1,125 @@
1
+ .browser-run-panel {
2
+ min-inline-size: 0;
3
+ min-block-size: 0;
4
+ height: 100%;
5
+ }
6
+
7
+ .browser-run-panel .web-preview__nav:has(.browser-run-panel__tabs) {
8
+ min-block-size: 3rem;
9
+ gap: 0;
10
+ padding-block: 0;
11
+ padding-inline: 0.375rem;
12
+ border-block-end: 0;
13
+ background: var(--sigvelo-color-canvas);
14
+ }
15
+
16
+ .browser-run-panel__tabs {
17
+ display: flex;
18
+ flex: 1;
19
+ min-inline-size: 0;
20
+ flex-wrap: nowrap;
21
+ overflow-x: auto;
22
+ scrollbar-width: none;
23
+ }
24
+
25
+ .browser-run-panel__tabs::-webkit-scrollbar {
26
+ display: none;
27
+ }
28
+
29
+ .browser-run-panel__tab.button {
30
+ min-inline-size: min(11rem, 45vw);
31
+ min-block-size: 2.75rem;
32
+ max-inline-size: 13rem;
33
+ flex: 0 0 auto;
34
+ gap: 0.5rem;
35
+ padding-inline: 0.75rem;
36
+ border-radius: var(--sigvelo-radius-md) var(--sigvelo-radius-md) 0 0;
37
+ text-align: start;
38
+ white-space: nowrap;
39
+ }
40
+
41
+ .browser-run-panel__tab[aria-selected="true"] {
42
+ background: var(--sigvelo-color-surface);
43
+ color: var(--sigvelo-color-text);
44
+ }
45
+
46
+ .browser-run-panel__tab-glyph {
47
+ display: grid;
48
+ flex: none;
49
+ inline-size: 1.125rem;
50
+ block-size: 1.125rem;
51
+ place-items: center;
52
+ border-radius: 50%;
53
+ background: var(--sigvelo-color-primary-bg-subtle);
54
+ color: var(--sigvelo-color-primary-text);
55
+ font-size: 0.625rem;
56
+ font-weight: var(--sigvelo-font-weight-bold);
57
+ line-height: 1;
58
+ }
59
+
60
+ .browser-run-panel__tab-title {
61
+ overflow: hidden;
62
+ max-inline-size: 100%;
63
+ font-size: 0.75rem;
64
+ line-height: 1.2;
65
+ text-overflow: ellipsis;
66
+ white-space: nowrap;
67
+ }
68
+
69
+ .browser-run-panel__address-bar {
70
+ min-block-size: 3rem;
71
+ background: var(--sigvelo-color-surface);
72
+ }
73
+
74
+ .browser-run-panel .browser-run-panel__body {
75
+ min-block-size: 0;
76
+ display: flex;
77
+ padding: 0.625rem;
78
+ }
79
+
80
+ .browser-run-panel__live-view {
81
+ flex: 1;
82
+ min-block-size: 16rem;
83
+ aspect-ratio: auto;
84
+ border-radius: var(--sigvelo-radius-md);
85
+ }
86
+
87
+ .browser-run-panel__state {
88
+ flex: 1;
89
+ min-block-size: 14rem;
90
+ }
91
+
92
+ .browser-run-panel__state[data-tone="danger"] {
93
+ min-block-size: auto;
94
+ flex: none;
95
+ margin: 0;
96
+ border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
97
+ var(--sigvelo-color-danger-border-subtle);
98
+ border-radius: 0;
99
+ border-color: var(--sigvelo-color-danger-border-subtle);
100
+ background: var(--sigvelo-color-danger-bg-subtle);
101
+ color: var(--sigvelo-color-danger-text);
102
+ }
103
+
104
+ .browser-run-panel__spinner {
105
+ animation: browser-run-panel-spin 900ms linear infinite;
106
+ }
107
+
108
+ @keyframes browser-run-panel-spin {
109
+ to {
110
+ transform: rotate(360deg);
111
+ }
112
+ }
113
+
114
+ @media (prefers-reduced-motion: reduce) {
115
+ .browser-run-panel__spinner {
116
+ animation: none;
117
+ }
118
+ }
119
+
120
+ @media (forced-colors: active) {
121
+ .browser-run-panel__tab[aria-selected="true"] {
122
+ outline: 2px solid Highlight;
123
+ outline-offset: -2px;
124
+ }
125
+ }
@@ -0,0 +1,197 @@
1
+ /*
2
+ * Codex response settings compose the shared Menu primitive. These rules only
3
+ * express the component's density and content hierarchy; Menu owns popup
4
+ * surfaces, borders, shadows, motion, focus management, and collision-aware
5
+ * positioning.
6
+ */
7
+ .codex-model-selector__trigger {
8
+ position: relative;
9
+ z-index: 0;
10
+ display: inline-flex;
11
+ align-items: center;
12
+ gap: var(--sigvelo-spacing-2);
13
+ max-inline-size: calc(100vi - var(--sigvelo-spacing-8));
14
+ min-block-size: var(--sigvelo-control-height-md);
15
+ padding: 0;
16
+ color: var(--sigvelo-color-text);
17
+ appearance: none;
18
+ background-color: transparent;
19
+ border: 0;
20
+ border-radius: var(--sigvelo-radius-md);
21
+ cursor: pointer;
22
+ font-family: var(--sigvelo-font-sans);
23
+ font-size: var(--sigvelo-control-text-lg);
24
+ font-weight: var(--sigvelo-font-weight-normal);
25
+ line-height: 1.25;
26
+ isolation: isolate;
27
+ }
28
+
29
+ .codex-model-selector__trigger::before {
30
+ position: absolute;
31
+ z-index: -1;
32
+ inset-block: calc(var(--sigvelo-spacing-1) * -1);
33
+ inset-inline: calc(var(--sigvelo-spacing-2) * -1);
34
+ content: "";
35
+ pointer-events: none;
36
+ background-color: var(--sigvelo-color-neutral-bg-muted);
37
+ border-radius: var(--sigvelo-radius-full);
38
+ opacity: 0;
39
+ transform: scale(0.96);
40
+ transition:
41
+ opacity var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
42
+ transform var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
43
+ }
44
+
45
+ .codex-model-selector__trigger:is(:hover, :focus-visible, [data-popup-open])::before {
46
+ opacity: 1;
47
+ transform: scale(1);
48
+ }
49
+
50
+ .codex-model-selector__trigger:focus-visible {
51
+ outline: none;
52
+ box-shadow:
53
+ 0 0 0 2px var(--sigvelo-color-canvas),
54
+ 0 0 0 4px var(--sigvelo-color-focus);
55
+ }
56
+
57
+ .codex-model-selector__trigger:disabled {
58
+ cursor: not-allowed;
59
+ opacity: 0.5;
60
+ }
61
+
62
+ .codex-model-selector__summary {
63
+ display: flex;
64
+ flex: 0 1 auto;
65
+ justify-content: center;
66
+ gap: var(--sigvelo-spacing-2);
67
+ min-inline-size: 0;
68
+ overflow: hidden;
69
+ text-align: center;
70
+ text-overflow: ellipsis;
71
+ white-space: nowrap;
72
+ }
73
+
74
+ .codex-model-selector__summary-effort,
75
+ .codex-model-selector__trigger-icon,
76
+ .codex-model-selector__submenu-value,
77
+ .codex-model-selector__submenu-icon,
78
+ .codex-model-selector__option-description,
79
+ .codex-model-selector__reset {
80
+ color: var(--sigvelo-color-text-muted);
81
+ }
82
+
83
+ .codex-model-selector__summary-effort--ultra {
84
+ color: var(--sigvelo-color-primary-text);
85
+ }
86
+
87
+ .codex-model-selector__trigger-icon,
88
+ .codex-model-selector__submenu-icon,
89
+ .codex-model-selector__reset-icon {
90
+ flex: 0 0 auto;
91
+ }
92
+
93
+ .codex-model-selector__menu {
94
+ inline-size: min(28rem, calc(100vi - var(--sigvelo-spacing-8)));
95
+ padding: var(--sigvelo-spacing-2);
96
+ }
97
+
98
+ .codex-model-selector__submenu {
99
+ inline-size: min(25.5rem, calc(100vi - var(--sigvelo-spacing-8)));
100
+ padding: var(--sigvelo-spacing-4) var(--sigvelo-spacing-6);
101
+ }
102
+
103
+ .codex-model-selector__submenu--model {
104
+ inline-size: min(35rem, calc(100vi - var(--sigvelo-spacing-8)));
105
+ }
106
+
107
+ .codex-model-selector__submenu--speed {
108
+ inline-size: min(29rem, calc(100vi - var(--sigvelo-spacing-8)));
109
+ }
110
+
111
+ .codex-model-selector__submenu-title.menu__group-label {
112
+ padding: 0;
113
+ margin-block-end: var(--sigvelo-spacing-2);
114
+ color: var(--sigvelo-color-text-muted);
115
+ font-size: var(--sigvelo-control-text-lg);
116
+ font-weight: var(--sigvelo-font-weight-normal);
117
+ line-height: 1.25;
118
+ }
119
+
120
+ .codex-model-selector__submenu-trigger,
121
+ .codex-model-selector__option,
122
+ .codex-model-selector__reset {
123
+ min-block-size: var(--sigvelo-control-height-lg);
124
+ font-size: var(--sigvelo-control-text-lg);
125
+ }
126
+
127
+ .codex-model-selector__submenu-trigger {
128
+ padding-block: var(--sigvelo-spacing-2);
129
+ padding-inline: var(--sigvelo-spacing-4);
130
+ color: var(--sigvelo-color-text);
131
+ border-radius: var(--sigvelo-radius-md);
132
+ }
133
+
134
+ .codex-model-selector__submenu-trigger::after {
135
+ content: none;
136
+ }
137
+
138
+ .codex-model-selector__submenu-value {
139
+ min-inline-size: 0;
140
+ margin-inline-start: auto;
141
+ overflow: hidden;
142
+ text-overflow: ellipsis;
143
+ white-space: nowrap;
144
+ }
145
+
146
+ .codex-model-selector__option {
147
+ align-items: flex-start;
148
+ gap: var(--sigvelo-spacing-2);
149
+ padding-block: var(--sigvelo-spacing-2);
150
+ padding-inline: 0;
151
+ color: var(--sigvelo-color-text);
152
+ border-radius: 0;
153
+ }
154
+
155
+ .codex-model-selector__option > span:first-child {
156
+ flex: 1;
157
+ min-inline-size: 0;
158
+ }
159
+
160
+ .codex-model-selector__option-label,
161
+ .codex-model-selector__option-description {
162
+ display: block;
163
+ }
164
+
165
+ .codex-model-selector__option-description {
166
+ margin-block-start: var(--sigvelo-spacing-1);
167
+ font-size: var(--sigvelo-control-text-md);
168
+ line-height: 1.25;
169
+ }
170
+
171
+ .codex-model-selector__option-indicator {
172
+ order: 2;
173
+ margin-inline-start: auto;
174
+ color: var(--sigvelo-color-text);
175
+ }
176
+
177
+ .codex-model-selector__option-indicator::before {
178
+ content: none;
179
+ }
180
+
181
+ .codex-model-selector__reset {
182
+ padding-block: var(--sigvelo-spacing-2);
183
+ padding-inline: var(--sigvelo-spacing-4);
184
+ border-radius: var(--sigvelo-radius-md);
185
+ }
186
+
187
+ .codex-model-selector__reset-icon {
188
+ inline-size: var(--sigvelo-spacing-6);
189
+ block-size: var(--sigvelo-spacing-6);
190
+ margin-inline-start: auto;
191
+ }
192
+
193
+ @media (forced-colors: active) {
194
+ .codex-model-selector__summary-effort--ultra {
195
+ color: LinkText;
196
+ }
197
+ }
@@ -62,12 +62,14 @@
62
62
  @import "./streamdown.css" layer(components);
63
63
  @import "./artifact.css" layer(components);
64
64
  @import "./browser-live-view.css" layer(components);
65
+ @import "./browser-run-panel.css" layer(components);
65
66
  @import "./browser-replay.css" layer(components);
66
67
  @import "./chain-of-thought.css" layer(components);
67
68
  @import "./code-block.css" layer(components);
68
69
  @import "./commit.css" layer(components);
69
70
  @import "./context.css" layer(components);
70
71
  @import "./conversation.css" layer(components);
72
+ @import "./codex-model-selector.css" layer(components);
71
73
  @import "./environment-variables.css" layer(components);
72
74
  @import "./file-tree.css" layer(components);
73
75
  @import "./message.css" layer(components);
@@ -80,8 +82,11 @@
80
82
  @import "./task.css" layer(components);
81
83
  @import "./terminal.css" layer(components);
82
84
  @import "./test-results.css" layer(components);
85
+ @import "./think-execution-workbench.css" layer(components);
86
+ @import "./think-resize-handle.css" layer(components);
83
87
  @import "./think-full-app.css" layer(components);
84
88
  @import "./think-thread-picker.css" layer(components);
89
+ @import "./think-thread-shell.css" layer(components);
85
90
  @import "./web-preview.css" layer(components);
86
91
  @import "./workspace-explorer.css" layer(components);
87
92
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  .mcp-server-picker__trigger {
6
6
  flex-shrink: 0;
7
- color: var(--sigvelo-color-text);
7
+ color: var(--sigvelo-color-text-muted);
8
8
  background: none;
9
9
  }
10
10
 
@@ -14,6 +14,11 @@
14
14
  background: none;
15
15
  }
16
16
 
17
+ .mcp-server-picker__trigger > svg {
18
+ inline-size: 1rem;
19
+ block-size: 1rem;
20
+ }
21
+
17
22
  .mcp-server-picker__popup {
18
23
  inline-size: min(32rem, calc(100dvw - 1rem));
19
24
  max-block-size: min(28rem, calc(100dvh - 2rem));
@@ -22,8 +27,10 @@
22
27
  overscroll-behavior: contain;
23
28
  }
24
29
 
25
- .mcp-server-picker__group + .mcp-server-picker__group {
26
- margin-block-start: 0.25rem;
30
+ .mcp-server-picker__row-shell {
31
+ display: grid;
32
+ grid-template-columns: minmax(0, 1fr) auto;
33
+ align-items: center;
27
34
  }
28
35
 
29
36
  .mcp-server-picker__row {
@@ -34,6 +41,18 @@
34
41
  overflow: hidden;
35
42
  }
36
43
 
44
+ .mcp-server-picker__row-shell[data-connection="connected"] .mcp-server-picker__row {
45
+ opacity: 1;
46
+ }
47
+
48
+ .mcp-server-picker__row-shell[data-connection="disconnected"] .mcp-server-picker__row {
49
+ opacity: 0.68;
50
+ }
51
+
52
+ .mcp-server-picker__row-shell[data-connection="disconnected"] .mcp-server-picker__description {
53
+ color: var(--sigvelo-color-text);
54
+ }
55
+
37
56
  .mcp-server-picker__icon {
38
57
  display: inline-flex;
39
58
  flex: 0 0 auto;
@@ -83,17 +102,9 @@
83
102
  min-inline-size: 0;
84
103
  max-inline-size: 20rem;
85
104
  overflow: hidden;
86
- color: var(--sigvelo-color-text-muted);
87
105
  text-overflow: ellipsis;
88
106
  white-space: nowrap;
89
- }
90
-
91
- .mcp-server-picker__meta {
92
- display: inline-flex;
93
- align-items: center;
94
- justify-content: center;
95
- inline-size: 1rem;
96
- min-inline-size: max-content;
107
+ color: var(--sigvelo-color-text-muted);
97
108
  }
98
109
 
99
110
  .mcp-server-picker__status-label {
@@ -108,15 +119,47 @@
108
119
  border: 0;
109
120
  }
110
121
 
111
- .mcp-server-picker__row[data-status="ready"] .mcp-server-picker__meta {
122
+ .mcp-server-picker__row-actions {
123
+ display: inline-flex;
124
+ align-items: center;
125
+ gap: 0.125rem;
126
+ padding-inline-end: 0.5rem;
127
+ }
128
+
129
+ .mcp-server-picker__row-status {
130
+ display: inline-flex;
131
+ align-items: center;
132
+ justify-content: center;
133
+ inline-size: 1.5rem;
134
+ block-size: 1.5rem;
135
+ color: var(--sigvelo-color-text-muted);
136
+ }
137
+
138
+ .mcp-server-picker__action {
139
+ inline-size: 1.5rem;
140
+ block-size: 1.5rem;
141
+ min-block-size: 1.5rem;
142
+ justify-content: center;
143
+ padding: 0;
144
+ }
145
+
146
+ .mcp-server-picker__row-status > svg,
147
+ .mcp-server-picker__action > svg {
148
+ inline-size: 0.875rem;
149
+ block-size: 0.875rem;
150
+ }
151
+
152
+ .mcp-server-picker__row-shell[data-status="ready"] .mcp-server-picker__row-status,
153
+ .mcp-server-picker__row-shell[data-status="connected"] .mcp-server-picker__row-status {
112
154
  color: var(--sigvelo-color-success-text-on-subtle);
113
155
  }
114
156
 
115
- .mcp-server-picker__row[data-status="needs-auth"] .mcp-server-picker__meta {
157
+ .mcp-server-picker__row-shell[data-status="needs-auth"] .mcp-server-picker__row-status,
158
+ .mcp-server-picker__row-shell[data-status="authenticating"] .mcp-server-picker__row-status {
116
159
  color: var(--sigvelo-color-warning-text-on-subtle);
117
160
  }
118
161
 
119
- .mcp-server-picker__row[data-status="failed"] .mcp-server-picker__meta {
162
+ .mcp-server-picker__row-shell[data-status="failed"] .mcp-server-picker__row-status {
120
163
  color: var(--sigvelo-color-danger-text-on-subtle);
121
164
  }
122
165
 
@@ -142,6 +185,10 @@
142
185
  flex-direction: column;
143
186
  gap: 0;
144
187
  }
188
+
189
+ .mcp-server-picker__row-shell {
190
+ grid-template-columns: minmax(0, 1fr);
191
+ }
145
192
  }
146
193
 
147
194
  @media (forced-colors: active) {
@@ -89,9 +89,9 @@
89
89
 
90
90
  .message__attachment-zoom {
91
91
  display: block;
92
+ min-block-size: 0;
92
93
  max-width: 100%;
93
94
  padding: 0;
94
- border: none;
95
95
  background: none;
96
96
  cursor: zoom-in;
97
97
  }