@mcp-b/react-components 0.20.5 → 0.21.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.
- package/dist/{AgentActivity-D2SHSGFX.d.ts → AgentActivity-D3OvrC02.d.ts} +14 -1
- package/dist/{AgentChat-C-ZyXbJz.d.ts → AgentChat-Dvkn8lce.d.ts} +23 -0
- package/dist/AgentChatStartScreen-CvXJBr4y.d.ts +57 -0
- package/dist/{ModelSelector-pecWyOFI.js → ModelSelector-CEd8M9eK.js} +14 -7
- package/dist/{ThinkChatActivity-CdbL0aoA.d.ts → ThinkChatActivity-FY1VWXgh.d.ts} +8 -7
- package/dist/{ThinkChatActivitySummary-D1xOrNrq.d.ts → ThinkChatActivitySummary-kr5fE0wg.d.ts} +14 -5
- package/dist/{ToggleGroup-DNd6cDJZ.d.ts → ToggleGroup-BW1jrhAF.d.ts} +10 -0
- package/dist/components/Activity.d.ts +33 -17
- package/dist/components/Activity.js +39 -27
- package/dist/components/AgentActivity.d.ts +1 -1
- package/dist/components/AgentActivityPreview.d.ts +1 -1
- package/dist/components/AgentActivityPreview.js +2 -2
- package/dist/components/AgentChat.d.ts +1 -1
- package/dist/components/AgentChat.js +142 -129
- package/dist/components/AgentChatStartScreen.d.ts +2 -0
- package/dist/components/AgentChatStartScreen.js +82 -0
- package/dist/components/Approval.js +2 -4
- package/dist/components/BrowserLiveView.js +5 -7
- package/dist/components/BrowserReplay.js +5 -4
- package/dist/components/BrowserRunPanel.js +1 -1
- package/dist/components/ChatGptSignInScreen.js +1 -1
- package/dist/components/Conversation.d.ts +1 -22
- package/dist/components/Conversation.js +2 -29
- package/dist/components/EmptyState.d.ts +46 -0
- package/dist/components/EmptyState.js +50 -0
- package/dist/components/Kbd.d.ts +32 -0
- package/dist/components/Kbd.js +34 -0
- package/dist/components/ModelSelector.d.ts +10 -4
- package/dist/components/ModelSelector.js +2 -2
- package/dist/components/PricingBillingToggle.js +1 -0
- package/dist/components/PromptInput.js +3 -2
- package/dist/components/Reasoning.js +1 -1
- package/dist/components/StatusPill.d.ts +43 -0
- package/dist/components/StatusPill.js +35 -0
- package/dist/components/ThinkChat.d.ts +9 -3
- package/dist/components/ThinkChatActivity.d.ts +2 -2
- package/dist/components/ThinkChatActivity.js +27 -15
- package/dist/components/ThinkChatActivitySummary.d.ts +2 -2
- package/dist/components/ThinkChatActivitySummary.js +67 -64
- package/dist/components/ThinkExecutionDetail.js +4 -4
- package/dist/components/ThinkExecutionWorkbench.js +5 -4
- package/dist/components/ThinkFullAppViewSwitch.d.ts +1 -1
- package/dist/components/ThinkRoutineBrowser.js +1 -0
- package/dist/components/ThinkRoutineRuns.js +3 -2
- package/dist/components/ThinkThreadPicker.js +3 -2
- package/dist/components/ToggleGroup.d.ts +1 -1
- package/dist/components/ToggleGroup.js +54 -7
- package/dist/components/ToolInvocation.js +1 -1
- package/dist/styles/activity-header.css +41 -10
- package/dist/styles/activity.css +26 -4
- package/dist/styles/agent-activity-preview-overlay.css +39 -12
- package/dist/styles/agent-activity-preview.css +31 -30
- package/dist/styles/agent-attention.css +2 -2
- package/dist/styles/agent-chat.css +199 -0
- package/dist/styles/agent-connection.css +8 -8
- package/dist/styles/alert-dialog.css +5 -2
- package/dist/styles/app-top-bar.css +4 -4
- package/dist/styles/approval.css +1 -7
- package/dist/styles/artifact.css +4 -4
- package/dist/styles/base-ui-motion.css +1 -1
- package/dist/styles/base.css +95 -3
- package/dist/styles/browser-control-overlay.css +16 -7
- package/dist/styles/browser-live-view.css +5 -38
- package/dist/styles/browser-replay.css +2 -6
- package/dist/styles/browser-run-panel.css +4 -18
- package/dist/styles/button.css +3 -1
- package/dist/styles/card.css +4 -4
- package/dist/styles/chain-of-thought.css +0 -1
- package/dist/styles/chatgpt-sign-in-screen.css +7 -5
- package/dist/styles/checkbox-group.css +3 -3
- package/dist/styles/code-block.css +4 -4
- package/dist/styles/context-menu.css +1 -1
- package/dist/styles/conversation.css +7 -42
- package/dist/styles/description-list.css +2 -2
- package/dist/styles/dialog.css +17 -2
- package/dist/styles/empty-state.css +48 -0
- package/dist/styles/environment-variables.css +4 -4
- package/dist/styles/field.css +2 -2
- package/dist/styles/index.css +3 -0
- package/dist/styles/inline-citation.css +1 -1
- package/dist/styles/kbd.css +40 -0
- package/dist/styles/media-preview-card.css +5 -3
- package/dist/styles/message-scroller.css +4 -4
- package/dist/styles/message.css +4 -6
- package/dist/styles/model-selector.css +5 -8
- package/dist/styles/popover.css +1 -1
- package/dist/styles/preview-card.css +1 -1
- package/dist/styles/prompt-input.css +18 -40
- package/dist/styles/queue.css +2 -2
- package/dist/styles/recipes.css +68 -9
- package/dist/styles/resizable-side-panel.css +1 -1
- package/dist/styles/responsive-sidebar-shell.css +5 -6
- package/dist/styles/scrollbars.css +32 -3
- package/dist/styles/sources.css +1 -1
- package/dist/styles/status-pill.css +39 -0
- package/dist/styles/stepper.css +2 -2
- package/dist/styles/streamdown.css +13 -12
- package/dist/styles/subagent-run.css +3 -3
- package/dist/styles/switch.css +1 -3
- package/dist/styles/tabs.css +1 -1
- package/dist/styles/task.css +1 -1
- package/dist/styles/terminal.css +2 -2
- package/dist/styles/test-results.css +1 -2
- package/dist/styles/textarea.css +1 -1
- package/dist/styles/theme-mode-control.css +1 -1
- package/dist/styles/think-execution-status.css +4 -23
- package/dist/styles/think-execution-workbench.css +2 -3
- package/dist/styles/think-full-app.css +2 -2
- package/dist/styles/think-routine-library.css +14 -16
- package/dist/styles/think-thread-picker.css +8 -25
- package/dist/styles/toast.css +2 -2
- package/dist/styles/toggle-group.css +76 -3
- package/dist/styles/tooltip.css +1 -2
- package/dist/styles/utilities.css +73 -0
- package/dist/styles/workspace-explorer.css +4 -6
- package/package.json +2 -2
package/dist/styles/field.css
CHANGED
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
.field__description {
|
|
95
95
|
font-family: inherit;
|
|
96
96
|
font-size: var(--sigvelo-text-xs);
|
|
97
|
-
line-height:
|
|
97
|
+
line-height: var(--sigvelo-leading-snug);
|
|
98
98
|
color: var(--sigvelo-color-text-muted);
|
|
99
99
|
margin: 0;
|
|
100
100
|
}
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
.field__error {
|
|
103
103
|
font-family: inherit;
|
|
104
104
|
font-size: var(--sigvelo-text-xs);
|
|
105
|
-
line-height:
|
|
105
|
+
line-height: var(--sigvelo-leading-snug);
|
|
106
106
|
color: var(--sigvelo-color-danger-bg);
|
|
107
107
|
margin: 0;
|
|
108
108
|
opacity: 1;
|
package/dist/styles/index.css
CHANGED
|
@@ -34,11 +34,13 @@
|
|
|
34
34
|
@import "./combobox.css" layer(components);
|
|
35
35
|
@import "./context-menu.css" layer(components);
|
|
36
36
|
@import "./dialog.css" layer(components);
|
|
37
|
+
@import "./empty-state.css" layer(components);
|
|
37
38
|
@import "./field.css" layer(components);
|
|
38
39
|
@import "./fieldset.css" layer(components);
|
|
39
40
|
@import "./form.css" layer(components);
|
|
40
41
|
@import "./github-motion-mark.css" layer(components);
|
|
41
42
|
@import "./input.css" layer(components);
|
|
43
|
+
@import "./kbd.css" layer(components);
|
|
42
44
|
@import "./label.css" layer(components);
|
|
43
45
|
@import "./marker.css" layer(components);
|
|
44
46
|
@import "./media-preview-card.css" layer(components);
|
|
@@ -61,6 +63,7 @@
|
|
|
61
63
|
@import "./select.css" layer(components);
|
|
62
64
|
@import "./separator.css" layer(components);
|
|
63
65
|
@import "./slider.css" layer(components);
|
|
66
|
+
@import "./status-pill.css" layer(components);
|
|
64
67
|
@import "./stepper.css" layer(components);
|
|
65
68
|
@import "./switch.css" layer(components);
|
|
66
69
|
@import "./tabs.css" layer(components);
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Everything here resolves from currentColor, which is what lets one chip work
|
|
3
|
+
* on a page surface and on the inverted surface of a tooltip. A fixed
|
|
4
|
+
* neutral background is legible on exactly one of those.
|
|
5
|
+
*
|
|
6
|
+
* Codex renders its keys at tertiary text and strips the shadow its base sheet
|
|
7
|
+
* applies, so the resting state here is quiet by default rather than quieted
|
|
8
|
+
* at each call site.
|
|
9
|
+
*/
|
|
10
|
+
.kbd {
|
|
11
|
+
display: inline-flex;
|
|
12
|
+
align-items: center;
|
|
13
|
+
justify-content: center;
|
|
14
|
+
min-inline-size: var(--sigvelo-spacing-5);
|
|
15
|
+
padding-block: var(--sigvelo-spacing-0-5);
|
|
16
|
+
padding-inline: var(--sigvelo-spacing-1);
|
|
17
|
+
font-family: var(--sigvelo-font-mono);
|
|
18
|
+
/* em, not a type step: a key sits inside a label and should track whatever
|
|
19
|
+
size that label is set at. */
|
|
20
|
+
font-size: 0.75em;
|
|
21
|
+
line-height: var(--sigvelo-text-xs-leading);
|
|
22
|
+
/* currentcolor in the color property is the *inherited* color, so this dims
|
|
23
|
+
whatever the surface already set. In every declaration below it, though,
|
|
24
|
+
currentcolor is this new value — which is why nothing here names a
|
|
25
|
+
specific text token. Naming one would pin the chip to a light surface and
|
|
26
|
+
lose the tooltip. */
|
|
27
|
+
color: color-mix(in oklab, currentcolor, transparent 25%);
|
|
28
|
+
background-color: color-mix(in oklab, currentcolor, transparent 90%);
|
|
29
|
+
border: var(--sigvelo-border-style) var(--sigvelo-border-width)
|
|
30
|
+
color-mix(in oklab, currentcolor, transparent 82%);
|
|
31
|
+
border-radius: var(--sigvelo-radius-sm);
|
|
32
|
+
white-space: nowrap;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@media (forced-colors: active) {
|
|
36
|
+
.kbd {
|
|
37
|
+
color: ButtonText;
|
|
38
|
+
border-color: ButtonText;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
.media-preview-card:is(:hover, :focus-within) {
|
|
18
|
-
box-shadow: var(--sigvelo-
|
|
18
|
+
box-shadow: var(--sigvelo-elevation-floating);
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
.media-preview-card:has(> :is(a, button):focus-visible) {
|
|
@@ -73,8 +73,10 @@
|
|
|
73
73
|
var(--sigvelo-color-neutral-border);
|
|
74
74
|
border-radius: var(--sigvelo-radius-full);
|
|
75
75
|
color: var(--sigvelo-color-text);
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
/* Sits over arbitrary artwork, so it keeps the hard border and takes the
|
|
77
|
+
translucent surface the glass token already defines. */
|
|
78
|
+
background: var(--sigvelo-color-surface-glass);
|
|
79
|
+
box-shadow: var(--sigvelo-elevation-floating);
|
|
78
80
|
translate: -50% -50%;
|
|
79
81
|
scale: 1;
|
|
80
82
|
transition:
|
|
@@ -42,11 +42,11 @@
|
|
|
42
42
|
.message-scroller__button {
|
|
43
43
|
position: absolute;
|
|
44
44
|
inset-inline-start: 50%;
|
|
45
|
-
inset-block-end: var(--message-scroller-button-inset-block-end,
|
|
45
|
+
inset-block-end: var(--message-scroller-button-inset-block-end, var(--sigvelo-spacing-4));
|
|
46
46
|
z-index: 1;
|
|
47
47
|
translate: -50% 0;
|
|
48
|
-
border-radius:
|
|
49
|
-
box-shadow: var(--sigvelo-
|
|
48
|
+
border-radius: var(--sigvelo-radius-full);
|
|
49
|
+
box-shadow: var(--sigvelo-elevation-floating);
|
|
50
50
|
transition:
|
|
51
51
|
opacity var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
|
|
52
52
|
scale var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
.message-scroller__button[data-direction="start"] {
|
|
57
|
-
inset-block-start:
|
|
57
|
+
inset-block-start: var(--sigvelo-spacing-4);
|
|
58
58
|
inset-block-end: auto;
|
|
59
59
|
}
|
|
60
60
|
|
package/dist/styles/message.css
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
padding-inline: var(--sigvelo-spacing-3);
|
|
27
27
|
border-radius: var(--sigvelo-radius-lg);
|
|
28
28
|
font-size: var(--sigvelo-text-sm);
|
|
29
|
-
line-height:
|
|
29
|
+
line-height: var(--sigvelo-leading-normal);
|
|
30
30
|
background-color: var(--sigvelo-color-neutral-bg-subtle);
|
|
31
31
|
color: var(--sigvelo-color-text);
|
|
32
32
|
overflow-wrap: anywhere;
|
|
@@ -139,15 +139,13 @@
|
|
|
139
139
|
inline-size: min(42rem, 85%);
|
|
140
140
|
padding: var(--sigvelo-spacing-3);
|
|
141
141
|
color: var(--sigvelo-color-text);
|
|
142
|
-
background-color: var(--sigvelo-color-surface);
|
|
143
|
-
border: var(--sigvelo-border-style) var(--sigvelo-border-width)
|
|
144
|
-
var(--sigvelo-color-neutral-border-muted);
|
|
142
|
+
background-color: var(--sigvelo-color-surface-raised);
|
|
145
143
|
border-radius: var(--sigvelo-radius-lg);
|
|
146
|
-
box-shadow: var(--sigvelo-
|
|
144
|
+
box-shadow: var(--sigvelo-elevation-raised);
|
|
147
145
|
}
|
|
148
146
|
|
|
149
147
|
.message__edit-textarea {
|
|
150
|
-
min-block-size:
|
|
148
|
+
min-block-size: var(--sigvelo-spacing-24);
|
|
151
149
|
max-block-size: 18rem;
|
|
152
150
|
}
|
|
153
151
|
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
|
|
113
113
|
.model-selector__item:focus-visible {
|
|
114
114
|
outline: none;
|
|
115
|
-
box-shadow:
|
|
115
|
+
box-shadow: var(--sigvelo-recipe-focus-shadow-inset);
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
.model-selector__item[data-selected] {
|
|
@@ -126,11 +126,7 @@
|
|
|
126
126
|
}
|
|
127
127
|
|
|
128
128
|
.model-selector__empty {
|
|
129
|
-
padding-block: var(--sigvelo-spacing-4);
|
|
130
|
-
padding-inline: var(--sigvelo-spacing-3);
|
|
131
|
-
text-align: center;
|
|
132
|
-
font-size: var(--sigvelo-text-compact);
|
|
133
|
-
color: var(--sigvelo-color-text-muted);
|
|
129
|
+
--sigvelo-recipe-empty-state-padding-block: var(--sigvelo-spacing-4);
|
|
134
130
|
}
|
|
135
131
|
|
|
136
132
|
@media (any-pointer: coarse) {
|
|
@@ -166,10 +162,11 @@
|
|
|
166
162
|
gap: var(--sigvelo-spacing-1);
|
|
167
163
|
}
|
|
168
164
|
|
|
169
|
-
.
|
|
165
|
+
/* Prose, not a key. The mono face was a leftover from when this was a <kbd>,
|
|
166
|
+
and "Workers AI" reads worse in it. */
|
|
167
|
+
.model-selector__source {
|
|
170
168
|
padding-block: var(--sigvelo-spacing-0-5);
|
|
171
169
|
padding-inline: var(--sigvelo-spacing-1-5);
|
|
172
|
-
font-family: var(--sigvelo-font-mono);
|
|
173
170
|
font-size: var(--sigvelo-text-2xs);
|
|
174
171
|
color: var(--sigvelo-color-text-muted);
|
|
175
172
|
background-color: var(--sigvelo-color-neutral-bg-subtle);
|
package/dist/styles/popover.css
CHANGED
|
@@ -8,17 +8,17 @@
|
|
|
8
8
|
gap: var(--sigvelo-density-compact-control-gap);
|
|
9
9
|
padding-block: var(--sigvelo-spacing-2);
|
|
10
10
|
padding-inline: var(--sigvelo-density-compact-control-padding-inline);
|
|
11
|
-
background-color: var(--sigvelo-color-surface);
|
|
12
|
-
/*
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
background-color: var(--sigvelo-color-surface-raised);
|
|
12
|
+
/* The composer's edge is the hairline ring inside --sigvelo-elevation-floating,
|
|
13
|
+
not a border: a 0.5px ring stays crisp at any zoom and does not add a pixel
|
|
14
|
+
of layout. Forced colors restores a real border at the end of this file. */
|
|
15
|
+
border: 0;
|
|
15
16
|
border-radius: calc(var(--sigvelo-radius-xl) + var(--sigvelo-spacing-2));
|
|
16
|
-
box-shadow: var(--sigvelo-
|
|
17
|
+
box-shadow: var(--sigvelo-elevation-floating);
|
|
17
18
|
font-family: inherit;
|
|
18
19
|
color: var(--sigvelo-color-text);
|
|
19
|
-
transition:
|
|
20
|
-
|
|
21
|
-
box-shadow var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change);
|
|
20
|
+
transition: box-shadow var(--sigvelo-motion-duration-interaction)
|
|
21
|
+
var(--sigvelo-motion-ease-change);
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
.prompt-input__recording {
|
|
@@ -82,8 +82,7 @@
|
|
|
82
82
|
|
|
83
83
|
/* Keep keyboard focus visible around the complete composer surface. */
|
|
84
84
|
.prompt-input:focus-within {
|
|
85
|
-
|
|
86
|
-
box-shadow: var(--sigvelo-recipe-focus-shadow-subtle);
|
|
85
|
+
box-shadow: var(--sigvelo-recipe-focus-shadow-subtle), var(--sigvelo-elevation-floating);
|
|
87
86
|
}
|
|
88
87
|
|
|
89
88
|
.prompt-input__header {
|
|
@@ -165,9 +164,13 @@
|
|
|
165
164
|
background-color: color-mix(in oklab, transparent, var(--sigvelo-color-text) 8%);
|
|
166
165
|
}
|
|
167
166
|
|
|
167
|
+
/* Absorbs any height the composer is given beyond its content, so a tall
|
|
168
|
+
composer grows its typing area and keeps the footer controls on the floor
|
|
169
|
+
instead of stranding them mid-box. */
|
|
168
170
|
.prompt-input__body {
|
|
169
171
|
display: flex;
|
|
170
172
|
align-items: stretch;
|
|
173
|
+
flex: 1 1 auto;
|
|
171
174
|
flex-wrap: wrap;
|
|
172
175
|
gap: var(--sigvelo-spacing-1);
|
|
173
176
|
inline-size: 100%;
|
|
@@ -276,10 +279,6 @@
|
|
|
276
279
|
content: "";
|
|
277
280
|
}
|
|
278
281
|
|
|
279
|
-
.prompt-input__dictation[data-starting] .prompt-input__dictation-icon {
|
|
280
|
-
animation: sigvelo-icon-spin 900ms linear infinite;
|
|
281
|
-
}
|
|
282
|
-
|
|
283
282
|
@media (prefers-reduced-motion: reduce) {
|
|
284
283
|
.prompt-input__dictation[data-listening] .prompt-input__dictation-icon::before {
|
|
285
284
|
transition: none;
|
|
@@ -295,19 +294,10 @@
|
|
|
295
294
|
display: inline-block;
|
|
296
295
|
}
|
|
297
296
|
|
|
297
|
+
/* Spacing only. The chip itself is .kbd, which derives from currentColor and
|
|
298
|
+
so already reads correctly against the tooltip's inverted surface. */
|
|
298
299
|
.prompt-input__tooltip-shortcut {
|
|
299
|
-
display: inline-flex;
|
|
300
|
-
align-items: center;
|
|
301
|
-
justify-content: center;
|
|
302
300
|
margin-inline-start: var(--sigvelo-spacing-2);
|
|
303
|
-
padding-block: 0.0625rem;
|
|
304
|
-
padding-inline: var(--sigvelo-spacing-1);
|
|
305
|
-
border: var(--sigvelo-border-width) solid color-mix(in oklab, currentColor, transparent 75%);
|
|
306
|
-
border-radius: var(--sigvelo-radius-sm);
|
|
307
|
-
font-family: var(--sigvelo-font-mono);
|
|
308
|
-
font-size: 0.75em;
|
|
309
|
-
font-weight: var(--sigvelo-font-weight-semibold);
|
|
310
|
-
opacity: 0.85;
|
|
311
301
|
}
|
|
312
302
|
|
|
313
303
|
.prompt-input__submit {
|
|
@@ -321,10 +311,6 @@
|
|
|
321
311
|
color: var(--sigvelo-color-text);
|
|
322
312
|
}
|
|
323
313
|
|
|
324
|
-
.prompt-input__submit-spinner {
|
|
325
|
-
animation: sigvelo-icon-spin 900ms linear infinite;
|
|
326
|
-
}
|
|
327
|
-
|
|
328
314
|
.prompt-input__action-menu {
|
|
329
315
|
min-inline-size: 12rem;
|
|
330
316
|
}
|
|
@@ -475,17 +461,15 @@
|
|
|
475
461
|
|
|
476
462
|
.prompt-input__hover-card-content {
|
|
477
463
|
position: absolute;
|
|
478
|
-
z-index:
|
|
464
|
+
z-index: var(--sigvelo-z-chrome);
|
|
479
465
|
inset-block-start: calc(100% + var(--sigvelo-spacing-1-5));
|
|
480
466
|
inset-inline-start: 0;
|
|
481
467
|
min-inline-size: 14rem;
|
|
482
468
|
padding: var(--sigvelo-spacing-3);
|
|
483
469
|
color: var(--sigvelo-color-text);
|
|
484
|
-
background-color: var(--sigvelo-color-surface);
|
|
485
|
-
border: var(--sigvelo-border-style) var(--sigvelo-border-width)
|
|
486
|
-
var(--sigvelo-color-neutral-border-subtle);
|
|
470
|
+
background-color: var(--sigvelo-color-surface-raised);
|
|
487
471
|
border-radius: var(--sigvelo-radius-md);
|
|
488
|
-
box-shadow: var(--sigvelo-
|
|
472
|
+
box-shadow: var(--sigvelo-elevation-overlay);
|
|
489
473
|
}
|
|
490
474
|
|
|
491
475
|
.prompt-input__tab-label {
|
|
@@ -651,12 +635,6 @@
|
|
|
651
635
|
margin-inline-start: auto;
|
|
652
636
|
}
|
|
653
637
|
|
|
654
|
-
@media (prefers-reduced-motion: reduce) {
|
|
655
|
-
.prompt-input__submit-spinner {
|
|
656
|
-
animation: none;
|
|
657
|
-
}
|
|
658
|
-
}
|
|
659
|
-
|
|
660
638
|
@media (forced-colors: active) {
|
|
661
639
|
.prompt-input {
|
|
662
640
|
border: var(--sigvelo-border-style) var(--sigvelo-border-width) CanvasText;
|
package/dist/styles/queue.css
CHANGED
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
gap: var(--sigvelo-spacing-1);
|
|
143
143
|
font-size: var(--sigvelo-text-sm);
|
|
144
144
|
color: var(--sigvelo-color-text);
|
|
145
|
-
line-height:
|
|
145
|
+
line-height: var(--sigvelo-leading-snug);
|
|
146
146
|
transition:
|
|
147
147
|
color var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change),
|
|
148
148
|
text-decoration-color var(--sigvelo-motion-duration-interaction)
|
|
@@ -153,7 +153,7 @@
|
|
|
153
153
|
margin: 0;
|
|
154
154
|
font-size: var(--sigvelo-text-xs);
|
|
155
155
|
color: var(--sigvelo-color-text-muted);
|
|
156
|
-
line-height:
|
|
156
|
+
line-height: var(--sigvelo-leading-snug);
|
|
157
157
|
transition:
|
|
158
158
|
color var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change),
|
|
159
159
|
text-decoration-color var(--sigvelo-motion-duration-interaction)
|
package/dist/styles/recipes.css
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
--sigvelo-recipe-control-padding-inline: var(--sigvelo-density-compact-control-padding-inline);
|
|
9
9
|
--sigvelo-recipe-control-gap: var(--sigvelo-density-compact-control-gap);
|
|
10
10
|
--sigvelo-recipe-control-font-size: var(--sigvelo-density-compact-control-font-size);
|
|
11
|
+
--sigvelo-recipe-control-line-height: var(--sigvelo-density-compact-control-line-height);
|
|
11
12
|
--sigvelo-recipe-control-icon-size: var(--sigvelo-density-compact-control-icon-size);
|
|
12
13
|
--sigvelo-recipe-control-radius: var(--sigvelo-radius-md);
|
|
13
14
|
--sigvelo-recipe-field-background: var(--sigvelo-color-canvas);
|
|
@@ -20,11 +21,17 @@
|
|
|
20
21
|
--sigvelo-recipe-invalid-focus-shadow:
|
|
21
22
|
0 0 0 2px var(--sigvelo-color-canvas),
|
|
22
23
|
0 0 0 4px color-mix(in oklab, var(--sigvelo-color-danger-bg), transparent 80%);
|
|
24
|
+
/* The same ring drawn inward, for elements that fill their container and
|
|
25
|
+
have no room outside to grow one: menu items, tab panels, listbox rows. */
|
|
26
|
+
--sigvelo-recipe-focus-shadow-inset: inset 0 0 0 var(--sigvelo-focus-width)
|
|
27
|
+
var(--sigvelo-color-focus);
|
|
23
28
|
--sigvelo-recipe-disabled-opacity: 0.5;
|
|
24
|
-
--sigvelo-recipe-surface-background: var(--sigvelo-color-surface);
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
--sigvelo-recipe-surface-
|
|
29
|
+
--sigvelo-recipe-surface-background: var(--sigvelo-color-surface-raised);
|
|
30
|
+
/* The overlay elevation carries its own hairline ring, so the border is a
|
|
31
|
+
forced-colors affordance rather than the visible edge. */
|
|
32
|
+
--sigvelo-recipe-surface-border: transparent;
|
|
33
|
+
--sigvelo-recipe-surface-radius: var(--sigvelo-radius-lg);
|
|
34
|
+
--sigvelo-recipe-surface-shadow: var(--sigvelo-elevation-overlay);
|
|
28
35
|
--sigvelo-recipe-surface-padding: var(--sigvelo-spacing-1);
|
|
29
36
|
--sigvelo-recipe-popup-min-inline-size: 10rem;
|
|
30
37
|
--sigvelo-recipe-popup-arrow-size: var(--sigvelo-spacing-3);
|
|
@@ -33,7 +40,8 @@
|
|
|
33
40
|
--sigvelo-recipe-row-padding-inline: var(--sigvelo-density-compact-control-padding-inline);
|
|
34
41
|
--sigvelo-recipe-row-gap: var(--sigvelo-density-compact-control-gap);
|
|
35
42
|
--sigvelo-recipe-row-font-size: var(--sigvelo-density-compact-control-font-size);
|
|
36
|
-
--sigvelo-recipe-row-
|
|
43
|
+
--sigvelo-recipe-row-line-height: var(--sigvelo-density-compact-control-line-height);
|
|
44
|
+
--sigvelo-recipe-row-radius: var(--sigvelo-radius-md);
|
|
37
45
|
--sigvelo-recipe-group-label-padding-block: var(--sigvelo-spacing-1-5);
|
|
38
46
|
--sigvelo-recipe-group-label-padding-inline: var(--sigvelo-recipe-row-padding-inline);
|
|
39
47
|
--sigvelo-recipe-group-label-color: var(--sigvelo-color-text-muted);
|
|
@@ -46,6 +54,7 @@
|
|
|
46
54
|
--sigvelo-recipe-control-height: var(--sigvelo-control-height-sm);
|
|
47
55
|
--sigvelo-recipe-control-padding-inline: var(--sigvelo-control-padding-inline-sm);
|
|
48
56
|
--sigvelo-recipe-control-font-size: var(--sigvelo-control-text-sm);
|
|
57
|
+
--sigvelo-recipe-control-line-height: var(--sigvelo-control-line-height-sm);
|
|
49
58
|
--sigvelo-recipe-control-icon-size: var(--sigvelo-control-icon-size-sm);
|
|
50
59
|
}
|
|
51
60
|
|
|
@@ -53,6 +62,7 @@
|
|
|
53
62
|
--sigvelo-recipe-control-height: var(--sigvelo-control-height-md);
|
|
54
63
|
--sigvelo-recipe-control-padding-inline: var(--sigvelo-control-padding-inline-md);
|
|
55
64
|
--sigvelo-recipe-control-font-size: var(--sigvelo-control-text-md);
|
|
65
|
+
--sigvelo-recipe-control-line-height: var(--sigvelo-control-line-height-md);
|
|
56
66
|
--sigvelo-recipe-control-icon-size: var(--sigvelo-control-icon-size-md);
|
|
57
67
|
}
|
|
58
68
|
|
|
@@ -60,6 +70,7 @@
|
|
|
60
70
|
--sigvelo-recipe-control-height: var(--sigvelo-control-height-lg);
|
|
61
71
|
--sigvelo-recipe-control-padding-inline: var(--sigvelo-control-padding-inline-lg);
|
|
62
72
|
--sigvelo-recipe-control-font-size: var(--sigvelo-control-text-lg);
|
|
73
|
+
--sigvelo-recipe-control-line-height: var(--sigvelo-control-line-height-lg);
|
|
63
74
|
--sigvelo-recipe-control-icon-size: var(--sigvelo-control-icon-size-lg);
|
|
64
75
|
}
|
|
65
76
|
|
|
@@ -97,13 +108,14 @@
|
|
|
97
108
|
*/
|
|
98
109
|
:where([data-recipe~="composer-command-surface"]) {
|
|
99
110
|
--sigvelo-recipe-surface-radius: var(--sigvelo-radius-xl);
|
|
100
|
-
--sigvelo-recipe-surface-shadow: var(--sigvelo-
|
|
111
|
+
--sigvelo-recipe-surface-shadow: var(--sigvelo-elevation-overlay);
|
|
101
112
|
--sigvelo-recipe-surface-padding: var(--sigvelo-spacing-1);
|
|
102
113
|
--sigvelo-recipe-row-min-height: var(--sigvelo-density-compact-control-height);
|
|
103
114
|
--sigvelo-recipe-row-padding-block: var(--sigvelo-spacing-1);
|
|
104
115
|
--sigvelo-recipe-row-padding-inline: var(--sigvelo-density-compact-control-padding-inline);
|
|
105
116
|
--sigvelo-recipe-row-gap: var(--sigvelo-density-compact-control-gap);
|
|
106
117
|
--sigvelo-recipe-row-font-size: var(--sigvelo-density-compact-control-font-size);
|
|
118
|
+
--sigvelo-recipe-row-line-height: var(--sigvelo-density-compact-control-line-height);
|
|
107
119
|
--sigvelo-recipe-row-radius: var(--sigvelo-radius-md);
|
|
108
120
|
--sigvelo-recipe-group-label-padding-block: var(--sigvelo-spacing-2);
|
|
109
121
|
--sigvelo-recipe-group-label-padding-inline: var(
|
|
@@ -170,6 +182,47 @@
|
|
|
170
182
|
mask-repeat: no-repeat;
|
|
171
183
|
}
|
|
172
184
|
|
|
185
|
+
/* The inline-axis partner, for toolbars, tab strips, and chip rows that scroll
|
|
186
|
+
sideways. Gradients take physical directions only, so start/end are swapped
|
|
187
|
+
under [dir="rtl"] rather than expressed logically. */
|
|
188
|
+
:where([data-recipe~="scroll-fade-x"]) {
|
|
189
|
+
--sigvelo-scroll-fade-start: 0px;
|
|
190
|
+
--sigvelo-scroll-fade-end: 0px;
|
|
191
|
+
-webkit-mask-image: linear-gradient(
|
|
192
|
+
to right,
|
|
193
|
+
transparent 0,
|
|
194
|
+
#000 var(--sigvelo-scroll-fade-start),
|
|
195
|
+
#000 calc(100% - var(--sigvelo-scroll-fade-end)),
|
|
196
|
+
transparent 100%
|
|
197
|
+
);
|
|
198
|
+
mask-image: linear-gradient(
|
|
199
|
+
to right,
|
|
200
|
+
transparent 0,
|
|
201
|
+
#000 var(--sigvelo-scroll-fade-start),
|
|
202
|
+
#000 calc(100% - var(--sigvelo-scroll-fade-end)),
|
|
203
|
+
transparent 100%
|
|
204
|
+
);
|
|
205
|
+
-webkit-mask-repeat: no-repeat;
|
|
206
|
+
mask-repeat: no-repeat;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
:where([dir="rtl"] [data-recipe~="scroll-fade-x"], [data-recipe~="scroll-fade-x"][dir="rtl"]) {
|
|
210
|
+
-webkit-mask-image: linear-gradient(
|
|
211
|
+
to left,
|
|
212
|
+
transparent 0,
|
|
213
|
+
#000 var(--sigvelo-scroll-fade-start),
|
|
214
|
+
#000 calc(100% - var(--sigvelo-scroll-fade-end)),
|
|
215
|
+
transparent 100%
|
|
216
|
+
);
|
|
217
|
+
mask-image: linear-gradient(
|
|
218
|
+
to left,
|
|
219
|
+
transparent 0,
|
|
220
|
+
#000 var(--sigvelo-scroll-fade-start),
|
|
221
|
+
#000 calc(100% - var(--sigvelo-scroll-fade-end)),
|
|
222
|
+
transparent 100%
|
|
223
|
+
);
|
|
224
|
+
}
|
|
225
|
+
|
|
173
226
|
@media (any-pointer: coarse) {
|
|
174
227
|
:where(:root, [data-theme="light"], [data-theme="dark"]) {
|
|
175
228
|
--sigvelo-recipe-row-min-height: var(--sigvelo-control-height-xl);
|
|
@@ -208,7 +261,7 @@
|
|
|
208
261
|
padding-inline: var(--sigvelo-recipe-control-padding-inline);
|
|
209
262
|
font-family: inherit;
|
|
210
263
|
font-size: var(--sigvelo-recipe-control-font-size);
|
|
211
|
-
line-height: var(--sigvelo-
|
|
264
|
+
line-height: var(--sigvelo-recipe-control-line-height);
|
|
212
265
|
color: var(--sigvelo-color-text);
|
|
213
266
|
background-color: var(--sigvelo-recipe-field-background);
|
|
214
267
|
border: var(--sigvelo-border-style) var(--sigvelo-border-width) var(--sigvelo-recipe-field-border);
|
|
@@ -355,7 +408,7 @@
|
|
|
355
408
|
padding-inline: var(--sigvelo-recipe-row-padding-inline);
|
|
356
409
|
font-family: inherit;
|
|
357
410
|
font-size: var(--sigvelo-recipe-row-font-size);
|
|
358
|
-
line-height: var(--sigvelo-
|
|
411
|
+
line-height: var(--sigvelo-recipe-row-line-height);
|
|
359
412
|
color: var(--sigvelo-color-text);
|
|
360
413
|
text-decoration: none;
|
|
361
414
|
border-radius: var(--sigvelo-recipe-row-radius);
|
|
@@ -520,7 +573,7 @@
|
|
|
520
573
|
font-family: inherit;
|
|
521
574
|
font-size: var(--sigvelo-recipe-control-font-size);
|
|
522
575
|
font-weight: var(--sigvelo-font-weight-semibold);
|
|
523
|
-
line-height: var(--sigvelo-
|
|
576
|
+
line-height: var(--sigvelo-recipe-control-line-height);
|
|
524
577
|
color: var(--sigvelo-color-text);
|
|
525
578
|
background-color: var(--sigvelo-color-canvas);
|
|
526
579
|
border: var(--sigvelo-border-style) var(--sigvelo-border-width)
|
|
@@ -755,6 +808,12 @@
|
|
|
755
808
|
}
|
|
756
809
|
|
|
757
810
|
@media (forced-colors: active) {
|
|
811
|
+
/* Forced colors drops box-shadow, taking the hairline ring that normally
|
|
812
|
+
draws an overlay's edge with it. Give the border back its color. */
|
|
813
|
+
:where(:root, [data-theme="light"], [data-theme="dark"]) {
|
|
814
|
+
--sigvelo-recipe-surface-border: CanvasText;
|
|
815
|
+
}
|
|
816
|
+
|
|
758
817
|
:where(
|
|
759
818
|
[data-slot="input"],
|
|
760
819
|
[data-slot="select-trigger"],
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
.responsive-sidebar-shell__resizer {
|
|
60
|
-
z-index:
|
|
60
|
+
z-index: var(--sigvelo-z-panel);
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
.responsive-sidebar-shell[data-sidebar-open="false"] > .responsive-sidebar-shell__frame {
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
|
|
95
95
|
.responsive-sidebar-shell__sidebar {
|
|
96
96
|
position: relative;
|
|
97
|
-
z-index:
|
|
97
|
+
z-index: calc(var(--sigvelo-z-chrome) + 3);
|
|
98
98
|
inset-inline-start: 50%;
|
|
99
99
|
inline-size: min(calc(100cqi - var(--sigvelo-spacing-3)), 34rem);
|
|
100
100
|
max-inline-size: none;
|
|
@@ -103,10 +103,9 @@
|
|
|
103
103
|
align-self: start;
|
|
104
104
|
margin-block-start: var(--sigvelo-spacing-1);
|
|
105
105
|
overflow: hidden;
|
|
106
|
-
border: var(--sigvelo-border-style) var(--sigvelo-border-width)
|
|
107
|
-
var(--sigvelo-color-neutral-border-subtle);
|
|
108
106
|
border-radius: var(--sigvelo-radius-lg);
|
|
109
|
-
|
|
107
|
+
background-color: var(--sigvelo-color-surface-raised);
|
|
108
|
+
box-shadow: var(--sigvelo-elevation-overlay);
|
|
110
109
|
visibility: visible;
|
|
111
110
|
opacity: 1;
|
|
112
111
|
translate: -50% 0;
|
|
@@ -149,7 +148,7 @@
|
|
|
149
148
|
position: absolute;
|
|
150
149
|
inset-block: 0;
|
|
151
150
|
inset-inline: 0;
|
|
152
|
-
z-index:
|
|
151
|
+
z-index: calc(var(--sigvelo-z-chrome) + 2);
|
|
153
152
|
display: block;
|
|
154
153
|
min-inline-size: 100%;
|
|
155
154
|
padding: 0;
|
|
@@ -1,12 +1,41 @@
|
|
|
1
|
-
|
|
1
|
+
/*
|
|
2
|
+
* Thin scrollbars on every scroll container the system owns.
|
|
3
|
+
*
|
|
4
|
+
* A default platform scrollbar inside a 15px-radius popup is the single
|
|
5
|
+
* loudest thing on the screen, so menus, lists, panels, and code blocks all
|
|
6
|
+
* take the same quiet treatment: thin, colored from the neutral ramp, and
|
|
7
|
+
* gutter-stable where a scrollbar appearing would otherwise shift text.
|
|
8
|
+
*
|
|
9
|
+
* Only containers that actually scroll are listed. Adding one means adding it
|
|
10
|
+
* here, not restating scrollbar-color in the component file.
|
|
11
|
+
*/
|
|
12
|
+
:where(
|
|
13
|
+
.message__content pre,
|
|
14
|
+
.observability-table-wrap,
|
|
15
|
+
[data-recipe~="wide-scroll-picker"],
|
|
16
|
+
[data-slot="autocomplete-list"],
|
|
17
|
+
[data-slot="combobox-list"],
|
|
18
|
+
[data-slot="context-menu-content"],
|
|
19
|
+
[data-slot="dialog-content"],
|
|
20
|
+
[data-slot="dropdown-menu-content"],
|
|
21
|
+
[data-slot="menubar-content"],
|
|
22
|
+
[data-slot="popover-content"],
|
|
23
|
+
[data-slot="select-content"]
|
|
24
|
+
) {
|
|
2
25
|
--scrollbar-thumb: var(--app-scrollbar-thumb, var(--sigvelo-color-neutral-border-muted));
|
|
3
|
-
--scrollbar-track: var(--app-scrollbar-track,
|
|
26
|
+
--scrollbar-track: var(--app-scrollbar-track, transparent);
|
|
4
27
|
|
|
5
28
|
scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
|
|
6
|
-
scrollbar-gutter: stable;
|
|
7
29
|
scrollbar-width: thin;
|
|
8
30
|
}
|
|
9
31
|
|
|
32
|
+
/* Reserving the gutter only matters where text would otherwise reflow. */
|
|
33
|
+
:where(.message__content pre, .observability-table-wrap) {
|
|
34
|
+
--scrollbar-track: var(--app-scrollbar-track, var(--sigvelo-color-neutral-bg-subtle));
|
|
35
|
+
|
|
36
|
+
scrollbar-gutter: stable;
|
|
37
|
+
}
|
|
38
|
+
|
|
10
39
|
:where(.message__content pre) {
|
|
11
40
|
overflow-x: auto;
|
|
12
41
|
overflow-y: clip;
|
package/dist/styles/sources.css
CHANGED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* The chip itself is `.badge`. Only the indicator lives here.
|
|
3
|
+
*/
|
|
4
|
+
.status-pill__dot {
|
|
5
|
+
inline-size: var(--sigvelo-spacing-1-5);
|
|
6
|
+
block-size: var(--sigvelo-spacing-1-5);
|
|
7
|
+
flex-shrink: 0;
|
|
8
|
+
border-radius: var(--sigvelo-radius-circle);
|
|
9
|
+
/* currentColor, so the dot follows whichever badge color it was given rather
|
|
10
|
+
than needing a matching set of its own. */
|
|
11
|
+
background-color: currentColor;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.status-pill[data-busy] .status-pill__dot {
|
|
15
|
+
animation: sigvelo-status-pulse var(--sigvelo-motion-duration-pulse) ease-in-out infinite;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
@keyframes sigvelo-status-pulse {
|
|
19
|
+
0%,
|
|
20
|
+
100% {
|
|
21
|
+
opacity: 1;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
50% {
|
|
25
|
+
opacity: 0.4;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/* The dot stays; only its breathing stops. A still dot still reads as a state
|
|
30
|
+
indicator, which is the part carrying meaning. */
|
|
31
|
+
@media (prefers-reduced-motion: reduce) {
|
|
32
|
+
.status-pill[data-busy] .status-pill__dot {
|
|
33
|
+
animation: none;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
:root[data-motion="reduce"] .status-pill[data-busy] .status-pill__dot {
|
|
38
|
+
animation: none;
|
|
39
|
+
}
|