@mcp-b/react-components 0.20.4 → 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/MessageScroller.js +1 -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/Stepper.js +1 -5
- package/dist/components/TestResults.js +15 -15
- 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 +69 -66
- package/dist/components/ThinkExecutionDetail.js +4 -4
- package/dist/components/ThinkExecutionRun.js +2 -2
- package/dist/components/ThinkExecutionWorkbench.js +5 -4
- package/dist/components/ThinkFullAppViewSwitch.d.ts +1 -1
- package/dist/components/ThinkRoutine.js +2 -10
- package/dist/components/ThinkRoutineBrowser.js +1 -0
- package/dist/components/ThinkRoutineRuns.js +3 -2
- package/dist/components/ThinkThreadPicker.js +4 -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/accordion.css +2 -1
- package/dist/styles/activity-header.css +45 -25
- package/dist/styles/activity.css +26 -4
- package/dist/styles/agent-activity-preview-overlay.css +51 -12
- package/dist/styles/agent-activity-preview.css +34 -33
- package/dist/styles/agent-attention.css +9 -16
- package/dist/styles/agent-chat.css +199 -0
- package/dist/styles/agent-connection.css +10 -10
- 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 +5 -5
- package/dist/styles/attachment-preview.css +1 -1
- package/dist/styles/badge.css +1 -1
- package/dist/styles/base-ui-motion.css +1 -1
- package/dist/styles/base.css +110 -3
- package/dist/styles/browser-control-overlay.css +16 -6
- package/dist/styles/browser-live-view.css +5 -38
- package/dist/styles/browser-replay.css +4 -8
- package/dist/styles/browser-run-panel.css +5 -19
- package/dist/styles/button.css +4 -2
- package/dist/styles/card.css +4 -4
- package/dist/styles/chain-of-thought.css +1 -2
- package/dist/styles/chatgpt-sign-in-screen.css +9 -7
- package/dist/styles/checkbox-group.css +4 -4
- package/dist/styles/code-block.css +9 -9
- package/dist/styles/commit.css +1 -1
- 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 +8 -8
- package/dist/styles/field.css +2 -2
- package/dist/styles/fieldset.css +1 -1
- package/dist/styles/file-tree.css +1 -1
- package/dist/styles/github-motion-mark.css +1 -1
- 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/label.css +1 -1
- package/dist/styles/mcp-server-picker.css +1 -1
- package/dist/styles/media-preview-card.css +5 -3
- package/dist/styles/menu.css +1 -1
- package/dist/styles/message-scroller.css +7 -25
- package/dist/styles/message.css +5 -7
- package/dist/styles/model-selector.css +5 -8
- package/dist/styles/plan.css +1 -1
- package/dist/styles/popover.css +1 -1
- package/dist/styles/preview-card.css +1 -1
- package/dist/styles/pricing-page.css +37 -35
- package/dist/styles/prompt-input.css +19 -41
- package/dist/styles/queue.css +3 -3
- package/dist/styles/recipes.css +92 -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 +2 -2
- package/dist/styles/status-pill.css +39 -0
- package/dist/styles/stepper.css +2 -2
- package/dist/styles/streamdown.css +39 -35
- 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 +2 -2
- package/dist/styles/terminal.css +6 -6
- package/dist/styles/test-results.css +2 -3
- package/dist/styles/textarea.css +1 -1
- package/dist/styles/theme-mode-control.css +3 -4
- package/dist/styles/think-execution-status.css +4 -23
- package/dist/styles/think-execution-workbench.css +3 -4
- package/dist/styles/think-full-app.css +3 -3
- package/dist/styles/think-routine-library.css +22 -24
- package/dist/styles/think-thread-picker.css +20 -47
- 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/web-preview.css +4 -4
- package/dist/styles/workspace-explorer.css +6 -8
- package/package.json +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
.checkbox-group {
|
|
2
2
|
display: flex;
|
|
3
3
|
flex-direction: column;
|
|
4
|
-
gap:
|
|
4
|
+
gap: var(--sigvelo-spacing-2);
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
.checkbox-group[data-layout="grid"] {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
display: flex;
|
|
16
16
|
align-items: center;
|
|
17
17
|
gap: var(--sigvelo-spacing-2);
|
|
18
|
-
min-block-size:
|
|
18
|
+
min-block-size: var(--sigvelo-spacing-11);
|
|
19
19
|
padding-inline: var(--sigvelo-spacing-3);
|
|
20
20
|
border-radius: var(--sigvelo-radius-md);
|
|
21
21
|
color: var(--sigvelo-color-text);
|
|
@@ -40,8 +40,8 @@
|
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
.checkbox-group__icon svg {
|
|
43
|
-
inline-size:
|
|
44
|
-
block-size:
|
|
43
|
+
inline-size: var(--sigvelo-control-icon-size-md);
|
|
44
|
+
block-size: var(--sigvelo-control-icon-size-md);
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
.checkbox-group__content {
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
.code-block__header {
|
|
14
14
|
display: flex;
|
|
15
15
|
align-items: center;
|
|
16
|
-
gap:
|
|
17
|
-
padding-block:
|
|
16
|
+
gap: var(--sigvelo-spacing-2);
|
|
17
|
+
padding-block: var(--sigvelo-spacing-2);
|
|
18
18
|
padding-inline: var(--sigvelo-spacing-3);
|
|
19
19
|
background-color: transparent;
|
|
20
20
|
}
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
.code-block__title {
|
|
23
23
|
display: inline-flex;
|
|
24
24
|
align-items: center;
|
|
25
|
-
gap:
|
|
25
|
+
gap: var(--sigvelo-spacing-2);
|
|
26
26
|
font-size: var(--sigvelo-text-xs);
|
|
27
27
|
font-weight: var(--sigvelo-font-weight-semibold);
|
|
28
28
|
color: var(--sigvelo-color-text);
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
.code-block__actions {
|
|
38
38
|
display: inline-flex;
|
|
39
39
|
align-items: center;
|
|
40
|
-
gap:
|
|
40
|
+
gap: var(--sigvelo-spacing-1);
|
|
41
41
|
margin-inline-start: auto;
|
|
42
42
|
flex-shrink: 0;
|
|
43
43
|
}
|
|
@@ -56,10 +56,10 @@
|
|
|
56
56
|
.code-block__content {
|
|
57
57
|
margin: 0;
|
|
58
58
|
padding-block: var(--sigvelo-spacing-3);
|
|
59
|
-
padding-inline:
|
|
59
|
+
padding-inline: var(--sigvelo-spacing-3-5);
|
|
60
60
|
font-family: var(--sigvelo-font-mono);
|
|
61
61
|
font-size: var(--sigvelo-text-compact);
|
|
62
|
-
line-height:
|
|
62
|
+
line-height: var(--sigvelo-leading-normal);
|
|
63
63
|
color: var(--sigvelo-color-text);
|
|
64
64
|
overflow: visible;
|
|
65
65
|
}
|
|
@@ -71,11 +71,11 @@
|
|
|
71
71
|
.code-block__content--highlighted pre.shiki {
|
|
72
72
|
margin: 0;
|
|
73
73
|
padding-block: var(--sigvelo-spacing-3);
|
|
74
|
-
padding-inline:
|
|
74
|
+
padding-inline: var(--sigvelo-spacing-3-5);
|
|
75
75
|
background-color: transparent !important;
|
|
76
76
|
font-family: var(--sigvelo-font-mono);
|
|
77
77
|
font-size: var(--sigvelo-text-compact);
|
|
78
|
-
line-height:
|
|
78
|
+
line-height: var(--sigvelo-leading-normal);
|
|
79
79
|
overflow: visible;
|
|
80
80
|
}
|
|
81
81
|
|
|
@@ -111,6 +111,6 @@
|
|
|
111
111
|
|
|
112
112
|
@media (forced-colors: active) {
|
|
113
113
|
.code-block {
|
|
114
|
-
border:
|
|
114
|
+
border: var(--sigvelo-border-style) var(--sigvelo-border-width) CanvasText;
|
|
115
115
|
}
|
|
116
116
|
}
|
package/dist/styles/commit.css
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
.context-menu__radio-item:focus-visible,
|
|
31
31
|
.context-menu__submenu-trigger:focus-visible {
|
|
32
32
|
outline: none;
|
|
33
|
-
box-shadow:
|
|
33
|
+
box-shadow: var(--sigvelo-recipe-focus-shadow-inset);
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
.context-menu__label {
|
|
@@ -32,51 +32,16 @@
|
|
|
32
32
|
min-block-size: 0;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
.conversation__empty {
|
|
36
|
-
display: flex;
|
|
37
|
-
flex: 1;
|
|
38
|
-
flex-direction: column;
|
|
39
|
-
align-items: center;
|
|
40
|
-
justify-content: center;
|
|
41
|
-
gap: var(--sigvelo-spacing-2);
|
|
42
|
-
padding-block: var(--sigvelo-spacing-12);
|
|
43
|
-
padding-inline: var(--sigvelo-spacing-6);
|
|
44
|
-
text-align: center;
|
|
45
|
-
color: var(--sigvelo-color-text-muted);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
.conversation__empty-icon {
|
|
49
|
-
display: inline-flex;
|
|
50
|
-
align-items: center;
|
|
51
|
-
justify-content: center;
|
|
52
|
-
inline-size: var(--sigvelo-spacing-12);
|
|
53
|
-
block-size: var(--sigvelo-spacing-12);
|
|
54
|
-
border-radius: var(--sigvelo-radius-full);
|
|
55
|
-
background-color: var(--sigvelo-color-neutral-bg-subtle);
|
|
56
|
-
color: var(--sigvelo-color-text-muted);
|
|
57
|
-
margin-block-end: var(--sigvelo-spacing-1);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
.conversation__empty-title {
|
|
61
|
-
font-size: var(--sigvelo-text-base);
|
|
62
|
-
font-weight: var(--sigvelo-font-weight-semibold);
|
|
63
|
-
color: var(--sigvelo-color-text);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
.conversation__empty-description {
|
|
67
|
-
max-inline-size: 32ch;
|
|
68
|
-
font-size: var(--sigvelo-text-sm);
|
|
69
|
-
line-height: var(--sigvelo-leading-normal);
|
|
70
|
-
color: var(--sigvelo-color-text-muted);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
35
|
.conversation__scroll-button {
|
|
74
36
|
position: absolute;
|
|
75
37
|
inset-inline-end: var(--sigvelo-spacing-3);
|
|
76
38
|
inset-block-end: var(--sigvelo-spacing-3);
|
|
77
39
|
z-index: 1;
|
|
78
|
-
|
|
79
|
-
|
|
40
|
+
/* Hovers over the transcript rather than sitting in it, so it takes the
|
|
41
|
+
floating stack: the wide ambient layer is what separates it from whatever
|
|
42
|
+
message happens to scroll underneath. */
|
|
43
|
+
box-shadow: var(--sigvelo-elevation-floating);
|
|
44
|
+
background-color: var(--sigvelo-color-surface-raised);
|
|
80
45
|
}
|
|
81
46
|
|
|
82
47
|
.conversation__download-button {
|
|
@@ -84,8 +49,8 @@
|
|
|
84
49
|
inset-inline-end: var(--sigvelo-spacing-3);
|
|
85
50
|
inset-block-start: var(--sigvelo-spacing-3);
|
|
86
51
|
z-index: 1;
|
|
87
|
-
box-shadow: var(--sigvelo-
|
|
88
|
-
background-color: var(--sigvelo-color-surface);
|
|
52
|
+
box-shadow: var(--sigvelo-elevation-floating);
|
|
53
|
+
background-color: var(--sigvelo-color-surface-raised);
|
|
89
54
|
}
|
|
90
55
|
|
|
91
56
|
@media (forced-colors: active) {
|
package/dist/styles/dialog.css
CHANGED
|
@@ -1,6 +1,21 @@
|
|
|
1
|
+
/* Blurring the page behind the scrim reads as depth rather than as a dark
|
|
2
|
+
sheet, and keeps the dismissed content recognizable underneath. Browsers
|
|
3
|
+
without backdrop-filter still get the scrim on its own.
|
|
4
|
+
|
|
5
|
+
The blur does run on every frame of the open fade — the scrim covers the
|
|
6
|
+
viewport, so each frame re-filters all of it. What makes that affordable is
|
|
7
|
+
the filter itself: one 8px radius, no second pass. An earlier
|
|
8
|
+
blur(24px) saturate(180%) cost about a third of the Storybook suite in
|
|
9
|
+
timing failures, in stories that had nothing to do with dialogs.
|
|
10
|
+
|
|
11
|
+
Gating this behind :not([data-starting-style]) looks like it skips the fade
|
|
12
|
+
and does not. Base UI drops that attribute on the frame after mount, so the
|
|
13
|
+
blur is live from frame 1 while the opacity climbs for ~13 more. It bought
|
|
14
|
+
one frame and read as though it bought fourteen. */
|
|
1
15
|
.dialog__backdrop {
|
|
2
16
|
background-color: var(--sigvelo-color-backdrop);
|
|
3
|
-
|
|
17
|
+
backdrop-filter: var(--sigvelo-glass-filter);
|
|
18
|
+
z-index: var(--sigvelo-z-overlay);
|
|
4
19
|
}
|
|
5
20
|
|
|
6
21
|
.dialog__popup {
|
|
@@ -10,7 +25,7 @@
|
|
|
10
25
|
inset-block-start: 50%;
|
|
11
26
|
inset-inline-start: 50%;
|
|
12
27
|
translate: -50% -50%;
|
|
13
|
-
z-index:
|
|
28
|
+
z-index: var(--sigvelo-z-overlay);
|
|
14
29
|
inline-size: calc(100% - var(--sigvelo-control-height-sm));
|
|
15
30
|
max-inline-size: 32rem;
|
|
16
31
|
max-block-size: calc(100dvb - var(--sigvelo-spacing-8));
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* One anatomy for every "there is nothing here yet". Codex splits these into
|
|
3
|
+
* an inline variant and a page variant, but the difference between them is how
|
|
4
|
+
* much the container gives the block, not what the block is — so the size
|
|
5
|
+
* lives in one variable and the centring lives in the parent.
|
|
6
|
+
*/
|
|
7
|
+
.empty-state {
|
|
8
|
+
--sigvelo-recipe-empty-state-padding-block: var(--sigvelo-spacing-4);
|
|
9
|
+
|
|
10
|
+
display: flex;
|
|
11
|
+
flex-direction: column;
|
|
12
|
+
align-items: center;
|
|
13
|
+
justify-content: center;
|
|
14
|
+
gap: var(--sigvelo-spacing-2);
|
|
15
|
+
padding-block: var(--sigvelo-recipe-empty-state-padding-block);
|
|
16
|
+
padding-inline: var(--sigvelo-spacing-3);
|
|
17
|
+
color: var(--sigvelo-color-text-muted);
|
|
18
|
+
font-size: var(--sigvelo-text-compact);
|
|
19
|
+
line-height: var(--sigvelo-text-compact-leading);
|
|
20
|
+
text-align: center;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.empty-state__icon {
|
|
24
|
+
display: inline-flex;
|
|
25
|
+
align-items: center;
|
|
26
|
+
justify-content: center;
|
|
27
|
+
inline-size: var(--sigvelo-spacing-12);
|
|
28
|
+
block-size: var(--sigvelo-spacing-12);
|
|
29
|
+
margin-block-end: var(--sigvelo-spacing-1);
|
|
30
|
+
border-radius: var(--sigvelo-radius-full);
|
|
31
|
+
background-color: var(--sigvelo-color-neutral-bg-subtle);
|
|
32
|
+
color: var(--sigvelo-color-text-muted);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.empty-state__title {
|
|
36
|
+
color: var(--sigvelo-color-text);
|
|
37
|
+
font-size: var(--sigvelo-text-base);
|
|
38
|
+
font-weight: var(--sigvelo-font-weight-semibold);
|
|
39
|
+
line-height: var(--sigvelo-text-base-leading);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/* Prose, so it takes a measure. Without one a wide panel sets a single
|
|
43
|
+
sentence across its whole width and the reader loses the line. */
|
|
44
|
+
.empty-state__description {
|
|
45
|
+
max-inline-size: 32ch;
|
|
46
|
+
font-size: var(--sigvelo-text-sm);
|
|
47
|
+
line-height: var(--sigvelo-text-sm-leading);
|
|
48
|
+
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
justify-content: space-between;
|
|
5
5
|
gap: var(--sigvelo-spacing-3);
|
|
6
6
|
padding-block: var(--sigvelo-spacing-2-5);
|
|
7
|
-
padding-inline:
|
|
7
|
+
padding-inline: var(--sigvelo-spacing-3-5);
|
|
8
8
|
border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
|
|
9
9
|
var(--sigvelo-color-neutral-border-subtle);
|
|
10
10
|
}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
.environment-variables__toggle {
|
|
21
21
|
display: inline-flex;
|
|
22
22
|
align-items: center;
|
|
23
|
-
gap:
|
|
23
|
+
gap: var(--sigvelo-spacing-2);
|
|
24
24
|
cursor: pointer;
|
|
25
25
|
font-size: var(--sigvelo-text-xs);
|
|
26
26
|
color: var(--sigvelo-color-text-muted);
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
|
|
43
43
|
.environment-variables__group-label {
|
|
44
44
|
padding-block: var(--sigvelo-spacing-1-5);
|
|
45
|
-
padding-inline:
|
|
45
|
+
padding-inline: var(--sigvelo-spacing-3-5);
|
|
46
46
|
font-size: var(--sigvelo-text-2xs);
|
|
47
47
|
font-weight: var(--sigvelo-font-weight-bold);
|
|
48
48
|
text-transform: uppercase;
|
|
@@ -57,8 +57,8 @@
|
|
|
57
57
|
display: flex;
|
|
58
58
|
align-items: center;
|
|
59
59
|
gap: var(--sigvelo-spacing-2-5);
|
|
60
|
-
padding-block:
|
|
61
|
-
padding-inline:
|
|
60
|
+
padding-block: var(--sigvelo-spacing-2);
|
|
61
|
+
padding-inline: var(--sigvelo-spacing-3-5);
|
|
62
62
|
border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
|
|
63
63
|
var(--sigvelo-color-neutral-border-subtle);
|
|
64
64
|
}
|
|
@@ -79,8 +79,8 @@
|
|
|
79
79
|
.environment-variables__value {
|
|
80
80
|
flex: 1;
|
|
81
81
|
min-width: 0;
|
|
82
|
-
padding-block:
|
|
83
|
-
padding-inline:
|
|
82
|
+
padding-block: var(--sigvelo-spacing-1-5);
|
|
83
|
+
padding-inline: var(--sigvelo-spacing-2);
|
|
84
84
|
font-family: var(--sigvelo-font-mono);
|
|
85
85
|
font-size: var(--sigvelo-text-xs);
|
|
86
86
|
color: var(--sigvelo-color-text-muted);
|
|
@@ -101,6 +101,6 @@
|
|
|
101
101
|
@media (forced-colors: active) {
|
|
102
102
|
.environment-variables,
|
|
103
103
|
.environment-variables__row {
|
|
104
|
-
border:
|
|
104
|
+
border: var(--sigvelo-border-style) var(--sigvelo-border-width) CanvasText;
|
|
105
105
|
}
|
|
106
106
|
}
|
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/fieldset.css
CHANGED
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
|
+
}
|
package/dist/styles/label.css
CHANGED
|
@@ -196,7 +196,7 @@
|
|
|
196
196
|
|
|
197
197
|
@media (forced-colors: active) {
|
|
198
198
|
.mcp-server-picker__avatar-fallback {
|
|
199
|
-
border:
|
|
199
|
+
border: var(--sigvelo-border-style) var(--sigvelo-border-width) ButtonText;
|
|
200
200
|
}
|
|
201
201
|
|
|
202
202
|
.mcp-server-picker__row-shell:has(.mcp-server-picker__row[data-highlighted]) {
|
|
@@ -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:
|
package/dist/styles/menu.css
CHANGED
|
@@ -12,8 +12,6 @@
|
|
|
12
12
|
|
|
13
13
|
.message-scroller__viewport {
|
|
14
14
|
--message-scroller-fade-size: min(12%, 2.5rem);
|
|
15
|
-
--message-scroller-fade-t: 0px;
|
|
16
|
-
--message-scroller-fade-b: 0px;
|
|
17
15
|
width: 100%;
|
|
18
16
|
height: 100%;
|
|
19
17
|
min-width: 0;
|
|
@@ -23,32 +21,16 @@
|
|
|
23
21
|
overscroll-behavior: contain;
|
|
24
22
|
scrollbar-gutter: stable;
|
|
25
23
|
contain: content;
|
|
26
|
-
-webkit-mask-image: linear-gradient(
|
|
27
|
-
to bottom,
|
|
28
|
-
transparent 0,
|
|
29
|
-
#000 var(--message-scroller-fade-t),
|
|
30
|
-
#000 calc(100% - var(--message-scroller-fade-b)),
|
|
31
|
-
transparent 100%
|
|
32
|
-
);
|
|
33
|
-
mask-image: linear-gradient(
|
|
34
|
-
to bottom,
|
|
35
|
-
transparent 0,
|
|
36
|
-
#000 var(--message-scroller-fade-t),
|
|
37
|
-
#000 calc(100% - var(--message-scroller-fade-b)),
|
|
38
|
-
transparent 100%
|
|
39
|
-
);
|
|
40
|
-
-webkit-mask-repeat: no-repeat;
|
|
41
|
-
mask-repeat: no-repeat;
|
|
42
24
|
}
|
|
43
25
|
|
|
44
26
|
.message-scroller__viewport[data-scrollable~="end"] {
|
|
45
|
-
--
|
|
27
|
+
--sigvelo-scroll-fade-end: var(--message-scroller-fade-b-size, var(--message-scroller-fade-size));
|
|
46
28
|
}
|
|
47
29
|
|
|
48
30
|
.message-scroller__content {
|
|
49
31
|
display: flex;
|
|
50
32
|
flex-direction: column;
|
|
51
|
-
gap:
|
|
33
|
+
gap: var(--sigvelo-spacing-4);
|
|
52
34
|
min-height: 100%;
|
|
53
35
|
}
|
|
54
36
|
|
|
@@ -60,11 +42,11 @@
|
|
|
60
42
|
.message-scroller__button {
|
|
61
43
|
position: absolute;
|
|
62
44
|
inset-inline-start: 50%;
|
|
63
|
-
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));
|
|
64
46
|
z-index: 1;
|
|
65
47
|
translate: -50% 0;
|
|
66
|
-
border-radius:
|
|
67
|
-
box-shadow: var(--sigvelo-
|
|
48
|
+
border-radius: var(--sigvelo-radius-full);
|
|
49
|
+
box-shadow: var(--sigvelo-elevation-floating);
|
|
68
50
|
transition:
|
|
69
51
|
opacity var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
|
|
70
52
|
scale var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
|
|
@@ -72,7 +54,7 @@
|
|
|
72
54
|
}
|
|
73
55
|
|
|
74
56
|
.message-scroller__button[data-direction="start"] {
|
|
75
|
-
inset-block-start:
|
|
57
|
+
inset-block-start: var(--sigvelo-spacing-4);
|
|
76
58
|
inset-block-end: auto;
|
|
77
59
|
}
|
|
78
60
|
|
|
@@ -96,6 +78,6 @@
|
|
|
96
78
|
|
|
97
79
|
@media (forced-colors: active) {
|
|
98
80
|
.message-scroller__button {
|
|
99
|
-
border:
|
|
81
|
+
border: var(--sigvelo-border-style) var(--sigvelo-border-width) CanvasText;
|
|
100
82
|
}
|
|
101
83
|
}
|
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
|
|
|
@@ -199,6 +197,6 @@
|
|
|
199
197
|
.message__content,
|
|
200
198
|
.message__edit-form,
|
|
201
199
|
.message__edit-textarea {
|
|
202
|
-
border:
|
|
200
|
+
border: var(--sigvelo-border-style) var(--sigvelo-border-width) CanvasText;
|
|
203
201
|
}
|
|
204
202
|
}
|
|
@@ -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/plan.css
CHANGED
|
@@ -122,7 +122,7 @@
|
|
|
122
122
|
|
|
123
123
|
@media (forced-colors: active) {
|
|
124
124
|
.plan__step-indicator {
|
|
125
|
-
border:
|
|
125
|
+
border: var(--sigvelo-border-style) var(--sigvelo-border-width) CanvasText;
|
|
126
126
|
}
|
|
127
127
|
|
|
128
128
|
.plan__step[data-status="active"] .plan__step-indicator {
|
package/dist/styles/popover.css
CHANGED