@mcp-b/react-components 0.11.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 (83) 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.js +4 -20
  14. package/dist/components/Badge.js +1 -15
  15. package/dist/components/BrowserLiveView.d.ts +1 -1
  16. package/dist/components/BrowserLiveView.js +14 -10
  17. package/dist/components/BrowserReplay.d.ts +1 -1
  18. package/dist/components/BrowserRunPanel.js +91 -55
  19. package/dist/components/ChatGptSignInScreen.js +1 -1
  20. package/dist/components/CodexModelSelector.d.ts +63 -0
  21. package/dist/components/CodexModelSelector.js +148 -0
  22. package/dist/components/Commit.d.ts +2 -2
  23. package/dist/components/Commit.js +10 -22
  24. package/dist/components/Conversation.d.ts +2 -6
  25. package/dist/components/Conversation.js +2 -3
  26. package/dist/components/EnvironmentVariables.d.ts +2 -7
  27. package/dist/components/EnvironmentVariables.js +10 -33
  28. package/dist/components/Marker.js +1 -15
  29. package/dist/components/McpServerPicker.d.ts +31 -6
  30. package/dist/components/McpServerPicker.js +129 -67
  31. package/dist/components/Menu.d.ts +1 -1
  32. package/dist/components/Menu.js +2 -2
  33. package/dist/components/Message.d.ts +3 -2
  34. package/dist/components/Message.js +10 -3
  35. package/dist/components/ModelSelector.d.ts +11 -8
  36. package/dist/components/ModelSelector.js +1 -1
  37. package/dist/components/PromptInput.d.ts +2 -2
  38. package/dist/components/PromptInput.js +49 -98
  39. package/dist/components/Queue.d.ts +1 -12
  40. package/dist/components/Reasoning.js +2 -15
  41. package/dist/components/Stepper.js +1 -7
  42. package/dist/components/ThinkChat.d.ts +30 -30
  43. package/dist/components/ThinkChat.js +1 -152
  44. package/dist/components/ThinkChatActivity.d.ts +2 -2
  45. package/dist/components/ThinkChatActivity.js +3 -10
  46. package/dist/components/ThinkChatContext.d.ts +2 -2
  47. package/dist/components/ThinkChatContext.js +9 -2
  48. package/dist/components/ThinkChatToolPanels.d.ts +1 -1
  49. package/dist/components/ThinkChatToolPanels.js +19 -7
  50. package/dist/components/ThinkChatToolParts.d.ts +1 -1
  51. package/dist/components/ThinkExecutionWorkbench.d.ts +10 -7
  52. package/dist/components/ThinkExecutionWorkbench.js +382 -359
  53. package/dist/components/ThinkFullApp.d.ts +16 -13
  54. package/dist/components/ThinkFullApp.js +28 -18
  55. package/dist/components/ThinkThreadPicker.d.ts +1 -31
  56. package/dist/components/ThinkThreadPicker.js +32 -171
  57. package/dist/components/ThinkThreadShell.d.ts +35 -0
  58. package/dist/components/ThinkThreadShell.js +146 -0
  59. package/dist/components/WorkspaceExplorer.js +3 -1
  60. package/dist/merge-refs-DF_7w2x_.js +18 -0
  61. package/dist/styles/agent-chat.css +4 -1
  62. package/dist/styles/browser-run-panel.css +57 -110
  63. package/dist/styles/codex-model-selector.css +197 -0
  64. package/dist/styles/index.css +4 -1
  65. package/dist/styles/mcp-server-picker.css +62 -15
  66. package/dist/styles/message.css +1 -1
  67. package/dist/styles/model-selector.css +20 -8
  68. package/dist/styles/prompt-input.css +5 -0
  69. package/dist/styles/streamdown.css +2 -48
  70. package/dist/styles/think-execution-workbench.css +337 -0
  71. package/dist/styles/think-full-app.css +15 -390
  72. package/dist/styles/think-resize-handle.css +33 -0
  73. package/dist/styles/think-thread-picker.css +0 -238
  74. package/dist/styles/think-thread-shell.css +219 -0
  75. package/dist/styles/workspace-explorer.css +8 -2
  76. package/dist/summarize-tool-input-BUJsENSn.js +12 -0
  77. package/package.json +2 -2
  78. package/dist/ThinkChatContext-BLAAb8J5.d.ts +0 -28
  79. package/dist/components/McpServerConnections.d.ts +0 -41
  80. package/dist/components/McpServerConnections.js +0 -188
  81. package/dist/components/useStickToBottom.d.ts +0 -33
  82. package/dist/components/useStickToBottom.js +0 -107
  83. package/dist/styles/mcp-server-connections.css +0 -145
