@mcp-b/react-components 0.1.5 → 0.2.1
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.
- package/dist/{CodeBlock-CttHhWcb.js → CodeBlock-BrCoypnc.js} +2 -2
- package/dist/Combobox-D9anamNr.d.ts +177 -0
- package/dist/Menu-B5vDqZe_.d.ts +395 -0
- package/dist/Tabs-D9EAq09D.d.ts +84 -0
- package/dist/components/Activity.d.ts +148 -0
- package/dist/components/Activity.js +177 -0
- package/dist/components/AgentChat.d.ts +61 -0
- package/dist/components/AgentChat.js +91 -0
- package/dist/components/AgentConnection.js +2 -2
- package/dist/components/Artifact.js +1 -1
- package/dist/components/ChainOfThought.d.ts +1 -11
- package/dist/components/ChainOfThought.js +2 -2
- package/dist/components/CodeBlock.js +1 -1
- package/dist/components/Combobox.d.ts +1 -176
- package/dist/components/Commit.d.ts +1 -1
- package/dist/components/Commit.js +3 -3
- package/dist/components/ContextMenu.js +1 -1
- package/dist/components/Conversation.js +11 -8
- package/dist/components/Dialog.js +1 -1
- package/dist/components/EnvironmentVariables.js +1 -1
- package/dist/components/FileTree.js +1 -1
- package/dist/components/Menu.d.ts +1 -394
- package/dist/components/Menubar.js +1 -1
- package/dist/components/Message.js +1 -1
- package/dist/components/ModelSelector.js +1 -1
- package/dist/components/NavigationMenu.js +1 -1
- package/dist/components/PricingPage.js +1 -1
- package/dist/components/PromptInput.d.ts +4 -4
- package/dist/components/PromptInput.js +2 -2
- package/dist/components/Queue.d.ts +1 -1
- package/dist/components/Queue.js +2 -2
- package/dist/components/Reasoning.js +2 -2
- package/dist/components/Select.js +1 -1
- package/dist/components/Sources.js +2 -2
- package/dist/components/Stepper.js +1 -1
- package/dist/components/Tabs.d.ts +1 -83
- package/dist/components/Task.js +2 -2
- package/dist/components/Terminal.js +2 -2
- package/dist/components/TestResults.js +2 -2
- package/dist/components/Tool.js +8 -4
- package/dist/components/WebPreview.js +1 -1
- package/dist/components/icons.d.ts +2 -0
- package/dist/components/icons.js +2 -0
- package/dist/components/useStickToBottom.js +10 -1
- package/dist/{copy-button-BNgclDrO.js → copy-button-DAPlB8Z0.js} +1 -1
- package/dist/{icons-BsWc8g4E.js → icons-Bf7JMKk-.js} +41 -1
- package/dist/icons-BklFyZbx.d.ts +48 -0
- package/dist/styles/accordion.css +34 -17
- package/dist/styles/activity.css +386 -0
- package/dist/styles/agent-chat.css +21 -0
- package/dist/styles/agent-connection.css +20 -3
- package/dist/styles/alert-dialog.css +37 -15
- package/dist/styles/artifact.css +24 -6
- package/dist/styles/autocomplete.css +25 -6
- package/dist/styles/badge.css +8 -6
- package/dist/styles/browser-live-view.css +164 -0
- package/dist/styles/browser-replay.css +189 -0
- package/dist/styles/button.css +14 -6
- package/dist/styles/card.css +4 -8
- package/dist/styles/chain-of-thought.css +5 -12
- package/dist/styles/checkbox.css +3 -3
- package/dist/styles/code-block.css +4 -8
- package/dist/styles/collapsible.css +7 -10
- package/dist/styles/combobox.css +6 -6
- package/dist/styles/commit.css +2 -9
- package/dist/styles/context-menu.css +2 -2
- package/dist/styles/conversation.css +12 -5
- package/dist/styles/dialog.css +1 -1
- package/dist/styles/field.css +2 -2
- package/dist/styles/file-tree.css +2 -2
- package/dist/styles/index.css +5 -0
- package/dist/styles/input.css +8 -3
- package/dist/styles/menu.css +4 -4
- package/dist/styles/menubar.css +5 -5
- package/dist/styles/message.css +3 -4
- package/dist/styles/navigation-menu.css +6 -6
- package/dist/styles/number-field.css +4 -4
- package/dist/styles/popover.css +7 -7
- package/dist/styles/preview-card.css +2 -2
- package/dist/styles/pricing-page.css +2 -2
- package/dist/styles/prompt-input.css +11 -9
- package/dist/styles/queue.css +6 -15
- package/dist/styles/radio.css +5 -5
- package/dist/styles/reasoning.css +6 -10
- package/dist/styles/scroll-area.css +2 -2
- package/dist/styles/select.css +3 -3
- package/dist/styles/slider.css +2 -2
- package/dist/styles/sources.css +5 -12
- package/dist/styles/stepper.css +13 -9
- package/dist/styles/switch.css +4 -4
- package/dist/styles/tabs.css +3 -3
- package/dist/styles/task.css +13 -18
- package/dist/styles/terminal.css +1 -3
- package/dist/styles/test-results.css +2 -9
- package/dist/styles/toast.css +3 -3
- package/dist/styles/toggle-group.css +3 -3
- package/dist/styles/toggle.css +3 -3
- package/dist/styles/tool.css +22 -21
- package/dist/styles/toolbar.css +4 -4
- package/dist/styles/workspace-explorer.css +108 -0
- package/package.json +10 -3
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
/* Claude/Codex-style: no box — the collapsed state is a plain muted text
|
|
2
|
+
line whose label shimmers while streaming; expanding reveals rows beneath. */
|
|
3
|
+
.activity {
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-direction: column;
|
|
6
|
+
width: 100%;
|
|
7
|
+
/* Hard cap, Codex-style, on the WHOLE unit — collapsed line and expanded
|
|
8
|
+
log alike — so toggling never reflows the conversation width. */
|
|
9
|
+
max-width: min(100%, 36rem);
|
|
10
|
+
/* Whitespace separates the work log from message prose around it */
|
|
11
|
+
margin-block: 0.5rem;
|
|
12
|
+
font-family: var(--sigvelo-font-sans);
|
|
13
|
+
color: var(--sigvelo-color-text);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.activity__trigger {
|
|
17
|
+
display: flex;
|
|
18
|
+
align-items: center;
|
|
19
|
+
gap: 0.375rem;
|
|
20
|
+
padding-block: 0.375rem;
|
|
21
|
+
/* The fill bleeds past the text edge via the negative margin, so the label
|
|
22
|
+
stays flush with the rows below instead of indenting on hover */
|
|
23
|
+
padding-inline: 0.5rem;
|
|
24
|
+
margin-inline: -0.5rem;
|
|
25
|
+
background-color: transparent;
|
|
26
|
+
border: none;
|
|
27
|
+
border-radius: var(--sigvelo-radius-sm);
|
|
28
|
+
/* A step dimmer than message prose (Codex-style) so the line reads as
|
|
29
|
+
status, not content */
|
|
30
|
+
color: color-mix(in oklab, var(--sigvelo-color-text-muted), transparent 20%);
|
|
31
|
+
font-family: inherit;
|
|
32
|
+
font-size: 0.8125rem;
|
|
33
|
+
font-weight: var(--sigvelo-font-weight-semibold);
|
|
34
|
+
text-align: start;
|
|
35
|
+
cursor: pointer;
|
|
36
|
+
transition:
|
|
37
|
+
color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
|
|
38
|
+
background-color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.activity__trigger:hover:not([data-disabled]) {
|
|
42
|
+
color: var(--sigvelo-color-text);
|
|
43
|
+
background-color: var(--sigvelo-color-neutral-bg-subtle);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.activity__trigger:focus-visible {
|
|
47
|
+
outline: none;
|
|
48
|
+
box-shadow:
|
|
49
|
+
0 0 0 2px var(--sigvelo-color-canvas),
|
|
50
|
+
0 0 0 4px var(--sigvelo-color-focus);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/* Basis 0 keeps the long nowrap label from inflating the message width
|
|
54
|
+
(it truncates instead); max-content caps growth so the chevron hugs the
|
|
55
|
+
text, Codex-style. */
|
|
56
|
+
.activity__trigger-label {
|
|
57
|
+
flex: 1 1 0;
|
|
58
|
+
min-width: 0;
|
|
59
|
+
max-width: max-content;
|
|
60
|
+
color: var(--sigvelo-color-text);
|
|
61
|
+
overflow: hidden;
|
|
62
|
+
text-overflow: ellipsis;
|
|
63
|
+
white-space: nowrap;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/* Streaming shimmer: a highlight sweeps the label left-to-right, then rests
|
|
67
|
+
muted for the back half of the loop (the gradient tiles seamlessly). */
|
|
68
|
+
.activity[data-streaming] .activity__trigger-label {
|
|
69
|
+
/* Resting shade matches the trigger's dimmed color; the sweep brightens */
|
|
70
|
+
--activity-shimmer-base: color-mix(in oklab, var(--sigvelo-color-text-muted), transparent 20%);
|
|
71
|
+
background: linear-gradient(
|
|
72
|
+
90deg,
|
|
73
|
+
var(--activity-shimmer-base) 0%,
|
|
74
|
+
var(--activity-shimmer-base) 40%,
|
|
75
|
+
var(--sigvelo-color-text) 50%,
|
|
76
|
+
var(--activity-shimmer-base) 60%,
|
|
77
|
+
var(--activity-shimmer-base) 100%
|
|
78
|
+
);
|
|
79
|
+
background-size: 200% 100%;
|
|
80
|
+
-webkit-background-clip: text;
|
|
81
|
+
background-clip: text;
|
|
82
|
+
color: transparent;
|
|
83
|
+
animation: activity-shimmer 2.4s linear infinite;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.activity__trigger-icon {
|
|
87
|
+
display: inline-flex;
|
|
88
|
+
color: var(--sigvelo-color-text-muted);
|
|
89
|
+
transition: transform var(--sigvelo-duration-medium) var(--sigvelo-ease-emphasized);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.activity__trigger[data-panel-open] .activity__trigger-icon {
|
|
93
|
+
transform: rotate(90deg);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/* The measured height lives on the base class, NOT gated behind [data-open]:
|
|
97
|
+
during close the open rule stops matching before the ending style lands,
|
|
98
|
+
height computes to `auto`, and `auto → 0` can't transition — the panel
|
|
99
|
+
snaps shut instead of folding. (Base UI's documented panel pattern.) */
|
|
100
|
+
.activity__content {
|
|
101
|
+
height: var(--collapsible-panel-height);
|
|
102
|
+
overflow: hidden;
|
|
103
|
+
/* The panel clips (overflow: hidden), so it must own the gutter the row
|
|
104
|
+
hover fills bleed into — the list padding puts the text back in line */
|
|
105
|
+
margin-inline: -0.5rem;
|
|
106
|
+
/* Standard easing, not emphasized: the expo-out curve front-loads ~60% of
|
|
107
|
+
the motion into the first frames, which makes collapsing read as content
|
|
108
|
+
snapping upward instead of folding. */
|
|
109
|
+
transition:
|
|
110
|
+
height var(--sigvelo-duration-medium) var(--sigvelo-ease-standard),
|
|
111
|
+
opacity var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.activity__content[data-starting-style],
|
|
115
|
+
.activity__content[data-ending-style] {
|
|
116
|
+
height: 0;
|
|
117
|
+
opacity: 0;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.activity__list {
|
|
121
|
+
display: flex;
|
|
122
|
+
flex-direction: column;
|
|
123
|
+
gap: 0.375rem;
|
|
124
|
+
/* Bounded so expanding never blows out the conversation scroll position */
|
|
125
|
+
max-height: 20rem;
|
|
126
|
+
overflow-y: auto;
|
|
127
|
+
padding-block: 0.125rem 0.5rem;
|
|
128
|
+
padding-inline: 0.5rem;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.activity__item {
|
|
132
|
+
display: flex;
|
|
133
|
+
align-items: baseline;
|
|
134
|
+
gap: 0.375rem;
|
|
135
|
+
font-size: 0.8125rem;
|
|
136
|
+
color: var(--sigvelo-color-text);
|
|
137
|
+
line-height: 1.6;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/* Second collapse level: the trigger reads as a plain item row; the panel is
|
|
141
|
+
chrome-free — no inner box inside the outlined Activity box. */
|
|
142
|
+
.activity__group {
|
|
143
|
+
display: flex;
|
|
144
|
+
flex-direction: column;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.activity__group-trigger {
|
|
148
|
+
display: flex;
|
|
149
|
+
align-items: baseline;
|
|
150
|
+
gap: 0.375rem;
|
|
151
|
+
/* Negative margins cancel the padding, so the hover fill gets breathing
|
|
152
|
+
room while the row text stays aligned with its plain siblings */
|
|
153
|
+
padding-block: 0.125rem;
|
|
154
|
+
padding-inline: 0.5rem;
|
|
155
|
+
margin-block: -0.125rem;
|
|
156
|
+
margin-inline: -0.5rem;
|
|
157
|
+
background: none;
|
|
158
|
+
border: none;
|
|
159
|
+
border-radius: var(--sigvelo-radius-sm);
|
|
160
|
+
font-family: inherit;
|
|
161
|
+
font-size: 0.8125rem;
|
|
162
|
+
font-weight: inherit;
|
|
163
|
+
color: var(--sigvelo-color-text);
|
|
164
|
+
line-height: 1.6;
|
|
165
|
+
text-align: start;
|
|
166
|
+
cursor: pointer;
|
|
167
|
+
transition: background-color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.activity__group-trigger:hover:not([data-disabled]) {
|
|
171
|
+
background-color: var(--sigvelo-color-neutral-bg-subtle);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/* The chevron is an affordance, not furniture — appears on hover/focus/open */
|
|
175
|
+
.activity__group-icon {
|
|
176
|
+
display: inline-flex;
|
|
177
|
+
align-self: center;
|
|
178
|
+
color: var(--sigvelo-color-text-muted);
|
|
179
|
+
opacity: 0;
|
|
180
|
+
transition:
|
|
181
|
+
opacity var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
|
|
182
|
+
transform var(--sigvelo-duration-medium) var(--sigvelo-ease-emphasized);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
.activity__group-trigger:hover .activity__group-icon,
|
|
186
|
+
.activity__group-trigger:focus-visible .activity__group-icon,
|
|
187
|
+
.activity__group-trigger[data-panel-open] .activity__group-icon {
|
|
188
|
+
opacity: 1;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.activity__group-trigger[data-panel-open] .activity__group-icon {
|
|
192
|
+
transform: rotate(90deg);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.activity__group-trigger:focus-visible {
|
|
196
|
+
outline: none;
|
|
197
|
+
box-shadow:
|
|
198
|
+
0 0 0 2px var(--sigvelo-color-canvas),
|
|
199
|
+
0 0 0 4px var(--sigvelo-color-focus);
|
|
200
|
+
border-radius: var(--sigvelo-radius-sm);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
.activity__group-panel {
|
|
204
|
+
height: var(--collapsible-panel-height);
|
|
205
|
+
overflow: hidden;
|
|
206
|
+
transition:
|
|
207
|
+
height var(--sigvelo-duration-medium) var(--sigvelo-ease-standard),
|
|
208
|
+
opacity var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
.activity__group-panel[data-starting-style],
|
|
212
|
+
.activity__group-panel[data-ending-style] {
|
|
213
|
+
height: 0;
|
|
214
|
+
opacity: 0;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
.activity__group-panel-inner {
|
|
218
|
+
padding-block: 0.375rem 0.5rem;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/* Prose panels (thought traces): quiet text, bounded like everything else */
|
|
222
|
+
.activity__group-text {
|
|
223
|
+
margin: 0;
|
|
224
|
+
font-size: 0.8125rem;
|
|
225
|
+
line-height: 1.6;
|
|
226
|
+
color: var(--sigvelo-color-text-muted);
|
|
227
|
+
white-space: pre-wrap;
|
|
228
|
+
overflow-wrap: anywhere;
|
|
229
|
+
max-height: 12rem;
|
|
230
|
+
overflow-y: auto;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
.activity__group-text:focus-visible,
|
|
234
|
+
.activity__shell-output:focus-visible {
|
|
235
|
+
outline: none;
|
|
236
|
+
box-shadow:
|
|
237
|
+
0 0 0 2px var(--sigvelo-color-canvas),
|
|
238
|
+
0 0 0 4px var(--sigvelo-color-focus);
|
|
239
|
+
border-radius: var(--sigvelo-radius-sm);
|
|
240
|
+
scroll-margin-block: 1rem;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
/* Codex-style shell panel: a quiet fill, not a terminal component — no
|
|
244
|
+
header bar, no chips, no chrome inside the outlined Activity box. */
|
|
245
|
+
.activity__shell {
|
|
246
|
+
display: flex;
|
|
247
|
+
flex-direction: column;
|
|
248
|
+
gap: 0.25rem;
|
|
249
|
+
padding-block: 0.5rem;
|
|
250
|
+
padding-inline: 0.75rem;
|
|
251
|
+
background-color: var(--sigvelo-color-neutral-bg-subtle);
|
|
252
|
+
border-radius: var(--sigvelo-radius-md);
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
.activity__shell-label {
|
|
256
|
+
font-size: 0.6875rem;
|
|
257
|
+
font-weight: var(--sigvelo-font-weight-semibold);
|
|
258
|
+
color: var(--sigvelo-color-text-muted);
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
.activity__shell-output {
|
|
262
|
+
margin: 0;
|
|
263
|
+
font-family: var(--sigvelo-font-mono);
|
|
264
|
+
font-size: 0.75rem;
|
|
265
|
+
line-height: 1.6;
|
|
266
|
+
color: var(--sigvelo-color-text);
|
|
267
|
+
white-space: pre-wrap;
|
|
268
|
+
overflow-wrap: anywhere;
|
|
269
|
+
/* Bounded so one long log can't swallow the activity list */
|
|
270
|
+
max-height: 12rem;
|
|
271
|
+
overflow-y: auto;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
.activity__shell-status {
|
|
275
|
+
align-self: flex-end;
|
|
276
|
+
font-size: 0.6875rem;
|
|
277
|
+
color: var(--sigvelo-color-success-text-on-subtle);
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
.activity__shell-status[data-error] {
|
|
281
|
+
color: var(--sigvelo-color-danger-text-on-subtle);
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
/* Browser panels: screenshots and live views sit inside the quiet fill */
|
|
285
|
+
.activity__shell .browser-live-view {
|
|
286
|
+
width: 100%;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
/* browser_execute splits into small tabs: the web view and the code that
|
|
290
|
+
drove it. Compact underline tabs — chrome stays quiet inside the shell. */
|
|
291
|
+
.activity__browser-tabs .tabs__tab {
|
|
292
|
+
padding-block: 0.25rem;
|
|
293
|
+
padding-inline: 0.125rem;
|
|
294
|
+
font-size: 0.75rem;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
.activity__browser-tabs .tabs__panel {
|
|
298
|
+
padding-block: 0.5rem 0;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
/* Blend nested code into the quiet shell fill — no panel-in-panel */
|
|
302
|
+
.activity__shell .code-block {
|
|
303
|
+
background-color: transparent;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
/* Bounded and wrapping, like every other panel body */
|
|
307
|
+
.activity__code-block {
|
|
308
|
+
max-height: 12rem;
|
|
309
|
+
overflow-y: auto;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
.activity__code-block .code-block__content,
|
|
313
|
+
.activity__code-block .code-block__content--highlighted pre.shiki,
|
|
314
|
+
.activity__code-block .code-block__content--highlighted pre.shiki code {
|
|
315
|
+
white-space: pre-wrap;
|
|
316
|
+
word-break: break-word;
|
|
317
|
+
overflow-wrap: anywhere;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
.activity__browser-screenshot {
|
|
321
|
+
display: block;
|
|
322
|
+
width: 100%;
|
|
323
|
+
max-height: 16rem;
|
|
324
|
+
object-fit: contain;
|
|
325
|
+
border-radius: var(--sigvelo-radius-md);
|
|
326
|
+
background-color: var(--sigvelo-color-surface);
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
/* Mini diff inside an edit panel */
|
|
330
|
+
.activity__diff-del {
|
|
331
|
+
color: var(--sigvelo-color-danger-text-on-subtle);
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
.activity__diff-add {
|
|
335
|
+
color: var(--sigvelo-color-success-text-on-subtle);
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
.activity__item-icon {
|
|
339
|
+
display: inline-flex;
|
|
340
|
+
align-self: center;
|
|
341
|
+
color: var(--sigvelo-color-text-muted);
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
.activity__item-text {
|
|
345
|
+
min-width: 0;
|
|
346
|
+
overflow-wrap: anywhere;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
/* Row labels always clamp to one line, Codex-style — the expanded panel
|
|
350
|
+
carries the full `$ command`, the row stays a trimmed summary. */
|
|
351
|
+
.activity__group-trigger .activity__item-text {
|
|
352
|
+
white-space: nowrap;
|
|
353
|
+
overflow: hidden;
|
|
354
|
+
text-overflow: ellipsis;
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
@keyframes activity-shimmer {
|
|
358
|
+
from {
|
|
359
|
+
background-position: 100% 0;
|
|
360
|
+
}
|
|
361
|
+
to {
|
|
362
|
+
background-position: -100% 0;
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
@media (prefers-reduced-motion: reduce) {
|
|
367
|
+
.activity[data-streaming] .activity__trigger-label {
|
|
368
|
+
animation: none;
|
|
369
|
+
background: none;
|
|
370
|
+
color: inherit;
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
@media (forced-colors: active) {
|
|
375
|
+
/* background-clip: text has no forced-colors story — plain text instead */
|
|
376
|
+
.activity[data-streaming] .activity__trigger-label {
|
|
377
|
+
animation: none;
|
|
378
|
+
background: none;
|
|
379
|
+
color: inherit;
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
.activity__trigger:focus-visible {
|
|
383
|
+
outline: 2px solid Highlight;
|
|
384
|
+
outline-offset: 2px;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
.agent-chat {
|
|
2
|
+
display: grid;
|
|
3
|
+
grid-template-rows: minmax(0, 1fr) auto;
|
|
4
|
+
width: 100%;
|
|
5
|
+
height: 100%;
|
|
6
|
+
min-height: 0;
|
|
7
|
+
background-color: var(--sigvelo-color-surface);
|
|
8
|
+
color: var(--sigvelo-color-text);
|
|
9
|
+
font-family: var(--sigvelo-font-sans);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.agent-chat__conversation {
|
|
13
|
+
min-height: 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.agent-chat__composer {
|
|
17
|
+
border-block-start: var(--sigvelo-border-style) var(--sigvelo-border-width)
|
|
18
|
+
var(--sigvelo-color-neutral-border-subtle);
|
|
19
|
+
padding: 0.75rem;
|
|
20
|
+
background-color: var(--sigvelo-color-surface);
|
|
21
|
+
}
|
|
@@ -41,10 +41,12 @@
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
.agent-connect__title-group p {
|
|
44
|
+
max-inline-size: 62ch;
|
|
44
45
|
margin: 0;
|
|
45
46
|
color: var(--sigvelo-color-text-muted);
|
|
46
47
|
font-size: 0.78rem;
|
|
47
48
|
line-height: 1.35;
|
|
49
|
+
text-wrap: pretty;
|
|
48
50
|
}
|
|
49
51
|
|
|
50
52
|
.agent-connect__targets {
|
|
@@ -88,9 +90,19 @@
|
|
|
88
90
|
font-size: 0.72rem;
|
|
89
91
|
font-weight: var(--sigvelo-font-weight-semibold);
|
|
90
92
|
line-height: 1.15;
|
|
93
|
+
overflow-wrap: anywhere;
|
|
91
94
|
text-align: center;
|
|
92
95
|
}
|
|
93
96
|
|
|
97
|
+
.agent-connect .agent-connect__target {
|
|
98
|
+
border: var(--sigvelo-border-style) var(--sigvelo-border-width) transparent;
|
|
99
|
+
transition:
|
|
100
|
+
background-color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
|
|
101
|
+
border-color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
|
|
102
|
+
color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
|
|
103
|
+
box-shadow var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
|
|
104
|
+
}
|
|
105
|
+
|
|
94
106
|
@media (pointer: coarse) {
|
|
95
107
|
.agent-connect__target {
|
|
96
108
|
min-block-size: 2.5rem;
|
|
@@ -104,14 +116,19 @@
|
|
|
104
116
|
}
|
|
105
117
|
|
|
106
118
|
.agent-connect__target:focus-visible {
|
|
107
|
-
outline:
|
|
108
|
-
|
|
119
|
+
outline: none;
|
|
120
|
+
box-shadow:
|
|
121
|
+
0 0 0 2px var(--sigvelo-color-canvas),
|
|
122
|
+
0 0 0 4px var(--sigvelo-color-focus);
|
|
109
123
|
}
|
|
110
124
|
|
|
111
125
|
.agent-connect__target[data-selected="true"] {
|
|
126
|
+
border-color: var(--sigvelo-color-primary-border-muted);
|
|
112
127
|
background: var(--sigvelo-color-surface);
|
|
113
128
|
color: var(--sigvelo-color-text);
|
|
114
|
-
box-shadow:
|
|
129
|
+
box-shadow:
|
|
130
|
+
var(--sigvelo-shadow-xs),
|
|
131
|
+
inset 0 0 0 1px var(--sigvelo-color-primary-border-subtle);
|
|
115
132
|
}
|
|
116
133
|
|
|
117
134
|
.agent-connect .code-block {
|
|
@@ -11,11 +11,20 @@
|
|
|
11
11
|
color: inherit;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
.alert-dialog__trigger:focus-visible {
|
|
15
|
+
outline: none;
|
|
16
|
+
box-shadow:
|
|
17
|
+
0 0 0 2px var(--sigvelo-color-canvas),
|
|
18
|
+
0 0 0 4px var(--sigvelo-color-focus);
|
|
19
|
+
}
|
|
20
|
+
|
|
14
21
|
.alert-dialog__backdrop {
|
|
15
22
|
position: fixed;
|
|
16
23
|
inset: 0;
|
|
17
|
-
background-color:
|
|
24
|
+
background-color: var(--sigvelo-color-backdrop);
|
|
25
|
+
opacity: 1;
|
|
18
26
|
z-index: 50;
|
|
27
|
+
transition: opacity var(--sigvelo-duration-medium) var(--sigvelo-ease-standard);
|
|
19
28
|
}
|
|
20
29
|
|
|
21
30
|
.alert-dialog__backdrop[data-starting-style],
|
|
@@ -25,12 +34,14 @@
|
|
|
25
34
|
|
|
26
35
|
.alert-dialog__popup {
|
|
27
36
|
position: fixed;
|
|
28
|
-
|
|
29
|
-
|
|
37
|
+
inset-block-start: 50%;
|
|
38
|
+
inset-inline-start: 50%;
|
|
30
39
|
transform: translate(-50%, -50%);
|
|
31
40
|
z-index: 50;
|
|
32
|
-
|
|
33
|
-
max-
|
|
41
|
+
inline-size: calc(100% - 2rem);
|
|
42
|
+
max-inline-size: 28rem;
|
|
43
|
+
max-block-size: calc(100dvb - 2rem);
|
|
44
|
+
overflow: auto;
|
|
34
45
|
background-color: var(--sigvelo-color-canvas);
|
|
35
46
|
border: var(--sigvelo-border-style) var(--sigvelo-border-width)
|
|
36
47
|
var(--sigvelo-color-neutral-border-muted);
|
|
@@ -39,6 +50,9 @@
|
|
|
39
50
|
box-shadow:
|
|
40
51
|
0 10px 15px -3px color-mix(in oklab, var(--sigvelo-color-text), transparent 90%),
|
|
41
52
|
0 4px 6px -4px color-mix(in oklab, var(--sigvelo-color-text), transparent 90%);
|
|
53
|
+
transition:
|
|
54
|
+
opacity var(--sigvelo-duration-medium) var(--sigvelo-ease-standard),
|
|
55
|
+
transform var(--sigvelo-duration-medium) var(--sigvelo-ease-emphasized);
|
|
42
56
|
}
|
|
43
57
|
|
|
44
58
|
.alert-dialog__popup[data-starting-style],
|
|
@@ -48,11 +62,11 @@
|
|
|
48
62
|
}
|
|
49
63
|
|
|
50
64
|
.alert-dialog__popup--sm {
|
|
51
|
-
max-
|
|
65
|
+
max-inline-size: 20rem;
|
|
52
66
|
}
|
|
53
67
|
|
|
54
68
|
.alert-dialog__popup--lg {
|
|
55
|
-
max-
|
|
69
|
+
max-inline-size: 36rem;
|
|
56
70
|
}
|
|
57
71
|
|
|
58
72
|
.alert-dialog__title {
|
|
@@ -62,6 +76,7 @@
|
|
|
62
76
|
line-height: 1.25;
|
|
63
77
|
color: var(--sigvelo-color-text);
|
|
64
78
|
margin: 0 0 0.5rem;
|
|
79
|
+
text-wrap: balance;
|
|
65
80
|
}
|
|
66
81
|
|
|
67
82
|
.alert-dialog__description {
|
|
@@ -70,6 +85,7 @@
|
|
|
70
85
|
line-height: 1.5;
|
|
71
86
|
color: var(--sigvelo-color-text-muted);
|
|
72
87
|
margin: 0 0 1.5rem;
|
|
88
|
+
text-wrap: pretty;
|
|
73
89
|
}
|
|
74
90
|
|
|
75
91
|
.alert-dialog__header {
|
|
@@ -93,7 +109,7 @@
|
|
|
93
109
|
display: inline-flex;
|
|
94
110
|
align-items: center;
|
|
95
111
|
justify-content: center;
|
|
96
|
-
|
|
112
|
+
min-block-size: 2.5rem;
|
|
97
113
|
padding: 0 1rem;
|
|
98
114
|
font-family: var(--sigvelo-font-sans);
|
|
99
115
|
font-size: 0.875rem;
|
|
@@ -102,8 +118,9 @@
|
|
|
102
118
|
border-radius: var(--sigvelo-radius-md);
|
|
103
119
|
cursor: pointer;
|
|
104
120
|
transition:
|
|
105
|
-
background-color
|
|
106
|
-
color
|
|
121
|
+
background-color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
|
|
122
|
+
color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
|
|
123
|
+
opacity var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
|
|
107
124
|
}
|
|
108
125
|
|
|
109
126
|
.alert-dialog__action:focus-visible {
|
|
@@ -113,12 +130,17 @@
|
|
|
113
130
|
0 0 0 4px var(--sigvelo-color-focus);
|
|
114
131
|
}
|
|
115
132
|
|
|
133
|
+
.alert-dialog__action:disabled {
|
|
134
|
+
cursor: not-allowed;
|
|
135
|
+
opacity: 0.5;
|
|
136
|
+
}
|
|
137
|
+
|
|
116
138
|
.alert-dialog__action--primary {
|
|
117
139
|
background-color: var(--sigvelo-color-primary-bg);
|
|
118
140
|
color: var(--sigvelo-color-primary-text-on-bg);
|
|
119
141
|
}
|
|
120
142
|
|
|
121
|
-
.alert-dialog__action--primary:hover {
|
|
143
|
+
.alert-dialog__action--primary:hover:not(:disabled) {
|
|
122
144
|
background-color: color-mix(in oklab, var(--sigvelo-color-primary-bg), transparent 10%);
|
|
123
145
|
}
|
|
124
146
|
|
|
@@ -127,7 +149,7 @@
|
|
|
127
149
|
color: var(--sigvelo-color-neutral-text-on-subtle);
|
|
128
150
|
}
|
|
129
151
|
|
|
130
|
-
.alert-dialog__action--secondary:hover {
|
|
152
|
+
.alert-dialog__action--secondary:hover:not(:disabled) {
|
|
131
153
|
background-color: color-mix(in oklab, var(--sigvelo-color-neutral-bg-subtle), transparent 20%);
|
|
132
154
|
}
|
|
133
155
|
|
|
@@ -136,7 +158,7 @@
|
|
|
136
158
|
color: var(--sigvelo-color-danger-text-on-bg);
|
|
137
159
|
}
|
|
138
160
|
|
|
139
|
-
.alert-dialog__action--destructive:hover {
|
|
161
|
+
.alert-dialog__action--destructive:hover:not(:disabled) {
|
|
140
162
|
background-color: color-mix(in oklab, var(--sigvelo-color-danger-bg), transparent 10%);
|
|
141
163
|
}
|
|
142
164
|
|
|
@@ -147,7 +169,7 @@
|
|
|
147
169
|
var(--sigvelo-color-neutral-border-muted);
|
|
148
170
|
}
|
|
149
171
|
|
|
150
|
-
.alert-dialog__action--outline:hover {
|
|
172
|
+
.alert-dialog__action--outline:hover:not(:disabled) {
|
|
151
173
|
background-color: var(--sigvelo-color-neutral-bg-subtle);
|
|
152
174
|
color: var(--sigvelo-color-neutral-text-on-subtle);
|
|
153
175
|
}
|
|
@@ -157,7 +179,7 @@
|
|
|
157
179
|
color: var(--sigvelo-color-text);
|
|
158
180
|
}
|
|
159
181
|
|
|
160
|
-
.alert-dialog__action--ghost:hover {
|
|
182
|
+
.alert-dialog__action--ghost:hover:not(:disabled) {
|
|
161
183
|
background-color: var(--sigvelo-color-neutral-bg-subtle);
|
|
162
184
|
color: var(--sigvelo-color-neutral-text-on-subtle);
|
|
163
185
|
}
|
package/dist/styles/artifact.css
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
.artifact {
|
|
2
2
|
display: flex;
|
|
3
3
|
flex-direction: column;
|
|
4
|
-
|
|
4
|
+
inline-size: 100%;
|
|
5
5
|
font-family: var(--sigvelo-font-sans);
|
|
6
6
|
color: var(--sigvelo-color-text);
|
|
7
|
+
/* Shadow-led elevation: no perimeter border */
|
|
7
8
|
background-color: var(--sigvelo-color-surface);
|
|
8
|
-
border: var(--sigvelo-border-style) var(--sigvelo-border-width)
|
|
9
|
-
var(--sigvelo-color-neutral-border-subtle);
|
|
10
9
|
border-radius: var(--sigvelo-radius-lg, var(--sigvelo-radius-md));
|
|
11
|
-
box-shadow: var(--sigvelo-shadow-
|
|
10
|
+
box-shadow: var(--sigvelo-shadow-sm);
|
|
12
11
|
overflow: hidden;
|
|
13
12
|
}
|
|
14
13
|
|
|
@@ -19,11 +18,13 @@
|
|
|
19
18
|
gap: 0.75rem;
|
|
20
19
|
padding-block: 0.75rem;
|
|
21
20
|
padding-inline: 1rem;
|
|
22
|
-
border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
|
|
23
|
-
var(--sigvelo-color-neutral-border-subtle);
|
|
24
21
|
background-color: var(--sigvelo-color-surface);
|
|
25
22
|
}
|
|
26
23
|
|
|
24
|
+
.artifact__header > :not(.artifact__actions) {
|
|
25
|
+
min-inline-size: 0;
|
|
26
|
+
}
|
|
27
|
+
|
|
27
28
|
.artifact__title {
|
|
28
29
|
margin: 0;
|
|
29
30
|
font-family: inherit;
|
|
@@ -31,6 +32,8 @@
|
|
|
31
32
|
font-weight: var(--sigvelo-font-weight-bold);
|
|
32
33
|
color: var(--sigvelo-color-text);
|
|
33
34
|
line-height: 1.3;
|
|
35
|
+
overflow-wrap: anywhere;
|
|
36
|
+
text-wrap: balance;
|
|
34
37
|
}
|
|
35
38
|
|
|
36
39
|
.artifact__description {
|
|
@@ -39,6 +42,8 @@
|
|
|
39
42
|
font-size: 0.8125rem;
|
|
40
43
|
color: var(--sigvelo-color-text-muted);
|
|
41
44
|
line-height: 1.4;
|
|
45
|
+
overflow-wrap: anywhere;
|
|
46
|
+
text-wrap: pretty;
|
|
42
47
|
}
|
|
43
48
|
|
|
44
49
|
.artifact__actions {
|
|
@@ -53,11 +58,24 @@
|
|
|
53
58
|
/* Inherits from Button variant=ghost size=icon; overrides only when needed */
|
|
54
59
|
}
|
|
55
60
|
|
|
61
|
+
.artifact__action .sr-only {
|
|
62
|
+
position: absolute;
|
|
63
|
+
inline-size: 1px;
|
|
64
|
+
block-size: 1px;
|
|
65
|
+
padding: 0;
|
|
66
|
+
margin: -1px;
|
|
67
|
+
overflow: hidden;
|
|
68
|
+
white-space: nowrap;
|
|
69
|
+
border: 0;
|
|
70
|
+
clip: rect(0 0 0 0);
|
|
71
|
+
}
|
|
72
|
+
|
|
56
73
|
.artifact__content {
|
|
57
74
|
padding-block: 1rem;
|
|
58
75
|
padding-inline: 1rem;
|
|
59
76
|
font-size: 0.875rem;
|
|
60
77
|
line-height: 1.5;
|
|
78
|
+
overflow-wrap: anywhere;
|
|
61
79
|
}
|
|
62
80
|
|
|
63
81
|
@media (forced-colors: active) {
|