@@ -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
 
@@ -1,132 +1,83 @@
1
1
  .browser-run-panel {
2
2
  min-inline-size: 0;
3
3
  min-block-size: 0;
4
- display: flex;
5
- flex-direction: column;
6
- background: var(--sigvelo-color-canvas);
7
- color: var(--sigvelo-color-text);
8
- font-family: var(--sigvelo-font-sans);
4
+ height: 100%;
9
5
  }
10
6
 
11
- .browser-run-panel__header {
7
+ .browser-run-panel .web-preview__nav:has(.browser-run-panel__tabs) {
12
8
  min-block-size: 3rem;
13
- display: flex;
14
- align-items: center;
15
- justify-content: space-between;
16
- gap: 0.75rem;
17
- padding: 0.5rem 0.625rem;
18
- border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
19
- color-mix(in srgb, var(--sigvelo-color-neutral-border-subtle) 62%, transparent);
20
- background: var(--sigvelo-color-surface);
21
- }
22
-
23
- .browser-run-panel__identity {
24
- min-inline-size: 0;
25
- display: flex;
26
- align-items: center;
27
- gap: 0.625rem;
28
- }
29
-
30
- .browser-run-panel__icon {
31
- flex: none;
32
- color: var(--sigvelo-color-text-muted);
9
+ gap: 0;
10
+ padding-block: 0;
11
+ padding-inline: 0.375rem;
12
+ border-block-end: 0;
13
+ background: var(--sigvelo-color-canvas);
33
14
  }
34
15
 
35
- .browser-run-panel__title-block {
36
- min-inline-size: 0;
16
+ .browser-run-panel__tabs {
37
17
  display: flex;
38
- flex-direction: column;
39
- gap: 0.125rem;
40
- }
41
-
42
- .browser-run-panel__title {
43
- font-size: 0.8125rem;
44
- font-weight: var(--sigvelo-font-weight-semibold);
45
- line-height: 1.2;
46
- }
47
-
48
- .browser-run-panel__url,
49
- .browser-run-panel__target-url {
18
+ flex: 1;
50
19
  min-inline-size: 0;
51
- overflow: hidden;
52
- color: var(--sigvelo-color-text-muted);
53
- font-size: 0.75rem;
54
- line-height: 1.2;
55
- text-overflow: ellipsis;
56
- white-space: nowrap;
57
- }
58
-
59
- .browser-run-panel__actions {
60
- flex: none;
61
- display: flex;
62
- align-items: center;
63
- gap: 0.25rem;
64
- }
65
-
66
- .browser-run-panel__actions svg {
67
- width: 1rem;
68
- height: 1rem;
20
+ flex-wrap: nowrap;
21
+ overflow-x: auto;
22
+ scrollbar-width: none;
69
23
  }
70
24
 
71
- .browser-run-panel__targets {
72
- display: flex;
73
- gap: 0.375rem;
74
- padding: 0.5rem 0.625rem;
75
- overflow-x: auto;
76
- border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
77
- color-mix(in srgb, var(--sigvelo-color-neutral-border-subtle) 50%, transparent);
78
- background: color-mix(in oklab, var(--sigvelo-color-canvas), var(--sigvelo-color-surface) 58%);
25
+ .browser-run-panel__tabs::-webkit-scrollbar {
26
+ display: none;
79
27
  }
80
28
 
81
- .browser-run-panel__target {
82
- min-inline-size: 8rem;
29
+ .browser-run-panel__tab.button {
30
+ min-inline-size: min(11rem, 45vw);
31
+ min-block-size: 2.75rem;
83
32
  max-inline-size: 13rem;
84
- display: flex;
85
33
  flex: 0 0 auto;
86
- flex-direction: column;
87
- gap: 0.125rem;
88
- padding: 0.375rem 0.5rem;
89
- border: var(--sigvelo-border-style) var(--sigvelo-border-width)
90
- color-mix(in srgb, var(--sigvelo-color-neutral-border-subtle) 68%, transparent);
91
- border-radius: var(--sigvelo-radius-md);
92
- background: var(--sigvelo-color-surface);
93
- color: inherit;
94
- font: inherit;
34
+ gap: 0.5rem;
35
+ padding-inline: 0.75rem;
36
+ border-radius: var(--sigvelo-radius-md) var(--sigvelo-radius-md) 0 0;
95
37
  text-align: start;
96
- cursor: pointer;
97
- }
98
-
99
- .browser-run-panel__target:hover {
100
- border-color: var(--sigvelo-color-neutral-border);
38
+ white-space: nowrap;
101
39
  }
102
40
 
103
- .browser-run-panel__target:focus-visible {
104
- outline: 2px solid var(--sigvelo-color-focus);
105
- outline-offset: 2px;
41
+ .browser-run-panel__tab[aria-selected="true"] {
42
+ background: var(--sigvelo-color-surface);
43
+ color: var(--sigvelo-color-text);
106
44
  }
107
45
 
108
- .browser-run-panel__target[aria-pressed="true"] {
109
- border-color: color-mix(in srgb, var(--sigvelo-color-primary-border) 82%, transparent);
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%;
110
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;
111
58
  }
112
59
 
113
- .browser-run-panel__target-title {
60
+ .browser-run-panel__tab-title {
114
61
  overflow: hidden;
62
+ max-inline-size: 100%;
115
63
  font-size: 0.75rem;
116
- font-weight: var(--sigvelo-font-weight-semibold);
117
64
  line-height: 1.2;
118
65
  text-overflow: ellipsis;
119
66
  white-space: nowrap;
120
67
  }
121
68
 
122
- .browser-run-panel__body {
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 {
123
75
  min-block-size: 0;
124
76
  display: flex;
125
- flex: 1;
126
77
  padding: 0.625rem;
127
78
  }
128
79
 
129
- .browser-run-panel__body > .browser-live-view {
80
+ .browser-run-panel__live-view {
130
81
  flex: 1;
131
82
  min-block-size: 16rem;
132
83
  aspect-ratio: auto;
@@ -134,27 +85,17 @@
134
85
  }
135
86
 
136
87
  .browser-run-panel__state {
137
- min-block-size: 14rem;
138
- display: flex;
139
88
  flex: 1;
140
- flex-direction: column;
141
- align-items: center;
142
- justify-content: center;
143
- gap: 0.5rem;
144
- padding: 1rem;
145
- border: var(--sigvelo-border-style) var(--sigvelo-border-width)
146
- var(--sigvelo-color-neutral-border-subtle);
147
- border-radius: var(--sigvelo-radius-md);
148
- background: var(--sigvelo-color-neutral-bg-subtle);
149
- color: var(--sigvelo-color-text-muted);
150
- font-size: 0.8125rem;
151
- text-align: center;
89
+ min-block-size: 14rem;
152
90
  }
153
91
 
154
92
  .browser-run-panel__state[data-tone="danger"] {
155
93
  min-block-size: auto;
156
94
  flex: none;
157
- margin: 0.625rem 0.625rem 0;
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;
158
99
  border-color: var(--sigvelo-color-danger-border-subtle);
159
100
  background: var(--sigvelo-color-danger-bg-subtle);
160
101
  color: var(--sigvelo-color-danger-text);
@@ -171,8 +112,14 @@
171
112
  }
172
113
 
173
114
  @media (prefers-reduced-motion: reduce) {
174
- .browser-run-panel__spinner,
175
- .browser-run-panel__actions .button svg {
115
+ .browser-run-panel__spinner {
176
116
  animation: none;
177
117
  }
178
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
+ }
@@ -39,7 +39,6 @@
39
39
  @import "./nanite-scene.css" layer(components);
40
40
  @import "./number-field.css" layer(components);
41
41
  @import "./popover.css" layer(components);
42
- @import "./mcp-server-connections.css" layer(components);
43
42
  @import "./mcp-server-picker.css" layer(components);
44
43
  @import "./preview-card.css" layer(components);
45
44
  @import "./progress.css" layer(components);
@@ -70,6 +69,7 @@
70
69
  @import "./commit.css" layer(components);
71
70
  @import "./context.css" layer(components);
72
71
  @import "./conversation.css" layer(components);
72
+ @import "./codex-model-selector.css" layer(components);
73
73
  @import "./environment-variables.css" layer(components);
74
74
  @import "./file-tree.css" layer(components);
75
75
  @import "./message.css" layer(components);
@@ -82,8 +82,11 @@
82
82
  @import "./task.css" layer(components);
83
83
  @import "./terminal.css" layer(components);
84
84
  @import "./test-results.css" layer(components);
85
+ @import "./think-execution-workbench.css" layer(components);
86
+ @import "./think-resize-handle.css" layer(components);
85
87
  @import "./think-full-app.css" layer(components);
86
88
  @import "./think-thread-picker.css" layer(components);
89
+ @import "./think-thread-shell.css" layer(components);
87
90
  @import "./web-preview.css" layer(components);
88
91
  @import "./workspace-explorer.css" layer(components);
89
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
  }
@@ -52,9 +52,10 @@
52
52
  color: var(--sigvelo-color-text-muted);
53
53
  }
54
54
 
55
- .model-selector__input {
55
+ .model-selector__input.input {
56
56
  flex: 1;
57
57
  min-width: 0;
58
+ height: auto;
58
59
  padding: 0;
59
60
  border: none;
60
61
  outline: none;
@@ -64,6 +65,10 @@
64
65
  font-size: 0.875rem;
65
66
  }
66
67
 
68
+ .model-selector__input.input:focus-visible {
69
+ box-shadow: none;
70
+ }
71
+
67
72
  .model-selector__input::placeholder {
68
73
  color: var(--sigvelo-color-text-muted);
69
74
  }
@@ -96,24 +101,28 @@
96
101
  .model-selector__item {
97
102
  display: flex;
98
103
  align-items: center;
104
+ justify-content: flex-start;
99
105
  gap: 0.625rem;
100
106
  width: 100%;
101
107
  padding-block: 0.5rem;
102
108
  padding-inline: 1rem;
103
- background-color: transparent;
104
- border: none;
109
+ border-radius: 0;
105
110
  color: var(--sigvelo-color-text);
106
111
  font-family: inherit;
107
112
  font-size: 0.875rem;
113
+ font-weight: var(--sigvelo-font-weight-normal);
108
114
  text-align: start;
109
- cursor: pointer;
110
115
  transition: background-color 120ms ease;
111
116
  }
112
117
 
113
- .model-selector__item:hover:not([data-disabled]),
118
+ .model-selector__item:hover:not(:disabled):not([data-disabled]),
114
119
  .model-selector__item:focus-visible {
115
120
  background-color: var(--sigvelo-color-neutral-bg-subtle);
121
+ }
122
+
123
+ .model-selector__item:focus-visible {
116
124
  outline: none;
125
+ box-shadow: inset 0 0 0 var(--sigvelo-focus-width) var(--sigvelo-color-focus);
117
126
  }
118
127
 
119
128
  .model-selector__item[data-selected] {
@@ -122,6 +131,11 @@
122
131
  font-weight: var(--sigvelo-font-weight-semibold);
123
132
  }
124
133
 
134
+ .model-selector__item:is(:disabled, [data-disabled]) {
135
+ cursor: not-allowed;
136
+ opacity: 0.5;
137
+ }
138
+
125
139
  .model-selector__empty {
126
140
  padding-block: 1.5rem;
127
141
  padding-inline: 1rem;
@@ -137,9 +151,7 @@
137
151
 
138
152
  .model-selector__separator {
139
153
  margin: 0.25rem 0;
140
- border: none;
141
- border-block-start: var(--sigvelo-border-style) var(--sigvelo-border-width)
142
- var(--sigvelo-color-neutral-border-subtle);
154
+ background-color: var(--sigvelo-color-neutral-border-subtle);
143
155
  }
144
156
 
145
157
  .model-selector__logo {
@@ -184,6 +184,11 @@
184
184
  color: var(--sigvelo-color-text);
185
185
  }
186
186
 
187
+ .prompt-input__tools .prompt-input__action-menu-trigger[data-popup-open] {
188
+ color: var(--sigvelo-color-text);
189
+ background-color: color-mix(in oklab, transparent, var(--sigvelo-color-text) 5%);
190
+ }
191
+
187
192
  .prompt-input__tooltip-content {
188
193
  display: inline-block;
189
194
  }